@openvtc/trust-tasks 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/_shared/components.d.ts +314 -3
  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/_shared/0.1/room-storage.d.ts +1 -1
  85. package/dist/vtc/_shared/0.1/room-storage.d.ts.map +1 -1
  86. package/dist/vtc/storage/configs/create/0.1/payload.d.ts +50 -10
  87. package/dist/vtc/storage/configs/create/0.1/payload.d.ts.map +1 -1
  88. package/dist/vtc/storage/configs/create/0.1/payload.js +24 -2
  89. package/dist/vtc/storage/configs/create/0.1/payload.js.map +1 -1
  90. package/dist/vtc/storage/configs/get/0.1/payload.d.ts +66 -10
  91. package/dist/vtc/storage/configs/get/0.1/payload.d.ts.map +1 -1
  92. package/dist/vtc/storage/configs/get/0.1/payload.js +32 -2
  93. package/dist/vtc/storage/configs/get/0.1/payload.js.map +1 -1
  94. package/dist/vtc/storage/configs/list/0.1/payload.d.ts +66 -10
  95. package/dist/vtc/storage/configs/list/0.1/payload.d.ts.map +1 -1
  96. package/dist/vtc/storage/configs/list/0.1/payload.js +32 -2
  97. package/dist/vtc/storage/configs/list/0.1/payload.js.map +1 -1
  98. package/dist/vtc/storage/configs/update/0.1/payload.d.ts +50 -10
  99. package/dist/vtc/storage/configs/update/0.1/payload.d.ts.map +1 -1
  100. package/dist/vtc/storage/configs/update/0.1/payload.js +24 -2
  101. package/dist/vtc/storage/configs/update/0.1/payload.js.map +1 -1
  102. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts +46 -2
  103. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts.map +1 -1
  104. package/dist/vtc/storage/credentials/set/0.1/payload.js +22 -0
  105. package/dist/vtc/storage/credentials/set/0.1/payload.js.map +1 -1
  106. package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts +403 -486
  107. package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts.map +1 -1
  108. package/dist/vtc/vetting/hidden/publish/0.1/payload.js +240 -240
  109. package/dist/vtc/vetting/hidden/publish/0.1/payload.js.map +1 -1
  110. package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts +482 -565
  111. package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts.map +1 -1
  112. package/dist/vtc/vetting/hidden/show/0.1/payload.js +294 -294
  113. package/dist/vtc/vetting/hidden/show/0.1/payload.js.map +1 -1
  114. package/package.json +1 -1
  115. package/src/_shared/components.ts +318 -3
  116. package/src/device/list/0.1/payload.ts +6 -2
  117. package/src/device/list/0.2/payload.ts +6 -2
  118. package/src/device/register/0.1/payload.ts +6 -2
  119. package/src/device/register/0.2/payload.ts +6 -2
  120. package/src/index.ts +14 -0
  121. package/src/vetting/_shared/0.1/hidden-vetting.ts +17 -0
  122. package/src/vetting/attestation/0.1/payload.ts +49 -101
  123. package/src/vta/_shared/0.4/pcs-engine.ts +17 -0
  124. package/src/vta/pcs/applications/create/0.1/payload.ts +768 -0
  125. package/src/vta/pcs/applications/delete/0.1/payload.ts +182 -0
  126. package/src/vta/pcs/applications/show/0.1/payload.ts +482 -0
  127. package/src/vta/pcs/attest/0.1/payload.ts +943 -0
  128. package/src/vta/pcs/prove/0.1/payload.ts +845 -0
  129. package/src/vta/pcs/root-accept/0.1/payload.ts +681 -0
  130. package/src/vta/pcs/root-request/0.1/payload.ts +559 -0
  131. package/src/vta/pcs/tokens/abandon/0.1/payload.ts +392 -0
  132. package/src/vta/pcs/tokens/accept/0.1/payload.ts +713 -0
  133. package/src/vta/pcs/tokens/request/0.1/payload.ts +581 -0
  134. package/src/vta/pcs/verify-attestation/0.1/payload.ts +888 -0
  135. package/src/vta/pcs/vetter/show/0.1/payload.ts +387 -0
  136. package/src/vtc/_shared/0.1/room-storage.ts +1 -1
  137. package/src/vtc/storage/configs/create/0.1/payload.ts +26 -4
  138. package/src/vtc/storage/configs/get/0.1/payload.ts +34 -4
  139. package/src/vtc/storage/configs/list/0.1/payload.ts +34 -4
  140. package/src/vtc/storage/configs/update/0.1/payload.ts +26 -4
  141. package/src/vtc/storage/credentials/set/0.1/payload.ts +24 -2
  142. package/src/vtc/vetting/hidden/publish/0.1/payload.ts +247 -331
  143. package/src/vtc/vetting/hidden/show/0.1/payload.ts +295 -379
