@zhivex-ai/core 0.1.0
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.
- package/dist/catalog.d.ts +15 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +18 -0
- package/dist/catalog.js.map +1 -0
- package/dist/embed.d.ts +4 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +16 -0
- package/dist/embed.js.map +1 -0
- package/dist/errors.d.ts +23 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +26 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch.d.ts +5 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +25 -0
- package/dist/fetch.js.map +1 -0
- package/dist/generate-object.d.ts +5 -0
- package/dist/generate-object.d.ts.map +1 -0
- package/dist/generate-object.js +327 -0
- package/dist/generate-object.js.map +1 -0
- package/dist/generate-text.d.ts +5 -0
- package/dist/generate-text.d.ts.map +1 -0
- package/dist/generate-text.js +266 -0
- package/dist/generate-text.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/messages.d.ts +17 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +92 -0
- package/dist/messages.js.map +1 -0
- package/dist/middleware.d.ts +27 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +168 -0
- package/dist/middleware.js.map +1 -0
- package/dist/runtime.d.ts +9 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +62 -0
- package/dist/runtime.js.map +1 -0
- package/dist/stream.d.ts +17 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +110 -0
- package/dist/stream.js.map +1 -0
- package/dist/types.d.ts +315 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui.d.ts +10 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +65 -0
- package/dist/ui.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CallableProviderAdapter, ProviderAdapter, RetryOptions } from "./types.js";
|
|
2
|
+
export declare const mergeAbortSignals: (...signals: Array<AbortSignal | undefined>) => AbortSignal | undefined;
|
|
3
|
+
export declare const withTimeoutSignal: (options: RetryOptions) => {
|
|
4
|
+
signal: AbortSignal | undefined;
|
|
5
|
+
cleanup: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const withRetry: <T>(operation: () => Promise<T>, options?: RetryOptions) => Promise<T>;
|
|
8
|
+
export declare const createProviderAdapter: <TAdapter extends ProviderAdapter>(adapter: TAdapter) => CallableProviderAdapter & TAdapter;
|
|
9
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWzF,eAAO,MAAM,iBAAiB,GAAI,GAAG,SAAS,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,4BAkB3E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,YAAY;;;CAatD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAU,CAAC,EAAE,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,UAAS,YAAiB,KAAG,OAAO,CAAC,CAAC,CAkBrG,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,eAAe,EAAE,SAAS,QAAQ,KAAG,uBAAuB,GAAG,QAQrH,CAAC"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ProviderHTTPError } from "./errors.js";
|
|
2
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
3
|
+
const isRetryableError = (error) => {
|
|
4
|
+
if (error instanceof ProviderHTTPError) {
|
|
5
|
+
return error.status === 408 || error.status === 429 || error.status >= 500;
|
|
6
|
+
}
|
|
7
|
+
return false;
|
|
8
|
+
};
|
|
9
|
+
export const mergeAbortSignals = (...signals) => {
|
|
10
|
+
const activeSignals = signals.filter(Boolean);
|
|
11
|
+
if (!activeSignals.length) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const controller = new AbortController();
|
|
15
|
+
const abort = () => controller.abort();
|
|
16
|
+
for (const signal of activeSignals) {
|
|
17
|
+
if (signal?.aborted) {
|
|
18
|
+
controller.abort();
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
22
|
+
}
|
|
23
|
+
return controller.signal;
|
|
24
|
+
};
|
|
25
|
+
export const withTimeoutSignal = (options) => {
|
|
26
|
+
if (!options.timeoutMs) {
|
|
27
|
+
return { signal: options.abortSignal, cleanup: () => { } };
|
|
28
|
+
}
|
|
29
|
+
const controller = new AbortController();
|
|
30
|
+
const signal = mergeAbortSignals(options.abortSignal, controller.signal);
|
|
31
|
+
const timeout = setTimeout(() => controller.abort(), options.timeoutMs);
|
|
32
|
+
return {
|
|
33
|
+
signal,
|
|
34
|
+
cleanup: () => clearTimeout(timeout)
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export const withRetry = async (operation, options = {}) => {
|
|
38
|
+
const maxRetries = Math.max(0, options.maxRetries ?? 0);
|
|
39
|
+
const retryBackoffMs = options.retryBackoffMs ?? 250;
|
|
40
|
+
let lastError;
|
|
41
|
+
for (let attempt = 0; attempt <= maxRetries; attempt += 1) {
|
|
42
|
+
try {
|
|
43
|
+
return await operation();
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
lastError = error;
|
|
47
|
+
if (attempt >= maxRetries || !isRetryableError(error)) {
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
await sleep(retryBackoffMs * (attempt + 1));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
throw lastError;
|
|
54
|
+
};
|
|
55
|
+
export const createProviderAdapter = (adapter) => {
|
|
56
|
+
const callable = ((modelId) => adapter.languageModel(modelId));
|
|
57
|
+
for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(adapter))) {
|
|
58
|
+
Object.defineProperty(callable, key, descriptor);
|
|
59
|
+
}
|
|
60
|
+
return callable;
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEhF,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAW,EAAE;IACnD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,OAAuC,EAAE,EAAE;IAC9E,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAEvC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAqB,EAAE,EAAE;IACzD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAExE,OAAO;QACL,MAAM;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAK,SAA2B,EAAE,UAAwB,EAAE,EAAc,EAAE;IACxG,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC;IACrD,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO,IAAI,UAAU,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAmC,OAAiB,EAAsC,EAAE;IAC/H,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAuC,CAAC;IAE7G,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
package/dist/stream.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StreamTextResult, UIMessageChunk } from "./types.js";
|
|
2
|
+
export declare function streamSSE(response: Response): AsyncGenerator<{
|
|
3
|
+
event?: string;
|
|
4
|
+
data: string;
|
|
5
|
+
}, void, undefined>;
|
|
6
|
+
export declare const toSSEStream: <TValue>(source: AsyncIterable<TValue>, options?: {
|
|
7
|
+
event?: string | ((value: TValue) => string | undefined);
|
|
8
|
+
}) => ReadableStream<Uint8Array>;
|
|
9
|
+
export declare const toSSEResponse: <TValue>(source: AsyncIterable<TValue>, options?: ResponseInit & {
|
|
10
|
+
event?: string | ((value: TValue) => string | undefined);
|
|
11
|
+
}) => Response;
|
|
12
|
+
export declare const toTextReadableStream: (result: StreamTextResult) => ReadableStream<Uint8Array>;
|
|
13
|
+
export declare const toTextStreamResponse: (result: StreamTextResult, init?: ResponseInit) => Response;
|
|
14
|
+
export declare const toUIMessageStreamResponse: (source: StreamTextResult | AsyncIterable<UIMessageChunk>, init?: ResponseInit & {
|
|
15
|
+
messageId?: string;
|
|
16
|
+
}) => Response;
|
|
17
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMnE,wBAAuB,SAAS,CAC9B,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAiDnE;AAUD,eAAO,MAAM,WAAW,GAAI,MAAM,EAChC,QAAQ,aAAa,CAAC,MAAM,CAAC,EAC7B,UAAS;IACP,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD,KACL,cAAc,CAAC,UAAU,CAcxB,CAAC;AAEL,eAAO,MAAM,aAAa,GAAI,MAAM,EAClC,QAAQ,aAAa,CAAC,MAAM,CAAC,EAC7B,UAAS,YAAY,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD,KACL,QAWF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,gBAAgB,KAAG,cAAc,CAAC,UAAU,CAYrF,CAAC;AAEL,eAAO,MAAM,oBAAoB,GAAI,QAAQ,gBAAgB,EAAE,OAAM,YAAiB,KAAG,QAOrF,CAAC;AAEL,eAAO,MAAM,yBAAyB,GACpC,QAAQ,gBAAgB,GAAG,aAAa,CAAC,cAAc,CAAC,EACxD,OAAM,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,KAC/C,QAUF,CAAC"}
|
package/dist/stream.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { ParseError, ProviderHTTPError } from "./errors.js";
|
|
2
|
+
import { toUIMessageStream } from "./ui.js";
|
|
3
|
+
const decoder = new TextDecoder();
|
|
4
|
+
const encoder = new TextEncoder();
|
|
5
|
+
export async function* streamSSE(response) {
|
|
6
|
+
if (!response.ok) {
|
|
7
|
+
const body = await response.text();
|
|
8
|
+
throw new ProviderHTTPError(`Streaming request failed with status ${response.status}.`, response.status, {
|
|
9
|
+
responseBody: body
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
if (!response.body) {
|
|
13
|
+
throw new ParseError("Streaming response did not include a body.");
|
|
14
|
+
}
|
|
15
|
+
let buffer = "";
|
|
16
|
+
const reader = response.body.getReader();
|
|
17
|
+
while (true) {
|
|
18
|
+
const { done, value } = await reader.read();
|
|
19
|
+
if (done) {
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
buffer += decoder.decode(value, { stream: true });
|
|
23
|
+
while (true) {
|
|
24
|
+
const separatorIndex = buffer.indexOf("\n\n");
|
|
25
|
+
if (separatorIndex === -1) {
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
const rawEvent = buffer.slice(0, separatorIndex);
|
|
29
|
+
buffer = buffer.slice(separatorIndex + 2);
|
|
30
|
+
let event;
|
|
31
|
+
const dataLines = [];
|
|
32
|
+
for (const line of rawEvent.split("\n")) {
|
|
33
|
+
if (line.startsWith("event:")) {
|
|
34
|
+
event = line.slice(6).trim();
|
|
35
|
+
}
|
|
36
|
+
else if (line.startsWith("data:")) {
|
|
37
|
+
dataLines.push(line.slice(5).trim());
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const data = dataLines.join("\n");
|
|
41
|
+
if (data.length) {
|
|
42
|
+
yield { event, data };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const normalizeSSEData = (value) => {
|
|
48
|
+
const payload = typeof value === "string" ? value : JSON.stringify(value);
|
|
49
|
+
return payload
|
|
50
|
+
.split("\n")
|
|
51
|
+
.map((line) => `data: ${line}`)
|
|
52
|
+
.join("\n");
|
|
53
|
+
};
|
|
54
|
+
export const toSSEStream = (source, options = {}) => new ReadableStream({
|
|
55
|
+
async start(controller) {
|
|
56
|
+
try {
|
|
57
|
+
for await (const value of source) {
|
|
58
|
+
const eventName = typeof options.event === "function" ? options.event(value) : options.event;
|
|
59
|
+
const eventLine = eventName ? `event: ${eventName}\n` : "";
|
|
60
|
+
controller.enqueue(encoder.encode(`${eventLine}${normalizeSSEData(value)}\n\n`));
|
|
61
|
+
}
|
|
62
|
+
controller.close();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
controller.error(error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
export const toSSEResponse = (source, options = {}) => {
|
|
70
|
+
const { event, headers, ...init } = options;
|
|
71
|
+
return new Response(toSSEStream(source, { event }), {
|
|
72
|
+
...init,
|
|
73
|
+
headers: {
|
|
74
|
+
"content-type": "text/event-stream; charset=utf-8",
|
|
75
|
+
"cache-control": "no-cache, no-transform",
|
|
76
|
+
connection: "keep-alive",
|
|
77
|
+
...Object.fromEntries(new Headers(headers).entries())
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
export const toTextReadableStream = (result) => new ReadableStream({
|
|
82
|
+
async start(controller) {
|
|
83
|
+
try {
|
|
84
|
+
for await (const chunk of result.textStream) {
|
|
85
|
+
controller.enqueue(encoder.encode(chunk));
|
|
86
|
+
}
|
|
87
|
+
controller.close();
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
controller.error(error);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
export const toTextStreamResponse = (result, init = {}) => new Response(toTextReadableStream(result), {
|
|
95
|
+
...init,
|
|
96
|
+
headers: {
|
|
97
|
+
"content-type": "text/plain; charset=utf-8",
|
|
98
|
+
...Object.fromEntries(new Headers(init.headers).entries())
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
export const toUIMessageStreamResponse = (source, init = {}) => {
|
|
102
|
+
const { messageId, headers, ...rest } = init;
|
|
103
|
+
const uiStream = "eventStream" in source ? toUIMessageStream(source, messageId) : source;
|
|
104
|
+
return toSSEResponse(uiStream, {
|
|
105
|
+
...rest,
|
|
106
|
+
headers,
|
|
107
|
+
event: (chunk) => chunk.type
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import type { z, ZodTypeAny } from "zod";
|
|
2
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
3
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
4
|
+
[key: string]: JsonValue;
|
|
5
|
+
};
|
|
6
|
+
export type PartialJsonValue = JsonPrimitive | PartialJsonValue[] | {
|
|
7
|
+
[key: string]: PartialJsonValue | undefined;
|
|
8
|
+
};
|
|
9
|
+
export type MessageRole = "system" | "user" | "assistant" | "tool";
|
|
10
|
+
export type FinishReason = "stop" | "length" | "tool-calls" | "content-filter" | "error" | "unknown";
|
|
11
|
+
export type StructuredOutputMode = "auto" | "native" | "prompted";
|
|
12
|
+
export interface TokenUsage {
|
|
13
|
+
inputTokens?: number;
|
|
14
|
+
outputTokens?: number;
|
|
15
|
+
totalTokens?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ToolCall {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
input: JsonValue;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolExecutionResult {
|
|
23
|
+
toolCallId: string;
|
|
24
|
+
toolName: string;
|
|
25
|
+
output?: JsonValue;
|
|
26
|
+
error?: {
|
|
27
|
+
message: string;
|
|
28
|
+
};
|
|
29
|
+
isError: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface TextPart {
|
|
32
|
+
type: "text";
|
|
33
|
+
text: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ImagePart {
|
|
36
|
+
type: "image";
|
|
37
|
+
image: string;
|
|
38
|
+
mediaType?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface FilePart {
|
|
41
|
+
type: "file";
|
|
42
|
+
data: string;
|
|
43
|
+
mediaType: string;
|
|
44
|
+
filename?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface ToolCallPart {
|
|
47
|
+
type: "tool-call";
|
|
48
|
+
toolCall: ToolCall;
|
|
49
|
+
}
|
|
50
|
+
export interface ToolResultPart {
|
|
51
|
+
type: "tool-result";
|
|
52
|
+
toolResult: ToolExecutionResult;
|
|
53
|
+
}
|
|
54
|
+
export type ContentPart = TextPart | ImagePart | FilePart | ToolCallPart | ToolResultPart;
|
|
55
|
+
export interface ModelMessage {
|
|
56
|
+
role: MessageRole;
|
|
57
|
+
parts: ContentPart[];
|
|
58
|
+
}
|
|
59
|
+
export interface ModelCapabilities {
|
|
60
|
+
streaming: boolean;
|
|
61
|
+
tools: boolean;
|
|
62
|
+
structuredOutput: boolean;
|
|
63
|
+
jsonMode: boolean;
|
|
64
|
+
toolChoice: boolean;
|
|
65
|
+
parallelToolCalls: boolean;
|
|
66
|
+
vision: boolean;
|
|
67
|
+
files: boolean;
|
|
68
|
+
audioInput: boolean;
|
|
69
|
+
audioOutput: boolean;
|
|
70
|
+
embeddings: boolean;
|
|
71
|
+
reasoning: boolean;
|
|
72
|
+
webSearch: boolean;
|
|
73
|
+
}
|
|
74
|
+
export interface RetryOptions {
|
|
75
|
+
abortSignal?: AbortSignal;
|
|
76
|
+
timeoutMs?: number;
|
|
77
|
+
maxRetries?: number;
|
|
78
|
+
retryBackoffMs?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface StructuredOutputConfig<TSchema extends ZodTypeAny = ZodTypeAny> {
|
|
81
|
+
schema: TSchema;
|
|
82
|
+
mode: StructuredOutputMode;
|
|
83
|
+
name?: string;
|
|
84
|
+
description?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface StreamTextDeltaEvent {
|
|
87
|
+
type: "text-delta";
|
|
88
|
+
textDelta: string;
|
|
89
|
+
}
|
|
90
|
+
export interface StreamToolCallEvent {
|
|
91
|
+
type: "tool-call";
|
|
92
|
+
toolCall: ToolCall;
|
|
93
|
+
}
|
|
94
|
+
export interface StreamToolResultEvent {
|
|
95
|
+
type: "tool-result";
|
|
96
|
+
toolResult: ToolExecutionResult;
|
|
97
|
+
}
|
|
98
|
+
export interface StreamFinishEvent {
|
|
99
|
+
type: "finish";
|
|
100
|
+
finishReason?: FinishReason;
|
|
101
|
+
providerFinishReason?: string;
|
|
102
|
+
usage?: TokenUsage;
|
|
103
|
+
}
|
|
104
|
+
export interface StreamErrorEvent {
|
|
105
|
+
type: "error";
|
|
106
|
+
error: Error;
|
|
107
|
+
}
|
|
108
|
+
export type StreamEvent = StreamTextDeltaEvent | StreamToolCallEvent | StreamToolResultEvent | StreamFinishEvent | StreamErrorEvent;
|
|
109
|
+
export interface StreamObjectDeltaEvent {
|
|
110
|
+
type: "object-delta";
|
|
111
|
+
textDelta: string;
|
|
112
|
+
partialText: string;
|
|
113
|
+
}
|
|
114
|
+
export interface StreamObjectPartialEvent<TObject = PartialJsonValue> {
|
|
115
|
+
type: "object-partial";
|
|
116
|
+
partialObject: TObject;
|
|
117
|
+
}
|
|
118
|
+
export interface StreamObjectCompleteEvent<TObject = JsonValue> {
|
|
119
|
+
type: "object-complete";
|
|
120
|
+
object: TObject;
|
|
121
|
+
}
|
|
122
|
+
export type ObjectStreamEvent<TObject = JsonValue, TPartialObject = PartialJsonValue> = StreamEvent | StreamObjectDeltaEvent | StreamObjectPartialEvent<TPartialObject> | StreamObjectCompleteEvent<TObject>;
|
|
123
|
+
export interface GenerateResult {
|
|
124
|
+
message?: ModelMessage;
|
|
125
|
+
messages?: ModelMessage[];
|
|
126
|
+
text?: string;
|
|
127
|
+
finishReason?: FinishReason;
|
|
128
|
+
providerFinishReason?: string;
|
|
129
|
+
usage?: TokenUsage;
|
|
130
|
+
rawResponse?: unknown;
|
|
131
|
+
}
|
|
132
|
+
export interface EmbedResult {
|
|
133
|
+
embeddings: number[][];
|
|
134
|
+
usage?: TokenUsage;
|
|
135
|
+
rawResponse?: unknown;
|
|
136
|
+
}
|
|
137
|
+
export type GenerateInputSource = {
|
|
138
|
+
prompt: string;
|
|
139
|
+
messages?: never;
|
|
140
|
+
} | {
|
|
141
|
+
prompt?: never;
|
|
142
|
+
messages: ModelMessage[];
|
|
143
|
+
} | {
|
|
144
|
+
prompt?: undefined;
|
|
145
|
+
messages?: undefined;
|
|
146
|
+
};
|
|
147
|
+
export type ProviderOptions = Record<string, unknown>;
|
|
148
|
+
export interface ModelGenerateInput<TProviderOptions extends ProviderOptions = ProviderOptions> extends RetryOptions {
|
|
149
|
+
messages: ModelMessage[];
|
|
150
|
+
tools?: ToolSet;
|
|
151
|
+
temperature?: number;
|
|
152
|
+
maxTokens?: number;
|
|
153
|
+
providerOptions?: TProviderOptions;
|
|
154
|
+
structuredOutput?: StructuredOutputConfig;
|
|
155
|
+
}
|
|
156
|
+
export interface LanguageModel<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
157
|
+
readonly provider: string;
|
|
158
|
+
readonly modelId: string;
|
|
159
|
+
readonly capabilities: ModelCapabilities;
|
|
160
|
+
generate(input: ModelGenerateInput<TProviderOptions>): Promise<GenerateResult>;
|
|
161
|
+
stream?(input: ModelGenerateInput<TProviderOptions>): Promise<AsyncIterable<StreamEvent>>;
|
|
162
|
+
}
|
|
163
|
+
export interface EmbeddingModel {
|
|
164
|
+
readonly provider: string;
|
|
165
|
+
readonly modelId: string;
|
|
166
|
+
readonly capabilities: ModelCapabilities;
|
|
167
|
+
embed(input: EmbedInput & RetryOptions): Promise<EmbedResult>;
|
|
168
|
+
}
|
|
169
|
+
export interface ProviderAdapter {
|
|
170
|
+
readonly name: string;
|
|
171
|
+
languageModel(modelId: string): LanguageModel;
|
|
172
|
+
embeddingModel?: (modelId: string) => EmbeddingModel;
|
|
173
|
+
}
|
|
174
|
+
export type CallableProviderAdapter = ProviderAdapter & ((modelId: string) => LanguageModel);
|
|
175
|
+
export interface ToolDefinition<TSchema extends ZodTypeAny = ZodTypeAny, TResult = JsonValue> {
|
|
176
|
+
name: string;
|
|
177
|
+
description?: string;
|
|
178
|
+
schema: TSchema;
|
|
179
|
+
execute: (input: z.infer<TSchema>) => Promise<TResult> | TResult;
|
|
180
|
+
}
|
|
181
|
+
export type ToolSet = Record<string, ToolDefinition>;
|
|
182
|
+
export type ProviderOptionsOf<TModel extends LanguageModel> = TModel extends LanguageModel<infer TProviderOptions> ? TProviderOptions : ProviderOptions;
|
|
183
|
+
export type GenerateTextOptions<TModel extends LanguageModel = LanguageModel> = RetryOptions & GenerateInputSource & {
|
|
184
|
+
model: TModel;
|
|
185
|
+
system?: string;
|
|
186
|
+
tools?: ToolSet;
|
|
187
|
+
maxSteps?: number;
|
|
188
|
+
temperature?: number;
|
|
189
|
+
maxTokens?: number;
|
|
190
|
+
providerOptions?: ProviderOptionsOf<TModel>;
|
|
191
|
+
structuredOutput?: StructuredOutputConfig;
|
|
192
|
+
};
|
|
193
|
+
export interface GenerateTextStep {
|
|
194
|
+
request: ModelGenerateInput;
|
|
195
|
+
response: GenerateResult;
|
|
196
|
+
}
|
|
197
|
+
export interface GenerateTextOutput {
|
|
198
|
+
text: string;
|
|
199
|
+
finishReason?: FinishReason;
|
|
200
|
+
providerFinishReason?: string;
|
|
201
|
+
usage?: TokenUsage;
|
|
202
|
+
steps: GenerateTextStep[];
|
|
203
|
+
messages: ModelMessage[];
|
|
204
|
+
toolResults: ToolExecutionResult[];
|
|
205
|
+
}
|
|
206
|
+
export type GenerateObjectOptions<TSchema extends ZodTypeAny, TModel extends LanguageModel = LanguageModel> = GenerateTextOptions<TModel> & {
|
|
207
|
+
schema: TSchema;
|
|
208
|
+
mode?: StructuredOutputMode;
|
|
209
|
+
schemaName?: string;
|
|
210
|
+
schemaDescription?: string;
|
|
211
|
+
};
|
|
212
|
+
export interface GenerateObjectOutput<TSchema extends ZodTypeAny> extends GenerateTextOutput {
|
|
213
|
+
object: z.infer<TSchema>;
|
|
214
|
+
objectMode: Exclude<StructuredOutputMode, "auto">;
|
|
215
|
+
}
|
|
216
|
+
export interface StreamObjectResult<TSchema extends ZodTypeAny> {
|
|
217
|
+
eventStream: AsyncIterable<ObjectStreamEvent<z.infer<TSchema>, Partial<z.infer<TSchema>>>>;
|
|
218
|
+
partialObjectStream: AsyncIterable<Partial<z.infer<TSchema>>>;
|
|
219
|
+
textStream: AsyncIterable<string>;
|
|
220
|
+
collect: () => Promise<GenerateObjectOutput<TSchema>>;
|
|
221
|
+
}
|
|
222
|
+
export interface StreamTextResult {
|
|
223
|
+
eventStream: AsyncIterable<StreamEvent>;
|
|
224
|
+
textStream: AsyncIterable<string>;
|
|
225
|
+
collect: () => Promise<GenerateTextOutput>;
|
|
226
|
+
}
|
|
227
|
+
export interface LanguageModelMiddlewareContext<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
228
|
+
model: LanguageModel<TProviderOptions>;
|
|
229
|
+
input: ModelGenerateInput<TProviderOptions>;
|
|
230
|
+
}
|
|
231
|
+
export interface LanguageModelMiddlewareNext<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
232
|
+
(): Promise<GenerateResult>;
|
|
233
|
+
}
|
|
234
|
+
export interface LanguageModelMiddleware<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
235
|
+
name?: string;
|
|
236
|
+
wrapGenerate?: (context: LanguageModelMiddlewareContext<TProviderOptions>, next: LanguageModelMiddlewareNext<TProviderOptions>) => Promise<GenerateResult>;
|
|
237
|
+
}
|
|
238
|
+
export interface CircuitBreakerState {
|
|
239
|
+
failures: number;
|
|
240
|
+
openedAt?: number;
|
|
241
|
+
}
|
|
242
|
+
export interface TelemetryGenerateStartEvent<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
243
|
+
type: "generate-start";
|
|
244
|
+
model: LanguageModel<TProviderOptions>;
|
|
245
|
+
input: ModelGenerateInput<TProviderOptions>;
|
|
246
|
+
startedAt: number;
|
|
247
|
+
}
|
|
248
|
+
export interface TelemetryGenerateFinishEvent<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
249
|
+
type: "generate-finish";
|
|
250
|
+
model: LanguageModel<TProviderOptions>;
|
|
251
|
+
input: ModelGenerateInput<TProviderOptions>;
|
|
252
|
+
output: GenerateResult;
|
|
253
|
+
startedAt: number;
|
|
254
|
+
finishedAt: number;
|
|
255
|
+
latencyMs: number;
|
|
256
|
+
}
|
|
257
|
+
export interface TelemetryGenerateErrorEvent<TProviderOptions extends ProviderOptions = ProviderOptions> {
|
|
258
|
+
type: "generate-error";
|
|
259
|
+
model: LanguageModel<TProviderOptions>;
|
|
260
|
+
input: ModelGenerateInput<TProviderOptions>;
|
|
261
|
+
error: Error;
|
|
262
|
+
startedAt: number;
|
|
263
|
+
finishedAt: number;
|
|
264
|
+
latencyMs: number;
|
|
265
|
+
}
|
|
266
|
+
export type LanguageModelTelemetryEvent<TProviderOptions extends ProviderOptions = ProviderOptions> = TelemetryGenerateStartEvent<TProviderOptions> | TelemetryGenerateFinishEvent<TProviderOptions> | TelemetryGenerateErrorEvent<TProviderOptions>;
|
|
267
|
+
export interface UIMessage {
|
|
268
|
+
id: string;
|
|
269
|
+
role: MessageRole;
|
|
270
|
+
parts: ContentPart[];
|
|
271
|
+
}
|
|
272
|
+
export interface UIMessageTextChunk {
|
|
273
|
+
type: "text-delta";
|
|
274
|
+
messageId: string;
|
|
275
|
+
role: "assistant";
|
|
276
|
+
textDelta: string;
|
|
277
|
+
}
|
|
278
|
+
export interface UIMessageToolCallChunk {
|
|
279
|
+
type: "tool-call";
|
|
280
|
+
messageId: string;
|
|
281
|
+
role: "assistant";
|
|
282
|
+
toolCall: ToolCall;
|
|
283
|
+
}
|
|
284
|
+
export interface UIMessageToolResultChunk {
|
|
285
|
+
type: "tool-result";
|
|
286
|
+
messageId: string;
|
|
287
|
+
role: "tool";
|
|
288
|
+
toolResult: ToolExecutionResult;
|
|
289
|
+
}
|
|
290
|
+
export interface UIMessageFinishChunk {
|
|
291
|
+
type: "finish";
|
|
292
|
+
messageId: string;
|
|
293
|
+
finishReason?: FinishReason;
|
|
294
|
+
providerFinishReason?: string;
|
|
295
|
+
usage?: TokenUsage;
|
|
296
|
+
}
|
|
297
|
+
export interface UIMessageErrorChunk {
|
|
298
|
+
type: "error";
|
|
299
|
+
messageId: string;
|
|
300
|
+
error: {
|
|
301
|
+
message: string;
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
export type UIMessageChunk = UIMessageTextChunk | UIMessageToolCallChunk | UIMessageToolResultChunk | UIMessageFinishChunk | UIMessageErrorChunk;
|
|
305
|
+
export interface EmbedInput {
|
|
306
|
+
values: string[];
|
|
307
|
+
}
|
|
308
|
+
export interface EmbedOptions extends RetryOptions {
|
|
309
|
+
model: EmbeddingModel;
|
|
310
|
+
value: string | string[];
|
|
311
|
+
}
|
|
312
|
+
export interface EmbedOutput extends EmbedResult {
|
|
313
|
+
values: string[];
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/ui.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GenerateTextOutput, ModelMessage, StreamEvent, StreamTextResult, UIMessage, UIMessageChunk } from "./types.js";
|
|
2
|
+
export declare const toUIMessage: (message: ModelMessage, id?: string) => UIMessage;
|
|
3
|
+
export declare const toUIMessages: (messages: ModelMessage[]) => UIMessage[];
|
|
4
|
+
export declare const fromUIMessage: (message: UIMessage) => ModelMessage;
|
|
5
|
+
export declare const fromUIMessages: (messages: UIMessage[]) => ModelMessage[];
|
|
6
|
+
export declare const serializeUIMessage: (message: UIMessage) => string;
|
|
7
|
+
export declare const deserializeUIMessage: (value: string) => UIMessage;
|
|
8
|
+
export declare const toUIMessageStream: (source: StreamTextResult | AsyncIterable<StreamEvent>, messageId?: string) => AsyncIterable<UIMessageChunk>;
|
|
9
|
+
export declare const collectUIMessage: (result: GenerateTextOutput, messageId?: string) => UIMessage;
|
|
10
|
+
//# sourceMappingURL=ui.d.ts.map
|
package/dist/ui.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAIpB,eAAO,MAAM,WAAW,GAAI,SAAS,YAAY,EAAE,KAAI,MAAmB,KAAG,SAI3E,CAAC;AAEH,eAAO,MAAM,YAAY,GAAI,UAAU,YAAY,EAAE,KAAG,SAAS,EAAqD,CAAC;AAEvH,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,KAAG,YAGjD,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,EAAE,KAAG,YAAY,EAAiC,CAAC;AAErG,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,KAAG,MAAiC,CAAC;AAC1F,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,SAA2C,CAAC;AAEjG,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,EACrD,YAAW,MAAmB,KAC7B,aAAa,CAAC,cAAc,CAqD9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,kBAAkB,EAAE,YAAW,MAAmB,KAAG,SACV,CAAC"}
|
package/dist/ui.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const randomId = () => `msg_${Math.random().toString(36).slice(2, 10)}`;
|
|
2
|
+
export const toUIMessage = (message, id = randomId()) => ({
|
|
3
|
+
id,
|
|
4
|
+
role: message.role,
|
|
5
|
+
parts: message.parts
|
|
6
|
+
});
|
|
7
|
+
export const toUIMessages = (messages) => messages.map((message) => toUIMessage(message));
|
|
8
|
+
export const fromUIMessage = (message) => ({
|
|
9
|
+
role: message.role,
|
|
10
|
+
parts: message.parts
|
|
11
|
+
});
|
|
12
|
+
export const fromUIMessages = (messages) => messages.map(fromUIMessage);
|
|
13
|
+
export const serializeUIMessage = (message) => JSON.stringify(message);
|
|
14
|
+
export const deserializeUIMessage = (value) => JSON.parse(value);
|
|
15
|
+
export const toUIMessageStream = (source, messageId = randomId()) => {
|
|
16
|
+
const eventStream = "eventStream" in source ? source.eventStream : source;
|
|
17
|
+
return (async function* () {
|
|
18
|
+
for await (const event of eventStream) {
|
|
19
|
+
if (event.type === "text-delta") {
|
|
20
|
+
yield {
|
|
21
|
+
type: "text-delta",
|
|
22
|
+
messageId,
|
|
23
|
+
role: "assistant",
|
|
24
|
+
textDelta: event.textDelta
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (event.type === "tool-call") {
|
|
28
|
+
yield {
|
|
29
|
+
type: "tool-call",
|
|
30
|
+
messageId,
|
|
31
|
+
role: "assistant",
|
|
32
|
+
toolCall: event.toolCall
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (event.type === "tool-result") {
|
|
36
|
+
yield {
|
|
37
|
+
type: "tool-result",
|
|
38
|
+
messageId,
|
|
39
|
+
role: "tool",
|
|
40
|
+
toolResult: event.toolResult
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (event.type === "finish") {
|
|
44
|
+
yield {
|
|
45
|
+
type: "finish",
|
|
46
|
+
messageId,
|
|
47
|
+
finishReason: event.finishReason,
|
|
48
|
+
providerFinishReason: event.providerFinishReason,
|
|
49
|
+
usage: event.usage
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (event.type === "error") {
|
|
53
|
+
yield {
|
|
54
|
+
type: "error",
|
|
55
|
+
messageId,
|
|
56
|
+
error: {
|
|
57
|
+
message: event.error.message
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
})();
|
|
63
|
+
};
|
|
64
|
+
export const collectUIMessage = (result, messageId = randomId()) => toUIMessage(result.messages.at(-1) ?? { role: "assistant", parts: [] }, messageId);
|
|
65
|
+
//# sourceMappingURL=ui.js.map
|