@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.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +854 -0
  3. package/dist/ai-core-LBGYFGOK.mjs +17 -0
  4. package/dist/ai-core-LBGYFGOK.mjs.map +1 -0
  5. package/dist/ai-core-UGJWSCQN.js +17 -0
  6. package/dist/ai-core-UGJWSCQN.js.map +1 -0
  7. package/dist/ai-core-manager-B3Z34RHA.mjs +9 -0
  8. package/dist/ai-core-manager-B3Z34RHA.mjs.map +1 -0
  9. package/dist/ai-core-manager-W7SSDCG5.js +9 -0
  10. package/dist/ai-core-manager-W7SSDCG5.js.map +1 -0
  11. package/dist/ai-embeddings-5ED5LDXX.mjs +17 -0
  12. package/dist/ai-embeddings-5ED5LDXX.mjs.map +1 -0
  13. package/dist/ai-embeddings-WCXZMMTZ.js +17 -0
  14. package/dist/ai-embeddings-WCXZMMTZ.js.map +1 -0
  15. package/dist/ai-form-renderer-24IWNMX5.js +233 -0
  16. package/dist/ai-form-renderer-24IWNMX5.js.map +1 -0
  17. package/dist/ai-form-renderer-BORQABF2.mjs +233 -0
  18. package/dist/ai-form-renderer-BORQABF2.mjs.map +1 -0
  19. package/dist/ai-provider-3PSCVEEN.mjs +17 -0
  20. package/dist/ai-provider-3PSCVEEN.mjs.map +1 -0
  21. package/dist/ai-provider-WMPMVZFL.js +17 -0
  22. package/dist/ai-provider-WMPMVZFL.js.map +1 -0
  23. package/dist/ai-renderer-7WGGWH5D.mjs +134 -0
  24. package/dist/ai-renderer-7WGGWH5D.mjs.map +1 -0
  25. package/dist/ai-renderer-OILYWAJV.js +134 -0
  26. package/dist/ai-renderer-OILYWAJV.js.map +1 -0
  27. package/dist/ai-settings-DGCFPK3U.js +15 -0
  28. package/dist/ai-settings-DGCFPK3U.js.map +1 -0
  29. package/dist/ai-settings-DTXEAB64.mjs +15 -0
  30. package/dist/ai-settings-DTXEAB64.mjs.map +1 -0
  31. package/dist/ai-structured-EGZ26ZS4.mjs +13 -0
  32. package/dist/ai-structured-EGZ26ZS4.mjs.map +1 -0
  33. package/dist/ai-structured-N2FZLO4A.js +13 -0
  34. package/dist/ai-structured-N2FZLO4A.js.map +1 -0
  35. package/dist/ai-tools-B3R77HZ3.js +19 -0
  36. package/dist/ai-tools-B3R77HZ3.js.map +1 -0
  37. package/dist/ai-tools-JAPVYQGE.mjs +19 -0
  38. package/dist/ai-tools-JAPVYQGE.mjs.map +1 -0
  39. package/dist/ai.module-GAHVCBTP.js +7 -0
  40. package/dist/ai.module-GAHVCBTP.js.map +1 -0
  41. package/dist/ai.module-TTPMTPB3.mjs +7 -0
  42. package/dist/ai.module-TTPMTPB3.mjs.map +1 -0
  43. package/dist/chunk-25C2NRSD.mjs +611 -0
  44. package/dist/chunk-25C2NRSD.mjs.map +1 -0
  45. package/dist/chunk-4JQ7UOXH.js +427 -0
  46. package/dist/chunk-4JQ7UOXH.js.map +1 -0
  47. package/dist/chunk-6IUKES2L.js +290 -0
  48. package/dist/chunk-6IUKES2L.js.map +1 -0
  49. package/dist/chunk-COWPK7XN.mjs +834 -0
  50. package/dist/chunk-COWPK7XN.mjs.map +1 -0
  51. package/dist/chunk-CTEXPMVZ.js +512 -0
  52. package/dist/chunk-CTEXPMVZ.js.map +1 -0
  53. package/dist/chunk-DXQTHA75.js +573 -0
  54. package/dist/chunk-DXQTHA75.js.map +1 -0
  55. package/dist/chunk-DZFQ6I23.js +72 -0
  56. package/dist/chunk-DZFQ6I23.js.map +1 -0
  57. package/dist/chunk-J323UTPE.mjs +650 -0
  58. package/dist/chunk-J323UTPE.mjs.map +1 -0
  59. package/dist/chunk-LHNNALVF.js +834 -0
  60. package/dist/chunk-LHNNALVF.js.map +1 -0
  61. package/dist/chunk-O7SZSMXV.js +1621 -0
  62. package/dist/chunk-O7SZSMXV.js.map +1 -0
  63. package/dist/chunk-OTNOFOVW.js +650 -0
  64. package/dist/chunk-OTNOFOVW.js.map +1 -0
  65. package/dist/chunk-PRIGZEI4.mjs +72 -0
  66. package/dist/chunk-PRIGZEI4.mjs.map +1 -0
  67. package/dist/chunk-SBSZ3IPB.mjs +573 -0
  68. package/dist/chunk-SBSZ3IPB.mjs.map +1 -0
  69. package/dist/chunk-SXPA6SSD.mjs +1621 -0
  70. package/dist/chunk-SXPA6SSD.mjs.map +1 -0
  71. package/dist/chunk-T5A4KAVS.mjs +512 -0
  72. package/dist/chunk-T5A4KAVS.mjs.map +1 -0
  73. package/dist/chunk-TDRKKUNT.mjs +357 -0
  74. package/dist/chunk-TDRKKUNT.mjs.map +1 -0
  75. package/dist/chunk-TJFNODPE.js +357 -0
  76. package/dist/chunk-TJFNODPE.js.map +1 -0
  77. package/dist/chunk-V2SSI3SL.mjs +427 -0
  78. package/dist/chunk-V2SSI3SL.mjs.map +1 -0
  79. package/dist/chunk-X42L6MTY.mjs +290 -0
  80. package/dist/chunk-X42L6MTY.mjs.map +1 -0
  81. package/dist/chunk-YSVMY77H.js +611 -0
  82. package/dist/chunk-YSVMY77H.js.map +1 -0
  83. package/dist/core-ANYRS6EF.mjs +73 -0
  84. package/dist/core-ANYRS6EF.mjs.map +1 -0
  85. package/dist/core-K5K34DCS.js +73 -0
  86. package/dist/core-K5K34DCS.js.map +1 -0
  87. package/dist/core-index.d.mts +1668 -0
  88. package/dist/core-index.d.ts +1668 -0
  89. package/dist/core-index.js +101 -0
  90. package/dist/core-index.js.map +1 -0
  91. package/dist/core-index.mjs +101 -0
  92. package/dist/core-index.mjs.map +1 -0
  93. package/dist/index.d.mts +2911 -0
  94. package/dist/index.d.ts +2911 -0
  95. package/dist/index.js +1177 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/index.mjs +1177 -0
  98. package/dist/index.mjs.map +1 -0
  99. package/dist/tools-352X7A6X.mjs +366 -0
  100. package/dist/tools-352X7A6X.mjs.map +1 -0
  101. package/dist/tools-YLEX6GNO.js +366 -0
  102. package/dist/tools-YLEX6GNO.js.map +1 -0
  103. package/dist/ui-index.d.mts +627 -0
  104. package/dist/ui-index.d.ts +627 -0
  105. package/dist/ui-index.js +2354 -0
  106. package/dist/ui-index.js.map +1 -0
  107. package/dist/ui-index.mjs +2353 -0
  108. package/dist/ui-index.mjs.map +1 -0
  109. package/package.json +105 -0
