@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.
- package/CHANGELOG.md +18 -0
- package/dist/_shared/components.d.ts +304 -2
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +6 -2
- package/dist/device/list/0.1/payload.js.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +6 -2
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +6 -2
- package/dist/device/register/0.1/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +6 -2
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/vetting/_shared/0.1/hidden-vetting.d.ts +16 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.d.ts.map +1 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.js +6 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.js.map +1 -0
- package/dist/vetting/attestation/0.1/payload.d.ts +94 -146
- package/dist/vetting/attestation/0.1/payload.d.ts.map +1 -1
- package/dist/vetting/attestation/0.1/payload.js +43 -43
- package/dist/vetting/attestation/0.1/payload.js.map +1 -1
- package/dist/vta/_shared/0.4/pcs-engine.d.ts +16 -0
- package/dist/vta/_shared/0.4/pcs-engine.d.ts.map +1 -0
- package/dist/vta/_shared/0.4/pcs-engine.js +6 -0
- package/dist/vta/_shared/0.4/pcs-engine.js.map +1 -0
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts +1215 -0
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/create/0.1/payload.js +724 -0
- package/dist/vta/pcs/applications/create/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.d.ts +253 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.js +146 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts +733 -0
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/show/0.1/payload.js +450 -0
- package/dist/vta/pcs/applications/show/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/attest/0.1/payload.d.ts +1456 -0
- package/dist/vta/pcs/attest/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/attest/0.1/payload.js +876 -0
- package/dist/vta/pcs/attest/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/prove/0.1/payload.d.ts +1348 -0
- package/dist/vta/pcs/prove/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/prove/0.1/payload.js +804 -0
- package/dist/vta/pcs/prove/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts +1100 -0
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/root-accept/0.1/payload.js +634 -0
- package/dist/vta/pcs/root-accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/root-request/0.1/payload.d.ts +880 -0
- package/dist/vta/pcs/root-request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/root-request/0.1/payload.js +496 -0
- package/dist/vta/pcs/root-request/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts +612 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.js +355 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts +1149 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.js +657 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.d.ts +908 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.js +508 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts +1423 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.js +850 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts +605 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.js +351 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts +403 -486
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js +240 -240
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts +482 -565
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.js +294 -294
- package/dist/vtc/vetting/hidden/show/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +308 -2
- package/src/device/list/0.1/payload.ts +6 -2
- package/src/device/list/0.2/payload.ts +6 -2
- package/src/device/register/0.1/payload.ts +6 -2
- package/src/device/register/0.2/payload.ts +6 -2
- package/src/index.ts +14 -0
- package/src/vetting/_shared/0.1/hidden-vetting.ts +17 -0
- package/src/vetting/attestation/0.1/payload.ts +49 -101
- package/src/vta/_shared/0.4/pcs-engine.ts +17 -0
- package/src/vta/pcs/applications/create/0.1/payload.ts +768 -0
- package/src/vta/pcs/applications/delete/0.1/payload.ts +182 -0
- package/src/vta/pcs/applications/show/0.1/payload.ts +482 -0
- package/src/vta/pcs/attest/0.1/payload.ts +943 -0
- package/src/vta/pcs/prove/0.1/payload.ts +845 -0
- package/src/vta/pcs/root-accept/0.1/payload.ts +681 -0
- package/src/vta/pcs/root-request/0.1/payload.ts +559 -0
- package/src/vta/pcs/tokens/abandon/0.1/payload.ts +392 -0
- package/src/vta/pcs/tokens/accept/0.1/payload.ts +713 -0
- package/src/vta/pcs/tokens/request/0.1/payload.ts +581 -0
- package/src/vta/pcs/verify-attestation/0.1/payload.ts +888 -0
- package/src/vta/pcs/vetter/show/0.1/payload.ts +387 -0
- package/src/vtc/vetting/hidden/publish/0.1/payload.ts +247 -331
- 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
|
|
289
|
-
readonly
|
|
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 ["
|
|
204
|
+
readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
|
|
293
205
|
readonly properties: {
|
|
294
|
-
readonly
|
|
206
|
+
readonly criterionId: {
|
|
295
207
|
readonly type: "string";
|
|
296
208
|
readonly minLength: 1;
|
|
297
|
-
readonly description: "
|
|
209
|
+
readonly description: "The criterion that now accepts a hidden proof.";
|
|
298
210
|
};
|
|
299
|
-
readonly
|
|
300
|
-
readonly
|
|
301
|
-
|
|
302
|
-
|
|
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
|
|
307
|
-
readonly title: "
|
|
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 ["
|
|
241
|
+
readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
|
|
311
242
|
readonly properties: {
|
|
312
|
-
readonly
|
|
243
|
+
readonly suite: {
|
|
313
244
|
readonly type: "string";
|
|
314
245
|
readonly minLength: 1;
|
|
315
246
|
};
|
|
316
|
-
readonly
|
|
247
|
+
readonly helperKey: {
|
|
317
248
|
readonly type: "string";
|
|
318
|
-
readonly
|
|
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
|
|
252
|
+
readonly tokenKey: {
|
|
321
253
|
readonly type: "string";
|
|
322
|
-
readonly
|
|
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
|
|
325
|
-
readonly type: "
|
|
326
|
-
readonly
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
428
|
-
readonly title: "
|
|
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 ["
|
|
398
|
+
readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
|
|
433
399
|
readonly properties: {
|
|
434
|
-
readonly
|
|
400
|
+
readonly eventId: {
|
|
435
401
|
readonly type: "string";
|
|
436
402
|
readonly minLength: 1;
|
|
437
403
|
};
|
|
438
|
-
readonly
|
|
404
|
+
readonly startDate: {
|
|
439
405
|
readonly type: "string";
|
|
440
|
-
readonly
|
|
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
|
|
408
|
+
readonly endDate: {
|
|
444
409
|
readonly type: "string";
|
|
445
|
-
readonly
|
|
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
|
|
457
|
-
readonly type: "
|
|
458
|
-
readonly
|
|
459
|
-
readonly type: "string";
|
|
460
|
-
readonly minLength: 1;
|
|
461
|
-
};
|
|
412
|
+
readonly graceDays: {
|
|
413
|
+
readonly type: "integer";
|
|
414
|
+
readonly minimum: 0;
|
|
462
415
|
};
|
|
463
|
-
readonly
|
|
416
|
+
readonly groupFloor: {
|
|
464
417
|
readonly type: "integer";
|
|
465
418
|
readonly minimum: 1;
|
|
466
419
|
};
|
|
467
|
-
readonly
|
|
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/
|
|
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: "
|
|
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
|
|
575
|
-
readonly
|
|
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 ["
|
|
490
|
+
readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
|
|
579
491
|
readonly properties: {
|
|
580
|
-
readonly
|
|
492
|
+
readonly criterionId: {
|
|
581
493
|
readonly type: "string";
|
|
582
494
|
readonly minLength: 1;
|
|
583
|
-
readonly description: "
|
|
584
|
-
};
|
|
585
|
-
readonly
|
|
586
|
-
readonly
|
|
587
|
-
|
|
588
|
-
|
|
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
|
|
593
|
-
readonly title: "
|
|
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 ["
|
|
527
|
+
readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
|
|
597
528
|
readonly properties: {
|
|
598
|
-
readonly
|
|
529
|
+
readonly suite: {
|
|
599
530
|
readonly type: "string";
|
|
600
531
|
readonly minLength: 1;
|
|
601
532
|
};
|
|
602
|
-
readonly
|
|
533
|
+
readonly helperKey: {
|
|
603
534
|
readonly type: "string";
|
|
604
|
-
readonly
|
|
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
|
|
538
|
+
readonly tokenKey: {
|
|
607
539
|
readonly type: "string";
|
|
608
|
-
readonly
|
|
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
|
|
611
|
-
readonly type: "
|
|
612
|
-
readonly
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
714
|
-
readonly title: "
|
|
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 ["
|
|
684
|
+
readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
|
|
719
685
|
readonly properties: {
|
|
720
|
-
readonly
|
|
686
|
+
readonly eventId: {
|
|
721
687
|
readonly type: "string";
|
|
722
688
|
readonly minLength: 1;
|
|
723
689
|
};
|
|
724
|
-
readonly
|
|
690
|
+
readonly startDate: {
|
|
725
691
|
readonly type: "string";
|
|
726
|
-
readonly
|
|
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
|
|
694
|
+
readonly endDate: {
|
|
730
695
|
readonly type: "string";
|
|
731
|
-
readonly
|
|
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
|
|
743
|
-
readonly type: "
|
|
744
|
-
readonly
|
|
745
|
-
readonly type: "string";
|
|
746
|
-
readonly minLength: 1;
|
|
747
|
-
};
|
|
698
|
+
readonly graceDays: {
|
|
699
|
+
readonly type: "integer";
|
|
700
|
+
readonly minimum: 0;
|
|
748
701
|
};
|
|
749
|
-
readonly
|
|
702
|
+
readonly groupFloor: {
|
|
750
703
|
readonly type: "integer";
|
|
751
704
|
readonly minimum: 1;
|
|
752
705
|
};
|
|
753
|
-
readonly
|
|
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/
|
|
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: "
|
|
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
|
|
920
|
-
readonly
|
|
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 ["
|
|
835
|
+
readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
|
|
924
836
|
readonly properties: {
|
|
925
|
-
readonly
|
|
837
|
+
readonly criterionId: {
|
|
926
838
|
readonly type: "string";
|
|
927
839
|
readonly minLength: 1;
|
|
928
|
-
readonly description: "
|
|
840
|
+
readonly description: "The criterion that now accepts a hidden proof.";
|
|
929
841
|
};
|
|
930
|
-
readonly
|
|
931
|
-
readonly
|
|
932
|
-
|
|
933
|
-
|
|
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
|
|
938
|
-
readonly title: "
|
|
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 ["
|
|
872
|
+
readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
|
|
942
873
|
readonly properties: {
|
|
943
|
-
readonly
|
|
874
|
+
readonly suite: {
|
|
944
875
|
readonly type: "string";
|
|
945
876
|
readonly minLength: 1;
|
|
946
877
|
};
|
|
947
|
-
readonly
|
|
878
|
+
readonly helperKey: {
|
|
948
879
|
readonly type: "string";
|
|
949
|
-
readonly
|
|
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
|
|
883
|
+
readonly tokenKey: {
|
|
952
884
|
readonly type: "string";
|
|
953
|
-
readonly
|
|
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
|
|
888
|
+
readonly vetterLabels: {
|
|
964
889
|
readonly type: "array";
|
|
965
890
|
readonly items: {
|
|
966
|
-
readonly
|
|
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
|
|
1059
|
-
readonly title: "
|
|
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 ["
|
|
1029
|
+
readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
|
|
1064
1030
|
readonly properties: {
|
|
1065
|
-
readonly
|
|
1031
|
+
readonly eventId: {
|
|
1066
1032
|
readonly type: "string";
|
|
1067
1033
|
readonly minLength: 1;
|
|
1068
1034
|
};
|
|
1069
|
-
readonly
|
|
1035
|
+
readonly startDate: {
|
|
1070
1036
|
readonly type: "string";
|
|
1071
|
-
readonly
|
|
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
|
|
1039
|
+
readonly endDate: {
|
|
1075
1040
|
readonly type: "string";
|
|
1076
|
-
readonly
|
|
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
|
|
1088
|
-
readonly type: "
|
|
1089
|
-
readonly
|
|
1090
|
-
readonly type: "string";
|
|
1091
|
-
readonly minLength: 1;
|
|
1092
|
-
};
|
|
1043
|
+
readonly graceDays: {
|
|
1044
|
+
readonly type: "integer";
|
|
1045
|
+
readonly minimum: 0;
|
|
1093
1046
|
};
|
|
1094
|
-
readonly
|
|
1047
|
+
readonly groupFloor: {
|
|
1095
1048
|
readonly type: "integer";
|
|
1096
1049
|
readonly minimum: 1;
|
|
1097
1050
|
};
|
|
1098
|
-
readonly
|
|
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/
|
|
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: "
|
|
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
|
|
1217
|
-
readonly
|
|
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 ["
|
|
1132
|
+
readonly required: readonly ["criterionId", "stored", "published", "requirementsDigest"];
|
|
1221
1133
|
readonly properties: {
|
|
1222
|
-
readonly
|
|
1134
|
+
readonly criterionId: {
|
|
1223
1135
|
readonly type: "string";
|
|
1224
1136
|
readonly minLength: 1;
|
|
1225
|
-
readonly description: "
|
|
1137
|
+
readonly description: "The criterion that now accepts a hidden proof.";
|
|
1226
1138
|
};
|
|
1227
|
-
readonly
|
|
1228
|
-
readonly
|
|
1229
|
-
|
|
1230
|
-
|
|
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
|
|
1235
|
-
readonly title: "
|
|
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 ["
|
|
1169
|
+
readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
|
|
1239
1170
|
readonly properties: {
|
|
1240
|
-
readonly
|
|
1171
|
+
readonly suite: {
|
|
1241
1172
|
readonly type: "string";
|
|
1242
1173
|
readonly minLength: 1;
|
|
1243
1174
|
};
|
|
1244
|
-
readonly
|
|
1175
|
+
readonly helperKey: {
|
|
1245
1176
|
readonly type: "string";
|
|
1246
|
-
readonly
|
|
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
|
|
1180
|
+
readonly tokenKey: {
|
|
1249
1181
|
readonly type: "string";
|
|
1250
|
-
readonly
|
|
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
|
|
1253
|
-
readonly type: "
|
|
1254
|
-
readonly
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
1356
|
-
readonly title: "
|
|
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 ["
|
|
1326
|
+
readonly required: readonly ["eventId", "startDate", "endDate", "graceDays", "groupFloor", "tiers"];
|
|
1361
1327
|
readonly properties: {
|
|
1362
|
-
readonly
|
|
1328
|
+
readonly eventId: {
|
|
1363
1329
|
readonly type: "string";
|
|
1364
1330
|
readonly minLength: 1;
|
|
1365
1331
|
};
|
|
1366
|
-
readonly
|
|
1332
|
+
readonly startDate: {
|
|
1367
1333
|
readonly type: "string";
|
|
1368
|
-
readonly
|
|
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
|
|
1336
|
+
readonly endDate: {
|
|
1372
1337
|
readonly type: "string";
|
|
1373
|
-
readonly
|
|
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
|
|
1385
|
-
readonly type: "
|
|
1386
|
-
readonly
|
|
1387
|
-
readonly type: "string";
|
|
1388
|
-
readonly minLength: 1;
|
|
1389
|
-
};
|
|
1340
|
+
readonly graceDays: {
|
|
1341
|
+
readonly type: "integer";
|
|
1342
|
+
readonly minimum: 0;
|
|
1390
1343
|
};
|
|
1391
|
-
readonly
|
|
1344
|
+
readonly groupFloor: {
|
|
1392
1345
|
readonly type: "integer";
|
|
1393
1346
|
readonly minimum: 1;
|
|
1394
1347
|
};
|
|
1395
|
-
readonly
|
|
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/
|
|
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: "
|
|
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
|
};
|