@juspay/neurolink 9.30.0 → 9.31.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 +14 -0
- package/README.md +2 -3
- package/dist/adapters/providerImageAdapter.js +13 -22
- package/dist/adapters/video/videoAnalyzer.d.ts +4 -4
- package/dist/adapters/video/videoAnalyzer.js +3 -3
- package/dist/agent/directTools.d.ts +20 -289
- package/dist/agent/directTools.js +11 -10
- package/dist/auth/accountPool.d.ts +68 -0
- package/dist/auth/accountPool.js +178 -0
- package/dist/auth/anthropicOAuth.d.ts +15 -5
- package/dist/auth/anthropicOAuth.js +117 -57
- package/dist/auth/index.d.ts +7 -5
- package/dist/auth/index.js +6 -2
- package/dist/auth/tokenStore.d.ts +71 -27
- package/dist/auth/tokenStore.js +342 -64
- package/dist/cli/commands/auth.d.ts +39 -2
- package/dist/cli/commands/auth.js +585 -36
- package/dist/cli/commands/config.d.ts +47 -574
- package/dist/cli/commands/config.js +142 -24
- package/dist/cli/commands/docs.d.ts +1 -5
- package/dist/cli/commands/observability.d.ts +1 -17
- package/dist/cli/commands/ollama.js +1 -1
- package/dist/cli/commands/proxy.d.ts +20 -0
- package/dist/cli/commands/proxy.js +1254 -0
- package/dist/cli/commands/setup-anthropic.js +1 -1
- package/dist/cli/commands/setup-azure.js +1 -1
- package/dist/cli/commands/setup-bedrock.js +2 -2
- package/dist/cli/commands/setup-gcp.js +1 -1
- package/dist/cli/commands/setup-google-ai.js +1 -1
- package/dist/cli/commands/setup-huggingface.js +2 -2
- package/dist/cli/commands/setup-mistral.js +1 -1
- package/dist/cli/commands/setup-openai.js +1 -1
- package/dist/cli/commands/setup.js +3 -3
- package/dist/cli/commands/telemetry.d.ts +1 -22
- package/dist/cli/factories/authCommandFactory.d.ts +16 -11
- package/dist/cli/factories/authCommandFactory.js +96 -1
- package/dist/cli/factories/ollamaCommandFactory.js +1 -1
- package/dist/cli/factories/sagemakerCommandFactory.js +25 -6
- package/dist/cli/index.d.ts +0 -6
- package/dist/cli/index.js +5 -2
- package/dist/cli/loop/conversationSelector.js +7 -2
- package/dist/cli/parser.js +19 -1
- package/dist/cli/utils/envManager.js +2 -2
- package/dist/cli/utils/ollamaUtils.d.ts +1 -2
- package/dist/client/adapters/providerImageAdapter.js +588 -0
- package/dist/client/adapters/tts/googleTTSHandler.js +344 -0
- package/dist/client/adapters/video/directorPipeline.js +516 -0
- package/dist/client/adapters/video/ffmpegAdapter.js +206 -0
- package/dist/client/adapters/video/frameExtractor.js +143 -0
- package/dist/client/adapters/video/vertexVideoHandler.js +763 -0
- package/dist/client/adapters/video/videoAnalyzer.js +238 -0
- package/dist/client/adapters/video/videoMerger.js +171 -0
- package/dist/client/agent/directTools.js +840 -0
- package/dist/client/aiSdkAdapter.d.ts +196 -0
- package/dist/client/aiSdkAdapter.js +487 -0
- package/dist/client/auth/anthropicOAuth.js +974 -0
- package/dist/client/auth/tokenStore.js +799 -0
- package/dist/client/auth.d.ts +248 -0
- package/dist/client/auth.js +473 -0
- package/dist/client/client/aiSdkAdapter.js +487 -0
- package/dist/client/client/auth.js +473 -0
- package/dist/client/client/errors.js +552 -0
- package/dist/client/client/httpClient.js +837 -0
- package/dist/client/client/index.js +172 -0
- package/dist/client/client/interceptors.js +601 -0
- package/dist/client/client/reactHooks.js +1159 -0
- package/dist/client/client/sseClient.js +545 -0
- package/dist/client/client/streamingClient.js +917 -0
- package/dist/client/client/wsClient.js +369 -0
- package/dist/client/config/configManager.js +303 -0
- package/dist/client/config/conversationMemory.js +86 -0
- package/dist/client/config/taskClassificationConfig.js +148 -0
- package/dist/client/constants/contextWindows.js +295 -0
- package/dist/client/constants/enums.js +853 -0
- package/dist/client/constants/index.js +207 -0
- package/dist/client/constants/performance.js +389 -0
- package/dist/client/constants/retry.js +266 -0
- package/dist/client/constants/timeouts.js +182 -0
- package/dist/client/constants/tokens.js +380 -0
- package/dist/client/constants/videoErrors.js +46 -0
- package/dist/client/context/budgetChecker.js +98 -0
- package/dist/client/context/contextCompactor.js +205 -0
- package/dist/client/context/emergencyTruncation.js +88 -0
- package/dist/client/context/errorDetection.js +171 -0
- package/dist/client/context/errors.js +21 -0
- package/dist/client/context/fileTokenBudget.js +127 -0
- package/dist/client/context/prompts/summarizationPrompt.js +117 -0
- package/dist/client/context/stages/fileReadDeduplicator.js +66 -0
- package/dist/client/context/stages/slidingWindowTruncator.js +190 -0
- package/dist/client/context/stages/structuredSummarizer.js +99 -0
- package/dist/client/context/stages/toolOutputPruner.js +52 -0
- package/dist/client/context/summarizationEngine.js +136 -0
- package/dist/client/context/toolOutputLimits.js +78 -0
- package/dist/client/context/toolPairRepair.js +66 -0
- package/dist/client/core/analytics.js +88 -0
- package/dist/client/core/baseProvider.js +1385 -0
- package/dist/client/core/constants.js +140 -0
- package/dist/client/core/conversationMemoryFactory.js +141 -0
- package/dist/client/core/conversationMemoryInitializer.js +128 -0
- package/dist/client/core/conversationMemoryManager.js +344 -0
- package/dist/client/core/dynamicModels.js +358 -0
- package/dist/client/core/evaluation.js +309 -0
- package/dist/client/core/evaluationProviders.js +248 -0
- package/dist/client/core/factory.js +412 -0
- package/dist/client/core/infrastructure/baseError.js +22 -0
- package/dist/client/core/infrastructure/baseFactory.js +54 -0
- package/dist/client/core/infrastructure/baseRegistry.js +49 -0
- package/dist/client/core/infrastructure/index.js +5 -0
- package/dist/client/core/infrastructure/retry.js +20 -0
- package/dist/client/core/infrastructure/typedEventEmitter.js +23 -0
- package/dist/client/core/modelConfiguration.js +851 -0
- package/dist/client/core/modules/GenerationHandler.js +588 -0
- package/dist/client/core/modules/MessageBuilder.js +273 -0
- package/dist/client/core/modules/StreamHandler.js +185 -0
- package/dist/client/core/modules/TelemetryHandler.js +203 -0
- package/dist/client/core/modules/ToolsManager.js +499 -0
- package/dist/client/core/modules/Utilities.js +331 -0
- package/dist/client/core/redisConversationMemoryManager.js +1435 -0
- package/dist/client/core/streamAnalytics.js +131 -0
- package/dist/client/errors.d.ts +299 -0
- package/dist/client/errors.js +552 -0
- package/dist/client/evaluation/contextBuilder.js +134 -0
- package/dist/client/evaluation/index.js +61 -0
- package/dist/client/evaluation/prompts.js +73 -0
- package/dist/client/evaluation/ragasEvaluator.js +110 -0
- package/dist/client/evaluation/retryManager.js +78 -0
- package/dist/client/evaluation/scoring.js +61 -0
- package/dist/client/factories/providerFactory.js +166 -0
- package/dist/client/factories/providerRegistry.js +166 -0
- package/dist/client/features/ppt/constants.js +896 -0
- package/dist/client/features/ppt/contentPlanner.js +529 -0
- package/dist/client/features/ppt/presentationOrchestrator.js +236 -0
- package/dist/client/features/ppt/slideGenerator.js +532 -0
- package/dist/client/features/ppt/slideRenderers.js +2383 -0
- package/dist/client/features/ppt/slideTypeInference.js +405 -0
- package/dist/client/features/ppt/types.js +13 -0
- package/dist/client/features/ppt/utils.js +443 -0
- package/dist/client/files/fileReferenceRegistry.js +1543 -0
- package/dist/client/files/fileTools.js +450 -0
- package/dist/client/files/streamingReader.js +321 -0
- package/dist/client/files/types.js +23 -0
- package/dist/client/hitl/hitlErrors.js +54 -0
- package/dist/client/hitl/hitlManager.js +460 -0
- package/dist/client/httpClient.d.ts +297 -0
- package/dist/client/httpClient.js +837 -0
- package/dist/client/index.d.ts +111 -0
- package/dist/client/index.js +511 -0
- package/dist/client/interceptors.d.ts +283 -0
- package/dist/client/interceptors.js +601 -0
- package/dist/client/mcp/agentExposure.js +356 -0
- package/dist/client/mcp/auth/index.js +11 -0
- package/dist/client/mcp/auth/oauthClientProvider.js +325 -0
- package/dist/client/mcp/auth/tokenStorage.js +134 -0
- package/dist/client/mcp/batching/index.js +10 -0
- package/dist/client/mcp/batching/requestBatcher.js +441 -0
- package/dist/client/mcp/caching/index.js +10 -0
- package/dist/client/mcp/caching/toolCache.js +433 -0
- package/dist/client/mcp/elicitation/elicitationManager.js +376 -0
- package/dist/client/mcp/elicitation/index.js +11 -0
- package/dist/client/mcp/elicitation/types.js +10 -0
- package/dist/client/mcp/elicitationProtocol.js +375 -0
- package/dist/client/mcp/enhancedToolDiscovery.js +481 -0
- package/dist/client/mcp/externalServerManager.js +1478 -0
- package/dist/client/mcp/factory.js +161 -0
- package/dist/client/mcp/flexibleToolValidator.js +161 -0
- package/dist/client/mcp/httpRateLimiter.js +391 -0
- package/dist/client/mcp/httpRetryHandler.js +178 -0
- package/dist/client/mcp/index.js +74 -0
- package/dist/client/mcp/mcpCircuitBreaker.js +427 -0
- package/dist/client/mcp/mcpClientFactory.js +708 -0
- package/dist/client/mcp/mcpRegistryClient.js +488 -0
- package/dist/client/mcp/mcpServerBase.js +373 -0
- package/dist/client/mcp/multiServerManager.js +579 -0
- package/dist/client/mcp/registry.js +158 -0
- package/dist/client/mcp/routing/index.js +10 -0
- package/dist/client/mcp/routing/toolRouter.js +416 -0
- package/dist/client/mcp/serverCapabilities.js +502 -0
- package/dist/client/mcp/servers/agent/directToolsServer.js +150 -0
- package/dist/client/mcp/toolAnnotations.js +239 -0
- package/dist/client/mcp/toolConverter.js +258 -0
- package/dist/client/mcp/toolDiscoveryService.js +798 -0
- package/dist/client/mcp/toolIntegration.js +334 -0
- package/dist/client/mcp/toolRegistry.js +719 -0
- package/dist/client/memory/hippocampusInitializer.js +19 -0
- package/dist/client/memory/memoryRetrievalTools.js +166 -0
- package/dist/client/middleware/builtin/analytics.js +132 -0
- package/dist/client/middleware/builtin/autoEvaluation.js +203 -0
- package/dist/client/middleware/builtin/guardrails.js +109 -0
- package/dist/client/middleware/builtin/lifecycle.js +168 -0
- package/dist/client/middleware/factory.js +327 -0
- package/dist/client/middleware/registry.js +295 -0
- package/dist/client/middleware/utils/guardrailsUtils.js +396 -0
- package/dist/client/models/anthropicModels.js +527 -0
- package/dist/client/neurolink.js +8015 -0
- package/dist/client/observability/exporterRegistry.js +413 -0
- package/dist/client/observability/exporters/arizeExporter.js +138 -0
- package/dist/client/observability/exporters/baseExporter.js +190 -0
- package/dist/client/observability/exporters/braintrustExporter.js +154 -0
- package/dist/client/observability/exporters/datadogExporter.js +196 -0
- package/dist/client/observability/exporters/laminarExporter.js +302 -0
- package/dist/client/observability/exporters/langfuseExporter.js +209 -0
- package/dist/client/observability/exporters/langsmithExporter.js +143 -0
- package/dist/client/observability/exporters/otelExporter.js +164 -0
- package/dist/client/observability/exporters/posthogExporter.js +287 -0
- package/dist/client/observability/exporters/sentryExporter.js +165 -0
- package/dist/client/observability/index.js +31 -0
- package/dist/client/observability/metricsAggregator.js +556 -0
- package/dist/client/observability/otelBridge.js +131 -0
- package/dist/client/observability/retryPolicy.js +383 -0
- package/dist/client/observability/sampling/samplers.js +216 -0
- package/dist/client/observability/spanProcessor.js +303 -0
- package/dist/client/observability/tokenTracker.js +413 -0
- package/dist/client/observability/types/exporterTypes.js +5 -0
- package/dist/client/observability/types/index.js +4 -0
- package/dist/client/observability/types/spanTypes.js +92 -0
- package/dist/client/observability/utils/safeMetadata.js +25 -0
- package/dist/client/observability/utils/spanSerializer.js +292 -0
- package/dist/client/processors/archive/ArchiveProcessor.js +1308 -0
- package/dist/client/processors/base/BaseFileProcessor.js +614 -0
- package/dist/client/processors/base/types.js +82 -0
- package/dist/client/processors/config/fileTypes.js +520 -0
- package/dist/client/processors/config/index.js +92 -0
- package/dist/client/processors/config/languageMap.js +410 -0
- package/dist/client/processors/config/mimeTypes.js +363 -0
- package/dist/client/processors/config/sizeLimits.js +258 -0
- package/dist/client/processors/document/ExcelProcessor.js +590 -0
- package/dist/client/processors/document/OpenDocumentProcessor.js +212 -0
- package/dist/client/processors/document/PptxProcessor.js +157 -0
- package/dist/client/processors/document/RtfProcessor.js +361 -0
- package/dist/client/processors/document/WordProcessor.js +353 -0
- package/dist/client/processors/errors/FileErrorCode.js +255 -0
- package/dist/client/processors/errors/errorHelpers.js +386 -0
- package/dist/client/processors/errors/errorSerializer.js +507 -0
- package/dist/client/processors/errors/index.js +49 -0
- package/dist/client/processors/markup/SvgProcessor.js +240 -0
- package/dist/client/processors/media/AudioProcessor.js +707 -0
- package/dist/client/processors/media/VideoProcessor.js +1045 -0
- package/dist/client/providers/amazonBedrock.js +1512 -0
- package/dist/client/providers/amazonSagemaker.js +162 -0
- package/dist/client/providers/anthropic.js +831 -0
- package/dist/client/providers/azureOpenai.js +143 -0
- package/dist/client/providers/googleAiStudio.js +1200 -0
- package/dist/client/providers/googleNativeGemini3.js +543 -0
- package/dist/client/providers/googleVertex.js +2936 -0
- package/dist/client/providers/huggingFace.js +315 -0
- package/dist/client/providers/litellm.js +488 -0
- package/dist/client/providers/mistral.js +157 -0
- package/dist/client/providers/ollama.js +1579 -0
- package/dist/client/providers/openAI.js +627 -0
- package/dist/client/providers/openRouter.js +543 -0
- package/dist/client/providers/openaiCompatible.js +290 -0
- package/dist/client/providers/providerTypeUtils.js +46 -0
- package/dist/client/providers/sagemaker/adaptive-semaphore.js +215 -0
- package/dist/client/providers/sagemaker/client.js +472 -0
- package/dist/client/providers/sagemaker/config.js +317 -0
- package/dist/client/providers/sagemaker/detection.js +606 -0
- package/dist/client/providers/sagemaker/error-constants.js +227 -0
- package/dist/client/providers/sagemaker/errors.js +299 -0
- package/dist/client/providers/sagemaker/language-model.js +775 -0
- package/dist/client/providers/sagemaker/parsers.js +634 -0
- package/dist/client/providers/sagemaker/streaming.js +331 -0
- package/dist/client/providers/sagemaker/structured-parser.js +625 -0
- package/dist/client/proxy/accountQuota.js +162 -0
- package/dist/client/proxy/claudeFormat.js +595 -0
- package/dist/client/proxy/modelRouter.js +29 -0
- package/dist/client/proxy/oauthFetch.js +367 -0
- package/dist/client/proxy/proxyFetch.js +586 -0
- package/dist/client/proxy/requestLogger.js +207 -0
- package/dist/client/proxy/tokenRefresh.js +124 -0
- package/dist/client/proxy/usageStats.js +74 -0
- package/dist/client/proxy/utils/noProxyUtils.js +149 -0
- package/dist/client/rag/ChunkerFactory.js +320 -0
- package/dist/client/rag/ChunkerRegistry.js +421 -0
- package/dist/client/rag/chunkers/BaseChunker.js +143 -0
- package/dist/client/rag/chunkers/CharacterChunker.js +28 -0
- package/dist/client/rag/chunkers/HTMLChunker.js +38 -0
- package/dist/client/rag/chunkers/JSONChunker.js +68 -0
- package/dist/client/rag/chunkers/LaTeXChunker.js +63 -0
- package/dist/client/rag/chunkers/MarkdownChunker.js +306 -0
- package/dist/client/rag/chunkers/RecursiveChunker.js +139 -0
- package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +138 -0
- package/dist/client/rag/chunkers/SentenceChunker.js +66 -0
- package/dist/client/rag/chunkers/TokenChunker.js +61 -0
- package/dist/client/rag/chunkers/index.js +15 -0
- package/dist/client/rag/chunking/characterChunker.js +142 -0
- package/dist/client/rag/chunking/chunkerRegistry.js +194 -0
- package/dist/client/rag/chunking/htmlChunker.js +247 -0
- package/dist/client/rag/chunking/index.js +17 -0
- package/dist/client/rag/chunking/jsonChunker.js +281 -0
- package/dist/client/rag/chunking/latexChunker.js +251 -0
- package/dist/client/rag/chunking/markdownChunker.js +373 -0
- package/dist/client/rag/chunking/recursiveChunker.js +148 -0
- package/dist/client/rag/chunking/semanticChunker.js +306 -0
- package/dist/client/rag/chunking/sentenceChunker.js +230 -0
- package/dist/client/rag/chunking/tokenChunker.js +183 -0
- package/dist/client/rag/document/MDocument.js +392 -0
- package/dist/client/rag/document/index.js +5 -0
- package/dist/client/rag/document/loaders.js +500 -0
- package/dist/client/rag/errors/RAGError.js +274 -0
- package/dist/client/rag/errors/index.js +6 -0
- package/dist/client/rag/graphRag/graphRAG.js +401 -0
- package/dist/client/rag/graphRag/index.js +4 -0
- package/dist/client/rag/index.js +141 -0
- package/dist/client/rag/metadata/MetadataExtractorFactory.js +418 -0
- package/dist/client/rag/metadata/MetadataExtractorRegistry.js +362 -0
- package/dist/client/rag/metadata/index.js +9 -0
- package/dist/client/rag/metadata/metadataExtractor.js +280 -0
- package/dist/client/rag/pipeline/RAGPipeline.js +436 -0
- package/dist/client/rag/pipeline/contextAssembly.js +341 -0
- package/dist/client/rag/pipeline/index.js +5 -0
- package/dist/client/rag/ragIntegration.js +321 -0
- package/dist/client/rag/reranker/RerankerFactory.js +430 -0
- package/dist/client/rag/reranker/RerankerRegistry.js +402 -0
- package/dist/client/rag/reranker/index.js +9 -0
- package/dist/client/rag/reranker/reranker.js +277 -0
- package/dist/client/rag/resilience/CircuitBreaker.js +431 -0
- package/dist/client/rag/resilience/RetryHandler.js +304 -0
- package/dist/client/rag/resilience/index.js +7 -0
- package/dist/client/rag/retrieval/hybridSearch.js +335 -0
- package/dist/client/rag/retrieval/index.js +5 -0
- package/dist/client/rag/retrieval/vectorQueryTool.js +307 -0
- package/dist/client/rag/types.js +8 -0
- package/dist/client/reactHooks.d.ts +239 -0
- package/dist/client/reactHooks.tsx +1483 -0
- package/dist/client/sdk/toolRegistration.js +377 -0
- package/dist/client/server/abstract/baseServerAdapter.js +575 -0
- package/dist/client/server/adapters/expressAdapter.js +486 -0
- package/dist/client/server/adapters/fastifyAdapter.js +472 -0
- package/dist/client/server/adapters/honoAdapter.js +632 -0
- package/dist/client/server/adapters/koaAdapter.js +510 -0
- package/dist/client/server/errors.js +486 -0
- package/dist/client/server/factory/serverAdapterFactory.js +160 -0
- package/dist/client/server/index.js +108 -0
- package/dist/client/server/middleware/abortSignal.js +111 -0
- package/dist/client/server/middleware/auth.js +388 -0
- package/dist/client/server/middleware/cache.js +359 -0
- package/dist/client/server/middleware/common.js +281 -0
- package/dist/client/server/middleware/deprecation.js +190 -0
- package/dist/client/server/middleware/mcpBodyAttachment.js +63 -0
- package/dist/client/server/middleware/rateLimit.js +227 -0
- package/dist/client/server/middleware/validation.js +388 -0
- package/dist/client/server/openapi/generator.js +398 -0
- package/dist/client/server/openapi/index.js +36 -0
- package/dist/client/server/openapi/schemas.js +695 -0
- package/dist/client/server/openapi/templates.js +374 -0
- package/dist/client/server/routes/agentRoutes.js +171 -0
- package/dist/client/server/routes/claudeProxyRoutes.js +1600 -0
- package/dist/client/server/routes/healthRoutes.js +187 -0
- package/dist/client/server/routes/index.js +57 -0
- package/dist/client/server/routes/mcpRoutes.js +342 -0
- package/dist/client/server/routes/memoryRoutes.js +350 -0
- package/dist/client/server/routes/openApiRoutes.js +126 -0
- package/dist/client/server/routes/toolRoutes.js +199 -0
- package/dist/client/server/streaming/dataStream.js +486 -0
- package/dist/client/server/streaming/index.js +11 -0
- package/dist/client/server/types.js +67 -0
- package/dist/client/server/utils/redaction.js +334 -0
- package/dist/client/server/utils/validation.js +243 -0
- package/dist/client/server/websocket/WebSocketHandler.js +383 -0
- package/dist/client/server/websocket/index.js +4 -0
- package/dist/client/services/server/ai/observability/instrumentation.js +808 -0
- package/dist/client/sseClient.d.ts +156 -0
- package/dist/client/sseClient.js +545 -0
- package/dist/client/streamingClient.d.ts +327 -0
- package/dist/client/streamingClient.js +917 -0
- package/dist/client/telemetry/attributes.js +100 -0
- package/dist/client/telemetry/index.js +26 -0
- package/dist/client/telemetry/telemetryService.js +308 -0
- package/dist/client/telemetry/tracers.js +17 -0
- package/dist/client/telemetry/withSpan.js +34 -0
- package/dist/client/types/actionTypes.js +6 -0
- package/dist/client/types/analytics.js +5 -0
- package/dist/client/types/authTypes.js +8 -0
- package/dist/client/types/circuitBreakerErrors.js +34 -0
- package/dist/client/types/cli.js +21 -0
- package/dist/client/types/clientTypes.js +10 -0
- package/dist/client/types/common.js +51 -0
- package/dist/client/types/configTypes.js +49 -0
- package/dist/client/types/content.js +19 -0
- package/dist/client/types/contextTypes.js +400 -0
- package/dist/client/types/conversation.js +47 -0
- package/dist/client/types/conversationMemoryInterface.js +6 -0
- package/dist/client/types/domainTypes.js +5 -0
- package/dist/client/types/errors.js +167 -0
- package/dist/client/types/evaluation.js +5 -0
- package/dist/client/types/evaluationProviders.js +5 -0
- package/dist/client/types/evaluationTypes.js +1 -0
- package/dist/client/types/externalMcp.js +6 -0
- package/dist/client/types/fileReferenceTypes.js +8 -0
- package/dist/client/types/fileTypes.js +4 -0
- package/dist/client/types/generateTypes.js +1 -0
- package/dist/client/types/guardrails.js +1 -0
- package/dist/client/types/hitlTypes.js +8 -0
- package/dist/client/types/index.js +57 -0
- package/dist/client/types/mcpTypes.js +5 -0
- package/dist/client/types/middlewareTypes.js +1 -0
- package/dist/client/types/modelTypes.js +30 -0
- package/dist/client/types/multimodal.js +135 -0
- package/dist/client/types/observability.js +6 -0
- package/dist/client/types/pptTypes.js +82 -0
- package/dist/client/types/providers.js +111 -0
- package/dist/client/types/proxyTypes.js +16 -0
- package/dist/client/types/ragTypes.js +7 -0
- package/dist/client/types/sdkTypes.js +8 -0
- package/dist/client/types/serviceTypes.js +5 -0
- package/dist/client/types/streamTypes.js +1 -0
- package/dist/client/types/subscriptionTypes.js +9 -0
- package/dist/client/types/taskClassificationTypes.js +5 -0
- package/dist/client/types/tools.js +24 -0
- package/dist/client/types/ttsTypes.js +57 -0
- package/dist/client/types/typeAliases.js +48 -0
- package/dist/client/types/utilities.js +4 -0
- package/dist/client/types/workflowTypes.js +30 -0
- package/dist/client/utils/async/withTimeout.js +98 -0
- package/dist/client/utils/asyncMutex.js +60 -0
- package/dist/client/utils/conversationMemory.js +431 -0
- package/dist/client/utils/csvProcessor.js +846 -0
- package/dist/client/utils/errorHandling.js +936 -0
- package/dist/client/utils/evaluationUtils.js +131 -0
- package/dist/client/utils/factoryProcessing.js +589 -0
- package/dist/client/utils/fileDetector.js +2161 -0
- package/dist/client/utils/imageCache.js +376 -0
- package/dist/client/utils/imageProcessor.js +704 -0
- package/dist/client/utils/logger.js +491 -0
- package/dist/client/utils/mcpDefaults.js +134 -0
- package/dist/client/utils/messageBuilder.js +1653 -0
- package/dist/client/utils/modelAliasResolver.js +54 -0
- package/dist/client/utils/modelDetection.js +80 -0
- package/dist/client/utils/modelRouter.js +292 -0
- package/dist/client/utils/multimodalOptionsBuilder.js +65 -0
- package/dist/client/utils/observabilityHelpers.js +47 -0
- package/dist/client/utils/parameterValidation.js +966 -0
- package/dist/client/utils/pdfProcessor.js +410 -0
- package/dist/client/utils/performance.js +222 -0
- package/dist/client/utils/pricing.js +340 -0
- package/dist/client/utils/promptRedaction.js +62 -0
- package/dist/client/utils/providerConfig.js +1009 -0
- package/dist/client/utils/providerHealth.js +1237 -0
- package/dist/client/utils/providerRetry.js +112 -0
- package/dist/client/utils/providerUtils.js +434 -0
- package/dist/client/utils/rateLimiter.js +200 -0
- package/dist/client/utils/redis.js +368 -0
- package/dist/client/utils/retryHandler.js +269 -0
- package/dist/client/utils/retryability.js +22 -0
- package/dist/client/utils/sanitizers/svg.js +481 -0
- package/dist/client/utils/schemaConversion.js +255 -0
- package/dist/client/utils/taskClassificationUtils.js +149 -0
- package/dist/client/utils/taskClassifier.js +94 -0
- package/dist/client/utils/thinkingConfig.js +104 -0
- package/dist/client/utils/timeout.js +359 -0
- package/dist/client/utils/tokenEstimation.js +142 -0
- package/dist/client/utils/tokenLimits.js +125 -0
- package/dist/client/utils/tokenUtils.js +239 -0
- package/dist/client/utils/toolUtils.js +75 -0
- package/dist/client/utils/transformationUtils.js +554 -0
- package/dist/client/utils/ttsProcessor.js +286 -0
- package/dist/client/utils/typeUtils.js +97 -0
- package/dist/client/utils/videoAnalysisProcessor.js +67 -0
- package/dist/client/workflow/config.js +398 -0
- package/dist/client/workflow/core/ensembleExecutor.js +407 -0
- package/dist/client/workflow/core/judgeScorer.js +544 -0
- package/dist/client/workflow/core/responseConditioner.js +225 -0
- package/dist/client/workflow/core/types/conditionerTypes.js +7 -0
- package/dist/client/workflow/core/types/ensembleTypes.js +7 -0
- package/dist/client/workflow/core/types/index.js +7 -0
- package/dist/client/workflow/core/types/judgeTypes.js +7 -0
- package/dist/client/workflow/core/types/layerTypes.js +7 -0
- package/dist/client/workflow/core/types/registryTypes.js +7 -0
- package/dist/client/workflow/core/workflowRegistry.js +304 -0
- package/dist/client/workflow/core/workflowRunner.js +586 -0
- package/dist/client/workflow/index.js +50 -0
- package/dist/client/workflow/types.js +9 -0
- package/dist/client/workflow/utils/types/index.js +7 -0
- package/dist/client/workflow/utils/workflowMetrics.js +311 -0
- package/dist/client/workflow/utils/workflowValidation.js +420 -0
- package/dist/client/workflow/workflows/adaptiveWorkflow.js +366 -0
- package/dist/client/workflow/workflows/consensusWorkflow.js +192 -0
- package/dist/client/workflow/workflows/fallbackWorkflow.js +225 -0
- package/dist/client/workflow/workflows/multiJudgeWorkflow.js +351 -0
- package/dist/client/wsClient.d.ts +130 -0
- package/dist/client/wsClient.js +369 -0
- package/dist/config/configManager.js +2 -2
- package/dist/constants/contextWindows.js +15 -13
- package/dist/constants/enums.d.ts +10 -16
- package/dist/constants/enums.js +12 -18
- package/dist/constants/index.d.ts +0 -10
- package/dist/constants/index.js +1 -1
- package/dist/constants/tokens.d.ts +29 -16
- package/dist/constants/tokens.js +23 -16
- package/dist/core/baseProvider.d.ts +5 -5
- package/dist/core/baseProvider.js +6 -6
- package/dist/core/constants.js +6 -1
- package/dist/core/dynamicModels.js +10 -6
- package/dist/core/evaluationProviders.js +1 -1
- package/dist/core/infrastructure/baseError.d.ts +1 -1
- package/dist/core/infrastructure/baseFactory.d.ts +1 -6
- package/dist/core/infrastructure/baseRegistry.d.ts +6 -5
- package/dist/core/infrastructure/index.d.ts +6 -4
- package/dist/core/infrastructure/index.js +2 -2
- package/dist/core/modelConfiguration.js +3 -1
- package/dist/core/modules/GenerationHandler.d.ts +3 -3
- package/dist/core/modules/GenerationHandler.js +49 -41
- package/dist/core/modules/MessageBuilder.d.ts +5 -5
- package/dist/core/modules/MessageBuilder.js +4 -6
- package/dist/core/modules/StreamHandler.js +26 -12
- package/dist/core/modules/TelemetryHandler.d.ts +4 -6
- package/dist/core/modules/TelemetryHandler.js +7 -6
- package/dist/core/modules/ToolsManager.d.ts +2 -12
- package/dist/core/modules/ToolsManager.js +20 -4
- package/dist/core/modules/Utilities.js +3 -1
- package/dist/core/redisConversationMemoryManager.js +3 -3
- package/dist/core/streamAnalytics.js +23 -9
- package/dist/evaluation/contextBuilder.d.ts +2 -2
- package/dist/evaluation/contextBuilder.js +2 -2
- package/dist/evaluation/index.d.ts +2 -2
- package/dist/evaluation/retryManager.js +1 -1
- package/dist/factories/providerFactory.js +2 -2
- package/dist/features/ppt/constants.js +1 -1
- package/dist/features/ppt/presentationOrchestrator.js +7 -3
- package/dist/features/ppt/slideGenerator.d.ts +2 -1
- package/dist/features/ppt/slideGenerator.js +6 -1
- package/dist/files/fileTools.d.ts +16 -247
- package/dist/files/fileTools.js +16 -15
- package/dist/index.d.ts +5 -3
- package/dist/index.js +20 -3
- package/dist/lib/adapters/providerImageAdapter.js +13 -22
- package/dist/lib/adapters/video/videoAnalyzer.d.ts +4 -4
- package/dist/lib/adapters/video/videoAnalyzer.js +3 -3
- package/dist/lib/agent/directTools.d.ts +20 -289
- package/dist/lib/agent/directTools.js +11 -10
- package/dist/lib/auth/accountPool.d.ts +68 -0
- package/dist/lib/auth/accountPool.js +179 -0
- package/dist/lib/auth/anthropicOAuth.d.ts +15 -5
- package/dist/lib/auth/anthropicOAuth.js +117 -57
- package/dist/lib/auth/index.d.ts +7 -5
- package/dist/lib/auth/index.js +6 -2
- package/dist/lib/auth/tokenStore.d.ts +71 -27
- package/dist/lib/auth/tokenStore.js +342 -64
- package/dist/lib/client/aiSdkAdapter.d.ts +196 -0
- package/dist/lib/client/aiSdkAdapter.js +488 -0
- package/dist/lib/client/auth.d.ts +248 -0
- package/dist/lib/client/auth.js +474 -0
- package/dist/lib/client/errors.d.ts +299 -0
- package/dist/lib/client/errors.js +553 -0
- package/dist/lib/client/httpClient.d.ts +297 -0
- package/dist/lib/client/httpClient.js +838 -0
- package/dist/lib/client/index.d.ts +111 -0
- package/dist/lib/client/index.js +173 -0
- package/dist/lib/client/interceptors.d.ts +283 -0
- package/dist/lib/client/interceptors.js +602 -0
- package/dist/lib/client/reactHooks.d.ts +239 -0
- package/dist/lib/client/reactHooks.js +1160 -0
- package/dist/lib/client/sseClient.d.ts +156 -0
- package/dist/lib/client/sseClient.js +546 -0
- package/dist/lib/client/streamingClient.d.ts +327 -0
- package/dist/lib/client/streamingClient.js +918 -0
- package/dist/lib/client/wsClient.d.ts +130 -0
- package/dist/lib/client/wsClient.js +370 -0
- package/dist/lib/config/configManager.js +2 -2
- package/dist/lib/constants/contextWindows.js +15 -13
- package/dist/lib/constants/enums.d.ts +10 -16
- package/dist/lib/constants/enums.js +12 -18
- package/dist/lib/constants/index.d.ts +0 -10
- package/dist/lib/constants/index.js +1 -1
- package/dist/lib/constants/tokens.d.ts +29 -16
- package/dist/lib/constants/tokens.js +23 -16
- package/dist/lib/core/baseProvider.d.ts +5 -5
- package/dist/lib/core/baseProvider.js +6 -6
- package/dist/lib/core/constants.js +6 -1
- package/dist/lib/core/dynamicModels.js +10 -6
- package/dist/lib/core/evaluationProviders.js +1 -1
- package/dist/lib/core/infrastructure/baseError.d.ts +1 -1
- package/dist/lib/core/infrastructure/baseFactory.d.ts +1 -6
- package/dist/lib/core/infrastructure/baseRegistry.d.ts +6 -5
- package/dist/lib/core/infrastructure/index.d.ts +6 -4
- package/dist/lib/core/infrastructure/index.js +2 -2
- package/dist/lib/core/modelConfiguration.js +3 -1
- package/dist/lib/core/modules/GenerationHandler.d.ts +3 -3
- package/dist/lib/core/modules/GenerationHandler.js +49 -41
- package/dist/lib/core/modules/MessageBuilder.d.ts +5 -5
- package/dist/lib/core/modules/MessageBuilder.js +4 -6
- package/dist/lib/core/modules/StreamHandler.js +26 -12
- package/dist/lib/core/modules/TelemetryHandler.d.ts +4 -6
- package/dist/lib/core/modules/TelemetryHandler.js +7 -6
- package/dist/lib/core/modules/ToolsManager.d.ts +2 -12
- package/dist/lib/core/modules/ToolsManager.js +20 -4
- package/dist/lib/core/modules/Utilities.js +3 -1
- package/dist/lib/core/redisConversationMemoryManager.js +3 -3
- package/dist/lib/core/streamAnalytics.js +23 -9
- package/dist/lib/evaluation/contextBuilder.d.ts +2 -2
- package/dist/lib/evaluation/contextBuilder.js +2 -2
- package/dist/lib/evaluation/index.d.ts +2 -2
- package/dist/lib/evaluation/retryManager.js +1 -1
- package/dist/lib/factories/providerFactory.js +2 -2
- package/dist/lib/features/ppt/constants.js +1 -1
- package/dist/lib/features/ppt/presentationOrchestrator.js +7 -3
- package/dist/lib/features/ppt/slideGenerator.d.ts +2 -1
- package/dist/lib/features/ppt/slideGenerator.js +6 -1
- package/dist/lib/files/fileTools.d.ts +16 -247
- package/dist/lib/files/fileTools.js +16 -15
- package/dist/lib/index.d.ts +5 -3
- package/dist/lib/index.js +20 -3
- package/dist/lib/mcp/batching/requestBatcher.js +1 -1
- package/dist/lib/mcp/externalServerManager.js +5 -2
- package/dist/lib/mcp/factory.js +1 -1
- package/dist/lib/mcp/index.d.ts +1 -1
- package/dist/lib/mcp/index.js +1 -1
- package/dist/lib/mcp/mcpCircuitBreaker.d.ts +1 -0
- package/dist/lib/mcp/mcpCircuitBreaker.js +30 -4
- package/dist/lib/mcp/mcpClientFactory.js +33 -4
- package/dist/lib/mcp/toolDiscoveryService.js +52 -5
- package/dist/lib/mcp/toolRegistry.js +7 -1
- package/dist/lib/memory/memoryRetrievalTools.d.ts +5 -89
- package/dist/lib/memory/memoryRetrievalTools.js +1 -1
- package/dist/lib/middleware/builtin/analytics.js +3 -0
- package/dist/lib/middleware/builtin/autoEvaluation.js +46 -24
- package/dist/lib/middleware/builtin/guardrails.js +4 -0
- package/dist/lib/middleware/builtin/lifecycle.js +10 -6
- package/dist/lib/middleware/factory.d.ts +3 -3
- package/dist/lib/middleware/factory.js +3 -2
- package/dist/lib/middleware/index.d.ts +1 -1
- package/dist/lib/middleware/registry.d.ts +2 -2
- package/dist/lib/middleware/registry.js +1 -0
- package/dist/lib/middleware/utils/guardrailsUtils.d.ts +5 -6
- package/dist/lib/middleware/utils/guardrailsUtils.js +15 -6
- package/dist/lib/neurolink.d.ts +9 -20
- package/dist/lib/neurolink.js +278 -186
- package/dist/lib/observability/retryPolicy.d.ts +2 -13
- package/dist/lib/observability/sampling/samplers.d.ts +2 -11
- package/dist/lib/observability/spanProcessor.d.ts +2 -14
- package/dist/lib/processors/base/BaseFileProcessor.js +1 -1
- package/dist/lib/processors/document/OpenDocumentProcessor.js +5 -3
- package/dist/lib/processors/media/VideoProcessor.js +157 -101
- package/dist/lib/providers/amazonBedrock.js +12 -5
- package/dist/lib/providers/amazonSagemaker.d.ts +5 -5
- package/dist/lib/providers/amazonSagemaker.js +6 -2
- package/dist/lib/providers/anthropic.d.ts +3 -3
- package/dist/lib/providers/anthropic.js +23 -192
- package/dist/lib/providers/anthropicBaseProvider.d.ts +4 -4
- package/dist/lib/providers/anthropicBaseProvider.js +24 -13
- package/dist/lib/providers/azureOpenai.d.ts +2 -2
- package/dist/lib/providers/azureOpenai.js +6 -6
- package/dist/lib/providers/googleAiStudio.d.ts +2 -2
- package/dist/lib/providers/googleAiStudio.js +15 -7
- package/dist/lib/providers/googleNativeGemini3.d.ts +3 -54
- package/dist/lib/providers/googleNativeGemini3.js +14 -10
- package/dist/lib/providers/googleVertex.d.ts +6 -6
- package/dist/lib/providers/googleVertex.js +32 -26
- package/dist/lib/providers/huggingFace.d.ts +4 -4
- package/dist/lib/providers/huggingFace.js +15 -5
- package/dist/lib/providers/litellm.d.ts +4 -4
- package/dist/lib/providers/litellm.js +54 -42
- package/dist/lib/providers/mistral.d.ts +2 -2
- package/dist/lib/providers/mistral.js +5 -4
- package/dist/lib/providers/ollama.d.ts +7 -4
- package/dist/lib/providers/ollama.js +30 -8
- package/dist/lib/providers/openAI.d.ts +2 -2
- package/dist/lib/providers/openAI.js +46 -21
- package/dist/lib/providers/openRouter.d.ts +4 -4
- package/dist/lib/providers/openRouter.js +63 -35
- package/dist/lib/providers/openaiCompatible.d.ts +2 -2
- package/dist/lib/providers/openaiCompatible.js +18 -9
- package/dist/lib/providers/providerTypeUtils.d.ts +28 -0
- package/dist/lib/providers/providerTypeUtils.js +47 -0
- package/dist/lib/providers/sagemaker/config.js +5 -5
- package/dist/lib/providers/sagemaker/language-model.d.ts +23 -13
- package/dist/lib/providers/sagemaker/language-model.js +20 -8
- package/dist/lib/proxy/accountQuota.d.ts +33 -0
- package/dist/lib/proxy/accountQuota.js +163 -0
- package/dist/lib/proxy/claudeFormat.d.ts +143 -0
- package/dist/lib/proxy/claudeFormat.js +596 -0
- package/dist/lib/proxy/cloaking/index.d.ts +44 -0
- package/dist/lib/proxy/cloaking/index.js +87 -0
- package/dist/lib/proxy/cloaking/plugins/headerScrubber.d.ts +9 -0
- package/dist/lib/proxy/cloaking/plugins/headerScrubber.js +87 -0
- package/dist/lib/proxy/cloaking/plugins/sessionIdentity.d.ts +15 -0
- package/dist/lib/proxy/cloaking/plugins/sessionIdentity.js +66 -0
- package/dist/lib/proxy/cloaking/plugins/systemPromptInjector.d.ts +11 -0
- package/dist/lib/proxy/cloaking/plugins/systemPromptInjector.js +84 -0
- package/dist/lib/proxy/cloaking/plugins/tlsFingerprint.d.ts +14 -0
- package/dist/lib/proxy/cloaking/plugins/tlsFingerprint.js +39 -0
- package/dist/lib/proxy/cloaking/plugins/wordObfuscator.d.ts +9 -0
- package/dist/lib/proxy/cloaking/plugins/wordObfuscator.js +122 -0
- package/dist/lib/proxy/cloaking/types.d.ts +1 -0
- package/dist/lib/proxy/cloaking/types.js +2 -0
- package/dist/lib/proxy/modelRouter.d.ts +10 -0
- package/dist/lib/proxy/modelRouter.js +30 -0
- package/dist/lib/proxy/oauthFetch.d.ts +36 -0
- package/dist/lib/proxy/oauthFetch.js +368 -0
- package/dist/lib/proxy/proxyConfig.d.ts +42 -0
- package/dist/lib/proxy/proxyConfig.js +500 -0
- package/dist/lib/proxy/proxyFetch.js +2 -1
- package/dist/lib/proxy/requestLogger.d.ts +50 -0
- package/dist/lib/proxy/requestLogger.js +208 -0
- package/dist/lib/proxy/tokenRefresh.d.ts +4 -0
- package/dist/lib/proxy/tokenRefresh.js +125 -0
- package/dist/lib/proxy/usageStats.d.ts +13 -0
- package/dist/lib/proxy/usageStats.js +75 -0
- package/dist/lib/rag/document/loaders.js +1 -1
- package/dist/lib/rag/pipeline/contextAssembly.d.ts +4 -7
- package/dist/lib/rag/ragIntegration.d.ts +2 -14
- package/dist/lib/rag/ragIntegration.js +1 -1
- package/dist/lib/rag/resilience/CircuitBreaker.d.ts +5 -44
- package/dist/lib/rag/resilience/RetryHandler.js +1 -1
- package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +1 -9
- package/dist/lib/rag/retrieval/vectorQueryTool.js +1 -1
- package/dist/lib/sdk/toolRegistration.js +12 -1
- package/dist/lib/server/abstract/baseServerAdapter.js +2 -2
- package/dist/lib/server/adapters/honoAdapter.d.ts +6 -0
- package/dist/lib/server/adapters/honoAdapter.js +76 -10
- package/dist/lib/server/middleware/cache.js +3 -0
- package/dist/lib/server/routes/claudeProxyRoutes.d.ts +44 -0
- package/dist/lib/server/routes/claudeProxyRoutes.js +1601 -0
- package/dist/lib/server/routes/healthRoutes.js +18 -1
- package/dist/lib/server/routes/index.d.ts +7 -0
- package/dist/lib/server/routes/index.js +8 -0
- package/dist/lib/server/streaming/dataStream.d.ts +1 -5
- package/dist/lib/server/streaming/dataStream.js +3 -0
- package/dist/lib/server/utils/validation.d.ts +24 -124
- package/dist/lib/server/utils/validation.js +2 -2
- package/dist/lib/services/server/ai/observability/instrumentation.js +4 -0
- package/dist/lib/telemetry/attributes.d.ts +38 -0
- package/dist/lib/telemetry/attributes.js +40 -0
- package/dist/lib/telemetry/tracers.d.ts +1 -0
- package/dist/lib/telemetry/tracers.js +1 -0
- package/dist/lib/types/authTypes.d.ts +56 -0
- package/dist/lib/types/authTypes.js +9 -0
- package/dist/lib/types/circuitBreakerErrors.d.ts +30 -0
- package/dist/lib/types/circuitBreakerErrors.js +35 -0
- package/dist/lib/types/cli.d.ts +258 -0
- package/dist/lib/types/clientTypes.d.ts +1050 -0
- package/dist/lib/types/clientTypes.js +11 -0
- package/dist/lib/types/common.d.ts +123 -0
- package/dist/lib/types/configTypes.d.ts +49 -0
- package/dist/lib/types/configTypes.js +4 -0
- package/dist/lib/types/conversation.d.ts +0 -5
- package/dist/lib/types/evaluationTypes.d.ts +2 -2
- package/dist/lib/types/fileTypes.d.ts +47 -0
- package/dist/lib/types/generateTypes.d.ts +7 -3
- package/dist/lib/types/guardrails.d.ts +2 -2
- package/dist/lib/types/index.d.ts +4 -1
- package/dist/lib/types/index.js +5 -0
- package/dist/lib/types/middlewareTypes.d.ts +3 -3
- package/dist/lib/types/modelTypes.d.ts +7 -97
- package/dist/lib/types/modelTypes.js +3 -3
- package/dist/lib/types/observability.d.ts +37 -0
- package/dist/lib/types/providers.d.ts +107 -0
- package/dist/lib/types/proxyTypes.d.ts +536 -0
- package/dist/lib/types/proxyTypes.js +17 -0
- package/dist/lib/types/ragTypes.d.ts +49 -1
- package/dist/lib/types/streamTypes.d.ts +37 -13
- package/dist/lib/types/subscriptionTypes.d.ts +77 -0
- package/dist/lib/types/subscriptionTypes.js +2 -0
- package/dist/lib/types/tools.d.ts +45 -1
- package/dist/lib/types/typeAliases.d.ts +8 -0
- package/dist/lib/types/typeAliases.js +1 -0
- package/dist/lib/utils/async/retry.d.ts +4 -33
- package/dist/lib/utils/asyncMutex.d.ts +14 -0
- package/dist/lib/utils/asyncMutex.js +61 -0
- package/dist/lib/utils/errorHandling.d.ts +2 -1
- package/dist/lib/utils/errorHandling.js +14 -6
- package/dist/lib/utils/fileDetector.d.ts +13 -1
- package/dist/lib/utils/fileDetector.js +114 -32
- package/dist/lib/utils/imageProcessor.js +7 -7
- package/dist/lib/utils/json/safeParse.d.ts +1 -8
- package/dist/lib/utils/mcpDefaults.d.ts +1 -1
- package/dist/lib/utils/mcpDefaults.js +11 -2
- package/dist/lib/utils/messageBuilder.d.ts +5 -5
- package/dist/lib/utils/messageBuilder.js +106 -80
- package/dist/lib/utils/modelChoices.d.ts +1 -8
- package/dist/lib/utils/pdfProcessor.d.ts +1 -25
- package/dist/lib/utils/pdfProcessor.js +5 -4
- package/dist/lib/utils/pricing.js +28 -5
- package/dist/lib/utils/providerHealth.d.ts +1 -1
- package/dist/lib/utils/rateLimiter.d.ts +1 -15
- package/dist/lib/utils/redis.d.ts +1 -1
- package/dist/lib/utils/redis.js +3 -3
- package/dist/lib/utils/sanitizers/filename.d.ts +2 -22
- package/dist/lib/utils/sanitizers/index.d.ts +4 -2
- package/dist/lib/utils/sanitizers/svg.d.ts +1 -11
- package/dist/lib/utils/schemaConversion.js +4 -1
- package/dist/lib/utils/thinkingConfig.d.ts +1 -33
- package/dist/lib/utils/tokenUtils.d.ts +1 -39
- package/dist/lib/utils/videoAnalysisProcessor.d.ts +5 -5
- package/dist/lib/utils/videoAnalysisProcessor.js +2 -2
- package/dist/lib/workflow/config.d.ts +89 -1257
- package/dist/lib/workflow/utils/workflowValidation.js +1 -1
- package/dist/mcp/batching/requestBatcher.js +1 -1
- package/dist/mcp/externalServerManager.js +5 -2
- package/dist/mcp/factory.js +1 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/mcpCircuitBreaker.d.ts +1 -0
- package/dist/mcp/mcpCircuitBreaker.js +30 -4
- package/dist/mcp/mcpClientFactory.js +33 -4
- package/dist/mcp/toolDiscoveryService.js +52 -5
- package/dist/mcp/toolRegistry.js +7 -1
- package/dist/memory/memoryRetrievalTools.d.ts +5 -89
- package/dist/memory/memoryRetrievalTools.js +1 -1
- package/dist/middleware/builtin/analytics.js +3 -0
- package/dist/middleware/builtin/autoEvaluation.js +46 -24
- package/dist/middleware/builtin/guardrails.js +4 -0
- package/dist/middleware/builtin/lifecycle.js +10 -6
- package/dist/middleware/factory.d.ts +3 -3
- package/dist/middleware/factory.js +3 -2
- package/dist/middleware/index.d.ts +1 -1
- package/dist/middleware/registry.d.ts +2 -2
- package/dist/middleware/registry.js +1 -0
- package/dist/middleware/utils/guardrailsUtils.d.ts +5 -6
- package/dist/middleware/utils/guardrailsUtils.js +15 -6
- package/dist/neurolink.d.ts +9 -20
- package/dist/neurolink.js +278 -186
- package/dist/observability/retryPolicy.d.ts +2 -13
- package/dist/observability/sampling/samplers.d.ts +2 -11
- package/dist/observability/spanProcessor.d.ts +2 -14
- package/dist/processors/base/BaseFileProcessor.js +1 -1
- package/dist/processors/document/OpenDocumentProcessor.js +5 -3
- package/dist/processors/media/VideoProcessor.js +157 -101
- package/dist/providers/amazonBedrock.js +12 -5
- package/dist/providers/amazonSagemaker.d.ts +5 -5
- package/dist/providers/amazonSagemaker.js +6 -2
- package/dist/providers/anthropic.d.ts +3 -3
- package/dist/providers/anthropic.js +23 -192
- package/dist/providers/anthropicBaseProvider.d.ts +4 -4
- package/dist/providers/anthropicBaseProvider.js +24 -13
- package/dist/providers/azureOpenai.d.ts +2 -2
- package/dist/providers/azureOpenai.js +6 -6
- package/dist/providers/googleAiStudio.d.ts +2 -2
- package/dist/providers/googleAiStudio.js +15 -7
- package/dist/providers/googleNativeGemini3.d.ts +3 -54
- package/dist/providers/googleNativeGemini3.js +14 -10
- package/dist/providers/googleVertex.d.ts +6 -6
- package/dist/providers/googleVertex.js +32 -26
- package/dist/providers/huggingFace.d.ts +4 -4
- package/dist/providers/huggingFace.js +15 -5
- package/dist/providers/litellm.d.ts +4 -4
- package/dist/providers/litellm.js +54 -42
- package/dist/providers/mistral.d.ts +2 -2
- package/dist/providers/mistral.js +5 -4
- package/dist/providers/ollama.d.ts +7 -4
- package/dist/providers/ollama.js +30 -8
- package/dist/providers/openAI.d.ts +2 -2
- package/dist/providers/openAI.js +46 -21
- package/dist/providers/openRouter.d.ts +4 -4
- package/dist/providers/openRouter.js +63 -35
- package/dist/providers/openaiCompatible.d.ts +2 -2
- package/dist/providers/openaiCompatible.js +18 -9
- package/dist/providers/providerTypeUtils.d.ts +28 -0
- package/dist/providers/providerTypeUtils.js +46 -0
- package/dist/providers/sagemaker/config.js +5 -5
- package/dist/providers/sagemaker/language-model.d.ts +23 -13
- package/dist/providers/sagemaker/language-model.js +20 -8
- package/dist/proxy/accountQuota.d.ts +33 -0
- package/dist/proxy/accountQuota.js +162 -0
- package/dist/proxy/claudeFormat.d.ts +143 -0
- package/dist/proxy/claudeFormat.js +595 -0
- package/dist/proxy/cloaking/index.d.ts +44 -0
- package/dist/proxy/cloaking/index.js +86 -0
- package/dist/proxy/cloaking/plugins/headerScrubber.d.ts +9 -0
- package/dist/proxy/cloaking/plugins/headerScrubber.js +86 -0
- package/dist/proxy/cloaking/plugins/sessionIdentity.d.ts +15 -0
- package/dist/proxy/cloaking/plugins/sessionIdentity.js +65 -0
- package/dist/proxy/cloaking/plugins/systemPromptInjector.d.ts +11 -0
- package/dist/proxy/cloaking/plugins/systemPromptInjector.js +83 -0
- package/dist/proxy/cloaking/plugins/tlsFingerprint.d.ts +14 -0
- package/dist/proxy/cloaking/plugins/tlsFingerprint.js +38 -0
- package/dist/proxy/cloaking/plugins/wordObfuscator.d.ts +9 -0
- package/dist/proxy/cloaking/plugins/wordObfuscator.js +121 -0
- package/dist/proxy/cloaking/types.d.ts +1 -0
- package/dist/proxy/cloaking/types.js +1 -0
- package/dist/proxy/modelRouter.d.ts +10 -0
- package/dist/proxy/modelRouter.js +29 -0
- package/dist/proxy/oauthFetch.d.ts +36 -0
- package/dist/proxy/oauthFetch.js +367 -0
- package/dist/proxy/proxyConfig.d.ts +42 -0
- package/dist/proxy/proxyConfig.js +499 -0
- package/dist/proxy/proxyFetch.js +2 -1
- package/dist/proxy/requestLogger.d.ts +50 -0
- package/dist/proxy/requestLogger.js +207 -0
- package/dist/proxy/tokenRefresh.d.ts +4 -0
- package/dist/proxy/tokenRefresh.js +124 -0
- package/dist/proxy/usageStats.d.ts +13 -0
- package/dist/proxy/usageStats.js +74 -0
- package/dist/rag/document/loaders.js +1 -1
- package/dist/rag/pipeline/contextAssembly.d.ts +4 -7
- package/dist/rag/ragIntegration.d.ts +2 -14
- package/dist/rag/ragIntegration.js +1 -1
- package/dist/rag/resilience/CircuitBreaker.d.ts +5 -44
- package/dist/rag/resilience/RetryHandler.js +1 -1
- package/dist/rag/retrieval/vectorQueryTool.d.ts +1 -9
- package/dist/rag/retrieval/vectorQueryTool.js +1 -1
- package/dist/sdk/toolRegistration.js +12 -1
- package/dist/server/abstract/baseServerAdapter.js +2 -2
- package/dist/server/adapters/honoAdapter.d.ts +6 -0
- package/dist/server/adapters/honoAdapter.js +76 -10
- package/dist/server/middleware/cache.js +3 -0
- package/dist/server/routes/claudeProxyRoutes.d.ts +44 -0
- package/dist/server/routes/claudeProxyRoutes.js +1600 -0
- package/dist/server/routes/healthRoutes.js +18 -1
- package/dist/server/routes/index.d.ts +7 -0
- package/dist/server/routes/index.js +8 -0
- package/dist/server/streaming/dataStream.d.ts +1 -5
- package/dist/server/streaming/dataStream.js +3 -0
- package/dist/server/utils/validation.d.ts +24 -124
- package/dist/server/utils/validation.js +2 -2
- package/dist/services/server/ai/observability/instrumentation.js +4 -0
- package/dist/telemetry/attributes.d.ts +38 -0
- package/dist/telemetry/attributes.js +40 -0
- package/dist/telemetry/tracers.d.ts +1 -0
- package/dist/telemetry/tracers.js +1 -0
- package/dist/types/authTypes.d.ts +56 -0
- package/dist/types/authTypes.js +8 -0
- package/dist/types/circuitBreakerErrors.d.ts +30 -0
- package/dist/types/circuitBreakerErrors.js +34 -0
- package/dist/types/cli.d.ts +258 -0
- package/dist/types/clientTypes.d.ts +1050 -0
- package/dist/types/clientTypes.js +10 -0
- package/dist/types/common.d.ts +123 -0
- package/dist/types/configTypes.d.ts +49 -0
- package/dist/types/configTypes.js +4 -0
- package/dist/types/conversation.d.ts +0 -5
- package/dist/types/evaluationTypes.d.ts +2 -2
- package/dist/types/fileTypes.d.ts +47 -0
- package/dist/types/generateTypes.d.ts +7 -3
- package/dist/types/guardrails.d.ts +2 -2
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.js +5 -0
- package/dist/types/middlewareTypes.d.ts +3 -3
- package/dist/types/modelTypes.d.ts +7 -97
- package/dist/types/modelTypes.js +3 -3
- package/dist/types/observability.d.ts +37 -0
- package/dist/types/providers.d.ts +107 -0
- package/dist/types/proxyTypes.d.ts +536 -0
- package/dist/types/proxyTypes.js +16 -0
- package/dist/types/ragTypes.d.ts +49 -1
- package/dist/types/streamTypes.d.ts +37 -13
- package/dist/types/subscriptionTypes.d.ts +77 -0
- package/dist/types/subscriptionTypes.js +2 -0
- package/dist/types/tools.d.ts +45 -1
- package/dist/types/typeAliases.d.ts +8 -0
- package/dist/types/typeAliases.js +1 -0
- package/dist/utils/async/retry.d.ts +4 -33
- package/dist/utils/asyncMutex.d.ts +14 -0
- package/dist/utils/asyncMutex.js +60 -0
- package/dist/utils/errorHandling.d.ts +2 -1
- package/dist/utils/errorHandling.js +14 -6
- package/dist/utils/fileDetector.d.ts +13 -1
- package/dist/utils/fileDetector.js +114 -32
- package/dist/utils/imageProcessor.js +7 -7
- package/dist/utils/json/safeParse.d.ts +1 -8
- package/dist/utils/mcpDefaults.d.ts +1 -1
- package/dist/utils/mcpDefaults.js +11 -2
- package/dist/utils/messageBuilder.d.ts +5 -5
- package/dist/utils/messageBuilder.js +106 -80
- package/dist/utils/modelChoices.d.ts +1 -8
- package/dist/utils/pdfProcessor.d.ts +1 -25
- package/dist/utils/pdfProcessor.js +5 -4
- package/dist/utils/pricing.js +28 -5
- package/dist/utils/rateLimiter.d.ts +1 -15
- package/dist/utils/redis.d.ts +1 -1
- package/dist/utils/redis.js +3 -3
- package/dist/utils/sanitizers/filename.d.ts +2 -22
- package/dist/utils/sanitizers/index.d.ts +4 -2
- package/dist/utils/sanitizers/svg.d.ts +1 -11
- package/dist/utils/schemaConversion.js +4 -1
- package/dist/utils/thinkingConfig.d.ts +1 -33
- package/dist/utils/tokenUtils.d.ts +1 -39
- package/dist/utils/videoAnalysisProcessor.d.ts +5 -5
- package/dist/utils/videoAnalysisProcessor.js +2 -2
- package/dist/workflow/config.d.ts +89 -1257
- package/dist/workflow/utils/workflowValidation.js +1 -1
- package/docs-site/mcp-server/index.js +2 -3
- package/package.json +138 -105
- package/dist/lib/memory/mem0Initializer.d.ts +0 -46
- package/dist/lib/memory/mem0Initializer.js +0 -85
- package/dist/memory/mem0Initializer.d.ts +0 -46
- package/dist/memory/mem0Initializer.js +0 -84
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createAnthropic } from "@ai-sdk/anthropic";
|
|
2
|
-
import { streamText } from "ai";
|
|
2
|
+
import { stepCountIs, streamText } from "ai";
|
|
3
3
|
import { trace, SpanKind, SpanStatusCode } from "@opentelemetry/api";
|
|
4
4
|
import { AnthropicModels } from "../constants/enums.js";
|
|
5
5
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
@@ -11,11 +11,13 @@ import { calculateCost } from "../utils/pricing.js";
|
|
|
11
11
|
import { createAnthropicConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
|
|
12
12
|
import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
|
|
13
13
|
import { isModelAvailableForTier, getRecommendedModelForTier, getModelCapabilities, } from "../models/anthropicModels.js";
|
|
14
|
-
import { CLAUDE_CLI_USER_AGENT, CLAUDE_CODE_CLIENT_ID, ANTHROPIC_TOKEN_URL,
|
|
14
|
+
import { CLAUDE_CLI_USER_AGENT, CLAUDE_CODE_CLIENT_ID, ANTHROPIC_TOKEN_URL, } from "../auth/anthropicOAuth.js";
|
|
15
|
+
import { createOAuthFetch } from "../proxy/oauthFetch.js";
|
|
15
16
|
import { homedir } from "os";
|
|
16
17
|
import { readFileSync, existsSync, writeFileSync, mkdirSync, renameSync, } from "fs";
|
|
17
18
|
import { join } from "path";
|
|
18
19
|
import { TOKEN_EXPIRY_BUFFER_MS } from "../constants/enums.js";
|
|
20
|
+
import { getModelId } from "./providerTypeUtils.js";
|
|
19
21
|
/**
|
|
20
22
|
* Beta headers for Claude Code integration.
|
|
21
23
|
* These enable experimental features:
|
|
@@ -30,184 +32,6 @@ const ANTHROPIC_BETA_HEADERS = {
|
|
|
30
32
|
"fine-grained-tool-streaming-2025-05-14",
|
|
31
33
|
].join(","),
|
|
32
34
|
};
|
|
33
|
-
/**
|
|
34
|
-
* Creates a custom fetch function for OAuth-authenticated requests.
|
|
35
|
-
* This wrapper applies all required transformations for OAuth mode:
|
|
36
|
-
* - Uses Authorization: Bearer header (NOT x-api-key)
|
|
37
|
-
* - Adds OAuth-required beta headers (oauth-2025-04-20 is critical)
|
|
38
|
-
* - Sets User-Agent to Claude CLI
|
|
39
|
-
* - Adds ?beta=true query parameter to /v1/messages
|
|
40
|
-
* - Prefixes tool names with mcp_
|
|
41
|
-
* - Strips mcp_ prefix from tool names in responses
|
|
42
|
-
*
|
|
43
|
-
* Accepts a getter function instead of a static token so that refreshed
|
|
44
|
-
* tokens are picked up automatically on each request.
|
|
45
|
-
*/
|
|
46
|
-
function createOAuthFetch(getToken, includeOptionalBetas = true) {
|
|
47
|
-
return async (input, init) => {
|
|
48
|
-
// Build the URL
|
|
49
|
-
let requestUrl = null;
|
|
50
|
-
try {
|
|
51
|
-
if (typeof input === "string" || input instanceof URL) {
|
|
52
|
-
requestUrl = new URL(input.toString());
|
|
53
|
-
}
|
|
54
|
-
else if (input instanceof Request) {
|
|
55
|
-
requestUrl = new URL(input.url);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
requestUrl = null;
|
|
60
|
-
}
|
|
61
|
-
// Add ?beta=true to /v1/messages endpoint
|
|
62
|
-
if (requestUrl &&
|
|
63
|
-
requestUrl.pathname === "/v1/messages" &&
|
|
64
|
-
!requestUrl.searchParams.has("beta")) {
|
|
65
|
-
requestUrl.searchParams.set("beta", "true");
|
|
66
|
-
}
|
|
67
|
-
// Build new headers
|
|
68
|
-
const requestHeaders = new Headers();
|
|
69
|
-
// Copy headers from Request object if present
|
|
70
|
-
if (input instanceof Request) {
|
|
71
|
-
input.headers.forEach((value, key) => {
|
|
72
|
-
requestHeaders.set(key, value);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
// Copy headers from init if present
|
|
76
|
-
if (init?.headers) {
|
|
77
|
-
if (init.headers instanceof Headers) {
|
|
78
|
-
init.headers.forEach((value, key) => {
|
|
79
|
-
requestHeaders.set(key, value);
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
else if (Array.isArray(init.headers)) {
|
|
83
|
-
for (const [key, value] of init.headers) {
|
|
84
|
-
if (typeof value !== "undefined") {
|
|
85
|
-
requestHeaders.set(key, String(value));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
for (const [key, value] of Object.entries(init.headers)) {
|
|
91
|
-
if (typeof value !== "undefined") {
|
|
92
|
-
requestHeaders.set(key, String(value));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
// Check if claude-code beta was requested
|
|
98
|
-
const incomingBeta = requestHeaders.get("anthropic-beta") || "";
|
|
99
|
-
const incomingBetasList = incomingBeta
|
|
100
|
-
.split(",")
|
|
101
|
-
.map((b) => b.trim())
|
|
102
|
-
.filter(Boolean);
|
|
103
|
-
const includeClaudeCode = incomingBetasList.includes("claude-code-20250219");
|
|
104
|
-
// Merge beta headers — oauth-2025-04-20 is always required for OAuth;
|
|
105
|
-
// optional betas (interleaved-thinking) gated on includeOptionalBetas.
|
|
106
|
-
const mergedBetas = [
|
|
107
|
-
"oauth-2025-04-20",
|
|
108
|
-
...(includeOptionalBetas ? ["interleaved-thinking-2025-05-14"] : []),
|
|
109
|
-
...(includeClaudeCode ? ["claude-code-20250219"] : []),
|
|
110
|
-
].join(",");
|
|
111
|
-
// Set OAuth authorization (Bearer token, NOT x-api-key)
|
|
112
|
-
// Call getToken() each time so refreshed tokens are used automatically.
|
|
113
|
-
requestHeaders.set("authorization", `Bearer ${getToken()}`);
|
|
114
|
-
requestHeaders.set("anthropic-beta", mergedBetas);
|
|
115
|
-
requestHeaders.set("user-agent", CLAUDE_CLI_USER_AGENT);
|
|
116
|
-
requestHeaders.delete("x-api-key");
|
|
117
|
-
logger.debug("[createOAuthFetch] Making OAuth request:", {
|
|
118
|
-
url: requestUrl?.toString() || input.toString(),
|
|
119
|
-
hasAuthorization: requestHeaders.has("authorization"),
|
|
120
|
-
authType: "Bearer",
|
|
121
|
-
anthropicBeta: requestHeaders.get("anthropic-beta"),
|
|
122
|
-
userAgent: requestHeaders.get("user-agent"),
|
|
123
|
-
});
|
|
124
|
-
// Add mcp_ prefix to tool names in request body
|
|
125
|
-
let body = init?.body;
|
|
126
|
-
if (body && typeof body === "string") {
|
|
127
|
-
try {
|
|
128
|
-
const parsed = JSON.parse(body);
|
|
129
|
-
// Add prefix to tools definitions
|
|
130
|
-
if (parsed.tools && Array.isArray(parsed.tools)) {
|
|
131
|
-
parsed.tools = parsed.tools.map((tool) => ({
|
|
132
|
-
...tool,
|
|
133
|
-
name: tool.name ? `${MCP_TOOL_PREFIX}${tool.name}` : tool.name,
|
|
134
|
-
}));
|
|
135
|
-
}
|
|
136
|
-
// Add prefix to tool_use blocks in messages
|
|
137
|
-
if (parsed.messages && Array.isArray(parsed.messages)) {
|
|
138
|
-
parsed.messages = parsed.messages.map((msg) => {
|
|
139
|
-
if (msg.content && Array.isArray(msg.content)) {
|
|
140
|
-
msg.content = msg.content.map((block) => {
|
|
141
|
-
const b = block;
|
|
142
|
-
if (b.type === "tool_use" && b.name) {
|
|
143
|
-
return {
|
|
144
|
-
...b,
|
|
145
|
-
name: `${MCP_TOOL_PREFIX}${b.name}`,
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
return block;
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
return msg;
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
body = JSON.stringify(parsed);
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
// Ignore JSON parse errors
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
// Make the request
|
|
161
|
-
const response = await fetch(requestUrl?.toString() ||
|
|
162
|
-
(input instanceof Request ? input.url : input.toString()), {
|
|
163
|
-
...init,
|
|
164
|
-
body,
|
|
165
|
-
headers: requestHeaders,
|
|
166
|
-
});
|
|
167
|
-
// Transform streaming response to rename tools back (remove mcp_ prefix).
|
|
168
|
-
// Uses a small carry buffer to handle cross-chunk boundary splits of
|
|
169
|
-
// `"name": "mcp_..."` patterns.
|
|
170
|
-
if (response.body) {
|
|
171
|
-
const reader = response.body.getReader();
|
|
172
|
-
const decoder = new TextDecoder();
|
|
173
|
-
const encoder = new TextEncoder();
|
|
174
|
-
// Carry tail covers the longest possible partial match: `"name": "mcp_`
|
|
175
|
-
const CARRY_TAIL = 24;
|
|
176
|
-
let carry = "";
|
|
177
|
-
const stream = new ReadableStream({
|
|
178
|
-
async pull(controller) {
|
|
179
|
-
const { done, value } = await reader.read();
|
|
180
|
-
if (done) {
|
|
181
|
-
// Flush any remaining carry
|
|
182
|
-
if (carry) {
|
|
183
|
-
const flushed = carry.replace(/"name"\s*:\s*"mcp_([^"]+)"/g, '"name": "$1"');
|
|
184
|
-
controller.enqueue(encoder.encode(flushed));
|
|
185
|
-
carry = "";
|
|
186
|
-
}
|
|
187
|
-
controller.close();
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const chunkText = decoder.decode(value, { stream: true });
|
|
191
|
-
const combined = carry + chunkText;
|
|
192
|
-
const replaced = combined.replace(/"name"\s*:\s*"mcp_([^"]+)"/g, '"name": "$1"');
|
|
193
|
-
// Keep a small tail as carry to cover partial matches at chunk boundary
|
|
194
|
-
const safeLen = Math.max(0, replaced.length - CARRY_TAIL);
|
|
195
|
-
carry = replaced.slice(safeLen);
|
|
196
|
-
const toEmit = replaced.slice(0, safeLen);
|
|
197
|
-
if (toEmit) {
|
|
198
|
-
controller.enqueue(encoder.encode(toEmit));
|
|
199
|
-
}
|
|
200
|
-
},
|
|
201
|
-
});
|
|
202
|
-
return new Response(stream, {
|
|
203
|
-
status: response.status,
|
|
204
|
-
statusText: response.statusText,
|
|
205
|
-
headers: response.headers,
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
return response;
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
35
|
// Configuration helpers - now using consolidated utility
|
|
212
36
|
const getAnthropicApiKey = () => {
|
|
213
37
|
return validateApiKey(createAnthropicConfig());
|
|
@@ -418,7 +242,14 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
418
242
|
// even after an automatic token refresh.
|
|
419
243
|
// oauthToken is guaranteed non-null here (checked by the enclosing if-guard).
|
|
420
244
|
const tokenRef = this.oauthToken;
|
|
421
|
-
|
|
245
|
+
// skipBodyTransform=true: For the SDK provider path, body transforms ARE
|
|
246
|
+
// intentionally skipped because the Vercel AI SDK builds its own request
|
|
247
|
+
// format (system prompts, metadata, tool definitions). The billing header,
|
|
248
|
+
// agent block, user_id injection, and mcp_ tool-name prefixing are only
|
|
249
|
+
// needed for proxy passthrough of raw Claude API requests where we must
|
|
250
|
+
// make the request look like it came from Claude Code / CLIProxyAPI.
|
|
251
|
+
const oauthFetch = createOAuthFetch(() => tokenRef.accessToken, this.enableBetaFeatures, false, // No mcp_ prefix — tool names pass through as-is (matches CLIProxyAPI)
|
|
252
|
+
true);
|
|
422
253
|
// For OAuth, we use a dummy API key since our fetch wrapper handles auth
|
|
423
254
|
// IMPORTANT: Do NOT pass beta headers here - our fetch wrapper handles them
|
|
424
255
|
// The claude-code-20250219 beta header triggers "credential only for Claude Code" error
|
|
@@ -886,7 +717,7 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
886
717
|
kind: SpanKind.CLIENT,
|
|
887
718
|
attributes: {
|
|
888
719
|
"gen_ai.system": "anthropic",
|
|
889
|
-
"gen_ai.request.model": model
|
|
720
|
+
"gen_ai.request.model": getModelId(model, this.modelName || "unknown"),
|
|
890
721
|
},
|
|
891
722
|
});
|
|
892
723
|
let result;
|
|
@@ -895,10 +726,10 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
895
726
|
model: model,
|
|
896
727
|
messages: messages,
|
|
897
728
|
temperature: options.temperature,
|
|
898
|
-
|
|
729
|
+
maxOutputTokens: options.maxTokens, // No default limit - unlimited unless specified
|
|
899
730
|
maxRetries: 0, // NL11: Disable AI SDK's invisible internal retries; we handle retries with OTel instrumentation
|
|
900
731
|
tools,
|
|
901
|
-
|
|
732
|
+
stopWhen: stepCountIs(options.maxSteps || DEFAULT_MAX_STEPS),
|
|
902
733
|
toolChoice: shouldUseTools ? "auto" : "none",
|
|
903
734
|
abortSignal: composeAbortSignals(options.abortSignal, timeoutController?.controller.signal),
|
|
904
735
|
experimental_telemetry: this.telemetryHandler.getTelemetryConfig(options),
|
|
@@ -918,14 +749,14 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
918
749
|
}
|
|
919
750
|
// Collect token usage and finish reason asynchronously when the stream completes,
|
|
920
751
|
// then end the span. This avoids blocking the stream consumer.
|
|
921
|
-
result.usage
|
|
752
|
+
Promise.resolve(result.usage)
|
|
922
753
|
.then((usage) => {
|
|
923
|
-
streamSpan.setAttribute("gen_ai.usage.input_tokens", usage.
|
|
924
|
-
streamSpan.setAttribute("gen_ai.usage.output_tokens", usage.
|
|
754
|
+
streamSpan.setAttribute("gen_ai.usage.input_tokens", usage.inputTokens || 0);
|
|
755
|
+
streamSpan.setAttribute("gen_ai.usage.output_tokens", usage.outputTokens || 0);
|
|
925
756
|
const cost = calculateCost(this.providerName, this.modelName, {
|
|
926
|
-
input: usage.
|
|
927
|
-
output: usage.
|
|
928
|
-
total: (usage.
|
|
757
|
+
input: usage.inputTokens || 0,
|
|
758
|
+
output: usage.outputTokens || 0,
|
|
759
|
+
total: (usage.inputTokens || 0) + (usage.outputTokens || 0),
|
|
929
760
|
});
|
|
930
761
|
if (cost && cost > 0) {
|
|
931
762
|
streamSpan.setAttribute("neurolink.cost", cost);
|
|
@@ -934,7 +765,7 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
934
765
|
.catch(() => {
|
|
935
766
|
// Usage may not be available if the stream is aborted
|
|
936
767
|
});
|
|
937
|
-
result.finishReason
|
|
768
|
+
Promise.resolve(result.finishReason)
|
|
938
769
|
.then((reason) => {
|
|
939
770
|
streamSpan.setAttribute("gen_ai.response.finish_reason", reason || "unknown");
|
|
940
771
|
})
|
|
@@ -942,7 +773,7 @@ export class AnthropicProvider extends BaseProvider {
|
|
|
942
773
|
// Finish reason may not be available if the stream is aborted
|
|
943
774
|
});
|
|
944
775
|
// End the span when the stream text resolves (stream fully consumed)
|
|
945
|
-
result.text
|
|
776
|
+
Promise.resolve(result.text)
|
|
946
777
|
.then(() => {
|
|
947
778
|
streamSpan.end();
|
|
948
779
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ZodType
|
|
2
|
-
import { type
|
|
1
|
+
import type { ZodType } from "zod";
|
|
2
|
+
import { type LanguageModel, type Schema } from "ai";
|
|
3
3
|
import { AIProviderName } from "../constants/enums.js";
|
|
4
4
|
import type { StreamOptions, StreamResult } from "../types/streamTypes.js";
|
|
5
5
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
@@ -15,9 +15,9 @@ export declare class AnthropicProviderV2 extends BaseProvider {
|
|
|
15
15
|
/**
|
|
16
16
|
* Returns the Vercel AI SDK model instance for Anthropic
|
|
17
17
|
*/
|
|
18
|
-
protected getAISDKModel():
|
|
18
|
+
protected getAISDKModel(): LanguageModel;
|
|
19
19
|
protected formatProviderError(error: unknown): Error;
|
|
20
20
|
private getApiKey;
|
|
21
|
-
protected executeStream(options: StreamOptions, _analysisSchema?: ZodType
|
|
21
|
+
protected executeStream(options: StreamOptions, _analysisSchema?: ZodType | Schema<unknown>): Promise<StreamResult>;
|
|
22
22
|
}
|
|
23
23
|
export default AnthropicProviderV2;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createAnthropic } from "@ai-sdk/anthropic";
|
|
2
|
-
import { streamText } from "ai";
|
|
2
|
+
import { NoOutputGeneratedError, streamText, } from "ai";
|
|
3
3
|
import { trace, SpanKind, SpanStatusCode } from "@opentelemetry/api";
|
|
4
4
|
import { AIProviderName, AnthropicModels } from "../constants/enums.js";
|
|
5
5
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
@@ -8,6 +8,7 @@ import { logger } from "../utils/logger.js";
|
|
|
8
8
|
import { calculateCost } from "../utils/pricing.js";
|
|
9
9
|
import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
|
|
10
10
|
import { validateApiKey, createAnthropicBaseConfig, } from "../utils/providerConfig.js";
|
|
11
|
+
import { getModelId } from "./providerTypeUtils.js";
|
|
11
12
|
const streamTracer = trace.getTracer("neurolink.provider.anthropic");
|
|
12
13
|
/**
|
|
13
14
|
* Anthropic provider implementation using BaseProvider pattern
|
|
@@ -76,7 +77,7 @@ export class AnthropicProviderV2 extends BaseProvider {
|
|
|
76
77
|
kind: SpanKind.CLIENT,
|
|
77
78
|
attributes: {
|
|
78
79
|
"gen_ai.system": "anthropic",
|
|
79
|
-
"gen_ai.request.model": model
|
|
80
|
+
"gen_ai.request.model": getModelId(model, this.modelName || "unknown"),
|
|
80
81
|
},
|
|
81
82
|
});
|
|
82
83
|
let result;
|
|
@@ -86,7 +87,7 @@ export class AnthropicProviderV2 extends BaseProvider {
|
|
|
86
87
|
prompt: options.input.text,
|
|
87
88
|
system: options.systemPrompt,
|
|
88
89
|
temperature: options.temperature,
|
|
89
|
-
|
|
90
|
+
maxOutputTokens: options.maxTokens, // No default limit - unlimited unless specified
|
|
90
91
|
maxRetries: 0, // NL11: Disable AI SDK's invisible internal retries; we handle retries with OTel instrumentation
|
|
91
92
|
tools,
|
|
92
93
|
toolChoice: shouldUseTools ? "auto" : "none",
|
|
@@ -113,14 +114,14 @@ export class AnthropicProviderV2 extends BaseProvider {
|
|
|
113
114
|
}
|
|
114
115
|
// Collect token usage and finish reason asynchronously when the stream completes,
|
|
115
116
|
// then end the span. This avoids blocking the stream consumer.
|
|
116
|
-
result.usage
|
|
117
|
+
Promise.resolve(result.usage)
|
|
117
118
|
.then((usage) => {
|
|
118
|
-
streamSpan.setAttribute("gen_ai.usage.input_tokens", usage.
|
|
119
|
-
streamSpan.setAttribute("gen_ai.usage.output_tokens", usage.
|
|
119
|
+
streamSpan.setAttribute("gen_ai.usage.input_tokens", usage.inputTokens || 0);
|
|
120
|
+
streamSpan.setAttribute("gen_ai.usage.output_tokens", usage.outputTokens || 0);
|
|
120
121
|
const cost = calculateCost(this.providerName, this.modelName, {
|
|
121
|
-
input: usage.
|
|
122
|
-
output: usage.
|
|
123
|
-
total: (usage.
|
|
122
|
+
input: usage.inputTokens || 0,
|
|
123
|
+
output: usage.outputTokens || 0,
|
|
124
|
+
total: (usage.inputTokens || 0) + (usage.outputTokens || 0),
|
|
124
125
|
});
|
|
125
126
|
if (cost && cost > 0) {
|
|
126
127
|
streamSpan.setAttribute("neurolink.cost", cost);
|
|
@@ -129,14 +130,14 @@ export class AnthropicProviderV2 extends BaseProvider {
|
|
|
129
130
|
.catch(() => {
|
|
130
131
|
// Usage may not be available if the stream is aborted
|
|
131
132
|
});
|
|
132
|
-
result.finishReason
|
|
133
|
+
Promise.resolve(result.finishReason)
|
|
133
134
|
.then((reason) => {
|
|
134
135
|
streamSpan.setAttribute("gen_ai.response.finish_reason", reason || "unknown");
|
|
135
136
|
})
|
|
136
137
|
.catch(() => {
|
|
137
138
|
// Finish reason may not be available if the stream is aborted
|
|
138
139
|
});
|
|
139
|
-
result.text
|
|
140
|
+
Promise.resolve(result.text)
|
|
140
141
|
.then(() => {
|
|
141
142
|
streamSpan.end();
|
|
142
143
|
})
|
|
@@ -150,8 +151,18 @@ export class AnthropicProviderV2 extends BaseProvider {
|
|
|
150
151
|
timeoutController?.cleanup();
|
|
151
152
|
// Transform string stream to content object stream (match Google AI pattern)
|
|
152
153
|
const transformedStream = async function* () {
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
try {
|
|
155
|
+
for await (const chunk of result.textStream) {
|
|
156
|
+
yield { content: chunk };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (streamError) {
|
|
160
|
+
// AI SDK v6 throws NoOutputGeneratedError when the stream produced no output.
|
|
161
|
+
if (NoOutputGeneratedError.isInstance(streamError)) {
|
|
162
|
+
logger.warn("AnthropicBaseProvider: Stream produced no output (NoOutputGeneratedError)");
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
throw streamError;
|
|
155
166
|
}
|
|
156
167
|
};
|
|
157
168
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type LanguageModel } from "ai";
|
|
2
2
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
3
3
|
import { AIProviderName } from "../constants/enums.js";
|
|
4
4
|
import type { StreamOptions, StreamResult } from "../types/streamTypes.js";
|
|
@@ -14,7 +14,7 @@ export declare class AzureOpenAIProvider extends BaseProvider {
|
|
|
14
14
|
/**
|
|
15
15
|
* Returns the Vercel AI SDK model instance for Azure OpenAI
|
|
16
16
|
*/
|
|
17
|
-
getAISDKModel():
|
|
17
|
+
getAISDKModel(): LanguageModel;
|
|
18
18
|
protected formatProviderError(error: unknown): Error;
|
|
19
19
|
protected executeStream(options: StreamOptions, _analysisSchema?: unknown): Promise<StreamResult>;
|
|
20
20
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createAzure } from "@ai-sdk/azure";
|
|
2
|
-
import { streamText } from "ai";
|
|
2
|
+
import { stepCountIs, streamText } from "ai";
|
|
3
3
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
4
4
|
import { AIProviderName, APIVersions } from "../constants/enums.js";
|
|
5
5
|
import { validateApiKey, createAzureAPIKeyConfig, createAzureEndpointConfig, } from "../utils/providerConfig.js";
|
|
6
|
+
import { DEFAULT_MAX_STEPS } from "../core/constants.js";
|
|
6
7
|
import { logger } from "../utils/logger.js";
|
|
7
8
|
import { createProxyFetch } from "../proxy/proxyFetch.js";
|
|
8
|
-
import { DEFAULT_MAX_STEPS } from "../core/constants.js";
|
|
9
9
|
import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
|
|
10
10
|
export class AzureOpenAIProvider extends BaseProvider {
|
|
11
11
|
apiKey;
|
|
@@ -102,24 +102,24 @@ export class AzureOpenAIProvider extends BaseProvider {
|
|
|
102
102
|
model,
|
|
103
103
|
messages: messages,
|
|
104
104
|
...(options.maxTokens !== null && options.maxTokens !== undefined
|
|
105
|
-
? {
|
|
105
|
+
? { maxOutputTokens: options.maxTokens }
|
|
106
106
|
: {}),
|
|
107
107
|
...(options.temperature !== null && options.temperature !== undefined
|
|
108
108
|
? { temperature: options.temperature }
|
|
109
109
|
: {}),
|
|
110
110
|
tools,
|
|
111
111
|
toolChoice: shouldUseTools ? "auto" : "none",
|
|
112
|
+
stopWhen: stepCountIs(options.maxSteps || DEFAULT_MAX_STEPS),
|
|
112
113
|
abortSignal: composeAbortSignals(options.abortSignal, timeoutController?.controller.signal),
|
|
113
114
|
experimental_telemetry: this.telemetryHandler.getTelemetryConfig(options),
|
|
114
|
-
onStepFinish: (
|
|
115
|
-
this.handleToolExecutionStorage(toolCalls, toolResults, options, new Date()).catch((error) => {
|
|
115
|
+
onStepFinish: (event) => {
|
|
116
|
+
this.handleToolExecutionStorage([...event.toolCalls], [...event.toolResults], options, new Date()).catch((error) => {
|
|
116
117
|
logger.warn("[AzureOpenaiProvider] Failed to store tool executions", {
|
|
117
118
|
provider: this.providerName,
|
|
118
119
|
error: error instanceof Error ? error.message : String(error),
|
|
119
120
|
});
|
|
120
121
|
});
|
|
121
122
|
},
|
|
122
|
-
maxSteps: options.maxSteps || DEFAULT_MAX_STEPS,
|
|
123
123
|
});
|
|
124
124
|
timeoutController?.cleanup();
|
|
125
125
|
// Transform string stream to content object stream using BaseProvider method
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type LanguageModel, type Schema } from "ai";
|
|
2
2
|
import { type AIProviderName } from "../constants/enums.js";
|
|
3
3
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
4
4
|
import type { EnhancedGenerateResult, TextGenerationOptions } from "../types/generateTypes.js";
|
|
@@ -42,7 +42,7 @@ export declare class GoogleAIStudioProvider extends BaseProvider {
|
|
|
42
42
|
/**
|
|
43
43
|
* 🔧 PHASE 2: Return AI SDK model instance for tool calling
|
|
44
44
|
*/
|
|
45
|
-
getAISDKModel():
|
|
45
|
+
getAISDKModel(): LanguageModel;
|
|
46
46
|
protected formatProviderError(error: unknown): Error;
|
|
47
47
|
/**
|
|
48
48
|
* Overrides the BaseProvider's image generation method to implement it for Google AI.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createGoogleGenerativeAI } from "@ai-sdk/google";
|
|
2
|
-
import { embed, embedMany, streamText, } from "ai";
|
|
2
|
+
import { embed, embedMany, stepCountIs, streamText, } from "ai";
|
|
3
3
|
import { ErrorCategory, ErrorSeverity, GoogleAIModels, } from "../constants/enums.js";
|
|
4
4
|
import { BaseProvider } from "../core/baseProvider.js";
|
|
5
5
|
import { DEFAULT_MAX_STEPS } from "../core/constants.js";
|
|
@@ -12,6 +12,7 @@ import { isGemini3Model } from "../utils/modelDetection.js";
|
|
|
12
12
|
import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
|
|
13
13
|
import { estimateTokens } from "../utils/tokenEstimation.js";
|
|
14
14
|
import { buildNativeConfig, buildNativeToolDeclarations, collectStreamChunks, collectStreamChunksIncremental, computeMaxSteps, createTextChannel, executeNativeToolCalls, extractTextFromParts, handleMaxStepsTermination, pushModelResponseToHistory, sanitizeToolsForGemini, } from "./googleNativeGemini3.js";
|
|
15
|
+
import { toAnalyticsStreamResult } from "./providerTypeUtils.js";
|
|
15
16
|
// Google AI Live API types now imported from ../types/providerSpecific.js
|
|
16
17
|
// Import proper types for multimodal message handling
|
|
17
18
|
// Create Google GenAI client
|
|
@@ -476,10 +477,10 @@ export class GoogleAIStudioProvider extends BaseProvider {
|
|
|
476
477
|
model,
|
|
477
478
|
messages: messages,
|
|
478
479
|
temperature: options.temperature,
|
|
479
|
-
|
|
480
|
+
maxOutputTokens: options.maxTokens, // No default limit - unlimited unless specified
|
|
480
481
|
tools,
|
|
481
|
-
|
|
482
|
-
toolChoice: shouldUseTools
|
|
482
|
+
stopWhen: stepCountIs(options.maxSteps || DEFAULT_MAX_STEPS),
|
|
483
|
+
toolChoice: shouldUseTools ? "auto" : "none",
|
|
483
484
|
abortSignal: composeAbortSignals(options.abortSignal, timeoutController?.controller.signal),
|
|
484
485
|
experimental_telemetry: this.telemetryHandler.getTelemetryConfig(options),
|
|
485
486
|
// Gemini 3: use thinkingLevel via providerOptions
|
|
@@ -509,12 +510,19 @@ export class GoogleAIStudioProvider extends BaseProvider {
|
|
|
509
510
|
});
|
|
510
511
|
},
|
|
511
512
|
});
|
|
512
|
-
// Defer timeout cleanup until the stream completes or errors
|
|
513
|
-
|
|
513
|
+
// Defer timeout cleanup until the stream completes or errors.
|
|
514
|
+
// Guard against NoOutputGeneratedError becoming an unhandled rejection.
|
|
515
|
+
Promise.resolve(result.text)
|
|
516
|
+
.catch((err) => {
|
|
517
|
+
logger.debug("Stream text promise rejected (expected for empty streams)", {
|
|
518
|
+
error: err instanceof Error ? err.message : String(err),
|
|
519
|
+
});
|
|
520
|
+
})
|
|
521
|
+
.finally(() => timeoutController?.cleanup());
|
|
514
522
|
// Transform string stream to content object stream using BaseProvider method
|
|
515
523
|
const transformedStream = this.createTextStream(result);
|
|
516
524
|
// Create analytics promise that resolves after stream completion
|
|
517
|
-
const analyticsPromise = streamAnalyticsCollector.createAnalytics(this.providerName, this.modelName, result, Date.now() - startTime, {
|
|
525
|
+
const analyticsPromise = streamAnalyticsCollector.createAnalytics(this.providerName, this.modelName, toAnalyticsStreamResult(result), Date.now() - startTime, {
|
|
518
526
|
requestId: `google-ai-stream-${Date.now()}`,
|
|
519
527
|
streamingMode: true,
|
|
520
528
|
});
|
|
@@ -9,41 +9,9 @@
|
|
|
9
9
|
* providers so they can share a single implementation.
|
|
10
10
|
*/
|
|
11
11
|
import { type Tool } from "ai";
|
|
12
|
-
import type { ThinkingConfig } from "../
|
|
13
|
-
|
|
14
|
-
export type NativeFunctionDeclaration
|
|
15
|
-
name: string;
|
|
16
|
-
description: string;
|
|
17
|
-
parametersJsonSchema?: Record<string, unknown>;
|
|
18
|
-
};
|
|
19
|
-
/** The tools config array expected by the @google/genai SDK. */
|
|
20
|
-
export type NativeToolsConfig = Array<{
|
|
21
|
-
functionDeclarations: NativeFunctionDeclaration[];
|
|
22
|
-
}>;
|
|
23
|
-
/** Return value of buildNativeToolDeclarations. */
|
|
24
|
-
export type NativeToolDeclarationsResult = {
|
|
25
|
-
toolsConfig: NativeToolsConfig;
|
|
26
|
-
executeMap: Map<string, Tool["execute"]>;
|
|
27
|
-
};
|
|
28
|
-
/** A single function call returned by the Gemini model. */
|
|
29
|
-
export type NativeFunctionCall = {
|
|
30
|
-
name: string;
|
|
31
|
-
args: Record<string, unknown>;
|
|
32
|
-
};
|
|
33
|
-
/** A single function response to feed back into the conversation. */
|
|
34
|
-
export type NativeFunctionResponse = {
|
|
35
|
-
functionResponse: {
|
|
36
|
-
name: string;
|
|
37
|
-
response: unknown;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
/** Result from collectStreamChunks. */
|
|
41
|
-
export type CollectedChunkResult = {
|
|
42
|
-
rawResponseParts: unknown[];
|
|
43
|
-
stepFunctionCalls: NativeFunctionCall[];
|
|
44
|
-
inputTokens: number;
|
|
45
|
-
outputTokens: number;
|
|
46
|
-
};
|
|
12
|
+
import type { ThinkingConfig } from "../types/configTypes.js";
|
|
13
|
+
import type { CollectedChunkResult, NativeFunctionCall, NativeFunctionDeclaration, NativeFunctionResponse, NativeToolDeclarationsResult, NativeToolsConfig, TextChannel } from "../types/index.js";
|
|
14
|
+
export type { CollectedChunkResult, NativeFunctionCall, NativeFunctionDeclaration, NativeFunctionResponse, NativeToolDeclarationsResult, NativeToolsConfig, TextChannel, };
|
|
47
15
|
/**
|
|
48
16
|
* Sanitize a JSON Schema for Gemini's proto-based API.
|
|
49
17
|
*
|
|
@@ -98,25 +66,6 @@ export declare function collectStreamChunks(stream: AsyncIterable<{
|
|
|
98
66
|
functionCalls?: NativeFunctionCall[];
|
|
99
67
|
[key: string]: unknown;
|
|
100
68
|
}>): Promise<CollectedChunkResult>;
|
|
101
|
-
/**
|
|
102
|
-
* A push-based text channel that decouples producers (agentic loop) from
|
|
103
|
-
* consumers (the caller's async iterable).
|
|
104
|
-
*
|
|
105
|
-
* The producer calls `push(text)` for each chunk and `close()` / `error(err)`
|
|
106
|
-
* when done. The consumer iterates the `iterable` async generator.
|
|
107
|
-
*/
|
|
108
|
-
export type TextChannel = {
|
|
109
|
-
/** Push a text chunk to the consumer. */
|
|
110
|
-
push(text: string): void;
|
|
111
|
-
/** Signal that no more chunks will arrive. */
|
|
112
|
-
close(): void;
|
|
113
|
-
/** Signal that the producer encountered a fatal error. */
|
|
114
|
-
error(err: unknown): void;
|
|
115
|
-
/** Async iterable consumed by the StreamResult. */
|
|
116
|
-
iterable: AsyncIterable<{
|
|
117
|
-
content: string;
|
|
118
|
-
}>;
|
|
119
|
-
};
|
|
120
69
|
/**
|
|
121
70
|
* Create a push-based text channel that bridges a background producer
|
|
122
71
|
* (the agentic tool-calling loop) with an async-iterable consumer.
|
|
@@ -117,7 +117,10 @@ export function sanitizeToolsForGemini(tools) {
|
|
|
117
117
|
const dropped = [];
|
|
118
118
|
for (const [name, tool] of Object.entries(tools)) {
|
|
119
119
|
try {
|
|
120
|
-
|
|
120
|
+
// Access the legacy `parameters` field that may exist on older AI SDK tools.
|
|
121
|
+
// AI SDK v6 uses `inputSchema`, but v3/v4 tools and third-party wrappers use `parameters`.
|
|
122
|
+
const legacyTool = tool;
|
|
123
|
+
const params = legacyTool.parameters;
|
|
121
124
|
if (params &&
|
|
122
125
|
typeof params === "object" &&
|
|
123
126
|
"_def" in params &&
|
|
@@ -131,8 +134,7 @@ export function sanitizeToolsForGemini(tools) {
|
|
|
131
134
|
const sanitizedSchema = sanitizeSchemaForGemini(inlined);
|
|
132
135
|
sanitized[name] = createAISDKTool({
|
|
133
136
|
description: tool.description || `Tool: ${name}`,
|
|
134
|
-
|
|
135
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
|
+
inputSchema: aiJsonSchema(sanitizedSchema),
|
|
136
138
|
execute: tool.execute,
|
|
137
139
|
});
|
|
138
140
|
}
|
|
@@ -145,8 +147,7 @@ export function sanitizeToolsForGemini(tools) {
|
|
|
145
147
|
const sanitizedSchema = sanitizeSchemaForGemini(inlineJsonSchema(rawSchema));
|
|
146
148
|
sanitized[name] = createAISDKTool({
|
|
147
149
|
description: tool.description || `Tool: ${name}`,
|
|
148
|
-
|
|
149
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
150
|
+
inputSchema: aiJsonSchema(sanitizedSchema),
|
|
150
151
|
execute: tool.execute,
|
|
151
152
|
});
|
|
152
153
|
}
|
|
@@ -177,13 +178,16 @@ export function buildNativeToolDeclarations(tools) {
|
|
|
177
178
|
name,
|
|
178
179
|
description: tool.description || `Tool: ${name}`,
|
|
179
180
|
};
|
|
180
|
-
|
|
181
|
+
// Access legacy `parameters` (AI SDK v3/v4) or current `inputSchema` (v6)
|
|
182
|
+
const legacyTool = tool;
|
|
183
|
+
if (legacyTool.parameters || tool.inputSchema) {
|
|
181
184
|
let rawSchema;
|
|
182
|
-
|
|
183
|
-
|
|
185
|
+
const toolParams = legacyTool.parameters || tool.inputSchema;
|
|
186
|
+
if (isZodSchema(toolParams)) {
|
|
187
|
+
rawSchema = convertZodToJsonSchema(toolParams);
|
|
184
188
|
}
|
|
185
|
-
else if (typeof
|
|
186
|
-
rawSchema =
|
|
189
|
+
else if (typeof toolParams === "object") {
|
|
190
|
+
rawSchema = toolParams;
|
|
187
191
|
}
|
|
188
192
|
else {
|
|
189
193
|
rawSchema = { type: "object", properties: {} };
|