@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.
- package/CHANGELOG.md +12 -0
- package/dist/cli/commands/config.d.ts +86 -86
- package/dist/cli/commands/mcp.js +64 -9
- package/dist/cli/commands/models.js +25 -21
- package/dist/cli/commands/ollama.js +2 -2
- package/dist/cli/factories/commandFactory.d.ts +9 -0
- package/dist/cli/factories/commandFactory.js +177 -83
- package/dist/cli/factories/ollamaCommandFactory.js +3 -1
- package/dist/cli/factories/sagemakerCommandFactory.js +3 -2
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +19 -11
- package/dist/cli/utils/envManager.js +5 -5
- package/dist/cli/utils/ollamaUtils.d.ts +12 -0
- package/dist/cli/utils/ollamaUtils.js +58 -42
- package/dist/config/configManager.js +5 -2
- package/dist/core/analytics.d.ts +2 -24
- package/dist/core/analytics.js +12 -17
- package/dist/core/baseProvider.d.ts +30 -1
- package/dist/core/baseProvider.js +180 -198
- package/dist/core/dynamicModels.d.ts +4 -4
- package/dist/core/dynamicModels.js +7 -7
- package/dist/core/evaluation.d.ts +9 -9
- package/dist/core/evaluation.js +117 -65
- package/dist/core/evaluationProviders.d.ts +18 -2
- package/dist/core/evaluationProviders.js +15 -13
- package/dist/core/factory.js +77 -4
- package/dist/core/modelConfiguration.d.ts +63 -0
- package/dist/core/modelConfiguration.js +354 -290
- package/dist/core/streamAnalytics.d.ts +10 -5
- package/dist/core/streamAnalytics.js +10 -10
- package/dist/core/types.d.ts +19 -109
- package/dist/core/types.js +13 -0
- package/dist/factories/providerFactory.js +4 -1
- package/dist/factories/providerRegistry.js +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/lib/config/configManager.js +5 -2
- package/dist/lib/core/analytics.d.ts +2 -24
- package/dist/lib/core/analytics.js +12 -17
- package/dist/lib/core/baseProvider.d.ts +30 -1
- package/dist/lib/core/baseProvider.js +180 -198
- package/dist/lib/core/dynamicModels.js +7 -7
- package/dist/lib/core/evaluation.d.ts +9 -9
- package/dist/lib/core/evaluation.js +117 -65
- package/dist/lib/core/evaluationProviders.d.ts +18 -2
- package/dist/lib/core/evaluationProviders.js +15 -13
- package/dist/lib/core/factory.js +77 -4
- package/dist/lib/core/modelConfiguration.d.ts +63 -0
- package/dist/lib/core/modelConfiguration.js +354 -290
- package/dist/lib/core/streamAnalytics.d.ts +10 -5
- package/dist/lib/core/streamAnalytics.js +10 -10
- package/dist/lib/core/types.d.ts +19 -109
- package/dist/lib/core/types.js +13 -0
- package/dist/lib/factories/providerFactory.js +4 -1
- package/dist/lib/factories/providerRegistry.js +2 -2
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/mcp/externalServerManager.js +14 -6
- package/dist/lib/mcp/factory.js +1 -1
- package/dist/lib/mcp/flexibleToolValidator.d.ts +50 -0
- package/dist/lib/mcp/flexibleToolValidator.js +161 -0
- package/dist/lib/mcp/index.d.ts +1 -1
- package/dist/lib/mcp/index.js +1 -1
- package/dist/lib/mcp/mcpCircuitBreaker.js +5 -1
- package/dist/lib/mcp/mcpClientFactory.js +3 -0
- package/dist/lib/mcp/registry.d.ts +3 -3
- package/dist/lib/mcp/registry.js +3 -3
- package/dist/lib/mcp/servers/aiProviders/aiAnalysisTools.js +5 -5
- package/dist/lib/mcp/servers/aiProviders/aiWorkflowTools.js +6 -6
- package/dist/lib/mcp/servers/utilities/utilityServer.js +1 -1
- package/dist/lib/mcp/toolDiscoveryService.js +8 -2
- package/dist/lib/mcp/toolRegistry.d.ts +2 -2
- package/dist/lib/mcp/toolRegistry.js +29 -54
- package/dist/lib/middleware/builtin/analytics.js +4 -4
- package/dist/lib/middleware/builtin/guardrails.js +2 -2
- package/dist/lib/middleware/registry.js +11 -2
- package/dist/lib/models/modelRegistry.d.ts +1 -1
- package/dist/lib/models/modelRegistry.js +3 -3
- package/dist/lib/models/modelResolver.d.ts +1 -1
- package/dist/lib/models/modelResolver.js +2 -2
- package/dist/lib/neurolink.d.ts +118 -0
- package/dist/lib/neurolink.js +814 -952
- package/dist/lib/providers/amazonBedrock.d.ts +47 -6
- package/dist/lib/providers/amazonBedrock.js +282 -23
- package/dist/lib/providers/amazonSagemaker.d.ts +1 -1
- package/dist/lib/providers/amazonSagemaker.js +12 -3
- package/dist/lib/providers/anthropic.d.ts +1 -1
- package/dist/lib/providers/anthropic.js +7 -6
- package/dist/lib/providers/anthropicBaseProvider.d.ts +1 -1
- package/dist/lib/providers/anthropicBaseProvider.js +4 -3
- package/dist/lib/providers/aws/credentialProvider.d.ts +58 -0
- package/dist/lib/providers/aws/credentialProvider.js +267 -0
- package/dist/lib/providers/aws/credentialTester.d.ts +49 -0
- package/dist/lib/providers/aws/credentialTester.js +394 -0
- package/dist/lib/providers/azureOpenai.d.ts +1 -1
- package/dist/lib/providers/azureOpenai.js +1 -1
- package/dist/lib/providers/googleAiStudio.d.ts +1 -1
- package/dist/lib/providers/googleAiStudio.js +2 -2
- package/dist/lib/providers/googleVertex.d.ts +40 -0
- package/dist/lib/providers/googleVertex.js +330 -274
- package/dist/lib/providers/huggingFace.js +1 -1
- package/dist/lib/providers/mistral.d.ts +1 -1
- package/dist/lib/providers/mistral.js +2 -2
- package/dist/lib/providers/ollama.d.ts +4 -0
- package/dist/lib/providers/ollama.js +38 -18
- package/dist/lib/providers/openAI.d.ts +1 -1
- package/dist/lib/providers/openAI.js +2 -2
- package/dist/lib/providers/sagemaker/adaptive-semaphore.js +7 -4
- package/dist/lib/providers/sagemaker/client.js +13 -3
- package/dist/lib/providers/sagemaker/config.js +5 -1
- package/dist/lib/providers/sagemaker/detection.js +19 -9
- package/dist/lib/providers/sagemaker/errors.d.ts +8 -1
- package/dist/lib/providers/sagemaker/errors.js +103 -20
- package/dist/lib/providers/sagemaker/language-model.d.ts +3 -3
- package/dist/lib/providers/sagemaker/language-model.js +4 -4
- package/dist/lib/providers/sagemaker/parsers.js +14 -6
- package/dist/lib/providers/sagemaker/streaming.js +14 -3
- package/dist/lib/providers/sagemaker/types.d.ts +1 -1
- package/dist/lib/proxy/awsProxyIntegration.d.ts +23 -0
- package/dist/lib/proxy/awsProxyIntegration.js +285 -0
- package/dist/lib/proxy/proxyFetch.d.ts +9 -5
- package/dist/lib/proxy/proxyFetch.js +232 -98
- package/dist/lib/proxy/utils/noProxyUtils.d.ts +39 -0
- package/dist/lib/proxy/utils/noProxyUtils.js +149 -0
- package/dist/lib/sdk/toolRegistration.d.ts +1 -1
- package/dist/lib/types/cli.d.ts +80 -8
- package/dist/lib/types/contextTypes.js +2 -2
- package/dist/lib/types/generateTypes.d.ts +4 -6
- package/dist/lib/types/providers.d.ts +124 -19
- package/dist/lib/types/providers.js +6 -6
- package/dist/lib/types/streamTypes.d.ts +4 -6
- package/dist/lib/types/typeAliases.d.ts +1 -1
- package/dist/lib/utils/analyticsUtils.d.ts +33 -0
- package/dist/lib/utils/analyticsUtils.js +76 -0
- package/dist/lib/utils/errorHandling.js +4 -1
- package/dist/lib/utils/evaluationUtils.d.ts +27 -0
- package/dist/lib/utils/evaluationUtils.js +131 -0
- package/dist/lib/utils/optionsUtils.js +10 -1
- package/dist/lib/utils/performance.d.ts +1 -1
- package/dist/lib/utils/performance.js +15 -3
- package/dist/lib/utils/providerConfig.d.ts +1 -0
- package/dist/lib/utils/providerConfig.js +2 -1
- package/dist/lib/utils/providerHealth.d.ts +48 -0
- package/dist/lib/utils/providerHealth.js +221 -158
- package/dist/lib/utils/providerUtils.js +2 -2
- package/dist/lib/utils/timeout.js +8 -3
- package/dist/mcp/externalServerManager.js +14 -6
- package/dist/mcp/factory.js +1 -1
- package/dist/mcp/flexibleToolValidator.d.ts +50 -0
- package/dist/mcp/flexibleToolValidator.js +161 -0
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/mcpCircuitBreaker.js +5 -1
- package/dist/mcp/mcpClientFactory.js +3 -0
- package/dist/mcp/registry.d.ts +3 -3
- package/dist/mcp/registry.js +3 -3
- package/dist/mcp/servers/aiProviders/aiAnalysisTools.js +5 -5
- package/dist/mcp/servers/aiProviders/aiWorkflowTools.js +6 -6
- package/dist/mcp/servers/utilities/utilityServer.js +1 -1
- package/dist/mcp/toolDiscoveryService.js +8 -2
- package/dist/mcp/toolRegistry.d.ts +2 -2
- package/dist/mcp/toolRegistry.js +29 -54
- package/dist/middleware/builtin/analytics.js +4 -4
- package/dist/middleware/builtin/guardrails.js +2 -2
- package/dist/middleware/registry.js +11 -2
- package/dist/models/modelRegistry.d.ts +1 -1
- package/dist/models/modelRegistry.js +3 -3
- package/dist/models/modelResolver.d.ts +1 -1
- package/dist/models/modelResolver.js +2 -2
- package/dist/neurolink.d.ts +118 -0
- package/dist/neurolink.js +814 -952
- package/dist/providers/amazonBedrock.d.ts +47 -6
- package/dist/providers/amazonBedrock.js +282 -23
- package/dist/providers/amazonSagemaker.d.ts +1 -1
- package/dist/providers/amazonSagemaker.js +12 -3
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/anthropic.js +7 -6
- package/dist/providers/anthropicBaseProvider.d.ts +1 -1
- package/dist/providers/anthropicBaseProvider.js +4 -3
- package/dist/providers/aws/credentialProvider.d.ts +58 -0
- package/dist/providers/aws/credentialProvider.js +267 -0
- package/dist/providers/aws/credentialTester.d.ts +49 -0
- package/dist/providers/aws/credentialTester.js +394 -0
- package/dist/providers/azureOpenai.d.ts +1 -1
- package/dist/providers/azureOpenai.js +1 -1
- package/dist/providers/googleAiStudio.d.ts +1 -1
- package/dist/providers/googleAiStudio.js +2 -2
- package/dist/providers/googleVertex.d.ts +40 -0
- package/dist/providers/googleVertex.js +330 -274
- package/dist/providers/huggingFace.js +1 -1
- package/dist/providers/mistral.d.ts +1 -1
- package/dist/providers/mistral.js +2 -2
- package/dist/providers/ollama.d.ts +4 -0
- package/dist/providers/ollama.js +38 -18
- package/dist/providers/openAI.d.ts +1 -1
- package/dist/providers/openAI.js +2 -2
- package/dist/providers/sagemaker/adaptive-semaphore.js +7 -4
- package/dist/providers/sagemaker/client.js +13 -3
- package/dist/providers/sagemaker/config.js +5 -1
- package/dist/providers/sagemaker/detection.js +19 -9
- package/dist/providers/sagemaker/errors.d.ts +8 -1
- package/dist/providers/sagemaker/errors.js +103 -20
- package/dist/providers/sagemaker/language-model.d.ts +3 -3
- package/dist/providers/sagemaker/language-model.js +4 -4
- package/dist/providers/sagemaker/parsers.js +14 -6
- package/dist/providers/sagemaker/streaming.js +14 -3
- package/dist/providers/sagemaker/types.d.ts +1 -1
- package/dist/proxy/awsProxyIntegration.d.ts +23 -0
- package/dist/proxy/awsProxyIntegration.js +285 -0
- package/dist/proxy/proxyFetch.d.ts +9 -5
- package/dist/proxy/proxyFetch.js +232 -98
- package/dist/proxy/utils/noProxyUtils.d.ts +39 -0
- package/dist/proxy/utils/noProxyUtils.js +149 -0
- package/dist/sdk/toolRegistration.d.ts +1 -1
- package/dist/types/cli.d.ts +80 -8
- package/dist/types/contextTypes.js +2 -2
- package/dist/types/generateTypes.d.ts +4 -6
- package/dist/types/providers.d.ts +124 -19
- package/dist/types/providers.js +6 -6
- package/dist/types/streamTypes.d.ts +4 -6
- package/dist/types/typeAliases.d.ts +1 -1
- package/dist/utils/analyticsUtils.d.ts +33 -0
- package/dist/utils/analyticsUtils.js +76 -0
- package/dist/utils/errorHandling.js +4 -1
- package/dist/utils/evaluationUtils.d.ts +27 -0
- package/dist/utils/evaluationUtils.js +131 -0
- package/dist/utils/optionsUtils.js +10 -1
- package/dist/utils/performance.d.ts +1 -1
- package/dist/utils/performance.js +15 -3
- package/dist/utils/providerConfig.d.ts +1 -0
- package/dist/utils/providerConfig.js +2 -1
- package/dist/utils/providerHealth.d.ts +48 -0
- package/dist/utils/providerHealth.js +221 -158
- package/dist/utils/providerUtils.js +2 -2
- package/dist/utils/timeout.js +8 -3
- 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
|
-
|
|
155
|
+
anthropic?: {
|
|
169
156
|
model: string;
|
|
170
157
|
apiKey?: string | undefined;
|
|
171
|
-
endpoint?: string | undefined;
|
|
172
|
-
deploymentId?: string | undefined;
|
|
173
158
|
} | undefined;
|
|
174
|
-
|
|
159
|
+
openai?: {
|
|
175
160
|
model: string;
|
|
176
|
-
|
|
177
|
-
|
|
161
|
+
apiKey?: string | undefined;
|
|
162
|
+
baseURL?: string | undefined;
|
|
178
163
|
} | undefined;
|
|
179
|
-
|
|
164
|
+
"google-ai"?: {
|
|
180
165
|
model: string;
|
|
181
166
|
apiKey?: string | undefined;
|
|
182
167
|
} | undefined;
|
|
183
|
-
|
|
168
|
+
ollama?: {
|
|
169
|
+
timeout: number;
|
|
184
170
|
model: string;
|
|
185
|
-
|
|
171
|
+
baseUrl: string;
|
|
186
172
|
} | undefined;
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
|
|
193
|
-
model
|
|
179
|
+
huggingface?: {
|
|
180
|
+
model: string;
|
|
194
181
|
apiKey?: string | undefined;
|
|
195
|
-
baseURL?: string | undefined;
|
|
196
182
|
} | undefined;
|
|
197
|
-
|
|
198
|
-
model
|
|
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
|
-
|
|
204
|
+
anthropic?: {
|
|
205
|
+
apiKey?: string | undefined;
|
|
218
206
|
model?: string | undefined;
|
|
207
|
+
} | undefined;
|
|
208
|
+
openai?: {
|
|
219
209
|
apiKey?: string | undefined;
|
|
220
|
-
|
|
221
|
-
|
|
210
|
+
baseURL?: string | undefined;
|
|
211
|
+
model?: string | undefined;
|
|
222
212
|
} | undefined;
|
|
223
|
-
|
|
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
|
-
|
|
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
|
-
|
|
475
|
+
anthropic?: {
|
|
489
476
|
model: string;
|
|
490
477
|
apiKey?: string | undefined;
|
|
491
|
-
endpoint?: string | undefined;
|
|
492
|
-
deploymentId?: string | undefined;
|
|
493
478
|
} | undefined;
|
|
494
|
-
|
|
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
|
-
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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?: "
|
|
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;
|
package/dist/cli/commands/mcp.js
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
835
|
-
//
|
|
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 (
|
|
871
|
-
//
|
|
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
|
-
|
|
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
|
|
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 (
|
|
103
|
+
catch (_error) {
|
|
104
104
|
spinner.fail(`Failed to remove ${model}`);
|
|
105
|
-
const errorMessage =
|
|
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
|
*/
|