@juspay/neurolink 12.49.14 → 12.49.16

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 (57) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/dist/browser/neurolink.min.js +411 -421
  3. package/dist/cli/factories/commandFactory.d.ts +12 -0
  4. package/dist/cli/factories/commandFactory.js +11 -1
  5. package/dist/constants/bedrockIdentifiers.d.ts +16 -0
  6. package/dist/constants/bedrockIdentifiers.js +79 -0
  7. package/dist/constants/contextWindows.d.ts +6 -15
  8. package/dist/constants/contextWindows.js +18 -52
  9. package/dist/constants/enums.d.ts +12 -0
  10. package/dist/constants/enums.js +15 -0
  11. package/dist/constants/tokens.js +9 -0
  12. package/dist/core/loopEngine.js +8 -0
  13. package/dist/hitl/hitlManager.js +15 -2
  14. package/dist/providers/amazonBedrock/client.js +3 -0
  15. package/dist/providers/amazonBedrock/inferenceProfile.js +9 -5
  16. package/dist/providers/catalog/abliteration.json +85 -0
  17. package/dist/providers/catalog/aihubmix.json +77 -0
  18. package/dist/providers/catalog/api-route.json +1 -1
  19. package/dist/providers/catalog/baseten.json +1 -1
  20. package/dist/providers/catalog/deepseek.json +1 -1
  21. package/dist/providers/catalog/gmicloud.json +1 -1
  22. package/dist/providers/catalog/huggingface.json +1 -1
  23. package/dist/providers/catalog/inception-labs.json +1 -1
  24. package/dist/providers/catalog/index.generated.d.ts +1 -1
  25. package/dist/providers/catalog/index.generated.js +9 -0
  26. package/dist/providers/catalog/io-intelligence.json +1 -1
  27. package/dist/providers/catalog/loader.js +3 -0
  28. package/dist/providers/catalog/mancer.json +1 -1
  29. package/dist/providers/catalog/morph.json +1 -1
  30. package/dist/providers/catalog/naver-clova-studio.json +68 -0
  31. package/dist/providers/catalog/novita.json +1 -1
  32. package/dist/providers/catalog/provider-catalog.schema.json +27 -4
  33. package/dist/providers/catalog/schema.d.ts +3 -1
  34. package/dist/providers/catalog/schema.js +15 -2
  35. package/dist/providers/catalog/upstage.json +1 -1
  36. package/dist/providers/cohere.js +7 -2
  37. package/dist/providers/configuredOpenAICompat.js +7 -0
  38. package/dist/providers/embeddingResponseParsing.d.ts +15 -0
  39. package/dist/providers/embeddingResponseParsing.js +4 -3
  40. package/dist/providers/googleAiStudio/client.js +104 -26
  41. package/dist/rag/chunking/htmlChunker.js +4 -11
  42. package/dist/rag/document/loaders.js +12 -14
  43. package/dist/server/openapi/generator.d.ts +0 -6
  44. package/dist/server/openapi/generator.js +2 -72
  45. package/dist/types/cli.d.ts +6 -0
  46. package/dist/types/hitl.d.ts +2 -0
  47. package/dist/types/loopEngine.d.ts +7 -0
  48. package/dist/types/providerCatalog.d.ts +15 -1
  49. package/dist/types/providerCatalog.generated.d.ts +2 -2
  50. package/dist/types/providers.d.ts +15 -0
  51. package/dist/types/safeFetch.d.ts +1 -1
  52. package/dist/utils/htmlEntities.d.ts +8 -0
  53. package/dist/utils/htmlEntities.js +29 -0
  54. package/dist/utils/safeFetch.js +11 -3
  55. package/dist/utils/tokenLimits.js +23 -4
  56. package/docs-site/static/search-index.json +27 -16
  57. package/package.json +6 -3
