@tanstack/ai
Version:
Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.
50 lines (49 loc) • 1.29 kB
JavaScript
import { EventType } from "@ag-ui/core";
import { toRunErrorPayload } from "./error-payload.js";
function createId(prefix) {
return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
}
async function* streamGenerationResult(generator, options) {
const runId = createId("run");
const threadId = createId("thread");
yield {
type: EventType.RUN_STARTED,
runId,
threadId,
timestamp: Date.now()
};
try {
const result = await generator();
yield {
type: EventType.CUSTOM,
name: "generation:result",
value: result,
timestamp: Date.now()
};
yield {
type: EventType.RUN_FINISHED,
runId,
threadId,
finishReason: "stop",
timestamp: Date.now()
};
} catch (error) {
const payload = toRunErrorPayload(error, "Generation failed");
const codeFields = payload.code !== void 0 ? { code: payload.code } : void 0;
yield {
type: EventType.RUN_ERROR,
message: payload.message,
...codeFields,
// Deprecated nested form for backward compatibility
error: {
message: payload.message,
...codeFields
},
timestamp: Date.now()
};
}
}
export {
streamGenerationResult
};
//# sourceMappingURL=stream-generation-result.js.map