@ai2070/l0
Version:
L0: The Missing Reliability Substrate for AI
57 lines (56 loc) • 1.43 kB
JavaScript
async function* wrapVercelAIObjectStream(streamResult, options = {}) {
const { includeUsage = true } = options;
try {
for await (const chunk of streamResult.textStream) {
yield {
type: "token",
value: chunk,
timestamp: Date.now()
};
}
let usage;
if (includeUsage) {
try {
const rawUsage = await streamResult.usage;
if (rawUsage && typeof rawUsage === "object") {
usage = rawUsage;
}
} catch {
}
}
yield {
type: "complete",
timestamp: Date.now(),
...usage ? { usage } : {}
};
} catch (error) {
yield {
type: "error",
error: error instanceof Error ? error : new Error(String(error)),
timestamp: Date.now()
};
}
}
function isVercelAIObjectStream(obj) {
if (!obj || typeof obj !== "object") {
return false;
}
const stream = obj;
return "partialObjectStream" in stream && "object" in stream && "textStream" in stream && !("toolCalls" in stream);
}
const vercelAIObjectAdapter = {
name: "vercel-ai-object",
detect: isVercelAIObjectStream,
wrap: wrapVercelAIObjectStream
};
import { registerAdapter } from "./registry";
try {
registerAdapter(vercelAIObjectAdapter, { silent: true, priority: 10 });
} catch {
}
export {
isVercelAIObjectStream,
vercelAIObjectAdapter,
wrapVercelAIObjectStream
};
//# sourceMappingURL=vercel-ai-object.js.map