assistant-stream 0.3.27 → 0.3.28

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 (43) hide show
  1. package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -1
  2. package/dist/core/accumulators/AssistantMessageStream.js +0 -1
  3. package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
  4. package/dist/core/modules/tool-call.d.ts.map +1 -1
  5. package/dist/core/modules/tool-call.js +1 -1
  6. package/dist/core/modules/tool-call.js.map +1 -1
  7. package/dist/core/serialization/data-stream/DataStream.js +48 -48
  8. package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
  9. package/dist/core/serialization/data-stream/chunk-types.d.ts +23 -22
  10. package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -1
  11. package/dist/core/serialization/data-stream/chunk-types.js +22 -23
  12. package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
  13. package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -1
  14. package/dist/core/serialization/data-stream/serialization.js +14 -2
  15. package/dist/core/serialization/data-stream/serialization.js.map +1 -1
  16. package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts.map +1 -1
  17. package/dist/core/serialization/ui-message-stream/UIMessageStream.js +2 -1
  18. package/dist/core/serialization/ui-message-stream/UIMessageStream.js.map +1 -1
  19. package/dist/core/tool/ToolCallReader.d.ts.map +1 -1
  20. package/dist/core/tool/ToolCallReader.js.map +1 -1
  21. package/dist/core/tool/tool-types.d.ts +6 -0
  22. package/dist/core/tool/tool-types.d.ts.map +1 -1
  23. package/dist/core/utils/stream/SSE.d.ts.map +1 -1
  24. package/dist/core/utils/stream/SSE.js +11 -2
  25. package/dist/core/utils/stream/SSE.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/core/accumulators/AssistantMessageStream.ts +3 -1
  28. package/src/core/converters/toGenericMessages.test.ts +3 -39
  29. package/src/core/gorp/GorpStreamDeltaTracker.test.ts +30 -0
  30. package/src/core/modules/tool-call.ts +4 -1
  31. package/src/core/serialization/data-stream/DataStream.ts +1 -1
  32. package/src/core/serialization/data-stream/chunk-types.ts +24 -22
  33. package/src/core/serialization/data-stream/serialization.test.ts +133 -0
  34. package/src/core/serialization/data-stream/serialization.ts +20 -2
  35. package/src/core/serialization/ui-message-stream/UIMessageStream.test.ts +24 -0
  36. package/src/core/serialization/ui-message-stream/UIMessageStream.ts +2 -1
  37. package/src/core/tool/ToolCallReader.ts +5 -1
  38. package/src/core/tool/tool-types.ts +7 -0
  39. package/src/core/utils/stream/SSE.test.ts +97 -0
  40. package/src/core/utils/stream/SSE.ts +13 -2
  41. package/src/gorp.test.ts +0 -10
  42. package/src/core/accumulators/TimingTracker.test.ts +0 -100
  43. package/src/core/gorp/changeTree.test.ts +0 -168
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageStream.d.ts","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"mappings":";;;cAIa;WACiB,UAAU,eAAe;EAAzB,YAAA,UAAU,eAAe;SAI9C,oBAAoB,QAAQ,kBAAe;EAM5C,mBAAmB,QAAQ;GAwBhC,OAAO;IAGU,QAAA,QAAQ,eAAe;;EAOzC,QAAQ,wBAAwB"}
1
+ {"version":3,"file":"AssistantMessageStream.d.ts","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"mappings":";;;cAIa;WACK,UAAU,eAAe;EAE7B,YAAA,UAAU,eAAe;SAI9B,oBAAoB,QAAQ,kBAAe;EAM5C,mBAAmB,QAAQ;GAwBhC,OAAO;IAGU,QAAA,QAAQ,eAAe;;EAOzC,QAAQ,wBAAwB"}
@@ -4,7 +4,6 @@ var AssistantMessageStream = class AssistantMessageStream {
4
4
  readable;
5
5
  constructor(readable) {
6
6
  this.readable = readable;
7
- this.readable = readable;
8
7
  }
9
8
  static fromAssistantStream(stream) {
10
9
  return new AssistantMessageStream(stream.pipeThrough(new AssistantMessageAccumulator()));
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageStream.js","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantMessage } from \"../utils/types\";\nimport { AssistantMessageAccumulator } from \"./assistant-message-accumulator\";\n\nexport class AssistantMessageStream {\n constructor(public readonly readable: ReadableStream<AssistantMessage>) {\n this.readable = readable;\n }\n\n static fromAssistantStream(stream: AssistantStream) {\n return new AssistantMessageStream(\n stream.pipeThrough(new AssistantMessageAccumulator()),\n );\n }\n\n async unstable_result(): Promise<AssistantMessage> {\n let last: AssistantMessage | undefined;\n for await (const chunk of this) {\n last = chunk;\n }\n\n if (!last) {\n return {\n role: \"assistant\",\n status: { type: \"complete\", reason: \"unknown\" },\n parts: [],\n content: [],\n metadata: {\n unstable_state: null,\n unstable_data: [],\n unstable_annotations: [],\n steps: [],\n custom: {},\n },\n };\n }\n return last;\n }\n\n [Symbol.asyncIterator]() {\n const reader = this.readable.getReader();\n return {\n async next(): Promise<IteratorResult<AssistantMessage, undefined>> {\n const { done, value } = await reader.read();\n return done ? { done: true, value: undefined } : { done: false, value };\n },\n };\n }\n\n tee(): [AssistantMessageStream, AssistantMessageStream] {\n const [readable1, readable2] = this.readable.tee();\n return [\n new AssistantMessageStream(readable1),\n new AssistantMessageStream(readable2),\n ];\n }\n}\n"],"mappings":";;AAIA,IAAa,yBAAb,MAAa,uBAAuB;CACN;CAA5B,YAAY,UAA4D;EAA5C,KAAA,WAAA;EAC1B,KAAK,WAAW;CAClB;CAEA,OAAO,oBAAoB,QAAyB;EAClD,OAAO,IAAI,uBACT,OAAO,YAAY,IAAI,4BAA4B,CAAC,CACtD;CACF;CAEA,MAAM,kBAA6C;EACjD,IAAI;EACJ,WAAW,MAAM,SAAS,MACxB,OAAO;EAGT,IAAI,CAAC,MACH,OAAO;GACL,MAAM;GACN,QAAQ;IAAE,MAAM;IAAY,QAAQ;GAAU;GAC9C,OAAO,CAAC;GACR,SAAS,CAAC;GACV,UAAU;IACR,gBAAgB;IAChB,eAAe,CAAC;IAChB,sBAAsB,CAAC;IACvB,OAAO,CAAC;IACR,QAAQ,CAAC;GACX;EACF;EAEF,OAAO;CACT;CAEA,CAAC,OAAO,iBAAiB;EACvB,MAAM,SAAS,KAAK,SAAS,UAAU;EACvC,OAAO,EACL,MAAM,OAA6D;GACjE,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,KAAK;GAC1C,OAAO,OAAO;IAAE,MAAM;IAAM,OAAO,KAAA;GAAU,IAAI;IAAE,MAAM;IAAO;GAAM;EACxE,EACF;CACF;CAEA,MAAwD;EACtD,MAAM,CAAC,WAAW,aAAa,KAAK,SAAS,IAAI;EACjD,OAAO,CACL,IAAI,uBAAuB,SAAS,GACpC,IAAI,uBAAuB,SAAS,CACtC;CACF;AACF"}
1
+ {"version":3,"file":"AssistantMessageStream.js","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantMessage } from \"../utils/types\";\nimport { AssistantMessageAccumulator } from \"./assistant-message-accumulator\";\n\nexport class AssistantMessageStream {\n public readonly readable: ReadableStream<AssistantMessage>;\n\n constructor(readable: ReadableStream<AssistantMessage>) {\n this.readable = readable;\n }\n\n static fromAssistantStream(stream: AssistantStream) {\n return new AssistantMessageStream(\n stream.pipeThrough(new AssistantMessageAccumulator()),\n );\n }\n\n async unstable_result(): Promise<AssistantMessage> {\n let last: AssistantMessage | undefined;\n for await (const chunk of this) {\n last = chunk;\n }\n\n if (!last) {\n return {\n role: \"assistant\",\n status: { type: \"complete\", reason: \"unknown\" },\n parts: [],\n content: [],\n metadata: {\n unstable_state: null,\n unstable_data: [],\n unstable_annotations: [],\n steps: [],\n custom: {},\n },\n };\n }\n return last;\n }\n\n [Symbol.asyncIterator]() {\n const reader = this.readable.getReader();\n return {\n async next(): Promise<IteratorResult<AssistantMessage, undefined>> {\n const { done, value } = await reader.read();\n return done ? { done: true, value: undefined } : { done: false, value };\n },\n };\n }\n\n tee(): [AssistantMessageStream, AssistantMessageStream] {\n const [readable1, readable2] = this.readable.tee();\n return [\n new AssistantMessageStream(readable1),\n new AssistantMessageStream(readable2),\n ];\n }\n}\n"],"mappings":";;AAIA,IAAa,yBAAb,MAAa,uBAAuB;CAClC;CAEA,YAAY,UAA4C;EACtD,KAAK,WAAW;CAClB;CAEA,OAAO,oBAAoB,QAAyB;EAClD,OAAO,IAAI,uBACT,OAAO,YAAY,IAAI,4BAA4B,CAAC,CACtD;CACF;CAEA,MAAM,kBAA6C;EACjD,IAAI;EACJ,WAAW,MAAM,SAAS,MACxB,OAAO;EAGT,IAAI,CAAC,MACH,OAAO;GACL,MAAM;GACN,QAAQ;IAAE,MAAM;IAAY,QAAQ;GAAU;GAC9C,OAAO,CAAC;GACR,SAAS,CAAC;GACV,UAAU;IACR,gBAAgB;IAChB,eAAe,CAAC;IAChB,sBAAsB,CAAC;IACvB,OAAO,CAAC;IACR,QAAQ,CAAC;GACX;EACF;EAEF,OAAO;CACT;CAEA,CAAC,OAAO,iBAAiB;EACvB,MAAM,SAAS,KAAK,SAAS,UAAU;EACvC,OAAO,EACL,MAAM,OAA6D;GACjE,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,KAAK;GAC1C,OAAO,OAAO;IAAE,MAAM;IAAM,OAAO,KAAA;GAAU,IAAI;IAAE,MAAM;IAAO;GAAM;EACxE,EACF;CACF;CAEA,MAAwD;EACtD,MAAM,CAAC,WAAW,aAAa,KAAK,SAAS,IAAI;EACjD,OAAO,CACL,IAAI,uBAAuB,SAAS,GACpC,IAAI,uBAAuB,SAAS,CACtC;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.d.ts","names":[],"sources":["../../../src/core/modules/tool-call.ts"],"mappings":";;;;;;KAOY;EACV,UAAU;EAEV,YAAY,UAAU,iBAAiB;EACvC;;cA2FW,uBACX,UAAU,mBAAmB,8BAC5B;cAcU,gDAA8B,iBAAA"}
1
+ {"version":3,"file":"tool-call.d.ts","names":[],"sources":["../../../src/core/modules/tool-call.ts"],"mappings":";;;;;;KAOY;EACV,UAAU;EAEV,YAAY,UAAU,iBAAiB;EACvC;;cA8FW,uBACX,UAAU,mBAAmB,8BAC5B;cAcU,gDAA8B,iBAAA"}
@@ -1,9 +1,9 @@
1
1
  import { createTextStream } from "./text.js";
