@openvtc/trust-tasks 0.27.1 → 0.27.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/CHANGELOG.md +216 -0
  2. package/dist/_runtime/freshness.d.ts +3 -1
  3. package/dist/_runtime/freshness.d.ts.map +1 -1
  4. package/dist/_runtime/freshness.js +4 -2
  5. package/dist/_runtime/freshness.js.map +1 -1
  6. package/dist/_shared/components.d.ts +346 -23
  7. package/dist/_shared/components.d.ts.map +1 -1
  8. package/dist/device/list/0.1/payload.d.ts +4 -4
  9. package/dist/device/list/0.1/payload.d.ts.map +1 -1
  10. package/dist/device/list/0.1/payload.js +4 -2
  11. package/dist/device/list/0.1/payload.js.map +1 -1
  12. package/dist/device/list/0.2/payload.d.ts +4 -4
  13. package/dist/device/list/0.2/payload.d.ts.map +1 -1
  14. package/dist/device/list/0.2/payload.js +4 -2
  15. package/dist/device/list/0.2/payload.js.map +1 -1
  16. package/dist/device/register/0.1/payload.d.ts +4 -4
  17. package/dist/device/register/0.1/payload.d.ts.map +1 -1
  18. package/dist/device/register/0.1/payload.js +4 -2
  19. package/dist/device/register/0.1/payload.js.map +1 -1
  20. package/dist/device/register/0.2/payload.d.ts +4 -4
  21. package/dist/device/register/0.2/payload.d.ts.map +1 -1
  22. package/dist/device/register/0.2/payload.js +4 -2
  23. package/dist/device/register/0.2/payload.js.map +1 -1
  24. package/dist/index.d.ts +25 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +25 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/rooms/_shared/0.1/room.d.ts +1 -1
  29. package/dist/rooms/_shared/0.1/room.d.ts.map +1 -1
  30. package/dist/rooms/create/0.2/payload.d.ts +534 -0
  31. package/dist/rooms/create/0.2/payload.d.ts.map +1 -0
  32. package/dist/rooms/create/0.2/payload.js +293 -0
  33. package/dist/rooms/create/0.2/payload.js.map +1 -0
  34. package/dist/rooms/epoch/chain/0.2/payload.d.ts +534 -0
  35. package/dist/rooms/epoch/chain/0.2/payload.d.ts.map +1 -0
  36. package/dist/rooms/epoch/chain/0.2/payload.js +292 -0
  37. package/dist/rooms/epoch/chain/0.2/payload.js.map +1 -0
  38. package/dist/rooms/epoch/prune/0.2/payload.d.ts +467 -0
  39. package/dist/rooms/epoch/prune/0.2/payload.d.ts.map +1 -0
  40. package/dist/rooms/epoch/prune/0.2/payload.js +251 -0
  41. package/dist/rooms/epoch/prune/0.2/payload.js.map +1 -0
  42. package/dist/rooms/info/0.2/payload.d.ts +1129 -0
  43. package/dist/rooms/info/0.2/payload.d.ts.map +1 -0
  44. package/dist/rooms/info/0.2/payload.js +618 -0
  45. package/dist/rooms/info/0.2/payload.js.map +1 -0
  46. package/dist/rooms/keys/backfill/0.2/payload.d.ts +380 -0
  47. package/dist/rooms/keys/backfill/0.2/payload.d.ts.map +1 -0
  48. package/dist/rooms/keys/backfill/0.2/payload.js +197 -0
  49. package/dist/rooms/keys/backfill/0.2/payload.js.map +1 -0
  50. package/dist/rooms/keys/browse/0.1/payload.d.ts +4 -4
  51. package/dist/rooms/keys/browse/0.1/payload.js +2 -2
  52. package/dist/rooms/keys/browse/0.1/payload.js.map +1 -1
  53. package/dist/rooms/keys/browse/0.2/payload.d.ts +941 -0
  54. package/dist/rooms/keys/browse/0.2/payload.d.ts.map +1 -0
  55. package/dist/rooms/keys/browse/0.2/payload.js +558 -0
  56. package/dist/rooms/keys/browse/0.2/payload.js.map +1 -0
  57. package/dist/rooms/keys/chain/0.2/payload.d.ts +450 -0
  58. package/dist/rooms/keys/chain/0.2/payload.d.ts.map +1 -0
  59. package/dist/rooms/keys/chain/0.2/payload.js +248 -0
  60. package/dist/rooms/keys/chain/0.2/payload.js.map +1 -0
  61. package/dist/rooms/keys/profile/read/0.1/payload.d.ts +4 -4
  62. package/dist/rooms/keys/profile/read/0.1/payload.js +2 -2
  63. package/dist/rooms/keys/profile/read/0.1/payload.js.map +1 -1
  64. package/dist/rooms/keys/read/0.1/payload.d.ts +4 -4
  65. package/dist/rooms/keys/read/0.1/payload.js +2 -2
  66. package/dist/rooms/keys/read/0.1/payload.js.map +1 -1
  67. package/dist/rooms/owner/anchor/0.1/payload.d.ts +4 -4
  68. package/dist/rooms/owner/anchor/0.1/payload.js +2 -2
  69. package/dist/rooms/owner/anchor/0.1/payload.js.map +1 -1
  70. package/dist/rooms/records/get/0.1/payload.d.ts +4 -4
  71. package/dist/rooms/records/get/0.1/payload.js +2 -2
  72. package/dist/rooms/records/get/0.1/payload.js.map +1 -1
  73. package/dist/rooms/records/get/0.2/payload.d.ts +4 -4
  74. package/dist/rooms/records/get/0.2/payload.js +2 -2
  75. package/dist/rooms/records/get/0.2/payload.js.map +1 -1
  76. package/dist/rooms/records/list/0.1/payload.d.ts +4 -4
  77. package/dist/rooms/records/list/0.1/payload.js +2 -2
  78. package/dist/rooms/records/list/0.1/payload.js.map +1 -1
  79. package/dist/rooms/records/list/0.2/payload.d.ts +4 -4
  80. package/dist/rooms/records/list/0.2/payload.js +2 -2
  81. package/dist/rooms/records/list/0.2/payload.js.map +1 -1
  82. package/dist/rooms/records/list/0.3/payload.d.ts +970 -0
  83. package/dist/rooms/records/list/0.3/payload.d.ts.map +1 -0
  84. package/dist/rooms/records/list/0.3/payload.js +526 -0
  85. package/dist/rooms/records/list/0.3/payload.js.map +1 -0
  86. package/dist/rooms/records/prune/0.1/payload.d.ts +706 -0
  87. package/dist/rooms/records/prune/0.1/payload.d.ts.map +1 -0
  88. package/dist/rooms/records/prune/0.1/payload.js +374 -0
  89. package/dist/rooms/records/prune/0.1/payload.js.map +1 -0
  90. package/dist/rooms/records/put/0.3/payload.d.ts +1212 -0
  91. package/dist/rooms/records/put/0.3/payload.d.ts.map +1 -0
  92. package/dist/rooms/records/put/0.3/payload.js +646 -0
  93. package/dist/rooms/records/put/0.3/payload.js.map +1 -0
  94. package/dist/rooms/records/retention/set/0.1/payload.d.ts +521 -0
  95. package/dist/rooms/records/retention/set/0.1/payload.d.ts.map +1 -0
  96. package/dist/rooms/records/retention/set/0.1/payload.js +276 -0
  97. package/dist/rooms/records/retention/set/0.1/payload.js.map +1 -0
  98. package/dist/vault/credentials/present/0.1/payload.d.ts +407 -0
  99. package/dist/vault/credentials/present/0.1/payload.d.ts.map +1 -0
  100. package/dist/vault/credentials/present/0.1/payload.js +217 -0
  101. package/dist/vault/credentials/present/0.1/payload.js.map +1 -0
  102. package/dist/vta/webvh/dids/create/1.2/payload.d.ts +961 -0
  103. package/dist/vta/webvh/dids/create/1.2/payload.d.ts.map +1 -0
  104. package/dist/vta/webvh/dids/create/1.2/payload.js +480 -0
  105. package/dist/vta/webvh/dids/create/1.2/payload.js.map +1 -0
  106. package/dist/vtc/_shared/0.1/room-migration.d.ts +16 -0
  107. package/dist/vtc/_shared/0.1/room-migration.d.ts.map +1 -0
  108. package/dist/vtc/_shared/0.1/room-migration.js +6 -0
  109. package/dist/vtc/_shared/0.1/room-migration.js.map +1 -0
  110. package/dist/vtc/_shared/0.1/room-storage.d.ts +1 -1
  111. package/dist/vtc/_shared/0.1/room-storage.d.ts.map +1 -1
  112. package/dist/vtc/_shared/0.2/room-storage.d.ts +16 -0
  113. package/dist/vtc/_shared/0.2/room-storage.d.ts.map +1 -0
  114. package/dist/vtc/_shared/0.2/room-storage.js +6 -0
  115. package/dist/vtc/_shared/0.2/room-storage.js.map +1 -0
  116. package/dist/vtc/admin/events/_shared/0.4/topic.d.ts +31 -0
  117. package/dist/vtc/admin/events/_shared/0.4/topic.d.ts.map +1 -0
  118. package/dist/vtc/admin/events/_shared/0.4/topic.js +6 -0
  119. package/dist/vtc/admin/events/_shared/0.4/topic.js.map +1 -0
  120. package/dist/vtc/admin/events/event/0.4/payload.d.ts +172 -0
  121. package/dist/vtc/admin/events/event/0.4/payload.d.ts.map +1 -0
  122. package/dist/vtc/admin/events/event/0.4/payload.js +103 -0
  123. package/dist/vtc/admin/events/event/0.4/payload.js.map +1 -0
  124. package/dist/vtc/admin/events/subscribe/0.4/payload.d.ts +409 -0
  125. package/dist/vtc/admin/events/subscribe/0.4/payload.d.ts.map +1 -0
  126. package/dist/vtc/admin/events/subscribe/0.4/payload.js +238 -0
  127. package/dist/vtc/admin/events/subscribe/0.4/payload.js.map +1 -0
  128. package/dist/vtc/rooms/get/0.2/payload.d.ts +1966 -0
  129. package/dist/vtc/rooms/get/0.2/payload.d.ts.map +1 -0
  130. package/dist/vtc/rooms/get/0.2/payload.js +976 -0
  131. package/dist/vtc/rooms/get/0.2/payload.js.map +1 -0
  132. package/dist/vtc/rooms/storage/migrate/0.2/payload.d.ts +595 -0
  133. package/dist/vtc/rooms/storage/migrate/0.2/payload.d.ts.map +1 -0
  134. package/dist/vtc/rooms/storage/migrate/0.2/payload.js +336 -0
  135. package/dist/vtc/rooms/storage/migrate/0.2/payload.js.map +1 -0
  136. package/dist/vtc/storage/configs/create/0.1/payload.d.ts +1 -1
  137. package/dist/vtc/storage/configs/create/0.1/payload.d.ts.map +1 -1
  138. package/dist/vtc/storage/configs/create/0.2/payload.d.ts +1360 -0
  139. package/dist/vtc/storage/configs/create/0.2/payload.d.ts.map +1 -0
  140. package/dist/vtc/storage/configs/create/0.2/payload.js +783 -0
  141. package/dist/vtc/storage/configs/create/0.2/payload.js.map +1 -0
  142. package/dist/vtc/storage/configs/get/0.1/payload.d.ts +1 -1
  143. package/dist/vtc/storage/configs/get/0.1/payload.d.ts.map +1 -1
  144. package/dist/vtc/storage/configs/get/0.2/payload.d.ts +1854 -0
  145. package/dist/vtc/storage/configs/get/0.2/payload.d.ts.map +1 -0
  146. package/dist/vtc/storage/configs/get/0.2/payload.js +1075 -0
  147. package/dist/vtc/storage/configs/get/0.2/payload.js.map +1 -0
  148. package/dist/vtc/storage/configs/list/0.1/payload.d.ts +1 -1
  149. package/dist/vtc/storage/configs/list/0.1/payload.d.ts.map +1 -1
  150. package/dist/vtc/storage/configs/list/0.2/payload.d.ts +1955 -0
  151. package/dist/vtc/storage/configs/list/0.2/payload.d.ts.map +1 -0
  152. package/dist/vtc/storage/configs/list/0.2/payload.js +1125 -0
  153. package/dist/vtc/storage/configs/list/0.2/payload.js.map +1 -0
  154. package/dist/vtc/storage/configs/update/0.1/payload.d.ts +1 -1
  155. package/dist/vtc/storage/configs/update/0.1/payload.d.ts.map +1 -1
  156. package/dist/vtc/storage/configs/update/0.2/payload.d.ts +1362 -0
  157. package/dist/vtc/storage/configs/update/0.2/payload.d.ts.map +1 -0
  158. package/dist/vtc/storage/configs/update/0.2/payload.js +782 -0
  159. package/dist/vtc/storage/configs/update/0.2/payload.js.map +1 -0
  160. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts +1 -1
  161. package/dist/vtc/storage/credentials/set/0.1/payload.d.ts.map +1 -1
  162. package/dist/vtc/storage/credentials/set/0.2/payload.d.ts +979 -0
  163. package/dist/vtc/storage/credentials/set/0.2/payload.d.ts.map +1 -0
  164. package/dist/vtc/storage/credentials/set/0.2/payload.js +573 -0
  165. package/dist/vtc/storage/credentials/set/0.2/payload.js.map +1 -0
  166. package/package.json +1 -1
  167. package/src/_runtime/freshness.ts +4 -2
  168. package/src/_shared/components.ts +372 -23
  169. package/src/device/list/0.1/payload.ts +4 -2
  170. package/src/device/list/0.2/payload.ts +4 -2
  171. package/src/device/register/0.1/payload.ts +4 -2
  172. package/src/device/register/0.2/payload.ts +4 -2
  173. package/src/index.ts +25 -0
  174. package/src/rooms/_shared/0.1/room.ts +1 -1
  175. package/src/rooms/create/0.2/payload.ts +364 -0
  176. package/src/rooms/epoch/chain/0.2/payload.ts +347 -0
  177. package/src/rooms/epoch/prune/0.2/payload.ts +315 -0
  178. package/src/rooms/info/0.2/payload.ts +700 -0
  179. package/src/rooms/keys/backfill/0.2/payload.ts +260 -0
  180. package/src/rooms/keys/browse/0.1/payload.ts +2 -2
  181. package/src/rooms/keys/browse/0.2/payload.ts +628 -0
  182. package/src/rooms/keys/chain/0.2/payload.ts +308 -0
  183. package/src/rooms/keys/profile/read/0.1/payload.ts +2 -2
  184. package/src/rooms/keys/read/0.1/payload.ts +2 -2
  185. package/src/rooms/owner/anchor/0.1/payload.ts +2 -2
  186. package/src/rooms/records/get/0.1/payload.ts +2 -2
  187. package/src/rooms/records/get/0.2/payload.ts +2 -2
  188. package/src/rooms/records/list/0.1/payload.ts +2 -2
  189. package/src/rooms/records/list/0.2/payload.ts +2 -2
  190. package/src/rooms/records/list/0.3/payload.ts +601 -0
  191. package/src/rooms/records/prune/0.1/payload.ts +451 -0
  192. package/src/rooms/records/put/0.3/payload.ts +741 -0
  193. package/src/rooms/records/retention/set/0.1/payload.ts +338 -0
  194. package/src/vault/credentials/present/0.1/payload.ts +283 -0
  195. package/src/vta/webvh/dids/create/1.2/payload.ts +660 -0
  196. package/src/vtc/_shared/0.1/room-migration.ts +17 -0
  197. package/src/vtc/_shared/0.1/room-storage.ts +1 -1
  198. package/src/vtc/_shared/0.2/room-storage.ts +17 -0
  199. package/src/vtc/admin/events/_shared/0.4/topic.ts +32 -0
  200. package/src/vtc/admin/events/event/0.4/payload.ts +137 -0
  201. package/src/vtc/admin/events/subscribe/0.4/payload.ts +318 -0
  202. package/src/vtc/rooms/get/0.2/payload.ts +1372 -0
  203. package/src/vtc/rooms/storage/migrate/0.2/payload.ts +408 -0
  204. package/src/vtc/storage/configs/create/0.1/payload.ts +1 -1
  205. package/src/vtc/storage/configs/create/0.2/payload.ts +830 -0
  206. package/src/vtc/storage/configs/get/0.1/payload.ts +1 -1
  207. package/src/vtc/storage/configs/get/0.2/payload.ts +1110 -0
  208. package/src/vtc/storage/configs/list/0.1/payload.ts +1 -1
  209. package/src/vtc/storage/configs/list/0.2/payload.ts +1177 -0
  210. package/src/vtc/storage/configs/update/0.1/payload.ts +1 -1
  211. package/src/vtc/storage/configs/update/0.2/payload.ts +829 -0
  212. package/src/vtc/storage/credentials/set/0.1/payload.ts +1 -1
  213. package/src/vtc/storage/credentials/set/0.2/payload.ts +619 -0
