@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.
- package/CHANGELOG.md +2 -2
- package/dist/browser/neurolink.min.js +411 -421
- package/dist/cli/factories/commandFactory.d.ts +12 -0
- package/dist/cli/factories/commandFactory.js +11 -1
- package/dist/constants/bedrockIdentifiers.d.ts +16 -0
- package/dist/constants/bedrockIdentifiers.js +79 -0
- package/dist/constants/contextWindows.d.ts +6 -15
- package/dist/constants/contextWindows.js +18 -52
- package/dist/constants/enums.d.ts +12 -0
- package/dist/constants/enums.js +15 -0
- package/dist/constants/tokens.js +9 -0
- package/dist/core/loopEngine.js +8 -0
- package/dist/hitl/hitlManager.js +15 -2
- package/dist/providers/amazonBedrock/client.js +3 -0
- package/dist/providers/amazonBedrock/inferenceProfile.js +9 -5
- package/dist/providers/catalog/abliteration.json +85 -0
- package/dist/providers/catalog/aihubmix.json +77 -0
- package/dist/providers/catalog/api-route.json +1 -1
- package/dist/providers/catalog/baseten.json +1 -1
- package/dist/providers/catalog/deepseek.json +1 -1
- package/dist/providers/catalog/gmicloud.json +1 -1
- package/dist/providers/catalog/huggingface.json +1 -1
- package/dist/providers/catalog/inception-labs.json +1 -1
- package/dist/providers/catalog/index.generated.d.ts +1 -1
- package/dist/providers/catalog/index.generated.js +9 -0
- package/dist/providers/catalog/io-intelligence.json +1 -1
- package/dist/providers/catalog/loader.js +3 -0
- package/dist/providers/catalog/mancer.json +1 -1
- package/dist/providers/catalog/morph.json +1 -1
- package/dist/providers/catalog/naver-clova-studio.json +68 -0
- package/dist/providers/catalog/novita.json +1 -1
- package/dist/providers/catalog/provider-catalog.schema.json +27 -4
- package/dist/providers/catalog/schema.d.ts +3 -1
- package/dist/providers/catalog/schema.js +15 -2
- package/dist/providers/catalog/upstage.json +1 -1
- package/dist/providers/cohere.js +7 -2
- package/dist/providers/configuredOpenAICompat.js +7 -0
- package/dist/providers/embeddingResponseParsing.d.ts +15 -0
- package/dist/providers/embeddingResponseParsing.js +4 -3
- package/dist/providers/googleAiStudio/client.js +104 -26
- package/dist/rag/chunking/htmlChunker.js +4 -11
- package/dist/rag/document/loaders.js +12 -14
- package/dist/server/openapi/generator.d.ts +0 -6
- package/dist/server/openapi/generator.js +2 -72
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/hitl.d.ts +2 -0
- package/dist/types/loopEngine.d.ts +7 -0
- package/dist/types/providerCatalog.d.ts +15 -1
- package/dist/types/providerCatalog.generated.d.ts +2 -2
- package/dist/types/providers.d.ts +15 -0
- package/dist/types/safeFetch.d.ts +1 -1
- package/dist/utils/htmlEntities.d.ts +8 -0
- package/dist/utils/htmlEntities.js +29 -0
- package/dist/utils/safeFetch.js +11 -3
- package/dist/utils/tokenLimits.js +23 -4
- package/docs-site/static/search-index.json +27 -16
- package/package.json +6 -3
package/dist/utils/safeFetch.js
CHANGED
|
@@ -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
|
|
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[
|
|
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
|
|
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]) {
|