@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/types.d.ts CHANGED
@@ -1,8 +1,12 @@
1
- import type { GenerateObjectOutput, GenerateTextOutput, ModelCatalog, ProviderAdapter, ReasoningConfig, StreamObjectResult, StreamTextResult, TokenUsage, ToolChoice, ToolExecutionOptions, ToolSet } from "@zhivex-ai/core";
1
+ import type { AgentStepType, GenerateObjectOutput, GenerateTextOutput, GroundedLanguageModel, ModelCapabilities, ModelCatalog, LanguageModel, ProviderAdapter, ReasoningConfig, StreamObjectResult, StreamTextResult, TokenUsage, ToolChoice, ToolExecutionOptions, ToolSet } from "@zhivex-ai/core";
2
2
  import type { ZodTypeAny } from "zod";
3
3
  export type GatewayProviderId = "openai" | "anthropic" | "gemini" | "vertex" | "qwen" | "kimi" | "bedrock" | "ollama" | "azure-openai" | "openrouter";
4
4
  export type GatewayRoutingMode = "speed" | "balanced" | "quality";
5
5
  export type GatewayTaskIntent = "chat" | "reasoning" | "tool-heavy";
6
+ export type GatewayCostStrategy = "strict" | "prefer-cheaper" | "ignore";
7
+ export type GatewaySkipReason = "missing-adapter" | "capabilities" | "cost" | "cooldown" | "latency-budget";
8
+ export type GatewayCircuitState = "closed" | "open" | "half-open";
9
+ export type GatewayErrorClass = "timeout" | "rate-limit" | "connectivity" | "provider" | "validation" | "unknown";
6
10
  export interface GatewayImageAttachment {
7
11
  dataUrl: string;
8
12
  mimeType: string;
@@ -16,6 +20,13 @@ export interface GatewayModelTarget {
16
20
  provider: GatewayProviderId;
17
21
  modelId: string;
18
22
  }
23
+ export type GatewayRequiredCapabilities = Partial<Record<"streaming" | "tools" | "structuredOutput" | "jsonMode" | "vision" | "reasoning" | "webSearch", boolean>>;
24
+ export interface GatewayRetryPolicyOverride {
25
+ maxRetries?: number;
26
+ backoffMs?: number;
27
+ cooldownAfterRetryableFailures?: number;
28
+ cooldownMs?: number;
29
+ }
19
30
  export interface GatewayRequest {
20
31
  messages: GatewayMessage[];
21
32
  systemPrompt?: string;
@@ -27,21 +38,191 @@ export interface GatewayRequest {
27
38
  maxSteps?: number;
28
39
  reasoning?: ReasoningConfig;
29
40
  providerOptions?: Record<string, unknown>;
30
- requiredCapabilities?: Partial<Record<"streaming" | "tools" | "structuredOutput" | "jsonMode" | "vision" | "reasoning", boolean>>;
41
+ requiredCapabilities?: GatewayRequiredCapabilities;
31
42
  maxCostPer1kTokens?: number;
32
43
  routingMode?: GatewayRoutingMode;
33
44
  taskIntent?: GatewayTaskIntent;
45
+ stepType?: AgentStepType;
34
46
  abortSignal?: AbortSignal;
35
47
  primary: GatewayModelTarget;
36
48
  fallbacks?: GatewayModelTarget[];
49
+ latencyBudgetMs?: number;
50
+ costStrategy?: GatewayCostStrategy;
51
+ retryPolicy?: GatewayRetryPolicyOverride;
52
+ allowDegradedCapabilities?: boolean;
53
+ preferLocal?: boolean;
37
54
  }
38
55
  export interface GatewayAttempt {
39
56
  provider: GatewayProviderId;
40
57
  modelId: string;
41
58
  ok: boolean;
42
59
  latencyMs: number;
60
+ retry: number;
61
+ targetRank: number;
43
62
  errorMessage?: string;
63
+ retryable?: boolean;
64
+ skipReason?: GatewaySkipReason;
65
+ }
66
+ export interface GatewayTargetRuntimeState {
67
+ targetKey: string;
68
+ provider: GatewayProviderId;
69
+ modelId: string;
70
+ circuitState: GatewayCircuitState;
71
+ requestCount: number;
72
+ successCount: number;
73
+ failureCount: number;
74
+ retryableFailureCount: number;
75
+ nonRetryableFailureCount: number;
76
+ consecutiveFailures: number;
77
+ consecutiveRetryableFailures: number;
78
+ consecutiveErrorClass?: GatewayErrorClass;
79
+ lastLatencyMs?: number;
80
+ avgLatencyMs?: number;
81
+ latencyEwmaMs?: number;
82
+ latencyP95Ms?: number;
83
+ recentLatenciesMs: number[];
84
+ lastErrorMessage?: string;
85
+ lastErrorClass?: GatewayErrorClass;
86
+ errorCounts: Partial<Record<GatewayErrorClass, number>>;
87
+ cooldownUntil?: number;
88
+ createdAt: number;
89
+ lastUpdatedAt: number;
90
+ expiresAt?: number;
91
+ }
92
+ export interface GatewayRuntimeStore {
93
+ get(targetKey: string): GatewayTargetRuntimeState | undefined | Promise<GatewayTargetRuntimeState | undefined>;
94
+ set(targetKey: string, state: GatewayTargetRuntimeState): void | Promise<void>;
95
+ update(targetKey: string, updater: (state: GatewayTargetRuntimeState | undefined) => GatewayTargetRuntimeState): GatewayTargetRuntimeState | Promise<GatewayTargetRuntimeState>;
96
+ list?(): GatewayTargetRuntimeState[] | Promise<GatewayTargetRuntimeState[]>;
97
+ delete?(targetKey: string): void | Promise<void>;
98
+ clear?(): void | Promise<void>;
99
+ prune?(): number | Promise<number>;
100
+ }
101
+ export interface GatewayRetryErrorInfo {
102
+ message: string;
103
+ retryable: boolean;
104
+ errorClass: GatewayErrorClass;
105
+ }
106
+ export interface GatewayRetryPolicyContext {
107
+ request: GatewayRequest;
108
+ target: GatewayModelTarget;
109
+ state?: GatewayTargetRuntimeState;
110
+ retry: number;
111
+ targetRank: number;
112
+ error: GatewayRetryErrorInfo;
113
+ }
114
+ export interface GatewayRetryPolicy {
115
+ name: string;
116
+ classifyError(error: unknown): GatewayRetryErrorInfo;
117
+ shouldRetry(context: GatewayRetryPolicyContext): boolean;
118
+ getBackoffMs(context: GatewayRetryPolicyContext): number;
119
+ getCooldownMs(context: GatewayRetryPolicyContext): number;
120
+ }
121
+ export interface GatewayEvaluatedTarget {
122
+ target: GatewayModelTarget;
123
+ score: number;
124
+ available: boolean;
125
+ estimatedCostPer1kTokens?: number;
126
+ degradedCapabilities?: Array<keyof GatewayRequiredCapabilities>;
127
+ skipReason?: GatewaySkipReason;
128
+ state?: GatewayTargetRuntimeState;
129
+ }
130
+ export interface GatewayRouteDecision {
131
+ mode: GatewayRoutingMode;
132
+ intent: GatewayTaskIntent;
133
+ policy: string;
134
+ orderedTargets: GatewayModelTarget[];
135
+ evaluatedTargets: GatewayEvaluatedTarget[];
136
+ reason: string;
137
+ }
138
+ export interface GatewayResolvedModel {
139
+ target: GatewayModelTarget;
140
+ routeDecision: GatewayRouteDecision;
141
+ model: LanguageModel | GroundedLanguageModel;
142
+ kind: "language" | "grounded";
143
+ }
144
+ export interface GatewayRoutePlanningContext {
145
+ request: GatewayRequest;
146
+ targets: GatewayModelTarget[];
147
+ requiredCapabilities: GatewayRequiredCapabilities;
148
+ adapters: Partial<Record<GatewayProviderId, ProviderAdapter>>;
149
+ runtimeStates: Map<string, GatewayTargetRuntimeState | undefined>;
150
+ modelCatalog?: ModelCatalog;
151
+ providerCostsPer1kTokens?: Partial<Record<GatewayProviderId, number>>;
152
+ latencyBiasMs?: Partial<Record<GatewayProviderId, number>>;
153
+ now: number;
154
+ }
155
+ export interface GatewayRouterPolicy {
156
+ name: string;
157
+ plan(context: GatewayRoutePlanningContext): GatewayRouteDecision | Promise<GatewayRouteDecision>;
158
+ }
159
+ export interface GatewayAttemptStartedEvent {
160
+ type: "attempt-started";
161
+ request: GatewayRequest;
162
+ target: GatewayModelTarget;
163
+ retry: number;
164
+ targetRank: number;
165
+ timestamp: number;
166
+ }
167
+ export interface GatewayAttemptSucceededEvent {
168
+ type: "attempt-succeeded";
169
+ request: GatewayRequest;
170
+ target: GatewayModelTarget;
171
+ retry: number;
172
+ targetRank: number;
173
+ timestamp: number;
174
+ latencyMs: number;
175
+ }
176
+ export interface GatewayAttemptFailedEvent {
177
+ type: "attempt-failed";
178
+ request: GatewayRequest;
179
+ target: GatewayModelTarget;
180
+ retry: number;
181
+ targetRank: number;
182
+ timestamp: number;
183
+ latencyMs: number;
184
+ errorMessage: string;
185
+ retryable: boolean;
186
+ errorClass: GatewayErrorClass;
187
+ }
188
+ export interface GatewayAttemptRetriedEvent {
189
+ type: "attempt-retried";
190
+ request: GatewayRequest;
191
+ target: GatewayModelTarget;
192
+ retry: number;
193
+ targetRank: number;
194
+ timestamp: number;
195
+ delayMs: number;
44
196
  }
197
+ export interface GatewayTargetSkippedEvent {
198
+ type: "target-skipped";
199
+ request: GatewayRequest;
200
+ target: GatewayModelTarget;
201
+ targetRank: number;
202
+ timestamp: number;
203
+ reason: GatewaySkipReason;
204
+ }
205
+ export interface GatewayRouteSelectedEvent {
206
+ type: "route-selected";
207
+ request: GatewayRequest;
208
+ timestamp: number;
209
+ decision: GatewayRouteDecision;
210
+ }
211
+ export interface GatewayTargetCooledDownEvent {
212
+ type: "target-cooled-down";
213
+ request: GatewayRequest;
214
+ target: GatewayModelTarget;
215
+ timestamp: number;
216
+ cooldownUntil: number;
217
+ }
218
+ export interface GatewayRouteFailedEvent {
219
+ type: "route-failed";
220
+ request: GatewayRequest;
221
+ timestamp: number;
222
+ attempts: GatewayAttempt[];
223
+ errorMessage: string;
224
+ }
225
+ export type GatewayEvent = GatewayAttemptStartedEvent | GatewayAttemptSucceededEvent | GatewayAttemptFailedEvent | GatewayAttemptRetriedEvent | GatewayTargetSkippedEvent | GatewayRouteSelectedEvent | GatewayTargetCooledDownEvent | GatewayRouteFailedEvent;
45
226
  export interface GatewayResponse {
46
227
  text: string;
47
228
  finishReason?: GenerateTextOutput["finishReason"];
@@ -53,12 +234,7 @@ export interface GatewayResponse {
53
234
  usage: TokenUsage & {
54
235
  estimated: boolean;
55
236
  };
56
- routeDecision: {
57
- mode: GatewayRoutingMode;
58
- intent: GatewayTaskIntent;
59
- orderedTargets: GatewayModelTarget[];
60
- reason: string;
61
- };
237
+ routeDecision: GatewayRouteDecision;
62
238
  steps: GenerateTextOutput["steps"];
63
239
  messages: GenerateTextOutput["messages"];
64
240
  toolResults: GenerateTextOutput["toolResults"];
@@ -81,21 +257,25 @@ export interface GatewayStreamObjectResult<TSchema extends ZodTypeAny> extends O
81
257
  }
82
258
  export interface GatewayConfig {
83
259
  adapters: Partial<Record<GatewayProviderId, ProviderAdapter>>;
84
- groundedAdapters?: Partial<Record<GatewayProviderId, Pick<ProviderAdapter, "groundedLanguageModel">>>;
85
260
  modelCatalog?: ModelCatalog;
86
261
  providerCostsPer1kTokens?: Partial<Record<GatewayProviderId, number>>;
87
262
  latencyBiasMs?: Partial<Record<GatewayProviderId, number>>;
88
- maxRetries?: number;
89
263
  attemptTimeoutMs?: number;
90
264
  attemptTimeoutsMs?: Partial<Record<GatewayProviderId, number>>;
265
+ runtimeStore?: GatewayRuntimeStore;
266
+ routerPolicy?: GatewayRouterPolicy;
267
+ retryPolicy?: GatewayRetryPolicy;
268
+ onAttempt?: (attempt: GatewayAttempt) => void | Promise<void>;
269
+ onEvent?: (event: GatewayEvent) => void | Promise<void>;
270
+ maxRetries?: number;
91
271
  retryBackoffMs?: number;
92
- onAttempt?: (attempt: GatewayAttempt & {
93
- retry: number;
94
- targetRank: number;
95
- }) => void | Promise<void>;
272
+ now?: () => number;
96
273
  }
97
274
  export declare class GatewayError extends Error {
98
275
  readonly retryable: boolean;
99
276
  constructor(message: string, retryable: boolean);
100
277
  }
278
+ export declare const gatewayCapabilityKeys: readonly ["streaming", "tools", "structuredOutput", "jsonMode", "vision", "reasoning", "webSearch"];
279
+ export type GatewayCapabilityKey = (typeof gatewayCapabilityKeys)[number];
280
+ export declare const toCapabilityMismatch: (capabilities: ModelCapabilities, requiredCapabilities: GatewayRequiredCapabilities) => GatewayCapabilityKey[];
101
281
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -6,4 +6,14 @@ export class GatewayError extends Error {
6
6
  this.name = "GatewayError";
7
7
  }
8
8
  }
9
+ export const gatewayCapabilityKeys = [
10
+ "streaming",
11
+ "tools",
12
+ "structuredOutput",
13
+ "jsonMode",
14
+ "vision",
15
+ "reasoning",
16
+ "webSearch"
17
+ ];
18
+ export const toCapabilityMismatch = (capabilities, requiredCapabilities) => gatewayCapabilityKeys.filter((key) => requiredCapabilities[key] === true && capabilities[key] !== true);
9
19
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkIA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG1B;IAFX,YACE,OAAe,EACN,SAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,cAAS,GAAT,SAAS,CAAS;QAG3B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA2VA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG1B;IAFX,YACE,OAAe,EACN,SAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,cAAS,GAAT,SAAS,CAAS;QAG3B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,OAAO;IACP,kBAAkB;IAClB,UAAU;IACV,QAAQ;IACR,WAAW;IACX,WAAW;CACwD,CAAC;AAItE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,YAA+B,EAC/B,oBAAiD,EACzB,EAAE,CAC1B,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhivex-ai/gateway",
3
- "version": "0.3.0",
3
+ "version": "0.3.1-next.0",
4
4
  "description": "Routing and fallback helpers for Zhivex AI SDK.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -41,6 +41,6 @@
41
41
  "access": "public"
42
42
  },
43
43
  "dependencies": {
44
- "@zhivex-ai/core": "^0.4.0"
44
+ "@zhivex-ai/core": "^0.5.0-next.0"
45
45
  }
46
46
  }