@@ -140,14 +140,23 @@ export async function safeDownload(url, options) {
140
140
  const composedSignal = options.signal
141
141
  ? AbortSignal.any([options.signal, timeoutCtrl.signal])
142
142
  : timeoutCtrl.signal;
143
- let response;
144
143
  try {
145
- response = await undiciFetch(validatedUrl, {
144
+ const response = await undiciFetch(validatedUrl, {
146
145
  method: "GET",
147
146
  signal: composedSignal,
148
147
  redirect: "manual", // a 3xx → private-IP redirect would bypass the guard
149
148
  dispatcher,
150
149
  });
150
+ // fetch resolves at the headers. Keep the same deadline and abort signal
151
+ // active while the bounded reader drains the response body as well.
152
+ return await readDownloadResponse(response, url, options);
153
+ }
154
+ catch (error) {
155
+ // A status/size rejection may happen before the body is consumed. Stop
156
+ // that request so a pinned agent can close and a shared proxy agent does
157
+ // not retain an unused response stream.
158
+ timeoutCtrl.abort();
159
+ throw error;
151
160
  }
152
161
  finally {
153
162
  clearTimeout(timeoutId);
@@ -157,5 +166,4 @@ export async function safeDownload(url, options) {
157
166
  dispatcher.close().catch(() => undefined);
158
167
  }
159
168
  }
160
- return readDownloadResponse(response, url, options);
161
169
  }
@@ -2,7 +2,8 @@
2
2
  * Provider-specific token limit utilities
3
3
  * Provides safe maxTokens values based on provider and model capabilities
4
4
  */
5
- import { getRuntimeOutputCeiling, stripBedrockGeoPrefix, } from "../constants/contextWindows.js";
5
+ import { getRuntimeOutputCeiling } from "../constants/contextWindows.js";
6
+ import { bedrockModelIdForLookup, stripBedrockGeoPrefix, } from "../constants/bedrockIdentifiers.js";
6
7
  import { PROVIDER_MAX_TOKENS } from "../core/constants.js";
7
8
  import { logger } from "./logger.js";
8
9
  import { hasRestrictedOutputLimit, RESTRICTED_OUTPUT_TOKEN_LIMIT, } from "./modelDetection.js";
@@ -35,6 +36,11 @@ export function getSafeMaxTokens(provider, model, requestedMaxTokens) {
35
36
  // Otherwise, use the requested value (it's within limits, including 0)
36
37
  return requestedMaxTokens;
37
38
  }
39
+ // The descriptor registers aws as Bedrock. Options still carry the caller
40
+ // spelling when this normalizer runs, before provider instantiation.
41
+ const canonicalProvider = /^(?:bedrock|aws)$/i.test(provider)
42
+ ? "bedrock"
43
+ : provider;
38
44
  // Runtime-discovered output ceiling (e.g. LiteLLM /model/info
39
45
  // max_output_tokens): the serving infrastructure's own number for the
40
46
  // deployed model, authoritative over the static per-provider table. This
@@ -44,7 +50,10 @@ export function getSafeMaxTokens(provider, model, requestedMaxTokens) {
44
50
  // usable input on total-context backends. Checked AFTER the
45
51
  // restricted-model branch so hard caps proven at the origin API (Gemini 3
46
52
  // / image models) still win over a proxy that over-advertises them.
47
- const runtimeCeiling = getRuntimeOutputCeiling(provider, model);
53
+ const runtimeCeiling = getRuntimeOutputCeiling(provider, model) ??
54
+ (canonicalProvider === "bedrock"
55
+ ? getRuntimeOutputCeiling(canonicalProvider, model)
56
+ : undefined);
48
57
  if (runtimeCeiling !== undefined) {
49
58
  if (requestedMaxTokens === undefined || requestedMaxTokens === null) {
50
59
  return runtimeCeiling;
@@ -57,7 +66,7 @@ export function getSafeMaxTokens(provider, model, requestedMaxTokens) {
57
66
  return requestedMaxTokens;
58
67
  }
59
68
  // Get provider-specific limits
60
- const providerLimits = PROVIDER_MAX_TOKENS[provider];
69
+ const providerLimits = PROVIDER_MAX_TOKENS[canonicalProvider];
61
70
  if (!providerLimits) {
62
71
  logger.warn(`Unknown provider ${provider}, no token limits enforced`);
63
72
  // Explicit undefined/null check so a caller-supplied 0 is preserved
@@ -71,7 +80,12 @@ export function getSafeMaxTokens(provider, model, requestedMaxTokens) {
71
80
  // profile id (us.amazon.nova-pro-v1:0) is the only one a caller can invoke.
72
81
  // The bare id is tried only after the id as given misses, so an explicit row
73
82
  // for the prefixed id still wins.
74
- const bareModel = provider === "bedrock" && model ? stripBedrockGeoPrefix(model) : undefined;
83
+ const lookupModel = canonicalProvider === "bedrock" && model
84
+ ? bedrockModelIdForLookup(model)
85
+ : undefined;
86
+ const bareModel = lookupModel
87
+ ? stripBedrockGeoPrefix(lookupModel)
88
+ : undefined;
75
89
  // Get model-specific limit or provider default
76
90
  let maxLimit;
77
91
  if (model &&
@@ -79,6 +93,11 @@ export function getSafeMaxTokens(provider, model, requestedMaxTokens) {
79
93
  providerLimits[model]) {
80
94
  maxLimit = providerLimits[model];
81
95
  }
96
+ else if (lookupModel !== undefined &&
97
+ typeof providerLimits === "object" &&
98
+ providerLimits[lookupModel]) {
99
+ maxLimit = providerLimits[lookupModel];
100
+ }
82
101
  else if (bareModel !== undefined &&
83
102
  typeof providerLimits === "object" &&
84
103
  providerLimits[bareModel]) {