@openvtc/trust-tasks 0.25.1 → 0.25.2

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 (115) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/_shared/components.d.ts +304 -2
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/device/list/0.1/payload.d.ts +4 -4
  5. package/dist/device/list/0.1/payload.d.ts.map +1 -1
  6. package/dist/device/list/0.1/payload.js +6 -2
  7. package/dist/device/list/0.1/payload.js.map +1 -1
  8. package/dist/device/list/0.2/payload.d.ts +4 -4
  9. package/dist/device/list/0.2/payload.d.ts.map +1 -1
  10. package/dist/device/list/0.2/payload.js +6 -2
  11. package/dist/device/list/0.2/payload.js.map +1 -1
  12. package/dist/device/register/0.1/payload.d.ts +4 -4
  13. package/dist/device/register/0.1/payload.d.ts.map +1 -1
  14. package/dist/device/register/0.1/payload.js +6 -2
  15. package/dist/device/register/0.1/payload.js.map +1 -1
  16. package/dist/device/register/0.2/payload.d.ts +4 -4
  17. package/dist/device/register/0.2/payload.d.ts.map +1 -1
  18. package/dist/device/register/0.2/payload.js +6 -2
  19. package/dist/device/register/0.2/payload.js.map +1 -1
  20. package/dist/index.d.ts +14 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +14 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/vetting/_shared/0.1/hidden-vetting.d.ts +16 -0
  25. package/dist/vetting/_shared/0.1/hidden-vetting.d.ts.map +1 -0
  26. package/dist/vetting/_shared/0.1/hidden-vetting.js +6 -0
  27. package/dist/vetting/_shared/0.1/hidden-vetting.js.map +1 -0
  28. package/dist/vetting/attestation/0.1/payload.d.ts +94 -146
  29. package/dist/vetting/attestation/0.1/payload.d.ts.map +1 -1
  30. package/dist/vetting/attestation/0.1/payload.js +43 -43
  31. package/dist/vetting/attestation/0.1/payload.js.map +1 -1
  32. package/dist/vta/_shared/0.4/pcs-engine.d.ts +16 -0
  33. package/dist/vta/_shared/0.4/pcs-engine.d.ts.map +1 -0
  34. package/dist/vta/_shared/0.4/pcs-engine.js +6 -0
  35. package/dist/vta/_shared/0.4/pcs-engine.js.map +1 -0
  36. package/dist/vta/pcs/applications/create/0.1/payload.d.ts +1215 -0
  37. package/dist/vta/pcs/applications/create/0.1/payload.d.ts.map +1 -0
  38. package/dist/vta/pcs/applications/create/0.1/payload.js +724 -0
  39. package/dist/vta/pcs/applications/create/0.1/payload.js.map +1 -0
  40. package/dist/vta/pcs/applications/delete/0.1/payload.d.ts +253 -0
  41. package/dist/vta/pcs/applications/delete/0.1/payload.d.ts.map +1 -0
  42. package/dist/vta/pcs/applications/delete/0.1/payload.js +146 -0
  43. package/dist/vta/pcs/applications/delete/0.1/payload.js.map +1 -0
  44. package/dist/vta/pcs/applications/show/0.1/payload.d.ts +733 -0
  45. package/dist/vta/pcs/applications/show/0.1/payload.d.ts.map +1 -0
  46. package/dist/vta/pcs/applications/show/0.1/payload.js +450 -0
  47. package/dist/vta/pcs/applications/show/0.1/payload.js.map +1 -0
  48. package/dist/vta/pcs/attest/0.1/payload.d.ts +1456 -0
  49. package/dist/vta/pcs/attest/0.1/payload.d.ts.map +1 -0
  50. package/dist/vta/pcs/attest/0.1/payload.js +876 -0
  51. package/dist/vta/pcs/attest/0.1/payload.js.map +1 -0
  52. package/dist/vta/pcs/prove/0.1/payload.d.ts +1348 -0
  53. package/dist/vta/pcs/prove/0.1/payload.d.ts.map +1 -0
  54. package/dist/vta/pcs/prove/0.1/payload.js +804 -0
  55. package/dist/vta/pcs/prove/0.1/payload.js.map +1 -0
  56. package/dist/vta/pcs/root-accept/0.1/payload.d.ts +1100 -0
  57. package/dist/vta/pcs/root-accept/0.1/payload.d.ts.map +1 -0
  58. package/dist/vta/pcs/root-accept/0.1/payload.js +634 -0
  59. package/dist/vta/pcs/root-accept/0.1/payload.js.map +1 -0
  60. package/dist/vta/pcs/root-request/0.1/payload.d.ts +880 -0
  61. package/dist/vta/pcs/root-request/0.1/payload.d.ts.map +1 -0
  62. package/dist/vta/pcs/root-request/0.1/payload.js +496 -0
  63. package/dist/vta/pcs/root-request/0.1/payload.js.map +1 -0
  64. package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts +612 -0
  65. package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts.map +1 -0
  66. package/dist/vta/pcs/tokens/abandon/0.1/payload.js +355 -0
  67. package/dist/vta/pcs/tokens/abandon/0.1/payload.js.map +1 -0
  68. package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts +1149 -0
  69. package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts.map +1 -0
  70. package/dist/vta/pcs/tokens/accept/0.1/payload.js +657 -0
  71. package/dist/vta/pcs/tokens/accept/0.1/payload.js.map +1 -0
  72. package/dist/vta/pcs/tokens/request/0.1/payload.d.ts +908 -0
  73. package/dist/vta/pcs/tokens/request/0.1/payload.d.ts.map +1 -0
  74. package/dist/vta/pcs/tokens/request/0.1/payload.js +508 -0
  75. package/dist/vta/pcs/tokens/request/0.1/payload.js.map +1 -0
  76. package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts +1423 -0
  77. package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts.map +1 -0
  78. package/dist/vta/pcs/verify-attestation/0.1/payload.js +850 -0
  79. package/dist/vta/pcs/verify-attestation/0.1/payload.js.map +1 -0
  80. package/dist/vta/pcs/vetter/show/0.1/payload.d.ts +605 -0
  81. package/dist/vta/pcs/vetter/show/0.1/payload.d.ts.map +1 -0
  82. package/dist/vta/pcs/vetter/show/0.1/payload.js +351 -0
  83. package/dist/vta/pcs/vetter/show/0.1/payload.js.map +1 -0
  84. package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts +403 -486
  85. package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts.map +1 -1
  86. package/dist/vtc/vetting/hidden/publish/0.1/payload.js +240 -240
  87. package/dist/vtc/vetting/hidden/publish/0.1/payload.js.map +1 -1
  88. package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts +482 -565
  89. package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts.map +1 -1
  90. package/dist/vtc/vetting/hidden/show/0.1/payload.js +294 -294
  91. package/dist/vtc/vetting/hidden/show/0.1/payload.js.map +1 -1
  92. package/package.json +1 -1
  93. package/src/_shared/components.ts +308 -2
  94. package/src/device/list/0.1/payload.ts +6 -2
  95. package/src/device/list/0.2/payload.ts +6 -2
  96. package/src/device/register/0.1/payload.ts +6 -2
  97. package/src/device/register/0.2/payload.ts +6 -2
  98. package/src/index.ts +14 -0
  99. package/src/vetting/_shared/0.1/hidden-vetting.ts +17 -0
  100. package/src/vetting/attestation/0.1/payload.ts +49 -101
  101. package/src/vta/_shared/0.4/pcs-engine.ts +17 -0
  102. package/src/vta/pcs/applications/create/0.1/payload.ts +768 -0
  103. package/src/vta/pcs/applications/delete/0.1/payload.ts +182 -0
  104. package/src/vta/pcs/applications/show/0.1/payload.ts +482 -0
  105. package/src/vta/pcs/attest/0.1/payload.ts +943 -0
  106. package/src/vta/pcs/prove/0.1/payload.ts +845 -0
  107. package/src/vta/pcs/root-accept/0.1/payload.ts +681 -0
  108. package/src/vta/pcs/root-request/0.1/payload.ts +559 -0
  109. package/src/vta/pcs/tokens/abandon/0.1/payload.ts +392 -0
  110. package/src/vta/pcs/tokens/accept/0.1/payload.ts +713 -0
  111. package/src/vta/pcs/tokens/request/0.1/payload.ts +581 -0
  112. package/src/vta/pcs/verify-attestation/0.1/payload.ts +888 -0
  113. package/src/vta/pcs/vetter/show/0.1/payload.ts +387 -0
  114. package/src/vtc/vetting/hidden/publish/0.1/payload.ts +247 -331
  115. package/src/vtc/vetting/hidden/show/0.1/payload.ts +295 -379
