@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.
Files changed (60) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +11 -7
  3. package/dist/adapters/providerImageAdapter.js +52 -2
  4. package/dist/browser/neurolink.min.js +352 -352
  5. package/dist/cli/commands/proxy.js +54 -11
  6. package/dist/cli/factories/commandFactory.js +15 -1
  7. package/dist/cli/utils/interactiveSetup.js +64 -0
  8. package/dist/constants/contextWindows.d.ts +5 -1
  9. package/dist/constants/contextWindows.js +67 -3
  10. package/dist/constants/enums.d.ts +52 -0
  11. package/dist/constants/enums.js +63 -0
  12. package/dist/core/baseProvider.d.ts +15 -6
  13. package/dist/core/baseProvider.js +28 -0
  14. package/dist/factories/providerRegistry.js +25 -1
  15. package/dist/lib/adapters/providerImageAdapter.js +52 -2
  16. package/dist/lib/constants/contextWindows.d.ts +5 -1
  17. package/dist/lib/constants/contextWindows.js +67 -3
  18. package/dist/lib/constants/enums.d.ts +52 -0
  19. package/dist/lib/constants/enums.js +63 -0
  20. package/dist/lib/core/baseProvider.d.ts +15 -6
  21. package/dist/lib/core/baseProvider.js +28 -0
  22. package/dist/lib/factories/providerRegistry.js +25 -1
  23. package/dist/lib/providers/deepseek.d.ts +29 -0
  24. package/dist/lib/providers/deepseek.js +216 -0
  25. package/dist/lib/providers/index.d.ts +4 -0
  26. package/dist/lib/providers/index.js +4 -0
  27. package/dist/lib/providers/llamaCpp.d.ts +34 -0
  28. package/dist/lib/providers/llamaCpp.js +315 -0
  29. package/dist/lib/providers/lmStudio.d.ts +34 -0
  30. package/dist/lib/providers/lmStudio.js +306 -0
  31. package/dist/lib/providers/nvidiaNim.d.ts +31 -0
  32. package/dist/lib/providers/nvidiaNim.js +354 -0
  33. package/dist/lib/proxy/proxyFetch.d.ts +9 -0
  34. package/dist/lib/proxy/proxyFetch.js +6 -1
  35. package/dist/lib/types/providers.d.ts +37 -2
  36. package/dist/lib/types/providers.js +1 -1
  37. package/dist/lib/utils/modelChoices.js +68 -4
  38. package/dist/lib/utils/pricing.d.ts +5 -0
  39. package/dist/lib/utils/pricing.js +94 -3
  40. package/dist/lib/utils/providerConfig.d.ts +16 -0
  41. package/dist/lib/utils/providerConfig.js +82 -0
  42. package/dist/providers/deepseek.d.ts +29 -0
  43. package/dist/providers/deepseek.js +215 -0
  44. package/dist/providers/index.d.ts +4 -0
  45. package/dist/providers/index.js +4 -0
  46. package/dist/providers/llamaCpp.d.ts +34 -0
  47. package/dist/providers/llamaCpp.js +314 -0
  48. package/dist/providers/lmStudio.d.ts +34 -0
  49. package/dist/providers/lmStudio.js +305 -0
  50. package/dist/providers/nvidiaNim.d.ts +31 -0
  51. package/dist/providers/nvidiaNim.js +353 -0
  52. package/dist/proxy/proxyFetch.d.ts +9 -0
  53. package/dist/proxy/proxyFetch.js +6 -1
  54. package/dist/types/providers.d.ts +37 -2
  55. package/dist/utils/modelChoices.js +68 -4
  56. package/dist/utils/pricing.d.ts +5 -0
  57. package/dist/utils/pricing.js +94 -3
  58. package/dist/utils/providerConfig.d.ts +16 -0
  59. package/dist/utils/providerConfig.js +82 -0
  60. 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 13 major AI providers and 100+ models under one consistent API.**
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 13+ AI providers. You'll need at least one API key to get started:
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 13 providers
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
- **13 providers unified under one API** - Switch providers with a single parameter change.
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 13 AI providers
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** | 13 providers with unified interface |
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** | 13+ providers with automatic fallback, cost-aware routing, provider orchestration (Q3). |
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
- switch (lower) {
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
- return Object.keys(VISION_CAPABILITIES);
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)