@truefoundry/ai-gateway-sdk 0.0.8 → 0.0.10

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 (50) hide show
  1. package/dist/constants.d.ts +10 -0
  2. package/dist/constants.js +8 -0
  3. package/dist/constants.js.map +1 -1
  4. package/dist/handlers/retryHandler.d.ts +4 -0
  5. package/dist/handlers/retryHandler.js +23 -0
  6. package/dist/handlers/retryHandler.js.map +1 -1
  7. package/dist/index.d.ts +2 -2
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/providers/google-vertex-ai/api.js +60 -8
  11. package/dist/providers/google-vertex-ai/api.js.map +1 -1
  12. package/dist/providers/google-vertex-ai/types.d.ts +6 -1
  13. package/dist/providers/google-vertex-ai/types.js +2 -0
  14. package/dist/providers/google-vertex-ai/types.js.map +1 -1
  15. package/dist/providers/utils/finishReasonMap.js +1 -0
  16. package/dist/providers/utils/finishReasonMap.js.map +1 -1
  17. package/dist/services/buildExecutionReport.d.ts +36 -11
  18. package/dist/services/buildExecutionReport.js +876 -2
  19. package/dist/services/buildExecutionReport.js.map +1 -1
  20. package/dist/services/execute.js +34 -4
  21. package/dist/services/execute.js.map +1 -1
  22. package/dist/services/handleProviderResponse.d.ts +6 -2
  23. package/dist/services/handleProviderResponse.js +29 -5
  24. package/dist/services/handleProviderResponse.js.map +1 -1
  25. package/dist/stream/classifyAwsStreamEventKey.d.ts +30 -0
  26. package/dist/stream/classifyAwsStreamEventKey.js +67 -0
  27. package/dist/stream/classifyAwsStreamEventKey.js.map +1 -0
  28. package/dist/stream/index.d.ts +1 -0
  29. package/dist/stream/index.js +1 -0
  30. package/dist/stream/index.js.map +1 -1
  31. package/dist/stream/pumpProviderAwsEventStream.js +13 -1
  32. package/dist/stream/pumpProviderAwsEventStream.js.map +1 -1
  33. package/dist/stream/pumpProviderSseStream.js +6 -1
  34. package/dist/stream/pumpProviderSseStream.js.map +1 -1
  35. package/dist/stream/resolveStreamEndReason.d.ts +2 -0
  36. package/dist/stream/resolveStreamEndReason.js +18 -0
  37. package/dist/stream/resolveStreamEndReason.js.map +1 -1
  38. package/dist/stream/types.d.ts +4 -1
  39. package/dist/types/contracts.d.ts +3 -1
  40. package/dist/types/executionReport.d.ts +21 -0
  41. package/dist/types/options.d.ts +2 -0
  42. package/dist/utils/deriveProviderHeaderOptions.js +2 -0
  43. package/dist/utils/deriveProviderHeaderOptions.js.map +1 -1
  44. package/dist/utils/providerFailureLogging.d.ts +36 -0
  45. package/dist/utils/providerFailureLogging.js +110 -0
  46. package/dist/utils/providerFailureLogging.js.map +1 -0
  47. package/dist/utils/vertexApiVersion.d.ts +7 -0
  48. package/dist/utils/vertexApiVersion.js +16 -0
  49. package/dist/utils/vertexApiVersion.js.map +1 -0
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pumpProviderAwsEventStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderAwsEventStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pumpProviderAwsEventStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderAwsEventStream.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { isAbortError } from '../utils/abortUtils.js';
6
6
  import { ignoreWithLog } from '../utils/ignoreWithLog.js';
7
7
  import { stripSseComments } from '../utils/sseUtils.js';
8
8
  import { readSseFrames } from './readSseFrames.js';
9
+ import { isStreamingTerminatedError } from './resolveStreamEndReason.js';
9
10
  const FIRST_CHUNK_SLEEP_MS = 25;
10
11
  const INTER_CHUNK_SLEEP_MS = 1;