package/src/index.ts CHANGED
@@ -452,11 +452,15 @@ export * as RoomsBlobsUploadChunk_v0_2 from "./rooms/blobs/upload/chunk/0.2/payl
452
452
  export * as RoomsBlobsUploadCommit_v0_1 from "./rooms/blobs/upload/commit/0.1/payload.js";
453
453
  export * as RoomsBlobsUploadCommit_v0_2 from "./rooms/blobs/upload/commit/0.2/payload.js";
454
454
  export * as RoomsCreate_v0_1 from "./rooms/create/0.1/payload.js";
455
+ export * as RoomsCreate_v0_2 from "./rooms/create/0.2/payload.js";
455
456
  export * as RoomsEpochChain_v0_1 from "./rooms/epoch/chain/0.1/payload.js";
457
+ export * as RoomsEpochChain_v0_2 from "./rooms/epoch/chain/0.2/payload.js";
456
458
  export * as RoomsEpochCommits_v0_1 from "./rooms/epoch/commits/0.1/payload.js";
457
459
  export * as RoomsEpochMint_v0_1 from "./rooms/epoch/mint/0.1/payload.js";
458
460
  export * as RoomsEpochPrune_v0_1 from "./rooms/epoch/prune/0.1/payload.js";
461
+ export * as RoomsEpochPrune_v0_2 from "./rooms/epoch/prune/0.2/payload.js";
459
462
  export * as RoomsInfo_v0_1 from "./rooms/info/0.1/payload.js";
