@openvtc/trust-tasks 0.26.13 → 0.26.15

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 (202) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/dist/_shared/components.d.ts +392 -1
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/index.d.ts +18 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +18 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/rooms/_shared/0.1/personal-label.d.ts +16 -0
  9. package/dist/rooms/_shared/0.1/personal-label.d.ts.map +1 -0
  10. package/dist/rooms/_shared/0.1/personal-label.js +6 -0
  11. package/dist/rooms/_shared/0.1/personal-label.js.map +1 -0
  12. package/dist/rooms/_shared/0.1/room.d.ts +1 -1
  13. package/dist/rooms/_shared/0.1/room.d.ts.map +1 -1
  14. package/dist/rooms/blobs/get/0.1/payload.d.ts +4 -4
  15. package/dist/rooms/blobs/get/0.1/payload.js +2 -2
  16. package/dist/rooms/blobs/get/0.1/payload.js.map +1 -1
  17. package/dist/rooms/blobs/get/0.2/payload.d.ts +4 -4
  18. package/dist/rooms/blobs/get/0.2/payload.js +2 -2
  19. package/dist/rooms/blobs/get/0.2/payload.js.map +1 -1
  20. package/dist/rooms/blobs/upload/begin/0.1/payload.d.ts +4 -4
  21. package/dist/rooms/blobs/upload/begin/0.1/payload.js +2 -2
  22. package/dist/rooms/blobs/upload/begin/0.1/payload.js.map +1 -1
  23. package/dist/rooms/blobs/upload/begin/0.2/payload.d.ts +4 -4
  24. package/dist/rooms/blobs/upload/begin/0.2/payload.js +2 -2
  25. package/dist/rooms/blobs/upload/begin/0.2/payload.js.map +1 -1
  26. package/dist/rooms/epoch/chain/0.1/payload.d.ts +4 -4
  27. package/dist/rooms/epoch/chain/0.1/payload.js +2 -2
  28. package/dist/rooms/epoch/chain/0.1/payload.js.map +1 -1
  29. package/dist/rooms/epoch/commits/0.1/payload.d.ts +4 -4
  30. package/dist/rooms/epoch/commits/0.1/payload.js +2 -2
  31. package/dist/rooms/epoch/commits/0.1/payload.js.map +1 -1
  32. package/dist/rooms/epoch/mint/0.1/payload.d.ts +4 -4
  33. package/dist/rooms/epoch/mint/0.1/payload.js +2 -2
  34. package/dist/rooms/epoch/mint/0.1/payload.js.map +1 -1
  35. package/dist/rooms/epoch/prune/0.1/payload.d.ts +4 -4
  36. package/dist/rooms/epoch/prune/0.1/payload.js +2 -2
  37. package/dist/rooms/epoch/prune/0.1/payload.js.map +1 -1
  38. package/dist/rooms/info/0.1/payload.d.ts +4 -4
  39. package/dist/rooms/info/0.1/payload.js +2 -2
  40. package/dist/rooms/info/0.1/payload.js.map +1 -1
  41. package/dist/rooms/keys/label/0.1/payload.d.ts +757 -0
  42. package/dist/rooms/keys/label/0.1/payload.d.ts.map +1 -0
  43. package/dist/rooms/keys/label/0.1/payload.js +388 -0
  44. package/dist/rooms/keys/label/0.1/payload.js.map +1 -0
  45. package/dist/rooms/keys/list/0.2/payload.d.ts +667 -0
  46. package/dist/rooms/keys/list/0.2/payload.d.ts.map +1 -0
  47. package/dist/rooms/keys/list/0.2/payload.js +350 -0
  48. package/dist/rooms/keys/list/0.2/payload.js.map +1 -0
  49. package/dist/rooms/keys/present/0.2/payload.d.ts +4 -4
  50. package/dist/rooms/keys/present/0.2/payload.js +2 -2
  51. package/dist/rooms/keys/present/0.2/payload.js.map +1 -1
  52. package/dist/rooms/keys/profile/read/0.1/payload.d.ts +1652 -0
  53. package/dist/rooms/keys/profile/read/0.1/payload.d.ts.map +1 -0
  54. package/dist/rooms/keys/profile/read/0.1/payload.js +649 -0
  55. package/dist/rooms/keys/profile/read/0.1/payload.js.map +1 -0
  56. package/dist/rooms/keys/profile/write/0.1/payload.d.ts +583 -0
  57. package/dist/rooms/keys/profile/write/0.1/payload.d.ts.map +1 -0
  58. package/dist/rooms/keys/profile/write/0.1/payload.js +319 -0
  59. package/dist/rooms/keys/profile/write/0.1/payload.js.map +1 -0
  60. package/dist/rooms/owner/claim/0.1/payload.d.ts +4 -4
  61. package/dist/rooms/owner/claim/0.1/payload.js +2 -2
  62. package/dist/rooms/owner/claim/0.1/payload.js.map +1 -1
  63. package/dist/rooms/owner/group/remove/0.2/payload.d.ts +600 -0
  64. package/dist/rooms/owner/group/remove/0.2/payload.d.ts.map +1 -0
  65. package/dist/rooms/owner/group/remove/0.2/payload.js +310 -0
  66. package/dist/rooms/owner/group/remove/0.2/payload.js.map +1 -0
  67. package/dist/rooms/owner/revoke/0.1/payload.d.ts +1481 -0
  68. package/dist/rooms/owner/revoke/0.1/payload.d.ts.map +1 -0
  69. package/dist/rooms/owner/revoke/0.1/payload.js +811 -0
  70. package/dist/rooms/owner/revoke/0.1/payload.js.map +1 -0
  71. package/dist/rooms/owner/transfer/0.1/payload.d.ts +4 -4
  72. package/dist/rooms/owner/transfer/0.1/payload.js +2 -2
  73. package/dist/rooms/owner/transfer/0.1/payload.js.map +1 -1
  74. package/dist/rooms/records/curate/0.1/payload.d.ts +4 -4
  75. package/dist/rooms/records/curate/0.1/payload.js +2 -2
  76. package/dist/rooms/records/curate/0.1/payload.js.map +1 -1
  77. package/dist/rooms/records/get/0.1/payload.d.ts +4 -4
  78. package/dist/rooms/records/get/0.1/payload.js +2 -2
  79. package/dist/rooms/records/get/0.1/payload.js.map +1 -1
  80. package/dist/rooms/records/get/0.2/payload.d.ts +4 -4
  81. package/dist/rooms/records/get/0.2/payload.js +2 -2
  82. package/dist/rooms/records/get/0.2/payload.js.map +1 -1
  83. package/dist/rooms/records/list/0.1/payload.d.ts +4 -4
  84. package/dist/rooms/records/list/0.1/payload.js +2 -2
  85. package/dist/rooms/records/list/0.1/payload.js.map +1 -1
  86. package/dist/rooms/records/list/0.2/payload.d.ts +4 -4
  87. package/dist/rooms/records/list/0.2/payload.js +2 -2
  88. package/dist/rooms/records/list/0.2/payload.js.map +1 -1
  89. package/dist/rooms/records/put/0.1/payload.d.ts +4 -4
  90. package/dist/rooms/records/put/0.1/payload.js +2 -2
  91. package/dist/rooms/records/put/0.1/payload.js.map +1 -1
  92. package/dist/rooms/records/put/0.2/payload.d.ts +4 -4
  93. package/dist/rooms/records/put/0.2/payload.js +2 -2
  94. package/dist/rooms/records/put/0.2/payload.js.map +1 -1
  95. package/dist/rooms/revocations/get/0.1/payload.d.ts +905 -0
  96. package/dist/rooms/revocations/get/0.1/payload.d.ts.map +1 -0
  97. package/dist/rooms/revocations/get/0.1/payload.js +512 -0
  98. package/dist/rooms/revocations/get/0.1/payload.js.map +1 -0
  99. package/dist/rooms/revocations/put/0.1/payload.d.ts +1021 -0
  100. package/dist/rooms/revocations/put/0.1/payload.d.ts.map +1 -0
  101. package/dist/rooms/revocations/put/0.1/payload.js +583 -0
  102. package/dist/rooms/revocations/put/0.1/payload.js.map +1 -0
  103. package/dist/rooms/usage/0.1/payload.d.ts +4 -4
  104. package/dist/rooms/usage/0.1/payload.js +2 -2
  105. package/dist/rooms/usage/0.1/payload.js.map +1 -1
  106. package/dist/vtc/_shared/0.1/community-room.d.ts +1 -1
  107. package/dist/vtc/_shared/0.1/community-room.d.ts.map +1 -1
  108. package/dist/vtc/registry/sync-jobs/retry/0.2/payload.d.ts +546 -0
  109. package/dist/vtc/registry/sync-jobs/retry/0.2/payload.d.ts.map +1 -0
  110. package/dist/vtc/registry/sync-jobs/retry/0.2/payload.js +331 -0
  111. package/dist/vtc/registry/sync-jobs/retry/0.2/payload.js.map +1 -0
  112. package/dist/vtc/rooms/community/create/0.1/payload.d.ts +4 -4
  113. package/dist/vtc/rooms/community/create/0.1/payload.js +2 -2
  114. package/dist/vtc/rooms/community/create/0.1/payload.js.map +1 -1
  115. package/dist/vtc/rooms/community/create/0.2/payload.d.ts +989 -0
  116. package/dist/vtc/rooms/community/create/0.2/payload.d.ts.map +1 -0
  117. package/dist/vtc/rooms/community/create/0.2/payload.js +559 -0
  118. package/dist/vtc/rooms/community/create/0.2/payload.js.map +1 -0
  119. package/dist/vtc/rooms/community/create/0.3/payload.d.ts +1013 -0
  120. package/dist/vtc/rooms/community/create/0.3/payload.d.ts.map +1 -0
  121. package/dist/vtc/rooms/community/create/0.3/payload.js +577 -0
  122. package/dist/vtc/rooms/community/create/0.3/payload.js.map +1 -0
  123. package/dist/vtc/rooms/community/get/0.1/payload.d.ts +4 -4
  124. package/dist/vtc/rooms/community/get/0.1/payload.js +2 -2
  125. package/dist/vtc/rooms/community/get/0.1/payload.js.map +1 -1
  126. package/dist/vtc/rooms/community/get/0.2/payload.d.ts +887 -0
  127. package/dist/vtc/rooms/community/get/0.2/payload.d.ts.map +1 -0
  128. package/dist/vtc/rooms/community/get/0.2/payload.js +517 -0
  129. package/dist/vtc/rooms/community/get/0.2/payload.js.map +1 -0
  130. package/dist/vtc/rooms/community/list/0.1/payload.d.ts +4 -4
  131. package/dist/vtc/rooms/community/list/0.1/payload.js +2 -2
  132. package/dist/vtc/rooms/community/list/0.1/payload.js.map +1 -1
  133. package/dist/vtc/rooms/community/list/0.2/payload.d.ts +960 -0
  134. package/dist/vtc/rooms/community/list/0.2/payload.d.ts.map +1 -0
  135. package/dist/vtc/rooms/community/list/0.2/payload.js +544 -0
  136. package/dist/vtc/rooms/community/list/0.2/payload.js.map +1 -0
  137. package/dist/vtc/rooms/community/members/remove/0.2/payload.d.ts +681 -0
  138. package/dist/vtc/rooms/community/members/remove/0.2/payload.d.ts.map +1 -0
  139. package/dist/vtc/rooms/community/members/remove/0.2/payload.js +393 -0
  140. package/dist/vtc/rooms/community/members/remove/0.2/payload.js.map +1 -0
  141. package/dist/vtc/rooms/community/update/0.1/payload.d.ts +1013 -0
  142. package/dist/vtc/rooms/community/update/0.1/payload.d.ts.map +1 -0
  143. package/dist/vtc/rooms/community/update/0.1/payload.js +573 -0
  144. package/dist/vtc/rooms/community/update/0.1/payload.js.map +1 -0
  145. package/dist/vtc/rooms/community/update/0.2/payload.d.ts +1037 -0
  146. package/dist/vtc/rooms/community/update/0.2/payload.d.ts.map +1 -0
  147. package/dist/vtc/rooms/community/update/0.2/payload.js +593 -0
  148. package/dist/vtc/rooms/community/update/0.2/payload.js.map +1 -0
  149. package/dist/vtc/rooms/offers/list/0.1/payload.d.ts +4 -4
  150. package/dist/vtc/rooms/offers/list/0.1/payload.js +2 -2
  151. package/dist/vtc/rooms/offers/list/0.1/payload.js.map +1 -1
  152. package/dist/vtc/rooms/offers/list/0.2/payload.d.ts +736 -0
  153. package/dist/vtc/rooms/offers/list/0.2/payload.d.ts.map +1 -0
  154. package/dist/vtc/rooms/offers/list/0.2/payload.js +430 -0
  155. package/dist/vtc/rooms/offers/list/0.2/payload.js.map +1 -0
  156. package/package.json +1 -1
  157. package/src/_shared/components.ts +426 -1
  158. package/src/index.ts +18 -0
  159. package/src/rooms/_shared/0.1/personal-label.ts +17 -0
  160. package/src/rooms/_shared/0.1/room.ts +1 -1
  161. package/src/rooms/blobs/get/0.1/payload.ts +2 -2
  162. package/src/rooms/blobs/get/0.2/payload.ts +2 -2
  163. package/src/rooms/blobs/upload/begin/0.1/payload.ts +2 -2
  164. package/src/rooms/blobs/upload/begin/0.2/payload.ts +2 -2
  165. package/src/rooms/epoch/chain/0.1/payload.ts +2 -2
  166. package/src/rooms/epoch/commits/0.1/payload.ts +2 -2
  167. package/src/rooms/epoch/mint/0.1/payload.ts +2 -2
  168. package/src/rooms/epoch/prune/0.1/payload.ts +2 -2
  169. package/src/rooms/info/0.1/payload.ts +2 -2
  170. package/src/rooms/keys/label/0.1/payload.ts +474 -0
  171. package/src/rooms/keys/list/0.2/payload.ts +412 -0
  172. package/src/rooms/keys/present/0.2/payload.ts +2 -2
  173. package/src/rooms/keys/profile/read/0.1/payload.ts +1617 -0
  174. package/src/rooms/keys/profile/write/0.1/payload.ts +388 -0
  175. package/src/rooms/owner/claim/0.1/payload.ts +2 -2
  176. package/src/rooms/owner/group/remove/0.2/payload.ts +415 -0
  177. package/src/rooms/owner/revoke/0.1/payload.ts +954 -0
  178. package/src/rooms/owner/transfer/0.1/payload.ts +2 -2
  179. package/src/rooms/records/curate/0.1/payload.ts +2 -2
  180. package/src/rooms/records/get/0.1/payload.ts +2 -2
  181. package/src/rooms/records/get/0.2/payload.ts +2 -2
  182. package/src/rooms/records/list/0.1/payload.ts +2 -2
  183. package/src/rooms/records/list/0.2/payload.ts +2 -2
  184. package/src/rooms/records/put/0.1/payload.ts +2 -2
  185. package/src/rooms/records/put/0.2/payload.ts +2 -2
  186. package/src/rooms/revocations/get/0.1/payload.ts +562 -0
  187. package/src/rooms/revocations/put/0.1/payload.ts +637 -0
  188. package/src/rooms/usage/0.1/payload.ts +2 -2
  189. package/src/vtc/_shared/0.1/community-room.ts +1 -1
  190. package/src/vtc/registry/sync-jobs/retry/0.2/payload.ts +401 -0
  191. package/src/vtc/rooms/community/create/0.1/payload.ts +2 -2
  192. package/src/vtc/rooms/community/create/0.2/payload.ts +613 -0
  193. package/src/vtc/rooms/community/create/0.3/payload.ts +635 -0
  194. package/src/vtc/rooms/community/get/0.1/payload.ts +2 -2
  195. package/src/vtc/rooms/community/get/0.2/payload.ts +549 -0
  196. package/src/vtc/rooms/community/list/0.1/payload.ts +2 -2
  197. package/src/vtc/rooms/community/list/0.2/payload.ts +591 -0
  198. package/src/vtc/rooms/community/members/remove/0.2/payload.ts +439 -0
  199. package/src/vtc/rooms/community/update/0.1/payload.ts +629 -0
  200. package/src/vtc/rooms/community/update/0.2/payload.ts +653 -0
  201. package/src/vtc/rooms/offers/list/0.1/payload.ts +2 -2
  202. package/src/vtc/rooms/offers/list/0.2/payload.ts +473 -0
