@framers/agentos 0.1.112 → 0.1.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -5
- package/dist/api/AgentOS.d.ts +45 -12
- package/dist/api/AgentOS.d.ts.map +1 -1
- package/dist/api/AgentOS.js +225 -78
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/AgentOSOrchestrator.d.ts +8 -0
- package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
- package/dist/api/AgentOSOrchestrator.js +350 -59
- package/dist/api/AgentOSOrchestrator.js.map +1 -1
- package/dist/api/StreamChunkEmitter.d.ts.map +1 -1
- package/dist/api/StreamChunkEmitter.js +2 -0
- package/dist/api/StreamChunkEmitter.js.map +1 -1
- package/dist/api/agency.d.ts.map +1 -1
- package/dist/api/agency.js +47 -1
- package/dist/api/agency.js.map +1 -1
- package/dist/api/agent.d.ts +18 -5
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js +48 -9
- package/dist/api/agent.js.map +1 -1
- package/dist/api/agentExport.d.ts +202 -0
- package/dist/api/agentExport.d.ts.map +1 -0
- package/dist/api/agentExport.js +323 -0
- package/dist/api/agentExport.js.map +1 -0
- package/dist/api/editImage.d.ts +119 -0
- package/dist/api/editImage.d.ts.map +1 -0
- package/dist/api/editImage.js +150 -0
- package/dist/api/editImage.js.map +1 -0
- package/dist/api/embedText.d.ts +137 -0
- package/dist/api/embedText.d.ts.map +1 -0
- package/dist/api/embedText.js +229 -0
- package/dist/api/embedText.js.map +1 -0
- package/dist/api/externalToolRegistry.d.ts +44 -0
- package/dist/api/externalToolRegistry.d.ts.map +1 -0
- package/dist/api/externalToolRegistry.js +245 -0
- package/dist/api/externalToolRegistry.js.map +1 -0
- package/dist/api/generateImage.d.ts +1 -1
- package/dist/api/generateImage.d.ts.map +1 -1
- package/dist/api/generateImage.js +17 -13
- package/dist/api/generateImage.js.map +1 -1
- package/dist/api/generateObject.d.ts +185 -0
- package/dist/api/generateObject.d.ts.map +1 -0
- package/dist/api/generateObject.js +249 -0
- package/dist/api/generateObject.js.map +1 -0
- package/dist/api/generateText.d.ts +13 -3
- package/dist/api/generateText.d.ts.map +1 -1
- package/dist/api/generateText.js +20 -5
- package/dist/api/generateText.js.map +1 -1
- package/dist/api/interfaces/IAgentOS.d.ts +29 -1
- package/dist/api/interfaces/IAgentOS.d.ts.map +1 -1
- package/dist/api/model.d.ts +7 -7
- package/dist/api/model.d.ts.map +1 -1
- package/dist/api/model.js +22 -16
- package/dist/api/model.js.map +1 -1
- package/dist/api/processRequestWithExternalTools.d.ts +26 -0
- package/dist/api/processRequestWithExternalTools.d.ts.map +1 -0
- package/dist/api/processRequestWithExternalTools.js +52 -0
- package/dist/api/processRequestWithExternalTools.js.map +1 -0
- package/dist/api/processRequestWithRegisteredTools.d.ts +56 -0
- package/dist/api/processRequestWithRegisteredTools.d.ts.map +1 -0
- package/dist/api/processRequestWithRegisteredTools.js +125 -0
- package/dist/api/processRequestWithRegisteredTools.js.map +1 -0
- package/dist/api/provider-defaults.d.ts.map +1 -1
- package/dist/api/provider-defaults.js +28 -0
- package/dist/api/provider-defaults.js.map +1 -1
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts +71 -0
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts.map +1 -0
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.js +159 -0
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.js.map +1 -0
- package/dist/api/strategies/agentGraphBuilder.d.ts +170 -0
- package/dist/api/strategies/agentGraphBuilder.d.ts.map +1 -0
- package/dist/api/strategies/agentGraphBuilder.js +299 -0
- package/dist/api/strategies/agentGraphBuilder.js.map +1 -0
- package/dist/api/strategies/debate.d.ts +12 -1
- package/dist/api/strategies/debate.d.ts.map +1 -1
- package/dist/api/strategies/debate.js +41 -5
- package/dist/api/strategies/debate.js.map +1 -1
- package/dist/api/strategies/graphCompiler.d.ts +84 -0
- package/dist/api/strategies/graphCompiler.d.ts.map +1 -0
- package/dist/api/strategies/graphCompiler.js +617 -0
- package/dist/api/strategies/graphCompiler.js.map +1 -0
- package/dist/api/strategies/hierarchical.d.ts +15 -1
- package/dist/api/strategies/hierarchical.d.ts.map +1 -1
- package/dist/api/strategies/hierarchical.js +53 -8
- package/dist/api/strategies/hierarchical.js.map +1 -1
- package/dist/api/strategies/index.d.ts +29 -4
- package/dist/api/strategies/index.d.ts.map +1 -1
- package/dist/api/strategies/index.js +28 -4
- package/dist/api/strategies/index.js.map +1 -1
- package/dist/api/strategies/parallel.d.ts +15 -4
- package/dist/api/strategies/parallel.d.ts.map +1 -1
- package/dist/api/strategies/parallel.js +53 -16
- package/dist/api/strategies/parallel.js.map +1 -1
- package/dist/api/strategies/review-loop.d.ts +15 -1
- package/dist/api/strategies/review-loop.d.ts.map +1 -1
- package/dist/api/strategies/review-loop.js +36 -10
- package/dist/api/strategies/review-loop.js.map +1 -1
- package/dist/api/strategies/sequential.d.ts +11 -1
- package/dist/api/strategies/sequential.d.ts.map +1 -1
- package/dist/api/strategies/sequential.js +39 -8
- package/dist/api/strategies/sequential.js.map +1 -1
- package/dist/api/strategies/shared.d.ts +72 -8
- package/dist/api/strategies/shared.d.ts.map +1 -1
- package/dist/api/strategies/shared.js +92 -12
- package/dist/api/strategies/shared.js.map +1 -1
- package/dist/api/streamObject.d.ts +166 -0
- package/dist/api/streamObject.d.ts.map +1 -0
- package/dist/api/streamObject.js +268 -0
- package/dist/api/streamObject.js.map +1 -0
- package/dist/api/streamText.d.ts +1 -1
- package/dist/api/streamText.d.ts.map +1 -1
- package/dist/api/streamText.js +26 -8
- package/dist/api/streamText.js.map +1 -1
- package/dist/api/toolAdapter.d.ts +44 -8
- package/dist/api/toolAdapter.d.ts.map +1 -1
- package/dist/api/toolAdapter.js +224 -45
- package/dist/api/toolAdapter.js.map +1 -1
- package/dist/api/types/AgentOSExternalToolRequest.d.ts +35 -0
- package/dist/api/types/AgentOSExternalToolRequest.d.ts.map +1 -0
- package/dist/api/types/AgentOSExternalToolRequest.js +2 -0
- package/dist/api/types/AgentOSExternalToolRequest.js.map +1 -0
- package/dist/api/types/AgentOSResponse.d.ts +25 -0
- package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
- package/dist/api/types/AgentOSResponse.js +20 -0
- package/dist/api/types/AgentOSResponse.js.map +1 -1
- package/dist/api/types/AgentOSToolResult.d.ts +11 -0
- package/dist/api/types/AgentOSToolResult.d.ts.map +1 -0
- package/dist/api/types/AgentOSToolResult.js +2 -0
- package/dist/api/types/AgentOSToolResult.js.map +1 -0
- package/dist/api/types.d.ts +81 -4
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/api/upscaleImage.d.ts +92 -0
- package/dist/api/upscaleImage.d.ts.map +1 -0
- package/dist/api/upscaleImage.js +133 -0
- package/dist/api/upscaleImage.js.map +1 -0
- package/dist/api/variateImage.d.ts +102 -0
- package/dist/api/variateImage.d.ts.map +1 -0
- package/dist/api/variateImage.js +154 -0
- package/dist/api/variateImage.js.map +1 -0
- package/dist/cognitive_substrate/GMI.d.ts +16 -2
- package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/GMI.js +188 -56
- package/dist/cognitive_substrate/GMI.js.map +1 -1
- package/dist/cognitive_substrate/IGMI.d.ts +10 -0
- package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/IGMI.js.map +1 -1
- package/dist/config/AgentOSConfig.d.ts +19 -2
- package/dist/config/AgentOSConfig.d.ts.map +1 -1
- package/dist/config/AgentOSConfig.js +46 -29
- package/dist/config/AgentOSConfig.js.map +1 -1
- package/dist/core/guardrails/IGuardrailService.d.ts +1 -1
- package/dist/core/images/IImageProvider.d.ts +93 -0
- package/dist/core/images/IImageProvider.d.ts.map +1 -1
- package/dist/core/images/IImageProvider.js.map +1 -1
- package/dist/core/images/ImageOperationError.d.ts +52 -0
- package/dist/core/images/ImageOperationError.d.ts.map +1 -0
- package/dist/core/images/ImageOperationError.js +58 -0
- package/dist/core/images/ImageOperationError.js.map +1 -0
- package/dist/core/images/imageToBuffer.d.ts +41 -0
- package/dist/core/images/imageToBuffer.d.ts.map +1 -0
- package/dist/core/images/imageToBuffer.js +95 -0
- package/dist/core/images/imageToBuffer.js.map +1 -0
- package/dist/core/images/index.d.ts +4 -0
- package/dist/core/images/index.d.ts.map +1 -1
- package/dist/core/images/index.js +8 -0
- package/dist/core/images/index.js.map +1 -1
- package/dist/core/images/providers/FalImageProvider.d.ts +208 -0
- package/dist/core/images/providers/FalImageProvider.d.ts.map +1 -0
- package/dist/core/images/providers/FalImageProvider.js +301 -0
- package/dist/core/images/providers/FalImageProvider.js.map +1 -0
- package/dist/core/images/providers/FluxImageProvider.d.ts +197 -0
- package/dist/core/images/providers/FluxImageProvider.d.ts.map +1 -0
- package/dist/core/images/providers/FluxImageProvider.js +271 -0
- package/dist/core/images/providers/FluxImageProvider.js.map +1 -0
- package/dist/core/images/providers/OpenAIImageProvider.d.ts +33 -1
- package/dist/core/images/providers/OpenAIImageProvider.d.ts.map +1 -1
- package/dist/core/images/providers/OpenAIImageProvider.js +125 -0
- package/dist/core/images/providers/OpenAIImageProvider.js.map +1 -1
- package/dist/core/images/providers/ReplicateImageProvider.d.ts +26 -1
- package/dist/core/images/providers/ReplicateImageProvider.d.ts.map +1 -1
- package/dist/core/images/providers/ReplicateImageProvider.js +118 -0
- package/dist/core/images/providers/ReplicateImageProvider.js.map +1 -1
- package/dist/core/images/providers/StabilityImageProvider.d.ts +41 -1
- package/dist/core/images/providers/StabilityImageProvider.d.ts.map +1 -1
- package/dist/core/images/providers/StabilityImageProvider.js +180 -7
- package/dist/core/images/providers/StabilityImageProvider.js.map +1 -1
- package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts +29 -1
- package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts.map +1 -1
- package/dist/core/images/providers/StableDiffusionLocalProvider.js +124 -0
- package/dist/core/images/providers/StableDiffusionLocalProvider.js.map +1 -1
- package/dist/core/llm/IPromptEngine.d.ts +2 -2
- package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
- package/dist/core/llm/IPromptEngine.js +2 -2
- package/dist/core/llm/IPromptEngine.js.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts +7 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.js +24 -0
- package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
- package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts +42 -0
- package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/AnthropicProviderError.js +45 -0
- package/dist/core/llm/providers/errors/AnthropicProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.d.ts +45 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.js +46 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +1 -1
- package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -1
- package/dist/core/llm/providers/errors/OllamaProviderError.js +1 -1
- package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -1
- package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +1 -1
- package/dist/core/llm/providers/errors/OpenAIProviderError.js +1 -1
- package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +1 -1
- package/dist/core/llm/providers/errors/OpenRouterProviderError.js +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +340 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.js +959 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.d.ts +339 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.js +1004 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/GroqProvider.d.ts +105 -0
- package/dist/core/llm/providers/implementations/GroqProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GroqProvider.js +134 -0
- package/dist/core/llm/providers/implementations/GroqProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/MistralProvider.d.ts +105 -0
- package/dist/core/llm/providers/implementations/MistralProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/MistralProvider.js +146 -0
- package/dist/core/llm/providers/implementations/MistralProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.d.ts +107 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.js +138 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/XAIProvider.d.ts +102 -0
- package/dist/core/llm/providers/implementations/XAIProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/XAIProvider.js +123 -0
- package/dist/core/llm/providers/implementations/XAIProvider.js.map +1 -0
- package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/AgentOrchestrator.js +26 -5
- package/dist/core/orchestration/AgentOrchestrator.js.map +1 -1
- package/dist/core/tools/IToolOrchestrator.d.ts +2 -2
- package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -1
- package/dist/core/tools/ToolExecutor.d.ts +3 -0
- package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
- package/dist/core/tools/ToolExecutor.js +2 -1
- package/dist/core/tools/ToolExecutor.js.map +1 -1
- package/dist/core/tools/ToolOrchestrator.d.ts +7 -7
- package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
- package/dist/core/tools/ToolOrchestrator.js +135 -36
- package/dist/core/tools/ToolOrchestrator.js.map +1 -1
- package/dist/core/tools/permissions/ToolPermissionManager.d.ts +6 -5
- package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -1
- package/dist/core/tools/permissions/ToolPermissionManager.js +47 -21
- package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -1
- package/dist/core/vision/VisionPipeline.d.ts +437 -0
- package/dist/core/vision/VisionPipeline.d.ts.map +1 -0
- package/dist/core/vision/VisionPipeline.js +1113 -0
- package/dist/core/vision/VisionPipeline.js.map +1 -0
- package/dist/core/vision/index.d.ts +97 -0
- package/dist/core/vision/index.d.ts.map +1 -0
- package/dist/core/vision/index.js +182 -0
- package/dist/core/vision/index.js.map +1 -0
- package/dist/core/vision/providers/LLMVisionProvider.d.ts +135 -0
- package/dist/core/vision/providers/LLMVisionProvider.d.ts.map +1 -0
- package/dist/core/vision/providers/LLMVisionProvider.js +136 -0
- package/dist/core/vision/providers/LLMVisionProvider.js.map +1 -0
- package/dist/core/vision/providers/PipelineVisionProvider.d.ts +154 -0
- package/dist/core/vision/providers/PipelineVisionProvider.d.ts.map +1 -0
- package/dist/core/vision/providers/PipelineVisionProvider.js +160 -0
- package/dist/core/vision/providers/PipelineVisionProvider.js.map +1 -0
- package/dist/core/vision/types.d.ts +286 -0
- package/dist/core/vision/types.d.ts.map +1 -0
- package/dist/core/vision/types.js +24 -0
- package/dist/core/vision/types.js.map +1 -0
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.js +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
- package/dist/emergent/ComposableToolBuilder.d.ts +15 -4
- package/dist/emergent/ComposableToolBuilder.d.ts.map +1 -1
- package/dist/emergent/ComposableToolBuilder.js +29 -14
- package/dist/emergent/ComposableToolBuilder.js.map +1 -1
- package/dist/emergent/EmergentCapabilityEngine.d.ts +3 -3
- package/dist/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
- package/dist/emergent/EmergentCapabilityEngine.js +15 -12
- package/dist/emergent/EmergentCapabilityEngine.js.map +1 -1
- package/dist/emergent/EmergentJudge.d.ts +20 -0
- package/dist/emergent/EmergentJudge.d.ts.map +1 -1
- package/dist/emergent/EmergentJudge.js +121 -26
- package/dist/emergent/EmergentJudge.js.map +1 -1
- package/dist/emergent/EmergentToolRegistry.d.ts +17 -0
- package/dist/emergent/EmergentToolRegistry.d.ts.map +1 -1
- package/dist/emergent/EmergentToolRegistry.js +26 -0
- package/dist/emergent/EmergentToolRegistry.js.map +1 -1
- package/dist/emergent/ForgeToolMetaTool.d.ts +1 -1
- package/dist/emergent/ForgeToolMetaTool.d.ts.map +1 -1
- package/dist/emergent/ForgeToolMetaTool.js +15 -2
- package/dist/emergent/ForgeToolMetaTool.js.map +1 -1
- package/dist/emergent/SandboxedToolForge.d.ts +2 -2
- package/dist/emergent/SandboxedToolForge.d.ts.map +1 -1
- package/dist/emergent/SandboxedToolForge.js +13 -23
- package/dist/emergent/SandboxedToolForge.js.map +1 -1
- package/dist/emergent/SkillExporter.d.ts +119 -0
- package/dist/emergent/SkillExporter.d.ts.map +1 -0
- package/dist/emergent/SkillExporter.js +344 -0
- package/dist/emergent/SkillExporter.js.map +1 -0
- package/dist/emergent/index.d.ts +1 -0
- package/dist/emergent/index.d.ts.map +1 -1
- package/dist/emergent/index.js +1 -0
- package/dist/emergent/index.js.map +1 -1
- package/dist/emergent/types.d.ts +4 -4
- package/dist/index.d.ts +30 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/memory/facade/Memory.d.ts.map +1 -1
- package/dist/memory/facade/Memory.js +8 -0
- package/dist/memory/facade/Memory.js.map +1 -1
- package/dist/memory/facade/types.d.ts +10 -0
- package/dist/memory/facade/types.d.ts.map +1 -1
- package/dist/memory/index.d.ts +15 -7
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +7 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/ingestion/DoclingLoader.d.ts +3 -3
- package/dist/memory/ingestion/DoclingLoader.d.ts.map +1 -1
- package/dist/memory/ingestion/DoclingLoader.js +12 -8
- package/dist/memory/ingestion/DoclingLoader.js.map +1 -1
- package/dist/memory/ingestion/FolderScanner.d.ts +7 -7
- package/dist/memory/ingestion/FolderScanner.d.ts.map +1 -1
- package/dist/memory/ingestion/FolderScanner.js +6 -6
- package/dist/memory/ingestion/FolderScanner.js.map +1 -1
- package/dist/memory/ingestion/LoaderRegistry.d.ts +8 -8
- package/dist/memory/ingestion/LoaderRegistry.d.ts.map +1 -1
- package/dist/memory/ingestion/LoaderRegistry.js +9 -11
- package/dist/memory/ingestion/LoaderRegistry.js.map +1 -1
- package/dist/memory/ingestion/MultimodalAggregator.d.ts +1 -1
- package/dist/memory/ingestion/MultimodalAggregator.js +1 -1
- package/dist/memory/ingestion/OcrPdfLoader.d.ts +2 -2
- package/dist/memory/ingestion/OcrPdfLoader.d.ts.map +1 -1
- package/dist/memory/ingestion/OcrPdfLoader.js +12 -8
- package/dist/memory/ingestion/OcrPdfLoader.js.map +1 -1
- package/dist/memory/ingestion/PdfLoader.d.ts +8 -8
- package/dist/memory/ingestion/PdfLoader.d.ts.map +1 -1
- package/dist/memory/ingestion/PdfLoader.js +13 -10
- package/dist/memory/ingestion/PdfLoader.js.map +1 -1
- package/dist/memory/io/MarkdownExporter.d.ts +1 -1
- package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
- package/dist/memory/io/MarkdownExporter.js +1 -1
- package/dist/memory/io/MarkdownExporter.js.map +1 -1
- package/dist/memory/observation/MemoryObserver.d.ts +63 -1
- package/dist/memory/observation/MemoryObserver.d.ts.map +1 -1
- package/dist/memory/observation/MemoryObserver.js +115 -4
- package/dist/memory/observation/MemoryObserver.js.map +1 -1
- package/dist/memory/observation/ObservationCompressor.d.ts +88 -0
- package/dist/memory/observation/ObservationCompressor.d.ts.map +1 -0
- package/dist/memory/observation/ObservationCompressor.js +207 -0
- package/dist/memory/observation/ObservationCompressor.js.map +1 -0
- package/dist/memory/observation/ObservationReflector.d.ts +82 -0
- package/dist/memory/observation/ObservationReflector.d.ts.map +1 -0
- package/dist/memory/observation/ObservationReflector.js +212 -0
- package/dist/memory/observation/ObservationReflector.js.map +1 -0
- package/dist/memory/observation/temporal.d.ts +54 -0
- package/dist/memory/observation/temporal.d.ts.map +1 -0
- package/dist/memory/observation/temporal.js +115 -0
- package/dist/memory/observation/temporal.js.map +1 -0
- package/dist/memory/tools/MemoryAddTool.d.ts +2 -2
- package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
- package/dist/memory/tools/MemoryAddTool.js +8 -3
- package/dist/memory/tools/MemoryAddTool.js.map +1 -1
- package/dist/memory/tools/MemorySearchTool.d.ts +3 -3
- package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
- package/dist/memory/tools/MemorySearchTool.js +11 -9
- package/dist/memory/tools/MemorySearchTool.js.map +1 -1
- package/dist/memory/tools/scopeContext.d.ts +11 -0
- package/dist/memory/tools/scopeContext.d.ts.map +1 -0
- package/dist/memory/tools/scopeContext.js +46 -0
- package/dist/memory/tools/scopeContext.js.map +1 -0
- package/dist/orchestration/builders/AgentGraph.d.ts +12 -11
- package/dist/orchestration/builders/AgentGraph.d.ts.map +1 -1
- package/dist/orchestration/builders/AgentGraph.js +12 -11
- package/dist/orchestration/builders/AgentGraph.js.map +1 -1
- package/dist/orchestration/builders/VoiceNodeBuilder.d.ts +82 -25
- package/dist/orchestration/builders/VoiceNodeBuilder.d.ts.map +1 -1
- package/dist/orchestration/builders/VoiceNodeBuilder.js +86 -26
- package/dist/orchestration/builders/VoiceNodeBuilder.js.map +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.d.ts +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.d.ts.map +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.js +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.js.map +1 -1
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts +7 -54
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts.map +1 -1
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js +8 -56
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js.map +1 -1
- package/dist/orchestration/events/GraphEvent.d.ts +67 -5
- package/dist/orchestration/events/GraphEvent.d.ts.map +1 -1
- package/dist/orchestration/events/GraphEvent.js.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.js +151 -1
- package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
- package/dist/orchestration/runtime/LoopController.d.ts +3 -3
- package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
- package/dist/orchestration/runtime/LoopController.js.map +1 -1
- package/dist/orchestration/runtime/StateManager.d.ts +3 -3
- package/dist/orchestration/runtime/StateManager.js +3 -3
- package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts +103 -26
- package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts.map +1 -1
- package/dist/orchestration/runtime/VoiceNodeExecutor.js +155 -43
- package/dist/orchestration/runtime/VoiceNodeExecutor.js.map +1 -1
- package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts +95 -33
- package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts.map +1 -1
- package/dist/orchestration/runtime/VoiceTransportAdapter.js +83 -29
- package/dist/orchestration/runtime/VoiceTransportAdapter.js.map +1 -1
- package/dist/orchestration/runtime/VoiceTurnCollector.d.ts +73 -20
- package/dist/orchestration/runtime/VoiceTurnCollector.d.ts.map +1 -1
- package/dist/orchestration/runtime/VoiceTurnCollector.js +84 -23
- package/dist/orchestration/runtime/VoiceTurnCollector.js.map +1 -1
- package/dist/query-router/KeywordFallback.d.ts +70 -0
- package/dist/query-router/KeywordFallback.d.ts.map +1 -0
- package/dist/query-router/KeywordFallback.js +132 -0
- package/dist/query-router/KeywordFallback.js.map +1 -0
- package/dist/query-router/QueryClassifier.d.ts +140 -0
- package/dist/query-router/QueryClassifier.d.ts.map +1 -0
- package/dist/query-router/QueryClassifier.js +223 -0
- package/dist/query-router/QueryClassifier.js.map +1 -0
- package/dist/query-router/QueryDispatcher.d.ts +139 -0
- package/dist/query-router/QueryDispatcher.d.ts.map +1 -0
- package/dist/query-router/QueryDispatcher.js +297 -0
- package/dist/query-router/QueryDispatcher.js.map +1 -0
- package/dist/query-router/QueryGenerator.d.ts +184 -0
- package/dist/query-router/QueryGenerator.d.ts.map +1 -0
- package/dist/query-router/QueryGenerator.js +241 -0
- package/dist/query-router/QueryGenerator.js.map +1 -0
- package/dist/query-router/QueryRouter.d.ts +292 -0
- package/dist/query-router/QueryRouter.d.ts.map +1 -0
- package/dist/query-router/QueryRouter.js +803 -0
- package/dist/query-router/QueryRouter.js.map +1 -0
- package/dist/query-router/TopicExtractor.d.ts +73 -0
- package/dist/query-router/TopicExtractor.d.ts.map +1 -0
- package/dist/query-router/TopicExtractor.js +95 -0
- package/dist/query-router/TopicExtractor.js.map +1 -0
- package/dist/query-router/index.d.ts +40 -0
- package/dist/query-router/index.d.ts.map +1 -0
- package/dist/query-router/index.js +46 -0
- package/dist/query-router/index.js.map +1 -0
- package/dist/query-router/types.d.ts +508 -0
- package/dist/query-router/types.d.ts.map +1 -0
- package/dist/query-router/types.js +39 -0
- package/dist/query-router/types.js.map +1 -0
- package/dist/rag/index.d.ts +5 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +7 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/multimodal/LLMVisionAdapter.d.ts +43 -0
- package/dist/rag/multimodal/LLMVisionAdapter.d.ts.map +1 -0
- package/dist/rag/multimodal/LLMVisionAdapter.js +46 -0
- package/dist/rag/multimodal/LLMVisionAdapter.js.map +1 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts +244 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -0
- package/dist/rag/multimodal/MultimodalIndexer.js +411 -0
- package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts +448 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts.map +1 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.js +941 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.js.map +1 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.d.ts +139 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.d.ts.map +1 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.js +143 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.js.map +1 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts +172 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts.map +1 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js +152 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js.map +1 -0
- package/dist/rag/multimodal/index.d.ts +44 -0
- package/dist/rag/multimodal/index.d.ts.map +1 -0
- package/dist/rag/multimodal/index.js +42 -0
- package/dist/rag/multimodal/index.js.map +1 -0
- package/dist/rag/multimodal/types.d.ts +276 -0
- package/dist/rag/multimodal/types.d.ts.map +1 -0
- package/dist/rag/multimodal/types.js +26 -0
- package/dist/rag/multimodal/types.js.map +1 -0
- package/dist/social-posting/SocialPostManager.d.ts +3 -3
- package/dist/social-posting/SocialPostManager.d.ts.map +1 -1
- package/dist/social-posting/SocialPostManager.js +3 -5
- package/dist/social-posting/SocialPostManager.js.map +1 -1
- package/dist/speech/FallbackProxy.d.ts +6 -6
- package/dist/speech/FallbackProxy.d.ts.map +1 -1
- package/dist/speech/FallbackProxy.js +3 -3
- package/dist/speech/FallbackProxy.js.map +1 -1
- package/dist/speech/SpeechProviderResolver.d.ts +8 -8
- package/dist/speech/SpeechProviderResolver.d.ts.map +1 -1
- package/dist/speech/SpeechProviderResolver.js +22 -11
- package/dist/speech/SpeechProviderResolver.js.map +1 -1
- package/dist/speech/SpeechRuntime.d.ts +1 -5
- package/dist/speech/SpeechRuntime.d.ts.map +1 -1
- package/dist/speech/SpeechRuntime.js +17 -9
- package/dist/speech/SpeechRuntime.js.map +1 -1
- package/dist/speech/providers/AssemblyAISTTProvider.d.ts +4 -4
- package/dist/speech/providers/AssemblyAISTTProvider.js +4 -4
- package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +3 -3
- package/dist/speech/providers/AzureSpeechTTSProvider.js +2 -2
- package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -1
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +9 -9
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts.map +1 -1
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.js +5 -5
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.js.map +1 -1
- package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +2 -2
- package/dist/speech/providers/DeepgramBatchSTTProvider.js +2 -2
- package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts +3 -3
- package/dist/speech/providers/OpenAITextToSpeechProvider.js +2 -2
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts +1 -1
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -1
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js +1 -1
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -1
- package/dist/voice/TelephonyStreamTransport.d.ts +6 -6
- package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
- package/dist/voice/TelephonyStreamTransport.js +5 -5
- package/dist/voice/TelephonyStreamTransport.js.map +1 -1
- package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +4 -4
- package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
- package/dist/voice-pipeline/AcousticEndpointDetector.js +4 -4
- package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
- package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +3 -3
- package/dist/voice-pipeline/HardCutBargeinHandler.js +3 -3
- package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +3 -3
- package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
- package/dist/voice-pipeline/HeuristicEndpointDetector.js +3 -3
- package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
- package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +5 -5
- package/dist/voice-pipeline/SoftFadeBargeinHandler.js +1 -1
- package/dist/voice-pipeline/VoiceInterruptError.d.ts +6 -6
- package/dist/voice-pipeline/VoiceInterruptError.d.ts.map +1 -1
- package/dist/voice-pipeline/VoiceInterruptError.js +4 -4
- package/dist/voice-pipeline/VoiceInterruptError.js.map +1 -1
- package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +9 -9
- package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -1
- package/dist/voice-pipeline/VoicePipelineOrchestrator.js +8 -8
- package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -1
- package/dist/voice-pipeline/WebRTCStreamTransport.d.ts +421 -0
- package/dist/voice-pipeline/WebRTCStreamTransport.d.ts.map +1 -0
- package/dist/voice-pipeline/WebRTCStreamTransport.js +573 -0
- package/dist/voice-pipeline/WebRTCStreamTransport.js.map +1 -0
- package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +8 -8
- package/dist/voice-pipeline/WebSocketStreamTransport.js +5 -5
- package/dist/voice-pipeline/index.d.ts +1 -0
- package/dist/voice-pipeline/index.d.ts.map +1 -1
- package/dist/voice-pipeline/index.js +2 -0
- package/dist/voice-pipeline/index.js.map +1 -1
- package/dist/voice-pipeline/types.d.ts +43 -43
- package/dist/voice-pipeline/types.d.ts.map +1 -1
- package/package.json +19 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file variateImage.ts
|
|
3
|
+
* Provider-agnostic image variation generation for the AgentOS high-level API.
|
|
4
|
+
*
|
|
5
|
+
* Creates visual variations of a source image — each variation maintains the
|
|
6
|
+
* general composition and subject matter but differs in details, style, or
|
|
7
|
+
* perspective.
|
|
8
|
+
*
|
|
9
|
+
* Provider support:
|
|
10
|
+
* - **OpenAI** — `POST /v1/images/variations` (dedicated endpoint).
|
|
11
|
+
* - **Stability AI** — Implemented via img2img with low strength (high similarity).
|
|
12
|
+
* - **Stable Diffusion Local** — Implemented via img2img with low `denoising_strength`.
|
|
13
|
+
* - **Replicate** — Model-specific (img2img with low strength).
|
|
14
|
+
*/
|
|
15
|
+
import { createImageProvider } from '../core/images/index.js';
|
|
16
|
+
import { ImageVariationNotSupportedError } from '../core/images/ImageOperationError.js';
|
|
17
|
+
import { imageToBuffer } from '../core/images/imageToBuffer.js';
|
|
18
|
+
import { resolveModelOption, resolveMediaProvider } from './model.js';
|
|
19
|
+
import { attachUsageAttributes, toTurnMetricUsage } from './observability.js';
|
|
20
|
+
import { recordAgentOSUsage } from './usageLedger.js';
|
|
21
|
+
import { recordAgentOSTurnMetrics, withAgentOSSpan } from '../core/observability/otel.js';
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Implementation
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
/**
|
|
26
|
+
* Generates visual variations of a source image using a provider-agnostic interface.
|
|
27
|
+
*
|
|
28
|
+
* Resolves credentials via `resolveMediaProvider()`, initialises the
|
|
29
|
+
* matching image provider, converts the input image to a `Buffer`, and
|
|
30
|
+
* dispatches to the provider's `variateImage` method.
|
|
31
|
+
*
|
|
32
|
+
* For providers without a native variation endpoint, the high-level API falls
|
|
33
|
+
* back to an img2img call with `strength = variance` to produce similar output.
|
|
34
|
+
*
|
|
35
|
+
* @param opts - Variation options including the source image and desired count.
|
|
36
|
+
* @returns A promise resolving to the variation result with image data.
|
|
37
|
+
*
|
|
38
|
+
* @throws {ImageVariationNotSupportedError} When the resolved provider does not
|
|
39
|
+
* implement image variations and has no img2img fallback.
|
|
40
|
+
* @throws {Error} When no provider can be determined or credentials are missing.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* const result = await variateImage({
|
|
45
|
+
* provider: 'openai',
|
|
46
|
+
* image: 'https://example.com/hero.png',
|
|
47
|
+
* n: 4,
|
|
48
|
+
* });
|
|
49
|
+
* result.images.forEach((img, i) => console.log(`Variation ${i}:`, img.url));
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export async function variateImage(opts) {
|
|
53
|
+
const startedAt = Date.now();
|
|
54
|
+
let metricStatus = 'ok';
|
|
55
|
+
let metricUsage;
|
|
56
|
+
let metricProviderId;
|
|
57
|
+
let metricModelId;
|
|
58
|
+
try {
|
|
59
|
+
return await withAgentOSSpan('agentos.api.variate_image', async (span) => {
|
|
60
|
+
const { providerId, modelId } = resolveModelOption(opts, 'image');
|
|
61
|
+
const resolved = resolveMediaProvider(providerId, modelId, {
|
|
62
|
+
apiKey: opts.apiKey,
|
|
63
|
+
baseUrl: opts.baseUrl,
|
|
64
|
+
});
|
|
65
|
+
metricProviderId = resolved.providerId;
|
|
66
|
+
metricModelId = resolved.modelId;
|
|
67
|
+
span?.setAttribute('llm.provider', resolved.providerId);
|
|
68
|
+
span?.setAttribute('llm.model', resolved.modelId);
|
|
69
|
+
span?.setAttribute('agentos.api.variance', opts.variance ?? 0.5);
|
|
70
|
+
const provider = createImageProvider(resolved.providerId);
|
|
71
|
+
await provider.initialize({
|
|
72
|
+
apiKey: resolved.apiKey,
|
|
73
|
+
baseURL: resolved.baseUrl,
|
|
74
|
+
defaultModelId: resolved.modelId,
|
|
75
|
+
});
|
|
76
|
+
const imageBuffer = await imageToBuffer(opts.image);
|
|
77
|
+
let result;
|
|
78
|
+
if (typeof provider.variateImage === 'function') {
|
|
79
|
+
// Native variation support (e.g. OpenAI /v1/images/variations).
|
|
80
|
+
result = await provider.variateImage({
|
|
81
|
+
modelId: resolved.modelId,
|
|
82
|
+
image: imageBuffer,
|
|
83
|
+
n: opts.n,
|
|
84
|
+
variance: opts.variance,
|
|
85
|
+
size: opts.size,
|
|
86
|
+
providerOptions: opts.providerOptions,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else if (typeof provider.editImage === 'function') {
|
|
90
|
+
// Fallback: use img2img with low strength to produce "variations".
|
|
91
|
+
// The variance parameter maps to edit strength — lower variance means
|
|
92
|
+
// the output stays closer to the original.
|
|
93
|
+
result = await provider.editImage({
|
|
94
|
+
modelId: resolved.modelId,
|
|
95
|
+
image: imageBuffer,
|
|
96
|
+
prompt: 'Create a variation of this image.',
|
|
97
|
+
mode: 'img2img',
|
|
98
|
+
strength: opts.variance ?? 0.5,
|
|
99
|
+
n: opts.n,
|
|
100
|
+
size: opts.size,
|
|
101
|
+
providerOptions: opts.providerOptions,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
throw new ImageVariationNotSupportedError(resolved.providerId);
|
|
106
|
+
}
|
|
107
|
+
metricUsage = result.usage;
|
|
108
|
+
span?.setAttribute('agentos.api.images_count', result.images.length);
|
|
109
|
+
attachUsageAttributes(span, {
|
|
110
|
+
totalCostUSD: result.usage?.totalCostUSD,
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
images: result.images,
|
|
114
|
+
provider: result.providerId,
|
|
115
|
+
model: result.modelId,
|
|
116
|
+
usage: { costUSD: result.usage?.totalCostUSD },
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
metricStatus = 'error';
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
try {
|
|
126
|
+
await recordAgentOSUsage({
|
|
127
|
+
providerId: metricProviderId,
|
|
128
|
+
modelId: metricModelId,
|
|
129
|
+
usage: metricUsage
|
|
130
|
+
? {
|
|
131
|
+
costUSD: metricUsage.totalCostUSD,
|
|
132
|
+
}
|
|
133
|
+
: undefined,
|
|
134
|
+
options: {
|
|
135
|
+
...opts.usageLedger,
|
|
136
|
+
source: opts.usageLedger?.source ?? 'variateImage',
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Best-effort — usage persistence must not break the variation operation.
|
|
142
|
+
}
|
|
143
|
+
recordAgentOSTurnMetrics({
|
|
144
|
+
durationMs: Date.now() - startedAt,
|
|
145
|
+
status: metricStatus,
|
|
146
|
+
usage: toTurnMetricUsage(metricUsage
|
|
147
|
+
? {
|
|
148
|
+
totalCostUSD: metricUsage.totalCostUSD,
|
|
149
|
+
}
|
|
150
|
+
: undefined),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=variateImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variateImage.js","sourceRoot":"","sources":["../../src/api/variateImage.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
* @see ../core/tools/IToolOrchestrator.ts for tool orchestration.
|
|
12
12
|
* @see ../core/ai_utilities/IUtilityAI.ts for utility functions.
|
|
13
13
|
*/
|
|
14
|
-
import { IGMI, GMIBaseConfig, GMITurnInput, GMIOutputChunk, GMIPrimeState, ReasoningTrace, GMIHealthReport, MemoryLifecycleEvent, LifecycleActionResponse, ToolResultPayload, GMIOutput } from './IGMI';
|
|
14
|
+
import { IGMI, GMIBaseConfig, GMITurnInput, GMIOutputChunk, GMIPrimeState, ReasoningTrace, GMIHealthReport, MemoryLifecycleEvent, LifecycleActionResponse, ToolCallResult, ToolResultPayload, GMIOutput } from './IGMI';
|
|
15
15
|
import { IPersonaDefinition } from './personas/IPersonaDefinition';
|
|
16
|
+
import { ConversationMessage } from '../core/conversation/ConversationMessage';
|
|
16
17
|
import type { ICognitiveMemoryManager } from '../memory/CognitiveMemoryManager.js';
|
|
17
18
|
/**
|
|
18
19
|
* @class GMI
|
|
@@ -92,6 +93,9 @@ export declare class GMI implements IGMI {
|
|
|
92
93
|
private assembleCognitiveMemoryContext;
|
|
93
94
|
private encodeCognitiveMemory;
|
|
94
95
|
private syncCognitiveMemoryForTurn;
|
|
96
|
+
private getConversationIdForTurn;
|
|
97
|
+
private getOrganizationIdForTurn;
|
|
98
|
+
private buildToolSessionData;
|
|
95
99
|
/**
|
|
96
100
|
* Ensures the GMI is initialized and in a READY state.
|
|
97
101
|
* @private
|
|
@@ -119,6 +123,14 @@ export declare class GMI implements IGMI {
|
|
|
119
123
|
*/
|
|
120
124
|
private buildConversationHistoryForPrompt;
|
|
121
125
|
private convertChatMessageToConversationMessage;
|
|
126
|
+
private convertConversationMessageToChatMessage;
|
|
127
|
+
private normalizeConversationMessageContent;
|
|
128
|
+
hydrateConversationHistory(conversationHistory: ConversationMessage[]): void;
|
|
129
|
+
hydrateTurnContext(context: {
|
|
130
|
+
sessionId?: string;
|
|
131
|
+
conversationId?: string;
|
|
132
|
+
organizationId?: string;
|
|
133
|
+
}): void;
|
|
122
134
|
private mapChatRoleToMessageRole;
|
|
123
135
|
private normalizeChatMessageContent;
|
|
124
136
|
private parseToolCallArguments;
|
|
@@ -138,7 +150,9 @@ export declare class GMI implements IGMI {
|
|
|
138
150
|
/** @inheritdoc */
|
|
139
151
|
processTurnStream(turnInput: GMITurnInput): AsyncGenerator<GMIOutputChunk, GMIOutput, undefined>;
|
|
140
152
|
/** @inheritdoc */
|
|
141
|
-
handleToolResult(toolCallId: string, toolName: string, resultPayload: ToolResultPayload,
|
|
153
|
+
handleToolResult(toolCallId: string, toolName: string, resultPayload: ToolResultPayload, userId: string): Promise<GMIOutput>;
|
|
154
|
+
/** @inheritdoc */
|
|
155
|
+
handleToolResults(toolResults: ToolCallResult[], _userId: string): Promise<GMIOutput>;
|
|
142
156
|
/**
|
|
143
157
|
* Performs post-turn RAG ingestion if configured.
|
|
144
158
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../src/cognitive_substrate/GMI.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,aAAa,EAIb,cAAc,EAGd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../src/cognitive_substrate/GMI.ts"],"names":[],"mappings":"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"}
|
|
@@ -308,15 +308,48 @@ export class GMI {
|
|
|
308
308
|
});
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
|
+
getConversationIdForTurn(turnInput) {
|
|
312
|
+
const metadataConversationId = typeof turnInput.metadata?.conversationId === 'string'
|
|
313
|
+
? turnInput.metadata.conversationId.trim()
|
|
314
|
+
: '';
|
|
315
|
+
if (metadataConversationId) {
|
|
316
|
+
return metadataConversationId;
|
|
317
|
+
}
|
|
318
|
+
const sessionId = typeof turnInput.sessionId === 'string' ? turnInput.sessionId.trim() : '';
|
|
319
|
+
return sessionId || undefined;
|
|
320
|
+
}
|
|
321
|
+
getOrganizationIdForTurn(turnInput) {
|
|
322
|
+
const organizationId = typeof turnInput.metadata?.organizationId === 'string'
|
|
323
|
+
? turnInput.metadata.organizationId.trim()
|
|
324
|
+
: '';
|
|
325
|
+
return organizationId || undefined;
|
|
326
|
+
}
|
|
327
|
+
buildToolSessionData(turnInput) {
|
|
328
|
+
const sessionId = typeof turnInput.sessionId === 'string' ? turnInput.sessionId.trim() : '';
|
|
329
|
+
const conversationId = this.getConversationIdForTurn(turnInput);
|
|
330
|
+
const organizationId = this.getOrganizationIdForTurn(turnInput);
|
|
331
|
+
const sessionData = {};
|
|
332
|
+
if (sessionId) {
|
|
333
|
+
sessionData.sessionId = sessionId;
|
|
334
|
+
}
|
|
335
|
+
if (conversationId) {
|
|
336
|
+
sessionData.conversationId = conversationId;
|
|
337
|
+
}
|
|
338
|
+
if (organizationId) {
|
|
339
|
+
sessionData.organizationId = organizationId;
|
|
340
|
+
}
|
|
341
|
+
return Object.keys(sessionData).length > 0 ? sessionData : undefined;
|
|
342
|
+
}
|
|
311
343
|
/**
|
|
312
344
|
* Ensures the GMI is initialized and in a READY state.
|
|
313
345
|
* @private
|
|
314
346
|
*/
|
|
315
|
-
ensureReady() {
|
|
347
|
+
ensureReady(additionallyAllowedStates = []) {
|
|
316
348
|
if (!this.isInitialized) {
|
|
317
349
|
throw new GMIError(`GMI (ID: ${this.gmiId}) is not initialized.`, GMIErrorCode.NOT_INITIALIZED);
|
|
318
350
|
}
|
|
319
|
-
if (this.state !== GMIPrimeState.READY
|
|
351
|
+
if (this.state !== GMIPrimeState.READY &&
|
|
352
|
+
!additionallyAllowedStates.includes(this.state)) {
|
|
320
353
|
throw new GMIError(`GMI (ID: ${this.gmiId}) is not in READY state. Current state: ${this.state}.`, GMIErrorCode.INVALID_STATE, { currentGMIState: this.state });
|
|
321
354
|
}
|
|
322
355
|
}
|
|
@@ -410,6 +443,62 @@ export class GMI {
|
|
|
410
443
|
}
|
|
411
444
|
return conversationMessage;
|
|
412
445
|
}
|
|
446
|
+
convertConversationMessageToChatMessage(message) {
|
|
447
|
+
if (message.role === MessageRole.ERROR || message.role === MessageRole.THOUGHT) {
|
|
448
|
+
return null;
|
|
449
|
+
}
|
|
450
|
+
const role = message.role === MessageRole.SYSTEM || message.role === MessageRole.SUMMARY
|
|
451
|
+
? 'system'
|
|
452
|
+
: message.role === MessageRole.ASSISTANT
|
|
453
|
+
? 'assistant'
|
|
454
|
+
: message.role === MessageRole.TOOL
|
|
455
|
+
? 'tool'
|
|
456
|
+
: 'user';
|
|
457
|
+
const content = message.role === MessageRole.SUMMARY && typeof message.content === 'string'
|
|
458
|
+
? `[Conversation Summary]\n${message.content}`
|
|
459
|
+
: this.normalizeConversationMessageContent(message.content);
|
|
460
|
+
return {
|
|
461
|
+
role,
|
|
462
|
+
content,
|
|
463
|
+
name: message.name,
|
|
464
|
+
tool_call_id: message.tool_call_id,
|
|
465
|
+
tool_calls: Array.isArray(message.tool_calls)
|
|
466
|
+
? message.tool_calls.map((toolCall) => ({
|
|
467
|
+
id: toolCall.id,
|
|
468
|
+
type: 'function',
|
|
469
|
+
function: {
|
|
470
|
+
name: toolCall.name,
|
|
471
|
+
arguments: JSON.stringify(toolCall.arguments ?? {}),
|
|
472
|
+
},
|
|
473
|
+
}))
|
|
474
|
+
: undefined,
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
normalizeConversationMessageContent(content) {
|
|
478
|
+
if (content === null || typeof content === 'string') {
|
|
479
|
+
return content;
|
|
480
|
+
}
|
|
481
|
+
if (Array.isArray(content)) {
|
|
482
|
+
return content.map((part) => ({ ...part }));
|
|
483
|
+
}
|
|
484
|
+
return JSON.stringify(content);
|
|
485
|
+
}
|
|
486
|
+
hydrateConversationHistory(conversationHistory) {
|
|
487
|
+
this.conversationHistory = conversationHistory
|
|
488
|
+
.map((message) => this.convertConversationMessageToChatMessage(message))
|
|
489
|
+
.filter((message) => message !== null);
|
|
490
|
+
}
|
|
491
|
+
hydrateTurnContext(context) {
|
|
492
|
+
if (typeof context.sessionId === 'string' && context.sessionId.trim()) {
|
|
493
|
+
this.reasoningTrace.sessionId = context.sessionId.trim();
|
|
494
|
+
}
|
|
495
|
+
if (typeof context.conversationId === 'string' && context.conversationId.trim()) {
|
|
496
|
+
this.reasoningTrace.conversationId = context.conversationId.trim();
|
|
497
|
+
}
|
|
498
|
+
if (typeof context.organizationId === 'string' && context.organizationId.trim()) {
|
|
499
|
+
this.reasoningTrace.organizationId = context.organizationId.trim();
|
|
500
|
+
}
|
|
501
|
+
}
|
|
413
502
|
mapChatRoleToMessageRole(role) {
|
|
414
503
|
switch (role) {
|
|
415
504
|
case 'system':
|
|
@@ -493,12 +582,19 @@ export class GMI {
|
|
|
493
582
|
}
|
|
494
583
|
/** @inheritdoc */
|
|
495
584
|
async *processTurnStream(turnInput) {
|
|
496
|
-
|
|
585
|
+
const continuationAllowedStates = turnInput.metadata?.isToolContinuation === true
|
|
586
|
+
? [GMIPrimeState.PROCESSING, GMIPrimeState.AWAITING_TOOL_RESULT]
|
|
587
|
+
: [];
|
|
588
|
+
this.ensureReady(continuationAllowedStates);
|
|
497
589
|
this.state = GMIPrimeState.PROCESSING;
|
|
498
590
|
const turnId = turnInput.interactionId || `turn-${uuidv4()}`;
|
|
499
591
|
// Store turnId on reasoningTrace for current turn
|
|
500
|
-
if (this.reasoningTrace)
|
|
592
|
+
if (this.reasoningTrace) {
|
|
501
593
|
this.reasoningTrace.turnId = turnId;
|
|
594
|
+
this.reasoningTrace.sessionId = turnInput.sessionId;
|
|
595
|
+
this.reasoningTrace.conversationId = this.getConversationIdForTurn(turnInput);
|
|
596
|
+
this.reasoningTrace.organizationId = this.getOrganizationIdForTurn(turnInput);
|
|
597
|
+
}
|
|
502
598
|
this.addTraceEntry(ReasoningEntryType.INTERACTION_START, `Processing turn '${turnId}' for user '${turnInput.userId}'`, { inputType: turnInput.type, inputPreview: String(turnInput.content).substring(0, 100) });
|
|
503
599
|
// Initialize aggregates for the final GMIOutput
|
|
504
600
|
let aggregatedResponseText = "";
|
|
@@ -695,7 +791,12 @@ export class GMI {
|
|
|
695
791
|
: tc.function.arguments,
|
|
696
792
|
}));
|
|
697
793
|
aggregatedToolCalls.push(...currentIterationToolCallRequests); // Aggregate for final output
|
|
698
|
-
yield this.createOutputChunk(turnInput.interactionId, GMIOutputChunkType.TOOL_CALL_REQUEST, [...currentIterationToolCallRequests]
|
|
794
|
+
yield this.createOutputChunk(turnInput.interactionId, GMIOutputChunkType.TOOL_CALL_REQUEST, [...currentIterationToolCallRequests], {
|
|
795
|
+
metadata: {
|
|
796
|
+
executionMode: 'internal',
|
|
797
|
+
requiresExternalToolResult: false,
|
|
798
|
+
},
|
|
799
|
+
});
|
|
699
800
|
this.addTraceEntry(ReasoningEntryType.TOOL_CALL_REQUESTED, `LLM requested tool(s).`, { requests: currentIterationToolCallRequests });
|
|
700
801
|
}
|
|
701
802
|
if (chunk.isFinal && choice?.finishReason) {
|
|
@@ -735,6 +836,7 @@ export class GMI {
|
|
|
735
836
|
gmiId: this.gmiId, personaId: this.activePersona.id,
|
|
736
837
|
personaCapabilities: this.activePersona.allowedCapabilities || [],
|
|
737
838
|
userContext: this.currentUserContext, correlationId: turnId,
|
|
839
|
+
sessionData: this.buildToolSessionData(turnInput),
|
|
738
840
|
};
|
|
739
841
|
this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_START, `Orchestrating tool: ${toolCallReq.name}`, { reqId: toolCallReq.id });
|
|
740
842
|
const result = await this.toolOrchestrator.processToolCall(requestDetails);
|
|
@@ -798,37 +900,68 @@ export class GMI {
|
|
|
798
900
|
}
|
|
799
901
|
}
|
|
800
902
|
/** @inheritdoc */
|
|
801
|
-
async handleToolResult(toolCallId, toolName, resultPayload,
|
|
903
|
+
async handleToolResult(toolCallId, toolName, resultPayload, userId) {
|
|
904
|
+
return this.handleToolResults([
|
|
905
|
+
{
|
|
906
|
+
toolCallId,
|
|
907
|
+
toolName,
|
|
908
|
+
output: resultPayload.type === 'success' ? resultPayload.result : resultPayload.error,
|
|
909
|
+
isError: resultPayload.type === 'error',
|
|
910
|
+
errorDetails: resultPayload.type === 'error' ? resultPayload.error : undefined,
|
|
911
|
+
},
|
|
912
|
+
], userId);
|
|
913
|
+
}
|
|
914
|
+
/** @inheritdoc */
|
|
915
|
+
async handleToolResults(toolResults, _userId) {
|
|
802
916
|
if (!this.isInitialized) {
|
|
803
917
|
throw new GMIError("GMI is not initialized. Cannot handle tool result.", GMIErrorCode.NOT_INITIALIZED);
|
|
804
918
|
}
|
|
919
|
+
if (!Array.isArray(toolResults) || toolResults.length === 0) {
|
|
920
|
+
throw new GMIError('At least one tool result is required to continue the turn.', GMIErrorCode.VALIDATION_ERROR);
|
|
921
|
+
}
|
|
805
922
|
// Allow handling tool results if processing or specifically awaiting
|
|
806
|
-
if (this.state !== GMIPrimeState.AWAITING_TOOL_RESULT &&
|
|
807
|
-
this.
|
|
923
|
+
if (this.state !== GMIPrimeState.AWAITING_TOOL_RESULT &&
|
|
924
|
+
this.state !== GMIPrimeState.PROCESSING &&
|
|
925
|
+
this.state !== GMIPrimeState.READY) {
|
|
926
|
+
this.addTraceEntry(ReasoningEntryType.WARNING, `handleToolResults called when GMI state is ${this.state}. Expected READY, AWAITING_TOOL_RESULT, or PROCESSING.`, {
|
|
927
|
+
toolCallIds: toolResults.map((toolResult) => toolResult.toolCallId),
|
|
928
|
+
toolNames: toolResults.map((toolResult) => toolResult.toolName),
|
|
929
|
+
});
|
|
808
930
|
// Depending on desired robustness, could throw an error or try to proceed.
|
|
809
931
|
}
|
|
810
932
|
this.state = GMIPrimeState.PROCESSING; // Set state to processing
|
|
811
933
|
// Use current turnId if available, or generate a new interactionId for this specific handling
|
|
812
934
|
const interactionId = this.reasoningTrace?.turnId || `tool_handler_turn_${uuidv4()}`;
|
|
813
|
-
this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_RESULT,
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
935
|
+
this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_RESULT, toolResults.length === 1
|
|
936
|
+
? `Received external tool result for '${toolResults[0].toolName}' (ID: ${toolResults[0].toolCallId}) to be processed.`
|
|
937
|
+
: `Received ${toolResults.length} external tool results to be processed together.`, {
|
|
938
|
+
interactionId,
|
|
939
|
+
toolResults: toolResults.map((toolResult) => ({
|
|
940
|
+
toolCallId: toolResult.toolCallId,
|
|
941
|
+
toolName: toolResult.toolName,
|
|
942
|
+
success: !toolResult.isError,
|
|
943
|
+
})),
|
|
944
|
+
});
|
|
945
|
+
toolResults.forEach((toolResult) => this.updateConversationHistoryWithToolResult(toolResult));
|
|
822
946
|
// Construct a system turn input to represent the continuation after tool result
|
|
823
947
|
const systemTurnInput = {
|
|
824
948
|
interactionId,
|
|
825
949
|
userId: this.currentUserContext.userId, // Use the GMI's current user context
|
|
826
950
|
sessionId: this.reasoningTrace?.sessionId,
|
|
827
951
|
type: GMIInteractionType.SYSTEM_MESSAGE, // Or a specific type for internal continuation
|
|
828
|
-
content:
|
|
952
|
+
content: toolResults.length === 1
|
|
953
|
+
? `Internally processing result for tool '${toolResults[0].toolName}'.`
|
|
954
|
+
: `Internally processing ${toolResults.length} external tool results.`,
|
|
829
955
|
metadata: {
|
|
830
956
|
isToolContinuation: true,
|
|
831
|
-
originalToolCallId: toolCallId,
|
|
957
|
+
originalToolCallId: toolResults.length === 1 ? toolResults[0].toolCallId : undefined,
|
|
958
|
+
originalToolCallIds: toolResults.map((toolResult) => toolResult.toolCallId),
|
|
959
|
+
...(this.reasoningTrace?.conversationId
|
|
960
|
+
? { conversationId: this.reasoningTrace.conversationId }
|
|
961
|
+
: {}),
|
|
962
|
+
...(this.reasoningTrace?.organizationId
|
|
963
|
+
? { organizationId: this.reasoningTrace.organizationId }
|
|
964
|
+
: {}),
|
|
832
965
|
}
|
|
833
966
|
};
|
|
834
967
|
// Collect all chunks from processTurnStream to form a single GMIOutput
|
|
@@ -837,45 +970,44 @@ export class GMI {
|
|
|
837
970
|
const aggregatedUsage = { totalTokens: 0, promptTokens: 0, completionTokens: 0, breakdown: [] };
|
|
838
971
|
let _lastErrorForOutput = undefined;
|
|
839
972
|
const stream = this.processTurnStream(systemTurnInput); // This now returns GMIOutput
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
_lastErrorForOutput = chunk.errorDetails || { code: GMIErrorCode.GMI_PROCESSING_ERROR, message: String(chunk.content) };
|
|
861
|
-
}
|
|
973
|
+
let finalGmiOutputFromStream;
|
|
974
|
+
while (true) {
|
|
975
|
+
const { value, done } = await stream.next();
|
|
976
|
+
if (done) {
|
|
977
|
+
finalGmiOutputFromStream = value;
|
|
978
|
+
break;
|
|
979
|
+
}
|
|
980
|
+
const chunk = value;
|
|
981
|
+
if (chunk.type === GMIOutputChunkType.TEXT_DELTA && typeof chunk.content === 'string') {
|
|
982
|
+
_aggregatedResponseText += chunk.content;
|
|
983
|
+
}
|
|
984
|
+
if (chunk.type === GMIOutputChunkType.TOOL_CALL_REQUEST && Array.isArray(chunk.content)) {
|
|
985
|
+
aggregatedToolCalls.push(...chunk.content);
|
|
986
|
+
}
|
|
987
|
+
if (chunk.usage) {
|
|
988
|
+
aggregatedUsage.promptTokens += chunk.usage.promptTokens || 0;
|
|
989
|
+
aggregatedUsage.completionTokens += chunk.usage.completionTokens || 0;
|
|
990
|
+
aggregatedUsage.totalTokens = aggregatedUsage.promptTokens + aggregatedUsage.completionTokens;
|
|
991
|
+
if (chunk.usage.costUSD)
|
|
992
|
+
aggregatedUsage.totalCostUSD = (aggregatedUsage.totalCostUSD || 0) + chunk.usage.costUSD;
|
|
862
993
|
}
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
// The loop above will collect intermediate chunks, and the 'return' from the generator is the key.
|
|
867
|
-
// This structure is a bit complex with nested generators. Let's assume processTurnStream does return a GMIOutput.
|
|
868
|
-
// The way AsyncGenerator TReturn works, the last value is 'done: true, value: TReturn'.
|
|
869
|
-
// My processTurnStream is modified to return GMIOutput.
|
|
870
|
-
let result = await stream.next();
|
|
871
|
-
while (!result.done) {
|
|
872
|
-
// This loop is mainly to exhaust the stream if previous loop didn't fully.
|
|
873
|
-
// The crucial part is what processTurnStream *returns*.
|
|
874
|
-
result = await stream.next();
|
|
994
|
+
if (chunk.type === GMIOutputChunkType.ERROR) {
|
|
995
|
+
_lastErrorForOutput =
|
|
996
|
+
chunk.errorDetails || { code: GMIErrorCode.GMI_PROCESSING_ERROR, message: String(chunk.content) };
|
|
875
997
|
}
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
998
|
+
}
|
|
999
|
+
if (!finalGmiOutputFromStream) {
|
|
1000
|
+
finalGmiOutputFromStream = {
|
|
1001
|
+
isFinal: _lastErrorForOutput ? true : false,
|
|
1002
|
+
responseText: _aggregatedResponseText || null,
|
|
1003
|
+
toolCalls: aggregatedToolCalls.length > 0 ? aggregatedToolCalls : undefined,
|
|
1004
|
+
usage: aggregatedUsage,
|
|
1005
|
+
error: _lastErrorForOutput,
|
|
1006
|
+
};
|
|
1007
|
+
}
|
|
1008
|
+
this.addTraceEntry(ReasoningEntryType.INTERACTION_END, toolResults.length === 1
|
|
1009
|
+
? `Continuation after tool '${toolResults[0].toolName}' (ID: ${toolResults[0].toolCallId}) processed.`
|
|
1010
|
+
: `Continuation after ${toolResults.length} external tool results processed.`);
|
|
879
1011
|
return finalGmiOutputFromStream;
|
|
880
1012
|
}
|
|
881
1013
|
/**
|