@juspay/neurolink 7.29.2 → 7.29.3

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.
Files changed (198) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cli/commands/config.d.ts +83 -83
  3. package/dist/cli/commands/mcp.js +39 -9
  4. package/dist/cli/commands/models.js +25 -21
  5. package/dist/cli/commands/ollama.js +2 -2
  6. package/dist/cli/factories/commandFactory.d.ts +8 -0
  7. package/dist/cli/factories/commandFactory.js +65 -65
  8. package/dist/cli/factories/ollamaCommandFactory.js +3 -1
  9. package/dist/cli/factories/sagemakerCommandFactory.js +3 -2
  10. package/dist/cli/index.d.ts +1 -1
  11. package/dist/cli/index.js +11 -11
  12. package/dist/cli/utils/envManager.js +5 -5
  13. package/dist/cli/utils/ollamaUtils.d.ts +12 -0
  14. package/dist/cli/utils/ollamaUtils.js +58 -42
  15. package/dist/config/configManager.js +5 -2
  16. package/dist/core/analytics.d.ts +2 -24
  17. package/dist/core/analytics.js +12 -17
  18. package/dist/core/baseProvider.d.ts +30 -1
  19. package/dist/core/baseProvider.js +180 -198
  20. package/dist/core/dynamicModels.d.ts +4 -4
  21. package/dist/core/dynamicModels.js +7 -7
  22. package/dist/core/evaluation.d.ts +9 -9
  23. package/dist/core/evaluation.js +117 -65
  24. package/dist/core/evaluationProviders.d.ts +18 -2
  25. package/dist/core/evaluationProviders.js +15 -13
  26. package/dist/core/modelConfiguration.d.ts +63 -0
  27. package/dist/core/modelConfiguration.js +354 -290
  28. package/dist/core/streamAnalytics.d.ts +10 -5
  29. package/dist/core/streamAnalytics.js +10 -10
  30. package/dist/core/types.d.ts +19 -109
  31. package/dist/core/types.js +13 -0
  32. package/dist/factories/providerFactory.js +1 -1
  33. package/dist/index.d.ts +2 -1
  34. package/dist/lib/config/configManager.js +5 -2
  35. package/dist/lib/core/analytics.d.ts +2 -24
  36. package/dist/lib/core/analytics.js +12 -17
  37. package/dist/lib/core/baseProvider.d.ts +30 -1
  38. package/dist/lib/core/baseProvider.js +180 -198
  39. package/dist/lib/core/dynamicModels.js +7 -7
  40. package/dist/lib/core/evaluation.d.ts +9 -9
  41. package/dist/lib/core/evaluation.js +117 -65
  42. package/dist/lib/core/evaluationProviders.d.ts +18 -2
  43. package/dist/lib/core/evaluationProviders.js +15 -13
  44. package/dist/lib/core/modelConfiguration.d.ts +63 -0
  45. package/dist/lib/core/modelConfiguration.js +354 -290
  46. package/dist/lib/core/streamAnalytics.d.ts +10 -5
  47. package/dist/lib/core/streamAnalytics.js +10 -10
  48. package/dist/lib/core/types.d.ts +19 -109
  49. package/dist/lib/core/types.js +13 -0
  50. package/dist/lib/factories/providerFactory.js +1 -1
  51. package/dist/lib/index.d.ts +2 -1
  52. package/dist/lib/mcp/externalServerManager.js +15 -6
  53. package/dist/lib/mcp/factory.js +1 -1
  54. package/dist/lib/mcp/index.d.ts +1 -1
  55. package/dist/lib/mcp/index.js +1 -1
  56. package/dist/lib/mcp/mcpCircuitBreaker.js +5 -1
  57. package/dist/lib/mcp/mcpClientFactory.js +3 -0
  58. package/dist/lib/mcp/registry.d.ts +3 -3
  59. package/dist/lib/mcp/registry.js +3 -3
  60. package/dist/lib/mcp/servers/aiProviders/aiAnalysisTools.js +5 -5
  61. package/dist/lib/mcp/servers/aiProviders/aiWorkflowTools.js +6 -6
  62. package/dist/lib/mcp/servers/utilities/utilityServer.js +1 -1
  63. package/dist/lib/mcp/toolDiscoveryService.js +8 -2
  64. package/dist/lib/mcp/toolRegistry.js +4 -4
  65. package/dist/lib/middleware/builtin/analytics.js +4 -4
  66. package/dist/lib/middleware/builtin/guardrails.js +2 -2
  67. package/dist/lib/middleware/registry.js +11 -2
  68. package/dist/lib/models/modelRegistry.d.ts +1 -1
  69. package/dist/lib/models/modelRegistry.js +3 -3
  70. package/dist/lib/models/modelResolver.d.ts +1 -1
  71. package/dist/lib/models/modelResolver.js +2 -2
  72. package/dist/lib/neurolink.d.ts +116 -0
  73. package/dist/lib/neurolink.js +716 -922
  74. package/dist/lib/providers/amazonSagemaker.d.ts +1 -1
  75. package/dist/lib/providers/amazonSagemaker.js +12 -3
  76. package/dist/lib/providers/anthropic.d.ts +1 -1
  77. package/dist/lib/providers/anthropic.js +7 -6
  78. package/dist/lib/providers/anthropicBaseProvider.d.ts +1 -1
  79. package/dist/lib/providers/anthropicBaseProvider.js +4 -3
  80. package/dist/lib/providers/azureOpenai.d.ts +1 -1
  81. package/dist/lib/providers/azureOpenai.js +1 -1
  82. package/dist/lib/providers/googleAiStudio.d.ts +1 -1
  83. package/dist/lib/providers/googleAiStudio.js +2 -2
  84. package/dist/lib/providers/googleVertex.d.ts +40 -0
  85. package/dist/lib/providers/googleVertex.js +330 -274
  86. package/dist/lib/providers/huggingFace.js +1 -1
  87. package/dist/lib/providers/mistral.d.ts +1 -1
  88. package/dist/lib/providers/mistral.js +2 -2
  89. package/dist/lib/providers/ollama.d.ts +4 -0
  90. package/dist/lib/providers/ollama.js +38 -18
  91. package/dist/lib/providers/openAI.d.ts +1 -1
  92. package/dist/lib/providers/openAI.js +2 -2
  93. package/dist/lib/providers/sagemaker/adaptive-semaphore.js +7 -4
  94. package/dist/lib/providers/sagemaker/client.js +13 -3
  95. package/dist/lib/providers/sagemaker/config.js +5 -1
  96. package/dist/lib/providers/sagemaker/detection.js +19 -9
  97. package/dist/lib/providers/sagemaker/errors.d.ts +8 -1
  98. package/dist/lib/providers/sagemaker/errors.js +103 -20
  99. package/dist/lib/providers/sagemaker/language-model.d.ts +3 -3
  100. package/dist/lib/providers/sagemaker/language-model.js +4 -4
  101. package/dist/lib/providers/sagemaker/parsers.js +14 -6
  102. package/dist/lib/providers/sagemaker/streaming.js +14 -3
  103. package/dist/lib/providers/sagemaker/types.d.ts +1 -1
  104. package/dist/lib/proxy/awsProxyIntegration.js +1 -1
  105. package/dist/lib/sdk/toolRegistration.d.ts +1 -1
  106. package/dist/lib/types/cli.d.ts +80 -8
  107. package/dist/lib/types/contextTypes.js +2 -2
  108. package/dist/lib/types/generateTypes.d.ts +4 -6
  109. package/dist/lib/types/providers.d.ts +81 -19
  110. package/dist/lib/types/providers.js +6 -6
  111. package/dist/lib/types/streamTypes.d.ts +4 -6
  112. package/dist/lib/types/typeAliases.d.ts +1 -1
  113. package/dist/lib/utils/analyticsUtils.d.ts +33 -0
  114. package/dist/lib/utils/analyticsUtils.js +76 -0
  115. package/dist/lib/utils/errorHandling.js +4 -1
  116. package/dist/lib/utils/evaluationUtils.d.ts +27 -0
  117. package/dist/lib/utils/evaluationUtils.js +131 -0
  118. package/dist/lib/utils/optionsUtils.js +10 -1
  119. package/dist/lib/utils/performance.d.ts +1 -1
  120. package/dist/lib/utils/performance.js +15 -3
  121. package/dist/lib/utils/providerHealth.d.ts +48 -0
  122. package/dist/lib/utils/providerHealth.js +199 -254
  123. package/dist/lib/utils/providerUtils.js +2 -2
  124. package/dist/lib/utils/timeout.js +8 -3
  125. package/dist/mcp/externalServerManager.js +15 -6
  126. package/dist/mcp/factory.js +1 -1
  127. package/dist/mcp/index.d.ts +1 -1
  128. package/dist/mcp/index.js +1 -1
  129. package/dist/mcp/mcpCircuitBreaker.js +5 -1
  130. package/dist/mcp/mcpClientFactory.js +3 -0
  131. package/dist/mcp/registry.d.ts +3 -3
  132. package/dist/mcp/registry.js +3 -3
  133. package/dist/mcp/servers/aiProviders/aiAnalysisTools.js +5 -5
  134. package/dist/mcp/servers/aiProviders/aiWorkflowTools.js +6 -6
  135. package/dist/mcp/servers/utilities/utilityServer.js +1 -1
  136. package/dist/mcp/toolDiscoveryService.js +8 -2
  137. package/dist/mcp/toolRegistry.js +4 -4
  138. package/dist/middleware/builtin/analytics.js +4 -4
  139. package/dist/middleware/builtin/guardrails.js +2 -2
  140. package/dist/middleware/registry.js +11 -2
  141. package/dist/models/modelRegistry.d.ts +1 -1
  142. package/dist/models/modelRegistry.js +3 -3
  143. package/dist/models/modelResolver.d.ts +1 -1
  144. package/dist/models/modelResolver.js +2 -2
  145. package/dist/neurolink.d.ts +116 -0
  146. package/dist/neurolink.js +716 -922
  147. package/dist/providers/amazonSagemaker.d.ts +1 -1
  148. package/dist/providers/amazonSagemaker.js +12 -3
  149. package/dist/providers/anthropic.d.ts +1 -1
  150. package/dist/providers/anthropic.js +7 -6
  151. package/dist/providers/anthropicBaseProvider.d.ts +1 -1
  152. package/dist/providers/anthropicBaseProvider.js +4 -3
  153. package/dist/providers/azureOpenai.d.ts +1 -1
  154. package/dist/providers/azureOpenai.js +1 -1
  155. package/dist/providers/googleAiStudio.d.ts +1 -1
  156. package/dist/providers/googleAiStudio.js +2 -2
  157. package/dist/providers/googleVertex.d.ts +40 -0
  158. package/dist/providers/googleVertex.js +330 -274
  159. package/dist/providers/huggingFace.js +1 -1
  160. package/dist/providers/mistral.d.ts +1 -1
  161. package/dist/providers/mistral.js +2 -2
  162. package/dist/providers/ollama.d.ts +4 -0
  163. package/dist/providers/ollama.js +38 -18
  164. package/dist/providers/openAI.d.ts +1 -1
  165. package/dist/providers/openAI.js +2 -2
  166. package/dist/providers/sagemaker/adaptive-semaphore.js +7 -4
  167. package/dist/providers/sagemaker/client.js +13 -3
  168. package/dist/providers/sagemaker/config.js +5 -1
  169. package/dist/providers/sagemaker/detection.js +19 -9
  170. package/dist/providers/sagemaker/errors.d.ts +8 -1
  171. package/dist/providers/sagemaker/errors.js +103 -20
  172. package/dist/providers/sagemaker/language-model.d.ts +3 -3
  173. package/dist/providers/sagemaker/language-model.js +4 -4
  174. package/dist/providers/sagemaker/parsers.js +14 -6
  175. package/dist/providers/sagemaker/streaming.js +14 -3
  176. package/dist/providers/sagemaker/types.d.ts +1 -1
  177. package/dist/proxy/awsProxyIntegration.js +1 -1
  178. package/dist/sdk/toolRegistration.d.ts +1 -1
  179. package/dist/types/cli.d.ts +80 -8
  180. package/dist/types/contextTypes.js +2 -2
  181. package/dist/types/generateTypes.d.ts +4 -6
  182. package/dist/types/providers.d.ts +81 -19
  183. package/dist/types/providers.js +6 -6
  184. package/dist/types/streamTypes.d.ts +4 -6
  185. package/dist/types/typeAliases.d.ts +1 -1
  186. package/dist/utils/analyticsUtils.d.ts +33 -0
  187. package/dist/utils/analyticsUtils.js +76 -0
  188. package/dist/utils/errorHandling.js +4 -1
  189. package/dist/utils/evaluationUtils.d.ts +27 -0
  190. package/dist/utils/evaluationUtils.js +131 -0
  191. package/dist/utils/optionsUtils.js +10 -1
  192. package/dist/utils/performance.d.ts +1 -1
  193. package/dist/utils/performance.js +15 -3
  194. package/dist/utils/providerHealth.d.ts +48 -0
  195. package/dist/utils/providerHealth.js +199 -254
  196. package/dist/utils/providerUtils.js +2 -2
  197. package/dist/utils/timeout.js +8 -3
  198. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Evaluation utilities for normalizing EvaluationData objects