463
+ export * as RoomsInfo_v0_2 from "./rooms/info/0.2/payload.js";
460
464
  export * as RoomsKeysAct_v0_1 from "./rooms/keys/act/0.1/payload.js";
461
465
  export * as RoomsKeysAct_v0_2 from "./rooms/keys/act/0.2/payload.js";
462
466
  export * as RoomsKeysAct_v0_3 from "./rooms/keys/act/0.3/payload.js";
@@ -464,8 +468,11 @@ export * as RoomsKeysAct_v0_4 from "./rooms/keys/act/0.4/payload.js";
464
468
  export * as RoomsKeysAct_v0_5 from "./rooms/keys/act/0.5/payload.js";
465
469
  export * as RoomsKeysAct_v0_6 from "./rooms/keys/act/0.6/payload.js";
466
470
  export * as RoomsKeysBackfill_v0_1 from "./rooms/keys/backfill/0.1/payload.js";
471
+ export * as RoomsKeysBackfill_v0_2 from "./rooms/keys/backfill/0.2/payload.js";
467
472
  export * as RoomsKeysBrowse_v0_1 from "./rooms/keys/browse/0.1/payload.js";
473
+ export * as RoomsKeysBrowse_v0_2 from "./rooms/keys/browse/0.2/payload.js";
468
474
  export * as RoomsKeysChain_v0_1 from "./rooms/keys/chain/0.1/payload.js";
475
+ export * as RoomsKeysChain_v0_2 from "./rooms/keys/chain/0.2/payload.js";
469
476
  export * as RoomsKeysCommit_v0_1 from "./rooms/keys/commit/0.1/payload.js";
470
477
  export * as RoomsKeysFileKey_v0_1 from "./rooms/keys/file-key/0.1/payload.js";
471
478
  export * as RoomsKeysFileKey_v0_2 from "./rooms/keys/file-key/0.2/payload.js";
@@ -508,8 +515,12 @@ export * as RoomsRecordsGet_v0_1 from "./rooms/records/get/0.1/payload.js";
508
515
  export * as RoomsRecordsGet_v0_2 from "./rooms/records/get/0.2/payload.js";
509
516
  export * as RoomsRecordsList_v0_1 from "./rooms/records/list/0.1/payload.js";
510
517
  export * as RoomsRecordsList_v0_2 from "./rooms/records/list/0.2/payload.js";
518
+ export * as RoomsRecordsList_v0_3 from "./rooms/records/list/0.3/payload.js";
519
+ export * as RoomsRecordsPrune_v0_1 from "./rooms/records/prune/0.1/payload.js";
511
520
  export * as RoomsRecordsPut_v0_1 from "./rooms/records/put/0.1/payload.js";
