@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.
Files changed (53) hide show
  1. package/dist/catalog.d.ts +15 -0
  2. package/dist/catalog.d.ts.map +1 -0
  3. package/dist/catalog.js +18 -0
  4. package/dist/catalog.js.map +1 -0
  5. package/dist/embed.d.ts +4 -0
  6. package/dist/embed.d.ts.map +1 -0
  7. package/dist/embed.js +16 -0
  8. package/dist/embed.js.map +1 -0
  9. package/dist/errors.d.ts +23 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/errors.js +26 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/fetch.d.ts +5 -0
  14. package/dist/fetch.d.ts.map +1 -0
  15. package/dist/fetch.js +25 -0
  16. package/dist/fetch.js.map +1 -0
  17. package/dist/generate-object.d.ts +5 -0
  18. package/dist/generate-object.d.ts.map +1 -0
  19. package/dist/generate-object.js +327 -0
  20. package/dist/generate-object.js.map +1 -0
  21. package/dist/generate-text.d.ts +5 -0
  22. package/dist/generate-text.d.ts.map +1 -0
  23. package/dist/generate-text.js +266 -0
  24. package/dist/generate-text.js.map +1 -0
  25. package/dist/index.d.ts +13 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +13 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/messages.d.ts +17 -0
  30. package/dist/messages.d.ts.map +1 -0
  31. package/dist/messages.js +92 -0
  32. package/dist/messages.js.map +1 -0
  33. package/dist/middleware.d.ts +27 -0
  34. package/dist/middleware.d.ts.map +1 -0
  35. package/dist/middleware.js +168 -0
  36. package/dist/middleware.js.map +1 -0
  37. package/dist/runtime.d.ts +9 -0
  38. package/dist/runtime.d.ts.map +1 -0
  39. package/dist/runtime.js +62 -0
  40. package/dist/runtime.js.map +1 -0
  41. package/dist/stream.d.ts +17 -0
  42. package/dist/stream.d.ts.map +1 -0
  43. package/dist/stream.js +110 -0
  44. package/dist/stream.js.map +1 -0
  45. package/dist/types.d.ts +315 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +2 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/ui.d.ts +10 -0
  50. package/dist/ui.d.ts.map +1 -0
  51. package/dist/ui.js +65 -0
  52. package/dist/ui.js.map +1 -0
  53. package/package.json +32 -0
