@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 @@
1
+ {"version":3,"sources":["/Users/shixin/dev/workspaces/scenemesh-projects/scenemesh-platform-workbench5/packages/entity-engine-aimodule/dist/chunk-YSVMY77H.js","../src/core/ai-tools.ts"],"names":[],"mappings":"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","file":"/Users/shixin/dev/workspaces/scenemesh-projects/scenemesh-platform-workbench5/packages/entity-engine-aimodule/dist/chunk-YSVMY77H.js","sourcesContent":[null,"/**\n * AI Tool Calling Complete Integration\n * \n * Complete tool calling functionality:\n * - Basic tool calling and execution\n * - Multi-step calling system (stopWhen, stepCountIs) \n * - Dynamic tools (dynamicTool)\n * - Tool selection strategies (toolChoice)\n * - Error handling and tool repair\n * - MCP tool integration\n * - Complete type safety system\n */\n\nimport type { z } from 'zod';\n\nimport { EventEmitter } from 'events';\nimport {\n tool,\n type Tool,\n dynamicTool,\n stepCountIs,\n type ToolSet,\n NoSuchToolError,\n type CoreMessage,\n type FinishReason,\n type LanguageModel,\n type TypedToolCall,\n type TypedToolResult,\n type StreamTextResult,\n InvalidToolInputError,\n type LanguageModelUsage,\n type LanguageModelResponseMetadata\n} from 'ai';\n\n// Type Definitions\n\n/**\n * Complete tool choice strategy definition\n */\nexport type ToolChoice<TOOLS extends ToolSet = {}> = \n | 'auto' // Model automatically chooses whether to call tools\n | 'required' // Model must call tools\n | 'none' // 模型不得调用工具\n | { type: 'tool'; toolName: Extract<keyof TOOLS, string> }; // 必须调用指定工具\n\n/**\n * 停止条件类型 - 支持各种停止策略\n */\nexport type StopCondition<_TOOLS extends ToolSet = {}> = \n | ((options: { stepNumber: number; steps: Array<any>; }) => boolean)\n | { type: 'stepCount'; value: number }\n | { type: 'custom'; condition: (context: any) => boolean };\n\n/**\n * 工具执行选项 - 完整参数\n */\nexport interface ToolExecutionOptions {\n toolCallId: string;\n messages: CoreMessage[];\n abortSignal?: AbortSignal;\n experimental_context?: unknown;\n}\n\n/**\n * 工具定义接口 - 支持所有官方功能\n */\nexport interface AdvancedTool<TParameters = any, TResult = any> {\n description?: string;\n inputSchema: z.ZodSchema<TParameters>;\n execute?: (\n parameters: TParameters, \n options: ToolExecutionOptions\n ) => Promise<TResult> | TResult | AsyncIterable<TResult>;\n \n // 多模态工具结果支持\n toModelOutput?: (result: TResult) => {\n type: 'content';\n value: Array<{\n type: 'text' | 'image';\n text?: string;\n data?: string;\n mediaType?: string;\n }>;\n };\n}\n\n/**\n * 动态工具接口 - 完全匹配 AI SDK 的 dynamicTool 返回类型\n */\nexport type DynamicTool = ReturnType<typeof dynamicTool>;\n\n/**\n * 步骤结果类型 - 完整步骤信息\n */\nexport interface StepResult<TOOLS extends ToolSet = {}> {\n stepType: 'initial' | 'continue' | 'tool-result';\n stepNumber: number;\n text: string;\n reasoning?: string;\n toolCalls: Array<TypedToolCall<TOOLS>>;\n toolResults: Array<TypedToolResult<TOOLS>>;\n finishReason: FinishReason;\n usage: LanguageModelUsage;\n warnings?: Array<any>;\n response?: LanguageModelResponseMetadata;\n isContinued: boolean;\n providerMetadata?: Record<string, Record<string, any>>;\n}\n\n/**\n * 工具调用选项 - 完整参数集合\n */\nexport interface ToolCallOptions<TOOLS extends ToolSet = {}> {\n // 基础参数\n model: LanguageModel;\n system?: string;\n prompt?: string;\n messages?: CoreMessage[];\n \n // 工具相关\n tools: TOOLS;\n toolChoice?: ToolChoice<TOOLS>;\n activeTools?: Array<keyof TOOLS>;\n \n // 多步调用\n stopWhen?: StopCondition<TOOLS> | Array<StopCondition<TOOLS>>;\n maxSteps?: number;\n \n // 生成控制\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n seed?: number;\n \n // 控制选项\n maxRetries?: number;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n \n // 实验性功能\n experimental_context?: unknown;\n experimental_telemetry?: {\n isEnabled?: boolean;\n recordInputs?: boolean;\n recordOutputs?: boolean;\n functionId?: string;\n metadata?: Record<string, any>;\n };\n experimental_repairToolCall?: (options: {\n toolCall: any;\n tools: TOOLS;\n error: NoSuchToolError | InvalidToolInputError;\n messages: CoreMessage[];\n system?: string;\n inputSchema: (options: { toolName: string }) => any;\n }) => Promise<any | null>;\n \n // 回调函数\n onStepFinish?: (result: StepResult<TOOLS>) => Promise<void> | void;\n prepareStep?: (options: {\n stepNumber: number;\n steps: Array<StepResult<TOOLS>>;\n model: LanguageModel;\n messages: CoreMessage[];\n }) => Promise<{\n model?: LanguageModel;\n toolChoice?: ToolChoice<TOOLS>;\n activeTools?: Array<keyof TOOLS>;\n system?: string;\n messages?: CoreMessage[];\n } | void> | {\n model?: LanguageModel;\n toolChoice?: ToolChoice<TOOLS>;\n activeTools?: Array<keyof TOOLS>;\n system?: string;\n messages?: CoreMessage[];\n } | void;\n}\n\n/**\n * MCP客户端配置\n */\nexport interface MCPClientConfig {\n transport: \n | { type: 'sse'; url: string; headers?: Record<string, string> }\n | { type: 'stdio'; command: string; args?: string[] }\n | { type: 'custom'; transport: any }; // MCPTransport\n \n schemas?: Record<string, {\n inputSchema: z.ZodSchema<any>;\n }>;\n}\n\n/**\n * MCP客户端接口\n */\nexport interface MCPClient {\n tools(config?: { schemas?: Record<string, { inputSchema: z.ZodSchema<any> }> }): Promise<ToolSet>;\n close(): Promise<void>;\n}\n\n// Core Tools Integration Class\n\n/**\n * Complete tools integration class\n */\nexport class AIToolsIntegration extends EventEmitter {\n private initialized: boolean = false;\n private requestCounter: number = 0;\n private registeredTools: Map<string, AdvancedTool> = new Map();\n private dynamicTools: Map<string, DynamicTool> = new Map();\n private mcpClients: Map<string, MCPClient> = new Map();\n\n constructor() {\n super();\n }\n\n /**\n * 初始化\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n this.emit('ai_tools:initializing');\n this.initialized = true;\n this.emit('ai_tools:initialized');\n } catch (error) {\n this.emit('ai_tools:initialization_failed', { error });\n throw error;\n }\n }\n\n /**\n * 生成请求ID\n */\n private generateRequestId(): string {\n return `ai-tools-${Date.now()}-${++this.requestCounter}`;\n }\n\n // Tool Management\n\n /**\n * Create tool - following official specifications\n */\n createTool(\n description: string,\n inputSchema: z.ZodSchema<any>,\n execute?: (parameters: any, options?: any) => Promise<any> | any\n ): any {\n if (execute) {\n return tool({\n description,\n inputSchema,\n execute: async (params: any) => execute(params, {\n // 传递标准的AI SDK执行选项\n toolCallId: 'tool-call-' + Date.now(),\n messages: [],\n abortSignal: undefined,\n experimental_context: undefined\n })\n });\n } else {\n return tool({\n description,\n inputSchema\n });\n }\n }\n\n /**\n * 创建动态工具 - 完全基于 AI SDK 的 dynamicTool\n */\n createDynamicTool(\n description: string,\n inputSchema: z.ZodSchema<any>,\n execute?: (input: unknown, options: ToolExecutionOptions) => Promise<unknown>\n ): DynamicTool {\n // 完全基于 AI SDK 的 dynamicTool,返回类型完全匹配\n return dynamicTool({\n description,\n inputSchema,\n execute: execute ? async (input: unknown, options: any) => {\n const toolOptions: ToolExecutionOptions = {\n toolCallId: options.toolCallId || 'unknown',\n messages: options.messages || [],\n abortSignal: options.abortSignal,\n experimental_context: options.experimental_context\n };\n return execute(input, toolOptions);\n } : async (input: unknown, options: any) => \n // 默认实现:返回输入参数\n input\n \n });\n }\n\n /**\n * 注册工具到集成器\n */\n registerTool<TParameters, TResult>(\n name: string,\n toolInstance: AdvancedTool<TParameters, TResult>\n ): void {\n this.registeredTools.set(name, toolInstance);\n this.emit('ai_tools:tool_registered', { name, tool: toolInstance });\n }\n\n /**\n * 获取已注册的工具\n */\n getRegisteredTools(): Record<string, AdvancedTool> {\n const tools: Record<string, AdvancedTool> = {};\n this.registeredTools.forEach((registeredTool, name) => {\n tools[name] = registeredTool;\n });\n return tools;\n }\n\n /**\n * 注册动态工具\n */\n registerDynamicTool(name: string, dynamicToolInstance: DynamicTool): void {\n this.dynamicTools.set(name, dynamicToolInstance);\n this.emit('ai_tools:dynamic_tool_registered', { name, tool: dynamicToolInstance });\n }\n\n // ================================\n // 🔄 多步调用系统 - 按照官方文档规范实现\n // ================================\n\n /**\n * 使用工具执行文本生成 - 遵循官方 generateText + tools 模式\n * 这是 AI SDK 工具调用的标准方式\n */\n async generateTextWithTools<TOOLS extends ToolSet = {}>(\n options: ToolCallOptions<TOOLS>\n ): Promise<{\n text: string;\n steps: Array<StepResult<TOOLS>>;\n toolCalls: Array<TypedToolCall<TOOLS>>;\n toolResults: Array<TypedToolResult<TOOLS>>;\n finishReason: FinishReason;\n usage: LanguageModelUsage;\n totalUsage: LanguageModelUsage;\n content: Array<any>;\n reasoning?: Array<any>;\n reasoningText?: string;\n sources?: Array<any>;\n files?: Array<any>;\n warnings?: Array<any>;\n response?: any;\n providerMetadata?: any;\n }> {\n const { generateText } = await import('ai');\n \n const requestId = this.generateRequestId();\n const startTime = Date.now();\n \n try {\n this.emit('ai_tools:multi_step_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n hasTools: !!options.tools,\n stopWhen: !!options.stopWhen,\n maxSteps: options.maxSteps || 5\n });\n\n // 构建参数\n const generateOptions: any = {\n model: options.model,\n system: options.system,\n prompt: options.prompt,\n messages: options.messages,\n tools: options.tools,\n toolChoice: options.toolChoice,\n activeTools: options.activeTools,\n maxOutputTokens: options.maxOutputTokens,\n temperature: options.temperature,\n topP: options.topP,\n topK: options.topK,\n presencePenalty: options.presencePenalty,\n frequencyPenalty: options.frequencyPenalty,\n seed: options.seed,\n maxRetries: options.maxRetries,\n abortSignal: options.abortSignal,\n headers: options.headers,\n experimental_context: options.experimental_context,\n experimental_telemetry: options.experimental_telemetry,\n experimental_repairToolCall: options.experimental_repairToolCall,\n onStepFinish: options.onStepFinish,\n prepareStep: options.prepareStep\n };\n\n // 处理停止条件\n if (options.stopWhen) {\n generateOptions.stopWhen = Array.isArray(options.stopWhen) \n ? options.stopWhen.map(cond => this.parseStopCondition(cond))\n : this.parseStopCondition(options.stopWhen);\n } else if (options.maxSteps) {\n generateOptions.stopWhen = stepCountIs(options.maxSteps);\n }\n\n const result = await generateText(generateOptions);\n\n this.emit('ai_tools:multi_step_completed', {\n requestId,\n latency: Date.now() - startTime,\n steps: result.steps?.length || 1,\n toolCalls: result.toolCalls?.length || 0,\n toolResults: result.toolResults?.length || 0,\n finishReason: result.finishReason,\n usage: result.usage\n });\n\n // 返回完整的 generateText 结果,符合官方规范\n return {\n text: result.text,\n steps: (result.steps || []) as unknown as Array<StepResult<TOOLS>>,\n toolCalls: result.toolCalls || [],\n toolResults: result.toolResults || [],\n finishReason: result.finishReason,\n usage: result.usage,\n totalUsage: result.totalUsage || result.usage,\n content: (result as any).content || [],\n reasoning: (result as any).reasoning || [],\n reasoningText: (result as any).reasoningText,\n sources: (result as any).sources || [],\n files: (result as any).files || [],\n warnings: result.warnings,\n response: (result as any).response,\n providerMetadata: (result as any).providerMetadata\n };\n\n } catch (error: any) {\n this.emit('ai_tools:generate_text_with_tools_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 * 使用工具执行流式文本生成 - 遵循官方 streamText + tools 模式\n */\n async streamTextWithTools<TOOLS extends ToolSet = {}>(\n options: ToolCallOptions<TOOLS>\n ): Promise<StreamTextResult<TOOLS, any>> {\n const { streamText } = await import('ai');\n \n const requestId = this.generateRequestId();\n \n this.emit('ai_tools:multi_step_stream_started', {\n requestId,\n model: typeof options.model === 'string' ? options.model : 'unknown',\n hasTools: !!options.tools,\n stopWhen: !!options.stopWhen\n });\n\n // 包装回调\n const wrappedOptions = {\n ...options,\n onStepFinish: (result: any) => {\n this.emit('ai_tools:step_finished', {\n requestId,\n stepType: result.stepType,\n stepNumber: result.stepNumber || 0,\n toolCalls: result.toolCalls?.length || 0,\n toolResults: result.toolResults?.length || 0,\n finishReason: result.finishReason\n });\n if (options.onStepFinish) {\n options.onStepFinish(result);\n }\n }\n };\n\n // 构建参数并处理停止条件\n const streamOptions: any = { ...wrappedOptions };\n if (options.stopWhen) {\n streamOptions.stopWhen = Array.isArray(options.stopWhen) \n ? options.stopWhen.map(cond => this.parseStopCondition(cond))\n : this.parseStopCondition(options.stopWhen);\n }\n\n const streamResult = streamText(streamOptions);\n \n // 增强流式结果,添加工具调用相关的便利方法\n const enhancedStreamResult = {\n ...streamResult,\n \n // 工具调用分析方法\n analyzeToolUsage: async () => {\n const steps = await streamResult.steps;\n return this.analyzeToolUsage(steps as unknown as Array<StepResult<TOOLS>>);\n },\n \n // 提取所有工具调用\n getAllToolCalls: async () => {\n const steps = await streamResult.steps;\n return this.extractToolCallsFromSteps(steps as unknown as Array<StepResult<TOOLS>>);\n },\n \n // 提取所有工具结果\n getAllToolResults: async () => {\n const steps = await streamResult.steps;\n return this.extractToolResultsFromSteps(steps as unknown as Array<StepResult<TOOLS>>);\n },\n \n // 获取响应消息 - 官方文档重点功能\n getResponseMessages: async () => {\n const response = await streamResult.response;\n return this.extractResponseMessages({ response });\n }\n } as any;\n \n return enhancedStreamResult;\n }\n\n /**\n * 创建步骤计数停止条件\n */\n createStepCountCondition(maxSteps: number): StopCondition<any> {\n return { type: 'stepCount', value: maxSteps };\n }\n\n /**\n * 创建自定义停止条件 \n */\n createCustomStopCondition<TOOLS extends ToolSet = {}>(\n condition: (options: { stepNumber: number; steps: Array<StepResult<TOOLS>>; }) => boolean\n ): StopCondition<TOOLS> {\n return condition;\n }\n\n /**\n * 解析停止条件\n */\n private parseStopCondition<TOOLS extends ToolSet = {}>(\n condition: StopCondition<TOOLS>\n ): any {\n if (typeof condition === 'function') {\n return condition;\n }\n \n if (condition.type === 'stepCount') {\n return stepCountIs(condition.value);\n }\n \n if (condition.type === 'custom') {\n return condition.condition;\n }\n \n return stepCountIs(5); // 默认最多5步\n }\n\n // ================================\n // Tool repair system\n // ================================\n\n /**\n * 创建结构化输出修复器\n */\n createStructuredRepairFunction<TOOLS extends ToolSet = {}>(\n repairModel: LanguageModel\n ) {\n return async (options: {\n toolCall: any;\n tools: TOOLS;\n error: NoSuchToolError | InvalidToolInputError;\n inputSchema: (options: { toolName: string }) => any;\n }) => {\n if (NoSuchToolError.isInstance(options.error)) {\n return null; // 不修复无效工具名称\n }\n\n try {\n // 使用结构化输出来修复工具参数\n const { generateObject } = await import('ai');\n \n const toolDef = (options.tools as any)[options.toolCall.toolName];\n if (!toolDef) return null;\n\n const { object: repairedArgs } = await generateObject({\n model: repairModel,\n schema: toolDef.parameters || toolDef.schema,\n prompt: [\n `The model tried to call the tool \"${options.toolCall.toolName}\" with the following inputs:`,\n JSON.stringify(options.toolCall.input),\n `The tool accepts the following schema:`,\n JSON.stringify(options.inputSchema(options.toolCall)),\n 'Please fix the inputs to match the schema.'\n ].join('\\n'),\n });\n\n return { \n ...options.toolCall, \n input: JSON.stringify(repairedArgs) \n };\n } catch (repairError) {\n this.emit('ai_tools:repair_failed', { \n originalError: options.error, \n repairError,\n toolCall: options.toolCall \n });\n return null;\n }\n };\n }\n\n /**\n * 创建重新询问修复器\n */\n createReaskRepairFunction<TOOLS extends ToolSet = {}>(\n repairModel: LanguageModel\n ) {\n return async (options: {\n toolCall: any;\n tools: TOOLS;\n error: NoSuchToolError | InvalidToolInputError;\n messages: CoreMessage[];\n system?: string;\n }) => {\n try {\n const { generateText } = await import('ai');\n \n const result = await generateText({\n model: repairModel,\n system: options.system,\n messages: [\n ...options.messages,\n {\n role: 'assistant',\n content: [{\n type: 'tool-call',\n toolCallId: options.toolCall.toolCallId,\n toolName: options.toolCall.toolName,\n input: options.toolCall.input,\n }],\n },\n {\n role: 'tool',\n content: [{\n type: 'tool-result',\n toolCallId: options.toolCall.toolCallId,\n toolName: options.toolCall.toolName,\n output: options.error.message,\n }],\n },\n ] as CoreMessage[],\n tools: options.tools,\n });\n\n const newToolCall = result.toolCalls.find(\n (newCall: any) => newCall.toolName === options.toolCall.toolName,\n );\n\n return newToolCall ? {\n toolCallType: 'function' as const,\n toolCallId: options.toolCall.toolCallId,\n toolName: options.toolCall.toolName,\n input: JSON.stringify(newToolCall.input),\n } : null;\n } catch (repairError) {\n this.emit('ai_tools:reask_repair_failed', { \n originalError: options.error, \n repairError,\n toolCall: options.toolCall \n });\n return null;\n }\n };\n }\n\n // ================================\n // 🔗 MCP集成系统\n // ================================\n\n /**\n * 创建MCP客户端\n */\n async createMCPClient(config: MCPClientConfig): Promise<MCPClient> {\n const { experimental_createMCPClient } = await import('ai');\n \n let transportConfig: any;\n \n switch (config.transport.type) {\n case 'sse':\n transportConfig = {\n transport: {\n type: 'sse',\n url: config.transport.url,\n headers: config.transport.headers,\n }\n };\n break;\n \n case 'stdio':\n // Conditionally import stdio transport only in Node.js environment\n if (typeof window === 'undefined' && typeof process !== 'undefined') {\n try {\n const { Experimental_StdioMCPTransport } = await import('ai/mcp-stdio');\n transportConfig = {\n transport: new Experimental_StdioMCPTransport({\n command: config.transport.command,\n args: config.transport.args,\n })\n };\n } catch (error) {\n throw new Error('stdio transport requires Node.js environment and ai/mcp-stdio package');\n }\n } else {\n throw new Error('stdio transport is only available in Node.js environment');\n }\n break;\n \n case 'custom':\n transportConfig = {\n transport: config.transport.transport\n };\n break;\n \n default:\n throw new Error(`Unsupported MCP transport type: ${(config.transport as any).type}`);\n }\n\n const mcpClient = await experimental_createMCPClient(transportConfig);\n \n const clientId = `mcp-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n \n const wrappedClient: MCPClient = {\n async tools(toolConfig?: { schemas?: Record<string, { inputSchema: z.ZodSchema<any> }> }) {\n if (config.schemas || toolConfig?.schemas) {\n return (mcpClient as any).tools({ schemas: config.schemas || toolConfig?.schemas });\n } else {\n return (mcpClient as any).tools();\n }\n },\n \n async close() {\n await (mcpClient as any).close();\n (this as any).mcpClients.delete(clientId);\n (this as any).emit('ai_tools:mcp_client_closed', { clientId });\n }\n };\n \n this.mcpClients.set(clientId, wrappedClient);\n this.emit('ai_tools:mcp_client_created', { clientId, config });\n \n return wrappedClient;\n }\n\n /**\n * 关闭所有MCP客户端\n */\n async closeAllMCPClients(): Promise<void> {\n const closePromises = Array.from(this.mcpClients.values()).map(client => client.close());\n await Promise.all(closePromises);\n this.mcpClients.clear();\n }\n\n // Utility methods\n\n /**\n * Create simple tool call configuration\n */\n createSimpleToolCall<TOOLS extends ToolSet = {}>(\n model: LanguageModel,\n tools: TOOLS,\n prompt: string,\n options?: Partial<ToolCallOptions<TOOLS>>\n ): ToolCallOptions<TOOLS> {\n return {\n model,\n tools,\n prompt,\n ...options\n };\n }\n\n /**\n * 创建多步工具调用配置 - 使用 stopWhen 参数\n */\n createMultiStepToolCall<TOOLS extends ToolSet = {}>(\n model: LanguageModel,\n tools: TOOLS,\n prompt: string,\n maxSteps: number = 5,\n options?: Partial<ToolCallOptions<TOOLS>>\n ): ToolCallOptions<TOOLS> {\n return {\n model,\n tools,\n prompt,\n stopWhen: this.createStepCountCondition(maxSteps),\n ...options\n };\n }\n\n /**\n * 直接执行单个工具 - 用于测试或直接调用\n */\n async executeSingleTool<TOOLS extends ToolSet = {}>(\n toolName: keyof TOOLS,\n input: any,\n tools: TOOLS,\n options?: {\n messages?: CoreMessage[];\n abortSignal?: AbortSignal;\n experimental_context?: unknown;\n }\n ): Promise<any> {\n const selectedTool = tools[toolName] as any;\n if (!selectedTool || !selectedTool.execute) {\n throw new Error(`Tool '${String(toolName)}' not found or not executable`);\n }\n\n const toolOptions: ToolExecutionOptions = {\n toolCallId: `direct-${Date.now()}`,\n messages: options?.messages || [],\n abortSignal: options?.abortSignal,\n experimental_context: options?.experimental_context\n };\n\n return selectedTool.execute(input, toolOptions);\n }\n\n /**\n * 获取响应消息 - 官方文档重点推荐的功能\n * 用于将助手和工具消息添加到对话历史\n */\n extractResponseMessages(result: {\n response?: { messages: Array<any> };\n }): Array<any> {\n return result.response?.messages || [];\n }\n\n /**\n * 将响应消息添加到对话历史 - 官方文档示例\n */\n addResponseMessagesToHistory(\n messages: Array<any>,\n result: {\n response?: { messages: Array<any> };\n }\n ): Array<any> {\n const responseMessages = this.extractResponseMessages(result);\n return [...messages, ...responseMessages];\n }\n\n /**\n * 批量工具调用验证\n */\n validateBatchToolCalls<TOOLS extends ToolSet = {}>(\n toolCalls: Array<TypedToolCall<TOOLS>>,\n tools: TOOLS\n ): Array<{ toolCall: TypedToolCall<TOOLS>; valid: boolean; error?: string }> {\n return toolCalls.map(toolCall => ({\n toolCall,\n ...this.validateToolCall(toolCall, tools)\n }));\n }\n\n /**\n * 工具调用结果验证\n */\n validateToolCall<TOOLS extends ToolSet = {}>(\n toolCall: TypedToolCall<TOOLS>,\n tools: TOOLS\n ): { valid: boolean; error?: string } {\n const toolName = toolCall.toolName;\n const targetTool = tools[toolName];\n \n if (!targetTool) {\n return { valid: false, error: `Tool '${String(toolName)}' not found` };\n }\n\n try {\n // 验证输入参数\n if ((targetTool as any).inputSchema || (targetTool as any).parameters) {\n const schema = (targetTool as any).inputSchema || (targetTool as any).parameters;\n schema.parse(toolCall.input);\n }\n \n return { valid: true };\n } catch (validationError: any) {\n return { \n valid: false, \n error: `Invalid tool input: ${validationError.message}` \n };\n }\n }\n\n /**\n * 工具调用统计分析\n */\n analyzeToolUsage<TOOLS extends ToolSet = {}>(\n steps: Array<StepResult<TOOLS>>\n ): {\n totalToolCalls: number;\n totalToolResults: number;\n toolUsageByName: Record<string, number>;\n avgToolCallsPerStep: number;\n stepTypes: Record<string, number>;\n } {\n const allToolCalls = this.extractToolCallsFromSteps(steps);\n const allToolResults = this.extractToolResultsFromSteps(steps);\n \n const toolUsageByName: Record<string, number> = {};\n allToolCalls.forEach(call => {\n const toolName = String(call.toolName);\n toolUsageByName[toolName] = (toolUsageByName[toolName] || 0) + 1;\n });\n\n const stepTypes: Record<string, number> = {};\n steps.forEach(step => {\n stepTypes[step.stepType] = (stepTypes[step.stepType] || 0) + 1;\n });\n\n return {\n totalToolCalls: allToolCalls.length,\n totalToolResults: allToolResults.length,\n toolUsageByName,\n avgToolCallsPerStep: steps.length > 0 ? allToolCalls.length / steps.length : 0,\n stepTypes\n };\n }\n\n /**\n * 提取步骤中的所有工具调用\n */\n extractToolCallsFromSteps<TOOLS extends ToolSet = {}>(\n steps: Array<StepResult<TOOLS>>\n ): Array<TypedToolCall<TOOLS>> {\n return steps.flatMap(step => step.toolCalls);\n }\n\n /**\n * 提取步骤中的所有工具结果\n */\n extractToolResultsFromSteps<TOOLS extends ToolSet = {}>(\n steps: Array<StepResult<TOOLS>>\n ): Array<TypedToolResult<TOOLS>> {\n return steps.flatMap(step => step.toolResults);\n }\n\n /**\n * 检查初始化状态\n */\n isInitialized(): boolean {\n return this.initialized;\n }\n\n /**\n * 获取统计信息\n */\n getStats(): {\n requestCount: number;\n isInitialized: boolean;\n registeredTools: number;\n dynamicTools: number;\n mcpClients: number;\n } {\n return {\n requestCount: this.requestCounter,\n isInitialized: this.initialized,\n registeredTools: this.registeredTools.size,\n dynamicTools: this.dynamicTools.size,\n mcpClients: this.mcpClients.size,\n };\n }\n\n /**\n * 重置统计信息\n */\n resetStats(): void {\n this.requestCounter = 0;\n }\n\n /**\n * 销毁实例\n */\n async destroy(): Promise<void> {\n await this.closeAllMCPClients();\n this.registeredTools.clear();\n this.dynamicTools.clear();\n this.removeAllListeners();\n this.initialized = false;\n this.requestCounter = 0;\n }\n}\n\n// Exports\n\nexport {\n // Core functions\n tool,\n // Core types\n type Tool,\n dynamicTool,\n stepCountIs,\n type ToolSet,\n NoSuchToolError,\n type CoreMessage,\n type FinishReason,\n \n type TypedToolCall,\n type LanguageModel,\n type TypedToolResult,\n InvalidToolInputError,\n type LanguageModelUsage\n};\n\n// Default export\nexport default AIToolsIntegration;"]}
@@ -0,0 +1,73 @@
1
+ import {
2
+ AI_SDK_COMPATIBLE_VERSION,
3
+ CORE_VERSION,
4
+ InvalidToolInputError,
5
+ NoSuchToolError,
6
+ cosineSimilarity,
7
+ createAICore,
8
+ createProviderRegistry,
9
+ customProvider,
10
+ defaultSettingsMiddleware,
11
+ embed,
12
+ embedMany,
13
+ generateObject,
14
+ generateText,
15
+ smoothStream,
16
+ streamObject,
17
+ streamText,
18
+ tool,
19
+ wrapLanguageModel
20
+ } from "./chunk-PRIGZEI4.mjs";
21
+ import {
22
+ AISDKIntegration
23
+ } from "./chunk-X42L6MTY.mjs";
24
+ import {
25
+ AIToolsIntegration
26
+ } from "./chunk-25C2NRSD.mjs";
27
+ import {
28
+ AIEmbeddingsIntegration,
29
+ SupportedEmbeddingModels
30
+ } from "./chunk-TDRKKUNT.mjs";
31
+ import {
32
+ AISettingsManagement,
33
+ BuiltinSettingsPresets
34
+ } from "./chunk-COWPK7XN.mjs";
35
+ import {
36
+ AIProviderManagement
37
+ } from "./chunk-J323UTPE.mjs";
38
+ import {
39
+ AIStructuredDataIntegration
40
+ } from "./chunk-V2SSI3SL.mjs";
41
+ import {
42
+ AICoreManager
43
+ } from "./chunk-T5A4KAVS.mjs";
44
+ export {
45
+ AICoreManager,
46
+ AIEmbeddingsIntegration,
47
+ AIProviderManagement,
48
+ AISDKIntegration,
49
+ AISettingsManagement,
50
+ AIStructuredDataIntegration,
51
+ AIToolsIntegration,
52
+ AI_SDK_COMPATIBLE_VERSION,
53
+ BuiltinSettingsPresets,
54
+ CORE_VERSION,
55
+ InvalidToolInputError,
56
+ NoSuchToolError,
57
+ SupportedEmbeddingModels,
58
+ cosineSimilarity,
59
+ createAICore,
60
+ createProviderRegistry,
61
+ customProvider,
62
+ defaultSettingsMiddleware,
63
+ embed,
64
+ embedMany,
65
+ generateObject,
66
+ generateText,
67
+ smoothStream,
68
+ streamObject,
69
+ streamText,
70
+ tool,
71
+ wrapLanguageModel
72
+ };
73
+ //# sourceMappingURL=core-ANYRS6EF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+ var _chunkDZFQ6I23js = require('./chunk-DZFQ6I23.js');
21
+
22
+
23
+ var _chunk6IUKES2Ljs = require('./chunk-6IUKES2L.js');
24
+
25
+
26
+ var _chunkYSVMY77Hjs = require('./chunk-YSVMY77H.js');
27
+
28
+
29
+
30
+ var _chunkTJFNODPEjs = require('./chunk-TJFNODPE.js');
31
+
32
+
33
+
34
+ var _chunkLHNNALVFjs = require('./chunk-LHNNALVF.js');
35
+
36
+
37
+ var _chunkOTNOFOVWjs = require('./chunk-OTNOFOVW.js');
38
+
39
+
40
+ var _chunk4JQ7UOXHjs = require('./chunk-4JQ7UOXH.js');
41
+
42
+
43
+ var _chunkCTEXPMVZjs = require('./chunk-CTEXPMVZ.js');
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+ exports.AICoreManager = _chunkCTEXPMVZjs.AICoreManager; exports.AIEmbeddingsIntegration = _chunkTJFNODPEjs.AIEmbeddingsIntegration; exports.AIProviderManagement = _chunkOTNOFOVWjs.AIProviderManagement; exports.AISDKIntegration = _chunk6IUKES2Ljs.AISDKIntegration; exports.AISettingsManagement = _chunkLHNNALVFjs.AISettingsManagement; exports.AIStructuredDataIntegration = _chunk4JQ7UOXHjs.AIStructuredDataIntegration; exports.AIToolsIntegration = _chunkYSVMY77Hjs.AIToolsIntegration; exports.AI_SDK_COMPATIBLE_VERSION = _chunkDZFQ6I23js.AI_SDK_COMPATIBLE_VERSION; exports.BuiltinSettingsPresets = _chunkLHNNALVFjs.BuiltinSettingsPresets; exports.CORE_VERSION = _chunkDZFQ6I23js.CORE_VERSION; exports.InvalidToolInputError = _chunkDZFQ6I23js.InvalidToolInputError; exports.NoSuchToolError = _chunkDZFQ6I23js.NoSuchToolError; exports.SupportedEmbeddingModels = _chunkTJFNODPEjs.SupportedEmbeddingModels; exports.cosineSimilarity = _chunkDZFQ6I23js.cosineSimilarity; exports.createAICore = _chunkDZFQ6I23js.createAICore; exports.createProviderRegistry = _chunkDZFQ6I23js.createProviderRegistry; exports.customProvider = _chunkDZFQ6I23js.customProvider; exports.defaultSettingsMiddleware = _chunkDZFQ6I23js.defaultSettingsMiddleware; exports.embed = _chunkDZFQ6I23js.embed; exports.embedMany = _chunkDZFQ6I23js.embedMany; exports.generateObject = _chunkDZFQ6I23js.generateObject; exports.generateText = _chunkDZFQ6I23js.generateText; exports.smoothStream = _chunkDZFQ6I23js.smoothStream; exports.streamObject = _chunkDZFQ6I23js.streamObject; exports.streamText = _chunkDZFQ6I23js.streamText; exports.tool = _chunkDZFQ6I23js.tool; exports.wrapLanguageModel = _chunkDZFQ6I23js.wrapLanguageModel;
73
+ //# sourceMappingURL=core-K5K34DCS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/shixin/dev/workspaces/scenemesh-projects/scenemesh-platform-workbench5/packages/entity-engine-aimodule/dist/core-K5K34DCS.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,ypDAAC","file":"/Users/shixin/dev/workspaces/scenemesh-projects/scenemesh-platform-workbench5/packages/entity-engine-aimodule/dist/core-K5K34DCS.js"}