@zhivex-ai/gateway 0.3.0 → 0.3.1-next.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/dist/index.js CHANGED
@@ -1,77 +1,13 @@
1
1
  import { generateObject, generateText, streamObject, streamText } from "@zhivex-ai/core";
2
- import { createRouteDecision, gatewayMessagesToModelMessages, stripImagesForUnsupportedModel } from "./compat.js";
2
+ import { executeRoutedOperation } from "./attempts.js";
3
+ import { gatewayMessagesToModelMessages, stripImagesForUnsupportedModel } from "./compat.js";
4
+ import { createDefaultRetryPolicy, createDefaultRouterPolicy } from "./policies.js";
5
+ import { createInMemoryGatewayRuntimeStore, gatewayTargetKey } from "./runtime-state.js";
3
6
  import { GatewayError } from "./types.js";
4
- const scoreTarget = (mode, intent, target, config) => {
5
- const model = target.modelId.toLowerCase();
6
- const localBoost = target.provider === "ollama" ? -2 : 0;
7
- const qualityBoost = model.includes("pro") || model.includes("claude") ? 2 : 0;
8
- const speedBoost = model.includes("flash") || model.includes("lite") ? 2 : 0;
9
- const reasoningBoost = model.includes("pro") || model.includes("claude") ? 2 : 0;
10
- const catalogCost = config.modelCatalog?.find(target.provider, target.modelId)?.costPer1kTokens;
11
- const costPenalty = config.providerCostsPer1kTokens?.[target.provider] ?? catalogCost ?? 0;
12
- const latencyPenalty = (config.latencyBiasMs?.[target.provider] ?? 0) / 100;
13
- if (mode === "speed") {
14
- return speedBoost + localBoost - latencyPenalty;
15
- }
16
- if (mode === "quality") {
17
- return qualityBoost + (intent === "reasoning" ? reasoningBoost : 0) - costPenalty;
18
- }
19
- return speedBoost + qualityBoost + localBoost + (intent === "reasoning" ? 1 : 0) - costPenalty - latencyPenalty;
20
- };
21
- const orderTargets = (mode, intent, primary, fallbacks, config) => [primary, ...fallbacks]
22
- .filter((target, index, list) => list.findIndex((candidate) => candidate.provider === target.provider && candidate.modelId === target.modelId) === index)
23
- .sort((left, right) => scoreTarget(mode, intent, right, config) - scoreTarget(mode, intent, left, config));
24
- const supportsRequiredCapabilities = (adapter, target, requiredCapabilities) => {
25
- if (!requiredCapabilities) {
26
- return true;
27
- }
28
- const capabilities = adapter.languageModel(target.modelId).capabilities;
29
- return Object.entries(requiredCapabilities).every(([key, required]) => required !== true || capabilities[key] === true);
30
- };
31
- const withinCostBudget = (config, request, target) => {
32
- if (request.maxCostPer1kTokens == null) {
33
- return true;
34
- }
35
- const configuredCost = config.providerCostsPer1kTokens?.[target.provider];
36
- const catalogCost = config.modelCatalog?.find(target.provider, target.modelId)?.costPer1kTokens;
37
- const effectiveCost = configuredCost ?? catalogCost;
38
- if (effectiveCost == null) {
39
- return true;
40
- }
41
- return effectiveCost <= request.maxCostPer1kTokens;
42
- };
7
+ export * from "./policies.js";
8
+ export * from "./runtime-state.js";
9
+ export * from "./types.js";
43
10
  const estimateTokens = (text) => Math.max(1, Math.ceil(text.trim().length / 4));
