@juspay/neurolink 10.8.5 → 10.8.7

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 (43) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/browser/neurolink.min.js +403 -403
  3. package/dist/core/baseProvider.js +5 -1
  4. package/dist/lib/core/baseProvider.js +5 -1
  5. package/dist/lib/providers/googleVertex/client.d.ts +20 -0
  6. package/dist/lib/providers/googleVertex/client.js +39 -15
  7. package/dist/lib/proxy/modelRouter.d.ts +10 -0
  8. package/dist/lib/proxy/modelRouter.js +17 -0
  9. package/dist/lib/proxy/proxyConfig.js +46 -0
  10. package/dist/lib/proxy/rollingWorkerSupervisor.d.ts +1 -0
  11. package/dist/lib/proxy/rollingWorkerSupervisor.js +41 -15
  12. package/dist/lib/proxy/routingPolicy.d.ts +4 -2
  13. package/dist/lib/proxy/routingPolicy.js +8 -5
  14. package/dist/lib/proxy/runtimeConfig.js +2 -0
  15. package/dist/lib/server/routes/claudeProxyRoutes.d.ts +52 -1
  16. package/dist/lib/server/routes/claudeProxyRoutes.js +467 -221
  17. package/dist/lib/server/routes/openaiProxyRoutes.js +1 -1
  18. package/dist/lib/types/proxy.d.ts +26 -0
  19. package/dist/lib/types/subscription.d.ts +4 -0
  20. package/dist/lib/utils/messageBuilder.d.ts +25 -0
  21. package/dist/lib/utils/messageBuilder.js +33 -12
  22. package/dist/lib/utils/multimodalOptionsBuilder.d.ts +5 -1
  23. package/dist/lib/utils/multimodalOptionsBuilder.js +8 -1
  24. package/dist/providers/googleVertex/client.d.ts +20 -0
  25. package/dist/providers/googleVertex/client.js +39 -15
  26. package/dist/proxy/modelRouter.d.ts +10 -0
  27. package/dist/proxy/modelRouter.js +17 -0
  28. package/dist/proxy/proxyConfig.js +46 -0
  29. package/dist/proxy/rollingWorkerSupervisor.d.ts +1 -0
  30. package/dist/proxy/rollingWorkerSupervisor.js +41 -15
  31. package/dist/proxy/routingPolicy.d.ts +4 -2
  32. package/dist/proxy/routingPolicy.js +8 -5
  33. package/dist/proxy/runtimeConfig.js +2 -0
  34. package/dist/server/routes/claudeProxyRoutes.d.ts +52 -1
  35. package/dist/server/routes/claudeProxyRoutes.js +467 -221
  36. package/dist/server/routes/openaiProxyRoutes.js +1 -1
  37. package/dist/types/proxy.d.ts +26 -0
  38. package/dist/types/subscription.d.ts +4 -0
  39. package/dist/utils/messageBuilder.d.ts +25 -0
  40. package/dist/utils/messageBuilder.js +33 -12
  41. package/dist/utils/multimodalOptionsBuilder.d.ts +5 -1
  42. package/dist/utils/multimodalOptionsBuilder.js +8 -1
  43. package/package.json +1 -1
@@ -12,7 +12,13 @@
12
12
  import { buildTranslationOptions } from "../../proxy/proxyTranslationEngine.js";
13
13
  import { ProxyTracer } from "../../proxy/proxyTracer.js";
14
14
  import { isPermanentRefreshFailure } from "../../proxy/tokenRefresh.js";
