@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
package/dist/api/AgentOS.js
CHANGED
|
@@ -32,37 +32,40 @@
|
|
|
32
32
|
* - Ensuring adherence to TypeScript best practices, including strict type safety,
|
|
33
33
|
* comprehensive JSDoc documentation, and robust error management.
|
|
34
34
|
*
|
|
35
|
-
* @see {@link
|
|
36
|
-
* @see {@link
|
|
37
|
-
* @see {@link
|
|
38
|
-
*
|
|
39
|
-
*
|
|
35
|
+
* @see {@link IAgentOS} for the public interface contract.
|
|
36
|
+
* @see {@link AgentOSOrchestrator} for the orchestration logic.
|
|
37
|
+
* @see {@link GMIManager} for GMI lifecycle management.
|
|
38
|
+
* See `StreamingManager` for real-time data streaming internals.
|
|
39
|
+
* See `@framers/agentos/utils/errors` for shared error definitions.
|
|
40
40
|
*/
|
|
41
|
-
import {
|
|
41
|
+
import { AGENTOS_PENDING_EXTERNAL_TOOL_REQUEST_METADATA_KEY } from './types/AgentOSExternalToolRequest.js';
|
|
42
|
+
import { AgentOSResponseChunkType, isActionableToolCallRequestChunk, } from './types/AgentOSResponse.js';
|
|
42
43
|
import { AgentOSOrchestrator, } from './AgentOSOrchestrator.js';
|
|
43
44
|
import { GMIManager } from '../cognitive_substrate/GMIManager.js';
|
|
44
|
-
import { AIModelProviderManager } from '../core/llm/providers/AIModelProviderManager.js';
|
|
45
|
+
import { AIModelProviderManager, } from '../core/llm/providers/AIModelProviderManager.js';
|
|
45
46
|
import { PromptEngine } from '../core/llm/PromptEngine.js';
|
|
46
47
|
import { ToolOrchestrator } from '../core/tools/ToolOrchestrator.js';
|
|
47
48
|
import { ToolExecutor } from '../core/tools/ToolExecutor.js';
|
|
48
49
|
import { ToolPermissionManager } from '../core/tools/permissions/ToolPermissionManager.js';
|
|
49
50
|
import { LLMUtilityAI } from '../core/ai_utilities/LLMUtilityAI.js';
|
|
50
|
-
import { ConversationManager } from '../core/conversation/ConversationManager.js';
|
|
51
|
-
import { StreamingManager } from '../core/streaming/StreamingManager.js';
|
|
51
|
+
import { ConversationManager, } from '../core/conversation/ConversationManager.js';
|
|
52
|
+
import { StreamingManager, } from '../core/streaming/StreamingManager.js';
|
|
52
53
|
import { GMIError, GMIErrorCode } from '../utils/errors.js';
|
|
53
54
|
import { uuidv4 } from '../utils/uuid.js';
|
|
54
55
|
import { createLogger } from '../logging/loggerFactory.js';
|
|
55
|
-
import { configureAgentOSObservability } from '../core/observability/otel.js';
|
|
56
|
+
import { configureAgentOSObservability, } from '../core/observability/otel.js';
|
|
56
57
|
import { GuardrailAction } from '../core/guardrails/IGuardrailService.js';
|
|
57
58
|
import { evaluateInputGuardrails, createGuardrailBlockedStream, wrapOutputGuardrails, } from '../core/guardrails/guardrailDispatcher.js';
|
|
58
59
|
import { ExtensionManager, EXTENSION_KIND_GUARDRAIL, EXTENSION_KIND_MESSAGING_CHANNEL, EXTENSION_KIND_PROVENANCE, EXTENSION_KIND_TOOL, EXTENSION_KIND_WORKFLOW, } from '../extensions/index.js';
|
|
59
60
|
import { createMemoryToolsPack } from '../memory/extension/MemoryToolsExtension.js';
|
|
60
61
|
import { createStandaloneMemoryLongTermRetriever, createStandaloneMemoryRollingSummarySink, } from '../memory/integration/StandaloneMemoryBridge.js';
|
|
62
|
+
import { listExternalToolDefinitionsForLLM, normalizeExternalToolRegistry, } from './externalToolRegistry.js';
|
|
63
|
+
import { adaptTools, adaptToolsToMap } from './toolAdapter.js';
|
|
61
64
|
import { createSchemaOnDemandPack } from '../extensions/packs/schema-on-demand-pack.js';
|
|
62
65
|
import { WorkflowRuntime } from '../core/workflows/runtime/WorkflowRuntime.js';
|
|
63
66
|
import { AgencyRegistry } from '../core/agency/AgencyRegistry.js';
|
|
64
67
|
import { AgentOSTurnPlanner, } from '../core/orchestration/TurnPlanner.js';
|
|
65
|
-
import { CapabilityDiscoveryEngine, createDiscoverCapabilitiesTool
|
|
68
|
+
import { CapabilityDiscoveryEngine, createDiscoverCapabilitiesTool } from '../discovery/index.js';
|
|
66
69
|
import { EmbeddingManager } from '../rag/EmbeddingManager.js';
|
|
67
70
|
import { InMemoryVectorStore } from '../rag/implementations/vector_stores/InMemoryVectorStore.js';
|
|
68
71
|
import { WorkflowEngine } from '../core/workflows/WorkflowEngine.js';
|
|
@@ -93,7 +96,9 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
|
|
|
93
96
|
await hooks.onAfterWrite?.(context, result);
|
|
94
97
|
}
|
|
95
98
|
catch (error) {
|
|
96
|
-
options?.logger?.error?.('[AgentOS][StorageHooks] onAfterWrite failed', {
|
|
99
|
+
options?.logger?.error?.('[AgentOS][StorageHooks] onAfterWrite failed', {
|
|
100
|
+
error: error?.message ?? error,
|
|
101
|
+
});
|
|
97
102
|
}
|
|
98
103
|
return result;
|
|
99
104
|
};
|
|
@@ -108,7 +113,10 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
|
|
|
108
113
|
run: runWithHooks,
|
|
109
114
|
transaction: async (fn) => {
|
|
110
115
|
return adapter.transaction(async (trx) => {
|
|
111
|
-
const wrappedTrx = wrapStorageAdapterWithWriteHooks(trx, hooks, {
|
|
116
|
+
const wrappedTrx = wrapStorageAdapterWithWriteHooks(trx, hooks, {
|
|
117
|
+
inTransaction: true,
|
|
118
|
+
logger: options?.logger,
|
|
119
|
+
});
|
|
112
120
|
return fn(wrappedTrx);
|
|
113
121
|
});
|
|
114
122
|
},
|
|
@@ -128,7 +136,10 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
|
|
|
128
136
|
catch (error) {
|
|
129
137
|
results.push({ changes: 0, lastInsertRowid: null });
|
|
130
138
|
failed += 1;
|
|
131
|
-
errors.push({
|
|
139
|
+
errors.push({
|
|
140
|
+
index: i,
|
|
141
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
142
|
+
});
|
|
132
143
|
}
|
|
133
144
|
}
|
|
134
145
|
return {
|
|
@@ -139,7 +150,7 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
|
|
|
139
150
|
};
|
|
140
151
|
}
|
|
141
152
|
: undefined,
|
|
142
|
-
prepare: adapter.prepare ? (
|
|
153
|
+
prepare: adapter.prepare ? (statement) => adapter.prepare(statement) : undefined,
|
|
143
154
|
};
|
|
144
155
|
}
|
|
145
156
|
// Re-export from extracted module
|
|
@@ -191,8 +202,15 @@ export class AgentOS {
|
|
|
191
202
|
}
|
|
192
203
|
this.validateConfiguration(config);
|
|
193
204
|
const resolvedConfig = this.resolveStandaloneMemoryConfig(config);
|
|
205
|
+
const normalizedConfigTools = adaptToolsToMap(resolvedConfig.tools);
|
|
206
|
+
const normalizedExternalTools = normalizeExternalToolRegistry(resolvedConfig.externalTools);
|
|
207
|
+
const { externalTools: _externalTools, tools: _tools, ...resolvedConfigWithoutNormalizedTools } = resolvedConfig;
|
|
194
208
|
// Make the configuration immutable after validation to prevent runtime changes.
|
|
195
|
-
this.config = Object.freeze({
|
|
209
|
+
this.config = Object.freeze({
|
|
210
|
+
...resolvedConfigWithoutNormalizedTools,
|
|
211
|
+
...(Object.keys(normalizedConfigTools).length > 0 ? { tools: normalizedConfigTools } : {}),
|
|
212
|
+
...(normalizedExternalTools ? { externalTools: normalizedExternalTools } : {}),
|
|
213
|
+
});
|
|
196
214
|
this.configureManagedStandaloneMemory();
|
|
197
215
|
// Observability is opt-in (config + env). Safe no-op if OTEL is not installed by host.
|
|
198
216
|
configureAgentOSObservability(this.config.observability);
|
|
@@ -251,12 +269,16 @@ export class AgentOS {
|
|
|
251
269
|
.getActive('provenance-system');
|
|
252
270
|
const provenanceHooks = provenanceDescriptor?.payload?.result?.hooks;
|
|
253
271
|
if (provenanceHooks) {
|
|
254
|
-
storageAdapter = wrapStorageAdapterWithWriteHooks(storageAdapter, provenanceHooks, {
|
|
272
|
+
storageAdapter = wrapStorageAdapterWithWriteHooks(storageAdapter, provenanceHooks, {
|
|
273
|
+
logger: this.logger,
|
|
274
|
+
});
|
|
255
275
|
this.logger.info('[AgentOS][Provenance] Storage write hooks enabled');
|
|
256
276
|
}
|
|
257
277
|
}
|
|
258
278
|
catch (error) {
|
|
259
|
-
this.logger.warn?.('[AgentOS][Provenance] Failed to apply storage write hooks', {
|
|
279
|
+
this.logger.warn?.('[AgentOS][Provenance] Failed to apply storage write hooks', {
|
|
280
|
+
error: error?.message ?? error,
|
|
281
|
+
});
|
|
260
282
|
}
|
|
261
283
|
}
|
|
262
284
|
try {
|
|
@@ -297,9 +319,7 @@ export class AgentOS {
|
|
|
297
319
|
}
|
|
298
320
|
const response = await provider.generateCompletion(model, [{ role: 'user', content: prompt }], {});
|
|
299
321
|
const firstContent = response.choices?.[0]?.message?.content ?? '';
|
|
300
|
-
return typeof firstContent === 'string'
|
|
301
|
-
? firstContent
|
|
302
|
-
: JSON.stringify(firstContent);
|
|
322
|
+
return typeof firstContent === 'string' ? firstContent : JSON.stringify(firstContent);
|
|
303
323
|
},
|
|
304
324
|
storageAdapter: storageAdapter
|
|
305
325
|
? {
|
|
@@ -311,8 +331,15 @@ export class AgentOS {
|
|
|
311
331
|
: undefined,
|
|
312
332
|
}
|
|
313
333
|
: undefined;
|
|
314
|
-
|
|
334
|
+
const initialConfigTools = adaptTools(this.config.tools);
|
|
335
|
+
await this.toolOrchestrator.initialize(this.config.toolOrchestratorConfig, this.toolPermissionManager, this.toolExecutor, initialConfigTools, this.config.hitlManager, emergentOptions);
|
|
315
336
|
console.log('AgentOS: ToolOrchestrator initialized.');
|
|
337
|
+
if (initialConfigTools.length > 0) {
|
|
338
|
+
this.logger.info('[AgentOS] Config tools registered', {
|
|
339
|
+
toolCount: initialConfigTools.length,
|
|
340
|
+
toolNames: initialConfigTools.map((tool) => tool.name),
|
|
341
|
+
});
|
|
342
|
+
}
|
|
316
343
|
await this.initializeTurnPlanner();
|
|
317
344
|
if (this.capabilityDiscoveryEngine && this.toolOrchestrator.setEmergentDiscoveryIndexer) {
|
|
318
345
|
this.toolOrchestrator.setEmergentDiscoveryIndexer(async (tools) => {
|
|
@@ -356,9 +383,13 @@ export class AgentOS {
|
|
|
356
383
|
}
|
|
357
384
|
catch (error) {
|
|
358
385
|
this.logger.error('AgentOS initialization failed', { error });
|
|
359
|
-
const err = error instanceof GMIError
|
|
360
|
-
|
|
361
|
-
|
|
386
|
+
const err = error instanceof GMIError
|
|
387
|
+
? error
|
|
388
|
+
: new GMIError(error instanceof Error
|
|
389
|
+
? error.message
|
|
390
|
+
: 'Unknown error during AgentOS initialization', GMIErrorCode.GMI_INITIALIZATION_ERROR, // Corrected error code
|
|
391
|
+
error // details
|
|
392
|
+
);
|
|
362
393
|
console.error('AgentOS: Critical failure during core component initialization:', err.toJSON());
|
|
363
394
|
throw AgentOSServiceError.wrap(err, err.code, 'AgentOS initialization failed', 'AgentOS.initialize');
|
|
364
395
|
}
|
|
@@ -384,9 +415,15 @@ export class AgentOS {
|
|
|
384
415
|
else {
|
|
385
416
|
// Check for each required sub-configuration
|
|
386
417
|
const requiredConfigs = [
|
|
387
|
-
'gmiManagerConfig',
|
|
388
|
-
'
|
|
389
|
-
'
|
|
418
|
+
'gmiManagerConfig',
|
|
419
|
+
'orchestratorConfig',
|
|
420
|
+
'promptEngineConfig',
|
|
421
|
+
'toolOrchestratorConfig',
|
|
422
|
+
'toolPermissionManagerConfig',
|
|
423
|
+
'conversationManagerConfig',
|
|
424
|
+
'streamingManagerConfig',
|
|
425
|
+
'modelProviderManagerConfig',
|
|
426
|
+
'defaultPersonaId',
|
|
390
427
|
];
|
|
391
428
|
for (const key of requiredConfigs) {
|
|
392
429
|
if (!config[key]) {
|
|
@@ -436,7 +473,9 @@ export class AgentOS {
|
|
|
436
473
|
if (missingParams.length > 0) {
|
|
437
474
|
const message = `AgentOS Configuration Error: Missing essential parameters: ${missingParams.join(', ')}.`;
|
|
438
475
|
console.error(message);
|
|
439
|
-
throw new AgentOSServiceError(message, GMIErrorCode.CONFIGURATION_ERROR, {
|
|
476
|
+
throw new AgentOSServiceError(message, GMIErrorCode.CONFIGURATION_ERROR, {
|
|
477
|
+
missingParameters: missingParams,
|
|
478
|
+
});
|
|
440
479
|
}
|
|
441
480
|
}
|
|
442
481
|
async registerConfigGuardrailService(context) {
|
|
@@ -466,14 +505,10 @@ export class AgentOS {
|
|
|
466
505
|
};
|
|
467
506
|
}
|
|
468
507
|
if (!resolved.longTermMemoryRetriever && standalone.longTermRetriever) {
|
|
469
|
-
resolved.longTermMemoryRetriever = createStandaloneMemoryLongTermRetriever(memory, standalone.longTermRetriever === true
|
|
470
|
-
? undefined
|
|
471
|
-
: standalone.longTermRetriever);
|
|
508
|
+
resolved.longTermMemoryRetriever = createStandaloneMemoryLongTermRetriever(memory, standalone.longTermRetriever === true ? undefined : standalone.longTermRetriever);
|
|
472
509
|
}
|
|
473
510
|
if (!resolved.rollingSummaryMemorySink && standalone.rollingSummarySink) {
|
|
474
|
-
resolved.rollingSummaryMemorySink = createStandaloneMemoryRollingSummarySink(memory, standalone.rollingSummarySink === true
|
|
475
|
-
? undefined
|
|
476
|
-
: standalone.rollingSummarySink);
|
|
511
|
+
resolved.rollingSummaryMemorySink = createStandaloneMemoryRollingSummarySink(memory, standalone.rollingSummarySink === true ? undefined : standalone.rollingSummarySink);
|
|
477
512
|
}
|
|
478
513
|
return resolved;
|
|
479
514
|
}
|
|
@@ -536,7 +571,8 @@ export class AgentOS {
|
|
|
536
571
|
payload: descriptor.payload,
|
|
537
572
|
});
|
|
538
573
|
}
|
|
539
|
-
else if (event.type === 'descriptor:deactivated' &&
|
|
574
|
+
else if (event.type === 'descriptor:deactivated' &&
|
|
575
|
+
event.kind === EXTENSION_KIND_WORKFLOW) {
|
|
540
576
|
const descriptor = event.descriptor;
|
|
541
577
|
await this.handleWorkflowDescriptorDeactivated({
|
|
542
578
|
id: descriptor.id,
|
|
@@ -752,11 +788,17 @@ export class AgentOS {
|
|
|
752
788
|
.trim()
|
|
753
789
|
.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
754
790
|
const toolRegistry = this.extensionManager.getRegistry(EXTENSION_KIND_TOOL);
|
|
755
|
-
const
|
|
791
|
+
const runtimeTools = new Map();
|
|
792
|
+
for (const tool of toolRegistry
|
|
756
793
|
.listActive()
|
|
757
794
|
.map((descriptor) => descriptor.payload)
|
|
758
|
-
.filter(Boolean)
|
|
759
|
-
.
|
|
795
|
+
.filter(Boolean)) {
|
|
796
|
+
runtimeTools.set(tool.name, tool);
|
|
797
|
+
}
|
|
798
|
+
for (const tool of adaptTools(this.config.tools)) {
|
|
799
|
+
runtimeTools.set(tool.name, tool);
|
|
800
|
+
}
|
|
801
|
+
const tools = Array.from(runtimeTools.values()).map((tool) => ({
|
|
760
802
|
id: tool.id || `tool:${tool.name}`,
|
|
761
803
|
name: tool.name,
|
|
762
804
|
displayName: tool.displayName || titleCase(tool.name),
|
|
@@ -777,13 +819,13 @@ export class AgentOS {
|
|
|
777
819
|
available: true,
|
|
778
820
|
}));
|
|
779
821
|
const workflowRegistry = this.extensionManager.getRegistry(EXTENSION_KIND_WORKFLOW);
|
|
780
|
-
const workflowExtensions = workflowRegistry
|
|
822
|
+
const workflowExtensions = workflowRegistry
|
|
823
|
+
.listActive()
|
|
824
|
+
.map((descriptor) => ({
|
|
781
825
|
id: `workflow:${descriptor.payload.definition.id}`,
|
|
782
826
|
name: descriptor.payload.definition.id,
|
|
783
|
-
displayName: descriptor.payload.definition.displayName ||
|
|
784
|
-
|
|
785
|
-
description: descriptor.payload.definition.description ||
|
|
786
|
-
'Workflow automation capability',
|
|
827
|
+
displayName: descriptor.payload.definition.displayName || titleCase(descriptor.payload.definition.id),
|
|
828
|
+
description: descriptor.payload.definition.description || 'Workflow automation capability',
|
|
787
829
|
category: 'workflow',
|
|
788
830
|
requiredSecrets: descriptor.payload.definition.metadata?.requiredSecrets,
|
|
789
831
|
available: true,
|
|
@@ -803,11 +845,7 @@ export class AgentOS {
|
|
|
803
845
|
}));
|
|
804
846
|
return {
|
|
805
847
|
tools,
|
|
806
|
-
extensions: [
|
|
807
|
-
...packExtensions,
|
|
808
|
-
...workflowExtensions,
|
|
809
|
-
...(overrides?.extensions ?? []),
|
|
810
|
-
],
|
|
848
|
+
extensions: [...packExtensions, ...workflowExtensions, ...(overrides?.extensions ?? [])],
|
|
811
849
|
channels: [...channels, ...(overrides?.channels ?? [])],
|
|
812
850
|
skills: overrides?.skills,
|
|
813
851
|
manifests: overrides?.manifests,
|
|
@@ -839,8 +877,7 @@ export class AgentOS {
|
|
|
839
877
|
const defaultProviderId = this.config.gmiManagerConfig.defaultGMIBaseConfigDefaults?.defaultLlmProviderId ||
|
|
840
878
|
this.config.modelProviderManagerConfig.providers[0]?.providerId ||
|
|
841
879
|
'openai';
|
|
842
|
-
const defaultModelId = this.config.gmiManagerConfig.defaultGMIBaseConfigDefaults?.defaultLlmModelId ||
|
|
843
|
-
'gpt-4o';
|
|
880
|
+
const defaultModelId = this.config.gmiManagerConfig.defaultGMIBaseConfigDefaults?.defaultLlmModelId || 'gpt-4o';
|
|
844
881
|
await fallbackUtility.initialize({
|
|
845
882
|
llmProviderManager: this.modelProviderManager,
|
|
846
883
|
defaultProviderId,
|
|
@@ -960,6 +997,14 @@ export class AgentOS {
|
|
|
960
997
|
this.ensureInitialized();
|
|
961
998
|
return this.toolOrchestrator;
|
|
962
999
|
}
|
|
1000
|
+
getExternalToolRegistry() {
|
|
1001
|
+
this.ensureInitialized();
|
|
1002
|
+
return this.config.externalTools;
|
|
1003
|
+
}
|
|
1004
|
+
listExternalToolsForLLM() {
|
|
1005
|
+
this.ensureInitialized();
|
|
1006
|
+
return listExternalToolDefinitionsForLLM(this.config.externalTools);
|
|
1007
|
+
}
|
|
963
1008
|
getModelProviderManager() {
|
|
964
1009
|
this.ensureInitialized();
|
|
965
1010
|
return this.modelProviderManager;
|
|
@@ -970,12 +1015,12 @@ export class AgentOS {
|
|
|
970
1015
|
*
|
|
971
1016
|
* This method orchestrates:
|
|
972
1017
|
* 1. Retrieval or creation of a {@link StreamId} via the {@link AgentOSOrchestrator}.
|
|
973
|
-
* 2. Registration of a temporary, request-scoped stream client to the
|
|
1018
|
+
* 2. Registration of a temporary, request-scoped stream client to the internal streaming manager.
|
|
974
1019
|
* 3. Yielding of {@link AgentOSResponse} chunks received by this client.
|
|
975
1020
|
* 4. Ensuring the temporary client is deregistered upon completion or error.
|
|
976
1021
|
*
|
|
977
1022
|
* The underlying {@link AgentOSOrchestrator} handles the GMI interaction and pushes
|
|
978
|
-
* chunks to the
|
|
1023
|
+
* chunks to the internal streaming manager. This method acts as the bridge to make these
|
|
979
1024
|
* chunks available as an `AsyncGenerator` to the caller (e.g., an API route handler).
|
|
980
1025
|
*
|
|
981
1026
|
* @public
|
|
@@ -1038,7 +1083,9 @@ export class AgentOS {
|
|
|
1038
1083
|
personaDefault: undefined,
|
|
1039
1084
|
configDefault: this.config.languageConfig.defaultLanguage,
|
|
1040
1085
|
supported: this.config.languageConfig.supportedLanguages,
|
|
1041
|
-
fallbackChain: this.config.languageConfig.fallbackLanguages || [
|
|
1086
|
+
fallbackChain: this.config.languageConfig.fallbackLanguages || [
|
|
1087
|
+
this.config.languageConfig.defaultLanguage,
|
|
1088
|
+
],
|
|
1042
1089
|
preferSourceLanguageResponses: this.config.languageConfig.preferSourceLanguageResponses,
|
|
1043
1090
|
targetLanguage: orchestratorInput.targetLanguage,
|
|
1044
1091
|
});
|
|
@@ -1063,7 +1110,10 @@ export class AgentOS {
|
|
|
1063
1110
|
});
|
|
1064
1111
|
// The orchestrator creates/manages the actual stream and starts pushing chunks to StreamingManager.
|
|
1065
1112
|
// We get the streamId it uses so our bridge can listen to it.
|
|
1066
|
-
streamIdToListen = await this.agentOSOrchestrator.orchestrateTurn({
|
|
1113
|
+
streamIdToListen = await this.agentOSOrchestrator.orchestrateTurn({
|
|
1114
|
+
...orchestratorInput,
|
|
1115
|
+
languageNegotiation,
|
|
1116
|
+
});
|
|
1067
1117
|
await this.streamingManager.registerClient(streamIdToListen, bridge);
|
|
1068
1118
|
this.logger.debug?.('Bridge registered', { bridgeId: bridge.id, streamId: streamIdToListen });
|
|
1069
1119
|
const guardrailWrappedStream = wrapOutputGuardrails(guardrailServices, guardrailContext, bridge.consume(), {
|
|
@@ -1076,7 +1126,9 @@ export class AgentOS {
|
|
|
1076
1126
|
try {
|
|
1077
1127
|
await this.startWorkflow(wfRequest.definitionId, orchestratorInput, {
|
|
1078
1128
|
workflowId: wfRequest.workflowId,
|
|
1079
|
-
conversationId: wfRequest.conversationId ??
|
|
1129
|
+
conversationId: wfRequest.conversationId ??
|
|
1130
|
+
orchestratorInput.conversationId ??
|
|
1131
|
+
orchestratorInput.sessionId,
|
|
1080
1132
|
createdByUserId: orchestratorInput.userId,
|
|
1081
1133
|
context: wfRequest.context,
|
|
1082
1134
|
roleAssignments: wfRequest.roleAssignments,
|
|
@@ -1099,6 +1151,9 @@ export class AgentOS {
|
|
|
1099
1151
|
chunk.metadata.language = languageNegotiation;
|
|
1100
1152
|
}
|
|
1101
1153
|
yield chunk;
|
|
1154
|
+
if (isActionableToolCallRequestChunk(chunk)) {
|
|
1155
|
+
break;
|
|
1156
|
+
}
|
|
1102
1157
|
if (chunk.isFinal && chunk.type !== AgentOSResponseChunkType.ERROR) {
|
|
1103
1158
|
// If a non-error chunk is final, the primary interaction part might be done.
|
|
1104
1159
|
// The stream itself might remain open for a short while for cleanup or late messages.
|
|
@@ -1110,7 +1165,10 @@ export class AgentOS {
|
|
|
1110
1165
|
catch (error) {
|
|
1111
1166
|
const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.GMI_PROCESSING_ERROR, // Default code for facade-level processing errors
|
|
1112
1167
|
`Error during AgentOS.processRequest for user '${orchestratorInput.userId}'`, 'AgentOS.processRequest');
|
|
1113
|
-
this.logger.error('processRequest failed', {
|
|
1168
|
+
this.logger.error('processRequest failed', {
|
|
1169
|
+
error: serviceError,
|
|
1170
|
+
streamId: streamIdToListen,
|
|
1171
|
+
});
|
|
1114
1172
|
const errorChunk = {
|
|
1115
1173
|
type: AgentOSResponseChunkType.ERROR,
|
|
1116
1174
|
streamId: streamIdToListen || baseStreamDebugId, // Use known streamId if available
|
|
@@ -1130,7 +1188,9 @@ export class AgentOS {
|
|
|
1130
1188
|
.getActiveStreamIds()
|
|
1131
1189
|
.catch(() => []);
|
|
1132
1190
|
if (activeStreamIds.includes(streamIdToListen)) {
|
|
1133
|
-
await this.streamingManager
|
|
1191
|
+
await this.streamingManager
|
|
1192
|
+
.deregisterClient(streamIdToListen, bridge.id)
|
|
1193
|
+
.catch((deregError) => {
|
|
1134
1194
|
this.logger.warn('Failed to deregister bridge client', {
|
|
1135
1195
|
bridgeId: bridge.id,
|
|
1136
1196
|
streamId: streamIdToListen,
|
|
@@ -1169,20 +1229,37 @@ export class AgentOS {
|
|
|
1169
1229
|
* Errors during GMI processing are yielded as `AgentOSErrorChunk`s.
|
|
1170
1230
|
*/
|
|
1171
1231
|
async *handleToolResult(streamId, toolCallId, toolName, toolOutput, isSuccess, errorMessage) {
|
|
1232
|
+
yield* this.handleToolResults(streamId, [
|
|
1233
|
+
{
|
|
1234
|
+
toolCallId,
|
|
1235
|
+
toolName,
|
|
1236
|
+
toolOutput,
|
|
1237
|
+
isSuccess,
|
|
1238
|
+
errorMessage,
|
|
1239
|
+
},
|
|
1240
|
+
]);
|
|
1241
|
+
}
|
|
1242
|
+
async *handleToolResults(streamId, toolResults) {
|
|
1172
1243
|
this.ensureInitialized();
|
|
1244
|
+
if (!Array.isArray(toolResults) || toolResults.length === 0) {
|
|
1245
|
+
throw new AgentOSServiceError('At least one tool result is required to continue the stream.', GMIErrorCode.VALIDATION_ERROR, { streamId }, 'AgentOS.handleToolResults');
|
|
1246
|
+
}
|
|
1173
1247
|
// Create a new bridge client for this specific tool result handling phase
|
|
1174
|
-
const bridge = new AsyncStreamClientBridge(`client-toolRes-${streamId.substring(0, 8)}-${toolCallId.substring(0, 8)}`);
|
|
1248
|
+
const bridge = new AsyncStreamClientBridge(`client-toolRes-${streamId.substring(0, 8)}-${toolResults[0].toolCallId.substring(0, 8)}`);
|
|
1175
1249
|
try {
|
|
1176
|
-
console.log(`AgentOS.
|
|
1250
|
+
console.log(`AgentOS.handleToolResults: Stream '${streamId}', ${toolResults.length} tool result(s). Orchestrator will push new chunks to this stream.`);
|
|
1177
1251
|
// Register the bridge client to listen for new chunks on the existing stream
|
|
1178
1252
|
await this.streamingManager.registerClient(streamId, bridge);
|
|
1179
|
-
console.log(`AgentOS.
|
|
1180
|
-
// This call is `async Promise<void>`; it triggers the orchestrator to process the tool result
|
|
1253
|
+
console.log(`AgentOS.handleToolResults: Bridge client ${bridge.id} registered to stream ${streamId}.`);
|
|
1254
|
+
// This call is `async Promise<void>`; it triggers the orchestrator to process the tool result(s)
|
|
1181
1255
|
// and push new chunks to the StreamingManager for the given streamId.
|
|
1182
|
-
await this.agentOSOrchestrator.
|
|
1256
|
+
await this.agentOSOrchestrator.orchestrateToolResults(streamId, toolResults);
|
|
1183
1257
|
// Yield new chunks received by our bridge client on the same stream
|
|
1184
1258
|
for await (const chunk of bridge.consume()) {
|
|
1185
1259
|
yield chunk;
|
|
1260
|
+
if (isActionableToolCallRequestChunk(chunk)) {
|
|
1261
|
+
break;
|
|
1262
|
+
}
|
|
1186
1263
|
if (chunk.isFinal && chunk.type !== AgentOSResponseChunkType.ERROR) {
|
|
1187
1264
|
break;
|
|
1188
1265
|
}
|
|
@@ -1190,7 +1267,7 @@ export class AgentOS {
|
|
|
1190
1267
|
}
|
|
1191
1268
|
catch (error) {
|
|
1192
1269
|
const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.TOOL_ERROR, // Default code for facade-level tool result errors
|
|
1193
|
-
`Error during AgentOS.
|
|
1270
|
+
`Error during AgentOS.handleToolResults for stream '${streamId}'`, 'AgentOS.handleToolResults');
|
|
1194
1271
|
console.error(`${serviceError.name}: ${serviceError.message}`, serviceError.toJSON());
|
|
1195
1272
|
const errorChunk = {
|
|
1196
1273
|
type: AgentOSResponseChunkType.ERROR,
|
|
@@ -1206,14 +1283,13 @@ export class AgentOS {
|
|
|
1206
1283
|
yield errorChunk;
|
|
1207
1284
|
}
|
|
1208
1285
|
finally {
|
|
1209
|
-
console.log(`AgentOS.
|
|
1286
|
+
console.log(`AgentOS.handleToolResults: Deregistering bridge client ${bridge.id} from stream ${streamId}.`);
|
|
1210
1287
|
const activeStreamIds = await this.streamingManager
|
|
1211
1288
|
.getActiveStreamIds()
|
|
1212
1289
|
.catch(() => []);
|
|
1213
1290
|
if (activeStreamIds.includes(streamId)) {
|
|
1214
|
-
await this.streamingManager.deregisterClient(streamId, bridge.id)
|
|
1215
|
-
.
|
|
1216
|
-
console.error(`AgentOS.handleToolResult: Error deregistering bridge client ${bridge.id}: ${deregError.message}`);
|
|
1291
|
+
await this.streamingManager.deregisterClient(streamId, bridge.id).catch((deregError) => {
|
|
1292
|
+
console.error(`AgentOS.handleToolResults: Error deregistering bridge client ${bridge.id}: ${deregError.message}`);
|
|
1217
1293
|
});
|
|
1218
1294
|
}
|
|
1219
1295
|
bridge.forceClose();
|
|
@@ -1276,12 +1352,12 @@ export class AgentOS {
|
|
|
1276
1352
|
*/
|
|
1277
1353
|
async listAvailablePersonas(userId) {
|
|
1278
1354
|
this.ensureInitialized();
|
|
1279
|
-
console.log(`AgentOS.listAvailablePersonas: Request for UserID: '${userId ||
|
|
1355
|
+
console.log(`AgentOS.listAvailablePersonas: Request for UserID: '${userId || 'anonymous/system'}'.`);
|
|
1280
1356
|
try {
|
|
1281
1357
|
return await this.gmiManager.listAvailablePersonas(userId);
|
|
1282
1358
|
}
|
|
1283
1359
|
catch (error) {
|
|
1284
|
-
throw AgentOSServiceError.wrap(error, GMIErrorCode.PERSONA_LOAD_ERROR,
|
|
1360
|
+
throw AgentOSServiceError.wrap(error, GMIErrorCode.PERSONA_LOAD_ERROR, 'Failed to list available personas', 'AgentOS.listAvailablePersonas');
|
|
1285
1361
|
}
|
|
1286
1362
|
}
|
|
1287
1363
|
/**
|
|
@@ -1324,7 +1400,73 @@ export class AgentOS {
|
|
|
1324
1400
|
return null; // Conversation not found
|
|
1325
1401
|
}
|
|
1326
1402
|
catch (error) {
|
|
1327
|
-
throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_CONTEXT_ERROR, `Failed to retrieve conversation history for ID '${conversationId}'`,
|
|
1403
|
+
throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_CONTEXT_ERROR, `Failed to retrieve conversation history for ID '${conversationId}'`, 'AgentOS.getConversationHistory');
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
async getPendingExternalToolRequest(conversationId, userId) {
|
|
1407
|
+
this.ensureInitialized();
|
|
1408
|
+
const context = await this.getConversationHistory(conversationId, userId);
|
|
1409
|
+
if (!context) {
|
|
1410
|
+
return null;
|
|
1411
|
+
}
|
|
1412
|
+
const pendingRequest = context.getMetadata(AGENTOS_PENDING_EXTERNAL_TOOL_REQUEST_METADATA_KEY);
|
|
1413
|
+
return pendingRequest ?? null;
|
|
1414
|
+
}
|
|
1415
|
+
async *resumeExternalToolRequest(pendingRequest, toolResults, options = {}) {
|
|
1416
|
+
this.ensureInitialized();
|
|
1417
|
+
let streamIdToListen;
|
|
1418
|
+
let shouldDeregisterBridge = false;
|
|
1419
|
+
const bridge = new AsyncStreamClientBridge(`client-resumeToolReq-${pendingRequest.conversationId}-${Date.now()}`);
|
|
1420
|
+
try {
|
|
1421
|
+
streamIdToListen = await this.agentOSOrchestrator.orchestrateResumedToolResults(pendingRequest, toolResults, options);
|
|
1422
|
+
await this.streamingManager.registerClient(streamIdToListen, bridge);
|
|
1423
|
+
for await (const chunk of bridge.consume()) {
|
|
1424
|
+
yield chunk;
|
|
1425
|
+
if (isActionableToolCallRequestChunk(chunk)) {
|
|
1426
|
+
shouldDeregisterBridge = true;
|
|
1427
|
+
break;
|
|
1428
|
+
}
|
|
1429
|
+
if (chunk.isFinal && chunk.type !== AgentOSResponseChunkType.ERROR) {
|
|
1430
|
+
break;
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
}
|
|
1434
|
+
catch (error) {
|
|
1435
|
+
const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.TOOL_ERROR, `Error during AgentOS.resumeExternalToolRequest for conversation '${pendingRequest.conversationId}'`, 'AgentOS.resumeExternalToolRequest');
|
|
1436
|
+
console.error(`${serviceError.name}: ${serviceError.message}`, serviceError.toJSON());
|
|
1437
|
+
const errorChunk = {
|
|
1438
|
+
type: AgentOSResponseChunkType.ERROR,
|
|
1439
|
+
streamId: streamIdToListen || pendingRequest.streamId,
|
|
1440
|
+
gmiInstanceId: serviceError.details?.gmiInstanceId ||
|
|
1441
|
+
pendingRequest.gmiInstanceId ||
|
|
1442
|
+
'agentos_facade_resume_error',
|
|
1443
|
+
personaId: serviceError.details?.personaId || pendingRequest.personaId || 'unknown_persona',
|
|
1444
|
+
isFinal: true,
|
|
1445
|
+
timestamp: new Date().toISOString(),
|
|
1446
|
+
code: serviceError.code.toString(),
|
|
1447
|
+
message: serviceError.message,
|
|
1448
|
+
details: serviceError.details || { name: serviceError.name, stack: serviceError.stack },
|
|
1449
|
+
};
|
|
1450
|
+
yield errorChunk;
|
|
1451
|
+
}
|
|
1452
|
+
finally {
|
|
1453
|
+
if (streamIdToListen && shouldDeregisterBridge) {
|
|
1454
|
+
const activeStreamIds = await this.streamingManager
|
|
1455
|
+
.getActiveStreamIds()
|
|
1456
|
+
.catch(() => []);
|
|
1457
|
+
if (activeStreamIds.includes(streamIdToListen)) {
|
|
1458
|
+
await this.streamingManager
|
|
1459
|
+
.deregisterClient(streamIdToListen, bridge.id)
|
|
1460
|
+
.catch((deregError) => {
|
|
1461
|
+
this.logger.warn('Failed to deregister resume bridge client', {
|
|
1462
|
+
bridgeId: bridge.id,
|
|
1463
|
+
streamId: streamIdToListen,
|
|
1464
|
+
error: deregError.message,
|
|
1465
|
+
});
|
|
1466
|
+
});
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
bridge.forceClose();
|
|
1328
1470
|
}
|
|
1329
1471
|
}
|
|
1330
1472
|
/**
|
|
@@ -1346,14 +1488,14 @@ export class AgentOS {
|
|
|
1346
1488
|
this.ensureInitialized();
|
|
1347
1489
|
// Basic authorization checks for the user can be performed here.
|
|
1348
1490
|
// E.g., await this.authService.validateUserExists(userId);
|
|
1349
|
-
console.log(`AgentOS.receiveFeedback: UserID '${userId}', SessionID '${sessionId}', PersonaID '${personaId}'. Payload:`, JSON.stringify(feedbackPayload).substring(0, 200) +
|
|
1491
|
+
console.log(`AgentOS.receiveFeedback: UserID '${userId}', SessionID '${sessionId}', PersonaID '${personaId}'. Payload:`, JSON.stringify(feedbackPayload).substring(0, 200) + '...');
|
|
1350
1492
|
try {
|
|
1351
1493
|
// Delegate feedback processing, typically to GMIManager or directly to the relevant GMI.
|
|
1352
1494
|
await this.gmiManager.processUserFeedback(userId, sessionId, personaId, feedbackPayload);
|
|
1353
1495
|
console.info(`AgentOS.receiveFeedback: Feedback processed successfully for UserID '${userId}', PersonaID '${personaId}'.`);
|
|
1354
1496
|
}
|
|
1355
1497
|
catch (error) {
|
|
1356
|
-
throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_FEEDBACK_ERROR,
|
|
1498
|
+
throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_FEEDBACK_ERROR, 'Failed to process user feedback', 'AgentOS.receiveFeedback');
|
|
1357
1499
|
}
|
|
1358
1500
|
}
|
|
1359
1501
|
/**
|
|
@@ -1402,7 +1544,8 @@ export class AgentOS {
|
|
|
1402
1544
|
await this.streamingManager.shutdown();
|
|
1403
1545
|
console.log('AgentOS: StreamingManager shut down.');
|
|
1404
1546
|
}
|
|
1405
|
-
if (this.conversationManager?.shutdown &&
|
|
1547
|
+
if (this.conversationManager?.shutdown &&
|
|
1548
|
+
typeof this.conversationManager.shutdown === 'function') {
|
|
1406
1549
|
await this.conversationManager.shutdown();
|
|
1407
1550
|
console.log('AgentOS: ConversationManager shut down.');
|
|
1408
1551
|
}
|
|
@@ -1423,7 +1566,8 @@ export class AgentOS {
|
|
|
1423
1566
|
await this.retrievalAugmentor.shutdown();
|
|
1424
1567
|
console.log('AgentOS: RetrievalAugmentor shut down.');
|
|
1425
1568
|
}
|
|
1426
|
-
if (this.manageRetrievalAugmentorLifecycle &&
|
|
1569
|
+
if (this.manageRetrievalAugmentorLifecycle &&
|
|
1570
|
+
this.ragVectorStoreManager?.shutdownAllProviders) {
|
|
1427
1571
|
await this.ragVectorStoreManager.shutdownAllProviders();
|
|
1428
1572
|
console.log('AgentOS: VectorStore providers shut down.');
|
|
1429
1573
|
}
|
|
@@ -1451,7 +1595,7 @@ export class AgentOS {
|
|
|
1451
1595
|
catch (error) {
|
|
1452
1596
|
// Even if one component fails to shut down, attempt to log and continue if possible,
|
|
1453
1597
|
// but report the overall failure.
|
|
1454
|
-
const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.GMI_SHUTDOWN_ERROR,
|
|
1598
|
+
const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.GMI_SHUTDOWN_ERROR, 'Error during AgentOS service shutdown sequence', 'AgentOS.shutdown');
|
|
1455
1599
|
console.error(`${serviceError.name}: ${serviceError.message}`, serviceError.toJSON());
|
|
1456
1600
|
throw serviceError; // Re-throw to indicate shutdown was problematic.
|
|
1457
1601
|
}
|
|
@@ -1463,7 +1607,8 @@ export class AgentOS {
|
|
|
1463
1607
|
// Prefer caller-provided augmentor instance.
|
|
1464
1608
|
if (this.config.retrievalAugmentor) {
|
|
1465
1609
|
this.retrievalAugmentor = this.config.retrievalAugmentor;
|
|
1466
|
-
this.manageRetrievalAugmentorLifecycle =
|
|
1610
|
+
this.manageRetrievalAugmentorLifecycle =
|
|
1611
|
+
this.config.manageRetrievalAugmentorLifecycle === true;
|
|
1467
1612
|
return;
|
|
1468
1613
|
}
|
|
1469
1614
|
const ragConfig = this.config.ragConfig;
|
|
@@ -1476,7 +1621,9 @@ export class AgentOS {
|
|
|
1476
1621
|
const { RetrievalAugmentor } = await import('../rag/RetrievalAugmentor.js');
|
|
1477
1622
|
const embeddingManager = new EmbeddingManager();
|
|
1478
1623
|
await embeddingManager.initialize(ragConfig.embeddingManagerConfig, this.modelProviderManager);
|
|
1479
|
-
const bindToStorageAdapter = ragConfig.bindToStorageAdapter === undefined
|
|
1624
|
+
const bindToStorageAdapter = ragConfig.bindToStorageAdapter === undefined
|
|
1625
|
+
? true
|
|
1626
|
+
: ragConfig.bindToStorageAdapter === true;
|
|
1480
1627
|
const patchedVectorStoreConfig = {
|
|
1481
1628
|
...ragConfig.vectorStoreManagerConfig,
|
|
1482
1629
|
providers: ragConfig.vectorStoreManagerConfig.providers.map((provider) => {
|