@@ -0,0 +1,1668 @@
1
+ import { z } from 'zod';
2
+ import { EventEmitter } from 'events';
3
+ import { ToolSet, LanguageModel, CoreMessage, FinishReason, LanguageModelUsage, GenerateTextResult, LanguageModelRequestMetadata, LanguageModelResponseMetadata, TextStreamPart, StreamTextResult, GenerateObjectResult, StreamObjectResult, Tool, dynamicTool, NoSuchToolError, InvalidToolInputError, TypedToolCall, TypedToolResult, EmbeddingModel, ImageModel, Provider } from 'ai';
4
+ export { CoreMessage, EmbeddingModel, FinishReason, GenerateObjectResult, GenerateTextResult, ImageModel, InvalidToolInputError, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, NoSuchToolError, Provider, StreamObjectResult, StreamTextResult, TextStreamPart, Tool, ToolSet, cosineSimilarity, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, generateObject, generateText, smoothStream, streamObject, streamText, tool, wrapLanguageModel } from 'ai';
5
+
6
+ /**
7
+ * Complete AI Integration
8
+ *
9
+ * Core AI functionality implementation:
10
+ * - generateText: Text generation
11
+ * - streamText: Streaming text generation
12
+ * - generateObject: Structured object generation
13
+ */
14
+
15
+ /**
16
+ * Complete generateText options interface
17
+ */
18
+ interface GenerateTextOptions<TOOLS extends ToolSet = {}> {
19
+ model: LanguageModel;
20
+ system?: string;
21
+ prompt?: string | Array<any>;
22
+ messages?: CoreMessage[];
23
+ tools?: TOOLS;
24
+ toolChoice?: 'auto' | 'none' | 'required' | {
25
+ type: 'tool';
26
+ toolName: string;
27
+ };
28
+ activeTools?: Array<keyof TOOLS>;
29
+ maxOutputTokens?: number;
30
+ temperature?: number;
31
+ topP?: number;
32
+ topK?: number;
33
+ presencePenalty?: number;
34
+ frequencyPenalty?: number;
35
+ stopSequences?: string[];
36
+ seed?: number;
37
+ maxRetries?: number;
38
+ stopWhen?: any;
39
+ prepareStep?: (options: {
40
+ steps: Array<any>;
41
+ stepNumber: number;
42
+ model: LanguageModel;
43
+ messages: Array<any>;
44
+ }) => any | Promise<any>;
45
+ abortSignal?: AbortSignal;
46
+ headers?: Record<string, string>;
47
+ experimental_telemetry?: {
48
+ isEnabled?: boolean;
49
+ recordInputs?: boolean;
50
+ recordOutputs?: boolean;
51
+ functionId?: string;
52
+ metadata?: Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>;
53
+ };
54
+ experimental_context?: unknown;
55
+ experimental_download?: (requestedDownloads: Array<{
56
+ url: URL;
57
+ isUrlSupportedByModel: boolean;
58
+ }>) => Promise<Array<null | {
59
+ data: Uint8Array;
60
+ mediaType?: string;
61
+ }>>;
62
+ experimental_repairToolCall?: (options: {
63
+ system?: string;
64
+ messages: Array<any>;
65
+ toolCall: any;
66
+ tools: TOOLS;
67
+ parameterSchema: (options: {
68
+ toolName: string;
69
+ }) => any;
70
+ error: any;
71
+ }) => Promise<any | null>;
72
+ experimental_output?: {
73
+ format: 'text' | 'object';
74
+ schema?: any;
75
+ };
76
+ providerOptions?: Record<string, Record<string, any>>;
77
+ onStepFinish?: (result: {
78
+ finishReason: FinishReason;
79
+ usage: LanguageModelUsage;
80
+ text: string;
81
+ toolCalls: Array<any>;
82
+ toolResults: Array<any>;
83
+ warnings?: Array<any>;
84
+ response?: {
85
+ id: string;
86
+ model: string;
87
+ timestamp: Date;
88
+ headers?: Record<string, string>;
89
+ body?: unknown;
90
+ };
91
+ isContinued: boolean;
92
+ providerMetadata?: Record<string, Record<string, any>>;
93
+ }) => Promise<void> | void;
94
+ }
95
+ /**
96
+ * Complete streamText options interface
97
+ */
98
+ interface StreamTextOptions<TOOLS extends ToolSet = {}> extends Omit<GenerateTextOptions<TOOLS>, 'onStepFinish'> {
99
+ experimental_generateMessageId?: () => string;
100
+ experimental_transform?: any | any[];
101
+ includeRawChunks?: boolean;
102
+ onChunk?: (event: {
103
+ chunk: TextStreamPart<TOOLS>;
104
+ }) => Promise<void> | void;
105
+ onError?: (event: {
106
+ error: unknown;
107
+ }) => Promise<void> | void;
108
+ onStepFinish?: (result: {
109
+ stepType: 'initial' | 'continue' | 'tool-result';
110
+ finishReason: FinishReason;
111
+ usage: LanguageModelUsage;
112
+ text: string;
113
+ reasoning?: string;
114
+ sources: Array<{
115
+ sourceType: 'url';
116
+ id: string;
117
+ url: string;
118
+ title?: string;
119
+ providerMetadata?: any;
120
+ }>;
121
+ files: Array<{
122
+ base64: string;
123
+ uint8Array: Uint8Array;
124
+ mediaType: string;
125
+ }>;
126
+ toolCalls: Array<any>;
127
+ toolResults: Array<any>;
128
+ warnings?: Array<any>;
129
+ response?: {
130
+ id: string;
131
+ model: string;
132
+ timestamp: Date;
133
+ headers?: Record<string, string>;
134
+ messages: Array<any>;
135
+ };
136
+ isContinued: boolean;
137
+ providerMetadata?: Record<string, Record<string, any>>;
138
+ }) => Promise<void> | void;
139
+ onFinish?: (result: {
140
+ finishReason: FinishReason;
141
+ usage: LanguageModelUsage;
142
+ totalUsage: LanguageModelUsage;
143
+ providerMetadata?: Record<string, Record<string, any>>;
144
+ text: string;
145
+ reasoning?: string;
146
+ reasoningDetails: Array<{
147
+ type: 'text' | 'redacted';
148
+ text?: string;
149
+ signature?: string;
150
+ data?: string;
151
+ }>;
152
+ sources: Array<{
153
+ sourceType: 'url';
154
+ id: string;
155
+ url: string;
156
+ title?: string;
157
+ providerMetadata?: any;
158
+ }>;
159
+ files: Array<{
160
+ base64: string;
161
+ uint8Array: Uint8Array;
162
+ mediaType: string;
163
+ }>;
164
+ toolCalls: Array<any>;
165
+ toolResults: Array<any>;
166
+ warnings?: Array<any>;
167
+ response?: {
168
+ id: string;
169
+ model: string;
170
+ timestamp: Date;
171
+ headers?: Record<string, string>;
172
+ messages: Array<any>;
173
+ };
174
+ steps: Array<any>;
175
+ }) => Promise<void> | void;
176
+ onAbort?: (event: {
177
+ steps: Array<any>;
178
+ }) => Promise<void> | void;
179
+ }
180
+ /**
181
+ * Result types
182
+ */
183
+ type GenerateResult<TOOLS extends ToolSet = {}> = GenerateTextResult<TOOLS, any> & {
184
+ content: Array<any>;
185
+ text: string;
186
+ reasoning: Array<any>;
187
+ reasoningText: string | undefined;
188
+ sources: Array<any>;
189
+ files: Array<any>;
190
+ toolCalls: Array<any>;
191
+ toolResults: Array<any>;
192
+ finishReason: 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown';
193
+ usage: LanguageModelUsage;
194
+ totalUsage: LanguageModelUsage;
195
+ request?: LanguageModelRequestMetadata;
196
+ response?: LanguageModelResponseMetadata;
197
+ warnings?: Array<any>;
198
+ providerMetadata?: any;
199
+ experimental_output?: any;
200
+ steps: Array<any>;
201
+ };
202
+ type StreamResult<TOOLS extends ToolSet = {}> = StreamTextResult<TOOLS, any> & {
203
+ content: Promise<Array<any>>;
204
+ finishReason: Promise<'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown'>;
205
+ usage: Promise<LanguageModelUsage>;
206
+ totalUsage: Promise<LanguageModelUsage>;
207
+ providerMetadata: Promise<any>;
208
+ text: Promise<string>;
209
+ reasoning: Promise<Array<any>>;
210
+ reasoningText: Promise<string | undefined>;
211
+ sources: Promise<Array<any>>;
212
+ files: Promise<Array<any>>;
213
+ toolCalls: Promise<Array<any>>;
214
+ toolResults: Promise<Array<any>>;
215
+ request: Promise<LanguageModelRequestMetadata>;
216
+ response: Promise<LanguageModelResponseMetadata & {
217
+ messages: Array<any>;
218
+ }>;
219
+ warnings: Promise<Array<any> | undefined>;
220
+ steps: Promise<Array<any>>;
221
+ textStream: AsyncIterable<string> & ReadableStream<string>;
222
+ fullStream: AsyncIterable<any> & ReadableStream<any>;
223
+ };
224
+ /**
225
+ * Complete AI integration class
226
+ */
227
+ declare class AISDKIntegration extends EventEmitter {
228
+ private initialized;
229
+ private requestCounter;
230
+ constructor();
231
+ /**
232
+ * Initialize the AI integration
233
+ */
234
+ initialize(): Promise<void>;
235
+ /**
236
+ * Generate request ID
237
+ */
238
+ private generateRequestId;
239
+ /**
240
+ * Text generation
241
+ */
242
+ generateText<TOOLS extends ToolSet = {}>(options: GenerateTextOptions<TOOLS>): Promise<GenerateResult<TOOLS>>;
243
+ /**
244
+ * Streaming text generation
245
+ */
246
+ streamText<TOOLS extends ToolSet = {}>(options: StreamTextOptions<TOOLS>): StreamTextResult<TOOLS, any>;
247
+ /**
248
+ * Generate structured object
249
+ */
250
+ generateObject<SCHEMA>(options: {
251
+ model: LanguageModel;
252
+ output?: 'object' | 'array' | 'enum' | 'no-schema';
253
+ mode?: 'auto' | 'json' | 'tool';
254
+ schema?: SCHEMA;
255
+ schemaName?: string;
256
+ schemaDescription?: string;
257
+ enum?: string[];
258
+ system?: string;
259
+ prompt?: string;
260
+ messages?: CoreMessage[];
261
+ maxOutputTokens?: number;
262
+ temperature?: number;
263
+ topP?: number;
264
+ topK?: number;
265
+ presencePenalty?: number;
266
+ frequencyPenalty?: number;
267
+ seed?: number;
268
+ maxRetries?: number;
269
+ abortSignal?: AbortSignal;
270
+ headers?: Record<string, string>;
271
+ experimental_repairText?: (options: {
272
+ text: string;
273
+ error: any;
274
+ }) => Promise<string>;
275
+ experimental_download?: (requestedDownloads: Array<{
276
+ url: URL;
277
+ isUrlSupportedByModel: boolean;
278
+ }>) => Promise<Array<null | {
279
+ data: Uint8Array;
280
+ mediaType?: string;
281
+ }>>;
282
+ experimental_telemetry?: {
283
+ isEnabled?: boolean;
284
+ recordInputs?: boolean;
285
+ recordOutputs?: boolean;
286
+ functionId?: string;
287
+ metadata?: Record<string, any>;
288
+ };
289
+ providerOptions?: Record<string, Record<string, any>>;
290
+ }): Promise<GenerateObjectResult<SCHEMA>>;
291
+ /**
292
+ * Streaming structured object generation
293
+ */
294
+ streamObject<SCHEMA>(options: {
295
+ model: LanguageModel;
296
+ output?: 'object' | 'array' | 'enum' | 'no-schema';
297
+ mode?: 'auto' | 'json' | 'tool';
298
+ schema?: SCHEMA;
299
+ schemaName?: string;
300
+ schemaDescription?: string;
301
+ enum?: string[];
302
+ system?: string;
303
+ prompt?: string;
304
+ messages?: CoreMessage[];
305
+ maxOutputTokens?: number;
306
+ temperature?: number;
307
+ topP?: number;
308
+ topK?: number;
309
+ presencePenalty?: number;
310
+ frequencyPenalty?: number;
311
+ seed?: number;
312
+ maxRetries?: number;
313
+ abortSignal?: AbortSignal;
314
+ headers?: Record<string, string>;
315
+ experimental_repairText?: (options: {
316
+ text: string;
317
+ error: any;
318
+ }) => Promise<string>;
319
+ experimental_download?: (requestedDownloads: Array<{
320
+ url: URL;
321
+ isUrlSupportedByModel: boolean;
322
+ }>) => Promise<Array<null | {
323
+ data: Uint8Array;
324
+ mediaType?: string;
325
+ }>>;
326
+ experimental_telemetry?: {
327
+ isEnabled?: boolean;
328
+ recordInputs?: boolean;
329
+ recordOutputs?: boolean;
330
+ functionId?: string;
331
+ metadata?: Record<string, any>;
332
+ };
333
+ providerOptions?: Record<string, Record<string, any>>;
334
+ onError?: (event: {
335
+ error: unknown;
336
+ }) => Promise<void> | void;
337
+ onFinish?: (result: {
338
+ usage: LanguageModelUsage;
339
+ providerMetadata?: Record<string, Record<string, any>>;
340
+ object?: SCHEMA;
341
+ error?: unknown;
342
+ warnings?: Array<any>;
343
+ response?: {
344
+ id: string;
345
+ model: string;
346
+ timestamp: Date;
347
+ headers?: Record<string, string>;
348
+ };
349
+ }) => void;
350
+ }): StreamObjectResult<any, any, any>;
351
+ /**
352
+ * Create tool
353
+ */
354
+ createTool<TParameters, TResult>(description: string, inputSchema: z.ZodSchema<TParameters>, execute?: (parameters: TParameters) => Promise<TResult> | TResult): Tool<TParameters, TResult>;
355
+ /**
356
+ * Create smooth stream
357
+ */
358
+ createSmoothStream(): (options: {
359
+ tools: ToolSet;
360
+ }) => TransformStream<TextStreamPart<ToolSet>, TextStreamPart<ToolSet>>;
361
+ /**
362
+ * Check initialization status
363
+ */
364
+ isInitialized(): boolean;
365
+ /**
366
+ * Get statistics
367
+ */
368
+ getStats(): {
369
+ requestCount: number;
370
+ isInitialized: boolean;
371
+ };
372
+ /**
373
+ * Reset statistics
374
+ */
375
+ resetStats(): void;
376
+ /**
377
+ * Destroy instance
378
+ */
379
+ destroy(): void;
380
+ }
381
+
382
+ /**
383
+ * AI Tool Calling Complete Integration
384
+ *
385
+ * Complete tool calling functionality:
386
+ * - Basic tool calling and execution
387
+ * - Multi-step calling system (stopWhen, stepCountIs)
388
+ * - Dynamic tools (dynamicTool)
389
+ * - Tool selection strategies (toolChoice)
390
+ * - Error handling and tool repair
391
+ * - MCP tool integration
392
+ * - Complete type safety system
393
+ */
394
+
395
+ /**
396
+ * Complete tool choice strategy definition
397
+ */
398
+ type ToolChoice<TOOLS extends ToolSet = {}> = 'auto' | 'required' | 'none' | {
399
+ type: 'tool';
400
+ toolName: Extract<keyof TOOLS, string>;
401
+ };
402
+ /**
403
+ * 停止条件类型 - 支持各种停止策略
404
+ */
405
+ type StopCondition<_TOOLS extends ToolSet = {}> = ((options: {
406
+ stepNumber: number;
407
+ steps: Array<any>;
408
+ }) => boolean) | {
409
+ type: 'stepCount';
410
+ value: number;
411
+ } | {
412
+ type: 'custom';
413
+ condition: (context: any) => boolean;
414
+ };
415
+ /**
416
+ * 工具执行选项 - 完整参数
417
+ */
418
+ interface ToolExecutionOptions {
419
+ toolCallId: string;
420
+ messages: CoreMessage[];
421
+ abortSignal?: AbortSignal;
422
+ experimental_context?: unknown;
423
+ }
424
+ /**
425
+ * 工具定义接口 - 支持所有官方功能
426
+ */
427
+ interface AdvancedTool<TParameters = any, TResult = any> {
428
+ description?: string;
429
+ inputSchema: z.ZodSchema<TParameters>;
430
+ execute?: (parameters: TParameters, options: ToolExecutionOptions) => Promise<TResult> | TResult | AsyncIterable<TResult>;
431
+ toModelOutput?: (result: TResult) => {
432
+ type: 'content';
433
+ value: Array<{
434
+ type: 'text' | 'image';
435
+ text?: string;
436
+ data?: string;
437
+ mediaType?: string;
438
+ }>;
439
+ };
440
+ }
441
+ /**
442
+ * 动态工具接口 - 完全匹配 AI SDK 的 dynamicTool 返回类型
443
+ */
444
+ type DynamicTool = ReturnType<typeof dynamicTool>;
445
+ /**
446
+ * 步骤结果类型 - 完整步骤信息
447
+ */
448
+ interface StepResult<TOOLS extends ToolSet = {}> {
449
+ stepType: 'initial' | 'continue' | 'tool-result';
450
+ stepNumber: number;
451
+ text: string;
452
+ reasoning?: string;
453
+ toolCalls: Array<TypedToolCall<TOOLS>>;
454
+ toolResults: Array<TypedToolResult<TOOLS>>;
455
+ finishReason: FinishReason;
456
+ usage: LanguageModelUsage;
457
+ warnings?: Array<any>;
458
+ response?: LanguageModelResponseMetadata;
459
+ isContinued: boolean;
460
+ providerMetadata?: Record<string, Record<string, any>>;
461
+ }
462
+ /**
463
+ * 工具调用选项 - 完整参数集合
464
+ */
465
+ interface ToolCallOptions<TOOLS extends ToolSet = {}> {
466
+ model: LanguageModel;
467
+ system?: string;
468
+ prompt?: string;
469
+ messages?: CoreMessage[];
470
+ tools: TOOLS;
471
+ toolChoice?: ToolChoice<TOOLS>;
472
+ activeTools?: Array<keyof TOOLS>;
473
+ stopWhen?: StopCondition<TOOLS> | Array<StopCondition<TOOLS>>;
474
+ maxSteps?: number;
475
+ maxOutputTokens?: number;
476
+ temperature?: number;
477
+ topP?: number;
478
+ topK?: number;
479
+ presencePenalty?: number;
480
+ frequencyPenalty?: number;
481
+ seed?: number;
482
+ maxRetries?: number;
483
+ abortSignal?: AbortSignal;
484
+ headers?: Record<string, string>;
485
+ experimental_context?: unknown;
486
+ experimental_telemetry?: {
487
+ isEnabled?: boolean;
488
+ recordInputs?: boolean;
489
+ recordOutputs?: boolean;
490
+ functionId?: string;
491
+ metadata?: Record<string, any>;
492
+ };
493
+ experimental_repairToolCall?: (options: {
494
+ toolCall: any;
495
+ tools: TOOLS;
496
+ error: NoSuchToolError | InvalidToolInputError;
497
+ messages: CoreMessage[];
498
+ system?: string;
499
+ inputSchema: (options: {
500
+ toolName: string;
501
+ }) => any;
502
+ }) => Promise<any | null>;
503
+ onStepFinish?: (result: StepResult<TOOLS>) => Promise<void> | void;
504
+ prepareStep?: (options: {
505
+ stepNumber: number;
506
+ steps: Array<StepResult<TOOLS>>;
507
+ model: LanguageModel;
508
+ messages: CoreMessage[];
509
+ }) => Promise<{
510
+ model?: LanguageModel;
511
+ toolChoice?: ToolChoice<TOOLS>;
512
+ activeTools?: Array<keyof TOOLS>;
513
+ system?: string;
514
+ messages?: CoreMessage[];
515
+ } | void> | {
516
+ model?: LanguageModel;
517
+ toolChoice?: ToolChoice<TOOLS>;
518
+ activeTools?: Array<keyof TOOLS>;
519
+ system?: string;
520
+ messages?: CoreMessage[];
521
+ } | void;
522
+ }
523
+ /**
524
+ * MCP客户端配置
525
+ */
526
+ interface MCPClientConfig {
527
+ transport: {
528
+ type: 'sse';
529
+ url: string;
530
+ headers?: Record<string, string>;
531
+ } | {
532
+ type: 'stdio';
533
+ command: string;
534
+ args?: string[];
535
+ } | {
536
+ type: 'custom';
537
+ transport: any;
538
+ };
539
+ schemas?: Record<string, {
540
+ inputSchema: z.ZodSchema<any>;
541
+ }>;
542
+ }
543
+ /**
544
+ * MCP客户端接口
545
+ */
546
+ interface MCPClient {
547
+ tools(config?: {
548
+ schemas?: Record<string, {
549
+ inputSchema: z.ZodSchema<any>;
550
+ }>;
551
+ }): Promise<ToolSet>;
552
+ close(): Promise<void>;
553
+ }
554
+ /**
555
+ * Complete tools integration class
556
+ */
557
+ declare class AIToolsIntegration extends EventEmitter {
558
+ private initialized;
559
+ private requestCounter;
560
+ private registeredTools;
561
+ private dynamicTools;
562
+ private mcpClients;
563
+ constructor();
564
+ /**
565
+ * 初始化
566
+ */
567
+ initialize(): Promise<void>;
568
+ /**
569
+ * 生成请求ID
570
+ */
571
+ private generateRequestId;
572
+ /**
573
+ * Create tool - following official specifications
574
+ */
575
+ createTool(description: string, inputSchema: z.ZodSchema<any>, execute?: (parameters: any, options?: any) => Promise<any> | any): any;
576
+ /**
577
+ * 创建动态工具 - 完全基于 AI SDK 的 dynamicTool
578
+ */
579
+ createDynamicTool(description: string, inputSchema: z.ZodSchema<any>, execute?: (input: unknown, options: ToolExecutionOptions) => Promise<unknown>): DynamicTool;
580
+ /**
581
+ * 注册工具到集成器
582
+ */
583
+ registerTool<TParameters, TResult>(name: string, toolInstance: AdvancedTool<TParameters, TResult>): void;
584
+ /**
585
+ * 获取已注册的工具
586
+ */
587
+ getRegisteredTools(): Record<string, AdvancedTool>;
588
+ /**
589
+ * 注册动态工具
590
+ */
591
+ registerDynamicTool(name: string, dynamicToolInstance: DynamicTool): void;
592
+ /**
593
+ * 使用工具执行文本生成 - 遵循官方 generateText + tools 模式
594
+ * 这是 AI SDK 工具调用的标准方式
595
+ */
596
+ generateTextWithTools<TOOLS extends ToolSet = {}>(options: ToolCallOptions<TOOLS>): Promise<{
597
+ text: string;
598
+ steps: Array<StepResult<TOOLS>>;
599
+ toolCalls: Array<TypedToolCall<TOOLS>>;
600
+ toolResults: Array<TypedToolResult<TOOLS>>;
601
+ finishReason: FinishReason;
602
+ usage: LanguageModelUsage;
603
+ totalUsage: LanguageModelUsage;
604
+ content: Array<any>;
605
+ reasoning?: Array<any>;
606
+ reasoningText?: string;
607
+ sources?: Array<any>;
608
+ files?: Array<any>;
609
+ warnings?: Array<any>;
610
+ response?: any;
611
+ providerMetadata?: any;
612
+ }>;
613
+ /**
614
+ * 使用工具执行流式文本生成 - 遵循官方 streamText + tools 模式
615
+ */
616
+ streamTextWithTools<TOOLS extends ToolSet = {}>(options: ToolCallOptions<TOOLS>): Promise<StreamTextResult<TOOLS, any>>;
617
+ /**
618
+ * 创建步骤计数停止条件
619
+ */
620
+ createStepCountCondition(maxSteps: number): StopCondition<any>;
621
+ /**
622
+ * 创建自定义停止条件
623
+ */
624
+ createCustomStopCondition<TOOLS extends ToolSet = {}>(condition: (options: {
625
+ stepNumber: number;
626
+ steps: Array<StepResult<TOOLS>>;
627
+ }) => boolean): StopCondition<TOOLS>;
628
+ /**
629
+ * 解析停止条件
630
+ */
631
+ private parseStopCondition;
632
+ /**
633
+ * 创建结构化输出修复器
634
+ */
635
+ createStructuredRepairFunction<TOOLS extends ToolSet = {}>(repairModel: LanguageModel): (options: {
636
+ toolCall: any;
637
+ tools: TOOLS;
638
+ error: NoSuchToolError | InvalidToolInputError;
639
+ inputSchema: (options: {
640
+ toolName: string;
641
+ }) => any;
642
+ }) => Promise<any>;
643
+ /**
644
+ * 创建重新询问修复器
645
+ */
646
+ createReaskRepairFunction<TOOLS extends ToolSet = {}>(repairModel: LanguageModel): (options: {
647
+ toolCall: any;
648
+ tools: TOOLS;
649
+ error: NoSuchToolError | InvalidToolInputError;
650
+ messages: CoreMessage[];
651
+ system?: string;
652
+ }) => Promise<{
653
+ toolCallType: "function";
654
+ toolCallId: any;
655
+ toolName: any;
656
+ input: string;
657
+ } | null>;
658
+ /**
659
+ * 创建MCP客户端
660
+ */
661
+ createMCPClient(config: MCPClientConfig): Promise<MCPClient>;
662
+ /**
663
+ * 关闭所有MCP客户端
664
+ */
665
+ closeAllMCPClients(): Promise<void>;
666
+ /**
667
+ * Create simple tool call configuration
668
+ */
669
+ createSimpleToolCall<TOOLS extends ToolSet = {}>(model: LanguageModel, tools: TOOLS, prompt: string, options?: Partial<ToolCallOptions<TOOLS>>): ToolCallOptions<TOOLS>;
670
+ /**
671
+ * 创建多步工具调用配置 - 使用 stopWhen 参数
672
+ */
673
+ createMultiStepToolCall<TOOLS extends ToolSet = {}>(model: LanguageModel, tools: TOOLS, prompt: string, maxSteps?: number, options?: Partial<ToolCallOptions<TOOLS>>): ToolCallOptions<TOOLS>;
674
+ /**
675
+ * 直接执行单个工具 - 用于测试或直接调用
676
+ */
677
+ executeSingleTool<TOOLS extends ToolSet = {}>(toolName: keyof TOOLS, input: any, tools: TOOLS, options?: {
678
+ messages?: CoreMessage[];
679
+ abortSignal?: AbortSignal;
680
+ experimental_context?: unknown;
681
+ }): Promise<any>;
682
+ /**
683
+ * 获取响应消息 - 官方文档重点推荐的功能
684
+ * 用于将助手和工具消息添加到对话历史
685
+ */
686
+ extractResponseMessages(result: {
687
+ response?: {
688
+ messages: Array<any>;
689
+ };
690
+ }): Array<any>;
691
+ /**
692
+ * 将响应消息添加到对话历史 - 官方文档示例
693
+ */
694
+ addResponseMessagesToHistory(messages: Array<any>, result: {
695
+ response?: {
696
+ messages: Array<any>;
697
+ };
698
+ }): Array<any>;
699
+ /**
700
+ * 批量工具调用验证
701
+ */
702
+ validateBatchToolCalls<TOOLS extends ToolSet = {}>(toolCalls: Array<TypedToolCall<TOOLS>>, tools: TOOLS): Array<{
703
+ toolCall: TypedToolCall<TOOLS>;
704
+ valid: boolean;
705
+ error?: string;
706
+ }>;
707
+ /**
708
+ * 工具调用结果验证
709
+ */
710
+ validateToolCall<TOOLS extends ToolSet = {}>(toolCall: TypedToolCall<TOOLS>, tools: TOOLS): {
711
+ valid: boolean;
712
+ error?: string;
713
+ };
714
+ /**
715
+ * 工具调用统计分析
716
+ */
717
+ analyzeToolUsage<TOOLS extends ToolSet = {}>(steps: Array<StepResult<TOOLS>>): {
718
+ totalToolCalls: number;
719
+ totalToolResults: number;
720
+ toolUsageByName: Record<string, number>;
721
+ avgToolCallsPerStep: number;
722
+ stepTypes: Record<string, number>;
723
+ };
724
+ /**
725
+ * 提取步骤中的所有工具调用
726
+ */
727
+ extractToolCallsFromSteps<TOOLS extends ToolSet = {}>(steps: Array<StepResult<TOOLS>>): Array<TypedToolCall<TOOLS>>;
728
+ /**
729
+ * 提取步骤中的所有工具结果
730
+ */
731
+ extractToolResultsFromSteps<TOOLS extends ToolSet = {}>(steps: Array<StepResult<TOOLS>>): Array<TypedToolResult<TOOLS>>;
732
+ /**
733
+ * 检查初始化状态
734
+ */
735
+ isInitialized(): boolean;
736
+ /**
737
+ * 获取统计信息
738
+ */
739
+ getStats(): {
740
+ requestCount: number;
741
+ isInitialized: boolean;
742
+ registeredTools: number;
743
+ dynamicTools: number;
744
+ mcpClients: number;
745
+ };
746
+ /**
747
+ * 重置统计信息
748
+ */
749
+ resetStats(): void;
750
+ /**
751
+ * 销毁实例
752
+ */
753
+ destroy(): Promise<void>;
754
+ }
755
+
756
+ /**
757
+ * AI Embeddings Complete Integration
758
+ *
759
+ * Complete embeddings functionality:
760
+ * - embed: Single value embedding
761
+ * - embedMany: Batch embedding
762
+ * - cosineSimilarity: Similarity calculation
763
+ * - All configuration parameters supported
764
+ * - Provider-specific configurations
765
+ */
766
+
767
+ /**
768
+ * Complete embedding model configuration
769
+ */
770
+ interface EmbeddingModelConfig {
771
+ model: EmbeddingModel;
772
+ providerOptions?: Record<string, any>;
773
+ maxRetries?: number;
774
+ abortSignal?: AbortSignal;
775
+ headers?: Record<string, string>;
776
+ }
777
+ /**
778
+ * 批量嵌入配置 - embedMany 专用参数
779
+ */
780
+ interface EmbedManyConfig extends EmbeddingModelConfig {
781
+ maxParallelCalls?: number;
782
+ }
783
+ /**
784
+ * 单值嵌入选项 - embed() 完整参数
785
+ */
786
+ interface EmbedOptions extends EmbeddingModelConfig {
787
+ value: string;
788
+ }
789
+ /**
790
+ * 批量嵌入选项 - embedMany() 完整参数
791
+ */
792
+ interface EmbedManyOptions extends EmbedManyConfig {
793
+ values: string[];
794
+ }
795
+ /**
796
+ * 嵌入结果类型 - 官方规范
797
+ */
798
+ interface EmbedResult {
799
+ embedding: number[];
800
+ usage: LanguageModelUsage;
801
+ request?: LanguageModelRequestMetadata;
802
+ response?: LanguageModelResponseMetadata;
803
+ }
804
+ /**
805
+ * 批量嵌入结果类型 - 官方规范
806
+ */
807
+ interface EmbedManyResult {
808
+ embeddings: number[][];
809
+ usage: LanguageModelUsage;
810
+ request?: LanguageModelRequestMetadata;
811
+ response?: LanguageModelResponseMetadata;
812
+ }
813
+ /**
814
+ * 相似度计算结果
815
+ */
816
+ interface SimilarityResult {
817
+ similarity: number;
818
+ vector1: number[];
819
+ vector2: number[];
820
+ method: 'cosine' | 'euclidean' | 'dot';
821
+ }
822
+ /**
823
+ * 嵌入提供商信息 - 基于官方文档表格
824
+ */
825
+ interface EmbeddingProviderInfo {
826
+ provider: string;
827
+ model: string;
828
+ dimensions: number;
829
+ description?: string;
830
+ }
831
+ /**
832
+ * Supported embedding models
833
+ */
834
+ declare const SupportedEmbeddingModels: Record<string, EmbeddingProviderInfo>;
835
+ /**
836
+ * Complete embeddings integration class
837
+ */
838
+ declare class AIEmbeddingsIntegration extends EventEmitter {
839
+ private initialized;
840
+ private requestCounter;
841
+ private embeddingCache;
842
+ private usageStats;
843
+ constructor();
844
+ /**
845
+ * 初始化
846
+ */
847
+ initialize(): Promise<void>;
848
+ /**
849
+ * 生成请求ID
850
+ */
851
+ private generateRequestId;
852
+ /**
853
+ * Embed single value - embed() API
854
+ */
855
+ embed(options: EmbedOptions): Promise<EmbedResult>;
856
+ /**
857
+ * Embed single value - complete embed() implementation
858
+ */
859
+ embedSingleValue(options: EmbedOptions): Promise<EmbedResult>;
860
+ /**
861
+ * Embed multiple values - embedMany() API
862
+ */
863
+ embedMany(options: EmbedManyOptions): Promise<EmbedManyResult>;
864
+ /**
865
+ * Embed multiple values - complete embedMany() implementation
866
+ */
867
+ embedManyValues(options: EmbedManyOptions): Promise<EmbedManyResult>;
868
+ /**
869
+ * Cosine similarity calculation - cosineSimilarity() implementation
870
+ */
871
+ calculateCosineSimilarity(vector1: number[], vector2: number[]): number;
872
+ /**
873
+ * 批量相似度计算
874
+ */
875
+ calculateSimilarities(targetVector: number[], vectors: number[][], method?: 'cosine' | 'euclidean' | 'dot'): SimilarityResult[];
876
+ /**
877
+ * 欧几里得距离相似度
878
+ */
879
+ private calculateEuclideanSimilarity;
880
+ /**
881
+ * 点积相似度
882
+ */
883
+ private calculateDotProduct;
884
+ /**
885
+ * Find most similar embeddings
886
+ */
887
+ findMostSimilar(queryVector: number[], candidateVectors: number[][], topK?: number, method?: 'cosine' | 'euclidean' | 'dot'): Array<{
888
+ index: number;
889
+ similarity: number;
890
+ vector: number[];
891
+ }>;
892
+ /**
893
+ * 文本相似性搜索
894
+ */
895
+ searchSimilarTexts(queryText: string, candidateTexts: string[], model: EmbeddingModel, topK?: number, options?: Partial<EmbeddingModelConfig>): Promise<Array<{
896
+ index: number;
897
+ text: string;
898
+ similarity: number;
899
+ }>>;
900
+ /**
901
+ * Generate cache key
902
+ */
903
+ private generateCacheKey;
904
+ /**
905
+ * Record usage statistics
906
+ */
907
+ private recordUsage;
908
+ /**
909
+ * 获取支持的模型信息
910
+ */
911
+ getSupportedModels(): EmbeddingProviderInfo[];
912
+ /**
913
+ * 根据提供商筛选模型
914
+ */
915
+ getModelsByProvider(provider: string): EmbeddingProviderInfo[];
916
+ /**
917
+ * 获取使用统计
918
+ */
919
+ getUsageStats(): Record<string, {
920
+ totalEmbeddings: number;
921
+ totalTokens: number;
922
+ lastUsed: Date;
923
+ }>;
924
+ /**
925
+ * 清理缓存
926
+ */
927
+ clearCache(): void;
928
+ /**
929
+ * 获取缓存统计
930
+ */
931
+ getCacheStats(): {
932
+ size: number;
933
+ keys: string[];
934
+ };
935
+ /**
936
+ * 检查初始化状态
937
+ */
938
+ isInitialized(): boolean;
939
+ /**
940
+ * 获取统计信息
941
+ */
942
+ getStats(): {
943
+ isInitialized: boolean;
944
+ requestCount: number;
945
+ cacheSize: number;
946
+ totalUsage: {
947
+ embeddings: number;
948
+ tokens: number;
949
+ };
950
+ };
951
+ /**
952
+ * 销毁实例
953
+ */
954
+ destroy(): void;
955
+ }
956
+
957
+ /**
958
+ * AI Structured Data Complete Integration
959
+ *
960
+ * Core structured data functionality:
961
+ * - generateObject: Structured object generation
962
+ * - streamObject: Streaming structured object generation
963
+ *
964
+ * Supports all output strategies: object, array, enum, no-schema
965
+ */
966
+
967
+ /**
968
+ * Complete generateObject options interface
969
+ */
970
+ interface GenerateObjectOptions<T = any> {
971
+ model: LanguageModel;
972
+ output?: 'object' | 'array' | 'enum' | 'no-schema';
973
+ mode?: 'auto' | 'json' | 'tool';
974
+ schema?: z.ZodSchema<T> | any;
975
+ schemaName?: string;
976
+ schemaDescription?: string;
977
+ enum?: string[];
978
+ system?: string;
979
+ prompt?: string | Array<any>;
980
+ messages?: CoreMessage[];
981
+ maxOutputTokens?: number;
982
+ temperature?: number;
983
+ topP?: number;
984
+ topK?: number;
985
+ presencePenalty?: number;
986
+ frequencyPenalty?: number;
987
+ seed?: number;
988
+ maxRetries?: number;
989
+ abortSignal?: AbortSignal;
990
+ headers?: Record<string, string>;
991
+ experimental_repairText?: (options: {
992
+ text: string;
993
+ error: any;
994
+ }) => Promise<string>;
995
+ experimental_download?: (requestedDownloads: Array<{
996
+ url: URL;
997
+ isUrlSupportedByModel: boolean;
998
+ }>) => Promise<Array<null | {
999
+ data: Uint8Array;
1000
+ mediaType?: string;
1001
+ }>>;
1002
+ experimental_telemetry?: {
1003
+ isEnabled?: boolean;
1004
+ recordInputs?: boolean;
1005
+ recordOutputs?: boolean;
1006
+ functionId?: string;
1007
+ metadata?: Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>;
1008
+ };
1009
+ providerOptions?: Record<string, Record<string, any>>;
1010
+ }
1011
+ /**
1012
+ * streamObject 完整参数接口 - 基于 streamObject.md 规范
1013
+ */
1014
+ interface StreamObjectOptions<T = any> extends GenerateObjectOptions<T> {
1015
+ onError?: (event: {
1016
+ error: unknown;
1017
+ }) => Promise<void> | void;
1018
+ onFinish?: (result: {
1019
+ usage: LanguageModelUsage;
1020
+ providerMetadata?: Record<string, Record<string, any>>;
1021
+ object?: T;
1022
+ error?: unknown;
1023
+ warnings?: Array<any>;
1024
+ response?: {
1025
+ id: string;
1026
+ model: string;
1027
+ timestamp: Date;
1028
+ headers?: Record<string, string>;
1029
+ };
1030
+ }) => void;
1031
+ }
1032
+ /**
1033
+ * generateObject 返回结果类型 - 基于 generateObject().md 规范
1034
+ */
1035
+ type GenerateObjectResultType<T> = {
1036
+ object: T;
1037
+ finishReason: 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown';
1038
+ usage: LanguageModelUsage;
1039
+ request?: LanguageModelRequestMetadata;
1040
+ response?: LanguageModelResponseMetadata & {
1041
+ body?: unknown;
1042
+ };
1043
+ reasoning?: string;
1044
+ warnings?: Array<any>;
1045
+ providerMetadata?: any;
1046
+ toJsonResponse: (init?: any) => Response;
1047
+ };
1048
+ /**
1049
+ * streamObject 返回结果类型 - 基于 streamObject.md 规范
1050
+ */
1051
+ type StreamObjectResultType<T> = {
1052
+ usage: Promise<LanguageModelUsage>;
1053
+ providerMetadata: Promise<Record<string, Record<string, any>> | undefined>;
1054
+ object: Promise<T>;
1055
+ partialObjectStream: AsyncIterable<any> & ReadableStream<any>;
1056
+ elementStream: AsyncIterable<T> & ReadableStream<T>;
1057
+ textStream: AsyncIterable<string> & ReadableStream<string>;
1058
+ fullStream: AsyncIterable<any> & ReadableStream<any>;
1059
+ request: Promise<LanguageModelRequestMetadata>;
1060
+ response: Promise<LanguageModelResponseMetadata>;
1061
+ warnings?: Array<any>;
1062
+ pipeTextStreamToResponse: (response: any, init?: any) => void;
1063
+ toTextStreamResponse: (init?: any) => Response;
1064
+ pipeObjectStreamToResponse?: (response: any, init?: any) => void;
1065
+ toObjectStreamResponse?: (init?: any) => Response;
1066
+ };
1067
+ /**
1068
+ * Complete structured data integration class
1069
+ */
1070
+ declare class AIStructuredDataIntegration extends EventEmitter {
1071
+ private initialized;
1072
+ private requestCounter;
1073
+ constructor();
1074
+ /**
1075
+ * 初始化
1076
+ */
1077
+ initialize(): Promise<void>;
1078
+ /**
1079
+ * 生成请求ID
1080
+ */
1081
+ private generateRequestId;
1082
+ /**
1083
+ * Generate structured object - supports all output strategies
1084
+ */
1085
+ generateObject<T = any>(options: GenerateObjectOptions<T>): Promise<GenerateObjectResultType<T>>;
1086
+ /**
1087
+ * Stream structured object generation - supports all output strategies and stream modes
1088
+ */
1089
+ streamObject<T = any>(options: StreamObjectOptions<T>): StreamObjectResultType<T>;
1090
+ /**
1091
+ * 辅助方法:将流导入响应 - 标准实现
1092
+ */
1093
+ private pipeStreamToResponse;
1094
+ /**
1095
+ * 消费异步迭代器并写入响应
1096
+ */
1097
+ private consumeAsyncIterator;
1098
+ /**
1099
+ * Generate object - default object output strategy
1100
+ */
1101
+ generateObjectData<T>(model: LanguageModel, schema: z.ZodSchema<T>, prompt: string, options?: Partial<GenerateObjectOptions<T>>): Promise<GenerateObjectResultType<T>>;
1102
+ /**
1103
+ * 生成数组 - array 输出策略
1104
+ */
1105
+ generateArray<T>(model: LanguageModel, elementSchema: z.ZodSchema<T>, prompt: string, options?: Partial<GenerateObjectOptions<T>>): Promise<GenerateObjectResultType<T[]>>;
1106
+ /**
1107
+ * 生成枚举值 - enum 输出策略
1108
+ */
1109
+ generateEnum(model: LanguageModel, enumValues: string[], prompt: string, options?: Partial<GenerateObjectOptions<string>>): Promise<GenerateObjectResultType<string>>;
1110
+ /**
1111
+ * 生成无模式JSON - no-schema 输出策略
1112
+ */
1113
+ generateFreeformJSON(model: LanguageModel, prompt: string, options?: Partial<GenerateObjectOptions<any>>): Promise<GenerateObjectResultType<any>>;
1114
+ /**
1115
+ * 流式生成对象 - 默认 object 输出策略
1116
+ */
1117
+ streamObjectData<T>(model: LanguageModel, schema: z.ZodSchema<T>, prompt: string, options?: Partial<StreamObjectOptions<T>>): StreamObjectResultType<T>;
1118
+ /**
1119
+ * 流式生成数组 - array 输出策略
1120
+ */
1121
+ streamArray<T>(model: LanguageModel, elementSchema: z.ZodSchema<T>, prompt: string, options?: Partial<StreamObjectOptions<T>>): StreamObjectResultType<T[]>;
1122
+ /**
1123
+ * 流式生成枚举值 - enum 输出策略
1124
+ */
1125
+ streamEnum(model: LanguageModel, enumValues: string[], prompt: string, options?: Partial<StreamObjectOptions<string>>): StreamObjectResultType<string>;
1126
+ /**
1127
+ * 流式生成无模式JSON - no-schema 输出策略
1128
+ */
1129
+ streamFreeformJSON(model: LanguageModel, prompt: string, options?: Partial<StreamObjectOptions<any>>): StreamObjectResultType<any>;
1130
+ /**
1131
+ * Check initialization status
1132
+ */
1133
+ isInitialized(): boolean;
1134
+ /**
1135
+ * Get statistics
1136
+ */
1137
+ getStats(): {
1138
+ requestCount: number;
1139
+ isInitialized: boolean;
1140
+ };
1141
+ /**
1142
+ * 重置统计信息
1143
+ */
1144
+ resetStats(): void;
1145
+ /**
1146
+ * 销毁实例
1147
+ */
1148
+ destroy(): void;
1149
+ }
1150
+
1151
+ /**
1152
+ * AI Settings Complete Integration
1153
+ *
1154
+ * Complete settings functionality:
1155
+ * - All common setting parameters
1156
+ * - Provider-specific configurations
1157
+ * - Settings validation and presets
1158
+ * - Dynamic settings management
1159
+ */
1160
+
1161
+ /**
1162
+ * 通用模型设置 - 基于 Settings.md 官方规范
1163
+ */
1164
+ interface CommonModelSettings {
1165
+ maxOutputTokens?: number;
1166
+ temperature?: number;
1167
+ topP?: number;
1168
+ topK?: number;
1169
+ presencePenalty?: number;
1170
+ frequencyPenalty?: number;
1171
+ stopSequences?: string[];
1172
+ seed?: number;
1173
+ maxRetries?: number;
1174
+ abortSignal?: AbortSignal;
1175
+ headers?: Record<string, string>;
1176
+ }
1177
+ /**
1178
+ * JSON值类型 - 严格按照AI SDK官方规范
1179
+ */
1180
+ type JSONValue = string | number | boolean | null | {
1181
+ [key: string]: JSONValue;
1182
+ } | JSONValue[];
1183
+ /**
1184
+ * 提供商特定设置 - 严格按照AI SDK官方规范
1185
+ * 必须兼容SharedV2ProviderOptions类型,格式为Record<string, Record<string, JSONValue>>
1186
+ */
1187
+ interface ProviderSpecificSettings {
1188
+ [key: string]: Record<string, JSONValue>;
1189
+ }
1190
+ /**
1191
+ * 完整的模型设置配置
1192
+ */
1193
+ interface ModelSettings extends CommonModelSettings {
1194
+ providerOptions?: ProviderSpecificSettings;
1195
+ }
1196
+ /**
1197
+ * 设置预设定义
1198
+ */
1199
+ interface SettingsPreset {
1200
+ name: string;
1201
+ description: string;
1202
+ settings: ModelSettings;
1203
+ tags?: string[];
1204
+ useCases?: string[];
1205
+ }
1206
+ /**
1207
+ * 设置验证结果
1208
+ */
1209
+ interface SettingsValidationResult {
1210
+ isValid: boolean;
1211
+ errors: Array<{
1212
+ field: string;
1213
+ message: string;
1214
+ value: any;
1215
+ }>;
1216
+ warnings: Array<{
1217
+ field: string;
1218
+ message: string;
1219
+ value: any;
1220
+ }>;
1221
+ }
1222
+ /**
1223
+ * 动态设置配置
1224
+ */
1225
+ interface DynamicSettingsConfig {
1226
+ conditions: Array<{
1227
+ name: string;
1228
+ condition: (context: any) => boolean;
1229
+ settings: Partial<ModelSettings>;
1230
+ }>;
1231
+ default: ModelSettings;
1232
+ fallback?: ModelSettings;
1233
+ }
1234
+ /**
1235
+ * 预定义的设置预设 - 基于官方文档建议和最佳实践
1236
+ */
1237
+ declare const BuiltinSettingsPresets: Record<string, SettingsPreset>;
1238
+ /**
1239
+ * AI SDK Settings 完整集成类
1240
+ */
1241
+ declare class AISettingsManagement extends EventEmitter {
1242
+ private initialized;
1243
+ private customPresets;
1244
+ private dynamicConfigs;
1245
+ private settingsHistory;
1246
+ constructor();
1247
+ /**
1248
+ * 初始化
1249
+ */
1250
+ initialize(): Promise<void>;
1251
+ /**
1252
+ * 验证模型设置 - 官方规范验证
1253
+ */
1254
+ validateSettings(settings: ModelSettings): SettingsValidationResult;
1255
+ /**
1256
+ * 获取所有可用预设
1257
+ */
1258
+ getAllPresets(): Record<string, SettingsPreset>;
1259
+ /**
1260
+ * 获取特定预设
1261
+ */
1262
+ getPreset(name: string): SettingsPreset | null;
1263
+ /**
1264
+ * 创建自定义预设
1265
+ */
1266
+ createPreset(name: string, preset: SettingsPreset): void;
1267
+ /**
1268
+ * 根据标签搜索预设
1269
+ */
1270
+ findPresetsByTag(tag: string): SettingsPreset[];
1271
+ /**
1272
+ * 根据使用场景搜索预设
1273
+ */
1274
+ findPresetsByUseCase(useCase: string): SettingsPreset[];
1275
+ /**
1276
+ * 注册动态设置配置
1277
+ */
1278
+ registerDynamicConfig(name: string, config: DynamicSettingsConfig): void;
1279
+ /**
1280
+ * 根据上下文解析动态设置
1281
+ */
1282
+ resolveDynamicSettings(configName: string, context: any): ModelSettings;
1283
+ /**
1284
+ * 合并设置对象
1285
+ */
1286
+ mergeSettings(...settingsArray: Partial<ModelSettings>[]): ModelSettings;
1287
+ /**
1288
+ * 创建提供商特定设置
1289
+ */
1290
+ createProviderSettings(providerId: string, settings: Record<string, any>): {
1291
+ providerOptions: ProviderSpecificSettings;
1292
+ };
1293
+ /**
1294
+ * 创建超时设置
1295
+ */
1296
+ createTimeoutSettings(timeoutMs: number): {
1297
+ abortSignal: AbortSignal;
1298
+ };
1299
+ /**
1300
+ * 创建确定性设置
1301
+ */
1302
+ createDeterministicSettings(seed?: number): ModelSettings;
1303
+ /**
1304
+ * 创建创意设置
1305
+ */
1306
+ createCreativeSettings(): ModelSettings;
1307
+ /**
1308
+ * 记录设置使用历史
1309
+ */
1310
+ recordSettingsUsage(settings: ModelSettings, context?: any): void;
1311
+ /**
1312
+ * 分析设置使用模式
1313
+ */
1314
+ analyzeSettingsUsage(): {
1315
+ totalRecords: number;
1316
+ mostUsedSettings: Array<{
1317
+ setting: string;
1318
+ count: number;
1319
+ }>;
1320
+ averageValues: Partial<ModelSettings>;
1321
+ timeRange: {
1322
+ earliest: Date;
1323
+ latest: Date;
1324
+ } | null;
1325
+ };
1326
+ /**
1327
+ * 获取系统默认设置 - 统一配置入口
1328
+ * 返回AI_SYSTEM_DEFAULTS作为唯一配置源
1329
+ */
1330
+ getDefaultSettings(): ModelSettings;
1331
+ /**
1332
+ * 获取系统级配置 - 包含所有配置项
1333
+ */
1334
+ getSystemDefaults(): {
1335
+ readonly defaultProvider: "qwen";
1336
+ readonly defaultModel: "qwen-plus-2025-01-25";
1337
+ readonly defaultEmbeddingModel: "text-embedding-v1";
1338
+ readonly temperature: 0.7;
1339
+ readonly maxOutputTokens: 4000;
1340
+ readonly topP: 0.95;
1341
+ readonly presencePenalty: 0;
1342
+ readonly frequencyPenalty: 0;
1343
+ readonly systemPrompt: "你是一个专业的SceneMesh AI实体数据助手。你在SceneMesh Entity Engine平台生态系统中运行。\n\n你是与数据管理用户协作的智能助手,帮助解决他们的实体数据管理问题和需求。每次用户发送消息时,系统可能会自动附加一些关于当前数据状态的信息,如用户正在查看的实体数据、最近的数据操作历史、当前数据查询状态、实时系统指标等。这些信息可能与数据管理任务相关,也可能无关,由你来判断其相关性。\n\n你是一个智能代理 - 请持续工作直到完全解决用户的查询,然后结束你的回合并交还给用户。只有在确信问题已得到解决时才终止你的回合。在回复用户之前,请自主地尽最大努力解决查询。\n\n你的主要目标是遵循用户在每条消息中的指示,这些指示用 <user_query> 标签表示。\n\n<tools>\n你拥有各种实体数据管理和分析工具来解决数据操作任务。在使用工具时请遵循以下规则:\n\n1. **准确使用工具**:确保提供所有必要的参数,按照下文列出的工具格式准确调用。\n\n2. **避免引用不可用的工具**:对话中可能会引用不再可用的工具,绝对不要调用未明确定义的工具。\n\n3. **使用自然的数据管理语言描述工具行为**:在与用户交流时,不要提及具体的工具名称,而是用自然的数据管理语言描述正在执行的操作。例如:\"我正在查询你的用户实体数据\"而不是\"我正在调用entity_query工具\"。\n\n4. **优先使用工具获取信息**:如果你需要的额外信息可以通过工具调用获得,请优先使用工具而不是询问用户。\n\n5. **立即执行计划**:如果你制定了一个数据分析或操作计划,请立即执行,不要等待用户确认。只有在需要用户无法通过其他方式获得的信息,或需要用户在不同选项间做出选择时,才应该停止。\n\n6. **使用标准工具调用**:按照系统提供的工具格式进行调用。当需要使用工具时,直接调用,不要解释调用过程或格式。\n\n7. **主动验证实体数据**:如果你对实体数据的内容或结构不确定,请使用工具进行验证和分析,不要猜测或编造答案。\n\n8. **全面的数据探索**:你可以自主地查询尽可能多的相关实体数据源,以完全解决用户的数据管理查询,而不仅仅是查询一个实体。\n\n9. **实体模型和数据引用**:实体模型包含有关如何改进数据结构的有价值信息。它们对于回答关于数据关系的问题也很有用。当提及实体模型时,应该使用标识符格式。例如 ee-base-user 或 ee-base-product\n</tools>\n\n<maximize_context_understanding>\n在收集信息时要**全面深入**。确保在回复之前掌握**完整的数据架构图景**。根据需要使用额外的工具调用或澄清性问题。\n\n**追溯每个实体字段**到其定义和关联方式,确保你完全理解它。\n\n超越第一个看似相关的结果。**探索**替代的数据模型、边缘情况和不同的查询角度,直到你对该实体主题有**全面的覆盖**。\n\n实体语义搜索是你的**主要探索工具**:\n- **关键**:从捕获整体数据架构意图的广泛、高层次查询开始(例如\"用户实体结构\"或\"产品数据关联\"),而不是低层次的字段名称。\n- 将多部分问题分解为专注的子查询(例如\"用户实体如何关联订单?\"或\"产品数据在哪个表格中?\")。\n- **必须**:使用不同的措辞运行多次搜索;首次结果往往会遗漏关键数据细节。\n- 持续搜索新的实体领域,直到你**确信**没有重要信息遗漏。\n\n如果你执行了可能部分满足用户查询的数据分析,但不够自信,请在结束回合前收集更多信息或使用更多工具。\n\n优先自己寻找答案,而不是向用户寻求帮助。\n</maximize_context_understanding>\n\n<making_entity_analysis>\n在进行实体数据分析时,除非用户特别要求,否则不要向用户输出原始数据。而应使用实体数据分析工具来实施分析。\n\n确保你生成的数据洞察能立即为用户所用,这一点**极其重要**。为确保这一点,请仔细遵循以下指示:\n\n1. 添加所有必要的实体背景、数据源引用、字段定义和关联依据。\n2. 如果你从头开始创建数据报告,请创建适当的实体结构文件(如实体数据字典)和有用的技术说明文档。\n3. 如果你正在构建数据视图,请提供现代化和美观的界面,融入最佳的用户体验实践。\n4. 绝不生成超长的数据哈希值或任何非实体内容的二进制数据。这些对数据管理用户无用且成本高昂。\n5. 如果你在实体分析中引入了错误,请修复明显的错误(或你能轻易确定如何修复的错误)。不要做没有根据的猜测。同一实体分析不要循环超过3次错误修复。第三次时,你应该停止并询问用户接下来该怎么做。\n6. 如果你建议的合理实体分析没有被分析引擎接受,你应该尝试重新应用该分析。\n</making_entity_analysis>\n\n使用相关的工具回答用户的请求(如果可用)。检查所有必需的参数是否已提供或可以从上下文合理推断。如果没有相关工具或缺少必需参数的值,请要求用户提供这些值;否则继续进行工具调用。如果用户为参数提供了特定值(例如在引号中提供),请确保准确使用该值。不要编造可选参数的值或询问可选参数。仔细分析请求中的描述性术语,因为它们可能指示应包含的必需参数值,即使没有明确引用。\n\n<summarization>\n如果你看到名为\"<most_important_user_query>\"的部分,你应该将该查询视为要回答的查询,并忽略之前的用户查询。如果要求你总结对话,你绝对不能使用任何工具,即使它们可用。你必须回答\"<most_important_user_query>\"查询。\n</summarization>\n\n<memories>\n你可能会获得一个实体数据记忆列表。这些记忆来自与助手的过往数据管理对话。\n\n它们可能正确也可能不正确,因此如果认为相关就遵循它们,但一旦你注意到用户纠正了你基于记忆所做的事情,或你遇到与现有记忆矛盾或补充的信息,**关键是**你必须立即使用 update_memory 工具更新/删除记忆。你绝对不能使用 update_memory 工具创建与实施计划、助手完成的数据迁移或其他特定任务相关的记忆。\n\n如果用户**曾经**与你的记忆相矛盾,那么最好删除该记忆而不是更新记忆。\n\n你可以根据工具描述中的标准创建、更新或删除记忆。\n\n<memory_citation>\n当你在生成内容、回复用户查询或执行实体数据操作时使用记忆,你必须**始终**引用记忆。为此,请使用以下格式:[[memory:MEMORY_ID]]。你应该将记忆引用自然地融入回应中,而不仅仅作为脚注。\n\n例如:\"我将使用你偏好的数据显示格式 [[memory:MEMORY_ID]] 来展示实体数据分析。\"\n\n当你因为记忆而拒绝用户的明确请求时,你必须在对话中提及如果记忆不正确,用户可以纠正你,你将更新你的记忆。\n</memory_citation>\n</memories>\n\n# 可用工具\n\n以下是你可以调用的实体数据管理工具,应该根据用户需求选择合适的工具进行调用:\n\n## recordGetFieldInfo\n获取当前表单的字段信息和结构\n//\n// ### 何时使用此工具\n//\n**何时使用**:\n- 任何数据操作前的必要步骤\n- 了解当前表单的实际字段结构\n- 获取字段名称、标题和类型信息\n- 确定可用的字段进行数据填充\n\n**何时不使用**:\n- 不涉及表单操作的纯信息查询\n- 已经确定知道字段结构的情况\n//\n// ### 示例\n//\n// <example>\n// 用户请求: \"帮我创建一个产品\"\n//\n// <reasoning>\n// 必须首先调用recordGetFieldInfo()了解当前表单是否为产品表单,以及有哪些字段可以填充。\n// </reasoning>\n// </example>\n//\n// <example>\n// 用户请求: \"填写用户信息\"\n//\n// <reasoning>\n// 先调用recordGetFieldInfo()查看当前表单类型和字段,确认是否为用户表单。\n// </reasoning>\n// </example>\n//\n**工具调用格式**:\n- **工具名称**: recordGetFieldInfo\n- **参数**: 无需参数\n\n## recordGetValues\n获取当前表单的所有字段值\n//\n// ### 何时使用此工具\n//\n**何时使用**:\n- 查看当前表单的填写状态\n- 在修改前获取现有数据\n- 向用户显示当前表单内容\n- 验证数据填充结果\n\n**何时不使用**:\n- 仅需要获取字段结构信息(使用recordGetFieldInfo)\n- 不涉及表单数据的纯信息查询\n//\n// ### 示例\n//\n// <example>\n// 用户请求: \"显示当前表单的内容\"\n//\n// <reasoning>\n// 使用recordGetValues()获取所有字段的当前值并展示给用户。\n// </reasoning>\n// </example>\n//\n**工具调用格式**:\n- **工具名称**: recordGetValues\n- **参数**: 无需参数\n\n## recordSetValues\n设置表单字段值\n//\n// ### 何时使用此工具\n//\n**何时使用**:\n- 根据用户请求填充表单字段\n- 创建新的数据记录\n- 修改现有表单内容\n- 批量设置多个字段值\n\n**何时不使用**:\n- 在不了解字段结构的情况下(应先调用recordGetFieldInfo)\n- 仅需要查看数据而不修改\n//\n// ### 示例\n//\n// <example>\n// 用户请求: \"帮我创建一个产品叫小白\"\n//\n// <reasoning>\n// 先调用recordGetFieldInfo()了解字段结构,然后使用recordSetValues()设置产品相关字段,如name字段设为\"小白\"。\n// </reasoning>\n// </example>\n//\n// <example>\n// 用户请求: \"修改用户信息,姓名改为张三,邮箱改为zhangsan@example.com\"\n//\n// <reasoning>\n// 使用recordSetValues()批量设置多个字段:name设为\"张三\",email设为\"zhangsan@example.com\"。\n// </reasoning>\n// </example>\n//\n**工具调用格式**:\n- **工具名称**: recordSetValues\n- **参数**:\n - values: 字段值对象,键必须是recordGetFieldInfo返回的确切字段名\n\n## recordResetForm\n重置表单到初始状态\n//\n// ### 何时使用此工具\n//\n**何时使用**:\n- 用户明确要求清空表单\n- 重置表单到初始状态\n- 清除所有已填写的内容\n\n**何时不使用**:\n- 仅需要修改个别字段值\n- 用户没有明确要求重置的情况\n//\n// ### 示例\n//\n// <example>\n// 用户请求: \"清空表单内容\"\n//\n// <reasoning>\n// 使用recordResetForm()将表单重置到初始状态,清除所有已填写的数据。\n// </reasoning>\n// </example>\n//\n**工具调用格式**:\n- **工具名称**: recordResetForm\n- **参数**: 无需参数\n\n## recordValidateForm\n验证表单数据的有效性\n//\n// ### 何时使用此工具\n//\n**何时使用**:\n- 在提交表单前验证数据\n- 检查必填字段是否已填写\n- 验证数据格式是否正确\n- 用户要求验证表单内容\n\n**何时不使用**:\n- 仅需要设置或获取数据\n- 不涉及数据验证的操作\n//\n// ### 示例\n//\n// <example>\n// 用户请求: \"检查表单是否填写完整\"\n//\n// <reasoning>\n// 使用recordValidateForm()验证当前表单数据的有效性,检查必填字段和格式规则。\n// </reasoning>\n// </example>\n//\n**工具调用格式**:\n- **工具名称**: recordValidateForm\n- **参数**: 无需参数\n\n## 辅助工具\n\n除了主要的表单操作工具外,还有一些辅助工具可供使用:\n\n### getWeather\n获取指定地点的天气信息\n**工具调用格式**:\n- **工具名称**: getWeather\n- **参数**:\n - location: 地点名称(如\"北京\"、\"上海\"等)\n\n### getLocation \n获取用户当前位置信息\n**工具调用格式**:\n- **工具名称**: getLocation\n- **参数**: 无需参数\n\n### entityQuery\n执行实体数据查询操作\n**工具调用格式**:\n- **工具名称**: entityQuery\n- **参数**:\n - query: 要执行的查询语句或条件\n\n## 核心工作流程\n\n当用户提出数据操作请求时,请严格按照以下三步骤流程:\n\n### 第一步:动态发现表单结构\n**必须**首先调用 recordGetFieldInfo() 来了解:\n- 当前表单的实际字段结构和字段名称\n- 字段标题和类型信息\n- 可用的操作字段\n\n### 第二步:理解上下文和用户意图\n- 分析字段标题理解当前表单类型(产品、用户、事件等)\n- 根据实际表单结构调整回复\n- 如果用户请求与当前表单不符,友好说明并提供选项\n\n### 第三步:执行相应操作\n- 使用 recordSetValues()设置字段值,**仅使用**第一步获取的确切字段名称\n- 根据需要调用其他工具如 recordGetValues()recordValidateForm()等\n- 确保操作基于真实的字段结构,不要假设字段存在\n\n## 重要原则\n\n1. **永远先调用 recordGetFieldInfo()** - 任何数据操作前的必要步骤\n2. **使用准确的字段名称** - 绝不猜测或翻译字段名\n3. **适配实际表单** - 基于真实发现的字段结构操作\n4. **智能上下文识别** - 通过字段标题理解表单业务类型";
1344
+ readonly enableTools: true;
1345
+ readonly enableEmbeddings: true;
1346
+ };
1347
+ /**
1348
+ * 检查初始化状态
1349
+ */
1350
+ isInitialized(): boolean;
1351
+ /**
1352
+ * 获取统计信息
1353
+ */
1354
+ getStats(): {
1355
+ isInitialized: boolean;
1356
+ builtinPresets: number;
1357
+ customPresets: number;
1358
+ dynamicConfigs: number;
1359
+ historyRecords: number;
1360
+ };
1361
+ /**
1362
+ * 清理历史记录
1363
+ */
1364
+ clearHistory(): void;
1365
+ /**
1366
+ * 导出设置配置
1367
+ */
1368
+ exportSettings(): {
1369
+ customPresets: Record<string, SettingsPreset>;
1370
+ dynamicConfigs: Record<string, DynamicSettingsConfig>;
1371
+ history: Array<{
1372
+ timestamp: Date;
1373
+ settings: ModelSettings;
1374
+ context?: any;
1375
+ }>;
1376
+ };
1377
+ /**
1378
+ * 销毁实例
1379
+ */
1380
+ destroy(): void;
1381
+ }
1382
+
1383
+ /**
1384
+ * AI Provider and Model Management
1385
+ *
1386
+ * Manages custom providers, model registry, and global configuration.
1387
+ * Includes model aliases, settings, and limitations.
1388
+ */
1389
+
1390
+ /**
1391
+ * Custom provider configuration
1392
+ */
1393
+ interface CustomProviderConfig {
1394
+ languageModels?: Record<string, LanguageModel | {
1395
+ model: LanguageModel;
1396
+ middleware?: any;
1397
+ settings?: {
1398
+ maxOutputTokens?: number;
1399
+ temperature?: number;
1400
+ topP?: number;
1401
+ topK?: number;
1402
+ presencePenalty?: number;
1403
+ frequencyPenalty?: number;
1404
+ seed?: number;
1405
+ providerOptions?: Record<string, any>;
1406
+ };
1407
+ }>;
1408
+ embeddingModels?: Record<string, EmbeddingModel>;
1409
+ imageModels?: Record<string, ImageModel>;
1410
+ fallbackProvider?: Provider;
1411
+ }
1412
+ /**
1413
+ * Provider registry configuration
1414
+ */
1415
+ interface ProviderRegistryConfig {
1416
+ providers: Record<string, Provider>;
1417
+ options?: {
1418
+ separator?: string;
1419
+ };
1420
+ }
1421
+ /**
1422
+ * Model alias configuration
1423
+ */
1424
+ interface ModelAliasConfig {
1425
+ alias: string;
1426
+ providerId: string;
1427
+ modelId: string;
1428
+ settings?: any;
1429
+ middleware?: any;
1430
+ }
1431
+ /**
1432
+ * Global provider configuration
1433
+ */
1434
+ interface GlobalProviderConfig {
1435
+ defaultProvider: Provider;
1436
+ modelPrefixes?: Record<string, Provider>;
1437
+ }
1438
+ /**
1439
+ * Provider health check results
1440
+ */
1441
+ interface ProviderHealthStatus {
1442
+ providerId: string;
1443
+ isHealthy: boolean;
1444
+ latency?: number;
1445
+ error?: string;
1446
+ lastCheck: Date;
1447
+ }
1448
+ /**
1449
+ * Model usage statistics
1450
+ */
1451
+ interface ModelUsageStats {
1452
+ modelId: string;
1453
+ providerId: string;
1454
+ totalCalls: number;
1455
+ totalTokens: number;
1456
+ averageLatency: number;
1457
+ errorRate: number;
1458
+ lastUsed: Date;
1459
+ }
1460
+ /**
1461
+ * AI Provider Management Integration Class
1462
+ */
1463
+ declare class AIProviderManagement extends EventEmitter {
1464
+ private initialized;
1465
+ private registry;
1466
+ private customProviders;
1467
+ private modelAliases;
1468
+ private healthStatus;
1469
+ private usageStats;
1470
+ private defaultLanguageModel;
1471
+ private defaultEmbeddingModel;
1472
+ private globalProvider;
1473
+ private embeddingModelConfigs;
1474
+ private modelSettingsPresets;
1475
+ private embeddingsIntegration;
1476
+ private settingsManagement;
1477
+ constructor();
1478
+ /**
1479
+ * 初始化
1480
+ */
1481
+ initialize(): Promise<void>;
1482
+ /**
1483
+ * 设置默认提供商 - 从环境变量加载配置
1484
+ */
1485
+ private setupDefaultProviders;
1486
+ /**
1487
+ * Create custom provider
1488
+ */
1489
+ createCustomProvider(id: string, config: CustomProviderConfig): Provider;
1490
+ /**
1491
+ * Create model alias
1492
+ */
1493
+ createModelAlias(aliasConfig: ModelAliasConfig): any;
1494
+ /**
1495
+ * Create model with predefined settings
1496
+ */
1497
+ createModelWithSettings(originalModel: LanguageModel, settings: {
1498
+ maxOutputTokens?: number;
1499
+ temperature?: number;
1500
+ topP?: number;
1501
+ topK?: number;
1502
+ presencePenalty?: number;
1503
+ frequencyPenalty?: number;
1504
+ seed?: number;
1505
+ providerOptions?: Record<string, any>;
1506
+ }): any;
1507
+ /**
1508
+ * Create provider registry
1509
+ */
1510
+ createProviderRegistry(config: ProviderRegistryConfig): any;
1511
+ /**
1512
+ * Get language model from registry
1513
+ */
1514
+ getLanguageModel(modelId?: string): LanguageModel | null;
1515
+ /**
1516
+ * Get text embedding model from registry
1517
+ */
1518
+ getTextEmbeddingModel(modelId?: string): EmbeddingModel | null;
1519
+ /**
1520
+ * 从注册表获取图像模型 - 官方用法
1521
+ */
1522
+ getImageModel(modelId: string): ImageModel | null;
1523
+ /**
1524
+ * Set global default provider
1525
+ */
1526
+ setGlobalProvider(provider: Provider): void;
1527
+ /**
1528
+ * Get current global provider
1529
+ */
1530
+ getGlobalProvider(): Provider | null;
1531
+ /**
1532
+ * Check provider health status
1533
+ */
1534
+ checkProviderHealth(providerId: string): Promise<ProviderHealthStatus>;
1535
+ /**
1536
+ * Check health status of all providers
1537
+ */
1538
+ checkAllProvidersHealth(): Promise<ProviderHealthStatus[]>;
1539
+ /**
1540
+ * Record model usage statistics
1541
+ */
1542
+ private recordModelUsage;
1543
+ /**
1544
+ * Smart model selection based on health and load
1545
+ */
1546
+ selectBestModel(modelIds: string[], criteria?: {
1547
+ prioritizeHealth?: boolean;
1548
+ prioritizeLatency?: boolean;
1549
+ prioritizeReliability?: boolean;
1550
+ }): Promise<string | null>;
1551
+ /**
1552
+ * Create model chain with fallback
1553
+ */
1554
+ createModelChain(primaryModelId: string, fallbackModelIds: string[]): {
1555
+ execute: <T>(operation: (model: LanguageModel) => Promise<T>) => Promise<T>;
1556
+ };
1557
+ /**
1558
+ * Get all registered providers
1559
+ */
1560
+ getRegisteredProviders(): string[];
1561
+ /**
1562
+ * Get model aliases
1563
+ */
1564
+ getModelAliases(): Record<string, ModelAliasConfig>;
1565
+ /**
1566
+ * Get usage statistics
1567
+ */
1568
+ getUsageStats(): ModelUsageStats[];
1569
+ /**
1570
+ * Get health status report
1571
+ */
1572
+ getHealthReport(): {
1573
+ totalProviders: number;
1574
+ healthyProviders: number;
1575
+ unhealthyProviders: number;
1576
+ statuses: ProviderHealthStatus[];
1577
+ };
1578
+ /**
1579
+ * Clean up resources
1580
+ */
1581
+ cleanup(): Promise<void>;
1582
+ /**
1583
+ * Check initialization status
1584
+ */
1585
+ isInitialized(): boolean;
1586
+ /**
1587
+ * Get statistics
1588
+ */
1589
+ getStats(): {
1590
+ isInitialized: boolean;
1591
+ customProviders: number;
1592
+ modelAliases: number;
1593
+ totalUsage: number;
1594
+ hasRegistry: boolean;
1595
+ hasGlobalProvider: boolean;
1596
+ };
1597
+ /**
1598
+ * Get embeddings integration instance
1599
+ */
1600
+ getEmbeddingsIntegration(): AIEmbeddingsIntegration;
1601
+ /**
1602
+ * Configure embedding model parameters
1603
+ */
1604
+ configureEmbeddingModel(providerId: string, modelId: string, config: EmbeddingModelConfig): void;
1605
+ /**
1606
+ * Get embedding model configuration
1607
+ */
1608
+ getEmbeddingModelConfig(providerId: string, modelId: string): EmbeddingModelConfig | null;
1609
+ /**
1610
+ * Get all supported embedding models
1611
+ */
1612
+ getSupportedEmbeddingModels(): any;
1613
+ /**
1614
+ * Get embedding models by provider
1615
+ */
1616
+ getEmbeddingModelsByProvider(provider: string): any[];
1617
+ /**
1618
+ * Get settings management instance
1619
+ */
1620
+ getSettingsManagement(): AISettingsManagement;
1621
+ /**
1622
+ * Apply settings preset to model configuration
1623
+ */
1624
+ applySettingsPreset(modelId: string, presetName: string, additionalSettings?: Partial<ModelSettings>): ModelSettings;
1625
+ /**
1626
+ * Create model instance with custom settings
1627
+ */
1628
+ createModelWithCustomSettings(baseModel: LanguageModel, settings: ModelSettings): any;
1629
+ /**
1630
+ * Get model applied settings
1631
+ */
1632
+ getModelSettings(modelId: string): ModelSettings | null;
1633
+ /**
1634
+ * Create optimized model for specific use case
1635
+ */
1636
+ createOptimizedModel(baseModel: LanguageModel, useCase: 'creative' | 'analytical' | 'deterministic' | 'fast' | 'long-form' | 'code'): any;
1637
+ /**
1638
+ * Destroy instance - enhanced version
1639
+ */
1640
+ destroy(): Promise<void>;
1641
+ }
1642
+
1643
+ /**
1644
+ * Entity Engine AI Core - Main Entry File
1645
+ *
1646
+ * Complete AI core library with full compatibility
1647
+ */
1648
+
1649
+ declare const VERSION = "0.1.0";
1650
+ declare const AI_SDK_COMPATIBLE_VERSION = "^5.0.0";
1651
+ /**
1652
+ * Convenience function to create complete AI Core instance
1653
+ */
1654
+ declare function createAICore(config?: {
1655
+ providers?: CustomProviderConfig[];
1656
+ settings?: Partial<ModelSettings>;
1657
+ enableEmbeddings?: boolean;
1658
+ enableTools?: boolean;
1659
+ }): Promise<{
1660
+ aiSDK: AISDKIntegration;
1661
+ providerManagement: AIProviderManagement;
1662
+ toolsIntegration: AIToolsIntegration;
1663
+ embeddingsIntegration: AIEmbeddingsIntegration;
1664
+ settingsManagement: AISettingsManagement;
1665
+ structuredData: AIStructuredDataIntegration;
1666
+ }>;
1667
+
1668
+ export { AIEmbeddingsIntegration, AIProviderManagement, AISDKIntegration, AISettingsManagement, AIStructuredDataIntegration, AIToolsIntegration, AI_SDK_COMPATIBLE_VERSION, type AdvancedTool, BuiltinSettingsPresets, type CommonModelSettings, type CustomProviderConfig, type DynamicSettingsConfig, type DynamicTool, type EmbedManyConfig, type EmbedManyOptions, type EmbedManyResult, type EmbedOptions, type EmbedResult, type EmbeddingModelConfig, type EmbeddingProviderInfo, type GenerateObjectOptions, type GenerateObjectResultType, type GenerateResult, type GenerateTextOptions, type GlobalProviderConfig, type MCPClientConfig, type ModelAliasConfig, type ModelSettings, type ModelUsageStats, type ProviderHealthStatus, type ProviderRegistryConfig, type ProviderSpecificSettings, type SettingsPreset, type SettingsValidationResult, type SimilarityResult, type StepResult, type StopCondition, type StreamObjectOptions, type StreamObjectResultType, type StreamResult, type StreamTextOptions, SupportedEmbeddingModels, type ToolCallOptions, type ToolChoice, type ToolExecutionOptions, VERSION, createAICore, AISDKIntegration as default };