@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,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Universal streaming migration engine between vector store backends.
|
|
3
|
+
* @module rag/migration/MigrationEngine
|
|
4
|
+
*
|
|
5
|
+
* Streams data in configurable batches between any pair of supported backends
|
|
6
|
+
* (SQLite, Postgres, Qdrant). Never loads the entire dataset into memory.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { MigrationEngine } from '@framers/agentos';
|
|
11
|
+
*
|
|
12
|
+
* await MigrationEngine.migrate({
|
|
13
|
+
* from: { type: 'sqlite', path: './brain.sqlite' },
|
|
14
|
+
* to: { type: 'postgres', connectionString: 'postgresql://...' },
|
|
15
|
+
* batchSize: 1000,
|
|
16
|
+
* onProgress: (done, total, table) => console.log(`${table}: ${done}/${total}`),
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// MigrationEngine
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
export class MigrationEngine {
|
|
24
|
+
/**
|
|
25
|
+
* Migrate data between any two backends.
|
|
26
|
+
*
|
|
27
|
+
* The engine:
|
|
28
|
+
* 1. Connects to source and lists available tables.
|
|
29
|
+
* 2. For each table, reads rows in streaming batches.
|
|
30
|
+
* 3. Creates the table in the target (if it doesn't exist).
|
|
31
|
+
* 4. Writes each batch to the target.
|
|
32
|
+
* 5. Reports progress after each batch.
|
|
33
|
+
*
|
|
34
|
+
* @param options - Source, target, batch size, and progress callback.
|
|
35
|
+
* @returns Migration result with counts, duration, and any errors.
|
|
36
|
+
*/
|
|
37
|
+
static async migrate(options) {
|
|
38
|
+
const startTime = Date.now();
|
|
39
|
+
const batchSize = options.batchSize ?? 1000;
|
|
40
|
+
const errors = [];
|
|
41
|
+
const tablesProcessed = [];
|
|
42
|
+
let totalRows = 0;
|
|
43
|
+
// Create source and target adapters via dynamic import (lazy loading).
|
|
44
|
+
const source = await MigrationEngine._createSource(options.from);
|
|
45
|
+
const target = await MigrationEngine._createTarget(options.to);
|
|
46
|
+
try {
|
|
47
|
+
const tables = await source.listTables();
|
|
48
|
+
for (const table of tables) {
|
|
49
|
+
try {
|
|
50
|
+
const count = await source.countRows(table);
|
|
51
|
+
if (count === 0) {
|
|
52
|
+
tablesProcessed.push(table);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// Dry run: just count and report progress.
|
|
56
|
+
if (options.dryRun) {
|
|
57
|
+
options.onProgress?.(count, count, table);
|
|
58
|
+
totalRows += count;
|
|
59
|
+
tablesProcessed.push(table);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// Read first batch to get a sample row for schema inference.
|
|
63
|
+
const firstBatch = await source.readBatch(table, 0, batchSize);
|
|
64
|
+
if (firstBatch.length === 0) {
|
|
65
|
+
tablesProcessed.push(table);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// Ensure target table exists (creates schema from sample row).
|
|
69
|
+
await target.ensureTable(table, firstBatch[0]);
|
|
70
|
+
// Write first batch.
|
|
71
|
+
let written = await target.writeBatch(table, firstBatch);
|
|
72
|
+
totalRows += written;
|
|
73
|
+
options.onProgress?.(written, count, table);
|
|
74
|
+
// Stream remaining batches.
|
|
75
|
+
let offset = firstBatch.length;
|
|
76
|
+
while (offset < count) {
|
|
77
|
+
const batch = await source.readBatch(table, offset, batchSize);
|
|
78
|
+
if (batch.length === 0)
|
|
79
|
+
break;
|
|
80
|
+
const w = await target.writeBatch(table, batch);
|
|
81
|
+
written += w;
|
|
82
|
+
totalRows += w;
|
|
83
|
+
offset += batch.length;
|
|
84
|
+
options.onProgress?.(Math.min(offset, count), count, table);
|
|
85
|
+
}
|
|
86
|
+
tablesProcessed.push(table);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
// Per-table errors are collected, not thrown — other tables still migrate.
|
|
90
|
+
errors.push(`[${table}] ${err instanceof Error ? err.message : String(err)}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
// Fatal error (e.g. source connection failed).
|
|
96
|
+
errors.push(err instanceof Error ? err.message : String(err));
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
await source.close().catch(() => { });
|
|
100
|
+
await target.close().catch(() => { });
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
tablesProcessed,
|
|
104
|
+
totalRows,
|
|
105
|
+
durationMs: Date.now() - startTime,
|
|
106
|
+
verified: errors.length === 0,
|
|
107
|
+
errors,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
// Adapter factories (dynamic import for tree-shaking)
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
/**
|
|
114
|
+
* Create a source adapter for the given backend type.
|
|
115
|
+
* Uses dynamic imports so unused adapters don't bloat the bundle.
|
|
116
|
+
*/
|
|
117
|
+
static async _createSource(config) {
|
|
118
|
+
switch (config.type) {
|
|
119
|
+
case 'sqlite': {
|
|
120
|
+
const { SqliteSourceAdapter } = await import('./adapters/SqliteSourceAdapter.js');
|
|
121
|
+
return new SqliteSourceAdapter(config.path);
|
|
122
|
+
}
|
|
123
|
+
case 'postgres': {
|
|
124
|
+
const { PostgresSourceAdapter } = await import('./adapters/PostgresSourceAdapter.js');
|
|
125
|
+
return new PostgresSourceAdapter(config.connectionString);
|
|
126
|
+
}
|
|
127
|
+
case 'qdrant': {
|
|
128
|
+
const { QdrantSourceAdapter } = await import('./adapters/QdrantSourceAdapter.js');
|
|
129
|
+
return new QdrantSourceAdapter(config.url, config.apiKey);
|
|
130
|
+
}
|
|
131
|
+
case 'pinecone': {
|
|
132
|
+
const { PineconeSourceAdapter } = await import('./adapters/PineconeSourceAdapter.js');
|
|
133
|
+
return new PineconeSourceAdapter(config.url, config.apiKey, config.collectionPrefix);
|
|
134
|
+
}
|
|
135
|
+
default:
|
|
136
|
+
throw new Error(`Unsupported migration source type: ${config.type}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Create a target adapter for the given backend type.
|
|
141
|
+
* Uses dynamic imports so unused adapters don't bloat the bundle.
|
|
142
|
+
*/
|
|
143
|
+
static async _createTarget(config) {
|
|
144
|
+
switch (config.type) {
|
|
145
|
+
case 'sqlite': {
|
|
146
|
+
const { SqliteTargetAdapter } = await import('./adapters/SqliteTargetAdapter.js');
|
|
147
|
+
return new SqliteTargetAdapter(config.path);
|
|
148
|
+
}
|
|
149
|
+
case 'postgres': {
|
|
150
|
+
const { PostgresTargetAdapter } = await import('./adapters/PostgresTargetAdapter.js');
|
|
151
|
+
return new PostgresTargetAdapter(config.connectionString);
|
|
152
|
+
}
|
|
153
|
+
case 'qdrant': {
|
|
154
|
+
const { QdrantTargetAdapter } = await import('./adapters/QdrantTargetAdapter.js');
|
|
155
|
+
return new QdrantTargetAdapter(config.url, config.apiKey);
|
|
156
|
+
}
|
|
157
|
+
case 'pinecone': {
|
|
158
|
+
// Pinecone as a target: upsert vectors via the same PineconeVectorStore.
|
|
159
|
+
// For now, use the source adapter pattern — Pinecone is typically a source
|
|
160
|
+
// for migration TO self-hosted backends, not a target.
|
|
161
|
+
throw new Error('Pinecone as migration target is not yet supported. Migrate FROM Pinecone to SQLite/Postgres/Qdrant.');
|
|
162
|
+
}
|
|
163
|
+
default:
|
|
164
|
+
throw new Error(`Unsupported migration target type: ${config.type}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=MigrationEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationEngine.js","sourceRoot":"","sources":["../../../src/rag/migration/MigrationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Pinecone source adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/PineconeSourceAdapter
|
|
4
|
+
*
|
|
5
|
+
* Reads vectors from Pinecone using the list + fetch API.
|
|
6
|
+
* Non-vector data (knowledge graph, etc.) is not stored in Pinecone.
|
|
7
|
+
*/
|
|
8
|
+
import type { IMigrationSource } from '../types.js';
|
|
9
|
+
export declare class PineconeSourceAdapter implements IMigrationSource {
|
|
10
|
+
private readonly indexHost;
|
|
11
|
+
private readonly apiKey;
|
|
12
|
+
private readonly namespace;
|
|
13
|
+
constructor(indexHost: string, apiKey: string, namespace?: string);
|
|
14
|
+
private _headers;
|
|
15
|
+
/** Pinecone only stores vector data — returns single "table". */
|
|
16
|
+
listTables(): Promise<string[]>;
|
|
17
|
+
/** Count vectors via describe_index_stats. */
|
|
18
|
+
countRows(_table: string): Promise<number>;
|
|
19
|
+
/** Read vectors via list + fetch. Pinecone doesn't support offset-based pagination well. */
|
|
20
|
+
readBatch(_table: string, offset: number, limit: number): Promise<Record<string, unknown>[]>;
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=PineconeSourceAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PineconeSourceAdapter.d.ts","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/PineconeSourceAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,qBAAsB,YAAW,gBAAgB;IAE1D,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,SAAK;IAGjC,OAAO,CAAC,QAAQ;IAIhB,iEAAiE;IAC3D,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,8CAA8C;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBhD,4FAA4F;IACtF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IA+B5F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAC7B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Pinecone source adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/PineconeSourceAdapter
|
|
4
|
+
*
|
|
5
|
+
* Reads vectors from Pinecone using the list + fetch API.
|
|
6
|
+
* Non-vector data (knowledge graph, etc.) is not stored in Pinecone.
|
|
7
|
+
*/
|
|
8
|
+
export class PineconeSourceAdapter {
|
|
9
|
+
constructor(indexHost, apiKey, namespace = '') {
|
|
10
|
+
this.indexHost = indexHost;
|
|
11
|
+
this.apiKey = apiKey;
|
|
12
|
+
this.namespace = namespace;
|
|
13
|
+
}
|
|
14
|
+
_headers() {
|
|
15
|
+
return { 'Api-Key': this.apiKey, 'Content-Type': 'application/json' };
|
|
16
|
+
}
|
|
17
|
+
/** Pinecone only stores vector data — returns single "table". */
|
|
18
|
+
async listTables() {
|
|
19
|
+
return ['memory_traces'];
|
|
20
|
+
}
|
|
21
|
+
/** Count vectors via describe_index_stats. */
|
|
22
|
+
async countRows(_table) {
|
|
23
|
+
const res = await fetch(`${this.indexHost}/describe_index_stats`, {
|
|
24
|
+
method: 'POST',
|
|
25
|
+
headers: this._headers(),
|
|
26
|
+
body: '{}',
|
|
27
|
+
});
|
|
28
|
+
if (!res.ok)
|
|
29
|
+
return 0;
|
|
30
|
+
const data = await res.json();
|
|
31
|
+
if (this.namespace && data.namespaces?.[this.namespace]) {
|
|
32
|
+
return data.namespaces[this.namespace].vectorCount ?? 0;
|
|
33
|
+
}
|
|
34
|
+
return data.totalVectorCount ?? 0;
|
|
35
|
+
}
|
|
36
|
+
/** Read vectors via list + fetch. Pinecone doesn't support offset-based pagination well. */
|
|
37
|
+
async readBatch(_table, offset, limit) {
|
|
38
|
+
// Use list endpoint to get IDs, then fetch to get vectors + metadata.
|
|
39
|
+
const listRes = await fetch(`${this.indexHost}/vectors/list?namespace=${encodeURIComponent(this.namespace)}&limit=${limit}`, { headers: this._headers() });
|
|
40
|
+
if (!listRes.ok)
|
|
41
|
+
return [];
|
|
42
|
+
const listData = await listRes.json();
|
|
43
|
+
const ids = (listData.vectors ?? []).map(v => v.id);
|
|
44
|
+
if (ids.length === 0)
|
|
45
|
+
return [];
|
|
46
|
+
// Fetch full vectors by ID.
|
|
47
|
+
const fetchRes = await fetch(`${this.indexHost}/vectors/fetch`, {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
headers: this._headers(),
|
|
50
|
+
body: JSON.stringify({ ids, namespace: this.namespace }),
|
|
51
|
+
});
|
|
52
|
+
if (!fetchRes.ok)
|
|
53
|
+
return [];
|
|
54
|
+
const fetchData = await fetchRes.json();
|
|
55
|
+
return Object.values(fetchData.vectors ?? {}).map(v => ({
|
|
56
|
+
id: v.id,
|
|
57
|
+
embedding: v.values,
|
|
58
|
+
...v.metadata,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
async close() { }
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=PineconeSourceAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PineconeSourceAdapter.js","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/PineconeSourceAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,OAAO,qBAAqB;IAChC,YACmB,SAAiB,EACjB,MAAc,EACd,YAAY,EAAE;QAFd,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAK;IAC9B,CAAC;IAEI,QAAQ;QACd,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACxE,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,UAAU;QACd,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3B,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,uBAAuB,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAG1B,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,4FAA4F;IAC5F,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC3D,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,GAAG,IAAI,CAAC,SAAS,2BAA2B,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,EAAE,EAC/F,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAC7B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAyC,CAAC;QAC7E,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEhC,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,gBAAgB,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAE5B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAEpC,CAAC;QAEF,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,CAAC,CAAC,MAAM;YACnB,GAAG,CAAC,CAAC,QAAQ;SACd,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Postgres source adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/PostgresSourceAdapter
|
|
4
|
+
*
|
|
5
|
+
* Reads data from a Postgres + pgvector database in streaming batches.
|
|
6
|
+
* Uses the `pg` npm package for connection management.
|
|
7
|
+
*/
|
|
8
|
+
import type { IMigrationSource } from '../types.js';
|
|
9
|
+
export declare class PostgresSourceAdapter implements IMigrationSource {
|
|
10
|
+
private readonly connectionString;
|
|
11
|
+
private pool;
|
|
12
|
+
/**
|
|
13
|
+
* @param connectionString - Postgres connection string (e.g. 'postgresql://user:pass@host:5432/db').
|
|
14
|
+
*/
|
|
15
|
+
constructor(connectionString: string);
|
|
16
|
+
/** Lazily initialize the pg connection pool. */
|
|
17
|
+
private _ensurePool;
|
|
18
|
+
/** List tables that exist in the Postgres schema. */
|
|
19
|
+
listTables(): Promise<string[]>;
|
|
20
|
+
/** Count rows in a table. */
|
|
21
|
+
countRows(table: string): Promise<number>;
|
|
22
|
+
/**
|
|
23
|
+
* Read a batch of rows using LIMIT/OFFSET.
|
|
24
|
+
* Converts pgvector `vector` columns to number[] arrays.
|
|
25
|
+
*/
|
|
26
|
+
readBatch(table: string, offset: number, limit: number): Promise<Record<string, unknown>[]>;
|
|
27
|
+
/** Close the connection pool. */
|
|
28
|
+
close(): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=PostgresSourceAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresSourceAdapter.d.ts","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/PostgresSourceAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoBpD,qBAAa,qBAAsB,YAAW,gBAAgB;IAMhD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAL7C,OAAO,CAAC,IAAI,CAAa;IAEzB;;OAEG;gBAC0B,gBAAgB,EAAE,MAAM;IAErD,gDAAgD;YAClC,WAAW;IAOzB,qDAAqD;IAC/C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IASrC,6BAA6B;IACvB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM/C;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAMjG,iCAAiC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Postgres source adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/PostgresSourceAdapter
|
|
4
|
+
*
|
|
5
|
+
* Reads data from a Postgres + pgvector database in streaming batches.
|
|
6
|
+
* Uses the `pg` npm package for connection management.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Tables in the AgentOS Postgres schema that should be migrated.
|
|
10
|
+
* Matches the SQLite schema with JSONB instead of TEXT for JSON columns.
|
|
11
|
+
*/
|
|
12
|
+
const PG_MIGRATION_TABLES = [
|
|
13
|
+
'brain_meta',
|
|
14
|
+
'memory_traces',
|
|
15
|
+
'knowledge_nodes',
|
|
16
|
+
'knowledge_edges',
|
|
17
|
+
'documents',
|
|
18
|
+
'document_chunks',
|
|
19
|
+
'document_images',
|
|
20
|
+
'consolidation_log',
|
|
21
|
+
'retrieval_feedback',
|
|
22
|
+
'conversations',
|
|
23
|
+
'messages',
|
|
24
|
+
];
|
|
25
|
+
export class PostgresSourceAdapter {
|
|
26
|
+
/**
|
|
27
|
+
* @param connectionString - Postgres connection string (e.g. 'postgresql://user:pass@host:5432/db').
|
|
28
|
+
*/
|
|
29
|
+
constructor(connectionString) {
|
|
30
|
+
this.connectionString = connectionString;
|
|
31
|
+
this.pool = null; // pg.Pool — dynamically imported
|
|
32
|
+
}
|
|
33
|
+
/** Lazily initialize the pg connection pool. */
|
|
34
|
+
async _ensurePool() {
|
|
35
|
+
if (this.pool)
|
|
36
|
+
return this.pool;
|
|
37
|
+
const pg = await import('pg');
|
|
38
|
+
this.pool = new pg.default.Pool({ connectionString: this.connectionString, max: 5 });
|
|
39
|
+
return this.pool;
|
|
40
|
+
}
|
|
41
|
+
/** List tables that exist in the Postgres schema. */
|
|
42
|
+
async listTables() {
|
|
43
|
+
const pool = await this._ensurePool();
|
|
44
|
+
const result = await pool.query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_type = 'BASE TABLE'");
|
|
45
|
+
const existing = new Set(result.rows.map((r) => r.table_name));
|
|
46
|
+
return PG_MIGRATION_TABLES.filter(t => existing.has(t));
|
|
47
|
+
}
|
|
48
|
+
/** Count rows in a table. */
|
|
49
|
+
async countRows(table) {
|
|
50
|
+
const pool = await this._ensurePool();
|
|
51
|
+
const result = await pool.query(`SELECT COUNT(*) as c FROM "${table}"`);
|
|
52
|
+
return parseInt(result.rows[0].c, 10);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Read a batch of rows using LIMIT/OFFSET.
|
|
56
|
+
* Converts pgvector `vector` columns to number[] arrays.
|
|
57
|
+
*/
|
|
58
|
+
async readBatch(table, offset, limit) {
|
|
59
|
+
const pool = await this._ensurePool();
|
|
60
|
+
const result = await pool.query(`SELECT * FROM "${table}" LIMIT $1 OFFSET $2`, [limit, offset]);
|
|
61
|
+
return result.rows;
|
|
62
|
+
}
|
|
63
|
+
/** Close the connection pool. */
|
|
64
|
+
async close() {
|
|
65
|
+
if (this.pool) {
|
|
66
|
+
await this.pool.end();
|
|
67
|
+
this.pool = null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=PostgresSourceAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresSourceAdapter.js","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/PostgresSourceAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,MAAM,mBAAmB,GAAG;IAC1B,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,UAAU;CACX,CAAC;AAEF,MAAM,OAAO,qBAAqB;IAGhC;;OAEG;IACH,YAA6B,gBAAwB;QAAxB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAL7C,SAAI,GAAQ,IAAI,CAAC,CAAC,iCAAiC;IAKH,CAAC;IAEzD,gDAAgD;IACxC,KAAK,CAAC,WAAW;QACvB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B,8GAA8G,CAC/G,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,KAAK,GAAG,CAAC,CAAC;QACxE,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAChG,OAAO,MAAM,CAAC,IAAiC,CAAC;IAClD,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Postgres target adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/PostgresTargetAdapter
|
|
4
|
+
*
|
|
5
|
+
* Writes migration data to a Postgres + pgvector database.
|
|
6
|
+
* Ensures pgvector extension and creates tables with appropriate
|
|
7
|
+
* column types (JSONB, vector, tsvector).
|
|
8
|
+
*/
|
|
9
|
+
import type { IMigrationTarget } from '../types.js';
|
|
10
|
+
export declare class PostgresTargetAdapter implements IMigrationTarget {
|
|
11
|
+
private readonly connectionString;
|
|
12
|
+
private pool;
|
|
13
|
+
private createdTables;
|
|
14
|
+
/**
|
|
15
|
+
* @param connectionString - Postgres connection string.
|
|
16
|
+
*/
|
|
17
|
+
constructor(connectionString: string);
|
|
18
|
+
/** Lazily initialize the pg connection pool and ensure pgvector is available. */
|
|
19
|
+
private _ensurePool;
|
|
20
|
+
/**
|
|
21
|
+
* Create the target table if it doesn't exist.
|
|
22
|
+
* Infers column types from the sample row:
|
|
23
|
+
* - Buffer → BYTEA (or vector if column name contains 'embedding')
|
|
24
|
+
* - number → BIGINT or DOUBLE PRECISION
|
|
25
|
+
* - boolean → BOOLEAN
|
|
26
|
+
* - object/array → JSONB
|
|
27
|
+
* - string → TEXT
|
|
28
|
+
*/
|
|
29
|
+
ensureTable(table: string, sampleRow: Record<string, unknown>): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Write a batch of rows using INSERT ... ON CONFLICT DO NOTHING.
|
|
32
|
+
* Wraps in a single transaction for atomicity.
|
|
33
|
+
*/
|
|
34
|
+
writeBatch(table: string, rows: Record<string, unknown>[]): Promise<number>;
|
|
35
|
+
/** Close the connection pool. */
|
|
36
|
+
close(): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=PostgresTargetAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresTargetAdapter.d.ts","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/PostgresTargetAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,qBAAsB,YAAW,gBAAgB;IAOhD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAN7C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,aAAa,CAAqB;IAE1C;;OAEG;gBAC0B,gBAAgB,EAAE,MAAM;IAErD,iFAAiF;YACnE,WAAW;IASzB;;;;;;;;OAQG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnF;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAyCjF,iCAAiC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Postgres target adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/PostgresTargetAdapter
|
|
4
|
+
*
|
|
5
|
+
* Writes migration data to a Postgres + pgvector database.
|
|
6
|
+
* Ensures pgvector extension and creates tables with appropriate
|
|
7
|
+
* column types (JSONB, vector, tsvector).
|
|
8
|
+
*/
|
|
9
|
+
export class PostgresTargetAdapter {
|
|
10
|
+
/**
|
|
11
|
+
* @param connectionString - Postgres connection string.
|
|
12
|
+
*/
|
|
13
|
+
constructor(connectionString) {
|
|
14
|
+
this.connectionString = connectionString;
|
|
15
|
+
this.pool = null;
|
|
16
|
+
this.createdTables = new Set();
|
|
17
|
+
}
|
|
18
|
+
/** Lazily initialize the pg connection pool and ensure pgvector is available. */
|
|
19
|
+
async _ensurePool() {
|
|
20
|
+
if (this.pool)
|
|
21
|
+
return this.pool;
|
|
22
|
+
const pg = await import('pg');
|
|
23
|
+
this.pool = new pg.default.Pool({ connectionString: this.connectionString, max: 5 });
|
|
24
|
+
// Ensure pgvector extension exists.
|
|
25
|
+
await this.pool.query('CREATE EXTENSION IF NOT EXISTS vector');
|
|
26
|
+
return this.pool;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create the target table if it doesn't exist.
|
|
30
|
+
* Infers column types from the sample row:
|
|
31
|
+
* - Buffer → BYTEA (or vector if column name contains 'embedding')
|
|
32
|
+
* - number → BIGINT or DOUBLE PRECISION
|
|
33
|
+
* - boolean → BOOLEAN
|
|
34
|
+
* - object/array → JSONB
|
|
35
|
+
* - string → TEXT
|
|
36
|
+
*/
|
|
37
|
+
async ensureTable(table, sampleRow) {
|
|
38
|
+
if (this.createdTables.has(table))
|
|
39
|
+
return;
|
|
40
|
+
const pool = await this._ensurePool();
|
|
41
|
+
const columns = Object.keys(sampleRow);
|
|
42
|
+
const colDefs = columns.map(col => {
|
|
43
|
+
const val = sampleRow[col];
|
|
44
|
+
// Embedding columns get the pgvector `vector` type.
|
|
45
|
+
if (col.includes('embedding') && (val instanceof Buffer || Array.isArray(val))) {
|
|
46
|
+
const dim = val instanceof Buffer ? val.byteLength / 4 : val.length;
|
|
47
|
+
return `"${col}" vector(${dim})`;
|
|
48
|
+
}
|
|
49
|
+
if (val instanceof Buffer || val instanceof Uint8Array)
|
|
50
|
+
return `"${col}" BYTEA`;
|
|
51
|
+
if (typeof val === 'number')
|
|
52
|
+
return `"${col}" ${Number.isInteger(val) ? 'BIGINT' : 'DOUBLE PRECISION'}`;
|
|
53
|
+
if (typeof val === 'boolean')
|
|
54
|
+
return `"${col}" BOOLEAN`;
|
|
55
|
+
if (typeof val === 'object' && val !== null)
|
|
56
|
+
return `"${col}" JSONB`;
|
|
57
|
+
return `"${col}" TEXT`;
|
|
58
|
+
}).join(', ');
|
|
59
|
+
await pool.query(`CREATE TABLE IF NOT EXISTS "${table}" (${colDefs})`);
|
|
60
|
+
this.createdTables.add(table);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Write a batch of rows using INSERT ... ON CONFLICT DO NOTHING.
|
|
64
|
+
* Wraps in a single transaction for atomicity.
|
|
65
|
+
*/
|
|
66
|
+
async writeBatch(table, rows) {
|
|
67
|
+
if (rows.length === 0)
|
|
68
|
+
return 0;
|
|
69
|
+
const pool = await this._ensurePool();
|
|
70
|
+
const client = await pool.connect();
|
|
71
|
+
try {
|
|
72
|
+
await client.query('BEGIN');
|
|
73
|
+
const columns = Object.keys(rows[0]);
|
|
74
|
+
const quotedCols = columns.map(c => `"${c}"`).join(', ');
|
|
75
|
+
const placeholders = columns.map((_, i) => `$${i + 1}`).join(', ');
|
|
76
|
+
const sql = `INSERT INTO "${table}" (${quotedCols}) VALUES (${placeholders}) ON CONFLICT DO NOTHING`;
|
|
77
|
+
let count = 0;
|
|
78
|
+
for (const row of rows) {
|
|
79
|
+
const values = columns.map(c => {
|
|
80
|
+
const v = row[c];
|
|
81
|
+
// Convert Buffer embeddings to pgvector format: '[0.1,0.2,...]'
|
|
82
|
+
if (c.includes('embedding') && v instanceof Buffer) {
|
|
83
|
+
const f32 = new Float32Array(v.buffer, v.byteOffset, v.byteLength / 4);
|
|
84
|
+
return `[${Array.from(f32).join(',')}]`;
|
|
85
|
+
}
|
|
86
|
+
// Convert objects/arrays to JSON strings for JSONB columns.
|
|
87
|
+
if (typeof v === 'object' && v !== null && !(v instanceof Buffer)) {
|
|
88
|
+
return JSON.stringify(v);
|
|
89
|
+
}
|
|
90
|
+
return v;
|
|
91
|
+
});
|
|
92
|
+
await client.query(sql, values);
|
|
93
|
+
count++;
|
|
94
|
+
}
|
|
95
|
+
await client.query('COMMIT');
|
|
96
|
+
return count;
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
await client.query('ROLLBACK');
|
|
100
|
+
throw err;
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
client.release();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** Close the connection pool. */
|
|
107
|
+
async close() {
|
|
108
|
+
if (this.pool) {
|
|
109
|
+
await this.pool.end();
|
|
110
|
+
this.pool = null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=PostgresTargetAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresTargetAdapter.js","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/PostgresTargetAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Qdrant source adapter for the migration engine.
|
|
3
|
+
* @module rag/migration/adapters/QdrantSourceAdapter
|
|
4
|
+
*
|
|
5
|
+
* Reads vectors from Qdrant collections using the scroll API.
|
|
6
|
+
* Non-vector data (knowledge graph, documents, etc.) is read from
|
|
7
|
+
* the sidecar SQLite file that accompanies Qdrant deployments.
|
|
8
|
+
*/
|
|
9
|
+
import type { IMigrationSource } from '../types.js';
|
|
10
|
+
export declare class QdrantSourceAdapter implements IMigrationSource {
|
|
11
|
+
private readonly url;
|
|
12
|
+
private readonly apiKey?;
|
|
13
|
+
private sidecarDb;
|
|
14
|
+
/**
|
|
15
|
+
* @param url - Qdrant base URL (e.g. 'http://localhost:6333').
|
|
16
|
+
* @param apiKey - Optional API key for cloud instances.
|
|
17
|
+
*/
|
|
18
|
+
constructor(url: string, apiKey?: string | undefined);
|
|
19
|
+
/** Build fetch headers with optional API key. */
|
|
20
|
+
private _headers;
|
|
21
|
+
/**
|
|
22
|
+
* List available tables/collections.
|
|
23
|
+
* Combines Qdrant collections and sidecar SQLite tables.
|
|
24
|
+
*/
|
|
25
|
+
listTables(): Promise<string[]>;
|
|
26
|
+
/** Count points in a Qdrant collection. */
|
|
27
|
+
countRows(table: string): Promise<number>;
|
|
28
|
+
/**
|
|
29
|
+
* Read a batch of points from a Qdrant collection using the scroll API.
|
|
30
|
+
* Converts Qdrant point format to flat row objects.
|
|
31
|
+
*/
|
|
32
|
+
readBatch(table: string, offset: number, limit: number): Promise<Record<string, unknown>[]>;
|
|
33
|
+
/** Close connections. */
|
|
34
|
+
close(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=QdrantSourceAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QdrantSourceAdapter.d.ts","sourceRoot":"","sources":["../../../../src/rag/migration/adapters/QdrantSourceAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYpD,qBAAa,mBAAoB,YAAW,gBAAgB;IAQxD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAR1B,OAAO,CAAC,SAAS,CAAa;IAE9B;;;OAGG;gBAEgB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,YAAA;IAGlC,iDAAiD;IACjD,OAAO,CAAC,QAAQ;IAMhB;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA0BrC,2CAA2C;IACrC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW/C;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IA8BjG,yBAAyB;IACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|