512
521
  export * as RoomsRecordsPut_v0_2 from "./rooms/records/put/0.2/payload.js";
522
+ export * as RoomsRecordsPut_v0_3 from "./rooms/records/put/0.3/payload.js";
523
+ export * as RoomsRecordsRetentionSet_v0_1 from "./rooms/records/retention/set/0.1/payload.js";
513
524
  export * as RoomsRevocationsGet_v0_1 from "./rooms/revocations/get/0.1/payload.js";
514
525
  export * as RoomsRevocationsPut_v0_1 from "./rooms/revocations/put/0.1/payload.js";
515
526
  export * as RoomsUsage_v0_1 from "./rooms/usage/0.1/payload.js";
@@ -552,6 +563,7 @@ export * as VaultSecretShared_v0_3 from "./vault/_shared/0.3/vault-secret.js";
552
563
  export * as VaultCredentialsArchive_v0_1 from "./vault/credentials/archive/0.1/payload.js";
553
564
  export * as VaultCredentialsDelete_v0_1 from "./vault/credentials/delete/0.1/payload.js";
554
565
  export * as VaultCredentialsGet_v0_1 from "./vault/credentials/get/0.1/payload.js";
566
+ export * as VaultCredentialsPresent_v0_1 from "./vault/credentials/present/0.1/payload.js";
555
567
  export * as VaultCredentialsPurge_v0_1 from "./vault/credentials/purge/0.1/payload.js";
556
568
  export * as VaultCredentialsQuery_v0_1 from "./vault/credentials/query/0.1/payload.js";
557
569
  export * as VaultCredentialsReceive_v0_1 from "./vault/credentials/receive/0.1/payload.js";
@@ -733,6 +745,7 @@ export * as VtaWebvhAgentNameRemove_v1_0 from "./vta/webvh/agent-name/remove/1.0
733
745
  export * as VtaWebvhAgentNameSet_v1_0 from "./vta/webvh/agent-name/set/1.0/payload.js";
734
746
  export * as VtaWebvhDidsCreate_v1_0 from "./vta/webvh/dids/create/1.0/payload.js";
735
747
  export * as VtaWebvhDidsCreate_v1_1 from "./vta/webvh/dids/create/1.1/payload.js";
748
+ export * as VtaWebvhDidsCreate_v1_2 from "./vta/webvh/dids/create/1.2/payload.js";
736
749
  export * as VtaWebvhDidsDelete_v1_0 from "./vta/webvh/dids/delete/1.0/payload.js";
737
750
  export * as VtaWebvhDidsGet_v1_0 from "./vta/webvh/dids/get/1.0/payload.js";
738
751
  export * as VtaWebvhDidsKeysAdd_v1_0 from "./vta/webvh/dids/keys/add/1.0/payload.js";
@@ -774,11 +787,13 @@ export * as InviteShared_v0_1 from "./vtc/_shared/0.1/invite.js";
774
787
  export * as JoinRequestShared_v0_1 from "./vtc/_shared/0.1/join-request.js";
775
788
  export * as MemberShared_v0_1 from "./vtc/_shared/0.1/member.js";
776
789
  export * as RelationshipLifecycleShared_v0_1 from "./vtc/_shared/0.1/relationship-lifecycle.js";
790
+ export * as RoomMigrationShared_v0_1 from "./vtc/_shared/0.1/room-migration.js";
777
791
  export * as RoomStorageShared_v0_1 from "./vtc/_shared/0.1/room-storage.js";
778
792
  export * as SchemaRegistryShared_v0_1 from "./vtc/_shared/0.1/schema-registry.js";
779
793
  export * as VetterProfileShared_v0_1 from "./vtc/_shared/0.1/vetter-profile.js";
780
794
  export * as VettingAutoGrantShared_v0_1 from "./vtc/_shared/0.1/vetting-auto-grant.js";
781
795
  export * as WebsiteTransferShared_v0_1 from "./vtc/_shared/0.1/website-transfer.js";
796
+ export * as RoomStorageShared_v0_2 from "./vtc/_shared/0.2/room-storage.js";
782
797
  export * as SchemaRegistryShared_v0_2 from "./vtc/_shared/0.2/schema-registry.js";
783
798
  export * as ActionShared_v0_1 from "./vtc/admin/actions/_shared/0.1/action.js";
784
799
  export * as ActionShared_v0_2 from "./vtc/admin/actions/_shared/0.2/action.js";
@@ -794,12 +809,15 @@ export * as VtcAdminBootstrap_v0_1 from "./vtc/admin/bootstrap/0.1/payload.js";
794
809
  export * as TopicShared_v0_1 from "./vtc/admin/events/_shared/0.1/topic.js";
795
810
  export * as TopicShared_v0_2 from "./vtc/admin/events/_shared/0.2/topic.js";
796
811
  export * as TopicShared_v0_3 from "./vtc/admin/events/_shared/0.3/topic.js";
812
+ export * as TopicShared_v0_4 from "./vtc/admin/events/_shared/0.4/topic.js";
797
813
  export * as VtcAdminEventsEvent_v0_1 from "./vtc/admin/events/event/0.1/payload.js";
798
814
  export * as VtcAdminEventsEvent_v0_2 from "./vtc/admin/events/event/0.2/payload.js";
799
815
  export * as VtcAdminEventsEvent_v0_3 from "./vtc/admin/events/event/0.3/payload.js";
816
+ export * as VtcAdminEventsEvent_v0_4 from "./vtc/admin/events/event/0.4/payload.js";
800
817
  export * as VtcAdminEventsSubscribe_v0_1 from "./vtc/admin/events/subscribe/0.1/payload.js";
801
818
  export * as VtcAdminEventsSubscribe_v0_2 from "./vtc/admin/events/subscribe/0.2/payload.js";
802
819
  export * as VtcAdminEventsSubscribe_v0_3 from "./vtc/admin/events/subscribe/0.3/payload.js";
820
+ export * as VtcAdminEventsSubscribe_v0_4 from "./vtc/admin/events/subscribe/0.4/payload.js";
803
821
  export * as VtcAdminInvitesCreate_v0_1 from "./vtc/admin/invites/create/0.1/payload.js";
804
822
  export * as VtcAdminInvitesList_v0_1 from "./vtc/admin/invites/list/0.1/payload.js";
805
823
  export * as VtcAdminInvitesRevoke_v0_1 from "./vtc/admin/invites/revoke/0.1/payload.js";
@@ -980,6 +998,7 @@ export * as VtcRoomsCommunityMembersRemove_v0_2 from "./vtc/rooms/community/memb
980
998
  export * as VtcRoomsCommunityUpdate_v0_1 from "./vtc/rooms/community/update/0.1/payload.js";
981
999
  export * as VtcRoomsCommunityUpdate_v0_2 from "./vtc/rooms/community/update/0.2/payload.js";
982
1000
  export * as VtcRoomsGet_v0_1 from "./vtc/rooms/get/0.1/payload.js";
1001
+ export * as VtcRoomsGet_v0_2 from "./vtc/rooms/get/0.2/payload.js";
983
1002
  export * as VtcRoomsLimitsSet_v0_1 from "./vtc/rooms/limits/set/0.1/payload.js";
