@claudexor/schema 3.12.8 → 3.12.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/control-harness-list.d.ts +9 -0
  2. package/dist/control-harness-list.d.ts.map +1 -1
  3. package/dist/control-operation-responses.d.ts +43 -0
  4. package/dist/control-operation-responses.d.ts.map +1 -1
  5. package/dist/control-run-detail.d.ts +119 -0
  6. package/dist/control-run-detail.d.ts.map +1 -1
  7. package/dist/control-run-failure.d.ts +43 -0
  8. package/dist/control-run-failure.d.ts.map +1 -1
  9. package/dist/control-run-failure.js +29 -0
  10. package/dist/control-run-failure.js.map +1 -1
  11. package/dist/control.d.ts +33 -0
  12. package/dist/control.d.ts.map +1 -1
  13. package/dist/credential-profile-snapshot.d.ts +18 -0
  14. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  15. package/dist/harness.d.ts +27 -0
  16. package/dist/harness.d.ts.map +1 -1
  17. package/dist/harness.js +12 -0
  18. package/dist/harness.js.map +1 -1
  19. package/dist/mcp-run-result.d.ts +66 -0
  20. package/dist/mcp-run-result.d.ts.map +1 -1
  21. package/dist/readiness.d.ts +7 -0
  22. package/dist/readiness.d.ts.map +1 -1
  23. package/generated/ControlCredentialProfilesQueryResponse.schema.json +8 -0
  24. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +8 -0
  25. package/generated/ControlHarnessListResponse.schema.json +8 -0
  26. package/generated/ControlRunDetail.schema.json +52 -0
  27. package/generated/ControlRunListResponse.schema.json +52 -0
  28. package/generated/ControlRunSummary.schema.json +52 -0
  29. package/generated/HarnessManifest.schema.json +8 -0
  30. package/generated/HarnessStatusDto.schema.json +8 -0
  31. package/generated/McpRunHandleResult.schema.json +52 -0
  32. package/generated/McpRunToolResult.schema.json +52 -0
  33. package/generated/RunFailure.schema.json +52 -0
  34. package/package.json +2 -2
@@ -313,6 +313,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
313
313
  }>>>;
314
314
  effort_levels_verified_against: z.ZodDefault<z.ZodNullable<z.ZodString>>;
315
315
  model_inventory_routes: z.ZodOptional<z.ZodArray<z.ZodEnum<["local_session", "api_key"]>, "many">>;
316
+ model_inventory_absence: z.ZodOptional<z.ZodEnum<["authoritative", "advisory"]>>;
316
317
  known_models: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
317
318
  id: z.ZodString;
318
319
  routes: z.ZodArray<z.ZodEnum<["local_session", "api_key"]>, "many">;
@@ -349,6 +350,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
349
350
  }>;
350
351
  effort_levels_verified_against: string | null;
351
352
  model_inventory_routes?: ("api_key" | "local_session")[] | undefined;
