@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/agent.js
CHANGED
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* are not actively enforced in this lightweight layer — use the full AgentOS
|
|
9
9
|
* runtime (`AgentOSOrchestrator`) or `agency()` for guardrail enforcement.
|
|
10
10
|
*/
|
|
11
|
-
import { generateText } from './generateText.js';
|
|
11
|
+
import { generateText, } from './generateText.js';
|
|
12
12
|
import { streamText } from './streamText.js';
|
|
13
13
|
import { getRecordedAgentOSUsage, } from './usageLedger.js';
|
|
14
|
+
import { exportAgentConfig, exportAgentConfigJSON } from './agentExport.js';
|
|
14
15
|
function mergeUsageLedgerOptions(...parts) {
|
|
15
16
|
const merged = Object.assign({}, ...parts.filter(Boolean));
|
|
16
17
|
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
@@ -38,10 +39,10 @@ function buildSystemPrompt(opts) {
|
|
|
38
39
|
*
|
|
39
40
|
* The agent wraps {@link generateText} and {@link streamText} with a persistent
|
|
40
41
|
* system prompt built from `instructions`, `name`, and `personality` fields.
|
|
41
|
-
* Multiple independent sessions can be opened via
|
|
42
|
+
* Multiple independent sessions can be opened via `Agent.session()`.
|
|
42
43
|
*
|
|
43
44
|
* @param opts - Agent configuration including model, instructions, and optional tools.
|
|
44
|
-
* All
|
|
45
|
+
* All `BaseAgentConfig` fields are accepted; advanced fields (rag, discovery,
|
|
45
46
|
* permissions, emergent, voice, guardrails, etc.) are stored but not actively
|
|
46
47
|
* wired in the lightweight layer — they are consumed by `agency()` and the full runtime.
|
|
47
48
|
* @returns An {@link Agent} instance with `generate`, `stream`, `session`, and `close` methods.
|
|
@@ -74,13 +75,15 @@ export function agent(opts) {
|
|
|
74
75
|
baseUrl: opts.baseUrl,
|
|
75
76
|
usageLedger: effectiveLedger,
|
|
76
77
|
};
|
|
77
|
-
|
|
78
|
+
const agentInstance = {
|
|
78
79
|
async generate(prompt, extra) {
|
|
79
80
|
return generateText({
|
|
80
81
|
...baseOpts,
|
|
81
82
|
...extra,
|
|
82
83
|
prompt,
|
|
83
|
-
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, extra?.usageLedger, {
|
|
84
|
+
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, extra?.usageLedger, {
|
|
85
|
+
source: extra?.usageLedger?.source ?? 'agent.generate',
|
|
86
|
+
}),
|
|
84
87
|
});
|
|
85
88
|
},
|
|
86
89
|
stream(prompt, extra) {
|
|
@@ -88,7 +91,9 @@ export function agent(opts) {
|
|
|
88
91
|
...baseOpts,
|
|
89
92
|
...extra,
|
|
90
93
|
prompt,
|
|
91
|
-
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, extra?.usageLedger, {
|
|
94
|
+
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, extra?.usageLedger, {
|
|
95
|
+
source: extra?.usageLedger?.source ?? 'agent.stream',
|
|
96
|
+
}),
|
|
92
97
|
});
|
|
93
98
|
},
|
|
94
99
|
session(id) {
|
|
@@ -105,7 +110,10 @@ export function agent(opts) {
|
|
|
105
110
|
const result = await generateText({
|
|
106
111
|
...baseOpts,
|
|
107
112
|
messages: requestMessages,
|
|
108
|
-
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, {
|
|
113
|
+
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, {
|
|
114
|
+
sessionId,
|
|
115
|
+
source: 'agent.session.send',
|
|
116
|
+
}),
|
|
109
117
|
});
|
|
110
118
|
if (useMemory) {
|
|
111
119
|
history.push({ role: 'user', content: text });
|
|
@@ -119,12 +127,19 @@ export function agent(opts) {
|
|
|
119
127
|
messages: useMemory
|
|
120
128
|
? [...history, { role: 'user', content: text }]
|
|
121
129
|
: [{ role: 'user', content: text }],
|
|
122
|
-
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, {
|
|
130
|
+
usageLedger: mergeUsageLedgerOptions(baseOpts.usageLedger, {
|
|
131
|
+
sessionId,
|
|
132
|
+
source: 'agent.session.stream',
|
|
133
|
+
}),
|
|
123
134
|
});
|
|
124
135
|
// Capture text for history when done
|
|
125
136
|
if (useMemory) {
|
|
126
137
|
history.push({ role: 'user', content: text });
|
|
127
|
-
void result.text
|
|
138
|
+
void result.text
|
|
139
|
+
.then((replyText) => history.push({ role: 'assistant', content: replyText }))
|
|
140
|
+
.catch(() => {
|
|
141
|
+
/* history update failed, non-critical */
|
|
142
|
+
});
|
|
128
143
|
}
|
|
129
144
|
return result;
|
|
130
145
|
},
|
|
@@ -153,6 +168,30 @@ export function agent(opts) {
|
|
|
153
168
|
async close() {
|
|
154
169
|
sessions.clear();
|
|
155
170
|
},
|
|
171
|
+
/**
|
|
172
|
+
* Exports this agent's configuration as a portable object.
|
|
173
|
+
* @param metadata - Optional human-readable metadata to attach.
|
|
174
|
+
* @returns A portable {@link AgentExportConfig} object.
|
|
175
|
+
*/
|
|
176
|
+
export(metadata) {
|
|
177
|
+
return exportAgentConfig(agentInstance, metadata);
|
|
178
|
+
},
|
|
179
|
+
/**
|
|
180
|
+
* Exports this agent's configuration as a pretty-printed JSON string.
|
|
181
|
+
* @param metadata - Optional human-readable metadata to attach.
|
|
182
|
+
* @returns JSON string with 2-space indentation.
|
|
183
|
+
*/
|
|
184
|
+
exportJSON(metadata) {
|
|
185
|
+
return exportAgentConfigJSON(agentInstance, metadata);
|
|
186
|
+
},
|
|
156
187
|
};
|
|
188
|
+
// Stash the original config as a non-enumerable property so that
|
|
189
|
+
// exportAgentConfig() can retrieve it without polluting the public API.
|
|
190
|
+
Object.defineProperty(agentInstance, '__config', {
|
|
191
|
+
value: opts,
|
|
192
|
+
enumerable: false,
|
|
193
|
+
configurable: true,
|
|
194
|
+
});
|
|
195
|
+
return agentInstance;
|
|
157
196
|
}
|
|
158
197
|
//# sourceMappingURL=agent.js.map
|
package/dist/api/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Agent configuration export/import for AgentOS.
|
|
3
|
+
* @module @framers/agentos/api/agentExport
|
|
4
|
+
*
|
|
5
|
+
* Provides portable serialization and deserialization of agent and agency
|
|
6
|
+
* configurations. Agents can be exported as JSON or YAML, transferred across
|
|
7
|
+
* environments, and re-imported to create identical agent instances.
|
|
8
|
+
*
|
|
9
|
+
* The export captures the full `BaseAgentConfig` surface — model, tools,
|
|
10
|
+
* personality, guardrails, memory, RAG, voice, channels, etc. — as well as
|
|
11
|
+
* agency-specific fields (sub-agent roster, strategy, rounds).
|
|
12
|
+
*
|
|
13
|
+
* Security note: API keys and base URLs are intentionally **included** in the
|
|
14
|
+
* export for self-contained portability. Callers that publish or share exports
|
|
15
|
+
* should strip sensitive fields first, or use `validateAgentExport()` to
|
|
16
|
+
* inspect the payload before distribution.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { agent } from '@framers/agentos';
|
|
21
|
+
* import { exportAgentConfig, importAgent, exportAgentConfigJSON } from '../api/agentExport';
|
|
22
|
+
*
|
|
23
|
+
* const myAgent = agent({ model: 'openai:gpt-4o', instructions: 'Be helpful.' });
|
|
24
|
+
* const json = exportAgentConfigJSON(myAgent);
|
|
25
|
+
*
|
|
26
|
+
* // Later, in another process:
|
|
27
|
+
* const restored = importAgentFromJSON(json);
|
|
28
|
+
* const reply = await restored.generate('Hello!');
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
import type { BaseAgentConfig, AgencyStrategy, Agent } from './types.js';
|
|
32
|
+
/**
|
|
33
|
+
* Portable agent configuration envelope.
|
|
34
|
+
*
|
|
35
|
+
* Wraps a `BaseAgentConfig` with version metadata, export timestamp,
|
|
36
|
+
* and type discriminator so import logic can reconstruct the correct agent
|
|
37
|
+
* variant (single agent vs. multi-agent agency).
|
|
38
|
+
*/
|
|
39
|
+
export interface AgentExportConfig {
|
|
40
|
+
/** Schema version for forward-compatible deserialization. */
|
|
41
|
+
version: '1.0.0';
|
|
42
|
+
/** ISO 8601 timestamp of when the export was created. */
|
|
43
|
+
exportedAt: string;
|
|
44
|
+
/**
|
|
45
|
+
* Discriminator: `'agent'` for a single-agent export, `'agency'` for
|
|
46
|
+
* a multi-agent export that includes a sub-agent roster.
|
|
47
|
+
*/
|
|
48
|
+
type: 'agent' | 'agency';
|
|
49
|
+
/** The full agent configuration. */
|
|
50
|
+
config: BaseAgentConfig;
|
|
51
|
+
/** Sub-agent roster keyed by agent name. Present for agency exports. */
|
|
52
|
+
agents?: Record<string, BaseAgentConfig>;
|
|
53
|
+
/** Orchestration strategy. Present for agency exports. */
|
|
54
|
+
strategy?: AgencyStrategy;
|
|
55
|
+
/** Whether runtime strategy adaptation is enabled. */
|
|
56
|
+
adaptive?: boolean;
|
|
57
|
+
/** Maximum orchestration rounds for iterative strategies. */
|
|
58
|
+
maxRounds?: number;
|
|
59
|
+
/** Human-readable metadata about the export (name, author, tags, etc.). */
|
|
60
|
+
metadata?: {
|
|
61
|
+
/** Display name for the exported agent. */
|
|
62
|
+
name?: string;
|
|
63
|
+
/** Free-text description of what this agent does. */
|
|
64
|
+
description?: string;
|
|
65
|
+
/** Author identifier (person or system). */
|
|
66
|
+
author?: string;
|
|
67
|
+
/** Searchable tags for categorization. */
|
|
68
|
+
tags?: string[];
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Exports an agent's configuration as a portable {@link AgentExportConfig} object.
|
|
73
|
+
*
|
|
74
|
+
* Captures the full `BaseAgentConfig` including model, instructions,
|
|
75
|
+
* personality, tools, guardrails, memory, RAG, voice, channels, and all
|
|
76
|
+
* other configuration surfaces. For agency instances, the sub-agent roster,
|
|
77
|
+
* strategy, and round limits are also included.
|
|
78
|
+
*
|
|
79
|
+
* @param agentInstance - The agent (or agency) instance to export.
|
|
80
|
+
* @param metadata - Optional human-readable metadata to attach to the export.
|
|
81
|
+
* @returns A portable config object that can be serialized to JSON or YAML.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const config = exportAgentConfig(myAgent, {
|
|
86
|
+
* name: 'Research Assistant',
|
|
87
|
+
* author: 'team-alpha',
|
|
88
|
+
* tags: ['research', 'summarization'],
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function exportAgentConfig(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): AgentExportConfig;
|
|
93
|
+
/**
|
|
94
|
+
* Exports an agent's configuration as a pretty-printed JSON string.
|
|
95
|
+
*
|
|
96
|
+
* @param agentInstance - The agent (or agency) instance to export.
|
|
97
|
+
* @param metadata - Optional human-readable metadata to attach.
|
|
98
|
+
* @returns JSON string with 2-space indentation.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* const json = exportAgentConfigJSON(myAgent);
|
|
103
|
+
* fs.writeFileSync('agent.json', json);
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare function exportAgentConfigJSON(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): string;
|
|
107
|
+
/**
|
|
108
|
+
* Exports an agent's configuration as a YAML string.
|
|
109
|
+
*
|
|
110
|
+
* Uses the `yaml` npm package for consistent, human-readable output.
|
|
111
|
+
*
|
|
112
|
+
* @param agentInstance - The agent (or agency) instance to export.
|
|
113
|
+
* @param metadata - Optional human-readable metadata to attach.
|
|
114
|
+
* @returns YAML-formatted string.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* const yamlStr = exportAgentConfigYAML(myAgent);
|
|
119
|
+
* fs.writeFileSync('agent.yaml', yamlStr);
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare function exportAgentConfigYAML(agentInstance: Agent, metadata?: AgentExportConfig['metadata']): string;
|
|
123
|
+
/**
|
|
124
|
+
* Imports an agent from an {@link AgentExportConfig} object.
|
|
125
|
+
*
|
|
126
|
+
* For `type: 'agent'`, calls the `agent()` factory with the stored config.
|
|
127
|
+
* For `type: 'agency'`, calls the `agency()` factory with the stored config
|
|
128
|
+
* plus the sub-agent roster and strategy.
|
|
129
|
+
*
|
|
130
|
+
* The imported agent is a fully functional instance with `generate`, `stream`,
|
|
131
|
+
* `session`, and `close` methods.
|
|
132
|
+
*
|
|
133
|
+
* @param exportConfig - A validated export config object.
|
|
134
|
+
* @returns A new Agent instance constructed from the config.
|
|
135
|
+
*
|
|
136
|
+
* @throws {Error} If the config is invalid or missing required fields.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* const config = JSON.parse(fs.readFileSync('agent.json', 'utf-8'));
|
|
141
|
+
* const agent = importAgent(config);
|
|
142
|
+
* const reply = await agent.generate('Hello!');
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare function importAgent(exportConfig: AgentExportConfig): Agent;
|
|
146
|
+
/**
|
|
147
|
+
* Imports an agent from a JSON string.
|
|
148
|
+
*
|
|
149
|
+
* Parses the string and delegates to {@link importAgent}.
|
|
150
|
+
*
|
|
151
|
+
* @param json - JSON string containing an {@link AgentExportConfig}.
|
|
152
|
+
* @returns A new Agent instance.
|
|
153
|
+
*
|
|
154
|
+
* @throws {SyntaxError} If the JSON is malformed.
|
|
155
|
+
* @throws {Error} If the parsed config fails validation.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* const agent = importAgentFromJSON(fs.readFileSync('agent.json', 'utf-8'));
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export declare function importAgentFromJSON(json: string): Agent;
|
|
163
|
+
/**
|
|
164
|
+
* Imports an agent from a YAML string.
|
|
165
|
+
*
|
|
166
|
+
* Parses the string using the `yaml` npm package and delegates to
|
|
167
|
+
* {@link importAgent}.
|
|
168
|
+
*
|
|
169
|
+
* @param yamlStr - YAML string containing an {@link AgentExportConfig}.
|
|
170
|
+
* @returns A new Agent instance.
|
|
171
|
+
*
|
|
172
|
+
* @throws {Error} If the YAML is malformed or the config fails validation.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```ts
|
|
176
|
+
* const agent = importAgentFromYAML(fs.readFileSync('agent.yaml', 'utf-8'));
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
export declare function importAgentFromYAML(yamlStr: string): Agent;
|
|
180
|
+
/**
|
|
181
|
+
* Validates an export config object without importing it.
|
|
182
|
+
*
|
|
183
|
+
* Checks structural correctness: schema version, required fields, type
|
|
184
|
+
* discriminator, and agency-specific field consistency. Does NOT validate
|
|
185
|
+
* the semantic correctness of the config (e.g. whether the model exists).
|
|
186
|
+
*
|
|
187
|
+
* @param config - Unknown value to validate as an {@link AgentExportConfig}.
|
|
188
|
+
* @returns Object with `valid` boolean and an array of error messages.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```ts
|
|
192
|
+
* const result = validateAgentExport(someObject);
|
|
193
|
+
* if (!result.valid) {
|
|
194
|
+
* console.error('Validation errors:', result.errors);
|
|
195
|
+
* }
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
export declare function validateAgentExport(config: unknown): {
|
|
199
|
+
valid: boolean;
|
|
200
|
+
errors: string[];
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=agentExport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentExport.d.ts","sourceRoot":"","sources":["../../src/api/agentExport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAiB,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMxF;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IAEjB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzB,oCAAoC;IACpC,MAAM,EAAE,eAAe,CAAC;IAIxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEzC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QACT,2CAA2C;QAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,qDAAqD;QACrD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,4CAA4C;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,0CAA0C;QAC1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAsDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,iBAAiB,CA0BnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,MAAM,CAER;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,KAAK,EACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GACvC,MAAM,CAER;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,iBAAiB,GAAG,KAAK,CAiDlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAGvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAG1D;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyDzF"}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Agent configuration export/import for AgentOS.
|
|
3
|
+
* @module @framers/agentos/api/agentExport
|
|
4
|
+
*
|
|
5
|
+
* Provides portable serialization and deserialization of agent and agency
|
|
6
|
+
* configurations. Agents can be exported as JSON or YAML, transferred across
|
|
7
|
+
* environments, and re-imported to create identical agent instances.
|
|
8
|
+
*
|
|
9
|
+
* The export captures the full `BaseAgentConfig` surface — model, tools,
|
|
10
|
+
* personality, guardrails, memory, RAG, voice, channels, etc. — as well as
|
|
11
|
+
* agency-specific fields (sub-agent roster, strategy, rounds).
|
|
12
|
+
*
|
|
13
|
+
* Security note: API keys and base URLs are intentionally **included** in the
|
|
14
|
+
* export for self-contained portability. Callers that publish or share exports
|
|
15
|
+
* should strip sensitive fields first, or use `validateAgentExport()` to
|
|
16
|
+
* inspect the payload before distribution.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { agent } from '@framers/agentos';
|
|
21
|
+
* import { exportAgentConfig, importAgent, exportAgentConfigJSON } from '../api/agentExport.js';
|
|
22
|
+
*
|
|
23
|
+
* const myAgent = agent({ model: 'openai:gpt-4o', instructions: 'Be helpful.' });
|
|
24
|
+
* const json = exportAgentConfigJSON(myAgent);
|
|
25
|
+
*
|
|
26
|
+
* // Later, in another process:
|
|
27
|
+
* const restored = importAgentFromJSON(json);
|
|
28
|
+
* const reply = await restored.generate('Hello!');
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
import YAML from 'yaml';
|
|
32
|
+
import { agent as createAgent } from './agent.js';
|
|
33
|
+
import { agency as createAgency } from './agency.js';
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// EXPORT FUNCTIONS
|
|
36
|
+
// ============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Extracts the stored configuration from an Agent instance.
|
|
39
|
+
*
|
|
40
|
+
* The agent's config is captured at creation time by the `agent()` and
|
|
41
|
+
* `agency()` factories and attached as a non-enumerable `__config` property.
|
|
42
|
+
* If the property is absent (e.g. the agent was created by external code),
|
|
43
|
+
* we return an empty config.
|
|
44
|
+
*
|
|
45
|
+
* @param agentInstance - The agent to extract config from.
|
|
46
|
+
* @returns The stored BaseAgentConfig or an empty object.
|
|
47
|
+
*/
|
|
48
|
+
function extractConfig(agentInstance) {
|
|
49
|
+
// The __config property is set by our patched agent/agency factories
|
|
50
|
+
const config = agentInstance.__config;
|
|
51
|
+
if (config && typeof config === 'object') {
|
|
52
|
+
return config;
|
|
53
|
+
}
|
|
54
|
+
// Fallback: no stored config — return empty
|
|
55
|
+
return {};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Extracts agency-specific fields from an Agent instance that was created
|
|
59
|
+
* by the `agency()` factory.
|
|
60
|
+
*
|
|
61
|
+
* @param agentInstance - The agent/agency to extract from.
|
|
62
|
+
* @returns Agency fields if present, or undefined for plain agents.
|
|
63
|
+
*/
|
|
64
|
+
function extractAgencyFields(agentInstance) {
|
|
65
|
+
const raw = agentInstance.__agencyConfig;
|
|
66
|
+
if (raw && typeof raw === 'object') {
|
|
67
|
+
return raw;
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Exports an agent's configuration as a portable {@link AgentExportConfig} object.
|
|
73
|
+
*
|
|
74
|
+
* Captures the full `BaseAgentConfig` including model, instructions,
|
|
75
|
+
* personality, tools, guardrails, memory, RAG, voice, channels, and all
|
|
76
|
+
* other configuration surfaces. For agency instances, the sub-agent roster,
|
|
77
|
+
* strategy, and round limits are also included.
|
|
78
|
+
*
|
|
79
|
+
* @param agentInstance - The agent (or agency) instance to export.
|
|
80
|
+
* @param metadata - Optional human-readable metadata to attach to the export.
|
|
81
|
+
* @returns A portable config object that can be serialized to JSON or YAML.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const config = exportAgentConfig(myAgent, {
|
|
86
|
+
* name: 'Research Assistant',
|
|
87
|
+
* author: 'team-alpha',
|
|
88
|
+
* tags: ['research', 'summarization'],
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export function exportAgentConfig(agentInstance, metadata) {
|
|
93
|
+
const config = extractConfig(agentInstance);
|
|
94
|
+
const agencyFields = extractAgencyFields(agentInstance);
|
|
95
|
+
const isAgency = !!agencyFields?.agents;
|
|
96
|
+
const exportConfig = {
|
|
97
|
+
version: '1.0.0',
|
|
98
|
+
exportedAt: new Date().toISOString(),
|
|
99
|
+
type: isAgency ? 'agency' : 'agent',
|
|
100
|
+
config,
|
|
101
|
+
};
|
|
102
|
+
// Attach agency-specific fields when present
|
|
103
|
+
if (isAgency && agencyFields) {
|
|
104
|
+
exportConfig.agents = agencyFields.agents;
|
|
105
|
+
exportConfig.strategy = agencyFields.strategy;
|
|
106
|
+
exportConfig.adaptive = agencyFields.adaptive;
|
|
107
|
+
exportConfig.maxRounds = agencyFields.maxRounds;
|
|
108
|
+
}
|
|
109
|
+
if (metadata) {
|
|
110
|
+
exportConfig.metadata = metadata;
|
|
111
|
+
}
|
|
112
|
+
return exportConfig;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Exports an agent's configuration as a pretty-printed JSON string.
|
|
116
|
+
*
|
|
117
|
+
* @param agentInstance - The agent (or agency) instance to export.
|
|
118
|
+
* @param metadata - Optional human-readable metadata to attach.
|
|
119
|
+
* @returns JSON string with 2-space indentation.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* const json = exportAgentConfigJSON(myAgent);
|
|
124
|
+
* fs.writeFileSync('agent.json', json);
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export function exportAgentConfigJSON(agentInstance, metadata) {
|
|
128
|
+
return JSON.stringify(exportAgentConfig(agentInstance, metadata), null, 2);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Exports an agent's configuration as a YAML string.
|
|
132
|
+
*
|
|
133
|
+
* Uses the `yaml` npm package for consistent, human-readable output.
|
|
134
|
+
*
|
|
135
|
+
* @param agentInstance - The agent (or agency) instance to export.
|
|
136
|
+
* @param metadata - Optional human-readable metadata to attach.
|
|
137
|
+
* @returns YAML-formatted string.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* const yamlStr = exportAgentConfigYAML(myAgent);
|
|
142
|
+
* fs.writeFileSync('agent.yaml', yamlStr);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export function exportAgentConfigYAML(agentInstance, metadata) {
|
|
146
|
+
return YAML.stringify(exportAgentConfig(agentInstance, metadata));
|
|
147
|
+
}
|
|
148
|
+
// ============================================================================
|
|
149
|
+
// IMPORT FUNCTIONS
|
|
150
|
+
// ============================================================================
|
|
151
|
+
/**
|
|
152
|
+
* Imports an agent from an {@link AgentExportConfig} object.
|
|
153
|
+
*
|
|
154
|
+
* For `type: 'agent'`, calls the `agent()` factory with the stored config.
|
|
155
|
+
* For `type: 'agency'`, calls the `agency()` factory with the stored config
|
|
156
|
+
* plus the sub-agent roster and strategy.
|
|
157
|
+
*
|
|
158
|
+
* The imported agent is a fully functional instance with `generate`, `stream`,
|
|
159
|
+
* `session`, and `close` methods.
|
|
160
|
+
*
|
|
161
|
+
* @param exportConfig - A validated export config object.
|
|
162
|
+
* @returns A new Agent instance constructed from the config.
|
|
163
|
+
*
|
|
164
|
+
* @throws {Error} If the config is invalid or missing required fields.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```ts
|
|
168
|
+
* const config = JSON.parse(fs.readFileSync('agent.json', 'utf-8'));
|
|
169
|
+
* const agent = importAgent(config);
|
|
170
|
+
* const reply = await agent.generate('Hello!');
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export function importAgent(exportConfig) {
|
|
174
|
+
const validation = validateAgentExport(exportConfig);
|
|
175
|
+
if (!validation.valid) {
|
|
176
|
+
throw new Error(`Invalid agent export config: ${validation.errors.join('; ')}`);
|
|
177
|
+
}
|
|
178
|
+
if (exportConfig.type === 'agency' && exportConfig.agents) {
|
|
179
|
+
// Reconstruct an agency with its sub-agent roster
|
|
180
|
+
const agencyOpts = {
|
|
181
|
+
...exportConfig.config,
|
|
182
|
+
agents: exportConfig.agents,
|
|
183
|
+
strategy: exportConfig.strategy,
|
|
184
|
+
adaptive: exportConfig.adaptive,
|
|
185
|
+
maxRounds: exportConfig.maxRounds,
|
|
186
|
+
};
|
|
187
|
+
const agencyInstance = createAgency(agencyOpts);
|
|
188
|
+
// Stash config for re-export round-tripping
|
|
189
|
+
Object.defineProperty(agencyInstance, '__config', {
|
|
190
|
+
value: exportConfig.config,
|
|
191
|
+
enumerable: false,
|
|
192
|
+
configurable: true,
|
|
193
|
+
});
|
|
194
|
+
Object.defineProperty(agencyInstance, '__agencyConfig', {
|
|
195
|
+
value: {
|
|
196
|
+
agents: exportConfig.agents,
|
|
197
|
+
strategy: exportConfig.strategy,
|
|
198
|
+
adaptive: exportConfig.adaptive,
|
|
199
|
+
maxRounds: exportConfig.maxRounds,
|
|
200
|
+
},
|
|
201
|
+
enumerable: false,
|
|
202
|
+
configurable: true,
|
|
203
|
+
});
|
|
204
|
+
return agencyInstance;
|
|
205
|
+
}
|
|
206
|
+
// Single agent
|
|
207
|
+
const agentInstance = createAgent(exportConfig.config);
|
|
208
|
+
// Stash config for re-export round-tripping
|
|
209
|
+
Object.defineProperty(agentInstance, '__config', {
|
|
210
|
+
value: exportConfig.config,
|
|
211
|
+
enumerable: false,
|
|
212
|
+
configurable: true,
|
|
213
|
+
});
|
|
214
|
+
return agentInstance;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Imports an agent from a JSON string.
|
|
218
|
+
*
|
|
219
|
+
* Parses the string and delegates to {@link importAgent}.
|
|
220
|
+
*
|
|
221
|
+
* @param json - JSON string containing an {@link AgentExportConfig}.
|
|
222
|
+
* @returns A new Agent instance.
|
|
223
|
+
*
|
|
224
|
+
* @throws {SyntaxError} If the JSON is malformed.
|
|
225
|
+
* @throws {Error} If the parsed config fails validation.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```ts
|
|
229
|
+
* const agent = importAgentFromJSON(fs.readFileSync('agent.json', 'utf-8'));
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
export function importAgentFromJSON(json) {
|
|
233
|
+
const parsed = JSON.parse(json);
|
|
234
|
+
return importAgent(parsed);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Imports an agent from a YAML string.
|
|
238
|
+
*
|
|
239
|
+
* Parses the string using the `yaml` npm package and delegates to
|
|
240
|
+
* {@link importAgent}.
|
|
241
|
+
*
|
|
242
|
+
* @param yamlStr - YAML string containing an {@link AgentExportConfig}.
|
|
243
|
+
* @returns A new Agent instance.
|
|
244
|
+
*
|
|
245
|
+
* @throws {Error} If the YAML is malformed or the config fails validation.
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```ts
|
|
249
|
+
* const agent = importAgentFromYAML(fs.readFileSync('agent.yaml', 'utf-8'));
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
export function importAgentFromYAML(yamlStr) {
|
|
253
|
+
const parsed = YAML.parse(yamlStr);
|
|
254
|
+
return importAgent(parsed);
|
|
255
|
+
}
|
|
256
|
+
// ============================================================================
|
|
257
|
+
// VALIDATION
|
|
258
|
+
// ============================================================================
|
|
259
|
+
/**
|
|
260
|
+
* Validates an export config object without importing it.
|
|
261
|
+
*
|
|
262
|
+
* Checks structural correctness: schema version, required fields, type
|
|
263
|
+
* discriminator, and agency-specific field consistency. Does NOT validate
|
|
264
|
+
* the semantic correctness of the config (e.g. whether the model exists).
|
|
265
|
+
*
|
|
266
|
+
* @param config - Unknown value to validate as an {@link AgentExportConfig}.
|
|
267
|
+
* @returns Object with `valid` boolean and an array of error messages.
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```ts
|
|
271
|
+
* const result = validateAgentExport(someObject);
|
|
272
|
+
* if (!result.valid) {
|
|
273
|
+
* console.error('Validation errors:', result.errors);
|
|
274
|
+
* }
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
export function validateAgentExport(config) {
|
|
278
|
+
const errors = [];
|
|
279
|
+
if (!config || typeof config !== 'object') {
|
|
280
|
+
return { valid: false, errors: ['Config must be a non-null object'] };
|
|
281
|
+
}
|
|
282
|
+
const c = config;
|
|
283
|
+
// Version check
|
|
284
|
+
if (c.version !== '1.0.0') {
|
|
285
|
+
errors.push(`Unsupported version: ${String(c.version ?? 'missing')}. Expected "1.0.0".`);
|
|
286
|
+
}
|
|
287
|
+
// Type discriminator
|
|
288
|
+
if (c.type !== 'agent' && c.type !== 'agency') {
|
|
289
|
+
errors.push(`Invalid type: ${String(c.type ?? 'missing')}. Expected "agent" or "agency".`);
|
|
290
|
+
}
|
|
291
|
+
// exportedAt must be a string (ISO 8601)
|
|
292
|
+
if (typeof c.exportedAt !== 'string') {
|
|
293
|
+
errors.push('Missing or invalid "exportedAt" field. Expected an ISO 8601 string.');
|
|
294
|
+
}
|
|
295
|
+
// config must be an object
|
|
296
|
+
if (!c.config || typeof c.config !== 'object') {
|
|
297
|
+
errors.push('Missing or invalid "config" field. Expected an object.');
|
|
298
|
+
}
|
|
299
|
+
// Agency-specific: agents must be present when type is 'agency'
|
|
300
|
+
if (c.type === 'agency') {
|
|
301
|
+
if (!c.agents || typeof c.agents !== 'object' || Object.keys(c.agents).length === 0) {
|
|
302
|
+
errors.push('Agency export requires a non-empty "agents" roster.');
|
|
303
|
+
}
|
|
304
|
+
// Strategy, if present, must be a valid value
|
|
305
|
+
const validStrategies = new Set([
|
|
306
|
+
'sequential',
|
|
307
|
+
'parallel',
|
|
308
|
+
'debate',
|
|
309
|
+
'review-loop',
|
|
310
|
+
'hierarchical',
|
|
311
|
+
'graph',
|
|
312
|
+
]);
|
|
313
|
+
if (c.strategy !== undefined && !validStrategies.has(c.strategy)) {
|
|
314
|
+
errors.push(`Invalid strategy: ${String(c.strategy)}. Expected one of: ${[...validStrategies].join(', ')}.`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// Metadata validation (optional, but if present must be an object)
|
|
318
|
+
if (c.metadata !== undefined && (typeof c.metadata !== 'object' || c.metadata === null)) {
|
|
319
|
+
errors.push('"metadata" must be an object when present.');
|
|
320
|
+
}
|
|
321
|
+
return { valid: errors.length === 0, errors };
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=agentExport.js.map
|