@framers/agentos 0.1.120 → 0.1.122
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 +21 -0
- package/dist/api/agency.d.ts.map +1 -1
- package/dist/api/agency.js +227 -84
- package/dist/api/agency.js.map +1 -1
- package/dist/api/analyzeVideo.d.ts +127 -0
- package/dist/api/analyzeVideo.d.ts.map +1 -0
- package/dist/api/analyzeVideo.js +136 -0
- package/dist/api/analyzeVideo.js.map +1 -0
- package/dist/api/detectScenes.d.ts +82 -0
- package/dist/api/detectScenes.d.ts.map +1 -0
- package/dist/api/detectScenes.js +67 -0
- package/dist/api/detectScenes.js.map +1 -0
- package/dist/api/generateImage.d.ts +7 -0
- package/dist/api/generateImage.d.ts.map +1 -1
- package/dist/api/generateImage.js +133 -9
- package/dist/api/generateImage.js.map +1 -1
- package/dist/api/generateMusic.d.ts +98 -0
- package/dist/api/generateMusic.d.ts.map +1 -0
- package/dist/api/generateMusic.js +319 -0
- package/dist/api/generateMusic.js.map +1 -0
- package/dist/api/generateSFX.d.ts +96 -0
- package/dist/api/generateSFX.d.ts.map +1 -0
- package/dist/api/generateSFX.js +317 -0
- package/dist/api/generateSFX.js.map +1 -0
- package/dist/api/generateVideo.d.ts +113 -0
- package/dist/api/generateVideo.d.ts.map +1 -0
- package/dist/api/generateVideo.js +342 -0
- package/dist/api/generateVideo.js.map +1 -0
- package/dist/api/model.d.ts.map +1 -1
- package/dist/api/model.js +8 -4
- package/dist/api/model.js.map +1 -1
- package/dist/api/performOCR.d.ts +169 -0
- package/dist/api/performOCR.d.ts.map +1 -0
- package/dist/api/performOCR.js +198 -0
- package/dist/api/performOCR.js.map +1 -0
- package/dist/api/provider-defaults.d.ts +7 -5
- package/dist/api/provider-defaults.d.ts.map +1 -1
- package/dist/api/provider-defaults.js +32 -10
- package/dist/api/provider-defaults.js.map +1 -1
- package/dist/api/strategies/debate.d.ts.map +1 -1
- package/dist/api/strategies/debate.js +1 -0
- package/dist/api/strategies/debate.js.map +1 -1
- package/dist/api/strategies/graph.d.ts.map +1 -1
- package/dist/api/strategies/graph.js +69 -13
- package/dist/api/strategies/graph.js.map +1 -1
- package/dist/api/strategies/hierarchical.d.ts.map +1 -1
- package/dist/api/strategies/hierarchical.js +1 -0
- package/dist/api/strategies/hierarchical.js.map +1 -1
- package/dist/api/strategies/parallel.d.ts.map +1 -1
- package/dist/api/strategies/parallel.js +1 -0
- package/dist/api/strategies/parallel.js.map +1 -1
- package/dist/api/strategies/review-loop.d.ts.map +1 -1
- package/dist/api/strategies/review-loop.js +1 -0
- package/dist/api/strategies/review-loop.js.map +1 -1
- package/dist/api/strategies/sequential.d.ts.map +1 -1
- package/dist/api/strategies/sequential.js +54 -48
- package/dist/api/strategies/sequential.js.map +1 -1
- package/dist/api/streamBuffer.d.ts +20 -0
- package/dist/api/streamBuffer.d.ts.map +1 -0
- package/dist/api/streamBuffer.js +81 -0
- package/dist/api/streamBuffer.js.map +1 -0
- package/dist/api/types.d.ts +145 -5
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/channels/adapters/RedditChannelAdapter.js.map +1 -1
- package/dist/core/audio/AudioProcessor.d.ts.map +1 -1
- package/dist/core/audio/AudioProcessor.js +1 -0
- package/dist/core/audio/AudioProcessor.js.map +1 -1
- package/dist/core/audio/EnvironmentalCalibrator.d.ts.map +1 -1
- package/dist/core/audio/EnvironmentalCalibrator.js +1 -0
- package/dist/core/audio/EnvironmentalCalibrator.js.map +1 -1
- package/dist/core/audio/FallbackAudioProxy.d.ts +169 -0
- package/dist/core/audio/FallbackAudioProxy.d.ts.map +1 -0
- package/dist/core/audio/FallbackAudioProxy.js +236 -0
- package/dist/core/audio/FallbackAudioProxy.js.map +1 -0
- package/dist/core/audio/IAudioGenerator.d.ts +103 -0
- package/dist/core/audio/IAudioGenerator.d.ts.map +1 -0
- package/dist/core/audio/IAudioGenerator.js +24 -0
- package/dist/core/audio/IAudioGenerator.js.map +1 -0
- package/dist/core/audio/index.d.ts +54 -0
- package/dist/core/audio/index.d.ts.map +1 -1
- package/dist/core/audio/index.js +93 -0
- package/dist/core/audio/index.js.map +1 -1
- package/dist/core/audio/providers/AudioGenLocalProvider.d.ts +136 -0
- package/dist/core/audio/providers/AudioGenLocalProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/AudioGenLocalProvider.js +235 -0
- package/dist/core/audio/providers/AudioGenLocalProvider.js.map +1 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts +107 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.js +154 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.js.map +1 -0
- package/dist/core/audio/providers/FalAudioProvider.d.ts +207 -0
- package/dist/core/audio/providers/FalAudioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/FalAudioProvider.js +315 -0
- package/dist/core/audio/providers/FalAudioProvider.js.map +1 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.d.ts +136 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.js +235 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.js.map +1 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.d.ts +200 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.js +346 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.js.map +1 -0
- package/dist/core/audio/providers/StableAudioProvider.d.ts +138 -0
- package/dist/core/audio/providers/StableAudioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/StableAudioProvider.js +192 -0
- package/dist/core/audio/providers/StableAudioProvider.js.map +1 -0
- package/dist/core/audio/providers/SunoProvider.d.ts +182 -0
- package/dist/core/audio/providers/SunoProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/SunoProvider.js +312 -0
- package/dist/core/audio/providers/SunoProvider.js.map +1 -0
- package/dist/core/audio/providers/UdioProvider.d.ts +177 -0
- package/dist/core/audio/providers/UdioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/UdioProvider.js +305 -0
- package/dist/core/audio/providers/UdioProvider.js.map +1 -0
- package/dist/core/audio/types.d.ts +257 -0
- package/dist/core/audio/types.d.ts.map +1 -0
- package/dist/core/audio/types.js +21 -0
- package/dist/core/audio/types.js.map +1 -0
- package/dist/core/images/FallbackImageProxy.d.ts +183 -0
- package/dist/core/images/FallbackImageProxy.d.ts.map +1 -0
- package/dist/core/images/FallbackImageProxy.js +283 -0
- package/dist/core/images/FallbackImageProxy.js.map +1 -0
- package/dist/core/images/IImageProvider.d.ts +1 -1
- package/dist/core/images/IImageProvider.d.ts.map +1 -1
- package/dist/core/images/index.d.ts +1 -0
- package/dist/core/images/index.d.ts.map +1 -1
- package/dist/core/images/index.js +1 -0
- package/dist/core/images/index.js.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts +3 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.js +8 -0
- package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts +52 -0
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js +36 -0
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts +32 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.js +27 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.js.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts +38 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js +128 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts +107 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js +504 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts +60 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.js +177 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.js.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts +55 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.js +447 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.js.map +1 -0
- package/dist/core/media/ProviderPreferences.d.ts +158 -0
- package/dist/core/media/ProviderPreferences.d.ts.map +1 -0
- package/dist/core/media/ProviderPreferences.js +183 -0
- package/dist/core/media/ProviderPreferences.js.map +1 -0
- package/dist/core/subprocess/CLIRegistry.d.ts +71 -0
- package/dist/core/subprocess/CLIRegistry.d.ts.map +1 -0
- package/dist/core/subprocess/CLIRegistry.js +210 -0
- package/dist/core/subprocess/CLIRegistry.js.map +1 -0
- package/dist/core/subprocess/CLISubprocessBridge.d.ts +117 -0
- package/dist/core/subprocess/CLISubprocessBridge.d.ts.map +1 -0
- package/dist/core/subprocess/CLISubprocessBridge.js +199 -0
- package/dist/core/subprocess/CLISubprocessBridge.js.map +1 -0
- package/dist/core/subprocess/errors.d.ts +76 -0
- package/dist/core/subprocess/errors.d.ts.map +1 -0
- package/dist/core/subprocess/errors.js +75 -0
- package/dist/core/subprocess/errors.js.map +1 -0
- package/dist/core/subprocess/index.d.ts +11 -0
- package/dist/core/subprocess/index.d.ts.map +1 -0
- package/dist/core/subprocess/index.js +10 -0
- package/dist/core/subprocess/index.js.map +1 -0
- package/dist/core/subprocess/types.d.ts +100 -0
- package/dist/core/subprocess/types.d.ts.map +1 -0
- package/dist/core/subprocess/types.js +9 -0
- package/dist/core/subprocess/types.js.map +1 -0
- package/dist/core/video/FallbackVideoProxy.d.ts +166 -0
- package/dist/core/video/FallbackVideoProxy.d.ts.map +1 -0
- package/dist/core/video/FallbackVideoProxy.js +228 -0
- package/dist/core/video/FallbackVideoProxy.js.map +1 -0
- package/dist/core/video/IVideoAnalyzer.d.ts +29 -0
- package/dist/core/video/IVideoAnalyzer.d.ts.map +1 -0
- package/dist/core/video/IVideoAnalyzer.js +12 -0
- package/dist/core/video/IVideoAnalyzer.js.map +1 -0
- package/dist/core/video/IVideoGenerator.d.ts +76 -0
- package/dist/core/video/IVideoGenerator.d.ts.map +1 -0
- package/dist/core/video/IVideoGenerator.js +13 -0
- package/dist/core/video/IVideoGenerator.js.map +1 -0
- package/dist/core/video/VideoAnalyzer.d.ts +278 -0
- package/dist/core/video/VideoAnalyzer.d.ts.map +1 -0
- package/dist/core/video/VideoAnalyzer.js +648 -0
- package/dist/core/video/VideoAnalyzer.js.map +1 -0
- package/dist/core/video/index.d.ts +55 -0
- package/dist/core/video/index.d.ts.map +1 -0
- package/dist/core/video/index.js +78 -0
- package/dist/core/video/index.js.map +1 -0
- package/dist/core/video/providers/FalVideoProvider.d.ts +195 -0
- package/dist/core/video/providers/FalVideoProvider.d.ts.map +1 -0
- package/dist/core/video/providers/FalVideoProvider.js +322 -0
- package/dist/core/video/providers/FalVideoProvider.js.map +1 -0
- package/dist/core/video/providers/ReplicateVideoProvider.d.ts +194 -0
- package/dist/core/video/providers/ReplicateVideoProvider.d.ts.map +1 -0
- package/dist/core/video/providers/ReplicateVideoProvider.js +356 -0
- package/dist/core/video/providers/ReplicateVideoProvider.js.map +1 -0
- package/dist/core/video/providers/RunwayVideoProvider.d.ts +175 -0
- package/dist/core/video/providers/RunwayVideoProvider.d.ts.map +1 -0
- package/dist/core/video/providers/RunwayVideoProvider.js +293 -0
- package/dist/core/video/providers/RunwayVideoProvider.js.map +1 -0
- package/dist/core/video/types.d.ts +441 -0
- package/dist/core/video/types.d.ts.map +1 -0
- package/dist/core/video/types.js +10 -0
- package/dist/core/video/types.js.map +1 -0
- package/dist/core/vision/SceneDetector.d.ts +180 -0
- package/dist/core/vision/SceneDetector.d.ts.map +1 -0
- package/dist/core/vision/SceneDetector.js +366 -0
- package/dist/core/vision/SceneDetector.js.map +1 -0
- package/dist/core/vision/index.d.ts +2 -1
- package/dist/core/vision/index.d.ts.map +1 -1
- package/dist/core/vision/index.js +1 -0
- package/dist/core/vision/index.js.map +1 -1
- package/dist/core/vision/types.d.ts +125 -0
- package/dist/core/vision/types.d.ts.map +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts +32 -0
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.js +46 -0
- package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
- package/dist/emergent/AdaptPersonalityTool.d.ts +158 -0
- package/dist/emergent/AdaptPersonalityTool.d.ts.map +1 -0
- package/dist/emergent/AdaptPersonalityTool.js +190 -0
- package/dist/emergent/AdaptPersonalityTool.js.map +1 -0
- package/dist/emergent/CreateWorkflowTool.d.ts +181 -0
- package/dist/emergent/CreateWorkflowTool.d.ts.map +1 -0
- package/dist/emergent/CreateWorkflowTool.js +307 -0
- package/dist/emergent/CreateWorkflowTool.js.map +1 -0
- package/dist/emergent/ManageSkillsTool.d.ts +154 -0
- package/dist/emergent/ManageSkillsTool.d.ts.map +1 -0
- package/dist/emergent/ManageSkillsTool.js +241 -0
- package/dist/emergent/ManageSkillsTool.js.map +1 -0
- package/dist/emergent/PersonalityMutationStore.d.ts +183 -0
- package/dist/emergent/PersonalityMutationStore.d.ts.map +1 -0
- package/dist/emergent/PersonalityMutationStore.js +222 -0
- package/dist/emergent/PersonalityMutationStore.js.map +1 -0
- package/dist/emergent/SelfEvaluateTool.d.ts +189 -0
- package/dist/emergent/SelfEvaluateTool.d.ts.map +1 -0
- package/dist/emergent/SelfEvaluateTool.js +353 -0
- package/dist/emergent/SelfEvaluateTool.js.map +1 -0
- package/dist/emergent/SelfImprovementConfig.d.ts +166 -0
- package/dist/emergent/SelfImprovementConfig.d.ts.map +1 -0
- package/dist/emergent/SelfImprovementConfig.js +43 -0
- package/dist/emergent/SelfImprovementConfig.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 +9 -0
- package/dist/emergent/types.d.ts.map +1 -1
- package/dist/emergent/types.js.map +1 -1
- package/dist/extensions/MultiRegistryLoader.js.map +1 -1
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/CognitiveMemoryManager.d.ts +40 -0
- package/dist/memory/CognitiveMemoryManager.d.ts.map +1 -1
- package/dist/memory/CognitiveMemoryManager.js +54 -1
- package/dist/memory/CognitiveMemoryManager.js.map +1 -1
- package/dist/memory/facade/Memory.d.ts +4 -0
- package/dist/memory/facade/Memory.d.ts.map +1 -1
- package/dist/memory/facade/Memory.js +140 -4
- package/dist/memory/facade/Memory.js.map +1 -1
- package/dist/memory/facade/types.d.ts +30 -2
- package/dist/memory/facade/types.d.ts.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/types.d.ts +15 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/query-router/QueryClassifier.d.ts +192 -21
- package/dist/query-router/QueryClassifier.d.ts.map +1 -1
- package/dist/query-router/QueryClassifier.js +604 -23
- package/dist/query-router/QueryClassifier.js.map +1 -1
- package/dist/query-router/QueryDispatcher.d.ts +106 -8
- package/dist/query-router/QueryDispatcher.d.ts.map +1 -1
- package/dist/query-router/QueryDispatcher.js +387 -8
- package/dist/query-router/QueryDispatcher.js.map +1 -1
- package/dist/query-router/QueryRouter.d.ts +198 -14
- package/dist/query-router/QueryRouter.d.ts.map +1 -1
- package/dist/query-router/QueryRouter.js +738 -50
- package/dist/query-router/QueryRouter.js.map +1 -1
- package/dist/query-router/index.d.ts +1 -1
- package/dist/query-router/index.d.ts.map +1 -1
- package/dist/query-router/index.js +1 -1
- package/dist/query-router/index.js.map +1 -1
- package/dist/query-router/types.d.ts +396 -3
- package/dist/query-router/types.d.ts.map +1 -1
- package/dist/query-router/types.js +35 -0
- package/dist/query-router/types.js.map +1 -1
- package/dist/rag/HydeRetriever.d.ts +108 -0
- package/dist/rag/HydeRetriever.d.ts.map +1 -1
- package/dist/rag/HydeRetriever.js +184 -0
- package/dist/rag/HydeRetriever.js.map +1 -1
- package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
- package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/RetrievalAugmentor.d.ts +58 -0
- package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/RetrievalAugmentor.js +200 -32
- package/dist/rag/RetrievalAugmentor.js.map +1 -1
- package/dist/rag/VectorStoreManager.js +1 -1
- package/dist/rag/audit/RAGAuditCollector.d.ts +7 -0
- package/dist/rag/audit/RAGAuditCollector.d.ts.map +1 -1
- package/dist/rag/audit/RAGAuditCollector.js +10 -0
- package/dist/rag/audit/RAGAuditCollector.js.map +1 -1
- package/dist/rag/audit/RAGAuditTypes.d.ts +10 -1
- package/dist/rag/audit/RAGAuditTypes.d.ts.map +1 -1
- package/dist/rag/chunking/SemanticChunker.d.ts +210 -0
- package/dist/rag/chunking/SemanticChunker.d.ts.map +1 -0
- package/dist/rag/chunking/SemanticChunker.js +460 -0
- package/dist/rag/chunking/SemanticChunker.js.map +1 -0
- package/dist/rag/chunking/index.d.ts +10 -0
- package/dist/rag/chunking/index.d.ts.map +1 -0
- package/dist/rag/chunking/index.js +10 -0
- package/dist/rag/chunking/index.js.map +1 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts +103 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.js +315 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.js.map +1 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts +107 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.js +438 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.js.map +1 -0
- package/dist/rag/index.d.ts +15 -1
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +32 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/migration/MigrationEngine.d.ts +47 -0
- package/dist/rag/migration/MigrationEngine.d.ts.map +1 -0
- package/dist/rag/migration/MigrationEngine.js +168 -0
- package/dist/rag/migration/MigrationEngine.js.map +1 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts +23 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.js +63 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts +30 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.js +71 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts +38 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.js +114 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts +36 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.js +109 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts +35 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.js +110 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts +37 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.js +72 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts +47 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.js +93 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.js.map +1 -0
- package/dist/rag/migration/types.d.ts +108 -0
- package/dist/rag/migration/types.d.ts.map +1 -0
- package/dist/rag/migration/types.js +11 -0
- package/dist/rag/migration/types.js.map +1 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts +35 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -1
- package/dist/rag/multimodal/MultimodalIndexer.js +66 -1
- package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -1
- package/dist/rag/multimodal/types.d.ts +24 -0
- package/dist/rag/multimodal/types.d.ts.map +1 -1
- package/dist/rag/raptor/RaptorTree.d.ts +268 -0
- package/dist/rag/raptor/RaptorTree.d.ts.map +1 -0
- package/dist/rag/raptor/RaptorTree.js +443 -0
- package/dist/rag/raptor/RaptorTree.js.map +1 -0
- package/dist/rag/raptor/index.d.ts +11 -0
- package/dist/rag/raptor/index.d.ts.map +1 -0
- package/dist/rag/raptor/index.js +11 -0
- package/dist/rag/raptor/index.js.map +1 -0
- package/dist/rag/reranking/providers/CohereReranker.js.map +1 -1
- package/dist/rag/search/BM25Index.d.ts +282 -0
- package/dist/rag/search/BM25Index.d.ts.map +1 -0
- package/dist/rag/search/BM25Index.js +344 -0
- package/dist/rag/search/BM25Index.js.map +1 -0
- package/dist/rag/search/HybridSearcher.d.ts +198 -0
- package/dist/rag/search/HybridSearcher.d.ts.map +1 -0
- package/dist/rag/search/HybridSearcher.js +316 -0
- package/dist/rag/search/HybridSearcher.js.map +1 -0
- package/dist/rag/search/index.d.ts +12 -0
- package/dist/rag/search/index.d.ts.map +1 -0
- package/dist/rag/search/index.js +12 -0
- package/dist/rag/search/index.js.map +1 -0
- package/dist/rag/setup/DockerDetector.d.ts +67 -0
- package/dist/rag/setup/DockerDetector.d.ts.map +1 -0
- package/dist/rag/setup/DockerDetector.js +125 -0
- package/dist/rag/setup/DockerDetector.js.map +1 -0
- package/dist/rag/setup/PostgresSetup.d.ts +20 -0
- package/dist/rag/setup/PostgresSetup.d.ts.map +1 -0
- package/dist/rag/setup/PostgresSetup.js +133 -0
- package/dist/rag/setup/PostgresSetup.js.map +1 -0
- package/dist/rag/setup/QdrantSetup.d.ts +26 -0
- package/dist/rag/setup/QdrantSetup.d.ts.map +1 -0
- package/dist/rag/setup/QdrantSetup.js +96 -0
- package/dist/rag/setup/QdrantSetup.js.map +1 -0
- package/dist/rag/setup/types.d.ts +55 -0
- package/dist/rag/setup/types.d.ts.map +1 -0
- package/dist/rag/setup/types.js +6 -0
- package/dist/rag/setup/types.js.map +1 -0
- package/dist/rag/unified/UnifiedRetriever.d.ts +472 -0
- package/dist/rag/unified/UnifiedRetriever.d.ts.map +1 -0
- package/dist/rag/unified/UnifiedRetriever.js +887 -0
- package/dist/rag/unified/UnifiedRetriever.js.map +1 -0
- package/dist/rag/unified/index.d.ts +24 -0
- package/dist/rag/unified/index.d.ts.map +1 -0
- package/dist/rag/unified/index.js +23 -0
- package/dist/rag/unified/index.js.map +1 -0
- package/dist/rag/unified/types.d.ts +546 -0
- package/dist/rag/unified/types.d.ts.map +1 -0
- package/dist/rag/unified/types.js +177 -0
- package/dist/rag/unified/types.js.map +1 -0
- package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -1
- package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -1
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +1 -1
- package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview CreateWorkflowTool — ITool implementation that enables agents
|
|
3
|
+
* to compose multi-step tool workflows at runtime and execute them as a unit.
|
|
4
|
+
*
|
|
5
|
+
* @module @framers/agentos/emergent/CreateWorkflowTool
|
|
6
|
+
*
|
|
7
|
+
* Agents call `create_workflow` to define, run, and list workflows. A workflow
|
|
8
|
+
* is a named sequence of tool invocations with reference resolution:
|
|
9
|
+
* - `$input` — the workflow's input argument
|
|
10
|
+
* - `$prev` — the output of the immediately preceding step
|
|
11
|
+
* - `$steps[N]` — the output of the Nth step (zero-indexed)
|
|
12
|
+
*
|
|
13
|
+
* Constraints:
|
|
14
|
+
* - Maximum step count is enforced via `config.maxSteps`.
|
|
15
|
+
* - Only tools from `config.allowedTools` may be used in steps.
|
|
16
|
+
* - Recursive workflow creation is blocked (`create_workflow` cannot appear in steps).
|
|
17
|
+
* - Each step execution has a 30-second timeout enforced via `Promise.race`.
|
|
18
|
+
*/
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// TOOL IMPLEMENTATION
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/** Default per-step execution timeout in milliseconds. */
|
|
23
|
+
const STEP_TIMEOUT_MS = 30000;
|
|
24
|
+
/**
|
|
25
|
+
* ITool implementation enabling agents to compose, execute, and list
|
|
26
|
+
* multi-step tool workflows at runtime.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const tool = new CreateWorkflowTool({
|
|
31
|
+
* config: { maxSteps: 10, allowedTools: ['web_search', 'summarize'] },
|
|
32
|
+
* executeTool: (name, args) => orchestrator.execute(name, args),
|
|
33
|
+
* listTools: () => orchestrator.listToolNames(),
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* // Create a workflow
|
|
37
|
+
* const createResult = await tool.execute({
|
|
38
|
+
* action: 'create',
|
|
39
|
+
* name: 'search-and-summarize',
|
|
40
|
+
* description: 'Search the web and summarize results.',
|
|
41
|
+
* steps: [
|
|
42
|
+
* { tool: 'web_search', args: { query: '$input' } },
|
|
43
|
+
* { tool: 'summarize', args: { text: '$prev' } },
|
|
44
|
+
* ],
|
|
45
|
+
* }, context);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export class CreateWorkflowTool {
|
|
49
|
+
/**
|
|
50
|
+
* Create a new CreateWorkflowTool.
|
|
51
|
+
*
|
|
52
|
+
* @param deps - Injected dependencies including config, tool executor,
|
|
53
|
+
* and tool lister.
|
|
54
|
+
*/
|
|
55
|
+
constructor(deps) {
|
|
56
|
+
/** @inheritdoc */
|
|
57
|
+
this.id = 'com.framers.emergent.create-workflow';
|
|
58
|
+
/** @inheritdoc */
|
|
59
|
+
this.name = 'create_workflow';
|
|
60
|
+
/** @inheritdoc */
|
|
61
|
+
this.displayName = 'Create Workflow';
|
|
62
|
+
/** @inheritdoc */
|
|
63
|
+
this.description = 'Create, run, or list multi-step tool workflows. Steps execute sequentially ' +
|
|
64
|
+
'with reference resolution ($input, $prev, $steps[N]).';
|
|
65
|
+
/** @inheritdoc */
|
|
66
|
+
this.category = 'emergent';
|
|
67
|
+
/** @inheritdoc */
|
|
68
|
+
this.hasSideEffects = true;
|
|
69
|
+
/** @inheritdoc */
|
|
70
|
+
this.inputSchema = {
|
|
71
|
+
type: 'object',
|
|
72
|
+
properties: {
|
|
73
|
+
action: {
|
|
74
|
+
type: 'string',
|
|
75
|
+
enum: ['create', 'run', 'list'],
|
|
76
|
+
description: 'The workflow action to perform.',
|
|
77
|
+
},
|
|
78
|
+
name: {
|
|
79
|
+
type: 'string',
|
|
80
|
+
description: 'Workflow name (required for create).',
|
|
81
|
+
},
|
|
82
|
+
description: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
description: 'Workflow description (required for create).',
|
|
85
|
+
},
|
|
86
|
+
steps: {
|
|
87
|
+
type: 'array',
|
|
88
|
+
description: 'Ordered list of workflow steps (required for create).',
|
|
89
|
+
items: {
|
|
90
|
+
type: 'object',
|
|
91
|
+
properties: {
|
|
92
|
+
tool: { type: 'string' },
|
|
93
|
+
args: { type: 'object' },
|
|
94
|
+
},
|
|
95
|
+
required: ['tool', 'args'],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
workflowId: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
description: 'Workflow ID (required for run).',
|
|
101
|
+
},
|
|
102
|
+
input: {
|
|
103
|
+
description: 'Input data passed to the workflow when running.',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
required: ['action'],
|
|
107
|
+
};
|
|
108
|
+
/** Session-scoped workflow storage. */
|
|
109
|
+
this.workflows = new Map();
|
|
110
|
+
/** Monotonic counter for generating workflow IDs. */
|
|
111
|
+
this.nextId = 1;
|
|
112
|
+
this.deps = deps;
|
|
113
|
+
}
|
|
114
|
+
// --------------------------------------------------------------------------
|
|
115
|
+
// EXECUTE
|
|
116
|
+
// --------------------------------------------------------------------------
|
|
117
|
+
/**
|
|
118
|
+
* Execute the requested workflow action.
|
|
119
|
+
*
|
|
120
|
+
* @param args - Action type and associated parameters.
|
|
121
|
+
* @param _context - Tool execution context (unused but required by ITool).
|
|
122
|
+
* @returns A {@link ToolExecutionResult} wrapping the action outcome.
|
|
123
|
+
*/
|
|
124
|
+
async execute(args, _context) {
|
|
125
|
+
switch (args.action) {
|
|
126
|
+
case 'create':
|
|
127
|
+
return this.handleCreate(args);
|
|
128
|
+
case 'run':
|
|
129
|
+
return this.handleRun(args);
|
|
130
|
+
case 'list':
|
|
131
|
+
return this.handleList();
|
|
132
|
+
default:
|
|
133
|
+
return {
|
|
134
|
+
success: false,
|
|
135
|
+
error: `Unknown action "${args.action}". Must be one of: create, run, list`,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// --------------------------------------------------------------------------
|
|
140
|
+
// ACTION HANDLERS
|
|
141
|
+
// --------------------------------------------------------------------------
|
|
142
|
+
/**
|
|
143
|
+
* Create and store a new workflow definition.
|
|
144
|
+
*
|
|
145
|
+
* Validates:
|
|
146
|
+
* - Required fields (name, description, steps) are present
|
|
147
|
+
* - Step count does not exceed maxSteps
|
|
148
|
+
* - No step references `create_workflow` (prevent recursion)
|
|
149
|
+
* - All step tools exist in the available tool list
|
|
150
|
+
*/
|
|
151
|
+
async handleCreate(args) {
|
|
152
|
+
const { name, description, steps } = args;
|
|
153
|
+
if (!name || typeof name !== 'string') {
|
|
154
|
+
return { success: false, error: 'name is required for the create action' };
|
|
155
|
+
}
|
|
156
|
+
if (!description || typeof description !== 'string') {
|
|
157
|
+
return { success: false, error: 'description is required for the create action' };
|
|
158
|
+
}
|
|
159
|
+
if (!steps || !Array.isArray(steps) || steps.length === 0) {
|
|
160
|
+
return { success: false, error: 'steps is required and must be a non-empty array' };
|
|
161
|
+
}
|
|
162
|
+
// Check maxSteps
|
|
163
|
+
if (steps.length > this.deps.config.maxSteps) {
|
|
164
|
+
return {
|
|
165
|
+
success: false,
|
|
166
|
+
error: `Workflow exceeds maxSteps limit (${steps.length} > ${this.deps.config.maxSteps})`,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
// Block recursive workflow creation
|
|
170
|
+
for (const step of steps) {
|
|
171
|
+
if (step.tool === 'create_workflow') {
|
|
172
|
+
return {
|
|
173
|
+
success: false,
|
|
174
|
+
error: 'Workflows cannot contain create_workflow steps (recursion not allowed)',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Validate all tools exist
|
|
179
|
+
const availableTools = this.deps.listTools();
|
|
180
|
+
for (const step of steps) {
|
|
181
|
+
if (!availableTools.includes(step.tool)) {
|
|
182
|
+
return {
|
|
183
|
+
success: false,
|
|
184
|
+
error: `Tool "${step.tool}" referenced in step is not available`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const id = `workflow-${this.nextId++}`;
|
|
189
|
+
const workflow = {
|
|
190
|
+
id,
|
|
191
|
+
name,
|
|
192
|
+
description,
|
|
193
|
+
steps,
|
|
194
|
+
createdAt: new Date().toISOString(),
|
|
195
|
+
runCount: 0,
|
|
196
|
+
};
|
|
197
|
+
this.workflows.set(id, workflow);
|
|
198
|
+
return {
|
|
199
|
+
success: true,
|
|
200
|
+
output: { workflowId: id, name, stepCount: steps.length },
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Run a stored workflow, executing steps sequentially with reference resolution.
|
|
205
|
+
*
|
|
206
|
+
* Reference resolution:
|
|
207
|
+
* - `$input` — the workflow's input argument
|
|
208
|
+
* - `$prev` — the output of the immediately preceding step
|
|
209
|
+
* - `$steps[N]` — the output of the Nth step (zero-indexed)
|
|
210
|
+
*
|
|
211
|
+
* Each step has a 30-second timeout enforced via Promise.race.
|
|
212
|
+
*/
|
|
213
|
+
async handleRun(args) {
|
|
214
|
+
const { workflowId, input } = args;
|
|
215
|
+
if (!workflowId) {
|
|
216
|
+
return { success: false, error: 'workflowId is required for the run action' };
|
|
217
|
+
}
|
|
218
|
+
const workflow = this.workflows.get(workflowId);
|
|
219
|
+
if (!workflow) {
|
|
220
|
+
return { success: false, error: `Workflow "${workflowId}" not found` };
|
|
221
|
+
}
|
|
222
|
+
const stepResults = [];
|
|
223
|
+
let prev = undefined;
|
|
224
|
+
for (let i = 0; i < workflow.steps.length; i++) {
|
|
225
|
+
const step = workflow.steps[i];
|
|
226
|
+
// Resolve references in step args
|
|
227
|
+
const resolvedArgs = this.resolveReferences(step.args, input, prev, stepResults);
|
|
228
|
+
try {
|
|
229
|
+
// 30-second timeout per step via Promise.race
|
|
230
|
+
const result = await Promise.race([
|
|
231
|
+
this.deps.executeTool(step.tool, resolvedArgs),
|
|
232
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`Step ${i} ("${step.tool}") timed out after ${STEP_TIMEOUT_MS}ms`)), STEP_TIMEOUT_MS)),
|
|
233
|
+
]);
|
|
234
|
+
stepResults.push(result);
|
|
235
|
+
prev = result;
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
return {
|
|
239
|
+
success: false,
|
|
240
|
+
error: `Workflow failed at step ${i} ("${step.tool}"): ${err.message ?? String(err)}`,
|
|
241
|
+
output: { completedSteps: i, stepResults },
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
workflow.runCount++;
|
|
246
|
+
return {
|
|
247
|
+
success: true,
|
|
248
|
+
output: {
|
|
249
|
+
workflowId: workflow.id,
|
|
250
|
+
runCount: workflow.runCount,
|
|
251
|
+
stepResults,
|
|
252
|
+
finalOutput: prev,
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* List all stored workflows.
|
|
258
|
+
*/
|
|
259
|
+
async handleList() {
|
|
260
|
+
const workflows = Array.from(this.workflows.values()).map((w) => ({
|
|
261
|
+
id: w.id,
|
|
262
|
+
name: w.name,
|
|
263
|
+
description: w.description,
|
|
264
|
+
stepCount: w.steps.length,
|
|
265
|
+
runCount: w.runCount,
|
|
266
|
+
createdAt: w.createdAt,
|
|
267
|
+
}));
|
|
268
|
+
return { success: true, output: { workflows } };
|
|
269
|
+
}
|
|
270
|
+
// --------------------------------------------------------------------------
|
|
271
|
+
// REFERENCE RESOLUTION
|
|
272
|
+
// --------------------------------------------------------------------------
|
|
273
|
+
/**
|
|
274
|
+
* Resolve `$input`, `$prev`, and `$steps[N]` references in step arguments.
|
|
275
|
+
*
|
|
276
|
+
* Uses JSON.stringify → string replacement → JSON.parse cycle for simple
|
|
277
|
+
* reference resolution. References appearing as standalone string values
|
|
278
|
+
* are replaced with the actual object; references embedded in larger strings
|
|
279
|
+
* are serialized inline.
|
|
280
|
+
*
|
|
281
|
+
* @param args - The step arguments potentially containing references.
|
|
282
|
+
* @param input - The workflow input value.
|
|
283
|
+
* @param prev - The output of the previous step.
|
|
284
|
+
* @param stepResults - Array of all completed step outputs.
|
|
285
|
+
* @returns Resolved arguments with references replaced by actual values.
|
|
286
|
+
*/
|
|
287
|
+
resolveReferences(args, input, prev, stepResults) {
|
|
288
|
+
const serialized = JSON.stringify(args);
|
|
289
|
+
// Replace $steps[N] references first (more specific pattern)
|
|
290
|
+
let resolved = serialized.replace(/"\$steps\[(\d+)\]"/g, (_match, idx) => {
|
|
291
|
+
const index = parseInt(idx, 10);
|
|
292
|
+
return JSON.stringify(stepResults[index] ?? null);
|
|
293
|
+
});
|
|
294
|
+
// Replace $input references
|
|
295
|
+
resolved = resolved.replace(/"\$input"/g, JSON.stringify(input ?? null));
|
|
296
|
+
// Replace $prev references
|
|
297
|
+
resolved = resolved.replace(/"\$prev"/g, JSON.stringify(prev ?? null));
|
|
298
|
+
try {
|
|
299
|
+
return JSON.parse(resolved);
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
// If parsing fails (unlikely), return original args
|
|
303
|
+
return args;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=CreateWorkflowTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateWorkflowTool.js","sourceRoot":"","sources":["../../src/emergent/CreateWorkflowTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview ManageSkillsTool — ITool implementation that enables agents to
|
|
3
|
+
* dynamically enable, disable, and search for skills at runtime.
|
|
4
|
+
*
|
|
5
|
+
* @module @framers/agentos/emergent/ManageSkillsTool
|
|
6
|
+
*
|
|
7
|
+
* Agents call `manage_skills` to self-modify their active skill set. The tool
|
|
8
|
+
* enforces an allowlist-based permission model:
|
|
9
|
+
* - Wildcard (`'*'`) allows all skills unconditionally.
|
|
10
|
+
* - Exact skill ID matches are always permitted.
|
|
11
|
+
* - Category-based allowlist entries (`'category:X'`) permit any skill in that category.
|
|
12
|
+
* - Same-category expansion: if any skill in category X is already active, other
|
|
13
|
+
* skills in X are also permitted without explicit allowlist entry.
|
|
14
|
+
* - New categories may require approval when `requireApprovalForNewCategories` is set.
|
|
15
|
+
*
|
|
16
|
+
* Locked skills cannot be disabled.
|
|
17
|
+
*/
|
|
18
|
+
import type { ITool, ToolExecutionResult, ToolExecutionContext, JSONSchemaObject } from '../core/tools/ITool.js';
|
|
19
|
+
/**
|
|
20
|
+
* Minimal skill descriptor used for active skill listing and search results.
|
|
21
|
+
*/
|
|
22
|
+
export interface SkillDescriptor {
|
|
23
|
+
/** Unique skill identifier. */
|
|
24
|
+
skillId: string;
|
|
25
|
+
/** Human-readable skill name. */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Category the skill belongs to. */
|
|
28
|
+
category: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extended skill descriptor returned by search, including a description.
|
|
32
|
+
*/
|
|
33
|
+
export interface SkillSearchResult extends SkillDescriptor {
|
|
34
|
+
/** Natural language description of the skill's purpose. */
|
|
35
|
+
description: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Input arguments accepted by the `manage_skills` tool.
|
|
39
|
+
* Discriminated on the `action` field.
|
|
40
|
+
*/
|
|
41
|
+
export interface ManageSkillsInput extends Record<string, any> {
|
|
42
|
+
/** The action to perform: enable, disable, search, or list. */
|
|
43
|
+
action: 'enable' | 'disable' | 'search' | 'list';
|
|
44
|
+
/** Skill ID to enable or disable (required for enable/disable). */
|
|
45
|
+
skillId?: string;
|
|
46
|
+
/** Search query string (required for search). */
|
|
47
|
+
query?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Dependencies injected into the {@link ManageSkillsTool} constructor.
|
|
51
|
+
*/
|
|
52
|
+
export interface ManageSkillsDeps {
|
|
53
|
+
/** Configuration controlling allowlist and approval requirements. */
|
|
54
|
+
config: {
|
|
55
|
+
/**
|
|
56
|
+
* Allowlist of permitted skill IDs or patterns.
|
|
57
|
+
* - `['*']` → all skills allowed.
|
|
58
|
+
* - Exact skill IDs are matched literally.
|
|
59
|
+
* - `'category:X'` → any skill in category X is allowed.
|
|
60
|
+
*/
|
|
61
|
+
allowlist: string[];
|
|
62
|
+
/** Whether enabling skills in new categories requires approval. */
|
|
63
|
+
requireApprovalForNewCategories: boolean;
|
|
64
|
+
};
|
|
65
|
+
/** Returns the currently active skills for the agent. */
|
|
66
|
+
getActiveSkills: () => SkillDescriptor[];
|
|
67
|
+
/** Returns the list of skill IDs that cannot be disabled. */
|
|
68
|
+
getLockedSkills: () => string[];
|
|
69
|
+
/** Load and activate a skill by its ID. Returns the skill descriptor. */
|
|
70
|
+
loadSkill: (id: string) => Promise<SkillDescriptor>;
|
|
71
|
+
/** Unload and deactivate a skill by its ID. */
|
|
72
|
+
unloadSkill: (id: string) => void;
|
|
73
|
+
/** Search for available skills matching a query string. */
|
|
74
|
+
searchSkills: (query: string) => SkillSearchResult[];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* ITool implementation enabling agents to dynamically manage their skill set
|
|
78
|
+
* at runtime, subject to allowlist and lock constraints.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* const tool = new ManageSkillsTool({
|
|
83
|
+
* config: { allowlist: ['*'], requireApprovalForNewCategories: false },
|
|
84
|
+
* getActiveSkills: () => agent.skills,
|
|
85
|
+
* getLockedSkills: () => ['core-reasoning'],
|
|
86
|
+
* loadSkill: (id) => skillRegistry.load(id),
|
|
87
|
+
* unloadSkill: (id) => skillRegistry.unload(id),
|
|
88
|
+
* searchSkills: (q) => skillRegistry.search(q),
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare class ManageSkillsTool implements ITool<ManageSkillsInput> {
|
|
93
|
+
/** @inheritdoc */
|
|
94
|
+
readonly id = "com.framers.emergent.manage-skills";
|
|
95
|
+
/** @inheritdoc */
|
|
96
|
+
readonly name = "manage_skills";
|
|
97
|
+
/** @inheritdoc */
|
|
98
|
+
readonly displayName = "Manage Skills";
|
|
99
|
+
/** @inheritdoc */
|
|
100
|
+
readonly description: string;
|
|
101
|
+
/** @inheritdoc */
|
|
102
|
+
readonly category = "emergent";
|
|
103
|
+
/** @inheritdoc */
|
|
104
|
+
readonly hasSideEffects = true;
|
|
105
|
+
/** @inheritdoc */
|
|
106
|
+
readonly inputSchema: JSONSchemaObject;
|
|
107
|
+
/** Injected dependencies. */
|
|
108
|
+
private readonly deps;
|
|
109
|
+
/**
|
|
110
|
+
* Create a new ManageSkillsTool.
|
|
111
|
+
*
|
|
112
|
+
* @param deps - Injected dependencies including config, skill accessors,
|
|
113
|
+
* and loader/unloader functions.
|
|
114
|
+
*/
|
|
115
|
+
constructor(deps: ManageSkillsDeps);
|
|
116
|
+
/**
|
|
117
|
+
* Execute the requested skill management action.
|
|
118
|
+
*
|
|
119
|
+
* @param args - Action type and associated parameters.
|
|
120
|
+
* @param _context - Tool execution context (unused but required by ITool).
|
|
121
|
+
* @returns A {@link ToolExecutionResult} wrapping the action outcome.
|
|
122
|
+
*/
|
|
123
|
+
execute(args: ManageSkillsInput, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
124
|
+
/**
|
|
125
|
+
* Enable a skill after checking allowlist permissions.
|
|
126
|
+
*
|
|
127
|
+
* Allowlist resolution order:
|
|
128
|
+
* 1. `['*']` → always allowed
|
|
129
|
+
* 2. Exact skillId match → allowed
|
|
130
|
+
* 3. `'category:X'` in allowlist and skill.category === X → allowed
|
|
131
|
+
* 4. Skill's category already represented in active skills → allowed (same-category expansion)
|
|
132
|
+
* 5. Otherwise → `requires_approval` if requireApprovalForNewCategories, else `denied`
|
|
133
|
+
*/
|
|
134
|
+
private handleEnable;
|
|
135
|
+
/**
|
|
136
|
+
* Resolve whether a skill is permitted by the allowlist configuration.
|
|
137
|
+
*
|
|
138
|
+
* @returns `'allowed'`, `'requires_approval'`, or `'denied'`
|
|
139
|
+
*/
|
|
140
|
+
private resolvePermission;
|
|
141
|
+
/**
|
|
142
|
+
* Disable a skill, rejecting if it is locked.
|
|
143
|
+
*/
|
|
144
|
+
private handleDisable;
|
|
145
|
+
/**
|
|
146
|
+
* Search for available skills by query string.
|
|
147
|
+
*/
|
|
148
|
+
private handleSearch;
|
|
149
|
+
/**
|
|
150
|
+
* List currently active skills.
|
|
151
|
+
*/
|
|
152
|
+
private handleList;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=ManageSkillsTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManageSkillsTool.d.ts","sourceRoot":"","sources":["../../src/emergent/ManageSkillsTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAMhC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,+DAA+D;IAC/D,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,MAAM,EAAE;QACN;;;;;WAKG;QACH,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,mEAAmE;QACnE,+BAA+B,EAAE,OAAO,CAAC;KAC1C,CAAC;IACF,yDAAyD;IACzD,eAAe,EAAE,MAAM,eAAe,EAAE,CAAC;IACzC,6DAA6D;IAC7D,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,+CAA+C;IAC/C,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,2DAA2D;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,EAAE,CAAC;CACtD;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,CAAC;IAC/D,kBAAkB;IAClB,QAAQ,CAAC,EAAE,wCAAwC;IAEnD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,mBAAmB;IAEvC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,SAE2B;IAE/C,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,cAAc;IAE/B,kBAAkB;IAClB,QAAQ,CAAC,cAAc,QAAQ;IAE/B,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAkBpC;IAEF,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IAExC;;;;;OAKG;gBACS,IAAI,EAAE,gBAAgB;IAQlC;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAsB/B;;;;;;;;;OASG;YACW,YAAY;IAwD1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;YACW,aAAa;IAuB3B;;OAEG;YACW,YAAY;IAe1B;;OAEG;YACW,UAAU;CAQzB"}
|