@framers/agentos 0.1.112 → 0.1.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -5
- package/dist/api/AgentOS.d.ts +45 -12
- package/dist/api/AgentOS.d.ts.map +1 -1
- package/dist/api/AgentOS.js +225 -78
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/AgentOSOrchestrator.d.ts +8 -0
- package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
- package/dist/api/AgentOSOrchestrator.js +350 -59
- package/dist/api/AgentOSOrchestrator.js.map +1 -1
- package/dist/api/StreamChunkEmitter.d.ts.map +1 -1
- package/dist/api/StreamChunkEmitter.js +2 -0
- package/dist/api/StreamChunkEmitter.js.map +1 -1
- package/dist/api/agency.d.ts.map +1 -1
- package/dist/api/agency.js +47 -1
- package/dist/api/agency.js.map +1 -1
- package/dist/api/agent.d.ts +18 -5
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js +48 -9
- package/dist/api/agent.js.map +1 -1
- package/dist/api/agentExport.d.ts +202 -0
- package/dist/api/agentExport.d.ts.map +1 -0
- package/dist/api/agentExport.js +323 -0
- package/dist/api/agentExport.js.map +1 -0
- package/dist/api/editImage.d.ts +119 -0
- package/dist/api/editImage.d.ts.map +1 -0
- package/dist/api/editImage.js +150 -0
- package/dist/api/editImage.js.map +1 -0
- package/dist/api/embedText.d.ts +137 -0
- package/dist/api/embedText.d.ts.map +1 -0
- package/dist/api/embedText.js +229 -0
- package/dist/api/embedText.js.map +1 -0
- package/dist/api/externalToolRegistry.d.ts +44 -0
- package/dist/api/externalToolRegistry.d.ts.map +1 -0
- package/dist/api/externalToolRegistry.js +245 -0
- package/dist/api/externalToolRegistry.js.map +1 -0
- package/dist/api/generateImage.d.ts +1 -1
- package/dist/api/generateImage.d.ts.map +1 -1
- package/dist/api/generateImage.js +17 -13
- package/dist/api/generateImage.js.map +1 -1
- package/dist/api/generateObject.d.ts +185 -0
- package/dist/api/generateObject.d.ts.map +1 -0
- package/dist/api/generateObject.js +249 -0
- package/dist/api/generateObject.js.map +1 -0
- package/dist/api/generateText.d.ts +13 -3
- package/dist/api/generateText.d.ts.map +1 -1
- package/dist/api/generateText.js +20 -5
- package/dist/api/generateText.js.map +1 -1
- package/dist/api/interfaces/IAgentOS.d.ts +29 -1
- package/dist/api/interfaces/IAgentOS.d.ts.map +1 -1
- package/dist/api/model.d.ts +7 -7
- package/dist/api/model.d.ts.map +1 -1
- package/dist/api/model.js +22 -16
- package/dist/api/model.js.map +1 -1
- package/dist/api/processRequestWithExternalTools.d.ts +26 -0
- package/dist/api/processRequestWithExternalTools.d.ts.map +1 -0
- package/dist/api/processRequestWithExternalTools.js +52 -0
- package/dist/api/processRequestWithExternalTools.js.map +1 -0
- package/dist/api/processRequestWithRegisteredTools.d.ts +56 -0
- package/dist/api/processRequestWithRegisteredTools.d.ts.map +1 -0
- package/dist/api/processRequestWithRegisteredTools.js +125 -0
- package/dist/api/processRequestWithRegisteredTools.js.map +1 -0
- package/dist/api/provider-defaults.d.ts.map +1 -1
- package/dist/api/provider-defaults.js +28 -0
- package/dist/api/provider-defaults.js.map +1 -1
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts +71 -0
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts.map +1 -0
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.js +159 -0
- package/dist/api/resumeExternalToolRequestWithRegisteredTools.js.map +1 -0
- package/dist/api/strategies/agentGraphBuilder.d.ts +170 -0
- package/dist/api/strategies/agentGraphBuilder.d.ts.map +1 -0
- package/dist/api/strategies/agentGraphBuilder.js +299 -0
- package/dist/api/strategies/agentGraphBuilder.js.map +1 -0
- package/dist/api/strategies/debate.d.ts +12 -1
- package/dist/api/strategies/debate.d.ts.map +1 -1
- package/dist/api/strategies/debate.js +41 -5
- package/dist/api/strategies/debate.js.map +1 -1
- package/dist/api/strategies/graphCompiler.d.ts +84 -0
- package/dist/api/strategies/graphCompiler.d.ts.map +1 -0
- package/dist/api/strategies/graphCompiler.js +617 -0
- package/dist/api/strategies/graphCompiler.js.map +1 -0
- package/dist/api/strategies/hierarchical.d.ts +15 -1
- package/dist/api/strategies/hierarchical.d.ts.map +1 -1
- package/dist/api/strategies/hierarchical.js +53 -8
- package/dist/api/strategies/hierarchical.js.map +1 -1
- package/dist/api/strategies/index.d.ts +29 -4
- package/dist/api/strategies/index.d.ts.map +1 -1
- package/dist/api/strategies/index.js +28 -4
- package/dist/api/strategies/index.js.map +1 -1
- package/dist/api/strategies/parallel.d.ts +15 -4
- package/dist/api/strategies/parallel.d.ts.map +1 -1
- package/dist/api/strategies/parallel.js +53 -16
- package/dist/api/strategies/parallel.js.map +1 -1
- package/dist/api/strategies/review-loop.d.ts +15 -1
- package/dist/api/strategies/review-loop.d.ts.map +1 -1
- package/dist/api/strategies/review-loop.js +36 -10
- package/dist/api/strategies/review-loop.js.map +1 -1
- package/dist/api/strategies/sequential.d.ts +11 -1
- package/dist/api/strategies/sequential.d.ts.map +1 -1
- package/dist/api/strategies/sequential.js +39 -8
- package/dist/api/strategies/sequential.js.map +1 -1
- package/dist/api/strategies/shared.d.ts +72 -8
- package/dist/api/strategies/shared.d.ts.map +1 -1
- package/dist/api/strategies/shared.js +92 -12
- package/dist/api/strategies/shared.js.map +1 -1
- package/dist/api/streamObject.d.ts +166 -0
- package/dist/api/streamObject.d.ts.map +1 -0
- package/dist/api/streamObject.js +268 -0
- package/dist/api/streamObject.js.map +1 -0
- package/dist/api/streamText.d.ts +1 -1
- package/dist/api/streamText.d.ts.map +1 -1
- package/dist/api/streamText.js +26 -8
- package/dist/api/streamText.js.map +1 -1
- package/dist/api/toolAdapter.d.ts +44 -8
- package/dist/api/toolAdapter.d.ts.map +1 -1
- package/dist/api/toolAdapter.js +224 -45
- package/dist/api/toolAdapter.js.map +1 -1
- package/dist/api/types/AgentOSExternalToolRequest.d.ts +35 -0
- package/dist/api/types/AgentOSExternalToolRequest.d.ts.map +1 -0
- package/dist/api/types/AgentOSExternalToolRequest.js +2 -0
- package/dist/api/types/AgentOSExternalToolRequest.js.map +1 -0
- package/dist/api/types/AgentOSResponse.d.ts +25 -0
- package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
- package/dist/api/types/AgentOSResponse.js +20 -0
- package/dist/api/types/AgentOSResponse.js.map +1 -1
- package/dist/api/types/AgentOSToolResult.d.ts +11 -0
- package/dist/api/types/AgentOSToolResult.d.ts.map +1 -0
- package/dist/api/types/AgentOSToolResult.js +2 -0
- package/dist/api/types/AgentOSToolResult.js.map +1 -0
- package/dist/api/types.d.ts +81 -4
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/api/upscaleImage.d.ts +92 -0
- package/dist/api/upscaleImage.d.ts.map +1 -0
- package/dist/api/upscaleImage.js +133 -0
- package/dist/api/upscaleImage.js.map +1 -0
- package/dist/api/variateImage.d.ts +102 -0
- package/dist/api/variateImage.d.ts.map +1 -0
- package/dist/api/variateImage.js +154 -0
- package/dist/api/variateImage.js.map +1 -0
- package/dist/cognitive_substrate/GMI.d.ts +16 -2
- package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/GMI.js +188 -56
- package/dist/cognitive_substrate/GMI.js.map +1 -1
- package/dist/cognitive_substrate/IGMI.d.ts +10 -0
- package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/IGMI.js.map +1 -1
- package/dist/config/AgentOSConfig.d.ts +19 -2
- package/dist/config/AgentOSConfig.d.ts.map +1 -1
- package/dist/config/AgentOSConfig.js +46 -29
- package/dist/config/AgentOSConfig.js.map +1 -1
- package/dist/core/guardrails/IGuardrailService.d.ts +1 -1
- package/dist/core/images/IImageProvider.d.ts +93 -0
- package/dist/core/images/IImageProvider.d.ts.map +1 -1
- package/dist/core/images/IImageProvider.js.map +1 -1
- package/dist/core/images/ImageOperationError.d.ts +52 -0
- package/dist/core/images/ImageOperationError.d.ts.map +1 -0
- package/dist/core/images/ImageOperationError.js +58 -0
- package/dist/core/images/ImageOperationError.js.map +1 -0
- package/dist/core/images/imageToBuffer.d.ts +41 -0
- package/dist/core/images/imageToBuffer.d.ts.map +1 -0
- package/dist/core/images/imageToBuffer.js +95 -0
- package/dist/core/images/imageToBuffer.js.map +1 -0
- package/dist/core/images/index.d.ts +4 -0
- package/dist/core/images/index.d.ts.map +1 -1
- package/dist/core/images/index.js +8 -0
- package/dist/core/images/index.js.map +1 -1
- package/dist/core/images/providers/FalImageProvider.d.ts +208 -0
- package/dist/core/images/providers/FalImageProvider.d.ts.map +1 -0
- package/dist/core/images/providers/FalImageProvider.js +301 -0
- package/dist/core/images/providers/FalImageProvider.js.map +1 -0
- package/dist/core/images/providers/FluxImageProvider.d.ts +197 -0
- package/dist/core/images/providers/FluxImageProvider.d.ts.map +1 -0
- package/dist/core/images/providers/FluxImageProvider.js +271 -0
- package/dist/core/images/providers/FluxImageProvider.js.map +1 -0
- package/dist/core/images/providers/OpenAIImageProvider.d.ts +33 -1
- package/dist/core/images/providers/OpenAIImageProvider.d.ts.map +1 -1
- package/dist/core/images/providers/OpenAIImageProvider.js +125 -0
- package/dist/core/images/providers/OpenAIImageProvider.js.map +1 -1
- package/dist/core/images/providers/ReplicateImageProvider.d.ts +26 -1
- package/dist/core/images/providers/ReplicateImageProvider.d.ts.map +1 -1
- package/dist/core/images/providers/ReplicateImageProvider.js +118 -0
- package/dist/core/images/providers/ReplicateImageProvider.js.map +1 -1
- package/dist/core/images/providers/StabilityImageProvider.d.ts +41 -1
- package/dist/core/images/providers/StabilityImageProvider.d.ts.map +1 -1
- package/dist/core/images/providers/StabilityImageProvider.js +180 -7
- package/dist/core/images/providers/StabilityImageProvider.js.map +1 -1
- package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts +29 -1
- package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts.map +1 -1
- package/dist/core/images/providers/StableDiffusionLocalProvider.js +124 -0
- package/dist/core/images/providers/StableDiffusionLocalProvider.js.map +1 -1
- package/dist/core/llm/IPromptEngine.d.ts +2 -2
- package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
- package/dist/core/llm/IPromptEngine.js +2 -2
- package/dist/core/llm/IPromptEngine.js.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts +7 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.js +24 -0
- package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
- package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts +42 -0
- package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/AnthropicProviderError.js +45 -0
- package/dist/core/llm/providers/errors/AnthropicProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.d.ts +45 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.js +46 -0
- package/dist/core/llm/providers/errors/GeminiProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +1 -1
- package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -1
- package/dist/core/llm/providers/errors/OllamaProviderError.js +1 -1
- package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -1
- package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +1 -1
- package/dist/core/llm/providers/errors/OpenAIProviderError.js +1 -1
- package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +1 -1
- package/dist/core/llm/providers/errors/OpenRouterProviderError.js +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +340 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.js +959 -0
- package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.d.ts +339 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.js +1004 -0
- package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/GroqProvider.d.ts +105 -0
- package/dist/core/llm/providers/implementations/GroqProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GroqProvider.js +134 -0
- package/dist/core/llm/providers/implementations/GroqProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/MistralProvider.d.ts +105 -0
- package/dist/core/llm/providers/implementations/MistralProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/MistralProvider.js +146 -0
- package/dist/core/llm/providers/implementations/MistralProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.d.ts +107 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.js +138 -0
- package/dist/core/llm/providers/implementations/TogetherProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/XAIProvider.d.ts +102 -0
- package/dist/core/llm/providers/implementations/XAIProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/XAIProvider.js +123 -0
- package/dist/core/llm/providers/implementations/XAIProvider.js.map +1 -0
- package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/AgentOrchestrator.js +26 -5
- package/dist/core/orchestration/AgentOrchestrator.js.map +1 -1
- package/dist/core/tools/IToolOrchestrator.d.ts +2 -2
- package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -1
- package/dist/core/tools/ToolExecutor.d.ts +3 -0
- package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
- package/dist/core/tools/ToolExecutor.js +2 -1
- package/dist/core/tools/ToolExecutor.js.map +1 -1
- package/dist/core/tools/ToolOrchestrator.d.ts +7 -7
- package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
- package/dist/core/tools/ToolOrchestrator.js +135 -36
- package/dist/core/tools/ToolOrchestrator.js.map +1 -1
- package/dist/core/tools/permissions/ToolPermissionManager.d.ts +6 -5
- package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -1
- package/dist/core/tools/permissions/ToolPermissionManager.js +47 -21
- package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -1
- package/dist/core/vision/VisionPipeline.d.ts +437 -0
- package/dist/core/vision/VisionPipeline.d.ts.map +1 -0
- package/dist/core/vision/VisionPipeline.js +1113 -0
- package/dist/core/vision/VisionPipeline.js.map +1 -0
- package/dist/core/vision/index.d.ts +97 -0
- package/dist/core/vision/index.d.ts.map +1 -0
- package/dist/core/vision/index.js +182 -0
- package/dist/core/vision/index.js.map +1 -0
- package/dist/core/vision/providers/LLMVisionProvider.d.ts +135 -0
- package/dist/core/vision/providers/LLMVisionProvider.d.ts.map +1 -0
- package/dist/core/vision/providers/LLMVisionProvider.js +136 -0
- package/dist/core/vision/providers/LLMVisionProvider.js.map +1 -0
- package/dist/core/vision/providers/PipelineVisionProvider.d.ts +154 -0
- package/dist/core/vision/providers/PipelineVisionProvider.d.ts.map +1 -0
- package/dist/core/vision/providers/PipelineVisionProvider.js +160 -0
- package/dist/core/vision/providers/PipelineVisionProvider.js.map +1 -0
- package/dist/core/vision/types.d.ts +286 -0
- package/dist/core/vision/types.d.ts.map +1 -0
- package/dist/core/vision/types.js +24 -0
- package/dist/core/vision/types.js.map +1 -0
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.js +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
- package/dist/emergent/ComposableToolBuilder.d.ts +15 -4
- package/dist/emergent/ComposableToolBuilder.d.ts.map +1 -1
- package/dist/emergent/ComposableToolBuilder.js +29 -14
- package/dist/emergent/ComposableToolBuilder.js.map +1 -1
- package/dist/emergent/EmergentCapabilityEngine.d.ts +3 -3
- package/dist/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
- package/dist/emergent/EmergentCapabilityEngine.js +15 -12
- package/dist/emergent/EmergentCapabilityEngine.js.map +1 -1
- package/dist/emergent/EmergentJudge.d.ts +20 -0
- package/dist/emergent/EmergentJudge.d.ts.map +1 -1
- package/dist/emergent/EmergentJudge.js +121 -26
- package/dist/emergent/EmergentJudge.js.map +1 -1
- package/dist/emergent/EmergentToolRegistry.d.ts +17 -0
- package/dist/emergent/EmergentToolRegistry.d.ts.map +1 -1
- package/dist/emergent/EmergentToolRegistry.js +26 -0
- package/dist/emergent/EmergentToolRegistry.js.map +1 -1
- package/dist/emergent/ForgeToolMetaTool.d.ts +1 -1
- package/dist/emergent/ForgeToolMetaTool.d.ts.map +1 -1
- package/dist/emergent/ForgeToolMetaTool.js +15 -2
- package/dist/emergent/ForgeToolMetaTool.js.map +1 -1
- package/dist/emergent/SandboxedToolForge.d.ts +2 -2
- package/dist/emergent/SandboxedToolForge.d.ts.map +1 -1
- package/dist/emergent/SandboxedToolForge.js +13 -23
- package/dist/emergent/SandboxedToolForge.js.map +1 -1
- package/dist/emergent/SkillExporter.d.ts +119 -0
- package/dist/emergent/SkillExporter.d.ts.map +1 -0
- package/dist/emergent/SkillExporter.js +344 -0
- package/dist/emergent/SkillExporter.js.map +1 -0
- package/dist/emergent/index.d.ts +1 -0
- package/dist/emergent/index.d.ts.map +1 -1
- package/dist/emergent/index.js +1 -0
- package/dist/emergent/index.js.map +1 -1
- package/dist/emergent/types.d.ts +4 -4
- package/dist/index.d.ts +30 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/memory/facade/Memory.d.ts.map +1 -1
- package/dist/memory/facade/Memory.js +8 -0
- package/dist/memory/facade/Memory.js.map +1 -1
- package/dist/memory/facade/types.d.ts +10 -0
- package/dist/memory/facade/types.d.ts.map +1 -1
- package/dist/memory/index.d.ts +15 -7
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +7 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/ingestion/DoclingLoader.d.ts +3 -3
- package/dist/memory/ingestion/DoclingLoader.d.ts.map +1 -1
- package/dist/memory/ingestion/DoclingLoader.js +12 -8
- package/dist/memory/ingestion/DoclingLoader.js.map +1 -1
- package/dist/memory/ingestion/FolderScanner.d.ts +7 -7
- package/dist/memory/ingestion/FolderScanner.d.ts.map +1 -1
- package/dist/memory/ingestion/FolderScanner.js +6 -6
- package/dist/memory/ingestion/FolderScanner.js.map +1 -1
- package/dist/memory/ingestion/LoaderRegistry.d.ts +8 -8
- package/dist/memory/ingestion/LoaderRegistry.d.ts.map +1 -1
- package/dist/memory/ingestion/LoaderRegistry.js +9 -11
- package/dist/memory/ingestion/LoaderRegistry.js.map +1 -1
- package/dist/memory/ingestion/MultimodalAggregator.d.ts +1 -1
- package/dist/memory/ingestion/MultimodalAggregator.js +1 -1
- package/dist/memory/ingestion/OcrPdfLoader.d.ts +2 -2
- package/dist/memory/ingestion/OcrPdfLoader.d.ts.map +1 -1
- package/dist/memory/ingestion/OcrPdfLoader.js +12 -8
- package/dist/memory/ingestion/OcrPdfLoader.js.map +1 -1
- package/dist/memory/ingestion/PdfLoader.d.ts +8 -8
- package/dist/memory/ingestion/PdfLoader.d.ts.map +1 -1
- package/dist/memory/ingestion/PdfLoader.js +13 -10
- package/dist/memory/ingestion/PdfLoader.js.map +1 -1
- package/dist/memory/io/MarkdownExporter.d.ts +1 -1
- package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
- package/dist/memory/io/MarkdownExporter.js +1 -1
- package/dist/memory/io/MarkdownExporter.js.map +1 -1
- package/dist/memory/observation/MemoryObserver.d.ts +63 -1
- package/dist/memory/observation/MemoryObserver.d.ts.map +1 -1
- package/dist/memory/observation/MemoryObserver.js +115 -4
- package/dist/memory/observation/MemoryObserver.js.map +1 -1
- package/dist/memory/observation/ObservationCompressor.d.ts +88 -0
- package/dist/memory/observation/ObservationCompressor.d.ts.map +1 -0
- package/dist/memory/observation/ObservationCompressor.js +207 -0
- package/dist/memory/observation/ObservationCompressor.js.map +1 -0
- package/dist/memory/observation/ObservationReflector.d.ts +82 -0
- package/dist/memory/observation/ObservationReflector.d.ts.map +1 -0
- package/dist/memory/observation/ObservationReflector.js +212 -0
- package/dist/memory/observation/ObservationReflector.js.map +1 -0
- package/dist/memory/observation/temporal.d.ts +54 -0
- package/dist/memory/observation/temporal.d.ts.map +1 -0
- package/dist/memory/observation/temporal.js +115 -0
- package/dist/memory/observation/temporal.js.map +1 -0
- package/dist/memory/tools/MemoryAddTool.d.ts +2 -2
- package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
- package/dist/memory/tools/MemoryAddTool.js +8 -3
- package/dist/memory/tools/MemoryAddTool.js.map +1 -1
- package/dist/memory/tools/MemorySearchTool.d.ts +3 -3
- package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
- package/dist/memory/tools/MemorySearchTool.js +11 -9
- package/dist/memory/tools/MemorySearchTool.js.map +1 -1
- package/dist/memory/tools/scopeContext.d.ts +11 -0
- package/dist/memory/tools/scopeContext.d.ts.map +1 -0
- package/dist/memory/tools/scopeContext.js +46 -0
- package/dist/memory/tools/scopeContext.js.map +1 -0
- package/dist/orchestration/builders/AgentGraph.d.ts +12 -11
- package/dist/orchestration/builders/AgentGraph.d.ts.map +1 -1
- package/dist/orchestration/builders/AgentGraph.js +12 -11
- package/dist/orchestration/builders/AgentGraph.js.map +1 -1
- package/dist/orchestration/builders/VoiceNodeBuilder.d.ts +82 -25
- package/dist/orchestration/builders/VoiceNodeBuilder.d.ts.map +1 -1
- package/dist/orchestration/builders/VoiceNodeBuilder.js +86 -26
- package/dist/orchestration/builders/VoiceNodeBuilder.js.map +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.d.ts +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.d.ts.map +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.js +1 -1
- package/dist/orchestration/builders/WorkflowBuilder.js.map +1 -1
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts +7 -54
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts.map +1 -1
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js +8 -56
- package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js.map +1 -1
- package/dist/orchestration/events/GraphEvent.d.ts +67 -5
- package/dist/orchestration/events/GraphEvent.d.ts.map +1 -1
- package/dist/orchestration/events/GraphEvent.js.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.js +151 -1
- package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
- package/dist/orchestration/runtime/LoopController.d.ts +3 -3
- package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
- package/dist/orchestration/runtime/LoopController.js.map +1 -1
- package/dist/orchestration/runtime/StateManager.d.ts +3 -3
- package/dist/orchestration/runtime/StateManager.js +3 -3
- package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts +103 -26
- package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts.map +1 -1
- package/dist/orchestration/runtime/VoiceNodeExecutor.js +155 -43
- package/dist/orchestration/runtime/VoiceNodeExecutor.js.map +1 -1
- package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts +95 -33
- package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts.map +1 -1
- package/dist/orchestration/runtime/VoiceTransportAdapter.js +83 -29
- package/dist/orchestration/runtime/VoiceTransportAdapter.js.map +1 -1
- package/dist/orchestration/runtime/VoiceTurnCollector.d.ts +73 -20
- package/dist/orchestration/runtime/VoiceTurnCollector.d.ts.map +1 -1
- package/dist/orchestration/runtime/VoiceTurnCollector.js +84 -23
- package/dist/orchestration/runtime/VoiceTurnCollector.js.map +1 -1
- package/dist/query-router/KeywordFallback.d.ts +70 -0
- package/dist/query-router/KeywordFallback.d.ts.map +1 -0
- package/dist/query-router/KeywordFallback.js +132 -0
- package/dist/query-router/KeywordFallback.js.map +1 -0
- package/dist/query-router/QueryClassifier.d.ts +140 -0
- package/dist/query-router/QueryClassifier.d.ts.map +1 -0
- package/dist/query-router/QueryClassifier.js +223 -0
- package/dist/query-router/QueryClassifier.js.map +1 -0
- package/dist/query-router/QueryDispatcher.d.ts +139 -0
- package/dist/query-router/QueryDispatcher.d.ts.map +1 -0
- package/dist/query-router/QueryDispatcher.js +297 -0
- package/dist/query-router/QueryDispatcher.js.map +1 -0
- package/dist/query-router/QueryGenerator.d.ts +184 -0
- package/dist/query-router/QueryGenerator.d.ts.map +1 -0
- package/dist/query-router/QueryGenerator.js +241 -0
- package/dist/query-router/QueryGenerator.js.map +1 -0
- package/dist/query-router/QueryRouter.d.ts +292 -0
- package/dist/query-router/QueryRouter.d.ts.map +1 -0
- package/dist/query-router/QueryRouter.js +803 -0
- package/dist/query-router/QueryRouter.js.map +1 -0
- package/dist/query-router/TopicExtractor.d.ts +73 -0
- package/dist/query-router/TopicExtractor.d.ts.map +1 -0
- package/dist/query-router/TopicExtractor.js +95 -0
- package/dist/query-router/TopicExtractor.js.map +1 -0
- package/dist/query-router/index.d.ts +40 -0
- package/dist/query-router/index.d.ts.map +1 -0
- package/dist/query-router/index.js +46 -0
- package/dist/query-router/index.js.map +1 -0
- package/dist/query-router/types.d.ts +508 -0
- package/dist/query-router/types.d.ts.map +1 -0
- package/dist/query-router/types.js +39 -0
- package/dist/query-router/types.js.map +1 -0
- package/dist/rag/index.d.ts +5 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +7 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/multimodal/LLMVisionAdapter.d.ts +43 -0
- package/dist/rag/multimodal/LLMVisionAdapter.d.ts.map +1 -0
- package/dist/rag/multimodal/LLMVisionAdapter.js +46 -0
- package/dist/rag/multimodal/LLMVisionAdapter.js.map +1 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts +244 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -0
- package/dist/rag/multimodal/MultimodalIndexer.js +411 -0
- package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts +448 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts.map +1 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.js +941 -0
- package/dist/rag/multimodal/MultimodalMemoryBridge.js.map +1 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.d.ts +139 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.d.ts.map +1 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.js +143 -0
- package/dist/rag/multimodal/SpeechProviderAdapter.js.map +1 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts +172 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts.map +1 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js +152 -0
- package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js.map +1 -0
- package/dist/rag/multimodal/index.d.ts +44 -0
- package/dist/rag/multimodal/index.d.ts.map +1 -0
- package/dist/rag/multimodal/index.js +42 -0
- package/dist/rag/multimodal/index.js.map +1 -0
- package/dist/rag/multimodal/types.d.ts +276 -0
- package/dist/rag/multimodal/types.d.ts.map +1 -0
- package/dist/rag/multimodal/types.js +26 -0
- package/dist/rag/multimodal/types.js.map +1 -0
- package/dist/social-posting/SocialPostManager.d.ts +3 -3
- package/dist/social-posting/SocialPostManager.d.ts.map +1 -1
- package/dist/social-posting/SocialPostManager.js +3 -5
- package/dist/social-posting/SocialPostManager.js.map +1 -1
- package/dist/speech/FallbackProxy.d.ts +6 -6
- package/dist/speech/FallbackProxy.d.ts.map +1 -1
- package/dist/speech/FallbackProxy.js +3 -3
- package/dist/speech/FallbackProxy.js.map +1 -1
- package/dist/speech/SpeechProviderResolver.d.ts +8 -8
- package/dist/speech/SpeechProviderResolver.d.ts.map +1 -1
- package/dist/speech/SpeechProviderResolver.js +22 -11
- package/dist/speech/SpeechProviderResolver.js.map +1 -1
- package/dist/speech/SpeechRuntime.d.ts +1 -5
- package/dist/speech/SpeechRuntime.d.ts.map +1 -1
- package/dist/speech/SpeechRuntime.js +17 -9
- package/dist/speech/SpeechRuntime.js.map +1 -1
- package/dist/speech/providers/AssemblyAISTTProvider.d.ts +4 -4
- package/dist/speech/providers/AssemblyAISTTProvider.js +4 -4
- package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +3 -3
- package/dist/speech/providers/AzureSpeechTTSProvider.js +2 -2
- package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -1
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +9 -9
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts.map +1 -1
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.js +5 -5
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.js.map +1 -1
- package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +2 -2
- package/dist/speech/providers/DeepgramBatchSTTProvider.js +2 -2
- package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts +3 -3
- package/dist/speech/providers/OpenAITextToSpeechProvider.js +2 -2
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts +1 -1
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -1
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js +1 -1
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -1
- package/dist/voice/TelephonyStreamTransport.d.ts +6 -6
- package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
- package/dist/voice/TelephonyStreamTransport.js +5 -5
- package/dist/voice/TelephonyStreamTransport.js.map +1 -1
- package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +4 -4
- package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
- package/dist/voice-pipeline/AcousticEndpointDetector.js +4 -4
- package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
- package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +3 -3
- package/dist/voice-pipeline/HardCutBargeinHandler.js +3 -3
- package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +3 -3
- package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
- package/dist/voice-pipeline/HeuristicEndpointDetector.js +3 -3
- package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
- package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +5 -5
- package/dist/voice-pipeline/SoftFadeBargeinHandler.js +1 -1
- package/dist/voice-pipeline/VoiceInterruptError.d.ts +6 -6
- package/dist/voice-pipeline/VoiceInterruptError.d.ts.map +1 -1
- package/dist/voice-pipeline/VoiceInterruptError.js +4 -4
- package/dist/voice-pipeline/VoiceInterruptError.js.map +1 -1
- package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +9 -9
- package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -1
- package/dist/voice-pipeline/VoicePipelineOrchestrator.js +8 -8
- package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -1
- package/dist/voice-pipeline/WebRTCStreamTransport.d.ts +421 -0
- package/dist/voice-pipeline/WebRTCStreamTransport.d.ts.map +1 -0
- package/dist/voice-pipeline/WebRTCStreamTransport.js +573 -0
- package/dist/voice-pipeline/WebRTCStreamTransport.js.map +1 -0
- package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +8 -8
- package/dist/voice-pipeline/WebSocketStreamTransport.js +5 -5
- package/dist/voice-pipeline/index.d.ts +1 -0
- package/dist/voice-pipeline/index.d.ts.map +1 -1
- package/dist/voice-pipeline/index.js +2 -0
- package/dist/voice-pipeline/index.js.map +1 -1
- package/dist/voice-pipeline/types.d.ts +43 -43
- package/dist/voice-pipeline/types.d.ts.map +1 -1
- package/package.json +19 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pipeline.
|
|
4
4
|
*
|
|
5
5
|
* FolderScanner is NOT an {@link IDocumentLoader}; instead it orchestrates a
|
|
6
|
-
*
|
|
6
|
+
* `LoaderRegistry` to batch-process every file in a directory tree. It
|
|
7
7
|
* supports glob-based include/exclude filters via `minimatch`, per-file
|
|
8
8
|
* progress callbacks, and graceful error collection so a single unreadable file
|
|
9
9
|
* never aborts a whole scan.
|
|
@@ -19,7 +19,7 @@ import { validatePath } from './pathUtils.js';
|
|
|
19
19
|
// ---------------------------------------------------------------------------
|
|
20
20
|
/**
|
|
21
21
|
* Recursively scans a directory and loads every file whose extension has a
|
|
22
|
-
* registered loader in the supplied
|
|
22
|
+
* registered loader in the supplied `LoaderRegistry`.
|
|
23
23
|
*
|
|
24
24
|
* ### Example
|
|
25
25
|
* ```ts
|
|
@@ -39,7 +39,7 @@ import { validatePath } from './pathUtils.js';
|
|
|
39
39
|
*/
|
|
40
40
|
export class FolderScanner {
|
|
41
41
|
/**
|
|
42
|
-
* @param registry - The
|
|
42
|
+
* @param registry - The `LoaderRegistry` used to dispatch each file to
|
|
43
43
|
* the appropriate loader.
|
|
44
44
|
*/
|
|
45
45
|
constructor(registry) {
|
|
@@ -53,11 +53,11 @@ export class FolderScanner {
|
|
|
53
53
|
*
|
|
54
54
|
* Files are discovered first and then loaded sequentially. Errors thrown
|
|
55
55
|
* by individual loaders are caught and accumulated in
|
|
56
|
-
*
|
|
56
|
+
* the returned `failed` list rather than propagating.
|
|
57
57
|
*
|
|
58
58
|
* @param dirPath - Absolute path to the directory to scan.
|
|
59
59
|
* @param options - Optional include/exclude filters and progress callback.
|
|
60
|
-
* @returns A promise that resolves to a
|
|
60
|
+
* @returns A promise that resolves to a `FolderScanResult`.
|
|
61
61
|
*
|
|
62
62
|
* @throws {Error} When `dirPath` cannot be read as a directory (e.g.
|
|
63
63
|
* it does not exist or is a regular file).
|
|
@@ -65,7 +65,7 @@ export class FolderScanner {
|
|
|
65
65
|
async scan(dirPath, options = {}) {
|
|
66
66
|
// Validate the directory path against traversal before scanning.
|
|
67
67
|
const resolvedDir = validatePath(dirPath);
|
|
68
|
-
const { recursive = true, include, exclude, onProgress
|
|
68
|
+
const { recursive = true, include, exclude, onProgress } = options;
|
|
69
69
|
// ------------------------------------------------------------------
|
|
70
70
|
// 1. Discover all candidate file paths.
|
|
71
71
|
// ------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FolderScanner.js","sourceRoot":"","sources":["../../../src/memory/ingestion/FolderScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAoE9C,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,aAAa;IACxB;;;OAGG;IACH,YAA6B,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAAG,CAAC;IAEzD,4EAA4E;IAC5E,OAAO;IACP,4EAA4E;IAE5E;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,UAA6B,EAAE;QACzD,iEAAiE;QACjE,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,
|
|
1
|
+
{"version":3,"file":"FolderScanner.js","sourceRoot":"","sources":["../../../src/memory/ingestion/FolderScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* On construction the registry pre-registers five built-in loaders:
|
|
10
10
|
* {@link TextLoader}, {@link MarkdownLoader}, {@link HtmlLoader},
|
|
11
11
|
* {@link PdfLoader}, and {@link DocxLoader}. In addition, the optional
|
|
12
|
-
*
|
|
12
|
+
* OCR and Docling-backed loaders are registered when their
|
|
13
13
|
* respective factories return non-null values (i.e. when `tesseract.js` and
|
|
14
14
|
* `python3 -m docling` are available in the environment).
|
|
15
15
|
*
|
|
@@ -33,10 +33,10 @@ import type { LoadOptions, LoadedDocument } from '../facade/types.js';
|
|
|
33
33
|
* | `.docx` | {@link DocxLoader} |
|
|
34
34
|
*
|
|
35
35
|
* ### Conditional loaders (registered when available)
|
|
36
|
-
* | Condition | Loader
|
|
37
|
-
*
|
|
38
|
-
* | `tesseract.js` installed | {@link
|
|
39
|
-
* | `python3 -m docling` available | {@link
|
|
36
|
+
* | Condition | Loader |
|
|
37
|
+
* |-------------------------------|---------------------------------------------------------|
|
|
38
|
+
* | `tesseract.js` installed | factory from {@link createOcrPdfLoader} (overrides PDF) |
|
|
39
|
+
* | `python3 -m docling` available | factory from {@link createDoclingLoader} (overrides PDF + DOCX) |
|
|
40
40
|
*
|
|
41
41
|
* ### Registering a custom loader
|
|
42
42
|
* ```ts
|
|
@@ -72,9 +72,9 @@ export declare class LoaderRegistry {
|
|
|
72
72
|
* 1. {@link TextLoader}, {@link MarkdownLoader}, {@link HtmlLoader} — core text formats.
|
|
73
73
|
* 2. {@link PdfLoader} (with injected OCR + Docling loaders) — PDF extraction.
|
|
74
74
|
* 3. {@link DocxLoader} — DOCX extraction.
|
|
75
|
-
* 4. Optional: an {@link
|
|
76
|
-
* 5. Optional:
|
|
77
|
-
*
|
|
75
|
+
* 4. Optional: an override from {@link createOcrPdfLoader} when `tesseract.js` is installed.
|
|
76
|
+
* 5. Optional: an override from {@link createDoclingLoader} when Python Docling is available.
|
|
77
|
+
* The Docling-backed loader supports both `.pdf` and `.docx`, so it supersedes both
|
|
78
78
|
* PdfLoader and DocxLoader when present.
|
|
79
79
|
*/
|
|
80
80
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderRegistry.d.ts","sourceRoot":"","sources":["../../../src/memory/ingestion/LoaderRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"LoaderRegistry.d.ts","sourceRoot":"","sources":["../../../src/memory/ingestion/LoaderRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAgDtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,cAAc;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IAEpE;;;;;;;;;;;;;;OAcG;;IA6BH;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAUvC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAS/D;;;;;;;OAOG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAQlC;;;;;;;;;;;;;;;OAeG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;CAajF"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* On construction the registry pre-registers five built-in loaders:
|
|
10
10
|
* {@link TextLoader}, {@link MarkdownLoader}, {@link HtmlLoader},
|
|
11
11
|
* {@link PdfLoader}, and {@link DocxLoader}. In addition, the optional
|
|
12
|
-
*
|
|
12
|
+
* OCR and Docling-backed loaders are registered when their
|
|
13
13
|
* respective factories return non-null values (i.e. when `tesseract.js` and
|
|
14
14
|
* `python3 -m docling` are available in the environment).
|
|
15
15
|
*
|
|
@@ -51,9 +51,7 @@ function normaliseExt(extensionOrPath) {
|
|
|
51
51
|
const hasDotInMiddle = extensionOrPath.lastIndexOf('.') > 0;
|
|
52
52
|
if (!hasSeparator && !hasDotInMiddle) {
|
|
53
53
|
// Bare extension like 'pdf' or '.pdf'.
|
|
54
|
-
const stripped = extensionOrPath.startsWith('.')
|
|
55
|
-
? extensionOrPath.slice(1)
|
|
56
|
-
: extensionOrPath;
|
|
54
|
+
const stripped = extensionOrPath.startsWith('.') ? extensionOrPath.slice(1) : extensionOrPath;
|
|
57
55
|
return stripped ? `.${stripped.toLowerCase()}` : '';
|
|
58
56
|
}
|
|
59
57
|
return path.extname(extensionOrPath).toLowerCase();
|
|
@@ -75,10 +73,10 @@ function normaliseExt(extensionOrPath) {
|
|
|
75
73
|
* | `.docx` | {@link DocxLoader} |
|
|
76
74
|
*
|
|
77
75
|
* ### Conditional loaders (registered when available)
|
|
78
|
-
* | Condition | Loader
|
|
79
|
-
*
|
|
80
|
-
* | `tesseract.js` installed | {@link
|
|
81
|
-
* | `python3 -m docling` available | {@link
|
|
76
|
+
* | Condition | Loader |
|
|
77
|
+
* |-------------------------------|---------------------------------------------------------|
|
|
78
|
+
* | `tesseract.js` installed | factory from {@link createOcrPdfLoader} (overrides PDF) |
|
|
79
|
+
* | `python3 -m docling` available | factory from {@link createDoclingLoader} (overrides PDF + DOCX) |
|
|
82
80
|
*
|
|
83
81
|
* ### Registering a custom loader
|
|
84
82
|
* ```ts
|
|
@@ -105,9 +103,9 @@ export class LoaderRegistry {
|
|
|
105
103
|
* 1. {@link TextLoader}, {@link MarkdownLoader}, {@link HtmlLoader} — core text formats.
|
|
106
104
|
* 2. {@link PdfLoader} (with injected OCR + Docling loaders) — PDF extraction.
|
|
107
105
|
* 3. {@link DocxLoader} — DOCX extraction.
|
|
108
|
-
* 4. Optional: an {@link
|
|
109
|
-
* 5. Optional:
|
|
110
|
-
*
|
|
106
|
+
* 4. Optional: an override from {@link createOcrPdfLoader} when `tesseract.js` is installed.
|
|
107
|
+
* 5. Optional: an override from {@link createDoclingLoader} when Python Docling is available.
|
|
108
|
+
* The Docling-backed loader supports both `.pdf` and `.docx`, so it supersedes both
|
|
111
109
|
* PdfLoader and DocxLoader when present.
|
|
112
110
|
*/
|
|
113
111
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderRegistry.js","sourceRoot":"","sources":["../../../src/memory/ingestion/LoaderRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,SAAS,YAAY,CAAC,eAAuB;IAC3C,4EAA4E;IAC5E,2EAA2E;IAC3E,0DAA0D;IAC1D,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5D,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,uCAAuC;QACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"LoaderRegistry.js","sourceRoot":"","sources":["../../../src/memory/ingestion/LoaderRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export interface MultimodalConfig {
|
|
|
42
42
|
* Adds auto-generated captions to {@link ExtractedImage} objects that lack
|
|
43
43
|
* one, using a caller-supplied vision LLM function.
|
|
44
44
|
*
|
|
45
|
-
* Images are processed in parallel via
|
|
45
|
+
* Images are processed in parallel via `Promise.allSettled()` so a single
|
|
46
46
|
* failed captioning attempt does not block the rest. Images whose captioning
|
|
47
47
|
* fails retain their original (un-captioned) state rather than propagating the
|
|
48
48
|
* error.
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* Adds auto-generated captions to {@link ExtractedImage} objects that lack
|
|
22
22
|
* one, using a caller-supplied vision LLM function.
|
|
23
23
|
*
|
|
24
|
-
* Images are processed in parallel via
|
|
24
|
+
* Images are processed in parallel via `Promise.allSettled()` so a single
|
|
25
25
|
* failed captioning attempt does not block the rest. Images whose captioning
|
|
26
26
|
* fails retain their original (un-captioned) state rather than propagating the
|
|
27
27
|
* error.
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import type { IDocumentLoader } from './IDocumentLoader.js';
|
|
20
20
|
/**
|
|
21
21
|
* Checks whether `tesseract.js` is available in the current environment and,
|
|
22
|
-
* if so, returns a new
|
|
22
|
+
* if so, returns a new OCR PDF loader instance; otherwise returns `null`.
|
|
23
23
|
*
|
|
24
24
|
* The check is performed by attempting to resolve the package path using
|
|
25
25
|
* Node's `createRequire`. This avoids a full async dynamic import at call
|
|
@@ -34,7 +34,7 @@ import type { IDocumentLoader } from './IDocumentLoader.js';
|
|
|
34
34
|
* const loader = new PdfLoader(ocrLoader);
|
|
35
35
|
* ```
|
|
36
36
|
*
|
|
37
|
-
* @returns An
|
|
37
|
+
* @returns An OCR PDF loader instance when tesseract.js is installed, or
|
|
38
38
|
* `null` when it is not.
|
|
39
39
|
*/
|
|
40
40
|
export declare function createOcrPdfLoader(): IDocumentLoader | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OcrPdfLoader.d.ts","sourceRoot":"","sources":["../../../src/memory/ingestion/OcrPdfLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"OcrPdfLoader.d.ts","sourceRoot":"","sources":["../../../src/memory/ingestion/OcrPdfLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAsH5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAY3D"}
|
|
@@ -39,7 +39,7 @@ function extOf(filePath) {
|
|
|
39
39
|
// OcrPdfLoader (internal class)
|
|
40
40
|
// ---------------------------------------------------------------------------
|
|
41
41
|
/**
|
|
42
|
-
* Internal loader implementation.
|
|
42
|
+
* Internal loader implementation. Consumers should use `createOcrPdfLoader()`
|
|
43
43
|
* rather than instantiating this class directly, as the factory performs the
|
|
44
44
|
* availability check and returns `null` when tesseract.js is absent.
|
|
45
45
|
*
|
|
@@ -57,9 +57,11 @@ class OcrPdfLoader {
|
|
|
57
57
|
canLoad(source) {
|
|
58
58
|
if (Buffer.isBuffer(source)) {
|
|
59
59
|
// Detect PDF magic bytes: %PDF- at offset 0.
|
|
60
|
-
return source.length >= 4 &&
|
|
61
|
-
source[0] === 0x25 &&
|
|
62
|
-
source[
|
|
60
|
+
return (source.length >= 4 &&
|
|
61
|
+
source[0] === 0x25 &&
|
|
62
|
+
source[1] === 0x50 &&
|
|
63
|
+
source[2] === 0x44 &&
|
|
64
|
+
source[3] === 0x46);
|
|
63
65
|
}
|
|
64
66
|
return SUPPORTED_EXTENSIONS.includes(extOf(source));
|
|
65
67
|
}
|
|
@@ -85,7 +87,7 @@ class OcrPdfLoader {
|
|
|
85
87
|
let Tesseract;
|
|
86
88
|
try {
|
|
87
89
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
88
|
-
// @ts-
|
|
90
|
+
// @ts-ignore — optional peer dependency; types not guaranteed to be installed
|
|
89
91
|
Tesseract = await import('tesseract.js');
|
|
90
92
|
}
|
|
91
93
|
catch {
|
|
@@ -97,7 +99,9 @@ class OcrPdfLoader {
|
|
|
97
99
|
// Tesseract.js accepts a Buffer, base64 string, Blob, or image URL.
|
|
98
100
|
// For PDF buffers we pass the raw bytes and let Tesseract handle decoding.
|
|
99
101
|
const { data: { text }, } = await Tesseract.recognize(buffer, 'eng', {
|
|
100
|
-
logger: () => {
|
|
102
|
+
logger: () => {
|
|
103
|
+
/* suppress progress output */
|
|
104
|
+
},
|
|
101
105
|
});
|
|
102
106
|
const meta = {
|
|
103
107
|
...(resolvedPath ? { source: resolvedPath } : {}),
|
|
@@ -114,7 +118,7 @@ class OcrPdfLoader {
|
|
|
114
118
|
// ---------------------------------------------------------------------------
|
|
115
119
|
/**
|
|
116
120
|
* Checks whether `tesseract.js` is available in the current environment and,
|
|
117
|
-
* if so, returns a new
|
|
121
|
+
* if so, returns a new OCR PDF loader instance; otherwise returns `null`.
|
|
118
122
|
*
|
|
119
123
|
* The check is performed by attempting to resolve the package path using
|
|
120
124
|
* Node's `createRequire`. This avoids a full async dynamic import at call
|
|
@@ -129,7 +133,7 @@ class OcrPdfLoader {
|
|
|
129
133
|
* const loader = new PdfLoader(ocrLoader);
|
|
130
134
|
* ```
|
|
131
135
|
*
|
|
132
|
-
* @returns An
|
|
136
|
+
* @returns An OCR PDF loader instance when tesseract.js is installed, or
|
|
133
137
|
* `null` when it is not.
|
|
134
138
|
*/
|
|
135
139
|
export function createOcrPdfLoader() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OcrPdfLoader.js","sourceRoot":"","sources":["../../../src/memory/ingestion/OcrPdfLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,sCAAsC;AACtC,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAU,CAAC;AAE/C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,KAAK,CAAC,QAAgB;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,YAAY;IAAlB;QACE,kBAAkB;QACT,wBAAmB,GAAa,CAAC,GAAG,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"OcrPdfLoader.js","sourceRoot":"","sources":["../../../src/memory/ingestion/OcrPdfLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* Implements a tiered extraction strategy:
|
|
5
5
|
* 1. **unpdf** (Tier 1, always available) — pure-JS text extraction via
|
|
6
6
|
* `getDocumentProxy` + `extractText`. Fast and dependency-free.
|
|
7
|
-
* 2. **
|
|
7
|
+
* 2. **OCR fallback** (Tier 2, opt-in) — Tesseract.js OCR, engaged when the
|
|
8
8
|
* unpdf extraction produces sparse text (< 50 chars per page on average).
|
|
9
|
-
* 3. **
|
|
9
|
+
* 3. **Docling fallback** (Tier 3, opt-in) — Python `docling` subprocess, engaged
|
|
10
10
|
* when explicitly configured via the `docling` loader option.
|
|
11
11
|
*
|
|
12
12
|
* Both fallback loaders are optional and injected via constructor parameters;
|
|
13
|
-
* callers supply them by calling
|
|
14
|
-
*
|
|
13
|
+
* callers supply them by calling `createOcrPdfLoader()` and
|
|
14
|
+
* `createDoclingLoader()` and checking for non-null values.
|
|
15
15
|
*
|
|
16
16
|
* @module memory/ingestion/PdfLoader
|
|
17
17
|
*/
|
|
@@ -23,10 +23,10 @@ import type { LoadOptions, LoadedDocument } from '../facade/types.js';
|
|
|
23
23
|
* ### Extraction tiers
|
|
24
24
|
* 1. **unpdf** — always used as the primary extraction engine. Performs
|
|
25
25
|
* pure-JS PDF text layer extraction with no native binaries required.
|
|
26
|
-
* 2. **
|
|
26
|
+
* 2. **OCR fallback** (optional) — supplied at construction time and engaged
|
|
27
27
|
* automatically when unpdf yields sparse text (< 50 chars per page on
|
|
28
28
|
* average), indicating a scanned document.
|
|
29
|
-
* 3. **
|
|
29
|
+
* 3. **Docling fallback** (optional) — when provided, takes precedence over both
|
|
30
30
|
* unpdf and OCR, yielding the highest-fidelity extraction at the cost of
|
|
31
31
|
* requiring a Python runtime.
|
|
32
32
|
*
|
|
@@ -57,8 +57,8 @@ export declare class PdfLoader implements IDocumentLoader {
|
|
|
57
57
|
/**
|
|
58
58
|
* Creates a new PdfLoader.
|
|
59
59
|
*
|
|
60
|
-
* @param ocrLoader
|
|
61
|
-
* @param doclingLoader - Optional Docling loader (
|
|
60
|
+
* @param ocrLoader - Optional OCR fallback (for example from `createOcrPdfLoader()`).
|
|
61
|
+
* @param doclingLoader - Optional Docling loader (for example from `createDoclingLoader()`).
|
|
62
62
|
*/
|
|
63
63
|
constructor(ocrLoader?: IDocumentLoader | null, doclingLoader?: IDocumentLoader | null);
|
|
64
64
|
/** @inheritdoc */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdfLoader.d.ts","sourceRoot":"","sources":["../../../src/memory/ingestion/PdfLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAoB,MAAM,oBAAoB,CAAC;AAgDxF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAU,YAAW,eAAe;IAC/C,kBAAkB;IAClB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAA6B;IAEnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAEpD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IAExD;;;;;OAKG;gBAED,SAAS,GAAE,eAAe,GAAG,IAAW,EACxC,aAAa,GAAE,eAAe,GAAG,IAAW;IAU9C,kBAAkB;IAClB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"PdfLoader.d.ts","sourceRoot":"","sources":["../../../src/memory/ingestion/PdfLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAoB,MAAM,oBAAoB,CAAC;AAgDxF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAU,YAAW,eAAe;IAC/C,kBAAkB;IAClB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAA6B;IAEnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAEpD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IAExD;;;;;OAKG;gBAED,SAAS,GAAE,eAAe,GAAG,IAAW,EACxC,aAAa,GAAE,eAAe,GAAG,IAAW;IAU9C,kBAAkB;IAClB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAkBzC,kBAAkB;IACZ,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IA2CnF;;;;;;;OAOG;YACW,iBAAiB;CA+BhC"}
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* Implements a tiered extraction strategy:
|
|
5
5
|
* 1. **unpdf** (Tier 1, always available) — pure-JS text extraction via
|
|
6
6
|
* `getDocumentProxy` + `extractText`. Fast and dependency-free.
|
|
7
|
-
* 2. **
|
|
7
|
+
* 2. **OCR fallback** (Tier 2, opt-in) — Tesseract.js OCR, engaged when the
|
|
8
8
|
* unpdf extraction produces sparse text (< 50 chars per page on average).
|
|
9
|
-
* 3. **
|
|
9
|
+
* 3. **Docling fallback** (Tier 3, opt-in) — Python `docling` subprocess, engaged
|
|
10
10
|
* when explicitly configured via the `docling` loader option.
|
|
11
11
|
*
|
|
12
12
|
* Both fallback loaders are optional and injected via constructor parameters;
|
|
13
|
-
* callers supply them by calling
|
|
14
|
-
*
|
|
13
|
+
* callers supply them by calling `createOcrPdfLoader()` and
|
|
14
|
+
* `createDoclingLoader()` and checking for non-null values.
|
|
15
15
|
*
|
|
16
16
|
* @module memory/ingestion/PdfLoader
|
|
17
17
|
*/
|
|
@@ -63,10 +63,10 @@ function isSparse(text, pageCount) {
|
|
|
63
63
|
* ### Extraction tiers
|
|
64
64
|
* 1. **unpdf** — always used as the primary extraction engine. Performs
|
|
65
65
|
* pure-JS PDF text layer extraction with no native binaries required.
|
|
66
|
-
* 2. **
|
|
66
|
+
* 2. **OCR fallback** (optional) — supplied at construction time and engaged
|
|
67
67
|
* automatically when unpdf yields sparse text (< 50 chars per page on
|
|
68
68
|
* average), indicating a scanned document.
|
|
69
|
-
* 3. **
|
|
69
|
+
* 3. **Docling fallback** (optional) — when provided, takes precedence over both
|
|
70
70
|
* unpdf and OCR, yielding the highest-fidelity extraction at the cost of
|
|
71
71
|
* requiring a Python runtime.
|
|
72
72
|
*
|
|
@@ -84,8 +84,8 @@ export class PdfLoader {
|
|
|
84
84
|
/**
|
|
85
85
|
* Creates a new PdfLoader.
|
|
86
86
|
*
|
|
87
|
-
* @param ocrLoader
|
|
88
|
-
* @param doclingLoader - Optional Docling loader (
|
|
87
|
+
* @param ocrLoader - Optional OCR fallback (for example from `createOcrPdfLoader()`).
|
|
88
|
+
* @param doclingLoader - Optional Docling loader (for example from `createDoclingLoader()`).
|
|
89
89
|
*/
|
|
90
90
|
constructor(ocrLoader = null, doclingLoader = null) {
|
|
91
91
|
/** @inheritdoc */
|
|
@@ -100,8 +100,11 @@ export class PdfLoader {
|
|
|
100
100
|
canLoad(source) {
|
|
101
101
|
if (Buffer.isBuffer(source)) {
|
|
102
102
|
// Detect PDF magic bytes: %PDF- at offset 0.
|
|
103
|
-
return source.length >= 4 &&
|
|
104
|
-
source[
|
|
103
|
+
return (source.length >= 4 &&
|
|
104
|
+
source[0] === 0x25 &&
|
|
105
|
+
source[1] === 0x50 &&
|
|
106
|
+
source[2] === 0x44 &&
|
|
107
|
+
source[3] === 0x46);
|
|
105
108
|
}
|
|
106
109
|
return SUPPORTED_EXTENSIONS.includes(extOf(source));
|
|
107
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdfLoader.js","sourceRoot":"","sources":["../../../src/memory/ingestion/PdfLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,kEAAkE;AAClE,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAU,CAAC;AAE/C;;;GAGG;AACH,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAE3C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,KAAK,CAAC,QAAgB;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAC/C,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAChD,OAAO,eAAe,GAAG,+BAA+B,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,SAAS;IAiBpB;;;;;OAKG;IACH,YACE,YAAoC,IAAI,EACxC,gBAAwC,IAAI;QAxB9C,kBAAkB;QACT,wBAAmB,GAAa,CAAC,GAAG,oBAAoB,CAAC,CAAC;QAyBjE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E,kBAAkB;IAClB,OAAO,CAAC,MAAuB;QAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,6CAA6C;YAC7C,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"PdfLoader.js","sourceRoot":"","sources":["../../../src/memory/ingestion/PdfLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ export declare class MarkdownExporter {
|
|
|
58
58
|
* Directories are created on demand (equivalent to `mkdir -p`).
|
|
59
59
|
*
|
|
60
60
|
* @param outputDir - Root directory to write the Markdown vault into.
|
|
61
|
-
* @param
|
|
61
|
+
* @param _options - Optional export configuration (currently unused but
|
|
62
62
|
* accepted for API consistency with other exporters).
|
|
63
63
|
*/
|
|
64
64
|
export(outputDir: string, _options?: ExportOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownExporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/MarkdownExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,oDAAoD;AACpD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAIf,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW;IAHjD;;OAEG;gBAC4B,KAAK,EAAE,WAAW;IAMjD;;;;;;;;OAQG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MarkdownExporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/MarkdownExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,oDAAoD;AACpD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAIf,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW;IAHjD;;OAEG;gBAC4B,KAAK,EAAE,WAAW;IAMjD;;;;;;;;OAQG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxE;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAmBnD;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAQpD;;;;;;;OAOG;YACW,WAAW;CAU1B"}
|
|
@@ -56,7 +56,7 @@ export class MarkdownExporter {
|
|
|
56
56
|
* Directories are created on demand (equivalent to `mkdir -p`).
|
|
57
57
|
*
|
|
58
58
|
* @param outputDir - Root directory to write the Markdown vault into.
|
|
59
|
-
* @param
|
|
59
|
+
* @param _options - Optional export configuration (currently unused but
|
|
60
60
|
* accepted for API consistency with other exporters).
|
|
61
61
|
*/
|
|
62
62
|
async export(outputDir, _options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownExporter.js","sourceRoot":"","sources":["../../../src/memory/io/MarkdownExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAmBjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACH,YAA+B,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAErD,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,QAAwB;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,EAAE;aACd,OAAO,
|
|
1
|
+
{"version":3,"file":"MarkdownExporter.js","sourceRoot":"","sources":["../../../src/memory/io/MarkdownExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAmBjC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACH,YAA+B,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAErD,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,QAAwB;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,EAAE;aACd,OAAO,CAGN,kGAAkG,CAAC;aACpG,GAAG,EAAE,CAAC;QAET,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,4EAA4E;IAC5E,qDAAqD;IACrD,4EAA4E;IAE5E;;;;;;;;OAQG;IACO,gBAAgB,CAAC,KAAe;QACxC,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QAED,oEAAoE;QACpE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE;YACrC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACO,iBAAiB,CAAC,KAAe;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;;;;;OAOG;IACK,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,KAAe;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE9C,kCAAkC;QAClC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Memory Observer — personality-biased background note extraction
|
|
2
|
+
* @fileoverview Memory Observer — personality-biased background note extraction
|
|
3
|
+
* with LLM-based compression and reflection tiers.
|
|
3
4
|
*
|
|
4
5
|
* Monitors accumulated conversation tokens via ObservationBuffer.
|
|
5
6
|
* When the threshold is reached, extracts concise observation notes
|
|
6
7
|
* via a persona-configured LLM (defaults to cheap model).
|
|
7
8
|
*
|
|
9
|
+
* Three-tier agentic memory pipeline (Mastra-style):
|
|
10
|
+
* 1. Raw notes — extracted per-turn when token threshold is reached.
|
|
11
|
+
* 2. Compressed observations — produced by ObservationCompressor when
|
|
12
|
+
* accumulated notes exceed the compression threshold (default: 50 notes).
|
|
13
|
+
* 3. Reflections — produced by ObservationReflector when compressed
|
|
14
|
+
* observations exceed the reflection token threshold (default: 40,000 tokens).
|
|
15
|
+
*
|
|
8
16
|
* Personality bias:
|
|
9
17
|
* - High emotionality → notes emotional shifts
|
|
10
18
|
* - High conscientiousness → notes commitments/deadlines
|
|
@@ -16,6 +24,8 @@
|
|
|
16
24
|
*/
|
|
17
25
|
import type { HexacoTraits, PADState, ObserverConfig } from '../config.js';
|
|
18
26
|
import { ObservationBuffer, type BufferedMessage } from './ObservationBuffer.js';
|
|
27
|
+
import { type CompressedObservation } from './ObservationCompressor.js';
|
|
28
|
+
import { type Reflection } from './ObservationReflector.js';
|
|
19
29
|
export interface ObservationNote {
|
|
20
30
|
id: string;
|
|
21
31
|
/** Category of observation. */
|
|
@@ -32,12 +42,27 @@ export interface ObservationNote {
|
|
|
32
42
|
arousal: number;
|
|
33
43
|
};
|
|
34
44
|
timestamp: number;
|
|
45
|
+
/** Three-date temporal metadata. */
|
|
46
|
+
temporal?: {
|
|
47
|
+
/** When this observation was made (Unix ms). Same as timestamp. */
|
|
48
|
+
observedAt: number;
|
|
49
|
+
/** When the referenced event actually occurred (Unix ms). */
|
|
50
|
+
referencedAt: number;
|
|
51
|
+
/** Human-friendly relative time label. */
|
|
52
|
+
relativeLabel: string;
|
|
53
|
+
};
|
|
35
54
|
}
|
|
36
55
|
export declare class MemoryObserver {
|
|
37
56
|
private buffer;
|
|
38
57
|
private traits;
|
|
39
58
|
private llmInvoker?;
|
|
40
59
|
private config;
|
|
60
|
+
private accumulatedNotes;
|
|
61
|
+
private accumulatedCompressed;
|
|
62
|
+
private compressor;
|
|
63
|
+
private reflector;
|
|
64
|
+
private compressionThreshold;
|
|
65
|
+
private reflectionThresholdTokens;
|
|
41
66
|
constructor(traits: HexacoTraits, config?: Partial<ObserverConfig>);
|
|
42
67
|
/**
|
|
43
68
|
* Feed a message into the observation buffer.
|
|
@@ -48,12 +73,49 @@ export declare class MemoryObserver {
|
|
|
48
73
|
* Force extraction of observation notes from buffered messages.
|
|
49
74
|
*/
|
|
50
75
|
extractNotes(mood?: PADState): Promise<ObservationNote[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Run compression if accumulated notes exceed the compression threshold.
|
|
78
|
+
*
|
|
79
|
+
* When the number of accumulated raw notes exceeds the configured threshold
|
|
80
|
+
* (default: 50), the ObservationCompressor is invoked to produce denser
|
|
81
|
+
* compressed observations. The raw notes are then cleared.
|
|
82
|
+
*
|
|
83
|
+
* @returns Compressed observations if threshold was met, null otherwise.
|
|
84
|
+
*/
|
|
85
|
+
compressIfNeeded(): Promise<CompressedObservation[] | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Run reflection if accumulated compressed observations exceed the token threshold.
|
|
88
|
+
*
|
|
89
|
+
* When the total estimated tokens of accumulated compressed observations
|
|
90
|
+
* exceeds the configured threshold (default: 40,000 tokens), the
|
|
91
|
+
* ObservationReflector is invoked to extract higher-level patterns.
|
|
92
|
+
*
|
|
93
|
+
* @returns Reflections if threshold was met, null otherwise.
|
|
94
|
+
*/
|
|
95
|
+
reflectIfNeeded(): Promise<Reflection[] | null>;
|
|
51
96
|
/** Get the underlying buffer for inspection. */
|
|
52
97
|
getBuffer(): ObservationBuffer;
|
|
53
98
|
/** Check if observation should be triggered. */
|
|
54
99
|
shouldActivate(): boolean;
|
|
100
|
+
/** Get the count of accumulated raw notes awaiting compression. */
|
|
101
|
+
getAccumulatedNoteCount(): number;
|
|
102
|
+
/** Get the count of accumulated compressed observations awaiting reflection. */
|
|
103
|
+
getAccumulatedCompressedCount(): number;
|
|
104
|
+
/** Get the accumulated compressed observations (read-only snapshot). */
|
|
105
|
+
getAccumulatedCompressed(): readonly CompressedObservation[];
|
|
106
|
+
/** Set the compression threshold (number of notes before compression triggers). */
|
|
107
|
+
setCompressionThreshold(threshold: number): void;
|
|
108
|
+
/** Set the reflection token threshold (estimated tokens before reflection triggers). */
|
|
109
|
+
setReflectionThresholdTokens(threshold: number): void;
|
|
55
110
|
/** Reset the observer. */
|
|
56
111
|
clear(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Parse LLM response into ObservationNote objects.
|
|
114
|
+
*
|
|
115
|
+
* Attaches three-date temporal metadata from conversation message timestamps
|
|
116
|
+
* when available, using the earliest message timestamp as `referencedAt`
|
|
117
|
+
* and the current time as `observedAt`.
|
|
118
|
+
*/
|
|
57
119
|
private parseNotes;
|
|
58
120
|
}
|
|
59
121
|
//# sourceMappingURL=MemoryObserver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryObserver.d.ts","sourceRoot":"","sources":["../../../src/memory/observation/MemoryObserver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MemoryObserver.d.ts","sourceRoot":"","sources":["../../../src/memory/observation/MemoryObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAOlF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;IACxF,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE;QACT,mEAAmE;QACnE,UAAU,EAAE,MAAM,CAAC;QACnB,6DAA6D;QAC7D,YAAY,EAAE,MAAM,CAAC;QACrB,0CAA0C;QAC1C,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AA2CD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAgE;IACnF,OAAO,CAAC,MAAM,CAAiB;IAG/B,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,yBAAyB,CAAS;gBAGxC,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAwBlC;;;OAGG;IACG,OAAO,CACX,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC;IASpC;;OAEG;IACG,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0B/D;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC;IAajE;;;;;;;;OAQG;IACG,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;IAiBrD,gDAAgD;IAChD,SAAS,IAAI,iBAAiB;IAI9B,gDAAgD;IAChD,cAAc,IAAI,OAAO;IAIzB,mEAAmE;IACnE,uBAAuB,IAAI,MAAM;IAIjC,gFAAgF;IAChF,6BAA6B,IAAI,MAAM;IAIvC,wEAAwE;IACxE,wBAAwB,IAAI,SAAS,qBAAqB,EAAE;IAI5D,mFAAmF;IACnF,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhD,wFAAwF;IACxF,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrD,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IAQb;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;CA0CnB"}
|