@scenemesh/entity-engine-aimodule 1.0.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/LICENSE +21 -0
- package/README.md +854 -0
- package/dist/ai-core-LBGYFGOK.mjs +17 -0
- package/dist/ai-core-LBGYFGOK.mjs.map +1 -0
- package/dist/ai-core-UGJWSCQN.js +17 -0
- package/dist/ai-core-UGJWSCQN.js.map +1 -0
- package/dist/ai-core-manager-B3Z34RHA.mjs +9 -0
- package/dist/ai-core-manager-B3Z34RHA.mjs.map +1 -0
- package/dist/ai-core-manager-W7SSDCG5.js +9 -0
- package/dist/ai-core-manager-W7SSDCG5.js.map +1 -0
- package/dist/ai-embeddings-5ED5LDXX.mjs +17 -0
- package/dist/ai-embeddings-5ED5LDXX.mjs.map +1 -0
- package/dist/ai-embeddings-WCXZMMTZ.js +17 -0
- package/dist/ai-embeddings-WCXZMMTZ.js.map +1 -0
- package/dist/ai-form-renderer-24IWNMX5.js +233 -0
- package/dist/ai-form-renderer-24IWNMX5.js.map +1 -0
- package/dist/ai-form-renderer-BORQABF2.mjs +233 -0
- package/dist/ai-form-renderer-BORQABF2.mjs.map +1 -0
- package/dist/ai-provider-3PSCVEEN.mjs +17 -0
- package/dist/ai-provider-3PSCVEEN.mjs.map +1 -0
- package/dist/ai-provider-WMPMVZFL.js +17 -0
- package/dist/ai-provider-WMPMVZFL.js.map +1 -0
- package/dist/ai-renderer-7WGGWH5D.mjs +134 -0
- package/dist/ai-renderer-7WGGWH5D.mjs.map +1 -0
- package/dist/ai-renderer-OILYWAJV.js +134 -0
- package/dist/ai-renderer-OILYWAJV.js.map +1 -0
- package/dist/ai-settings-DGCFPK3U.js +15 -0
- package/dist/ai-settings-DGCFPK3U.js.map +1 -0
- package/dist/ai-settings-DTXEAB64.mjs +15 -0
- package/dist/ai-settings-DTXEAB64.mjs.map +1 -0
- package/dist/ai-structured-EGZ26ZS4.mjs +13 -0
- package/dist/ai-structured-EGZ26ZS4.mjs.map +1 -0
- package/dist/ai-structured-N2FZLO4A.js +13 -0
- package/dist/ai-structured-N2FZLO4A.js.map +1 -0
- package/dist/ai-tools-B3R77HZ3.js +19 -0
- package/dist/ai-tools-B3R77HZ3.js.map +1 -0
- package/dist/ai-tools-JAPVYQGE.mjs +19 -0
- package/dist/ai-tools-JAPVYQGE.mjs.map +1 -0
- package/dist/ai.module-GAHVCBTP.js +7 -0
- package/dist/ai.module-GAHVCBTP.js.map +1 -0
- package/dist/ai.module-TTPMTPB3.mjs +7 -0
- package/dist/ai.module-TTPMTPB3.mjs.map +1 -0
- package/dist/chunk-25C2NRSD.mjs +611 -0
- package/dist/chunk-25C2NRSD.mjs.map +1 -0
- package/dist/chunk-4JQ7UOXH.js +427 -0
- package/dist/chunk-4JQ7UOXH.js.map +1 -0
- package/dist/chunk-6IUKES2L.js +290 -0
- package/dist/chunk-6IUKES2L.js.map +1 -0
- package/dist/chunk-COWPK7XN.mjs +834 -0
- package/dist/chunk-COWPK7XN.mjs.map +1 -0
- package/dist/chunk-CTEXPMVZ.js +512 -0
- package/dist/chunk-CTEXPMVZ.js.map +1 -0
- package/dist/chunk-DXQTHA75.js +573 -0
- package/dist/chunk-DXQTHA75.js.map +1 -0
- package/dist/chunk-DZFQ6I23.js +72 -0
- package/dist/chunk-DZFQ6I23.js.map +1 -0
- package/dist/chunk-J323UTPE.mjs +650 -0
- package/dist/chunk-J323UTPE.mjs.map +1 -0
- package/dist/chunk-LHNNALVF.js +834 -0
- package/dist/chunk-LHNNALVF.js.map +1 -0
- package/dist/chunk-O7SZSMXV.js +1621 -0
- package/dist/chunk-O7SZSMXV.js.map +1 -0
- package/dist/chunk-OTNOFOVW.js +650 -0
- package/dist/chunk-OTNOFOVW.js.map +1 -0
- package/dist/chunk-PRIGZEI4.mjs +72 -0
- package/dist/chunk-PRIGZEI4.mjs.map +1 -0
- package/dist/chunk-SBSZ3IPB.mjs +573 -0
- package/dist/chunk-SBSZ3IPB.mjs.map +1 -0
- package/dist/chunk-SXPA6SSD.mjs +1621 -0
- package/dist/chunk-SXPA6SSD.mjs.map +1 -0
- package/dist/chunk-T5A4KAVS.mjs +512 -0
- package/dist/chunk-T5A4KAVS.mjs.map +1 -0
- package/dist/chunk-TDRKKUNT.mjs +357 -0
- package/dist/chunk-TDRKKUNT.mjs.map +1 -0
- package/dist/chunk-TJFNODPE.js +357 -0
- package/dist/chunk-TJFNODPE.js.map +1 -0
- package/dist/chunk-V2SSI3SL.mjs +427 -0
- package/dist/chunk-V2SSI3SL.mjs.map +1 -0
- package/dist/chunk-X42L6MTY.mjs +290 -0
- package/dist/chunk-X42L6MTY.mjs.map +1 -0
- package/dist/chunk-YSVMY77H.js +611 -0
- package/dist/chunk-YSVMY77H.js.map +1 -0
- package/dist/core-ANYRS6EF.mjs +73 -0
- package/dist/core-ANYRS6EF.mjs.map +1 -0
- package/dist/core-K5K34DCS.js +73 -0
- package/dist/core-K5K34DCS.js.map +1 -0
- package/dist/core-index.d.mts +1668 -0
- package/dist/core-index.d.ts +1668 -0
- package/dist/core-index.js +101 -0
- package/dist/core-index.js.map +1 -0
- package/dist/core-index.mjs +101 -0
- package/dist/core-index.mjs.map +1 -0
- package/dist/index.d.mts +2911 -0
- package/dist/index.d.ts +2911 -0
- package/dist/index.js +1177 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1177 -0
- package/dist/index.mjs.map +1 -0
- package/dist/tools-352X7A6X.mjs +366 -0
- package/dist/tools-352X7A6X.mjs.map +1 -0
- package/dist/tools-YLEX6GNO.js +366 -0
- package/dist/tools-YLEX6GNO.js.map +1 -0
- package/dist/ui-index.d.mts +627 -0
- package/dist/ui-index.d.ts +627 -0
- package/dist/ui-index.js +2354 -0
- package/dist/ui-index.js.map +1 -0
- package/dist/ui-index.mjs +2353 -0
- package/dist/ui-index.mjs.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
// src/core/ai-core.ts
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
import {
|
|
4
|
+
tool,
|
|
5
|
+
streamText,
|
|
6
|
+
generateText,
|
|
7
|
+
streamObject,
|
|
8
|
+
smoothStream,
|
|
9
|
+
generateObject
|
|
10
|
+
} from "ai";
|
|
11
|
+
var AISDKIntegration = class extends EventEmitter {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.initialized = false;
|
|
15
|
+
this.requestCounter = 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Initialize the AI integration
|
|
19
|
+
*/
|
|
20
|
+
async initialize() {
|
|
21
|
+
if (this.initialized) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
this.emit("ai_sdk:initializing");
|
|
26
|
+
this.initialized = true;
|
|
27
|
+
this.emit("ai_sdk:initialized");
|
|
28
|
+
} catch (error) {
|
|
29
|
+
this.emit("ai_sdk:initialization_failed", { error });
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Generate request ID
|
|
35
|
+
*/
|
|
36
|
+
generateRequestId() {
|
|
37
|
+
return `ai-sdk-${Date.now()}-${++this.requestCounter}`;
|
|
38
|
+
}
|
|
39
|
+
// generateText methods
|
|
40
|
+
/**
|
|
41
|
+
* Text generation
|
|
42
|
+
*/
|
|
43
|
+
async generateText(options) {
|
|
44
|
+
if (!this.initialized) {
|
|
45
|
+
throw new Error("AISDKIntegration not initialized. Call initialize() first.");
|
|
46
|
+
}
|
|
47
|
+
const requestId = this.generateRequestId();
|
|
48
|
+
const startTime = Date.now();
|
|
49
|
+
try {
|
|
50
|
+
this.emit("ai_sdk:generate_started", {
|
|
51
|
+
requestId,
|
|
52
|
+
model: typeof options.model === "string" ? options.model : "unknown",
|
|
53
|
+
hasTools: !!options.tools,
|
|
54
|
+
hasMessages: !!options.messages?.length,
|
|
55
|
+
hasSystem: !!options.system,
|
|
56
|
+
hasPrompt: !!options.prompt
|
|
57
|
+
});
|
|
58
|
+
const result = await generateText(options);
|
|
59
|
+
this.emit("ai_sdk:generate_completed", {
|
|
60
|
+
requestId,
|
|
61
|
+
latency: Date.now() - startTime,
|
|
62
|
+
finishReason: result.finishReason,
|
|
63
|
+
usage: result.usage,
|
|
64
|
+
totalUsage: result.totalUsage,
|
|
65
|
+
toolCalls: result.toolCalls?.length || 0,
|
|
66
|
+
toolResults: result.toolResults?.length || 0,
|
|
67
|
+
steps: result.steps?.length || 1,
|
|
68
|
+
textLength: result.text?.length || 0,
|
|
69
|
+
hasReasoning: !!result.reasoning?.length,
|
|
70
|
+
hasFiles: !!result.files?.length,
|
|
71
|
+
hasSources: !!result.sources?.length,
|
|
72
|
+
warnings: result.warnings?.length || 0
|
|
73
|
+
});
|
|
74
|
+
return result;
|
|
75
|
+
} catch (error) {
|
|
76
|
+
this.emit("ai_sdk:generate_failed", {
|
|
77
|
+
requestId,
|
|
78
|
+
error: error.message,
|
|
79
|
+
latency: Date.now() - startTime,
|
|
80
|
+
errorType: error.constructor.name
|
|
81
|
+
});
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// streamText methods
|
|
86
|
+
/**
|
|
87
|
+
* Streaming text generation
|
|
88
|
+
*/
|
|
89
|
+
streamText(options) {
|
|
90
|
+
if (!this.initialized) {
|
|
91
|
+
throw new Error("AISDKIntegration not initialized. Call initialize() first.");
|
|
92
|
+
}
|
|
93
|
+
const requestId = this.generateRequestId();
|
|
94
|
+
const startTime = Date.now();
|
|
95
|
+
this.emit("ai_sdk:stream_started", {
|
|
96
|
+
requestId,
|
|
97
|
+
model: typeof options.model === "string" ? options.model : "unknown",
|
|
98
|
+
hasTools: !!options.tools,
|
|
99
|
+
hasMessages: !!options.messages?.length,
|
|
100
|
+
hasSystem: !!options.system,
|
|
101
|
+
hasPrompt: !!options.prompt,
|
|
102
|
+
hasTransform: !!options.experimental_transform
|
|
103
|
+
});
|
|
104
|
+
const wrappedOptions = {
|
|
105
|
+
...options,
|
|
106
|
+
onError: (event) => {
|
|
107
|
+
this.emit("ai_sdk:stream_error", {
|
|
108
|
+
requestId,
|
|
109
|
+
error: event.error,
|
|
110
|
+
latency: Date.now() - startTime
|
|
111
|
+
});
|
|
112
|
+
if (options.onError) {
|
|
113
|
+
options.onError(event);
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
onFinish: async (result) => {
|
|
117
|
+
this.emit("ai_sdk:stream_finished", {
|
|
118
|
+
requestId,
|
|
119
|
+
latency: Date.now() - startTime,
|
|
120
|
+
finishReason: result.finishReason,
|
|
121
|
+
usage: result.usage,
|
|
122
|
+
totalUsage: result.totalUsage,
|
|
123
|
+
toolCalls: result.toolCalls?.length || 0,
|
|
124
|
+
toolResults: result.toolResults?.length || 0,
|
|
125
|
+
steps: result.steps?.length || 1,
|
|
126
|
+
textLength: result.text?.length || 0,
|
|
127
|
+
hasReasoning: !!result.reasoning?.length,
|
|
128
|
+
hasFiles: !!result.files?.length,
|
|
129
|
+
hasSources: !!result.sources?.length,
|
|
130
|
+
warnings: result.warnings?.length || 0
|
|
131
|
+
});
|
|
132
|
+
if (options.onFinish) {
|
|
133
|
+
await options.onFinish(result);
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
onAbort: (event) => {
|
|
137
|
+
this.emit("ai_sdk:stream_aborted", {
|
|
138
|
+
requestId,
|
|
139
|
+
latency: Date.now() - startTime,
|
|
140
|
+
steps: event.steps?.length || 0
|
|
141
|
+
});
|
|
142
|
+
if (options.onAbort) {
|
|
143
|
+
options.onAbort(event);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
return streamText(wrappedOptions);
|
|
148
|
+
}
|
|
149
|
+
// generateObject & streamObject methods
|
|
150
|
+
/**
|
|
151
|
+
* Generate structured object
|
|
152
|
+
*/
|
|
153
|
+
async generateObject(options) {
|
|
154
|
+
if (!this.initialized) {
|
|
155
|
+
throw new Error("AISDKIntegration not initialized. Call initialize() first.");
|
|
156
|
+
}
|
|
157
|
+
const requestId = this.generateRequestId();
|
|
158
|
+
const startTime = Date.now();
|
|
159
|
+
try {
|
|
160
|
+
this.emit("ai_sdk:generate_object_started", {
|
|
161
|
+
requestId,
|
|
162
|
+
model: typeof options.model === "string" ? options.model : "unknown",
|
|
163
|
+
output: options.output || "object",
|
|
164
|
+
mode: options.mode || "auto",
|
|
165
|
+
hasSchema: !!options.schema,
|
|
166
|
+
hasEnum: !!options.enum
|
|
167
|
+
});
|
|
168
|
+
const result = await generateObject(options);
|
|
169
|
+
this.emit("ai_sdk:generate_object_completed", {
|
|
170
|
+
requestId,
|
|
171
|
+
latency: Date.now() - startTime,
|
|
172
|
+
finishReason: result.finishReason,
|
|
173
|
+
usage: result.usage,
|
|
174
|
+
hasReasoning: !!result.reasoning,
|
|
175
|
+
warnings: result.warnings?.length || 0
|
|
176
|
+
});
|
|
177
|
+
return result;
|
|
178
|
+
} catch (error) {
|
|
179
|
+
this.emit("ai_sdk:generate_object_failed", {
|
|
180
|
+
requestId,
|
|
181
|
+
error: error.message,
|
|
182
|
+
latency: Date.now() - startTime,
|
|
183
|
+
errorType: error.constructor.name
|
|
184
|
+
});
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Streaming structured object generation
|
|
190
|
+
*/
|
|
191
|
+
streamObject(options) {
|
|
192
|
+
if (!this.initialized) {
|
|
193
|
+
throw new Error("AISDKIntegration not initialized. Call initialize() first.");
|
|
194
|
+
}
|
|
195
|
+
const requestId = this.generateRequestId();
|
|
196
|
+
const startTime = Date.now();
|
|
197
|
+
this.emit("ai_sdk:stream_object_started", {
|
|
198
|
+
requestId,
|
|
199
|
+
model: typeof options.model === "string" ? options.model : "unknown",
|
|
200
|
+
output: options.output || "object",
|
|
201
|
+
mode: options.mode || "auto",
|
|
202
|
+
hasSchema: !!options.schema,
|
|
203
|
+
hasEnum: !!options.enum
|
|
204
|
+
});
|
|
205
|
+
const wrappedOptions = {
|
|
206
|
+
...options,
|
|
207
|
+
onError: (event) => {
|
|
208
|
+
this.emit("ai_sdk:stream_object_error", {
|
|
209
|
+
requestId,
|
|
210
|
+
error: event.error,
|
|
211
|
+
latency: Date.now() - startTime
|
|
212
|
+
});
|
|
213
|
+
if (options.onError) {
|
|
214
|
+
options.onError(event);
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
onFinish: (result) => {
|
|
218
|
+
this.emit("ai_sdk:stream_object_finished", {
|
|
219
|
+
requestId,
|
|
220
|
+
latency: Date.now() - startTime,
|
|
221
|
+
usage: result.usage,
|
|
222
|
+
hasError: !!result.error,
|
|
223
|
+
warnings: result.warnings?.length || 0
|
|
224
|
+
});
|
|
225
|
+
if (options.onFinish) {
|
|
226
|
+
options.onFinish(result);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
return streamObject(wrappedOptions);
|
|
231
|
+
}
|
|
232
|
+
// Tool helper methods
|
|
233
|
+
/**
|
|
234
|
+
* Create tool
|
|
235
|
+
*/
|
|
236
|
+
createTool(description, inputSchema, execute) {
|
|
237
|
+
return tool({
|
|
238
|
+
description,
|
|
239
|
+
parameters: inputSchema,
|
|
240
|
+
execute
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Create smooth stream
|
|
245
|
+
*/
|
|
246
|
+
createSmoothStream() {
|
|
247
|
+
return smoothStream();
|
|
248
|
+
}
|
|
249
|
+
// Utility methods
|
|
250
|
+
/**
|
|
251
|
+
* Check initialization status
|
|
252
|
+
*/
|
|
253
|
+
isInitialized() {
|
|
254
|
+
return this.initialized;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Get statistics
|
|
258
|
+
*/
|
|
259
|
+
getStats() {
|
|
260
|
+
return {
|
|
261
|
+
requestCount: this.requestCounter,
|
|
262
|
+
isInitialized: this.initialized
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Reset statistics
|
|
267
|
+
*/
|
|
268
|
+
resetStats() {
|
|
269
|
+
this.requestCounter = 0;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Destroy instance
|
|
273
|
+
*/
|
|
274
|
+
destroy() {
|
|
275
|
+
this.removeAllListeners();
|
|
276
|
+
this.initialized = false;
|
|
277
|
+
this.requestCounter = 0;
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
var ai_core_default = AISDKIntegration;
|
|
281
|
+
|
|
282
|
+
export {
|
|
283
|
+
tool,
|
|
284
|
+
streamText,
|
|
285
|
+
generateText,
|
|
286
|
+
smoothStream,
|
|
287
|
+
AISDKIntegration,
|
|
288
|
+
ai_core_default
|
|
289
|
+
};
|
|
290
|
+
//# sourceMappingURL=chunk-X42L6MTY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/ai-core.ts"],"sourcesContent":["/**\n * Complete AI Integration\n * \n * Core AI functionality implementation:\n * - generateText: Text generation\n * - streamText: Streaming text generation \n * - generateObject: Structured object generation\n */\n\nimport type { z } from 'zod';\n\nimport { EventEmitter } from 'events';\nimport {\n tool,\n type Tool,\n streamText,\n generateText,\n streamObject,\n smoothStream,\n type ToolSet,\n generateObject,\n type CoreMessage,\n type FinishReason,\n type LanguageModel,\n type TextStreamPart,\n type StreamTextResult,\n type GenerateTextResult,\n type StreamObjectResult,\n type LanguageModelUsage,\n type GenerateObjectResult,\n type LanguageModelRequestMetadata,\n type LanguageModelResponseMetadata\n} from 'ai';\n\n// Type Definitions\n\n/**\n * Complete generateText options interface\n */\nexport interface GenerateTextOptions<TOOLS extends ToolSet = {}> {\n // Core parameters\n model: LanguageModel;\n system?: string;\n prompt?: string | Array<any>; // Supports SystemModelMessage | UserModelMessage | AssistantModelMessage | ToolModelMessage\n messages?: CoreMessage[];\n \n // Tool calling parameters\n tools?: TOOLS;\n toolChoice?: 'auto' | 'none' | 'required' | { type: 'tool'; toolName: string };\n activeTools?: Array<keyof TOOLS>;\n \n // Generation control parameters\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n stopSequences?: string[];\n seed?: number;\n \n // Flow control parameters\n maxRetries?: number;\n stopWhen?: any; // StopCondition<TOOLS> | Array<StopCondition<TOOLS>>\n prepareStep?: (options: {\n steps: Array<any>; // Array<StepResult<TOOLS>>\n stepNumber: number;\n model: LanguageModel;\n messages: Array<any>; // Array<ModelMessage>\n }) => any | Promise<any>; // PrepareStepResult<TOOLS>\n \n // Network and control\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n \n // Experimental features\n experimental_telemetry?: {\n isEnabled?: boolean;\n recordInputs?: boolean;\n recordOutputs?: boolean;\n functionId?: string;\n metadata?: Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>;\n };\n experimental_context?: unknown;\n experimental_download?: (requestedDownloads: Array<{ url: URL; isUrlSupportedByModel: boolean }>) => Promise<Array<null | { data: Uint8Array; mediaType?: string }>>;\n experimental_repairToolCall?: (options: {\n system?: string;\n messages: Array<any>; // ModelMessage[]\n toolCall: any; // LanguageModelV2ToolCall\n tools: TOOLS;\n parameterSchema: (options: { toolName: string }) => any; // JSONSchema7\n error: any; // NoSuchToolError | InvalidToolInputError\n }) => Promise<any | null>; // LanguageModelV2ToolCall | null\n experimental_output?: {\n format: 'text' | 'object';\n schema?: any;\n };\n \n // Provider options\n providerOptions?: Record<string, Record<string, any>>;\n \n // Callback functions\n onStepFinish?: (result: {\n finishReason: FinishReason;\n usage: LanguageModelUsage;\n text: string;\n toolCalls: Array<any>;\n toolResults: Array<any>;\n warnings?: Array<any>;\n response?: {\n id: string;\n model: string;\n timestamp: Date;\n headers?: Record<string, string>;\n body?: unknown;\n };\n isContinued: boolean;\n providerMetadata?: Record<string, Record<string, any>>;\n }) => Promise<void> | void;\n}\n\n/**\n * Complete streamText options interface\n */\nexport interface StreamTextOptions<TOOLS extends ToolSet = {}> \n extends Omit<GenerateTextOptions<TOOLS>, 'onStepFinish'> {\n \n // Stream-specific parameters\n experimental_generateMessageId?: () => string;\n experimental_transform?: any | any[]; // StreamTextTransform | Array<StreamTextTransform>\n includeRawChunks?: boolean;\n \n // Stream callback functions\n onChunk?: (event: { chunk: TextStreamPart<TOOLS> }) => Promise<void> | void;\n onError?: (event: { error: unknown }) => Promise<void> | void;\n onStepFinish?: (result: {\n stepType: 'initial' | 'continue' | 'tool-result';\n finishReason: FinishReason;\n usage: LanguageModelUsage;\n text: string;\n reasoning?: string;\n sources: Array<{\n sourceType: 'url';\n id: string;\n url: string;\n title?: string;\n providerMetadata?: any;\n }>;\n files: Array<{\n base64: string;\n uint8Array: Uint8Array;\n mediaType: string;\n }>;\n toolCalls: Array<any>;\n toolResults: Array<any>;\n warnings?: Array<any>;\n response?: {\n id: string;\n model: string;\n timestamp: Date;\n headers?: Record<string, string>;\n messages: Array<any>; // Array<ResponseMessage>\n };\n isContinued: boolean;\n providerMetadata?: Record<string, Record<string, any>>;\n }) => Promise<void> | void;\n onFinish?: (result: {\n finishReason: FinishReason;\n usage: LanguageModelUsage;\n totalUsage: LanguageModelUsage;\n providerMetadata?: Record<string, Record<string, any>>;\n text: string;\n reasoning?: string;\n reasoningDetails: Array<{\n type: 'text' | 'redacted';\n text?: string;\n signature?: string;\n data?: string;\n }>;\n sources: Array<{\n sourceType: 'url';\n id: string;\n url: string;\n title?: string;\n providerMetadata?: any;\n }>;\n files: Array<{\n base64: string;\n uint8Array: Uint8Array;\n mediaType: string;\n }>;\n toolCalls: Array<any>;\n toolResults: Array<any>;\n warnings?: Array<any>;\n response?: {\n id: string;\n model: string;\n timestamp: Date;\n headers?: Record<string, string>;\n messages: Array<any>; // Array<ResponseMessage>\n };\n steps: Array<any>; // Array<StepResult>\n }) => Promise<void> | void;\n onAbort?: (event: { steps: Array<any> }) => Promise<void> | void;\n}\n\n/**\n * Result types\n */\nexport type GenerateResult<TOOLS extends ToolSet = {}> = GenerateTextResult<TOOLS, any> & {\n // All return value properties\n content: Array<any>; // ContentPart<TOOLS>\n text: string;\n reasoning: Array<any>; // ReasoningPart\n reasoningText: string | undefined;\n sources: Array<any>; // Source\n files: Array<any>; // GeneratedFile\n toolCalls: Array<any>; // ToolCallArray<TOOLS>\n toolResults: Array<any>; // ToolResultArray<TOOLS>\n finishReason: 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown';\n usage: LanguageModelUsage;\n totalUsage: LanguageModelUsage;\n request?: LanguageModelRequestMetadata;\n response?: LanguageModelResponseMetadata;\n warnings?: Array<any>;\n providerMetadata?: any;\n experimental_output?: any;\n steps: Array<any>; // StepResult<TOOLS>\n};\nexport type StreamResult<TOOLS extends ToolSet = {}> = StreamTextResult<TOOLS, any> & {\n // All Promise properties for streaming\n content: Promise<Array<any>>; // ContentPart<TOOLS>\n finishReason: Promise<'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown'>;\n usage: Promise<LanguageModelUsage>;\n totalUsage: Promise<LanguageModelUsage>;\n providerMetadata: Promise<any>;\n text: Promise<string>;\n reasoning: Promise<Array<any>>; // ReasoningPart\n reasoningText: Promise<string | undefined>;\n sources: Promise<Array<any>>; // Source\n files: Promise<Array<any>>; // GeneratedFile\n toolCalls: Promise<Array<any>>; // TypedToolCall<TOOLS>\n toolResults: Promise<Array<any>>; // TypedToolResult<TOOLS>\n request: Promise<LanguageModelRequestMetadata>;\n response: Promise<LanguageModelResponseMetadata & { messages: Array<any> }>;\n warnings: Promise<Array<any> | undefined>;\n steps: Promise<Array<any>>; // StepResult\n \n // Stream properties\n textStream: AsyncIterable<string> & ReadableStream<string>;\n fullStream: AsyncIterable<any> & ReadableStream<any>; // TextStreamPart<TOOLS>\n};\n\n// Core Integration Class\n\n/**\n * Complete AI integration class\n */\nexport class AISDKIntegration extends EventEmitter {\n private initialized: boolean = false;\n private requestCounter: number = 0;\n\n constructor() {\n super();\n }\n\n /**\n * Initialize the AI integration\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n this.emit('ai_sdk:initializing');\n this.initialized = true;\n this.emit('ai_sdk:initialized');\n } catch (error) {\n this.emit('ai_sdk:initialization_failed', { error });\n throw error;\n }\n }\n\n /**\n * Generate request ID\n */\n private generateRequestId(): string {\n return `ai-sdk-${Date.now()}-${++this.requestCounter}`;\n }\n\n // generateText methods\n\n /**\n * Text generation\n */\n async generateText<TOOLS extends ToolSet = {}>(\n options: GenerateTextOptions<TOOLS>\n ): Promise<GenerateResult<TOOLS>> {\n if (!this.initialized) {\n throw new Error('AISDKIntegration not initialized. Call initialize() first.');\n }\n\n const requestId = this.generateRequestId();\n const startTime = Date.now();\n\n try {\n this.emit('ai_sdk:generate_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n hasTools: !!options.tools,\n hasMessages: !!options.messages?.length,\n hasSystem: !!options.system,\n hasPrompt: !!options.prompt\n });\n\n const result = await generateText(options as any);\n\n this.emit('ai_sdk:generate_completed', {\n requestId,\n latency: Date.now() - startTime,\n finishReason: result.finishReason,\n usage: result.usage,\n totalUsage: result.totalUsage,\n toolCalls: result.toolCalls?.length || 0,\n toolResults: result.toolResults?.length || 0,\n steps: result.steps?.length || 1,\n textLength: result.text?.length || 0,\n hasReasoning: !!result.reasoning?.length,\n hasFiles: !!result.files?.length,\n hasSources: !!result.sources?.length,\n warnings: result.warnings?.length || 0\n });\n\n return result as unknown as GenerateResult<TOOLS>;\n\n } catch (error: any) {\n this.emit('ai_sdk:generate_failed', {\n requestId,\n error: error.message,\n latency: Date.now() - startTime,\n errorType: error.constructor.name\n });\n\n throw error;\n }\n }\n\n // streamText methods\n\n /**\n * Streaming text generation\n */\n streamText<TOOLS extends ToolSet = {}>(\n options: StreamTextOptions<TOOLS>\n ): StreamTextResult<TOOLS, any> {\n if (!this.initialized) {\n throw new Error('AISDKIntegration not initialized. Call initialize() first.');\n }\n\n const requestId = this.generateRequestId();\n const startTime = Date.now();\n\n this.emit('ai_sdk:stream_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n hasTools: !!options.tools,\n hasMessages: !!options.messages?.length,\n hasSystem: !!options.system,\n hasPrompt: !!options.prompt,\n hasTransform: !!options.experimental_transform\n });\n\n // Wrap callbacks to add event emission\n const wrappedOptions = {\n ...options,\n onError: (event: any) => {\n this.emit('ai_sdk:stream_error', {\n requestId,\n error: event.error,\n latency: Date.now() - startTime\n });\n if (options.onError) {\n options.onError(event);\n }\n },\n onFinish: async (result: any) => {\n this.emit('ai_sdk:stream_finished', {\n requestId,\n latency: Date.now() - startTime,\n finishReason: result.finishReason,\n usage: result.usage,\n totalUsage: result.totalUsage,\n toolCalls: result.toolCalls?.length || 0,\n toolResults: result.toolResults?.length || 0,\n steps: result.steps?.length || 1,\n textLength: result.text?.length || 0,\n hasReasoning: !!result.reasoning?.length,\n hasFiles: !!result.files?.length,\n hasSources: !!result.sources?.length,\n warnings: result.warnings?.length || 0\n });\n\n if (options.onFinish) {\n await options.onFinish(result);\n }\n },\n onAbort: (event: any) => {\n this.emit('ai_sdk:stream_aborted', {\n requestId,\n latency: Date.now() - startTime,\n steps: event.steps?.length || 0\n });\n if (options.onAbort) {\n options.onAbort(event);\n }\n }\n };\n\n // Return native results directly\n return streamText(wrappedOptions as any);\n }\n\n // generateObject & streamObject methods\n\n /**\n * Generate structured object\n */\n async generateObject<SCHEMA>(\n options: {\n model: LanguageModel;\n output?: 'object' | 'array' | 'enum' | 'no-schema';\n mode?: 'auto' | 'json' | 'tool';\n schema?: SCHEMA;\n schemaName?: string;\n schemaDescription?: string;\n enum?: string[];\n system?: string;\n prompt?: string;\n messages?: CoreMessage[];\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n seed?: number;\n maxRetries?: number;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n experimental_repairText?: (options: { text: string; error: any; }) => Promise<string>;\n experimental_download?: (requestedDownloads: Array<{ url: URL; isUrlSupportedByModel: boolean }>) => Promise<Array<null | { data: Uint8Array; mediaType?: string }>>;\n experimental_telemetry?: {\n isEnabled?: boolean;\n recordInputs?: boolean;\n recordOutputs?: boolean;\n functionId?: string;\n metadata?: Record<string, any>;\n };\n providerOptions?: Record<string, Record<string, any>>;\n }\n ): Promise<GenerateObjectResult<SCHEMA>> {\n if (!this.initialized) {\n throw new Error('AISDKIntegration not initialized. Call initialize() first.');\n }\n\n const requestId = this.generateRequestId();\n const startTime = Date.now();\n\n try {\n this.emit('ai_sdk:generate_object_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n output: options.output || 'object',\n mode: options.mode || 'auto',\n hasSchema: !!options.schema,\n hasEnum: !!options.enum\n });\n\n const result = await generateObject(options as any);\n\n this.emit('ai_sdk:generate_object_completed', {\n requestId,\n latency: Date.now() - startTime,\n finishReason: result.finishReason,\n usage: result.usage,\n hasReasoning: !!result.reasoning,\n warnings: result.warnings?.length || 0\n });\n\n return result as unknown as GenerateObjectResult<SCHEMA>;\n\n } catch (error: any) {\n this.emit('ai_sdk:generate_object_failed', {\n requestId,\n error: error.message,\n latency: Date.now() - startTime,\n errorType: error.constructor.name\n });\n\n throw error;\n }\n }\n\n /**\n * Streaming structured object generation\n */\n streamObject<SCHEMA>(\n options: {\n model: LanguageModel;\n output?: 'object' | 'array' | 'enum' | 'no-schema';\n mode?: 'auto' | 'json' | 'tool';\n schema?: SCHEMA;\n schemaName?: string;\n schemaDescription?: string;\n enum?: string[];\n system?: string;\n prompt?: string;\n messages?: CoreMessage[];\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n seed?: number;\n maxRetries?: number;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n experimental_repairText?: (options: { text: string; error: any; }) => Promise<string>;\n experimental_download?: (requestedDownloads: Array<{ url: URL; isUrlSupportedByModel: boolean }>) => Promise<Array<null | { data: Uint8Array; mediaType?: string }>>;\n experimental_telemetry?: {\n isEnabled?: boolean;\n recordInputs?: boolean;\n recordOutputs?: boolean;\n functionId?: string;\n metadata?: Record<string, any>;\n };\n providerOptions?: Record<string, Record<string, any>>;\n onError?: (event: { error: unknown }) => Promise<void> | void;\n onFinish?: (result: {\n usage: LanguageModelUsage;\n providerMetadata?: Record<string, Record<string, any>>;\n object?: SCHEMA;\n error?: unknown;\n warnings?: Array<any>;\n response?: {\n id: string;\n model: string;\n timestamp: Date;\n headers?: Record<string, string>;\n };\n }) => void;\n }\n ): StreamObjectResult<any, any, any> {\n if (!this.initialized) {\n throw new Error('AISDKIntegration not initialized. Call initialize() first.');\n }\n\n const requestId = this.generateRequestId();\n const startTime = Date.now();\n\n this.emit('ai_sdk:stream_object_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n output: options.output || 'object',\n mode: options.mode || 'auto',\n hasSchema: !!options.schema,\n hasEnum: !!options.enum\n });\n\n // Wrap callbacks to add event emission\n const wrappedOptions = {\n ...options,\n onError: (event: any) => {\n this.emit('ai_sdk:stream_object_error', {\n requestId,\n error: event.error,\n latency: Date.now() - startTime\n });\n if (options.onError) {\n options.onError(event);\n }\n },\n onFinish: (result: any) => {\n this.emit('ai_sdk:stream_object_finished', {\n requestId,\n latency: Date.now() - startTime,\n usage: result.usage,\n hasError: !!result.error,\n warnings: result.warnings?.length || 0\n });\n\n if (options.onFinish) {\n options.onFinish(result);\n }\n }\n };\n\n // Return native results directly\n return streamObject(wrappedOptions as any);\n }\n\n\n // Tool helper methods\n\n /**\n * Create tool\n */\n createTool<TParameters, TResult>(\n description: string,\n inputSchema: z.ZodSchema<TParameters>,\n execute?: (parameters: TParameters) => Promise<TResult> | TResult\n ): Tool<TParameters, TResult> {\n return tool({\n description,\n parameters: inputSchema,\n execute\n } as any);\n }\n\n /**\n * Create smooth stream\n */\n createSmoothStream() {\n return smoothStream();\n }\n\n // Utility methods\n\n /**\n * Check initialization status\n */\n isInitialized(): boolean {\n return this.initialized;\n }\n\n /**\n * Get statistics\n */\n getStats(): {\n requestCount: number;\n isInitialized: boolean;\n } {\n return {\n requestCount: this.requestCounter,\n isInitialized: this.initialized\n };\n }\n\n /**\n * Reset statistics\n */\n resetStats(): void {\n this.requestCounter = 0;\n }\n\n /**\n * Destroy instance\n */\n destroy(): void {\n this.removeAllListeners();\n this.initialized = false;\n this.requestCounter = 0;\n }\n}\n\n// Exports\n\nexport {\n tool,\n type Tool,\n streamText,\n type ToolSet,\n // Core functions\n generateText,\n smoothStream,\n type CoreMessage,\n type FinishReason,\n type LanguageModel,\n \n type TextStreamPart,\n type StreamTextResult,\n // Core types\n type GenerateTextResult,\n type LanguageModelUsage\n};\n\n// Default export\nexport default AISDKIntegration;"],"mappings":"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","names":[]}
|