44
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
45
- const withTimeout = async (promise, timeoutMs) => new Promise((resolve, reject) => {
46
- const timer = setTimeout(() => reject(new GatewayError(`Provider timed out after ${timeoutMs}ms.`, true)), timeoutMs);
47
- promise
48
- .then((value) => {
49
- clearTimeout(timer);
50
- resolve(value);
51
- })
52
- .catch((error) => {
53
- clearTimeout(timer);
54
- reject(error);
55
- });
56
- });
57
- const normalizeError = (error) => {
58
- if (error instanceof GatewayError) {
59
- return error;
60
- }
61
- if (error instanceof Error) {
62
- const message = error.message.toLowerCase();
63
- if (message.includes("timed out") || message.includes("429") || message.includes("rate")) {
64
- return new GatewayError(error.message, true);
65
- }
66
- if (message.includes("connect") || message.includes("econnrefused") || message.includes("503")) {
67
- return new GatewayError(error.message, true);
68
- }
69
- return new GatewayError(error.message, false);
70
- }
71
- return new GatewayError("Unknown gateway error.", false);
72
- };
73
- const getAttemptTimeoutMs = (config, provider) => config.attemptTimeoutsMs?.[provider] ?? config.attemptTimeoutMs ?? 20_000;
74
- const retryBackoffMs = (config, retry) => (config.retryBackoffMs ?? 200) * (retry + 1);
75
11
  const normalizeUsage = (usage, inputText, outputText) => {
76
12
  const inputTokens = usage?.inputTokens ?? estimateTokens(inputText);
77
13
  const outputTokens = usage?.outputTokens ?? estimateTokens(outputText);
@@ -83,14 +19,17 @@ const normalizeUsage = (usage, inputText, outputText) => {
83
19
  estimated: usage?.inputTokens == null || usage?.outputTokens == null || usage?.totalTokens == null
84
20
  };
85
21
  };
86
- const requestMessages = (request) => gatewayMessagesToModelMessages(stripImagesForUnsupportedModel(request.messages, request.primary.provider, request.primary.modelId), request.systemPrompt);
87
22
  const getInputText = (request) => `${request.systemPrompt ?? ""}\n${request.messages.map((message) => message.content).join("\n")}`.trim();
23
+ const dedupeTargets = (primary, fallbacks = []) => [primary, ...fallbacks].filter((target, index, list) => list.findIndex((candidate) => candidate.provider === target.provider && candidate.modelId === target.modelId) === index);
88
24
  const buildRequiredCapabilities = (request, extra = {}) => ({
89
25
  ...(request.requiredCapabilities ?? {}),
90
26
  ...(request.tools ? { tools: true } : {}),
91
27
  ...(request.reasoning ? { reasoning: true } : {}),
28
+ ...(request.stepType === "grounded" ? { webSearch: true } : {}),
92
29
  ...extra
93
30
  });