@@ -274,7 +274,7 @@ export const PAYLOAD_SCHEMA = {
274
274
  "membership",
275
275
  "authority"
276
276
  ],
277
- "description": "What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.",
277
+ "description": "What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.\n\n**Every credential is its issuer's attestation, and only its issuer's.** For the membership credential and for every link of `authority`, a host MUST verify the credential's `proof` with a key that the credential's own `issuer` lists for `assertionMethod` in its DID document, and MUST refuse a credential whose proof names a verification method that is not its issuer's. A proof that verifies under some other party's key is that party's statement, not the issuer's, and confers nothing. The same binding holds for every other document a room signs, such as a `RevocationList`.\n\n**A chain that verifies may still be revoked.** A host that has accepted a `RevocationList` for the room (`rooms/revocations/put`) MUST, from the moment it accepted it, refuse every presentation in which the membership credential or any link of `authority` is revoked by that list, under every task and every version of every task it serves for the room. A chain from which any link is revoked is refused whole: a credential delegated from a revoked one confers nothing, however it was attenuated. The refusal is the same `permissionDenied` as any other failed presentation.",
278
278
  "properties": {
279
279
  "membership": {
280
280
  "type": "string",
@@ -445,7 +445,7 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
445
445
  "membership",
446
446
  "authority"
447
447
  ],
448
- "description": "What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.",
448
+ "description": "What a party presents to act on a room. Carries the whole authority chain: a host MUST NOT dereference an authority credential's `parent` to fetch a link it was not given. Resolving over the network would make verification depend on availability, turn every identifier into a request the host can be induced to make against an address the holder chooses, and signal credential use to whoever hosts the identifier. A host MUST bind the presenter to the chain's leaf. A chain that verifies is evidence that authority was conferred on somebody; it is not evidence that the party presenting it is that somebody. The leaf's subject MUST equal the party the host authenticated for this request — an identity the transport established or a document `proof` proved, never one named in a payload. A host that omits this check authorizes every captured presentation, and the omission is silent, because the chain still verifies.\n\n**Every credential is its issuer's attestation, and only its issuer's.** For the membership credential and for every link of `authority`, a host MUST verify the credential's `proof` with a key that the credential's own `issuer` lists for `assertionMethod` in its DID document, and MUST refuse a credential whose proof names a verification method that is not its issuer's. A proof that verifies under some other party's key is that party's statement, not the issuer's, and confers nothing. The same binding holds for every other document a room signs, such as a `RevocationList`.\n\n**A chain that verifies may still be revoked.** A host that has accepted a `RevocationList` for the room (`rooms/revocations/put`) MUST, from the moment it accepted it, refuse every presentation in which the membership credential or any link of `authority` is revoked by that list, under every task and every version of every task it serves for the room. A chain from which any link is revoked is refused whole: a credential delegated from a revoked one confers nothing, however it was attenuated. The refusal is the same `permissionDenied` as any other failed presentation.",
449
449
  "properties": {
450
450
  "membership": {
451
451
  "type": "string",
@@ -14,4 +14,4 @@ export interface VTCSharedCommunityOwnedRoomDefinitions {
14
14
  * The definitions this shared schema publishes, hoisted to one declaration each.
15
15
  * See "../../../_shared/components.js".
16
16
  */
17
- export type { CommunityRoom, MemberAction, MemberActions, MemberState, Offer, OfferCredentials, Reason, RoomLabel, RoomMember } from "../../../_shared/components.js";
17
+ export type { CommunityRoom, CommunityRoomV2, MemberAction, MemberActions, MemberState, Offer, OfferCredentials, OfferV2, Reason, RoomDescription, RoomLabel, RoomMember, RoomTag, RoomTags } from "../../../_shared/components.js";
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vtc/registry/sync-jobs/retry/0.2/payload.schema.json
4
+ */
5
+
6
+ import type { Ext } from "../../../../../_shared/components.js";
7
+
8
+
9
+ /**
10
+ * Requeue a trust-registry reconciliation job — one the community's reconciler has abandoned, or one waiting out a retry backoff — so it is dispatched on the reconciler's next pass.
11
+ */
12
+ export type VTCRegistrySyncJobsRetryPayload = {
13
+ /**
14
+ * The single job to requeue, from `vtc/registry/sync-jobs/list`. It may be `failed`, or `pending` and waiting out a retry backoff.
15
+ */
16
+ jobId?: string;
17
+ /**
18
+ * Requeue every job in the terminal `failed` state. Spelled as its own member rather than an absent `jobId` so that a client bug which drops the identifier cannot silently become a bulk operation.
19
+ */
20
+ allFailed?: true;
21
+ /**
22
+ * Bring forward every `pending` job that is waiting out a retry backoff. Never a held job. Its own member for the same reason as `allFailed`, and distinct from it so that repairing a shared cause and hurrying a slow backoff stay two decisions.
23
+ */
24
+ allWaiting?: true;
25
+ ext?: Ext;
26
+ } & {
27
+ [k: string]: unknown | undefined;
28
+ };
29
+
30
+ export interface VTCRegistrySyncJobsRetryResponsePayload {
31
+ /**
32
+ * Jobs now scheduled for dispatch on the reconciler's next pass. Empty is a valid answer and is not an error.
33
+ */
34
+ requeued: Requeued[];
35
+ /**
36
+ * Jobs the maintainer declined to requeue, each with why. Reported rather than failing the task, so a bulk retry is not defeated by one ineligible row.
37
+ */
38
+ skipped: Skipped[];
39
+ ext?: Ext;
40
+ }
41
+ export interface Requeued {
42
+ jobId: string;
43
+ /**
44
+ * The member whose record the requeued job carries.
45
+ */
46
+ memberDid?: string;
47
+ /**
48
+ * The state the job was in. `failed` — the reconciler had abandoned it. `pending` — it was waiting out a retry backoff and has been brought forward.
49
+ */
50
+ from: "failed" | "pending";
51
+ ext?: Ext;
52
+ }
53
+ export interface Skipped {
54
+ jobId: string;
55
+ /**
56
+ * `inFlight` — the reconciler is dispatching the job now, so requeueing it would dispatch the same mutation twice. `held` — the job is deliberately delayed, and the delay is the point; it is never brought forward. `notFound` — no such job; it may already have been dispatched, retried, discarded, or swept.
57
+ */
58
+ reason: "inFlight" | "held" | "notFound";
59
+ ext?: Ext;
60
+ }
61
+
62
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
63
+ export type { Ext };
64
+
65
+ /** Trust Task type URI. */
66
+ export const TYPE_URI = "https://trusttasks.org/spec/vtc/registry/sync-jobs/retry/0.2" as const;
67
+
68
+ /** Stable alias for this specification's request payload shape. */
69
+ export type Payload = VTCRegistrySyncJobsRetryPayload;
70
+
71
+ /** Trust Task response type URI (request type URI + "#response"). */
72
+ export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/vtc/registry/sync-jobs/retry/0.2#response" as const;
73
+
74
+ /** Stable alias for this specification's success-response payload shape. */
75
+ export type Response = VTCRegistrySyncJobsRetryResponsePayload;
76
+
77
+ /**
78
+ * This specification's payload schema, as a value.
79
+ *
80
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
81
+ * rather than only as a `.json` file because TypeScript types are erased
82
+ * at runtime: without a schema a consumer has nothing to validate, and
83
+ * every REQUIRED payload member is optional in practice. Cross-file
84
+ * `$ref`s are already inlined, so it needs no resolver.
85
+ */
86
+ export const PAYLOAD_SCHEMA = {
87
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
88
+ "$id": "https://trusttasks.org/spec/vtc/registry/sync-jobs/retry/0.2",
89
+ "title": "VTC Registry Sync Jobs Retry — payload",
90
+ "description": "Requeue a trust-registry reconciliation job — one the community's reconciler has abandoned, or one waiting out a retry backoff — so it is dispatched on the reconciler's next pass.",
91
+ "type": "object",
92
+ "additionalProperties": false,
93
+ "oneOf": [
94
+ {
95
+ "required": [
96
+ "jobId"
97
+ ],
98
+ "not": {
99
+ "anyOf": [
100
+ {
101
+ "required": [
102
+ "allFailed"
103
+ ]
104
+ },
105
+ {
106
+ "required": [
107
+ "allWaiting"
108
+ ]
109
+ }
110
+ ]
111
+ }
112
+ },
113
+ {
114
+ "required": [
115
+ "allFailed"
116
+ ],
117
+ "not": {
118
+ "anyOf": [
119
+ {
120
+ "required": [
121
+ "jobId"
122
+ ]
123
+ },
124
+ {
125
+ "required": [
126
+ "allWaiting"
127
+ ]
128
+ }
129
+ ]
130
+ }
131
+ },
132
+ {
133
+ "required": [
134
+ "allWaiting"
135
+ ],
136
+ "not": {
137
+ "anyOf": [
138
+ {
139
+ "required": [
140
+ "jobId"
141
+ ]
142
+ },
143
+ {
144
+ "required": [
145
+ "allFailed"
146
+ ]
147
+ }
148
+ ]
149
+ }
150
+ }
151
+ ],
152
+ "properties": {
153
+ "jobId": {
154
+ "type": "string",
155
+ "minLength": 1,
156
+ "description": "The single job to requeue, from `vtc/registry/sync-jobs/list`. It may be `failed`, or `pending` and waiting out a retry backoff."
157
+ },
158
+ "allFailed": {
159
+ "type": "boolean",
160
+ "const": true,
161
+ "description": "Requeue every job in the terminal `failed` state. Spelled as its own member rather than an absent `jobId` so that a client bug which drops the identifier cannot silently become a bulk operation."
162
+ },
163
+ "allWaiting": {
164
+ "type": "boolean",
165
+ "const": true,
166
+ "description": "Bring forward every `pending` job that is waiting out a retry backoff. Never a held job. Its own member for the same reason as `allFailed`, and distinct from it so that repairing a shared cause and hurrying a slow backoff stay two decisions."
167
+ },
168
+ "ext": {
169
+ "$ref": "#/$defs/Ext"
170
+ }
171
+ },
172
+ "$defs": {
173
+ "Requeued": {
174
+ "type": "object",
175
+ "additionalProperties": false,
176
+ "required": [
177
+ "jobId",
178
+ "from"
179
+ ],
180
+ "properties": {
181
+ "jobId": {
182
+ "type": "string",
183
+ "minLength": 1
184
+ },
185
+ "memberDid": {
186
+ "type": "string",
187
+ "minLength": 1,
188
+ "description": "The member whose record the requeued job carries."
189
+ },
190
+ "from": {
191
+ "type": "string",
192
+ "enum": [
193
+ "failed",
194
+ "pending"
195
+ ],
196
+ "description": "The state the job was in. `failed` — the reconciler had abandoned it. `pending` — it was waiting out a retry backoff and has been brought forward."
197
+ },
198
+ "ext": {
199
+ "$ref": "#/$defs/Ext"
200
+ }
201
+ }
202
+ },
203
+ "Skipped": {
204
+ "type": "object",
205
+ "additionalProperties": false,
206
+ "required": [
207
+ "jobId",
208
+ "reason"
209
+ ],
210
+ "properties": {
211
+ "jobId": {
212
+ "type": "string",
213
+ "minLength": 1
214
+ },
215
+ "reason": {
216
+ "type": "string",
217
+ "enum": [
218
+ "inFlight",
219
+ "held",
220
+ "notFound"
221
+ ],
222
+ "description": "`inFlight` — the reconciler is dispatching the job now, so requeueing it would dispatch the same mutation twice. `held` — the job is deliberately delayed, and the delay is the point; it is never brought forward. `notFound` — no such job; it may already have been dispatched, retried, discarded, or swept."
223
+ },
224
+ "ext": {
225
+ "$ref": "#/$defs/Ext"
226
+ }
227
+ }
228
+ },
229
+ "Response": {
230
+ "$anchor": "response",
231
+ "title": "VTC Registry Sync Jobs Retry — response payload",
232
+ "type": "object",
233
+ "additionalProperties": false,
234
+ "required": [
235
+ "requeued",
236
+ "skipped"
237
+ ],
238
+ "properties": {
239
+ "requeued": {
240
+ "type": "array",
241
+ "items": {
242
+ "$ref": "#/$defs/Requeued"
243
+ },
244
+ "description": "Jobs now scheduled for dispatch on the reconciler's next pass. Empty is a valid answer and is not an error."
245
+ },
246
+ "skipped": {
247
+ "type": "array",
248
+ "items": {
249
+ "$ref": "#/$defs/Skipped"
250
+ },
251
+ "description": "Jobs the maintainer declined to requeue, each with why. Reported rather than failing the task, so a bulk retry is not defeated by one ineligible row."
252
+ },
253
+ "ext": {
254
+ "$ref": "#/$defs/Ext"
255
+ }
256
+ }
257
+ },
258
+ "Ext": {
259
+ "title": "Ext",
260
+ "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.",
261
+ "type": "object",
262
+ "minProperties": 1,
263
+ "additionalProperties": true,
264
+ "propertyNames": {
265
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
266
+ }
267
+ }
268
+ }
269
+ } as const;
270
+
271
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
272
+ export const RESPONSE_PAYLOAD_SCHEMA = {
273
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
274
+ "$ref": "#/$defs/Response",
275
+ "$defs": {
276
+ "Requeued": {
277
+ "type": "object",
278
+ "additionalProperties": false,
279
+ "required": [
280
+ "jobId",
281
+ "from"
282
+ ],
283
+ "properties": {
284
+ "jobId": {
285
+ "type": "string",
286
+ "minLength": 1
287
+ },
288
+ "memberDid": {
289
+ "type": "string",
290
+ "minLength": 1,
291
+ "description": "The member whose record the requeued job carries."
292
+ },
293
+ "from": {
294
+ "type": "string",
295
+ "enum": [
296
+ "failed",
297
+ "pending"
298
+ ],
299
+ "description": "The state the job was in. `failed` — the reconciler had abandoned it. `pending` — it was waiting out a retry backoff and has been brought forward."
300
+ },
301
+ "ext": {
302
+ "$ref": "#/$defs/Ext"
303
+ }
304
+ }
305
+ },
306
+ "Skipped": {
307
+ "type": "object",
308
+ "additionalProperties": false,
309
+ "required": [
310
+ "jobId",
311
+ "reason"
312
+ ],
313
+ "properties": {
314
+ "jobId": {
315
+ "type": "string",
316
+ "minLength": 1
317
+ },
318
+ "reason": {
319
+ "type": "string",
320
+ "enum": [
321
+ "inFlight",
322
+ "held",
323
+ "notFound"
324
+ ],
325
+ "description": "`inFlight` — the reconciler is dispatching the job now, so requeueing it would dispatch the same mutation twice. `held` — the job is deliberately delayed, and the delay is the point; it is never brought forward. `notFound` — no such job; it may already have been dispatched, retried, discarded, or swept."
326
+ },
327
+ "ext": {
328
+ "$ref": "#/$defs/Ext"
329
+ }
330
+ }
331
+ },
332
+ "Response": {
333
+ "$anchor": "response",
334
+ "title": "VTC Registry Sync Jobs Retry — response payload",
335
+ "type": "object",
336
+ "additionalProperties": false,
337
+ "required": [
338
+ "requeued",
339
+ "skipped"
340
+ ],
341
+ "properties": {
342
+ "requeued": {
343
+ "type": "array",
344
+ "items": {
345
+ "$ref": "#/$defs/Requeued"
346
+ },
347
+ "description": "Jobs now scheduled for dispatch on the reconciler's next pass. Empty is a valid answer and is not an error."
348
+ },
349
+ "skipped": {
350
+ "type": "array",
351
+ "items": {
352
+ "$ref": "#/$defs/Skipped"
353
+ },
354
+ "description": "Jobs the maintainer declined to requeue, each with why. Reported rather than failing the task, so a bulk retry is not defeated by one ineligible row."
355
+ },
356
+ "ext": {
357
+ "$ref": "#/$defs/Ext"
358
+ }
359
+ }
360
+ },
361
+ "Ext": {
362
+ "title": "Ext",
363
+ "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.",
364
+ "type": "object",
365
+ "minProperties": 1,
366
+ "additionalProperties": true,
367
+ "propertyNames": {
368
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
369
+ }
370
+ }
371
+ }
372
+ } as const;
373
+
374
+ /**
375
+ * SPEC.md §7.2 policy for the request variant, from this specification's
376
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
377
+ * per-specification and cannot be derived from the document alone, and
378
+ * item 2 needs the schema this carries.
379
+ */
380
+ export const SPEC = {
381
+ typeUri: TYPE_URI,
382
+ isBearer: false,
383
+ isProofRequired: true,
384
+ isRecipientRequired: true,
385
+ isIssuedAtRequired: true,
386
+ payloadSchema: PAYLOAD_SCHEMA,
387
+ } as const;
388
+
389
+ /**
390
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
391
+ * tracks the *issuer* party's requirement because a response swaps the
392
+ * parties (§7.3 item 5).
393
+ */
394
+ export const RESPONSE_SPEC = {
395
+ typeUri: RESPONSE_TYPE_URI,
396
+ isBearer: false,
397
+ isProofRequired: true,
398
+ isRecipientRequired: true,
399
+ isIssuedAtRequired: true,
400
+ payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
401
+ } as const;
@@ -178,7 +178,7 @@ export const PAYLOAD_SCHEMA = {
178
178
  "type": "string",
179
179
  "minLength": 1,
180
180
  "maxLength": 128,
181
- "description": "A name for the room, chosen by an administrator: shown to administrators and to the members a room is offered to. Not part of the room's identity and not sent to the room's host path. MUST NOT carry personal data."
181
+ "description": "A name for the room, chosen by an administrator: shown to administrators and to the members a room is offered to. Not part of the room's identity and never in anything a room's host can read. From `vtc/rooms/community/create` 0.3 and `vtc/rooms/community/update` 0.2 the community also writes it, through its own VTA, as the `name` of the room's own profile (`RoomProfile` in rooms/_shared), sealed inside the room for its members; earlier versions keep it out of the room altogether. MUST NOT carry personal data."
182
182
  },
183
183
  "StorageConfigId": {
184
184
  "title": "StorageConfigId",
@@ -370,7 +370,7 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
370
370
  "type": "string",
371
371
  "minLength": 1,
372
372
  "maxLength": 128,
373
- "description": "A name for the room, chosen by an administrator: shown to administrators and to the members a room is offered to. Not part of the room's identity and not sent to the room's host path. MUST NOT carry personal data."
373
+ "description": "A name for the room, chosen by an administrator: shown to administrators and to the members a room is offered to. Not part of the room's identity and never in anything a room's host can read. From `vtc/rooms/community/create` 0.3 and `vtc/rooms/community/update` 0.2 the community also writes it, through its own VTA, as the `name` of the room's own profile (`RoomProfile` in rooms/_shared), sealed inside the room for its members; earlier versions keep it out of the room altogether. MUST NOT carry personal data."
374
374
  },
375
375
  "StorageConfigId": {
376
376
  "title": "StorageConfigId",