15
- import type { AccountAllowlist, AccountCooldownPlan, AccountQuota, AnthropicAttemptLogger, AnthropicAuthRetryResult, AnthropicLoopState, AnthropicSuccessResult, AnthropicUpstreamFetchResult, ClaudeFinalRequestLogger, ClaudeLoggedErrorBuilder, ClaudeRequest, ClaudeProxyRouteRuntimeOptions, ModelRouterInterface, ParsedClaudeError, ProxyAccountRoutingDecision, ProxyAccountSortMetrics, ProxyBodyCaptureLogger, ProxyPassthroughAccount, RouteGroup, RuntimeAccountState, ServerContext, StreamTerminalOutcome } from "../../types/index.js";
15
+ import type { AccountAllowlist, AccountAdmissionLease, AccountCooldownPlan, AccountQuota, AnthropicAttemptLogger, AnthropicAuthRetryResult, AnthropicLoopState, AnthropicNonOkResult, AnthropicSuccessResult, AnthropicUpstreamFetchResult, ClaudeFinalRequestLogger, ClaudeLoggedErrorBuilder, ClaudeRequest, ClaudeProxyRouteRuntimeOptions, ModelRouterInterface, ParsedClaudeError, ProxyAccountRoutingDecision, ProxyAccountSortMetrics, ProxyBodyCaptureLogger, ProxyPassthroughAccount, RouteGroup, RuntimeAccountState, ServerContext, StreamTerminalOutcome } from "../../types/index.js";
16
+ declare function tryAcquireAccountAdmission(accountKey: string, capacity: number): AccountAdmissionLease | undefined;
17
+ declare function acquireAccountAdmission(accountKey: string, capacity: number, abortSignal?: AbortSignal, timeoutMs?: number): Promise<AccountAdmissionLease | undefined>;
18
+ declare function acquireFirstAvailableAccountAdmission(accountKeys: string[], capacity: number, abortSignal?: AbortSignal, timeoutMs?: number): Promise<{
19
+ accountKey: string;
20
+ lease: AccountAdmissionLease;
21
+ } | undefined>;
16
22
  /** Resolve the configured primary's stable key to its current index in the
17
23
  * request's enabledAccounts list. Returns 0 (insertion-order fallback) when
18
24
  * no key is configured or the key cannot be matched (account disabled/
@@ -158,6 +164,7 @@ declare function handleAnthropicStreamingSuccessResponse(args: {
158
164
  upstreamSpan?: import("@opentelemetry/api").Span;
159
165
  logAttempt: AnthropicAttemptLogger;
160
166
  logProxyBody: ProxyBodyCaptureLogger;
167
+ onStreamTerminal?: () => void;
161
168
  logFinalRequest: (status: number, accountLabel: string, accountType: string, errorType?: string, errorMessage?: string, extra?: {
162
169
  inputTokens?: number;
163
170
  outputTokens?: number;
@@ -189,6 +196,7 @@ declare function handleAnthropicAuthRetry(args: {
189
196
  upstreamSpan?: import("@opentelemetry/api").Span;
190
197
  logAttempt: AnthropicAttemptLogger;
191
198
  logProxyBody: ProxyBodyCaptureLogger;
199
+ onStreamTerminal?: () => void;
192
200
  logFinalRequest: (status: number, accountLabel: string, accountType: string, errorType?: string, errorMessage?: string, extra?: {
193
201
  inputTokens?: number;
194
202
  outputTokens?: number;
@@ -210,6 +218,33 @@ declare function finalizeAnthropicTerminalFetchError(args: {
210
218
  logProxyBody: ProxyBodyCaptureLogger;
211
219
  logFinalRequest: ClaudeFinalRequestLogger;
212
220
  }): Response | unknown;
221
+ declare function handleAnthropicNonOkResponse(args: {
222
+ response: Response;
223
+ account: ProxyPassthroughAccount;
224
+ accountState: RuntimeAccountState;
225
+ enabledAccounts: ProxyPassthroughAccount[];
226
+ orderedAccounts: ProxyPassthroughAccount[];
227
+ tracer?: ProxyTracer;
228
+ requestStartTime: number;
229
+ fetchStartMs: number;
230
+ attemptNumber: number;
231
+ logAttempt: AnthropicAttemptLogger;
232
+ logProxyBody: ProxyBodyCaptureLogger;
233
+ logFinalRequest: (status: number, accountLabel: string, accountType: string, errorType?: string, errorMessage?: string, extra?: {
234
+ inputTokens?: number;
235
+ outputTokens?: number;
236
+ cacheCreationTokens?: number;
237
+ cacheReadTokens?: number;
238
+ }) => void;
239
+ lastError: unknown;
240
+ authFailureMessage: string | null;
241
+ sawTransientFailure: boolean;
242
+ invalidRequestFailure: {
243
+ status: number;
244
+ body: string;
245
+ contentType?: string;
246
+ } | null;
247
+ }): Promise<AnthropicNonOkResult>;
213
248
  /**
214
249
  * Detect Anthropic's anti-abuse / request-construction 429.
215
250
  *
@@ -284,6 +319,12 @@ export declare const buildProxyFallbackOptions: typeof buildTranslationOptions;
284
319
  * carry transient HTML responses (e.g. 520 pages) inside `error.message`.
285
320
  */
286
321
  export declare function isTransientHttpFailure(status: number, errBody: string): boolean;
322
+ /**
323
+ * An upstream overload is already a capacity signal. Retrying it on the same
324
+ * OAuth account only consumes its remaining concurrency and delays rotation.
325
+ */
326
+ export declare function isUpstreamOverload(status: number, errBody: string): boolean;
327
+ export declare function redactProviderErrorMessage(message: string): string;
287
328
  export declare const __testHooks: {
288
329
  resolveHomeIndex: typeof resolveHomeIndex;
289
330
  maybeResetPrimaryToHome: typeof maybeResetPrimaryToHome;
@@ -309,12 +350,22 @@ export declare const __testHooks: {
309
350
  isAntiAbuseConstruction429: typeof isAntiAbuseConstruction429;
310
351
  fetchAnthropicAccountResponse: typeof fetchAnthropicAccountResponse;
311
352
  finalizeAnthropicTerminalFetchError: typeof finalizeAnthropicTerminalFetchError;
353
+ handleAnthropicNonOkResponse: typeof handleAnthropicNonOkResponse;
312
354
  handleAnthropicAuthRetry: typeof handleAnthropicAuthRetry;
313
355
  handleAnthropicStreamingSuccessResponse: typeof handleAnthropicStreamingSuccessResponse;
314
356
  claimTransientRateLimitRetry: typeof claimTransientRateLimitRetry;
315
357
  claimTransientCooldownAdmission: typeof claimTransientCooldownAdmission;
316
358
  waitForTransientAccountAvailability: typeof waitForTransientAccountAvailability;
359
+ acquireAccountAdmission: typeof acquireAccountAdmission;
360
+ acquireFirstAvailableAccountAdmission: typeof acquireFirstAvailableAccountAdmission;
361
+ tryAcquireAccountAdmission: typeof tryAcquireAccountAdmission;
362
+ getAccountAdmissionSnapshot: (accountKey: string) => {
363
+ active: number;
364
+ waiting: number;
365
+ };
317
366
  describeTransportError: typeof describeTransportError;
367
+ redactProviderErrorMessage: typeof redactProviderErrorMessage;
368
+ isUpstreamOverload: typeof isUpstreamOverload;
318
369
  shouldAttemptClaudeFallback: typeof shouldAttemptClaudeFallback;
319
370
  executeClaudeFallbackWithRetry: typeof executeClaudeFallbackWithRetry;
320
371
  buildClaudeAnthropicFailureResponse: typeof buildClaudeAnthropicFailureResponse;