@@ -2,11 +2,7 @@
2
2
  * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
3
  * Source: specs/vtc/vetting/hidden/publish/0.1/payload.schema.json
4
4
  */
5
- import type { Ext } from "../../../../../_shared/components.js";
6
- /**
7
- * The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).
8
- */
9
- export type TickLength = string;
5
+ import type { Ext, PublishedConfig, PublishedEvent, StoredConfig, StoredEvent, TickLength, Tier } from "../../../../../_shared/components.js";
10
6
  /**
11
7
  * Turn on (or rotate the parameters of) hidden-vetter admission for one criterion. Every member but criterionId has a default. The outer document members are owned by the framework — SPEC §6.3.
12
8
  */
@@ -70,16 +66,6 @@ export interface RequestEvent {
70
66
  */
71
67
  approvedBy?: string;
72
68
  }
73
- export interface Tier {
74
- /**
75
- * How the menu names it: desk, busy-desk.
76
- */
77
- name: string;
78
- /**
79
- * How many tokens a tick under this tier yields.
80
- */
81
- dripPerTick: number;
82
- }
83
69
  export interface VTCVettingHiddenPublishResponsePayload {
84
70
  /**
85
71
  * The criterion that now accepts a hidden proof.
@@ -93,77 +79,8 @@ export interface VTCVettingHiddenPublishResponsePayload {
93
79
  requirementsDigest: string | null;
94
80
  ext?: Ext;
95
81
  }
96
- /**
97
- * The parameters exactly as the community stores them, including the helper key it never publishes.
98
- */
99
- export interface StoredConfig {
100
- /**
101
- * The blind-signature suite in force, e.g. ps-ddh-bls12381.
102
- */
103
- suite: string;
104
- /**
105
- * The helper verification key, multibase. A public value, published as helperKey.
106
- */
107
- hvk: string;
108
- /**
109
- * The token verification key, multibase. Never the same key as hvk.
110
- */
111
- tvk: string;
112
- /**
113
- * Live vetter class periods, current first, stored as the bare YYYY-MM period.
114
- */
115
- livePeriods: string[];
116
- liveTokenLabels: string[];
117
- dripPerTick: number;
118
- tickLength: TickLength;
119
- events: StoredEvent[];
120
- }
121
- export interface StoredEvent {
122
- eventId: string;
123
- startDate: string;
124
- endDate: string;
125
- graceDays: number;
126
- groupFloor: number;
127
- tiers: Tier[];
128
- /**
129
- * Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).
130
- */
131
- approvedBy?: string | null;
132
- }
133
- /**
134
- * The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.
135
- */
136
- export interface PublishedConfig {
137
- suite: string;
138
- /**
139
- * The helper verification key, multibase — named for its role on the wire rather than for hvk.
140
- */
141
- helperKey: string;
142
- /**
143
- * The token verification key, multibase — named for its role on the wire rather than for tvk.
144
- */
145
- tokenKey: string;
146
- /**
147
- * Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.
148
- */
149
- vetterLabels: string[];
150
- tokenLabels: string[];
151
- dripPerTick: number;
152
- tickLength: TickLength;
153
- events: PublishedEvent[];
154
- }
155
- /**
156
- * The published shape drops approvedBy and graceDays: who approved is the community's own record, and a vetter is told closesAfter when its request is approved rather than being handed the raw grace period here.
157
- */
158
- export interface PublishedEvent {
159
- eventId: string;
160
- startDate: string;
161
- endDate: string;
162
- groupFloor: number;
163
- tiers: Tier[];
164
- }
165
82
  /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
166
- export type { Ext };
83
+ export type { Ext, PublishedConfig, PublishedEvent, StoredConfig, StoredEvent, TickLength, Tier };
167
84
  /** Trust Task type URI. */
168
85
  export declare const TYPE_URI: "https://trusttasks.org/spec/vtc/vetting/hidden/publish/0.1";
169
86
  /** Stable alias for this specification's request payload shape. */
@@ -233,12 +150,6 @@ export declare const PAYLOAD_SCHEMA: {
233
150
  };
234
151
  };
