@juspay/neurolink 9.5.3 → 9.7.0
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/CHANGELOG.md +16 -0
- package/README.md +29 -25
- package/dist/adapters/video/vertexVideoHandler.js +3 -3
- package/dist/agent/directTools.d.ts +5 -5
- package/dist/cli/commands/config.d.ts +9 -9
- package/dist/cli/commands/serve.d.ts +37 -0
- package/dist/cli/commands/serve.js +302 -229
- package/dist/cli/commands/setup-anthropic.d.ts +2 -2
- package/dist/cli/commands/setup-azure.d.ts +2 -2
- package/dist/cli/commands/setup-bedrock.d.ts +2 -2
- package/dist/cli/commands/setup-gcp.d.ts +2 -2
- package/dist/cli/commands/setup-google-ai.d.ts +2 -2
- package/dist/cli/commands/setup-huggingface.d.ts +2 -2
- package/dist/cli/commands/setup-mistral.d.ts +2 -2
- package/dist/cli/commands/setup-openai.d.ts +2 -2
- package/dist/cli/commands/setup.d.ts +2 -2
- package/dist/cli/factories/commandFactory.js +16 -2
- package/dist/cli/loop/optionsSchema.d.ts +2 -2
- package/dist/cli/loop/optionsSchema.js +4 -0
- package/dist/cli/loop/session.d.ts +4 -0
- package/dist/cli/loop/session.js +49 -4
- package/dist/cli/utils/interactiveSetup.d.ts +4 -4
- package/dist/config/conversationMemory.d.ts +2 -0
- package/dist/config/conversationMemory.js +5 -5
- package/dist/constants/contextWindows.d.ts +46 -0
- package/dist/constants/contextWindows.js +156 -0
- package/dist/context/budgetChecker.d.ts +18 -0
- package/dist/context/budgetChecker.js +71 -0
- package/dist/context/contextCompactor.d.ts +22 -0
- package/dist/context/contextCompactor.js +106 -0
- package/dist/context/effectiveHistory.d.ts +52 -0
- package/dist/context/effectiveHistory.js +105 -0
- package/dist/context/errorDetection.d.ts +14 -0
- package/dist/context/errorDetection.js +124 -0
- package/dist/context/fileSummarizationService.d.ts +54 -0
- package/dist/context/fileSummarizationService.js +255 -0
- package/dist/context/fileSummarizer.d.ts +56 -0
- package/dist/context/fileSummarizer.js +145 -0
- package/dist/context/fileTokenBudget.d.ts +53 -0
- package/dist/context/fileTokenBudget.js +127 -0
- package/dist/context/prompts/summarizationPrompt.d.ts +17 -0
- package/dist/context/prompts/summarizationPrompt.js +110 -0
- package/dist/context/stages/fileReadDeduplicator.d.ts +10 -0
- package/dist/context/stages/fileReadDeduplicator.js +66 -0
- package/dist/context/stages/slidingWindowTruncator.d.ts +11 -0
- package/dist/context/stages/slidingWindowTruncator.js +42 -0
- package/dist/context/stages/structuredSummarizer.d.ts +10 -0
- package/dist/context/stages/structuredSummarizer.js +49 -0
- package/dist/context/stages/toolOutputPruner.d.ts +10 -0
- package/dist/context/stages/toolOutputPruner.js +52 -0
- package/dist/context/summarizationEngine.d.ts +45 -0
- package/dist/context/summarizationEngine.js +110 -0
- package/dist/context/toolOutputLimits.d.ts +17 -0
- package/dist/context/toolOutputLimits.js +84 -0
- package/dist/context/toolPairRepair.d.ts +16 -0
- package/dist/context/toolPairRepair.js +66 -0
- package/dist/core/analytics.js +11 -4
- package/dist/core/baseProvider.d.ts +6 -0
- package/dist/core/baseProvider.js +83 -14
- package/dist/core/conversationMemoryManager.d.ts +14 -11
- package/dist/core/conversationMemoryManager.js +36 -68
- package/dist/core/dynamicModels.js +3 -2
- package/dist/core/modules/GenerationHandler.js +2 -0
- package/dist/core/modules/MessageBuilder.d.ts +1 -1
- package/dist/core/modules/MessageBuilder.js +2 -0
- package/dist/core/modules/TelemetryHandler.d.ts +2 -3
- package/dist/core/modules/TelemetryHandler.js +3 -3
- package/dist/core/modules/ToolsManager.d.ts +2 -2
- package/dist/core/redisConversationMemoryManager.d.ts +19 -14
- package/dist/core/redisConversationMemoryManager.js +94 -86
- package/dist/factories/providerFactory.d.ts +2 -2
- package/dist/files/fileReferenceRegistry.d.ts +276 -0
- package/dist/files/fileReferenceRegistry.js +1543 -0
- package/dist/files/fileTools.d.ts +423 -0
- package/dist/files/fileTools.js +449 -0
- package/dist/files/index.d.ts +14 -0
- package/dist/files/index.js +13 -0
- package/dist/files/streamingReader.d.ts +93 -0
- package/dist/files/streamingReader.js +321 -0
- package/dist/files/types.d.ts +23 -0
- package/dist/files/types.js +23 -0
- package/dist/image-gen/imageGenTools.d.ts +2 -2
- package/dist/image-gen/types.d.ts +12 -12
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/lib/adapters/video/vertexVideoHandler.js +3 -3
- package/dist/lib/agent/directTools.d.ts +7 -7
- package/dist/lib/config/conversationMemory.d.ts +2 -0
- package/dist/lib/config/conversationMemory.js +5 -5
- package/dist/lib/constants/contextWindows.d.ts +46 -0
- package/dist/lib/constants/contextWindows.js +157 -0
- package/dist/lib/context/budgetChecker.d.ts +18 -0
- package/dist/lib/context/budgetChecker.js +72 -0
- package/dist/lib/context/contextCompactor.d.ts +22 -0
- package/dist/lib/context/contextCompactor.js +107 -0
- package/dist/lib/context/effectiveHistory.d.ts +52 -0
- package/dist/lib/context/effectiveHistory.js +106 -0
- package/dist/lib/context/errorDetection.d.ts +14 -0
- package/dist/lib/context/errorDetection.js +125 -0
- package/dist/lib/context/fileSummarizationService.d.ts +54 -0
- package/dist/lib/context/fileSummarizationService.js +256 -0
- package/dist/lib/context/fileSummarizer.d.ts +56 -0
- package/dist/lib/context/fileSummarizer.js +146 -0
- package/dist/lib/context/fileTokenBudget.d.ts +53 -0
- package/dist/lib/context/fileTokenBudget.js +128 -0
- package/dist/lib/context/prompts/summarizationPrompt.d.ts +17 -0
- package/dist/lib/context/prompts/summarizationPrompt.js +111 -0
- package/dist/lib/context/stages/fileReadDeduplicator.d.ts +10 -0
- package/dist/lib/context/stages/fileReadDeduplicator.js +67 -0
- package/dist/lib/context/stages/slidingWindowTruncator.d.ts +11 -0
- package/dist/lib/context/stages/slidingWindowTruncator.js +43 -0
- package/dist/lib/context/stages/structuredSummarizer.d.ts +10 -0
- package/dist/lib/context/stages/structuredSummarizer.js +50 -0
- package/dist/lib/context/stages/toolOutputPruner.d.ts +10 -0
- package/dist/lib/context/stages/toolOutputPruner.js +53 -0
- package/dist/lib/context/summarizationEngine.d.ts +45 -0
- package/dist/lib/context/summarizationEngine.js +111 -0
- package/dist/lib/context/toolOutputLimits.d.ts +17 -0
- package/dist/lib/context/toolOutputLimits.js +85 -0
- package/dist/lib/context/toolPairRepair.d.ts +16 -0
- package/dist/lib/context/toolPairRepair.js +67 -0
- package/dist/lib/core/analytics.js +11 -4
- package/dist/lib/core/baseProvider.d.ts +6 -0
- package/dist/lib/core/baseProvider.js +83 -14
- package/dist/lib/core/conversationMemoryManager.d.ts +14 -11
- package/dist/lib/core/conversationMemoryManager.js +36 -68
- package/dist/lib/core/dynamicModels.js +3 -2
- package/dist/lib/core/modules/GenerationHandler.js +2 -0
- package/dist/lib/core/modules/MessageBuilder.d.ts +1 -1
- package/dist/lib/core/modules/MessageBuilder.js +2 -0
- package/dist/lib/core/modules/TelemetryHandler.d.ts +2 -3
- package/dist/lib/core/modules/TelemetryHandler.js +3 -3
- package/dist/lib/core/modules/ToolsManager.d.ts +2 -2
- package/dist/lib/core/redisConversationMemoryManager.d.ts +19 -14
- package/dist/lib/core/redisConversationMemoryManager.js +94 -86
- package/dist/lib/factories/providerFactory.d.ts +2 -2
- package/dist/lib/files/fileReferenceRegistry.d.ts +276 -0
- package/dist/lib/files/fileReferenceRegistry.js +1544 -0
- package/dist/lib/files/fileTools.d.ts +423 -0
- package/dist/lib/files/fileTools.js +450 -0
- package/dist/lib/files/index.d.ts +14 -0
- package/dist/lib/files/index.js +14 -0
- package/dist/lib/files/streamingReader.d.ts +93 -0
- package/dist/lib/files/streamingReader.js +322 -0
- package/dist/lib/files/types.d.ts +23 -0
- package/dist/lib/files/types.js +24 -0
- package/dist/lib/image-gen/imageGenTools.d.ts +2 -2
- package/dist/lib/image-gen/types.d.ts +12 -12
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/mcp/httpRetryHandler.js +6 -2
- package/dist/lib/memory/mem0Initializer.d.ts +2 -2
- package/dist/lib/neurolink.d.ts +66 -2
- package/dist/lib/neurolink.js +777 -315
- package/dist/lib/processors/archive/ArchiveProcessor.d.ts +327 -0
- package/dist/lib/processors/archive/ArchiveProcessor.js +1309 -0
- package/dist/lib/processors/archive/index.d.ts +33 -0
- package/dist/lib/processors/archive/index.js +43 -0
- package/dist/lib/processors/base/BaseFileProcessor.js +2 -1
- package/dist/lib/processors/base/types.d.ts +70 -64
- package/dist/lib/processors/base/types.js +6 -0
- package/dist/lib/processors/cli/fileProcessorCli.d.ts +8 -8
- package/dist/lib/processors/cli/fileProcessorCli.js +5 -5
- package/dist/lib/processors/config/mimeTypes.js +25 -0
- package/dist/lib/processors/config/sizeLimits.d.ts +52 -40
- package/dist/lib/processors/config/sizeLimits.js +56 -44
- package/dist/lib/processors/document/ExcelProcessor.d.ts +14 -0
- package/dist/lib/processors/document/ExcelProcessor.js +72 -1
- package/dist/lib/processors/document/PptxProcessor.d.ts +63 -0
- package/dist/lib/processors/document/PptxProcessor.js +158 -0
- package/dist/lib/processors/document/index.d.ts +1 -0
- package/dist/lib/processors/document/index.js +6 -0
- package/dist/lib/processors/errors/FileErrorCode.d.ts +2 -2
- package/dist/lib/processors/errors/errorHelpers.d.ts +2 -2
- package/dist/lib/processors/errors/errorHelpers.js +12 -4
- package/dist/lib/processors/errors/errorSerializer.d.ts +4 -4
- package/dist/lib/processors/index.d.ts +8 -2
- package/dist/lib/processors/index.js +5 -2
- package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +8 -8
- package/dist/lib/processors/integration/FileProcessorIntegration.js +7 -7
- package/dist/lib/processors/media/AudioProcessor.d.ts +328 -0
- package/dist/lib/processors/media/AudioProcessor.js +708 -0
- package/dist/lib/processors/media/VideoProcessor.d.ts +350 -0
- package/dist/lib/processors/media/VideoProcessor.js +992 -0
- package/dist/lib/processors/media/index.d.ts +27 -0
- package/dist/lib/processors/media/index.js +37 -0
- package/dist/lib/processors/registry/ProcessorRegistry.d.ts +19 -5
- package/dist/lib/processors/registry/ProcessorRegistry.js +103 -8
- package/dist/lib/processors/registry/index.d.ts +1 -1
- package/dist/lib/processors/registry/index.js +1 -1
- package/dist/lib/processors/registry/types.d.ts +2 -2
- package/dist/lib/providers/amazonBedrock.js +2 -1
- package/dist/lib/providers/anthropic.js +2 -2
- package/dist/lib/providers/anthropicBaseProvider.js +10 -4
- package/dist/lib/providers/azureOpenai.js +14 -25
- package/dist/lib/providers/googleAiStudio.js +136 -457
- package/dist/lib/providers/googleNativeGemini3.d.ts +119 -0
- package/dist/lib/providers/googleNativeGemini3.js +264 -0
- package/dist/lib/providers/googleVertex.d.ts +15 -1
- package/dist/lib/providers/googleVertex.js +341 -775
- package/dist/lib/providers/huggingFace.js +20 -5
- package/dist/lib/providers/litellm.js +6 -4
- package/dist/lib/providers/mistral.js +3 -2
- package/dist/lib/providers/openAI.js +2 -2
- package/dist/lib/providers/openRouter.js +8 -7
- package/dist/lib/providers/openaiCompatible.js +10 -4
- package/dist/lib/providers/sagemaker/detection.d.ts +6 -6
- package/dist/lib/providers/sagemaker/diagnostics.d.ts +4 -4
- package/dist/lib/providers/sagemaker/parsers.d.ts +4 -4
- package/dist/lib/rag/chunkers/RecursiveChunker.js +2 -2
- package/dist/lib/rag/document/loaders.d.ts +6 -71
- package/dist/lib/rag/document/loaders.js +5 -5
- package/dist/lib/rag/graphRag/graphRAG.js +26 -9
- package/dist/lib/rag/metadata/MetadataExtractorFactory.d.ts +5 -55
- package/dist/lib/rag/metadata/metadataExtractor.js +6 -3
- package/dist/lib/rag/pipeline/RAGPipeline.d.ts +8 -126
- package/dist/lib/rag/pipeline/RAGPipeline.js +11 -11
- package/dist/lib/rag/pipeline/contextAssembly.d.ts +3 -42
- package/dist/lib/rag/pipeline/contextAssembly.js +6 -3
- package/dist/lib/rag/reranker/RerankerFactory.d.ts +5 -60
- package/dist/lib/rag/resilience/CircuitBreaker.d.ts +3 -33
- package/dist/lib/rag/resilience/RetryHandler.d.ts +2 -21
- package/dist/lib/rag/resilience/RetryHandler.js +6 -2
- package/dist/lib/rag/retrieval/hybridSearch.d.ts +3 -41
- package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +2 -13
- package/dist/lib/rag/retrieval/vectorQueryTool.js +4 -3
- package/dist/lib/rag/types.d.ts +3 -3
- package/dist/lib/sdk/toolRegistration.d.ts +2 -2
- package/dist/lib/server/middleware/cache.d.ts +2 -2
- package/dist/lib/server/middleware/rateLimit.d.ts +2 -2
- package/dist/lib/server/routes/mcpRoutes.js +277 -249
- package/dist/lib/server/routes/memoryRoutes.js +287 -281
- package/dist/lib/server/utils/validation.d.ts +10 -10
- package/dist/lib/services/server/ai/observability/instrumentation.d.ts +24 -2
- package/dist/lib/services/server/ai/observability/instrumentation.js +12 -1
- package/dist/lib/session/globalSessionState.d.ts +2 -2
- package/dist/lib/telemetry/telemetryService.d.ts +2 -2
- package/dist/lib/types/common.d.ts +39 -0
- package/dist/lib/types/contextTypes.d.ts +255 -0
- package/dist/lib/types/contextTypes.js +0 -2
- package/dist/lib/types/conversation.d.ts +62 -0
- package/dist/lib/types/conversationMemoryInterface.d.ts +27 -0
- package/dist/lib/types/conversationMemoryInterface.js +7 -0
- package/dist/lib/types/fileReferenceTypes.d.ts +222 -0
- package/dist/lib/types/fileReferenceTypes.js +9 -0
- package/dist/lib/types/fileTypes.d.ts +26 -3
- package/dist/lib/types/generateTypes.d.ts +50 -1
- package/dist/lib/types/index.d.ts +4 -5
- package/dist/lib/types/index.js +8 -10
- package/dist/lib/types/modelTypes.d.ts +2 -2
- package/dist/lib/types/processorTypes.d.ts +597 -0
- package/dist/lib/types/processorTypes.js +91 -0
- package/dist/lib/types/ragTypes.d.ts +489 -0
- package/dist/lib/types/ragTypes.js +8 -0
- package/dist/lib/types/sdkTypes.d.ts +17 -18
- package/dist/lib/types/streamTypes.d.ts +24 -1
- package/dist/lib/utils/async/retry.d.ts +2 -2
- package/dist/lib/utils/async/withTimeout.js +3 -1
- package/dist/lib/utils/conversationMemory.d.ts +12 -6
- package/dist/lib/utils/conversationMemory.js +91 -36
- package/dist/lib/utils/errorHandling.d.ts +5 -0
- package/dist/lib/utils/errorHandling.js +19 -0
- package/dist/lib/utils/fileDetector.d.ts +62 -0
- package/dist/lib/utils/fileDetector.js +1014 -14
- package/dist/lib/utils/json/safeParse.d.ts +2 -2
- package/dist/lib/utils/messageBuilder.js +806 -153
- package/dist/lib/utils/modelChoices.d.ts +2 -2
- package/dist/lib/utils/multimodalOptionsBuilder.d.ts +2 -1
- package/dist/lib/utils/multimodalOptionsBuilder.js +1 -0
- package/dist/lib/utils/pricing.d.ts +12 -0
- package/dist/lib/utils/pricing.js +134 -0
- package/dist/lib/utils/rateLimiter.d.ts +2 -2
- package/dist/lib/utils/redis.d.ts +17 -0
- package/dist/lib/utils/redis.js +105 -0
- package/dist/lib/utils/sanitizers/filename.d.ts +4 -4
- package/dist/lib/utils/sanitizers/svg.d.ts +2 -2
- package/dist/lib/utils/thinkingConfig.d.ts +6 -6
- package/dist/lib/utils/timeout.d.ts +10 -0
- package/dist/lib/utils/timeout.js +15 -0
- package/dist/lib/utils/tokenEstimation.d.ts +68 -0
- package/dist/lib/utils/tokenEstimation.js +113 -0
- package/dist/lib/utils/tokenUtils.d.ts +4 -4
- package/dist/lib/utils/ttsProcessor.d.ts +2 -2
- package/dist/lib/workflow/config.d.ts +150 -150
- package/dist/mcp/httpRetryHandler.js +6 -2
- package/dist/memory/mem0Initializer.d.ts +2 -2
- package/dist/neurolink.d.ts +66 -2
- package/dist/neurolink.js +777 -315
- package/dist/processors/archive/ArchiveProcessor.d.ts +327 -0
- package/dist/processors/archive/ArchiveProcessor.js +1308 -0
- package/dist/processors/archive/index.d.ts +33 -0
- package/dist/processors/archive/index.js +42 -0
- package/dist/processors/base/BaseFileProcessor.js +2 -1
- package/dist/processors/base/types.d.ts +70 -64
- package/dist/processors/base/types.js +6 -0
- package/dist/processors/cli/fileProcessorCli.d.ts +8 -8
- package/dist/processors/cli/fileProcessorCli.js +5 -5
- package/dist/processors/config/mimeTypes.js +25 -0
- package/dist/processors/config/sizeLimits.d.ts +52 -40
- package/dist/processors/config/sizeLimits.js +56 -44
- package/dist/processors/document/ExcelProcessor.d.ts +14 -0
- package/dist/processors/document/ExcelProcessor.js +72 -1
- package/dist/processors/document/PptxProcessor.d.ts +63 -0
- package/dist/processors/document/PptxProcessor.js +157 -0
- package/dist/processors/document/index.d.ts +1 -0
- package/dist/processors/document/index.js +6 -0
- package/dist/processors/errors/FileErrorCode.d.ts +2 -2
- package/dist/processors/errors/errorHelpers.d.ts +2 -2
- package/dist/processors/errors/errorHelpers.js +12 -4
- package/dist/processors/errors/errorSerializer.d.ts +4 -4
- package/dist/processors/index.d.ts +8 -2
- package/dist/processors/index.js +5 -2
- package/dist/processors/integration/FileProcessorIntegration.d.ts +8 -8
- package/dist/processors/integration/FileProcessorIntegration.js +7 -7
- package/dist/processors/media/AudioProcessor.d.ts +328 -0
- package/dist/processors/media/AudioProcessor.js +707 -0
- package/dist/processors/media/VideoProcessor.d.ts +350 -0
- package/dist/processors/media/VideoProcessor.js +991 -0
- package/dist/processors/media/ffprobe-static.d.ts +4 -0
- package/dist/processors/media/index.d.ts +27 -0
- package/dist/processors/media/index.js +36 -0
- package/dist/processors/registry/ProcessorRegistry.d.ts +19 -5
- package/dist/processors/registry/ProcessorRegistry.js +103 -8
- package/dist/processors/registry/index.d.ts +1 -1
- package/dist/processors/registry/index.js +1 -1
- package/dist/processors/registry/types.d.ts +2 -2
- package/dist/providers/amazonBedrock.js +2 -1
- package/dist/providers/anthropic.js +2 -2
- package/dist/providers/anthropicBaseProvider.js +10 -4
- package/dist/providers/azureOpenai.js +14 -25
- package/dist/providers/googleAiStudio.js +136 -457
- package/dist/providers/googleNativeGemini3.d.ts +119 -0
- package/dist/providers/googleNativeGemini3.js +263 -0
- package/dist/providers/googleVertex.d.ts +15 -1
- package/dist/providers/googleVertex.js +341 -775
- package/dist/providers/huggingFace.js +20 -5
- package/dist/providers/litellm.js +6 -4
- package/dist/providers/mistral.js +3 -2
- package/dist/providers/openAI.js +2 -2
- package/dist/providers/openRouter.js +8 -7
- package/dist/providers/openaiCompatible.js +10 -4
- package/dist/providers/sagemaker/detection.d.ts +6 -6
- package/dist/providers/sagemaker/diagnostics.d.ts +4 -4
- package/dist/providers/sagemaker/parsers.d.ts +4 -4
- package/dist/rag/chunkers/RecursiveChunker.js +2 -2
- package/dist/rag/document/loaders.d.ts +6 -71
- package/dist/rag/document/loaders.js +5 -5
- package/dist/rag/graphRag/graphRAG.js +26 -9
- package/dist/rag/metadata/MetadataExtractorFactory.d.ts +5 -55
- package/dist/rag/metadata/metadataExtractor.js +6 -3
- package/dist/rag/pipeline/RAGPipeline.d.ts +8 -126
- package/dist/rag/pipeline/RAGPipeline.js +11 -11
- package/dist/rag/pipeline/contextAssembly.d.ts +3 -42
- package/dist/rag/pipeline/contextAssembly.js +6 -3
- package/dist/rag/reranker/RerankerFactory.d.ts +5 -60
- package/dist/rag/resilience/CircuitBreaker.d.ts +3 -33
- package/dist/rag/resilience/RetryHandler.d.ts +2 -21
- package/dist/rag/resilience/RetryHandler.js +6 -2
- package/dist/rag/retrieval/hybridSearch.d.ts +3 -41
- package/dist/rag/retrieval/vectorQueryTool.d.ts +2 -13
- package/dist/rag/retrieval/vectorQueryTool.js +4 -3
- package/dist/rag/types.d.ts +3 -3
- package/dist/sdk/toolRegistration.d.ts +2 -2
- package/dist/server/middleware/cache.d.ts +2 -2
- package/dist/server/middleware/rateLimit.d.ts +2 -2
- package/dist/server/routes/mcpRoutes.js +277 -249
- package/dist/server/routes/memoryRoutes.js +287 -281
- package/dist/server/utils/validation.d.ts +4 -4
- package/dist/services/server/ai/observability/instrumentation.d.ts +24 -2
- package/dist/services/server/ai/observability/instrumentation.js +12 -1
- package/dist/session/globalSessionState.d.ts +2 -2
- package/dist/telemetry/telemetryService.d.ts +2 -2
- package/dist/types/common.d.ts +39 -0
- package/dist/types/contextTypes.d.ts +255 -0
- package/dist/types/contextTypes.js +0 -2
- package/dist/types/conversation.d.ts +62 -0
- package/dist/types/conversationMemoryInterface.d.ts +27 -0
- package/dist/types/conversationMemoryInterface.js +6 -0
- package/dist/types/fileReferenceTypes.d.ts +222 -0
- package/dist/types/fileReferenceTypes.js +8 -0
- package/dist/types/fileTypes.d.ts +26 -3
- package/dist/types/generateTypes.d.ts +50 -1
- package/dist/types/index.d.ts +4 -5
- package/dist/types/index.js +8 -10
- package/dist/types/processorTypes.d.ts +597 -0
- package/dist/types/processorTypes.js +90 -0
- package/dist/types/ragTypes.d.ts +489 -0
- package/dist/types/ragTypes.js +7 -0
- package/dist/types/sdkTypes.d.ts +17 -18
- package/dist/types/streamTypes.d.ts +24 -1
- package/dist/utils/async/retry.d.ts +2 -2
- package/dist/utils/async/withTimeout.js +3 -1
- package/dist/utils/conversationMemory.d.ts +12 -6
- package/dist/utils/conversationMemory.js +91 -36
- package/dist/utils/errorHandling.d.ts +5 -0
- package/dist/utils/errorHandling.js +19 -0
- package/dist/utils/fileDetector.d.ts +62 -0
- package/dist/utils/fileDetector.js +1014 -14
- package/dist/utils/json/safeParse.d.ts +2 -2
- package/dist/utils/messageBuilder.js +806 -153
- package/dist/utils/modelChoices.d.ts +2 -2
- package/dist/utils/multimodalOptionsBuilder.d.ts +2 -1
- package/dist/utils/multimodalOptionsBuilder.js +1 -0
- package/dist/utils/pricing.d.ts +12 -0
- package/dist/utils/pricing.js +133 -0
- package/dist/utils/rateLimiter.d.ts +2 -2
- package/dist/utils/redis.d.ts +17 -0
- package/dist/utils/redis.js +105 -0
- package/dist/utils/sanitizers/filename.d.ts +4 -4
- package/dist/utils/sanitizers/svg.d.ts +2 -2
- package/dist/utils/thinkingConfig.d.ts +6 -6
- package/dist/utils/timeout.d.ts +10 -0
- package/dist/utils/timeout.js +15 -0
- package/dist/utils/tokenEstimation.d.ts +68 -0
- package/dist/utils/tokenEstimation.js +112 -0
- package/dist/utils/tokenUtils.d.ts +4 -4
- package/dist/utils/ttsProcessor.d.ts +2 -2
- package/dist/workflow/config.d.ts +104 -104
- package/package.json +18 -6
- package/dist/lib/utils/conversationMemoryUtils.d.ts +0 -25
- package/dist/lib/utils/conversationMemoryUtils.js +0 -138
- package/dist/utils/conversationMemoryUtils.d.ts +0 -25
- package/dist/utils/conversationMemoryUtils.js +0 -137
|
@@ -313,6 +313,31 @@ export const EXTENSION_MIME_MAP = {
|
|
|
313
313
|
".lua": "text/x-lua",
|
|
314
314
|
".perl": "text/x-perl",
|
|
315
315
|
".pl": "text/x-perl",
|
|
316
|
+
// Video
|
|
317
|
+
".mp4": VIDEO_MIME_TYPES.MP4,
|
|
318
|
+
".m4v": VIDEO_MIME_TYPES.MP4,
|
|
319
|
+
".mkv": VIDEO_MIME_TYPES.MKV,
|
|
320
|
+
".mov": VIDEO_MIME_TYPES.MOV,
|
|
321
|
+
".avi": VIDEO_MIME_TYPES.AVI,
|
|
322
|
+
".webm": VIDEO_MIME_TYPES.WEBM,
|
|
323
|
+
".wmv": VIDEO_MIME_TYPES.WMV,
|
|
324
|
+
".flv": VIDEO_MIME_TYPES.FLV,
|
|
325
|
+
// Audio
|
|
326
|
+
".mp3": AUDIO_MIME_TYPES.MP3,
|
|
327
|
+
".wav": AUDIO_MIME_TYPES.WAV,
|
|
328
|
+
".ogg": AUDIO_MIME_TYPES.OGG,
|
|
329
|
+
".flac": AUDIO_MIME_TYPES.FLAC,
|
|
330
|
+
".m4a": AUDIO_MIME_TYPES.M4A,
|
|
331
|
+
".aac": AUDIO_MIME_TYPES.AAC,
|
|
332
|
+
".wma": AUDIO_MIME_TYPES.WMA,
|
|
333
|
+
// Archives
|
|
334
|
+
".zip": ARCHIVE_MIME_TYPES.ZIP,
|
|
335
|
+
".tar": ARCHIVE_MIME_TYPES.TAR,
|
|
336
|
+
".gz": ARCHIVE_MIME_TYPES.GZIP,
|
|
337
|
+
".tgz": ARCHIVE_MIME_TYPES.GZIP,
|
|
338
|
+
".rar": ARCHIVE_MIME_TYPES.RAR,
|
|
339
|
+
".7z": ARCHIVE_MIME_TYPES.SEVEN_ZIP,
|
|
340
|
+
".jar": "application/java-archive",
|
|
316
341
|
// Config files
|
|
317
342
|
".env": TEXT_MIME_TYPES.PLAIN,
|
|
318
343
|
".ini": TEXT_MIME_TYPES.PLAIN,
|
|
@@ -10,28 +10,34 @@
|
|
|
10
10
|
export declare const SIZE_LIMITS_MB: {
|
|
11
11
|
/** Maximum image file size (10MB) */
|
|
12
12
|
readonly IMAGE_MAX_MB: 10;
|
|
13
|
-
/** Maximum PDF file size (
|
|
14
|
-
readonly PDF_MAX_MB:
|
|
15
|
-
/** Maximum document file size (
|
|
16
|
-
readonly DOCUMENT_MAX_MB:
|
|
17
|
-
/** Maximum Word document size (
|
|
18
|
-
readonly WORD_MAX_MB:
|
|
19
|
-
/** Maximum text file size (
|
|
20
|
-
readonly TEXT_MAX_MB:
|
|
21
|
-
/** Maximum CSV file size (
|
|
22
|
-
readonly CSV_MAX_MB:
|
|
23
|
-
/** Maximum Excel file size (
|
|
24
|
-
readonly EXCEL_MAX_MB:
|
|
25
|
-
/** Maximum source code file size (
|
|
26
|
-
readonly SOURCE_CODE_MAX_MB:
|
|
27
|
-
/** Maximum JSON file size (
|
|
28
|
-
readonly JSON_MAX_MB:
|
|
29
|
-
/** Maximum YAML file size (
|
|
30
|
-
readonly YAML_MAX_MB:
|
|
31
|
-
/** Maximum XML file size (
|
|
32
|
-
readonly XML_MAX_MB:
|
|
33
|
-
/** Maximum
|
|
34
|
-
readonly
|
|
13
|
+
/** Maximum PDF file size (100MB — enterprise reports, long research papers) */
|
|
14
|
+
readonly PDF_MAX_MB: 100;
|
|
15
|
+
/** Maximum document file size (100MB — enterprise docs with embedded images) */
|
|
16
|
+
readonly DOCUMENT_MAX_MB: 100;
|
|
17
|
+
/** Maximum Word document size (100MB — PRDs, specs with embedded media) */
|
|
18
|
+
readonly WORD_MAX_MB: 100;
|
|
19
|
+
/** Maximum text file size (50MB — large log files, build output) */
|
|
20
|
+
readonly TEXT_MAX_MB: 50;
|
|
21
|
+
/** Maximum CSV file size (50MB — large data exports) */
|
|
22
|
+
readonly CSV_MAX_MB: 50;
|
|
23
|
+
/** Maximum Excel file size (100MB — enterprise spreadsheets, data exports) */
|
|
24
|
+
readonly EXCEL_MAX_MB: 100;
|
|
25
|
+
/** Maximum source code file size (20MB — large codebases) */
|
|
26
|
+
readonly SOURCE_CODE_MAX_MB: 20;
|
|
27
|
+
/** Maximum JSON file size (20MB — large API response dumps) */
|
|
28
|
+
readonly JSON_MAX_MB: 20;
|
|
29
|
+
/** Maximum YAML file size (20MB — large config files) */
|
|
30
|
+
readonly YAML_MAX_MB: 20;
|
|
31
|
+
/** Maximum XML file size (20MB — large config/data files) */
|
|
32
|
+
readonly XML_MAX_MB: 20;
|
|
33
|
+
/** Maximum video file size (500MB — long meeting recordings, screen captures) */
|
|
34
|
+
readonly VIDEO_MAX_MB: 500;
|
|
35
|
+
/** Maximum audio file size (500MB — long meeting recordings, call recordings) */
|
|
36
|
+
readonly AUDIO_MAX_MB: 500;
|
|
37
|
+
/** Maximum archive file size (200MB — large project archives) */
|
|
38
|
+
readonly ARCHIVE_MAX_MB: 200;
|
|
39
|
+
/** Maximum general file size (200MB — matches Curator's memory-safety cap) */
|
|
40
|
+
readonly GENERAL_MAX_MB: 200;
|
|
35
41
|
};
|
|
36
42
|
/**
|
|
37
43
|
* Maximum file sizes in bytes for different file types
|
|
@@ -39,27 +45,33 @@ export declare const SIZE_LIMITS_MB: {
|
|
|
39
45
|
export declare const SIZE_LIMITS_BYTES: {
|
|
40
46
|
/** Maximum image file size (10MB) */
|
|
41
47
|
readonly IMAGE_MAX: number;
|
|
42
|
-
/** Maximum PDF file size (
|
|
48
|
+
/** Maximum PDF file size (100MB) */
|
|
43
49
|
readonly PDF_MAX: number;
|
|
44
|
-
/** Maximum document file size (
|
|
50
|
+
/** Maximum document file size (100MB) */
|
|
45
51
|
readonly DOCUMENT_MAX: number;
|
|
46
|
-
/** Maximum Word document size (
|
|
52
|
+
/** Maximum Word document size (100MB) */
|
|
47
53
|
readonly WORD_MAX: number;
|
|
48
|
-
/** Maximum text file size (
|
|
54
|
+
/** Maximum text file size (50MB) */
|
|
49
55
|
readonly TEXT_MAX: number;
|
|
50
|
-
/** Maximum CSV file size (
|
|
56
|
+
/** Maximum CSV file size (50MB) */
|
|
51
57
|
readonly CSV_MAX: number;
|
|
52
|
-
/** Maximum Excel file size (
|
|
58
|
+
/** Maximum Excel file size (100MB) */
|
|
53
59
|
readonly EXCEL_MAX: number;
|
|
54
|
-
/** Maximum source code file size (
|
|
60
|
+
/** Maximum source code file size (20MB) */
|
|
55
61
|
readonly SOURCE_CODE_MAX: number;
|
|
56
|
-
/** Maximum JSON file size (
|
|
62
|
+
/** Maximum JSON file size (20MB) */
|
|
57
63
|
readonly JSON_MAX: number;
|
|
58
|
-
/** Maximum YAML file size (
|
|
64
|
+
/** Maximum YAML file size (20MB) */
|
|
59
65
|
readonly YAML_MAX: number;
|
|
60
|
-
/** Maximum XML file size (
|
|
66
|
+
/** Maximum XML file size (20MB) */
|
|
61
67
|
readonly XML_MAX: number;
|
|
62
|
-
/** Maximum
|
|
68
|
+
/** Maximum video file size (500MB) */
|
|
69
|
+
readonly VIDEO_MAX: number;
|
|
70
|
+
/** Maximum audio file size (500MB) */
|
|
71
|
+
readonly AUDIO_MAX: number;
|
|
72
|
+
/** Maximum archive file size (200MB) */
|
|
73
|
+
readonly ARCHIVE_MAX: number;
|
|
74
|
+
/** Maximum general file size (200MB) */
|
|
63
75
|
readonly GENERAL_MAX: number;
|
|
64
76
|
};
|
|
65
77
|
/**
|
|
@@ -114,13 +126,13 @@ export declare const YAML_LIMITS: {
|
|
|
114
126
|
*/
|
|
115
127
|
export declare const SIZE_LIMITS: {
|
|
116
128
|
readonly IMAGE_MAX_MB: 10;
|
|
117
|
-
readonly PDF_MAX_MB:
|
|
118
|
-
readonly DOCUMENT_MAX_MB:
|
|
119
|
-
readonly WORD_MAX_MB:
|
|
120
|
-
readonly TEXT_MAX_MB:
|
|
121
|
-
readonly CSV_MAX_MB:
|
|
122
|
-
readonly EXCEL_MAX_MB:
|
|
123
|
-
readonly SOURCE_CODE_MAX_MB:
|
|
129
|
+
readonly PDF_MAX_MB: 100;
|
|
130
|
+
readonly DOCUMENT_MAX_MB: 100;
|
|
131
|
+
readonly WORD_MAX_MB: 100;
|
|
132
|
+
readonly TEXT_MAX_MB: 50;
|
|
133
|
+
readonly CSV_MAX_MB: 50;
|
|
134
|
+
readonly EXCEL_MAX_MB: 100;
|
|
135
|
+
readonly SOURCE_CODE_MAX_MB: 20;
|
|
124
136
|
readonly MAX_FILE_SIZE: number;
|
|
125
137
|
readonly MAX_IMAGE_SIZE: number;
|
|
126
138
|
readonly MAX_TEXT_SIZE: number;
|
|
@@ -13,28 +13,34 @@
|
|
|
13
13
|
export const SIZE_LIMITS_MB = {
|
|
14
14
|
/** Maximum image file size (10MB) */
|
|
15
15
|
IMAGE_MAX_MB: 10,
|
|
16
|
-
/** Maximum PDF file size (
|
|
17
|
-
PDF_MAX_MB:
|
|
18
|
-
/** Maximum document file size (
|
|
19
|
-
DOCUMENT_MAX_MB:
|
|
20
|
-
/** Maximum Word document size (
|
|
21
|
-
WORD_MAX_MB:
|
|
22
|
-
/** Maximum text file size (
|
|
23
|
-
TEXT_MAX_MB:
|
|
24
|
-
/** Maximum CSV file size (
|
|
25
|
-
CSV_MAX_MB:
|
|
26
|
-
/** Maximum Excel file size (
|
|
27
|
-
EXCEL_MAX_MB:
|
|
28
|
-
/** Maximum source code file size (
|
|
29
|
-
SOURCE_CODE_MAX_MB:
|
|
30
|
-
/** Maximum JSON file size (
|
|
31
|
-
JSON_MAX_MB:
|
|
32
|
-
/** Maximum YAML file size (
|
|
33
|
-
YAML_MAX_MB:
|
|
34
|
-
/** Maximum XML file size (
|
|
35
|
-
XML_MAX_MB:
|
|
36
|
-
/** Maximum
|
|
37
|
-
|
|
16
|
+
/** Maximum PDF file size (100MB — enterprise reports, long research papers) */
|
|
17
|
+
PDF_MAX_MB: 100,
|
|
18
|
+
/** Maximum document file size (100MB — enterprise docs with embedded images) */
|
|
19
|
+
DOCUMENT_MAX_MB: 100,
|
|
20
|
+
/** Maximum Word document size (100MB — PRDs, specs with embedded media) */
|
|
21
|
+
WORD_MAX_MB: 100,
|
|
22
|
+
/** Maximum text file size (50MB — large log files, build output) */
|
|
23
|
+
TEXT_MAX_MB: 50,
|
|
24
|
+
/** Maximum CSV file size (50MB — large data exports) */
|
|
25
|
+
CSV_MAX_MB: 50,
|
|
26
|
+
/** Maximum Excel file size (100MB — enterprise spreadsheets, data exports) */
|
|
27
|
+
EXCEL_MAX_MB: 100,
|
|
28
|
+
/** Maximum source code file size (20MB — large codebases) */
|
|
29
|
+
SOURCE_CODE_MAX_MB: 20,
|
|
30
|
+
/** Maximum JSON file size (20MB — large API response dumps) */
|
|
31
|
+
JSON_MAX_MB: 20,
|
|
32
|
+
/** Maximum YAML file size (20MB — large config files) */
|
|
33
|
+
YAML_MAX_MB: 20,
|
|
34
|
+
/** Maximum XML file size (20MB — large config/data files) */
|
|
35
|
+
XML_MAX_MB: 20,
|
|
36
|
+
/** Maximum video file size (500MB — long meeting recordings, screen captures) */
|
|
37
|
+
VIDEO_MAX_MB: 500,
|
|
38
|
+
/** Maximum audio file size (500MB — long meeting recordings, call recordings) */
|
|
39
|
+
AUDIO_MAX_MB: 500,
|
|
40
|
+
/** Maximum archive file size (200MB — large project archives) */
|
|
41
|
+
ARCHIVE_MAX_MB: 200,
|
|
42
|
+
/** Maximum general file size (200MB — matches Curator's memory-safety cap) */
|
|
43
|
+
GENERAL_MAX_MB: 200,
|
|
38
44
|
};
|
|
39
45
|
// =============================================================================
|
|
40
46
|
// FILE SIZE LIMITS (in bytes)
|
|
@@ -45,28 +51,34 @@ export const SIZE_LIMITS_MB = {
|
|
|
45
51
|
export const SIZE_LIMITS_BYTES = {
|
|
46
52
|
/** Maximum image file size (10MB) */
|
|
47
53
|
IMAGE_MAX: 10 * 1024 * 1024,
|
|
48
|
-
/** Maximum PDF file size (
|
|
49
|
-
PDF_MAX:
|
|
50
|
-
/** Maximum document file size (
|
|
51
|
-
DOCUMENT_MAX:
|
|
52
|
-
/** Maximum Word document size (
|
|
53
|
-
WORD_MAX:
|
|
54
|
-
/** Maximum text file size (
|
|
55
|
-
TEXT_MAX:
|
|
56
|
-
/** Maximum CSV file size (
|
|
57
|
-
CSV_MAX:
|
|
58
|
-
/** Maximum Excel file size (
|
|
59
|
-
EXCEL_MAX:
|
|
60
|
-
/** Maximum source code file size (
|
|
61
|
-
SOURCE_CODE_MAX:
|
|
62
|
-
/** Maximum JSON file size (
|
|
63
|
-
JSON_MAX:
|
|
64
|
-
/** Maximum YAML file size (
|
|
65
|
-
YAML_MAX:
|
|
66
|
-
/** Maximum XML file size (
|
|
67
|
-
XML_MAX:
|
|
68
|
-
/** Maximum
|
|
69
|
-
|
|
54
|
+
/** Maximum PDF file size (100MB) */
|
|
55
|
+
PDF_MAX: 100 * 1024 * 1024,
|
|
56
|
+
/** Maximum document file size (100MB) */
|
|
57
|
+
DOCUMENT_MAX: 100 * 1024 * 1024,
|
|
58
|
+
/** Maximum Word document size (100MB) */
|
|
59
|
+
WORD_MAX: 100 * 1024 * 1024,
|
|
60
|
+
/** Maximum text file size (50MB) */
|
|
61
|
+
TEXT_MAX: 50 * 1024 * 1024,
|
|
62
|
+
/** Maximum CSV file size (50MB) */
|
|
63
|
+
CSV_MAX: 50 * 1024 * 1024,
|
|
64
|
+
/** Maximum Excel file size (100MB) */
|
|
65
|
+
EXCEL_MAX: 100 * 1024 * 1024,
|
|
66
|
+
/** Maximum source code file size (20MB) */
|
|
67
|
+
SOURCE_CODE_MAX: 20 * 1024 * 1024,
|
|
68
|
+
/** Maximum JSON file size (20MB) */
|
|
69
|
+
JSON_MAX: 20 * 1024 * 1024,
|
|
70
|
+
/** Maximum YAML file size (20MB) */
|
|
71
|
+
YAML_MAX: 20 * 1024 * 1024,
|
|
72
|
+
/** Maximum XML file size (20MB) */
|
|
73
|
+
XML_MAX: 20 * 1024 * 1024,
|
|
74
|
+
/** Maximum video file size (500MB) */
|
|
75
|
+
VIDEO_MAX: 500 * 1024 * 1024,
|
|
76
|
+
/** Maximum audio file size (500MB) */
|
|
77
|
+
AUDIO_MAX: 500 * 1024 * 1024,
|
|
78
|
+
/** Maximum archive file size (200MB) */
|
|
79
|
+
ARCHIVE_MAX: 200 * 1024 * 1024,
|
|
80
|
+
/** Maximum general file size (200MB) */
|
|
81
|
+
GENERAL_MAX: 200 * 1024 * 1024,
|
|
70
82
|
};
|
|
71
83
|
// =============================================================================
|
|
72
84
|
// PROCESSING LIMITS
|
|
@@ -123,6 +123,20 @@ export declare class ExcelProcessor extends BaseFileProcessor<ProcessedExcel> {
|
|
|
123
123
|
* @returns Concatenated plain text
|
|
124
124
|
*/
|
|
125
125
|
private extractRichText;
|
|
126
|
+
/**
|
|
127
|
+
* Extract a specific range from a spreadsheet.
|
|
128
|
+
*
|
|
129
|
+
* Called by the `extract_file_content` tool for targeted data access.
|
|
130
|
+
* Returns TSV-formatted text for the specified sheet, row range, and columns.
|
|
131
|
+
*
|
|
132
|
+
* @param buffer - Excel file buffer
|
|
133
|
+
* @param sheet - Sheet name or 0-based index (default: first sheet)
|
|
134
|
+
* @param rowStart - Starting row (1-indexed, default: 1)
|
|
135
|
+
* @param rowEnd - Ending row (1-indexed, default: all rows)
|
|
136
|
+
* @param columns - Specific column letters to include (e.g., ["A", "B", "D"])
|
|
137
|
+
* @returns TSV-formatted string with the extracted data
|
|
138
|
+
*/
|
|
139
|
+
extractSheetRange(buffer: Buffer, sheet?: string | number, rowStart?: number, rowEnd?: number, columns?: string[]): Promise<string>;
|
|
126
140
|
}
|
|
127
141
|
/**
|
|
128
142
|
* Singleton Excel processor instance.
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
* }
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
import
|
|
38
|
+
import ExcelJS from "exceljs";
|
|
39
|
+
const { Workbook } = ExcelJS;
|
|
39
40
|
import { BaseFileProcessor } from "../base/BaseFileProcessor.js";
|
|
40
41
|
import { SIZE_LIMITS } from "../config/index.js";
|
|
41
42
|
import { FileErrorCode } from "../errors/index.js";
|
|
@@ -385,6 +386,76 @@ export class ExcelProcessor extends BaseFileProcessor {
|
|
|
385
386
|
})
|
|
386
387
|
.join("");
|
|
387
388
|
}
|
|
389
|
+
// ===========================================================================
|
|
390
|
+
// TARGETED EXTRACTION API
|
|
391
|
+
// ===========================================================================
|
|
392
|
+
/**
|
|
393
|
+
* Extract a specific range from a spreadsheet.
|
|
394
|
+
*
|
|
395
|
+
* Called by the `extract_file_content` tool for targeted data access.
|
|
396
|
+
* Returns TSV-formatted text for the specified sheet, row range, and columns.
|
|
397
|
+
*
|
|
398
|
+
* @param buffer - Excel file buffer
|
|
399
|
+
* @param sheet - Sheet name or 0-based index (default: first sheet)
|
|
400
|
+
* @param rowStart - Starting row (1-indexed, default: 1)
|
|
401
|
+
* @param rowEnd - Ending row (1-indexed, default: all rows)
|
|
402
|
+
* @param columns - Specific column letters to include (e.g., ["A", "B", "D"])
|
|
403
|
+
* @returns TSV-formatted string with the extracted data
|
|
404
|
+
*/
|
|
405
|
+
async extractSheetRange(buffer, sheet, rowStart = 1, rowEnd, columns) {
|
|
406
|
+
const workbook = await this.parseWorkbook(buffer);
|
|
407
|
+
// Resolve the target worksheet
|
|
408
|
+
let worksheet;
|
|
409
|
+
if (typeof sheet === "number") {
|
|
410
|
+
// exceljs worksheets are 1-indexed
|
|
411
|
+
worksheet = workbook.worksheets[sheet];
|
|
412
|
+
}
|
|
413
|
+
else if (typeof sheet === "string") {
|
|
414
|
+
worksheet = workbook.getWorksheet(sheet);
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
worksheet = workbook.worksheets[0];
|
|
418
|
+
}
|
|
419
|
+
if (!worksheet) {
|
|
420
|
+
const sheetNames = workbook.worksheets.map((ws) => ws.name).join(", ");
|
|
421
|
+
return `Sheet not found. Available sheets: ${sheetNames}`;
|
|
422
|
+
}
|
|
423
|
+
// Convert column letters to 1-based column indices if specified
|
|
424
|
+
const columnIndices = columns?.map((col) => {
|
|
425
|
+
let index = 0;
|
|
426
|
+
for (let i = 0; i < col.length; i++) {
|
|
427
|
+
index = index * 26 + col.toUpperCase().charCodeAt(i) - 64;
|
|
428
|
+
}
|
|
429
|
+
return index;
|
|
430
|
+
});
|
|
431
|
+
const lines = [];
|
|
432
|
+
lines.push(`## Sheet: ${worksheet.name}`);
|
|
433
|
+
const actualRowEnd = rowEnd ?? worksheet.rowCount;
|
|
434
|
+
let rowCount = 0;
|
|
435
|
+
worksheet.eachRow({ includeEmpty: false }, (row, rowNumber) => {
|
|
436
|
+
if (rowNumber < rowStart || rowNumber > actualRowEnd) {
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
rowCount++;
|
|
440
|
+
const values = [];
|
|
441
|
+
row.eachCell({ includeEmpty: true }, (cell, colNumber) => {
|
|
442
|
+
if (columnIndices && !columnIndices.includes(colNumber)) {
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
const val = this.getCellValue(cell.value);
|
|
446
|
+
values.push(val === null ? "" : String(val));
|
|
447
|
+
});
|
|
448
|
+
// Add row number prefix for easy reference
|
|
449
|
+
lines.push(`${rowNumber}\t${values.join("\t")}`);
|
|
450
|
+
});
|
|
451
|
+
if (rowCount === 0) {
|
|
452
|
+
lines.push(`(No data in rows ${rowStart}-${actualRowEnd})`);
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
lines.push(`\n(${rowCount} rows, range ${rowStart}-${actualRowEnd})`);
|
|
456
|
+
}
|
|
457
|
+
return lines.join("\n");
|
|
458
|
+
}
|
|
388
459
|
}
|
|
389
460
|
// =============================================================================
|
|
390
461
|
// SINGLETON INSTANCE
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PowerPoint (PPTX) Processing Utility
|
|
3
|
+
*
|
|
4
|
+
* Extracts text content from PowerPoint (.pptx) files by treating them
|
|
5
|
+
* as ZIP archives and parsing the slide XML files within.
|
|
6
|
+
*
|
|
7
|
+
* PPTX files are ZIP archives containing:
|
|
8
|
+
* - ppt/slides/slide1.xml, slide2.xml, ... — slide content
|
|
9
|
+
* - ppt/slideMasters/ — master slide templates
|
|
10
|
+
* - ppt/slideLayouts/ — slide layout definitions
|
|
11
|
+
*
|
|
12
|
+
* Text is extracted from `<a:t>` elements in the slide XML files.
|
|
13
|
+
* Slides are sorted by number and presented in reading order.
|
|
14
|
+
*
|
|
15
|
+
* Uses `adm-zip` (already a project dependency) for ZIP extraction.
|
|
16
|
+
*
|
|
17
|
+
* @module processors/document/PptxProcessor
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { PptxProcessor } from "./PptxProcessor.js";
|
|
22
|
+
*
|
|
23
|
+
* const text = await PptxProcessor.extractText(buffer);
|
|
24
|
+
* if (text) {
|
|
25
|
+
* console.log("Extracted text:", text);
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Static utility class for extracting text from PPTX files.
|
|
31
|
+
*
|
|
32
|
+
* Designed as a static class (not extending BaseFileProcessor) because
|
|
33
|
+
* PPTX processing is straightforward ZIP+XML extraction and does not
|
|
34
|
+
* need the full download/validate/process pipeline of BaseFileProcessor.
|
|
35
|
+
*/
|
|
36
|
+
export declare class PptxProcessor {
|
|
37
|
+
/**
|
|
38
|
+
* Extract all text content from a PPTX buffer.
|
|
39
|
+
*
|
|
40
|
+
* @param content - Raw PPTX file buffer
|
|
41
|
+
* @returns Formatted text content with slide headers, or null if no text found
|
|
42
|
+
* @throws Error if the buffer is not a valid ZIP/PPTX file
|
|
43
|
+
*/
|
|
44
|
+
static extractText(content: Buffer): Promise<string | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Extract text strings from a slide XML document.
|
|
47
|
+
* Finds all `<a:t>` elements and returns their text content.
|
|
48
|
+
*
|
|
49
|
+
* @param xml - Raw XML string from a slide file
|
|
50
|
+
* @returns Array of text strings found in the slide
|
|
51
|
+
*/
|
|
52
|
+
private static extractTextFromXml;
|
|
53
|
+
/**
|
|
54
|
+
* Extract text from specific slides in a PPTX file.
|
|
55
|
+
*
|
|
56
|
+
* Called by the `extract_file_content` tool for targeted slide access.
|
|
57
|
+
*
|
|
58
|
+
* @param content - Raw PPTX file buffer
|
|
59
|
+
* @param slideNumbers - Array of 1-indexed slide numbers to extract
|
|
60
|
+
* @returns Formatted text from the requested slides
|
|
61
|
+
*/
|
|
62
|
+
static extractSlides(content: Buffer, slideNumbers: number[]): Promise<string>;
|
|
63
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PowerPoint (PPTX) Processing Utility
|
|
3
|
+
*
|
|
4
|
+
* Extracts text content from PowerPoint (.pptx) files by treating them
|
|
5
|
+
* as ZIP archives and parsing the slide XML files within.
|
|
6
|
+
*
|
|
7
|
+
* PPTX files are ZIP archives containing:
|
|
8
|
+
* - ppt/slides/slide1.xml, slide2.xml, ... — slide content
|
|
9
|
+
* - ppt/slideMasters/ — master slide templates
|
|
10
|
+
* - ppt/slideLayouts/ — slide layout definitions
|
|
11
|
+
*
|
|
12
|
+
* Text is extracted from `<a:t>` elements in the slide XML files.
|
|
13
|
+
* Slides are sorted by number and presented in reading order.
|
|
14
|
+
*
|
|
15
|
+
* Uses `adm-zip` (already a project dependency) for ZIP extraction.
|
|
16
|
+
*
|
|
17
|
+
* @module processors/document/PptxProcessor
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { PptxProcessor } from "./PptxProcessor.js";
|
|
22
|
+
*
|
|
23
|
+
* const text = await PptxProcessor.extractText(buffer);
|
|
24
|
+
* if (text) {
|
|
25
|
+
* console.log("Extracted text:", text);
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import AdmZip from "adm-zip";
|
|
30
|
+
/**
|
|
31
|
+
* Regex to match text content within PowerPoint XML `<a:t>` elements.
|
|
32
|
+
* These elements contain the actual visible text on slides.
|
|
33
|
+
*/
|
|
34
|
+
const TEXT_ELEMENT_REGEX = /<a:t[^>]*>([\s\S]*?)<\/a:t>/g;
|
|
35
|
+
/**
|
|
36
|
+
* Regex to match slide filenames and extract slide number.
|
|
37
|
+
* Matches entries like "ppt/slides/slide1.xml", "ppt/slides/slide12.xml".
|
|
38
|
+
*/
|
|
39
|
+
const SLIDE_ENTRY_REGEX = /^ppt\/slides\/slide(\d+)\.xml$/;
|
|
40
|
+
/**
|
|
41
|
+
* Static utility class for extracting text from PPTX files.
|
|
42
|
+
*
|
|
43
|
+
* Designed as a static class (not extending BaseFileProcessor) because
|
|
44
|
+
* PPTX processing is straightforward ZIP+XML extraction and does not
|
|
45
|
+
* need the full download/validate/process pipeline of BaseFileProcessor.
|
|
46
|
+
*/
|
|
47
|
+
export class PptxProcessor {
|
|
48
|
+
/**
|
|
49
|
+
* Extract all text content from a PPTX buffer.
|
|
50
|
+
*
|
|
51
|
+
* @param content - Raw PPTX file buffer
|
|
52
|
+
* @returns Formatted text content with slide headers, or null if no text found
|
|
53
|
+
* @throws Error if the buffer is not a valid ZIP/PPTX file
|
|
54
|
+
*/
|
|
55
|
+
static async extractText(content) {
|
|
56
|
+
const zip = new AdmZip(content);
|
|
57
|
+
const entries = zip.getEntries();
|
|
58
|
+
// Collect slide entries with their slide numbers for sorting
|
|
59
|
+
const slides = [];
|
|
60
|
+
for (const entry of entries) {
|
|
61
|
+
const match = entry.entryName.match(SLIDE_ENTRY_REGEX);
|
|
62
|
+
if (match) {
|
|
63
|
+
const slideNumber = parseInt(match[1], 10);
|
|
64
|
+
const xmlContent = entry.getData().toString("utf-8");
|
|
65
|
+
slides.push({ slideNumber, xml: xmlContent });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Sort slides by number (slide1, slide2, ...)
|
|
69
|
+
slides.sort((a, b) => a.slideNumber - b.slideNumber);
|
|
70
|
+
if (slides.length === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const parts = [];
|
|
74
|
+
parts.push(`Presentation: ${slides.length} slide(s)\n`);
|
|
75
|
+
for (const slide of slides) {
|
|
76
|
+
const texts = PptxProcessor.extractTextFromXml(slide.xml);
|
|
77
|
+
if (texts.length > 0) {
|
|
78
|
+
parts.push(`### Slide ${slide.slideNumber}`);
|
|
79
|
+
parts.push(texts.join("\n"));
|
|
80
|
+
parts.push(""); // blank line between slides
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const result = parts.join("\n").trim();
|
|
84
|
+
return result || null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extract text strings from a slide XML document.
|
|
88
|
+
* Finds all `<a:t>` elements and returns their text content.
|
|
89
|
+
*
|
|
90
|
+
* @param xml - Raw XML string from a slide file
|
|
91
|
+
* @returns Array of text strings found in the slide
|
|
92
|
+
*/
|
|
93
|
+
static extractTextFromXml(xml) {
|
|
94
|
+
const texts = [];
|
|
95
|
+
// Reset regex state for re-entrant usage
|
|
96
|
+
TEXT_ELEMENT_REGEX.lastIndex = 0;
|
|
97
|
+
for (let match = TEXT_ELEMENT_REGEX.exec(xml); match !== null; match = TEXT_ELEMENT_REGEX.exec(xml)) {
|
|
98
|
+
const text = match[1].trim();
|
|
99
|
+
if (text) {
|
|
100
|
+
texts.push(text);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return texts;
|
|
104
|
+
}
|
|
105
|
+
// ===========================================================================
|
|
106
|
+
// TARGETED EXTRACTION API
|
|
107
|
+
// ===========================================================================
|
|
108
|
+
/**
|
|
109
|
+
* Extract text from specific slides in a PPTX file.
|
|
110
|
+
*
|
|
111
|
+
* Called by the `extract_file_content` tool for targeted slide access.
|
|
112
|
+
*
|
|
113
|
+
* @param content - Raw PPTX file buffer
|
|
114
|
+
* @param slideNumbers - Array of 1-indexed slide numbers to extract
|
|
115
|
+
* @returns Formatted text from the requested slides
|
|
116
|
+
*/
|
|
117
|
+
static async extractSlides(content, slideNumbers) {
|
|
118
|
+
const zip = new AdmZip(content);
|
|
119
|
+
const entries = zip.getEntries();
|
|
120
|
+
// Collect all slides
|
|
121
|
+
const slides = [];
|
|
122
|
+
for (const entry of entries) {
|
|
123
|
+
const match = entry.entryName.match(SLIDE_ENTRY_REGEX);
|
|
124
|
+
if (match) {
|
|
125
|
+
const slideNumber = parseInt(match[1], 10);
|
|
126
|
+
if (slideNumbers.includes(slideNumber)) {
|
|
127
|
+
const xmlContent = entry.getData().toString("utf-8");
|
|
128
|
+
slides.push({ slideNumber, xml: xmlContent });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
slides.sort((a, b) => a.slideNumber - b.slideNumber);
|
|
133
|
+
if (slides.length === 0) {
|
|
134
|
+
// List total slides to help the LLM
|
|
135
|
+
let totalSlides = 0;
|
|
136
|
+
for (const entry of entries) {
|
|
137
|
+
if (SLIDE_ENTRY_REGEX.test(entry.entryName)) {
|
|
138
|
+
totalSlides++;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return `Slides ${slideNumbers.join(", ")} not found. This presentation has ${totalSlides} slide(s).`;
|
|
142
|
+
}
|
|
143
|
+
const parts = [];
|
|
144
|
+
for (const slide of slides) {
|
|
145
|
+
const texts = PptxProcessor.extractTextFromXml(slide.xml);
|
|
146
|
+
parts.push(`### Slide ${slide.slideNumber}`);
|
|
147
|
+
if (texts.length > 0) {
|
|
148
|
+
parts.push(texts.join("\n"));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
parts.push("(No text content on this slide)");
|
|
152
|
+
}
|
|
153
|
+
parts.push("");
|
|
154
|
+
}
|
|
155
|
+
return parts.join("\n").trim();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -50,5 +50,6 @@
|
|
|
50
50
|
*/
|
|
51
51
|
export { isWordFile, type ProcessedWord, processWord, validateWordSize, WordProcessor, wordProcessor, } from "./WordProcessor.js";
|
|
52
52
|
export { ExcelProcessor, type ExcelWorksheet, excelProcessor, getExcelMaxRows, getExcelMaxSheets, getExcelMaxSizeMB, isExcelFile, type ProcessedExcel, processExcel, validateExcelSize, } from "./ExcelProcessor.js";
|
|
53
|
+
export { PptxProcessor, } from "./PptxProcessor.js";
|
|
53
54
|
export { isRtfFile, type ProcessedRtf, processRtf, RtfProcessor, rtfProcessor, validateRtfSize, } from "./RtfProcessor.js";
|
|
54
55
|
export { getOpenDocumentMaxSizeMB, isOpenDocumentFile, OpenDocumentProcessor, openDocumentProcessor, type ProcessedOpenDocument, processOpenDocument, validateOpenDocumentSize, } from "./OpenDocumentProcessor.js";
|
|
@@ -69,6 +69,12 @@ excelProcessor,
|
|
|
69
69
|
// Helper functions
|
|
70
70
|
getExcelMaxRows, getExcelMaxSheets, getExcelMaxSizeMB, isExcelFile, processExcel, validateExcelSize, } from "./ExcelProcessor.js";
|
|
71
71
|
// =============================================================================
|
|
72
|
+
// PPTX PROCESSOR
|
|
73
|
+
// =============================================================================
|
|
74
|
+
export {
|
|
75
|
+
// Class
|
|
76
|
+
PptxProcessor, } from "./PptxProcessor.js";
|
|
77
|
+
// =============================================================================
|
|
72
78
|
// RTF PROCESSOR
|
|
73
79
|
// =============================================================================
|
|
74
80
|
export {
|
|
@@ -67,7 +67,7 @@ export declare enum FileErrorCode {
|
|
|
67
67
|
/**
|
|
68
68
|
* Error message template with user-friendly messaging and retry information.
|
|
69
69
|
*/
|
|
70
|
-
export
|
|
70
|
+
export type ErrorMessageTemplate = {
|
|
71
71
|
/** Technical error message */
|
|
72
72
|
message: string;
|
|
73
73
|
/** User-friendly error message */
|
|
@@ -76,7 +76,7 @@ export interface ErrorMessageTemplate {
|
|
|
76
76
|
suggestedAction: string;
|
|
77
77
|
/** Whether this error is potentially retryable */
|
|
78
78
|
retryable: boolean;
|
|
79
|
-
}
|
|
79
|
+
};
|
|
80
80
|
/**
|
|
81
81
|
* Error messages map with technical and user-friendly messaging for each error code.
|
|
82
82
|
* All messages are designed to be clear, actionable, and free of technical jargon.
|
|
@@ -13,7 +13,7 @@ export type { FileProcessingError };
|
|
|
13
13
|
/**
|
|
14
14
|
* Summary of file processing operations.
|
|
15
15
|
*/
|
|
16
|
-
export
|
|
16
|
+
export type FileProcessingSummary = {
|
|
17
17
|
/** Total number of files attempted */
|
|
18
18
|
totalFiles: number;
|
|
19
19
|
/** Successfully processed files */
|
|
@@ -38,7 +38,7 @@ export interface FileProcessingSummary {
|
|
|
38
38
|
filename: string;
|
|
39
39
|
message: string;
|
|
40
40
|
}>;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* Create a structured file processing error with user-friendly messaging.
|
|
44
44
|
*
|