@framers/agentos 0.1.120 → 0.1.121
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/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,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FallbackVideoProxy.ts
|
|
3
|
+
* Automatic failover proxy for video generation providers.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern established by {@link FallbackImageProxy} in the
|
|
6
|
+
* image subsystem: an ordered chain of {@link IVideoGenerator} instances is
|
|
7
|
+
* tried left-to-right for each operation. The first provider that succeeds
|
|
8
|
+
* wins; earlier failures are caught, logged via an emitted event, and the
|
|
9
|
+
* next provider is tried.
|
|
10
|
+
*
|
|
11
|
+
* ## Unsupported-operation handling
|
|
12
|
+
*
|
|
13
|
+
* For the optional `imageToVideo` operation the proxy skips providers whose
|
|
14
|
+
* {@link IVideoGenerator.supports} method returns `false` for
|
|
15
|
+
* `'image-to-video'`. Skipped providers are not counted as transient failures
|
|
16
|
+
* — the proxy simply advances to the next candidate.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link FallbackImageProxy} for the analogous image proxy.
|
|
19
|
+
* @see {@link FallbackSTTProxy} for the analogous speech-to-text proxy.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { EventEmitter } from 'events';
|
|
24
|
+
* import { FallbackVideoProxy } from './FallbackVideoProxy.js';
|
|
25
|
+
*
|
|
26
|
+
* const emitter = new EventEmitter();
|
|
27
|
+
* emitter.on('video:generate:fallback', (evt) => {
|
|
28
|
+
* console.warn(`Video fallback: ${evt.from} -> ${evt.to} (${evt.reason})`);
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const proxy = new FallbackVideoProxy(
|
|
32
|
+
* [runwayProvider, pikaProvider, klingProvider],
|
|
33
|
+
* emitter,
|
|
34
|
+
* );
|
|
35
|
+
*
|
|
36
|
+
* // If Runway fails, Pika is tried, then Kling.
|
|
37
|
+
* const result = await proxy.generateVideo(request);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
import { EventEmitter } from 'events';
|
|
41
|
+
import type { IVideoGenerator } from './IVideoGenerator.js';
|
|
42
|
+
import type { VideoGenerateRequest, ImageToVideoRequest, VideoResult } from './types.js';
|
|
43
|
+
/**
|
|
44
|
+
* Payload emitted on the `video:generate:fallback` event when a provider in
|
|
45
|
+
* the chain fails and the proxy advances to the next candidate.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* emitter.on('video:generate:fallback', (evt: VideoFallbackEvent) => {
|
|
50
|
+
* console.warn(`${evt.from} -> ${evt.to}: ${evt.reason}`);
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export interface VideoFallbackEvent {
|
|
55
|
+
/** The event discriminator. Always `'video:generate:fallback'`. */
|
|
56
|
+
type: 'video:generate:fallback';
|
|
57
|
+
/** Identifier of the provider that failed. */
|
|
58
|
+
from: string;
|
|
59
|
+
/** Identifier of the provider that will be tried next. */
|
|
60
|
+
to: string;
|
|
61
|
+
/** Human-readable reason for the fallback (error message or "not supported"). */
|
|
62
|
+
reason: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* An {@link IVideoGenerator} that wraps an ordered chain of video providers
|
|
66
|
+
* and implements automatic failover for every operation.
|
|
67
|
+
*
|
|
68
|
+
* ## Retry chain logic
|
|
69
|
+
*
|
|
70
|
+
* Providers are tried left-to-right (index 0 first). The first provider
|
|
71
|
+
* that succeeds returns immediately. When a provider throws:
|
|
72
|
+
*
|
|
73
|
+
* - **If it is NOT the last provider:** a `video:generate:fallback` event is
|
|
74
|
+
* emitted and the next provider is tried.
|
|
75
|
+
* - **If it IS the last provider:** an `AggregateError` containing every
|
|
76
|
+
* collected error is thrown.
|
|
77
|
+
* - **If the chain is empty:** an `Error('No providers in video fallback chain')`
|
|
78
|
+
* is thrown immediately.
|
|
79
|
+
*
|
|
80
|
+
* For the optional `imageToVideo` operation, providers whose
|
|
81
|
+
* {@link IVideoGenerator.supports} returns `false` for `'image-to-video'`
|
|
82
|
+
* are silently skipped, since they are structurally incapable rather than
|
|
83
|
+
* transiently failing.
|
|
84
|
+
*/
|
|
85
|
+
export declare class FallbackVideoProxy implements IVideoGenerator {
|
|
86
|
+
private readonly chain;
|
|
87
|
+
private readonly emitter;
|
|
88
|
+
/** Identifier derived from the first provider in the chain. */
|
|
89
|
+
readonly providerId: string;
|
|
90
|
+
/** Always `true` — the proxy is ready as soon as it is constructed. */
|
|
91
|
+
readonly isInitialized: boolean;
|
|
92
|
+
/** Default model from the first provider, if set. */
|
|
93
|
+
readonly defaultModelId?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Creates a new FallbackVideoProxy wrapping the given provider chain.
|
|
96
|
+
*
|
|
97
|
+
* @param chain - Ordered list of video providers to try. Must contain at
|
|
98
|
+
* least one entry for operations to succeed (an empty chain always throws).
|
|
99
|
+
* @param emitter - EventEmitter on which `video:generate:fallback` events
|
|
100
|
+
* are published so callers can observe the failover path.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const proxy = new FallbackVideoProxy(
|
|
105
|
+
* [runwayProvider, pikaProvider],
|
|
106
|
+
* new EventEmitter(),
|
|
107
|
+
* );
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
constructor(chain: IVideoGenerator[], emitter: EventEmitter);
|
|
111
|
+
/**
|
|
112
|
+
* No-op initialisation — individual providers in the chain should already
|
|
113
|
+
* be initialised before being passed to the proxy.
|
|
114
|
+
*/
|
|
115
|
+
initialize(_config: Record<string, unknown>): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Returns `true` if at least one provider in the chain supports the
|
|
118
|
+
* given capability.
|
|
119
|
+
*
|
|
120
|
+
* @param capability - The capability to query.
|
|
121
|
+
*/
|
|
122
|
+
supports(capability: 'text-to-video' | 'image-to-video'): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Generate a video from a text prompt, falling back through the provider
|
|
125
|
+
* chain on failure.
|
|
126
|
+
*
|
|
127
|
+
* @param request - The generation request forwarded to each provider.
|
|
128
|
+
* @returns The result from the first provider that succeeds.
|
|
129
|
+
* @throws {AggregateError} When every provider in the chain fails.
|
|
130
|
+
* @throws {Error} When the chain is empty.
|
|
131
|
+
*/
|
|
132
|
+
generateVideo(request: VideoGenerateRequest): Promise<VideoResult>;
|
|
133
|
+
/**
|
|
134
|
+
* Generate a video from a source image, falling back through providers
|
|
135
|
+
* that support image-to-video.
|
|
136
|
+
*
|
|
137
|
+
* Providers whose {@link IVideoGenerator.supports} returns `false` for
|
|
138
|
+
* `'image-to-video'` are silently skipped.
|
|
139
|
+
*
|
|
140
|
+
* @param request - The image-to-video request forwarded to each capable provider.
|
|
141
|
+
* @returns The result from the first provider that succeeds.
|
|
142
|
+
* @throws {AggregateError} When every provider fails or does not support image-to-video.
|
|
143
|
+
*/
|
|
144
|
+
imageToVideo(request: ImageToVideoRequest): Promise<VideoResult>;
|
|
145
|
+
/**
|
|
146
|
+
* Shuts down all providers in the chain. Errors are caught per-provider
|
|
147
|
+
* so a single provider's failure does not prevent the others from
|
|
148
|
+
* cleaning up.
|
|
149
|
+
*/
|
|
150
|
+
shutdown(): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Executes an operation against each provider in the chain until one
|
|
153
|
+
* succeeds or all have been exhausted.
|
|
154
|
+
*
|
|
155
|
+
* Providers that throw an error whose `name` ends with `NotSupportedError`
|
|
156
|
+
* are treated as structurally incapable — the reason is recorded as
|
|
157
|
+
* "not supported" rather than the raw error message.
|
|
158
|
+
*
|
|
159
|
+
* @param operationName - Human-readable name of the operation (for error messages).
|
|
160
|
+
* @param execute - Async callback that runs the operation on a single provider.
|
|
161
|
+
* @returns The result from the first successful provider.
|
|
162
|
+
* @throws {AggregateError} When every provider fails.
|
|
163
|
+
*/
|
|
164
|
+
private runWithFallback;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=FallbackVideoProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FallbackVideoProxy.d.ts","sourceRoot":"","sources":["../../../src/core/video/FallbackVideoProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,IAAI,EAAE,yBAAyB,CAAC;IAChC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IA2BtD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA3B1B,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAQ;IAEvC,qDAAqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;;OAeG;gBAEgB,KAAK,EAAE,eAAe,EAAE,EACxB,OAAO,EAAE,YAAY;IAUxC;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,gBAAgB,GAAG,OAAO;IAQjE;;;;;;;;OAQG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAWxE;;;;;;;;;;OAUG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBtE;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B;;;;;;;;;;;;OAYG;YACW,eAAe;CA6C9B"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FallbackVideoProxy.ts
|
|
3
|
+
* Automatic failover proxy for video generation providers.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern established by {@link FallbackImageProxy} in the
|
|
6
|
+
* image subsystem: an ordered chain of {@link IVideoGenerator} instances is
|
|
7
|
+
* tried left-to-right for each operation. The first provider that succeeds
|
|
8
|
+
* wins; earlier failures are caught, logged via an emitted event, and the
|
|
9
|
+
* next provider is tried.
|
|
10
|
+
*
|
|
11
|
+
* ## Unsupported-operation handling
|
|
12
|
+
*
|
|
13
|
+
* For the optional `imageToVideo` operation the proxy skips providers whose
|
|
14
|
+
* {@link IVideoGenerator.supports} method returns `false` for
|
|
15
|
+
* `'image-to-video'`. Skipped providers are not counted as transient failures
|
|
16
|
+
* — the proxy simply advances to the next candidate.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link FallbackImageProxy} for the analogous image proxy.
|
|
19
|
+
* @see {@link FallbackSTTProxy} for the analogous speech-to-text proxy.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { EventEmitter } from 'events';
|
|
24
|
+
* import { FallbackVideoProxy } from './FallbackVideoProxy.js';
|
|
25
|
+
*
|
|
26
|
+
* const emitter = new EventEmitter();
|
|
27
|
+
* emitter.on('video:generate:fallback', (evt) => {
|
|
28
|
+
* console.warn(`Video fallback: ${evt.from} -> ${evt.to} (${evt.reason})`);
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const proxy = new FallbackVideoProxy(
|
|
32
|
+
* [runwayProvider, pikaProvider, klingProvider],
|
|
33
|
+
* emitter,
|
|
34
|
+
* );
|
|
35
|
+
*
|
|
36
|
+
* // If Runway fails, Pika is tried, then Kling.
|
|
37
|
+
* const result = await proxy.generateVideo(request);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Helpers
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
/**
|
|
44
|
+
* Extracts a human-readable reason string from an unknown error value.
|
|
45
|
+
*/
|
|
46
|
+
function errorReason(err) {
|
|
47
|
+
if (err instanceof Error)
|
|
48
|
+
return err.message;
|
|
49
|
+
return String(err);
|
|
50
|
+
}
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// FallbackVideoProxy
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* An {@link IVideoGenerator} that wraps an ordered chain of video providers
|
|
56
|
+
* and implements automatic failover for every operation.
|
|
57
|
+
*
|
|
58
|
+
* ## Retry chain logic
|
|
59
|
+
*
|
|
60
|
+
* Providers are tried left-to-right (index 0 first). The first provider
|
|
61
|
+
* that succeeds returns immediately. When a provider throws:
|
|
62
|
+
*
|
|
63
|
+
* - **If it is NOT the last provider:** a `video:generate:fallback` event is
|
|
64
|
+
* emitted and the next provider is tried.
|
|
65
|
+
* - **If it IS the last provider:** an `AggregateError` containing every
|
|
66
|
+
* collected error is thrown.
|
|
67
|
+
* - **If the chain is empty:** an `Error('No providers in video fallback chain')`
|
|
68
|
+
* is thrown immediately.
|
|
69
|
+
*
|
|
70
|
+
* For the optional `imageToVideo` operation, providers whose
|
|
71
|
+
* {@link IVideoGenerator.supports} returns `false` for `'image-to-video'`
|
|
72
|
+
* are silently skipped, since they are structurally incapable rather than
|
|
73
|
+
* transiently failing.
|
|
74
|
+
*/
|
|
75
|
+
export class FallbackVideoProxy {
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new FallbackVideoProxy wrapping the given provider chain.
|
|
78
|
+
*
|
|
79
|
+
* @param chain - Ordered list of video providers to try. Must contain at
|
|
80
|
+
* least one entry for operations to succeed (an empty chain always throws).
|
|
81
|
+
* @param emitter - EventEmitter on which `video:generate:fallback` events
|
|
82
|
+
* are published so callers can observe the failover path.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* const proxy = new FallbackVideoProxy(
|
|
87
|
+
* [runwayProvider, pikaProvider],
|
|
88
|
+
* new EventEmitter(),
|
|
89
|
+
* );
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
constructor(chain, emitter) {
|
|
93
|
+
this.chain = chain;
|
|
94
|
+
this.emitter = emitter;
|
|
95
|
+
/** Always `true` — the proxy is ready as soon as it is constructed. */
|
|
96
|
+
this.isInitialized = true;
|
|
97
|
+
this.providerId = chain[0]?.providerId ?? 'fallback-video';
|
|
98
|
+
this.defaultModelId = chain[0]?.defaultModelId;
|
|
99
|
+
}
|
|
100
|
+
// -----------------------------------------------------------------------
|
|
101
|
+
// IVideoGenerator — initialize (no-op for the proxy itself)
|
|
102
|
+
// -----------------------------------------------------------------------
|
|
103
|
+
/**
|
|
104
|
+
* No-op initialisation — individual providers in the chain should already
|
|
105
|
+
* be initialised before being passed to the proxy.
|
|
106
|
+
*/
|
|
107
|
+
async initialize(_config) {
|
|
108
|
+
// Each provider in the chain is initialised independently before
|
|
109
|
+
// construction, so the proxy itself has nothing to set up.
|
|
110
|
+
}
|
|
111
|
+
// -----------------------------------------------------------------------
|
|
112
|
+
// IVideoGenerator — supports
|
|
113
|
+
// -----------------------------------------------------------------------
|
|
114
|
+
/**
|
|
115
|
+
* Returns `true` if at least one provider in the chain supports the
|
|
116
|
+
* given capability.
|
|
117
|
+
*
|
|
118
|
+
* @param capability - The capability to query.
|
|
119
|
+
*/
|
|
120
|
+
supports(capability) {
|
|
121
|
+
return this.chain.some((provider) => provider.supports(capability));
|
|
122
|
+
}
|
|
123
|
+
// -----------------------------------------------------------------------
|
|
124
|
+
// IVideoGenerator — generateVideo
|
|
125
|
+
// -----------------------------------------------------------------------
|
|
126
|
+
/**
|
|
127
|
+
* Generate a video from a text prompt, falling back through the provider
|
|
128
|
+
* chain on failure.
|
|
129
|
+
*
|
|
130
|
+
* @param request - The generation request forwarded to each provider.
|
|
131
|
+
* @returns The result from the first provider that succeeds.
|
|
132
|
+
* @throws {AggregateError} When every provider in the chain fails.
|
|
133
|
+
* @throws {Error} When the chain is empty.
|
|
134
|
+
*/
|
|
135
|
+
async generateVideo(request) {
|
|
136
|
+
return this.runWithFallback('generateVideo', (provider) => provider.generateVideo(request));
|
|
137
|
+
}
|
|
138
|
+
// -----------------------------------------------------------------------
|
|
139
|
+
// IVideoGenerator — imageToVideo (optional)
|
|
140
|
+
// -----------------------------------------------------------------------
|
|
141
|
+
/**
|
|
142
|
+
* Generate a video from a source image, falling back through providers
|
|
143
|
+
* that support image-to-video.
|
|
144
|
+
*
|
|
145
|
+
* Providers whose {@link IVideoGenerator.supports} returns `false` for
|
|
146
|
+
* `'image-to-video'` are silently skipped.
|
|
147
|
+
*
|
|
148
|
+
* @param request - The image-to-video request forwarded to each capable provider.
|
|
149
|
+
* @returns The result from the first provider that succeeds.
|
|
150
|
+
* @throws {AggregateError} When every provider fails or does not support image-to-video.
|
|
151
|
+
*/
|
|
152
|
+
async imageToVideo(request) {
|
|
153
|
+
return this.runWithFallback('imageToVideo', (provider) => {
|
|
154
|
+
if (!provider.supports('image-to-video') || typeof provider.imageToVideo !== 'function') {
|
|
155
|
+
throw Object.assign(new Error(`Provider "${provider.providerId}" does not support imageToVideo.`), { name: 'ImageToVideoNotSupportedError' });
|
|
156
|
+
}
|
|
157
|
+
return provider.imageToVideo(request);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
// -----------------------------------------------------------------------
|
|
161
|
+
// IVideoGenerator — shutdown (optional)
|
|
162
|
+
// -----------------------------------------------------------------------
|
|
163
|
+
/**
|
|
164
|
+
* Shuts down all providers in the chain. Errors are caught per-provider
|
|
165
|
+
* so a single provider's failure does not prevent the others from
|
|
166
|
+
* cleaning up.
|
|
167
|
+
*/
|
|
168
|
+
async shutdown() {
|
|
169
|
+
for (const provider of this.chain) {
|
|
170
|
+
if (typeof provider.shutdown === 'function') {
|
|
171
|
+
try {
|
|
172
|
+
await provider.shutdown();
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// Swallow individual shutdown errors — best effort.
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// -----------------------------------------------------------------------
|
|
181
|
+
// Core fallback loop
|
|
182
|
+
// -----------------------------------------------------------------------
|
|
183
|
+
/**
|
|
184
|
+
* Executes an operation against each provider in the chain until one
|
|
185
|
+
* succeeds or all have been exhausted.
|
|
186
|
+
*
|
|
187
|
+
* Providers that throw an error whose `name` ends with `NotSupportedError`
|
|
188
|
+
* are treated as structurally incapable — the reason is recorded as
|
|
189
|
+
* "not supported" rather than the raw error message.
|
|
190
|
+
*
|
|
191
|
+
* @param operationName - Human-readable name of the operation (for error messages).
|
|
192
|
+
* @param execute - Async callback that runs the operation on a single provider.
|
|
193
|
+
* @returns The result from the first successful provider.
|
|
194
|
+
* @throws {AggregateError} When every provider fails.
|
|
195
|
+
*/
|
|
196
|
+
async runWithFallback(operationName, execute) {
|
|
197
|
+
if (this.chain.length === 0) {
|
|
198
|
+
throw new Error('No providers in video fallback chain');
|
|
199
|
+
}
|
|
200
|
+
const errors = [];
|
|
201
|
+
for (let i = 0; i < this.chain.length; i++) {
|
|
202
|
+
const provider = this.chain[i];
|
|
203
|
+
try {
|
|
204
|
+
return await execute(provider);
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
const isNotSupported = err instanceof Error && err.name.endsWith('NotSupportedError');
|
|
208
|
+
const reason = isNotSupported
|
|
209
|
+
? `${operationName} not supported`
|
|
210
|
+
: errorReason(err);
|
|
211
|
+
errors.push(err instanceof Error ? err : new Error(String(err)));
|
|
212
|
+
// Emit a fallback event when there is a next provider to try.
|
|
213
|
+
if (i < this.chain.length - 1) {
|
|
214
|
+
const event = {
|
|
215
|
+
type: 'video:generate:fallback',
|
|
216
|
+
from: provider.providerId,
|
|
217
|
+
to: this.chain[i + 1].providerId,
|
|
218
|
+
reason,
|
|
219
|
+
};
|
|
220
|
+
this.emitter.emit('video:generate:fallback', event);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// All providers exhausted — throw an aggregate error.
|
|
225
|
+
throw new AggregateError(errors, `All ${this.chain.length} video providers failed for ${operationName}: ${errors.map((e) => e.message).join('; ')}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=FallbackVideoProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FallbackVideoProxy.js","sourceRoot":"","sources":["../../../src/core/video/FallbackVideoProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAgCH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,kBAAkB;IAU7B;;;;;;;;;;;;;;;OAeG;IACH,YACmB,KAAwB,EACxB,OAAqB;QADrB,UAAK,GAAL,KAAK,CAAmB;QACxB,YAAO,GAAP,OAAO,CAAc;QAxBxC,uEAAuE;QAC9D,kBAAa,GAAY,IAAI,CAAC;QAyBrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,gBAAgB,CAAC;QAC3D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;IACjD,CAAC;IAED,0EAA0E;IAC1E,4DAA4D;IAC5D,0EAA0E;IAE1E;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgC;QAC/C,iEAAiE;QACjE,2DAA2D;IAC7D,CAAC;IAED,0EAA0E;IAC1E,6BAA6B;IAC7B,0EAA0E;IAE1E;;;;;OAKG;IACH,QAAQ,CAAC,UAA8C;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,OAAO,IAAI,CAAC,eAAe,CACzB,eAAe,EACf,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,4CAA4C;IAC5C,0EAA0E;IAE1E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,OAAO,IAAI,CAAC,eAAe,CACzB,cAAc,EACd,CAAC,QAAQ,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBACxF,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,UAAU,kCAAkC,CAAC,EAC7E,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAC1C,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,wCAAwC;IACxC,0EAA0E;IAE1E;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,oDAAoD;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,qBAAqB;IACrB,0EAA0E;IAE1E;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,eAAe,CAC3B,aAAqB,EACrB,OAA4D;QAE5D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,cAAc,GAClB,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;gBAEjE,MAAM,MAAM,GAAG,cAAc;oBAC3B,CAAC,CAAC,GAAG,aAAa,gBAAgB;oBAClC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAErB,MAAM,CAAC,IAAI,CACT,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACpD,CAAC;gBAEF,8DAA8D;gBAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAuB;wBAChC,IAAI,EAAE,yBAAyB;wBAC/B,IAAI,EAAE,QAAQ,CAAC,UAAU;wBACzB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;wBAChC,MAAM;qBACP,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,IAAI,cAAc,CACtB,MAAM,EACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,+BAA+B,aAAa,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnH,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file IVideoAnalyzer.ts
|
|
3
|
+
* Provider interface for video understanding / analysis.
|
|
4
|
+
*
|
|
5
|
+
* Implementations typically wrap a multimodal LLM (Gemini, GPT-4o, Claude)
|
|
6
|
+
* or a dedicated video-understanding API to extract descriptions, scene
|
|
7
|
+
* segments, detected objects, and on-screen text from a video.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link IVideoGenerator} for the write-side generation interface.
|
|
10
|
+
*/
|
|
11
|
+
import type { VideoAnalyzeRequest, VideoAnalysis } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Abstraction over a video analysis / understanding backend.
|
|
14
|
+
*
|
|
15
|
+
* Unlike {@link IVideoGenerator}, analysis is typically a single-shot
|
|
16
|
+
* operation with no capability negotiation required — every analyser is
|
|
17
|
+
* expected to accept either a URL or a raw buffer and return a structured
|
|
18
|
+
* {@link VideoAnalysis}.
|
|
19
|
+
*/
|
|
20
|
+
export interface IVideoAnalyzer {
|
|
21
|
+
/**
|
|
22
|
+
* Analyse a video and return structured understanding results.
|
|
23
|
+
*
|
|
24
|
+
* @param request - The analysis parameters (video source + optional prompt).
|
|
25
|
+
* @returns Structured analysis including description, scenes, objects, etc.
|
|
26
|
+
*/
|
|
27
|
+
analyzeVideo(request: VideoAnalyzeRequest): Promise<VideoAnalysis>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=IVideoAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IVideoAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/core/video/IVideoAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMrE;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACpE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file IVideoAnalyzer.ts
|
|
3
|
+
* Provider interface for video understanding / analysis.
|
|
4
|
+
*
|
|
5
|
+
* Implementations typically wrap a multimodal LLM (Gemini, GPT-4o, Claude)
|
|
6
|
+
* or a dedicated video-understanding API to extract descriptions, scene
|
|
7
|
+
* segments, detected objects, and on-screen text from a video.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link IVideoGenerator} for the write-side generation interface.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=IVideoAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IVideoAnalyzer.js","sourceRoot":"","sources":["../../../src/core/video/IVideoAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file IVideoGenerator.ts
|
|
3
|
+
* Provider interface for video generation (text-to-video and image-to-video).
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern as {@link IImageProvider} in the image subsystem:
|
|
6
|
+
* each concrete provider implements this interface, and instances are composed
|
|
7
|
+
* into a {@link FallbackVideoProxy} chain for automatic failover.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link FallbackVideoProxy} for the failover wrapper.
|
|
10
|
+
* @see {@link IVideoAnalyzer} for the read-side analysis interface.
|
|
11
|
+
*/
|
|
12
|
+
import type { VideoGenerateRequest, ImageToVideoRequest, VideoResult } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Abstraction over a video generation backend (Runway, Pika, Kling, Luma,
|
|
15
|
+
* Stable Video, Google Veo, Replicate, etc.).
|
|
16
|
+
*
|
|
17
|
+
* ## Capability negotiation
|
|
18
|
+
*
|
|
19
|
+
* Not every provider supports every modality. The {@link supports} method
|
|
20
|
+
* lets callers (and the {@link FallbackVideoProxy}) query whether a given
|
|
21
|
+
* capability is available before invoking it.
|
|
22
|
+
*
|
|
23
|
+
* ## Lifecycle
|
|
24
|
+
*
|
|
25
|
+
* 1. Construct the provider.
|
|
26
|
+
* 2. Call {@link initialize} with provider-specific configuration (API keys,
|
|
27
|
+
* base URLs, etc.).
|
|
28
|
+
* 3. Use {@link generateVideo} and/or {@link imageToVideo}.
|
|
29
|
+
* 4. Optionally call {@link shutdown} to release resources.
|
|
30
|
+
*/
|
|
31
|
+
export interface IVideoGenerator {
|
|
32
|
+
/** Unique identifier for this provider (e.g. `'runway'`, `'pika'`). */
|
|
33
|
+
readonly providerId: string;
|
|
34
|
+
/** Whether {@link initialize} has been called successfully. */
|
|
35
|
+
readonly isInitialized: boolean;
|
|
36
|
+
/** Default model used when the request omits `modelId`. */
|
|
37
|
+
readonly defaultModelId?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Initialise the provider with runtime configuration.
|
|
40
|
+
*
|
|
41
|
+
* @param config - Provider-specific key/value pairs (API keys, endpoints,
|
|
42
|
+
* model overrides, etc.).
|
|
43
|
+
*/
|
|
44
|
+
initialize(config: Record<string, unknown>): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Generate a video from a text prompt.
|
|
47
|
+
*
|
|
48
|
+
* @param request - The generation parameters.
|
|
49
|
+
* @returns A result envelope containing one or more generated videos.
|
|
50
|
+
*/
|
|
51
|
+
generateVideo(request: VideoGenerateRequest): Promise<VideoResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Generate a video from a source image and a motion prompt.
|
|
54
|
+
*
|
|
55
|
+
* This method is optional — providers that do not support image-to-video
|
|
56
|
+
* should either omit it or have {@link supports} return `false` for
|
|
57
|
+
* `'image-to-video'`.
|
|
58
|
+
*
|
|
59
|
+
* @param request - The image-to-video parameters.
|
|
60
|
+
* @returns A result envelope containing one or more generated videos.
|
|
61
|
+
*/
|
|
62
|
+
imageToVideo?(request: ImageToVideoRequest): Promise<VideoResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Query whether this provider supports a given capability.
|
|
65
|
+
*
|
|
66
|
+
* @param capability - The capability to check.
|
|
67
|
+
* @returns `true` if the provider can handle the requested capability.
|
|
68
|
+
*/
|
|
69
|
+
supports(capability: 'text-to-video' | 'image-to-video'): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Release any resources held by the provider (HTTP connections, polling
|
|
72
|
+
* loops, temp files, etc.).
|
|
73
|
+
*/
|
|
74
|
+
shutdown?(): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=IVideoGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IVideoGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/video/IVideoGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAEhC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEnE;;;;;;;;;OASG;IACH,YAAY,CAAC,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAElE;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAElE;;;OAGG;IACH,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file IVideoGenerator.ts
|
|
3
|
+
* Provider interface for video generation (text-to-video and image-to-video).
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern as {@link IImageProvider} in the image subsystem:
|
|
6
|
+
* each concrete provider implements this interface, and instances are composed
|
|
7
|
+
* into a {@link FallbackVideoProxy} chain for automatic failover.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link FallbackVideoProxy} for the failover wrapper.
|
|
10
|
+
* @see {@link IVideoAnalyzer} for the read-side analysis interface.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=IVideoGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IVideoGenerator.js","sourceRoot":"","sources":["../../../src/core/video/IVideoGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|