@oxyhq/contracts 0.26.0 → 0.28.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.
Files changed (52) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/accountGraph.js +4 -3
  3. package/dist/cjs/index.js +186 -1
  4. package/dist/cjs/inference/accountBilling.js +334 -0
  5. package/dist/cjs/inference/attribution.js +106 -0
  6. package/dist/cjs/inference/catalogue.js +482 -0
  7. package/dist/cjs/inference/entitlement.js +217 -0
  8. package/dist/cjs/inference/errors.js +210 -0
  9. package/dist/cjs/inference/identifiers.js +197 -0
  10. package/dist/cjs/inference/money.js +188 -0
  11. package/dist/cjs/inference/priceVersion.js +110 -0
  12. package/dist/cjs/inference/providerConnection.js +142 -0
  13. package/dist/cjs/inference/request.js +288 -0
  14. package/dist/cjs/inference/routingPolicy.js +213 -0
  15. package/dist/cjs/inference/streamEvents.js +219 -0
  16. package/dist/cjs/inference/usage.js +297 -0
  17. package/dist/cjs/inference/version.js +85 -0
  18. package/dist/esm/.tsbuildinfo +1 -1
  19. package/dist/esm/accountGraph.js +4 -3
  20. package/dist/esm/index.js +54 -0
  21. package/dist/esm/inference/accountBilling.js +331 -0
  22. package/dist/esm/inference/attribution.js +103 -0
  23. package/dist/esm/inference/catalogue.js +479 -0
  24. package/dist/esm/inference/entitlement.js +214 -0
  25. package/dist/esm/inference/errors.js +207 -0
  26. package/dist/esm/inference/identifiers.js +194 -0
  27. package/dist/esm/inference/money.js +185 -0
  28. package/dist/esm/inference/priceVersion.js +107 -0
  29. package/dist/esm/inference/providerConnection.js +139 -0
  30. package/dist/esm/inference/request.js +285 -0
  31. package/dist/esm/inference/routingPolicy.js +210 -0
  32. package/dist/esm/inference/streamEvents.js +216 -0
  33. package/dist/esm/inference/usage.js +294 -0
  34. package/dist/esm/inference/version.js +82 -0
  35. package/dist/types/.tsbuildinfo +1 -1
  36. package/dist/types/accountGraph.d.ts +6 -5
  37. package/dist/types/index.d.ts +27 -0
  38. package/dist/types/inference/accountBilling.d.ts +738 -0
  39. package/dist/types/inference/attribution.d.ts +176 -0
  40. package/dist/types/inference/catalogue.d.ts +1612 -0
  41. package/dist/types/inference/entitlement.d.ts +519 -0
  42. package/dist/types/inference/errors.d.ts +206 -0
  43. package/dist/types/inference/identifiers.d.ts +157 -0
  44. package/dist/types/inference/money.d.ts +185 -0
  45. package/dist/types/inference/priceVersion.d.ts +182 -0
  46. package/dist/types/inference/providerConnection.d.ts +297 -0
  47. package/dist/types/inference/request.d.ts +2364 -0
  48. package/dist/types/inference/routingPolicy.d.ts +426 -0
  49. package/dist/types/inference/streamEvents.d.ts +906 -0
  50. package/dist/types/inference/usage.d.ts +1139 -0
  51. package/dist/types/inference/version.d.ts +82 -0
  52. package/package.json +1 -1
