@juspay/neurolink 9.59.6 → 9.60.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +11 -7
- package/dist/adapters/providerImageAdapter.js +52 -2
- package/dist/browser/neurolink.min.js +352 -352
- package/dist/cli/commands/proxy.js +54 -11
- package/dist/cli/factories/commandFactory.js +15 -1
- package/dist/cli/utils/interactiveSetup.js +64 -0
- package/dist/constants/contextWindows.d.ts +5 -1
- package/dist/constants/contextWindows.js +67 -3
- package/dist/constants/enums.d.ts +52 -0
- package/dist/constants/enums.js +63 -0
- package/dist/core/baseProvider.d.ts +15 -6
- package/dist/core/baseProvider.js +28 -0
- package/dist/factories/providerRegistry.js +25 -1
- package/dist/lib/adapters/providerImageAdapter.js +52 -2
- package/dist/lib/constants/contextWindows.d.ts +5 -1
- package/dist/lib/constants/contextWindows.js +67 -3
- package/dist/lib/constants/enums.d.ts +52 -0
- package/dist/lib/constants/enums.js +63 -0
- package/dist/lib/core/baseProvider.d.ts +15 -6
- package/dist/lib/core/baseProvider.js +28 -0
- package/dist/lib/factories/providerRegistry.js +25 -1
- package/dist/lib/providers/deepseek.d.ts +29 -0
- package/dist/lib/providers/deepseek.js +216 -0
- package/dist/lib/providers/index.d.ts +4 -0
- package/dist/lib/providers/index.js +4 -0
- package/dist/lib/providers/llamaCpp.d.ts +34 -0
- package/dist/lib/providers/llamaCpp.js +315 -0
- package/dist/lib/providers/lmStudio.d.ts +34 -0
- package/dist/lib/providers/lmStudio.js +306 -0
- package/dist/lib/providers/nvidiaNim.d.ts +31 -0
- package/dist/lib/providers/nvidiaNim.js +354 -0
- package/dist/lib/proxy/proxyFetch.d.ts +9 -0
- package/dist/lib/proxy/proxyFetch.js +6 -1
- package/dist/lib/types/providers.d.ts +37 -2
- package/dist/lib/types/providers.js +1 -1
- package/dist/lib/utils/modelChoices.js +68 -4
- package/dist/lib/utils/pricing.d.ts +5 -0
- package/dist/lib/utils/pricing.js +94 -3
- package/dist/lib/utils/providerConfig.d.ts +16 -0
- package/dist/lib/utils/providerConfig.js +82 -0
- package/dist/providers/deepseek.d.ts +29 -0
- package/dist/providers/deepseek.js +215 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.js +4 -0
- package/dist/providers/llamaCpp.d.ts +34 -0
- package/dist/providers/llamaCpp.js +314 -0
- package/dist/providers/lmStudio.d.ts +34 -0
- package/dist/providers/lmStudio.js +305 -0
- package/dist/providers/nvidiaNim.d.ts +31 -0
- package/dist/providers/nvidiaNim.js +353 -0
- package/dist/proxy/proxyFetch.d.ts +9 -0
- package/dist/proxy/proxyFetch.js +6 -1
- package/dist/types/providers.d.ts +37 -2
- package/dist/utils/modelChoices.js +68 -4
- package/dist/utils/pricing.d.ts +5 -0
- package/dist/utils/pricing.js +94 -3
- package/dist/utils/providerConfig.d.ts +16 -0
- package/dist/utils/providerConfig.js +82 -0
- package/package.json +19 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [9.60.1](https://github.com/juspay/neurolink/compare/v9.60.0...v9.60.1) (2026-04-30)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **(proxy):** validate pnpm global store compatibility before auto-update install ([ac573ad](https://github.com/juspay/neurolink/commit/ac573adc688aa28376d4b39ffa8e6bb7539cb40e))
|
|
6
|
+
|
|
7
|
+
## [9.60.0](https://github.com/juspay/neurolink/compare/v9.59.6...v9.60.0) (2026-04-30)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- **(providers):** integrate DeepSeek, NVIDIA NIM, LM Studio, llama.cpp ([c829f4d](https://github.com/juspay/neurolink/commit/c829f4dea09bf3a6eae08c4902f9293bfb6c05f6))
|
|
12
|
+
|
|
1
13
|
## [9.59.6](https://github.com/juspay/neurolink/compare/v9.59.5...v9.59.6) (2026-04-30)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ for await (const chunk of result.stream) {
|
|
|
26
26
|
|
|
27
27
|
## 🧠 What is NeuroLink?
|
|
28
28
|
|
|
29
|
-
**NeuroLink is the universal AI integration platform that unifies
|
|
29
|
+
**NeuroLink is the universal AI integration platform that unifies 17 major AI providers and 100+ models under one consistent API.**
|
|
30
30
|
|
|
31
31
|
Extracted from production systems at Juspay and battle-tested at enterprise scale, NeuroLink provides a production-ready solution for integrating AI into any application. Whether you're building with OpenAI, Anthropic, Google, AWS Bedrock, Azure, or any of our 13 supported providers, NeuroLink gives you a single, consistent interface that works everywhere.
|
|
32
32
|
|
|
@@ -195,7 +195,7 @@ npx @juspay/neurolink --help
|
|
|
195
195
|
|
|
196
196
|
### Configuration
|
|
197
197
|
|
|
198
|
-
NeuroLink works with
|
|
198
|
+
NeuroLink works with 17+ AI providers. You'll need at least one API key to get started:
|
|
199
199
|
|
|
200
200
|
**Option 1: Interactive Setup (Recommended)**
|
|
201
201
|
|
|
@@ -382,7 +382,7 @@ const result = await neurolink.generate({
|
|
|
382
382
|
### Next Steps
|
|
383
383
|
|
|
384
384
|
- **[Complete Documentation](https://docs.neurolink.ink)** - Comprehensive guides and API reference
|
|
385
|
-
- **[Provider Setup Guide](docs/getting-started/provider-setup.md)** - Configure all
|
|
385
|
+
- **[Provider Setup Guide](docs/getting-started/provider-setup.md)** - Configure all 17 providers
|
|
386
386
|
- **[SDK API Reference](docs/sdk/api-reference.md)** - Full TypeScript API documentation
|
|
387
387
|
- **[CLI Command Reference](docs/cli/commands.md)** - Complete CLI documentation
|
|
388
388
|
- **[Example Projects](docs/examples/index.md)** - Real-world integration examples
|
|
@@ -414,7 +414,7 @@ NeuroLink is a comprehensive AI development platform. Every feature below is pro
|
|
|
414
414
|
|
|
415
415
|
### 🤖 AI Provider Integration
|
|
416
416
|
|
|
417
|
-
**
|
|
417
|
+
**17 providers unified under one API** - Switch providers with a single parameter change.
|
|
418
418
|
|
|
419
419
|
| Provider | Models | Free Tier | Tool Support | Status | Documentation |
|
|
420
420
|
| --------------------- | -------------------------------------------------- | --------------- | ------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -431,6 +431,10 @@ NeuroLink is a comprehensive AI development platform. Every feature below is pro
|
|
|
431
431
|
| **Ollama** | Local models (Llama, Mistral) | ✅ Free (Local) | ⚠️ Partial | ✅ Production | [Setup Guide](docs/getting-started/provider-setup.md#ollama) |
|
|
432
432
|
| **OpenAI Compatible** | Any OpenAI-compatible endpoint | Varies | ✅ Full | ✅ Production | [Setup Guide](docs/getting-started/provider-setup.md#openai-compatible) |
|
|
433
433
|
| **OpenRouter** | 200+ Models via OpenRouter | Varies | ✅ Full | ✅ Production | [Setup Guide](docs/getting-started/providers/openrouter.md) |
|
|
434
|
+
| **DeepSeek** | deepseek-chat (V3), deepseek-reasoner (R1) | ❌ | ✅ Full | ✅ Production | [Setup Guide](docs/getting-started/provider-setup.md#deepseek) |
|
|
435
|
+
| **NVIDIA NIM** | Llama 3.3 70B, 400+ catalog models | ❌ | ✅ Full | ✅ Production | [Setup Guide](docs/getting-started/provider-setup.md#nvidia-nim) |
|
|
436
|
+
| **LM Studio** | Any model loaded in LM Studio (local) | ✅ Free (Local) | ✅ Full | ✅ Production | [Setup Guide](docs/getting-started/provider-setup.md#lm-studio) |
|
|
437
|
+
| **llama.cpp** | Any GGUF model served by llama-server (local) | ✅ Free (Local) | ✅ Full | ✅ Production | [Setup Guide](docs/getting-started/provider-setup.md#llamacpp) |
|
|
434
438
|
|
|
435
439
|
**[📖 Provider Comparison Guide](docs/reference/provider-comparison.md)** - Detailed feature matrix and selection criteria
|
|
436
440
|
**[🔬 Provider Feature Compatibility](docs/reference/provider-feature-compatibility.md)** - Test-based compatibility reference for all 19 features across 13 providers
|
|
@@ -589,7 +593,7 @@ const result = await neurolink.generate({
|
|
|
589
593
|
- **ProcessorRegistry** - Priority-based processor selection with fallback
|
|
590
594
|
- **OWASP Security** - HTML/SVG sanitization prevents XSS attacks
|
|
591
595
|
- **Auto-detection** - FileDetector identifies file types by extension and content
|
|
592
|
-
- **Provider-agnostic** - All processors work across all
|
|
596
|
+
- **Provider-agnostic** - All processors work across all 17 AI providers
|
|
593
597
|
|
|
594
598
|
**[📖 File Processors Guide](docs/features/file-processors.md)** - Complete reference for all file types
|
|
595
599
|
|
|
@@ -731,7 +735,7 @@ Run AI-powered workflows directly in GitHub Actions with 13 provider support and
|
|
|
731
735
|
|
|
732
736
|
| Feature | Description |
|
|
733
737
|
| ---------------------- | ----------------------------------------------------------------------------------------- |
|
|
734
|
-
| **Multi-Provider** |
|
|
738
|
+
| **Multi-Provider** | 17 providers with unified interface |
|
|
735
739
|
| **PR/Issue Comments** | Auto-post AI responses with intelligent updates |
|
|
736
740
|
| **Multimodal Support** | Attach images, PDFs, CSVs, Excel, Word, JSON, YAML, XML, HTML, SVG, code files to prompts |
|
|
737
741
|
| **Cost Tracking** | Built-in analytics and quality evaluation |
|
|
@@ -924,7 +928,7 @@ Full command and API breakdown lives in [`docs/cli/commands.md`](docs/cli/comman
|
|
|
924
928
|
|
|
925
929
|
| Capability | Highlights |
|
|
926
930
|
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
|
|
927
|
-
| **Provider unification** |
|
|
931
|
+
| **Provider unification** | 17+ providers with automatic fallback, cost-aware routing, provider orchestration (Q3). |
|
|
928
932
|
| **Multimodal pipeline** | Stream images + CSV data + PDF documents across providers with local/remote assets. Auto-detection for mixed file types. |
|
|
929
933
|
| **Quality & governance** | Auto-evaluation engine (Q3), guardrails middleware (Q4), HITL workflows (Q4), audit logging. |
|
|
930
934
|
| **Memory & context** | Conversation memory, Redis history export (Q4), context summarization (Q4). |
|
|
@@ -50,7 +50,19 @@ const PROXY_PROVIDERS = new Set(["litellm", "openrouter"]);
|
|
|
50
50
|
*/
|
|
51
51
|
function normalizeVisionProvider(provider) {
|
|
52
52
|
const lower = provider.toLowerCase();
|
|
53
|
-
|
|
53
|
+
// Strip non-alpha characters so alias forms (e.g. "lm-studio", "lm_studio",
|
|
54
|
+
// "llama.cpp", "nvidia_nim") all collapse onto a canonical key. Mirrors
|
|
55
|
+
// the alias-normalization pattern used in pricing.ts and contextWindows.ts.
|
|
56
|
+
const stripped = lower.replace(/[^a-z]/g, "");
|
|
57
|
+
switch (stripped) {
|
|
58
|
+
case "lmstudio":
|
|
59
|
+
return "lm-studio";
|
|
60
|
+
case "llamacpp":
|
|
61
|
+
return "llamacpp";
|
|
62
|
+
case "nvidianim":
|
|
63
|
+
return "nvidia-nim";
|
|
64
|
+
case "googleaistudio":
|
|
65
|
+
return "google-ai";
|
|
54
66
|
case "or":
|
|
55
67
|
return "openrouter";
|
|
56
68
|
default:
|
|
@@ -436,6 +448,32 @@ const VISION_CAPABILITIES = {
|
|
|
436
448
|
"meta-llama-4-maverick-17b-128e-instruct",
|
|
437
449
|
"meta-llama-4-scout-17b-16e-instruct",
|
|
438
450
|
],
|
|
451
|
+
// DeepSeek has no vision support — empty list
|
|
452
|
+
deepseek: [],
|
|
453
|
+
"nvidia-nim": [
|
|
454
|
+
"meta/llama-3.2-90b-vision-instruct",
|
|
455
|
+
"meta/llama-3.2-11b-vision-instruct",
|
|
456
|
+
],
|
|
457
|
+
// LM Studio + llama.cpp: vision depends on the loaded model.
|
|
458
|
+
// Substrings must point at known multimodal variants only — bare
|
|
459
|
+
// "llama-3.2" matches the text-only Llama-3.2-1B/3B chat models.
|
|
460
|
+
"lm-studio": [
|
|
461
|
+
"llava",
|
|
462
|
+
"llama-3.2-11b-vision",
|
|
463
|
+
"llama-3.2-90b-vision",
|
|
464
|
+
"vision-instruct",
|
|
465
|
+
"qwen2-vl",
|
|
466
|
+
"qwen2.5-vl",
|
|
467
|
+
"phi-3-vision",
|
|
468
|
+
],
|
|
469
|
+
llamacpp: [
|
|
470
|
+
"llava",
|
|
471
|
+
"llama-3.2-11b-vision",
|
|
472
|
+
"llama-3.2-90b-vision",
|
|
473
|
+
"vision-instruct",
|
|
474
|
+
"qwen2-vl",
|
|
475
|
+
"phi-3-vision",
|
|
476
|
+
],
|
|
439
477
|
};
|
|
440
478
|
/**
|
|
441
479
|
* Provider Image Adapter - Smart routing and formatting
|
|
@@ -535,6 +573,13 @@ export class ProviderImageAdapter {
|
|
|
535
573
|
if (!supportedModels) {
|
|
536
574
|
return false;
|
|
537
575
|
}
|
|
576
|
+
// An empty list means the provider has NO vision support (e.g. deepseek).
|
|
577
|
+
// Without this guard, the no-model branch below would return `true` for
|
|
578
|
+
// every provider that has an entry in VISION_CAPABILITIES — even an empty
|
|
579
|
+
// one — letting vision requests through to a text-only API.
|
|
580
|
+
if (supportedModels.length === 0) {
|
|
581
|
+
return false;
|
|
582
|
+
}
|
|
538
583
|
if (!model) {
|
|
539
584
|
return true; // Provider supports vision, but need to check specific model
|
|
540
585
|
}
|
|
@@ -562,7 +607,12 @@ export class ProviderImageAdapter {
|
|
|
562
607
|
* Get all vision-capable providers
|
|
563
608
|
*/
|
|
564
609
|
static getVisionProviders() {
|
|
565
|
-
|
|
610
|
+
// Filter out providers whose allowlist is empty (e.g. deepseek). They're
|
|
611
|
+
// listed in VISION_CAPABILITIES so supportsVision can return false for
|
|
612
|
+
// them, but they should not be advertised as vision-capable.
|
|
613
|
+
return Object.entries(VISION_CAPABILITIES)
|
|
614
|
+
.filter(([, models]) => models.length > 0)
|
|
615
|
+
.map(([provider]) => provider);
|
|
566
616
|
}
|
|
567
617
|
/**
|
|
568
618
|
* Count total "images" in a message (actual images + PDF pages)
|