@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
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloakingPipeline — runs an ordered chain of CloakingPlugin instances
|
|
3
|
+
* against each proxied request (and optionally its response).
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* const pipeline = new CloakingPipeline();
|
|
7
|
+
* pipeline.use(createHeaderScrubber());
|
|
8
|
+
* pipeline.use(createSessionIdentity());
|
|
9
|
+
* const ctx = await pipeline.processRequest(ctx);
|
|
10
|
+
*
|
|
11
|
+
* NOTE: The pipeline is currently used for unit testing and is ready for
|
|
12
|
+
* integration into the proxy request flow. Callers should instantiate a
|
|
13
|
+
* CloakingPipeline from ProxyConfigFile.cloaking, register plugins based
|
|
14
|
+
* on the config, and call processRequest/processResponse around the
|
|
15
|
+
* upstream fetch in claudeProxyRoutes.ts / oauthFetch.ts.
|
|
16
|
+
*/
|
|
17
|
+
export class CloakingPipeline {
|
|
18
|
+
plugins = [];
|
|
19
|
+
/** Register a plugin. Plugins run in `order` field order during processRequest. */
|
|
20
|
+
use(plugin) {
|
|
21
|
+
this.plugins.push(plugin);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
/** Remove a plugin by name. */
|
|
25
|
+
remove(name) {
|
|
26
|
+
this.plugins = this.plugins.filter((p) => p.name !== name);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Run every enabled plugin's `transformRequest` sorted by `order` (ascending).
|
|
30
|
+
*
|
|
31
|
+
* Mode dispatch:
|
|
32
|
+
* - "never": skip all plugins, return context unchanged
|
|
33
|
+
* - "always": always run all enabled plugins
|
|
34
|
+
* - "auto": only run plugins if account.type === "oauth"
|
|
35
|
+
*/
|
|
36
|
+
async processRequest(ctx) {
|
|
37
|
+
// Mode dispatch
|
|
38
|
+
if (ctx.config.mode === "never") {
|
|
39
|
+
return ctx;
|
|
40
|
+
}
|
|
41
|
+
if (ctx.config.mode === "auto" && ctx.account.type !== "oauth") {
|
|
42
|
+
return ctx;
|
|
43
|
+
}
|
|
44
|
+
let current = ctx;
|
|
45
|
+
const sorted = [...this.plugins].sort((a, b) => a.order - b.order);
|
|
46
|
+
for (const plugin of sorted) {
|
|
47
|
+
if (!plugin.enabled) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
current = await plugin.transformRequest(current);
|
|
51
|
+
}
|
|
52
|
+
return current;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Run every enabled plugin's `transformResponse` (if defined) in REVERSE order.
|
|
56
|
+
*
|
|
57
|
+
* Mode dispatch follows the same rules as processRequest.
|
|
58
|
+
*/
|
|
59
|
+
async processResponse(ctx) {
|
|
60
|
+
// Mode dispatch
|
|
61
|
+
if (ctx.config.mode === "never") {
|
|
62
|
+
return ctx;
|
|
63
|
+
}
|
|
64
|
+
if (ctx.config.mode === "auto" && ctx.account.type !== "oauth") {
|
|
65
|
+
return ctx;
|
|
66
|
+
}
|
|
67
|
+
let current = ctx;
|
|
68
|
+
for (const plugin of [...this.plugins]
|
|
69
|
+
.sort((a, b) => a.order - b.order)
|
|
70
|
+
.reverse()) {
|
|
71
|
+
if (!plugin.enabled || !plugin.transformResponse) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
current = await plugin.transformResponse(current);
|
|
75
|
+
}
|
|
76
|
+
return current;
|
|
77
|
+
}
|
|
78
|
+
/** Return the number of registered plugins. */
|
|
79
|
+
get size() {
|
|
80
|
+
return this.plugins.length;
|
|
81
|
+
}
|
|
82
|
+
/** List registered plugin names (useful for diagnostics). */
|
|
83
|
+
get pluginNames() {
|
|
84
|
+
return this.plugins.map((p) => p.name);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HeaderScrubber — strips headers that could reveal the presence of a proxy.
|
|
3
|
+
*
|
|
4
|
+
* Removes forwarding headers (x-forwarded-for, via, x-real-ip, etc.) and any
|
|
5
|
+
* custom proxy-fingerprint headers, while preserving legitimate request
|
|
6
|
+
* headers like content-type and authorization.
|
|
7
|
+
*/
|
|
8
|
+
import type { CloakingPlugin, HeaderScrubberOptions } from "../../../types/index.js";
|
|
9
|
+
export declare function createHeaderScrubber(options?: HeaderScrubberOptions): CloakingPlugin;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HeaderScrubber — strips headers that could reveal the presence of a proxy.
|
|
3
|
+
*
|
|
4
|
+
* Removes forwarding headers (x-forwarded-for, via, x-real-ip, etc.) and any
|
|
5
|
+
* custom proxy-fingerprint headers, while preserving legitimate request
|
|
6
|
+
* headers like content-type and authorization.
|
|
7
|
+
*/
|
|
8
|
+
/** Exact-match headers to strip (all lower-cased). */
|
|
9
|
+
const STRIP_HEADERS_EXACT = new Set([
|
|
10
|
+
"x-forwarded-for",
|
|
11
|
+
"x-forwarded-host",
|
|
12
|
+
"x-forwarded-port",
|
|
13
|
+
"x-forwarded-server",
|
|
14
|
+
"x-forwarded-proto",
|
|
15
|
+
"x-real-ip",
|
|
16
|
+
"x-client-ip",
|
|
17
|
+
"true-client-ip",
|
|
18
|
+
"cf-connecting-ip",
|
|
19
|
+
"fastly-client-ip",
|
|
20
|
+
"x-cluster-client-ip",
|
|
21
|
+
"forwarded",
|
|
22
|
+
"via",
|
|
23
|
+
"sec-ch-ua",
|
|
24
|
+
"sec-fetch-dest",
|
|
25
|
+
"sec-fetch-mode",
|
|
26
|
+
"sec-fetch-site",
|
|
27
|
+
"priority",
|
|
28
|
+
"referer",
|
|
29
|
+
"accept-encoding",
|
|
30
|
+
"x-title",
|
|
31
|
+
"content-length",
|
|
32
|
+
"connection",
|
|
33
|
+
"transfer-encoding",
|
|
34
|
+
"keep-alive",
|
|
35
|
+
"te",
|
|
36
|
+
"trailer",
|
|
37
|
+
"upgrade",
|
|
38
|
+
"host",
|
|
39
|
+
]);
|
|
40
|
+
/** Prefix-match patterns to strip (all lower-cased). */
|
|
41
|
+
const STRIP_HEADERS_PREFIX = [
|
|
42
|
+
"sec-ch-ua-",
|
|
43
|
+
"x-stainless-",
|
|
44
|
+
"x-forwarded-",
|
|
45
|
+
"proxy-",
|
|
46
|
+
];
|
|
47
|
+
/** Check whether a lower-cased header name should be stripped. */
|
|
48
|
+
function shouldStrip(lower, extraSet) {
|
|
49
|
+
if (STRIP_HEADERS_EXACT.has(lower)) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
if (extraSet.has(lower)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
for (const prefix of STRIP_HEADERS_PREFIX) {
|
|
56
|
+
if (lower.startsWith(prefix)) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
export function createHeaderScrubber(options = {}) {
|
|
63
|
+
const extraSet = new Set((options.extraHeaders ?? []).map((h) => h.toLowerCase()));
|
|
64
|
+
return {
|
|
65
|
+
name: "header-scrubber",
|
|
66
|
+
order: 10,
|
|
67
|
+
enabled: true,
|
|
68
|
+
async transformRequest(ctx) {
|
|
69
|
+
const cleaned = {};
|
|
70
|
+
for (const [key, value] of Object.entries(ctx.request.headers)) {
|
|
71
|
+
const lower = key.toLowerCase();
|
|
72
|
+
if (shouldStrip(lower, extraSet)) {
|
|
73
|
+
continue; // strip
|
|
74
|
+
}
|
|
75
|
+
cleaned[key] = value;
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
...ctx,
|
|
79
|
+
request: {
|
|
80
|
+
...ctx.request,
|
|
81
|
+
headers: cleaned,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=headerScrubber.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionIdentity — generates unique user_id / session_id values per account
|
|
3
|
+
* so that Anthropic sees consistent "user" fingerprints even when requests are
|
|
4
|
+
* spread across multiple accounts.
|
|
5
|
+
*
|
|
6
|
+
* Session IDs follow the format:
|
|
7
|
+
* user_[32 hex chars]_account_[UUIDv4]_session_[UUIDv4]
|
|
8
|
+
*
|
|
9
|
+
* IDs are cached with a 1-hour TTL and reused for subsequent requests from
|
|
10
|
+
* the same account within that window.
|
|
11
|
+
*/
|
|
12
|
+
import type { CloakingPlugin } from "../../../types/index.js";
|
|
13
|
+
/** Purge all expired sessions from the cache. Exported for external timer use. */
|
|
14
|
+
export declare function purgeExpiredSessions(): void;
|
|
15
|
+
export declare function createSessionIdentity(): CloakingPlugin;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionIdentity — generates unique user_id / session_id values per account
|
|
3
|
+
* so that Anthropic sees consistent "user" fingerprints even when requests are
|
|
4
|
+
* spread across multiple accounts.
|
|
5
|
+
*
|
|
6
|
+
* Session IDs follow the format:
|
|
7
|
+
* user_[32 hex chars]_account_[UUIDv4]_session_[UUIDv4]
|
|
8
|
+
*
|
|
9
|
+
* IDs are cached with a 1-hour TTL and reused for subsequent requests from
|
|
10
|
+
* the same account within that window.
|
|
11
|
+
*/
|
|
12
|
+
import { randomBytes, randomUUID } from "crypto";
|
|
13
|
+
// ── Session cache with TTL ───────────────────────────────────────────────────
|
|
14
|
+
const TTL_MS = 3_600_000; // 1 hour
|
|
15
|
+
const sessionCache = new Map();
|
|
16
|
+
/** Generate a new session user ID in the required format. */
|
|
17
|
+
function generateUserId() {
|
|
18
|
+
const hex = randomBytes(32).toString("hex"); // 64 hex chars, take first 32
|
|
19
|
+
return `user_${hex.slice(0, 32)}_account_${randomUUID()}_session_${randomUUID()}`;
|
|
20
|
+
}
|
|
21
|
+
/** Purge all expired sessions from the cache. Exported for external timer use. */
|
|
22
|
+
export function purgeExpiredSessions() {
|
|
23
|
+
const now = Date.now();
|
|
24
|
+
for (const [key, entry] of sessionCache) {
|
|
25
|
+
if (entry.expiresAt <= now) {
|
|
26
|
+
sessionCache.delete(key);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function createSessionIdentity() {
|
|
31
|
+
return {
|
|
32
|
+
name: "session-identity",
|
|
33
|
+
order: 20,
|
|
34
|
+
enabled: true,
|
|
35
|
+
async transformRequest(ctx) {
|
|
36
|
+
const accountId = ctx.account.id;
|
|
37
|
+
const now = Date.now();
|
|
38
|
+
// Check cache first — reuse if still valid
|
|
39
|
+
let cached = sessionCache.get(accountId);
|
|
40
|
+
if (!cached || cached.expiresAt <= now) {
|
|
41
|
+
cached = {
|
|
42
|
+
userId: generateUserId(),
|
|
43
|
+
expiresAt: now + TTL_MS,
|
|
44
|
+
};
|
|
45
|
+
sessionCache.set(accountId, cached);
|
|
46
|
+
}
|
|
47
|
+
const body = { ...ctx.request.body };
|
|
48
|
+
// Only set user_id if not already present — in passthrough mode,
|
|
49
|
+
// oauthFetch.ts owns this field and sets it from its own session cache.
|
|
50
|
+
if (!body.metadata?.user_id) {
|
|
51
|
+
body.metadata = {
|
|
52
|
+
...body.metadata,
|
|
53
|
+
user_id: cached.userId,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
...ctx,
|
|
58
|
+
request: {
|
|
59
|
+
...ctx.request,
|
|
60
|
+
body,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=sessionIdentity.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SystemPromptInjector — injects Claude Code session context blocks into the
|
|
3
|
+
* system prompt so that the request looks like it originates from a genuine
|
|
4
|
+
* Claude Code session (IDE metadata, session timestamp, etc.).
|
|
5
|
+
*
|
|
6
|
+
* This is designed for "cloaking" proxy requests to appear as native Claude
|
|
7
|
+
* Code interactions. Only applies to OAuth accounts — API key accounts are
|
|
8
|
+
* skipped since they do not need session mimicry.
|
|
9
|
+
*/
|
|
10
|
+
import type { CloakingPlugin, SystemPromptInjectorOptions } from "../../../types/index.js";
|
|
11
|
+
export declare function createSystemPromptInjector(options?: SystemPromptInjectorOptions): CloakingPlugin;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SystemPromptInjector — injects Claude Code session context blocks into the
|
|
3
|
+
* system prompt so that the request looks like it originates from a genuine
|
|
4
|
+
* Claude Code session (IDE metadata, session timestamp, etc.).
|
|
5
|
+
*
|
|
6
|
+
* This is designed for "cloaking" proxy requests to appear as native Claude
|
|
7
|
+
* Code interactions. Only applies to OAuth accounts — API key accounts are
|
|
8
|
+
* skipped since they do not need session mimicry.
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_OPTIONS = {
|
|
11
|
+
ide: "vscode",
|
|
12
|
+
ideVersion: "1.96.2",
|
|
13
|
+
platform: "darwin",
|
|
14
|
+
cwd: "/Users/user/project",
|
|
15
|
+
};
|
|
16
|
+
/** Cached session start timestamp — set once on first call, reused for the process lifetime. */
|
|
17
|
+
let cachedSessionStartTs;
|
|
18
|
+
function generateSessionBlock(opts) {
|
|
19
|
+
if (!cachedSessionStartTs) {
|
|
20
|
+
cachedSessionStartTs = new Date().toISOString();
|
|
21
|
+
}
|
|
22
|
+
return [
|
|
23
|
+
"<env>",
|
|
24
|
+
`Working directory: ${opts.cwd}`,
|
|
25
|
+
"Is directory a git repo: Yes",
|
|
26
|
+
`Platform: ${opts.platform}`,
|
|
27
|
+
`IDE: ${opts.ide} ${opts.ideVersion}`,
|
|
28
|
+
`Session start: ${cachedSessionStartTs}`,
|
|
29
|
+
"</env>",
|
|
30
|
+
].join("\n");
|
|
31
|
+
}
|
|
32
|
+
export function createSystemPromptInjector(options = {}) {
|
|
33
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
34
|
+
return {
|
|
35
|
+
name: "system-prompt-injector",
|
|
36
|
+
order: 30,
|
|
37
|
+
enabled: true,
|
|
38
|
+
async transformRequest(ctx) {
|
|
39
|
+
// Only apply to OAuth accounts — API key accounts skip session mimicry
|
|
40
|
+
if (ctx.account.type === "api_key") {
|
|
41
|
+
return ctx;
|
|
42
|
+
}
|
|
43
|
+
const sessionBlock = generateSessionBlock(opts);
|
|
44
|
+
const preamble = (options.preamble ?? "").trim();
|
|
45
|
+
const existingSystem = ctx.request.body.system;
|
|
46
|
+
// Build the injected text from preamble + session block
|
|
47
|
+
const injectedParts = [];
|
|
48
|
+
if (preamble) {
|
|
49
|
+
injectedParts.push(preamble);
|
|
50
|
+
}
|
|
51
|
+
injectedParts.push(sessionBlock);
|
|
52
|
+
const injectedText = injectedParts.join("\n\n");
|
|
53
|
+
let newSystem;
|
|
54
|
+
if (Array.isArray(existingSystem)) {
|
|
55
|
+
// Preserve structured blocks — prepend injected content as a new text block
|
|
56
|
+
const injectedBlock = { type: "text", text: injectedText };
|
|
57
|
+
newSystem = [
|
|
58
|
+
injectedBlock,
|
|
59
|
+
...existingSystem,
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// String or undefined — concatenate as before
|
|
64
|
+
const existing = typeof existingSystem === "string" ? existingSystem : "";
|
|
65
|
+
const parts = [injectedText];
|
|
66
|
+
if (existing) {
|
|
67
|
+
parts.push(existing);
|
|
68
|
+
}
|
|
69
|
+
newSystem = parts.join("\n\n");
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
...ctx,
|
|
73
|
+
request: {
|
|
74
|
+
...ctx.request,
|
|
75
|
+
body: {
|
|
76
|
+
...ctx.request.body,
|
|
77
|
+
system: newSystem,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=systemPromptInjector.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TlsFingerprint — optional TLS fingerprint mimicry (stub).
|
|
3
|
+
*
|
|
4
|
+
* In a full implementation this would configure the TLS ClientHello to
|
|
5
|
+
* match a known browser or CLI fingerprint (JA3/JA4), making the TLS
|
|
6
|
+
* handshake indistinguishable from a genuine Claude Code session.
|
|
7
|
+
*
|
|
8
|
+
* This is a placeholder: the transformRequest is a no-op pass-through.
|
|
9
|
+
* Real JA3 mimicry requires a native TLS library (e.g. curl-impersonate
|
|
10
|
+
* or a custom Node.js TLS agent), which is out of scope for the initial
|
|
11
|
+
* implementation.
|
|
12
|
+
*/
|
|
13
|
+
import type { CloakingPlugin, TlsFingerprintOptions } from "../../../types/index.js";
|
|
14
|
+
export declare function createTlsFingerprint(options?: TlsFingerprintOptions): CloakingPlugin;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TlsFingerprint — optional TLS fingerprint mimicry (stub).
|
|
3
|
+
*
|
|
4
|
+
* In a full implementation this would configure the TLS ClientHello to
|
|
5
|
+
* match a known browser or CLI fingerprint (JA3/JA4), making the TLS
|
|
6
|
+
* handshake indistinguishable from a genuine Claude Code session.
|
|
7
|
+
*
|
|
8
|
+
* This is a placeholder: the transformRequest is a no-op pass-through.
|
|
9
|
+
* Real JA3 mimicry requires a native TLS library (e.g. curl-impersonate
|
|
10
|
+
* or a custom Node.js TLS agent), which is out of scope for the initial
|
|
11
|
+
* implementation.
|
|
12
|
+
*/
|
|
13
|
+
import { logger } from "../../../utils/logger.js";
|
|
14
|
+
export function createTlsFingerprint(options = {}) {
|
|
15
|
+
const profile = options.profile ?? "claude-code";
|
|
16
|
+
const warnOnUse = options.warnOnUse ?? true;
|
|
17
|
+
let hasWarned = false;
|
|
18
|
+
return {
|
|
19
|
+
name: "tls-fingerprint",
|
|
20
|
+
order: 0,
|
|
21
|
+
// Stub — no real TLS mimicry is implemented; default-off to avoid misleading operators.
|
|
22
|
+
enabled: false,
|
|
23
|
+
async transformRequest(ctx) {
|
|
24
|
+
if (warnOnUse && !hasWarned) {
|
|
25
|
+
hasWarned = true;
|
|
26
|
+
logger.warn(`[tls-fingerprint] Stub: profile "${profile}" requested but TLS mimicry is not implemented.`);
|
|
27
|
+
}
|
|
28
|
+
// No-op: return context unchanged.
|
|
29
|
+
// A real implementation would attach a custom TLS agent to the
|
|
30
|
+
// request context here.
|
|
31
|
+
return ctx;
|
|
32
|
+
},
|
|
33
|
+
async transformResponse(ctx) {
|
|
34
|
+
// No-op pass-through
|
|
35
|
+
return ctx;
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=tlsFingerprint.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordObfuscator — inserts zero-width characters into sensitive words so
|
|
3
|
+
* that naive string-matching by upstream APIs cannot detect them.
|
|
4
|
+
*
|
|
5
|
+
* For example, "proxy" becomes "p\u200Broxy" (ZWS after the first character),
|
|
6
|
+
* making the text visually identical to humans but different at the byte level.
|
|
7
|
+
*/
|
|
8
|
+
import type { CloakingPlugin } from "../../../types/index.js";
|
|
9
|
+
export declare function createWordObfuscator(customWords?: string[]): CloakingPlugin;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordObfuscator — inserts zero-width characters into sensitive words so
|
|
3
|
+
* that naive string-matching by upstream APIs cannot detect them.
|
|
4
|
+
*
|
|
5
|
+
* For example, "proxy" becomes "p\u200Broxy" (ZWS after the first character),
|
|
6
|
+
* making the text visually identical to humans but different at the byte level.
|
|
7
|
+
*/
|
|
8
|
+
/** Unicode zero-width space (U+200B). */
|
|
9
|
+
const ZWS = "\u200B";
|
|
10
|
+
/**
|
|
11
|
+
* Insert a zero-width space after the first character.
|
|
12
|
+
* This defeats simple substring matching while preserving readability.
|
|
13
|
+
*/
|
|
14
|
+
function obfuscateWord(word) {
|
|
15
|
+
if (word.length <= 1) {
|
|
16
|
+
return word;
|
|
17
|
+
}
|
|
18
|
+
return word.charAt(0) + ZWS + word.slice(1);
|
|
19
|
+
}
|
|
20
|
+
function escapeRegExp(str) {
|
|
21
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Replace all case-insensitive occurrences of each sensitive word in `text`
|
|
25
|
+
* with the obfuscated version, preserving original casing.
|
|
26
|
+
*
|
|
27
|
+
* Words are sorted longest-first so that longer matches take priority over
|
|
28
|
+
* shorter substrings (e.g., "load balancer" matches before "load").
|
|
29
|
+
*/
|
|
30
|
+
function obfuscateText(text, sortedWords) {
|
|
31
|
+
let result = text;
|
|
32
|
+
for (const word of sortedWords) {
|
|
33
|
+
const pattern = new RegExp(escapeRegExp(word), "gi");
|
|
34
|
+
result = result.replace(pattern, (match) => obfuscateWord(match));
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
/** Default sensitive words that might reveal proxy usage. */
|
|
39
|
+
const DEFAULT_SENSITIVE_WORDS = [
|
|
40
|
+
"proxy",
|
|
41
|
+
"neurolink",
|
|
42
|
+
"load balancer",
|
|
43
|
+
"round-robin",
|
|
44
|
+
"failover",
|
|
45
|
+
"multi-account",
|
|
46
|
+
];
|
|
47
|
+
export function createWordObfuscator(customWords) {
|
|
48
|
+
const words = customWords ?? [...DEFAULT_SENSITIVE_WORDS];
|
|
49
|
+
// Sort longest-first so longer matches take priority
|
|
50
|
+
const sorted = [...words].sort((a, b) => b.length - a.length);
|
|
51
|
+
return {
|
|
52
|
+
name: "word-obfuscator",
|
|
53
|
+
order: 40,
|
|
54
|
+
enabled: true,
|
|
55
|
+
async transformRequest(ctx) {
|
|
56
|
+
const messages = ctx.request.body.messages.map((msg) => {
|
|
57
|
+
if (typeof msg.content === "string") {
|
|
58
|
+
return { ...msg, content: obfuscateText(msg.content, sorted) };
|
|
59
|
+
}
|
|
60
|
+
if (Array.isArray(msg.content)) {
|
|
61
|
+
const obfuscatedContent = msg.content.map((block) => {
|
|
62
|
+
if (block.type === "text" && typeof block.text === "string") {
|
|
63
|
+
return {
|
|
64
|
+
...block,
|
|
65
|
+
text: obfuscateText(block.text, sorted),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// Obfuscate tool_result content (string or nested blocks)
|
|
69
|
+
if (block.type === "tool_result") {
|
|
70
|
+
if (typeof block.content === "string") {
|
|
71
|
+
return {
|
|
72
|
+
...block,
|
|
73
|
+
content: obfuscateText(block.content, sorted),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
if (Array.isArray(block.content)) {
|
|
77
|
+
const obfuscatedBlocks = block.content.map((inner) => {
|
|
78
|
+
if (inner.type === "text" && typeof inner.text === "string") {
|
|
79
|
+
return {
|
|
80
|
+
...inner,
|
|
81
|
+
text: obfuscateText(inner.text, sorted),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return inner;
|
|
85
|
+
});
|
|
86
|
+
return { ...block, content: obfuscatedBlocks };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return block;
|
|
90
|
+
});
|
|
91
|
+
return { ...msg, content: obfuscatedContent };
|
|
92
|
+
}
|
|
93
|
+
return msg;
|
|
94
|
+
});
|
|
95
|
+
// Also obfuscate system prompt if present
|
|
96
|
+
let system = ctx.request.body.system;
|
|
97
|
+
if (typeof system === "string") {
|
|
98
|
+
system = obfuscateText(system, sorted);
|
|
99
|
+
}
|
|
100
|
+
else if (Array.isArray(system)) {
|
|
101
|
+
system = system.map((block) => {
|
|
102
|
+
if (block.type === "text" && typeof block.text === "string") {
|
|
103
|
+
return { ...block, text: obfuscateText(block.text, sorted) };
|
|
104
|
+
}
|
|
105
|
+
return block;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
...ctx,
|
|
110
|
+
request: {
|
|
111
|
+
...ctx.request,
|
|
112
|
+
body: {
|
|
113
|
+
...ctx.request.body,
|
|
114
|
+
messages,
|
|
115
|
+
...(system !== undefined ? { system } : {}),
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=wordObfuscator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { CloakingAccount, CloakingRequest, CloakingResponse, CloakingMode, CloakingContext, CloakingPlugin, CloakingConfig, HeaderScrubberOptions, SystemPromptInjectorOptions, TlsFingerprintOptions, } from "../../types/index.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FallbackEntry, ProxyRoutingConfig, RouteResult } from "../types/index.js";
|
|
2
|
+
export declare class ModelRouter {
|
|
3
|
+
private readonly mappings;
|
|
4
|
+
private readonly passthrough;
|
|
5
|
+
private readonly fallback;
|
|
6
|
+
constructor(config: ProxyRoutingConfig);
|
|
7
|
+
resolve(requestedModel: string): RouteResult;
|
|
8
|
+
isClaudeTarget(requestedModel: string): boolean;
|
|
9
|
+
getFallbackChain(): FallbackEntry[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class ModelRouter {
|
|
2
|
+
mappings;
|
|
3
|
+
passthrough;
|
|
4
|
+
fallback;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.mappings = new Map(config.modelMappings.map((m) => [m.from, m]));
|
|
7
|
+
this.passthrough = new Set(config.passthroughModels ?? []);
|
|
8
|
+
this.fallback = config.fallbackChain;
|
|
9
|
+
}
|
|
10
|
+
resolve(requestedModel) {
|
|
11
|
+
const mapping = this.mappings.get(requestedModel);
|
|
12
|
+
if (mapping) {
|
|
13
|
+
return { provider: mapping.provider, model: mapping.to };
|
|
14
|
+
}
|
|
15
|
+
if (this.passthrough.has(requestedModel)) {
|
|
16
|
+
return { provider: "anthropic", model: requestedModel };
|
|
17
|
+
}
|
|
18
|
+
if (requestedModel.startsWith("claude-")) {
|
|
19
|
+
return { provider: "anthropic", model: requestedModel };
|
|
20
|
+
}
|
|
21
|
+
return { provider: null, model: requestedModel };
|
|
22
|
+
}
|
|
23
|
+
isClaudeTarget(requestedModel) {
|
|
24
|
+
return this.resolve(requestedModel).provider === "anthropic";
|
|
25
|
+
}
|
|
26
|
+
getFallbackChain() {
|
|
27
|
+
return this.fallback;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=modelRouter.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared OAuth fetch wrapper for Anthropic API requests.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `providers/anthropic.ts` so that any provider or proxy layer
|
|
5
|
+
* that needs OAuth-authenticated Anthropic requests can reuse the same logic.
|
|
6
|
+
*
|
|
7
|
+
* Applies full "cloaking" to make requests indistinguishable from the
|
|
8
|
+
* official Claude CLI / CLIProxyAPI, which is required for OAuth + tools
|
|
9
|
+
* to work correctly.
|
|
10
|
+
*
|
|
11
|
+
* @module proxy/oauthFetch
|
|
12
|
+
*/
|
|
13
|
+
import { CLAUDE_CLI_USER_AGENT, MCP_TOOL_PREFIX } from "../auth/anthropicOAuth.js";
|
|
14
|
+
export { CLAUDE_CLI_USER_AGENT, MCP_TOOL_PREFIX };
|
|
15
|
+
/**
|
|
16
|
+
* Creates a custom fetch function for OAuth-authenticated requests.
|
|
17
|
+
* This wrapper applies all required transformations for OAuth mode:
|
|
18
|
+
* - Uses Authorization: Bearer header (NOT x-api-key)
|
|
19
|
+
* - Adds OAuth-required beta headers
|
|
20
|
+
* - Sets User-Agent to Claude CLI
|
|
21
|
+
* - Adds ?beta=true query parameter to /v1/messages
|
|
22
|
+
* - Injects billing header & agent block into system prompt
|
|
23
|
+
* - Injects fake user ID into metadata
|
|
24
|
+
* - Adds Stainless SDK headers for fingerprint matching
|
|
25
|
+
* - Disables thinking when tool_choice is forced
|
|
26
|
+
*
|
|
27
|
+
* Accepts a getter function instead of a static token so that refreshed
|
|
28
|
+
* tokens are picked up automatically on each request.
|
|
29
|
+
*
|
|
30
|
+
* @param getToken - Function returning the current OAuth access token
|
|
31
|
+
* @param includeOptionalBetas - Whether to include optional beta headers (default true)
|
|
32
|
+
* @param enableMcpPrefix - Whether to apply mcp_ prefix/strip logic to tool names (default false)
|
|
33
|
+
* @param skipBodyTransform - When true, skip ALL body modifications (billing header, user ID, tool prefix).
|
|
34
|
+
* Used for proxy passthrough where the request body must be forwarded as-is.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createOAuthFetch(getToken: () => string, includeOptionalBetas?: boolean, enableMcpPrefix?: boolean, skipBodyTransform?: boolean): typeof fetch;
|