@@ -0,0 +1,880 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vta/pcs/root-request/0.1/payload.schema.json
4
+ */
5
+ import type { CommunityParameters, Ext, PublishedConfig, PublishedEvent, TickLength, Tier } from "../../../../_shared/components.js";
6
+ /**
7
+ * A vetter's client asks its VTA for the blinded request that enrols the vetter with a community for a vetting period; the VTA creates the vetter's PCS key on first use and keeps the blinding state.
8
+ */
9
+ export interface VTAPCSRootRequestPayload {
10
+ /**
11
+ * The context the engine belongs to. Its key is derived from this context's base.
12
+ */
13
+ contextId: string;
14
+ /**
15
+ * The community's DID: the helper whose parameters the engine runs under.
16
+ */
17
+ community: string;
18
+ /**
19
+ * The vetter's member DID in the community: the DID that signs the requests the client sends on the vetter's behalf.
20
+ */
21
+ memberDid: string;
22
+ /**
23
+ * The community's published hidden-vetting parameters, copied verbatim from its join manifest.
24
+ */
25
+ parameters: CommunityParameters;
26
+ /**
27
+ * The class label to enrol under: the community's current one.
28
+ */
29
+ label: string;
30
+ ext?: Ext;
31
+ }
32
+ export interface VTAPCSRootRequestResponsePayload {
33
+ request: RootRequest;
34
+ ext?: Ext;
35
+ }
36
+ /**
37
+ * The payload of a vtc/vetting/vetters/pcs-root/0.1 request, without its ext: what the client sends the community.
38
+ */
39
+ export interface RootRequest {
40
+ label: string;
41
+ /**
42
+ * The vetter's PCS identifier for this community.
43
+ */
44
+ id: string;
45
+ request: {
46
+ encoding?: string;
47
+ t0?: string;
48
+ proof: string;
49
+ };
50
+ }
51
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
52
+ export type { CommunityParameters, Ext, PublishedConfig, PublishedEvent, TickLength, Tier };
53
+ /** Trust Task type URI. */
54
+ export declare const TYPE_URI: "https://trusttasks.org/spec/vta/pcs/root-request/0.1";
55
+ /** Stable alias for this specification's request payload shape. */
56
+ export type Payload = VTAPCSRootRequestPayload;
57
+ /** Trust Task response type URI (request type URI + "#response"). */
58
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vta/pcs/root-request/0.1#response";
59
+ /** Stable alias for this specification's success-response payload shape. */
60
+ export type Response = VTAPCSRootRequestResponsePayload;
61
+ /**
62
+ * This specification's payload schema, as a value.
63
+ *
64
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
65
+ * rather than only as a `.json` file because TypeScript types are erased
66
+ * at runtime: without a schema a consumer has nothing to validate, and
67
+ * every REQUIRED payload member is optional in practice. Cross-file
68
+ * `$ref`s are already inlined, so it needs no resolver.
69
+ */
70
+ export declare const PAYLOAD_SCHEMA: {
71
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
72
+ readonly $id: "https://trusttasks.org/spec/vta/pcs/root-request/0.1";
73
+ readonly title: "VTA PCS — Root Request — payload";
74
+ readonly description: "A vetter's client asks its VTA for the blinded request that enrols the vetter with a community for a vetting period; the VTA creates the vetter's PCS key on first use and keeps the blinding state.";
75
+ readonly type: "object";
76
+ readonly additionalProperties: false;
77
+ readonly required: readonly ["contextId", "community", "memberDid", "parameters", "label"];
78
+ readonly properties: {
79
+ readonly contextId: {
80
+ readonly type: "string";
81
+ readonly minLength: 1;
82
+ readonly description: "The context the engine belongs to. Its key is derived from this context's base.";
83
+ };
84
+ readonly community: {
85
+ readonly type: "string";
86
+ readonly minLength: 1;
87
+ readonly description: "The community's DID: the helper whose parameters the engine runs under.";
88
+ };
89
+ readonly memberDid: {
90
+ readonly type: "string";
91
+ readonly minLength: 1;
92
+ readonly description: "The vetter's member DID in the community: the DID that signs the requests the client sends on the vetter's behalf.";
93
+ };
94
+ readonly parameters: {
95
+ readonly $ref: "#/$defs/CommunityParameters";
96
+ readonly description: "The community's published hidden-vetting parameters, copied verbatim from its join manifest.";
97
+ };
98
+ readonly label: {
99
+ readonly type: "string";
100
+ readonly pattern: "^vetter/[0-9]{4}-[0-9]{2}$";
101
+ readonly description: "The class label to enrol under: the community's current one.";
102
+ };
103
+ readonly ext: {
104
+ readonly $ref: "#/$defs/Ext";
105
+ };
106
+ };
107
+ readonly $defs: {
108
+ readonly RootRequest: {
109
+ readonly title: "RootRequest";
110
+ readonly description: "The payload of a vtc/vetting/vetters/pcs-root/0.1 request, without its ext: what the client sends the community.";
111
+ readonly type: "object";
112
+ readonly additionalProperties: false;
113
+ readonly required: readonly ["label", "id", "request"];
114
+ readonly properties: {
115
+ readonly label: {
116
+ readonly type: "string";
117
+ readonly pattern: "^vetter/[0-9]{4}-[0-9]{2}$";
118
+ };
119
+ readonly id: {
120
+ readonly type: "string";
121
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
122
+ readonly description: "The vetter's PCS identifier for this community.";
123
+ };
124
+ readonly request: {
125
+ readonly type: "object";
126
+ readonly additionalProperties: false;
127
+ readonly required: readonly ["proof"];
128
+ readonly properties: {
129
+ readonly encoding: {
130
+ readonly type: "string";
131
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
132
+ };
133
+ readonly t0: {
134
+ readonly type: "string";
135
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
136
+ };
137
+ readonly proof: {
138
+ readonly type: "string";
139
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
140
+ };
141
+ };
142
+ };
143
+ };
144
+ };
145
+ readonly Response: {
146
+ readonly $anchor: "response";
147
+ readonly title: "VTA PCS — Root Request — response payload";
148
+ readonly type: "object";
149
+ readonly additionalProperties: false;
150
+ readonly required: readonly ["request"];
151
+ readonly properties: {
152
+ readonly request: {
153
+ readonly $ref: "#/$defs/RootRequest";
154
+ };
155
+ readonly ext: {
156
+ readonly $ref: "#/$defs/Ext";
157
+ };
158
+ };
159
+ };
160
+ readonly Ext: {
161
+ readonly title: "Ext";
162
+ 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.";
163
+ readonly type: "object";
164
+ readonly minProperties: 1;
165
+ readonly additionalProperties: true;
166
+ readonly propertyNames: {
167
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
168
+ };
169
+ };
170
+ readonly CommunityParameters: {
171
+ readonly title: "CommunityParameters";
172
+ readonly description: "The community's hidden-vetting parameters exactly as its join manifest publishes them, under the criterion's `vetting.ext`. The caller copies them in verbatim on every call that needs them, because the community rotates labels and the engine keeps no copy of its own: a stale copy costs the caller a refused proof, never a mistaken one.";
173
+ readonly $ref: "#/$defs/PublishedConfig";
174
+ };
175
+ readonly PublishedConfig: {
176
+ readonly title: "PublishedConfig";
177
+ 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.";
178
+ readonly type: "object";
179
+ readonly additionalProperties: false;
180
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
181
+ readonly properties: {
182
+ readonly suite: {
183
+ readonly type: "string";
184
+ readonly minLength: 1;
185
+ };
186
+ readonly helperKey: {
187
+ readonly type: "string";
188
+ readonly minLength: 1;
189
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
190
+ };
191
+ readonly tokenKey: {
192
+ readonly type: "string";
193
+ readonly minLength: 1;
194
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
195
+ };
196
+ readonly vetterLabels: {
197
+ readonly type: "array";
198
+ readonly items: {
199
+ readonly type: "string";
200
+ readonly minLength: 1;
201
+ };
202
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
203
+ };
204
+ readonly tokenLabels: {
205
+ readonly type: "array";
206
+ readonly items: {
207
+ readonly type: "string";
208
+ readonly minLength: 1;
209
+ };
210
+ };
211
+ readonly dripPerTick: {
212
+ readonly type: "integer";
213
+ readonly minimum: 1;
214
+ };
215
+ readonly tickLength: {
216
+ readonly $ref: "#/$defs/TickLength";
217
+ };
218
+ readonly events: {
219
+ readonly type: "array";
220
+ readonly items: {
221
+ readonly $ref: "#/$defs/PublishedEvent";
222
+ };
223
+ };
224
+ };
225
+ };
226
+ readonly PublishedEvent: {
227
+ readonly title: "PublishedEvent";
228
+ readonly description: "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.";
229
+ readonly type: "object";
230
+ readonly additionalProperties: false;
231
+ readonly required: readonly ["eventId", "startDate", "endDate", "groupFloor", "tiers"];
232
+ readonly properties: {
233
+ readonly eventId: {
234
+ readonly type: "string";
235
+ readonly minLength: 1;
236
+ };
237
+ readonly startDate: {
238
+ readonly type: "string";
239
+ readonly format: "date";
240
+ };
241
+ readonly endDate: {
242
+ readonly type: "string";
243
+ readonly format: "date";
244
+ };
245
+ readonly groupFloor: {
246
+ readonly type: "integer";
247
+ readonly minimum: 1;
248
+ };
249
+ readonly tiers: {
250
+ readonly type: "array";
251
+ readonly items: {
252
+ readonly $ref: "#/$defs/Tier";
253
+ };
254
+ };
255
+ };
256
+ };
257
+ readonly Tier: {
258
+ readonly title: "Tier";
259
+ readonly type: "object";
260
+ readonly additionalProperties: false;
261
+ readonly required: readonly ["name", "dripPerTick"];
262
+ readonly properties: {
263
+ readonly name: {
264
+ readonly type: "string";
265
+ readonly minLength: 1;
266
+ readonly description: "How the menu names it: desk, busy-desk.";
267
+ };
268
+ readonly dripPerTick: {
269
+ readonly type: "integer";
270
+ readonly minimum: 1;
271
+ readonly description: "How many tokens a tick under this tier yields.";
272
+ };
273
+ };
274
+ };
275
+ readonly TickLength: {
276
+ readonly title: "TickLength";
277
+ readonly type: "string";
278
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
279
+ 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`).";
280
+ };
281
+ };
282
+ };
283
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
284
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
285
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
286
+ readonly $ref: "#/$defs/Response";
287
+ readonly $defs: {
288
+ readonly RootRequest: {
289
+ readonly title: "RootRequest";
290
+ readonly description: "The payload of a vtc/vetting/vetters/pcs-root/0.1 request, without its ext: what the client sends the community.";
291
+ readonly type: "object";
292
+ readonly additionalProperties: false;
293
+ readonly required: readonly ["label", "id", "request"];
294
+ readonly properties: {
295
+ readonly label: {
296
+ readonly type: "string";
297
+ readonly pattern: "^vetter/[0-9]{4}-[0-9]{2}$";
298
+ };
299
+ readonly id: {
300
+ readonly type: "string";
301
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
302
+ readonly description: "The vetter's PCS identifier for this community.";
303
+ };
304
+ readonly request: {
305
+ readonly type: "object";
306
+ readonly additionalProperties: false;
307
+ readonly required: readonly ["proof"];
308
+ readonly properties: {
309
+ readonly encoding: {
310
+ readonly type: "string";
311
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
312
+ };
313
+ readonly t0: {
314
+ readonly type: "string";
315
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
316
+ };
317
+ readonly proof: {
318
+ readonly type: "string";
319
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
320
+ };
321
+ };
322
+ };
323
+ };
324
+ };
325
+ readonly Response: {
326
+ readonly $anchor: "response";
327
+ readonly title: "VTA PCS — Root Request — response payload";
328
+ readonly type: "object";
329
+ readonly additionalProperties: false;
330
+ readonly required: readonly ["request"];
331
+ readonly properties: {
332
+ readonly request: {
333
+ readonly $ref: "#/$defs/RootRequest";
334
+ };
335
+ readonly ext: {
336
+ readonly $ref: "#/$defs/Ext";
337
+ };
338
+ };
339
+ };
340
+ readonly Ext: {
341
+ readonly title: "Ext";
342
+ 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.";
343
+ readonly type: "object";
344
+ readonly minProperties: 1;
345
+ readonly additionalProperties: true;
346
+ readonly propertyNames: {
347
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
348
+ };
349
+ };
350
+ readonly CommunityParameters: {
351
+ readonly title: "CommunityParameters";
352
+ readonly description: "The community's hidden-vetting parameters exactly as its join manifest publishes them, under the criterion's `vetting.ext`. The caller copies them in verbatim on every call that needs them, because the community rotates labels and the engine keeps no copy of its own: a stale copy costs the caller a refused proof, never a mistaken one.";
353
+ readonly $ref: "#/$defs/PublishedConfig";
354
+ };
355
+ readonly PublishedConfig: {
356
+ readonly title: "PublishedConfig";
357
+ 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.";
358
+ readonly type: "object";
359
+ readonly additionalProperties: false;
360
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
361
+ readonly properties: {
362
+ readonly suite: {
363
+ readonly type: "string";
364
+ readonly minLength: 1;
365
+ };
366
+ readonly helperKey: {
367
+ readonly type: "string";
368
+ readonly minLength: 1;
369
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
370
+ };
371
+ readonly tokenKey: {
372
+ readonly type: "string";
373
+ readonly minLength: 1;
374
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
375
+ };
376
+ readonly vetterLabels: {
377
+ readonly type: "array";
378
+ readonly items: {
379
+ readonly type: "string";
380
+ readonly minLength: 1;
381
+ };
382
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
383
+ };
384
+ readonly tokenLabels: {
385
+ readonly type: "array";
386
+ readonly items: {
387
+ readonly type: "string";
388
+ readonly minLength: 1;
389
+ };
390
+ };
391
+ readonly dripPerTick: {
392
+ readonly type: "integer";
393
+ readonly minimum: 1;
394
+ };
395
+ readonly tickLength: {
396
+ readonly $ref: "#/$defs/TickLength";
397
+ };
398
+ readonly events: {
399
+ readonly type: "array";
400
+ readonly items: {
401
+ readonly $ref: "#/$defs/PublishedEvent";
402
+ };
403
+ };
404
+ };
405
+ };
406
+ readonly PublishedEvent: {
407
+ readonly title: "PublishedEvent";
408
+ readonly description: "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.";
409
+ readonly type: "object";
410
+ readonly additionalProperties: false;
411
+ readonly required: readonly ["eventId", "startDate", "endDate", "groupFloor", "tiers"];
412
+ readonly properties: {
413
+ readonly eventId: {
414
+ readonly type: "string";
415
+ readonly minLength: 1;
416
+ };
417
+ readonly startDate: {
418
+ readonly type: "string";
419
+ readonly format: "date";
420
+ };
421
+ readonly endDate: {
422
+ readonly type: "string";
423
+ readonly format: "date";
424
+ };
425
+ readonly groupFloor: {
426
+ readonly type: "integer";
427
+ readonly minimum: 1;
428
+ };
429
+ readonly tiers: {
430
+ readonly type: "array";
431
+ readonly items: {
432
+ readonly $ref: "#/$defs/Tier";
433
+ };
434
+ };
435
+ };
436
+ };
437
+ readonly Tier: {
438
+ readonly title: "Tier";
439
+ readonly type: "object";
440
+ readonly additionalProperties: false;
441
+ readonly required: readonly ["name", "dripPerTick"];
442
+ readonly properties: {
443
+ readonly name: {
444
+ readonly type: "string";
445
+ readonly minLength: 1;
446
+ readonly description: "How the menu names it: desk, busy-desk.";
447
+ };
448
+ readonly dripPerTick: {
449
+ readonly type: "integer";
450
+ readonly minimum: 1;
451
+ readonly description: "How many tokens a tick under this tier yields.";
452
+ };
453
+ };
454
+ };
455
+ readonly TickLength: {
456
+ readonly title: "TickLength";
457
+ readonly type: "string";
458
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
459
+ 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`).";
460
+ };
461
+ };
462
+ };
463
+ /**
464
+ * SPEC.md §7.2 policy for the request variant, from this specification's
465
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
466
+ * per-specification and cannot be derived from the document alone, and
467
+ * item 2 needs the schema this carries.
468
+ */
469
+ export declare const SPEC: {
470
+ readonly typeUri: "https://trusttasks.org/spec/vta/pcs/root-request/0.1";
471
+ readonly isBearer: false;
472
+ readonly isProofRequired: true;
473
+ readonly isRecipientRequired: true;
474
+ readonly isIssuedAtRequired: true;
475
+ readonly payloadSchema: {
476
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
477
+ readonly $id: "https://trusttasks.org/spec/vta/pcs/root-request/0.1";
478
+ readonly title: "VTA PCS — Root Request — payload";
479
+ readonly description: "A vetter's client asks its VTA for the blinded request that enrols the vetter with a community for a vetting period; the VTA creates the vetter's PCS key on first use and keeps the blinding state.";
480
+ readonly type: "object";
481
+ readonly additionalProperties: false;
482
+ readonly required: readonly ["contextId", "community", "memberDid", "parameters", "label"];
483
+ readonly properties: {
484
+ readonly contextId: {
485
+ readonly type: "string";
486
+ readonly minLength: 1;
487
+ readonly description: "The context the engine belongs to. Its key is derived from this context's base.";
488
+ };
489
+ readonly community: {
490
+ readonly type: "string";
491
+ readonly minLength: 1;
492
+ readonly description: "The community's DID: the helper whose parameters the engine runs under.";
493
+ };
494
+ readonly memberDid: {
495
+ readonly type: "string";
496
+ readonly minLength: 1;
497
+ readonly description: "The vetter's member DID in the community: the DID that signs the requests the client sends on the vetter's behalf.";
498
+ };
499
+ readonly parameters: {
500
+ readonly $ref: "#/$defs/CommunityParameters";
501
+ readonly description: "The community's published hidden-vetting parameters, copied verbatim from its join manifest.";
502
+ };
503
+ readonly label: {
504
+ readonly type: "string";
505
+ readonly pattern: "^vetter/[0-9]{4}-[0-9]{2}$";
506
+ readonly description: "The class label to enrol under: the community's current one.";
507
+ };
508
+ readonly ext: {
509
+ readonly $ref: "#/$defs/Ext";
510
+ };
511
+ };
512
+ readonly $defs: {
513
+ readonly RootRequest: {
514
+ readonly title: "RootRequest";
515
+ readonly description: "The payload of a vtc/vetting/vetters/pcs-root/0.1 request, without its ext: what the client sends the community.";
516
+ readonly type: "object";
517
+ readonly additionalProperties: false;
518
+ readonly required: readonly ["label", "id", "request"];
519
+ readonly properties: {
520
+ readonly label: {
521
+ readonly type: "string";
522
+ readonly pattern: "^vetter/[0-9]{4}-[0-9]{2}$";
523
+ };
524
+ readonly id: {
525
+ readonly type: "string";
526
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
527
+ readonly description: "The vetter's PCS identifier for this community.";
528
+ };
529
+ readonly request: {
530
+ readonly type: "object";
531
+ readonly additionalProperties: false;
532
+ readonly required: readonly ["proof"];
533
+ readonly properties: {
534
+ readonly encoding: {
535
+ readonly type: "string";
536
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
537
+ };
538
+ readonly t0: {
539
+ readonly type: "string";
540
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
541
+ };
542
+ readonly proof: {
543
+ readonly type: "string";
544
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
545
+ };
546
+ };
547
+ };
548
+ };
549
+ };
550
+ readonly Response: {
551
+ readonly $anchor: "response";
552
+ readonly title: "VTA PCS — Root Request — response payload";
553
+ readonly type: "object";
554
+ readonly additionalProperties: false;
555
+ readonly required: readonly ["request"];
556
+ readonly properties: {
557
+ readonly request: {
558
+ readonly $ref: "#/$defs/RootRequest";
559
+ };
560
+ readonly ext: {
561
+ readonly $ref: "#/$defs/Ext";
562
+ };
563
+ };
564
+ };
565
+ readonly Ext: {
566
+ readonly title: "Ext";
567
+ 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.";
568
+ readonly type: "object";
569
+ readonly minProperties: 1;
570
+ readonly additionalProperties: true;
571
+ readonly propertyNames: {
572
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
573
+ };
574
+ };
575
+ readonly CommunityParameters: {
576
+ readonly title: "CommunityParameters";
577
+ readonly description: "The community's hidden-vetting parameters exactly as its join manifest publishes them, under the criterion's `vetting.ext`. The caller copies them in verbatim on every call that needs them, because the community rotates labels and the engine keeps no copy of its own: a stale copy costs the caller a refused proof, never a mistaken one.";
578
+ readonly $ref: "#/$defs/PublishedConfig";
579
+ };
580
+ readonly PublishedConfig: {
581
+ readonly title: "PublishedConfig";
582
+ 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.";
583
+ readonly type: "object";
584
+ readonly additionalProperties: false;
585
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
586
+ readonly properties: {
587
+ readonly suite: {
588
+ readonly type: "string";
589
+ readonly minLength: 1;
590
+ };
591
+ readonly helperKey: {
592
+ readonly type: "string";
593
+ readonly minLength: 1;
594
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
595
+ };
596
+ readonly tokenKey: {
597
+ readonly type: "string";
598
+ readonly minLength: 1;
599
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
600
+ };
601
+ readonly vetterLabels: {
602
+ readonly type: "array";
603
+ readonly items: {
604
+ readonly type: "string";
605
+ readonly minLength: 1;
606
+ };
607
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
608
+ };
609
+ readonly tokenLabels: {
610
+ readonly type: "array";
611
+ readonly items: {
612
+ readonly type: "string";
613
+ readonly minLength: 1;
614
+ };
615
+ };
616
+ readonly dripPerTick: {
617
+ readonly type: "integer";
618
+ readonly minimum: 1;
619
+ };
620
+ readonly tickLength: {
621
+ readonly $ref: "#/$defs/TickLength";
622
+ };
623
+ readonly events: {
624
+ readonly type: "array";
625
+ readonly items: {
626
+ readonly $ref: "#/$defs/PublishedEvent";
627
+ };
628
+ };
629
+ };
630
+ };
631
+ readonly PublishedEvent: {
632
+ readonly title: "PublishedEvent";
633
+ readonly description: "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.";
634
+ readonly type: "object";
635
+ readonly additionalProperties: false;
636
+ readonly required: readonly ["eventId", "startDate", "endDate", "groupFloor", "tiers"];
637
+ readonly properties: {
638
+ readonly eventId: {
639
+ readonly type: "string";
640
+ readonly minLength: 1;
641
+ };
642
+ readonly startDate: {
643
+ readonly type: "string";
644
+ readonly format: "date";
645
+ };
646
+ readonly endDate: {
647
+ readonly type: "string";
648
+ readonly format: "date";
649
+ };
650
+ readonly groupFloor: {
651
+ readonly type: "integer";
652
+ readonly minimum: 1;
653
+ };
654
+ readonly tiers: {
655
+ readonly type: "array";
656
+ readonly items: {
657
+ readonly $ref: "#/$defs/Tier";
658
+ };
659
+ };
660
+ };
661
+ };
662
+ readonly Tier: {
663
+ readonly title: "Tier";
664
+ readonly type: "object";
665
+ readonly additionalProperties: false;
666
+ readonly required: readonly ["name", "dripPerTick"];
667
+ readonly properties: {
668
+ readonly name: {
669
+ readonly type: "string";
670
+ readonly minLength: 1;
671
+ readonly description: "How the menu names it: desk, busy-desk.";
672
+ };
673
+ readonly dripPerTick: {
674
+ readonly type: "integer";
675
+ readonly minimum: 1;
676
+ readonly description: "How many tokens a tick under this tier yields.";
677
+ };
678
+ };
679
+ };
680
+ readonly TickLength: {
681
+ readonly title: "TickLength";
682
+ readonly type: "string";
683
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
684
+ 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`).";
685
+ };
686
+ };
687
+ };
688
+ };
689
+ /**
690
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
691
+ * tracks the *issuer* party's requirement because a response swaps the
692
+ * parties (§7.3 item 5).
693
+ */
694
+ export declare const RESPONSE_SPEC: {
695
+ readonly typeUri: "https://trusttasks.org/spec/vta/pcs/root-request/0.1#response";
696
+ readonly isBearer: false;
697
+ readonly isProofRequired: false;
698
+ readonly isRecipientRequired: true;
699
+ readonly isIssuedAtRequired: true;
700
+ readonly payloadSchema: {
701
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
702
+ readonly $ref: "#/$defs/Response";
703
+ readonly $defs: {
704
+ readonly RootRequest: {
705
+ readonly title: "RootRequest";
706
+ readonly description: "The payload of a vtc/vetting/vetters/pcs-root/0.1 request, without its ext: what the client sends the community.";
707
+ readonly type: "object";
708
+ readonly additionalProperties: false;
709
+ readonly required: readonly ["label", "id", "request"];
710
+ readonly properties: {
711
+ readonly label: {
712
+ readonly type: "string";
713
+ readonly pattern: "^vetter/[0-9]{4}-[0-9]{2}$";
714
+ };
715
+ readonly id: {
716
+ readonly type: "string";
717
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
718
+ readonly description: "The vetter's PCS identifier for this community.";
719
+ };
720
+ readonly request: {
721
+ readonly type: "object";
722
+ readonly additionalProperties: false;
723
+ readonly required: readonly ["proof"];
724
+ readonly properties: {
725
+ readonly encoding: {
726
+ readonly type: "string";
727
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
728
+ };
729
+ readonly t0: {
730
+ readonly type: "string";
731
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
732
+ };
733
+ readonly proof: {
734
+ readonly type: "string";
735
+ readonly pattern: "^z[1-9A-HJ-NP-Za-km-z]+$";
736
+ };
737
+ };
738
+ };
739
+ };
740
+ };
741
+ readonly Response: {
742
+ readonly $anchor: "response";
743
+ readonly title: "VTA PCS — Root Request — response payload";
744
+ readonly type: "object";
745
+ readonly additionalProperties: false;
746
+ readonly required: readonly ["request"];
747
+ readonly properties: {
748
+ readonly request: {
749
+ readonly $ref: "#/$defs/RootRequest";
750
+ };
751
+ readonly ext: {
752
+ readonly $ref: "#/$defs/Ext";
753
+ };
754
+ };
755
+ };
756
+ readonly Ext: {
757
+ readonly title: "Ext";
758
+ 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.";
759
+ readonly type: "object";
760
+ readonly minProperties: 1;
761
+ readonly additionalProperties: true;
762
+ readonly propertyNames: {
763
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
764
+ };
765
+ };
766
+ readonly CommunityParameters: {
767
+ readonly title: "CommunityParameters";
768
+ readonly description: "The community's hidden-vetting parameters exactly as its join manifest publishes them, under the criterion's `vetting.ext`. The caller copies them in verbatim on every call that needs them, because the community rotates labels and the engine keeps no copy of its own: a stale copy costs the caller a refused proof, never a mistaken one.";
769
+ readonly $ref: "#/$defs/PublishedConfig";
770
+ };
771
+ readonly PublishedConfig: {
772
+ readonly title: "PublishedConfig";
773
+ 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.";
774
+ readonly type: "object";
775
+ readonly additionalProperties: false;
776
+ readonly required: readonly ["suite", "helperKey", "tokenKey", "vetterLabels", "tokenLabels", "dripPerTick", "tickLength", "events"];
777
+ readonly properties: {
778
+ readonly suite: {
779
+ readonly type: "string";
780
+ readonly minLength: 1;
781
+ };
782
+ readonly helperKey: {
783
+ readonly type: "string";
784
+ readonly minLength: 1;
785
+ readonly description: "The helper verification key, multibase — named for its role on the wire rather than for hvk.";
786
+ };
787
+ readonly tokenKey: {
788
+ readonly type: "string";
789
+ readonly minLength: 1;
790
+ readonly description: "The token verification key, multibase — named for its role on the wire rather than for tvk.";
791
+ };
792
+ readonly vetterLabels: {
793
+ readonly type: "array";
794
+ readonly items: {
795
+ readonly type: "string";
796
+ readonly minLength: 1;
797
+ };
798
+ readonly description: "Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.";
799
+ };
800
+ readonly tokenLabels: {
801
+ readonly type: "array";
802
+ readonly items: {
803
+ readonly type: "string";
804
+ readonly minLength: 1;
805
+ };
806
+ };
807
+ readonly dripPerTick: {
808
+ readonly type: "integer";
809
+ readonly minimum: 1;
810
+ };
811
+ readonly tickLength: {
812
+ readonly $ref: "#/$defs/TickLength";
813
+ };
814
+ readonly events: {
815
+ readonly type: "array";
816
+ readonly items: {
817
+ readonly $ref: "#/$defs/PublishedEvent";
818
+ };
819
+ };
820
+ };
821
+ };
822
+ readonly PublishedEvent: {
823
+ readonly title: "PublishedEvent";
824
+ readonly description: "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.";
825
+ readonly type: "object";
826
+ readonly additionalProperties: false;
827
+ readonly required: readonly ["eventId", "startDate", "endDate", "groupFloor", "tiers"];
828
+ readonly properties: {
829
+ readonly eventId: {
830
+ readonly type: "string";
831
+ readonly minLength: 1;
832
+ };
833
+ readonly startDate: {
834
+ readonly type: "string";
835
+ readonly format: "date";
836
+ };
837
+ readonly endDate: {
838
+ readonly type: "string";
839
+ readonly format: "date";
840
+ };
841
+ readonly groupFloor: {
842
+ readonly type: "integer";
843
+ readonly minimum: 1;
844
+ };
845
+ readonly tiers: {
846
+ readonly type: "array";
847
+ readonly items: {
848
+ readonly $ref: "#/$defs/Tier";
849
+ };
850
+ };
851
+ };
852
+ };
853
+ readonly Tier: {
854
+ readonly title: "Tier";
855
+ readonly type: "object";
856
+ readonly additionalProperties: false;
857
+ readonly required: readonly ["name", "dripPerTick"];
858
+ readonly properties: {
859
+ readonly name: {
860
+ readonly type: "string";
861
+ readonly minLength: 1;
862
+ readonly description: "How the menu names it: desk, busy-desk.";
863
+ };
864
+ readonly dripPerTick: {
865
+ readonly type: "integer";
866
+ readonly minimum: 1;
867
+ readonly description: "How many tokens a tick under this tier yields.";
868
+ };
869
+ };
870
+ };
871
+ readonly TickLength: {
872
+ readonly title: "TickLength";
873
+ readonly type: "string";
874
+ readonly pattern: "^P(?:\\d+D(?:T\\d+H)?|T\\d+H)$";
875
+ 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`).";
876
+ };
877
+ };
878
+ };
879
+ };
880
+ //# sourceMappingURL=payload.d.ts.map