praisonai 1.3.6 → 1.5.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 (170) hide show
  1. package/dist/agent/audio.d.ts +190 -0
  2. package/dist/agent/audio.js +302 -0
  3. package/dist/agent/index.d.ts +2 -0
  4. package/dist/agent/index.js +5 -1
  5. package/dist/ai/agent-loop.d.ts +177 -0
  6. package/dist/ai/agent-loop.js +313 -0
  7. package/dist/ai/devtools.d.ts +74 -0
  8. package/dist/ai/devtools.js +216 -0
  9. package/dist/ai/embed.d.ts +71 -0
  10. package/dist/ai/embed.js +154 -0
  11. package/dist/ai/generate-image.d.ts +66 -0
  12. package/dist/ai/generate-image.js +138 -0
  13. package/dist/ai/generate-object.d.ts +132 -0
  14. package/dist/ai/generate-object.js +206 -0
  15. package/dist/ai/generate-text.d.ts +201 -0
  16. package/dist/ai/generate-text.js +253 -0
  17. package/dist/ai/index.d.ts +27 -0
  18. package/dist/ai/index.js +140 -0
  19. package/dist/ai/mcp.d.ts +181 -0
  20. package/dist/ai/mcp.js +234 -0
  21. package/dist/ai/middleware.d.ts +110 -0
  22. package/dist/ai/middleware.js +186 -0
  23. package/dist/ai/models.d.ts +67 -0
  24. package/dist/ai/models.js +249 -0
  25. package/dist/ai/multimodal.d.ts +125 -0
  26. package/dist/ai/multimodal.js +270 -0
  27. package/dist/ai/nextjs.d.ts +122 -0
  28. package/dist/ai/nextjs.js +218 -0
  29. package/dist/ai/server.d.ts +126 -0
  30. package/dist/ai/server.js +336 -0
  31. package/dist/ai/speech.d.ts +135 -0
  32. package/dist/ai/speech.js +296 -0
  33. package/dist/ai/telemetry.d.ts +162 -0
  34. package/dist/ai/telemetry.js +311 -0
  35. package/dist/ai/tool-approval.d.ts +225 -0
  36. package/dist/ai/tool-approval.js +407 -0
  37. package/dist/ai/tools.d.ts +93 -0
  38. package/dist/ai/tools.js +89 -0
  39. package/dist/ai/types.d.ts +47 -0
  40. package/dist/ai/types.js +5 -0
  41. package/dist/ai/ui-message.d.ts +218 -0
  42. package/dist/ai/ui-message.js +291 -0
  43. package/dist/cli/commands/approval.d.ts +10 -0
  44. package/dist/cli/commands/approval.js +274 -0
  45. package/dist/cli/commands/observability.d.ts +7 -0
  46. package/dist/cli/commands/observability.js +202 -12
  47. package/dist/cli/commands/providers.d.ts +5 -2
  48. package/dist/cli/commands/providers.js +204 -5
  49. package/dist/cli/commands/tools.d.ts +11 -1
  50. package/dist/cli/commands/tools.js +450 -64
  51. package/dist/cli/output/errors.d.ts +1 -0
  52. package/dist/cli/output/errors.js +1 -0
  53. package/dist/cli/spec/cli-spec.js +17 -0
  54. package/dist/index.d.ts +21 -4
  55. package/dist/index.js +275 -19
  56. package/dist/integrations/computer-use.d.ts +182 -0
  57. package/dist/integrations/computer-use.js +356 -0
  58. package/dist/integrations/postgres.d.ts +162 -0
  59. package/dist/integrations/postgres.js +396 -0
  60. package/dist/integrations/slack.d.ts +145 -0
  61. package/dist/integrations/slack.js +270 -0
  62. package/dist/knowledge/chonkie-adapter.d.ts +99 -0
  63. package/dist/knowledge/chonkie-adapter.js +268 -0
  64. package/dist/knowledge/index.d.ts +5 -0
  65. package/dist/knowledge/index.js +29 -1
  66. package/dist/knowledge/query-engine.d.ts +136 -0
  67. package/dist/knowledge/query-engine.js +214 -0
  68. package/dist/knowledge/rag-pipeline.d.ts +192 -0
  69. package/dist/knowledge/rag-pipeline.js +283 -0
  70. package/dist/knowledge/readers.d.ts +129 -0
  71. package/dist/knowledge/readers.js +393 -0
  72. package/dist/llm/providers/ai-sdk/types.d.ts +49 -3
  73. package/dist/llm/providers/ai-sdk/types.js +169 -15
  74. package/dist/mcp/index.d.ts +188 -0
  75. package/dist/mcp/index.js +373 -0
  76. package/dist/mcp/server.d.ts +211 -0
  77. package/dist/mcp/server.js +412 -0
  78. package/dist/memory/docs-manager.d.ts +165 -0
  79. package/dist/memory/docs-manager.js +294 -0
  80. package/dist/memory/hooks.d.ts +154 -0
  81. package/dist/memory/hooks.js +228 -0
  82. package/dist/memory/rules-manager.d.ts +182 -0
  83. package/dist/memory/rules-manager.js +244 -0
  84. package/dist/observability/adapters/console.d.ts +33 -0
  85. package/dist/observability/adapters/console.js +71 -0
  86. package/dist/observability/adapters/external/arize.d.ts +20 -0
  87. package/dist/observability/adapters/external/arize.js +22 -0
  88. package/dist/observability/adapters/external/axiom.d.ts +20 -0
  89. package/dist/observability/adapters/external/axiom.js +22 -0
  90. package/dist/observability/adapters/external/braintrust.d.ts +20 -0
  91. package/dist/observability/adapters/external/braintrust.js +22 -0
  92. package/dist/observability/adapters/external/helicone.d.ts +20 -0
  93. package/dist/observability/adapters/external/helicone.js +22 -0
  94. package/dist/observability/adapters/external/laminar.d.ts +20 -0
  95. package/dist/observability/adapters/external/laminar.js +22 -0
  96. package/dist/observability/adapters/external/langfuse.d.ts +28 -0
  97. package/dist/observability/adapters/external/langfuse.js +186 -0
  98. package/dist/observability/adapters/external/langsmith.d.ts +21 -0
  99. package/dist/observability/adapters/external/langsmith.js +83 -0
  100. package/dist/observability/adapters/external/langwatch.d.ts +20 -0
  101. package/dist/observability/adapters/external/langwatch.js +22 -0
  102. package/dist/observability/adapters/external/maxim.d.ts +20 -0
  103. package/dist/observability/adapters/external/maxim.js +22 -0
  104. package/dist/observability/adapters/external/patronus.d.ts +20 -0
  105. package/dist/observability/adapters/external/patronus.js +22 -0
  106. package/dist/observability/adapters/external/scorecard.d.ts +20 -0
  107. package/dist/observability/adapters/external/scorecard.js +22 -0
  108. package/dist/observability/adapters/external/signoz.d.ts +20 -0
  109. package/dist/observability/adapters/external/signoz.js +22 -0
  110. package/dist/observability/adapters/external/traceloop.d.ts +20 -0
  111. package/dist/observability/adapters/external/traceloop.js +22 -0
  112. package/dist/observability/adapters/external/weave.d.ts +20 -0
  113. package/dist/observability/adapters/external/weave.js +22 -0
  114. package/dist/observability/adapters/index.d.ts +19 -0
  115. package/dist/observability/adapters/index.js +289 -0
  116. package/dist/observability/adapters/memory.d.ts +41 -0
  117. package/dist/observability/adapters/memory.js +190 -0
  118. package/dist/observability/adapters/noop.d.ts +25 -0
  119. package/dist/observability/adapters/noop.js +64 -0
  120. package/dist/observability/index.d.ts +39 -78
  121. package/dist/observability/index.js +99 -150
  122. package/dist/observability/types.d.ts +165 -0
  123. package/dist/observability/types.js +165 -0
  124. package/dist/tools/builtins/airweave.d.ts +32 -0
  125. package/dist/tools/builtins/airweave.js +119 -0
  126. package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
  127. package/dist/tools/builtins/bedrock-agentcore.js +233 -0
  128. package/dist/tools/builtins/code-execution.d.ts +36 -0
  129. package/dist/tools/builtins/code-execution.js +136 -0
  130. package/dist/tools/builtins/code-mode.d.ts +54 -0
  131. package/dist/tools/builtins/code-mode.js +167 -0
  132. package/dist/tools/builtins/custom.d.ts +42 -0
  133. package/dist/tools/builtins/custom.js +195 -0
  134. package/dist/tools/builtins/exa.d.ts +53 -0
  135. package/dist/tools/builtins/exa.js +112 -0
  136. package/dist/tools/builtins/firecrawl.d.ts +56 -0
  137. package/dist/tools/builtins/firecrawl.js +158 -0
  138. package/dist/tools/builtins/index.d.ts +45 -0
  139. package/dist/tools/builtins/index.js +180 -0
  140. package/dist/tools/builtins/parallel.d.ts +30 -0
  141. package/dist/tools/builtins/parallel.js +113 -0
  142. package/dist/tools/builtins/perplexity.d.ts +32 -0
  143. package/dist/tools/builtins/perplexity.js +113 -0
  144. package/dist/tools/builtins/superagent.d.ts +66 -0
  145. package/dist/tools/builtins/superagent.js +187 -0
  146. package/dist/tools/builtins/tavily.d.ts +99 -0
  147. package/dist/tools/builtins/tavily.js +285 -0
  148. package/dist/tools/builtins/valyu.d.ts +65 -0
  149. package/dist/tools/builtins/valyu.js +193 -0
  150. package/dist/tools/index.d.ts +5 -0
  151. package/dist/tools/index.js +16 -2
  152. package/dist/tools/registry/index.d.ts +9 -0
  153. package/dist/tools/registry/index.js +28 -0
  154. package/dist/tools/registry/middleware.d.ts +43 -0
  155. package/dist/tools/registry/middleware.js +220 -0
  156. package/dist/tools/registry/registry.d.ts +92 -0
  157. package/dist/tools/registry/registry.js +280 -0
  158. package/dist/tools/registry/types.d.ts +217 -0
  159. package/dist/tools/registry/types.js +49 -0
  160. package/dist/tools/subagent.d.ts +131 -0
  161. package/dist/tools/subagent.js +185 -0
  162. package/dist/tools/tools.d.ts +74 -0
  163. package/dist/tools/tools.js +133 -0
  164. package/dist/workflows/index.d.ts +76 -1
  165. package/dist/workflows/index.js +125 -6
  166. package/dist/workflows/loop.d.ts +111 -0
  167. package/dist/workflows/loop.js +274 -0
  168. package/dist/workflows/repeat.d.ts +115 -0
  169. package/dist/workflows/repeat.js +144 -0
  170. package/package.json +4 -1
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ /**
3
+ * Embed - AI SDK Wrapper
4
+ *
5
+ * Provides embed and embedMany functions for text embeddings.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.embed = embed;
42
+ exports.embedMany = embedMany;
43
+ // Lazy load AI SDK
44
+ let aiSdk = null;
45
+ let aiSdkLoaded = false;
46
+ async function loadAISDK() {
47
+ if (aiSdkLoaded)
48
+ return aiSdk;
49
+ try {
50
+ aiSdk = await Promise.resolve().then(() => __importStar(require('ai')));
51
+ aiSdkLoaded = true;
52
+ return aiSdk;
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Resolve model string to AI SDK embedding model instance
60
+ */
61
+ async function resolveEmbeddingModel(modelString) {
62
+ let provider = 'openai';
63
+ let modelId = modelString;
64
+ if (modelString.includes('/')) {
65
+ const parts = modelString.split('/');
66
+ provider = parts[0].toLowerCase();
67
+ modelId = parts.slice(1).join('/');
68
+ }
69
+ else {
70
+ if (modelString.startsWith('text-embedding'))
71
+ provider = 'openai';
72
+ else if (modelString.startsWith('voyage'))
73
+ provider = 'anthropic';
74
+ else if (modelString.startsWith('embed-'))
75
+ provider = 'cohere';
76
+ }
77
+ let providerModule;
78
+ try {
79
+ switch (provider) {
80
+ case 'openai':
81
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
82
+ return providerModule.openai.embedding(modelId);
83
+ case 'google':
84
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/google')));
85
+ return providerModule.google.embedding(modelId);
86
+ default:
87
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
88
+ return providerModule.openai.embedding(modelId);
89
+ }
90
+ }
91
+ catch (error) {
92
+ throw new Error(`Failed to load embedding provider '${provider}': ${error.message}`);
93
+ }
94
+ }
95
+ /**
96
+ * Embed a single text using an embedding model.
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const result = await embed({
101
+ * model: 'text-embedding-3-small',
102
+ * value: 'Hello, world!'
103
+ * });
104
+ * console.log(result.embedding); // [0.1, 0.2, ...]
105
+ * ```
106
+ */
107
+ async function embed(options) {
108
+ const sdk = await loadAISDK();
109
+ if (!sdk) {
110
+ throw new Error('AI SDK not available. Install with: npm install ai @ai-sdk/openai');
111
+ }
112
+ const model = await resolveEmbeddingModel(options.model);
113
+ const result = await sdk.embed({
114
+ model,
115
+ value: options.value,
116
+ maxRetries: options.maxRetries,
117
+ abortSignal: options.abortSignal,
118
+ headers: options.headers,
119
+ });
120
+ return {
121
+ embedding: result.embedding,
122
+ usage: result.usage || { tokens: 0 },
123
+ };
124
+ }
125
+ /**
126
+ * Embed multiple texts using an embedding model.
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const result = await embedMany({
131
+ * model: 'text-embedding-3-small',
132
+ * values: ['Hello', 'World']
133
+ * });
134
+ * console.log(result.embeddings); // [[0.1, ...], [0.2, ...]]
135
+ * ```
136
+ */
137
+ async function embedMany(options) {
138
+ const sdk = await loadAISDK();
139
+ if (!sdk) {
140
+ throw new Error('AI SDK not available. Install with: npm install ai @ai-sdk/openai');
141
+ }
142
+ const model = await resolveEmbeddingModel(options.model);
143
+ const result = await sdk.embedMany({
144
+ model,
145
+ values: options.values,
146
+ maxRetries: options.maxRetries,
147
+ abortSignal: options.abortSignal,
148
+ headers: options.headers,
149
+ });
150
+ return {
151
+ embeddings: result.embeddings,
152
+ usage: result.usage || { tokens: 0 },
153
+ };
154
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Generate Image - AI SDK Wrapper
3
+ *
4
+ * Provides generateImage function for image generation.
5
+ */
6
+ export interface GenerateImageOptions {
7
+ /** Model to use (e.g., 'dall-e-3', 'google/imagen-3') */
8
+ model: string;
9
+ /** Text prompt for image generation */
10
+ prompt: string;
11
+ /** Number of images to generate */
12
+ n?: number;
13
+ /** Image size (e.g., '1024x1024') */
14
+ size?: `${number}x${number}`;
15
+ /** Aspect ratio (e.g., '16:9') */
16
+ aspectRatio?: `${number}:${number}`;
17
+ /** Seed for reproducibility */
18
+ seed?: number;
19
+ /** Maximum retries */
20
+ maxRetries?: number;
21
+ /** Abort signal */
22
+ abortSignal?: AbortSignal;
23
+ /** Additional headers */
24
+ headers?: Record<string, string>;
25
+ /** Provider-specific options */
26
+ providerOptions?: Record<string, unknown>;
27
+ }
28
+ export interface GeneratedImage {
29
+ /** Base64-encoded image data */
30
+ base64: string;
31
+ /** Image as Uint8Array */
32
+ uint8Array: Uint8Array;
33
+ /** MIME type */
34
+ mimeType?: string;
35
+ }
36
+ export interface GenerateImageResult {
37
+ /** Generated images */
38
+ images: GeneratedImage[];
39
+ /** Warnings */
40
+ warnings?: any[];
41
+ }
42
+ /**
43
+ * Generate images using an image model.
44
+ *
45
+ * @example Generate with DALL-E
46
+ * ```typescript
47
+ * const result = await generateImage({
48
+ * model: 'dall-e-3',
49
+ * prompt: 'A futuristic city at sunset',
50
+ * size: '1024x1024'
51
+ * });
52
+ *
53
+ * // Save the image
54
+ * fs.writeFileSync('image.png', result.images[0].uint8Array);
55
+ * ```
56
+ *
57
+ * @example Generate with Google Imagen
58
+ * ```typescript
59
+ * const result = await generateImage({
60
+ * model: 'google/imagen-3',
61
+ * prompt: 'A beautiful landscape',
62
+ * aspectRatio: '16:9'
63
+ * });
64
+ * ```
65
+ */
66
+ export declare function generateImage(options: GenerateImageOptions): Promise<GenerateImageResult>;
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * Generate Image - AI SDK Wrapper
4
+ *
5
+ * Provides generateImage function for image generation.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.generateImage = generateImage;
42
+ // Lazy load AI SDK
43
+ let aiSdk = null;
44
+ let aiSdkLoaded = false;
45
+ async function loadAISDK() {
46
+ if (aiSdkLoaded)
47
+ return aiSdk;
48
+ try {
49
+ aiSdk = await Promise.resolve().then(() => __importStar(require('ai')));
50
+ aiSdkLoaded = true;
51
+ return aiSdk;
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ /**
58
+ * Resolve model string to AI SDK image model instance
59
+ */
60
+ async function resolveImageModel(modelString) {
61
+ let provider = 'openai';
62
+ let modelId = modelString;
63
+ if (modelString.includes('/')) {
64
+ const parts = modelString.split('/');
65
+ provider = parts[0].toLowerCase();
66
+ modelId = parts.slice(1).join('/');
67
+ }
68
+ else {
69
+ if (modelString.startsWith('imagen'))
70
+ provider = 'google';
71
+ else if (modelString.startsWith('dall-e'))
72
+ provider = 'openai';
73
+ }
74
+ let providerModule;
75
+ try {
76
+ switch (provider) {
77
+ case 'openai':
78
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
79
+ return providerModule.openai.image(modelId);
80
+ case 'google':
81
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/google')));
82
+ return providerModule.google.image(modelId);
83
+ default:
84
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
85
+ return providerModule.openai.image(modelId);
86
+ }
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Failed to load image provider '${provider}': ${error.message}`);
90
+ }
91
+ }
92
+ /**
93
+ * Generate images using an image model.
94
+ *
95
+ * @example Generate with DALL-E
96
+ * ```typescript
97
+ * const result = await generateImage({
98
+ * model: 'dall-e-3',
99
+ * prompt: 'A futuristic city at sunset',
100
+ * size: '1024x1024'
101
+ * });
102
+ *
103
+ * // Save the image
104
+ * fs.writeFileSync('image.png', result.images[0].uint8Array);
105
+ * ```
106
+ *
107
+ * @example Generate with Google Imagen
108
+ * ```typescript
109
+ * const result = await generateImage({
110
+ * model: 'google/imagen-3',
111
+ * prompt: 'A beautiful landscape',
112
+ * aspectRatio: '16:9'
113
+ * });
114
+ * ```
115
+ */
116
+ async function generateImage(options) {
117
+ const sdk = await loadAISDK();
118
+ if (!sdk) {
119
+ throw new Error('AI SDK not available. Install with: npm install ai @ai-sdk/openai');
120
+ }
121
+ const model = await resolveImageModel(options.model);
122
+ const result = await sdk.generateImage({
123
+ model,
124
+ prompt: options.prompt,
125
+ n: options.n,
126
+ size: options.size,
127
+ aspectRatio: options.aspectRatio,
128
+ seed: options.seed,
129
+ maxRetries: options.maxRetries,
130
+ abortSignal: options.abortSignal,
131
+ headers: options.headers,
132
+ providerOptions: options.providerOptions,
133
+ });
134
+ return {
135
+ images: result.images || [],
136
+ warnings: result.warnings,
137
+ };
138
+ }
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Generate Object - AI SDK Wrapper
3
+ *
4
+ * Provides generateObject and streamObject functions for structured output generation.
5
+ */
6
+ import type { Message } from './types';
7
+ export interface GenerateObjectOptions<T = unknown> {
8
+ /** Model to use */
9
+ model: string;
10
+ /** Schema for the output (Zod schema or JSON schema) */
11
+ schema: any;
12
+ /** Schema name for the output */
13
+ schemaName?: string;
14
+ /** Schema description */
15
+ schemaDescription?: string;
16
+ /** Output mode: 'object' | 'array' | 'enum' | 'no-schema' */
17
+ mode?: 'object' | 'array' | 'enum' | 'no-schema';
18
+ /** Simple text prompt */
19
+ prompt?: string;
20
+ /** Chat messages */
21
+ messages?: Message[];
22
+ /** System message */
23
+ system?: string;
24
+ /** Maximum tokens */
25
+ maxTokens?: number;
26
+ /** Temperature */
27
+ temperature?: number;
28
+ /** Top P */
29
+ topP?: number;
30
+ /** Maximum retries */
31
+ maxRetries?: number;
32
+ /** Abort signal */
33
+ abortSignal?: AbortSignal;
34
+ /** Additional headers */
35
+ headers?: Record<string, string>;
36
+ /** Callback on finish */
37
+ onFinish?: (result: GenerateObjectResult<T>) => void | Promise<void>;
38
+ }
39
+ export interface GenerateObjectResult<T = unknown> {
40
+ /** Generated object */
41
+ object: T;
42
+ /** Token usage */
43
+ usage: {
44
+ promptTokens: number;
45
+ completionTokens: number;
46
+ totalTokens: number;
47
+ };
48
+ /** Finish reason */
49
+ finishReason: string;
50
+ /** Warnings */
51
+ warnings?: any[];
52
+ }
53
+ export interface StreamObjectOptions<T = unknown> extends GenerateObjectOptions<T> {
54
+ /** Callback for partial object updates */
55
+ onPartialObject?: (partial: Partial<T>) => void | Promise<void>;
56
+ }
57
+ export interface StreamObjectResult<T = unknown> {
58
+ /** Async iterator for partial objects */
59
+ partialObjectStream: AsyncIterable<Partial<T>>;
60
+ /** Promise that resolves to the final object */
61
+ object: Promise<T>;
62
+ /** Promise that resolves to usage */
63
+ usage: Promise<{
64
+ promptTokens: number;
65
+ completionTokens: number;
66
+ totalTokens: number;
67
+ }>;
68
+ /** Promise that resolves to finish reason */
69
+ finishReason: Promise<string>;
70
+ /** Convert to Response for streaming */
71
+ toTextStreamResponse(options?: {
72
+ headers?: Record<string, string>;
73
+ }): Response;
74
+ }
75
+ /**
76
+ * Generate a structured object using a language model.
77
+ *
78
+ * @example With Zod schema
79
+ * ```typescript
80
+ * import { z } from 'zod';
81
+ *
82
+ * const result = await generateObject({
83
+ * model: 'gpt-4o',
84
+ * schema: z.object({
85
+ * name: z.string(),
86
+ * age: z.number()
87
+ * }),
88
+ * prompt: 'Generate a person'
89
+ * });
90
+ * console.log(result.object); // { name: 'John', age: 30 }
91
+ * ```
92
+ *
93
+ * @example With JSON schema
94
+ * ```typescript
95
+ * const result = await generateObject({
96
+ * model: 'gpt-4o',
97
+ * schema: {
98
+ * type: 'object',
99
+ * properties: {
100
+ * name: { type: 'string' },
101
+ * age: { type: 'number' }
102
+ * },
103
+ * required: ['name', 'age']
104
+ * },
105
+ * prompt: 'Generate a person'
106
+ * });
107
+ * ```
108
+ */
109
+ export declare function generateObject<T = unknown>(options: GenerateObjectOptions<T>): Promise<GenerateObjectResult<T>>;
110
+ /**
111
+ * Stream a structured object using a language model.
112
+ *
113
+ * @example Streaming partial objects
114
+ * ```typescript
115
+ * import { z } from 'zod';
116
+ *
117
+ * const result = await streamObject({
118
+ * model: 'gpt-4o',
119
+ * schema: z.object({
120
+ * story: z.string(),
121
+ * characters: z.array(z.string())
122
+ * }),
123
+ * prompt: 'Write a short story',
124
+ * onPartialObject: (partial) => {
125
+ * console.log('Partial:', partial);
126
+ * }
127
+ * });
128
+ *
129
+ * const finalObject = await result.object;
130
+ * ```
131
+ */
132
+ export declare function streamObject<T = unknown>(options: StreamObjectOptions<T>): Promise<StreamObjectResult<T>>;
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ /**
3
+ * Generate Object - AI SDK Wrapper
4
+ *
5
+ * Provides generateObject and streamObject functions for structured output generation.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.generateObject = generateObject;
42
+ exports.streamObject = streamObject;
43
+ // Lazy load AI SDK
44
+ let aiSdk = null;
45
+ let aiSdkLoaded = false;
46
+ async function loadAISDK() {
47
+ if (aiSdkLoaded)
48
+ return aiSdk;
49
+ try {
50
+ aiSdk = await Promise.resolve().then(() => __importStar(require('ai')));
51
+ aiSdkLoaded = true;
52
+ return aiSdk;
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Resolve model string to AI SDK model instance
60
+ */
61
+ async function resolveModel(modelString) {
62
+ let provider = 'openai';
63
+ let modelId = modelString;
64
+ if (modelString.includes('/')) {
65
+ const parts = modelString.split('/');
66
+ provider = parts[0].toLowerCase();
67
+ modelId = parts.slice(1).join('/');
68
+ }
69
+ else {
70
+ if (modelString.startsWith('claude'))
71
+ provider = 'anthropic';
72
+ else if (modelString.startsWith('gemini'))
73
+ provider = 'google';
74
+ }
75
+ let providerModule;
76
+ try {
77
+ switch (provider) {
78
+ case 'openai':
79
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
80
+ return providerModule.openai(modelId);
81
+ case 'anthropic':
82
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/anthropic')));
83
+ return providerModule.anthropic(modelId);
84
+ case 'google':
85
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/google')));
86
+ return providerModule.google(modelId);
87
+ default:
88
+ providerModule = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
89
+ return providerModule.openai(modelId);
90
+ }
91
+ }
92
+ catch (error) {
93
+ throw new Error(`Failed to load provider '${provider}': ${error.message}`);
94
+ }
95
+ }
96
+ /**
97
+ * Generate a structured object using a language model.
98
+ *
99
+ * @example With Zod schema
100
+ * ```typescript
101
+ * import { z } from 'zod';
102
+ *
103
+ * const result = await generateObject({
104
+ * model: 'gpt-4o',
105
+ * schema: z.object({
106
+ * name: z.string(),
107
+ * age: z.number()
108
+ * }),
109
+ * prompt: 'Generate a person'
110
+ * });
111
+ * console.log(result.object); // { name: 'John', age: 30 }
112
+ * ```
113
+ *
114
+ * @example With JSON schema
115
+ * ```typescript
116
+ * const result = await generateObject({
117
+ * model: 'gpt-4o',
118
+ * schema: {
119
+ * type: 'object',
120
+ * properties: {
121
+ * name: { type: 'string' },
122
+ * age: { type: 'number' }
123
+ * },
124
+ * required: ['name', 'age']
125
+ * },
126
+ * prompt: 'Generate a person'
127
+ * });
128
+ * ```
129
+ */
130
+ async function generateObject(options) {
131
+ const sdk = await loadAISDK();
132
+ if (!sdk) {
133
+ throw new Error('AI SDK not available. Install with: npm install ai @ai-sdk/openai');
134
+ }
135
+ const model = await resolveModel(options.model);
136
+ const result = await sdk.generateObject({
137
+ model,
138
+ schema: options.schema,
139
+ schemaName: options.schemaName,
140
+ schemaDescription: options.schemaDescription,
141
+ mode: options.mode,
142
+ prompt: options.prompt,
143
+ messages: options.messages,
144
+ system: options.system,
145
+ maxTokens: options.maxTokens,
146
+ temperature: options.temperature,
147
+ topP: options.topP,
148
+ maxRetries: options.maxRetries,
149
+ abortSignal: options.abortSignal,
150
+ headers: options.headers,
151
+ onFinish: options.onFinish,
152
+ });
153
+ return {
154
+ object: result.object,
155
+ usage: result.usage || { promptTokens: 0, completionTokens: 0, totalTokens: 0 },
156
+ finishReason: result.finishReason || 'stop',
157
+ warnings: result.warnings,
158
+ };
159
+ }
160
+ /**
161
+ * Stream a structured object using a language model.
162
+ *
163
+ * @example Streaming partial objects
164
+ * ```typescript
165
+ * import { z } from 'zod';
166
+ *
167
+ * const result = await streamObject({
168
+ * model: 'gpt-4o',
169
+ * schema: z.object({
170
+ * story: z.string(),
171
+ * characters: z.array(z.string())
172
+ * }),
173
+ * prompt: 'Write a short story',
174
+ * onPartialObject: (partial) => {
175
+ * console.log('Partial:', partial);
176
+ * }
177
+ * });
178
+ *
179
+ * const finalObject = await result.object;
180
+ * ```
181
+ */
182
+ async function streamObject(options) {
183
+ const sdk = await loadAISDK();
184
+ if (!sdk) {
185
+ throw new Error('AI SDK not available. Install with: npm install ai @ai-sdk/openai');
186
+ }
187
+ const model = await resolveModel(options.model);
188
+ const result = sdk.streamObject({
189
+ model,
190
+ schema: options.schema,
191
+ schemaName: options.schemaName,
192
+ schemaDescription: options.schemaDescription,
193
+ mode: options.mode,
194
+ prompt: options.prompt,
195
+ messages: options.messages,
196
+ system: options.system,
197
+ maxTokens: options.maxTokens,
198
+ temperature: options.temperature,
199
+ topP: options.topP,
200
+ maxRetries: options.maxRetries,
201
+ abortSignal: options.abortSignal,
202
+ headers: options.headers,
203
+ onFinish: options.onFinish,
204
+ });
205
+ return result;
206
+ }