2
2
  //#region src/core/modules/tool-call.ts
3
3
  var ToolCallStreamControllerImpl = class {
4
- _controller;
5
4
  _isClosed = false;
6
5
  _mergeTask;
6
+ _controller;
7
7
  constructor(_controller) {
8
8
  this._controller = _controller;
9
9
  const stream = createTextStream({ start: (c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.js","names":[],"sources":["../../../src/core/modules/tool-call.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantStreamChunk } from \"../AssistantStreamChunk\";\nimport type { ToolResponseLike } from \"../tool/ToolResponse\";\nimport type { ReadonlyJSONValue } from \"../../utils/json/json-value\";\nimport type { UnderlyingReadable } from \"../utils/stream/UnderlyingReadable\";\nimport { createTextStream, type TextStreamController } from \"./text\";\n\nexport type ToolCallStreamController = {\n argsText: TextStreamController;\n\n setResponse(response: ToolResponseLike<ReadonlyJSONValue>): void;\n close(): void;\n};\n\nclass ToolCallStreamControllerImpl implements ToolCallStreamController {\n private _isClosed = false;\n\n private _mergeTask: Promise<void>;\n constructor(\n private _controller: ReadableStreamDefaultController<AssistantStreamChunk>,\n ) {\n const stream = createTextStream({\n start: (c) => {\n this._argsTextController = c;\n },\n });\n\n let hasArgsText = false;\n this._mergeTask = stream.pipeTo(\n new WritableStream({\n write: (chunk) => {\n switch (chunk.type) {\n case \"text-delta\":\n hasArgsText = true;\n this._controller.enqueue(chunk);\n break;\n\n case \"part-finish\":\n if (!hasArgsText) {\n // if no argsText was provided, assume empty object\n this._controller.enqueue({\n type: \"text-delta\",\n textDelta: \"{}\",\n path: [],\n });\n }\n this._controller.enqueue({\n type: \"tool-call-args-text-finish\",\n path: [],\n });\n break;\n\n default:\n throw new Error(`Unexpected chunk type: ${chunk.type}`);\n }\n },\n }),\n );\n }\n\n get argsText() {\n return this._argsTextController;\n }\n\n private _argsTextController!: TextStreamController;\n\n async setResponse(response: ToolResponseLike<ReadonlyJSONValue>) {\n this._controller.enqueue({\n type: \"result\",\n path: [],\n ...(response.artifact !== undefined\n ? { artifact: response.artifact }\n : {}),\n result: response.result,\n isError: response.isError ?? false,\n ...(response.modelContent !== undefined\n ? { modelContent: response.modelContent }\n : {}),\n ...(response.messages !== undefined\n ? { messages: response.messages }\n : {}),\n });\n this._argsTextController.close();\n await Promise.resolve(); // flush microtask queue\n // TODO switch argsTextController to be something that doesn'#t require this\n }\n\n async close() {\n if (this._isClosed) return;\n\n this._isClosed = true;\n this._argsTextController.close();\n await this._mergeTask;\n\n this._controller.enqueue({\n type: \"part-finish\",\n path: [],\n });\n this._controller.close();\n }\n}\n\nexport const createToolCallStream = (\n readable: UnderlyingReadable<ToolCallStreamController>,\n): AssistantStream => {\n return new ReadableStream({\n start(c) {\n return readable.start?.(new ToolCallStreamControllerImpl(c));\n },\n pull(c) {\n return readable.pull?.(new ToolCallStreamControllerImpl(c));\n },\n cancel(c) {\n return readable.cancel?.(c);\n },\n });\n};\n\nexport const createToolCallStreamController = () => {\n let controller!: ToolCallStreamController;\n const stream = createToolCallStream({\n start(c) {\n controller = c;\n },\n });\n return [stream, controller] as const;\n};\n"],"mappings":";;AAcA,IAAM,+BAAN,MAAuE;CAK3D;CAJV,YAAoB;CAEpB;CACA,YACE,aACA;EADQ,KAAA,cAAA;EAER,MAAM,SAAS,iBAAiB,EAC9B,QAAQ,MAAM;GACZ,KAAK,sBAAsB;EAC7B,EACF,CAAC;EAED,IAAI,cAAc;EAClB,KAAK,aAAa,OAAO,OACvB,IAAI,eAAe,EACjB,QAAQ,UAAU;GAChB,QAAQ,MAAM,MAAd;IACE,KAAK;KACH,cAAc;KACd,KAAK,YAAY,QAAQ,KAAK;KAC9B;IAEF,KAAK;KACH,IAAI,CAAC,aAEH,KAAK,YAAY,QAAQ;MACvB,MAAM;MACN,WAAW;MACX,MAAM,CAAC;KACT,CAAC;KAEH,KAAK,YAAY,QAAQ;MACvB,MAAM;MACN,MAAM,CAAC;KACT,CAAC;KACD;IAEF,SACE,MAAM,IAAI,MAAM,0BAA0B,MAAM,MAAM;GAC1D;EACF,EACF,CAAC,CACH;CACF;CAEA,IAAI,WAAW;EACb,OAAO,KAAK;CACd;CAEA;CAEA,MAAM,YAAY,UAA+C;EAC/D,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;GACP,GAAI,SAAS,aAAa,KAAA,IACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;GACL,QAAQ,SAAS;GACjB,SAAS,SAAS,WAAW;GAC7B,GAAI,SAAS,iBAAiB,KAAA,IAC1B,EAAE,cAAc,SAAS,aAAa,IACtC,CAAC;GACL,GAAI,SAAS,aAAa,KAAA,IACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;EACP,CAAC;EACD,KAAK,oBAAoB,MAAM;EAC/B,MAAM,QAAQ,QAAQ;CAExB;CAEA,MAAM,QAAQ;EACZ,IAAI,KAAK,WAAW;EAEpB,KAAK,YAAY;EACjB,KAAK,oBAAoB,MAAM;EAC/B,MAAM,KAAK;EAEX,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;EACT,CAAC;EACD,KAAK,YAAY,MAAM;CACzB;AACF;AAEA,MAAa,wBACX,aACoB;CACpB,OAAO,IAAI,eAAe;EACxB,MAAM,GAAG;GACP,OAAO,SAAS,QAAQ,IAAI,6BAA6B,CAAC,CAAC;EAC7D;EACA,KAAK,GAAG;GACN,OAAO,SAAS,OAAO,IAAI,6BAA6B,CAAC,CAAC;EAC5D;EACA,OAAO,GAAG;GACR,OAAO,SAAS,SAAS,CAAC;EAC5B;CACF,CAAC;AACH;AAEA,MAAa,uCAAuC;CAClD,IAAI;CAMJ,OAAO,CALQ,qBAAqB,EAClC,MAAM,GAAG;EACP,aAAa;CACf,EACF,CACa,GAAG,UAAU;AAC5B"}
1
+ {"version":3,"file":"tool-call.js","names":[],"sources":["../../../src/core/modules/tool-call.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantStreamChunk } from \"../AssistantStreamChunk\";\nimport type { ToolResponseLike } from \"../tool/ToolResponse\";\nimport type { ReadonlyJSONValue } from \"../../utils/json/json-value\";\nimport type { UnderlyingReadable } from \"../utils/stream/UnderlyingReadable\";\nimport { createTextStream, type TextStreamController } from \"./text\";\n\nexport type ToolCallStreamController = {\n argsText: TextStreamController;\n\n setResponse(response: ToolResponseLike<ReadonlyJSONValue>): void;\n close(): void;\n};\n\nclass ToolCallStreamControllerImpl implements ToolCallStreamController {\n private _isClosed = false;\n\n private _mergeTask: Promise<void>;\n private _controller: ReadableStreamDefaultController<AssistantStreamChunk>;\n\n constructor(\n _controller: ReadableStreamDefaultController<AssistantStreamChunk>,\n ) {\n this._controller = _controller;\n const stream = createTextStream({\n start: (c) => {\n this._argsTextController = c;\n },\n });\n\n let hasArgsText = false;\n this._mergeTask = stream.pipeTo(\n new WritableStream({\n write: (chunk) => {\n switch (chunk.type) {\n case \"text-delta\":\n hasArgsText = true;\n this._controller.enqueue(chunk);\n break;\n\n case \"part-finish\":\n if (!hasArgsText) {\n // if no argsText was provided, assume empty object\n this._controller.enqueue({\n type: \"text-delta\",\n textDelta: \"{}\",\n path: [],\n });\n }\n this._controller.enqueue({\n type: \"tool-call-args-text-finish\",\n path: [],\n });\n break;\n\n default:\n throw new Error(`Unexpected chunk type: ${chunk.type}`);\n }\n },\n }),\n );\n }\n\n get argsText() {\n return this._argsTextController;\n }\n\n private _argsTextController!: TextStreamController;\n\n async setResponse(response: ToolResponseLike<ReadonlyJSONValue>) {\n this._controller.enqueue({\n type: \"result\",\n path: [],\n ...(response.artifact !== undefined\n ? { artifact: response.artifact }\n : {}),\n result: response.result,\n isError: response.isError ?? false,\n ...(response.modelContent !== undefined\n ? { modelContent: response.modelContent }\n : {}),\n ...(response.messages !== undefined\n ? { messages: response.messages }\n : {}),\n });\n this._argsTextController.close();\n await Promise.resolve(); // flush microtask queue\n // TODO switch argsTextController to be something that doesn'#t require this\n }\n\n async close() {\n if (this._isClosed) return;\n\n this._isClosed = true;\n this._argsTextController.close();\n await this._mergeTask;\n\n this._controller.enqueue({\n type: \"part-finish\",\n path: [],\n });\n this._controller.close();\n }\n}\n\nexport const createToolCallStream = (\n readable: UnderlyingReadable<ToolCallStreamController>,\n): AssistantStream => {\n return new ReadableStream({\n start(c) {\n return readable.start?.(new ToolCallStreamControllerImpl(c));\n },\n pull(c) {\n return readable.pull?.(new ToolCallStreamControllerImpl(c));\n },\n cancel(c) {\n return readable.cancel?.(c);\n },\n });\n};\n\nexport const createToolCallStreamController = () => {\n let controller!: ToolCallStreamController;\n const stream = createToolCallStream({\n start(c) {\n controller = c;\n },\n });\n return [stream, controller] as const;\n};\n"],"mappings":";;AAcA,IAAM,+BAAN,MAAuE;CACrE,YAAoB;CAEpB;CACA;CAEA,YACE,aACA;EACA,KAAK,cAAc;EACnB,MAAM,SAAS,iBAAiB,EAC9B,QAAQ,MAAM;GACZ,KAAK,sBAAsB;EAC7B,EACF,CAAC;EAED,IAAI,cAAc;EAClB,KAAK,aAAa,OAAO,OACvB,IAAI,eAAe,EACjB,QAAQ,UAAU;GAChB,QAAQ,MAAM,MAAd;IACE,KAAK;KACH,cAAc;KACd,KAAK,YAAY,QAAQ,KAAK;KAC9B;IAEF,KAAK;KACH,IAAI,CAAC,aAEH,KAAK,YAAY,QAAQ;MACvB,MAAM;MACN,WAAW;MACX,MAAM,CAAC;KACT,CAAC;KAEH,KAAK,YAAY,QAAQ;MACvB,MAAM;MACN,MAAM,CAAC;KACT,CAAC;KACD;IAEF,SACE,MAAM,IAAI,MAAM,0BAA0B,MAAM,MAAM;GAC1D;EACF,EACF,CAAC,CACH;CACF;CAEA,IAAI,WAAW;EACb,OAAO,KAAK;CACd;CAEA;CAEA,MAAM,YAAY,UAA+C;EAC/D,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;GACP,GAAI,SAAS,aAAa,KAAA,IACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;GACL,QAAQ,SAAS;GACjB,SAAS,SAAS,WAAW;GAC7B,GAAI,SAAS,iBAAiB,KAAA,IAC1B,EAAE,cAAc,SAAS,aAAa,IACtC,CAAC;GACL,GAAI,SAAS,aAAa,KAAA,IACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;EACP,CAAC;EACD,KAAK,oBAAoB,MAAM;EAC/B,MAAM,QAAQ,QAAQ;CAExB;CAEA,MAAM,QAAQ;EACZ,IAAI,KAAK,WAAW;EAEpB,KAAK,YAAY;EACjB,KAAK,oBAAoB,MAAM;EAC/B,MAAM,KAAK;EAEX,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;EACT,CAAC;EACD,KAAK,YAAY,MAAM;CACzB;AACF;AAEA,MAAa,wBACX,aACoB;CACpB,OAAO,IAAI,eAAe;EACxB,MAAM,GAAG;GACP,OAAO,SAAS,QAAQ,IAAI,6BAA6B,CAAC,CAAC;EAC7D;EACA,KAAK,GAAG;GACN,OAAO,SAAS,OAAO,IAAI,6BAA6B,CAAC,CAAC;EAC5D;EACA,OAAO,GAAG;GACR,OAAO,SAAS,SAAS,CAAC;EAC5B;CACF,CAAC;AACH;AAEA,MAAa,uCAAuC;CAClD,IAAI;CAMJ,OAAO,CALQ,qBAAqB,EAClC,MAAM,GAAG;EACP,aAAa;CACf,EACF,CACa,GAAG,UAAU;AAC5B"}
@@ -1,6 +1,6 @@
1
1
  import { AssistantTransformStream } from "../../utils/stream/AssistantTransformStream.js";
2
2
  import { PipeableTransformStream } from "../../utils/stream/PipeableTransformStream.js";
3
- import "./chunk-types.js";
3
+ import { DataStreamStreamChunkType } from "./chunk-types.js";
4
4
  import { LineDecoderStream } from "../../utils/stream/LineDecoderStream.js";
5
5
  import { DataStreamChunkDecoder, DataStreamChunkEncoder } from "./serialization.js";
6
6
  import { AssistantMetaTransformStream } from "../../utils/stream/AssistantMetaTransformStream.js";
@@ -20,21 +20,21 @@ var DataStreamEncoder = class extends PipeableTransformStream {
20
20
  if (part.type === "tool-call") {
21
21
  const { type, ...value } = part;
22
22
  controller.enqueue({
23
- type: "b",
23
+ type: DataStreamStreamChunkType.StartToolCall,
24
24
  value
25
25
  });
26
26
  }
27
27
  if (part.type === "source") {
28
28
  const { type, ...value } = part;
29
29
  controller.enqueue({
30
- type: "h",
30
+ type: DataStreamStreamChunkType.Source,
31
31
  value
32
32
  });
33
33
  }
34
34
  if (part.type === "data") {
35
35
  const { type, ...value } = part;
36
36
  controller.enqueue({
37
- type: "aui-data",
37
+ type: DataStreamStreamChunkType.AuiDataPart,
38
38
  value
39
39
  });
40
40
  }
@@ -45,33 +45,33 @@ var DataStreamEncoder = class extends PipeableTransformStream {
45
45
  switch (part.type) {
46
46
  case "text":
47
47
  if (part.parentId) controller.enqueue({
48
- type: "aui-text-delta",
48
+ type: DataStreamStreamChunkType.AuiTextDelta,
49
49
  value: {
50
50
  textDelta: chunk.textDelta,
51
51
  parentId: part.parentId
52
52
  }
53
53
  });
54
54
  else controller.enqueue({
55
- type: "0",
55
+ type: DataStreamStreamChunkType.TextDelta,
56
56
  value: chunk.textDelta
57
57
  });
58
58
  break;
59
59
  case "reasoning":
60
60
  if (part.parentId) controller.enqueue({
61
- type: "aui-reasoning-delta",
61
+ type: DataStreamStreamChunkType.AuiReasoningDelta,
62
62
  value: {
63
63
  reasoningDelta: chunk.textDelta,
64
64
  parentId: part.parentId
65
65
  }
66
66
  });
67
67
  else controller.enqueue({
68
- type: "g",
68
+ type: DataStreamStreamChunkType.ReasoningDelta,
69
69
  value: chunk.textDelta
70
70
  });
71
71
  break;
72
72
  case "tool-call":
73
73
  controller.enqueue({
74
- type: "c",
74
+ type: DataStreamStreamChunkType.ToolCallArgsTextDelta,
75
75
  value: {
76
76
  toolCallId: part.toolCallId,
77
77
  argsTextDelta: chunk.textDelta
@@ -86,7 +86,7 @@ var DataStreamEncoder = class extends PipeableTransformStream {
86
86
  const part = chunk.meta;
87
87
  if (part.type !== "tool-call") throw new Error(`Result chunk on non-tool-call part not supported: ${part.type}`);
88
88
  controller.enqueue({
89
- type: "a",
89
+ type: DataStreamStreamChunkType.ToolCallResult,
90
90
  value: {
91
91
  toolCallId: part.toolCallId,
92
92
  result: chunk.result,
@@ -99,7 +99,7 @@ var DataStreamEncoder = class extends PipeableTransformStream {
99
99
  case "step-start": {
100
100
  const { type, ...value } = chunk;
101
101
  controller.enqueue({
102
- type: "f",
102
+ type: DataStreamStreamChunkType.StartStep,
103
103
  value
104
104
  });
105
105
  break;
@@ -107,7 +107,7 @@ var DataStreamEncoder = class extends PipeableTransformStream {
107
107
  case "step-finish": {
108
108
  const { type, ...value } = chunk;
109
109
  controller.enqueue({
110
- type: "e",
110
+ type: DataStreamStreamChunkType.FinishStep,
111
111
  value
112
112
  });
113
113
  break;
@@ -115,32 +115,32 @@ var DataStreamEncoder = class extends PipeableTransformStream {
115
115
  case "message-finish": {
116
116
  const { type, ...value } = chunk;
117
117
  controller.enqueue({
118
- type: "d",
118
+ type: DataStreamStreamChunkType.FinishMessage,
119
119
  value
120
120
  });
121
121
  break;
122
122
  }
123
123
  case "error":
124
124
  controller.enqueue({
125
- type: "3",
125
+ type: DataStreamStreamChunkType.Error,
126
126
  value: chunk.error
127
127
  });
128
128
  break;
129
129
  case "annotations":
130
130
  controller.enqueue({
131
- type: "8",
131
+ type: DataStreamStreamChunkType.Annotation,
132
132
  value: chunk.annotations
133
133
  });
134
134
  break;
135
135
  case "data":
136
136
  controller.enqueue({
137
- type: "2",
137
+ type: DataStreamStreamChunkType.Data,
138
138
  value: chunk.data
139
139
  });
140
140
  break;
141
141
  case "update-state":
142
142
  controller.enqueue({
143
- type: "aui-state",
143
+ type: DataStreamStreamChunkType.AuiUpdateStateOperations,
144
144
  value: chunk.operations
145
145
  });
146
146
  break;
@@ -154,17 +154,17 @@ var DataStreamEncoder = class extends PipeableTransformStream {
154
154
  }
155
155
  };
156
156
  const TOOL_CALL_ARGS_CLOSING_CHUNKS = [
157
- "b",
158
- "9",
159
- "0",
160
- "g",
161
- "h",
162
- "3",
163
- "e",
164
- "d",
165
- "aui-text-delta",
166
- "aui-reasoning-delta",
167
- "aui-data"
157
+ DataStreamStreamChunkType.StartToolCall,
158
+ DataStreamStreamChunkType.ToolCall,
159
+ DataStreamStreamChunkType.TextDelta,
160
+ DataStreamStreamChunkType.ReasoningDelta,
161
+ DataStreamStreamChunkType.Source,
162
+ DataStreamStreamChunkType.Error,
163
+ DataStreamStreamChunkType.FinishStep,
164
+ DataStreamStreamChunkType.FinishMessage,
165
+ DataStreamStreamChunkType.AuiTextDelta,
166
+ DataStreamStreamChunkType.AuiReasoningDelta,
167
+ DataStreamStreamChunkType.AuiDataPart
168
168
  ];
169
169
  var DataStreamDecoder = class extends PipeableTransformStream {
170
170
  constructor() {
@@ -179,19 +179,19 @@ var DataStreamDecoder = class extends PipeableTransformStream {
179
179
  activeToolCallArgsText = void 0;
180
180
  }
181
181
  switch (type) {
182
- case "g":
182
+ case DataStreamStreamChunkType.ReasoningDelta:
183
183
  controller.appendReasoning(value);
184
184
  break;
185
- case "0":
185
+ case DataStreamStreamChunkType.TextDelta:
186
186
  controller.appendText(value);
187
187
  break;
188
- case "aui-text-delta":
188
+ case DataStreamStreamChunkType.AuiTextDelta:
189
189
  controller.withParentId(value.parentId).appendText(value.textDelta);
190
190
  break;
191
- case "aui-reasoning-delta":
191
+ case DataStreamStreamChunkType.AuiReasoningDelta:
192
192
  controller.withParentId(value.parentId).appendReasoning(value.reasoningDelta);
193
193
  break;
194
- case "b": {
194
+ case DataStreamStreamChunkType.StartToolCall: {
195
195
  const { toolCallId, toolName, parentId } = value;
196
196
  const ctrl = parentId ? controller.withParentId(parentId) : controller;
197
197
  if (toolCallControllers.has(toolCallId)) throw new Error(`Encountered duplicate tool call id: ${toolCallId}`);
@@ -203,14 +203,14 @@ var DataStreamDecoder = class extends PipeableTransformStream {
203
203
  activeToolCallArgsText = toolCallController.argsText;
204
204
  break;
205
205
  }
206
- case "c": {
206
+ case DataStreamStreamChunkType.ToolCallArgsTextDelta: {
207
207
  const { toolCallId, argsTextDelta } = value;
208
208
  const toolCallController = toolCallControllers.get(toolCallId);
209
209
  if (!toolCallController) throw new Error(`Encountered tool call with unknown id: ${toolCallId}`);
210
210
  toolCallController.argsText.append(argsTextDelta);
211
211
  break;
212
212
  }
213
- case "a": {
213
+ case DataStreamStreamChunkType.ToolCallResult: {
214
214
  const { toolCallId, artifact, result, isError } = value;
215
215
  const toolCallController = toolCallControllers.get(toolCallId);
216
216
  if (!toolCallController) throw new Error(`Encountered tool call result with unknown id: ${toolCallId}`);
@@ -221,7 +221,7 @@ var DataStreamDecoder = class extends PipeableTransformStream {
221
221
  });
222
222
  break;
223
223
  }
224
- case "9": {
224
+ case DataStreamStreamChunkType.ToolCall: {
225
225
  const { toolCallId, toolName, args } = value;
226
226
  let toolCallController = toolCallControllers.get(toolCallId);
227
227
  if (toolCallController) toolCallController.argsText.close();
@@ -235,42 +235,42 @@ var DataStreamDecoder = class extends PipeableTransformStream {
235
235
  }
236
236
  break;
237
237
  }
238
- case "d":
238
+ case DataStreamStreamChunkType.FinishMessage:
239
239
  controller.enqueue({
240
240
  type: "message-finish",
241
241
  path: [],
242
242
  ...value
243
243
  });
244
244
  break;
245
- case "f":
245
+ case DataStreamStreamChunkType.StartStep:
246
246
  controller.enqueue({
247
247
  type: "step-start",
248
248
  path: [],
249
249
  ...value
250
250
  });
251
251
  break;
252
- case "e":
252
+ case DataStreamStreamChunkType.FinishStep:
253
253
  controller.enqueue({
254
254
  type: "step-finish",
255
255
  path: [],
256
256
  ...value
257
257
  });
258
258
  break;
259
- case "2":
259
+ case DataStreamStreamChunkType.Data:
260
260
  controller.enqueue({
261
261
  type: "data",
262
262
  path: [],
263
263
  data: value
264
264
  });
265
265
  break;
266
- case "8":
266
+ case DataStreamStreamChunkType.Annotation:
267
267
  controller.enqueue({
268
268
  type: "annotations",
269
269
  path: [],
270
270
  annotations: value
271
271
  });
272
272
  break;
273
- case "h": {
273
+ case DataStreamStreamChunkType.Source: {
274
274
  const { parentId, ...sourceData } = value;
275
275
  (parentId ? controller.withParentId(parentId) : controller).appendSource({
276
276
  type: "source",
@@ -278,34 +278,34 @@ var DataStreamDecoder = class extends PipeableTransformStream {
278
278
  });
279
279
  break;
280
280
  }
281
- case "3":
281
+ case DataStreamStreamChunkType.Error:
282
282
  controller.enqueue({
283
283
  type: "error",
284
284
  path: [],
285
285
  error: value
286
286
  });
287
287
  break;
288
- case "k":
288
+ case DataStreamStreamChunkType.File:
289
289
  controller.appendFile({
290
290
  type: "file",
291
291
  ...value
292
292
  });
293
293
  break;
294
- case "aui-data":
294
+ case DataStreamStreamChunkType.AuiDataPart:
295
295
  controller.appendData({
296
296
  type: "data",
297
297
  ...value
298
298
  });
299
299
  break;
300
- case "aui-state":
300
+ case DataStreamStreamChunkType.AuiUpdateStateOperations:
301
301
  controller.enqueue({
302
302
  type: "update-state",
303
303
  path: [],
304
304
  operations: value
305
305
  });
306
306
  break;
307
- case "j":
308
- case "i": break;
307
+ case DataStreamStreamChunkType.ReasoningSignature:
308
+ case DataStreamStreamChunkType.RedactedReasoning: break;
309
309
  default: throw new Error(`unsupported chunk type: ${type}`);
310
310
  }
311
311
  },
@@ -1 +1 @@
1
- {"version":3,"file":"DataStream.js","names":["exhaustiveCheck"],"sources":["../../../../src/core/serialization/data-stream/DataStream.ts"],"sourcesContent":["import type { AssistantStreamChunk } from \"../../AssistantStreamChunk\";\nimport type { ToolCallStreamController } from \"../../modules/tool-call\";\nimport { AssistantTransformStream } from \"../../utils/stream/AssistantTransformStream\";\nimport { PipeableTransformStream } from \"../../utils/stream/PipeableTransformStream\";\nimport { type DataStreamChunk, DataStreamStreamChunkType } from \"./chunk-types\";\nimport { LineDecoderStream } from \"../../utils/stream/LineDecoderStream\";\nimport {\n DataStreamChunkDecoder,\n DataStreamChunkEncoder,\n} from \"./serialization\";\nimport {\n type AssistantMetaStreamChunk,\n AssistantMetaTransformStream,\n} from \"../../utils/stream/AssistantMetaTransformStream\";\nimport type { TextStreamController } from \"../../modules/text\";\nimport type { AssistantStreamEncoder } from \"../../AssistantStream\";\n\nexport class DataStreamEncoder\n extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>>\n implements AssistantStreamEncoder\n{\n headers = new Headers({\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"x-vercel-ai-data-stream\": \"v1\",\n });\n\n constructor() {\n super((readable) => {\n const transform = new TransformStream<\n AssistantMetaStreamChunk,\n DataStreamChunk\n >({\n transform(chunk, controller) {\n const type = chunk.type;\n switch (type) {\n case \"part-start\": {\n const part = chunk.part;\n if (part.type === \"tool-call\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.StartToolCall,\n value,\n });\n }\n if (part.type === \"source\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.Source,\n value,\n });\n }\n if (part.type === \"data\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiDataPart,\n value,\n });\n }\n break;\n }\n case \"text-delta\": {\n const part = chunk.meta;\n switch (part.type) {\n case \"text\": {\n if (part.parentId) {\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiTextDelta,\n value: {\n textDelta: chunk.textDelta,\n parentId: part.parentId,\n },\n });\n } else {\n controller.enqueue({\n type: DataStreamStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n }\n break;\n }\n case \"reasoning\": {\n if (part.parentId) {\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiReasoningDelta,\n value: {\n reasoningDelta: chunk.textDelta,\n parentId: part.parentId,\n },\n });\n } else {\n controller.enqueue({\n type: DataStreamStreamChunkType.ReasoningDelta,\n value: chunk.textDelta,\n });\n }\n break;\n }\n case \"tool-call\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.ToolCallArgsTextDelta,\n value: {\n toolCallId: part.toolCallId,\n argsTextDelta: chunk.textDelta,\n },\n });\n break;\n }\n default:\n throw new Error(\n `Unsupported part type for text-delta: ${part.type}`,\n );\n }\n break;\n }\n case \"result\": {\n // Only tool-call parts can have results.\n const part = chunk.meta;\n if (part.type !== \"tool-call\") {\n throw new Error(\n `Result chunk on non-tool-call part not supported: ${part.type}`,\n );\n }\n controller.enqueue({\n type: DataStreamStreamChunkType.ToolCallResult,\n value: {\n toolCallId: part.toolCallId,\n result: chunk.result,\n artifact: chunk.artifact,\n ...(chunk.isError ? { isError: chunk.isError } : {}),\n },\n });\n break;\n }\n case \"step-start\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.StartStep,\n value,\n });\n break;\n }\n case \"step-finish\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.FinishStep,\n value,\n });\n break;\n }\n case \"message-finish\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.FinishMessage,\n value,\n });\n break;\n }\n case \"error\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Error,\n value: chunk.error,\n });\n break;\n }\n case \"annotations\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Annotation,\n value: chunk.annotations,\n });\n break;\n }\n case \"data\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n case \"update-state\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiUpdateStateOperations,\n value: chunk.operations,\n });\n break;\n }\n\n // TODO ignore for now\n // in the future, we should create a handler that waits for text parts to finish before continuing\n case \"tool-call-args-text-finish\":\n case \"part-finish\":\n break;\n\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`Unsupported chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n });\n\n return readable\n .pipeThrough(new AssistantMetaTransformStream())\n .pipeThrough(transform)\n .pipeThrough(new DataStreamChunkEncoder())\n .pipeThrough(new TextEncoderStream());\n });\n }\n}\n\nconst TOOL_CALL_ARGS_CLOSING_CHUNKS = [\n DataStreamStreamChunkType.StartToolCall,\n DataStreamStreamChunkType.ToolCall,\n DataStreamStreamChunkType.TextDelta,\n DataStreamStreamChunkType.ReasoningDelta,\n DataStreamStreamChunkType.Source,\n DataStreamStreamChunkType.Error,\n DataStreamStreamChunkType.FinishStep,\n DataStreamStreamChunkType.FinishMessage,\n DataStreamStreamChunkType.AuiTextDelta,\n DataStreamStreamChunkType.AuiReasoningDelta,\n DataStreamStreamChunkType.AuiDataPart,\n];\n\nexport class DataStreamDecoder extends PipeableTransformStream<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n> {\n constructor() {\n super((readable) => {\n const toolCallControllers = new Map<string, ToolCallStreamController>();\n let activeToolCallArgsText: TextStreamController | undefined;\n const transform = new AssistantTransformStream<DataStreamChunk>({\n transform(chunk, controller) {\n const { type, value } = chunk;\n\n if (TOOL_CALL_ARGS_CLOSING_CHUNKS.includes(type)) {\n activeToolCallArgsText?.close();\n activeToolCallArgsText = undefined;\n }\n\n switch (type) {\n case DataStreamStreamChunkType.ReasoningDelta:\n controller.appendReasoning(value);\n break;\n\n case DataStreamStreamChunkType.TextDelta:\n controller.appendText(value);\n break;\n\n case DataStreamStreamChunkType.AuiTextDelta:\n controller\n .withParentId(value.parentId)\n .appendText(value.textDelta);\n break;\n\n case DataStreamStreamChunkType.AuiReasoningDelta:\n controller\n .withParentId(value.parentId)\n .appendReasoning(value.reasoningDelta);\n break;\n\n case DataStreamStreamChunkType.StartToolCall: {\n const { toolCallId, toolName, parentId } = value;\n const ctrl = parentId\n ? controller.withParentId(parentId)\n : controller;\n\n if (toolCallControllers.has(toolCallId))\n throw new Error(\n `Encountered duplicate tool call id: ${toolCallId}`,\n );\n\n const toolCallController = ctrl.addToolCallPart({\n toolCallId,\n toolName,\n });\n toolCallControllers.set(toolCallId, toolCallController);\n\n activeToolCallArgsText = toolCallController.argsText;\n break;\n }\n\n case DataStreamStreamChunkType.ToolCallArgsTextDelta: {\n const { toolCallId, argsTextDelta } = value;\n const toolCallController = toolCallControllers.get(toolCallId);\n if (!toolCallController)\n throw new Error(\n `Encountered tool call with unknown id: ${toolCallId}`,\n );\n toolCallController.argsText.append(argsTextDelta);\n break;\n }\n\n case DataStreamStreamChunkType.ToolCallResult: {\n const { toolCallId, artifact, result, isError } = value;\n const toolCallController = toolCallControllers.get(toolCallId);\n if (!toolCallController)\n throw new Error(\n `Encountered tool call result with unknown id: ${toolCallId}`,\n );\n toolCallController.setResponse({\n artifact,\n result,\n isError,\n });\n break;\n }\n\n case DataStreamStreamChunkType.ToolCall: {\n const { toolCallId, toolName, args } = value;\n\n let toolCallController = toolCallControllers.get(toolCallId);\n if (toolCallController) {\n toolCallController.argsText.close();\n } else {\n toolCallController = controller.addToolCallPart({\n toolCallId,\n toolName,\n args,\n });\n toolCallControllers.set(toolCallId, toolCallController);\n }\n break;\n }\n\n case DataStreamStreamChunkType.FinishMessage:\n controller.enqueue({\n type: \"message-finish\",\n path: [],\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.StartStep:\n controller.enqueue({\n type: \"step-start\",\n path: [],\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.FinishStep:\n controller.enqueue({\n type: \"step-finish\",\n path: [],\n ...value,\n });\n break;\n case DataStreamStreamChunkType.Data:\n controller.enqueue({\n type: \"data\",\n path: [],\n data: value,\n });\n break;\n\n case DataStreamStreamChunkType.Annotation:\n controller.enqueue({\n type: \"annotations\",\n path: [],\n annotations: value,\n });\n break;\n\n case DataStreamStreamChunkType.Source: {\n const { parentId, ...sourceData } = value;\n const ctrl = parentId\n ? controller.withParentId(parentId)\n : controller;\n ctrl.appendSource({\n type: \"source\",\n ...sourceData,\n });\n break;\n }\n\n case DataStreamStreamChunkType.Error:\n controller.enqueue({\n type: \"error\",\n path: [],\n error: value,\n });\n break;\n\n case DataStreamStreamChunkType.File:\n controller.appendFile({\n type: \"file\",\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.AuiDataPart:\n controller.appendData({\n type: \"data\",\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.AuiUpdateStateOperations:\n controller.enqueue({\n type: \"update-state\",\n path: [],\n operations: value,\n });\n break;\n\n case DataStreamStreamChunkType.ReasoningSignature:\n case DataStreamStreamChunkType.RedactedReasoning:\n // ignore these for now\n break;\n\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`unsupported chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n flush() {\n activeToolCallArgsText?.close();\n activeToolCallArgsText = undefined;\n toolCallControllers.forEach((controller) => controller.close());\n toolCallControllers.clear();\n },\n });\n\n return readable\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new LineDecoderStream())\n .pipeThrough(new DataStreamChunkDecoder())\n .pipeThrough(transform);\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataStream.js","names":["exhaustiveCheck"],"sources":["../../../../src/core/serialization/data-stream/DataStream.ts"],"sourcesContent":["import type { AssistantStreamChunk } from \"../../AssistantStreamChunk\";\nimport type { ToolCallStreamController } from \"../../modules/tool-call\";\nimport { AssistantTransformStream } from \"../../utils/stream/AssistantTransformStream\";\nimport { PipeableTransformStream } from \"../../utils/stream/PipeableTransformStream\";\nimport { type DataStreamChunk, DataStreamStreamChunkType } from \"./chunk-types\";\nimport { LineDecoderStream } from \"../../utils/stream/LineDecoderStream\";\nimport {\n DataStreamChunkDecoder,\n DataStreamChunkEncoder,\n} from \"./serialization\";\nimport {\n type AssistantMetaStreamChunk,\n AssistantMetaTransformStream,\n} from \"../../utils/stream/AssistantMetaTransformStream\";\nimport type { TextStreamController } from \"../../modules/text\";\nimport type { AssistantStreamEncoder } from \"../../AssistantStream\";\n\nexport class DataStreamEncoder\n extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>>\n implements AssistantStreamEncoder\n{\n headers = new Headers({\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"x-vercel-ai-data-stream\": \"v1\",\n });\n\n constructor() {\n super((readable) => {\n const transform = new TransformStream<\n AssistantMetaStreamChunk,\n DataStreamChunk\n >({\n transform(chunk, controller) {\n const type = chunk.type;\n switch (type) {\n case \"part-start\": {\n const part = chunk.part;\n if (part.type === \"tool-call\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.StartToolCall,\n value,\n });\n }\n if (part.type === \"source\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.Source,\n value,\n });\n }\n if (part.type === \"data\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiDataPart,\n value,\n });\n }\n break;\n }\n case \"text-delta\": {\n const part = chunk.meta;\n switch (part.type) {\n case \"text\": {\n if (part.parentId) {\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiTextDelta,\n value: {\n textDelta: chunk.textDelta,\n parentId: part.parentId,\n },\n });\n } else {\n controller.enqueue({\n type: DataStreamStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n }\n break;\n }\n case \"reasoning\": {\n if (part.parentId) {\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiReasoningDelta,\n value: {\n reasoningDelta: chunk.textDelta,\n parentId: part.parentId,\n },\n });\n } else {\n controller.enqueue({\n type: DataStreamStreamChunkType.ReasoningDelta,\n value: chunk.textDelta,\n });\n }\n break;\n }\n case \"tool-call\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.ToolCallArgsTextDelta,\n value: {\n toolCallId: part.toolCallId,\n argsTextDelta: chunk.textDelta,\n },\n });\n break;\n }\n default:\n throw new Error(\n `Unsupported part type for text-delta: ${part.type}`,\n );\n }\n break;\n }\n case \"result\": {\n // Only tool-call parts can have results.\n const part = chunk.meta;\n if (part.type !== \"tool-call\") {\n throw new Error(\n `Result chunk on non-tool-call part not supported: ${part.type}`,\n );\n }\n controller.enqueue({\n type: DataStreamStreamChunkType.ToolCallResult,\n value: {\n toolCallId: part.toolCallId,\n result: chunk.result,\n artifact: chunk.artifact,\n ...(chunk.isError ? { isError: chunk.isError } : {}),\n },\n });\n break;\n }\n case \"step-start\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.StartStep,\n value,\n });\n break;\n }\n case \"step-finish\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.FinishStep,\n value,\n });\n break;\n }\n case \"message-finish\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.FinishMessage,\n value,\n });\n break;\n }\n case \"error\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Error,\n value: chunk.error,\n });\n break;\n }\n case \"annotations\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Annotation,\n value: chunk.annotations,\n });\n break;\n }\n case \"data\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n case \"update-state\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.AuiUpdateStateOperations,\n value: chunk.operations,\n });\n break;\n }\n\n // TODO ignore for now\n // in the future, we should create a handler that waits for text parts to finish before continuing\n case \"tool-call-args-text-finish\":\n case \"part-finish\":\n break;\n\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`Unsupported chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n });\n\n return readable\n .pipeThrough(new AssistantMetaTransformStream())\n .pipeThrough(transform)\n .pipeThrough(new DataStreamChunkEncoder())\n .pipeThrough(new TextEncoderStream());\n });\n }\n}\n\nconst TOOL_CALL_ARGS_CLOSING_CHUNKS: DataStreamStreamChunkType[] = [\n DataStreamStreamChunkType.StartToolCall,\n DataStreamStreamChunkType.ToolCall,\n DataStreamStreamChunkType.TextDelta,\n DataStreamStreamChunkType.ReasoningDelta,\n DataStreamStreamChunkType.Source,\n DataStreamStreamChunkType.Error,\n DataStreamStreamChunkType.FinishStep,\n DataStreamStreamChunkType.FinishMessage,\n DataStreamStreamChunkType.AuiTextDelta,\n DataStreamStreamChunkType.AuiReasoningDelta,\n DataStreamStreamChunkType.AuiDataPart,\n];\n\nexport class DataStreamDecoder extends PipeableTransformStream<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n> {\n constructor() {\n super((readable) => {\n const toolCallControllers = new Map<string, ToolCallStreamController>();\n let activeToolCallArgsText: TextStreamController | undefined;\n const transform = new AssistantTransformStream<DataStreamChunk>({\n transform(chunk, controller) {\n const { type, value } = chunk;\n\n if (TOOL_CALL_ARGS_CLOSING_CHUNKS.includes(type)) {\n activeToolCallArgsText?.close();\n activeToolCallArgsText = undefined;\n }\n\n switch (type) {\n case DataStreamStreamChunkType.ReasoningDelta:\n controller.appendReasoning(value);\n break;\n\n case DataStreamStreamChunkType.TextDelta:\n controller.appendText(value);\n break;\n\n case DataStreamStreamChunkType.AuiTextDelta:\n controller\n .withParentId(value.parentId)\n .appendText(value.textDelta);\n break;\n\n case DataStreamStreamChunkType.AuiReasoningDelta:\n controller\n .withParentId(value.parentId)\n .appendReasoning(value.reasoningDelta);\n break;\n\n case DataStreamStreamChunkType.StartToolCall: {\n const { toolCallId, toolName, parentId } = value;\n const ctrl = parentId\n ? controller.withParentId(parentId)\n : controller;\n\n if (toolCallControllers.has(toolCallId))\n throw new Error(\n `Encountered duplicate tool call id: ${toolCallId}`,\n );\n\n const toolCallController = ctrl.addToolCallPart({\n toolCallId,\n toolName,\n });\n toolCallControllers.set(toolCallId, toolCallController);\n\n activeToolCallArgsText = toolCallController.argsText;\n break;\n }\n\n case DataStreamStreamChunkType.ToolCallArgsTextDelta: {\n const { toolCallId, argsTextDelta } = value;\n const toolCallController = toolCallControllers.get(toolCallId);\n if (!toolCallController)\n throw new Error(\n `Encountered tool call with unknown id: ${toolCallId}`,\n );\n toolCallController.argsText.append(argsTextDelta);\n break;\n }\n\n case DataStreamStreamChunkType.ToolCallResult: {\n const { toolCallId, artifact, result, isError } = value;\n const toolCallController = toolCallControllers.get(toolCallId);\n if (!toolCallController)\n throw new Error(\n `Encountered tool call result with unknown id: ${toolCallId}`,\n );\n toolCallController.setResponse({\n artifact,\n result,\n isError,\n });\n break;\n }\n\n case DataStreamStreamChunkType.ToolCall: {\n const { toolCallId, toolName, args } = value;\n\n let toolCallController = toolCallControllers.get(toolCallId);\n if (toolCallController) {\n toolCallController.argsText.close();\n } else {\n toolCallController = controller.addToolCallPart({\n toolCallId,\n toolName,\n args,\n });\n toolCallControllers.set(toolCallId, toolCallController);\n }\n break;\n }\n\n case DataStreamStreamChunkType.FinishMessage:\n controller.enqueue({\n type: \"message-finish\",\n path: [],\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.StartStep:\n controller.enqueue({\n type: \"step-start\",\n path: [],\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.FinishStep:\n controller.enqueue({\n type: \"step-finish\",\n path: [],\n ...value,\n });\n break;\n case DataStreamStreamChunkType.Data:\n controller.enqueue({\n type: \"data\",\n path: [],\n data: value,\n });\n break;\n\n case DataStreamStreamChunkType.Annotation:\n controller.enqueue({\n type: \"annotations\",\n path: [],\n annotations: value,\n });\n break;\n\n case DataStreamStreamChunkType.Source: {\n const { parentId, ...sourceData } = value;\n const ctrl = parentId\n ? controller.withParentId(parentId)\n : controller;\n ctrl.appendSource({\n type: \"source\",\n ...sourceData,\n });\n break;\n }\n\n case DataStreamStreamChunkType.Error:\n controller.enqueue({\n type: \"error\",\n path: [],\n error: value,\n });\n break;\n\n case DataStreamStreamChunkType.File:\n controller.appendFile({\n type: \"file\",\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.AuiDataPart:\n controller.appendData({\n type: \"data\",\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.AuiUpdateStateOperations:\n controller.enqueue({\n type: \"update-state\",\n path: [],\n operations: value,\n });\n break;\n\n case DataStreamStreamChunkType.ReasoningSignature:\n case DataStreamStreamChunkType.RedactedReasoning:\n // ignore these for now\n break;\n\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`unsupported chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n flush() {\n activeToolCallArgsText?.close();\n activeToolCallArgsText = undefined;\n toolCallControllers.forEach((controller) => controller.close());\n toolCallControllers.clear();\n },\n });\n\n return readable\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new LineDecoderStream())\n .pipeThrough(new DataStreamChunkDecoder())\n .pipeThrough(transform);\n });\n }\n}\n"],"mappings":"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"}
@@ -10,28 +10,29 @@ type LanguageModelV1Usage = {
10
10
  inputTokens: number;
11
11
  outputTokens: number;
12
12
  };
13
- declare enum DataStreamStreamChunkType {
14
- TextDelta = "0",
15
- Data = "2",
16
- Error = "3",
17
- Annotation = "8",
18
- ToolCall = "9",
19
- ToolCallResult = "a",
20
- StartToolCall = "b",
21
- ToolCallArgsTextDelta = "c",
22
- FinishMessage = "d",
23
- FinishStep = "e",
24
- StartStep = "f",
25
- ReasoningDelta = "g",
26
- Source = "h",
27
- RedactedReasoning = "i",
28
- ReasoningSignature = "j",
29
- File = "k",
30
- AuiUpdateStateOperations = "aui-state",
31
- AuiTextDelta = "aui-text-delta",
32
- AuiReasoningDelta = "aui-reasoning-delta",
33
- AuiDataPart = "aui-data"
34
- }
13
+ declare const DataStreamStreamChunkType: {
14
+ readonly TextDelta: "0";
15
+ readonly Data: "2";
16
+ readonly Error: "3";
17
+ readonly Annotation: "8";
18
+ readonly ToolCall: "9";
19
+ readonly ToolCallResult: "a";
20
+ readonly StartToolCall: "b";
21
+ readonly ToolCallArgsTextDelta: "c";
22
+ readonly FinishMessage: "d";
23
+ readonly FinishStep: "e";
24
+ readonly StartStep: "f";
25
+ readonly ReasoningDelta: "g";
26
+ readonly Source: "h";
27
+ readonly RedactedReasoning: "i";
28
+ readonly ReasoningSignature: "j";
29
+ readonly File: "k";
30
+ readonly AuiUpdateStateOperations: "aui-state";
31
+ readonly AuiTextDelta: "aui-text-delta";
32
+ readonly AuiReasoningDelta: "aui-reasoning-delta";
33
+ readonly AuiDataPart: "aui-data";
34
+ };
35
+ type DataStreamStreamChunkType = (typeof DataStreamStreamChunkType)[keyof typeof DataStreamStreamChunkType];
35
36
  type DataStreamStreamChunkValue = {
36
37
  [DataStreamStreamChunkType.TextDelta]: string;
37
38
  [DataStreamStreamChunkType.Data]: ReadonlyJSONValue[];
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-types.d.ts","names":[],"sources":["../../../../src/core/serialization/data-stream/chunk-types.ts"],"mappings":";;;KAMY,qBACT,KAAK;EACJ,MAAM;EACN,OAAO,2BAA2B;KAEpC;KAEG;KASA;EACH;EACA;;aAGU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;KAEG;GACF,0BAA0B;GAC1B,0BAA0B,OAAO;GACjC,0BAA0B,aAAa;GACvC,0BAA0B;IACzB;IACA;IACA,MAAM;;GAEP,0BAA0B;IACzB;IACA;IACA;;GAED,0BAA0B;IACzB;IACA;;GAED,0BAA0B;IACzB;IACA,QAAQ;IAGR,WAAW;IACX;;GAED,0BAA0B;GAC1B,0BAA0B;IACzB,cAAc;IACd,OAAO;IACP;;GAED,0BAA0B;IACzB,cAAc;IACd,OAAO;;GAER,0BAA0B;IACzB;;GAED,0BAA0B;GAC1B,0BAA0B;IACzB;IACA;IACA;IACA;IACA;;GAED,0BAA0B;IAAsB;;GAChD,0BAA0B;IAAuB;;GACjD,0BAA0B;IAAS;IAAc;;GAGjD,0BAA0B,2BAA2B;GACrD,0BAA0B;IACzB;IACA;;GAED,0BAA0B;IACzB;IACA;;GAED,0BAA0B;IACzB;IACA,MAAM;IACN"}
1
+ {"version":3,"file":"chunk-types.d.ts","names":[],"sources":["../../../../src/core/serialization/data-stream/chunk-types.ts"],"mappings":";;;KAMY,qBACT,KAAK;EACJ,MAAM;EACN,OAAO,2BAA2B;KAEpC;KAEG;KASA;EACH;EACA;;cAGW;;;;;;;;;;;;;;;;;;;;;;KAuBD,oCACF,wCAAwC;KAC7C;GACF,0BAA0B;GAC1B,0BAA0B,OAAO;GACjC,0BAA0B,aAAa;GACvC,0BAA0B;IACzB;IACA;IACA,MAAM;;GAEP,0BAA0B;IACzB;IACA;IACA;;GAED,0BAA0B;IACzB;IACA;;GAED,0BAA0B;IACzB;IACA,QAAQ;IAGR,WAAW;IACX;;GAED,0BAA0B;GAC1B,0BAA0B;IACzB,cAAc;IACd,OAAO;IACP;;GAED,0BAA0B;IACzB,cAAc;IACd,OAAO;;GAER,0BAA0B;IACzB;;GAED,0BAA0B;GAC1B,0BAA0B;IACzB;IACA;IACA;IACA;IACA;;GAED,0BAA0B;IAAsB;;GAChD,0BAA0B;IAAuB;;GACjD,0BAA0B;IAAS;IAAc;;GAGjD,0BAA0B,2BAA2B;GACrD,0BAA0B;IACzB;IACA;;GAED,0BAA0B;IACzB;IACA;;GAED,0BAA0B;IACzB;IACA,MAAM;IACN"}
@@ -1,27 +1,26 @@
1
1
  //#region src/core/serialization/data-stream/chunk-types.ts
2
- let DataStreamStreamChunkType = /* @__PURE__ */ function(DataStreamStreamChunkType) {
3
- DataStreamStreamChunkType["TextDelta"] = "0";
4
- DataStreamStreamChunkType["Data"] = "2";
5
- DataStreamStreamChunkType["Error"] = "3";
6
- DataStreamStreamChunkType["Annotation"] = "8";
7
- DataStreamStreamChunkType["ToolCall"] = "9";
8
- DataStreamStreamChunkType["ToolCallResult"] = "a";
9
- DataStreamStreamChunkType["StartToolCall"] = "b";
10
- DataStreamStreamChunkType["ToolCallArgsTextDelta"] = "c";
11
- DataStreamStreamChunkType["FinishMessage"] = "d";
12
- DataStreamStreamChunkType["FinishStep"] = "e";
13
- DataStreamStreamChunkType["StartStep"] = "f";
14
- DataStreamStreamChunkType["ReasoningDelta"] = "g";
15
- DataStreamStreamChunkType["Source"] = "h";
16
- DataStreamStreamChunkType["RedactedReasoning"] = "i";
17
- DataStreamStreamChunkType["ReasoningSignature"] = "j";
18
- DataStreamStreamChunkType["File"] = "k";
19
- DataStreamStreamChunkType["AuiUpdateStateOperations"] = "aui-state";
20
- DataStreamStreamChunkType["AuiTextDelta"] = "aui-text-delta";
21
- DataStreamStreamChunkType["AuiReasoningDelta"] = "aui-reasoning-delta";
22
- DataStreamStreamChunkType["AuiDataPart"] = "aui-data";
23
- return DataStreamStreamChunkType;
24
- }({});
2
+ const DataStreamStreamChunkType = {
3
+ TextDelta: "0",
4
+ Data: "2",
5
+ Error: "3",
6
+ Annotation: "8",
7
+ ToolCall: "9",
8
+ ToolCallResult: "a",
9
+ StartToolCall: "b",
10
+ ToolCallArgsTextDelta: "c",
11
+ FinishMessage: "d",
12
+ FinishStep: "e",
13
+ StartStep: "f",
14
+ ReasoningDelta: "g",
15
+ Source: "h",
16
+ RedactedReasoning: "i",
17
+ ReasoningSignature: "j",
18
+ File: "k",
19
+ AuiUpdateStateOperations: "aui-state",
20
+ AuiTextDelta: "aui-text-delta",
21
+ AuiReasoningDelta: "aui-reasoning-delta",
22
+ AuiDataPart: "aui-data"
23
+ };
25
24
  //#endregion
26
25
  export { DataStreamStreamChunkType };
27
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-types.js","names":[],"sources":["../../../../src/core/serialization/data-stream/chunk-types.ts"],"sourcesContent":["import type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"../../../utils/json/json-value\";\nimport type { GorpStreamOperation } from \"../../gorp/types\";\n\nexport type DataStreamChunk = {\n [K in DataStreamStreamChunkType]: {\n type: K;\n value: DataStreamStreamChunkValue[K];\n };\n}[DataStreamStreamChunkType];\n\ntype LanguageModelV1FinishReason =\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n\ntype LanguageModelV1Usage = {\n inputTokens: number;\n outputTokens: number;\n};\n\nexport enum DataStreamStreamChunkType {\n TextDelta = \"0\",\n Data = \"2\",\n Error = \"3\",\n Annotation = \"8\",\n ToolCall = \"9\",\n ToolCallResult = \"a\",\n StartToolCall = \"b\",\n ToolCallArgsTextDelta = \"c\",\n FinishMessage = \"d\",\n FinishStep = \"e\",\n StartStep = \"f\",\n ReasoningDelta = \"g\",\n Source = \"h\",\n RedactedReasoning = \"i\",\n ReasoningSignature = \"j\",\n File = \"k\",\n\n AuiUpdateStateOperations = \"aui-state\",\n AuiTextDelta = \"aui-text-delta\",\n AuiReasoningDelta = \"aui-reasoning-delta\",\n AuiDataPart = \"aui-data\",\n}\ntype DataStreamStreamChunkValue = {\n [DataStreamStreamChunkType.TextDelta]: string;\n [DataStreamStreamChunkType.Data]: ReadonlyJSONValue[];\n [DataStreamStreamChunkType.Annotation]: ReadonlyJSONValue[];\n [DataStreamStreamChunkType.ToolCall]: {\n toolCallId: string;\n toolName: string;\n args: ReadonlyJSONObject;\n };\n [DataStreamStreamChunkType.StartToolCall]: {\n toolCallId: string;\n toolName: string;\n parentId?: string;\n };\n [DataStreamStreamChunkType.ToolCallArgsTextDelta]: {\n toolCallId: string;\n argsTextDelta: string;\n };\n [DataStreamStreamChunkType.ToolCallResult]: {\n toolCallId: string;\n result: ReadonlyJSONValue;\n\n // aui-extensions\n artifact?: ReadonlyJSONValue | undefined;\n isError?: boolean;\n };\n [DataStreamStreamChunkType.Error]: string;\n [DataStreamStreamChunkType.FinishStep]: {\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelV1Usage;\n isContinued: boolean;\n };\n [DataStreamStreamChunkType.FinishMessage]: {\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelV1Usage;\n };\n [DataStreamStreamChunkType.StartStep]: {\n messageId: string;\n };\n [DataStreamStreamChunkType.ReasoningDelta]: string;\n [DataStreamStreamChunkType.Source]: {\n sourceType: \"url\";\n id: string;\n url: string;\n title?: string;\n parentId?: string;\n };\n [DataStreamStreamChunkType.RedactedReasoning]: { data: string };\n [DataStreamStreamChunkType.ReasoningSignature]: { signature: string };\n [DataStreamStreamChunkType.File]: { data: string; mimeType: string };\n\n // aui-extensions\n [DataStreamStreamChunkType.AuiUpdateStateOperations]: GorpStreamOperation[];\n [DataStreamStreamChunkType.AuiTextDelta]: {\n textDelta: string;\n parentId: string;\n };\n [DataStreamStreamChunkType.AuiReasoningDelta]: {\n reasoningDelta: string;\n parentId: string;\n };\n [DataStreamStreamChunkType.AuiDataPart]: {\n name: string;\n data: ReadonlyJSONValue;\n parentId?: string;\n };\n};\n"],"mappings":";AA2BA,IAAY,4BAAL,yBAAA,2BAAA;CACL,0BAAA,eAAA;CACA,0BAAA,UAAA;CACA,0BAAA,WAAA;CACA,0BAAA,gBAAA;CACA,0BAAA,cAAA;CACA,0BAAA,oBAAA;CACA,0BAAA,mBAAA;CACA,0BAAA,2BAAA;CACA,0BAAA,mBAAA;CACA,0BAAA,gBAAA;CACA,0BAAA,eAAA;CACA,0BAAA,oBAAA;CACA,0BAAA,YAAA;CACA,0BAAA,uBAAA;CACA,0BAAA,wBAAA;CACA,0BAAA,UAAA;CAEA,0BAAA,8BAAA;CACA,0BAAA,kBAAA;CACA,0BAAA,uBAAA;CACA,0BAAA,iBAAA;;AACF,EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"chunk-types.js","names":[],"sources":["../../../../src/core/serialization/data-stream/chunk-types.ts"],"sourcesContent":["import type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"../../../utils/json/json-value\";\nimport type { GorpStreamOperation } from \"../../gorp/types\";\n\nexport type DataStreamChunk = {\n [K in DataStreamStreamChunkType]: {\n type: K;\n value: DataStreamStreamChunkValue[K];\n };\n}[DataStreamStreamChunkType];\n\ntype LanguageModelV1FinishReason =\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n\ntype LanguageModelV1Usage = {\n inputTokens: number;\n outputTokens: number;\n};\n\nexport const DataStreamStreamChunkType = {\n TextDelta: \"0\",\n Data: \"2\",\n Error: \"3\",\n Annotation: \"8\",\n ToolCall: \"9\",\n ToolCallResult: \"a\",\n StartToolCall: \"b\",\n ToolCallArgsTextDelta: \"c\",\n FinishMessage: \"d\",\n FinishStep: \"e\",\n StartStep: \"f\",\n ReasoningDelta: \"g\",\n Source: \"h\",\n RedactedReasoning: \"i\",\n ReasoningSignature: \"j\",\n File: \"k\",\n\n AuiUpdateStateOperations: \"aui-state\",\n AuiTextDelta: \"aui-text-delta\",\n AuiReasoningDelta: \"aui-reasoning-delta\",\n AuiDataPart: \"aui-data\",\n} as const;\nexport type DataStreamStreamChunkType =\n (typeof DataStreamStreamChunkType)[keyof typeof DataStreamStreamChunkType];\ntype DataStreamStreamChunkValue = {\n [DataStreamStreamChunkType.TextDelta]: string;\n [DataStreamStreamChunkType.Data]: ReadonlyJSONValue[];\n [DataStreamStreamChunkType.Annotation]: ReadonlyJSONValue[];\n [DataStreamStreamChunkType.ToolCall]: {\n toolCallId: string;\n toolName: string;\n args: ReadonlyJSONObject;\n };\n [DataStreamStreamChunkType.StartToolCall]: {\n toolCallId: string;\n toolName: string;\n parentId?: string;\n };\n [DataStreamStreamChunkType.ToolCallArgsTextDelta]: {\n toolCallId: string;\n argsTextDelta: string;\n };\n [DataStreamStreamChunkType.ToolCallResult]: {\n toolCallId: string;\n result: ReadonlyJSONValue;\n\n // aui-extensions\n artifact?: ReadonlyJSONValue | undefined;\n isError?: boolean;\n };\n [DataStreamStreamChunkType.Error]: string;\n [DataStreamStreamChunkType.FinishStep]: {\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelV1Usage;\n isContinued: boolean;\n };\n [DataStreamStreamChunkType.FinishMessage]: {\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelV1Usage;\n };\n [DataStreamStreamChunkType.StartStep]: {\n messageId: string;\n };\n [DataStreamStreamChunkType.ReasoningDelta]: string;\n [DataStreamStreamChunkType.Source]: {\n sourceType: \"url\";\n id: string;\n url: string;\n title?: string;\n parentId?: string;\n };\n [DataStreamStreamChunkType.RedactedReasoning]: { data: string };\n [DataStreamStreamChunkType.ReasoningSignature]: { signature: string };\n [DataStreamStreamChunkType.File]: { data: string; mimeType: string };\n\n // aui-extensions\n [DataStreamStreamChunkType.AuiUpdateStateOperations]: GorpStreamOperation[];\n [DataStreamStreamChunkType.AuiTextDelta]: {\n textDelta: string;\n parentId: string;\n };\n [DataStreamStreamChunkType.AuiReasoningDelta]: {\n reasoningDelta: string;\n parentId: string;\n };\n [DataStreamStreamChunkType.AuiDataPart]: {\n name: string;\n data: ReadonlyJSONValue;\n parentId?: string;\n };\n};\n"],"mappings":";AA2BA,MAAa,4BAA4B;CACvC,WAAW;CACX,MAAM;CACN,OAAO;CACP,YAAY;CACZ,UAAU;CACV,gBAAgB;CAChB,eAAe;CACf,uBAAuB;CACvB,eAAe;CACf,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,QAAQ;CACR,mBAAmB;CACnB,oBAAoB;CACpB,MAAM;CAEN,0BAA0B;CAC1B,cAAc;CACd,mBAAmB;CACnB,aAAa;AACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.d.ts","names":[],"sources":["../../../../src/core/serialization/data-stream/serialization.ts"],"mappings":";;cAEa,+BAA+B,gBAC1C;;;cAYW,+BAA+B,wBAE1C"}
1
+ {"version":3,"file":"serialization.d.ts","names":[],"sources":["../../../../src/core/serialization/data-stream/serialization.ts"],"mappings":";;cAGa,+BAA+B,gBAC1C;;;cAYW,+BAA+B,wBAE1C"}