@juspay/neurolink 11.26.1 → 11.27.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 CHANGED
@@ -1,8 +1,8 @@
1
- ## [11.26.1](https://github.com/juspay/neurolink/compare/v11.26.0...v11.26.1) (2026-08-25)
1
+ ## [11.27.0](https://github.com/juspay/neurolink/compare/v11.26.2...v11.27.0) (2026-08-25)
2
2
 
3
- ### Bug Fixes
3
+ ### Features
4
4
 
5
- - **(routing):** observable registry misses, honest ranking, and word-bounded fuzzy matching ([2195d99](https://github.com/juspay/neurolink/commit/2195d99afa1d06a61ecb410840004e8928946b77))
5
+ - **(models):** the five metadata stores read the manifests as their source of truth ([605f648](https://github.com/juspay/neurolink/commit/605f648b7038e8566aec2127c971a792475dee36))
6
6
 
7
7
  ## [11.2.3](https://github.com/juspay/neurolink/compare/v11.2.2...v11.2.3) (2026-08-19)
8
8
 
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { ImageProcessor } from "../utils/imageProcessor.js";
6
6
  import { logger } from "../utils/logger.js";
7
+ import { resolveManifestEntryStrict } from "../models/manifestRegistry.js";
7
8
  /**
8
9
  * Simplified logger for essential error reporting only
9
10
  */
@@ -630,6 +631,25 @@ export class ProviderImageAdapter {
630
631
  process.env.ANTHROPIC_BASE_URL) {
631
632
  return true;
632
633
  }
634
+ // Manifest is the source of truth when it has an entry for this exact
635
+ // model or a declared alias ONLY — strict, no prefix fallback: a
636
+ // manifest "gpt-4" prefix hit must never shadow the legacy table's
637
+ // explicit "gpt-4-vision-preview" row, and a fabricated id must not
638
+ // borrow a real family's capabilities. Everything without a real
639
+ // manifest match falls through to the legacy tables below unchanged.
640
+ const manifestEntry = resolveManifestEntryStrict(normalizedProvider, model ?? "");
641
+ if (manifestEntry) {
642
+ if (!model) {
643
+ return true;
644
+ }
645
+ if (manifestEntry.vision) {
646
+ return true;
647
+ }
648
+ if (PROXY_PROVIDERS.has(normalizedProvider)) {
649
+ return true;
650
+ }
651
+ return false;
652
+ }
633
653
  const supportedModels = VISION_CAPABILITIES[normalizedProvider];
634
654
  if (!supportedModels) {
635
655
  return false;