@@ -0,0 +1,1612 @@
1
+ /**
2
+ * The canonical model catalogue.
3
+ *
4
+ * Six things are kept DISTINCT here, because collapsing any pair of them is how
5
+ * a catalogue starts lying to customers:
6
+ *
7
+ * 1. **Publisher** — who released the model (`openai`, `meta`, `alia`).
8
+ * 2. **Model** — a long-lived product identity, `<publisher>/<model>`. Its
9
+ * behaviour changes over time as revisions ship.
10
+ * 3. **Model revision** — an IMMUTABLE point in that history,
11
+ * `<publisher>/<model>@<revision>`. This is what an evaluation result, a
12
+ * model card and an artifact digest actually describe.
13
+ * 4. **Inference provider** — who runs the weights (a third party, Oxy's own
14
+ * hosting, or the customer's own account under BYOK).
15
+ * 5. **Deployment/endpoint** — one concrete servable route: a revision, on a
16
+ * provider, in a region, under a data policy, with a commercial permission.
17
+ * 6. **Routing profile** — a named strategy for CHOOSING among routes
18
+ * (`auto`, `fast`, `quality`). A profile is not a model; it has no weights,
19
+ * no revision and no license, and it is never written in the shape of a
20
+ * model id.
21
+ *
22
+ * `modelCatalogueEntrySchema` is the customer-safe projection Oxy serves from
23
+ * `GET /v1/models`: it repeats the customer-facing fields rather than embedding
24
+ * the operational descriptors, so internal deployment ids, upstream wholesale
25
+ * costs and route health can never reach it by accident of nesting.
26
+ *
27
+ * Decided in: docs/adr/0008-catalogue-concept-separation.md.
28
+ */
29
+ import { z } from 'zod';
30
+ /** The modalities a model can consume or produce. */
31
+ export declare const inferenceModalitySchema: z.ZodEnum<["text", "image", "audio", "video", "embedding"]>;
32
+ /**
33
+ * What a model can do, in the terms a caller has to decide against before
34
+ * sending a request: can it call tools, does it accept images, will it honour a
35
+ * JSON schema, how much context does it take, how much can it emit.
36
+ */
37
+ export declare const modelCapabilitiesSchema: z.ZodObject<{
38
+ inputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
39
+ outputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
40
+ tools: z.ZodBoolean;
41
+ parallelToolCalls: z.ZodBoolean;
42
+ structuredOutput: z.ZodBoolean;
43
+ jsonMode: z.ZodBoolean;
44
+ reasoning: z.ZodBoolean;
45
+ streaming: z.ZodBoolean;
46
+ promptCaching: z.ZodBoolean;
47
+ maxContextTokens: z.ZodNumber;
48
+ maxOutputTokens: z.ZodNumber;
49
+ }, "strict", z.ZodTypeAny, {
50
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
51
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
52
+ tools: boolean;
53
+ parallelToolCalls: boolean;
54
+ structuredOutput: boolean;
55
+ jsonMode: boolean;
56
+ reasoning: boolean;
57
+ streaming: boolean;
58
+ promptCaching: boolean;
59
+ maxContextTokens: number;
60
+ maxOutputTokens: number;
61
+ }, {
62
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
63
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
64
+ tools: boolean;
65
+ parallelToolCalls: boolean;
66
+ structuredOutput: boolean;
67
+ jsonMode: boolean;
68
+ reasoning: boolean;
69
+ streaming: boolean;
70
+ promptCaching: boolean;
71
+ maxContextTokens: number;
72
+ maxOutputTokens: number;
73
+ }>;
74
+ /**
75
+ * License terms, including the two questions that decide whether Oxy may serve
76
+ * a model to third parties at all: is commercial use permitted, and must the
77
+ * base model be attributed.
78
+ */
79
+ export declare const modelLicenseSchema: z.ZodObject<{
80
+ /** SPDX identifier where one exists, otherwise the publisher's own name. */
81
+ licenseId: z.ZodString;
82
+ displayName: z.ZodString;
83
+ url: z.ZodOptional<z.ZodString>;
84
+ commercialUseAllowed: z.ZodBoolean;
85
+ requiresAttribution: z.ZodBoolean;
86
+ acceptableUsePolicyUrl: z.ZodOptional<z.ZodString>;
87
+ }, "strict", z.ZodTypeAny, {
88
+ displayName: string;
89
+ licenseId: string;
90
+ commercialUseAllowed: boolean;
91
+ requiresAttribution: boolean;
92
+ url?: string | undefined;
93
+ acceptableUsePolicyUrl?: string | undefined;
94
+ }, {
95
+ displayName: string;
96
+ licenseId: string;
97
+ commercialUseAllowed: boolean;
98
+ requiresAttribution: boolean;
99
+ url?: string | undefined;
100
+ acceptableUsePolicyUrl?: string | undefined;
101
+ }>;
102
+ /**
103
+ * How a model came to exist.
104
+ *
105
+ * `releaseKind` is what stops `alia/*` from becoming a re-badging namespace:
106
+ * a first-party namespace may only carry models Alia actually trained or
107
+ * derived, never a third-party route wearing an Oxy name.
108
+ */
109
+ export declare const modelProvenanceSchema: z.ZodObject<{
110
+ releaseKind: z.ZodEnum<["first_party_original", "first_party_derived", "open_weight", "third_party_hosted"]>;
111
+ /** The model this one was derived/fine-tuned from, where there is one. */
112
+ baseModelId: z.ZodOptional<z.ZodString>;
113
+ trainingOrganization: z.ZodOptional<z.ZodString>;
114
+ }, "strict", z.ZodTypeAny, {
115
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
116
+ baseModelId?: string | undefined;
117
+ trainingOrganization?: string | undefined;
118
+ }, {
119
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
120
+ baseModelId?: string | undefined;
121
+ trainingOrganization?: string | undefined;
122
+ }>;
123
+ /**
124
+ * What happens to the customer's prompts and responses on a given route.
125
+ *
126
+ * Every field here is enforceable by a routing policy, which is the reason they
127
+ * are structured rather than a prose paragraph on a docs page.
128
+ */
129
+ export declare const inferenceDataPolicySchema: z.ZodEffects<z.ZodObject<{
130
+ retainsPayloads: z.ZodBoolean;
131
+ /** Zero when nothing is retained. */
132
+ retentionDays: z.ZodNumber;
133
+ trainsOnCustomerData: z.ZodBoolean;
134
+ zeroDataRetentionAvailable: z.ZodBoolean;
135
+ /** Named subprocessors a payload may pass through, for compliance review. */
136
+ subprocessors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
137
+ policyUrl: z.ZodOptional<z.ZodString>;
138
+ }, "strict", z.ZodTypeAny, {
139
+ retainsPayloads: boolean;
140
+ retentionDays: number;
141
+ trainsOnCustomerData: boolean;
142
+ zeroDataRetentionAvailable: boolean;
143
+ subprocessors: string[];
144
+ policyUrl?: string | undefined;
145
+ }, {
146
+ retainsPayloads: boolean;
147
+ retentionDays: number;
148
+ trainsOnCustomerData: boolean;
149
+ zeroDataRetentionAvailable: boolean;
150
+ subprocessors?: string[] | undefined;
151
+ policyUrl?: string | undefined;
152
+ }>, {
153
+ retainsPayloads: boolean;
154
+ retentionDays: number;
155
+ trainsOnCustomerData: boolean;
156
+ zeroDataRetentionAvailable: boolean;
157
+ subprocessors: string[];
158
+ policyUrl?: string | undefined;
159
+ }, {
160
+ retainsPayloads: boolean;
161
+ retentionDays: number;
162
+ trainsOnCustomerData: boolean;
163
+ zeroDataRetentionAvailable: boolean;
164
+ subprocessors?: string[] | undefined;
165
+ policyUrl?: string | undefined;
166
+ }>;
167
+ /**
168
+ * Who a route may be served to. Availability inside Alia never implies
169
+ * permission to resell the same provider/model publicly, which is why this is
170
+ * an explicit scope on the route rather than a boolean derived from "it works".
171
+ */
172
+ export declare const availabilityScopeSchema: z.ZodEnum<["internal_alia", "public_payg", "enterprise", "byok_only", "oxy_hosted"]>;
173
+ /** The commercial basis on which Oxy may serve a route. */
174
+ export declare const commercialPermissionSchema: z.ZodEnum<["standard_application_use", "public_resale_approved", "wholesale_contract", "customer_byok", "open_weight_hosting"]>;
175
+ /** Deprecation state, with the replacement a customer should migrate to. */
176
+ export declare const modelDeprecationSchema: z.ZodEffects<z.ZodObject<{
177
+ status: z.ZodEnum<["active", "deprecated", "retired"]>;
178
+ replacementModelReference: z.ZodOptional<z.ZodString>;
179
+ announcedAt: z.ZodOptional<z.ZodString>;
180
+ sunsetAt: z.ZodOptional<z.ZodString>;
181
+ }, "strict", z.ZodTypeAny, {
182
+ status: "active" | "deprecated" | "retired";
183
+ replacementModelReference?: string | undefined;
184
+ announcedAt?: string | undefined;
185
+ sunsetAt?: string | undefined;
186
+ }, {
187
+ status: "active" | "deprecated" | "retired";
188
+ replacementModelReference?: string | undefined;
189
+ announcedAt?: string | undefined;
190
+ sunsetAt?: string | undefined;
191
+ }>, {
192
+ status: "active" | "deprecated" | "retired";
193
+ replacementModelReference?: string | undefined;
194
+ announcedAt?: string | undefined;
195
+ sunsetAt?: string | undefined;
196
+ }, {
197
+ status: "active" | "deprecated" | "retired";
198
+ replacementModelReference?: string | undefined;
199
+ announcedAt?: string | undefined;
200
+ sunsetAt?: string | undefined;
201
+ }>;
202
+ /** One published evaluation result for a revision. */
203
+ export declare const modelEvaluationResultSchema: z.ZodObject<{
204
+ suite: z.ZodString;
205
+ metric: z.ZodString;
206
+ /** Kept as a string: an eval score is published text, not arithmetic. */
207
+ score: z.ZodString;
208
+ evaluatedAt: z.ZodOptional<z.ZodString>;
209
+ reportUrl: z.ZodOptional<z.ZodString>;
210
+ }, "strict", z.ZodTypeAny, {
211
+ score: string;
212
+ suite: string;
213
+ metric: string;
214
+ evaluatedAt?: string | undefined;
215
+ reportUrl?: string | undefined;
216
+ }, {
217
+ score: string;
218
+ suite: string;
219
+ metric: string;
220
+ evaluatedAt?: string | undefined;
221
+ reportUrl?: string | undefined;
222
+ }>;
223
+ /**
224
+ * Safety metadata a downstream developer needs, and the EU AI Act / GPAI
225
+ * documentation trail expects to find beside a served model.
226
+ */
227
+ export declare const modelSafetyMetadataSchema: z.ZodObject<{
228
+ safetyCardUrl: z.ZodOptional<z.ZodString>;
229
+ contentFilteringDefault: z.ZodEnum<["none", "provider_default", "strict"]>;
230
+ knownLimitations: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
231
+ /** Content-provenance marking the modality requires, where it requires one. */
232
+ provenanceMarking: z.ZodEnum<["none", "visible_watermark", "invisible_watermark", "c2pa"]>;
233
+ }, "strict", z.ZodTypeAny, {
234
+ contentFilteringDefault: "strict" | "none" | "provider_default";
235
+ knownLimitations: string[];
236
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
237
+ safetyCardUrl?: string | undefined;
238
+ }, {
239
+ contentFilteringDefault: "strict" | "none" | "provider_default";
240
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
241
+ safetyCardUrl?: string | undefined;
242
+ knownLimitations?: string[] | undefined;
243
+ }>;
244
+ /** Who released a model. Never a provider, and never a routing profile. */
245
+ export declare const modelPublisherSchema: z.ZodObject<{
246
+ /** See `version.ts`: served on its own by the catalogue, so it is versioned. */
247
+ schemaVersion: z.ZodLiteral<1>;
248
+ publisherId: z.ZodString;
249
+ slug: z.ZodString;
250
+ displayName: z.ZodString;
251
+ description: z.ZodOptional<z.ZodString>;
252
+ websiteUrl: z.ZodOptional<z.ZodString>;
253
+ }, "strip", z.ZodTypeAny, {
254
+ displayName: string;
255
+ schemaVersion: 1;
256
+ publisherId: string;
257
+ slug: string;
258
+ description?: string | undefined;
259
+ websiteUrl?: string | undefined;
260
+ }, {
261
+ displayName: string;
262
+ schemaVersion: 1;
263
+ publisherId: string;
264
+ slug: string;
265
+ description?: string | undefined;
266
+ websiteUrl?: string | undefined;
267
+ }>;
268
+ /**
269
+ * A model: the long-lived product identity `<publisher>/<model>`.
270
+ *
271
+ * Carries no provider, no region, no price and no availability — those belong
272
+ * to a DEPLOYMENT, because the same model is served on several routes whose
273
+ * answers to those questions differ.
274
+ */
275
+ export declare const catalogueModelSchema: z.ZodEffects<z.ZodObject<{
276
+ /** See `version.ts`: served on its own by the catalogue, so it is versioned. */
277
+ schemaVersion: z.ZodLiteral<1>;
278
+ modelId: z.ZodString;
279
+ publisher: z.ZodString;
280
+ slug: z.ZodString;
281
+ displayName: z.ZodString;
282
+ description: z.ZodOptional<z.ZodString>;
283
+ capabilities: z.ZodObject<{
284
+ inputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
285
+ outputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
286
+ tools: z.ZodBoolean;
287
+ parallelToolCalls: z.ZodBoolean;
288
+ structuredOutput: z.ZodBoolean;
289
+ jsonMode: z.ZodBoolean;
290
+ reasoning: z.ZodBoolean;
291
+ streaming: z.ZodBoolean;
292
+ promptCaching: z.ZodBoolean;
293
+ maxContextTokens: z.ZodNumber;
294
+ maxOutputTokens: z.ZodNumber;
295
+ }, "strict", z.ZodTypeAny, {
296
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
297
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
298
+ tools: boolean;
299
+ parallelToolCalls: boolean;
300
+ structuredOutput: boolean;
301
+ jsonMode: boolean;
302
+ reasoning: boolean;
303
+ streaming: boolean;
304
+ promptCaching: boolean;
305
+ maxContextTokens: number;
306
+ maxOutputTokens: number;
307
+ }, {
308
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
309
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
310
+ tools: boolean;
311
+ parallelToolCalls: boolean;
312
+ structuredOutput: boolean;
313
+ jsonMode: boolean;
314
+ reasoning: boolean;
315
+ streaming: boolean;
316
+ promptCaching: boolean;
317
+ maxContextTokens: number;
318
+ maxOutputTokens: number;
319
+ }>;
320
+ license: z.ZodObject<{
321
+ /** SPDX identifier where one exists, otherwise the publisher's own name. */
322
+ licenseId: z.ZodString;
323
+ displayName: z.ZodString;
324
+ url: z.ZodOptional<z.ZodString>;
325
+ commercialUseAllowed: z.ZodBoolean;
326
+ requiresAttribution: z.ZodBoolean;
327
+ acceptableUsePolicyUrl: z.ZodOptional<z.ZodString>;
328
+ }, "strict", z.ZodTypeAny, {
329
+ displayName: string;
330
+ licenseId: string;
331
+ commercialUseAllowed: boolean;
332
+ requiresAttribution: boolean;
333
+ url?: string | undefined;
334
+ acceptableUsePolicyUrl?: string | undefined;
335
+ }, {
336
+ displayName: string;
337
+ licenseId: string;
338
+ commercialUseAllowed: boolean;
339
+ requiresAttribution: boolean;
340
+ url?: string | undefined;
341
+ acceptableUsePolicyUrl?: string | undefined;
342
+ }>;
343
+ provenance: z.ZodObject<{
344
+ releaseKind: z.ZodEnum<["first_party_original", "first_party_derived", "open_weight", "third_party_hosted"]>;
345
+ /** The model this one was derived/fine-tuned from, where there is one. */
346
+ baseModelId: z.ZodOptional<z.ZodString>;
347
+ trainingOrganization: z.ZodOptional<z.ZodString>;
348
+ }, "strict", z.ZodTypeAny, {
349
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
350
+ baseModelId?: string | undefined;
351
+ trainingOrganization?: string | undefined;
352
+ }, {
353
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
354
+ baseModelId?: string | undefined;
355
+ trainingOrganization?: string | undefined;
356
+ }>;
357
+ knowledgeCutoff: z.ZodOptional<z.ZodString>;
358
+ releasedOn: z.ZodOptional<z.ZodString>;
359
+ /** The revision served when a caller names the model without pinning one. */
360
+ currentRevision: z.ZodString;
361
+ deprecation: z.ZodEffects<z.ZodObject<{
362
+ status: z.ZodEnum<["active", "deprecated", "retired"]>;
363
+ replacementModelReference: z.ZodOptional<z.ZodString>;
364
+ announcedAt: z.ZodOptional<z.ZodString>;
365
+ sunsetAt: z.ZodOptional<z.ZodString>;
366
+ }, "strict", z.ZodTypeAny, {
367
+ status: "active" | "deprecated" | "retired";
368
+ replacementModelReference?: string | undefined;
369
+ announcedAt?: string | undefined;
370
+ sunsetAt?: string | undefined;
371
+ }, {
372
+ status: "active" | "deprecated" | "retired";
373
+ replacementModelReference?: string | undefined;
374
+ announcedAt?: string | undefined;
375
+ sunsetAt?: string | undefined;
376
+ }>, {
377
+ status: "active" | "deprecated" | "retired";
378
+ replacementModelReference?: string | undefined;
379
+ announcedAt?: string | undefined;
380
+ sunsetAt?: string | undefined;
381
+ }, {
382
+ status: "active" | "deprecated" | "retired";
383
+ replacementModelReference?: string | undefined;
384
+ announcedAt?: string | undefined;
385
+ sunsetAt?: string | undefined;
386
+ }>;
387
+ }, "strip", z.ZodTypeAny, {
388
+ displayName: string;
389
+ schemaVersion: 1;
390
+ slug: string;
391
+ modelId: string;
392
+ publisher: string;
393
+ capabilities: {
394
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
395
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
396
+ tools: boolean;
397
+ parallelToolCalls: boolean;
398
+ structuredOutput: boolean;
399
+ jsonMode: boolean;
400
+ reasoning: boolean;
401
+ streaming: boolean;
402
+ promptCaching: boolean;
403
+ maxContextTokens: number;
404
+ maxOutputTokens: number;
405
+ };
406
+ license: {
407
+ displayName: string;
408
+ licenseId: string;
409
+ commercialUseAllowed: boolean;
410
+ requiresAttribution: boolean;
411
+ url?: string | undefined;
412
+ acceptableUsePolicyUrl?: string | undefined;
413
+ };
414
+ provenance: {
415
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
416
+ baseModelId?: string | undefined;
417
+ trainingOrganization?: string | undefined;
418
+ };
419
+ currentRevision: string;
420
+ deprecation: {
421
+ status: "active" | "deprecated" | "retired";
422
+ replacementModelReference?: string | undefined;
423
+ announcedAt?: string | undefined;
424
+ sunsetAt?: string | undefined;
425
+ };
426
+ description?: string | undefined;
427
+ knowledgeCutoff?: string | undefined;
428
+ releasedOn?: string | undefined;
429
+ }, {
430
+ displayName: string;
431
+ schemaVersion: 1;
432
+ slug: string;
433
+ modelId: string;
434
+ publisher: string;
435
+ capabilities: {
436
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
437
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
438
+ tools: boolean;
439
+ parallelToolCalls: boolean;
440
+ structuredOutput: boolean;
441
+ jsonMode: boolean;
442
+ reasoning: boolean;
443
+ streaming: boolean;
444
+ promptCaching: boolean;
445
+ maxContextTokens: number;
446
+ maxOutputTokens: number;
447
+ };
448
+ license: {
449
+ displayName: string;
450
+ licenseId: string;
451
+ commercialUseAllowed: boolean;
452
+ requiresAttribution: boolean;
453
+ url?: string | undefined;
454
+ acceptableUsePolicyUrl?: string | undefined;
455
+ };
456
+ provenance: {
457
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
458
+ baseModelId?: string | undefined;
459
+ trainingOrganization?: string | undefined;
460
+ };
461
+ currentRevision: string;
462
+ deprecation: {
463
+ status: "active" | "deprecated" | "retired";
464
+ replacementModelReference?: string | undefined;
465
+ announcedAt?: string | undefined;
466
+ sunsetAt?: string | undefined;
467
+ };
468
+ description?: string | undefined;
469
+ knowledgeCutoff?: string | undefined;
470
+ releasedOn?: string | undefined;
471
+ }>, {
472
+ displayName: string;
473
+ schemaVersion: 1;
474
+ slug: string;
475
+ modelId: string;
476
+ publisher: string;
477
+ capabilities: {
478
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
479
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
480
+ tools: boolean;
481
+ parallelToolCalls: boolean;
482
+ structuredOutput: boolean;
483
+ jsonMode: boolean;
484
+ reasoning: boolean;
485
+ streaming: boolean;
486
+ promptCaching: boolean;
487
+ maxContextTokens: number;
488
+ maxOutputTokens: number;
489
+ };
490
+ license: {
491
+ displayName: string;
492
+ licenseId: string;
493
+ commercialUseAllowed: boolean;
494
+ requiresAttribution: boolean;
495
+ url?: string | undefined;
496
+ acceptableUsePolicyUrl?: string | undefined;
497
+ };
498
+ provenance: {
499
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
500
+ baseModelId?: string | undefined;
501
+ trainingOrganization?: string | undefined;
502
+ };
503
+ currentRevision: string;
504
+ deprecation: {
505
+ status: "active" | "deprecated" | "retired";
506
+ replacementModelReference?: string | undefined;
507
+ announcedAt?: string | undefined;
508
+ sunsetAt?: string | undefined;
509
+ };
510
+ description?: string | undefined;
511
+ knowledgeCutoff?: string | undefined;
512
+ releasedOn?: string | undefined;
513
+ }, {
514
+ displayName: string;
515
+ schemaVersion: 1;
516
+ slug: string;
517
+ modelId: string;
518
+ publisher: string;
519
+ capabilities: {
520
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
521
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
522
+ tools: boolean;
523
+ parallelToolCalls: boolean;
524
+ structuredOutput: boolean;
525
+ jsonMode: boolean;
526
+ reasoning: boolean;
527
+ streaming: boolean;
528
+ promptCaching: boolean;
529
+ maxContextTokens: number;
530
+ maxOutputTokens: number;
531
+ };
532
+ license: {
533
+ displayName: string;
534
+ licenseId: string;
535
+ commercialUseAllowed: boolean;
536
+ requiresAttribution: boolean;
537
+ url?: string | undefined;
538
+ acceptableUsePolicyUrl?: string | undefined;
539
+ };
540
+ provenance: {
541
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
542
+ baseModelId?: string | undefined;
543
+ trainingOrganization?: string | undefined;
544
+ };
545
+ currentRevision: string;
546
+ deprecation: {
547
+ status: "active" | "deprecated" | "retired";
548
+ replacementModelReference?: string | undefined;
549
+ announcedAt?: string | undefined;
550
+ sunsetAt?: string | undefined;
551
+ };
552
+ description?: string | undefined;
553
+ knowledgeCutoff?: string | undefined;
554
+ releasedOn?: string | undefined;
555
+ }>;
556
+ /**
557
+ * An immutable revision of a model.
558
+ *
559
+ * `reference` is the exact string a customer pins (`<publisher>/<model>@<revision>`)
560
+ * and is checked against its parts, so a record cannot claim a reference that
561
+ * resolves elsewhere. Evaluation and safety metadata hang here rather than on
562
+ * the model, because they describe specific weights.
563
+ */
564
+ export declare const modelRevisionSchema: z.ZodEffects<z.ZodObject<{
565
+ /** See `version.ts`: served on its own by the catalogue, so it is versioned. */
566
+ schemaVersion: z.ZodLiteral<1>;
567
+ revisionId: z.ZodString;
568
+ modelId: z.ZodString;
569
+ revision: z.ZodString;
570
+ reference: z.ZodString;
571
+ releasedAt: z.ZodString;
572
+ retiredAt: z.ZodOptional<z.ZodString>;
573
+ /** Digest of the served artifact, where Oxy hosts the weights itself. */
574
+ artifactDigest: z.ZodOptional<z.ZodString>;
575
+ modelCardUrl: z.ZodOptional<z.ZodString>;
576
+ evaluations: z.ZodDefault<z.ZodArray<z.ZodObject<{
577
+ suite: z.ZodString;
578
+ metric: z.ZodString;
579
+ /** Kept as a string: an eval score is published text, not arithmetic. */
580
+ score: z.ZodString;
581
+ evaluatedAt: z.ZodOptional<z.ZodString>;
582
+ reportUrl: z.ZodOptional<z.ZodString>;
583
+ }, "strict", z.ZodTypeAny, {
584
+ score: string;
585
+ suite: string;
586
+ metric: string;
587
+ evaluatedAt?: string | undefined;
588
+ reportUrl?: string | undefined;
589
+ }, {
590
+ score: string;
591
+ suite: string;
592
+ metric: string;
593
+ evaluatedAt?: string | undefined;
594
+ reportUrl?: string | undefined;
595
+ }>, "many">>;
596
+ safety: z.ZodOptional<z.ZodObject<{
597
+ safetyCardUrl: z.ZodOptional<z.ZodString>;
598
+ contentFilteringDefault: z.ZodEnum<["none", "provider_default", "strict"]>;
599
+ knownLimitations: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
600
+ /** Content-provenance marking the modality requires, where it requires one. */
601
+ provenanceMarking: z.ZodEnum<["none", "visible_watermark", "invisible_watermark", "c2pa"]>;
602
+ }, "strict", z.ZodTypeAny, {
603
+ contentFilteringDefault: "strict" | "none" | "provider_default";
604
+ knownLimitations: string[];
605
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
606
+ safetyCardUrl?: string | undefined;
607
+ }, {
608
+ contentFilteringDefault: "strict" | "none" | "provider_default";
609
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
610
+ safetyCardUrl?: string | undefined;
611
+ knownLimitations?: string[] | undefined;
612
+ }>>;
613
+ }, "strip", z.ZodTypeAny, {
614
+ revision: string;
615
+ schemaVersion: 1;
616
+ modelId: string;
617
+ revisionId: string;
618
+ reference: string;
619
+ releasedAt: string;
620
+ evaluations: {
621
+ score: string;
622
+ suite: string;
623
+ metric: string;
624
+ evaluatedAt?: string | undefined;
625
+ reportUrl?: string | undefined;
626
+ }[];
627
+ retiredAt?: string | undefined;
628
+ artifactDigest?: string | undefined;
629
+ modelCardUrl?: string | undefined;
630
+ safety?: {
631
+ contentFilteringDefault: "strict" | "none" | "provider_default";
632
+ knownLimitations: string[];
633
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
634
+ safetyCardUrl?: string | undefined;
635
+ } | undefined;
636
+ }, {
637
+ revision: string;
638
+ schemaVersion: 1;
639
+ modelId: string;
640
+ revisionId: string;
641
+ reference: string;
642
+ releasedAt: string;
643
+ retiredAt?: string | undefined;
644
+ artifactDigest?: string | undefined;
645
+ modelCardUrl?: string | undefined;
646
+ evaluations?: {
647
+ score: string;
648
+ suite: string;
649
+ metric: string;
650
+ evaluatedAt?: string | undefined;
651
+ reportUrl?: string | undefined;
652
+ }[] | undefined;
653
+ safety?: {
654
+ contentFilteringDefault: "strict" | "none" | "provider_default";
655
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
656
+ safetyCardUrl?: string | undefined;
657
+ knownLimitations?: string[] | undefined;
658
+ } | undefined;
659
+ }>, {
660
+ revision: string;
661
+ schemaVersion: 1;
662
+ modelId: string;
663
+ revisionId: string;
664
+ reference: string;
665
+ releasedAt: string;
666
+ evaluations: {
667
+ score: string;
668
+ suite: string;
669
+ metric: string;
670
+ evaluatedAt?: string | undefined;
671
+ reportUrl?: string | undefined;
672
+ }[];
673
+ retiredAt?: string | undefined;
674
+ artifactDigest?: string | undefined;
675
+ modelCardUrl?: string | undefined;
676
+ safety?: {
677
+ contentFilteringDefault: "strict" | "none" | "provider_default";
678
+ knownLimitations: string[];
679
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
680
+ safetyCardUrl?: string | undefined;
681
+ } | undefined;
682
+ }, {
683
+ revision: string;
684
+ schemaVersion: 1;
685
+ modelId: string;
686
+ revisionId: string;
687
+ reference: string;
688
+ releasedAt: string;
689
+ retiredAt?: string | undefined;
690
+ artifactDigest?: string | undefined;
691
+ modelCardUrl?: string | undefined;
692
+ evaluations?: {
693
+ score: string;
694
+ suite: string;
695
+ metric: string;
696
+ evaluatedAt?: string | undefined;
697
+ reportUrl?: string | undefined;
698
+ }[] | undefined;
699
+ safety?: {
700
+ contentFilteringDefault: "strict" | "none" | "provider_default";
701
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
702
+ safetyCardUrl?: string | undefined;
703
+ knownLimitations?: string[] | undefined;
704
+ } | undefined;
705
+ }>;
706
+ /** Who runs the weights for a route. */
707
+ export declare const inferenceProviderSchema: z.ZodObject<{
708
+ /** See `version.ts`: served on its own by the catalogue, so it is versioned. */
709
+ schemaVersion: z.ZodLiteral<1>;
710
+ providerId: z.ZodString;
711
+ slug: z.ZodString;
712
+ displayName: z.ZodString;
713
+ /**
714
+ * `customer_byok` means the customer's own upstream account is billed
715
+ * directly by the provider and Oxy charges only its platform fee.
716
+ */
717
+ kind: z.ZodEnum<["third_party", "oxy_hosted", "customer_byok"]>;
718
+ websiteUrl: z.ZodOptional<z.ZodString>;
719
+ statusPageUrl: z.ZodOptional<z.ZodString>;
720
+ regions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
721
+ dataPolicy: z.ZodEffects<z.ZodObject<{
722
+ retainsPayloads: z.ZodBoolean;
723
+ /** Zero when nothing is retained. */
724
+ retentionDays: z.ZodNumber;
725
+ trainsOnCustomerData: z.ZodBoolean;
726
+ zeroDataRetentionAvailable: z.ZodBoolean;
727
+ /** Named subprocessors a payload may pass through, for compliance review. */
728
+ subprocessors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
729
+ policyUrl: z.ZodOptional<z.ZodString>;
730
+ }, "strict", z.ZodTypeAny, {
731
+ retainsPayloads: boolean;
732
+ retentionDays: number;
733
+ trainsOnCustomerData: boolean;
734
+ zeroDataRetentionAvailable: boolean;
735
+ subprocessors: string[];
736
+ policyUrl?: string | undefined;
737
+ }, {
738
+ retainsPayloads: boolean;
739
+ retentionDays: number;
740
+ trainsOnCustomerData: boolean;
741
+ zeroDataRetentionAvailable: boolean;
742
+ subprocessors?: string[] | undefined;
743
+ policyUrl?: string | undefined;
744
+ }>, {
745
+ retainsPayloads: boolean;
746
+ retentionDays: number;
747
+ trainsOnCustomerData: boolean;
748
+ zeroDataRetentionAvailable: boolean;
749
+ subprocessors: string[];
750
+ policyUrl?: string | undefined;
751
+ }, {
752
+ retainsPayloads: boolean;
753
+ retentionDays: number;
754
+ trainsOnCustomerData: boolean;
755
+ zeroDataRetentionAvailable: boolean;
756
+ subprocessors?: string[] | undefined;
757
+ policyUrl?: string | undefined;
758
+ }>;
759
+ }, "strip", z.ZodTypeAny, {
760
+ displayName: string;
761
+ kind: "third_party" | "oxy_hosted" | "customer_byok";
762
+ schemaVersion: 1;
763
+ slug: string;
764
+ providerId: string;
765
+ regions: string[];
766
+ dataPolicy: {
767
+ retainsPayloads: boolean;
768
+ retentionDays: number;
769
+ trainsOnCustomerData: boolean;
770
+ zeroDataRetentionAvailable: boolean;
771
+ subprocessors: string[];
772
+ policyUrl?: string | undefined;
773
+ };
774
+ websiteUrl?: string | undefined;
775
+ statusPageUrl?: string | undefined;
776
+ }, {
777
+ displayName: string;
778
+ kind: "third_party" | "oxy_hosted" | "customer_byok";
779
+ schemaVersion: 1;
780
+ slug: string;
781
+ providerId: string;
782
+ dataPolicy: {
783
+ retainsPayloads: boolean;
784
+ retentionDays: number;
785
+ trainsOnCustomerData: boolean;
786
+ zeroDataRetentionAvailable: boolean;
787
+ subprocessors?: string[] | undefined;
788
+ policyUrl?: string | undefined;
789
+ };
790
+ websiteUrl?: string | undefined;
791
+ statusPageUrl?: string | undefined;
792
+ regions?: string[] | undefined;
793
+ }>;
794
+ /**
795
+ * One concrete servable route: a revision, on a provider, in some regions,
796
+ * under a data policy, with an availability scope and a commercial permission.
797
+ *
798
+ * This is the object a routing policy filters and a route switch names — never
799
+ * a model. Two deployments of the SAME revision are what same-model failover
800
+ * moves between; moving to a deployment of a different revision or model is a
801
+ * cross-model fallback and needs explicit authorization.
802
+ */
803
+ export declare const modelDeploymentSchema: z.ZodEffects<z.ZodObject<{
804
+ /** See `version.ts`: exchanged with the data plane on its own. */
805
+ schemaVersion: z.ZodLiteral<1>;
806
+ deploymentId: z.ZodString;
807
+ provider: z.ZodString;
808
+ /** Always revision-pinned: a deployment serves specific weights. */
809
+ modelReference: z.ZodString;
810
+ regions: z.ZodArray<z.ZodString, "many">;
811
+ dataPolicy: z.ZodEffects<z.ZodObject<{
812
+ retainsPayloads: z.ZodBoolean;
813
+ /** Zero when nothing is retained. */
814
+ retentionDays: z.ZodNumber;
815
+ trainsOnCustomerData: z.ZodBoolean;
816
+ zeroDataRetentionAvailable: z.ZodBoolean;
817
+ /** Named subprocessors a payload may pass through, for compliance review. */
818
+ subprocessors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
819
+ policyUrl: z.ZodOptional<z.ZodString>;
820
+ }, "strict", z.ZodTypeAny, {
821
+ retainsPayloads: boolean;
822
+ retentionDays: number;
823
+ trainsOnCustomerData: boolean;
824
+ zeroDataRetentionAvailable: boolean;
825
+ subprocessors: string[];
826
+ policyUrl?: string | undefined;
827
+ }, {
828
+ retainsPayloads: boolean;
829
+ retentionDays: number;
830
+ trainsOnCustomerData: boolean;
831
+ zeroDataRetentionAvailable: boolean;
832
+ subprocessors?: string[] | undefined;
833
+ policyUrl?: string | undefined;
834
+ }>, {
835
+ retainsPayloads: boolean;
836
+ retentionDays: number;
837
+ trainsOnCustomerData: boolean;
838
+ zeroDataRetentionAvailable: boolean;
839
+ subprocessors: string[];
840
+ policyUrl?: string | undefined;
841
+ }, {
842
+ retainsPayloads: boolean;
843
+ retentionDays: number;
844
+ trainsOnCustomerData: boolean;
845
+ zeroDataRetentionAvailable: boolean;
846
+ subprocessors?: string[] | undefined;
847
+ policyUrl?: string | undefined;
848
+ }>;
849
+ availabilityScope: z.ZodEnum<["internal_alia", "public_payg", "enterprise", "byok_only", "oxy_hosted"]>;
850
+ commercialPermission: z.ZodEnum<["standard_application_use", "public_resale_approved", "wholesale_contract", "customer_byok", "open_weight_hosting"]>;
851
+ status: z.ZodEnum<["active", "degraded", "disabled", "retired"]>;
852
+ /** Reserved capacity for one enterprise account rather than shared. */
853
+ dedicatedCapacity: z.ZodBoolean;
854
+ /** The price version customers are charged under on this route. */
855
+ priceVersionId: z.ZodOptional<z.ZodString>;
856
+ }, "strip", z.ZodTypeAny, {
857
+ status: "active" | "disabled" | "retired" | "degraded";
858
+ provider: string;
859
+ schemaVersion: 1;
860
+ modelReference: string;
861
+ regions: string[];
862
+ dataPolicy: {
863
+ retainsPayloads: boolean;
864
+ retentionDays: number;
865
+ trainsOnCustomerData: boolean;
866
+ zeroDataRetentionAvailable: boolean;
867
+ subprocessors: string[];
868
+ policyUrl?: string | undefined;
869
+ };
870
+ deploymentId: string;
871
+ availabilityScope: "internal_alia" | "public_payg" | "enterprise" | "byok_only" | "oxy_hosted";
872
+ commercialPermission: "standard_application_use" | "public_resale_approved" | "wholesale_contract" | "customer_byok" | "open_weight_hosting";
873
+ dedicatedCapacity: boolean;
874
+ priceVersionId?: string | undefined;
875
+ }, {
876
+ status: "active" | "disabled" | "retired" | "degraded";
877
+ provider: string;
878
+ schemaVersion: 1;
879
+ modelReference: string;
880
+ regions: string[];
881
+ dataPolicy: {
882
+ retainsPayloads: boolean;
883
+ retentionDays: number;
884
+ trainsOnCustomerData: boolean;
885
+ zeroDataRetentionAvailable: boolean;
886
+ subprocessors?: string[] | undefined;
887
+ policyUrl?: string | undefined;
888
+ };
889
+ deploymentId: string;
890
+ availabilityScope: "internal_alia" | "public_payg" | "enterprise" | "byok_only" | "oxy_hosted";
891
+ commercialPermission: "standard_application_use" | "public_resale_approved" | "wholesale_contract" | "customer_byok" | "open_weight_hosting";
892
+ dedicatedCapacity: boolean;
893
+ priceVersionId?: string | undefined;
894
+ }>, {
895
+ status: "active" | "disabled" | "retired" | "degraded";
896
+ provider: string;
897
+ schemaVersion: 1;
898
+ modelReference: string;
899
+ regions: string[];
900
+ dataPolicy: {
901
+ retainsPayloads: boolean;
902
+ retentionDays: number;
903
+ trainsOnCustomerData: boolean;
904
+ zeroDataRetentionAvailable: boolean;
905
+ subprocessors: string[];
906
+ policyUrl?: string | undefined;
907
+ };
908
+ deploymentId: string;
909
+ availabilityScope: "internal_alia" | "public_payg" | "enterprise" | "byok_only" | "oxy_hosted";
910
+ commercialPermission: "standard_application_use" | "public_resale_approved" | "wholesale_contract" | "customer_byok" | "open_weight_hosting";
911
+ dedicatedCapacity: boolean;
912
+ priceVersionId?: string | undefined;
913
+ }, {
914
+ status: "active" | "disabled" | "retired" | "degraded";
915
+ provider: string;
916
+ schemaVersion: 1;
917
+ modelReference: string;
918
+ regions: string[];
919
+ dataPolicy: {
920
+ retainsPayloads: boolean;
921
+ retentionDays: number;
922
+ trainsOnCustomerData: boolean;
923
+ zeroDataRetentionAvailable: boolean;
924
+ subprocessors?: string[] | undefined;
925
+ policyUrl?: string | undefined;
926
+ };
927
+ deploymentId: string;
928
+ availabilityScope: "internal_alia" | "public_payg" | "enterprise" | "byok_only" | "oxy_hosted";
929
+ commercialPermission: "standard_application_use" | "public_resale_approved" | "wholesale_contract" | "customer_byok" | "open_weight_hosting";
930
+ dedicatedCapacity: boolean;
931
+ priceVersionId?: string | undefined;
932
+ }>;
933
+ /** One candidate a profile may resolve to, and how strongly it is preferred. */
934
+ export declare const routingProfileCandidateSchema: z.ZodObject<{
935
+ modelReference: z.ZodString;
936
+ /** Lower sorts first. Ties are broken by the profile's optimisation target. */
937
+ priority: z.ZodNumber;
938
+ }, "strict", z.ZodTypeAny, {
939
+ modelReference: string;
940
+ priority: number;
941
+ }, {
942
+ modelReference: string;
943
+ priority: number;
944
+ }>;
945
+ /**
946
+ * A named strategy for choosing among routes — `auto`, `fast`, `quality`.
947
+ *
948
+ * Not a model: it has no publisher, no revision, no license and no weights, and
949
+ * its slug cannot be written as `<publisher>/<model>`. A request that names a
950
+ * profile is asking Oxy to choose; a request that names a model is not, which is
951
+ * the distinction the "never silently substituted" invariant rests on.
952
+ */
953
+ export declare const routingProfileSchema: z.ZodObject<{
954
+ /** See `version.ts`: served on its own by the catalogue, so it is versioned. */
955
+ schemaVersion: z.ZodLiteral<1>;
956
+ routingProfileId: z.ZodString;
957
+ slug: z.ZodString;
958
+ displayName: z.ZodString;
959
+ description: z.ZodOptional<z.ZodString>;
960
+ /** What the profile optimises for when several candidates qualify. */
961
+ optimiseFor: z.ZodEnum<["price", "latency", "throughput", "quality", "balanced"]>;
962
+ candidates: z.ZodArray<z.ZodObject<{
963
+ modelReference: z.ZodString;
964
+ /** Lower sorts first. Ties are broken by the profile's optimisation target. */
965
+ priority: z.ZodNumber;
966
+ }, "strict", z.ZodTypeAny, {
967
+ modelReference: string;
968
+ priority: number;
969
+ }, {
970
+ modelReference: string;
971
+ priority: number;
972
+ }>, "many">;
973
+ /** A product preset (Alia's "fast" toggle) rather than a customer's own profile. */
974
+ isProductPreset: z.ZodBoolean;
975
+ }, "strip", z.ZodTypeAny, {
976
+ displayName: string;
977
+ schemaVersion: 1;
978
+ slug: string;
979
+ routingProfileId: string;
980
+ optimiseFor: "price" | "latency" | "throughput" | "quality" | "balanced";
981
+ candidates: {
982
+ modelReference: string;
983
+ priority: number;
984
+ }[];
985
+ isProductPreset: boolean;
986
+ description?: string | undefined;
987
+ }, {
988
+ displayName: string;
989
+ schemaVersion: 1;
990
+ slug: string;
991
+ routingProfileId: string;
992
+ optimiseFor: "price" | "latency" | "throughput" | "quality" | "balanced";
993
+ candidates: {
994
+ modelReference: string;
995
+ priority: number;
996
+ }[];
997
+ isProductPreset: boolean;
998
+ description?: string | undefined;
999
+ }>;
1000
+ /** The publisher fields a customer sees beside a model. */
1001
+ export declare const cataloguePublisherSummarySchema: z.ZodObject<{
1002
+ slug: z.ZodString;
1003
+ displayName: z.ZodString;
1004
+ websiteUrl: z.ZodOptional<z.ZodString>;
1005
+ }, "strict", z.ZodTypeAny, {
1006
+ displayName: string;
1007
+ slug: string;
1008
+ websiteUrl?: string | undefined;
1009
+ }, {
1010
+ displayName: string;
1011
+ slug: string;
1012
+ websiteUrl?: string | undefined;
1013
+ }>;
1014
+ /**
1015
+ * A serving provider as a customer may see it: who ran the request and where.
1016
+ *
1017
+ * Deliberately has no deployment id, no route id, no health score and no
1018
+ * upstream cost — the customer-safe half of the serving boundary, so that
1019
+ * exposing attribution can never leak operational topology.
1020
+ */
1021
+ export declare const catalogueServingProviderSummarySchema: z.ZodObject<{
1022
+ slug: z.ZodString;
1023
+ displayName: z.ZodString;
1024
+ regions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1025
+ dataPolicy: z.ZodEffects<z.ZodObject<{
1026
+ retainsPayloads: z.ZodBoolean;
1027
+ /** Zero when nothing is retained. */
1028
+ retentionDays: z.ZodNumber;
1029
+ trainsOnCustomerData: z.ZodBoolean;
1030
+ zeroDataRetentionAvailable: z.ZodBoolean;
1031
+ /** Named subprocessors a payload may pass through, for compliance review. */
1032
+ subprocessors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1033
+ policyUrl: z.ZodOptional<z.ZodString>;
1034
+ }, "strict", z.ZodTypeAny, {
1035
+ retainsPayloads: boolean;
1036
+ retentionDays: number;
1037
+ trainsOnCustomerData: boolean;
1038
+ zeroDataRetentionAvailable: boolean;
1039
+ subprocessors: string[];
1040
+ policyUrl?: string | undefined;
1041
+ }, {
1042
+ retainsPayloads: boolean;
1043
+ retentionDays: number;
1044
+ trainsOnCustomerData: boolean;
1045
+ zeroDataRetentionAvailable: boolean;
1046
+ subprocessors?: string[] | undefined;
1047
+ policyUrl?: string | undefined;
1048
+ }>, {
1049
+ retainsPayloads: boolean;
1050
+ retentionDays: number;
1051
+ trainsOnCustomerData: boolean;
1052
+ zeroDataRetentionAvailable: boolean;
1053
+ subprocessors: string[];
1054
+ policyUrl?: string | undefined;
1055
+ }, {
1056
+ retainsPayloads: boolean;
1057
+ retentionDays: number;
1058
+ trainsOnCustomerData: boolean;
1059
+ zeroDataRetentionAvailable: boolean;
1060
+ subprocessors?: string[] | undefined;
1061
+ policyUrl?: string | undefined;
1062
+ }>;
1063
+ }, "strict", z.ZodTypeAny, {
1064
+ displayName: string;
1065
+ slug: string;
1066
+ regions: string[];
1067
+ dataPolicy: {
1068
+ retainsPayloads: boolean;
1069
+ retentionDays: number;
1070
+ trainsOnCustomerData: boolean;
1071
+ zeroDataRetentionAvailable: boolean;
1072
+ subprocessors: string[];
1073
+ policyUrl?: string | undefined;
1074
+ };
1075
+ }, {
1076
+ displayName: string;
1077
+ slug: string;
1078
+ dataPolicy: {
1079
+ retainsPayloads: boolean;
1080
+ retentionDays: number;
1081
+ trainsOnCustomerData: boolean;
1082
+ zeroDataRetentionAvailable: boolean;
1083
+ subprocessors?: string[] | undefined;
1084
+ policyUrl?: string | undefined;
1085
+ };
1086
+ regions?: string[] | undefined;
1087
+ }>;
1088
+ /**
1089
+ * One entry of the customer-facing catalogue (`GET /v1/models`).
1090
+ *
1091
+ * A projection, not a container: it repeats the customer-facing fields instead
1092
+ * of embedding the operational descriptors, so no internal identifier can reach
1093
+ * a customer by being nested one level deeper than anybody looked.
1094
+ */
1095
+ export declare const modelCatalogueEntrySchema: z.ZodObject<{
1096
+ /** See `version.ts`: this is the public catalogue response shape. */
1097
+ schemaVersion: z.ZodLiteral<1>;
1098
+ modelId: z.ZodString;
1099
+ publisher: z.ZodObject<{
1100
+ slug: z.ZodString;
1101
+ displayName: z.ZodString;
1102
+ websiteUrl: z.ZodOptional<z.ZodString>;
1103
+ }, "strict", z.ZodTypeAny, {
1104
+ displayName: string;
1105
+ slug: string;
1106
+ websiteUrl?: string | undefined;
1107
+ }, {
1108
+ displayName: string;
1109
+ slug: string;
1110
+ websiteUrl?: string | undefined;
1111
+ }>;
1112
+ displayName: z.ZodString;
1113
+ description: z.ZodOptional<z.ZodString>;
1114
+ currentRevision: z.ZodString;
1115
+ /** Revisions a customer may pin today, newest first. */
1116
+ availableRevisions: z.ZodArray<z.ZodString, "many">;
1117
+ capabilities: z.ZodObject<{
1118
+ inputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
1119
+ outputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
1120
+ tools: z.ZodBoolean;
1121
+ parallelToolCalls: z.ZodBoolean;
1122
+ structuredOutput: z.ZodBoolean;
1123
+ jsonMode: z.ZodBoolean;
1124
+ reasoning: z.ZodBoolean;
1125
+ streaming: z.ZodBoolean;
1126
+ promptCaching: z.ZodBoolean;
1127
+ maxContextTokens: z.ZodNumber;
1128
+ maxOutputTokens: z.ZodNumber;
1129
+ }, "strict", z.ZodTypeAny, {
1130
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1131
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1132
+ tools: boolean;
1133
+ parallelToolCalls: boolean;
1134
+ structuredOutput: boolean;
1135
+ jsonMode: boolean;
1136
+ reasoning: boolean;
1137
+ streaming: boolean;
1138
+ promptCaching: boolean;
1139
+ maxContextTokens: number;
1140
+ maxOutputTokens: number;
1141
+ }, {
1142
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1143
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1144
+ tools: boolean;
1145
+ parallelToolCalls: boolean;
1146
+ structuredOutput: boolean;
1147
+ jsonMode: boolean;
1148
+ reasoning: boolean;
1149
+ streaming: boolean;
1150
+ promptCaching: boolean;
1151
+ maxContextTokens: number;
1152
+ maxOutputTokens: number;
1153
+ }>;
1154
+ license: z.ZodObject<{
1155
+ /** SPDX identifier where one exists, otherwise the publisher's own name. */
1156
+ licenseId: z.ZodString;
1157
+ displayName: z.ZodString;
1158
+ url: z.ZodOptional<z.ZodString>;
1159
+ commercialUseAllowed: z.ZodBoolean;
1160
+ requiresAttribution: z.ZodBoolean;
1161
+ acceptableUsePolicyUrl: z.ZodOptional<z.ZodString>;
1162
+ }, "strict", z.ZodTypeAny, {
1163
+ displayName: string;
1164
+ licenseId: string;
1165
+ commercialUseAllowed: boolean;
1166
+ requiresAttribution: boolean;
1167
+ url?: string | undefined;
1168
+ acceptableUsePolicyUrl?: string | undefined;
1169
+ }, {
1170
+ displayName: string;
1171
+ licenseId: string;
1172
+ commercialUseAllowed: boolean;
1173
+ requiresAttribution: boolean;
1174
+ url?: string | undefined;
1175
+ acceptableUsePolicyUrl?: string | undefined;
1176
+ }>;
1177
+ provenance: z.ZodObject<{
1178
+ releaseKind: z.ZodEnum<["first_party_original", "first_party_derived", "open_weight", "third_party_hosted"]>;
1179
+ /** The model this one was derived/fine-tuned from, where there is one. */
1180
+ baseModelId: z.ZodOptional<z.ZodString>;
1181
+ trainingOrganization: z.ZodOptional<z.ZodString>;
1182
+ }, "strict", z.ZodTypeAny, {
1183
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1184
+ baseModelId?: string | undefined;
1185
+ trainingOrganization?: string | undefined;
1186
+ }, {
1187
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1188
+ baseModelId?: string | undefined;
1189
+ trainingOrganization?: string | undefined;
1190
+ }>;
1191
+ knowledgeCutoff: z.ZodOptional<z.ZodString>;
1192
+ releasedOn: z.ZodOptional<z.ZodString>;
1193
+ regions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1194
+ servingProviders: z.ZodDefault<z.ZodArray<z.ZodObject<{
1195
+ slug: z.ZodString;
1196
+ displayName: z.ZodString;
1197
+ regions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1198
+ dataPolicy: z.ZodEffects<z.ZodObject<{
1199
+ retainsPayloads: z.ZodBoolean;
1200
+ /** Zero when nothing is retained. */
1201
+ retentionDays: z.ZodNumber;
1202
+ trainsOnCustomerData: z.ZodBoolean;
1203
+ zeroDataRetentionAvailable: z.ZodBoolean;
1204
+ /** Named subprocessors a payload may pass through, for compliance review. */
1205
+ subprocessors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1206
+ policyUrl: z.ZodOptional<z.ZodString>;
1207
+ }, "strict", z.ZodTypeAny, {
1208
+ retainsPayloads: boolean;
1209
+ retentionDays: number;
1210
+ trainsOnCustomerData: boolean;
1211
+ zeroDataRetentionAvailable: boolean;
1212
+ subprocessors: string[];
1213
+ policyUrl?: string | undefined;
1214
+ }, {
1215
+ retainsPayloads: boolean;
1216
+ retentionDays: number;
1217
+ trainsOnCustomerData: boolean;
1218
+ zeroDataRetentionAvailable: boolean;
1219
+ subprocessors?: string[] | undefined;
1220
+ policyUrl?: string | undefined;
1221
+ }>, {
1222
+ retainsPayloads: boolean;
1223
+ retentionDays: number;
1224
+ trainsOnCustomerData: boolean;
1225
+ zeroDataRetentionAvailable: boolean;
1226
+ subprocessors: string[];
1227
+ policyUrl?: string | undefined;
1228
+ }, {
1229
+ retainsPayloads: boolean;
1230
+ retentionDays: number;
1231
+ trainsOnCustomerData: boolean;
1232
+ zeroDataRetentionAvailable: boolean;
1233
+ subprocessors?: string[] | undefined;
1234
+ policyUrl?: string | undefined;
1235
+ }>;
1236
+ }, "strict", z.ZodTypeAny, {
1237
+ displayName: string;
1238
+ slug: string;
1239
+ regions: string[];
1240
+ dataPolicy: {
1241
+ retainsPayloads: boolean;
1242
+ retentionDays: number;
1243
+ trainsOnCustomerData: boolean;
1244
+ zeroDataRetentionAvailable: boolean;
1245
+ subprocessors: string[];
1246
+ policyUrl?: string | undefined;
1247
+ };
1248
+ }, {
1249
+ displayName: string;
1250
+ slug: string;
1251
+ dataPolicy: {
1252
+ retainsPayloads: boolean;
1253
+ retentionDays: number;
1254
+ trainsOnCustomerData: boolean;
1255
+ zeroDataRetentionAvailable: boolean;
1256
+ subprocessors?: string[] | undefined;
1257
+ policyUrl?: string | undefined;
1258
+ };
1259
+ regions?: string[] | undefined;
1260
+ }>, "many">>;
1261
+ dataPolicy: z.ZodEffects<z.ZodObject<{
1262
+ retainsPayloads: z.ZodBoolean;
1263
+ /** Zero when nothing is retained. */
1264
+ retentionDays: z.ZodNumber;
1265
+ trainsOnCustomerData: z.ZodBoolean;
1266
+ zeroDataRetentionAvailable: z.ZodBoolean;
1267
+ /** Named subprocessors a payload may pass through, for compliance review. */
1268
+ subprocessors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1269
+ policyUrl: z.ZodOptional<z.ZodString>;
1270
+ }, "strict", z.ZodTypeAny, {
1271
+ retainsPayloads: boolean;
1272
+ retentionDays: number;
1273
+ trainsOnCustomerData: boolean;
1274
+ zeroDataRetentionAvailable: boolean;
1275
+ subprocessors: string[];
1276
+ policyUrl?: string | undefined;
1277
+ }, {
1278
+ retainsPayloads: boolean;
1279
+ retentionDays: number;
1280
+ trainsOnCustomerData: boolean;
1281
+ zeroDataRetentionAvailable: boolean;
1282
+ subprocessors?: string[] | undefined;
1283
+ policyUrl?: string | undefined;
1284
+ }>, {
1285
+ retainsPayloads: boolean;
1286
+ retentionDays: number;
1287
+ trainsOnCustomerData: boolean;
1288
+ zeroDataRetentionAvailable: boolean;
1289
+ subprocessors: string[];
1290
+ policyUrl?: string | undefined;
1291
+ }, {
1292
+ retainsPayloads: boolean;
1293
+ retentionDays: number;
1294
+ trainsOnCustomerData: boolean;
1295
+ zeroDataRetentionAvailable: boolean;
1296
+ subprocessors?: string[] | undefined;
1297
+ policyUrl?: string | undefined;
1298
+ }>;
1299
+ /** Absent for routes a customer cannot buy per-unit (BYOK-only, internal). */
1300
+ pricing: z.ZodOptional<z.ZodObject<{
1301
+ priceVersionId: z.ZodString;
1302
+ currency: z.ZodString;
1303
+ unitPrices: z.ZodArray<z.ZodObject<{
1304
+ unit: z.ZodEnum<["input_tokens", "cached_input_tokens", "output_tokens", "reasoning_tokens", "requests", "images", "audio_input_milliseconds", "audio_output_milliseconds", "video_milliseconds", "characters", "embeddings"]>;
1305
+ amount: z.ZodBranded<z.ZodString, "ExactDecimal">;
1306
+ per: z.ZodNumber;
1307
+ currency: z.ZodString;
1308
+ }, "strict", z.ZodTypeAny, {
1309
+ amount: string & z.BRAND<"ExactDecimal">;
1310
+ currency: string;
1311
+ unit: "input_tokens" | "cached_input_tokens" | "output_tokens" | "reasoning_tokens" | "requests" | "images" | "audio_input_milliseconds" | "audio_output_milliseconds" | "video_milliseconds" | "characters" | "embeddings";
1312
+ per: number;
1313
+ }, {
1314
+ amount: string;
1315
+ currency: string;
1316
+ unit: "input_tokens" | "cached_input_tokens" | "output_tokens" | "reasoning_tokens" | "requests" | "images" | "audio_input_milliseconds" | "audio_output_milliseconds" | "video_milliseconds" | "characters" | "embeddings";
1317
+ per: number;
1318
+ }>, "many">;
1319
+ }, "strict", z.ZodTypeAny, {
1320
+ currency: string;
1321
+ priceVersionId: string;
1322
+ unitPrices: {
1323
+ amount: string & z.BRAND<"ExactDecimal">;
1324
+ currency: string;
1325
+ unit: "input_tokens" | "cached_input_tokens" | "output_tokens" | "reasoning_tokens" | "requests" | "images" | "audio_input_milliseconds" | "audio_output_milliseconds" | "video_milliseconds" | "characters" | "embeddings";
1326
+ per: number;
1327
+ }[];
1328
+ }, {
1329
+ currency: string;
1330
+ priceVersionId: string;
1331
+ unitPrices: {
1332
+ amount: string;
1333
+ currency: string;
1334
+ unit: "input_tokens" | "cached_input_tokens" | "output_tokens" | "reasoning_tokens" | "requests" | "images" | "audio_input_milliseconds" | "audio_output_milliseconds" | "video_milliseconds" | "characters" | "embeddings";
1335
+ per: number;
1336
+ }[];
1337
+ }>>;
1338
+ availabilityScope: z.ZodEnum<["internal_alia", "public_payg", "enterprise", "byok_only", "oxy_hosted"]>;
1339
+ commercialPermission: z.ZodEnum<["standard_application_use", "public_resale_approved", "wholesale_contract", "customer_byok", "open_weight_hosting"]>;
1340
+ deprecation: z.ZodEffects<z.ZodObject<{
1341
+ status: z.ZodEnum<["active", "deprecated", "retired"]>;
1342
+ replacementModelReference: z.ZodOptional<z.ZodString>;
1343
+ announcedAt: z.ZodOptional<z.ZodString>;
1344
+ sunsetAt: z.ZodOptional<z.ZodString>;
1345
+ }, "strict", z.ZodTypeAny, {
1346
+ status: "active" | "deprecated" | "retired";
1347
+ replacementModelReference?: string | undefined;
1348
+ announcedAt?: string | undefined;
1349
+ sunsetAt?: string | undefined;
1350
+ }, {
1351
+ status: "active" | "deprecated" | "retired";
1352
+ replacementModelReference?: string | undefined;
1353
+ announcedAt?: string | undefined;
1354
+ sunsetAt?: string | undefined;
1355
+ }>, {
1356
+ status: "active" | "deprecated" | "retired";
1357
+ replacementModelReference?: string | undefined;
1358
+ announcedAt?: string | undefined;
1359
+ sunsetAt?: string | undefined;
1360
+ }, {
1361
+ status: "active" | "deprecated" | "retired";
1362
+ replacementModelReference?: string | undefined;
1363
+ announcedAt?: string | undefined;
1364
+ sunsetAt?: string | undefined;
1365
+ }>;
1366
+ evaluations: z.ZodDefault<z.ZodArray<z.ZodObject<{
1367
+ suite: z.ZodString;
1368
+ metric: z.ZodString;
1369
+ /** Kept as a string: an eval score is published text, not arithmetic. */
1370
+ score: z.ZodString;
1371
+ evaluatedAt: z.ZodOptional<z.ZodString>;
1372
+ reportUrl: z.ZodOptional<z.ZodString>;
1373
+ }, "strict", z.ZodTypeAny, {
1374
+ score: string;
1375
+ suite: string;
1376
+ metric: string;
1377
+ evaluatedAt?: string | undefined;
1378
+ reportUrl?: string | undefined;
1379
+ }, {
1380
+ score: string;
1381
+ suite: string;
1382
+ metric: string;
1383
+ evaluatedAt?: string | undefined;
1384
+ reportUrl?: string | undefined;
1385
+ }>, "many">>;
1386
+ safety: z.ZodOptional<z.ZodObject<{
1387
+ safetyCardUrl: z.ZodOptional<z.ZodString>;
1388
+ contentFilteringDefault: z.ZodEnum<["none", "provider_default", "strict"]>;
1389
+ knownLimitations: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1390
+ /** Content-provenance marking the modality requires, where it requires one. */
1391
+ provenanceMarking: z.ZodEnum<["none", "visible_watermark", "invisible_watermark", "c2pa"]>;
1392
+ }, "strict", z.ZodTypeAny, {
1393
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1394
+ knownLimitations: string[];
1395
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1396
+ safetyCardUrl?: string | undefined;
1397
+ }, {
1398
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1399
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1400
+ safetyCardUrl?: string | undefined;
1401
+ knownLimitations?: string[] | undefined;
1402
+ }>>;
1403
+ modelCardUrl: z.ZodOptional<z.ZodString>;
1404
+ }, "strip", z.ZodTypeAny, {
1405
+ displayName: string;
1406
+ schemaVersion: 1;
1407
+ modelId: string;
1408
+ publisher: {
1409
+ displayName: string;
1410
+ slug: string;
1411
+ websiteUrl?: string | undefined;
1412
+ };
1413
+ capabilities: {
1414
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1415
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1416
+ tools: boolean;
1417
+ parallelToolCalls: boolean;
1418
+ structuredOutput: boolean;
1419
+ jsonMode: boolean;
1420
+ reasoning: boolean;
1421
+ streaming: boolean;
1422
+ promptCaching: boolean;
1423
+ maxContextTokens: number;
1424
+ maxOutputTokens: number;
1425
+ };
1426
+ license: {
1427
+ displayName: string;
1428
+ licenseId: string;
1429
+ commercialUseAllowed: boolean;
1430
+ requiresAttribution: boolean;
1431
+ url?: string | undefined;
1432
+ acceptableUsePolicyUrl?: string | undefined;
1433
+ };
1434
+ provenance: {
1435
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1436
+ baseModelId?: string | undefined;
1437
+ trainingOrganization?: string | undefined;
1438
+ };
1439
+ currentRevision: string;
1440
+ deprecation: {
1441
+ status: "active" | "deprecated" | "retired";
1442
+ replacementModelReference?: string | undefined;
1443
+ announcedAt?: string | undefined;
1444
+ sunsetAt?: string | undefined;
1445
+ };
1446
+ evaluations: {
1447
+ score: string;
1448
+ suite: string;
1449
+ metric: string;
1450
+ evaluatedAt?: string | undefined;
1451
+ reportUrl?: string | undefined;
1452
+ }[];
1453
+ regions: string[];
1454
+ dataPolicy: {
1455
+ retainsPayloads: boolean;
1456
+ retentionDays: number;
1457
+ trainsOnCustomerData: boolean;
1458
+ zeroDataRetentionAvailable: boolean;
1459
+ subprocessors: string[];
1460
+ policyUrl?: string | undefined;
1461
+ };
1462
+ availabilityScope: "internal_alia" | "public_payg" | "enterprise" | "byok_only" | "oxy_hosted";
1463
+ commercialPermission: "standard_application_use" | "public_resale_approved" | "wholesale_contract" | "customer_byok" | "open_weight_hosting";
1464
+ availableRevisions: string[];
1465
+ servingProviders: {
1466
+ displayName: string;
1467
+ slug: string;
1468
+ regions: string[];
1469
+ dataPolicy: {
1470
+ retainsPayloads: boolean;
1471
+ retentionDays: number;
1472
+ trainsOnCustomerData: boolean;
1473
+ zeroDataRetentionAvailable: boolean;
1474
+ subprocessors: string[];
1475
+ policyUrl?: string | undefined;
1476
+ };
1477
+ }[];
1478
+ description?: string | undefined;
1479
+ knowledgeCutoff?: string | undefined;
1480
+ releasedOn?: string | undefined;
1481
+ modelCardUrl?: string | undefined;
1482
+ safety?: {
1483
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1484
+ knownLimitations: string[];
1485
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1486
+ safetyCardUrl?: string | undefined;
1487
+ } | undefined;
1488
+ pricing?: {
1489
+ currency: string;
1490
+ priceVersionId: string;
1491
+ unitPrices: {
1492
+ amount: string & z.BRAND<"ExactDecimal">;
1493
+ currency: string;
1494
+ unit: "input_tokens" | "cached_input_tokens" | "output_tokens" | "reasoning_tokens" | "requests" | "images" | "audio_input_milliseconds" | "audio_output_milliseconds" | "video_milliseconds" | "characters" | "embeddings";
1495
+ per: number;
1496
+ }[];
1497
+ } | undefined;
1498
+ }, {
1499
+ displayName: string;
1500
+ schemaVersion: 1;
1501
+ modelId: string;
1502
+ publisher: {
1503
+ displayName: string;
1504
+ slug: string;
1505
+ websiteUrl?: string | undefined;
1506
+ };
1507
+ capabilities: {
1508
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1509
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1510
+ tools: boolean;
1511
+ parallelToolCalls: boolean;
1512
+ structuredOutput: boolean;
1513
+ jsonMode: boolean;
1514
+ reasoning: boolean;
1515
+ streaming: boolean;
1516
+ promptCaching: boolean;
1517
+ maxContextTokens: number;
1518
+ maxOutputTokens: number;
1519
+ };
1520
+ license: {
1521
+ displayName: string;
1522
+ licenseId: string;
1523
+ commercialUseAllowed: boolean;
1524
+ requiresAttribution: boolean;
1525
+ url?: string | undefined;
1526
+ acceptableUsePolicyUrl?: string | undefined;
1527
+ };
1528
+ provenance: {
1529
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1530
+ baseModelId?: string | undefined;
1531
+ trainingOrganization?: string | undefined;
1532
+ };
1533
+ currentRevision: string;
1534
+ deprecation: {
1535
+ status: "active" | "deprecated" | "retired";
1536
+ replacementModelReference?: string | undefined;
1537
+ announcedAt?: string | undefined;
1538
+ sunsetAt?: string | undefined;
1539
+ };
1540
+ dataPolicy: {
1541
+ retainsPayloads: boolean;
1542
+ retentionDays: number;
1543
+ trainsOnCustomerData: boolean;
1544
+ zeroDataRetentionAvailable: boolean;
1545
+ subprocessors?: string[] | undefined;
1546
+ policyUrl?: string | undefined;
1547
+ };
1548
+ availabilityScope: "internal_alia" | "public_payg" | "enterprise" | "byok_only" | "oxy_hosted";
1549
+ commercialPermission: "standard_application_use" | "public_resale_approved" | "wholesale_contract" | "customer_byok" | "open_weight_hosting";
1550
+ availableRevisions: string[];
1551
+ description?: string | undefined;
1552
+ knowledgeCutoff?: string | undefined;
1553
+ releasedOn?: string | undefined;
1554
+ modelCardUrl?: string | undefined;
1555
+ evaluations?: {
1556
+ score: string;
1557
+ suite: string;
1558
+ metric: string;
1559
+ evaluatedAt?: string | undefined;
1560
+ reportUrl?: string | undefined;
1561
+ }[] | undefined;
1562
+ safety?: {
1563
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1564
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1565
+ safetyCardUrl?: string | undefined;
1566
+ knownLimitations?: string[] | undefined;
1567
+ } | undefined;
1568
+ regions?: string[] | undefined;
1569
+ servingProviders?: {
1570
+ displayName: string;
1571
+ slug: string;
1572
+ dataPolicy: {
1573
+ retainsPayloads: boolean;
1574
+ retentionDays: number;
1575
+ trainsOnCustomerData: boolean;
1576
+ zeroDataRetentionAvailable: boolean;
1577
+ subprocessors?: string[] | undefined;
1578
+ policyUrl?: string | undefined;
1579
+ };
1580
+ regions?: string[] | undefined;
1581
+ }[] | undefined;
1582
+ pricing?: {
1583
+ currency: string;
1584
+ priceVersionId: string;
1585
+ unitPrices: {
1586
+ amount: string;
1587
+ currency: string;
1588
+ unit: "input_tokens" | "cached_input_tokens" | "output_tokens" | "reasoning_tokens" | "requests" | "images" | "audio_input_milliseconds" | "audio_output_milliseconds" | "video_milliseconds" | "characters" | "embeddings";
1589
+ per: number;
1590
+ }[];
1591
+ } | undefined;
1592
+ }>;
1593
+ export type InferenceModality = z.infer<typeof inferenceModalitySchema>;
1594
+ export type ModelCapabilities = z.infer<typeof modelCapabilitiesSchema>;
1595
+ export type ModelLicense = z.infer<typeof modelLicenseSchema>;
1596
+ export type ModelProvenance = z.infer<typeof modelProvenanceSchema>;
1597
+ export type InferenceDataPolicy = z.infer<typeof inferenceDataPolicySchema>;
1598
+ export type AvailabilityScope = z.infer<typeof availabilityScopeSchema>;
1599
+ export type CommercialPermission = z.infer<typeof commercialPermissionSchema>;
1600
+ export type ModelDeprecation = z.infer<typeof modelDeprecationSchema>;
1601
+ export type ModelEvaluationResult = z.infer<typeof modelEvaluationResultSchema>;
1602
+ export type ModelSafetyMetadata = z.infer<typeof modelSafetyMetadataSchema>;
1603
+ export type ModelPublisher = z.infer<typeof modelPublisherSchema>;
1604
+ export type CatalogueModel = z.infer<typeof catalogueModelSchema>;
1605
+ export type ModelRevision = z.infer<typeof modelRevisionSchema>;
1606
+ export type InferenceProvider = z.infer<typeof inferenceProviderSchema>;
1607
+ export type ModelDeployment = z.infer<typeof modelDeploymentSchema>;
1608
+ export type RoutingProfileCandidate = z.infer<typeof routingProfileCandidateSchema>;
1609
+ export type RoutingProfile = z.infer<typeof routingProfileSchema>;
1610
+ export type CataloguePublisherSummary = z.infer<typeof cataloguePublisherSummarySchema>;
1611
+ export type CatalogueServingProviderSummary = z.infer<typeof catalogueServingProviderSummarySchema>;
1612
+ export type ModelCatalogueEntry = z.infer<typeof modelCatalogueEntrySchema>;