@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,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/audio/providers/MusicGenLocalProvider
|
|
3
|
+
*
|
|
4
|
+
* Local music generation provider using Meta's MusicGen model via
|
|
5
|
+
* the `@huggingface/transformers` library.
|
|
6
|
+
*
|
|
7
|
+
* MusicGen runs entirely on the local machine without any API keys or
|
|
8
|
+
* network requests. The model is loaded lazily on first use through the
|
|
9
|
+
* `pipeline('text-to-audio', ...)` API from HuggingFace Transformers.js.
|
|
10
|
+
*
|
|
11
|
+
* ## Requirements
|
|
12
|
+
*
|
|
13
|
+
* - `@huggingface/transformers` must be installed as a peer dependency.
|
|
14
|
+
* If not installed, the provider throws a helpful error message.
|
|
15
|
+
* - Sufficient RAM/VRAM for model inference (Xenova/musicgen-small ~1GB).
|
|
16
|
+
*
|
|
17
|
+
* ## Supported models
|
|
18
|
+
*
|
|
19
|
+
* | Model ID | Description |
|
|
20
|
+
* |----------------------------|-----------------------------------|
|
|
21
|
+
* | `Xenova/musicgen-small` | MusicGen Small — default, ~1GB |
|
|
22
|
+
*
|
|
23
|
+
* ## API flow (local inference)
|
|
24
|
+
*
|
|
25
|
+
* 1. **Load** — `pipeline('text-to-audio', modelId)` (lazy, cached).
|
|
26
|
+
* 2. **Generate** — `pipeline(prompt, { max_new_tokens })` returns audio tensor.
|
|
27
|
+
* 3. **Encode** — Convert raw audio data to WAV format.
|
|
28
|
+
*
|
|
29
|
+
* @see {@link IAudioGenerator} for the provider interface contract.
|
|
30
|
+
* @see {@link AudioGenLocalProvider} for the SFX counterpart.
|
|
31
|
+
*/
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Helpers
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
/**
|
|
36
|
+
* Encode raw PCM float32 audio samples into a WAV file buffer.
|
|
37
|
+
*
|
|
38
|
+
* Creates a minimal WAV header (44 bytes) followed by 16-bit PCM samples
|
|
39
|
+
* at the specified sample rate.
|
|
40
|
+
*
|
|
41
|
+
* @param samples - Float32 audio samples (range -1 to 1).
|
|
42
|
+
* @param sampleRate - Sample rate in Hz (e.g. 32000).
|
|
43
|
+
* @returns A Buffer containing valid WAV file data.
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
function encodeWav(samples, sampleRate) {
|
|
47
|
+
const numChannels = 1;
|
|
48
|
+
const bitsPerSample = 16;
|
|
49
|
+
const byteRate = sampleRate * numChannels * (bitsPerSample / 8);
|
|
50
|
+
const blockAlign = numChannels * (bitsPerSample / 8);
|
|
51
|
+
const dataSize = samples.length * (bitsPerSample / 8);
|
|
52
|
+
const headerSize = 44;
|
|
53
|
+
const buffer = Buffer.alloc(headerSize + dataSize);
|
|
54
|
+
// RIFF header
|
|
55
|
+
buffer.write('RIFF', 0);
|
|
56
|
+
buffer.writeUInt32LE(36 + dataSize, 4);
|
|
57
|
+
buffer.write('WAVE', 8);
|
|
58
|
+
// fmt sub-chunk
|
|
59
|
+
buffer.write('fmt ', 12);
|
|
60
|
+
buffer.writeUInt32LE(16, 16);
|
|
61
|
+
buffer.writeUInt16LE(1, 20); // PCM format
|
|
62
|
+
buffer.writeUInt16LE(numChannels, 22);
|
|
63
|
+
buffer.writeUInt32LE(sampleRate, 24);
|
|
64
|
+
buffer.writeUInt32LE(byteRate, 28);
|
|
65
|
+
buffer.writeUInt16LE(blockAlign, 32);
|
|
66
|
+
buffer.writeUInt16LE(bitsPerSample, 34);
|
|
67
|
+
// data sub-chunk
|
|
68
|
+
buffer.write('data', 36);
|
|
69
|
+
buffer.writeUInt32LE(dataSize, 40);
|
|
70
|
+
// Write 16-bit PCM samples
|
|
71
|
+
for (let i = 0; i < samples.length; i++) {
|
|
72
|
+
const clamped = Math.max(-1, Math.min(1, samples[i]));
|
|
73
|
+
const int16 = clamped < 0 ? clamped * 0x8000 : clamped * 0x7FFF;
|
|
74
|
+
buffer.writeInt16LE(Math.round(int16), headerSize + i * 2);
|
|
75
|
+
}
|
|
76
|
+
return buffer;
|
|
77
|
+
}
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
// Implementation
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
/**
|
|
82
|
+
* Local music generation provider using Meta's MusicGen model.
|
|
83
|
+
*
|
|
84
|
+
* Runs inference entirely on the local machine via `@huggingface/transformers`.
|
|
85
|
+
* The model is loaded lazily on first call to `generateMusic()` or
|
|
86
|
+
* explicitly via `initialize()`.
|
|
87
|
+
*
|
|
88
|
+
* @implements {IAudioGenerator}
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const provider = new MusicGenLocalProvider();
|
|
93
|
+
* await provider.initialize({ modelId: 'Xenova/musicgen-small' });
|
|
94
|
+
*
|
|
95
|
+
* const result = await provider.generateMusic({
|
|
96
|
+
* prompt: 'A calm ambient soundscape with synth pads',
|
|
97
|
+
* durationSec: 10,
|
|
98
|
+
* });
|
|
99
|
+
* console.log(result.audio[0].base64?.substring(0, 50) + '...');
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export class MusicGenLocalProvider {
|
|
103
|
+
constructor() {
|
|
104
|
+
/** @inheritdoc */
|
|
105
|
+
this.providerId = 'musicgen-local';
|
|
106
|
+
/** @inheritdoc */
|
|
107
|
+
this.isInitialized = false;
|
|
108
|
+
/** The loaded text-to-audio pipeline instance. */
|
|
109
|
+
this._pipeline = null;
|
|
110
|
+
/** The resolved model ID. */
|
|
111
|
+
this._modelId = 'Xenova/musicgen-small';
|
|
112
|
+
}
|
|
113
|
+
// -------------------------------------------------------------------------
|
|
114
|
+
// Lifecycle
|
|
115
|
+
// -------------------------------------------------------------------------
|
|
116
|
+
/**
|
|
117
|
+
* Initialize the provider and optionally pre-load the model.
|
|
118
|
+
*
|
|
119
|
+
* The model is loaded lazily on first generation call. Calling initialize
|
|
120
|
+
* sets the configuration but does not load the model unless the pipeline
|
|
121
|
+
* was already created.
|
|
122
|
+
*
|
|
123
|
+
* @param config - Configuration object with optional `modelId`.
|
|
124
|
+
*/
|
|
125
|
+
async initialize(config) {
|
|
126
|
+
if (typeof config.modelId === 'string' && config.modelId.trim()) {
|
|
127
|
+
this._modelId = config.modelId.trim();
|
|
128
|
+
}
|
|
129
|
+
this.defaultModelId = this._modelId;
|
|
130
|
+
this.isInitialized = true;
|
|
131
|
+
}
|
|
132
|
+
// -------------------------------------------------------------------------
|
|
133
|
+
// Generation
|
|
134
|
+
// -------------------------------------------------------------------------
|
|
135
|
+
/**
|
|
136
|
+
* Generate music from a text prompt using the local MusicGen model.
|
|
137
|
+
*
|
|
138
|
+
* On first call, loads the model pipeline (may take several seconds).
|
|
139
|
+
* Subsequent calls reuse the cached pipeline instance.
|
|
140
|
+
*
|
|
141
|
+
* @param request - Music generation request with prompt and optional params.
|
|
142
|
+
* @returns The generated audio result envelope with base64-encoded WAV data.
|
|
143
|
+
*
|
|
144
|
+
* @throws {Error} If the provider is not initialized.
|
|
145
|
+
* @throws {Error} If `@huggingface/transformers` is not installed.
|
|
146
|
+
*/
|
|
147
|
+
async generateMusic(request) {
|
|
148
|
+
if (!this.isInitialized) {
|
|
149
|
+
throw new Error('MusicGen local provider is not initialized. Call initialize() first.');
|
|
150
|
+
}
|
|
151
|
+
const pipe = await this._ensurePipeline();
|
|
152
|
+
const modelId = request.modelId || this._modelId;
|
|
153
|
+
// Estimate max_new_tokens from duration. MusicGen generates at ~50 tokens/second.
|
|
154
|
+
const durationSec = request.durationSec ?? 10;
|
|
155
|
+
const maxNewTokens = Math.ceil(durationSec * 50);
|
|
156
|
+
const output = await pipe(request.prompt, { max_new_tokens: maxNewTokens });
|
|
157
|
+
// The pipeline returns { audio: Float32Array, sampling_rate: number }
|
|
158
|
+
const audioData = output;
|
|
159
|
+
const wavBuffer = encodeWav(audioData.audio, audioData.sampling_rate);
|
|
160
|
+
const base64 = wavBuffer.toString('base64');
|
|
161
|
+
return {
|
|
162
|
+
created: Math.floor(Date.now() / 1000),
|
|
163
|
+
modelId,
|
|
164
|
+
providerId: this.providerId,
|
|
165
|
+
audio: [{
|
|
166
|
+
base64,
|
|
167
|
+
mimeType: 'audio/wav',
|
|
168
|
+
durationSec,
|
|
169
|
+
providerMetadata: {
|
|
170
|
+
sampleRate: audioData.sampling_rate,
|
|
171
|
+
totalSamples: audioData.audio.length,
|
|
172
|
+
},
|
|
173
|
+
}],
|
|
174
|
+
usage: {
|
|
175
|
+
totalAudioClips: 1,
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* SFX generation is not supported by MusicGen.
|
|
181
|
+
*
|
|
182
|
+
* @throws {Error} Always throws — use {@link AudioGenLocalProvider} instead.
|
|
183
|
+
*/
|
|
184
|
+
async generateSFX(_request) {
|
|
185
|
+
throw new Error('MusicGen local provider does not support SFX generation. Use AudioGenLocalProvider instead.');
|
|
186
|
+
}
|
|
187
|
+
// -------------------------------------------------------------------------
|
|
188
|
+
// Capability query
|
|
189
|
+
// -------------------------------------------------------------------------
|
|
190
|
+
/**
|
|
191
|
+
* MusicGen supports music generation only.
|
|
192
|
+
*
|
|
193
|
+
* @param capability - The capability to check.
|
|
194
|
+
* @returns `true` only for `'music'`; `false` for `'sfx'`.
|
|
195
|
+
*/
|
|
196
|
+
supports(capability) {
|
|
197
|
+
return capability === 'music';
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Release model resources and reset initialization state.
|
|
201
|
+
*/
|
|
202
|
+
async shutdown() {
|
|
203
|
+
this._pipeline = null;
|
|
204
|
+
this.isInitialized = false;
|
|
205
|
+
}
|
|
206
|
+
// -------------------------------------------------------------------------
|
|
207
|
+
// Private helpers
|
|
208
|
+
// -------------------------------------------------------------------------
|
|
209
|
+
/**
|
|
210
|
+
* Ensure the text-to-audio pipeline is loaded, creating it lazily if needed.
|
|
211
|
+
*
|
|
212
|
+
* Uses dynamic `import()` to load `@huggingface/transformers` as an optional
|
|
213
|
+
* peer dependency. Throws a helpful error if the package is not installed.
|
|
214
|
+
*
|
|
215
|
+
* @returns The loaded pipeline callable.
|
|
216
|
+
*
|
|
217
|
+
* @throws {Error} If `@huggingface/transformers` is not installed.
|
|
218
|
+
* @internal
|
|
219
|
+
*/
|
|
220
|
+
async _ensurePipeline() {
|
|
221
|
+
if (this._pipeline)
|
|
222
|
+
return this._pipeline;
|
|
223
|
+
let transformers;
|
|
224
|
+
try {
|
|
225
|
+
transformers = await import('@huggingface/transformers');
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
throw new Error('MusicGen local provider requires @huggingface/transformers. '
|
|
229
|
+
+ 'Install it with: npm install @huggingface/transformers');
|
|
230
|
+
}
|
|
231
|
+
this._pipeline = await transformers.pipeline('text-to-audio', this._modelId);
|
|
232
|
+
return this._pipeline;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=MusicGenLocalProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MusicGenLocalProvider.js","sourceRoot":"","sources":["../../../../src/core/audio/providers/MusicGenLocalProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/audio/providers/ReplicateAudioProvider
|
|
3
|
+
*
|
|
4
|
+
* Audio generation provider for the Replicate API, supporting both music
|
|
5
|
+
* and sound effects through different default models.
|
|
6
|
+
*
|
|
7
|
+
* Replicate hosts open-source audio models (MusicGen, AudioGen, etc.) behind
|
|
8
|
+
* a uniform predictions API. This provider mirrors the pattern established
|
|
9
|
+
* by {@link ReplicateVideoProvider}: create a prediction with `Prefer: wait`,
|
|
10
|
+
* then poll if it hasn't completed inline.
|
|
11
|
+
*
|
|
12
|
+
* ## Supported models
|
|
13
|
+
*
|
|
14
|
+
* | Model ID | Type | Description |
|
|
15
|
+
* |-----------------------|-------|--------------------------------|
|
|
16
|
+
* | `meta/musicgen` | Music | Meta's MusicGen on Replicate |
|
|
17
|
+
* | `meta/audiogen` | SFX | Meta's AudioGen on Replicate |
|
|
18
|
+
*
|
|
19
|
+
* ## API flow (submit + sync wait + optional poll)
|
|
20
|
+
*
|
|
21
|
+
* 1. **Create prediction** — `POST ${baseURL}/predictions` with
|
|
22
|
+
* `Prefer: wait=60`. If the model finishes within 60 seconds the
|
|
23
|
+
* response already contains the output.
|
|
24
|
+
* 2. **Poll** (if needed) — `GET prediction.urls.get` until `status` is
|
|
25
|
+
* `succeeded`, `failed`, or `canceled`.
|
|
26
|
+
* 3. **Result** — `output` is the audio URL (string or first array element).
|
|
27
|
+
*
|
|
28
|
+
* ## Authentication
|
|
29
|
+
*
|
|
30
|
+
* Requires a `REPLICATE_API_TOKEN`. Sent as `Authorization: Token ${apiKey}`.
|
|
31
|
+
*
|
|
32
|
+
* @see {@link IAudioGenerator} for the provider interface contract.
|
|
33
|
+
* @see {@link ReplicateVideoProvider} for the video counterpart.
|
|
34
|
+
*/
|
|
35
|
+
import type { IAudioGenerator } from '../IAudioGenerator.js';
|
|
36
|
+
import type { MusicGenerateRequest, SFXGenerateRequest, AudioResult } from '../types.js';
|
|
37
|
+
/**
|
|
38
|
+
* Configuration for the Replicate audio generation provider.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const config: ReplicateAudioProviderConfig = {
|
|
43
|
+
* apiKey: process.env.REPLICATE_API_TOKEN!,
|
|
44
|
+
* defaultMusicModel: 'meta/musicgen',
|
|
45
|
+
* defaultSfxModel: 'meta/audiogen',
|
|
46
|
+
* };
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export interface ReplicateAudioProviderConfig {
|
|
50
|
+
/** Replicate API token. Sent as `Authorization: Token ${apiKey}`. */
|
|
51
|
+
apiKey: string;
|
|
52
|
+
/**
|
|
53
|
+
* Base URL for the Replicate API. Override for testing or proxy setups.
|
|
54
|
+
* @default 'https://api.replicate.com/v1'
|
|
55
|
+
*/
|
|
56
|
+
baseURL?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Default model to use for music generation.
|
|
59
|
+
* @default 'meta/musicgen'
|
|
60
|
+
*/
|
|
61
|
+
defaultMusicModel?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Default model to use for SFX generation.
|
|
64
|
+
* @default 'meta/audiogen'
|
|
65
|
+
*/
|
|
66
|
+
defaultSfxModel?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Milliseconds between prediction status polls.
|
|
69
|
+
* @default 5000
|
|
70
|
+
*/
|
|
71
|
+
pollIntervalMs?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Maximum milliseconds to wait for generation before timing out.
|
|
74
|
+
* @default 300000
|
|
75
|
+
*/
|
|
76
|
+
timeoutMs?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Audio generation provider connecting to the Replicate predictions API.
|
|
80
|
+
*
|
|
81
|
+
* Follows the same submit-then-poll pattern as {@link ReplicateVideoProvider}:
|
|
82
|
+
* create a prediction with `Prefer: wait=60`, then poll if the model takes
|
|
83
|
+
* longer than the wait window.
|
|
84
|
+
*
|
|
85
|
+
* Routes to different default models based on whether music or SFX is requested.
|
|
86
|
+
*
|
|
87
|
+
* @implements {IAudioGenerator}
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const provider = new ReplicateAudioProvider();
|
|
92
|
+
* await provider.initialize({ apiKey: process.env.REPLICATE_API_TOKEN! });
|
|
93
|
+
*
|
|
94
|
+
* const music = await provider.generateMusic({
|
|
95
|
+
* prompt: 'Upbeat indie rock with driving guitars',
|
|
96
|
+
* });
|
|
97
|
+
*
|
|
98
|
+
* const sfx = await provider.generateSFX({
|
|
99
|
+
* prompt: 'Glass shattering on a hard floor',
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare class ReplicateAudioProvider implements IAudioGenerator {
|
|
104
|
+
/** @inheritdoc */
|
|
105
|
+
readonly providerId = "replicate-audio";
|
|
106
|
+
/** @inheritdoc */
|
|
107
|
+
isInitialized: boolean;
|
|
108
|
+
/** @inheritdoc */
|
|
109
|
+
defaultModelId?: string;
|
|
110
|
+
/** Internal resolved configuration. */
|
|
111
|
+
private _config;
|
|
112
|
+
/**
|
|
113
|
+
* Initialize the provider with API credentials and optional configuration.
|
|
114
|
+
*
|
|
115
|
+
* @param config - Configuration object. Must include `apiKey`.
|
|
116
|
+
* @throws {Error} If `apiKey` is missing or empty.
|
|
117
|
+
*/
|
|
118
|
+
initialize(config: Record<string, unknown>): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Generate music from a text prompt using a music model on Replicate.
|
|
121
|
+
*
|
|
122
|
+
* @param request - Music generation request with prompt and optional params.
|
|
123
|
+
* @returns The generated audio result envelope.
|
|
124
|
+
*
|
|
125
|
+
* @throws {Error} If the provider is not initialized.
|
|
126
|
+
* @throws {Error} If the API returns an error or times out.
|
|
127
|
+
*/
|
|
128
|
+
generateMusic(request: MusicGenerateRequest): Promise<AudioResult>;
|
|
129
|
+
/**
|
|
130
|
+
* Generate a sound effect from a text prompt using an SFX model on Replicate.
|
|
131
|
+
*
|
|
132
|
+
* @param request - SFX generation request with prompt and optional params.
|
|
133
|
+
* @returns The generated audio result envelope.
|
|
134
|
+
*
|
|
135
|
+
* @throws {Error} If the provider is not initialized.
|
|
136
|
+
* @throws {Error} If the API returns an error or times out.
|
|
137
|
+
*/
|
|
138
|
+
generateSFX(request: SFXGenerateRequest): Promise<AudioResult>;
|
|
139
|
+
/**
|
|
140
|
+
* Replicate audio supports both music and SFX generation through
|
|
141
|
+
* different model routing.
|
|
142
|
+
*
|
|
143
|
+
* @param capability - The capability to check.
|
|
144
|
+
* @returns `true` for both `'music'` and `'sfx'`.
|
|
145
|
+
*/
|
|
146
|
+
supports(capability: 'music' | 'sfx'): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Release any resources held by the provider. No-op for HTTP-only providers.
|
|
149
|
+
*/
|
|
150
|
+
shutdown(): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Create a prediction and wait for it to complete.
|
|
153
|
+
*
|
|
154
|
+
* Uses `Prefer: wait=60` to get synchronous completion for fast models.
|
|
155
|
+
* Falls back to polling if the prediction hasn't completed within the
|
|
156
|
+
* wait window.
|
|
157
|
+
*
|
|
158
|
+
* @param model - Model identifier (e.g. 'meta/musicgen').
|
|
159
|
+
* @param input - Model input parameters.
|
|
160
|
+
* @returns The completed prediction object.
|
|
161
|
+
*
|
|
162
|
+
* @throws {Error} If prediction creation fails, the prediction fails,
|
|
163
|
+
* is canceled, or times out.
|
|
164
|
+
* @internal
|
|
165
|
+
*/
|
|
166
|
+
private _runPrediction;
|
|
167
|
+
/**
|
|
168
|
+
* Create a new prediction via `POST /predictions`.
|
|
169
|
+
*
|
|
170
|
+
* @param model - Model identifier.
|
|
171
|
+
* @param input - Model input parameters.
|
|
172
|
+
* @returns The prediction response (may or may not be completed).
|
|
173
|
+
*
|
|
174
|
+
* @throws {Error} If the HTTP request fails.
|
|
175
|
+
* @internal
|
|
176
|
+
*/
|
|
177
|
+
private _createPrediction;
|
|
178
|
+
/**
|
|
179
|
+
* Poll a prediction URL until it reaches a terminal state.
|
|
180
|
+
*
|
|
181
|
+
* @param url - The `prediction.urls.get` URL to poll.
|
|
182
|
+
* @returns The completed prediction object.
|
|
183
|
+
*
|
|
184
|
+
* @throws {Error} If polling fails or times out.
|
|
185
|
+
* @internal
|
|
186
|
+
*/
|
|
187
|
+
private _pollPrediction;
|
|
188
|
+
/**
|
|
189
|
+
* Build an {@link AudioResult} from a completed Replicate prediction.
|
|
190
|
+
*
|
|
191
|
+
* @param prediction - The succeeded prediction object.
|
|
192
|
+
* @param model - Model ID used for the generation.
|
|
193
|
+
* @returns Normalized audio result envelope.
|
|
194
|
+
*
|
|
195
|
+
* @throws {Error} If no audio URL could be extracted from the output.
|
|
196
|
+
* @internal
|
|
197
|
+
*/
|
|
198
|
+
private _buildResult;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=ReplicateAudioProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplicateAudioProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/audio/providers/ReplicateAudioProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAMzF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,4BAA4B;IAC3C,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmFD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,kBAAkB;IAClB,SAAgB,UAAU,qBAAqB;IAE/C,kBAAkB;IACX,aAAa,UAAS;IAE7B,kBAAkB;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,uCAAuC;IACvC,OAAO,CAAC,OAAO,CAAiJ;IAMhK;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE;;;;;;;;OAQG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBxE;;;;;;;;OAQG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBpE;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO;IAI9C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;;;;;;;;;;;;;OAcG;YACW,cAAc;IAyB5B;;;;;;;;;OASG;YACW,iBAAiB;IA2B/B;;;;;;;;OAQG;YACW,eAAe;IAgC7B;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;CAuBrB"}
|