@juspay/neurolink 9.32.0 → 9.32.1
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 +6 -0
- package/dist/auth/anthropicOAuth.js +1 -1
- package/dist/cli/commands/proxy.js +18 -5
- package/dist/client/aiSdkAdapter.js +1 -1
- package/dist/client/index.js +137 -501
- package/dist/core/factory.js +0 -1
- package/dist/core/redisConversationMemoryManager.js +1 -1
- package/dist/features/ppt/slideGenerator.js +0 -1
- package/dist/features/ppt/utils.js +0 -1
- package/dist/lib/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/mcp/elicitationProtocol.js +1 -1
- package/dist/mcp/servers/agent/directToolsServer.js +0 -1
- package/dist/providers/azureOpenai.js +1 -1
- package/dist/providers/huggingFace.js +0 -1
- package/dist/providers/openaiCompatible.js +0 -1
- package/dist/sdk/toolRegistration.js +0 -1
- package/dist/server/openapi/generator.js +1 -1
- package/dist/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/types/configTypes.js +0 -5
- package/dist/types/modelTypes.js +0 -1
- package/dist/types/tools.js +0 -1
- package/dist/types/typeAliases.js +0 -1
- package/dist/types/utilities.js +1 -1
- package/dist/types/workflowTypes.js +0 -1
- package/dist/utils/providerRetry.js +0 -1
- package/dist/utils/providerUtils.js +0 -1
- package/package.json +2 -2
- package/dist/client/adapters/providerImageAdapter.js +0 -588
- package/dist/client/adapters/tts/googleTTSHandler.js +0 -344
- package/dist/client/adapters/video/directorPipeline.js +0 -516
- package/dist/client/adapters/video/ffmpegAdapter.js +0 -206
- package/dist/client/adapters/video/frameExtractor.js +0 -143
- package/dist/client/adapters/video/vertexVideoHandler.js +0 -763
- package/dist/client/adapters/video/videoAnalyzer.js +0 -238
- package/dist/client/adapters/video/videoMerger.js +0 -171
- package/dist/client/agent/directTools.js +0 -840
- package/dist/client/auth/AuthProviderFactory.js +0 -111
- package/dist/client/auth/AuthProviderRegistry.js +0 -190
- package/dist/client/auth/RequestContext.js +0 -78
- package/dist/client/auth/accountPool.js +0 -178
- package/dist/client/auth/anthropicOAuth.js +0 -974
- package/dist/client/auth/authContext.js +0 -314
- package/dist/client/auth/errors.js +0 -39
- package/dist/client/auth/index.js +0 -61
- package/dist/client/auth/middleware/AuthMiddleware.js +0 -519
- package/dist/client/auth/middleware/rateLimitByUser.js +0 -554
- package/dist/client/auth/providers/BaseAuthProvider.js +0 -723
- package/dist/client/auth/providers/CognitoProvider.js +0 -304
- package/dist/client/auth/providers/KeycloakProvider.js +0 -393
- package/dist/client/auth/providers/auth0.js +0 -274
- package/dist/client/auth/providers/betterAuth.js +0 -182
- package/dist/client/auth/providers/clerk.js +0 -317
- package/dist/client/auth/providers/custom.js +0 -112
- package/dist/client/auth/providers/firebase.js +0 -226
- package/dist/client/auth/providers/jwt.js +0 -212
- package/dist/client/auth/providers/oauth2.js +0 -303
- package/dist/client/auth/providers/supabase.js +0 -259
- package/dist/client/auth/providers/workos.js +0 -284
- package/dist/client/auth/serverBridge.js +0 -25
- package/dist/client/auth/sessionManager.js +0 -437
- package/dist/client/auth/tokenStore.js +0 -799
- package/dist/client/client/aiSdkAdapter.js +0 -487
- package/dist/client/client/auth.js +0 -473
- package/dist/client/client/errors.js +0 -552
- package/dist/client/client/httpClient.js +0 -837
- package/dist/client/client/index.js +0 -172
- package/dist/client/client/interceptors.js +0 -601
- package/dist/client/client/sseClient.js +0 -545
- package/dist/client/client/streamingClient.js +0 -917
- package/dist/client/client/wsClient.js +0 -369
- package/dist/client/config/configManager.js +0 -303
- package/dist/client/config/conversationMemory.js +0 -86
- package/dist/client/config/taskClassificationConfig.js +0 -148
- package/dist/client/constants/contextWindows.js +0 -295
- package/dist/client/constants/enums.js +0 -853
- package/dist/client/constants/index.js +0 -207
- package/dist/client/constants/performance.js +0 -389
- package/dist/client/constants/retry.js +0 -266
- package/dist/client/constants/timeouts.js +0 -182
- package/dist/client/constants/tokens.js +0 -380
- package/dist/client/constants/videoErrors.js +0 -46
- package/dist/client/context/budgetChecker.js +0 -98
- package/dist/client/context/contextCompactor.js +0 -205
- package/dist/client/context/emergencyTruncation.js +0 -88
- package/dist/client/context/errorDetection.js +0 -171
- package/dist/client/context/errors.js +0 -21
- package/dist/client/context/fileTokenBudget.js +0 -127
- package/dist/client/context/prompts/summarizationPrompt.js +0 -117
- package/dist/client/context/stages/fileReadDeduplicator.js +0 -66
- package/dist/client/context/stages/slidingWindowTruncator.js +0 -190
- package/dist/client/context/stages/structuredSummarizer.js +0 -99
- package/dist/client/context/stages/toolOutputPruner.js +0 -52
- package/dist/client/context/summarizationEngine.js +0 -136
- package/dist/client/context/toolOutputLimits.js +0 -78
- package/dist/client/context/toolPairRepair.js +0 -66
- package/dist/client/core/analytics.js +0 -88
- package/dist/client/core/baseProvider.js +0 -1385
- package/dist/client/core/constants.js +0 -140
- package/dist/client/core/conversationMemoryFactory.js +0 -141
- package/dist/client/core/conversationMemoryInitializer.js +0 -128
- package/dist/client/core/conversationMemoryManager.js +0 -344
- package/dist/client/core/dynamicModels.js +0 -358
- package/dist/client/core/evaluation.js +0 -309
- package/dist/client/core/evaluationProviders.js +0 -248
- package/dist/client/core/factory.js +0 -412
- package/dist/client/core/infrastructure/baseError.js +0 -22
- package/dist/client/core/infrastructure/baseFactory.js +0 -54
- package/dist/client/core/infrastructure/baseRegistry.js +0 -53
- package/dist/client/core/infrastructure/index.js +0 -5
- package/dist/client/core/infrastructure/retry.js +0 -20
- package/dist/client/core/infrastructure/typedEventEmitter.js +0 -23
- package/dist/client/core/modelConfiguration.js +0 -851
- package/dist/client/core/modules/GenerationHandler.js +0 -588
- package/dist/client/core/modules/MessageBuilder.js +0 -273
- package/dist/client/core/modules/StreamHandler.js +0 -185
- package/dist/client/core/modules/TelemetryHandler.js +0 -203
- package/dist/client/core/modules/ToolsManager.js +0 -499
- package/dist/client/core/modules/Utilities.js +0 -331
- package/dist/client/core/redisConversationMemoryManager.js +0 -1435
- package/dist/client/core/streamAnalytics.js +0 -131
- package/dist/client/evaluation/contextBuilder.js +0 -134
- package/dist/client/evaluation/index.js +0 -61
- package/dist/client/evaluation/prompts.js +0 -73
- package/dist/client/evaluation/ragasEvaluator.js +0 -110
- package/dist/client/evaluation/retryManager.js +0 -78
- package/dist/client/evaluation/scoring.js +0 -61
- package/dist/client/factories/providerFactory.js +0 -166
- package/dist/client/factories/providerRegistry.js +0 -166
- package/dist/client/features/ppt/constants.js +0 -896
- package/dist/client/features/ppt/contentPlanner.js +0 -529
- package/dist/client/features/ppt/presentationOrchestrator.js +0 -236
- package/dist/client/features/ppt/slideGenerator.js +0 -532
- package/dist/client/features/ppt/slideRenderers.js +0 -2383
- package/dist/client/features/ppt/slideTypeInference.js +0 -405
- package/dist/client/features/ppt/types.js +0 -13
- package/dist/client/features/ppt/utils.js +0 -443
- package/dist/client/files/fileReferenceRegistry.js +0 -1543
- package/dist/client/files/fileTools.js +0 -450
- package/dist/client/files/streamingReader.js +0 -321
- package/dist/client/files/types.js +0 -23
- package/dist/client/hitl/hitlErrors.js +0 -54
- package/dist/client/hitl/hitlManager.js +0 -460
- package/dist/client/mcp/agentExposure.js +0 -356
- package/dist/client/mcp/auth/index.js +0 -11
- package/dist/client/mcp/auth/oauthClientProvider.js +0 -325
- package/dist/client/mcp/auth/tokenStorage.js +0 -134
- package/dist/client/mcp/batching/index.js +0 -10
- package/dist/client/mcp/batching/requestBatcher.js +0 -441
- package/dist/client/mcp/caching/index.js +0 -10
- package/dist/client/mcp/caching/toolCache.js +0 -433
- package/dist/client/mcp/elicitation/elicitationManager.js +0 -376
- package/dist/client/mcp/elicitation/index.js +0 -11
- package/dist/client/mcp/elicitation/types.js +0 -10
- package/dist/client/mcp/elicitationProtocol.js +0 -375
- package/dist/client/mcp/enhancedToolDiscovery.js +0 -481
- package/dist/client/mcp/externalServerManager.js +0 -1478
- package/dist/client/mcp/factory.js +0 -161
- package/dist/client/mcp/flexibleToolValidator.js +0 -161
- package/dist/client/mcp/httpRateLimiter.js +0 -391
- package/dist/client/mcp/httpRetryHandler.js +0 -178
- package/dist/client/mcp/index.js +0 -74
- package/dist/client/mcp/mcpCircuitBreaker.js +0 -427
- package/dist/client/mcp/mcpClientFactory.js +0 -708
- package/dist/client/mcp/mcpRegistryClient.js +0 -488
- package/dist/client/mcp/mcpServerBase.js +0 -373
- package/dist/client/mcp/multiServerManager.js +0 -579
- package/dist/client/mcp/registry.js +0 -158
- package/dist/client/mcp/routing/index.js +0 -10
- package/dist/client/mcp/routing/toolRouter.js +0 -416
- package/dist/client/mcp/serverCapabilities.js +0 -502
- package/dist/client/mcp/servers/agent/directToolsServer.js +0 -150
- package/dist/client/mcp/toolAnnotations.js +0 -239
- package/dist/client/mcp/toolConverter.js +0 -258
- package/dist/client/mcp/toolDiscoveryService.js +0 -798
- package/dist/client/mcp/toolIntegration.js +0 -334
- package/dist/client/mcp/toolRegistry.js +0 -729
- package/dist/client/memory/hippocampusInitializer.js +0 -19
- package/dist/client/memory/memoryRetrievalTools.js +0 -166
- package/dist/client/middleware/builtin/analytics.js +0 -132
- package/dist/client/middleware/builtin/autoEvaluation.js +0 -203
- package/dist/client/middleware/builtin/guardrails.js +0 -109
- package/dist/client/middleware/builtin/lifecycle.js +0 -168
- package/dist/client/middleware/factory.js +0 -327
- package/dist/client/middleware/registry.js +0 -295
- package/dist/client/middleware/utils/guardrailsUtils.js +0 -396
- package/dist/client/models/anthropicModels.js +0 -527
- package/dist/client/neurolink.js +0 -8233
- package/dist/client/observability/exporterRegistry.js +0 -413
- package/dist/client/observability/exporters/arizeExporter.js +0 -138
- package/dist/client/observability/exporters/baseExporter.js +0 -190
- package/dist/client/observability/exporters/braintrustExporter.js +0 -154
- package/dist/client/observability/exporters/datadogExporter.js +0 -196
- package/dist/client/observability/exporters/laminarExporter.js +0 -302
- package/dist/client/observability/exporters/langfuseExporter.js +0 -209
- package/dist/client/observability/exporters/langsmithExporter.js +0 -143
- package/dist/client/observability/exporters/otelExporter.js +0 -164
- package/dist/client/observability/exporters/posthogExporter.js +0 -287
- package/dist/client/observability/exporters/sentryExporter.js +0 -165
- package/dist/client/observability/index.js +0 -31
- package/dist/client/observability/metricsAggregator.js +0 -556
- package/dist/client/observability/otelBridge.js +0 -131
- package/dist/client/observability/retryPolicy.js +0 -383
- package/dist/client/observability/sampling/samplers.js +0 -216
- package/dist/client/observability/spanProcessor.js +0 -303
- package/dist/client/observability/tokenTracker.js +0 -413
- package/dist/client/observability/types/exporterTypes.js +0 -5
- package/dist/client/observability/types/index.js +0 -4
- package/dist/client/observability/types/spanTypes.js +0 -92
- package/dist/client/observability/utils/safeMetadata.js +0 -25
- package/dist/client/observability/utils/spanSerializer.js +0 -292
- package/dist/client/processors/archive/ArchiveProcessor.js +0 -1308
- package/dist/client/processors/base/BaseFileProcessor.js +0 -614
- package/dist/client/processors/base/types.js +0 -82
- package/dist/client/processors/config/fileTypes.js +0 -520
- package/dist/client/processors/config/index.js +0 -92
- package/dist/client/processors/config/languageMap.js +0 -410
- package/dist/client/processors/config/mimeTypes.js +0 -363
- package/dist/client/processors/config/sizeLimits.js +0 -258
- package/dist/client/processors/document/ExcelProcessor.js +0 -590
- package/dist/client/processors/document/OpenDocumentProcessor.js +0 -212
- package/dist/client/processors/document/PptxProcessor.js +0 -157
- package/dist/client/processors/document/RtfProcessor.js +0 -361
- package/dist/client/processors/document/WordProcessor.js +0 -353
- package/dist/client/processors/errors/FileErrorCode.js +0 -255
- package/dist/client/processors/errors/errorHelpers.js +0 -386
- package/dist/client/processors/errors/errorSerializer.js +0 -507
- package/dist/client/processors/errors/index.js +0 -49
- package/dist/client/processors/markup/SvgProcessor.js +0 -240
- package/dist/client/processors/media/AudioProcessor.js +0 -707
- package/dist/client/processors/media/VideoProcessor.js +0 -1045
- package/dist/client/providers/amazonBedrock.js +0 -1512
- package/dist/client/providers/amazonSagemaker.js +0 -162
- package/dist/client/providers/anthropic.js +0 -831
- package/dist/client/providers/azureOpenai.js +0 -143
- package/dist/client/providers/googleAiStudio.js +0 -1200
- package/dist/client/providers/googleNativeGemini3.js +0 -543
- package/dist/client/providers/googleVertex.js +0 -2936
- package/dist/client/providers/huggingFace.js +0 -315
- package/dist/client/providers/litellm.js +0 -488
- package/dist/client/providers/mistral.js +0 -157
- package/dist/client/providers/ollama.js +0 -1579
- package/dist/client/providers/openAI.js +0 -627
- package/dist/client/providers/openRouter.js +0 -543
- package/dist/client/providers/openaiCompatible.js +0 -290
- package/dist/client/providers/providerTypeUtils.js +0 -46
- package/dist/client/providers/sagemaker/adaptive-semaphore.js +0 -215
- package/dist/client/providers/sagemaker/client.js +0 -472
- package/dist/client/providers/sagemaker/config.js +0 -317
- package/dist/client/providers/sagemaker/detection.js +0 -606
- package/dist/client/providers/sagemaker/error-constants.js +0 -227
- package/dist/client/providers/sagemaker/errors.js +0 -299
- package/dist/client/providers/sagemaker/language-model.js +0 -775
- package/dist/client/providers/sagemaker/parsers.js +0 -634
- package/dist/client/providers/sagemaker/streaming.js +0 -331
- package/dist/client/providers/sagemaker/structured-parser.js +0 -625
- package/dist/client/proxy/accountQuota.js +0 -162
- package/dist/client/proxy/claudeFormat.js +0 -595
- package/dist/client/proxy/modelRouter.js +0 -29
- package/dist/client/proxy/oauthFetch.js +0 -367
- package/dist/client/proxy/proxyFetch.js +0 -586
- package/dist/client/proxy/requestLogger.js +0 -207
- package/dist/client/proxy/tokenRefresh.js +0 -124
- package/dist/client/proxy/usageStats.js +0 -74
- package/dist/client/proxy/utils/noProxyUtils.js +0 -149
- package/dist/client/rag/ChunkerFactory.js +0 -320
- package/dist/client/rag/ChunkerRegistry.js +0 -421
- package/dist/client/rag/chunkers/BaseChunker.js +0 -143
- package/dist/client/rag/chunkers/CharacterChunker.js +0 -28
- package/dist/client/rag/chunkers/HTMLChunker.js +0 -38
- package/dist/client/rag/chunkers/JSONChunker.js +0 -68
- package/dist/client/rag/chunkers/LaTeXChunker.js +0 -63
- package/dist/client/rag/chunkers/MarkdownChunker.js +0 -306
- package/dist/client/rag/chunkers/RecursiveChunker.js +0 -139
- package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +0 -138
- package/dist/client/rag/chunkers/SentenceChunker.js +0 -66
- package/dist/client/rag/chunkers/TokenChunker.js +0 -61
- package/dist/client/rag/chunkers/index.js +0 -15
- package/dist/client/rag/chunking/characterChunker.js +0 -142
- package/dist/client/rag/chunking/chunkerRegistry.js +0 -194
- package/dist/client/rag/chunking/htmlChunker.js +0 -247
- package/dist/client/rag/chunking/index.js +0 -17
- package/dist/client/rag/chunking/jsonChunker.js +0 -281
- package/dist/client/rag/chunking/latexChunker.js +0 -251
- package/dist/client/rag/chunking/markdownChunker.js +0 -373
- package/dist/client/rag/chunking/recursiveChunker.js +0 -148
- package/dist/client/rag/chunking/semanticChunker.js +0 -306
- package/dist/client/rag/chunking/sentenceChunker.js +0 -230
- package/dist/client/rag/chunking/tokenChunker.js +0 -183
- package/dist/client/rag/document/MDocument.js +0 -392
- package/dist/client/rag/document/index.js +0 -5
- package/dist/client/rag/document/loaders.js +0 -500
- package/dist/client/rag/errors/RAGError.js +0 -274
- package/dist/client/rag/errors/index.js +0 -6
- package/dist/client/rag/graphRag/graphRAG.js +0 -401
- package/dist/client/rag/graphRag/index.js +0 -4
- package/dist/client/rag/index.js +0 -141
- package/dist/client/rag/metadata/MetadataExtractorFactory.js +0 -418
- package/dist/client/rag/metadata/MetadataExtractorRegistry.js +0 -362
- package/dist/client/rag/metadata/index.js +0 -9
- package/dist/client/rag/metadata/metadataExtractor.js +0 -280
- package/dist/client/rag/pipeline/RAGPipeline.js +0 -436
- package/dist/client/rag/pipeline/contextAssembly.js +0 -341
- package/dist/client/rag/pipeline/index.js +0 -5
- package/dist/client/rag/ragIntegration.js +0 -321
- package/dist/client/rag/reranker/RerankerFactory.js +0 -430
- package/dist/client/rag/reranker/RerankerRegistry.js +0 -402
- package/dist/client/rag/reranker/index.js +0 -9
- package/dist/client/rag/reranker/reranker.js +0 -277
- package/dist/client/rag/resilience/CircuitBreaker.js +0 -431
- package/dist/client/rag/resilience/RetryHandler.js +0 -304
- package/dist/client/rag/resilience/index.js +0 -7
- package/dist/client/rag/retrieval/hybridSearch.js +0 -335
- package/dist/client/rag/retrieval/index.js +0 -5
- package/dist/client/rag/retrieval/vectorQueryTool.js +0 -307
- package/dist/client/rag/types.js +0 -8
- package/dist/client/sdk/toolRegistration.js +0 -377
- package/dist/client/server/abstract/baseServerAdapter.js +0 -575
- package/dist/client/server/adapters/expressAdapter.js +0 -486
- package/dist/client/server/adapters/fastifyAdapter.js +0 -472
- package/dist/client/server/adapters/honoAdapter.js +0 -632
- package/dist/client/server/adapters/koaAdapter.js +0 -510
- package/dist/client/server/errors.js +0 -486
- package/dist/client/server/factory/serverAdapterFactory.js +0 -160
- package/dist/client/server/index.js +0 -108
- package/dist/client/server/middleware/abortSignal.js +0 -111
- package/dist/client/server/middleware/auth.js +0 -388
- package/dist/client/server/middleware/cache.js +0 -359
- package/dist/client/server/middleware/common.js +0 -281
- package/dist/client/server/middleware/deprecation.js +0 -190
- package/dist/client/server/middleware/mcpBodyAttachment.js +0 -63
- package/dist/client/server/middleware/rateLimit.js +0 -227
- package/dist/client/server/middleware/validation.js +0 -388
- package/dist/client/server/openapi/generator.js +0 -398
- package/dist/client/server/openapi/index.js +0 -36
- package/dist/client/server/openapi/schemas.js +0 -695
- package/dist/client/server/openapi/templates.js +0 -374
- package/dist/client/server/routes/agentRoutes.js +0 -189
- package/dist/client/server/routes/claudeProxyRoutes.js +0 -1600
- package/dist/client/server/routes/healthRoutes.js +0 -187
- package/dist/client/server/routes/index.js +0 -57
- package/dist/client/server/routes/mcpRoutes.js +0 -342
- package/dist/client/server/routes/memoryRoutes.js +0 -350
- package/dist/client/server/routes/openApiRoutes.js +0 -126
- package/dist/client/server/routes/toolRoutes.js +0 -199
- package/dist/client/server/streaming/dataStream.js +0 -486
- package/dist/client/server/streaming/index.js +0 -11
- package/dist/client/server/types.js +0 -67
- package/dist/client/server/utils/redaction.js +0 -334
- package/dist/client/server/utils/validation.js +0 -243
- package/dist/client/server/websocket/WebSocketHandler.js +0 -383
- package/dist/client/server/websocket/index.js +0 -4
- package/dist/client/services/server/ai/observability/instrumentation.js +0 -808
- package/dist/client/telemetry/attributes.js +0 -100
- package/dist/client/telemetry/index.js +0 -26
- package/dist/client/telemetry/telemetryService.js +0 -308
- package/dist/client/telemetry/tracers.js +0 -17
- package/dist/client/telemetry/withSpan.js +0 -34
- package/dist/client/types/actionTypes.js +0 -6
- package/dist/client/types/analytics.js +0 -5
- package/dist/client/types/authTypes.js +0 -9
- package/dist/client/types/circuitBreakerErrors.js +0 -34
- package/dist/client/types/cli.js +0 -21
- package/dist/client/types/clientTypes.js +0 -10
- package/dist/client/types/common.js +0 -51
- package/dist/client/types/configTypes.js +0 -49
- package/dist/client/types/content.js +0 -19
- package/dist/client/types/contextTypes.js +0 -400
- package/dist/client/types/conversation.js +0 -47
- package/dist/client/types/conversationMemoryInterface.js +0 -6
- package/dist/client/types/domainTypes.js +0 -5
- package/dist/client/types/errors.js +0 -167
- package/dist/client/types/evaluation.js +0 -5
- package/dist/client/types/evaluationProviders.js +0 -5
- package/dist/client/types/evaluationTypes.js +0 -1
- package/dist/client/types/externalMcp.js +0 -6
- package/dist/client/types/fileReferenceTypes.js +0 -8
- package/dist/client/types/fileTypes.js +0 -4
- package/dist/client/types/generateTypes.js +0 -1
- package/dist/client/types/guardrails.js +0 -1
- package/dist/client/types/hitlTypes.js +0 -8
- package/dist/client/types/index.js +0 -57
- package/dist/client/types/mcpTypes.js +0 -5
- package/dist/client/types/middlewareTypes.js +0 -1
- package/dist/client/types/modelTypes.js +0 -30
- package/dist/client/types/multimodal.js +0 -135
- package/dist/client/types/observability.js +0 -6
- package/dist/client/types/pptTypes.js +0 -82
- package/dist/client/types/providers.js +0 -111
- package/dist/client/types/proxyTypes.js +0 -16
- package/dist/client/types/ragTypes.js +0 -7
- package/dist/client/types/sdkTypes.js +0 -8
- package/dist/client/types/serviceTypes.js +0 -5
- package/dist/client/types/streamTypes.js +0 -1
- package/dist/client/types/subscriptionTypes.js +0 -9
- package/dist/client/types/taskClassificationTypes.js +0 -5
- package/dist/client/types/tools.js +0 -24
- package/dist/client/types/ttsTypes.js +0 -57
- package/dist/client/types/typeAliases.js +0 -48
- package/dist/client/types/utilities.js +0 -4
- package/dist/client/types/workflowTypes.js +0 -30
- package/dist/client/utils/async/withTimeout.js +0 -98
- package/dist/client/utils/asyncMutex.js +0 -60
- package/dist/client/utils/conversationMemory.js +0 -431
- package/dist/client/utils/csvProcessor.js +0 -846
- package/dist/client/utils/errorHandling.js +0 -936
- package/dist/client/utils/evaluationUtils.js +0 -131
- package/dist/client/utils/factoryProcessing.js +0 -589
- package/dist/client/utils/fileDetector.js +0 -2161
- package/dist/client/utils/imageCache.js +0 -376
- package/dist/client/utils/imageProcessor.js +0 -704
- package/dist/client/utils/logger.js +0 -491
- package/dist/client/utils/mcpDefaults.js +0 -134
- package/dist/client/utils/messageBuilder.js +0 -1653
- package/dist/client/utils/modelAliasResolver.js +0 -54
- package/dist/client/utils/modelDetection.js +0 -80
- package/dist/client/utils/modelRouter.js +0 -292
- package/dist/client/utils/multimodalOptionsBuilder.js +0 -65
- package/dist/client/utils/observabilityHelpers.js +0 -47
- package/dist/client/utils/parameterValidation.js +0 -966
- package/dist/client/utils/pdfProcessor.js +0 -410
- package/dist/client/utils/performance.js +0 -222
- package/dist/client/utils/pricing.js +0 -340
- package/dist/client/utils/promptRedaction.js +0 -62
- package/dist/client/utils/providerConfig.js +0 -1009
- package/dist/client/utils/providerHealth.js +0 -1237
- package/dist/client/utils/providerRetry.js +0 -112
- package/dist/client/utils/providerUtils.js +0 -434
- package/dist/client/utils/rateLimiter.js +0 -200
- package/dist/client/utils/redis.js +0 -368
- package/dist/client/utils/retryHandler.js +0 -269
- package/dist/client/utils/retryability.js +0 -22
- package/dist/client/utils/sanitizers/svg.js +0 -481
- package/dist/client/utils/schemaConversion.js +0 -255
- package/dist/client/utils/taskClassificationUtils.js +0 -149
- package/dist/client/utils/taskClassifier.js +0 -94
- package/dist/client/utils/thinkingConfig.js +0 -104
- package/dist/client/utils/timeout.js +0 -359
- package/dist/client/utils/tokenEstimation.js +0 -142
- package/dist/client/utils/tokenLimits.js +0 -125
- package/dist/client/utils/tokenUtils.js +0 -239
- package/dist/client/utils/toolUtils.js +0 -75
- package/dist/client/utils/transformationUtils.js +0 -554
- package/dist/client/utils/ttsProcessor.js +0 -286
- package/dist/client/utils/typeUtils.js +0 -97
- package/dist/client/utils/videoAnalysisProcessor.js +0 -67
- package/dist/client/workflow/config.js +0 -398
- package/dist/client/workflow/core/ensembleExecutor.js +0 -407
- package/dist/client/workflow/core/judgeScorer.js +0 -544
- package/dist/client/workflow/core/responseConditioner.js +0 -225
- package/dist/client/workflow/core/types/conditionerTypes.js +0 -7
- package/dist/client/workflow/core/types/ensembleTypes.js +0 -7
- package/dist/client/workflow/core/types/index.js +0 -7
- package/dist/client/workflow/core/types/judgeTypes.js +0 -7
- package/dist/client/workflow/core/types/layerTypes.js +0 -7
- package/dist/client/workflow/core/types/registryTypes.js +0 -7
- package/dist/client/workflow/core/workflowRegistry.js +0 -304
- package/dist/client/workflow/core/workflowRunner.js +0 -586
- package/dist/client/workflow/index.js +0 -50
- package/dist/client/workflow/types.js +0 -9
- package/dist/client/workflow/utils/types/index.js +0 -7
- package/dist/client/workflow/utils/workflowMetrics.js +0 -311
- package/dist/client/workflow/utils/workflowValidation.js +0 -420
- package/dist/client/workflow/workflows/adaptiveWorkflow.js +0 -366
- package/dist/client/workflow/workflows/consensusWorkflow.js +0 -192
- package/dist/client/workflow/workflows/fallbackWorkflow.js +0 -225
- package/dist/client/workflow/workflows/multiJudgeWorkflow.js +0 -351
- /package/dist/client/{client/reactHooks.js → reactHooks.js} +0 -0
|
@@ -1,554 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Object Transformation Utilities
|
|
3
|
-
* Centralizes repeated object transformation patterns to improve code reuse and maintainability
|
|
4
|
-
*/
|
|
5
|
-
import { logger } from "./logger.js";
|
|
6
|
-
import { inlineJsonSchema } from "./schemaConversion.js";
|
|
7
|
-
// ============================================================================
|
|
8
|
-
// TOOL EXECUTION TRANSFORMATIONS
|
|
9
|
-
// ============================================================================
|
|
10
|
-
/**
|
|
11
|
-
* Transform tool execution results from AI SDK format to NeuroLink GenerateResult format
|
|
12
|
-
* Handles both single execution and array formats with robust type checking
|
|
13
|
-
*
|
|
14
|
-
* @param toolExecutions - Array of tool execution results from AI SDK (optional)
|
|
15
|
-
* @returns Array of standardized tool execution objects with name, input, output, and duration
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const executions = transformToolExecutions([
|
|
20
|
-
* { name: "calculator", input: { a: 5, b: 3 }, output: 8, duration: 150 }
|
|
21
|
-
* ]);
|
|
22
|
-
* // Returns: [{ name: "calculator", input: { a: 5, b: 3 }, output: 8, duration: 150 }]
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export function transformToolExecutions(toolExecutions) {
|
|
26
|
-
if (!toolExecutions || !Array.isArray(toolExecutions)) {
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
return toolExecutions.map((te, index) => {
|
|
30
|
-
const teRecord = te;
|
|
31
|
-
// Enhanced tool name extraction with multiple fallback strategies
|
|
32
|
-
let toolName = teRecord.name ||
|
|
33
|
-
teRecord.toolName ||
|
|
34
|
-
teRecord.tool ||
|
|
35
|
-
"";
|
|
36
|
-
// If still no name, try to extract from nested objects
|
|
37
|
-
if (!toolName &&
|
|
38
|
-
teRecord.toolCall &&
|
|
39
|
-
typeof teRecord.toolCall === "object") {
|
|
40
|
-
const toolCall = teRecord.toolCall;
|
|
41
|
-
toolName =
|
|
42
|
-
toolCall.name || toolCall.toolName || "";
|
|
43
|
-
}
|
|
44
|
-
// Last resort: use index-based fallback to avoid "Unknown Tool"
|
|
45
|
-
if (!toolName) {
|
|
46
|
-
toolName = `tool_execution_${index}`;
|
|
47
|
-
}
|
|
48
|
-
// Enhanced tool parameter extraction with structured logging
|
|
49
|
-
const parameterExtractionData = {
|
|
50
|
-
executionIndex: index,
|
|
51
|
-
toolNameExtracted: toolName,
|
|
52
|
-
primarySources: {
|
|
53
|
-
hasInput: !!teRecord.input,
|
|
54
|
-
hasParameters: !!teRecord.parameters,
|
|
55
|
-
hasArgs: !!teRecord.args,
|
|
56
|
-
inputType: typeof teRecord.input,
|
|
57
|
-
parametersType: typeof teRecord.parameters,
|
|
58
|
-
argsType: typeof teRecord.args,
|
|
59
|
-
},
|
|
60
|
-
rawRecordKeys: Object.keys(teRecord),
|
|
61
|
-
};
|
|
62
|
-
logger.debug("[TransformationUtils] Tool parameter extraction analysis", parameterExtractionData);
|
|
63
|
-
// Enhanced input extraction
|
|
64
|
-
let input = teRecord.input ||
|
|
65
|
-
teRecord.parameters ||
|
|
66
|
-
teRecord.args ||
|
|
67
|
-
{};
|
|
68
|
-
const primaryExtractionResult = {
|
|
69
|
-
keysCount: Object.keys(input).length,
|
|
70
|
-
keys: Object.keys(input),
|
|
71
|
-
extractionSuccessful: Object.keys(input).length > 0,
|
|
72
|
-
extractionSource: teRecord.input
|
|
73
|
-
? "input"
|
|
74
|
-
: teRecord.parameters
|
|
75
|
-
? "parameters"
|
|
76
|
-
: teRecord.args
|
|
77
|
-
? "args"
|
|
78
|
-
: "empty",
|
|
79
|
-
};
|
|
80
|
-
logger.debug("[TransformationUtils] Primary parameter extraction result", primaryExtractionResult);
|
|
81
|
-
// Extract input from nested toolCall if available
|
|
82
|
-
if (Object.keys(input).length === 0 &&
|
|
83
|
-
teRecord.toolCall &&
|
|
84
|
-
typeof teRecord.toolCall === "object") {
|
|
85
|
-
const toolCall = teRecord.toolCall;
|
|
86
|
-
const nestedExtractionData = {
|
|
87
|
-
reason: "Primary extraction failed, checking nested toolCall",
|
|
88
|
-
nestedSources: {
|
|
89
|
-
hasInput: !!toolCall.input,
|
|
90
|
-
hasParameters: !!toolCall.parameters,
|
|
91
|
-
hasArgs: !!toolCall.args,
|
|
92
|
-
},
|
|
93
|
-
toolCallKeys: Object.keys(toolCall),
|
|
94
|
-
};
|
|
95
|
-
logger.debug("[TransformationUtils] Nested parameter extraction attempt", nestedExtractionData);
|
|
96
|
-
input =
|
|
97
|
-
toolCall.input ||
|
|
98
|
-
toolCall.parameters ||
|
|
99
|
-
toolCall.args ||
|
|
100
|
-
{};
|
|
101
|
-
const nestedExtractionResult = {
|
|
102
|
-
keysCount: Object.keys(input).length,
|
|
103
|
-
keys: Object.keys(input),
|
|
104
|
-
extractionSuccessful: Object.keys(input).length > 0,
|
|
105
|
-
extractionSource: toolCall.input
|
|
106
|
-
? "toolCall.input"
|
|
107
|
-
: toolCall.parameters
|
|
108
|
-
? "toolCall.parameters"
|
|
109
|
-
: toolCall.args
|
|
110
|
-
? "toolCall.args"
|
|
111
|
-
: "empty",
|
|
112
|
-
};
|
|
113
|
-
logger.debug("[TransformationUtils] Nested parameter extraction result", nestedExtractionResult);
|
|
114
|
-
}
|
|
115
|
-
// Target tool parameter analysis for critical tools
|
|
116
|
-
if (toolName &&
|
|
117
|
-
(toolName.includes("SuccessRateSRByTime") ||
|
|
118
|
-
toolName.includes("juspay-analytics"))) {
|
|
119
|
-
const targetToolAnalysis = {
|
|
120
|
-
toolName,
|
|
121
|
-
inputKeys: Object.keys(input),
|
|
122
|
-
keysCount: Object.keys(input).length,
|
|
123
|
-
hasStartTime: "startTime" in input,
|
|
124
|
-
hasEndTime: "endTime" in input,
|
|
125
|
-
startTimeValue: input.startTime || "MISSING",
|
|
126
|
-
endTimeValue: input.endTime || "MISSING",
|
|
127
|
-
extractionStatus: Object.keys(input).length === 0 ? "FAILED" : "SUCCESS",
|
|
128
|
-
};
|
|
129
|
-
logger.debug("[TransformationUtils] Target tool parameter analysis", targetToolAnalysis);
|
|
130
|
-
if (Object.keys(input).length === 0) {
|
|
131
|
-
logger.error("[TransformationUtils] Critical: Target tool parameter extraction failed", {
|
|
132
|
-
toolName,
|
|
133
|
-
reason: "Both primary and nested extraction returned empty parameters",
|
|
134
|
-
impact: "AI response did not contain expected parameter structure",
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
// Final parameter extraction summary
|
|
139
|
-
const finalExtractionSummary = {
|
|
140
|
-
toolName,
|
|
141
|
-
inputKeysCount: Object.keys(input).length,
|
|
142
|
-
inputKeys: Object.keys(input),
|
|
143
|
-
hasParameters: Object.keys(input).length > 0,
|
|
144
|
-
duration: teRecord.duration ??
|
|
145
|
-
teRecord.executionTime ??
|
|
146
|
-
teRecord.responseTime ??
|
|
147
|
-
0,
|
|
148
|
-
hasOutput: !!(teRecord.output || teRecord.result || teRecord.response),
|
|
149
|
-
};
|
|
150
|
-
logger.debug("[TransformationUtils] Final parameter extraction result", finalExtractionSummary);
|
|
151
|
-
// Enhanced output extraction with success indication
|
|
152
|
-
const output = teRecord.output ||
|
|
153
|
-
teRecord.result ||
|
|
154
|
-
teRecord.response ||
|
|
155
|
-
"success";
|
|
156
|
-
// Enhanced duration extraction
|
|
157
|
-
const duration = teRecord.duration ??
|
|
158
|
-
teRecord.executionTime ??
|
|
159
|
-
teRecord.responseTime ??
|
|
160
|
-
0;
|
|
161
|
-
return {
|
|
162
|
-
name: toolName,
|
|
163
|
-
input: input,
|
|
164
|
-
output: output,
|
|
165
|
-
duration: duration,
|
|
166
|
-
};
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Transform tool execution results from AI SDK format to internal format (for MCP generation)
|
|
171
|
-
* Used in tryMCPGeneration method
|
|
172
|
-
*/
|
|
173
|
-
export function transformToolExecutionsForMCP(toolExecutions) {
|
|
174
|
-
if (!toolExecutions || !Array.isArray(toolExecutions)) {
|
|
175
|
-
return [];
|
|
176
|
-
}
|
|
177
|
-
return toolExecutions.map((te, index) => {
|
|
178
|
-
const teRecord = te;
|
|
179
|
-
// Enhanced tool name extraction matching the main function
|
|
180
|
-
let toolName = teRecord.name ||
|
|
181
|
-
teRecord.toolName ||
|
|
182
|
-
teRecord.tool ||
|
|
183
|
-
"";
|
|
184
|
-
// Try nested toolCall extraction
|
|
185
|
-
if (!toolName &&
|
|
186
|
-
teRecord.toolCall &&
|
|
187
|
-
typeof teRecord.toolCall === "object") {
|
|
188
|
-
const toolCall = teRecord.toolCall;
|
|
189
|
-
toolName =
|
|
190
|
-
toolCall.name || toolCall.toolName || "";
|
|
191
|
-
}
|
|
192
|
-
// Fallback to avoid empty names
|
|
193
|
-
if (!toolName) {
|
|
194
|
-
toolName = `mcp_tool_execution_${index}`;
|
|
195
|
-
}
|
|
196
|
-
// Enhanced execution time extraction
|
|
197
|
-
const executionTime = teRecord.duration ??
|
|
198
|
-
teRecord.executionTime ??
|
|
199
|
-
teRecord.responseTime ??
|
|
200
|
-
0;
|
|
201
|
-
// Enhanced success detection - check for actual success indicators
|
|
202
|
-
let success = true; // Default to true
|
|
203
|
-
// Check for explicit success/error indicators
|
|
204
|
-
if (teRecord.success !== undefined) {
|
|
205
|
-
success = Boolean(teRecord.success);
|
|
206
|
-
}
|
|
207
|
-
else if (teRecord.error !== undefined) {
|
|
208
|
-
success = false;
|
|
209
|
-
}
|
|
210
|
-
else if (teRecord.status !== undefined) {
|
|
211
|
-
const status = String(teRecord.status).toLowerCase().trim();
|
|
212
|
-
success = !["error", "failed", "failure", "fail"].includes(status);
|
|
213
|
-
}
|
|
214
|
-
// Enhanced server ID extraction
|
|
215
|
-
let serverId = teRecord.serverId ||
|
|
216
|
-
teRecord.server ||
|
|
217
|
-
teRecord.source ||
|
|
218
|
-
undefined;
|
|
219
|
-
// Try to extract from nested structures
|
|
220
|
-
if (!serverId &&
|
|
221
|
-
teRecord.toolCall &&
|
|
222
|
-
typeof teRecord.toolCall === "object") {
|
|
223
|
-
const toolCall = teRecord.toolCall;
|
|
224
|
-
serverId =
|
|
225
|
-
toolCall.serverId ||
|
|
226
|
-
toolCall.server ||
|
|
227
|
-
undefined;
|
|
228
|
-
}
|
|
229
|
-
return {
|
|
230
|
-
toolName: toolName,
|
|
231
|
-
executionTime: executionTime,
|
|
232
|
-
success: success,
|
|
233
|
-
serverId: serverId,
|
|
234
|
-
};
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
// ============================================================================
|
|
238
|
-
// AVAILABLE TOOLS TRANSFORMATIONS
|
|
239
|
-
// ============================================================================
|
|
240
|
-
/**
|
|
241
|
-
* Transform available tools from internal format to GenerateResult format
|
|
242
|
-
* Ensures consistent tool information structure across the API with schema normalization
|
|
243
|
-
*
|
|
244
|
-
* @param availableTools - Array of tool definitions from various sources (MCP servers, builtin tools, etc.)
|
|
245
|
-
* @returns Array of normalized tool descriptions with consistent schema format
|
|
246
|
-
*
|
|
247
|
-
* @example
|
|
248
|
-
* ```typescript
|
|
249
|
-
* const tools = transformAvailableTools([
|
|
250
|
-
* { name: "calculator", description: "Math tool", server: "builtin", inputSchema: {...} }
|
|
251
|
-
* ]);
|
|
252
|
-
* // Returns: [{ name: "calculator", description: "Math tool", serverId: "builtin", schema: {...} }]
|
|
253
|
-
* ```
|
|
254
|
-
*/
|
|
255
|
-
export function transformAvailableTools(availableTools) {
|
|
256
|
-
if (!availableTools || !Array.isArray(availableTools)) {
|
|
257
|
-
return [];
|
|
258
|
-
}
|
|
259
|
-
return availableTools.map((tool) => {
|
|
260
|
-
const toolRecord = tool;
|
|
261
|
-
let extractedParameters = {};
|
|
262
|
-
const inputSchema = toolRecord.inputSchema;
|
|
263
|
-
const directParameters = toolRecord.parameters;
|
|
264
|
-
const fallbackSchema = toolRecord.schema;
|
|
265
|
-
if (inputSchema && typeof inputSchema === "object") {
|
|
266
|
-
// Use shared inlineJsonSchema for recursive $ref resolution
|
|
267
|
-
const inlinedSchema = inlineJsonSchema(inputSchema);
|
|
268
|
-
if (inlinedSchema.properties) {
|
|
269
|
-
extractedParameters = {
|
|
270
|
-
type: inlinedSchema.type || "object",
|
|
271
|
-
properties: inlinedSchema.properties,
|
|
272
|
-
required: inlinedSchema.required || [],
|
|
273
|
-
...inlinedSchema,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
else if (inlinedSchema.type === "object") {
|
|
277
|
-
extractedParameters = inlinedSchema;
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
extractedParameters = inlinedSchema;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
else if (directParameters && typeof directParameters === "object") {
|
|
284
|
-
// Also inline $ref for direct parameters if present
|
|
285
|
-
extractedParameters = inlineJsonSchema(directParameters);
|
|
286
|
-
}
|
|
287
|
-
else if (fallbackSchema && typeof fallbackSchema === "object") {
|
|
288
|
-
// Also inline $ref for fallback schema if present
|
|
289
|
-
extractedParameters = inlineJsonSchema(fallbackSchema);
|
|
290
|
-
}
|
|
291
|
-
if (!extractedParameters || typeof extractedParameters !== "object") {
|
|
292
|
-
extractedParameters = {};
|
|
293
|
-
}
|
|
294
|
-
if (extractedParameters &&
|
|
295
|
-
!extractedParameters.type &&
|
|
296
|
-
extractedParameters.properties) {
|
|
297
|
-
extractedParameters.type = "object";
|
|
298
|
-
}
|
|
299
|
-
return {
|
|
300
|
-
name: tool.name || "",
|
|
301
|
-
description: tool.description || "",
|
|
302
|
-
server: tool.server || "",
|
|
303
|
-
parameters: extractedParameters,
|
|
304
|
-
};
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Transform tools for MCP generation format
|
|
309
|
-
* Simple transformation for internal MCP tool lists
|
|
310
|
-
*/
|
|
311
|
-
export function transformToolsForMCP(availableTools) {
|
|
312
|
-
return availableTools.map((tool) => ({
|
|
313
|
-
name: tool.name,
|
|
314
|
-
description: tool.description,
|
|
315
|
-
server: tool.server,
|
|
316
|
-
category: tool.category,
|
|
317
|
-
}));
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Transform tools to expected format with required properties
|
|
321
|
-
* Used in getAllAvailableTools method for final output
|
|
322
|
-
*/
|
|
323
|
-
export function transformToolsToExpectedFormat(tools) {
|
|
324
|
-
return tools.map((tool) => ({
|
|
325
|
-
name: tool.name,
|
|
326
|
-
description: tool.description || "No description available",
|
|
327
|
-
server: tool.serverId || "unknown",
|
|
328
|
-
category: tool.category,
|
|
329
|
-
inputSchema: tool.inputSchema,
|
|
330
|
-
}));
|
|
331
|
-
}
|
|
332
|
-
// ============================================================================
|
|
333
|
-
// STRING AND ARRAY TRANSFORMATIONS
|
|
334
|
-
// ============================================================================
|
|
335
|
-
/**
|
|
336
|
-
* Extract tool names from tool objects
|
|
337
|
-
* Common pattern for creating arrays of tool names
|
|
338
|
-
*/
|
|
339
|
-
export function extractToolNames(tools) {
|
|
340
|
-
return tools.map((tool) => tool.name);
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Extract object keys as a comma-separated string
|
|
344
|
-
* Common pattern for logging and debugging
|
|
345
|
-
*/
|
|
346
|
-
export function getKeysAsString(obj, fallback = "none") {
|
|
347
|
-
const keys = Object.keys(obj);
|
|
348
|
-
return keys.length > 0 ? keys.join(", ") : fallback;
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Count object properties
|
|
352
|
-
* Common pattern for metrics and logging
|
|
353
|
-
*/
|
|
354
|
-
export function getKeyCount(obj) {
|
|
355
|
-
return Object.keys(obj).length;
|
|
356
|
-
}
|
|
357
|
-
// ============================================================================
|
|
358
|
-
// SCHEMA TRANSFORMATIONS
|
|
359
|
-
// ============================================================================
|
|
360
|
-
/**
|
|
361
|
-
* Transform schema properties to parameter descriptions
|
|
362
|
-
* Used in tool-aware system prompt generation
|
|
363
|
-
*/
|
|
364
|
-
export function transformSchemaToParameterDescription(schema) {
|
|
365
|
-
if (!schema?.properties) {
|
|
366
|
-
return "";
|
|
367
|
-
}
|
|
368
|
-
const requiredParams = new Set(schema.required || []);
|
|
369
|
-
return Object.entries(schema.properties)
|
|
370
|
-
.map(([key, value]) => {
|
|
371
|
-
const typedValue = value;
|
|
372
|
-
const required = requiredParams.has(key) ? " (required)" : "";
|
|
373
|
-
const description = typedValue.description
|
|
374
|
-
? ` - ${typedValue.description}`
|
|
375
|
-
: "";
|
|
376
|
-
return ` - ${key}: ${typedValue.type || "unknown"}${required}${description}`;
|
|
377
|
-
})
|
|
378
|
-
.join("\n");
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Transform tools to tool descriptions for system prompts
|
|
382
|
-
* Consolidated pattern for creating tool-aware prompts
|
|
383
|
-
*/
|
|
384
|
-
export function transformToolsToDescriptions(availableTools) {
|
|
385
|
-
return availableTools
|
|
386
|
-
.map((tool) => {
|
|
387
|
-
const schema = tool.inputSchema;
|
|
388
|
-
let params = "";
|
|
389
|
-
if (schema?.properties) {
|
|
390
|
-
params = transformSchemaToParameterDescription(schema);
|
|
391
|
-
}
|
|
392
|
-
return `- ${tool.name}: ${tool.description} (from ${tool.server})\n${params}`;
|
|
393
|
-
})
|
|
394
|
-
.join("\n\n");
|
|
395
|
-
}
|
|
396
|
-
// ============================================================================
|
|
397
|
-
// VALIDATION TRANSFORMATIONS
|
|
398
|
-
// ============================================================================
|
|
399
|
-
/**
|
|
400
|
-
* Transform parameters for validation
|
|
401
|
-
* Common pattern when logging or checking parameter structures
|
|
402
|
-
*/
|
|
403
|
-
export function transformParamsForLogging(params) {
|
|
404
|
-
if (!params || typeof params !== "object") {
|
|
405
|
-
return String(params);
|
|
406
|
-
}
|
|
407
|
-
const record = params;
|
|
408
|
-
return `${Object.keys(record).length} params`;
|
|
409
|
-
}
|
|
410
|
-
/**
|
|
411
|
-
* Safe property extraction from unknown objects
|
|
412
|
-
* Common pattern for safely accessing properties from unknown structures
|
|
413
|
-
*/
|
|
414
|
-
export function safeExtractProperty(obj, key, fallback) {
|
|
415
|
-
if (!obj || typeof obj !== "object" || obj === null) {
|
|
416
|
-
return fallback;
|
|
417
|
-
}
|
|
418
|
-
const record = obj;
|
|
419
|
-
const value = record[key];
|
|
420
|
-
return value !== undefined ? value : fallback;
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Safe extraction of string properties
|
|
424
|
-
* Specialized version for string properties with fallback
|
|
425
|
-
*/
|
|
426
|
-
export function safeExtractString(obj, key, fallback = "") {
|
|
427
|
-
const value = safeExtractProperty(obj, key, fallback);
|
|
428
|
-
return typeof value === "string" ? value : fallback;
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Safe extraction of number properties
|
|
432
|
-
* Specialized version for number properties with fallback
|
|
433
|
-
*/
|
|
434
|
-
export function safeExtractNumber(obj, key, fallback = 0) {
|
|
435
|
-
const value = safeExtractProperty(obj, key, fallback);
|
|
436
|
-
return typeof value === "number" ? value : fallback;
|
|
437
|
-
}
|
|
438
|
-
/**
|
|
439
|
-
* Safe extraction of boolean properties
|
|
440
|
-
* Specialized version for boolean properties with fallback
|
|
441
|
-
*/
|
|
442
|
-
export function safeExtractBoolean(obj, key, fallback = false) {
|
|
443
|
-
const value = safeExtractProperty(obj, key, fallback);
|
|
444
|
-
return typeof value === "boolean" ? value : fallback;
|
|
445
|
-
}
|
|
446
|
-
// ============================================================================
|
|
447
|
-
// COLLECTION TRANSFORMATIONS
|
|
448
|
-
// ============================================================================
|
|
449
|
-
/**
|
|
450
|
-
* Transform Map to array of values
|
|
451
|
-
* Common pattern for converting tool maps to arrays
|
|
452
|
-
*/
|
|
453
|
-
export function mapToArray(map) {
|
|
454
|
-
return Array.from(map.values());
|
|
455
|
-
}
|
|
456
|
-
/**
|
|
457
|
-
* Transform Map to array of key-value pairs
|
|
458
|
-
* Common pattern for processing map entries
|
|
459
|
-
*/
|
|
460
|
-
export function mapToEntries(map) {
|
|
461
|
-
return Array.from(map.entries());
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Group array items by a key
|
|
465
|
-
* Common pattern for organizing tools or other objects by category
|
|
466
|
-
*/
|
|
467
|
-
export function groupBy(items, keyFn) {
|
|
468
|
-
const groups = new Map();
|
|
469
|
-
for (const item of items) {
|
|
470
|
-
const key = keyFn(item);
|
|
471
|
-
const existing = groups.get(key) || [];
|
|
472
|
-
existing.push(item);
|
|
473
|
-
groups.set(key, existing);
|
|
474
|
-
}
|
|
475
|
-
return groups;
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Remove undefined properties from objects
|
|
479
|
-
* Common pattern for cleaning up object structures
|
|
480
|
-
*/
|
|
481
|
-
export function removeUndefinedProperties(obj) {
|
|
482
|
-
const cleaned = {};
|
|
483
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
484
|
-
if (value !== undefined) {
|
|
485
|
-
cleaned[key] = value;
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
return cleaned;
|
|
489
|
-
}
|
|
490
|
-
/**
|
|
491
|
-
* Merge objects with undefined handling
|
|
492
|
-
* Common pattern for combining configuration objects
|
|
493
|
-
*/
|
|
494
|
-
export function mergeWithUndefinedHandling(target, ...sources) {
|
|
495
|
-
const result = { ...target };
|
|
496
|
-
for (const source of sources) {
|
|
497
|
-
for (const [key, value] of Object.entries(source)) {
|
|
498
|
-
if (value !== undefined) {
|
|
499
|
-
result[key] = value;
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
return result;
|
|
504
|
-
}
|
|
505
|
-
// ============================================================================
|
|
506
|
-
// TOOL OPTIMIZATION UTILITIES
|
|
507
|
-
// ============================================================================
|
|
508
|
-
/**
|
|
509
|
-
* Optimize tool information for collection with minimal object creation
|
|
510
|
-
* Consolidates repeated optimization patterns across different tool sources
|
|
511
|
-
*
|
|
512
|
-
* @param tool - Tool information to optimize
|
|
513
|
-
* @param defaults - Default values to apply if missing
|
|
514
|
-
* @returns Optimized tool with minimal object creation
|
|
515
|
-
*
|
|
516
|
-
* @example
|
|
517
|
-
* ```typescript
|
|
518
|
-
* const optimized = optimizeToolForCollection(tool, {
|
|
519
|
-
* serverId: "builtin",
|
|
520
|
-
* category: "math"
|
|
521
|
-
* });
|
|
522
|
-
* ```
|
|
523
|
-
*/
|
|
524
|
-
export function optimizeToolForCollection(tool, defaults) {
|
|
525
|
-
// Check what properties actually need modification
|
|
526
|
-
const needsDescription = !tool.description && defaults.description;
|
|
527
|
-
const needsServerId = !tool.serverId && defaults.serverId;
|
|
528
|
-
const needsCategory = !tool.category && defaults.category;
|
|
529
|
-
const needsInputSchema = !tool.inputSchema && defaults.inputSchema;
|
|
530
|
-
const hasParametersConflict = tool.inputSchema && "parameters" in tool;
|
|
531
|
-
// Only create new object if modifications are actually needed
|
|
532
|
-
if (!needsDescription &&
|
|
533
|
-
!needsServerId &&
|
|
534
|
-
!needsCategory &&
|
|
535
|
-
!needsInputSchema &&
|
|
536
|
-
!hasParametersConflict) {
|
|
537
|
-
return tool; // Return original tool without modification
|
|
538
|
-
}
|
|
539
|
-
// Create optimized tool with only necessary changes
|
|
540
|
-
const optimizedTool = {
|
|
541
|
-
...tool,
|
|
542
|
-
...(needsDescription && { description: defaults.description }),
|
|
543
|
-
...(needsServerId && { serverId: defaults.serverId }),
|
|
544
|
-
...(needsCategory && { category: defaults.category }),
|
|
545
|
-
...(needsInputSchema && { inputSchema: defaults.inputSchema }),
|
|
546
|
-
};
|
|
547
|
-
// Clean up schema conflicts if present
|
|
548
|
-
if (hasParametersConflict) {
|
|
549
|
-
const cleanedTool = { ...optimizedTool };
|
|
550
|
-
delete cleanedTool.parameters;
|
|
551
|
-
return cleanedTool;
|
|
552
|
-
}
|
|
553
|
-
return optimizedTool;
|
|
554
|
-
}
|