@juspay/neurolink 9.32.0 → 9.33.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 +12 -0
- package/dist/auth/anthropicOAuth.js +1 -1
- package/dist/cli/commands/proxy.js +18 -5
- package/dist/client/aiSdkAdapter.js +1 -1
- package/dist/client/index.js +137 -501
- package/dist/core/factory.js +0 -1
- package/dist/core/redisConversationMemoryManager.js +1 -1
- package/dist/features/ppt/slideGenerator.js +0 -1
- package/dist/features/ppt/utils.js +0 -1
- package/dist/lib/neurolink.d.ts +10 -0
- package/dist/lib/neurolink.js +41 -7
- package/dist/lib/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/lib/types/generateTypes.d.ts +16 -0
- package/dist/lib/types/streamTypes.d.ts +15 -0
- package/dist/mcp/elicitationProtocol.js +1 -1
- package/dist/mcp/servers/agent/directToolsServer.js +0 -1
- package/dist/neurolink.d.ts +10 -0
- package/dist/neurolink.js +41 -7
- package/dist/providers/azureOpenai.js +1 -1
- package/dist/providers/huggingFace.js +0 -1
- package/dist/providers/openaiCompatible.js +0 -1
- package/dist/sdk/toolRegistration.js +0 -1
- package/dist/server/openapi/generator.js +1 -1
- package/dist/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/types/configTypes.js +0 -5
- package/dist/types/generateTypes.d.ts +16 -0
- package/dist/types/modelTypes.js +0 -1
- package/dist/types/streamTypes.d.ts +15 -0
- package/dist/types/tools.js +0 -1
- package/dist/types/typeAliases.js +0 -1
- package/dist/types/utilities.js +1 -1
- package/dist/types/workflowTypes.js +0 -1
- package/dist/utils/providerRetry.js +0 -1
- package/dist/utils/providerUtils.js +0 -1
- package/package.json +2 -2
- package/dist/client/adapters/providerImageAdapter.js +0 -588
- package/dist/client/adapters/tts/googleTTSHandler.js +0 -344
- package/dist/client/adapters/video/directorPipeline.js +0 -516
- package/dist/client/adapters/video/ffmpegAdapter.js +0 -206
- package/dist/client/adapters/video/frameExtractor.js +0 -143
- package/dist/client/adapters/video/vertexVideoHandler.js +0 -763
- package/dist/client/adapters/video/videoAnalyzer.js +0 -238
- package/dist/client/adapters/video/videoMerger.js +0 -171
- package/dist/client/agent/directTools.js +0 -840
- package/dist/client/auth/AuthProviderFactory.js +0 -111
- package/dist/client/auth/AuthProviderRegistry.js +0 -190
- package/dist/client/auth/RequestContext.js +0 -78
- package/dist/client/auth/accountPool.js +0 -178
- package/dist/client/auth/anthropicOAuth.js +0 -974
- package/dist/client/auth/authContext.js +0 -314
- package/dist/client/auth/errors.js +0 -39
- package/dist/client/auth/index.js +0 -61
- package/dist/client/auth/middleware/AuthMiddleware.js +0 -519
- package/dist/client/auth/middleware/rateLimitByUser.js +0 -554
- package/dist/client/auth/providers/BaseAuthProvider.js +0 -723
- package/dist/client/auth/providers/CognitoProvider.js +0 -304
- package/dist/client/auth/providers/KeycloakProvider.js +0 -393
- package/dist/client/auth/providers/auth0.js +0 -274
- package/dist/client/auth/providers/betterAuth.js +0 -182
- package/dist/client/auth/providers/clerk.js +0 -317
- package/dist/client/auth/providers/custom.js +0 -112
- package/dist/client/auth/providers/firebase.js +0 -226
- package/dist/client/auth/providers/jwt.js +0 -212
- package/dist/client/auth/providers/oauth2.js +0 -303
- package/dist/client/auth/providers/supabase.js +0 -259
- package/dist/client/auth/providers/workos.js +0 -284
- package/dist/client/auth/serverBridge.js +0 -25
- package/dist/client/auth/sessionManager.js +0 -437
- package/dist/client/auth/tokenStore.js +0 -799
- package/dist/client/client/aiSdkAdapter.js +0 -487
- package/dist/client/client/auth.js +0 -473
- package/dist/client/client/errors.js +0 -552
- package/dist/client/client/httpClient.js +0 -837
- package/dist/client/client/index.js +0 -172
- package/dist/client/client/interceptors.js +0 -601
- package/dist/client/client/sseClient.js +0 -545
- package/dist/client/client/streamingClient.js +0 -917
- package/dist/client/client/wsClient.js +0 -369
- package/dist/client/config/configManager.js +0 -303
- package/dist/client/config/conversationMemory.js +0 -86
- package/dist/client/config/taskClassificationConfig.js +0 -148
- package/dist/client/constants/contextWindows.js +0 -295
- package/dist/client/constants/enums.js +0 -853
- package/dist/client/constants/index.js +0 -207
- package/dist/client/constants/performance.js +0 -389
- package/dist/client/constants/retry.js +0 -266
- package/dist/client/constants/timeouts.js +0 -182
- package/dist/client/constants/tokens.js +0 -380
- package/dist/client/constants/videoErrors.js +0 -46
- package/dist/client/context/budgetChecker.js +0 -98
- package/dist/client/context/contextCompactor.js +0 -205
- package/dist/client/context/emergencyTruncation.js +0 -88
- package/dist/client/context/errorDetection.js +0 -171
- package/dist/client/context/errors.js +0 -21
- package/dist/client/context/fileTokenBudget.js +0 -127
- package/dist/client/context/prompts/summarizationPrompt.js +0 -117
- package/dist/client/context/stages/fileReadDeduplicator.js +0 -66
- package/dist/client/context/stages/slidingWindowTruncator.js +0 -190
- package/dist/client/context/stages/structuredSummarizer.js +0 -99
- package/dist/client/context/stages/toolOutputPruner.js +0 -52
- package/dist/client/context/summarizationEngine.js +0 -136
- package/dist/client/context/toolOutputLimits.js +0 -78
- package/dist/client/context/toolPairRepair.js +0 -66
- package/dist/client/core/analytics.js +0 -88
- package/dist/client/core/baseProvider.js +0 -1385
- package/dist/client/core/constants.js +0 -140
- package/dist/client/core/conversationMemoryFactory.js +0 -141
- package/dist/client/core/conversationMemoryInitializer.js +0 -128
- package/dist/client/core/conversationMemoryManager.js +0 -344
- package/dist/client/core/dynamicModels.js +0 -358
- package/dist/client/core/evaluation.js +0 -309
- package/dist/client/core/evaluationProviders.js +0 -248
- package/dist/client/core/factory.js +0 -412
- package/dist/client/core/infrastructure/baseError.js +0 -22
- package/dist/client/core/infrastructure/baseFactory.js +0 -54
- package/dist/client/core/infrastructure/baseRegistry.js +0 -53
- package/dist/client/core/infrastructure/index.js +0 -5
- package/dist/client/core/infrastructure/retry.js +0 -20
- package/dist/client/core/infrastructure/typedEventEmitter.js +0 -23
- package/dist/client/core/modelConfiguration.js +0 -851
- package/dist/client/core/modules/GenerationHandler.js +0 -588
- package/dist/client/core/modules/MessageBuilder.js +0 -273
- package/dist/client/core/modules/StreamHandler.js +0 -185
- package/dist/client/core/modules/TelemetryHandler.js +0 -203
- package/dist/client/core/modules/ToolsManager.js +0 -499
- package/dist/client/core/modules/Utilities.js +0 -331
- package/dist/client/core/redisConversationMemoryManager.js +0 -1435
- package/dist/client/core/streamAnalytics.js +0 -131
- package/dist/client/evaluation/contextBuilder.js +0 -134
- package/dist/client/evaluation/index.js +0 -61
- package/dist/client/evaluation/prompts.js +0 -73
- package/dist/client/evaluation/ragasEvaluator.js +0 -110
- package/dist/client/evaluation/retryManager.js +0 -78
- package/dist/client/evaluation/scoring.js +0 -61
- package/dist/client/factories/providerFactory.js +0 -166
- package/dist/client/factories/providerRegistry.js +0 -166
- package/dist/client/features/ppt/constants.js +0 -896
- package/dist/client/features/ppt/contentPlanner.js +0 -529
- package/dist/client/features/ppt/presentationOrchestrator.js +0 -236
- package/dist/client/features/ppt/slideGenerator.js +0 -532
- package/dist/client/features/ppt/slideRenderers.js +0 -2383
- package/dist/client/features/ppt/slideTypeInference.js +0 -405
- package/dist/client/features/ppt/types.js +0 -13
- package/dist/client/features/ppt/utils.js +0 -443
- package/dist/client/files/fileReferenceRegistry.js +0 -1543
- package/dist/client/files/fileTools.js +0 -450
- package/dist/client/files/streamingReader.js +0 -321
- package/dist/client/files/types.js +0 -23
- package/dist/client/hitl/hitlErrors.js +0 -54
- package/dist/client/hitl/hitlManager.js +0 -460
- package/dist/client/mcp/agentExposure.js +0 -356
- package/dist/client/mcp/auth/index.js +0 -11
- package/dist/client/mcp/auth/oauthClientProvider.js +0 -325
- package/dist/client/mcp/auth/tokenStorage.js +0 -134
- package/dist/client/mcp/batching/index.js +0 -10
- package/dist/client/mcp/batching/requestBatcher.js +0 -441
- package/dist/client/mcp/caching/index.js +0 -10
- package/dist/client/mcp/caching/toolCache.js +0 -433
- package/dist/client/mcp/elicitation/elicitationManager.js +0 -376
- package/dist/client/mcp/elicitation/index.js +0 -11
- package/dist/client/mcp/elicitation/types.js +0 -10
- package/dist/client/mcp/elicitationProtocol.js +0 -375
- package/dist/client/mcp/enhancedToolDiscovery.js +0 -481
- package/dist/client/mcp/externalServerManager.js +0 -1478
- package/dist/client/mcp/factory.js +0 -161
- package/dist/client/mcp/flexibleToolValidator.js +0 -161
- package/dist/client/mcp/httpRateLimiter.js +0 -391
- package/dist/client/mcp/httpRetryHandler.js +0 -178
- package/dist/client/mcp/index.js +0 -74
- package/dist/client/mcp/mcpCircuitBreaker.js +0 -427
- package/dist/client/mcp/mcpClientFactory.js +0 -708
- package/dist/client/mcp/mcpRegistryClient.js +0 -488
- package/dist/client/mcp/mcpServerBase.js +0 -373
- package/dist/client/mcp/multiServerManager.js +0 -579
- package/dist/client/mcp/registry.js +0 -158
- package/dist/client/mcp/routing/index.js +0 -10
- package/dist/client/mcp/routing/toolRouter.js +0 -416
- package/dist/client/mcp/serverCapabilities.js +0 -502
- package/dist/client/mcp/servers/agent/directToolsServer.js +0 -150
- package/dist/client/mcp/toolAnnotations.js +0 -239
- package/dist/client/mcp/toolConverter.js +0 -258
- package/dist/client/mcp/toolDiscoveryService.js +0 -798
- package/dist/client/mcp/toolIntegration.js +0 -334
- package/dist/client/mcp/toolRegistry.js +0 -729
- package/dist/client/memory/hippocampusInitializer.js +0 -19
- package/dist/client/memory/memoryRetrievalTools.js +0 -166
- package/dist/client/middleware/builtin/analytics.js +0 -132
- package/dist/client/middleware/builtin/autoEvaluation.js +0 -203
- package/dist/client/middleware/builtin/guardrails.js +0 -109
- package/dist/client/middleware/builtin/lifecycle.js +0 -168
- package/dist/client/middleware/factory.js +0 -327
- package/dist/client/middleware/registry.js +0 -295
- package/dist/client/middleware/utils/guardrailsUtils.js +0 -396
- package/dist/client/models/anthropicModels.js +0 -527
- package/dist/client/neurolink.js +0 -8233
- package/dist/client/observability/exporterRegistry.js +0 -413
- package/dist/client/observability/exporters/arizeExporter.js +0 -138
- package/dist/client/observability/exporters/baseExporter.js +0 -190
- package/dist/client/observability/exporters/braintrustExporter.js +0 -154
- package/dist/client/observability/exporters/datadogExporter.js +0 -196
- package/dist/client/observability/exporters/laminarExporter.js +0 -302
- package/dist/client/observability/exporters/langfuseExporter.js +0 -209
- package/dist/client/observability/exporters/langsmithExporter.js +0 -143
- package/dist/client/observability/exporters/otelExporter.js +0 -164
- package/dist/client/observability/exporters/posthogExporter.js +0 -287
- package/dist/client/observability/exporters/sentryExporter.js +0 -165
- package/dist/client/observability/index.js +0 -31
- package/dist/client/observability/metricsAggregator.js +0 -556
- package/dist/client/observability/otelBridge.js +0 -131
- package/dist/client/observability/retryPolicy.js +0 -383
- package/dist/client/observability/sampling/samplers.js +0 -216
- package/dist/client/observability/spanProcessor.js +0 -303
- package/dist/client/observability/tokenTracker.js +0 -413
- package/dist/client/observability/types/exporterTypes.js +0 -5
- package/dist/client/observability/types/index.js +0 -4
- package/dist/client/observability/types/spanTypes.js +0 -92
- package/dist/client/observability/utils/safeMetadata.js +0 -25
- package/dist/client/observability/utils/spanSerializer.js +0 -292
- package/dist/client/processors/archive/ArchiveProcessor.js +0 -1308
- package/dist/client/processors/base/BaseFileProcessor.js +0 -614
- package/dist/client/processors/base/types.js +0 -82
- package/dist/client/processors/config/fileTypes.js +0 -520
- package/dist/client/processors/config/index.js +0 -92
- package/dist/client/processors/config/languageMap.js +0 -410
- package/dist/client/processors/config/mimeTypes.js +0 -363
- package/dist/client/processors/config/sizeLimits.js +0 -258
- package/dist/client/processors/document/ExcelProcessor.js +0 -590
- package/dist/client/processors/document/OpenDocumentProcessor.js +0 -212
- package/dist/client/processors/document/PptxProcessor.js +0 -157
- package/dist/client/processors/document/RtfProcessor.js +0 -361
- package/dist/client/processors/document/WordProcessor.js +0 -353
- package/dist/client/processors/errors/FileErrorCode.js +0 -255
- package/dist/client/processors/errors/errorHelpers.js +0 -386
- package/dist/client/processors/errors/errorSerializer.js +0 -507
- package/dist/client/processors/errors/index.js +0 -49
- package/dist/client/processors/markup/SvgProcessor.js +0 -240
- package/dist/client/processors/media/AudioProcessor.js +0 -707
- package/dist/client/processors/media/VideoProcessor.js +0 -1045
- package/dist/client/providers/amazonBedrock.js +0 -1512
- package/dist/client/providers/amazonSagemaker.js +0 -162
- package/dist/client/providers/anthropic.js +0 -831
- package/dist/client/providers/azureOpenai.js +0 -143
- package/dist/client/providers/googleAiStudio.js +0 -1200
- package/dist/client/providers/googleNativeGemini3.js +0 -543
- package/dist/client/providers/googleVertex.js +0 -2936
- package/dist/client/providers/huggingFace.js +0 -315
- package/dist/client/providers/litellm.js +0 -488
- package/dist/client/providers/mistral.js +0 -157
- package/dist/client/providers/ollama.js +0 -1579
- package/dist/client/providers/openAI.js +0 -627
- package/dist/client/providers/openRouter.js +0 -543
- package/dist/client/providers/openaiCompatible.js +0 -290
- package/dist/client/providers/providerTypeUtils.js +0 -46
- package/dist/client/providers/sagemaker/adaptive-semaphore.js +0 -215
- package/dist/client/providers/sagemaker/client.js +0 -472
- package/dist/client/providers/sagemaker/config.js +0 -317
- package/dist/client/providers/sagemaker/detection.js +0 -606
- package/dist/client/providers/sagemaker/error-constants.js +0 -227
- package/dist/client/providers/sagemaker/errors.js +0 -299
- package/dist/client/providers/sagemaker/language-model.js +0 -775
- package/dist/client/providers/sagemaker/parsers.js +0 -634
- package/dist/client/providers/sagemaker/streaming.js +0 -331
- package/dist/client/providers/sagemaker/structured-parser.js +0 -625
- package/dist/client/proxy/accountQuota.js +0 -162
- package/dist/client/proxy/claudeFormat.js +0 -595
- package/dist/client/proxy/modelRouter.js +0 -29
- package/dist/client/proxy/oauthFetch.js +0 -367
- package/dist/client/proxy/proxyFetch.js +0 -586
- package/dist/client/proxy/requestLogger.js +0 -207
- package/dist/client/proxy/tokenRefresh.js +0 -124
- package/dist/client/proxy/usageStats.js +0 -74
- package/dist/client/proxy/utils/noProxyUtils.js +0 -149
- package/dist/client/rag/ChunkerFactory.js +0 -320
- package/dist/client/rag/ChunkerRegistry.js +0 -421
- package/dist/client/rag/chunkers/BaseChunker.js +0 -143
- package/dist/client/rag/chunkers/CharacterChunker.js +0 -28
- package/dist/client/rag/chunkers/HTMLChunker.js +0 -38
- package/dist/client/rag/chunkers/JSONChunker.js +0 -68
- package/dist/client/rag/chunkers/LaTeXChunker.js +0 -63
- package/dist/client/rag/chunkers/MarkdownChunker.js +0 -306
- package/dist/client/rag/chunkers/RecursiveChunker.js +0 -139
- package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +0 -138
- package/dist/client/rag/chunkers/SentenceChunker.js +0 -66
- package/dist/client/rag/chunkers/TokenChunker.js +0 -61
- package/dist/client/rag/chunkers/index.js +0 -15
- package/dist/client/rag/chunking/characterChunker.js +0 -142
- package/dist/client/rag/chunking/chunkerRegistry.js +0 -194
- package/dist/client/rag/chunking/htmlChunker.js +0 -247
- package/dist/client/rag/chunking/index.js +0 -17
- package/dist/client/rag/chunking/jsonChunker.js +0 -281
- package/dist/client/rag/chunking/latexChunker.js +0 -251
- package/dist/client/rag/chunking/markdownChunker.js +0 -373
- package/dist/client/rag/chunking/recursiveChunker.js +0 -148
- package/dist/client/rag/chunking/semanticChunker.js +0 -306
- package/dist/client/rag/chunking/sentenceChunker.js +0 -230
- package/dist/client/rag/chunking/tokenChunker.js +0 -183
- package/dist/client/rag/document/MDocument.js +0 -392
- package/dist/client/rag/document/index.js +0 -5
- package/dist/client/rag/document/loaders.js +0 -500
- package/dist/client/rag/errors/RAGError.js +0 -274
- package/dist/client/rag/errors/index.js +0 -6
- package/dist/client/rag/graphRag/graphRAG.js +0 -401
- package/dist/client/rag/graphRag/index.js +0 -4
- package/dist/client/rag/index.js +0 -141
- package/dist/client/rag/metadata/MetadataExtractorFactory.js +0 -418
- package/dist/client/rag/metadata/MetadataExtractorRegistry.js +0 -362
- package/dist/client/rag/metadata/index.js +0 -9
- package/dist/client/rag/metadata/metadataExtractor.js +0 -280
- package/dist/client/rag/pipeline/RAGPipeline.js +0 -436
- package/dist/client/rag/pipeline/contextAssembly.js +0 -341
- package/dist/client/rag/pipeline/index.js +0 -5
- package/dist/client/rag/ragIntegration.js +0 -321
- package/dist/client/rag/reranker/RerankerFactory.js +0 -430
- package/dist/client/rag/reranker/RerankerRegistry.js +0 -402
- package/dist/client/rag/reranker/index.js +0 -9
- package/dist/client/rag/reranker/reranker.js +0 -277
- package/dist/client/rag/resilience/CircuitBreaker.js +0 -431
- package/dist/client/rag/resilience/RetryHandler.js +0 -304
- package/dist/client/rag/resilience/index.js +0 -7
- package/dist/client/rag/retrieval/hybridSearch.js +0 -335
- package/dist/client/rag/retrieval/index.js +0 -5
- package/dist/client/rag/retrieval/vectorQueryTool.js +0 -307
- package/dist/client/rag/types.js +0 -8
- package/dist/client/sdk/toolRegistration.js +0 -377
- package/dist/client/server/abstract/baseServerAdapter.js +0 -575
- package/dist/client/server/adapters/expressAdapter.js +0 -486
- package/dist/client/server/adapters/fastifyAdapter.js +0 -472
- package/dist/client/server/adapters/honoAdapter.js +0 -632
- package/dist/client/server/adapters/koaAdapter.js +0 -510
- package/dist/client/server/errors.js +0 -486
- package/dist/client/server/factory/serverAdapterFactory.js +0 -160
- package/dist/client/server/index.js +0 -108
- package/dist/client/server/middleware/abortSignal.js +0 -111
- package/dist/client/server/middleware/auth.js +0 -388
- package/dist/client/server/middleware/cache.js +0 -359
- package/dist/client/server/middleware/common.js +0 -281
- package/dist/client/server/middleware/deprecation.js +0 -190
- package/dist/client/server/middleware/mcpBodyAttachment.js +0 -63
- package/dist/client/server/middleware/rateLimit.js +0 -227
- package/dist/client/server/middleware/validation.js +0 -388
- package/dist/client/server/openapi/generator.js +0 -398
- package/dist/client/server/openapi/index.js +0 -36
- package/dist/client/server/openapi/schemas.js +0 -695
- package/dist/client/server/openapi/templates.js +0 -374
- package/dist/client/server/routes/agentRoutes.js +0 -189
- package/dist/client/server/routes/claudeProxyRoutes.js +0 -1600
- package/dist/client/server/routes/healthRoutes.js +0 -187
- package/dist/client/server/routes/index.js +0 -57
- package/dist/client/server/routes/mcpRoutes.js +0 -342
- package/dist/client/server/routes/memoryRoutes.js +0 -350
- package/dist/client/server/routes/openApiRoutes.js +0 -126
- package/dist/client/server/routes/toolRoutes.js +0 -199
- package/dist/client/server/streaming/dataStream.js +0 -486
- package/dist/client/server/streaming/index.js +0 -11
- package/dist/client/server/types.js +0 -67
- package/dist/client/server/utils/redaction.js +0 -334
- package/dist/client/server/utils/validation.js +0 -243
- package/dist/client/server/websocket/WebSocketHandler.js +0 -383
- package/dist/client/server/websocket/index.js +0 -4
- package/dist/client/services/server/ai/observability/instrumentation.js +0 -808
- package/dist/client/telemetry/attributes.js +0 -100
- package/dist/client/telemetry/index.js +0 -26
- package/dist/client/telemetry/telemetryService.js +0 -308
- package/dist/client/telemetry/tracers.js +0 -17
- package/dist/client/telemetry/withSpan.js +0 -34
- package/dist/client/types/actionTypes.js +0 -6
- package/dist/client/types/analytics.js +0 -5
- package/dist/client/types/authTypes.js +0 -9
- package/dist/client/types/circuitBreakerErrors.js +0 -34
- package/dist/client/types/cli.js +0 -21
- package/dist/client/types/clientTypes.js +0 -10
- package/dist/client/types/common.js +0 -51
- package/dist/client/types/configTypes.js +0 -49
- package/dist/client/types/content.js +0 -19
- package/dist/client/types/contextTypes.js +0 -400
- package/dist/client/types/conversation.js +0 -47
- package/dist/client/types/conversationMemoryInterface.js +0 -6
- package/dist/client/types/domainTypes.js +0 -5
- package/dist/client/types/errors.js +0 -167
- package/dist/client/types/evaluation.js +0 -5
- package/dist/client/types/evaluationProviders.js +0 -5
- package/dist/client/types/evaluationTypes.js +0 -1
- package/dist/client/types/externalMcp.js +0 -6
- package/dist/client/types/fileReferenceTypes.js +0 -8
- package/dist/client/types/fileTypes.js +0 -4
- package/dist/client/types/generateTypes.js +0 -1
- package/dist/client/types/guardrails.js +0 -1
- package/dist/client/types/hitlTypes.js +0 -8
- package/dist/client/types/index.js +0 -57
- package/dist/client/types/mcpTypes.js +0 -5
- package/dist/client/types/middlewareTypes.js +0 -1
- package/dist/client/types/modelTypes.js +0 -30
- package/dist/client/types/multimodal.js +0 -135
- package/dist/client/types/observability.js +0 -6
- package/dist/client/types/pptTypes.js +0 -82
- package/dist/client/types/providers.js +0 -111
- package/dist/client/types/proxyTypes.js +0 -16
- package/dist/client/types/ragTypes.js +0 -7
- package/dist/client/types/sdkTypes.js +0 -8
- package/dist/client/types/serviceTypes.js +0 -5
- package/dist/client/types/streamTypes.js +0 -1
- package/dist/client/types/subscriptionTypes.js +0 -9
- package/dist/client/types/taskClassificationTypes.js +0 -5
- package/dist/client/types/tools.js +0 -24
- package/dist/client/types/ttsTypes.js +0 -57
- package/dist/client/types/typeAliases.js +0 -48
- package/dist/client/types/utilities.js +0 -4
- package/dist/client/types/workflowTypes.js +0 -30
- package/dist/client/utils/async/withTimeout.js +0 -98
- package/dist/client/utils/asyncMutex.js +0 -60
- package/dist/client/utils/conversationMemory.js +0 -431
- package/dist/client/utils/csvProcessor.js +0 -846
- package/dist/client/utils/errorHandling.js +0 -936
- package/dist/client/utils/evaluationUtils.js +0 -131
- package/dist/client/utils/factoryProcessing.js +0 -589
- package/dist/client/utils/fileDetector.js +0 -2161
- package/dist/client/utils/imageCache.js +0 -376
- package/dist/client/utils/imageProcessor.js +0 -704
- package/dist/client/utils/logger.js +0 -491
- package/dist/client/utils/mcpDefaults.js +0 -134
- package/dist/client/utils/messageBuilder.js +0 -1653
- package/dist/client/utils/modelAliasResolver.js +0 -54
- package/dist/client/utils/modelDetection.js +0 -80
- package/dist/client/utils/modelRouter.js +0 -292
- package/dist/client/utils/multimodalOptionsBuilder.js +0 -65
- package/dist/client/utils/observabilityHelpers.js +0 -47
- package/dist/client/utils/parameterValidation.js +0 -966
- package/dist/client/utils/pdfProcessor.js +0 -410
- package/dist/client/utils/performance.js +0 -222
- package/dist/client/utils/pricing.js +0 -340
- package/dist/client/utils/promptRedaction.js +0 -62
- package/dist/client/utils/providerConfig.js +0 -1009
- package/dist/client/utils/providerHealth.js +0 -1237
- package/dist/client/utils/providerRetry.js +0 -112
- package/dist/client/utils/providerUtils.js +0 -434
- package/dist/client/utils/rateLimiter.js +0 -200
- package/dist/client/utils/redis.js +0 -368
- package/dist/client/utils/retryHandler.js +0 -269
- package/dist/client/utils/retryability.js +0 -22
- package/dist/client/utils/sanitizers/svg.js +0 -481
- package/dist/client/utils/schemaConversion.js +0 -255
- package/dist/client/utils/taskClassificationUtils.js +0 -149
- package/dist/client/utils/taskClassifier.js +0 -94
- package/dist/client/utils/thinkingConfig.js +0 -104
- package/dist/client/utils/timeout.js +0 -359
- package/dist/client/utils/tokenEstimation.js +0 -142
- package/dist/client/utils/tokenLimits.js +0 -125
- package/dist/client/utils/tokenUtils.js +0 -239
- package/dist/client/utils/toolUtils.js +0 -75
- package/dist/client/utils/transformationUtils.js +0 -554
- package/dist/client/utils/ttsProcessor.js +0 -286
- package/dist/client/utils/typeUtils.js +0 -97
- package/dist/client/utils/videoAnalysisProcessor.js +0 -67
- package/dist/client/workflow/config.js +0 -398
- package/dist/client/workflow/core/ensembleExecutor.js +0 -407
- package/dist/client/workflow/core/judgeScorer.js +0 -544
- package/dist/client/workflow/core/responseConditioner.js +0 -225
- package/dist/client/workflow/core/types/conditionerTypes.js +0 -7
- package/dist/client/workflow/core/types/ensembleTypes.js +0 -7
- package/dist/client/workflow/core/types/index.js +0 -7
- package/dist/client/workflow/core/types/judgeTypes.js +0 -7
- package/dist/client/workflow/core/types/layerTypes.js +0 -7
- package/dist/client/workflow/core/types/registryTypes.js +0 -7
- package/dist/client/workflow/core/workflowRegistry.js +0 -304
- package/dist/client/workflow/core/workflowRunner.js +0 -586
- package/dist/client/workflow/index.js +0 -50
- package/dist/client/workflow/types.js +0 -9
- package/dist/client/workflow/utils/types/index.js +0 -7
- package/dist/client/workflow/utils/workflowMetrics.js +0 -311
- package/dist/client/workflow/utils/workflowValidation.js +0 -420
- package/dist/client/workflow/workflows/adaptiveWorkflow.js +0 -366
- package/dist/client/workflow/workflows/consensusWorkflow.js +0 -192
- package/dist/client/workflow/workflows/fallbackWorkflow.js +0 -225
- package/dist/client/workflow/workflows/multiJudgeWorkflow.js +0 -351
- /package/dist/client/{client/reactHooks.js → reactHooks.js} +0 -0
|
@@ -421,6 +421,21 @@ export type StreamOptions = {
|
|
|
421
421
|
auth?: {
|
|
422
422
|
token: string;
|
|
423
423
|
};
|
|
424
|
+
/**
|
|
425
|
+
* Per-call memory control.
|
|
426
|
+
*
|
|
427
|
+
* Override the global memory SDK behavior for this specific call.
|
|
428
|
+
* All flags default to `true` when the global memory SDK is enabled.
|
|
429
|
+
* If the global memory SDK is disabled, these flags have no effect.
|
|
430
|
+
*/
|
|
431
|
+
memory?: {
|
|
432
|
+
/** Master toggle for this call. When false, both read and write are skipped. Defaults to true. */
|
|
433
|
+
enabled?: boolean;
|
|
434
|
+
/** Whether to read condensed memory and prepend to prompt. Defaults to true. */
|
|
435
|
+
read?: boolean;
|
|
436
|
+
/** Whether to write (add/condense) the conversation into memory after completion. Defaults to true. */
|
|
437
|
+
write?: boolean;
|
|
438
|
+
};
|
|
424
439
|
};
|
|
425
440
|
/**
|
|
426
441
|
* Stream function result type - Primary output format for streaming
|
package/dist/types/tools.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Comprehensive Type Alias Library
|
|
3
3
|
* Centralizes commonly used complex types to improve readability and maintainability
|
|
4
4
|
*/
|
|
5
|
-
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
6
5
|
// ============================================================================
|
|
7
6
|
// TYPE GUARDS AND UTILITIES
|
|
8
7
|
// ============================================================================
|
package/dist/types/utilities.js
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @module utils/providerRetry
|
|
15
15
|
*/
|
|
16
|
-
import {} from "@opentelemetry/api";
|
|
17
16
|
import { APICallError } from "@ai-sdk/provider";
|
|
18
17
|
import { logger } from "./logger.js";
|
|
19
18
|
/** Maximum number of retry attempts after the initial call (total = 1 + MAX_PROVIDER_RETRIES). */
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { AIProviderFactory } from "../core/factory.js";
|
|
6
6
|
import { logger } from "./logger.js";
|
|
7
|
-
import { AIProviderName } from "../constants/enums.js";
|
|
8
7
|
import { ProviderHealthChecker } from "./providerHealth.js";
|
|
9
8
|
import { API_KEY_FORMATS, API_KEY_LENGTHS, PROJECT_ID_FORMAT, } from "./providerConfig.js";
|
|
10
9
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay/neurolink",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.33.0",
|
|
4
4
|
"description": "Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and deploy AI applications with 13 providers: OpenAI, Anthropic, Google AI, AWS Bedrock, Azure, Hugging Face, Ollama, and Mistral AI.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Juspay Technologies",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"preview": "vite preview",
|
|
36
36
|
"prepare": "git rev-parse --git-dir > /dev/null 2>&1 && husky install || echo 'Skipping husky in non-git environment'",
|
|
37
37
|
"prepack": "svelte-kit sync && svelte-package && pnpm run build:react-hooks && pnpm run build:cli && publint",
|
|
38
|
-
"build:react-hooks": "npx tsc --jsx react-jsx --module nodenext --moduleResolution nodenext --target esnext --esModuleInterop --skipLibCheck --outDir dist
|
|
38
|
+
"build:react-hooks": "npx tsc --jsx react-jsx --module nodenext --moduleResolution nodenext --target esnext --esModuleInterop --skipLibCheck --outDir dist --declaration false src/lib/client/reactHooks.tsx",
|
|
39
39
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && tsc --noEmit --strict",
|
|
40
40
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
41
41
|
"modelServer": "tsx scripts/modelServer.ts",
|
|
@@ -1,588 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider Image Adapter - Smart routing for multimodal content
|
|
3
|
-
* Handles provider-specific image formatting and vision capability validation
|
|
4
|
-
*/
|
|
5
|
-
import { ImageProcessor } from "../utils/imageProcessor.js";
|
|
6
|
-
import { logger } from "../utils/logger.js";
|
|
7
|
-
/**
|
|
8
|
-
* Simplified logger for essential error reporting only
|
|
9
|
-
*/
|
|
10
|
-
export class MultimodalLogger {
|
|
11
|
-
static logError(step, error, context) {
|
|
12
|
-
logger.error(`Multimodal ${step} failed: ${error.message}`);
|
|
13
|
-
if (process.env.NODE_ENV === "development") {
|
|
14
|
-
logger.error("Context:", JSON.stringify(context, null, 2));
|
|
15
|
-
logger.error("Stack:", error.stack);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Image count limits per provider
|
|
21
|
-
* These limits prevent API rejections when too many images are sent
|
|
22
|
-
*/
|
|
23
|
-
const IMAGE_LIMITS = {
|
|
24
|
-
openai: 10,
|
|
25
|
-
azure: 10, // Same as OpenAI
|
|
26
|
-
"google-ai": 16,
|
|
27
|
-
google: 16,
|
|
28
|
-
anthropic: 20,
|
|
29
|
-
vertex: {
|
|
30
|
-
// Vertex has model-specific limits
|
|
31
|
-
claude: 20, // Claude models on Vertex
|
|
32
|
-
gemini: 16, // Gemini models on Vertex
|
|
33
|
-
default: 16,
|
|
34
|
-
},
|
|
35
|
-
ollama: 10, // Conservative limit for Ollama
|
|
36
|
-
litellm: 10, // Conservative limit, as it proxies to various providers
|
|
37
|
-
mistral: 10, // Conservative limit for Mistral
|
|
38
|
-
// Note: Bedrock limit defined for future use when vision support is added
|
|
39
|
-
bedrock: 20, // Same as Anthropic for Claude models on Bedrock
|
|
40
|
-
openrouter: 10, // Conservative limit, routes to various underlying providers
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Proxy providers that route to arbitrary underlying models.
|
|
44
|
-
* Vision capability cannot be statically determined for these — pass requests
|
|
45
|
-
* through and let the underlying provider surface errors if needed.
|
|
46
|
-
*/
|
|
47
|
-
const PROXY_PROVIDERS = new Set(["litellm", "openrouter"]);
|
|
48
|
-
/**
|
|
49
|
-
* Normalize provider name/alias to its canonical form for vision checks.
|
|
50
|
-
*/
|
|
51
|
-
function normalizeVisionProvider(provider) {
|
|
52
|
-
const lower = provider.toLowerCase();
|
|
53
|
-
switch (lower) {
|
|
54
|
-
case "or":
|
|
55
|
-
return "openrouter";
|
|
56
|
-
default:
|
|
57
|
-
return lower;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Vision capability definitions for each provider
|
|
62
|
-
*/
|
|
63
|
-
const VISION_CAPABILITIES = {
|
|
64
|
-
openai: [
|
|
65
|
-
// GPT-5.4 family (released Mar 2026) - Latest flagship models
|
|
66
|
-
"gpt-5.4",
|
|
67
|
-
"gpt-5.4-mini",
|
|
68
|
-
"gpt-5.4-nano",
|
|
69
|
-
"gpt-5.4-pro",
|
|
70
|
-
// GPT-5.2 family (released Dec 11, 2025)
|
|
71
|
-
"gpt-5.2",
|
|
72
|
-
"gpt-5.2-chat-latest",
|
|
73
|
-
"gpt-5.2-pro",
|
|
74
|
-
// GPT-5 family (released Aug 2025)
|
|
75
|
-
"gpt-5",
|
|
76
|
-
"gpt-5-2025-08-07",
|
|
77
|
-
"gpt-5-pro",
|
|
78
|
-
"gpt-5-mini",
|
|
79
|
-
"gpt-5-nano",
|
|
80
|
-
// GPT-4.1 family (released Apr 2025)
|
|
81
|
-
"gpt-4.1",
|
|
82
|
-
"gpt-4.1-mini",
|
|
83
|
-
"gpt-4.1-nano",
|
|
84
|
-
// o-series reasoning models (released Apr 2025)
|
|
85
|
-
"o3",
|
|
86
|
-
"o3-mini",
|
|
87
|
-
"o3-pro",
|
|
88
|
-
"o4",
|
|
89
|
-
"o4-mini",
|
|
90
|
-
"o4-mini-deep-research",
|
|
91
|
-
// Existing GPT-4 models
|
|
92
|
-
"gpt-4o",
|
|
93
|
-
"gpt-4o-mini",
|
|
94
|
-
"gpt-4-turbo",
|
|
95
|
-
"gpt-4-vision-preview",
|
|
96
|
-
],
|
|
97
|
-
"google-ai": [
|
|
98
|
-
// Gemini 3.1 Series (all require -preview suffix)
|
|
99
|
-
"gemini-3.1-pro-preview",
|
|
100
|
-
"gemini-3.1-flash-lite-preview",
|
|
101
|
-
"gemini-3.1-flash-image-preview",
|
|
102
|
-
"gemini-3.1-pro-preview-customtools",
|
|
103
|
-
// Gemini 3 Series
|
|
104
|
-
"gemini-3-flash-preview",
|
|
105
|
-
"gemini-3-pro-image-preview",
|
|
106
|
-
"gemini-3-pro-preview",
|
|
107
|
-
// Gemini 2.5 Series
|
|
108
|
-
"gemini-2.5-pro",
|
|
109
|
-
"gemini-2.5-flash",
|
|
110
|
-
"gemini-2.5-flash-lite",
|
|
111
|
-
"gemini-2.5-flash-image",
|
|
112
|
-
// Gemini 2.0 Series
|
|
113
|
-
"gemini-2.0-flash",
|
|
114
|
-
"gemini-2.0-flash-001",
|
|
115
|
-
"gemini-2.0-flash-lite",
|
|
116
|
-
"gemini-2.0-flash-preview-image-generation",
|
|
117
|
-
// Gemini 1.5 Series (Legacy)
|
|
118
|
-
"gemini-1.5-pro",
|
|
119
|
-
"gemini-1.5-flash",
|
|
120
|
-
"gemini-pro-vision",
|
|
121
|
-
],
|
|
122
|
-
anthropic: [
|
|
123
|
-
// Claude 4.6 Series (February 2026)
|
|
124
|
-
"claude-opus-4-6",
|
|
125
|
-
"claude-sonnet-4-6",
|
|
126
|
-
// Claude 4.5 Series (September-November 2025)
|
|
127
|
-
"claude-sonnet-4-5",
|
|
128
|
-
"claude-sonnet-4-5-20250929",
|
|
129
|
-
"claude-opus-4-5",
|
|
130
|
-
"claude-opus-4-5-20251101",
|
|
131
|
-
"claude-haiku-4-5",
|
|
132
|
-
"claude-haiku-4-5-20251001",
|
|
133
|
-
// Claude 4.1 and 4.0 Series
|
|
134
|
-
"claude-opus-4-1",
|
|
135
|
-
"claude-opus-4-1-20250805",
|
|
136
|
-
"claude-opus-4",
|
|
137
|
-
"claude-opus-4-20250514",
|
|
138
|
-
"claude-sonnet-4",
|
|
139
|
-
"claude-sonnet-4-20250514",
|
|
140
|
-
// Claude 3.7 Series
|
|
141
|
-
"claude-3-7-sonnet",
|
|
142
|
-
"claude-3-7-sonnet-20250219",
|
|
143
|
-
// Claude 3.5 Series
|
|
144
|
-
"claude-3-5-sonnet",
|
|
145
|
-
"claude-3-5-sonnet-20241022",
|
|
146
|
-
// Claude 3 Series
|
|
147
|
-
"claude-3-opus",
|
|
148
|
-
"claude-3-sonnet",
|
|
149
|
-
"claude-3-haiku",
|
|
150
|
-
],
|
|
151
|
-
azure: [
|
|
152
|
-
// GPT-5.1 family (December 2025)
|
|
153
|
-
"gpt-5.1",
|
|
154
|
-
"gpt-5.1-chat",
|
|
155
|
-
"gpt-5.1-codex",
|
|
156
|
-
// GPT-5 family
|
|
157
|
-
"gpt-5",
|
|
158
|
-
"gpt-5-pro",
|
|
159
|
-
"gpt-5-turbo",
|
|
160
|
-
"gpt-5-chat",
|
|
161
|
-
"gpt-5-mini",
|
|
162
|
-
// GPT-4.1 family
|
|
163
|
-
"gpt-4.1",
|
|
164
|
-
"gpt-4.1-mini",
|
|
165
|
-
"gpt-4.1-nano",
|
|
166
|
-
// O-series
|
|
167
|
-
"o3",
|
|
168
|
-
"o3-mini",
|
|
169
|
-
"o3-pro",
|
|
170
|
-
"o4-mini",
|
|
171
|
-
// Existing GPT-4
|
|
172
|
-
"gpt-4o",
|
|
173
|
-
"gpt-4o-mini",
|
|
174
|
-
"gpt-4-turbo",
|
|
175
|
-
"gpt-4-vision-preview",
|
|
176
|
-
"gpt-4",
|
|
177
|
-
],
|
|
178
|
-
vertex: [
|
|
179
|
-
// Gemini 3.1 models on Vertex AI (all require -preview suffix)
|
|
180
|
-
"gemini-3.1-pro-preview",
|
|
181
|
-
"gemini-3.1-flash-lite-preview",
|
|
182
|
-
"gemini-3.1-flash-image-preview",
|
|
183
|
-
"gemini-3.1-pro-preview-customtools",
|
|
184
|
-
// Gemini 3 Series on Vertex AI
|
|
185
|
-
"gemini-3-flash-preview",
|
|
186
|
-
"gemini-3-pro-image-preview",
|
|
187
|
-
"gemini-3-pro-preview",
|
|
188
|
-
// Gemini 2.5 models on Vertex AI
|
|
189
|
-
"gemini-2.5-pro",
|
|
190
|
-
"gemini-2.5-flash",
|
|
191
|
-
"gemini-2.5-flash-lite",
|
|
192
|
-
"gemini-2.5-flash-image",
|
|
193
|
-
// Gemini 2.0 models on Vertex AI
|
|
194
|
-
"gemini-2.0-flash-001",
|
|
195
|
-
"gemini-2.0-flash-lite",
|
|
196
|
-
"gemini-2.0-flash",
|
|
197
|
-
// Gemini 1.5 models on Vertex AI
|
|
198
|
-
"gemini-1.5-pro",
|
|
199
|
-
"gemini-1.5-flash",
|
|
200
|
-
// Claude 4.5 models (versioned format - September-November 2025)
|
|
201
|
-
"claude-sonnet-4-5@",
|
|
202
|
-
"claude-opus-4-5@",
|
|
203
|
-
"claude-haiku-4-5@",
|
|
204
|
-
"claude-haiku-4-5",
|
|
205
|
-
// Claude 4 models (versioned format - May 2025)
|
|
206
|
-
"claude-sonnet-4@",
|
|
207
|
-
"claude-opus-4@",
|
|
208
|
-
"claude-opus-4-1@",
|
|
209
|
-
// Claude 3.x models (versioned format)
|
|
210
|
-
"claude-3-7-sonnet@",
|
|
211
|
-
"claude-3-5-sonnet@",
|
|
212
|
-
"claude-opus-3@",
|
|
213
|
-
"claude-haiku-3@",
|
|
214
|
-
// Claude models (non-versioned format)
|
|
215
|
-
"claude-3-7-sonnet",
|
|
216
|
-
"claude-3-5-sonnet",
|
|
217
|
-
"claude-3-opus",
|
|
218
|
-
"claude-3-sonnet",
|
|
219
|
-
"claude-3-haiku",
|
|
220
|
-
"claude-sonnet-4",
|
|
221
|
-
"claude-sonnet-3",
|
|
222
|
-
"claude-opus-3",
|
|
223
|
-
"claude-haiku-3",
|
|
224
|
-
"claude-haiku-4",
|
|
225
|
-
// Additional patterns for compatibility
|
|
226
|
-
"claude-3.5-sonnet",
|
|
227
|
-
"claude-3.5-haiku",
|
|
228
|
-
"claude-4.5-sonnet",
|
|
229
|
-
"claude-4.5-opus",
|
|
230
|
-
"claude-4.5-haiku",
|
|
231
|
-
"claude-haiku-4-5",
|
|
232
|
-
"claude-3.0-sonnet",
|
|
233
|
-
"claude-3.0-opus",
|
|
234
|
-
],
|
|
235
|
-
litellm: [
|
|
236
|
-
// LiteLLM proxies to underlying providers
|
|
237
|
-
// List models that support vision when going through the proxy
|
|
238
|
-
// OpenAI models via LiteLLM
|
|
239
|
-
"openai/gpt-5",
|
|
240
|
-
"openai/gpt-4o",
|
|
241
|
-
"openai/gpt-4o-mini",
|
|
242
|
-
"openai/gpt-4-turbo",
|
|
243
|
-
"gpt-5",
|
|
244
|
-
"gpt-4o",
|
|
245
|
-
"gpt-4.1",
|
|
246
|
-
// Anthropic models via LiteLLM
|
|
247
|
-
"anthropic/claude-sonnet-4-5-20250929",
|
|
248
|
-
"anthropic/claude-opus-4-1-20250805",
|
|
249
|
-
"anthropic/claude-3-5-sonnet-20240620",
|
|
250
|
-
"claude-sonnet-4-5",
|
|
251
|
-
"claude-sonnet-4-5-20250929",
|
|
252
|
-
"claude-opus-4-5",
|
|
253
|
-
"claude-opus-4-5-20251101",
|
|
254
|
-
"claude-haiku-4-5-20251001",
|
|
255
|
-
"claude-sonnet-4",
|
|
256
|
-
"claude-opus-4-1",
|
|
257
|
-
// Gemini models via LiteLLM
|
|
258
|
-
"vertex_ai/gemini-2.5-pro",
|
|
259
|
-
"gemini/gemini-2.5-pro",
|
|
260
|
-
"gemini/gemini-2.0-flash",
|
|
261
|
-
"gemini-3.1-pro-preview",
|
|
262
|
-
"gemini-3-flash-preview",
|
|
263
|
-
"gemini-2.5-pro",
|
|
264
|
-
"gemini-2.5-flash",
|
|
265
|
-
"gemini-2.0-flash-lite",
|
|
266
|
-
// Groq models via LiteLLM (vision)
|
|
267
|
-
"groq/llama-3.2-11b-vision-preview",
|
|
268
|
-
],
|
|
269
|
-
openrouter: [
|
|
270
|
-
// OpenRouter provides access to vision-capable models from multiple providers
|
|
271
|
-
// Anthropic Claude models (via OpenRouter)
|
|
272
|
-
"anthropic/claude-3-5-sonnet",
|
|
273
|
-
"anthropic/claude-3-5-haiku",
|
|
274
|
-
"anthropic/claude-3-opus",
|
|
275
|
-
"anthropic/claude-3-sonnet",
|
|
276
|
-
"anthropic/claude-3-haiku",
|
|
277
|
-
// OpenAI models (via OpenRouter)
|
|
278
|
-
"openai/gpt-4o",
|
|
279
|
-
"openai/gpt-4o-mini",
|
|
280
|
-
"openai/gpt-4-turbo",
|
|
281
|
-
"openai/gpt-4-vision-preview",
|
|
282
|
-
// Google models (via OpenRouter)
|
|
283
|
-
"google/gemini-2.5-pro",
|
|
284
|
-
"google/gemini-2.5-flash",
|
|
285
|
-
"google/gemini-2.0-flash",
|
|
286
|
-
"google/gemini-2.0-flash-001",
|
|
287
|
-
"google/gemini-1.5-pro",
|
|
288
|
-
"google/gemini-1.5-flash",
|
|
289
|
-
"google/gemini-pro-vision",
|
|
290
|
-
// Meta Llama models (vision-capable via OpenRouter)
|
|
291
|
-
"meta-llama/llama-3.2-90b-vision-instruct",
|
|
292
|
-
"meta-llama/llama-3.2-11b-vision-instruct",
|
|
293
|
-
// Pixtral/Mistral models (via OpenRouter)
|
|
294
|
-
"mistralai/pixtral-12b",
|
|
295
|
-
"mistralai/pixtral-large",
|
|
296
|
-
// Qwen models (via OpenRouter)
|
|
297
|
-
"qwen/qwen-2-vl-72b-instruct",
|
|
298
|
-
"qwen/qwen-2-vl-7b-instruct",
|
|
299
|
-
],
|
|
300
|
-
mistral: [
|
|
301
|
-
// Mistral Large (latest has vision via Pixtral integration)
|
|
302
|
-
"mistral-large-latest",
|
|
303
|
-
"mistral-large-2512",
|
|
304
|
-
// Mistral Small 3.2 (vision support for images: PNG, JPEG, WEBP, GIF)
|
|
305
|
-
"mistral-small",
|
|
306
|
-
"mistral-small-latest",
|
|
307
|
-
"mistral-small-3.2",
|
|
308
|
-
"mistral-small-2506",
|
|
309
|
-
// Mistral Medium 3.1 (vision support)
|
|
310
|
-
"mistral-medium",
|
|
311
|
-
"mistral-medium-latest",
|
|
312
|
-
"mistral-medium-3.1",
|
|
313
|
-
"mistral-medium-2508",
|
|
314
|
-
// Magistral models (vision support)
|
|
315
|
-
"magistral-small",
|
|
316
|
-
"magistral-small-latest",
|
|
317
|
-
"magistral-medium",
|
|
318
|
-
"magistral-medium-latest",
|
|
319
|
-
// Pixtral models (specialized vision models)
|
|
320
|
-
"pixtral-12b",
|
|
321
|
-
"pixtral-12b-latest",
|
|
322
|
-
"pixtral-large",
|
|
323
|
-
"pixtral-large-latest",
|
|
324
|
-
"pixtral-large-2502",
|
|
325
|
-
],
|
|
326
|
-
ollama: [
|
|
327
|
-
// Llama 4 family (May 2025 - Best vision + tool calling)
|
|
328
|
-
"llama4:scout",
|
|
329
|
-
"llama4:maverick",
|
|
330
|
-
"llama4:latest",
|
|
331
|
-
"llama4",
|
|
332
|
-
// Llama 3.2 vision variants
|
|
333
|
-
"llama3.2-vision",
|
|
334
|
-
"llama3.2-vision:11b",
|
|
335
|
-
"llama3.2-vision:90b",
|
|
336
|
-
// Gemma 3 family (SigLIP vision encoder - supports tool calling + vision)
|
|
337
|
-
"gemma3",
|
|
338
|
-
"gemma3:4b",
|
|
339
|
-
"gemma3:12b",
|
|
340
|
-
"gemma3:27b",
|
|
341
|
-
"gemma3:latest",
|
|
342
|
-
// Qwen 2.5 VL (Vision-Language)
|
|
343
|
-
"qwen2.5-vl",
|
|
344
|
-
"qwen2.5-vl:72b",
|
|
345
|
-
"qwen2.5-vl:32b",
|
|
346
|
-
// Mistral Small family (vision + tool calling)
|
|
347
|
-
"mistral-small3.1",
|
|
348
|
-
"mistral-small3.1:large",
|
|
349
|
-
"mistral-small3.1:medium",
|
|
350
|
-
"mistral-small3.1:small",
|
|
351
|
-
// LLaVA (vision-focused)
|
|
352
|
-
"llava",
|
|
353
|
-
"llava:7b",
|
|
354
|
-
"llava:13b",
|
|
355
|
-
"llava:34b",
|
|
356
|
-
"llava-llama3",
|
|
357
|
-
"llava-llama3:8b",
|
|
358
|
-
],
|
|
359
|
-
bedrock: [
|
|
360
|
-
// Amazon Nova models (December 2024+) - multimodal vision support
|
|
361
|
-
"amazon.nova-premier",
|
|
362
|
-
"amazon.nova-premier-v1:0",
|
|
363
|
-
"amazon.nova-pro",
|
|
364
|
-
"amazon.nova-pro-v1:0",
|
|
365
|
-
"amazon.nova-lite",
|
|
366
|
-
"amazon.nova-lite-v1:0",
|
|
367
|
-
"amazon.nova-2-lite-v1:0",
|
|
368
|
-
"nova-premier",
|
|
369
|
-
"nova-pro",
|
|
370
|
-
"nova-lite",
|
|
371
|
-
// Claude 4.5 family (supports vision, PDFs, images - September-November 2025)
|
|
372
|
-
"claude-sonnet-4-5",
|
|
373
|
-
"claude-sonnet-4.5",
|
|
374
|
-
"anthropic.claude-sonnet-4-5",
|
|
375
|
-
"anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
376
|
-
"claude-opus-4-5",
|
|
377
|
-
"claude-opus-4.5",
|
|
378
|
-
"anthropic.claude-opus-4-5",
|
|
379
|
-
"anthropic.claude-opus-4-5-20251124-v1:0",
|
|
380
|
-
"claude-haiku-4-5",
|
|
381
|
-
"claude-haiku-4.5",
|
|
382
|
-
"anthropic.claude-haiku-4-5",
|
|
383
|
-
"anthropic.claude-haiku-4-5-20251001-v1:0",
|
|
384
|
-
// Claude 4 family (May 2025)
|
|
385
|
-
"claude-sonnet-4",
|
|
386
|
-
"claude-sonnet-4@",
|
|
387
|
-
"anthropic.claude-sonnet-4",
|
|
388
|
-
"anthropic.claude-sonnet-4-20250514-v1:0",
|
|
389
|
-
"claude-opus-4",
|
|
390
|
-
"claude-opus-4-1",
|
|
391
|
-
"claude-opus-4@",
|
|
392
|
-
"anthropic.claude-opus-4",
|
|
393
|
-
"anthropic.claude-opus-4-1-20250805-v1:0",
|
|
394
|
-
// Claude 3.7 Sonnet
|
|
395
|
-
"claude-3-7-sonnet",
|
|
396
|
-
"claude-3.7-sonnet",
|
|
397
|
-
"anthropic.claude-3-7-sonnet",
|
|
398
|
-
"anthropic.claude-3-7-sonnet-20250219-v1:0",
|
|
399
|
-
// Claude 3.5 Sonnet
|
|
400
|
-
"claude-3-5-sonnet",
|
|
401
|
-
"claude-3.5-sonnet",
|
|
402
|
-
"anthropic.claude-3-5-sonnet",
|
|
403
|
-
"anthropic.claude-3-5-sonnet-20241022-v1:0",
|
|
404
|
-
// Claude 3 Opus
|
|
405
|
-
"claude-3-opus",
|
|
406
|
-
"anthropic.claude-3-opus",
|
|
407
|
-
// Claude 3 Sonnet
|
|
408
|
-
"claude-3-sonnet",
|
|
409
|
-
"anthropic.claude-3-sonnet",
|
|
410
|
-
// Claude 3 Haiku
|
|
411
|
-
"claude-3-haiku",
|
|
412
|
-
"anthropic.claude-3-haiku",
|
|
413
|
-
// Meta Llama 4 models (multimodal vision)
|
|
414
|
-
"meta.llama4-maverick-17b-instruct-v1:0",
|
|
415
|
-
"meta.llama4-scout-17b-instruct-v1:0",
|
|
416
|
-
// Meta Llama 3.2 vision models
|
|
417
|
-
"meta.llama3-2-90b-instruct-v1:0",
|
|
418
|
-
"meta.llama3-2-11b-instruct-v1:0",
|
|
419
|
-
// Mistral Pixtral (multimodal vision)
|
|
420
|
-
"mistral.pixtral-large-2502-v1:0",
|
|
421
|
-
// Generic anthropic.claude prefix (catches all Claude models)
|
|
422
|
-
"anthropic.claude",
|
|
423
|
-
],
|
|
424
|
-
huggingface: [
|
|
425
|
-
// Qwen 2.5 VL (Vision-Language)
|
|
426
|
-
"Qwen/Qwen2.5-VL-32B-Instruct",
|
|
427
|
-
"Qwen/Qwen2.5-VL-7B-Instruct",
|
|
428
|
-
// Microsoft Phi-3 Vision
|
|
429
|
-
"microsoft/Phi-3-vision-128k-instruct",
|
|
430
|
-
// LLaVA variants
|
|
431
|
-
"llava-hf/llava-1.5-7b-hf",
|
|
432
|
-
"llava-hf/llava-v1.6-mistral-7b-hf",
|
|
433
|
-
],
|
|
434
|
-
sagemaker: [
|
|
435
|
-
// Meta Llama 4 vision models
|
|
436
|
-
"meta-llama-4-maverick-17b-128e-instruct",
|
|
437
|
-
"meta-llama-4-scout-17b-16e-instruct",
|
|
438
|
-
],
|
|
439
|
-
};
|
|
440
|
-
/**
|
|
441
|
-
* Provider Image Adapter - Smart routing and formatting
|
|
442
|
-
*/
|
|
443
|
-
export class ProviderImageAdapter {
|
|
444
|
-
// NOTE: The legacy `adaptForProvider` method and its private helpers
|
|
445
|
-
// (formatForOpenAI, formatForGoogleAI, formatForAnthropic, formatForVertex,
|
|
446
|
-
// validateVisionSupport) were removed as dead code. The production image
|
|
447
|
-
// pipeline uses `convertSimpleImagesToProviderFormat` in messageBuilder.ts
|
|
448
|
-
// with Vercel AI SDK's native ImagePart format. Image count limits are
|
|
449
|
-
// enforced via the public `validateImageCount` method below.
|
|
450
|
-
/**
|
|
451
|
-
* Validate image count against provider limits.
|
|
452
|
-
* Warns at 80% threshold, throws error if limit exceeded.
|
|
453
|
-
*/
|
|
454
|
-
static validateImageCount(imageCount, provider, model) {
|
|
455
|
-
const normalizedProvider = provider.toLowerCase();
|
|
456
|
-
let limit;
|
|
457
|
-
// Determine the limit based on provider
|
|
458
|
-
if (normalizedProvider === "vertex" && model) {
|
|
459
|
-
// Vertex has model-specific limits
|
|
460
|
-
if (model.includes("claude")) {
|
|
461
|
-
limit = IMAGE_LIMITS.vertex.claude;
|
|
462
|
-
}
|
|
463
|
-
else if (model.includes("gemini")) {
|
|
464
|
-
limit = IMAGE_LIMITS.vertex.gemini;
|
|
465
|
-
}
|
|
466
|
-
else {
|
|
467
|
-
limit = IMAGE_LIMITS.vertex.default;
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
else {
|
|
471
|
-
// Use provider-specific limit
|
|
472
|
-
const providerLimit = normalizedProvider in IMAGE_LIMITS
|
|
473
|
-
? IMAGE_LIMITS[normalizedProvider]
|
|
474
|
-
: undefined;
|
|
475
|
-
// If provider not found in limits map, use a conservative default
|
|
476
|
-
if (providerLimit === undefined) {
|
|
477
|
-
// Conservative default for unknown providers
|
|
478
|
-
limit = 10;
|
|
479
|
-
logger.warn(`Image count limit not defined for provider ${provider}. Using conservative default of 10 images.`);
|
|
480
|
-
}
|
|
481
|
-
else {
|
|
482
|
-
// providerLimit is always a number when defined (except vertex which is handled separately)
|
|
483
|
-
limit = providerLimit;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
// Warn only once at 80% threshold to avoid noise in batch processing
|
|
487
|
-
const warningThreshold = Math.floor(limit * 0.8);
|
|
488
|
-
if (imageCount === warningThreshold) {
|
|
489
|
-
logger.warn(`Image count (${imageCount}) is approaching the limit for ${provider}. ` +
|
|
490
|
-
`Maximum allowed: ${limit}. Please reduce the number of images.`);
|
|
491
|
-
}
|
|
492
|
-
// Throw error if limit exceeded
|
|
493
|
-
if (imageCount > limit) {
|
|
494
|
-
throw new Error(`Image count (${imageCount}) exceeds the maximum limit for ${provider}. ` +
|
|
495
|
-
`Maximum allowed: ${limit}. Please reduce the number of images.`);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
/**
|
|
499
|
-
* Convert simple images array to advanced content format
|
|
500
|
-
* @param text - Text content to include
|
|
501
|
-
* @param images - Array of images (Buffer, string, or ImageWithAltText)
|
|
502
|
-
*/
|
|
503
|
-
static convertToContent(text, images) {
|
|
504
|
-
const content = [{ type: "text", text }];
|
|
505
|
-
if (images && images.length > 0) {
|
|
506
|
-
images.forEach((image) => {
|
|
507
|
-
// Handle both simple images and images with alt text
|
|
508
|
-
const imageData = typeof image === "object" &&
|
|
509
|
-
"data" in image &&
|
|
510
|
-
!Buffer.isBuffer(image)
|
|
511
|
-
? image.data
|
|
512
|
-
: image;
|
|
513
|
-
const altText = typeof image === "object" &&
|
|
514
|
-
"data" in image &&
|
|
515
|
-
!Buffer.isBuffer(image)
|
|
516
|
-
? image.altText
|
|
517
|
-
: undefined;
|
|
518
|
-
content.push({
|
|
519
|
-
type: "image",
|
|
520
|
-
data: imageData,
|
|
521
|
-
altText,
|
|
522
|
-
mediaType: ImageProcessor.detectImageType(imageData),
|
|
523
|
-
});
|
|
524
|
-
});
|
|
525
|
-
}
|
|
526
|
-
return content;
|
|
527
|
-
}
|
|
528
|
-
/**
|
|
529
|
-
* Check if provider supports multimodal content
|
|
530
|
-
*/
|
|
531
|
-
static supportsVision(provider, model) {
|
|
532
|
-
try {
|
|
533
|
-
const normalizedProvider = normalizeVisionProvider(provider);
|
|
534
|
-
const supportedModels = VISION_CAPABILITIES[normalizedProvider];
|
|
535
|
-
if (!supportedModels) {
|
|
536
|
-
return false;
|
|
537
|
-
}
|
|
538
|
-
if (!model) {
|
|
539
|
-
return true; // Provider supports vision, but need to check specific model
|
|
540
|
-
}
|
|
541
|
-
const modelMatched = supportedModels.some((supportedModel) => model.toLowerCase().includes(supportedModel.toLowerCase()));
|
|
542
|
-
// Proxy providers route to arbitrary underlying models — pass through if
|
|
543
|
-
// the model isn't in the known allowlist.
|
|
544
|
-
if (!modelMatched && PROXY_PROVIDERS.has(normalizedProvider)) {
|
|
545
|
-
return true;
|
|
546
|
-
}
|
|
547
|
-
return modelMatched;
|
|
548
|
-
}
|
|
549
|
-
catch {
|
|
550
|
-
return false;
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
/**
|
|
554
|
-
* Get supported models for a provider
|
|
555
|
-
*/
|
|
556
|
-
static getSupportedModels(provider) {
|
|
557
|
-
const normalizedProvider = provider.toLowerCase();
|
|
558
|
-
const models = VISION_CAPABILITIES[normalizedProvider];
|
|
559
|
-
return models ? [...models] : [];
|
|
560
|
-
}
|
|
561
|
-
/**
|
|
562
|
-
* Get all vision-capable providers
|
|
563
|
-
*/
|
|
564
|
-
static getVisionProviders() {
|
|
565
|
-
return Object.keys(VISION_CAPABILITIES);
|
|
566
|
-
}
|
|
567
|
-
/**
|
|
568
|
-
* Count total "images" in a message (actual images + PDF pages)
|
|
569
|
-
* PDF pages count toward image limits for providers
|
|
570
|
-
*/
|
|
571
|
-
static countImagesInMessage(images, pdfPages) {
|
|
572
|
-
const imageCount = images?.length || 0;
|
|
573
|
-
const pageCount = pdfPages ?? 0;
|
|
574
|
-
return imageCount + pageCount;
|
|
575
|
-
}
|
|
576
|
-
/**
|
|
577
|
-
* Extract page count from PDF metadata array
|
|
578
|
-
* Returns total pages across all PDFs
|
|
579
|
-
*/
|
|
580
|
-
static countImagesInPages(pdfMetadataArray) {
|
|
581
|
-
if (!pdfMetadataArray || pdfMetadataArray.length === 0) {
|
|
582
|
-
return 0;
|
|
583
|
-
}
|
|
584
|
-
return pdfMetadataArray.reduce((total, pdf) => {
|
|
585
|
-
return total + (pdf.pageCount ?? 0);
|
|
586
|
-
}, 0);
|
|
587
|
-
}
|
|
588
|
-
}
|