3
+ * Provides helper functions to handle partial evaluation data and ensure
4
+ * complete EvaluationData objects with safe defaults
5
+ */
6
+ /**
7
+ * Default values for required EvaluationData fields
8
+ */
9
+ const DEFAULT_EVALUATION_DATA = {
10
+ // Core scores (1-10 scale)
11
+ relevance: 0,
12
+ accuracy: 0,
13
+ completeness: 0,
14
+ overall: 0,
15
+ // Advanced insights
16
+ isOffTopic: false,
17
+ alertSeverity: "none",
18
+ reasoning: "",
19
+ // Metadata
20
+ evaluationModel: "unknown",
21
+ evaluationTime: 0,
22
+ // Enhanced metadata defaults
23
+ evaluationProvider: "unknown",
24
+ evaluationAttempt: 0,
25
+ evaluationConfig: {
26
+ mode: "default",
27
+ fallbackUsed: false,
28
+ costEstimate: 0,
29
+ },
30
+ };
31
+ /**
32
+ * Normalize partial EvaluationData into a complete EvaluationData object
33
+ * with safe defaults for missing required fields
34
+ */
35
+ export function normalizeEvaluationData(partial) {
36
+ const normalized = {
37
+ ...DEFAULT_EVALUATION_DATA,
38
+ ...partial,
39
+ };
40
+ // Ensure scores are within valid range (0-10)
41
+ normalized.relevance = Math.max(0, Math.min(10, normalized.relevance));
42
+ normalized.accuracy = Math.max(0, Math.min(10, normalized.accuracy));
43
+ normalized.completeness = Math.max(0, Math.min(10, normalized.completeness));
44
+ normalized.overall = Math.max(0, Math.min(10, normalized.overall));
45
+ // Optional scores
46
+ if (normalized.domainAlignment !== undefined) {
47
+ normalized.domainAlignment = Math.max(0, Math.min(10, normalized.domainAlignment));
48
+ }
49
+ if (normalized.terminologyAccuracy !== undefined) {
50
+ normalized.terminologyAccuracy = Math.max(0, Math.min(10, normalized.terminologyAccuracy));
51
+ }
52
+ if (normalized.toolEffectiveness !== undefined) {
53
+ normalized.toolEffectiveness = Math.max(0, Math.min(10, normalized.toolEffectiveness));
54
+ }
55
+ // Validate alertSeverity enum
56
+ const validSeverities = ["low", "medium", "high", "none"];
57
+ if (!validSeverities.includes(normalized.alertSeverity)) {
58
+ normalized.alertSeverity = "none";
59
+ }
60
+ // Truncate reasoning and suggestedImprovements to enforce length constraints
61
+ normalized.reasoning = truncateString(normalized.reasoning, 150);
62
+ if (normalized.suggestedImprovements) {
63
+ normalized.suggestedImprovements = truncateString(normalized.suggestedImprovements, 100);
64
+ }
65
+ // Ensure evaluationTime is non-negative
66
+ normalized.evaluationTime = Math.max(0, normalized.evaluationTime);
67
+ // Ensure evaluationAttempt is positive
68
+ if (normalized.evaluationAttempt !== undefined) {
69
+ normalized.evaluationAttempt = Math.max(0, normalized.evaluationAttempt);
70
+ }
71
+ // Ensure evaluationConfig has required fields
72
+ if (normalized.evaluationConfig) {
73
+ normalized.evaluationConfig = {
74
+ mode: normalized.evaluationConfig.mode || "default",
75
+ fallbackUsed: Boolean(normalized.evaluationConfig.fallbackUsed),
76
+ costEstimate: Math.max(0, normalized.evaluationConfig.costEstimate || 0),
77
+ };
78
+ }
79
+ return normalized;
80
+ }
81
+ /**
82
+ * Create a default EvaluationData object for cases where no evaluation was performed
83
+ */
84
+ export function createDefaultEvaluationData(overrides = {}) {
85
+ return normalizeEvaluationData({
86
+ ...overrides,
87
+ reasoning: overrides.reasoning || "No evaluation performed",
88
+ evaluationModel: overrides.evaluationModel || "none",
89
+ });
90
+ }
91
+ /**
92
+ * Check if EvaluationData indicates a successful evaluation
93
+ */
94
+ export function isValidEvaluation(evaluation) {
95
+ return (evaluation.evaluationModel !== "unknown" &&
96
+ evaluation.evaluationModel !== "none" &&
97
+ evaluation.reasoning.length > 0 &&
98
+ evaluation.overall > 0);
99
+ }
100
+ /**
101
+ * Create EvaluationData for a failed evaluation attempt
102
+ */
103
+ export function createFailedEvaluationData(error, overrides = {}) {
104
+ return normalizeEvaluationData({
105
+ ...overrides,
106
+ reasoning: `Evaluation failed: ${truncateString(error, 100)}`,
107
+ alertSeverity: "medium",
108
+ evaluationModel: overrides.evaluationModel || "error",
109
+ evaluationConfig: {
110
+ mode: "error",
111
+ fallbackUsed: true,
112
+ costEstimate: 0,
113
+ },
114
+ });
115
+ }
116
+ /**
117
+ * Helper function to truncate strings to a maximum length
118
+ */
119
+ function truncateString(str, maxLength) {
120
+ if (str.length <= maxLength) {
121
+ return str;
122
+ }
123
+ return str.substring(0, maxLength - 3) + "...";
124
+ }
125
+ /**
126
+ * Merge multiple partial evaluation data objects into a normalized result
127
+ */
128
+ export function mergeEvaluationData(...partials) {
129
+ const merged = partials.reduce((acc, partial) => ({ ...acc, ...partial }), {});
130
+ return normalizeEvaluationData(merged);
131
+ }
@@ -42,7 +42,7 @@ export class OptionsEnhancer {
42
42
  try {
43
43
  return new SharedArrayBuffer(4); // 4 bytes for Int32
44
44
  }
45
- catch (e) {
45
+ catch {
46
46
  // SharedArrayBuffer is defined but not usable (browser CORS headers not set)
47
47
  if (typeof logger !== "undefined" && logger?.warn) {
48
48
  logger.warn("[OptionsEnhancer] SharedArrayBuffer is defined but not usable. " +
@@ -304,6 +304,15 @@ export class OptionsEnhancer {
304
304
  }
305
305
  static applyLegacyMigration(options, enhancementOptions) {
306
306
  const legacyMigration = enhancementOptions.legacyMigration;
307
+ if (!legacyMigration) {
308
+ throw new Error("Legacy migration configuration is required");
309
+ }
310
+ if (!legacyMigration.legacyContext) {
311
+ throw new Error("Legacy context is required for migration");
312
+ }
313
+ if (!legacyMigration.domainType) {
314
+ throw new Error("Domain type is required for migration");
315
+ }
307
316
  // Convert legacy context to execution context
308
317
  const executionContext = ContextConverter.convertBusinessContext(legacyMigration.legacyContext, legacyMigration.domainType, {
309
318
  preserveLegacyFields: legacyMigration.preserveFields,
@@ -84,7 +84,7 @@ export declare class MemoryManager {
84
84
  /**
85
85
  * Decorator for tracking performance of async functions
86
86
  */
87
- export declare function trackPerformance(operationName: string): <T extends (...args: unknown[]) => Promise<unknown>>(target: unknown, propertyName: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
87
+ export declare function trackPerformance(operationName: string): <T extends (...args: unknown[]) => Promise<unknown>>(_target: unknown, _propertyName: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
88
88
  /**
89
89
  * Performance monitoring for CLI operations
90
90
  */
@@ -63,11 +63,20 @@ export class PerformanceTracker {
63
63
  return `${operationName}: No metrics available`;
64
64
  }
65
65
  const memoryMB = (bytes) => (bytes / 1024 / 1024).toFixed(1);
66
+ if (!metric.memoryDelta) {
67
+ return [
68
+ `${operationName}:`,
69
+ ` Duration: ${metric.duration}ms`,
70
+ ` Memory Delta: Not available`,
71
+ ].join("\n");
72
+ }
73
+ const signHeap = metric.memoryDelta.heapUsed >= 0 ? "+" : "-";
74
+ const signRss = metric.memoryDelta.rss >= 0 ? "+" : "-";
66
75
  return [
67
76
  `${operationName}:`,
68
77
  ` Duration: ${metric.duration}ms`,
69
- ` Memory Delta: +${memoryMB(metric.memoryDelta.heapUsed)}MB heap`,
70
- ` RSS Delta: +${memoryMB(metric.memoryDelta.rss)}MB`,
78
+ ` Memory Delta: ${signHeap}${memoryMB(Math.abs(metric.memoryDelta.heapUsed))}MB heap`,
79
+ ` RSS Delta: ${signRss}${memoryMB(Math.abs(metric.memoryDelta.rss))}MB`,
71
80
  ].join("\n");
72
81
  }
73
82
  }
@@ -142,8 +151,11 @@ export class MemoryManager {
142
151
  * Decorator for tracking performance of async functions
143
152
  */
144
153
  export function trackPerformance(operationName) {
145
- return function (target, propertyName, descriptor) {
154
+ return function (_target, _propertyName, descriptor) {
146
155
  const method = descriptor.value;
156
+ if (!method) {
157
+ throw new Error(`Method descriptor value is required for performance tracking`);
158
+ }
147
159
  descriptor.value = async function (...args) {
148
160
  globalTracker.start(operationName);
149
161
  try {
@@ -72,6 +72,54 @@ export declare class ProviderHealthChecker {
72
72
  * Provider-specific configuration checks
73
73
  */
74
74
  private static checkProviderSpecificConfig;
75
+ /**
76
+ * Check Vertex AI configuration
77
+ */
78
+ private static checkVertexAIConfig;
79
+ /**
80
+ * Get Vertex AI project ID from environment variables
81
+ */
82
+ private static getVertexProjectId;
83
+ /**
84
+ * Check Vertex AI authentication
85
+ */
86
+ private static checkVertexAuthentication;
87
+ /**
88
+ * Check Google Application Credentials file
89
+ */
90
+ private static checkGoogleApplicationCredentials;
91
+ /**
92
+ * Check individual Google credentials
93
+ */
94
+ private static checkIndividualGoogleCredentials;
95
+ /**
96
+ * Check AWS Bedrock configuration
97
+ */
98
+ private static checkBedrockConfig;
99
+ /**
100
+ * Check AWS region configuration
101
+ */
102
+ private static checkAWSRegion;
103
+ /**
104
+ * Check AWS credentials
105
+ */
106
+ private static checkAWSCredentials;
107
+ /**
108
+ * Check Bedrock models
109
+ */
110
+ private static checkBedrockModels;
111
+ /**
112
+ * Check Bedrock endpoint
113
+ */
114
+ private static checkBedrockEndpoint;
115
+ /**
116
+ * Check Azure OpenAI configuration
117
+ */
118
+ private static checkAzureConfig;
119
+ /**
120
+ * Check Ollama configuration
121
+ */
122
+ private static checkOllamaConfig;
75
123
  /**
76
124
  * Get common models for a provider
77
125
  */