assistant-stream
Version:
Streaming utilities for AI assistants
38 lines (37 loc) • 1.22 kB
JavaScript
// src/core/utils/stream/AssistantMetaTransformStream.ts
var AssistantMetaTransformStream = class extends TransformStream {
constructor() {
const parts = [];
super({ transform(chunk, controller) {
if (chunk.type === "part-start") {
if (chunk.path.length !== 0) {
controller.error(/* @__PURE__ */ new Error("Nested parts are not supported"));
return;
}
parts.push(chunk.part);
controller.enqueue(chunk);
return;
}
if (chunk.type === "text-delta" || chunk.type === "result" || chunk.type === "part-finish" || chunk.type === "tool-call-args-text-finish" || chunk.type === "tool-call-approval") {
if (chunk.path.length !== 1) {
controller.error(/* @__PURE__ */ new Error(`${chunk.type} chunks must have a path of length 1`));
return;
}
const idx = chunk.path[0];
if (idx < 0 || idx >= parts.length) {
controller.error(/* @__PURE__ */ new Error(`Invalid path index: ${idx}`));
return;
}
const part = parts[idx];
controller.enqueue({
...chunk,
meta: part
});
return;
}
controller.enqueue(chunk);
} });
}
};
export { AssistantMetaTransformStream };
//# sourceMappingURL=AssistantMetaTransformStream.js.map