@juspay/neurolink 7.29.1 → 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 (234) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cli/commands/config.d.ts +86 -86
  3. package/dist/cli/commands/mcp.js +64 -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 +9 -0
  7. package/dist/cli/factories/commandFactory.js +177 -83
  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 +19 -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/factory.js +77 -4
  27. package/dist/core/modelConfiguration.d.ts +63 -0
  28. package/dist/core/modelConfiguration.js +354 -290
  29. package/dist/core/streamAnalytics.d.ts +10 -5
  30. package/dist/core/streamAnalytics.js +10 -10
  31. package/dist/core/types.d.ts +19 -109
  32. package/dist/core/types.js +13 -0
  33. package/dist/factories/providerFactory.js +4 -1
  34. package/dist/factories/providerRegistry.js +2 -2
  35. package/dist/index.d.ts +2 -1
  36. package/dist/lib/config/configManager.js +5 -2
  37. package/dist/lib/core/analytics.d.ts +2 -24
  38. package/dist/lib/core/analytics.js +12 -17
  39. package/dist/lib/core/baseProvider.d.ts +30 -1
  40. package/dist/lib/core/baseProvider.js +180 -198
  41. package/dist/lib/core/dynamicModels.js +7 -7
  42. package/dist/lib/core/evaluation.d.ts +9 -9
  43. package/dist/lib/core/evaluation.js +117 -65
  44. package/dist/lib/core/evaluationProviders.d.ts +18 -2
  45. package/dist/lib/core/evaluationProviders.js +15 -13
  46. package/dist/lib/core/factory.js +77 -4
  47. package/dist/lib/core/modelConfiguration.d.ts +63 -0
  48. package/dist/lib/core/modelConfiguration.js +354 -290
  49. package/dist/lib/core/streamAnalytics.d.ts +10 -5
  50. package/dist/lib/core/streamAnalytics.js +10 -10
  51. package/dist/lib/core/types.d.ts +19 -109
  52. package/dist/lib/core/types.js +13 -0
  53. package/dist/lib/factories/providerFactory.js +4 -1
  54. package/dist/lib/factories/providerRegistry.js +2 -2
  55. package/dist/lib/index.d.ts +2 -1
  56. package/dist/lib/mcp/externalServerManager.js +14 -6
  57. package/dist/lib/mcp/factory.js +1 -1
  58. package/dist/lib/mcp/flexibleToolValidator.d.ts +50 -0
  59. package/dist/lib/mcp/flexibleToolValidator.js +161 -0
  60. package/dist/lib/mcp/index.d.ts +1 -1
  61. package/dist/lib/mcp/index.js +1 -1
  62. package/dist/lib/mcp/mcpCircuitBreaker.js +5 -1
  63. package/dist/lib/mcp/mcpClientFactory.js +3 -0
  64. package/dist/lib/mcp/registry.d.ts +3 -3
  65. package/dist/lib/mcp/registry.js +3 -3
  66. package/dist/lib/mcp/servers/aiProviders/aiAnalysisTools.js +5 -5
  67. package/dist/lib/mcp/servers/aiProviders/aiWorkflowTools.js +6 -6
  68. package/dist/lib/mcp/servers/utilities/utilityServer.js +1 -1
  69. package/dist/lib/mcp/toolDiscoveryService.js +8 -2
  70. package/dist/lib/mcp/toolRegistry.d.ts +2 -2
  71. package/dist/lib/mcp/toolRegistry.js +29 -54
  72. package/dist/lib/middleware/builtin/analytics.js +4 -4
  73. package/dist/lib/middleware/builtin/guardrails.js +2 -2
  74. package/dist/lib/middleware/registry.js +11 -2
  75. package/dist/lib/models/modelRegistry.d.ts +1 -1
  76. package/dist/lib/models/modelRegistry.js +3 -3
  77. package/dist/lib/models/modelResolver.d.ts +1 -1
  78. package/dist/lib/models/modelResolver.js +2 -2
  79. package/dist/lib/neurolink.d.ts +118 -0
  80. package/dist/lib/neurolink.js +814 -952
  81. package/dist/lib/providers/amazonBedrock.d.ts +47 -6
  82. package/dist/lib/providers/amazonBedrock.js +282 -23
  83. package/dist/lib/providers/amazonSagemaker.d.ts +1 -1
  84. package/dist/lib/providers/amazonSagemaker.js +12 -3
  85. package/dist/lib/providers/anthropic.d.ts +1 -1
  86. package/dist/lib/providers/anthropic.js +7 -6
  87. package/dist/lib/providers/anthropicBaseProvider.d.ts +1 -1
  88. package/dist/lib/providers/anthropicBaseProvider.js +4 -3
  89. package/dist/lib/providers/aws/credentialProvider.d.ts +58 -0
  90. package/dist/lib/providers/aws/credentialProvider.js +267 -0
  91. package/dist/lib/providers/aws/credentialTester.d.ts +49 -0
  92. package/dist/lib/providers/aws/credentialTester.js +394 -0
  93. package/dist/lib/providers/azureOpenai.d.ts +1 -1
  94. package/dist/lib/providers/azureOpenai.js +1 -1
  95. package/dist/lib/providers/googleAiStudio.d.ts +1 -1
  96. package/dist/lib/providers/googleAiStudio.js +2 -2
  97. package/dist/lib/providers/googleVertex.d.ts +40 -0
  98. package/dist/lib/providers/googleVertex.js +330 -274
  99. package/dist/lib/providers/huggingFace.js +1 -1
  100. package/dist/lib/providers/mistral.d.ts +1 -1
  101. package/dist/lib/providers/mistral.js +2 -2
  102. package/dist/lib/providers/ollama.d.ts +4 -0
  103. package/dist/lib/providers/ollama.js +38 -18
  104. package/dist/lib/providers/openAI.d.ts +1 -1
  105. package/dist/lib/providers/openAI.js +2 -2
  106. package/dist/lib/providers/sagemaker/adaptive-semaphore.js +7 -4
  107. package/dist/lib/providers/sagemaker/client.js +13 -3
  108. package/dist/lib/providers/sagemaker/config.js +5 -1
  109. package/dist/lib/providers/sagemaker/detection.js +19 -9
  110. package/dist/lib/providers/sagemaker/errors.d.ts +8 -1
  111. package/dist/lib/providers/sagemaker/errors.js +103 -20
  112. package/dist/lib/providers/sagemaker/language-model.d.ts +3 -3
  113. package/dist/lib/providers/sagemaker/language-model.js +4 -4
  114. package/dist/lib/providers/sagemaker/parsers.js +14 -6
  115. package/dist/lib/providers/sagemaker/streaming.js +14 -3
  116. package/dist/lib/providers/sagemaker/types.d.ts +1 -1
  117. package/dist/lib/proxy/awsProxyIntegration.d.ts +23 -0
  118. package/dist/lib/proxy/awsProxyIntegration.js +285 -0
  119. package/dist/lib/proxy/proxyFetch.d.ts +9 -5
  120. package/dist/lib/proxy/proxyFetch.js +232 -98
  121. package/dist/lib/proxy/utils/noProxyUtils.d.ts +39 -0
  122. package/dist/lib/proxy/utils/noProxyUtils.js +149 -0
  123. package/dist/lib/sdk/toolRegistration.d.ts +1 -1
  124. package/dist/lib/types/cli.d.ts +80 -8
  125. package/dist/lib/types/contextTypes.js +2 -2
  126. package/dist/lib/types/generateTypes.d.ts +4 -6
  127. package/dist/lib/types/providers.d.ts +124 -19
  128. package/dist/lib/types/providers.js +6 -6
  129. package/dist/lib/types/streamTypes.d.ts +4 -6
  130. package/dist/lib/types/typeAliases.d.ts +1 -1
  131. package/dist/lib/utils/analyticsUtils.d.ts +33 -0
  132. package/dist/lib/utils/analyticsUtils.js +76 -0
  133. package/dist/lib/utils/errorHandling.js +4 -1
  134. package/dist/lib/utils/evaluationUtils.d.ts +27 -0
  135. package/dist/lib/utils/evaluationUtils.js +131 -0
  136. package/dist/lib/utils/optionsUtils.js +10 -1
  137. package/dist/lib/utils/performance.d.ts +1 -1
  138. package/dist/lib/utils/performance.js +15 -3
  139. package/dist/lib/utils/providerConfig.d.ts +1 -0
  140. package/dist/lib/utils/providerConfig.js +2 -1
  141. package/dist/lib/utils/providerHealth.d.ts +48 -0
  142. package/dist/lib/utils/providerHealth.js +221 -158
  143. package/dist/lib/utils/providerUtils.js +2 -2
  144. package/dist/lib/utils/timeout.js +8 -3
  145. package/dist/mcp/externalServerManager.js +14 -6
  146. package/dist/mcp/factory.js +1 -1
  147. package/dist/mcp/flexibleToolValidator.d.ts +50 -0
  148. package/dist/mcp/flexibleToolValidator.js +161 -0
  149. package/dist/mcp/index.d.ts +1 -1
  150. package/dist/mcp/index.js +1 -1
  151. package/dist/mcp/mcpCircuitBreaker.js +5 -1
  152. package/dist/mcp/mcpClientFactory.js +3 -0
  153. package/dist/mcp/registry.d.ts +3 -3
  154. package/dist/mcp/registry.js +3 -3
  155. package/dist/mcp/servers/aiProviders/aiAnalysisTools.js +5 -5
  156. package/dist/mcp/servers/aiProviders/aiWorkflowTools.js +6 -6
  157. package/dist/mcp/servers/utilities/utilityServer.js +1 -1
  158. package/dist/mcp/toolDiscoveryService.js +8 -2
  159. package/dist/mcp/toolRegistry.d.ts +2 -2
  160. package/dist/mcp/toolRegistry.js +29 -54
  161. package/dist/middleware/builtin/analytics.js +4 -4
  162. package/dist/middleware/builtin/guardrails.js +2 -2
  163. package/dist/middleware/registry.js +11 -2
  164. package/dist/models/modelRegistry.d.ts +1 -1
  165. package/dist/models/modelRegistry.js +3 -3
  166. package/dist/models/modelResolver.d.ts +1 -1
  167. package/dist/models/modelResolver.js +2 -2
  168. package/dist/neurolink.d.ts +118 -0
  169. package/dist/neurolink.js +814 -952
  170. package/dist/providers/amazonBedrock.d.ts +47 -6
  171. package/dist/providers/amazonBedrock.js +282 -23
  172. package/dist/providers/amazonSagemaker.d.ts +1 -1
  173. package/dist/providers/amazonSagemaker.js +12 -3
  174. package/dist/providers/anthropic.d.ts +1 -1
  175. package/dist/providers/anthropic.js +7 -6
  176. package/dist/providers/anthropicBaseProvider.d.ts +1 -1
  177. package/dist/providers/anthropicBaseProvider.js +4 -3
  178. package/dist/providers/aws/credentialProvider.d.ts +58 -0
  179. package/dist/providers/aws/credentialProvider.js +267 -0
  180. package/dist/providers/aws/credentialTester.d.ts +49 -0
  181. package/dist/providers/aws/credentialTester.js +394 -0
  182. package/dist/providers/azureOpenai.d.ts +1 -1
  183. package/dist/providers/azureOpenai.js +1 -1
  184. package/dist/providers/googleAiStudio.d.ts +1 -1
  185. package/dist/providers/googleAiStudio.js +2 -2
  186. package/dist/providers/googleVertex.d.ts +40 -0
  187. package/dist/providers/googleVertex.js +330 -274
  188. package/dist/providers/huggingFace.js +1 -1
  189. package/dist/providers/mistral.d.ts +1 -1
  190. package/dist/providers/mistral.js +2 -2
  191. package/dist/providers/ollama.d.ts +4 -0
  192. package/dist/providers/ollama.js +38 -18
  193. package/dist/providers/openAI.d.ts +1 -1
  194. package/dist/providers/openAI.js +2 -2
  195. package/dist/providers/sagemaker/adaptive-semaphore.js +7 -4
  196. package/dist/providers/sagemaker/client.js +13 -3
  197. package/dist/providers/sagemaker/config.js +5 -1
  198. package/dist/providers/sagemaker/detection.js +19 -9
  199. package/dist/providers/sagemaker/errors.d.ts +8 -1
  200. package/dist/providers/sagemaker/errors.js +103 -20
  201. package/dist/providers/sagemaker/language-model.d.ts +3 -3
  202. package/dist/providers/sagemaker/language-model.js +4 -4
  203. package/dist/providers/sagemaker/parsers.js +14 -6
  204. package/dist/providers/sagemaker/streaming.js +14 -3
  205. package/dist/providers/sagemaker/types.d.ts +1 -1
  206. package/dist/proxy/awsProxyIntegration.d.ts +23 -0
  207. package/dist/proxy/awsProxyIntegration.js +285 -0
  208. package/dist/proxy/proxyFetch.d.ts +9 -5
  209. package/dist/proxy/proxyFetch.js +232 -98
  210. package/dist/proxy/utils/noProxyUtils.d.ts +39 -0
  211. package/dist/proxy/utils/noProxyUtils.js +149 -0
  212. package/dist/sdk/toolRegistration.d.ts +1 -1
  213. package/dist/types/cli.d.ts +80 -8
  214. package/dist/types/contextTypes.js +2 -2
  215. package/dist/types/generateTypes.d.ts +4 -6
  216. package/dist/types/providers.d.ts +124 -19
  217. package/dist/types/providers.js +6 -6
  218. package/dist/types/streamTypes.d.ts +4 -6
  219. package/dist/types/typeAliases.d.ts +1 -1
  220. package/dist/utils/analyticsUtils.d.ts +33 -0
  221. package/dist/utils/analyticsUtils.js +76 -0
  222. package/dist/utils/errorHandling.js +4 -1
  223. package/dist/utils/evaluationUtils.d.ts +27 -0
  224. package/dist/utils/evaluationUtils.js +131 -0
  225. package/dist/utils/optionsUtils.js +10 -1
  226. package/dist/utils/performance.d.ts +1 -1
  227. package/dist/utils/performance.js +15 -3
  228. package/dist/utils/providerConfig.d.ts +1 -0
  229. package/dist/utils/providerConfig.js +2 -1
  230. package/dist/utils/providerHealth.d.ts +48 -0
  231. package/dist/utils/providerHealth.js +221 -158
  232. package/dist/utils/providerUtils.js +2 -2
  233. package/dist/utils/timeout.js +8 -3
  234. package/package.json +5 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [7.29.3](https://github.com/juspay/neurolink/compare/v7.29.2...v7.29.3) (2025-08-29)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **(build):** resolve ESLint compliance and TypeScript compilation errors ([c9030f2](https://github.com/juspay/neurolink/commit/c9030f20b080b359ab5cdd014cecaf15a8b68789))
6
+
7
+ ## [7.29.2](https://github.com/juspay/neurolink/compare/v7.29.1...v7.29.2) (2025-08-29)
8
+
9
+ ### Bug Fixes
10
+
11
+ - **(providers):** enable drop-in replacement for bedrock-mcp-connector ([9b67d23](https://github.com/juspay/neurolink/commit/9b67d233c2e8400a401759e34ffaf46a9a9c77a8))
12
+
1
13
  ## [7.29.1](https://github.com/juspay/neurolink/compare/v7.29.0...v7.29.1) (2025-08-28)
2
14
 
3
15
  ### Bug Fixes
@@ -18,9 +18,9 @@ declare const ConfigSchema: z.ZodObject<{
18
18
  apiKey?: string | undefined;
19
19
  baseURL?: string | undefined;
20
20
  }, {
21
- model?: string | undefined;
22
21
  apiKey?: string | undefined;
23
22
  baseURL?: string | undefined;
23
+ model?: string | undefined;
24
24
  }>>;
25
25
  bedrock: z.ZodOptional<z.ZodObject<{
26
26
  region: z.ZodOptional<z.ZodString>;
@@ -60,8 +60,8 @@ declare const ConfigSchema: z.ZodObject<{
60
60
  }, {
61
61
  model?: string | undefined;
62
62
  projectId?: string | undefined;
63
- location?: string | undefined;
64
63
  credentials?: string | undefined;
64
+ location?: string | undefined;
65
65
  serviceAccountKey?: string | undefined;
66
66
  clientEmail?: string | undefined;
67
67
  privateKey?: string | undefined;
@@ -73,8 +73,8 @@ declare const ConfigSchema: z.ZodObject<{
73
73
  model: string;
74
74
  apiKey?: string | undefined;
75
75
  }, {
76
- model?: string | undefined;
77
76
  apiKey?: string | undefined;
77
+ model?: string | undefined;
78
78
  }>>;
79
79
  azure: z.ZodOptional<z.ZodObject<{
80
80
  apiKey: z.ZodOptional<z.ZodString>;
@@ -87,8 +87,8 @@ declare const ConfigSchema: z.ZodObject<{
87
87
  endpoint?: string | undefined;
88
88
  deploymentId?: string | undefined;
89
89
  }, {
90
- model?: string | undefined;
91
90
  apiKey?: string | undefined;
91
+ model?: string | undefined;
92
92
  endpoint?: string | undefined;
93
93
  deploymentId?: string | undefined;
94
94
  }>>;
@@ -99,8 +99,8 @@ declare const ConfigSchema: z.ZodObject<{
99
99
  model: string;
100
100
  apiKey?: string | undefined;
101
101
  }, {
102
- model?: string | undefined;
103
102
  apiKey?: string | undefined;
103
+ model?: string | undefined;
104
104
  }>>;
105
105
  huggingface: z.ZodOptional<z.ZodObject<{
106
106
  apiKey: z.ZodOptional<z.ZodString>;
@@ -109,20 +109,20 @@ declare const ConfigSchema: z.ZodObject<{
109
109
  model: string;
110
110
  apiKey?: string | undefined;
111
111
  }, {
112
- model?: string | undefined;
113
112
  apiKey?: string | undefined;
113
+ model?: string | undefined;
114
114
  }>>;
115
115
  ollama: z.ZodOptional<z.ZodObject<{
116
116
  baseUrl: z.ZodDefault<z.ZodString>;
117
117
  model: z.ZodDefault<z.ZodString>;
118
118
  timeout: z.ZodDefault<z.ZodNumber>;
119
119
  }, "strip", z.ZodTypeAny, {
120
- model: string;
121
120
  timeout: number;
121
+ model: string;
122
122
  baseUrl: string;
123
123
  }, {
124
- model?: string | undefined;
125
124
  timeout?: number | undefined;
125
+ model?: string | undefined;
126
126
  baseUrl?: string | undefined;
127
127
  }>>;
128
128
  mistral: z.ZodOptional<z.ZodObject<{
@@ -132,23 +132,10 @@ declare const ConfigSchema: z.ZodObject<{
132
132
  model: string;
133
133
  apiKey?: string | undefined;
134
134
  }, {
135
- model?: string | undefined;
136
135
  apiKey?: string | undefined;
136
+ model?: string | undefined;
137
137
  }>>;
138
138
  }, "strip", z.ZodTypeAny, {
139
- "google-ai"?: {
140
- model: string;
141
- apiKey?: string | undefined;
142
- } | undefined;
143
- openai?: {
144
- model: string;
145
- apiKey?: string | undefined;
146
- baseURL?: string | undefined;
147
- } | undefined;
148
- anthropic?: {
149
- model: string;
150
- apiKey?: string | undefined;
151
- } | undefined;
152
139
  vertex?: {
153
140
  model: string;
154
141
  location: string;
@@ -165,44 +152,44 @@ declare const ConfigSchema: z.ZodObject<{
165
152
  secretAccessKey?: string | undefined;
166
153
  sessionToken?: string | undefined;
167
154
  } | undefined;
168
- azure?: {
155
+ anthropic?: {
169
156
  model: string;
170
157
  apiKey?: string | undefined;
171
- endpoint?: string | undefined;
172
- deploymentId?: string | undefined;
173
158
  } | undefined;
174
- ollama?: {
159
+ openai?: {
175
160
  model: string;
176
- timeout: number;
177
- baseUrl: string;
161
+ apiKey?: string | undefined;
162
+ baseURL?: string | undefined;
178
163
  } | undefined;
179
- mistral?: {
164
+ "google-ai"?: {
180
165
  model: string;
181
166
  apiKey?: string | undefined;
182
167
  } | undefined;
183
- huggingface?: {
168
+ ollama?: {
169
+ timeout: number;
184
170
  model: string;
185
- apiKey?: string | undefined;
171
+ baseUrl: string;
186
172
  } | undefined;
187
- }, {
188
- "google-ai"?: {
189
- model?: string | undefined;
173
+ azure?: {
174
+ model: string;
190
175
  apiKey?: string | undefined;
176
+ endpoint?: string | undefined;
177
+ deploymentId?: string | undefined;
191
178
  } | undefined;
192
- openai?: {
193
- model?: string | undefined;
179
+ huggingface?: {
180
+ model: string;
194
181
  apiKey?: string | undefined;
195
- baseURL?: string | undefined;
196
182
  } | undefined;
197
- anthropic?: {
198
- model?: string | undefined;
183
+ mistral?: {
184
+ model: string;
199
185
  apiKey?: string | undefined;
200
186
  } | undefined;
187
+ }, {
201
188
  vertex?: {
202
189
  model?: string | undefined;
203
190
  projectId?: string | undefined;
204
- location?: string | undefined;
205
191
  credentials?: string | undefined;
192
+ location?: string | undefined;
206
193
  serviceAccountKey?: string | undefined;
207
194
  clientEmail?: string | undefined;
208
195
  privateKey?: string | undefined;
@@ -214,24 +201,37 @@ declare const ConfigSchema: z.ZodObject<{
214
201
  secretAccessKey?: string | undefined;
215
202
  sessionToken?: string | undefined;
216
203
  } | undefined;
217
- azure?: {
204
+ anthropic?: {
205
+ apiKey?: string | undefined;
218
206
  model?: string | undefined;
207
+ } | undefined;
208
+ openai?: {
219
209
  apiKey?: string | undefined;
220
- endpoint?: string | undefined;
221
- deploymentId?: string | undefined;
210
+ baseURL?: string | undefined;
211
+ model?: string | undefined;
222
212
  } | undefined;
223
- ollama?: {
213
+ "google-ai"?: {
214
+ apiKey?: string | undefined;
224
215
  model?: string | undefined;
216
+ } | undefined;
217
+ ollama?: {
225
218
  timeout?: number | undefined;
219
+ model?: string | undefined;
226
220
  baseUrl?: string | undefined;
227
221
  } | undefined;
228
- mistral?: {
229
- model?: string | undefined;
222
+ azure?: {
230
223
  apiKey?: string | undefined;
224
+ model?: string | undefined;
225
+ endpoint?: string | undefined;
226
+ deploymentId?: string | undefined;
231
227
  } | undefined;
232
228
  huggingface?: {
229
+ apiKey?: string | undefined;
233
230
  model?: string | undefined;
231
+ } | undefined;
232
+ mistral?: {
234
233
  apiKey?: string | undefined;
234
+ model?: string | undefined;
235
235
  } | undefined;
236
236
  }>>;
237
237
  profiles: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -456,19 +456,6 @@ declare const ConfigSchema: z.ZodObject<{
456
456
  }>>;
457
457
  }, "strip", z.ZodTypeAny, {
458
458
  providers: {
459
- "google-ai"?: {
460
- model: string;
461
- apiKey?: string | undefined;
462
- } | undefined;
463
- openai?: {
464
- model: string;
465
- apiKey?: string | undefined;
466
- baseURL?: string | undefined;
467
- } | undefined;
468
- anthropic?: {
469
- model: string;
470
- apiKey?: string | undefined;
471
- } | undefined;
472
459
  vertex?: {
473
460
  model: string;
474
461
  location: string;
@@ -485,27 +472,40 @@ declare const ConfigSchema: z.ZodObject<{
485
472
  secretAccessKey?: string | undefined;
486
473
  sessionToken?: string | undefined;
487
474
  } | undefined;
488
- azure?: {
475
+ anthropic?: {
489
476
  model: string;
490
477
  apiKey?: string | undefined;
491
- endpoint?: string | undefined;
492
- deploymentId?: string | undefined;
493
478
  } | undefined;
494
- ollama?: {
479
+ openai?: {
480
+ model: string;
481
+ apiKey?: string | undefined;
482
+ baseURL?: string | undefined;
483
+ } | undefined;
484
+ "google-ai"?: {
495
485
  model: string;
486
+ apiKey?: string | undefined;
487
+ } | undefined;
488
+ ollama?: {
496
489
  timeout: number;
490
+ model: string;
497
491
  baseUrl: string;
498
492
  } | undefined;
499
- mistral?: {
493
+ azure?: {
500
494
  model: string;
501
495
  apiKey?: string | undefined;
496
+ endpoint?: string | undefined;
497
+ deploymentId?: string | undefined;
502
498
  } | undefined;
503
499
  huggingface?: {
504
500
  model: string;
505
501
  apiKey?: string | undefined;
506
502
  } | undefined;
503
+ mistral?: {
504
+ model: string;
505
+ apiKey?: string | undefined;
506
+ } | undefined;
507
507
  };
508
- defaultProvider: "google-ai" | "openai" | "anthropic" | "vertex" | "bedrock" | "azure" | "ollama" | "mistral" | "huggingface" | "auto";
508
+ defaultProvider: "vertex" | "bedrock" | "anthropic" | "openai" | "google-ai" | "ollama" | "azure" | "huggingface" | "mistral" | "auto";
509
509
  profiles: Record<string, any>;
510
510
  preferences: {
511
511
  maxTokens: number;
@@ -554,24 +554,11 @@ declare const ConfigSchema: z.ZodObject<{
554
554
  };
555
555
  }, {
556
556
  providers?: {
557
- "google-ai"?: {
558
- model?: string | undefined;
559
- apiKey?: string | undefined;
560
- } | undefined;
561
- openai?: {
562
- model?: string | undefined;
563
- apiKey?: string | undefined;
564
- baseURL?: string | undefined;
565
- } | undefined;
566
- anthropic?: {
567
- model?: string | undefined;
568
- apiKey?: string | undefined;
569
- } | undefined;
570
557
  vertex?: {
571
558
  model?: string | undefined;
572
559
  projectId?: string | undefined;
573
- location?: string | undefined;
574
560
  credentials?: string | undefined;
561
+ location?: string | undefined;
575
562
  serviceAccountKey?: string | undefined;
576
563
  clientEmail?: string | undefined;
577
564
  privateKey?: string | undefined;
@@ -583,27 +570,40 @@ declare const ConfigSchema: z.ZodObject<{
583
570
  secretAccessKey?: string | undefined;
584
571
  sessionToken?: string | undefined;
585
572
  } | undefined;
586
- azure?: {
573
+ anthropic?: {
574
+ apiKey?: string | undefined;
575
+ model?: string | undefined;
576
+ } | undefined;
577
+ openai?: {
578
+ apiKey?: string | undefined;
579
+ baseURL?: string | undefined;
587
580
  model?: string | undefined;
581
+ } | undefined;
582
+ "google-ai"?: {
588
583
  apiKey?: string | undefined;
589
- endpoint?: string | undefined;
590
- deploymentId?: string | undefined;
584
+ model?: string | undefined;
591
585
  } | undefined;
592
586
  ollama?: {
593
- model?: string | undefined;
594
587
  timeout?: number | undefined;
588
+ model?: string | undefined;
595
589
  baseUrl?: string | undefined;
596
590
  } | undefined;
597
- mistral?: {
598
- model?: string | undefined;
591
+ azure?: {
599
592
  apiKey?: string | undefined;
593
+ model?: string | undefined;
594
+ endpoint?: string | undefined;
595
+ deploymentId?: string | undefined;
600
596
  } | undefined;
601
597
  huggingface?: {
598
+ apiKey?: string | undefined;
602
599
  model?: string | undefined;
600
+ } | undefined;
601
+ mistral?: {
603
602
  apiKey?: string | undefined;
603
+ model?: string | undefined;
604
604
  } | undefined;
605
605
  } | undefined;
606
- defaultProvider?: "google-ai" | "openai" | "anthropic" | "vertex" | "bedrock" | "azure" | "ollama" | "mistral" | "huggingface" | "auto" | undefined;
606
+ defaultProvider?: "vertex" | "bedrock" | "anthropic" | "openai" | "google-ai" | "ollama" | "azure" | "huggingface" | "mistral" | "auto" | undefined;
607
607
  profiles?: Record<string, any> | undefined;
608
608
  preferences?: {
609
609
  maxTokens?: number | undefined;
@@ -10,6 +10,31 @@ import chalk from "chalk";
10
10
  import ora from "ora";
11
11
  import fs from "fs";
12
12
  import path from "path";
13
+ // Using MCPCommandArgs from types/cli.ts
14
+ /**
15
+ * Response interface for MCP status information returned from the NeuroLink SDK.
16
+ * This interface represents the raw status data that gets converted to CLI-friendly format.
17
+ *
18
+ * @interface MCPStatusResponse
19
+ * @since 7.6.1
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const status: MCPStatusResponse = {
24
+ * autoDiscoveredServers: [
25
+ * {
26
+ * name: "filesystem",
27
+ * id: "fs-server-001",
28
+ * status: "connected",
29
+ * source: "claude-desktop"
30
+ * }
31
+ * ],
32
+ * mcpInitialized: true,
33
+ * totalServers: 3,
34
+ * availableServers: 2
35
+ * };
36
+ * ```
37
+ */
13
38
  /**
14
39
  * Popular MCP servers registry
15
40
  */
@@ -365,6 +390,10 @@ export class MCPCommandFactory {
365
390
  static async executeInstall(argv) {
366
391
  try {
367
392
  const serverName = argv.server;
393
+ if (!serverName) {
394
+ logger.error(chalk.red("❌ Server name is required"));
395
+ process.exit(1);
396
+ }
368
397
  const serverConfig = POPULAR_MCP_SERVERS[serverName];
369
398
  if (!serverConfig) {
370
399
  logger.error(chalk.red(`❌ Unknown server: ${serverName}`));
@@ -384,11 +413,12 @@ export class MCPCommandFactory {
384
413
  const parsedEnv = JSON.parse(argv.env);
385
414
  env = { ...env, ...parsedEnv };
386
415
  }
387
- catch (_error) {
416
+ catch (error) {
388
417
  if (spinner) {
389
418
  spinner.fail();
390
419
  }
391
420
  logger.error(chalk.red("❌ Invalid JSON in env parameter"));
421
+ logger.error(chalk.red(`Error details: ${error instanceof Error ? error.message : String(error)}`));
392
422
  process.exit(1);
393
423
  }
394
424
  }
@@ -396,6 +426,7 @@ export class MCPCommandFactory {
396
426
  ...serverConfig,
397
427
  id: serverName,
398
428
  name: serverName,
429
+ env,
399
430
  });
400
431
  // Add server to NeuroLink - direct usage, zero transformations!
401
432
  const sdk = new NeuroLink();
@@ -436,6 +467,7 @@ export class MCPCommandFactory {
436
467
  }
437
468
  catch (testError) {
438
469
  logger.always(chalk.yellow("⚠️ Could not test connection"));
470
+ logger.debug(`Test connection _error: ${testError instanceof Error ? testError.message : String(testError)}`);
439
471
  }
440
472
  }
441
473
  catch (_error) {
@@ -449,7 +481,15 @@ export class MCPCommandFactory {
449
481
  static async executeAdd(argv) {
450
482
  try {
451
483
  const name = argv.name;
484
+ if (!name) {
485
+ logger.error(chalk.red("❌ Server name is required"));
486
+ process.exit(1);
487
+ }
452
488
  const command = argv.command;
489
+ if (!command) {
490
+ logger.error(chalk.red("❌ Command is required"));
491
+ process.exit(1);
492
+ }
453
493
  const spinner = argv.quiet
454
494
  ? null
455
495
  : ora(`Adding custom MCP server: ${name}...`).start();
@@ -459,11 +499,12 @@ export class MCPCommandFactory {
459
499
  try {
460
500
  env = JSON.parse(argv.env);
461
501
  }
462
- catch (_error) {
502
+ catch (error) {
463
503
  if (spinner) {
464
504
  spinner.fail();
465
505
  }
466
506
  logger.error(chalk.red("❌ Invalid JSON in env parameter"));
507
+ logger.error(chalk.red(`Error details: ${error instanceof Error ? error.message : String(error)}`));
467
508
  process.exit(1);
468
509
  }
469
510
  }
@@ -509,7 +550,6 @@ export class MCPCommandFactory {
509
550
  ? null
510
551
  : ora("Testing MCP server connections...").start();
511
552
  const sdk = new NeuroLink();
512
- const rawMcpStatus = await sdk.getMCPStatus();
513
553
  let serversToTest = await sdk.listMCPServers();
514
554
  if (targetServer) {
515
555
  serversToTest = serversToTest.filter((s) => s.name === targetServer);
@@ -571,7 +611,15 @@ export class MCPCommandFactory {
571
611
  static async executeExec(argv) {
572
612
  try {
573
613
  const serverName = argv.server;
614
+ if (!serverName) {
615
+ logger.error(chalk.red("❌ Server name is required"));
616
+ process.exit(1);
617
+ }
574
618
  const toolName = argv.tool;
619
+ if (!toolName) {
620
+ logger.error(chalk.red("❌ Tool name is required"));
621
+ process.exit(1);
622
+ }
575
623
  const spinner = argv.quiet
576
624
  ? null
577
625
  : ora(`Executing ${toolName} on ${serverName}...`).start();
@@ -581,11 +629,12 @@ export class MCPCommandFactory {
581
629
  try {
582
630
  params = JSON.parse(argv.params);
583
631
  }
584
- catch (_error) {
632
+ catch (error) {
585
633
  if (spinner) {
586
634
  spinner.fail();
587
635
  }
588
636
  logger.error(chalk.red("❌ Invalid JSON in params parameter"));
637
+ logger.error(chalk.red(`Error details: ${error instanceof Error ? error.message : String(error)}`));
589
638
  process.exit(1);
590
639
  }
591
640
  }
@@ -666,7 +715,7 @@ export class MCPCommandFactory {
666
715
  tool: toolName,
667
716
  server: serverName,
668
717
  params,
669
- error: errorMessage,
718
+ _error: errorMessage,
670
719
  success: false,
671
720
  timestamp: new Date().toISOString(),
672
721
  };
@@ -693,6 +742,10 @@ export class MCPCommandFactory {
693
742
  static async executeRemove(argv) {
694
743
  try {
695
744
  const serverName = argv.server;
745
+ if (!serverName) {
746
+ logger.error(chalk.red("❌ Server name is required"));
747
+ process.exit(1);
748
+ }
696
749
  const sdk = new NeuroLink();
697
750
  const allServers = await sdk.listMCPServers();
698
751
  const server = allServers.find((s) => s.name === serverName);
@@ -831,8 +884,9 @@ export class MCPCommandFactory {
831
884
  }
832
885
  }
833
886
  }
834
- catch (_error) {
835
- // Ignore errors in discovery
887
+ catch (error) {
888
+ // Log discovery errors for debugging but don't fail
889
+ logger.debug(`Claude Desktop discovery error: ${error instanceof Error ? error.message : String(error)}`);
836
890
  }
837
891
  return servers;
838
892
  }
@@ -867,8 +921,9 @@ export class MCPCommandFactory {
867
921
  }
868
922
  }
869
923
  }
870
- catch (_error) {
871
- // Ignore errors in discovery
924
+ catch (error) {
925
+ // Log discovery errors for debugging but don't fail
926
+ logger.debug(`VS Code discovery error: ${error instanceof Error ? error.message : String(error)}`);
872
927
  }
873
928
  return servers;
874
929
  }
@@ -4,7 +4,7 @@
4
4
  * Part of Phase 4.1 - Models Command System
5
5
  */
6
6
  import { ModelResolver, formatSearchResults, formatRecommendation, formatComparison, } from "../../lib/models/modelResolver.js";
7
- import { getAllModels, formatModelForDisplay, } from "../../lib/models/modelRegistry.js";
7
+ import { getAllModels, getModelsByProvider, getAvailableProviders, formatModelForDisplay, } from "../../lib/models/modelRegistry.js";
8
8
  import chalk from "chalk";
9
9
  import ora from "ora";
10
10
  import { logger } from "../../lib/utils/logger.js";
@@ -65,12 +65,12 @@ export class ModelsCommandFactory {
65
65
  describe: "Manage and discover AI models",
66
66
  builder: (yargs) => {
67
67
  return yargs
68
- .command("list", "List available models with filtering options", this.buildListOptions, this.executeList)
69
- .command("search [query]", "Search models by capabilities, use case, or features", this.buildSearchOptions, this.executeSearch)
70
- .command("best", "Get the best model recommendation for your use case", this.buildBestOptions, this.executeBest)
71
- .command("resolve <model>", "Resolve model aliases and find exact model names", this.buildResolveOptions, this.executeResolve)
72
- .command("compare <models..>", "Compare multiple models side by side", this.buildCompareOptions, this.executeCompare)
73
- .command("stats", "Show model registry statistics and insights", this.buildStatsOptions, this.executeStats)
68
+ .command("list", "List available models with filtering options", (yargs) => this.buildListOptions(yargs), this.executeList)
69
+ .command("search [query]", "Search models by capabilities, use case, or features", (yargs) => this.buildSearchOptions(yargs), this.executeSearch)
70
+ .command("best", "Get the best model recommendation for your use case", (yargs) => this.buildBestOptions(yargs), this.executeBest)
71
+ .command("resolve <model>", "Resolve model aliases and find exact model names", (yargs) => this.buildResolveOptions(yargs), this.executeResolve)
72
+ .command("compare <models..>", "Compare multiple models side by side", (yargs) => this.buildCompareOptions(yargs), this.executeCompare)
73
+ .command("stats", "Show model registry statistics and insights", (yargs) => this.buildStatsOptions(yargs), this.executeStats)
74
74
  .option("format", {
75
75
  choices: ["table", "json", "compact"],
76
76
  default: "table",
@@ -105,17 +105,7 @@ export class ModelsCommandFactory {
105
105
  static buildListOptions(yargs) {
106
106
  return yargs
107
107
  .option("provider", {
108
- choices: [
109
- "openai",
110
- "bedrock",
111
- "vertex",
112
- "anthropic",
113
- "azure",
114
- "google-ai",
115
- "huggingface",
116
- "ollama",
117
- "mistral",
118
- ],
108
+ choices: getAvailableProviders(),
119
109
  description: "Filter by AI provider",
120
110
  })
121
111
  .option("category", {
@@ -306,19 +296,25 @@ export class ModelsCommandFactory {
306
296
  ? null
307
297
  : ora("Loading model registry...").start();
308
298
  let models = getAllModels();
309
- // Apply filters
299
+ // Apply filters - Use getModelsByProvider for efficiency when provider is specified
310
300
  if (argv.provider) {
311
301
  const providers = Array.isArray(argv.provider)
312
302
  ? argv.provider
313
303
  : [argv.provider];
314
- models = models.filter((model) => providers.includes(model.provider));
304
+ // Use optimized function for single provider, filter for multiple
305
+ if (providers.length === 1) {
306
+ models = getModelsByProvider(providers[0]);
307
+ }
308
+ else {
309
+ models = models.filter((model) => providers.includes(model.provider));
310
+ }
315
311
  }
316
312
  if (argv.category) {
317
313
  models = models.filter((model) => model.category === argv.category);
318
314
  }
319
315
  if (argv.capability) {
320
316
  models = models.filter((model) => {
321
- return argv.capability.every((cap) => model.capabilities[cap]);
317
+ return (argv.capability?.every((cap) => model.capabilities[cap]) ?? false);
322
318
  });
323
319
  }
324
320
  if (!argv.deprecated) {
@@ -525,6 +521,10 @@ export class ModelsCommandFactory {
525
521
  static async executeResolve(argv) {
526
522
  try {
527
523
  const query = argv.model;
524
+ if (!query) {
525
+ logger.error(chalk.red("❌ Model name is required"));
526
+ process.exit(1);
527
+ }
528
528
  const model = ModelResolver.resolveModel(query);
529
529
  if (!model) {
530
530
  logger.always(chalk.red(`❌ Could not resolve model: ${query}`));
@@ -567,6 +567,10 @@ export class ModelsCommandFactory {
567
567
  static async executeCompare(argv) {
568
568
  try {
569
569
  const modelIds = argv.models;
570
+ if (!modelIds || modelIds.length === 0) {
571
+ logger.error(chalk.red("❌ Model IDs are required for comparison"));
572
+ process.exit(1);
573
+ }
570
574
  const comparison = ModelResolver.compareModels(modelIds);
571
575
  if (argv.format === "json") {
572
576
  logger.always(JSON.stringify(formatComparison(comparison), null, 2));
@@ -100,9 +100,9 @@ async function removeModelHandler(argv) {
100
100
  }
101
101
  spinner.succeed(`Successfully removed ${model}`);
102
102
  }
103
- catch (error) {
103
+ catch (_error) {
104
104
  spinner.fail(`Failed to remove ${model}`);
105
- const errorMessage = error instanceof Error ? error.message : String(error);
105
+ const errorMessage = _error instanceof Error ? _error.message : String(_error);
106
106
  logger.error(chalk.red("Error:", errorMessage));
107
107
  process.exit(1);
108
108
  }
@@ -8,6 +8,7 @@ export declare class CLICommandFactory {
8
8
  private static processOptions;
9
9
  private static handleOutput;
10
10
  private static isValidTokenUsage;
11
+ private static normalizeTokenUsage;
11
12
  private static formatAnalyticsForTextMode;
12
13
  /**
13
14
  * Create the new primary 'generate' command
@@ -73,6 +74,14 @@ export declare class CLICommandFactory {
73
74
  * Execute the generate command
74
75
  */
75
76
  private static executeGenerate;
77
+ /**
78
+ * Log debug information for stream result
79
+ */
80
+ private static logStreamDebugInfo;
81
+ /**
82
+ * Handle stdin input for stream command
83
+ */
84
+ private static handleStdinInput;
76
85
  /**
77
86
  * Execute the stream command
78
87
  */