31
+ const getTaskIntent = (request) => request.taskIntent ??
32
+ (request.stepType === "plan" ? "reasoning" : request.stepType === "act" ? "tool-heavy" : "chat");
94
33
  const createTextOptions = (adapter, target, request) => ({
95
34
  model: adapter.languageModel(target.modelId),
96
35
  messages: gatewayMessagesToModelMessages(stripImagesForUnsupportedModel(request.messages, target.provider, target.modelId), request.systemPrompt),
@@ -104,218 +43,176 @@ const createTextOptions = (adapter, target, request) => ({
104
43
  providerOptions: request.providerOptions,
105
44
  abortSignal: request.abortSignal
106
45
  });
107
- const enrichTextResult = (request, target, attempts, routeDecision, startedAt, result) => ({
46
+ const enrichTextResult = (request, target, attempts, routeDecision, startedAt, result, currentTime = Date.now()) => ({
108
47
  ...result,
109
48
  providerUsed: target.provider,
110
49
  modelUsed: target.modelId,
111
- latencyMs: Date.now() - startedAt,
50
+ latencyMs: currentTime - startedAt,
112
51
  attempts,
113
52
  usage: normalizeUsage(result.usage, getInputText(request), result.text),
114
53
  routeDecision
115
54
  });
116
- const enrichObjectResult = (request, target, attempts, routeDecision, startedAt, result) => ({
55
+ const enrichObjectResult = (request, target, attempts, routeDecision, startedAt, result, currentTime = Date.now()) => ({
117
56
  ...result,
118
57
  providerUsed: target.provider,
119
58
  modelUsed: target.modelId,
120
- latencyMs: Date.now() - startedAt,
59
+ latencyMs: currentTime - startedAt,
121
60
  attempts,
122
61
  usage: normalizeUsage(result.usage, getInputText(request), result.text),
123
62
  routeDecision
124
63
  });
125
- export const createGateway = (config) => {
126
- const getAdapter = (provider) => {
127
- const adapter = config.adapters[provider];
128
- if (!adapter) {
129
- throw new GatewayError(`No adapter registered for provider "${provider}".`, false);
64
+ const getAttemptTimeoutMs = (config, provider) => config.attemptTimeoutsMs?.[provider] ?? config.attemptTimeoutMs ?? 20_000;
65
+ const withFirstEventReplay = (streamResult, firstEvent, iterator) => {
66
+ const eventStream = (async function* () {
67
+ if (!firstEvent.done) {
68
+ yield firstEvent.value;
69
+ }
70
+ while (true) {
71
+ const next = await iterator.next();
72
+ if (next.done) {
73
+ return;
74
+ }
75
+ yield next.value;
130
76
  }
131
- return adapter;
77
+ })();
78
+ return {
79
+ ...streamResult,
80
+ eventStream
132
81
  };
133
- const routeDecisionFor = (request) => {
134
- const mode = request.routingMode ?? "balanced";
135
- const intent = request.taskIntent ?? "chat";
136
- const orderedTargets = orderTargets(mode, intent, request.primary, request.fallbacks ?? [], config);
137
- return {
138
- mode,
139
- intent,
140
- orderedTargets,
141
- routeDecision: createRouteDecision(mode, intent, orderedTargets)
82
+ };
83
+ export const createGateway = (config) => {
84
+ const now = config.now ?? Date.now;
85
+ const runtimeStore = config.runtimeStore ?? createInMemoryGatewayRuntimeStore();
86
+ const routerPolicy = config.routerPolicy ?? createDefaultRouterPolicy();
87
+ const retryPolicy = config.retryPolicy ?? createDefaultRetryPolicy({ maxRetries: config.maxRetries, backoffMs: config.retryBackoffMs });
88
+ const emitEvent = async (event) => {
89
+ await config.onEvent?.(event);
90
+ };
91
+ const getAdapter = (provider) => config.adapters[provider];
92
+ const planRoute = async (request, extraRequiredCapabilities = {}) => {
93
+ const normalizedRequest = {
94
+ ...request,
95
+ taskIntent: getTaskIntent(request)
142
96
  };
97
+ const targets = dedupeTargets(request.primary, request.fallbacks);
98
+ const runtimeStates = new Map(await Promise.all(targets.map(async (target) => [gatewayTargetKey(target), await runtimeStore.get(gatewayTargetKey(target))])));
99
+ const routeDecision = await routerPolicy.plan({
100
+ request: normalizedRequest,
101
+ targets,
102
+ requiredCapabilities: buildRequiredCapabilities(normalizedRequest, extraRequiredCapabilities),
103
+ adapters: config.adapters,
104
+ runtimeStates,
105
+ modelCatalog: config.modelCatalog,
106
+ providerCostsPer1kTokens: config.providerCostsPer1kTokens,
107
+ latencyBiasMs: config.latencyBiasMs,
108
+ now: now()
109
+ });
110
+ await emitEvent({
111
+ type: "route-selected",
112
+ request: normalizedRequest,
113
+ timestamp: now(),
114
+ decision: routeDecision
115
+ });
116
+ return routeDecision;
143
117
  };
144
118
  const runGenerate = async (request, operation, extraRequiredCapabilities = {}) => {
145
- const attempts = [];
146
- const startedAt = Date.now();
147
- const { orderedTargets, routeDecision } = routeDecisionFor(request);
148
- const maxRetries = Math.max(0, config.maxRetries ?? 2);
149
- const requiredCapabilities = buildRequiredCapabilities(request, extraRequiredCapabilities);
150
- for (const [targetIndex, target] of orderedTargets.entries()) {
151
- const adapter = getAdapter(target.provider);
152
- if (!supportsRequiredCapabilities(adapter, target, requiredCapabilities)) {
153
- attempts.push({
154
- provider: target.provider,
155
- modelId: target.modelId,
156
- ok: false,
157
- latencyMs: 0,
158
- errorMessage: "Skipped because model capabilities do not satisfy the request."
159
- });
160
- continue;
161
- }
162
- if (!withinCostBudget(config, request, target)) {
163
- attempts.push({
164
- provider: target.provider,
165
- modelId: target.modelId,
166
- ok: false,
167
- latencyMs: 0,
168
- errorMessage: "Skipped because provider cost exceeds the configured budget."
169
- });
170
- continue;
171
- }
172
- for (let retry = 0; retry <= maxRetries; retry += 1) {
173
- const attemptStartedAt = Date.now();
174
- try {
175
- await config.onAttempt?.({
176
- provider: target.provider,
177
- modelId: target.modelId,
178
- ok: true,
179
- latencyMs: 0,
180
- retry,
181
- targetRank: targetIndex
182
- });
183
- const result = await withTimeout(operation(adapter, target), getAttemptTimeoutMs(config, target.provider));
184
- attempts.push({
185
- provider: target.provider,
186
- modelId: target.modelId,
187
- ok: true,
188
- latencyMs: Date.now() - attemptStartedAt
189
- });
190
- return {
191
- attempts,
192
- target,
193
- startedAt,
194
- routeDecision,
195
- result
196
- };
197
- }
198
- catch (error) {
199
- const normalized = normalizeError(error);
200
- attempts.push({
201
- provider: target.provider,
202
- modelId: target.modelId,
203
- ok: false,
204
- latencyMs: Date.now() - attemptStartedAt,
205
- errorMessage: normalized.message
206
- });
207
- await config.onAttempt?.({
208
- provider: target.provider,
209
- modelId: target.modelId,
210
- ok: false,
211
- latencyMs: Date.now() - attemptStartedAt,
212
- errorMessage: normalized.message,
213
- retry,
214
- targetRank: targetIndex
215
- });
216
- if (retry < maxRetries && normalized.retryable) {
217
- await sleep(retryBackoffMs(config, retry));
218
- continue;
219
- }
220
- break;
119
+ const startedAt = now();
120
+ const routeDecision = await planRoute(request, extraRequiredCapabilities);
121
+ const executed = await executeRoutedOperation({
122
+ request,
123
+ routeDecision,
124
+ retryPolicy,
125
+ runtimeStore,
126
+ getAttemptTimeoutMs: (target) => getAttemptTimeoutMs(config, target.provider),
127
+ onAttempt: config.onAttempt,
128
+ onEvent: config.onEvent,
129
+ now,
130
+ operation: async (target) => {
131
+ const adapter = getAdapter(target.provider);
132
+ if (!adapter) {
133
+ throw new GatewayError(`No adapter registered for provider "${target.provider}".`, false);
221
134
  }
135
+ return operation(adapter, target);
222
136
  }
223
- }
224
- const finalError = attempts.at(-1)?.errorMessage ?? "All gateway attempts failed.";
225
- throw new GatewayError(finalError, false);
137
+ });
138
+ return {
139
+ ...executed,
140
+ startedAt,
141
+ routeDecision
142
+ };
226
143
  };
227
144
  const runStream = async (request, operation, extraRequiredCapabilities = {}) => {
228
- const attempts = [];
229
- const startedAt = Date.now();
230
- const { orderedTargets, routeDecision } = routeDecisionFor(request);
231
- const maxRetries = Math.max(0, config.maxRetries ?? 2);
232
- const requiredCapabilities = buildRequiredCapabilities(request, { streaming: true, ...extraRequiredCapabilities });
233
- for (const [targetIndex, target] of orderedTargets.entries()) {
234
- const adapter = getAdapter(target.provider);
235
- if (!supportsRequiredCapabilities(adapter, target, requiredCapabilities)) {
236
- attempts.push({
237
- provider: target.provider,
238
- modelId: target.modelId,
239
- ok: false,
240
- latencyMs: 0,
241
- errorMessage: "Skipped because model capabilities do not satisfy the request."
242
- });
243
- continue;
244
- }
245
- if (!withinCostBudget(config, request, target)) {
246
- attempts.push({
247
- provider: target.provider,
248
- modelId: target.modelId,
249
- ok: false,
250
- latencyMs: 0,
251
- errorMessage: "Skipped because provider cost exceeds the configured budget."
252
- });
253
- continue;
254
- }
255
- for (let retry = 0; retry <= maxRetries; retry += 1) {
256
- const attemptStartedAt = Date.now();
145
+ const startedAt = now();
146
+ const routeDecision = await planRoute(request, { streaming: true, ...extraRequiredCapabilities });
147
+ const executed = await executeRoutedOperation({
148
+ request,
149
+ routeDecision,
150
+ retryPolicy,
151
+ runtimeStore,
152
+ getAttemptTimeoutMs: (target) => getAttemptTimeoutMs(config, target.provider),
153
+ onAttempt: config.onAttempt,
154
+ onEvent: config.onEvent,
155
+ now,
156
+ operation: async (target) => {
157
+ const adapter = getAdapter(target.provider);
158
+ if (!adapter) {
159
+ throw new GatewayError(`No adapter registered for provider "${target.provider}".`, false);
160
+ }
161
+ const streamResult = operation(adapter, target);
257
162
  try {
258
- await config.onAttempt?.({
259
- provider: target.provider,
260
- modelId: target.modelId,
261
- ok: true,
262
- latencyMs: 0,
263
- retry,
264
- targetRank: targetIndex
265
- });
266
- const streamResult = operation(adapter, target);
267
163
  const iterator = streamResult.eventStream[Symbol.asyncIterator]();
268
- const first = await withTimeout(iterator.next(), getAttemptTimeoutMs(config, target.provider));
164
+ const first = await iterator.next();
269
165
  if (!first.done && first.value.type === "error") {
166
+ await streamResult.collect().catch(() => undefined);
270
167
  throw first.value.error;
271
168
  }
272
- attempts.push({
273
- provider: target.provider,
274
- modelId: target.modelId,
275
- ok: true,
276
- latencyMs: Date.now() - attemptStartedAt
277
- });
278
- return {
279
- attempts,
280
- target,
281
- startedAt,
282
- routeDecision,
283
- streamResult
284
- };
169
+ return withFirstEventReplay(streamResult, first, iterator);
285
170
  }
286
171
  catch (error) {
287
- const normalized = normalizeError(error);
288
- attempts.push({
289
- provider: target.provider,
290
- modelId: target.modelId,
291
- ok: false,
292
- latencyMs: Date.now() - attemptStartedAt,
293
- errorMessage: normalized.message
294
- });
295
- await config.onAttempt?.({
296
- provider: target.provider,
297
- modelId: target.modelId,
298
- ok: false,
299
- latencyMs: Date.now() - attemptStartedAt,
300
- errorMessage: normalized.message,
301
- retry,
302
- targetRank: targetIndex
303
- });
304
- if (retry < maxRetries && normalized.retryable) {
305
- await sleep(retryBackoffMs(config, retry));
306
- continue;
307
- }
308
- break;
172
+ await streamResult.collect().catch(() => undefined);
173
+ throw error;
309
174
  }
310
175
  }
311
- }
312
- const finalError = attempts.at(-1)?.errorMessage ?? "All gateway attempts failed.";
313
- throw new GatewayError(finalError, false);
176
+ });
177
+ return {
178
+ ...executed,
179
+ startedAt,
180
+ routeDecision
181
+ };
314
182
  };
315
183
  return {
184
+ async resolveModel(request) {
185
+ const routeDecision = await planRoute(request);
186
+ const target = routeDecision.orderedTargets[0];
187
+ if (!target) {
188
+ throw new GatewayError("No available gateway targets matched the request.", false);
189
+ }
190
+ const adapter = getAdapter(target.provider);
191
+ if (!adapter) {
192
+ throw new GatewayError(`No adapter registered for provider "${target.provider}".`, false);
193
+ }
194
+ if (request.stepType === "grounded") {
195
+ const groundedModel = adapter.groundedLanguageModel?.(target.modelId);
196
+ if (!groundedModel) {
197
+ throw new GatewayError(`Provider "${target.provider}" does not expose grounded models.`, false);
198
+ }
199
+ return {
200
+ target,
201
+ routeDecision,
202
+ model: groundedModel,
203
+ kind: "grounded"
204
+ };
205
+ }
206
+ return {
207
+ target,
208
+ routeDecision,
209
+ model: adapter.languageModel(target.modelId),
210
+ kind: "language"
211
+ };
212
+ },
316
213
  async generate(request) {
317
214
  const routed = await runGenerate(request, (adapter, target) => generateText(createTextOptions(adapter, target, request)));
318
- return enrichTextResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, routed.result);
215
+ return enrichTextResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, routed.result, now());
319
216
  },
320
217
  streamText(request) {
321
218
  const selected = runStream(request, (adapter, target) => streamText(createTextOptions(adapter, target, request)));
@@ -323,21 +220,21 @@ export const createGateway = (config) => {
323
220
  const ensureRelay = async () => {
324
221
  if (!relayPromise) {
325
222
  relayPromise = selected.then((routed) => ({
326
- collect: async () => enrichTextResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, await routed.streamResult.collect())
223
+ collect: async () => enrichTextResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, await routed.result.collect(), now())
327
224
  }));
328
225
  }
329
226
  return relayPromise;
330
227
  };
331
228
  return {
332
229
  eventStream: (async function* () {
333
- const { streamResult } = await selected;
334
- for await (const event of streamResult.eventStream) {
230
+ const { result } = await selected;
231
+ for await (const event of result.eventStream) {
335
232
  yield event;
336
233
  }
337
234
  })(),
338
235
  textStream: (async function* () {
339
- const { streamResult } = await selected;
340
- for await (const chunk of streamResult.textStream) {
236
+ const { result } = await selected;
237
+ for await (const chunk of result.textStream) {
341
238
  yield chunk;
342
239
  }
343
240
  })(),
@@ -351,8 +248,8 @@ export const createGateway = (config) => {
351
248
  mode: request.mode,
352
249
  schemaName: request.schemaName,
353
250
  schemaDescription: request.schemaDescription
354
- }));
355
- return enrichObjectResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, routed.result);
251
+ }), { structuredOutput: request.mode === "native" ? true : undefined });
252
+ return enrichObjectResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, routed.result, now());
356
253
  },
357
254
  streamObject(request) {
358
255
  const selected = runStream(request, (adapter, target) => streamObject({
@@ -361,21 +258,21 @@ export const createGateway = (config) => {
361
258
  mode: request.mode,
362
259
  schemaName: request.schemaName,
363
260
  schemaDescription: request.schemaDescription
364
- }));
261
+ }), { structuredOutput: request.mode === "native" ? true : undefined });
365
262
  let relayPromise;
366
263
  const ensureRelay = async () => {
367
264
  if (!relayPromise) {
368
265
  relayPromise = selected.then((routed) => ({
369
- streamResult: routed.streamResult,
370
- collect: async () => enrichObjectResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, await routed.streamResult.collect())
266
+ streamResult: routed.result,
267
+ collect: async () => enrichObjectResult(request, routed.target, routed.attempts, routed.routeDecision, routed.startedAt, await routed.result.collect(), now())
371
268
  }));
372
269
  }
373
270
  return relayPromise;
374
271
  };
375
272
  return {
376
273
  eventStream: (async function* () {
377
- const { streamResult } = await selected;
378
- for await (const event of streamResult.eventStream) {
274
+ const { result } = await selected;
275
+ for await (const event of result.eventStream) {
379
276
  yield event;
380
277
  }
381
278
  })(),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { GatewayRetryPolicy, GatewayRouterPolicy } from "./types.js";
2
+ export declare const createDefaultRouterPolicy: () => GatewayRouterPolicy;
3
+ export interface DefaultRetryPolicyOptions {
4
+ maxRetries?: number;
5
+ backoffMs?: number;
6
+ cooldownAfterRetryableFailures?: number;
7
+ cooldownMs?: number;
8
+ }
9
+ export declare const createDefaultRetryPolicy: (options?: DefaultRetryPolicyOptions) => GatewayRetryPolicy;
10
+ //# sourceMappingURL=policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,kBAAkB,EAIlB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AA0KpB,eAAO,MAAM,yBAAyB,QAAO,mBAkB3C,CAAC;AAEH,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqBD,eAAO,MAAM,wBAAwB,GAAI,UAAS,yBAA8B,KAAG,kBAkCjF,CAAC"}