353
+ model_inventory_absence?: "advisory" | "authoritative" | undefined;
352
354
  known_models: (string | {
353
355
  id: string;
354
356
  routes: ("api_key" | "local_session")[];
@@ -379,6 +381,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
379
381
  }> | undefined;
380
382
  effort_levels_verified_against?: string | null | undefined;
381
383
  model_inventory_routes?: ("api_key" | "local_session")[] | undefined;
384
+ model_inventory_absence?: "advisory" | "authoritative" | undefined;
382
385
  known_models?: (string | {
383
386
  id: string;
384
387
  routes: ("api_key" | "local_session")[];
@@ -457,6 +460,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
457
460
  }>;
458
461
  effort_levels_verified_against: string | null;
459
462
  model_inventory_routes?: ("api_key" | "local_session")[] | undefined;
463
+ model_inventory_absence?: "advisory" | "authoritative" | undefined;
460
464
  known_models: (string | {
461
465
  id: string;
462
466
  routes: ("api_key" | "local_session")[];
@@ -535,6 +539,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
535
539
  }> | undefined;
536
540
  effort_levels_verified_against?: string | null | undefined;
537
541
  model_inventory_routes?: ("api_key" | "local_session")[] | undefined;
542
+ model_inventory_absence?: "advisory" | "authoritative" | undefined;
538
543
  known_models?: (string | {
539
544
  id: string;
540
545
  routes: ("api_key" | "local_session")[];
@@ -726,6 +731,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
726
731
  }>;
727
732
  effort_levels_verified_against: string | null;
728
733
  model_inventory_routes?: ("api_key" | "local_session")[] | undefined;
734
+ model_inventory_absence?: "advisory" | "authoritative" | undefined;
729
735
  known_models: (string | {
730
736
  id: string;
731
737
  routes: ("api_key" | "local_session")[];
@@ -845,6 +851,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
845
851
  }> | undefined;
846
852
  effort_levels_verified_against?: string | null | undefined;
847
853
  model_inventory_routes?: ("api_key" | "local_session")[] | undefined;
854
+ model_inventory_absence?: "advisory" | "authoritative" | undefined;
848
855
  known_models?: (string | {
849
856
  id: string;
850
857
  routes: ("api_key" | "local_session")[];
@@ -1 +1 @@
1
- {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB;;;;;;EAS8C,CAAC;AAChF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAgB2C,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWzB;;;yEAGqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBrE;2EACuE;;;;;;;;;;;;;;;;;;;;IAKvE,+DAA+D;;IAM/D;;qDAEiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BlD,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB;;;;;;EAS8C,CAAC;AAChF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAgB2C,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWzB;;;yEAGqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBrE;2EACuE;;;;;;;;;;;;;;;;;;;;IAKvE,+DAA+D;;IAM/D;;qDAEiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BlD,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -940,6 +940,14 @@
940
940
  "minItems": 1,
941
941
  "description": "Credential routes supported by the adapter's live models() producer; omitted preserves all-route support. Other routes use manifest known_models, never another account's live inventory."
942
942
  },
943
+ "model_inventory_absence": {
944
+ "type": "string",
945
+ "enum": [
946
+ "authoritative",
947
+ "advisory"
948
+ ],
949
+ "description": "Whether this harness's live models() answer proves a model is ABSENT; omitted = authoritative (an unlisted model is refused). advisory = absence is not proof, so an explicit model is forwarded to the vendor and disclosed instead of refused."
950
+ },
943
951
  "known_models": {
944
952
  "type": "array",
945
953
  "items": {
@@ -919,6 +919,14 @@
919
919
  "minItems": 1,
920
920
  "description": "Credential routes supported by the adapter's live models() producer; omitted preserves all-route support. Other routes use manifest known_models, never another account's live inventory."
921
921
  },
922
+ "model_inventory_absence": {
923
+ "type": "string",
924
+ "enum": [
925
+ "authoritative",
926
+ "advisory"
927
+ ],
928
+ "description": "Whether this harness's live models() answer proves a model is ABSENT; omitted = authoritative (an unlisted model is refused). advisory = absence is not proof, so an explicit model is forwarded to the vendor and disclosed instead of refused."
929
+ },
922
930
  "known_models": {
923
931
  "type": "array",
924
932
  "items": {
@@ -554,6 +554,14 @@
554
554
  "minItems": 1,
555
555
  "description": "Credential routes supported by the adapter's live models() producer; omitted preserves all-route support. Other routes use manifest known_models, never another account's live inventory."
556
556
  },
557
+ "model_inventory_absence": {
558
+ "type": "string",
559
+ "enum": [
560
+ "authoritative",
561
+ "advisory"
562
+ ],
563
+ "description": "Whether this harness's live models() answer proves a model is ABSENT; omitted = authoritative (an unlisted model is refused). advisory = absence is not proof, so an explicit model is forwarded to the vendor and disclosed instead of refused."
564
+ },
557
565
  "known_models": {
558
566
  "type": "array",
559
567
  "items": {
@@ -424,6 +424,58 @@
424
424
  "default": null,
425
425
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
426
426
  },
427
+ "vendorFailure": {
428
+ "anyOf": [
429
+ {
430
+ "type": "object",
431
+ "properties": {
432
+ "code": {
433
+ "anyOf": [
434
+ {
435
+ "type": "string",
436
+ "minLength": 1,
437
+ "maxLength": 128
438
+ },
439
+ {
440
+ "type": "null"
441
+ }
442
+ ],
443
+ "description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
444
+ },
445
+ "message": {
446
+ "anyOf": [
447
+ {
448
+ "type": "string",
449
+ "maxLength": 4000
450
+ },
451
+ {
452
+ "type": "null"
453
+ }
454
+ ],
455
+ "description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
456
+ },
457
+ "source": {
458
+ "type": "string",
459
+ "minLength": 1,
460
+ "maxLength": 64,
461
+ "description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
462
+ }
463
+ },
464
+ "required": [
465
+ "code",
466
+ "message",
467
+ "source"
468
+ ],
469
+ "additionalProperties": false,
470
+ "description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
471
+ },
472
+ {
473
+ "type": "null"
474
+ }
475
+ ],
476
+ "description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
477
+ "default": null
478
+ },
427
479
  "nextActions": {
428
480
  "type": "array",
429
481
  "items": {
@@ -244,6 +244,58 @@
244
244
  "default": null,
245
245
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
246
246
  },
247
+ "vendorFailure": {
248
+ "anyOf": [
249
+ {
250
+ "type": "object",
251
+ "properties": {
252
+ "code": {
253
+ "anyOf": [
254
+ {
255
+ "type": "string",
256
+ "minLength": 1,
257
+ "maxLength": 128
258
+ },
259
+ {
260
+ "type": "null"
261
+ }
262
+ ],
263
+ "description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
264
+ },
265
+ "message": {
266
+ "anyOf": [
267
+ {
268
+ "type": "string",
269
+ "maxLength": 4000
270
+ },
271
+ {
272
+ "type": "null"
273
+ }
274
+ ],
275
+ "description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
276
+ },
277
+ "source": {
278
+ "type": "string",
279
+ "minLength": 1,
280
+ "maxLength": 64,
281
+ "description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
282
+ }
283
+ },
284
+ "required": [
285
+ "code",
286
+ "message",
287
+ "source"
288
+ ],
289
+ "additionalProperties": false,
290
+ "description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
291
+ },
292
+ {
293
+ "type": "null"
294
+ }
295
+ ],
296
+ "description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
297
+ "default": null
298
+ },
247
299
  "nextActions": {
248
300
  "type": "array",
249
301
  "items": {
@@ -239,6 +239,58 @@
239
239
  "default": null,
240
240
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
241
241
  },
242
+ "vendorFailure": {
243
+ "anyOf": [
244
+ {
245
+ "type": "object",
246
+ "properties": {
247
+ "code": {
248
+ "anyOf": [
249
+ {
250
+ "type": "string",
251
+ "minLength": 1,
252
+ "maxLength": 128
253
+ },
254
+ {
255
+ "type": "null"
256
+ }
257
+ ],
258
+ "description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
259
+ },
260
+ "message": {
261
+ "anyOf": [
262
+ {
263
+ "type": "string",
264
+ "maxLength": 4000
265
+ },
266
+ {
267
+ "type": "null"
268
+ }
269
+ ],
270
+ "description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
271
+ },
272
+ "source": {
273
+ "type": "string",
274
+ "minLength": 1,
275
+ "maxLength": 64,
276
+ "description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
277
+ }
278
+ },
279
+ "required": [
280
+ "code",
281
+ "message",
282
+ "source"
283
+ ],
284
+ "additionalProperties": false,
285
+ "description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
286
+ },
287
+ {
288
+ "type": "null"
289
+ }
290
+ ],
291
+ "description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
292
+ "default": null
293
+ },
242
294
  "nextActions": {
243
295
  "type": "array",
244
296
  "items": {
@@ -531,6 +531,14 @@
531
531
  "minItems": 1,
532
532
  "description": "Credential routes supported by the adapter's live models() producer; omitted preserves all-route support. Other routes use manifest known_models, never another account's live inventory."
533
533
  },
534
+ "model_inventory_absence": {
535
+ "type": "string",
536
+ "enum": [
537
+ "authoritative",
538
+ "advisory"
539
+ ],
540
+ "description": "Whether this harness's live models() answer proves a model is ABSENT; omitted = authoritative (an unlisted model is refused). advisory = absence is not proof, so an explicit model is forwarded to the vendor and disclosed instead of refused."
541
+ },
534
542
  "known_models": {
535
543
  "type": "array",
536
544
  "items": {
@@ -549,6 +549,14 @@
549
549
  "minItems": 1,
550
550
  "description": "Credential routes supported by the adapter's live models() producer; omitted preserves all-route support. Other routes use manifest known_models, never another account's live inventory."
551
551
  },
552
+ "model_inventory_absence": {
553
+ "type": "string",
554
+ "enum": [
555
+ "authoritative",
556
+ "advisory"
557
+ ],
558
+ "description": "Whether this harness's live models() answer proves a model is ABSENT; omitted = authoritative (an unlisted model is refused). advisory = absence is not proof, so an explicit model is forwarded to the vendor and disclosed instead of refused."
559
+ },
552
560
  "known_models": {
553
561
  "type": "array",
554
562
  "items": {
@@ -952,6 +952,58 @@
952
952
  "default": null,
953
953
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
954
954
  },
955
+ "vendorFailure": {
956
+ "anyOf": [
957
+ {
958
+ "type": "object",
959
+ "properties": {
960
+ "code": {
961
+ "anyOf": [
962
+ {
963
+ "type": "string",
964
+ "minLength": 1,
965
+ "maxLength": 128
966
+ },
967
+ {
968
+ "type": "null"
969
+ }
970
+ ],
971
+ "description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
972
+ },
973
+ "message": {
974
+ "anyOf": [
975
+ {
976
+ "type": "string",
977
+ "maxLength": 4000
978
+ },
979
+ {
980
+ "type": "null"
981
+ }
982
+ ],
983
+ "description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
984
+ },
985
+ "source": {
986
+ "type": "string",
987
+ "minLength": 1,
988
+ "maxLength": 64,
989
+ "description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
990
+ }
991
+ },
992
+ "required": [
993
+ "code",
994
+ "message",
995
+ "source"
996
+ ],
997
+ "additionalProperties": false,
998
+ "description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
999
+ },
1000
+ {
1001
+ "type": "null"
1002
+ }
1003
+ ],
1004
+ "description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
1005
+ "default": null
1006
+ },
955
1007
  "nextActions": {
956
1008
  "type": "array",
957
1009
  "items": {
@@ -928,6 +928,58 @@
928
928
  "default": null,
929
929
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
930
930
  },
931
+ "vendorFailure": {
932
+ "anyOf": [
933
+ {
934
+ "type": "object",
935
+ "properties": {
936
+ "code": {
937
+ "anyOf": [
938
+ {
939
+ "type": "string",
940
+ "minLength": 1,
941
+ "maxLength": 128
942
+ },
943
+ {
944
+ "type": "null"
945
+ }
946
+ ],
947
+ "description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
948
+ },
949
+ "message": {
950
+ "anyOf": [
951
+ {
952
+ "type": "string",
953
+ "maxLength": 4000
954
+ },
955
+ {
956
+ "type": "null"
957
+ }
958
+ ],
959
+ "description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
960
+ },
961
+ "source": {
962
+ "type": "string",
963
+ "minLength": 1,
964
+ "maxLength": 64,
965
+ "description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
966
+ }
967
+ },
968
+ "required": [
969
+ "code",
970
+ "message",
971
+ "source"
972
+ ],
973
+ "additionalProperties": false,
974
+ "description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
975
+ },
976
+ {
977
+ "type": "null"
978
+ }
979
+ ],
980
+ "description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
981
+ "default": null
982
+ },
931
983
  "nextActions": {
932
984
  "type": "array",
933
985
  "items": {
@@ -121,6 +121,58 @@
121
121
  "default": null,
122
122
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
123
123
  },
124
+ "vendorFailure": {
125
+ "anyOf": [
126
+ {
127
+ "type": "object",
128
+ "properties": {
129
+ "code": {
130
+ "anyOf": [
131
+ {
132
+ "type": "string",
133
+ "minLength": 1,
134
+ "maxLength": 128
135
+ },
136
+ {
137
+ "type": "null"
138
+ }
139
+ ],
140
+ "description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
141
+ },
142
+ "message": {
143
+ "anyOf": [
144
+ {
145
+ "type": "string",
146
+ "maxLength": 4000
147
+ },
148
+ {
149
+ "type": "null"
150
+ }
151
+ ],
152
+ "description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
153
+ },
154
+ "source": {
155
+ "type": "string",
156
+ "minLength": 1,
157
+ "maxLength": 64,
158
+ "description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
159
+ }
160
+ },
161
+ "required": [
162
+ "code",
163
+ "message",
164
+ "source"
165
+ ],
166
+ "additionalProperties": false,
167
+ "description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
168
+ },
169
+ {
170
+ "type": "null"
171
+ }
172
+ ],
173
+ "description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
174
+ "default": null
175
+ },
124
176
  "nextActions": {
125
177
  "type": "array",
126
178
  "items": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/schema",
3
- "version": "3.12.8",
3
+ "version": "3.12.10",
4
4
  "license": "MIT",
5
5
  "description": "Single source of truth for all Claudexor data shapes (Zod + generated JSON Schema).",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "zod": "^4.4.3",
22
22
  "zod-to-json-schema": "^3.24.1",
23
- "@claudexor/util": "3.12.8"
23
+ "@claudexor/util": "3.12.10"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",