@@ -0,0 +1,15 @@
1
+ export type CatalogProviderId = string;
2
+ export interface ModelCatalogEntry {
3
+ provider: CatalogProviderId;
4
+ modelId: string;
5
+ aliases?: string[];
6
+ costPer1kTokens?: number;
7
+ recommendedFor?: Array<"chat" | "reasoning" | "speed" | "vision" | "tools">;
8
+ }
9
+ export interface ModelCatalog {
10
+ find(provider: CatalogProviderId, modelId: string): ModelCatalogEntry | undefined;
11
+ list(): ModelCatalogEntry[];
12
+ }
13
+ export declare const createModelCatalog: (entries: ModelCatalogEntry[]) => ModelCatalog;
14
+ export declare const defaultModelCatalog: ModelCatalog;
15
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAClF,IAAI,IAAI,iBAAiB,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,iBAAiB,EAAE,KAAG,YAUhE,CAAC;AAEH,eAAO,MAAM,mBAAmB,cAQ9B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const createModelCatalog = (entries) => ({
2
+ find(provider, modelId) {
3
+ return entries.find((entry) => entry.provider === provider && (entry.modelId === modelId || entry.aliases?.includes(modelId)));
4
+ },
5
+ list() {
6
+ return [...entries];
7
+ }
8
+ });
9
+ export const defaultModelCatalog = createModelCatalog([
10
+ { provider: "openai", modelId: "gpt-4o-mini", costPer1kTokens: 0.6, recommendedFor: ["chat", "tools", "speed"] },
11
+ { provider: "azure-openai", modelId: "gpt-4o-mini", costPer1kTokens: 0.6, recommendedFor: ["chat", "tools"] },
12
+ { provider: "anthropic", modelId: "claude-3-5-sonnet", costPer1kTokens: 3, recommendedFor: ["reasoning", "tools"] },
13
+ { provider: "gemini", modelId: "gemini-2.0-flash", costPer1kTokens: 0.35, recommendedFor: ["speed", "vision"] },
14
+ { provider: "openrouter", modelId: "openai/gpt-4o-mini", costPer1kTokens: 0.7, recommendedFor: ["chat", "tools"] },
15
+ { provider: "bedrock", modelId: "anthropic.claude-3-5-sonnet", costPer1kTokens: 3, recommendedFor: ["reasoning"] },
16
+ { provider: "ollama", modelId: "llama3.2", costPer1kTokens: 0, recommendedFor: ["chat", "speed"] }
17
+ ]);
18
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA4B,EAAgB,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ,EAAE,OAAO;QACpB,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CACjG,CAAC;IACJ,CAAC;IACD,IAAI;QACF,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IACtB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;IACpD,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAChH,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAC7G,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;IACnH,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC/G,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAClH,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,WAAW,CAAC,EAAE;IAClH,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;CACnG,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { EmbedOptions, EmbedOutput } from "./types.js";
2
+ export declare const embed: (options: EmbedOptions) => Promise<EmbedOutput>;
3
+ export declare const embedMany: (options: EmbedOptions) => Promise<EmbedOutput>;
4
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,eAAO,MAAM,KAAK,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,WAAW,CActE,CAAC;AAEF,eAAO,MAAM,SAAS,YAhBe,YAAY,KAAG,OAAO,CAAC,WAAW,CAgBzC,CAAC"}
package/dist/embed.js ADDED
@@ -0,0 +1,16 @@
1
+ export const embed = async (options) => {
2
+ const values = Array.isArray(options.value) ? options.value : [options.value];
3
+ const response = await options.model.embed({
4
+ values,
5
+ abortSignal: options.abortSignal,
6
+ timeoutMs: options.timeoutMs,
7
+ maxRetries: options.maxRetries,
8
+ retryBackoffMs: options.retryBackoffMs
9
+ });
10
+ return {
11
+ ...response,
12
+ values
13
+ };
14
+ };
15
+ export const embedMany = embed;
16
+ //# sourceMappingURL=embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,OAAqB,EAAwB,EAAE;IACzE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QACzC,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC"}
@@ -0,0 +1,23 @@
1
+ export declare class ZhivexAIError extends Error {
2
+ readonly cause?: unknown;
3
+ constructor(message: string, options?: {
4
+ cause?: unknown;
5
+ });
6
+ }
7
+ export declare class ConfigurationError extends ZhivexAIError {
8
+ }
9
+ export declare class ProviderHTTPError extends ZhivexAIError {
10
+ readonly status: number;
11
+ constructor(message: string, status: number, options?: {
12
+ cause?: unknown;
13
+ responseBody?: unknown;
14
+ });
15
+ readonly responseBody?: unknown;
16
+ }
17
+ export declare class ValidationError extends ZhivexAIError {
18
+ }
19
+ export declare class ParseError extends ZhivexAIError {
20
+ }
21
+ export declare class UnsupportedFeatureError extends ZhivexAIError {
22
+ }
23
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAK3D;AAED,qBAAa,kBAAmB,SAAQ,aAAa;CAAG;AACxD,qBAAa,iBAAkB,SAAQ,aAAa;IAGhD,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;IAMvD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,eAAgB,SAAQ,aAAa;CAAG;AACrD,qBAAa,UAAW,SAAQ,aAAa;CAAG;AAChD,qBAAa,uBAAwB,SAAQ,aAAa;CAAG"}
package/dist/errors.js ADDED
@@ -0,0 +1,26 @@
1
+ export class ZhivexAIError extends Error {
2
+ cause;
3
+ constructor(message, options) {
4
+ super(message);
5
+ this.name = this.constructor.name;
6
+ this.cause = options?.cause;
7
+ }
8
+ }
9
+ export class ConfigurationError extends ZhivexAIError {
10
+ }
11
+ export class ProviderHTTPError extends ZhivexAIError {
12
+ status;
13
+ constructor(message, status, options) {
14
+ super(message, options);
15
+ this.status = status;
16
+ this.responseBody = options?.responseBody;
17
+ }
18
+ responseBody;
19
+ }
20
+ export class ValidationError extends ZhivexAIError {
21
+ }
22
+ export class ParseError extends ZhivexAIError {
23
+ }
24
+ export class UnsupportedFeatureError extends ZhivexAIError {
25
+ }
26
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,KAAK,CAAW;IAEzB,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;CAAG;AACxD,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAGvC;IAFX,YACE,OAAe,EACN,MAAc,EACvB,OAAqD;QAErD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAHf,WAAM,GAAN,MAAM,CAAQ;QAIvB,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAC5C,CAAC;IAEQ,YAAY,CAAW;CACjC;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;CAAG;AACrD,MAAM,OAAO,UAAW,SAAQ,aAAa;CAAG;AAChD,MAAM,OAAO,uBAAwB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,5 @@
1
+ import type { UIMessage } from "./types.js";
2
+ export declare const parseUIMessageRequest: (request: Request) => Promise<UIMessage[]>;
3
+ export declare const createUIMessageJsonResponse: (messages: UIMessage[], init?: ResponseInit) => Response;
4
+ export declare const createUIMessageLinesResponse: (messages: UIMessage[], init?: ResponseInit) => Response;
5
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,eAAO,MAAM,qBAAqB,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,SAAS,EAAE,CAiBjF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU,SAAS,EAAE,EAAE,OAAM,YAAiB,KAAG,QAC9D,CAAC;AAEhC,eAAO,MAAM,4BAA4B,GAAI,UAAU,SAAS,EAAE,EAAE,OAAM,YAAiB,KAAG,QAO1F,CAAC"}
package/dist/fetch.js ADDED
@@ -0,0 +1,25 @@
1
+ import { deserializeUIMessage, serializeUIMessage } from "./ui.js";
2
+ export const parseUIMessageRequest = async (request) => {
3
+ const contentType = request.headers.get("content-type") ?? "";
4
+ if (contentType.includes("application/json")) {
5
+ const body = await request.json();
6
+ return body;
7
+ }
8
+ const text = await request.text();
9
+ if (!text.trim()) {
10
+ return [];
11
+ }
12
+ return text
13
+ .trim()
14
+ .split("\n")
15
+ .map((line) => deserializeUIMessage(line));
16
+ };
17
+ export const createUIMessageJsonResponse = (messages, init = {}) => Response.json(messages, init);
18
+ export const createUIMessageLinesResponse = (messages, init = {}) => new Response(messages.map((message) => serializeUIMessage(message)).join("\n"), {
19
+ ...init,
20
+ headers: {
21
+ "content-type": "application/x-ndjson; charset=utf-8",
22
+ ...Object.fromEntries(new Headers(init.headers).entries())
23
+ }
24
+ });
25
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAgB,EAAwB,EAAE;IACpF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAE9D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,IAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI;SACR,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAqB,EAAE,OAAqB,EAAE,EAAY,EAAE,CACtG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,QAAqB,EAAE,OAAqB,EAAE,EAAY,EAAE,CACvG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC9E,GAAG,IAAI;IACP,OAAO,EAAE;QACP,cAAc,EAAE,qCAAqC;QACrD,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;KAC3D;CACF,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ZodTypeAny } from "zod";
2
+ import type { GenerateObjectOptions, GenerateObjectOutput, StreamObjectResult } from "./types.js";
3
+ export declare const generateObject: <TSchema extends ZodTypeAny>(options: GenerateObjectOptions<TSchema>) => Promise<GenerateObjectOutput<TSchema>>;
4
+ export declare const streamObject: <TSchema extends ZodTypeAny>(options: GenerateObjectOptions<TSchema>) => StreamObjectResult<TSchema>;
5
+ //# sourceMappingURL=generate-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-object.d.ts","sourceRoot":"","sources":["../src/generate-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAKtC,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EAIpB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAuOpB,eAAO,MAAM,cAAc,GAAU,OAAO,SAAS,UAAU,EAC7D,SAAS,qBAAqB,CAAC,OAAO,CAAC,KACtC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAUvC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,UAAU,EAAE,SAAS,qBAAqB,CAAC,OAAO,CAAC,KAAG,kBAAkB,CAAC,OAAO,CA8J5H,CAAC"}
@@ -0,0 +1,327 @@
1
+ import { ParseError, UnsupportedFeatureError, ValidationError } from "./errors.js";
2
+ import { createTextMessage } from "./messages.js";
3
+ import { generateText, streamText } from "./generate-text.js";
4
+ const resolveObjectMode = (requestedMode, nativeAllowed) => {
5
+ const objectMode = requestedMode === "auto" ? (nativeAllowed ? "native" : "prompted") : requestedMode;
6
+ if (objectMode === "native" && !nativeAllowed) {
7
+ throw new UnsupportedFeatureError("Model does not support native structured output.");
8
+ }
9
+ return objectMode;
10
+ };
11
+ const withStructuredPrompt = (options, objectMode) => {
12
+ if (objectMode !== "prompted") {
13
+ if (options.messages !== undefined) {
14
+ return { messages: options.messages };
15
+ }
16
+ if (options.prompt !== undefined) {
17
+ return { prompt: options.prompt };
18
+ }
19
+ return {};
20
+ }
21
+ if (options.messages !== undefined) {
22
+ return {
23
+ messages: [...options.messages, createTextMessage("system", "Return only valid JSON matching the requested schema.")]
24
+ };
25
+ }
26
+ if (options.prompt !== undefined) {
27
+ return {
28
+ prompt: `${options.prompt}\n\nReturn only valid JSON matching the requested schema.`
29
+ };
30
+ }
31
+ return {};
32
+ };
33
+ const parseObject = (text, schema) => {
34
+ let parsedJson;
35
+ try {
36
+ parsedJson = JSON.parse(text);
37
+ }
38
+ catch (error) {
39
+ throw new ParseError("Model response is not valid JSON.", { cause: error });
40
+ }
41
+ const parsed = schema.safeParse(parsedJson);
42
+ if (!parsed.success) {
43
+ throw new ValidationError(`Structured output validation failed: ${parsed.error.message}`);
44
+ }
45
+ return parsed.data;
46
+ };
47
+ const repairPartialJson = (text) => {
48
+ const start = text.search(/[{\[]/);
49
+ if (start === -1) {
50
+ return undefined;
51
+ }
52
+ const slice = text.slice(start).trim();
53
+ if (!slice) {
54
+ return undefined;
55
+ }
56
+ const closers = [];
57
+ let inString = false;
58
+ let isEscaped = false;
59
+ let lastToken = "other";
60
+ for (const char of slice) {
61
+ if (inString) {
62
+ if (isEscaped) {
63
+ isEscaped = false;
64
+ continue;
65
+ }
66
+ if (char === "\\") {
67
+ isEscaped = true;
68
+ continue;
69
+ }
70
+ if (char === "\"") {
71
+ inString = false;
72
+ lastToken = "value";
73
+ }
74
+ continue;
75
+ }
76
+ if (char === "\"") {
77
+ inString = true;
78
+ continue;
79
+ }
80
+ if (char === "{") {
81
+ closers.push("}");
82
+ lastToken = "other";
83
+ continue;
84
+ }
85
+ if (char === "[") {
86
+ closers.push("]");
87
+ lastToken = "other";
88
+ continue;
89
+ }
90
+ if (char === "}" || char === "]") {
91
+ if (closers.at(-1) === char) {
92
+ closers.pop();
93
+ }
94
+ lastToken = "value";
95
+ continue;
96
+ }
97
+ if (char === ":") {
98
+ lastToken = "colon";
99
+ continue;
100
+ }
101
+ if (char === ",") {
102
+ lastToken = "comma";
103
+ continue;
104
+ }
105
+ if (/\S/.test(char)) {
106
+ lastToken = "value";
107
+ }
108
+ }
109
+ let repaired = slice.trimEnd();
110
+ if (inString) {
111
+ repaired += "\"";
112
+ }
113
+ if (lastToken === "colon") {
114
+ repaired += " null";
115
+ }
116
+ if (lastToken === "comma") {
117
+ repaired = repaired.replace(/,\s*$/, "");
118
+ }
119
+ return repaired + [...closers].reverse().join("");
120
+ };
121
+ const parsePartialObject = (text) => {
122
+ const repaired = repairPartialJson(text);
123
+ if (!repaired) {
124
+ return undefined;
125
+ }
126
+ try {
127
+ return JSON.parse(repaired);
128
+ }
129
+ catch {
130
+ return undefined;
131
+ }
132
+ };
133
+ const sameJson = (left, right) => JSON.stringify(left) === JSON.stringify(right);
134
+ const getStructuredOutput = (options, objectMode) => objectMode === "native"
135
+ ? {
136
+ schema: options.schema,
137
+ mode: "native",
138
+ name: options.schemaName,
139
+ description: options.schemaDescription
140
+ }
141
+ : undefined;
142
+ const createObjectOptions = (options) => {
143
+ const requestedMode = options.mode ?? "auto";
144
+ const objectMode = resolveObjectMode(requestedMode, options.model.capabilities.structuredOutput);
145
+ const promptConfig = withStructuredPrompt(options, objectMode);
146
+ const structuredOutput = getStructuredOutput(options, objectMode);
147
+ const requestBase = {
148
+ model: options.model,
149
+ system: options.system,
150
+ tools: options.tools,
151
+ maxSteps: options.maxSteps,
152
+ temperature: options.temperature,
153
+ maxTokens: options.maxTokens,
154
+ providerOptions: options.providerOptions,
155
+ abortSignal: options.abortSignal,
156
+ timeoutMs: options.timeoutMs,
157
+ maxRetries: options.maxRetries,
158
+ retryBackoffMs: options.retryBackoffMs
159
+ };
160
+ let request;
161
+ if ("messages" in promptConfig) {
162
+ request = {
163
+ ...requestBase,
164
+ messages: promptConfig.messages,
165
+ structuredOutput
166
+ };
167
+ }
168
+ else if ("prompt" in promptConfig) {
169
+ request = {
170
+ ...requestBase,
171
+ prompt: promptConfig.prompt,
172
+ structuredOutput
173
+ };
174
+ }
175
+ else {
176
+ request = {
177
+ ...requestBase,
178
+ structuredOutput
179
+ };
180
+ }
181
+ return {
182
+ objectMode,
183
+ request
184
+ };
185
+ };
186
+ export const generateObject = async (options) => {
187
+ const { objectMode, request } = createObjectOptions(options);
188
+ const textResult = await generateText(request);
189
+ const object = parseObject(textResult.text, options.schema);
190
+ return {
191
+ ...textResult,
192
+ object,
193
+ objectMode
194
+ };
195
+ };
196
+ export const streamObject = (options) => {
197
+ const { objectMode, request } = createObjectOptions(options);
198
+ const streamResult = streamText(request);
199
+ const subscribers = new Set();
200
+ const partialSubscribers = new Set();
201
+ const history = [];
202
+ const partialHistory = [];
203
+ let done = false;
204
+ let partialDone = false;
205
+ const publish = (value) => {
206
+ history.push(value);
207
+ for (const subscriber of subscribers) {
208
+ subscriber(value);
209
+ }
210
+ if (value.done) {
211
+ done = true;
212
+ }
213
+ };
214
+ const publishPartial = (value) => {
215
+ partialHistory.push(value);
216
+ for (const subscriber of partialSubscribers) {
217
+ subscriber(value);
218
+ }
219
+ if (value.done) {
220
+ partialDone = true;
221
+ }
222
+ };
223
+ const createEventStream = async function* () {
224
+ let cursor = 0;
225
+ while (true) {
226
+ while (cursor < history.length) {
227
+ const item = history[cursor];
228
+ cursor += 1;
229
+ if (item.done) {
230
+ return;
231
+ }
232
+ yield item.value;
233
+ }
234
+ if (done) {
235
+ return;
236
+ }
237
+ await new Promise((resolve) => {
238
+ const subscriber = (value) => {
239
+ subscribers.delete(subscriber);
240
+ resolve(value);
241
+ };
242
+ subscribers.add(subscriber);
243
+ });
244
+ }
245
+ };
246
+ const createPartialStream = async function* () {
247
+ let cursor = 0;
248
+ while (true) {
249
+ while (cursor < partialHistory.length) {
250
+ const item = partialHistory[cursor];
251
+ cursor += 1;
252
+ if (item.done) {
253
+ return;
254
+ }
255
+ yield item.value;
256
+ }
257
+ if (partialDone) {
258
+ return;
259
+ }
260
+ await new Promise((resolve) => {
261
+ const subscriber = (value) => {
262
+ partialSubscribers.delete(subscriber);
263
+ resolve(value);
264
+ };
265
+ partialSubscribers.add(subscriber);
266
+ });
267
+ }
268
+ };
269
+ const finalResultPromise = (async () => {
270
+ let text = "";
271
+ let lastPartial;
272
+ let completed = false;
273
+ for await (const event of streamResult.eventStream) {
274
+ publish({ done: false, value: event });
275
+ if (event.type !== "text-delta") {
276
+ continue;
277
+ }
278
+ text += event.textDelta;
279
+ publish({
280
+ done: false,
281
+ value: {
282
+ type: "object-delta",
283
+ textDelta: event.textDelta,
284
+ partialText: text
285
+ }
286
+ });
287
+ const partial = parsePartialObject(text);
288
+ if (partial !== undefined && !sameJson(partial, lastPartial)) {
289
+ lastPartial = partial;
290
+ publish({ done: false, value: { type: "object-partial", partialObject: partial } });
291
+ publishPartial({ done: false, value: partial });
292
+ if (!completed) {
293
+ const parsed = options.schema.safeParse(partial);
294
+ if (parsed.success) {
295
+ completed = true;
296
+ publish({ done: false, value: { type: "object-complete", object: parsed.data } });
297
+ }
298
+ }
299
+ }
300
+ }
301
+ const textResult = await streamResult.collect();
302
+ const object = parseObject(textResult.text, options.schema);
303
+ if (!completed) {
304
+ publish({ done: false, value: { type: "object-complete", object } });
305
+ }
306
+ publish({ done: true, value: undefined });
307
+ publishPartial({ done: true, value: undefined });
308
+ return {
309
+ ...textResult,
310
+ object,
311
+ objectMode
312
+ };
313
+ })().catch((error) => {
314
+ const streamError = error instanceof Error ? error : new Error(String(error));
315
+ publish({ done: false, value: { type: "error", error: streamError } });
316
+ publish({ done: true, value: undefined });
317
+ publishPartial({ done: true, value: undefined });
318
+ throw error;
319
+ });
320
+ return {
321
+ eventStream: createEventStream(),
322
+ partialObjectStream: createPartialStream(),
323
+ textStream: streamResult.textStream,
324
+ collect: async () => finalResultPromise
325
+ };
326
+ };
327
+ //# sourceMappingURL=generate-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-object.js","sourceRoot":"","sources":["../src/generate-object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { GenerateTextOptions, GenerateTextOutput, ModelMessage, StreamTextResult } from "./types.js";
2
+ export declare const normalizeMessages: (options: Pick<GenerateTextOptions, "prompt" | "messages" | "system">) => ModelMessage[];
3
+ export declare const generateText: (options: GenerateTextOptions) => Promise<GenerateTextOutput>;
4
+ export declare const streamText: (options: GenerateTextOptions) => StreamTextResult;
5
+ //# sourceMappingURL=generate-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../src/generate-text.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EAElB,YAAY,EACZ,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAoEpB,eAAO,MAAM,iBAAiB,YA5DE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,KAAG,YAAY,EA4D5D,CAAC;AAS/C,eAAO,MAAM,YAAY,GAAU,SAAS,mBAAmB,KAAG,OAAO,CAAC,kBAAkB,CAqD3F,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,mBAAmB,KAAG,gBAiLzD,CAAC"}