11
12
  async function sleep(ms) {
@@ -131,7 +132,11 @@ export async function* pumpProviderSseStream(options) {
131
132
  const status = err && typeof err === 'object' && 'status' in err
132
133
  ? (err.status ?? '500')
133
134
  : '500';
134
- error = { message, status };
135
+ error = {
136
+ message,
137
+ status,
138
+ ...(isStreamingTerminatedError(err) ? { cause: err.cause } : {}),
139
+ };
135
140
  // Yield to the client; keep out of `frames` (live errResponse, not chunks).
136
141
  yield `data: ${JSON.stringify({
137
142
  error: {
@@ -1 +1 @@
1
- {"version":3,"file":"pumpProviderSseStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderSseStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pumpProviderSseStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderSseStream.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface ResolveStreamEndReasonInput {
7
7
  /** Gate reject, pump failure, or other settle error. */
8
8
  error?: unknown;
9
9
  }
10
+ /** Live `streamHandler` `isStreamingTerminatedError`: TypeError whose cause is `UND_ERR_SOCKET`. */
11
+ export declare function isStreamingTerminatedError(err: unknown): boolean;
10
12
  /** Map a gate/pump failure into a typed {@link MidStreamError}. */
11
13
  export declare function mapToMidStreamError(error: unknown): MidStreamError;
12
14
  /**
@@ -12,9 +12,27 @@ function asError(error) {
12
12
  return error;
13
13
  return new Error(typeof error === 'string' ? error : String(error));
14
14
  }
15
+ /** Live `streamHandler` `isStreamingTerminatedError`: TypeError whose cause is `UND_ERR_SOCKET`. */
16
+ export function isStreamingTerminatedError(err) {
17
+ return err instanceof TypeError && err.cause?.code === 'UND_ERR_SOCKET';
18
+ }
19
+ function streamingTerminatedStatus(err) {
20
+ const raw = err.status;
21
+ if (raw === undefined || raw === '')
22
+ return 500;
23
+ const parsed = Number(raw);
24
+ return Number.isFinite(parsed) ? parsed : 500;
25
+ }
15
26
  /** Map a gate/pump failure into a typed {@link MidStreamError}. */
16
27
  export function mapToMidStreamError(error) {
17
28
  const err = asError(error);
29
+ if (isStreamingTerminatedError(err)) {
30
+ return {
31
+ kind: 'streaming_terminated',
32
+ status: streamingTerminatedStatus(err),
33
+ message: err.message,
34
+ };
35
+ }
18
36
  if (err instanceof TTFTTimeoutError) {
19
37
  // TTFT is a gate timeout for LB fallback, not a provider in-band frame.
20
38
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveStreamEndReason.js","sourceRoot":"","sources":["../../src/stream/resolveStreamEndReason.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveStreamEndReason.js","sourceRoot":"","sources":["../../src/stream/resolveStreamEndReason.ts"],"names":[],"mappings":"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"}
@@ -56,11 +56,14 @@ export interface PumpResult {
56
56
  frames: string[];
57
57
  /** Abort before natural stream end. */
58
58
  truncated: boolean;
59
- /** Non-abort pump failure (transform / read). */
59
+ /** Non-abort pump failure (transform / read). `cause` is kept for socket close (`UND_ERR_SOCKET`). */
60
60
  error?: {
61
61
  message: string;
62
62
  status?: string | number;
63
+ cause?: unknown;
63
64
  };
65
+ /** Raw-frame Bedrock counts. Unset on SSE, where the gateway counts `frames`. */
66
+ eventCounts?: Record<string, number>;
64
67
  }
65
68
  export interface ReadSseFramesResult {
66
69
  truncated: boolean;
@@ -18,7 +18,7 @@ import type { CachePort } from './cache.js';
18
18
  import type { ExecutionReport } from './executionReport.js';
19
19
  import type { CatalogProviderConfigs, ProviderModelConfigs } from './modelConfig.js';
20
20
  import type { Params } from './requestBody.js';
21
- export type { EndReason, ExecutionFinishReason, ExecutionModelMetadata, ExecutionReport, ExecutionTimings, ExecutionToolUsage, MidStreamError, MidStreamErrorKind, MidStreamProviderErrorToken, TokenUsage, TokenUsageIteration, } from './executionReport.js';
21
+ export type { EndReason, ExecutionFinishReason, ExecutionModelMetadata, ExecutionReport, ExecutionTimings, ExecutionToolUsage, GatewayFailure, MidStreamError, MidStreamErrorKind, MidStreamProviderErrorToken, TokenUsage, TokenUsageIteration, } from './executionReport.js';
22
22
  export type { BilledUsageOverlay, CachePort, Endpoint };
23
23
  export interface ProviderOptions {
24
24
  model: Model | null;
@@ -111,6 +111,8 @@ export interface ProviderCallConfig {
111
111
  * and `streamGenerateContent` URLs to pick the SSE split (single newline).
112
112
  */
113
113
  isGeminiRouter?: boolean;
114
+ /** NEW: live CONTEXT_KEYS.IS_BEDROCK_ROUTER — routes proxy usage to CLONE Bedrock parsers. */
115
+ isBedrockRouter?: boolean;
114
116
  /**
115
117
  * Live `c.get('passThrough')`. When true, requestHandlers must not rewrite
116
118
  * the inbound body (e.g. transcription `model` field).
@@ -8,9 +8,13 @@
8
8
  * Cost **in USD** stays gateway-side. This report carries usage + cost-related
9
9
  * model metadata only — never currency amounts or OTel span handles.
10
10
  */
11
+ import type { GatewayFailureErrorType } from '../constants.js';
11
12
  import type { Endpoint, FINISH_REASON, PROVIDER_FINISH_REASON } from '../providers/types.js';
13
+ import type { FailureCauseEntry } from '../utils/providerFailureLogging.js';
12
14
  /** Wall / stream timings observed during execute (milliseconds). */
13
15
  export interface ExecutionTimings {
16
+ /** NEW: `performance.now()` at fetch start (live MONOTONIC_MODEL_REQUEST_START_TIME). */
17
+ fetchStartMs?: number;
14
18
  /** Fetch start → response headers (or equivalent non-stream completion). */
15
19
  latencyMs?: number;
16
20
  /** Fetch start → first downstream chunk (streaming only). */
@@ -188,6 +192,12 @@ export type EndReason = {
188
192
  } | {
189
193
  kind: 'unknown';
190
194
  };
195
+ /** A provider call that failed before any HTTP response arrived. */
196
+ export interface GatewayFailure {
197
+ type: GatewayFailureErrorType;
198
+ /** The error and its `cause` chain, outermost first. */
199
+ cause: FailureCauseEntry[];
200
+ }
191
201
  /**
192
202
  * Typed lifecycle facts for one SDK execute.
193
203
  *
@@ -218,6 +228,17 @@ export interface ExecutionReport {
218
228
  modelMetadata: ExecutionModelMetadata;
219
229
  /** Provider request id from response headers or body when observed. */
220
230
  providerRequestId?: string;
231
+ /**
232
+ * Set when the provider never answered with an HTTP response (connect, timeout, TLS). `status` is
233
+ * then a synthesized value, not the provider's.
234
+ */
235
+ gatewayFailure?: GatewayFailure;
221
236
  serviceTier?: string;
222
237
  toolUsage?: ExecutionToolUsage;
238
+ /** NEW: provider-metered USD from CLONE parsers (live usage.cost.total_cost). */
239
+ providerReportedCostInUsd?: number;
240
+ /** NEW: pump frames (live chunks[]); gateway may assemble Model output later. */
241
+ streamFrames?: string[];
242
+ /** Bedrock raw-frame event counts. Absent on SSE, where the gateway counts `streamFrames`. */
243
+ streamEventCounts?: Record<string, number>;
223
244
  }
@@ -5,6 +5,7 @@
5
5
  * `Model`. These types hold header overrides / BYOK values from the request;
6
6
  * they must not grow fields copied from either entity.
7
7
  */
8
+ import type { VertexApiVersion } from '../providers/google-vertex-ai/types.js';
8
9
  export interface OpenAIOptions {
9
10
  openaiProject?: string;
10
11
  openaiOrganization?: string;
@@ -67,6 +68,7 @@ export interface VertexOptions {
67
68
  filename?: string;
68
69
  vertexModelName?: string;
69
70
  vertexModelProvider?: string;
71
+ vertexApiVersion?: VertexApiVersion;
70
72
  }
71
73
  export interface AnthropicOptions {
72
74
  anthropicBeta?: string;
@@ -1,3 +1,4 @@
1
+ import { parseVertexApiVersion } from './vertexApiVersion.js';
1
2
  const TFY_HEADER_PREFIX = 'x-tfy';
2
3
  /** Lowercase header keys once (live `Object.fromEntries(c.req.raw.headers)`). */
3
4
  export function toLowercaseHeaders(headers) {
@@ -105,6 +106,7 @@ export function deriveProviderHeaderOptions(requestHeaders) {
105
106
  vertex: {
106
107
  vertexProjectId: tfy('vertex-project-id'),
107
108
  vertexRegion: tfy('vertex-region'),
109
+ vertexApiVersion: parseVertexApiVersion(tfy('vertex-api-version')),
108
110
  vertexStorageBucketName: tfy('vertex-storage-bucket-name'),
109
111
  vertexServiceAccountJson: parseJsonObject(tfy('vertex-service-account-json')),
110
112
  filename: tfy('provider-file-name'),
@@ -1 +1 @@
1
- {"version":3,"file":"deriveProviderHeaderOptions.js","sourceRoot":"","sources":["../../src/utils/deriveProviderHeaderOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deriveProviderHeaderOptions.js","sourceRoot":"","sources":["../../src/utils/deriveProviderHeaderOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { GatewayFailureErrorType } from '../constants.js';
2
+ export interface FailureCauseEntry {
3
+ name?: string;
4
+ code?: string;
5
+ message?: string;
6
+ syscall?: string;
7
+ address?: string;
8
+ port?: number;
9
+ }
10
+ /** The error and its `cause` chain, outermost first. undici wraps the real socket failure in `fetch failed`. */
11
+ export declare function describeFailureCause(error: unknown): FailureCauseEntry[];
12
+ /** Host, path and API version only; other query parameters can carry credentials. */
13
+ export declare function describeProviderUrl(url: string): {
14
+ host?: string;
15
+ path?: string;
16
+ api_version?: string;
17
+ };
18
+ export declare function pickLoggedResponseHeaders(headers: Headers): Record<string, string>;
19
+ export interface ProviderCallFailure {
20
+ response: Response;
21
+ url: string;
22
+ provider: string;
23
+ providerAccount: string | undefined;
24
+ model: string | undefined;
25
+ providerStatusCode: number | undefined;
26
+ gatewayFailureType: GatewayFailureErrorType | undefined;
27
+ gatewayFailureCause: FailureCauseEntry[] | undefined;
28
+ retryAttempts: number | undefined;
29
+ latencyMs: number;
30
+ streaming: boolean;
31
+ }
32
+ /**
33
+ * One structured line per failed provider call. `provider_responded` separates an upstream HTTP error
34
+ * from a connect, timeout or TLS failure on the gateway side, which the status code alone cannot.
35
+ */
36
+ export declare function logProviderCallFailure(failure: ProviderCallFailure): Promise<void>;
@@ -0,0 +1,110 @@
1
+ import { logger } from '../logger.js';
2
+ const MAX_LOGGED_BODY_CHARS = 512;
3
+ const MAX_CAUSE_DEPTH = 5;
4
+ const MAX_AGGREGATE_MEMBERS = 3;
5
+ const API_VERSION_QUERY_PARAM = 'api-version';
6
+ // Headers that tell a provider's own response apart from one produced by a proxy or firewall in front of it.
7
+ const LOGGED_RESPONSE_HEADERS = [
8
+ 'x-request-id',
9
+ 'request-id',
10
+ 'apim-request-id',
11
+ 'x-ms-request-id',
12
+ 'x-ms-client-request-id',
13
+ 'x-ms-region',
14
+ 'x-amzn-requestid',
15
+ 'x-goog-request-id',
16
+ 'x-envoy-upstream-service-time',
17
+ 'retry-after',
18
+ 'content-type',
19
+ 'content-length',
20
+ 'server',
21
+ 'via',
22
+ 'date',
23
+ ];
24
+ function readString(value) {
25
+ return typeof value === 'string' && value !== '' ? value : undefined;
26
+ }
27
+ function toCauseEntry(error) {
28
+ if (!error || typeof error !== 'object')
29
+ return { message: String(error) };
30
+ const record = error;
31
+ return {
32
+ name: readString(record.name),
33
+ code: readString(record.code),
34
+ message: readString(record.message),
35
+ syscall: readString(record.syscall),
36
+ address: readString(record.address),
37
+ port: typeof record.port === 'number' ? record.port : undefined,
38
+ };
39
+ }
40
+ /** The error and its `cause` chain, outermost first. undici wraps the real socket failure in `fetch failed`. */
41
+ export function describeFailureCause(error) {
42
+ const chain = [];
43
+ let current = error;
44
+ for (let depth = 0; current && depth < MAX_CAUSE_DEPTH; depth++) {
45
+ chain.push(toCauseEntry(current));
46
+ const members = current.errors;
47
+ if (Array.isArray(members)) {
48
+ chain.push(...members.slice(0, MAX_AGGREGATE_MEMBERS).map(toCauseEntry));
49
+ }
50
+ current = current.cause;
51
+ }
52
+ return chain;
53
+ }
54
+ /** Host, path and API version only; other query parameters can carry credentials. */
55
+ export function describeProviderUrl(url) {
56
+ try {
57
+ const parsed = new URL(url);
58
+ const apiVersion = parsed.searchParams.get(API_VERSION_QUERY_PARAM) ?? undefined;
59
+ return { host: parsed.host, path: parsed.pathname, api_version: apiVersion };
60
+ }
61
+ catch {
62
+ return {};
63
+ }
64
+ }
65
+ export function pickLoggedResponseHeaders(headers) {
66
+ const picked = {};
67
+ for (const name of LOGGED_RESPONSE_HEADERS) {
68
+ const value = headers.get(name);
69
+ if (value !== null)
70
+ picked[name] = value;
71
+ }
72
+ return picked;
73
+ }
74
+ async function readBodySnippet(response) {
75
+ try {
76
+ const text = await response.clone().text();
77
+ return text.length > MAX_LOGGED_BODY_CHARS ? `${text.slice(0, MAX_LOGGED_BODY_CHARS)}…` : text;
78
+ }
79
+ catch {
80
+ return undefined;
81
+ }
82
+ }
83
+ /**
84
+ * One structured line per failed provider call. `provider_responded` separates an upstream HTTP error
85
+ * from a connect, timeout or TLS failure on the gateway side, which the status code alone cannot.
86
+ */
87
+ export async function logProviderCallFailure(failure) {
88
+ const providerResponded = failure.providerStatusCode !== undefined && failure.gatewayFailureType === undefined;
89
+ logger.error('Provider call failed', {
90
+ provider: failure.provider,
91
+ provider_account: failure.providerAccount,
92
+ model: failure.model,
93
+ ...describeProviderUrl(failure.url),
94
+ status: failure.response.status,
95
+ provider_responded: providerResponded,
96
+ provider_status: providerResponded ? failure.providerStatusCode : undefined,
97
+ gateway_failure_type: failure.gatewayFailureType,
98
+ failure_cause: failure.gatewayFailureCause,
99
+ retry_attempts: failure.retryAttempts ?? 0,
100
+ latency_ms: failure.latencyMs,
101
+ streaming: failure.streaming,
102
+ ...(providerResponded
103
+ ? {
104
+ response_headers: pickLoggedResponseHeaders(failure.response.headers),
105
+ response_body: await readBodySnippet(failure.response),
106
+ }
107
+ : {}),
108
+ });
109
+ }
110
+ //# sourceMappingURL=providerFailureLogging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerFailureLogging.js","sourceRoot":"","sources":["../../src/utils/providerFailureLogging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { VertexApiVersion } from '../providers/google-vertex-ai/types.js';
2
+ /**
3
+ * Parses the optional `x-tfy-vertex-api-version` header. The value ends up in the upstream URL path, so anything
4
+ * outside the allow-list is a 400, never a silent downgrade. Doing it where the header is read means the rest
5
+ * of the SDK can rely on the strict type.
6
+ */
7
+ export declare const parseVertexApiVersion: (raw: string | undefined) => VertexApiVersion | undefined;
@@ -0,0 +1,16 @@
1
+ import { TFY_VERTEX_API_VERSION_HEADER, VERTEX_API_VERSIONS } from '../constants.js';
2
+ import { ValidationError } from '../errors.js';
3
+ /**
4
+ * Parses the optional `x-tfy-vertex-api-version` header. The value ends up in the upstream URL path, so anything
5
+ * outside the allow-list is a 400, never a silent downgrade. Doing it where the header is read means the rest
6
+ * of the SDK can rely on the strict type.
7
+ */
8
+ export const parseVertexApiVersion = (raw) => {
9
+ if (raw === undefined)
10
+ return undefined;
11
+ if (!VERTEX_API_VERSIONS.includes(raw)) {
12
+ throw new ValidationError(`Invalid ${TFY_VERTEX_API_VERSION_HEADER} ${JSON.stringify(raw)}: must be one of ${VERTEX_API_VERSIONS.join(', ')}`);
13
+ }
14
+ return raw;
15
+ };
16
+ //# sourceMappingURL=vertexApiVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertexApiVersion.js","sourceRoot":"","sources":["../../src/utils/vertexApiVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAuB,EAAgC,EAAE;IAC7F,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,eAAe,CACvB,WAAW,6BAA6B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpH,CAAC;IACJ,CAAC;IACD,OAAO,GAAuB,CAAC;AACjC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truefoundry/ai-gateway-sdk",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "LLM provider translation SDK",
5
5
  "author": "Truefoundry",
6
6
  "license": "UNLICENSED",