984
1003
  export * as VtcRoomsList_v0_1 from "./vtc/rooms/list/0.1/payload.js";
985
1004
  export * as VtcRoomsMembershipsList_v0_1 from "./vtc/rooms/memberships/list/0.1/payload.js";
@@ -989,6 +1008,7 @@ export * as VtcRoomsOffersList_v0_2 from "./vtc/rooms/offers/list/0.2/payload.js
989
1008
  export * as VtcRoomsOffersList_v0_3 from "./vtc/rooms/offers/list/0.3/payload.js";
990
1009
  export * as VtcRoomsStorageAssign_v0_1 from "./vtc/rooms/storage/assign/0.1/payload.js";
991
1010
  export * as VtcRoomsStorageMigrate_v0_1 from "./vtc/rooms/storage/migrate/0.1/payload.js";
1011
+ export * as VtcRoomsStorageMigrate_v0_2 from "./vtc/rooms/storage/migrate/0.2/payload.js";
992
1012
  export * as VtcRoomsUsage_v0_1 from "./vtc/rooms/usage/0.1/payload.js";
993
1013
  export * as VtcSchemasAcceptsDelete_v0_1 from "./vtc/schemas/accepts/delete/0.1/payload.js";
994
1014
  export * as VtcSchemasAcceptsList_v0_1 from "./vtc/schemas/accepts/list/0.1/payload.js";
@@ -1002,12 +1022,17 @@ export * as VtcSchemasList_v0_1 from "./vtc/schemas/list/0.1/payload.js";
1002
1022
  export * as VtcSchemasRegister_v0_1 from "./vtc/schemas/register/0.1/payload.js";
1003
1023
  export * as VtcSchemasShow_v0_1 from "./vtc/schemas/show/0.1/payload.js";
1004
1024
  export * as VtcStorageConfigsCreate_v0_1 from "./vtc/storage/configs/create/0.1/payload.js";
1025
+ export * as VtcStorageConfigsCreate_v0_2 from "./vtc/storage/configs/create/0.2/payload.js";
1005
1026
  export * as VtcStorageConfigsGet_v0_1 from "./vtc/storage/configs/get/0.1/payload.js";
1027
+ export * as VtcStorageConfigsGet_v0_2 from "./vtc/storage/configs/get/0.2/payload.js";
1006
1028
  export * as VtcStorageConfigsList_v0_1 from "./vtc/storage/configs/list/0.1/payload.js";
1029
+ export * as VtcStorageConfigsList_v0_2 from "./vtc/storage/configs/list/0.2/payload.js";
1007
1030
  export * as VtcStorageConfigsProbe_v0_1 from "./vtc/storage/configs/probe/0.1/payload.js";
1008
1031
  export * as VtcStorageConfigsRetire_v0_1 from "./vtc/storage/configs/retire/0.1/payload.js";
1009
1032
  export * as VtcStorageConfigsUpdate_v0_1 from "./vtc/storage/configs/update/0.1/payload.js";
1033
+ export * as VtcStorageConfigsUpdate_v0_2 from "./vtc/storage/configs/update/0.2/payload.js";
1010
1034
  export * as VtcStorageCredentialsSet_v0_1 from "./vtc/storage/credentials/set/0.1/payload.js";
1035
+ export * as VtcStorageCredentialsSet_v0_2 from "./vtc/storage/credentials/set/0.2/payload.js";
1011
1036
  export * as VtcVettingAutoGrantShow_v0_1 from "./vtc/vetting/auto-grant/show/0.1/payload.js";
1012
1037
  export * as VtcVettingAutoGrantUpdate_v0_1 from "./vtc/vetting/auto-grant/update/0.1/payload.js";
1013
1038
  export * as VtcVettingHiddenPublish_v0_1 from "./vtc/vetting/hidden/publish/0.1/payload.js";
