@juspay/neurolink 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/browser/neurolink.min.js +524 -524
- package/dist/cli/commands/setup.d.ts +4 -0
- package/dist/cli/commands/setup.js +19 -33
- package/dist/cli/factories/commandFactory.d.ts +1157 -1
- package/dist/cli/factories/commandFactory.js +20 -53
- package/dist/factories/providerDescriptors.d.ts +18 -0
- package/dist/factories/providerDescriptors.js +536 -0
- package/dist/factories/providerFactory.d.ts +25 -14
- package/dist/factories/providerFactory.js +46 -23
- package/dist/factories/providerRegistry.js +31 -30
- package/dist/index.d.ts +10 -1
- package/dist/index.js +13 -3
- package/dist/lib/factories/providerDescriptors.d.ts +18 -0
- package/dist/lib/factories/providerDescriptors.js +537 -0
- package/dist/lib/factories/providerFactory.d.ts +25 -14
- package/dist/lib/factories/providerFactory.js +46 -23
- package/dist/lib/factories/providerRegistry.js +31 -30
- package/dist/lib/index.d.ts +10 -1
- package/dist/lib/index.js +13 -3
- package/dist/lib/neurolink.js +25 -37
- package/dist/lib/providers/amazonBedrock/client.js +34 -16
- package/dist/lib/providers/anthropic/client.js +39 -34
- package/dist/lib/providers/azureOpenai.js +17 -15
- package/dist/lib/providers/cloudflare.js +12 -21
- package/dist/lib/providers/cohere.js +31 -25
- package/dist/lib/providers/deepseek.js +23 -26
- package/dist/lib/providers/fireworks.js +12 -21
- package/dist/lib/providers/googleAiStudio/client.d.ts +2 -0
- package/dist/lib/providers/googleAiStudio/client.js +39 -17
- package/dist/lib/providers/googleVertex/client.js +107 -99
- package/dist/lib/providers/groq.js +19 -22
- package/dist/lib/providers/huggingFace/client.js +26 -24
- package/dist/lib/providers/litellm/client.js +54 -39
- package/dist/lib/providers/llamaCpp.js +21 -18
- package/dist/lib/providers/lmStudio.js +22 -19
- package/dist/lib/providers/mistral.js +12 -24
- package/dist/lib/providers/nvidiaNim/client.js +37 -34
- package/dist/lib/providers/ollama/client.js +50 -35
- package/dist/lib/providers/openAI/client.js +37 -40
- package/dist/lib/providers/openRouter/client.js +53 -47
- package/dist/lib/providers/openaiChatCompletionsBase.js +40 -16
- package/dist/lib/providers/openaiCompatible/client.js +36 -32
- package/dist/lib/providers/perplexity.js +12 -21
- package/dist/lib/providers/togetherAi.js +12 -21
- package/dist/lib/providers/xai.js +17 -26
- package/dist/lib/server/errors.d.ts +1 -1
- package/dist/lib/server/errors.js +2 -2
- package/dist/lib/server/index.d.ts +2 -2
- package/dist/lib/server/index.js +5 -3
- package/dist/lib/server/middleware/rateLimit.d.ts +0 -4
- package/dist/lib/server/middleware/rateLimit.js +0 -4
- package/dist/lib/types/errors.d.ts +35 -0
- package/dist/lib/types/providers.d.ts +64 -0
- package/dist/lib/utils/errorClassifier.d.ts +30 -0
- package/dist/lib/utils/errorClassifier.js +94 -0
- package/dist/lib/utils/fileDetector.js +6 -43
- package/dist/lib/utils/providerHealth.d.ts +42 -7
- package/dist/lib/utils/providerHealth.js +115 -122
- package/dist/lib/utils/providerUtils.js +21 -63
- package/dist/neurolink.js +25 -37
- package/dist/providers/amazonBedrock/client.js +34 -16
- package/dist/providers/amazonSagemaker.d.ts +1 -1
- package/dist/providers/anthropic/client.js +39 -34
- package/dist/providers/azureOpenai.js +17 -15
- package/dist/providers/cloudflare.js +12 -21
- package/dist/providers/cohere.js +31 -25
- package/dist/providers/deepseek.js +23 -26
- package/dist/providers/fireworks.js +12 -21
- package/dist/providers/googleAiStudio/client.d.ts +2 -0
- package/dist/providers/googleAiStudio/client.js +39 -17
- package/dist/providers/googleVertex/client.js +107 -99
- package/dist/providers/groq.js +19 -22
- package/dist/providers/huggingFace/client.js +26 -24
- package/dist/providers/litellm/client.js +54 -39
- package/dist/providers/llamaCpp.js +21 -18
- package/dist/providers/lmStudio.js +22 -19
- package/dist/providers/mistral.js +12 -24
- package/dist/providers/nvidiaNim/client.js +37 -34
- package/dist/providers/ollama/client.js +50 -35
- package/dist/providers/openAI/client.js +37 -40
- package/dist/providers/openRouter/client.js +53 -47
- package/dist/providers/openaiChatCompletionsBase.js +40 -16
- package/dist/providers/openaiCompatible/client.js +36 -32
- package/dist/providers/perplexity.js +12 -21
- package/dist/providers/sagemaker/language-model.d.ts +2 -2
- package/dist/providers/togetherAi.js +12 -21
- package/dist/providers/xai.js +17 -26
- package/dist/server/errors.d.ts +1 -1
- package/dist/server/errors.js +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +5 -3
- package/dist/server/middleware/rateLimit.d.ts +0 -4
- package/dist/server/middleware/rateLimit.js +0 -4
- package/dist/types/errors.d.ts +35 -0
- package/dist/types/providers.d.ts +64 -0
- package/dist/utils/errorClassifier.d.ts +30 -0
- package/dist/utils/errorClassifier.js +93 -0
- package/dist/utils/fileDetector.js +6 -43
- package/dist/utils/providerHealth.d.ts +42 -7
- package/dist/utils/providerHealth.js +115 -122
- package/dist/utils/providerUtils.js +21 -63
- package/package.json +15 -70
|
@@ -8,6 +8,8 @@ import { AIProviderName } from "../constants/enums.js";
|
|
|
8
8
|
import { ProviderHealthChecker } from "./providerHealth.js";
|
|
9
9
|
import { API_KEY_FORMATS, API_KEY_LENGTHS, PROJECT_ID_FORMAT, } from "./providerConfig.js";
|
|
10
10
|
import { DEFAULT_OLLAMA_MODEL } from "../providers/ollama/constants.js";
|
|
11
|
+
import { ProviderFactory } from "../factories/providerFactory.js";
|
|
12
|
+
import { PROVIDER_DESCRIPTORS } from "../factories/providerDescriptors.js";
|
|
11
13
|
/**
|
|
12
14
|
* Get the best available provider based on real-time availability checks
|
|
13
15
|
* Enhanced version consolidated from providerUtils-fixed.ts
|
|
@@ -60,18 +62,9 @@ export async function getBestProvider(requestedProvider) {
|
|
|
60
62
|
* - Other providers are ordered based on a combination of reliability, feature set, and historical performance.
|
|
61
63
|
* Please update this comment if the order is changed in the future, and document the rationale for maintainability.
|
|
62
64
|
*/
|
|
63
|
-
const providers =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"vertex", // Google Cloud AI (enterprise)
|
|
67
|
-
"google-ai", // Google AI ecosystem support
|
|
68
|
-
"openai", // Reliable with broad model support
|
|
69
|
-
"anthropic",
|
|
70
|
-
"bedrock",
|
|
71
|
-
"azure",
|
|
72
|
-
"mistral",
|
|
73
|
-
"huggingface",
|
|
74
|
-
];
|
|
65
|
+
const providers = PROVIDER_DESCRIPTORS.filter((d) => d.autoSelectPriority !== undefined)
|
|
66
|
+
.sort((a, b) => (a.autoSelectPriority ?? 0) - (b.autoSelectPriority ?? 0))
|
|
67
|
+
.map((d) => d.name);
|
|
75
68
|
for (const provider of providers) {
|
|
76
69
|
if (await isProviderAvailable(provider)) {
|
|
77
70
|
logger.debug(`[getBestProvider] Selected provider: ${provider}`);
|
|
@@ -332,64 +325,29 @@ function isValidUrl(url) {
|
|
|
332
325
|
* @returns True if the provider has required environment variables
|
|
333
326
|
*/
|
|
334
327
|
export function hasProviderEnvVars(provider) {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
(process.env.GOOGLE_APPLICATION_CREDENTIALS ||
|
|
349
|
-
process.env.GOOGLE_SERVICE_ACCOUNT_KEY ||
|
|
350
|
-
(process.env.GOOGLE_AUTH_CLIENT_EMAIL &&
|
|
351
|
-
process.env.GOOGLE_AUTH_PRIVATE_KEY)));
|
|
352
|
-
case "openai":
|
|
353
|
-
case "gpt":
|
|
354
|
-
return !!process.env.OPENAI_API_KEY;
|
|
355
|
-
case "anthropic":
|
|
356
|
-
case "claude":
|
|
357
|
-
return !!process.env.ANTHROPIC_API_KEY;
|
|
358
|
-
case "azure":
|
|
359
|
-
case "azureopenai":
|
|
360
|
-
return !!process.env.AZURE_OPENAI_API_KEY;
|
|
361
|
-
case "google-ai":
|
|
362
|
-
case "google-studio":
|
|
363
|
-
return !!(process.env.GOOGLE_AI_API_KEY ||
|
|
364
|
-
process.env.GOOGLE_GENERATIVE_AI_API_KEY);
|
|
365
|
-
case "huggingface":
|
|
366
|
-
case "hugging-face":
|
|
367
|
-
case "hf":
|
|
368
|
-
return !!(process.env.HUGGINGFACE_API_KEY || process.env.HF_TOKEN);
|
|
369
|
-
case "ollama":
|
|
370
|
-
case "local":
|
|
371
|
-
case "local-ollama":
|
|
372
|
-
// For Ollama, we check if the service is potentially available
|
|
373
|
-
// This is a basic check - actual connectivity will be verified during usage
|
|
374
|
-
return true; // Ollama doesn't require environment variables, just local service
|
|
375
|
-
case "mistral":
|
|
376
|
-
case "mistral-ai":
|
|
377
|
-
case "mistralai":
|
|
378
|
-
return !!process.env.MISTRAL_API_KEY;
|
|
379
|
-
case "litellm":
|
|
380
|
-
// LiteLLM requires a proxy server, which can be checked for availability
|
|
381
|
-
// Default base URL is assumed, or can be configured via environment
|
|
382
|
-
return true; // LiteLLM proxy availability will be checked during usage
|
|
383
|
-
default:
|
|
384
|
-
return false;
|
|
328
|
+
const descriptor = ProviderFactory.getDescriptor(provider);
|
|
329
|
+
if (!descriptor) {
|
|
330
|
+
return false;
|
|
331
|
+
}
|
|
332
|
+
if (descriptor.envVars.optional || descriptor.localRuntime) {
|
|
333
|
+
// Ollama / LiteLLM / LM Studio / llama.cpp: usable with defaults.
|
|
334
|
+
return true;
|
|
335
|
+
}
|
|
336
|
+
const { apiKey, fallbacks, extraRequired, extraRequiredFallbacks } = descriptor.envVars;
|
|
337
|
+
const hasPrimary = !!apiKey &&
|
|
338
|
+
(!!process.env[apiKey] || (fallbacks ?? []).some((v) => !!process.env[v]));
|
|
339
|
+
if (!hasPrimary) {
|
|
340
|
+
return false;
|
|
385
341
|
}
|
|
342
|
+
return ((extraRequired ?? []).every((v) => !!process.env[v]) ||
|
|
343
|
+
(extraRequiredFallbacks ?? []).some((v) => !!process.env[v]));
|
|
386
344
|
}
|
|
387
345
|
/**
|
|
388
346
|
* Get available provider names
|
|
389
347
|
* @returns Array of available provider names
|
|
390
348
|
*/
|
|
391
349
|
export function getAvailableProviders() {
|
|
392
|
-
return
|
|
350
|
+
return PROVIDER_DESCRIPTORS.map((d) => d.name);
|
|
393
351
|
}
|
|
394
352
|
/**
|
|
395
353
|
* Validate provider name
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay/neurolink",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.1.0",
|
|
4
4
|
"packageManager": "pnpm@10.15.1",
|
|
5
5
|
"description": "TypeScript AI SDK with 24+ LLM providers behind one consistent API. MCP-native (connect any MCP server), voice TTS/STT/realtime, RAG, agents, memory, context compaction. OpenAI · Anthropic · Gemini · Bedrock · Azure · Ollama · DeepSeek · NVIDIA NIM and more.",
|
|
6
6
|
"author": {
|
|
@@ -71,26 +71,19 @@
|
|
|
71
71
|
"test": "npx tsx test/continuous-test-suite.ts",
|
|
72
72
|
"test:client": "npx tsx test/continuous-test-suite-client.ts",
|
|
73
73
|
"test:context": "npx tsx test/continuous-test-suite-context.ts",
|
|
74
|
-
"test:cache": "npx tsx test/continuous-test-suite-cache-breakpoints.ts",
|
|
75
74
|
"test:evaluation": "npx tsx test/continuous-test-suite-evaluation.ts",
|
|
76
75
|
"test:mcp": "npx tsx test/continuous-test-suite-mcp-infra.ts",
|
|
77
76
|
"test:tool-resolution": "npx tsx test/continuous-test-suite-tool-resolution.ts",
|
|
78
77
|
"test:mcp:http": "npx tsx test/continuous-test-suite-mcp-http.ts",
|
|
79
78
|
"test:mcp:sdk": "npx tsx test/continuous-test-suite-mcp-sdk.ts",
|
|
80
79
|
"test:mcp:cli": "npx tsx test/continuous-test-suite-mcp-cli.ts",
|
|
81
|
-
"test:mcp:full": "pnpm run test:mcp:infra && pnpm run test:mcp:
|
|
80
|
+
"test:mcp:full": "pnpm run test:mcp:infra && pnpm run test:mcp:spans && pnpm run test:mcp:sdk && pnpm run test:mcp:cli && pnpm run test:mcp:http",
|
|
82
81
|
"test:media": "npx tsx test/continuous-test-suite-media-gen.ts",
|
|
83
|
-
"test:litellm-parity": "npx tsx test/continuous-test-suite-litellm-parity.ts",
|
|
84
82
|
"test:memory": "npx tsx test/continuous-test-suite-memory.ts",
|
|
85
|
-
"test:
|
|
86
|
-
"test:
|
|
87
|
-
"test:
|
|
88
|
-
"test:
|
|
89
|
-
"test:openai-compat-guard": "npx tsx test/continuous-test-suite-openai-compat-guard.ts",
|
|
90
|
-
"test:anthropic-guard": "npx tsx test/continuous-test-suite-anthropic-guard.ts",
|
|
91
|
-
"test:tool-storage-parity": "npx tsx test/continuous-test-suite-tool-storage-parity.ts",
|
|
92
|
-
"test:redis-append-only": "npx tsx test/continuous-test-suite-redis-append-only.ts",
|
|
93
|
-
"test:gemini-guard": "npx tsx test/continuous-test-suite-gemini-guard.ts",
|
|
83
|
+
"test:openai-compat-streaming-retry": "npx tsx test/continuous-test-suite-openai-compat-streaming-retry.ts",
|
|
84
|
+
"test:anthropic-streaming-retry": "npx tsx test/continuous-test-suite-anthropic-streaming-retry.ts",
|
|
85
|
+
"test:error-classification-e2e": "npx tsx test/continuous-test-suite-error-classification-e2e.ts",
|
|
86
|
+
"test:error-classifier-contract": "npx tsx test/continuous-test-suite-error-classifier-contract.ts",
|
|
94
87
|
"test:middleware": "npx tsx test/continuous-test-suite-middleware.ts",
|
|
95
88
|
"test:observability": "npx tsx test/continuous-test-suite-observability.ts",
|
|
96
89
|
"test:ppt": "npx tsx test/continuous-test-suite-ppt.ts",
|
|
@@ -99,74 +92,40 @@
|
|
|
99
92
|
"test:matrix": "npx tsx test/continuous-test-suite-provider-matrix.ts",
|
|
100
93
|
"test:matrix:cli": "npx tsx test/continuous-test-suite-provider-matrix-cli.ts",
|
|
101
94
|
"test:mcp:spans": "npx tsx test/continuous-test-suite-mcp-spans.ts",
|
|
102
|
-
"test:mcp:bash": "npx tsx test/continuous-test-suite-mcp-bash.ts",
|
|
103
|
-
"test:mcp:limits": "npx tsx test/continuous-test-suite-mcp-output-limits.ts",
|
|
104
95
|
"test:mcp:infra": "npx tsx test/continuous-test-suite-mcp-infra.ts",
|
|
105
96
|
"test:providers-mocked": "npx tsx test/continuous-test-suite-providers-mocked.ts",
|
|
97
|
+
"test:provider-descriptors": "npx tsx test/continuous-test-suite-provider-descriptors.ts",
|
|
106
98
|
"test:provider-structure": "npx tsx test/continuous-test-suite-provider-structure.ts",
|
|
107
99
|
"test:provider-fallback": "npx tsx test/continuous-test-suite-provider-fallback.ts",
|
|
108
100
|
"test:provider-fallback-latency": "npx tsx test/continuous-test-suite-provider-fallback-latency.ts",
|
|
109
101
|
"test:provider-wiring": "npx tsx test/continuous-test-suite-provider-wiring.ts",
|
|
110
102
|
"test:rag": "npx tsx test/continuous-test-suite-rag.ts",
|
|
111
|
-
"test:vector-pinecone": "npx tsx test/continuous-test-suite-vector-pinecone.ts",
|
|
112
|
-
"test:vector-pgvector": "npx tsx test/continuous-test-suite-vector-pgvector.ts",
|
|
113
|
-
"test:vector-chroma": "npx tsx test/continuous-test-suite-vector-chroma.ts",
|
|
114
103
|
"test:skills": "npx tsx test/continuous-test-suite-skills.ts",
|
|
115
104
|
"test:servers": "npx tsx test/continuous-test-suite-servers.ts",
|
|
116
105
|
"test:tool-reliability": "npx tsx test/continuous-test-suite-tool-reliability.ts",
|
|
117
|
-
"test:google-native": "npx tsx test/continuous-test-suite-google-native.ts",
|
|
118
|
-
"test:gemini-abort": "npx tsx test/continuous-test-suite-gemini-abort.ts",
|
|
119
|
-
"test:anthropic-cap": "npx tsx test/continuous-test-suite-anthropic-cap.ts",
|
|
120
|
-
"test:token-usage": "npx tsx test/continuous-test-suite-token-usage.ts",
|
|
121
106
|
"test:tts": "npx tsx test/continuous-test-suite-tts.ts",
|
|
122
107
|
"test:voice": "npx tsx test/continuous-test-suite-voice.ts",
|
|
123
|
-
"test:voice-server": "npx tsx test/continuous-test-suite-voice-server.ts",
|
|
124
108
|
"test:avatar": "npx tsx test/continuous-test-suite-avatar.ts",
|
|
125
109
|
"test:music": "npx tsx test/continuous-test-suite-music.ts",
|
|
126
110
|
"test:image-gen": "npx tsx test/continuous-test-suite-image-gen-extras.ts",
|
|
127
|
-
"test:ssrf": "npx tsx test/continuous-test-suite-ssrf.ts",
|
|
128
|
-
"test:log-sanitize": "npx tsx test/continuous-test-suite-log-sanitize.ts",
|
|
129
|
-
"test:sse-client": "npx tsx test/continuous-test-suite-sse-client.ts",
|
|
130
|
-
"test:stream-span": "npx tsx test/continuous-test-suite-stream-span.ts",
|
|
131
|
-
"test:vertex-langfuse-spans": "npx tsx test/continuous-test-suite-vertex-langfuse-spans.ts",
|
|
132
111
|
"test:credentials": "npx tsx test/continuous-test-suite-credentials.ts",
|
|
133
112
|
"test:dynamic": "npx tsx test/continuous-test-suite-dynamic.ts",
|
|
134
113
|
"test:proxy": "npx tsx test/continuous-test-suite-proxy.ts",
|
|
135
114
|
"test:bugfixes": "npx tsx test/continuous-test-suite-bugfixes.ts",
|
|
136
|
-
"test:file-detector-extension": "npx tsx test/continuous-test-suite-file-detector-extension.ts",
|
|
137
|
-
"test:file-detector-magic-bytes": "npx tsx test/continuous-test-suite-file-detector-magic-bytes.ts",
|
|
138
|
-
"test:json": "npx tsx test/continuous-test-suite-json.ts",
|
|
139
115
|
"test:json-e2e": "npx tsx test/continuous-test-suite-json-e2e.ts",
|
|
140
116
|
"test:workflow": "npx tsx test/continuous-test-suite-workflow.ts",
|
|
141
117
|
"test:hitl": "npx tsx test/continuous-test-suite-hitl.ts",
|
|
142
|
-
"test:analytics": "npx tsx test/continuous-test-suite-analytics.ts",
|
|
143
118
|
"test:tasks": "npx tsx test/continuous-test-suite-tasks.ts",
|
|
144
119
|
"test:auth": "npx tsx test/continuous-test-suite-auth.ts",
|
|
145
120
|
"test:autoresearch": "npx tsx test/continuous-test-suite-autoresearch.ts",
|
|
146
|
-
"test:
|
|
147
|
-
"test:anthropic-tools-policy": "npx tsx test/continuous-test-suite-anthropic-tools-policy.ts",
|
|
148
|
-
"test:anthropic-structured": "npx tsx test/continuous-test-suite-anthropic-structured-tools.ts",
|
|
149
|
-
"test:sagemaker-tools": "npx tsx test/continuous-test-suite-sagemaker-tools.ts",
|
|
150
|
-
"test:anthropic-multimodal": "npx tsx test/continuous-test-suite-anthropic-multimodal.ts",
|
|
151
|
-
"test:unified-files-prompt-sync": "npx tsx test/continuous-test-suite-unified-files-prompt-sync.ts",
|
|
152
|
-
"test:excel-interop": "npx tsx test/continuous-test-suite-excel-interop.ts",
|
|
153
|
-
"test:envguard": "npx tsx test/helpers/envGuard.test.ts",
|
|
154
|
-
"test:tool-routing-cli": "npx tsx test/continuous-test-suite-tool-routing-flags.ts && npx tsx test/continuous-test-suite-tool-routing-cli.ts",
|
|
121
|
+
"test:tool-routing-cli": "npx tsx test/continuous-test-suite-tool-routing-cli.ts",
|
|
155
122
|
"test:tool-dedup": "npx tsx test/continuous-test-suite-tool-dedup.ts",
|
|
156
|
-
"test:model-pool": "npx tsx test/continuous-test-suite-model-pool.ts",
|
|
157
123
|
"test:model-not-found-retryable": "npx tsx test/continuous-test-suite-model-not-found-retryable.ts",
|
|
158
|
-
"test:model-capabilities": "npx tsx test/continuous-test-suite-model-capabilities.ts",
|
|
159
|
-
"test:agent-runtime:vitest": "pnpm exec vitest run test/agentRuntime.test.ts",
|
|
160
|
-
"test:retry-after:vitest": "pnpm exec vitest run test/retryAfter.test.ts",
|
|
161
|
-
"test:websearch-grounding": "npx tsx test/continuous-test-suite-websearch-grounding.ts",
|
|
162
124
|
"test:ci": "pnpm run test && pnpm run test:client && pnpm run test:hitl",
|
|
163
125
|
"// CI tier — fast, no live AI calls, safe for every commit (test:unit; also see the separate provider-safety-net CI job, which runs build + test:providers-mocked + test:provider-structure on every PR)": "",
|
|
164
126
|
"test:tool-routing": "npx tsx test/continuous-test-suite-tool-routing.ts",
|
|
165
|
-
"test:classifier-router": "npx tsx test/continuous-test-suite-classifier-router.ts",
|
|
166
|
-
"test:system-messages": "npx tsx test/continuous-test-suite-system-messages.ts",
|
|
167
|
-
"test:test-stubs": "npx tsx test/continuous-test-suite-test-stubs.ts",
|
|
168
127
|
"test:tool-routing-semantic": "npx tsx test/continuous-test-suite-tool-routing-semantic.ts",
|
|
169
|
-
"test:unit": "pnpm run test:
|
|
128
|
+
"test:unit": "pnpm run test:bugfixes && pnpm run test:mcp:infra && pnpm run test:mcp:spans && pnpm run test:tool-routing && pnpm run test:tool-routing-cli && pnpm run test:tool-dedup && pnpm run test:model-pool && pnpm run test:tool-routing-semantic && pnpm run test:mcp-result-cache && pnpm run test:model-not-found-retryable && pnpm run test:archive:security && pnpm run test:office:security && pnpm run test:vector-chroma && pnpm run test:vector-pgvector && pnpm run test:vector-pinecone && pnpm run test:provider-wiring",
|
|
170
129
|
"// CI tier — live providers, runs only when API keys are present (test:credentials and test:dynamic make real provider calls when keys are set, so they live here, not in test:unit; test:matrix, a different suite covering the full provider capability matrix, runs nightly via .github/workflows/live-matrix.yml — test:providers itself is still only wired into test:live, not any GitHub Actions workflow)": "",
|
|
171
130
|
"test:live": "pnpm run test:providers && pnpm run test:mcp:http && pnpm run test:mcp:sdk && pnpm run test:mcp:cli && pnpm run test:observability && pnpm run test:context && pnpm run test:memory && pnpm run test:tool-reliability && pnpm run test:evaluation && pnpm run test:autoresearch && pnpm run test:credentials && pnpm run test:dynamic",
|
|
172
131
|
"// CI tier — product output (image/video/TTS/PPT) — costs $$ per run (not wired into any GitHub Actions workflow as of this comment; run manually or add to live-matrix.yml if nightly coverage is needed)": "",
|
|
@@ -228,30 +187,16 @@
|
|
|
228
187
|
"pre-commit": "lint-staged",
|
|
229
188
|
"pre-push": "pnpm run build && pnpm run test:providers-mocked && pnpm run test:provider-structure",
|
|
230
189
|
"check:all": "pnpm run lint && pnpm run format --check && pnpm run validate && pnpm run validate:commit",
|
|
231
|
-
"test:litellm-context": "npx tsx test/continuous-test-suite-litellm-context-windows.ts",
|
|
232
|
-
"test:dedup-execute-map": "npx tsx test/continuous-test-suite-dedup-execute-map.ts",
|
|
233
|
-
"test:agent-delegation": "npx tsx test/continuous-test-suite-agent-delegation.ts",
|
|
234
|
-
"test:step-budget-guard": "npx tsx test/continuous-test-suite-step-budget-guard.ts",
|
|
235
|
-
"test:agent-plumbing": "npx tsx test/continuous-test-suite-agent-plumbing.ts",
|
|
236
|
-
"test:tool-execution-recorder": "npx tsx test/continuous-test-suite-tool-execution-recorder.ts",
|
|
237
|
-
"test:proxy-terminal-errors": "npx tsx test/continuous-test-suite-proxy-terminal-errors.ts",
|
|
238
|
-
"test:proxy-limit-headers": "npx tsx test/continuous-test-suite-proxy-limit-headers.ts",
|
|
239
|
-
"test:proxy-usage-refresh": "npx tsx test/continuous-test-suite-proxy-usage-refresh.ts",
|
|
240
|
-
"test:proxy:vitest": "pnpm exec vitest run test/proxyAnalysis.test.ts test/proxyConfigHotReload.test.ts test/proxyObservabilityFoundation.test.ts test/proxyReliabilityHardening.test.ts test/proxyReplay.test.ts test/proxyRollingWorkerHandoff.test.ts test/proxyTestIsolation.test.ts test/proxyUpdaterFallback.test.ts test/proxyUsageStatsPersistence.test.ts",
|
|
241
|
-
"test:anthropic-limit-capture": "npx tsx test/continuous-test-suite-anthropic-limit-capture.ts",
|
|
242
|
-
"test:audio": "npx tsx test/continuous-test-suite-audio.ts",
|
|
243
190
|
"test:file-formats": "npx tsx test/continuous-test-suite-file-formats.ts",
|
|
244
|
-
"test:
|
|
245
|
-
"test:tts:unit": "npx tsx test/continuous-test-suite-tts-unit.ts",
|
|
246
|
-
"test:video": "npx tsx test/continuous-test-suite-video.ts",
|
|
247
|
-
"test:multimodal": "pnpm run test:file-formats && pnpm run test:audio && pnpm run test:video && pnpm run test:office && pnpm run test:tts:unit && pnpm run test:multimodal:sdk",
|
|
191
|
+
"test:multimodal": "pnpm run test:file-formats && pnpm run test:multimodal:sdk",
|
|
248
192
|
"test:multimodal:sdk": "npx tsx test/continuous-test-suite-multimodal-sdk.ts",
|
|
249
|
-
"test:sampling-params": "npx tsx test/continuous-test-suite-sampling-params.ts",
|
|
250
|
-
"test:structured-recovery": "npx tsx test/continuous-test-suite-structured-recovery.ts",
|
|
251
|
-
"test:prompt-redaction": "npx tsx test/continuous-test-suite-prompt-redaction.ts",
|
|
252
193
|
"test:mcp-result-cache": "npx tsx test/continuous-test-suite-mcp-result-cache.ts",
|
|
253
194
|
"test:archive:security": "npx tsx test/continuous-test-suite-archive-security.ts",
|
|
254
|
-
"test:office:security": "npx tsx test/continuous-test-suite-office-security.ts"
|
|
195
|
+
"test:office:security": "npx tsx test/continuous-test-suite-office-security.ts",
|
|
196
|
+
"test:model-pool": "npx tsx test/continuous-test-suite-model-pool.ts",
|
|
197
|
+
"test:vector-chroma": "npx tsx test/continuous-test-suite-vector-chroma.ts",
|
|
198
|
+
"test:vector-pgvector": "npx tsx test/continuous-test-suite-vector-pgvector.ts",
|
|
199
|
+
"test:vector-pinecone": "npx tsx test/continuous-test-suite-vector-pinecone.ts"
|
|
255
200
|
},
|
|
256
201
|
"files": [
|
|
257
202
|
"dist",
|