@oxyhq/contracts 0.30.0 → 0.32.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.
@@ -0,0 +1,1603 @@
1
+ /**
2
+ * Model documentation: what a first-party release must DECLARE, what a
3
+ * downstream developer may READ, and the request that ingests both.
4
+ *
5
+ * Issue #972 §12, the three items under "Future Alia model
6
+ * publication/compliance" that `aliaModelRelease.ts` deliberately left open:
7
+ * accepting the documentation set, publicising the customer-safe half of it, and
8
+ * preserving the metadata an EU AI Act / GPAI documentation workflow needs.
9
+ *
10
+ * ## The section's own scope is what makes the compliance claim falsifiable
11
+ *
12
+ * The issue section is titled "Future Alia model publication/compliance", so the
13
+ * obligations in play are the ones binding a PROVIDER of a general-purpose AI
14
+ * model — Oxy/Alia, for an `alia/*` release it trained or derived. Oxy's position
15
+ * on third-party weights is a different one (it received documentation rather
16
+ * than produced it) with different obligations, and nothing here claims to
17
+ * discharge those. Every field below names the obligation it serves; a field
18
+ * whose obligation could not be named is not here, and two are listed at the
19
+ * bottom as deliberately absent.
20
+ *
21
+ * References are to Regulation (EU) 2024/1689 (the AI Act): Article 50(2)
22
+ * (marking synthetic output), Article 51 (classification as a model with
23
+ * systemic risk), Article 53 (obligations of providers of general-purpose AI
24
+ * models), Article 55 (additional obligations for systemic-risk models), Annex XI
25
+ * (the technical documentation), Annex XII (the information for downstream
26
+ * providers).
27
+ *
28
+ * ## Two shapes, and the Act itself draws the line between them
29
+ *
30
+ * {@link modelGpaiDocumentationSchema} is the whole record. {@link
31
+ * modelDownstreamDocumentationSchema} is the subset served publicly. The split
32
+ * is NOT editorial taste: Annex XI is documentation a provider keeps and
33
+ * provides to the AI Office and national competent authorities on request, while
34
+ * Annex XII is information a provider MAKES AVAILABLE to downstream providers.
35
+ * Training compute, training time, energy consumption and the adversarial-testing
36
+ * report are Annex XI Section 2 and Article 55(1)(a) — the first audience — so
37
+ * they are in the record and not in the public projection, and
38
+ * `db/schema/protectedColumns.ts` says the same thing a second time at the type
39
+ * level.
40
+ *
41
+ * ## The conditionals are the Act's, not a convenience
42
+ *
43
+ * Article 53(2) exempts a model released under a free and open-source licence
44
+ * from 53(1)(a) and 53(1)(b) — the Annex XI and Annex XII sets — UNLESS it is a
45
+ * model with systemic risk. It does not exempt 53(1)(c) or 53(1)(d). So the
46
+ * copyright policy and the training-content summary are required of every
47
+ * release here, while the Annex XI/XII set is required of every release that is
48
+ * not covered by that exemption. Writing it the other way round — everything
49
+ * optional, checked by a human — is what makes a compliance record a field nobody
50
+ * filled in.
51
+ *
52
+ * ## What is deliberately NOT here
53
+ *
54
+ * **The modality and FORMAT of inputs and outputs (Annex XI §1(6), Annex XII
55
+ * §1(b)).** The modality half is already stored, as `inference_models`'
56
+ * `input_modalities` / `output_modalities`. The format half is a property of the
57
+ * Oxy API — one request envelope, one set of endpoints, identical for every model
58
+ * — so a per-model column would record the same value on every row and invite a
59
+ * reader to believe it could differ.
60
+ *
61
+ * **The technical means required for integration (Annex XII §1(c)).** Same
62
+ * reason: for a model served over the Oxy API that is Oxy's own API
63
+ * documentation, not a fact about the weights.
64
+ *
65
+ * **A verification finding for a release signature.** See
66
+ * `aliaModelRelease.ts`: whether a signature checked out is Oxy's finding about
67
+ * the document and not a claim the document makes, and no verifier exists yet
68
+ * because what signs is undecided. The ingestion path stores the signatures and
69
+ * the manifest as received so a verifier that lands later can check them; it
70
+ * records no finding, because there is none.
71
+ *
72
+ * Decided in: docs/adr/0008-catalogue-concept-separation.md, issue #972 §12.
73
+ */
74
+ import { z } from 'zod';
75
+ /**
76
+ * How a release reaches the people who use it — Annex XI §1(4) and Annex XII
77
+ * §1(a), "methods of distribution".
78
+ *
79
+ * TWO members, and both exist today: a release is served through the Oxy API, or
80
+ * its weights are published for download, or both. A third channel is a
81
+ * distribution decision somebody would have to make, and a closed enum gaining a
82
+ * member is a MINOR contract-set change the handshake surfaces (`version.ts`),
83
+ * which is the right amount of ceremony for it.
84
+ *
85
+ * `downloadable_weights` is also what the Article 53(2) free-and-open-source
86
+ * exemption is assessed against — that exemption requires the model to be
87
+ * "released under a free and open-source licence that allows for the access,
88
+ * usage, modification and distribution of the model" — so it is required even
89
+ * where the Annex XI set it belongs to is exempt.
90
+ */
91
+ export declare const modelDistributionMethodSchema: z.ZodEnum<["oxy_api", "downloadable_weights"]>;
92
+ /**
93
+ * Whether this is a model with systemic risk, and on what basis — Article 51.
94
+ *
95
+ * Three states, because the two ways a model acquires the classification have
96
+ * different evidence and a record that flattened them could not be checked:
97
+ *
98
+ * - `not_designated` — neither presumed nor designated.
99
+ * - `presumed_by_training_compute` — Article 51(2): the cumulative compute used
100
+ * for training exceeds 10^25 floating point operations, which the Act makes a
101
+ * presumption of high-impact capabilities. The FIGURE is what creates it, so
102
+ * {@link modelGpaiDocumentationSchema} requires the figure alongside this
103
+ * value.
104
+ * - `designated_by_commission` — Article 51(1)(b): a Commission decision, ex
105
+ * officio or following a qualified alert, that the model has capabilities
106
+ * equivalent to the presumption. Not derivable from anything Oxy holds, which
107
+ * is exactly why it is a declared value.
108
+ */
109
+ export declare const modelSystemicRiskTierSchema: z.ZodEnum<["not_designated", "presumed_by_training_compute", "designated_by_commission"]>;
110
+ /**
111
+ * Cumulative training compute in floating point operations — Annex XI §2(b).
112
+ *
113
+ * TEXT, in the same spirit as `modelEvaluationResultSchema.score` and for a
114
+ * sharper reason: this is a PUBLISHED figure (`4.2e25`, `2.5e26`), the numbers
115
+ * involved are far outside the exactly-representable integer range, and the
116
+ * value is never arithmetic Oxy performs on a customer's behalf. A JSON number
117
+ * would round it silently and make two records of one published figure compare
118
+ * unequal.
119
+ *
120
+ * The one comparison that IS made — against Article 51(2)'s 10^25 threshold — is
121
+ * a magnitude test, and `Number()` on a string this regex admits is exact enough
122
+ * for a magnitude test by a factor of about 10^9. The refinement that performs
123
+ * it is on {@link modelGpaiDocumentationSchema}.
124
+ */
125
+ export declare const trainingComputeFlopsSchema: z.ZodString;
126
+ /**
127
+ * Article 51(2)'s presumption threshold, as a number.
128
+ *
129
+ * Named rather than inlined so the refinement that applies it and the enum
130
+ * member that describes it (`presumed_by_training_compute`) cannot come to mean
131
+ * different things.
132
+ */
133
+ export declare const SYSTEMIC_RISK_COMPUTE_THRESHOLD_FLOPS = 1e+25;
134
+ /**
135
+ * The subset of the documentation set that is served to downstream developers —
136
+ * Annex XII, plus the two Article 53(1) items that are public by their own terms.
137
+ *
138
+ * Rides inside {@link modelDocumentationSchema} and inherits its version.
139
+ *
140
+ * Every field here is one a developer integrating the model needs in order to
141
+ * decide whether they may use it and what they must say about it: what it is for,
142
+ * how it is distributed, what it is built out of, where the training-content
143
+ * summary and the copyright policy are, and whether it carries the systemic-risk
144
+ * classification that puts obligations on them too.
145
+ *
146
+ * The optional members are optional for a REASON stated in the parent record's
147
+ * refinement — Article 53(2) — and not because a value may be skipped.
148
+ */
149
+ export declare const modelDownstreamDocumentationSchema: z.ZodObject<{
150
+ /** Annex XI §1(2), Annex XII §1(a): the tasks the model is intended for. */
151
+ intendedTasks: z.ZodOptional<z.ZodString>;
152
+ /** Annex XI §1(4), Annex XII §1(a). */
153
+ distributionMethods: z.ZodArray<z.ZodEnum<["oxy_api", "downloadable_weights"]>, "many">;
154
+ /** Annex XI §1(5), reachable through Annex XII §1(a) ("points 1 to 5"). */
155
+ architecture: z.ZodOptional<z.ZodString>;
156
+ /** Annex XI §1(5): the number of parameters. */
157
+ parameterCount: z.ZodOptional<z.ZodNumber>;
158
+ /** Article 53(1)(d): the publicly available summary of training content. */
159
+ trainingDataSummaryUrl: z.ZodString;
160
+ /**
161
+ * Article 53(1)(c): the policy for complying with Union copyright law,
162
+ * including the reservation of rights under Article 4(3) of Directive
163
+ * (EU) 2019/790. Required of every release — Article 53(2) does not exempt it.
164
+ */
165
+ copyrightPolicyUrl: z.ZodString;
166
+ /** Article 51. */
167
+ systemicRisk: z.ZodEnum<["not_designated", "presumed_by_training_compute", "designated_by_commission"]>;
168
+ /**
169
+ * Whether the release is under a free and open-source licence in the sense
170
+ * of Article 53(2). Distinct from `modelLicenseSchema.commercialUseAllowed`,
171
+ * which answers whether OXY may serve the model — a licence can permit
172
+ * commercial use and still not permit access, modification and
173
+ * redistribution of the weights, and it is the second question the exemption
174
+ * turns on.
175
+ */
176
+ freeAndOpenSourceRelease: z.ZodBoolean;
177
+ }, "strict", z.ZodTypeAny, {
178
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
179
+ trainingDataSummaryUrl: string;
180
+ copyrightPolicyUrl: string;
181
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
182
+ freeAndOpenSourceRelease: boolean;
183
+ architecture?: string | undefined;
184
+ intendedTasks?: string | undefined;
185
+ parameterCount?: number | undefined;
186
+ }, {
187
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
188
+ trainingDataSummaryUrl: string;
189
+ copyrightPolicyUrl: string;
190
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
191
+ freeAndOpenSourceRelease: boolean;
192
+ architecture?: string | undefined;
193
+ intendedTasks?: string | undefined;
194
+ parameterCount?: number | undefined;
195
+ }>;
196
+ /**
197
+ * The whole documentation record for one revision, as ingested.
198
+ *
199
+ * `.strict()`, because this is a compliance record arriving over the wire: a
200
+ * field silently dropped at the parse is a field the record does not contain,
201
+ * and "we accepted your documentation" would then be true of less than was sent.
202
+ *
203
+ * Not versioned on its own — it rides inside
204
+ * {@link modelReleaseIngestionRequestSchema} on the way in and inside
205
+ * {@link modelDocumentationSchema} on the way out, and inherits whichever
206
+ * message carries it.
207
+ */
208
+ export declare const modelGpaiDocumentationSchema: z.ZodEffects<z.ZodObject<{
209
+ /** Annex XI §1(2), Annex XII §1(a): the tasks the model is intended for. */
210
+ intendedTasks: z.ZodOptional<z.ZodString>;
211
+ /** Annex XI §1(4), Annex XII §1(a). */
212
+ distributionMethods: z.ZodArray<z.ZodEnum<["oxy_api", "downloadable_weights"]>, "many">;
213
+ /** Annex XI §1(5), reachable through Annex XII §1(a) ("points 1 to 5"). */
214
+ architecture: z.ZodOptional<z.ZodString>;
215
+ /** Annex XI §1(5): the number of parameters. */
216
+ parameterCount: z.ZodOptional<z.ZodNumber>;
217
+ /** Article 53(1)(d): the publicly available summary of training content. */
218
+ trainingDataSummaryUrl: z.ZodString;
219
+ /**
220
+ * Article 53(1)(c): the policy for complying with Union copyright law,
221
+ * including the reservation of rights under Article 4(3) of Directive
222
+ * (EU) 2019/790. Required of every release — Article 53(2) does not exempt it.
223
+ */
224
+ copyrightPolicyUrl: z.ZodString;
225
+ /** Article 51. */
226
+ systemicRisk: z.ZodEnum<["not_designated", "presumed_by_training_compute", "designated_by_commission"]>;
227
+ /**
228
+ * Whether the release is under a free and open-source licence in the sense
229
+ * of Article 53(2). Distinct from `modelLicenseSchema.commercialUseAllowed`,
230
+ * which answers whether OXY may serve the model — a licence can permit
231
+ * commercial use and still not permit access, modification and
232
+ * redistribution of the weights, and it is the second question the exemption
233
+ * turns on.
234
+ */
235
+ freeAndOpenSourceRelease: z.ZodBoolean;
236
+ } & {
237
+ /** Annex XI §2(b): the computational resources used for training. */
238
+ trainingComputeFlops: z.ZodOptional<z.ZodString>;
239
+ /** Annex XI §2(b): the training time. */
240
+ trainingTimeHours: z.ZodOptional<z.ZodNumber>;
241
+ /**
242
+ * Annex XI §2(c): the known or ESTIMATED energy consumption. The Act asks
243
+ * for an estimate where the figure is not known, so absence here means the
244
+ * Annex XI set is exempt rather than that the number was hard to obtain.
245
+ */
246
+ energyConsumptionMwh: z.ZodOptional<z.ZodNumber>;
247
+ /**
248
+ * Article 55(1)(a): the model evaluation, including adversarial testing,
249
+ * performed for a model with systemic risk. A pointer, like every other
250
+ * document reference here — the catalogue holds no report.
251
+ */
252
+ adversarialTestingReportUrl: z.ZodOptional<z.ZodString>;
253
+ }, "strict", z.ZodTypeAny, {
254
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
255
+ trainingDataSummaryUrl: string;
256
+ copyrightPolicyUrl: string;
257
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
258
+ freeAndOpenSourceRelease: boolean;
259
+ architecture?: string | undefined;
260
+ intendedTasks?: string | undefined;
261
+ parameterCount?: number | undefined;
262
+ trainingComputeFlops?: string | undefined;
263
+ trainingTimeHours?: number | undefined;
264
+ energyConsumptionMwh?: number | undefined;
265
+ adversarialTestingReportUrl?: string | undefined;
266
+ }, {
267
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
268
+ trainingDataSummaryUrl: string;
269
+ copyrightPolicyUrl: string;
270
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
271
+ freeAndOpenSourceRelease: boolean;
272
+ architecture?: string | undefined;
273
+ intendedTasks?: string | undefined;
274
+ parameterCount?: number | undefined;
275
+ trainingComputeFlops?: string | undefined;
276
+ trainingTimeHours?: number | undefined;
277
+ energyConsumptionMwh?: number | undefined;
278
+ adversarialTestingReportUrl?: string | undefined;
279
+ }>, {
280
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
281
+ trainingDataSummaryUrl: string;
282
+ copyrightPolicyUrl: string;
283
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
284
+ freeAndOpenSourceRelease: boolean;
285
+ architecture?: string | undefined;
286
+ intendedTasks?: string | undefined;
287
+ parameterCount?: number | undefined;
288
+ trainingComputeFlops?: string | undefined;
289
+ trainingTimeHours?: number | undefined;
290
+ energyConsumptionMwh?: number | undefined;
291
+ adversarialTestingReportUrl?: string | undefined;
292
+ }, {
293
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
294
+ trainingDataSummaryUrl: string;
295
+ copyrightPolicyUrl: string;
296
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
297
+ freeAndOpenSourceRelease: boolean;
298
+ architecture?: string | undefined;
299
+ intendedTasks?: string | undefined;
300
+ parameterCount?: number | undefined;
301
+ trainingComputeFlops?: string | undefined;
302
+ trainingTimeHours?: number | undefined;
303
+ energyConsumptionMwh?: number | undefined;
304
+ adversarialTestingReportUrl?: string | undefined;
305
+ }>;
306
+ /**
307
+ * What OXY states about the model line a release belongs to.
308
+ *
309
+ * A signed release manifest carries a revision, a licence, a provenance block,
310
+ * evaluations, safety metadata and an artifact inventory. It carries no
311
+ * CAPABILITY SHEET — no modalities, no `maxContextTokens`, none of the
312
+ * tool/streaming flags — and every one of those is required to create a model
313
+ * line at all.
314
+ *
315
+ * That is not a gap in the manifest. A capability sheet is a statement about what
316
+ * the Oxy API will serve, which is Oxy's to make and not the signer's: the same
317
+ * weights behind a different gateway answer a different set of these questions.
318
+ * So it travels beside the manifest, like the documentation record, and the
319
+ * signature keeps covering exactly the document its signer wrote.
320
+ *
321
+ * Ignored when the model line already exists — a release does not edit a model.
322
+ * The licence and provenance in the MANIFEST are checked against the stored ones
323
+ * instead, because those are claims about somebody's rights rather than Oxy's own
324
+ * editorial choices.
325
+ */
326
+ export declare const modelLineDeclarationSchema: z.ZodObject<{
327
+ displayName: z.ZodString;
328
+ description: z.ZodOptional<z.ZodString>;
329
+ capabilities: z.ZodObject<{
330
+ inputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
331
+ outputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
332
+ tools: z.ZodBoolean;
333
+ parallelToolCalls: z.ZodBoolean;
334
+ structuredOutput: z.ZodBoolean;
335
+ jsonMode: z.ZodBoolean;
336
+ reasoning: z.ZodBoolean;
337
+ streaming: z.ZodBoolean;
338
+ promptCaching: z.ZodBoolean;
339
+ maxContextTokens: z.ZodNumber;
340
+ maxOutputTokens: z.ZodNumber;
341
+ }, "strict", z.ZodTypeAny, {
342
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
343
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
344
+ tools: boolean;
345
+ parallelToolCalls: boolean;
346
+ structuredOutput: boolean;
347
+ jsonMode: boolean;
348
+ reasoning: boolean;
349
+ streaming: boolean;
350
+ promptCaching: boolean;
351
+ maxContextTokens: number;
352
+ maxOutputTokens: number;
353
+ }, {
354
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
355
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
356
+ tools: boolean;
357
+ parallelToolCalls: boolean;
358
+ structuredOutput: boolean;
359
+ jsonMode: boolean;
360
+ reasoning: boolean;
361
+ streaming: boolean;
362
+ promptCaching: boolean;
363
+ maxContextTokens: number;
364
+ maxOutputTokens: number;
365
+ }>;
366
+ knowledgeCutoff: z.ZodOptional<z.ZodString>;
367
+ releasedOn: z.ZodOptional<z.ZodString>;
368
+ }, "strict", z.ZodTypeAny, {
369
+ displayName: string;
370
+ capabilities: {
371
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
372
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
373
+ tools: boolean;
374
+ parallelToolCalls: boolean;
375
+ structuredOutput: boolean;
376
+ jsonMode: boolean;
377
+ reasoning: boolean;
378
+ streaming: boolean;
379
+ promptCaching: boolean;
380
+ maxContextTokens: number;
381
+ maxOutputTokens: number;
382
+ };
383
+ description?: string | undefined;
384
+ knowledgeCutoff?: string | undefined;
385
+ releasedOn?: string | undefined;
386
+ }, {
387
+ displayName: string;
388
+ capabilities: {
389
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
390
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
391
+ tools: boolean;
392
+ parallelToolCalls: boolean;
393
+ structuredOutput: boolean;
394
+ jsonMode: boolean;
395
+ reasoning: boolean;
396
+ streaming: boolean;
397
+ promptCaching: boolean;
398
+ maxContextTokens: number;
399
+ maxOutputTokens: number;
400
+ };
401
+ description?: string | undefined;
402
+ knowledgeCutoff?: string | undefined;
403
+ releasedOn?: string | undefined;
404
+ }>;
405
+ /**
406
+ * The body of the release-ingestion request.
407
+ *
408
+ * The documentation and the capability sheet travel BESIDE the manifest rather
409
+ * than inside it, and that is the whole reason this wrapper exists.
410
+ * `aliaModelReleaseManifestSchema` is a SIGNED document: adding a field to it
411
+ * would change the bytes a signer covers and the version the data plane and Alia
412
+ * compile against, for records that are Oxy's own rather than the signer's.
413
+ * Keeping them separate means the signature still covers exactly what it covered.
414
+ *
415
+ * A signer that later chooses to cover the documentation too can: it would
416
+ * become a second signed document with its own manifest, which is a contract
417
+ * addition rather than a change to this one.
418
+ */
419
+ export declare const modelReleaseIngestionRequestSchema: z.ZodObject<{
420
+ /** See `version.ts`: an ingestion payload is a whole message on the wire. */
421
+ schemaVersion: z.ZodLiteral<1>;
422
+ manifest: z.ZodEffects<z.ZodObject<{
423
+ schemaVersion: z.ZodLiteral<1>;
424
+ releaseId: z.ZodString;
425
+ issuedAt: z.ZodString;
426
+ revision: z.ZodEffects<z.ZodObject<{
427
+ schemaVersion: z.ZodLiteral<1>;
428
+ revisionId: z.ZodString;
429
+ modelId: z.ZodString;
430
+ revision: z.ZodString;
431
+ reference: z.ZodString;
432
+ releasedAt: z.ZodString;
433
+ retiredAt: z.ZodOptional<z.ZodString>;
434
+ artifactDigest: z.ZodOptional<z.ZodString>;
435
+ modelCardUrl: z.ZodOptional<z.ZodString>;
436
+ evaluations: z.ZodDefault<z.ZodArray<z.ZodObject<{
437
+ suite: z.ZodString;
438
+ metric: z.ZodString;
439
+ score: z.ZodString;
440
+ evaluatedAt: z.ZodOptional<z.ZodString>;
441
+ reportUrl: z.ZodOptional<z.ZodString>;
442
+ }, "strict", z.ZodTypeAny, {
443
+ score: string;
444
+ suite: string;
445
+ metric: string;
446
+ evaluatedAt?: string | undefined;
447
+ reportUrl?: string | undefined;
448
+ }, {
449
+ score: string;
450
+ suite: string;
451
+ metric: string;
452
+ evaluatedAt?: string | undefined;
453
+ reportUrl?: string | undefined;
454
+ }>, "many">>;
455
+ safety: z.ZodOptional<z.ZodObject<{
456
+ safetyCardUrl: z.ZodOptional<z.ZodString>;
457
+ contentFilteringDefault: z.ZodEnum<["none", "provider_default", "strict"]>;
458
+ knownLimitations: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
459
+ provenanceMarking: z.ZodEnum<["none", "visible_watermark", "invisible_watermark", "c2pa"]>;
460
+ }, "strict", z.ZodTypeAny, {
461
+ contentFilteringDefault: "strict" | "none" | "provider_default";
462
+ knownLimitations: string[];
463
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
464
+ safetyCardUrl?: string | undefined;
465
+ }, {
466
+ contentFilteringDefault: "strict" | "none" | "provider_default";
467
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
468
+ safetyCardUrl?: string | undefined;
469
+ knownLimitations?: string[] | undefined;
470
+ }>>;
471
+ }, "strip", z.ZodTypeAny, {
472
+ revision: string;
473
+ schemaVersion: 1;
474
+ modelId: string;
475
+ revisionId: string;
476
+ reference: string;
477
+ releasedAt: string;
478
+ evaluations: {
479
+ score: string;
480
+ suite: string;
481
+ metric: string;
482
+ evaluatedAt?: string | undefined;
483
+ reportUrl?: string | undefined;
484
+ }[];
485
+ retiredAt?: string | undefined;
486
+ artifactDigest?: string | undefined;
487
+ modelCardUrl?: string | undefined;
488
+ safety?: {
489
+ contentFilteringDefault: "strict" | "none" | "provider_default";
490
+ knownLimitations: string[];
491
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
492
+ safetyCardUrl?: string | undefined;
493
+ } | undefined;
494
+ }, {
495
+ revision: string;
496
+ schemaVersion: 1;
497
+ modelId: string;
498
+ revisionId: string;
499
+ reference: string;
500
+ releasedAt: string;
501
+ retiredAt?: string | undefined;
502
+ artifactDigest?: string | undefined;
503
+ modelCardUrl?: string | undefined;
504
+ evaluations?: {
505
+ score: string;
506
+ suite: string;
507
+ metric: string;
508
+ evaluatedAt?: string | undefined;
509
+ reportUrl?: string | undefined;
510
+ }[] | undefined;
511
+ safety?: {
512
+ contentFilteringDefault: "strict" | "none" | "provider_default";
513
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
514
+ safetyCardUrl?: string | undefined;
515
+ knownLimitations?: string[] | undefined;
516
+ } | undefined;
517
+ }>, {
518
+ revision: string;
519
+ schemaVersion: 1;
520
+ modelId: string;
521
+ revisionId: string;
522
+ reference: string;
523
+ releasedAt: string;
524
+ evaluations: {
525
+ score: string;
526
+ suite: string;
527
+ metric: string;
528
+ evaluatedAt?: string | undefined;
529
+ reportUrl?: string | undefined;
530
+ }[];
531
+ retiredAt?: string | undefined;
532
+ artifactDigest?: string | undefined;
533
+ modelCardUrl?: string | undefined;
534
+ safety?: {
535
+ contentFilteringDefault: "strict" | "none" | "provider_default";
536
+ knownLimitations: string[];
537
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
538
+ safetyCardUrl?: string | undefined;
539
+ } | undefined;
540
+ }, {
541
+ revision: string;
542
+ schemaVersion: 1;
543
+ modelId: string;
544
+ revisionId: string;
545
+ reference: string;
546
+ releasedAt: string;
547
+ retiredAt?: string | undefined;
548
+ artifactDigest?: string | undefined;
549
+ modelCardUrl?: string | undefined;
550
+ evaluations?: {
551
+ score: string;
552
+ suite: string;
553
+ metric: string;
554
+ evaluatedAt?: string | undefined;
555
+ reportUrl?: string | undefined;
556
+ }[] | undefined;
557
+ safety?: {
558
+ contentFilteringDefault: "strict" | "none" | "provider_default";
559
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
560
+ safetyCardUrl?: string | undefined;
561
+ knownLimitations?: string[] | undefined;
562
+ } | undefined;
563
+ }>;
564
+ provenance: z.ZodObject<{
565
+ releaseKind: z.ZodEnum<["first_party_original", "first_party_derived", "open_weight", "third_party_hosted"]>;
566
+ baseModelId: z.ZodOptional<z.ZodString>;
567
+ trainingOrganization: z.ZodOptional<z.ZodString>;
568
+ }, "strict", z.ZodTypeAny, {
569
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
570
+ baseModelId?: string | undefined;
571
+ trainingOrganization?: string | undefined;
572
+ }, {
573
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
574
+ baseModelId?: string | undefined;
575
+ trainingOrganization?: string | undefined;
576
+ }>;
577
+ license: z.ZodObject<{
578
+ licenseId: z.ZodString;
579
+ displayName: z.ZodString;
580
+ url: z.ZodOptional<z.ZodString>;
581
+ commercialUseAllowed: z.ZodBoolean;
582
+ requiresAttribution: z.ZodBoolean;
583
+ acceptableUsePolicyUrl: z.ZodOptional<z.ZodString>;
584
+ }, "strict", z.ZodTypeAny, {
585
+ displayName: string;
586
+ licenseId: string;
587
+ commercialUseAllowed: boolean;
588
+ requiresAttribution: boolean;
589
+ url?: string | undefined;
590
+ acceptableUsePolicyUrl?: string | undefined;
591
+ }, {
592
+ displayName: string;
593
+ licenseId: string;
594
+ commercialUseAllowed: boolean;
595
+ requiresAttribution: boolean;
596
+ url?: string | undefined;
597
+ acceptableUsePolicyUrl?: string | undefined;
598
+ }>;
599
+ artifacts: z.ZodArray<z.ZodObject<{
600
+ path: z.ZodString;
601
+ digest: z.ZodString;
602
+ sizeBytes: z.ZodNumber;
603
+ mediaType: z.ZodOptional<z.ZodString>;
604
+ }, "strict", z.ZodTypeAny, {
605
+ path: string;
606
+ digest: string;
607
+ sizeBytes: number;
608
+ mediaType?: string | undefined;
609
+ }, {
610
+ path: string;
611
+ digest: string;
612
+ sizeBytes: number;
613
+ mediaType?: string | undefined;
614
+ }>, "many">;
615
+ signatures: z.ZodArray<z.ZodObject<{
616
+ algorithm: z.ZodEnum<["ed25519"]>;
617
+ canonicalization: z.ZodEnum<["jcs"]>;
618
+ keyId: z.ZodString;
619
+ signature: z.ZodString;
620
+ signedAt: z.ZodString;
621
+ }, "strict", z.ZodTypeAny, {
622
+ signature: string;
623
+ signedAt: string;
624
+ algorithm: "ed25519";
625
+ canonicalization: "jcs";
626
+ keyId: string;
627
+ }, {
628
+ signature: string;
629
+ signedAt: string;
630
+ algorithm: "ed25519";
631
+ canonicalization: "jcs";
632
+ keyId: string;
633
+ }>, "many">;
634
+ }, "strict", z.ZodTypeAny, {
635
+ revision: {
636
+ revision: string;
637
+ schemaVersion: 1;
638
+ modelId: string;
639
+ revisionId: string;
640
+ reference: string;
641
+ releasedAt: string;
642
+ evaluations: {
643
+ score: string;
644
+ suite: string;
645
+ metric: string;
646
+ evaluatedAt?: string | undefined;
647
+ reportUrl?: string | undefined;
648
+ }[];
649
+ retiredAt?: string | undefined;
650
+ artifactDigest?: string | undefined;
651
+ modelCardUrl?: string | undefined;
652
+ safety?: {
653
+ contentFilteringDefault: "strict" | "none" | "provider_default";
654
+ knownLimitations: string[];
655
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
656
+ safetyCardUrl?: string | undefined;
657
+ } | undefined;
658
+ };
659
+ issuedAt: string;
660
+ signatures: {
661
+ signature: string;
662
+ signedAt: string;
663
+ algorithm: "ed25519";
664
+ canonicalization: "jcs";
665
+ keyId: string;
666
+ }[];
667
+ schemaVersion: 1;
668
+ license: {
669
+ displayName: string;
670
+ licenseId: string;
671
+ commercialUseAllowed: boolean;
672
+ requiresAttribution: boolean;
673
+ url?: string | undefined;
674
+ acceptableUsePolicyUrl?: string | undefined;
675
+ };
676
+ provenance: {
677
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
678
+ baseModelId?: string | undefined;
679
+ trainingOrganization?: string | undefined;
680
+ };
681
+ releaseId: string;
682
+ artifacts: {
683
+ path: string;
684
+ digest: string;
685
+ sizeBytes: number;
686
+ mediaType?: string | undefined;
687
+ }[];
688
+ }, {
689
+ revision: {
690
+ revision: string;
691
+ schemaVersion: 1;
692
+ modelId: string;
693
+ revisionId: string;
694
+ reference: string;
695
+ releasedAt: string;
696
+ retiredAt?: string | undefined;
697
+ artifactDigest?: string | undefined;
698
+ modelCardUrl?: string | undefined;
699
+ evaluations?: {
700
+ score: string;
701
+ suite: string;
702
+ metric: string;
703
+ evaluatedAt?: string | undefined;
704
+ reportUrl?: string | undefined;
705
+ }[] | undefined;
706
+ safety?: {
707
+ contentFilteringDefault: "strict" | "none" | "provider_default";
708
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
709
+ safetyCardUrl?: string | undefined;
710
+ knownLimitations?: string[] | undefined;
711
+ } | undefined;
712
+ };
713
+ issuedAt: string;
714
+ signatures: {
715
+ signature: string;
716
+ signedAt: string;
717
+ algorithm: "ed25519";
718
+ canonicalization: "jcs";
719
+ keyId: string;
720
+ }[];
721
+ schemaVersion: 1;
722
+ license: {
723
+ displayName: string;
724
+ licenseId: string;
725
+ commercialUseAllowed: boolean;
726
+ requiresAttribution: boolean;
727
+ url?: string | undefined;
728
+ acceptableUsePolicyUrl?: string | undefined;
729
+ };
730
+ provenance: {
731
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
732
+ baseModelId?: string | undefined;
733
+ trainingOrganization?: string | undefined;
734
+ };
735
+ releaseId: string;
736
+ artifacts: {
737
+ path: string;
738
+ digest: string;
739
+ sizeBytes: number;
740
+ mediaType?: string | undefined;
741
+ }[];
742
+ }>, {
743
+ revision: {
744
+ revision: string;
745
+ schemaVersion: 1;
746
+ modelId: string;
747
+ revisionId: string;
748
+ reference: string;
749
+ releasedAt: string;
750
+ evaluations: {
751
+ score: string;
752
+ suite: string;
753
+ metric: string;
754
+ evaluatedAt?: string | undefined;
755
+ reportUrl?: string | undefined;
756
+ }[];
757
+ retiredAt?: string | undefined;
758
+ artifactDigest?: string | undefined;
759
+ modelCardUrl?: string | undefined;
760
+ safety?: {
761
+ contentFilteringDefault: "strict" | "none" | "provider_default";
762
+ knownLimitations: string[];
763
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
764
+ safetyCardUrl?: string | undefined;
765
+ } | undefined;
766
+ };
767
+ issuedAt: string;
768
+ signatures: {
769
+ signature: string;
770
+ signedAt: string;
771
+ algorithm: "ed25519";
772
+ canonicalization: "jcs";
773
+ keyId: string;
774
+ }[];
775
+ schemaVersion: 1;
776
+ license: {
777
+ displayName: string;
778
+ licenseId: string;
779
+ commercialUseAllowed: boolean;
780
+ requiresAttribution: boolean;
781
+ url?: string | undefined;
782
+ acceptableUsePolicyUrl?: string | undefined;
783
+ };
784
+ provenance: {
785
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
786
+ baseModelId?: string | undefined;
787
+ trainingOrganization?: string | undefined;
788
+ };
789
+ releaseId: string;
790
+ artifacts: {
791
+ path: string;
792
+ digest: string;
793
+ sizeBytes: number;
794
+ mediaType?: string | undefined;
795
+ }[];
796
+ }, {
797
+ revision: {
798
+ revision: string;
799
+ schemaVersion: 1;
800
+ modelId: string;
801
+ revisionId: string;
802
+ reference: string;
803
+ releasedAt: string;
804
+ retiredAt?: string | undefined;
805
+ artifactDigest?: string | undefined;
806
+ modelCardUrl?: string | undefined;
807
+ evaluations?: {
808
+ score: string;
809
+ suite: string;
810
+ metric: string;
811
+ evaluatedAt?: string | undefined;
812
+ reportUrl?: string | undefined;
813
+ }[] | undefined;
814
+ safety?: {
815
+ contentFilteringDefault: "strict" | "none" | "provider_default";
816
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
817
+ safetyCardUrl?: string | undefined;
818
+ knownLimitations?: string[] | undefined;
819
+ } | undefined;
820
+ };
821
+ issuedAt: string;
822
+ signatures: {
823
+ signature: string;
824
+ signedAt: string;
825
+ algorithm: "ed25519";
826
+ canonicalization: "jcs";
827
+ keyId: string;
828
+ }[];
829
+ schemaVersion: 1;
830
+ license: {
831
+ displayName: string;
832
+ licenseId: string;
833
+ commercialUseAllowed: boolean;
834
+ requiresAttribution: boolean;
835
+ url?: string | undefined;
836
+ acceptableUsePolicyUrl?: string | undefined;
837
+ };
838
+ provenance: {
839
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
840
+ baseModelId?: string | undefined;
841
+ trainingOrganization?: string | undefined;
842
+ };
843
+ releaseId: string;
844
+ artifacts: {
845
+ path: string;
846
+ digest: string;
847
+ sizeBytes: number;
848
+ mediaType?: string | undefined;
849
+ }[];
850
+ }>;
851
+ gpaiDocumentation: z.ZodEffects<z.ZodObject<{
852
+ /** Annex XI §1(2), Annex XII §1(a): the tasks the model is intended for. */
853
+ intendedTasks: z.ZodOptional<z.ZodString>;
854
+ /** Annex XI §1(4), Annex XII §1(a). */
855
+ distributionMethods: z.ZodArray<z.ZodEnum<["oxy_api", "downloadable_weights"]>, "many">;
856
+ /** Annex XI §1(5), reachable through Annex XII §1(a) ("points 1 to 5"). */
857
+ architecture: z.ZodOptional<z.ZodString>;
858
+ /** Annex XI §1(5): the number of parameters. */
859
+ parameterCount: z.ZodOptional<z.ZodNumber>;
860
+ /** Article 53(1)(d): the publicly available summary of training content. */
861
+ trainingDataSummaryUrl: z.ZodString;
862
+ /**
863
+ * Article 53(1)(c): the policy for complying with Union copyright law,
864
+ * including the reservation of rights under Article 4(3) of Directive
865
+ * (EU) 2019/790. Required of every release — Article 53(2) does not exempt it.
866
+ */
867
+ copyrightPolicyUrl: z.ZodString;
868
+ /** Article 51. */
869
+ systemicRisk: z.ZodEnum<["not_designated", "presumed_by_training_compute", "designated_by_commission"]>;
870
+ /**
871
+ * Whether the release is under a free and open-source licence in the sense
872
+ * of Article 53(2). Distinct from `modelLicenseSchema.commercialUseAllowed`,
873
+ * which answers whether OXY may serve the model — a licence can permit
874
+ * commercial use and still not permit access, modification and
875
+ * redistribution of the weights, and it is the second question the exemption
876
+ * turns on.
877
+ */
878
+ freeAndOpenSourceRelease: z.ZodBoolean;
879
+ } & {
880
+ /** Annex XI §2(b): the computational resources used for training. */
881
+ trainingComputeFlops: z.ZodOptional<z.ZodString>;
882
+ /** Annex XI §2(b): the training time. */
883
+ trainingTimeHours: z.ZodOptional<z.ZodNumber>;
884
+ /**
885
+ * Annex XI §2(c): the known or ESTIMATED energy consumption. The Act asks
886
+ * for an estimate where the figure is not known, so absence here means the
887
+ * Annex XI set is exempt rather than that the number was hard to obtain.
888
+ */
889
+ energyConsumptionMwh: z.ZodOptional<z.ZodNumber>;
890
+ /**
891
+ * Article 55(1)(a): the model evaluation, including adversarial testing,
892
+ * performed for a model with systemic risk. A pointer, like every other
893
+ * document reference here — the catalogue holds no report.
894
+ */
895
+ adversarialTestingReportUrl: z.ZodOptional<z.ZodString>;
896
+ }, "strict", z.ZodTypeAny, {
897
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
898
+ trainingDataSummaryUrl: string;
899
+ copyrightPolicyUrl: string;
900
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
901
+ freeAndOpenSourceRelease: boolean;
902
+ architecture?: string | undefined;
903
+ intendedTasks?: string | undefined;
904
+ parameterCount?: number | undefined;
905
+ trainingComputeFlops?: string | undefined;
906
+ trainingTimeHours?: number | undefined;
907
+ energyConsumptionMwh?: number | undefined;
908
+ adversarialTestingReportUrl?: string | undefined;
909
+ }, {
910
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
911
+ trainingDataSummaryUrl: string;
912
+ copyrightPolicyUrl: string;
913
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
914
+ freeAndOpenSourceRelease: boolean;
915
+ architecture?: string | undefined;
916
+ intendedTasks?: string | undefined;
917
+ parameterCount?: number | undefined;
918
+ trainingComputeFlops?: string | undefined;
919
+ trainingTimeHours?: number | undefined;
920
+ energyConsumptionMwh?: number | undefined;
921
+ adversarialTestingReportUrl?: string | undefined;
922
+ }>, {
923
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
924
+ trainingDataSummaryUrl: string;
925
+ copyrightPolicyUrl: string;
926
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
927
+ freeAndOpenSourceRelease: boolean;
928
+ architecture?: string | undefined;
929
+ intendedTasks?: string | undefined;
930
+ parameterCount?: number | undefined;
931
+ trainingComputeFlops?: string | undefined;
932
+ trainingTimeHours?: number | undefined;
933
+ energyConsumptionMwh?: number | undefined;
934
+ adversarialTestingReportUrl?: string | undefined;
935
+ }, {
936
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
937
+ trainingDataSummaryUrl: string;
938
+ copyrightPolicyUrl: string;
939
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
940
+ freeAndOpenSourceRelease: boolean;
941
+ architecture?: string | undefined;
942
+ intendedTasks?: string | undefined;
943
+ parameterCount?: number | undefined;
944
+ trainingComputeFlops?: string | undefined;
945
+ trainingTimeHours?: number | undefined;
946
+ energyConsumptionMwh?: number | undefined;
947
+ adversarialTestingReportUrl?: string | undefined;
948
+ }>;
949
+ model: z.ZodObject<{
950
+ displayName: z.ZodString;
951
+ description: z.ZodOptional<z.ZodString>;
952
+ capabilities: z.ZodObject<{
953
+ inputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
954
+ outputModalities: z.ZodArray<z.ZodEnum<["text", "image", "audio", "video", "embedding"]>, "many">;
955
+ tools: z.ZodBoolean;
956
+ parallelToolCalls: z.ZodBoolean;
957
+ structuredOutput: z.ZodBoolean;
958
+ jsonMode: z.ZodBoolean;
959
+ reasoning: z.ZodBoolean;
960
+ streaming: z.ZodBoolean;
961
+ promptCaching: z.ZodBoolean;
962
+ maxContextTokens: z.ZodNumber;
963
+ maxOutputTokens: z.ZodNumber;
964
+ }, "strict", z.ZodTypeAny, {
965
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
966
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
967
+ tools: boolean;
968
+ parallelToolCalls: boolean;
969
+ structuredOutput: boolean;
970
+ jsonMode: boolean;
971
+ reasoning: boolean;
972
+ streaming: boolean;
973
+ promptCaching: boolean;
974
+ maxContextTokens: number;
975
+ maxOutputTokens: number;
976
+ }, {
977
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
978
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
979
+ tools: boolean;
980
+ parallelToolCalls: boolean;
981
+ structuredOutput: boolean;
982
+ jsonMode: boolean;
983
+ reasoning: boolean;
984
+ streaming: boolean;
985
+ promptCaching: boolean;
986
+ maxContextTokens: number;
987
+ maxOutputTokens: number;
988
+ }>;
989
+ knowledgeCutoff: z.ZodOptional<z.ZodString>;
990
+ releasedOn: z.ZodOptional<z.ZodString>;
991
+ }, "strict", z.ZodTypeAny, {
992
+ displayName: string;
993
+ capabilities: {
994
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
995
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
996
+ tools: boolean;
997
+ parallelToolCalls: boolean;
998
+ structuredOutput: boolean;
999
+ jsonMode: boolean;
1000
+ reasoning: boolean;
1001
+ streaming: boolean;
1002
+ promptCaching: boolean;
1003
+ maxContextTokens: number;
1004
+ maxOutputTokens: number;
1005
+ };
1006
+ description?: string | undefined;
1007
+ knowledgeCutoff?: string | undefined;
1008
+ releasedOn?: string | undefined;
1009
+ }, {
1010
+ displayName: string;
1011
+ capabilities: {
1012
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1013
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1014
+ tools: boolean;
1015
+ parallelToolCalls: boolean;
1016
+ structuredOutput: boolean;
1017
+ jsonMode: boolean;
1018
+ reasoning: boolean;
1019
+ streaming: boolean;
1020
+ promptCaching: boolean;
1021
+ maxContextTokens: number;
1022
+ maxOutputTokens: number;
1023
+ };
1024
+ description?: string | undefined;
1025
+ knowledgeCutoff?: string | undefined;
1026
+ releasedOn?: string | undefined;
1027
+ }>;
1028
+ }, "strict", z.ZodTypeAny, {
1029
+ schemaVersion: 1;
1030
+ model: {
1031
+ displayName: string;
1032
+ capabilities: {
1033
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1034
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1035
+ tools: boolean;
1036
+ parallelToolCalls: boolean;
1037
+ structuredOutput: boolean;
1038
+ jsonMode: boolean;
1039
+ reasoning: boolean;
1040
+ streaming: boolean;
1041
+ promptCaching: boolean;
1042
+ maxContextTokens: number;
1043
+ maxOutputTokens: number;
1044
+ };
1045
+ description?: string | undefined;
1046
+ knowledgeCutoff?: string | undefined;
1047
+ releasedOn?: string | undefined;
1048
+ };
1049
+ manifest: {
1050
+ revision: {
1051
+ revision: string;
1052
+ schemaVersion: 1;
1053
+ modelId: string;
1054
+ revisionId: string;
1055
+ reference: string;
1056
+ releasedAt: string;
1057
+ evaluations: {
1058
+ score: string;
1059
+ suite: string;
1060
+ metric: string;
1061
+ evaluatedAt?: string | undefined;
1062
+ reportUrl?: string | undefined;
1063
+ }[];
1064
+ retiredAt?: string | undefined;
1065
+ artifactDigest?: string | undefined;
1066
+ modelCardUrl?: string | undefined;
1067
+ safety?: {
1068
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1069
+ knownLimitations: string[];
1070
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1071
+ safetyCardUrl?: string | undefined;
1072
+ } | undefined;
1073
+ };
1074
+ issuedAt: string;
1075
+ signatures: {
1076
+ signature: string;
1077
+ signedAt: string;
1078
+ algorithm: "ed25519";
1079
+ canonicalization: "jcs";
1080
+ keyId: string;
1081
+ }[];
1082
+ schemaVersion: 1;
1083
+ license: {
1084
+ displayName: string;
1085
+ licenseId: string;
1086
+ commercialUseAllowed: boolean;
1087
+ requiresAttribution: boolean;
1088
+ url?: string | undefined;
1089
+ acceptableUsePolicyUrl?: string | undefined;
1090
+ };
1091
+ provenance: {
1092
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1093
+ baseModelId?: string | undefined;
1094
+ trainingOrganization?: string | undefined;
1095
+ };
1096
+ releaseId: string;
1097
+ artifacts: {
1098
+ path: string;
1099
+ digest: string;
1100
+ sizeBytes: number;
1101
+ mediaType?: string | undefined;
1102
+ }[];
1103
+ };
1104
+ gpaiDocumentation: {
1105
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1106
+ trainingDataSummaryUrl: string;
1107
+ copyrightPolicyUrl: string;
1108
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1109
+ freeAndOpenSourceRelease: boolean;
1110
+ architecture?: string | undefined;
1111
+ intendedTasks?: string | undefined;
1112
+ parameterCount?: number | undefined;
1113
+ trainingComputeFlops?: string | undefined;
1114
+ trainingTimeHours?: number | undefined;
1115
+ energyConsumptionMwh?: number | undefined;
1116
+ adversarialTestingReportUrl?: string | undefined;
1117
+ };
1118
+ }, {
1119
+ schemaVersion: 1;
1120
+ model: {
1121
+ displayName: string;
1122
+ capabilities: {
1123
+ inputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1124
+ outputModalities: ("image" | "text" | "audio" | "video" | "embedding")[];
1125
+ tools: boolean;
1126
+ parallelToolCalls: boolean;
1127
+ structuredOutput: boolean;
1128
+ jsonMode: boolean;
1129
+ reasoning: boolean;
1130
+ streaming: boolean;
1131
+ promptCaching: boolean;
1132
+ maxContextTokens: number;
1133
+ maxOutputTokens: number;
1134
+ };
1135
+ description?: string | undefined;
1136
+ knowledgeCutoff?: string | undefined;
1137
+ releasedOn?: string | undefined;
1138
+ };
1139
+ manifest: {
1140
+ revision: {
1141
+ revision: string;
1142
+ schemaVersion: 1;
1143
+ modelId: string;
1144
+ revisionId: string;
1145
+ reference: string;
1146
+ releasedAt: string;
1147
+ retiredAt?: string | undefined;
1148
+ artifactDigest?: string | undefined;
1149
+ modelCardUrl?: string | undefined;
1150
+ evaluations?: {
1151
+ score: string;
1152
+ suite: string;
1153
+ metric: string;
1154
+ evaluatedAt?: string | undefined;
1155
+ reportUrl?: string | undefined;
1156
+ }[] | undefined;
1157
+ safety?: {
1158
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1159
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1160
+ safetyCardUrl?: string | undefined;
1161
+ knownLimitations?: string[] | undefined;
1162
+ } | undefined;
1163
+ };
1164
+ issuedAt: string;
1165
+ signatures: {
1166
+ signature: string;
1167
+ signedAt: string;
1168
+ algorithm: "ed25519";
1169
+ canonicalization: "jcs";
1170
+ keyId: string;
1171
+ }[];
1172
+ schemaVersion: 1;
1173
+ license: {
1174
+ displayName: string;
1175
+ licenseId: string;
1176
+ commercialUseAllowed: boolean;
1177
+ requiresAttribution: boolean;
1178
+ url?: string | undefined;
1179
+ acceptableUsePolicyUrl?: string | undefined;
1180
+ };
1181
+ provenance: {
1182
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1183
+ baseModelId?: string | undefined;
1184
+ trainingOrganization?: string | undefined;
1185
+ };
1186
+ releaseId: string;
1187
+ artifacts: {
1188
+ path: string;
1189
+ digest: string;
1190
+ sizeBytes: number;
1191
+ mediaType?: string | undefined;
1192
+ }[];
1193
+ };
1194
+ gpaiDocumentation: {
1195
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1196
+ trainingDataSummaryUrl: string;
1197
+ copyrightPolicyUrl: string;
1198
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1199
+ freeAndOpenSourceRelease: boolean;
1200
+ architecture?: string | undefined;
1201
+ intendedTasks?: string | undefined;
1202
+ parameterCount?: number | undefined;
1203
+ trainingComputeFlops?: string | undefined;
1204
+ trainingTimeHours?: number | undefined;
1205
+ energyConsumptionMwh?: number | undefined;
1206
+ adversarialTestingReportUrl?: string | undefined;
1207
+ };
1208
+ }>;
1209
+ /**
1210
+ * What ingestion reports back.
1211
+ *
1212
+ * COUNTS for the artifacts and signatures rather than echoing them: the caller
1213
+ * sent them and the interesting fact is that all of them landed. Echoing a
1214
+ * signature would also make this response a place a credential-shaped value gets
1215
+ * logged, for no gain.
1216
+ *
1217
+ * No verification field — see this module's header, and `aliaModelRelease.ts`.
1218
+ */
1219
+ export declare const modelReleaseIngestionResultSchema: z.ZodObject<{
1220
+ /** See `version.ts`: served on its own, so it is versioned. */
1221
+ schemaVersion: z.ZodLiteral<1>;
1222
+ releaseId: z.ZodString;
1223
+ modelId: z.ZodString;
1224
+ revision: z.ZodString;
1225
+ reference: z.ZodString;
1226
+ /** Whether this request created the release, or found it already ingested. */
1227
+ outcome: z.ZodEnum<["ingested", "already_ingested"]>;
1228
+ artifactCount: z.ZodNumber;
1229
+ signatureCount: z.ZodNumber;
1230
+ evaluationCount: z.ZodNumber;
1231
+ ingestedAt: z.ZodString;
1232
+ }, "strict", z.ZodTypeAny, {
1233
+ revision: string;
1234
+ outcome: "ingested" | "already_ingested";
1235
+ schemaVersion: 1;
1236
+ modelId: string;
1237
+ reference: string;
1238
+ releaseId: string;
1239
+ artifactCount: number;
1240
+ signatureCount: number;
1241
+ evaluationCount: number;
1242
+ ingestedAt: string;
1243
+ }, {
1244
+ revision: string;
1245
+ outcome: "ingested" | "already_ingested";
1246
+ schemaVersion: 1;
1247
+ modelId: string;
1248
+ reference: string;
1249
+ releaseId: string;
1250
+ artifactCount: number;
1251
+ signatureCount: number;
1252
+ evaluationCount: number;
1253
+ ingestedAt: string;
1254
+ }>;
1255
+ /**
1256
+ * The documentation for ONE revision, as a downstream developer reads it.
1257
+ *
1258
+ * Revision-scoped, and that is the point of it existing beside
1259
+ * `modelCatalogueEntrySchema`. The catalogue entry carries the documentation of
1260
+ * whichever revision is CURRENT, so a customer who pinned
1261
+ * `<publisher>/<model>@<revision>` — which the catalogue invites, and which the
1262
+ * immutability trigger on `inference_model_revisions` exists to make meaningful —
1263
+ * had no way to read the model card, evaluations or safety metadata of the
1264
+ * revision they are actually calling. A model card that only describes the
1265
+ * newest weights is the exact conflation ADR 0008 separates revisions to prevent.
1266
+ *
1267
+ * `license` and `provenance` are the MODEL's, repeated here rather than linked,
1268
+ * for the same reason `modelCatalogueEntrySchema` repeats its fields: a
1269
+ * projection that nests the operational descriptors is one accident of nesting
1270
+ * away from serving an internal identifier.
1271
+ */
1272
+ export declare const modelDocumentationSchema: z.ZodEffects<z.ZodObject<{
1273
+ /** See `version.ts`: this is a public response shape. */
1274
+ schemaVersion: z.ZodLiteral<1>;
1275
+ modelId: z.ZodString;
1276
+ revision: z.ZodString;
1277
+ /** The exact string a customer pins. */
1278
+ reference: z.ZodString;
1279
+ /** Whether a bare `<publisher>/<model>` resolves to this revision today. */
1280
+ isCurrentRevision: z.ZodBoolean;
1281
+ releasedAt: z.ZodString;
1282
+ retiredAt: z.ZodOptional<z.ZodString>;
1283
+ modelCardUrl: z.ZodOptional<z.ZodString>;
1284
+ /**
1285
+ * The digest of the served artifact, where Oxy hosts the weights.
1286
+ *
1287
+ * Customer-safe, deliberately: it is the one field on this view that lets a
1288
+ * developer check that the weights they were handed are the weights the
1289
+ * documentation describes, and a digest discloses nothing but the identity of
1290
+ * bytes Oxy is already serving them.
1291
+ */
1292
+ artifactDigest: z.ZodOptional<z.ZodString>;
1293
+ license: z.ZodObject<{
1294
+ licenseId: z.ZodString;
1295
+ displayName: z.ZodString;
1296
+ url: z.ZodOptional<z.ZodString>;
1297
+ commercialUseAllowed: z.ZodBoolean;
1298
+ requiresAttribution: z.ZodBoolean;
1299
+ acceptableUsePolicyUrl: z.ZodOptional<z.ZodString>;
1300
+ }, "strict", z.ZodTypeAny, {
1301
+ displayName: string;
1302
+ licenseId: string;
1303
+ commercialUseAllowed: boolean;
1304
+ requiresAttribution: boolean;
1305
+ url?: string | undefined;
1306
+ acceptableUsePolicyUrl?: string | undefined;
1307
+ }, {
1308
+ displayName: string;
1309
+ licenseId: string;
1310
+ commercialUseAllowed: boolean;
1311
+ requiresAttribution: boolean;
1312
+ url?: string | undefined;
1313
+ acceptableUsePolicyUrl?: string | undefined;
1314
+ }>;
1315
+ provenance: z.ZodObject<{
1316
+ releaseKind: z.ZodEnum<["first_party_original", "first_party_derived", "open_weight", "third_party_hosted"]>;
1317
+ baseModelId: z.ZodOptional<z.ZodString>;
1318
+ trainingOrganization: z.ZodOptional<z.ZodString>;
1319
+ }, "strict", z.ZodTypeAny, {
1320
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1321
+ baseModelId?: string | undefined;
1322
+ trainingOrganization?: string | undefined;
1323
+ }, {
1324
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1325
+ baseModelId?: string | undefined;
1326
+ trainingOrganization?: string | undefined;
1327
+ }>;
1328
+ evaluations: z.ZodDefault<z.ZodArray<z.ZodObject<{
1329
+ suite: z.ZodString;
1330
+ metric: z.ZodString;
1331
+ score: z.ZodString;
1332
+ evaluatedAt: z.ZodOptional<z.ZodString>;
1333
+ reportUrl: z.ZodOptional<z.ZodString>;
1334
+ }, "strict", z.ZodTypeAny, {
1335
+ score: string;
1336
+ suite: string;
1337
+ metric: string;
1338
+ evaluatedAt?: string | undefined;
1339
+ reportUrl?: string | undefined;
1340
+ }, {
1341
+ score: string;
1342
+ suite: string;
1343
+ metric: string;
1344
+ evaluatedAt?: string | undefined;
1345
+ reportUrl?: string | undefined;
1346
+ }>, "many">>;
1347
+ safety: z.ZodOptional<z.ZodObject<{
1348
+ safetyCardUrl: z.ZodOptional<z.ZodString>;
1349
+ contentFilteringDefault: z.ZodEnum<["none", "provider_default", "strict"]>;
1350
+ knownLimitations: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1351
+ provenanceMarking: z.ZodEnum<["none", "visible_watermark", "invisible_watermark", "c2pa"]>;
1352
+ }, "strict", z.ZodTypeAny, {
1353
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1354
+ knownLimitations: string[];
1355
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1356
+ safetyCardUrl?: string | undefined;
1357
+ }, {
1358
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1359
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1360
+ safetyCardUrl?: string | undefined;
1361
+ knownLimitations?: string[] | undefined;
1362
+ }>>;
1363
+ /** Absent for a revision with no documentation record — i.e. every one Oxy did not release. */
1364
+ gpai: z.ZodOptional<z.ZodObject<{
1365
+ /** Annex XI §1(2), Annex XII §1(a): the tasks the model is intended for. */
1366
+ intendedTasks: z.ZodOptional<z.ZodString>;
1367
+ /** Annex XI §1(4), Annex XII §1(a). */
1368
+ distributionMethods: z.ZodArray<z.ZodEnum<["oxy_api", "downloadable_weights"]>, "many">;
1369
+ /** Annex XI §1(5), reachable through Annex XII §1(a) ("points 1 to 5"). */
1370
+ architecture: z.ZodOptional<z.ZodString>;
1371
+ /** Annex XI §1(5): the number of parameters. */
1372
+ parameterCount: z.ZodOptional<z.ZodNumber>;
1373
+ /** Article 53(1)(d): the publicly available summary of training content. */
1374
+ trainingDataSummaryUrl: z.ZodString;
1375
+ /**
1376
+ * Article 53(1)(c): the policy for complying with Union copyright law,
1377
+ * including the reservation of rights under Article 4(3) of Directive
1378
+ * (EU) 2019/790. Required of every release — Article 53(2) does not exempt it.
1379
+ */
1380
+ copyrightPolicyUrl: z.ZodString;
1381
+ /** Article 51. */
1382
+ systemicRisk: z.ZodEnum<["not_designated", "presumed_by_training_compute", "designated_by_commission"]>;
1383
+ /**
1384
+ * Whether the release is under a free and open-source licence in the sense
1385
+ * of Article 53(2). Distinct from `modelLicenseSchema.commercialUseAllowed`,
1386
+ * which answers whether OXY may serve the model — a licence can permit
1387
+ * commercial use and still not permit access, modification and
1388
+ * redistribution of the weights, and it is the second question the exemption
1389
+ * turns on.
1390
+ */
1391
+ freeAndOpenSourceRelease: z.ZodBoolean;
1392
+ }, "strict", z.ZodTypeAny, {
1393
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1394
+ trainingDataSummaryUrl: string;
1395
+ copyrightPolicyUrl: string;
1396
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1397
+ freeAndOpenSourceRelease: boolean;
1398
+ architecture?: string | undefined;
1399
+ intendedTasks?: string | undefined;
1400
+ parameterCount?: number | undefined;
1401
+ }, {
1402
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1403
+ trainingDataSummaryUrl: string;
1404
+ copyrightPolicyUrl: string;
1405
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1406
+ freeAndOpenSourceRelease: boolean;
1407
+ architecture?: string | undefined;
1408
+ intendedTasks?: string | undefined;
1409
+ parameterCount?: number | undefined;
1410
+ }>>;
1411
+ }, "strict", z.ZodTypeAny, {
1412
+ revision: string;
1413
+ schemaVersion: 1;
1414
+ modelId: string;
1415
+ license: {
1416
+ displayName: string;
1417
+ licenseId: string;
1418
+ commercialUseAllowed: boolean;
1419
+ requiresAttribution: boolean;
1420
+ url?: string | undefined;
1421
+ acceptableUsePolicyUrl?: string | undefined;
1422
+ };
1423
+ provenance: {
1424
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1425
+ baseModelId?: string | undefined;
1426
+ trainingOrganization?: string | undefined;
1427
+ };
1428
+ reference: string;
1429
+ releasedAt: string;
1430
+ evaluations: {
1431
+ score: string;
1432
+ suite: string;
1433
+ metric: string;
1434
+ evaluatedAt?: string | undefined;
1435
+ reportUrl?: string | undefined;
1436
+ }[];
1437
+ isCurrentRevision: boolean;
1438
+ retiredAt?: string | undefined;
1439
+ artifactDigest?: string | undefined;
1440
+ modelCardUrl?: string | undefined;
1441
+ safety?: {
1442
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1443
+ knownLimitations: string[];
1444
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1445
+ safetyCardUrl?: string | undefined;
1446
+ } | undefined;
1447
+ gpai?: {
1448
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1449
+ trainingDataSummaryUrl: string;
1450
+ copyrightPolicyUrl: string;
1451
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1452
+ freeAndOpenSourceRelease: boolean;
1453
+ architecture?: string | undefined;
1454
+ intendedTasks?: string | undefined;
1455
+ parameterCount?: number | undefined;
1456
+ } | undefined;
1457
+ }, {
1458
+ revision: string;
1459
+ schemaVersion: 1;
1460
+ modelId: string;
1461
+ license: {
1462
+ displayName: string;
1463
+ licenseId: string;
1464
+ commercialUseAllowed: boolean;
1465
+ requiresAttribution: boolean;
1466
+ url?: string | undefined;
1467
+ acceptableUsePolicyUrl?: string | undefined;
1468
+ };
1469
+ provenance: {
1470
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1471
+ baseModelId?: string | undefined;
1472
+ trainingOrganization?: string | undefined;
1473
+ };
1474
+ reference: string;
1475
+ releasedAt: string;
1476
+ isCurrentRevision: boolean;
1477
+ retiredAt?: string | undefined;
1478
+ artifactDigest?: string | undefined;
1479
+ modelCardUrl?: string | undefined;
1480
+ evaluations?: {
1481
+ score: string;
1482
+ suite: string;
1483
+ metric: string;
1484
+ evaluatedAt?: string | undefined;
1485
+ reportUrl?: string | undefined;
1486
+ }[] | undefined;
1487
+ safety?: {
1488
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1489
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1490
+ safetyCardUrl?: string | undefined;
1491
+ knownLimitations?: string[] | undefined;
1492
+ } | undefined;
1493
+ gpai?: {
1494
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1495
+ trainingDataSummaryUrl: string;
1496
+ copyrightPolicyUrl: string;
1497
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1498
+ freeAndOpenSourceRelease: boolean;
1499
+ architecture?: string | undefined;
1500
+ intendedTasks?: string | undefined;
1501
+ parameterCount?: number | undefined;
1502
+ } | undefined;
1503
+ }>, {
1504
+ revision: string;
1505
+ schemaVersion: 1;
1506
+ modelId: string;
1507
+ license: {
1508
+ displayName: string;
1509
+ licenseId: string;
1510
+ commercialUseAllowed: boolean;
1511
+ requiresAttribution: boolean;
1512
+ url?: string | undefined;
1513
+ acceptableUsePolicyUrl?: string | undefined;
1514
+ };
1515
+ provenance: {
1516
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1517
+ baseModelId?: string | undefined;
1518
+ trainingOrganization?: string | undefined;
1519
+ };
1520
+ reference: string;
1521
+ releasedAt: string;
1522
+ evaluations: {
1523
+ score: string;
1524
+ suite: string;
1525
+ metric: string;
1526
+ evaluatedAt?: string | undefined;
1527
+ reportUrl?: string | undefined;
1528
+ }[];
1529
+ isCurrentRevision: boolean;
1530
+ retiredAt?: string | undefined;
1531
+ artifactDigest?: string | undefined;
1532
+ modelCardUrl?: string | undefined;
1533
+ safety?: {
1534
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1535
+ knownLimitations: string[];
1536
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1537
+ safetyCardUrl?: string | undefined;
1538
+ } | undefined;
1539
+ gpai?: {
1540
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1541
+ trainingDataSummaryUrl: string;
1542
+ copyrightPolicyUrl: string;
1543
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1544
+ freeAndOpenSourceRelease: boolean;
1545
+ architecture?: string | undefined;
1546
+ intendedTasks?: string | undefined;
1547
+ parameterCount?: number | undefined;
1548
+ } | undefined;
1549
+ }, {
1550
+ revision: string;
1551
+ schemaVersion: 1;
1552
+ modelId: string;
1553
+ license: {
1554
+ displayName: string;
1555
+ licenseId: string;
1556
+ commercialUseAllowed: boolean;
1557
+ requiresAttribution: boolean;
1558
+ url?: string | undefined;
1559
+ acceptableUsePolicyUrl?: string | undefined;
1560
+ };
1561
+ provenance: {
1562
+ releaseKind: "first_party_original" | "first_party_derived" | "open_weight" | "third_party_hosted";
1563
+ baseModelId?: string | undefined;
1564
+ trainingOrganization?: string | undefined;
1565
+ };
1566
+ reference: string;
1567
+ releasedAt: string;
1568
+ isCurrentRevision: boolean;
1569
+ retiredAt?: string | undefined;
1570
+ artifactDigest?: string | undefined;
1571
+ modelCardUrl?: string | undefined;
1572
+ evaluations?: {
1573
+ score: string;
1574
+ suite: string;
1575
+ metric: string;
1576
+ evaluatedAt?: string | undefined;
1577
+ reportUrl?: string | undefined;
1578
+ }[] | undefined;
1579
+ safety?: {
1580
+ contentFilteringDefault: "strict" | "none" | "provider_default";
1581
+ provenanceMarking: "none" | "visible_watermark" | "invisible_watermark" | "c2pa";
1582
+ safetyCardUrl?: string | undefined;
1583
+ knownLimitations?: string[] | undefined;
1584
+ } | undefined;
1585
+ gpai?: {
1586
+ distributionMethods: ("oxy_api" | "downloadable_weights")[];
1587
+ trainingDataSummaryUrl: string;
1588
+ copyrightPolicyUrl: string;
1589
+ systemicRisk: "not_designated" | "presumed_by_training_compute" | "designated_by_commission";
1590
+ freeAndOpenSourceRelease: boolean;
1591
+ architecture?: string | undefined;
1592
+ intendedTasks?: string | undefined;
1593
+ parameterCount?: number | undefined;
1594
+ } | undefined;
1595
+ }>;
1596
+ export type ModelDistributionMethod = z.infer<typeof modelDistributionMethodSchema>;
1597
+ export type ModelSystemicRiskTier = z.infer<typeof modelSystemicRiskTierSchema>;
1598
+ export type ModelDownstreamDocumentation = z.infer<typeof modelDownstreamDocumentationSchema>;
1599
+ export type ModelGpaiDocumentation = z.infer<typeof modelGpaiDocumentationSchema>;
1600
+ export type ModelLineDeclaration = z.infer<typeof modelLineDeclarationSchema>;
1601
+ export type ModelReleaseIngestionRequest = z.infer<typeof modelReleaseIngestionRequestSchema>;
1602
+ export type ModelReleaseIngestionResult = z.infer<typeof modelReleaseIngestionResultSchema>;
1603
+ export type ModelDocumentation = z.infer<typeof modelDocumentationSchema>;