@@ -14,4 +14,4 @@ export interface RoomsSharedTypes {
14
14
  * The definitions this shared schema publishes, hoisted to one declaration each.
15
15
  * See "../../../_shared/components.js".
16
16
  */
17
- export type { AnchorCadence, AuthorityPresentation, CredentialRevocation, DataCommitment, EpochAnchor, EpochLink, HeadVersion, ReadVerification, RecordCount, RecordMetadata, RecordMetadataV2, RecordTrace, RetentionPolicy, RevocationEntry, RevocationHead, RevocationList, RoomProfile, RoomRevocation, SealedRecord, SubjectRevocation, Visibility } from "../../../_shared/components.js";
17
+ export type { AnchorCadence, AuthorityPresentation, CredentialRevocation, DataCommitment, EpochAnchor, EpochFloor, EpochLink, HeadVersion, PermittedUse, ReadVerification, RecordBasis, RecordConfidence, RecordCount, RecordEvidence, RecordEvidenceCredential, RecordEvidenceList, RecordEvidenceRecord, RecordMetadata, RecordMetadataV2, RecordPrune, RecordRetention, RecordTrace, RecordValidUntil, RetentionPolicy, RevocationEntry, RevocationHead, RevocationList, RoomProfile, RoomRevocation, SealedRecord, SubjectRevocation, Visibility } from "../../../_shared/components.js";
@@ -0,0 +1,364 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/rooms/create/0.2/payload.schema.json
4
+ */
5
+
6
+ import type { AnchorCadence, Ext, RecordRetention, RetentionPolicy, Visibility } from "../../../_shared/components.js";
7
+
8
+
9
+ /**
10
+ * An owner registers a data room with a host. 0.2 adds `recordRetention`: how long the room keeps its records by age, stated at creation so that no record is ever removed under a rule its readers could not have read.
11
+ */
12
+ export interface RoomsCreatePayload {
13
+ /**
14
+ * The room's identifier, minted by its owner before this call. A host is told the identifier; it does not assign one, because a room whose identity the host chose could not move to another host.
15
+ */
16
+ roomId: string;
17
+ visibility: Visibility;
18
+ /**
19
+ * The room's accountable party: the controller of the room's identifier, the issuer of every credential in it, and the party a host addresses about quota, abuse, or lifecycle. Visible at every visibility, including `private` — a room has someone answerable for it.
20
+ */
21
+ ownerDid: string;
22
+ /**
23
+ * Whether this room keeps its history readable across a membership change. Absent means `chained`, which is the choice a room wants unless it has a reason not to: joining a room should mean being able to read it. A host MUST reject an epoch link for a room whose policy is `fromJoin` rather than storing one it declared it would not have.
24
+ */
25
+ retentionPolicy?: RetentionPolicy;
26
+ /**
27
+ * How long the host will hold the room after its epoch lapses without renewal, before storage may be reclaimed. Stated at creation rather than discovered: reclamation that surprises a member is a failure of the design, not of the member.
28
+ */
29
+ retentionDays?: number;
30
+ /**
31
+ * What this room intends about anchoring. OPTIONAL; absent reads as `manual`, which draws no expectation and is the honest default for a room whose owner has not decided. A host stores it and serves it back — it constrains nothing the host does.
32
+ */
33
+ anchorCadence?: AnchorCadence;
34
+ /**
35
+ * How long the room keeps its records, by age: which records `rooms/records/prune` may remove. OPTIONAL; absent means no record is ever eligible by age. Unlike `retentionPolicy` it is not fixed: a holder of `admin` changes it with `rooms/records/retention/set`.
36
+ */
37
+ recordRetention?: RecordRetention;
38
+ /**
39
+ * Ecosystem-defined extension members per SPEC.md §4.5.1.
40
+ */
41
+ ext?: Ext;
42
+ }
43
+ /**
44
+ * Success response to rooms/create. Type https://trusttasks.org/spec/rooms/create/0.2#response.
45
+ */
46
+ export interface RoomsCreateResponsePayload {
47
+ roomId: string;
48
+ /**
49
+ * Always 1 for a new room.
50
+ */
51
+ epoch: number;
52
+ /**
53
+ * Echoed so a caller knows what was recorded rather than what was asked — the two differ on a host that predates this member.
54
+ */
55
+ anchorCadence?: AnchorCadence;
56
+ /**
57
+ * The record retention the host recorded, echoed for the same reason `anchorCadence` is: a caller learns what is in force rather than what it asked for. Absent when none was recorded.
58
+ */
59
+ recordRetention?: RecordRetention;
60
+ ext?: Ext;
61
+ }
62
+
63
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
64
+ export type { AnchorCadence, Ext, RecordRetention, RetentionPolicy, Visibility };
65
+
66
+ /** Trust Task type URI. */
67
+ export const TYPE_URI = "https://trusttasks.org/spec/rooms/create/0.2" as const;
68
+
69
+ /** Stable alias for this specification's request payload shape. */
70
+ export type Payload = RoomsCreatePayload;
71
+
72
+ /** Trust Task response type URI (request type URI + "#response"). */
73
+ export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/rooms/create/0.2#response" as const;
74
+
75
+ /** Stable alias for this specification's success-response payload shape. */
76
+ export type Response = RoomsCreateResponsePayload;
77
+
78
+ /**
79
+ * This specification's payload schema, as a value.
80
+ *
81
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
82
+ * rather than only as a `.json` file because TypeScript types are erased
83
+ * at runtime: without a schema a consumer has nothing to validate, and
84
+ * every REQUIRED payload member is optional in practice. Cross-file
85
+ * `$ref`s are already inlined, so it needs no resolver.
86
+ */
87
+ export const PAYLOAD_SCHEMA = {
88
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
89
+ "$id": "https://trusttasks.org/spec/rooms/create/0.2",
90
+ "title": "Rooms Create — payload",
91
+ "type": "object",
92
+ "additionalProperties": false,
93
+ "required": [
94
+ "roomId",
95
+ "visibility",
96
+ "ownerDid"
97
+ ],
98
+ "properties": {
99
+ "roomId": {
100
+ "type": "string",
101
+ "description": "The room's identifier, minted by its owner before this call. A host is told the identifier; it does not assign one, because a room whose identity the host chose could not move to another host."
102
+ },
103
+ "visibility": {
104
+ "$ref": "#/$defs/Visibility"
105
+ },
106
+ "ownerDid": {
107
+ "type": "string",
108
+ "description": "The room's accountable party: the controller of the room's identifier, the issuer of every credential in it, and the party a host addresses about quota, abuse, or lifecycle. Visible at every visibility, including `private` — a room has someone answerable for it."
109
+ },
110
+ "retentionPolicy": {
111
+ "$ref": "#/$defs/RetentionPolicy",
112
+ "description": "Whether this room keeps its history readable across a membership change. Absent means `chained`, which is the choice a room wants unless it has a reason not to: joining a room should mean being able to read it. A host MUST reject an epoch link for a room whose policy is `fromJoin` rather than storing one it declared it would not have."
113
+ },
114
+ "retentionDays": {
115
+ "type": "integer",
116
+ "minimum": 1,
117
+ "description": "How long the host will hold the room after its epoch lapses without renewal, before storage may be reclaimed. Stated at creation rather than discovered: reclamation that surprises a member is a failure of the design, not of the member."
118
+ },
119
+ "anchorCadence": {
120
+ "$ref": "#/$defs/AnchorCadence",
121
+ "description": "What this room intends about anchoring. OPTIONAL; absent reads as `manual`, which draws no expectation and is the honest default for a room whose owner has not decided. A host stores it and serves it back — it constrains nothing the host does."
122
+ },
123
+ "recordRetention": {
124
+ "$ref": "#/$defs/RecordRetention",
125
+ "description": "How long the room keeps its records, by age: which records `rooms/records/prune` may remove. OPTIONAL; absent means no record is ever eligible by age. Unlike `retentionPolicy` it is not fixed: a holder of `admin` changes it with `rooms/records/retention/set`."
126
+ },
127
+ "ext": {
128
+ "$ref": "#/$defs/Ext",
129
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
130
+ }
131
+ },
132
+ "$defs": {
133
+ "Response": {
134
+ "$anchor": "response",
135
+ "title": "Rooms Create — response payload",
136
+ "description": "Success response to rooms/create. Type https://trusttasks.org/spec/rooms/create/0.2#response.",
137
+ "type": "object",
138
+ "additionalProperties": false,
139
+ "required": [
140
+ "roomId",
141
+ "epoch"
142
+ ],
143
+ "properties": {
144
+ "roomId": {
145
+ "type": "string"
146
+ },
147
+ "epoch": {
148
+ "type": "integer",
149
+ "minimum": 1,
150
+ "description": "Always 1 for a new room."
151
+ },
152
+ "anchorCadence": {
153
+ "$ref": "#/$defs/AnchorCadence",
154
+ "description": "Echoed so a caller knows what was recorded rather than what was asked — the two differ on a host that predates this member."
155
+ },
156
+ "recordRetention": {
157
+ "$ref": "#/$defs/RecordRetention",
158
+ "description": "The record retention the host recorded, echoed for the same reason `anchorCadence` is: a caller learns what is in force rather than what it asked for. Absent when none was recorded."
159
+ },
160
+ "ext": {
161
+ "$ref": "#/$defs/Ext"
162
+ }
163
+ }
164
+ },
165
+ "Ext": {
166
+ "title": "Ext",
167
+ "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.",
168
+ "type": "object",
169
+ "minProperties": 1,
170
+ "additionalProperties": true,
171
+ "propertyNames": {
172
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
173
+ }
174
+ },
175
+ "RecordRetention": {
176
+ "title": "RecordRetention",
177
+ "type": "object",
178
+ "additionalProperties": false,
179
+ "description": "How long a room keeps its records, by age: the room's **record retention**. Records older than it states become **eligible** to be removed by `rooms/records/prune`; nothing is removed until a holder of `admin` asks for a prune, and nothing a prune removes can be brought back.\n\n**Not `retentionPolicy`, and not `retentionDays`.** Both names are taken in this family and mean other things. `retentionPolicy` (`RetentionPolicy`) is whether a room's *key chain* lets a member read epochs from before they joined, fixed at creation because key material either exists for an epoch or it does not. `retentionDays` (`rooms/create`) is how long a host keeps a whole room after it lapses unrenewed. This is a third question — how long the room keeps its *records* while it is live — and unlike the first it is a decision a room revisits, so it is changeable (`rooms/records/retention/set`). A name sharing either's would invite a reader to apply one's rules to the other.\n\n**Age is the host's to measure, so age is `updatedAt`.** On the sealed tiers a host can read nothing of a record but its key, version, status, pinning and when it last changed, so a policy the host applies can only be stated in those terms. That is also why it cannot use a record's own `validUntil`, which is sealed: expiry is a reader's rule, retention a host's. A curation is a change, so it restarts a record's age — a retraction starts a tombstone's.\n\n**Absent, or `{}`, means no record is ever eligible by age**, and that is the reading a host MUST apply whenever it cannot read a policy: removing data under a rule nobody stated is the failure this member exists to prevent. Every member can read the policy in force (`rooms/info`), so a record is never removed under a rule its readers could not have known.",
180
+ "properties": {
181
+ "tombstoneDays": {
182
+ "type": "integer",
183
+ "minimum": 1,
184
+ "maximum": 36500,
185
+ "description": "Days a retracted record's tombstone is kept after its retraction. A tombstone whose `updatedAt` is more than this long ago is eligible. Tombstones exist so that a member syncing incrementally learns of a retraction (`rooms/records/curate`); this is how long a member may stay away and still learn of one that way rather than by rebuilding their copy of the room. Absent means tombstones are never eligible."
186
+ },
187
+ "recordDays": {
188
+ "type": "integer",
189
+ "minimum": 1,
190
+ "maximum": 36500,
191
+ "description": "Days a record is kept after it last changed, whatever its standing. A record — `active`, `deprecated` or `retracted` — whose `updatedAt` is more than this long ago is eligible, **unless it is pinned**: pinning says what matters in the room, and a room that wants a pinned record gone unpins it first. Absent means records are never eligible by age."
192
+ },
193
+ "ext": {
194
+ "$ref": "#/$defs/Ext",
195
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1. A host MUST NOT treat a member here as making more records eligible: a removal rule a member's reader cannot understand is one they were never told about."
196
+ }
197
+ }
198
+ },
199
+ "AnchorCadence": {
200
+ "title": "AnchorCadence",
201
+ "type": "string",
202
+ "enum": [
203
+ "never",
204
+ "renewal",
205
+ "manual"
206
+ ],
207
+ "description": "How often this room intends to write an `EpochAnchor`. **A statement of intent, not a schedule anything enforces** — nothing in this family can make an owner anchor.\n\nIt is worth stating anyway, and the reason is the interesting part: it makes **silence legible**. A room that says `renewal` and has not anchored in ten epochs is telling a member something, and a member who did not know what to expect could not have noticed. A room that says `never` is telling them not to wait for one.\n\n - `never` — no anchor is intended. Honest, and cheap: anchoring costs a witnessed update and a rotation of the room DID's update key each time.\n - `renewal` — one anchor per epoch change, which is the cadence §9's lifecycle already moves at.\n - `manual` — the owner anchors when they decide to. A member should draw no freshness expectation from this at all, which is exactly what it is for: it is the honest answer where there is no rule.\n\nDeliberately not a duration. A room that promised \"daily\" would be making a claim its owner's availability cannot keep, and a member comparing against a clock would read an owner's holiday as a host's misbehaviour."
208
+ },
209
+ "RetentionPolicy": {
210
+ "title": "RetentionPolicy",
211
+ "type": "string",
212
+ "enum": [
213
+ "chained",
214
+ "fromJoin"
215
+ ],
216
+ "description": "Whether a room keeps its history readable across a membership change, fixed at creation and immutable thereafter — like `Visibility`, and for the same reason: the rungs of an epoch key chain either exist for an epoch or they do not, and no later change of mind can seal key material that was never sealed or unseal what was already severed. `chained`: each advance produces an `EpochLink`, so every member reads the room's whole retained history however long they have been in it — what a **library** wants, at the cost of post-compromise security for record content, since a compromised current key then reaches every retained epoch. `fromJoin`: no rungs are produced, so a member reads only from the epoch their group state is at — what a **stream** wants, and what a room under a strict forward-secrecy obligation wants, at the cost that a joining member finds an empty-looking room and nobody can reread a record once their group state has moved past the epoch it was sealed under. Absent means `chained`; see the prose on why the absent case is the readable one.",
217
+ "$comment": "Deliberately no JSON Schema `default`. A declared default is materialised by the generated bindings — the member becomes non-optional with a serde default — so an absent value would reappear as an explicit one on re-serialisation and break round-trip idempotence for every document written before this member existed. The meaning of absence is stated in prose, where a binding cannot act on it."
218
+ },
219
+ "Visibility": {
220
+ "title": "Visibility",
221
+ "type": "string",
222
+ "enum": [
223
+ "open",
224
+ "attributed",
225
+ "private"
226
+ ],
227
+ "description": "How much of a room its host can see, fixed at creation and immutable thereafter. `open`: records are cleartext, searchable and fully audited. `attributed`: record content is sealed, and the host still learns which member acted. `private`: content is sealed and membership is presented in zero knowledge, so the host verifies that a member acted without learning which. Immutable because a downgrade cannot un-see cleartext and an upgrade would protect only what came after while presenting as though it protected everything."
228
+ }
229
+ },
230
+ "description": "An owner registers a data room with a host. 0.2 adds `recordRetention`: how long the room keeps its records by age, stated at creation so that no record is ever removed under a rule its readers could not have read."
231
+ } as const;
232
+
233
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
234
+ export const RESPONSE_PAYLOAD_SCHEMA = {
235
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
236
+ "$ref": "#/$defs/Response",
237
+ "$defs": {
238
+ "Response": {
239
+ "$anchor": "response",
240
+ "title": "Rooms Create — response payload",
241
+ "description": "Success response to rooms/create. Type https://trusttasks.org/spec/rooms/create/0.2#response.",
242
+ "type": "object",
243
+ "additionalProperties": false,
244
+ "required": [
245
+ "roomId",
246
+ "epoch"
247
+ ],
248
+ "properties": {
249
+ "roomId": {
250
+ "type": "string"
251
+ },
252
+ "epoch": {
253
+ "type": "integer",
254
+ "minimum": 1,
255
+ "description": "Always 1 for a new room."
256
+ },
257
+ "anchorCadence": {
258
+ "$ref": "#/$defs/AnchorCadence",
259
+ "description": "Echoed so a caller knows what was recorded rather than what was asked — the two differ on a host that predates this member."
260
+ },
261
+ "recordRetention": {
262
+ "$ref": "#/$defs/RecordRetention",
263
+ "description": "The record retention the host recorded, echoed for the same reason `anchorCadence` is: a caller learns what is in force rather than what it asked for. Absent when none was recorded."
264
+ },
265
+ "ext": {
266
+ "$ref": "#/$defs/Ext"
267
+ }
268
+ }
269
+ },
270
+ "Ext": {
271
+ "title": "Ext",
272
+ "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.",
273
+ "type": "object",
274
+ "minProperties": 1,
275
+ "additionalProperties": true,
276
+ "propertyNames": {
277
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
278
+ }
279
+ },
280
+ "RecordRetention": {
281
+ "title": "RecordRetention",
282
+ "type": "object",
283
+ "additionalProperties": false,
284
+ "description": "How long a room keeps its records, by age: the room's **record retention**. Records older than it states become **eligible** to be removed by `rooms/records/prune`; nothing is removed until a holder of `admin` asks for a prune, and nothing a prune removes can be brought back.\n\n**Not `retentionPolicy`, and not `retentionDays`.** Both names are taken in this family and mean other things. `retentionPolicy` (`RetentionPolicy`) is whether a room's *key chain* lets a member read epochs from before they joined, fixed at creation because key material either exists for an epoch or it does not. `retentionDays` (`rooms/create`) is how long a host keeps a whole room after it lapses unrenewed. This is a third question — how long the room keeps its *records* while it is live — and unlike the first it is a decision a room revisits, so it is changeable (`rooms/records/retention/set`). A name sharing either's would invite a reader to apply one's rules to the other.\n\n**Age is the host's to measure, so age is `updatedAt`.** On the sealed tiers a host can read nothing of a record but its key, version, status, pinning and when it last changed, so a policy the host applies can only be stated in those terms. That is also why it cannot use a record's own `validUntil`, which is sealed: expiry is a reader's rule, retention a host's. A curation is a change, so it restarts a record's age — a retraction starts a tombstone's.\n\n**Absent, or `{}`, means no record is ever eligible by age**, and that is the reading a host MUST apply whenever it cannot read a policy: removing data under a rule nobody stated is the failure this member exists to prevent. Every member can read the policy in force (`rooms/info`), so a record is never removed under a rule its readers could not have known.",
285
+ "properties": {
286
+ "tombstoneDays": {
287
+ "type": "integer",
288
+ "minimum": 1,
289
+ "maximum": 36500,
290
+ "description": "Days a retracted record's tombstone is kept after its retraction. A tombstone whose `updatedAt` is more than this long ago is eligible. Tombstones exist so that a member syncing incrementally learns of a retraction (`rooms/records/curate`); this is how long a member may stay away and still learn of one that way rather than by rebuilding their copy of the room. Absent means tombstones are never eligible."
291
+ },
292
+ "recordDays": {
293
+ "type": "integer",
294
+ "minimum": 1,
295
+ "maximum": 36500,
296
+ "description": "Days a record is kept after it last changed, whatever its standing. A record — `active`, `deprecated` or `retracted` — whose `updatedAt` is more than this long ago is eligible, **unless it is pinned**: pinning says what matters in the room, and a room that wants a pinned record gone unpins it first. Absent means records are never eligible by age."
297
+ },
298
+ "ext": {
299
+ "$ref": "#/$defs/Ext",
300
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1. A host MUST NOT treat a member here as making more records eligible: a removal rule a member's reader cannot understand is one they were never told about."
301
+ }
302
+ }
303
+ },
304
+ "AnchorCadence": {
305
+ "title": "AnchorCadence",
306
+ "type": "string",
307
+ "enum": [
308
+ "never",
309
+ "renewal",
310
+ "manual"
311
+ ],
312
+ "description": "How often this room intends to write an `EpochAnchor`. **A statement of intent, not a schedule anything enforces** — nothing in this family can make an owner anchor.\n\nIt is worth stating anyway, and the reason is the interesting part: it makes **silence legible**. A room that says `renewal` and has not anchored in ten epochs is telling a member something, and a member who did not know what to expect could not have noticed. A room that says `never` is telling them not to wait for one.\n\n - `never` — no anchor is intended. Honest, and cheap: anchoring costs a witnessed update and a rotation of the room DID's update key each time.\n - `renewal` — one anchor per epoch change, which is the cadence §9's lifecycle already moves at.\n - `manual` — the owner anchors when they decide to. A member should draw no freshness expectation from this at all, which is exactly what it is for: it is the honest answer where there is no rule.\n\nDeliberately not a duration. A room that promised \"daily\" would be making a claim its owner's availability cannot keep, and a member comparing against a clock would read an owner's holiday as a host's misbehaviour."
313
+ },
314
+ "RetentionPolicy": {
315
+ "title": "RetentionPolicy",
316
+ "type": "string",
317
+ "enum": [
318
+ "chained",
319
+ "fromJoin"
320
+ ],
321
+ "description": "Whether a room keeps its history readable across a membership change, fixed at creation and immutable thereafter — like `Visibility`, and for the same reason: the rungs of an epoch key chain either exist for an epoch or they do not, and no later change of mind can seal key material that was never sealed or unseal what was already severed. `chained`: each advance produces an `EpochLink`, so every member reads the room's whole retained history however long they have been in it — what a **library** wants, at the cost of post-compromise security for record content, since a compromised current key then reaches every retained epoch. `fromJoin`: no rungs are produced, so a member reads only from the epoch their group state is at — what a **stream** wants, and what a room under a strict forward-secrecy obligation wants, at the cost that a joining member finds an empty-looking room and nobody can reread a record once their group state has moved past the epoch it was sealed under. Absent means `chained`; see the prose on why the absent case is the readable one.",
322
+ "$comment": "Deliberately no JSON Schema `default`. A declared default is materialised by the generated bindings — the member becomes non-optional with a serde default — so an absent value would reappear as an explicit one on re-serialisation and break round-trip idempotence for every document written before this member existed. The meaning of absence is stated in prose, where a binding cannot act on it."
323
+ },
324
+ "Visibility": {
325
+ "title": "Visibility",
326
+ "type": "string",
327
+ "enum": [
328
+ "open",
329
+ "attributed",
330
+ "private"
331
+ ],
332
+ "description": "How much of a room its host can see, fixed at creation and immutable thereafter. `open`: records are cleartext, searchable and fully audited. `attributed`: record content is sealed, and the host still learns which member acted. `private`: content is sealed and membership is presented in zero knowledge, so the host verifies that a member acted without learning which. Immutable because a downgrade cannot un-see cleartext and an upgrade would protect only what came after while presenting as though it protected everything."
333
+ }
334
+ }
335
+ } as const;
336
+
337
+ /**
338
+ * SPEC.md §7.2 policy for the request variant, from this specification's
339
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
340
+ * per-specification and cannot be derived from the document alone, and
341
+ * item 2 needs the schema this carries.
342
+ */
343
+ export const SPEC = {
344
+ typeUri: TYPE_URI,
345
+ isBearer: false,
346
+ isProofRequired: true,
347
+ isRecipientRequired: true,
348
+ isIssuedAtRequired: true,
349
+ payloadSchema: PAYLOAD_SCHEMA,
350
+ } as const;
351
+
352
+ /**
353
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
354
+ * tracks the *issuer* party's requirement because a response swaps the
355
+ * parties (§7.3 item 5).
356
+ */
357
+ export const RESPONSE_SPEC = {
358
+ typeUri: RESPONSE_TYPE_URI,
359
+ isBearer: false,
360
+ isProofRequired: true,
361
+ isRecipientRequired: true,
362
+ isIssuedAtRequired: true,
363
+ payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
364
+ } as const;