235
152
  readonly $defs: {
236
- readonly TickLength: {
237
- readonly title: "TickLength";
238
- readonly type: "string";
239
- readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
240
- readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
241
- };
242
153
  readonly RequestEvent: {
243
154
  readonly title: "RequestEvent";
244
155
  readonly type: "object";
@@ -285,60 +196,92 @@ export declare const PAYLOAD_SCHEMA: {
285
196
  };
286
197
  };
287
198
  };
288
- readonly Tier: {
289
- readonly title: "Tier";
199
+ readonly Response: {
200
+ readonly $anchor: "response";
201
+ readonly title: "VTC Vetting — Hidden — Publish — response payload";
290
202
  readonly type: "object";
291
203
  readonly additionalProperties: false;
292
- readonly required: readonly ["name", "dripPerTick"];
204
+ readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
293
205
  readonly properties: {
294
- readonly name: {
206
+ readonly criterionId: {
295
207
  readonly type: "string";
296
208
  readonly minLength: 1;
297
- readonly description: "How the menu names it: desk, busy-desk.";
209
+ readonly description: "The criterion that now accepts a hidden proof.";
298
210
  };
299
- readonly dripPerTick: {
300
- readonly type: "integer";
301
- readonly minimum: 1;
302
- readonly description: "How many tokens a tick under this tier yields.";
211
+ readonly stored: {
212
+ readonly $ref: "#/$defs/StoredConfig";
213
+ };
214
+ readonly published: {
215
+ readonly $ref: "#/$defs/PublishedConfig";
216
+ };
217
+ readonly requirementsDigest: {
218
+ readonly type: readonly ["string", "null"];
219
+ readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
220
+ };
221
+ readonly ext: {
222
+ readonly $ref: "#/$defs/Ext";
303
223
  };
304
224
  };
305
225
  };
306
- readonly StoredEvent: {
307
- readonly title: "StoredEvent";
226
+ readonly Ext: {
227
+ readonly title: "Ext";
228
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
229
+ readonly type: "object";
230
+ readonly minProperties: 1;
231
+ readonly additionalProperties: true;
232
+ readonly propertyNames: {
233
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
234
+ };
235
+ };
236
+ readonly PublishedConfig: {
237
+ readonly title: "PublishedConfig";
238
+ readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
308
239
  readonly type: "object";
309
240
  readonly additionalProperties: false;
310
- readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
241
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
311
242
  readonly properties: {
312
- readonly eventId: {
243
+ readonly suite: {
313
244
  readonly type: "string";
314
245
  readonly minLength: 1;
315
246
  };
316
- readonly startDate: {
247
+ readonly helperKey: {
317
248
  readonly type: "string";
318
- readonly format: "date";
249
+ readonly minLength: 1;
250
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
319
251
  };
320
- readonly endDate: {
252
+ readonly tokenKey: {
321
253
  readonly type: "string";
322
- readonly format: "date";
254
+ readonly minLength: 1;
255
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
323
256
  };
324
- readonly graceDays: {
325
- readonly type: "integer";
326
- readonly minimum: 0;
257
+ readonly vetterLabels: {
258
+ readonly type: "array";
259
+ readonly items: {
260
+ readonly type: "string";
261
+ readonly minLength: 1;
262
+ };
263
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
327
264
  };
328
- readonly groupFloor: {
265
+ readonly tokenLabels: {
266
+ readonly type: "array";
267
+ readonly items: {
268
+ readonly type: "string";
269
+ readonly minLength: 1;
270
+ };
271
+ };
272
+ readonly dripPerTick: {
329
273
  readonly type: "integer";
330
274
  readonly minimum: 1;
331
275
  };
332
- readonly tiers: {
276
+ readonly tickLength: {
277
+ readonly $ref: "#/$defs/TickLength";
278
+ };
279
+ readonly events: {
333
280
  readonly type: "array";
334
281
  readonly items: {
335
- readonly $ref: "#/$defs/Tier";
282
+ readonly $ref: "#/$defs/PublishedEvent";
336
283
  };
337
284
  };
338
- readonly approvedBy: {
339
- readonly type: readonly ["string", "null"];
340
- readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
341
- };
342
285
  };
343
286
  };
344
287
  readonly PublishedEvent: {
@@ -372,6 +315,30 @@ export declare const PAYLOAD_SCHEMA: {
372
315
  };
373
316
  };
374
317
  };
318
+ readonly Tier: {
319
+ readonly title: "Tier";
320
+ readonly type: "object";
321
+ readonly additionalProperties: false;
322
+ readonly required: readonly ["name", "dripPerTick"];
323
+ readonly properties: {
324
+ readonly name: {
325
+ readonly type: "string";
326
+ readonly minLength: 1;
327
+ readonly description: "How the menu names it: desk, busy-desk.";
328
+ };
329
+ readonly dripPerTick: {
330
+ readonly type: "integer";
331
+ readonly minimum: 1;
332
+ readonly description: "How many tokens a tick under this tier yields.";
333
+ };
334
+ };
335
+ };
336
+ readonly TickLength: {
337
+ readonly title: "TickLength";
338
+ readonly type: "string";
339
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
340
+ readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
341
+ };
375
342
  readonly StoredConfig: {
376
343
  readonly title: "StoredConfig";
377
344
  readonly description: "The parameters exactly as the community stores them, including the helper key it never publishes.";
@@ -424,94 +391,44 @@ export declare const PAYLOAD_SCHEMA: {
424
391
  };
425
392
  };
426
393
  };
427
- readonly PublishedConfig: {
428
- readonly title: "PublishedConfig";
429
- readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
394
+ readonly StoredEvent: {
395
+ readonly title: "StoredEvent";
430
396
  readonly type: "object";
431
397
  readonly additionalProperties: false;
432
- readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
398
+ readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
433
399
  readonly properties: {
434
- readonly suite: {
400
+ readonly eventId: {
435
401
  readonly type: "string";
436
402
  readonly minLength: 1;
437
403
  };
438
- readonly helperKey: {
404
+ readonly startDate: {
439
405
  readonly type: "string";
440
- readonly minLength: 1;
441
- readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
406
+ readonly format: "date";
442
407
  };
443
- readonly tokenKey: {
408
+ readonly endDate: {
444
409
  readonly type: "string";
445
- readonly minLength: 1;
446
- readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
447
- };
448
- readonly vetterLabels: {
449
- readonly type: "array";
450
- readonly items: {
451
- readonly type: "string";
452
- readonly minLength: 1;
453
- };
454
- readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
410
+ readonly format: "date";
455
411
  };
456
- readonly tokenLabels: {
457
- readonly type: "array";
458
- readonly items: {
459
- readonly type: "string";
460
- readonly minLength: 1;
461
- };
412
+ readonly graceDays: {
413
+ readonly type: "integer";
414
+ readonly minimum: 0;
462
415
  };
463
- readonly dripPerTick: {
416
+ readonly groupFloor: {
464
417
  readonly type: "integer";
465
418
  readonly minimum: 1;
466
419
  };
467
- readonly tickLength: {
468
- readonly $ref: "#/$defs/TickLength";
469
- };
470
- readonly events: {
420
+ readonly tiers: {
471
421
  readonly type: "array";
472
422
  readonly items: {
473
- readonly $ref: "#/$defs/PublishedEvent";
423
+ readonly $ref: "#/$defs/Tier";
474
424
  };
475
425
  };
476
- };
477
- };
478
- readonly Response: {
479
- readonly $anchor: "response";
480
- readonly title: "VTC Vetting — Hidden — Publish — response payload";
481
- readonly type: "object";
482
- readonly additionalProperties: false;
483
- readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
484
- readonly properties: {
485
- readonly criterionId: {
486
- readonly type: "string";
487
- readonly minLength: 1;
488
- readonly description: "The criterion that now accepts a hidden proof.";
489
- };
490
- readonly stored: {
491
- readonly $ref: "#/$defs/StoredConfig";
492
- };
493
- readonly published: {
494
- readonly $ref: "#/$defs/PublishedConfig";
495
- };
496
- readonly requirementsDigest: {
426
+ readonly approvedBy: {
497
427
  readonly type: readonly ["string", "null"];
498
- readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
499
- };
500
- readonly ext: {
501
- readonly $ref: "#/$defs/Ext";
428
+ readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
502
429
  };
503
430
  };
504
431
  };
505
- readonly Ext: {
506
- readonly title: "Ext";
507
- readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
508
- readonly type: "object";
509
- readonly minProperties: 1;
510
- readonly additionalProperties: true;
511
- readonly propertyNames: {
512
- readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
513
- };
514
- };
515
432
  };
516
433
  };
517
434
  /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
@@ -519,12 +436,6 @@ export declare const RESPONSE_PAYLOAD_SCHEMA: {
519
436
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
520
437
  readonly $ref: "#/$defs/Response";
521
438
  readonly $defs: {
522
- readonly TickLength: {
523
- readonly title: "TickLength";
524
- readonly type: "string";
525
- readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
526
- readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
527
- };
528
439
  readonly RequestEvent: {
529
440
  readonly title: "RequestEvent";
530
441
  readonly type: "object";
@@ -571,60 +482,92 @@ export declare const RESPONSE_PAYLOAD_SCHEMA: {
571
482
  };
572
483
  };
573
484
  };
574
- readonly Tier: {
575
- readonly title: "Tier";
485
+ readonly Response: {
486
+ readonly $anchor: "response";
487
+ readonly title: "VTC Vetting — Hidden — Publish — response payload";
576
488
  readonly type: "object";
577
489
  readonly additionalProperties: false;
578
- readonly required: readonly ["name", "dripPerTick"];
490
+ readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
579
491
  readonly properties: {
580
- readonly name: {
492
+ readonly criterionId: {
581
493
  readonly type: "string";
582
494
  readonly minLength: 1;
583
- readonly description: "How the menu names it: desk, busy-desk.";
584
- };
585
- readonly dripPerTick: {
586
- readonly type: "integer";
587
- readonly minimum: 1;
588
- readonly description: "How many tokens a tick under this tier yields.";
495
+ readonly description: "The criterion that now accepts a hidden proof.";
496
+ };
497
+ readonly stored: {
498
+ readonly $ref: "#/$defs/StoredConfig";
499
+ };
500
+ readonly published: {
501
+ readonly $ref: "#/$defs/PublishedConfig";
502
+ };
503
+ readonly requirementsDigest: {
504
+ readonly type: readonly ["string", "null"];
505
+ readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
506
+ };
507
+ readonly ext: {
508
+ readonly $ref: "#/$defs/Ext";
589
509
  };
590
510
  };
591
511
  };
592
- readonly StoredEvent: {
593
- readonly title: "StoredEvent";
512
+ readonly Ext: {
513
+ readonly title: "Ext";
514
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
515
+ readonly type: "object";
516
+ readonly minProperties: 1;
517
+ readonly additionalProperties: true;
518
+ readonly propertyNames: {
519
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
520
+ };
521
+ };
522
+ readonly PublishedConfig: {
523
+ readonly title: "PublishedConfig";
524
+ readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
594
525
  readonly type: "object";
595
526
  readonly additionalProperties: false;
596
- readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
527
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
597
528
  readonly properties: {
598
- readonly eventId: {
529
+ readonly suite: {
599
530
  readonly type: "string";
600
531
  readonly minLength: 1;
601
532
  };
602
- readonly startDate: {
533
+ readonly helperKey: {
603
534
  readonly type: "string";
604
- readonly format: "date";
535
+ readonly minLength: 1;
536
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
605
537
  };
606
- readonly endDate: {
538
+ readonly tokenKey: {
607
539
  readonly type: "string";
608
- readonly format: "date";
540
+ readonly minLength: 1;
541
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
609
542
  };
610
- readonly graceDays: {
611
- readonly type: "integer";
612
- readonly minimum: 0;
543
+ readonly vetterLabels: {
544
+ readonly type: "array";
545
+ readonly items: {
546
+ readonly type: "string";
547
+ readonly minLength: 1;
548
+ };
549
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
613
550
  };
614
- readonly groupFloor: {
551
+ readonly tokenLabels: {
552
+ readonly type: "array";
553
+ readonly items: {
554
+ readonly type: "string";
555
+ readonly minLength: 1;
556
+ };
557
+ };
558
+ readonly dripPerTick: {
615
559
  readonly type: "integer";
616
560
  readonly minimum: 1;
617
561
  };
618
- readonly tiers: {
562
+ readonly tickLength: {
563
+ readonly $ref: "#/$defs/TickLength";
564
+ };
565
+ readonly events: {
619
566
  readonly type: "array";
620
567
  readonly items: {
621
- readonly $ref: "#/$defs/Tier";
568
+ readonly $ref: "#/$defs/PublishedEvent";
622
569
  };
623
570
  };
624
- readonly approvedBy: {
625
- readonly type: readonly ["string", "null"];
626
- readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
627
- };
628
571
  };
629
572
  };
630
573
  readonly PublishedEvent: {
@@ -658,6 +601,30 @@ export declare const RESPONSE_PAYLOAD_SCHEMA: {
658
601
  };
659
602
  };
660
603
  };
604
+ readonly Tier: {
605
+ readonly title: "Tier";
606
+ readonly type: "object";
607
+ readonly additionalProperties: false;
608
+ readonly required: readonly ["name", "dripPerTick"];
609
+ readonly properties: {
610
+ readonly name: {
611
+ readonly type: "string";
612
+ readonly minLength: 1;
613
+ readonly description: "How the menu names it: desk, busy-desk.";
614
+ };
615
+ readonly dripPerTick: {
616
+ readonly type: "integer";
617
+ readonly minimum: 1;
618
+ readonly description: "How many tokens a tick under this tier yields.";
619
+ };
620
+ };
621
+ };
622
+ readonly TickLength: {
623
+ readonly title: "TickLength";
624
+ readonly type: "string";
625
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
626
+ readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
627
+ };
661
628
  readonly StoredConfig: {
662
629
  readonly title: "StoredConfig";
663
630
  readonly description: "The parameters exactly as the community stores them, including the helper key it never publishes.";
@@ -710,94 +677,44 @@ export declare const RESPONSE_PAYLOAD_SCHEMA: {
710
677
  };
711
678
  };
712
679
  };
713
- readonly PublishedConfig: {
714
- readonly title: "PublishedConfig";
715
- readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
680
+ readonly StoredEvent: {
681
+ readonly title: "StoredEvent";
716
682
  readonly type: "object";
717
683
  readonly additionalProperties: false;
718
- readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
684
+ readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
719
685
  readonly properties: {
720
- readonly suite: {
686
+ readonly eventId: {
721
687
  readonly type: "string";
722
688
  readonly minLength: 1;
723
689
  };
724
- readonly helperKey: {
690
+ readonly startDate: {
725
691
  readonly type: "string";
726
- readonly minLength: 1;
727
- readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
692
+ readonly format: "date";
728
693
  };
729
- readonly tokenKey: {
694
+ readonly endDate: {
730
695
  readonly type: "string";
731
- readonly minLength: 1;
732
- readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
733
- };
734
- readonly vetterLabels: {
735
- readonly type: "array";
736
- readonly items: {
737
- readonly type: "string";
738
- readonly minLength: 1;
739
- };
740
- readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
696
+ readonly format: "date";
741
697
  };
742
- readonly tokenLabels: {
743
- readonly type: "array";
744
- readonly items: {
745
- readonly type: "string";
746
- readonly minLength: 1;
747
- };
698
+ readonly graceDays: {
699
+ readonly type: "integer";
700
+ readonly minimum: 0;
748
701
  };
749
- readonly dripPerTick: {
702
+ readonly groupFloor: {
750
703
  readonly type: "integer";
751
704
  readonly minimum: 1;
752
705
  };
753
- readonly tickLength: {
754
- readonly $ref: "#/$defs/TickLength";
755
- };
756
- readonly events: {
706
+ readonly tiers: {
757
707
  readonly type: "array";
758
708
  readonly items: {
759
- readonly $ref: "#/$defs/PublishedEvent";
709
+ readonly $ref: "#/$defs/Tier";
760
710
  };
761
711
  };
762
- };
763
- };
764
- readonly Response: {
765
- readonly $anchor: "response";
766
- readonly title: "VTC Vetting — Hidden — Publish — response payload";
767
- readonly type: "object";
768
- readonly additionalProperties: false;
769
- readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
770
- readonly properties: {
771
- readonly criterionId: {
772
- readonly type: "string";
773
- readonly minLength: 1;
774
- readonly description: "The criterion that now accepts a hidden proof.";
775
- };
776
- readonly stored: {
777
- readonly $ref: "#/$defs/StoredConfig";
778
- };
779
- readonly published: {
780
- readonly $ref: "#/$defs/PublishedConfig";
781
- };
782
- readonly requirementsDigest: {
712
+ readonly approvedBy: {
783
713
  readonly type: readonly ["string", "null"];
784
- readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
785
- };
786
- readonly ext: {
787
- readonly $ref: "#/$defs/Ext";
714
+ readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
788
715
  };
789
716
  };
790
717
  };
791
- readonly Ext: {
792
- readonly title: "Ext";
793
- readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
794
- readonly type: "object";
795
- readonly minProperties: 1;
796
- readonly additionalProperties: true;
797
- readonly propertyNames: {
798
- readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
799
- };
800
- };
801
718
  };
802
719
  };
803
720
  /**
@@ -864,12 +781,6 @@ export declare const SPEC: {
864
781
  };
865
782
  };
866
783
  readonly $defs: {
867
- readonly TickLength: {
868
- readonly title: "TickLength";
869
- readonly type: "string";
870
- readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
871
- readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
872
- };
873
784
  readonly RequestEvent: {
874
785
  readonly title: "RequestEvent";
875
786
  readonly type: "object";
@@ -916,60 +827,92 @@ export declare const SPEC: {
916
827
  };
917
828
  };
918
829
  };
919
- readonly Tier: {
920
- readonly title: "Tier";
830
+ readonly Response: {
831
+ readonly $anchor: "response";
832
+ readonly title: "VTC Vetting — Hidden — Publish — response payload";
921
833
  readonly type: "object";
922
834
  readonly additionalProperties: false;
923
- readonly required: readonly ["name", "dripPerTick"];
835
+ readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
924
836
  readonly properties: {
925
- readonly name: {
837
+ readonly criterionId: {
926
838
  readonly type: "string";
927
839
  readonly minLength: 1;
928
- readonly description: "How the menu names it: desk, busy-desk.";
840
+ readonly description: "The criterion that now accepts a hidden proof.";
929
841
  };
930
- readonly dripPerTick: {
931
- readonly type: "integer";
932
- readonly minimum: 1;
933
- readonly description: "How many tokens a tick under this tier yields.";
842
+ readonly stored: {
843
+ readonly $ref: "#/$defs/StoredConfig";
844
+ };
845
+ readonly published: {
846
+ readonly $ref: "#/$defs/PublishedConfig";
847
+ };
848
+ readonly requirementsDigest: {
849
+ readonly type: readonly ["string", "null"];
850
+ readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
851
+ };
852
+ readonly ext: {
853
+ readonly $ref: "#/$defs/Ext";
934
854
  };
935
855
  };
936
856
  };
937
- readonly StoredEvent: {
938
- readonly title: "StoredEvent";
857
+ readonly Ext: {
858
+ readonly title: "Ext";
859
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
860
+ readonly type: "object";
861
+ readonly minProperties: 1;
862
+ readonly additionalProperties: true;
863
+ readonly propertyNames: {
864
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
865
+ };
866
+ };
867
+ readonly PublishedConfig: {
868
+ readonly title: "PublishedConfig";
869
+ readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
939
870
  readonly type: "object";
940
871
  readonly additionalProperties: false;
941
- readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
872
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
942
873
  readonly properties: {
943
- readonly eventId: {
874
+ readonly suite: {
944
875
  readonly type: "string";
945
876
  readonly minLength: 1;
946
877
  };
947
- readonly startDate: {
878
+ readonly helperKey: {
948
879
  readonly type: "string";
949
- readonly format: "date";
880
+ readonly minLength: 1;
881
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
950
882
  };
951
- readonly endDate: {
883
+ readonly tokenKey: {
952
884
  readonly type: "string";
953
- readonly format: "date";
954
- };
955
- readonly graceDays: {
956
- readonly type: "integer";
957
- readonly minimum: 0;
958
- };
959
- readonly groupFloor: {
960
- readonly type: "integer";
961
- readonly minimum: 1;
885
+ readonly minLength: 1;
886
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
962
887
  };
963
- readonly tiers: {
888
+ readonly vetterLabels: {
964
889
  readonly type: "array";
965
890
  readonly items: {
966
- readonly $ref: "#/$defs/Tier";
891
+ readonly type: "string";
892
+ readonly minLength: 1;
893
+ };
894
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
895
+ };
896
+ readonly tokenLabels: {
897
+ readonly type: "array";
898
+ readonly items: {
899
+ readonly type: "string";
900
+ readonly minLength: 1;
901
+ };
902
+ };
903
+ readonly dripPerTick: {
904
+ readonly type: "integer";
905
+ readonly minimum: 1;
906
+ };
907
+ readonly tickLength: {
908
+ readonly $ref: "#/$defs/TickLength";
909
+ };
910
+ readonly events: {
911
+ readonly type: "array";
912
+ readonly items: {
913
+ readonly $ref: "#/$defs/PublishedEvent";
967
914
  };
968
915
  };
969
- readonly approvedBy: {
970
- readonly type: readonly ["string", "null"];
971
- readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
972
- };
973
916
  };
974
917
  };
975
918
  readonly PublishedEvent: {
@@ -1003,6 +946,30 @@ export declare const SPEC: {
1003
946
  };
1004
947
  };
1005
948
  };
949
+ readonly Tier: {
950
+ readonly title: "Tier";
951
+ readonly type: "object";
952
+ readonly additionalProperties: false;
953
+ readonly required: readonly ["name", "dripPerTick"];
954
+ readonly properties: {
955
+ readonly name: {
956
+ readonly type: "string";
957
+ readonly minLength: 1;
958
+ readonly description: "How the menu names it: desk, busy-desk.";
959
+ };
960
+ readonly dripPerTick: {
961
+ readonly type: "integer";
962
+ readonly minimum: 1;
963
+ readonly description: "How many tokens a tick under this tier yields.";
964
+ };
965
+ };
966
+ };
967
+ readonly TickLength: {
968
+ readonly title: "TickLength";
969
+ readonly type: "string";
970
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
971
+ readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
972
+ };
1006
973
  readonly StoredConfig: {
1007
974
  readonly title: "StoredConfig";
1008
975
  readonly description: "The parameters exactly as the community stores them, including the helper key it never publishes.";
@@ -1055,94 +1022,44 @@ export declare const SPEC: {
1055
1022
  };
1056
1023
  };
1057
1024
  };
1058
- readonly PublishedConfig: {
1059
- readonly title: "PublishedConfig";
1060
- readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
1025
+ readonly StoredEvent: {
1026
+ readonly title: "StoredEvent";
1061
1027
  readonly type: "object";
1062
1028
  readonly additionalProperties: false;
1063
- readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
1029
+ readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
1064
1030
  readonly properties: {
1065
- readonly suite: {
1031
+ readonly eventId: {
1066
1032
  readonly type: "string";
1067
1033
  readonly minLength: 1;
1068
1034
  };
1069
- readonly helperKey: {
1035
+ readonly startDate: {
1070
1036
  readonly type: "string";
1071
- readonly minLength: 1;
1072
- readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
1037
+ readonly format: "date";
1073
1038
  };
1074
- readonly tokenKey: {
1039
+ readonly endDate: {
1075
1040
  readonly type: "string";
1076
- readonly minLength: 1;
1077
- readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
1078
- };
1079
- readonly vetterLabels: {
1080
- readonly type: "array";
1081
- readonly items: {
1082
- readonly type: "string";
1083
- readonly minLength: 1;
1084
- };
1085
- readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
1041
+ readonly format: "date";
1086
1042
  };
1087
- readonly tokenLabels: {
1088
- readonly type: "array";
1089
- readonly items: {
1090
- readonly type: "string";
1091
- readonly minLength: 1;
1092
- };
1043
+ readonly graceDays: {
1044
+ readonly type: "integer";
1045
+ readonly minimum: 0;
1093
1046
  };
1094
- readonly dripPerTick: {
1047
+ readonly groupFloor: {
1095
1048
  readonly type: "integer";
1096
1049
  readonly minimum: 1;
1097
1050
  };
1098
- readonly tickLength: {
1099
- readonly $ref: "#/$defs/TickLength";
1100
- };
1101
- readonly events: {
1051
+ readonly tiers: {
1102
1052
  readonly type: "array";
1103
1053
  readonly items: {
1104
- readonly $ref: "#/$defs/PublishedEvent";
1054
+ readonly $ref: "#/$defs/Tier";
1105
1055
  };
1106
1056
  };
1107
- };
1108
- };
1109
- readonly Response: {
1110
- readonly $anchor: "response";
1111
- readonly title: "VTC Vetting — Hidden — Publish — response payload";
1112
- readonly type: "object";
1113
- readonly additionalProperties: false;
1114
- readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
1115
- readonly properties: {
1116
- readonly criterionId: {
1117
- readonly type: "string";
1118
- readonly minLength: 1;
1119
- readonly description: "The criterion that now accepts a hidden proof.";
1120
- };
1121
- readonly stored: {
1122
- readonly $ref: "#/$defs/StoredConfig";
1123
- };
1124
- readonly published: {
1125
- readonly $ref: "#/$defs/PublishedConfig";
1126
- };
1127
- readonly requirementsDigest: {
1057
+ readonly approvedBy: {
1128
1058
  readonly type: readonly ["string", "null"];
1129
- readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
1130
- };
1131
- readonly ext: {
1132
- readonly $ref: "#/$defs/Ext";
1059
+ readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
1133
1060
  };
1134
1061
  };
1135
1062
  };
1136
- readonly Ext: {
1137
- readonly title: "Ext";
1138
- readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
1139
- readonly type: "object";
1140
- readonly minProperties: 1;
1141
- readonly additionalProperties: true;
1142
- readonly propertyNames: {
1143
- readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
1144
- };
1145
- };
1146
1063
  };
1147
1064
  };
1148
1065
  };
@@ -1161,12 +1078,6 @@ export declare const RESPONSE_SPEC: {
1161
1078
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1162
1079
  readonly $ref: "#/$defs/Response";
1163
1080
  readonly $defs: {
1164
- readonly TickLength: {
1165
- readonly title: "TickLength";
1166
- readonly type: "string";
1167
- readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
1168
- readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`; a request that omits it gets `P3D`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
1169
- };
1170
1081
  readonly RequestEvent: {
1171
1082
  readonly title: "RequestEvent";
1172
1083
  readonly type: "object";
@@ -1213,60 +1124,92 @@ export declare const RESPONSE_SPEC: {
1213
1124
  };
1214
1125
  };
1215
1126
  };
1216
- readonly Tier: {
1217
- readonly title: "Tier";
1127
+ readonly Response: {
1128
+ readonly $anchor: "response";
1129
+ readonly title: "VTC Vetting — Hidden — Publish — response payload";
1218
1130
  readonly type: "object";
1219
1131
  readonly additionalProperties: false;
1220
- readonly required: readonly ["name", "dripPerTick"];
1132
+ readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
1221
1133
  readonly properties: {
1222
- readonly name: {
1134
+ readonly criterionId: {
1223
1135
  readonly type: "string";
1224
1136
  readonly minLength: 1;
1225
- readonly description: "How the menu names it: desk, busy-desk.";
1137
+ readonly description: "The criterion that now accepts a hidden proof.";
1226
1138
  };
1227
- readonly dripPerTick: {
1228
- readonly type: "integer";
1229
- readonly minimum: 1;
1230
- readonly description: "How many tokens a tick under this tier yields.";
1139
+ readonly stored: {
1140
+ readonly $ref: "#/$defs/StoredConfig";
1141
+ };
1142
+ readonly published: {
1143
+ readonly $ref: "#/$defs/PublishedConfig";
1144
+ };
1145
+ readonly requirementsDigest: {
1146
+ readonly type: readonly ["string", "null"];
1147
+ readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
1148
+ };
1149
+ readonly ext: {
1150
+ readonly $ref: "#/$defs/Ext";
1231
1151
  };
1232
1152
  };
1233
1153
  };
1234
- readonly StoredEvent: {
1235
- readonly title: "StoredEvent";
1154
+ readonly Ext: {
1155
+ readonly title: "Ext";
1156
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
1157
+ readonly type: "object";
1158
+ readonly minProperties: 1;
1159
+ readonly additionalProperties: true;
1160
+ readonly propertyNames: {
1161
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
1162
+ };
1163
+ };
1164
+ readonly PublishedConfig: {
1165
+ readonly title: "PublishedConfig";
1166
+ readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
1236
1167
  readonly type: "object";
1237
1168
  readonly additionalProperties: false;
1238
- readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
1169
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
1239
1170
  readonly properties: {
1240
- readonly eventId: {
1171
+ readonly suite: {
1241
1172
  readonly type: "string";
1242
1173
  readonly minLength: 1;
1243
1174
  };
1244
- readonly startDate: {
1175
+ readonly helperKey: {
1245
1176
  readonly type: "string";
1246
- readonly format: "date";
1177
+ readonly minLength: 1;
1178
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
1247
1179
  };
1248
- readonly endDate: {
1180
+ readonly tokenKey: {
1249
1181
  readonly type: "string";
1250
- readonly format: "date";
1182
+ readonly minLength: 1;
1183
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
1251
1184
  };
1252
- readonly graceDays: {
1253
- readonly type: "integer";
1254
- readonly minimum: 0;
1185
+ readonly vetterLabels: {
1186
+ readonly type: "array";
1187
+ readonly items: {
1188
+ readonly type: "string";
1189
+ readonly minLength: 1;
1190
+ };
1191
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
1255
1192
  };
1256
- readonly groupFloor: {
1193
+ readonly tokenLabels: {
1194
+ readonly type: "array";
1195
+ readonly items: {
1196
+ readonly type: "string";
1197
+ readonly minLength: 1;
1198
+ };
1199
+ };
1200
+ readonly dripPerTick: {
1257
1201
  readonly type: "integer";
1258
1202
  readonly minimum: 1;
1259
1203
  };
1260
- readonly tiers: {
1204
+ readonly tickLength: {
1205
+ readonly $ref: "#/$defs/TickLength";
1206
+ };
1207
+ readonly events: {
1261
1208
  readonly type: "array";
1262
1209
  readonly items: {
1263
- readonly $ref: "#/$defs/Tier";
1210
+ readonly $ref: "#/$defs/PublishedEvent";
1264
1211
  };
1265
1212
  };
1266
- readonly approvedBy: {
1267
- readonly type: readonly ["string", "null"];
1268
- readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
1269
- };
1270
1213
  };
1271
1214
  };
1272
1215
  readonly PublishedEvent: {
@@ -1300,6 +1243,30 @@ export declare const RESPONSE_SPEC: {
1300
1243
  };
1301
1244
  };
1302
1245
  };
1246
+ readonly Tier: {
1247
+ readonly title: "Tier";
1248
+ readonly type: "object";
1249
+ readonly additionalProperties: false;
1250
+ readonly required: readonly ["name", "dripPerTick"];
1251
+ readonly properties: {
1252
+ readonly name: {
1253
+ readonly type: "string";
1254
+ readonly minLength: 1;
1255
+ readonly description: "How the menu names it: desk, busy-desk.";
1256
+ };
1257
+ readonly dripPerTick: {
1258
+ readonly type: "integer";
1259
+ readonly minimum: 1;
1260
+ readonly description: "How many tokens a tick under this tier yields.";
1261
+ };
1262
+ };
1263
+ };
1264
+ readonly TickLength: {
1265
+ readonly title: "TickLength";
1266
+ readonly type: "string";
1267
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
1268
+ readonly description: "The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).";
1269
+ };
1303
1270
  readonly StoredConfig: {
1304
1271
  readonly title: "StoredConfig";
1305
1272
  readonly description: "The parameters exactly as the community stores them, including the helper key it never publishes.";
@@ -1352,94 +1319,44 @@ export declare const RESPONSE_SPEC: {
1352
1319
  };
1353
1320
  };
1354
1321
  };
1355
- readonly PublishedConfig: {
1356
- readonly title: "PublishedConfig";
1357
- readonly description: "The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.";
1322
+ readonly StoredEvent: {
1323
+ readonly title: "StoredEvent";
1358
1324
  readonly type: "object";
1359
1325
  readonly additionalProperties: false;
1360
- readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
1326
+ readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
1361
1327
  readonly properties: {
1362
- readonly suite: {
1328
+ readonly eventId: {
1363
1329
  readonly type: "string";
1364
1330
  readonly minLength: 1;
1365
1331
  };
1366
- readonly helperKey: {
1332
+ readonly startDate: {
1367
1333
  readonly type: "string";
1368
- readonly minLength: 1;
1369
- readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
1334
+ readonly format: "date";
1370
1335
  };
1371
- readonly tokenKey: {
1336
+ readonly endDate: {
1372
1337
  readonly type: "string";
1373
- readonly minLength: 1;
1374
- readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
1375
- };
1376
- readonly vetterLabels: {
1377
- readonly type: "array";
1378
- readonly items: {
1379
- readonly type: "string";
1380
- readonly minLength: 1;
1381
- };
1382
- readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
1338
+ readonly format: "date";
1383
1339
  };
1384
- readonly tokenLabels: {
1385
- readonly type: "array";
1386
- readonly items: {
1387
- readonly type: "string";
1388
- readonly minLength: 1;
1389
- };
1340
+ readonly graceDays: {
1341
+ readonly type: "integer";
1342
+ readonly minimum: 0;
1390
1343
  };
1391
- readonly dripPerTick: {
1344
+ readonly groupFloor: {
1392
1345
  readonly type: "integer";
1393
1346
  readonly minimum: 1;
1394
1347
  };
1395
- readonly tickLength: {
1396
- readonly $ref: "#/$defs/TickLength";
1397
- };
1398
- readonly events: {
1348
+ readonly tiers: {
1399
1349
  readonly type: "array";
1400
1350
  readonly items: {
1401
- readonly $ref: "#/$defs/PublishedEvent";
1351
+ readonly $ref: "#/$defs/Tier";
1402
1352
  };
1403
1353
  };
1404
- };
1405
- };
1406
- readonly Response: {
1407
- readonly $anchor: "response";
1408
- readonly title: "VTC Vetting — Hidden — Publish — response payload";
1409
- readonly type: "object";
1410
- readonly additionalProperties: false;
1411
- readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
1412
- readonly properties: {
1413
- readonly criterionId: {
1414
- readonly type: "string";
1415
- readonly minLength: 1;
1416
- readonly description: "The criterion that now accepts a hidden proof.";
1417
- };
1418
- readonly stored: {
1419
- readonly $ref: "#/$defs/StoredConfig";
1420
- };
1421
- readonly published: {
1422
- readonly $ref: "#/$defs/PublishedConfig";
1423
- };
1424
- readonly requirementsDigest: {
1354
+ readonly approvedBy: {
1425
1355
  readonly type: readonly ["string", "null"];
1426
- readonly description: "The criterion's requirementsDigest after the change. It moves, because the digest covers the published parameters — an applicant mid-application is told its requirements changed, which is the honest answer. Null only when the criterion's manifest entry carries none.";
1427
- };
1428
- readonly ext: {
1429
- readonly $ref: "#/$defs/Ext";
1356
+ readonly description: "Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).";
1430
1357
  };
1431
1358
  };
1432
1359
  };
1433
- readonly Ext: {
1434
- readonly title: "Ext";
1435
- readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
1436
- readonly type: "object";
1437
- readonly minProperties: 1;
1438
- readonly additionalProperties: true;
1439
- readonly propertyNames: {
1440
- readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
1441
- };
1442
- };
1443
1360
  };
1444
1361
  };
1445
1362
  };