@openvtc/trust-tasks 0.26.1 → 0.26.3

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 (98) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/dist/_shared/components.d.ts +107 -1
  3. package/dist/_shared/components.d.ts.map +1 -1
  4. package/dist/index.d.ts +15 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +15 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/rooms/owner/group/add/0.1/payload.d.ts +417 -0
  9. package/dist/rooms/owner/group/add/0.1/payload.d.ts.map +1 -0
  10. package/dist/rooms/owner/group/add/0.1/payload.js +218 -0
  11. package/dist/rooms/owner/group/add/0.1/payload.js.map +1 -0
  12. package/dist/rooms/owner/group/create/0.1/payload.d.ts +299 -0
  13. package/dist/rooms/owner/group/create/0.1/payload.d.ts.map +1 -0
  14. package/dist/rooms/owner/group/create/0.1/payload.js +163 -0
  15. package/dist/rooms/owner/group/create/0.1/payload.js.map +1 -0
  16. package/dist/rooms/owner/group/remove/0.1/payload.d.ts +343 -0
  17. package/dist/rooms/owner/group/remove/0.1/payload.d.ts.map +1 -0
  18. package/dist/rooms/owner/group/remove/0.1/payload.js +184 -0
  19. package/dist/rooms/owner/group/remove/0.1/payload.js.map +1 -0
  20. package/dist/rooms/owner/register/0.1/payload.d.ts +3 -3
  21. package/dist/rooms/owner/register/0.1/payload.js +1 -1
  22. package/dist/rooms/owner/register/0.1/payload.js.map +1 -1
  23. package/dist/vtc/_shared/0.1/community-room.d.ts +16 -0
  24. package/dist/vtc/_shared/0.1/community-room.d.ts.map +1 -0
  25. package/dist/vtc/_shared/0.1/community-room.js +6 -0
  26. package/dist/vtc/_shared/0.1/community-room.js.map +1 -0
  27. package/dist/vtc/admin/events/_shared/0.1/topic.d.ts +1 -1
  28. package/dist/vtc/admin/events/_shared/0.1/topic.d.ts.map +1 -1
  29. package/dist/vtc/admin/events/_shared/0.2/topic.d.ts +28 -0
  30. package/dist/vtc/admin/events/_shared/0.2/topic.d.ts.map +1 -0
  31. package/dist/vtc/admin/events/_shared/0.2/topic.js +6 -0
  32. package/dist/vtc/admin/events/_shared/0.2/topic.js.map +1 -0
  33. package/dist/vtc/admin/events/event/0.1/payload.d.ts +1 -1
  34. package/dist/vtc/admin/events/event/0.1/payload.d.ts.map +1 -1
  35. package/dist/vtc/admin/events/event/0.2/payload.d.ts +172 -0
  36. package/dist/vtc/admin/events/event/0.2/payload.d.ts.map +1 -0
  37. package/dist/vtc/admin/events/event/0.2/payload.js +100 -0
  38. package/dist/vtc/admin/events/event/0.2/payload.js.map +1 -0
  39. package/dist/vtc/admin/events/subscribe/0.1/payload.d.ts +1 -1
  40. package/dist/vtc/admin/events/subscribe/0.1/payload.d.ts.map +1 -1
  41. package/dist/vtc/admin/events/subscribe/0.2/payload.d.ts +409 -0
  42. package/dist/vtc/admin/events/subscribe/0.2/payload.d.ts.map +1 -0
  43. package/dist/vtc/admin/events/subscribe/0.2/payload.js +232 -0
  44. package/dist/vtc/admin/events/subscribe/0.2/payload.js.map +1 -0
  45. package/dist/vtc/rooms/community/create/0.1/payload.d.ts +789 -0
  46. package/dist/vtc/rooms/community/create/0.1/payload.d.ts.map +1 -0
  47. package/dist/vtc/rooms/community/create/0.1/payload.js +463 -0
  48. package/dist/vtc/rooms/community/create/0.1/payload.js.map +1 -0
  49. package/dist/vtc/rooms/community/get/0.1/payload.d.ts +711 -0
  50. package/dist/vtc/rooms/community/get/0.1/payload.d.ts.map +1 -0
  51. package/dist/vtc/rooms/community/get/0.1/payload.js +429 -0
  52. package/dist/vtc/rooms/community/get/0.1/payload.js.map +1 -0
  53. package/dist/vtc/rooms/community/list/0.1/payload.d.ts +772 -0
  54. package/dist/vtc/rooms/community/list/0.1/payload.d.ts.map +1 -0
  55. package/dist/vtc/rooms/community/list/0.1/payload.js +452 -0
  56. package/dist/vtc/rooms/community/list/0.1/payload.js.map +1 -0
  57. package/dist/vtc/rooms/community/members/add/0.1/payload.d.ts +535 -0
  58. package/dist/vtc/rooms/community/members/add/0.1/payload.d.ts.map +1 -0
  59. package/dist/vtc/rooms/community/members/add/0.1/payload.js +314 -0
  60. package/dist/vtc/rooms/community/members/add/0.1/payload.js.map +1 -0
  61. package/dist/vtc/rooms/community/members/list/0.1/payload.d.ts +554 -0
  62. package/dist/vtc/rooms/community/members/list/0.1/payload.d.ts.map +1 -0
  63. package/dist/vtc/rooms/community/members/list/0.1/payload.js +315 -0
  64. package/dist/vtc/rooms/community/members/list/0.1/payload.js.map +1 -0
  65. package/dist/vtc/rooms/community/members/remove/0.1/payload.d.ts +533 -0
  66. package/dist/vtc/rooms/community/members/remove/0.1/payload.d.ts.map +1 -0
  67. package/dist/vtc/rooms/community/members/remove/0.1/payload.js +313 -0
  68. package/dist/vtc/rooms/community/members/remove/0.1/payload.js.map +1 -0
  69. package/dist/vtc/rooms/offers/accept/0.1/payload.d.ts +349 -0
  70. package/dist/vtc/rooms/offers/accept/0.1/payload.d.ts.map +1 -0
  71. package/dist/vtc/rooms/offers/accept/0.1/payload.js +188 -0
  72. package/dist/vtc/rooms/offers/accept/0.1/payload.js.map +1 -0
  73. package/dist/vtc/rooms/offers/list/0.1/payload.d.ts +692 -0
  74. package/dist/vtc/rooms/offers/list/0.1/payload.d.ts.map +1 -0
  75. package/dist/vtc/rooms/offers/list/0.1/payload.js +408 -0
  76. package/dist/vtc/rooms/offers/list/0.1/payload.js.map +1 -0
  77. package/package.json +1 -1
  78. package/src/_shared/components.ts +120 -1
  79. package/src/index.ts +15 -0
  80. package/src/rooms/owner/group/add/0.1/payload.ts +288 -0
  81. package/src/rooms/owner/group/create/0.1/payload.ts +213 -0
  82. package/src/rooms/owner/group/remove/0.1/payload.ts +242 -0
  83. package/src/rooms/owner/register/0.1/payload.ts +2 -2
  84. package/src/vtc/_shared/0.1/community-room.ts +17 -0
  85. package/src/vtc/admin/events/_shared/0.1/topic.ts +1 -1
  86. package/src/vtc/admin/events/_shared/0.2/topic.ts +29 -0
  87. package/src/vtc/admin/events/event/0.1/payload.ts +1 -1
  88. package/src/vtc/admin/events/event/0.2/payload.ts +134 -0
  89. package/src/vtc/admin/events/subscribe/0.1/payload.ts +1 -1
  90. package/src/vtc/admin/events/subscribe/0.2/payload.ts +306 -0
  91. package/src/vtc/rooms/community/create/0.1/payload.ts +509 -0
  92. package/src/vtc/rooms/community/get/0.1/payload.ts +461 -0
  93. package/src/vtc/rooms/community/list/0.1/payload.ts +495 -0
  94. package/src/vtc/rooms/community/members/add/0.1/payload.ts +356 -0
  95. package/src/vtc/rooms/community/members/list/0.1/payload.ts +366 -0
  96. package/src/vtc/rooms/community/members/remove/0.1/payload.ts +351 -0
  97. package/src/vtc/rooms/offers/accept/0.1/payload.ts +240 -0
  98. package/src/vtc/rooms/offers/list/0.1/payload.ts +451 -0
package/CHANGELOG.md CHANGED
@@ -11,6 +11,158 @@ The package versions over **its own API** — what a consumer compiles against
11
11
  not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
12
12
  component.
13
13
 
14
+ ## 0.26.3 — 2026-10-14
15
+
16
+
17
+ ### Documentation
18
+
19
+ - **vtc/rooms/community/members/remove**: Link rooms/owner/group/remove (#769)
20
+
21
+ #768 named the task in prose only, because it was not yet on main and the build
22
+ refuses links to missing specifications. #767 has since merged.
23
+
24
+ ## 0.26.2 — 2026-10-14
25
+
26
+
27
+ ### Added
28
+
29
+ - **vtc**: Community-owned rooms and member offers — vtc/rooms/community/* and vtc/rooms/offers/* (#768)
30
+
31
+ A community hosts rooms its members own, and can now own rooms itself — the
32
+ board's papers, a working group's drafts, a members' library — run from its
33
+ console. Design: verifiable-trust-infrastructure docs/05-design-notes/
34
+ data-rooms-files.md §8.4.
35
+
36
+ The community is the owner, and its own VTA is the key holder: the VTA mints
37
+ the room's DID, signs its credentials and holds the community's place in a
38
+ sealed room's group, through the same rooms/owner/* and rooms/keys/* tasks any
39
+ owner's key holder serves. The community holds no room key and no group
40
+ secret.
41
+
42
+ Administrators, holding the new vtc.rooms.manage (the owner's authority,
43
+ distinct from hosting's vtc.rooms.admin):
44
+ - vtc/rooms/community/create — the VTA mints, founds the group, issues the
45
+ community's own admin authority; the room is stored only after every
46
+ remote step, so a failure leaves no room behind.
47
+ - vtc/rooms/community/{list,get} — the owner's view, with counts and when the
48
+ community's own authority lapses.
49
+ - vtc/rooms/community/members/{add,remove,list} — add has the VTA issue the
50
+ invitation, membership and authority credentials (never admin) and keeps
51
+ them as an offer; remove advances a sealed room's epoch through the owner's
52
+ group removal and says what removal does not do (no recall; an authority
53
+ credential is honoured until it expires, so open rooms want short expiries).
54
+ members/list is paged and separate from get, because a community library
55
+ can admit the whole community.
56
+
57
+ Members, on their own DID (pull-shaped admission: a member's VTA has no
58
+ inbound address):
59
+ - vtc/rooms/offers/list — the caller's offers and the credentials to store with
60
+ their own key holder; never anyone else's.
61
+ - vtc/rooms/offers/accept — on a sealed tier, a KeyPackage in and the Welcome
62
+ out, after the VTA adds the member. A repeat with the same KeyPackage gets the
63
+ same Welcome; an unknown outcome is admissionPending, retried safely because
64
+ the VTA settles a pending admission first.
65
+
66
+ Only active members of the community are admitted to its rooms. Step-up and
67
+ consent are described as the intended model, not declared (SPEC §7.3 item 13).
68
+ The owner's record of whom it admitted lives apart from anything the host path
69
+ reads, so invariant I5 and portability hold.
70
+
71
+ New shared schema vtc/_shared/0.1/community-room.schema.json. Additive for the
72
+ generated types: new modules only.
73
+
74
+
75
+
76
+ ### Specifications
77
+
78
+ - **rooms,vtc**: Rooms/owner/group/remove, and a `rooms` topic on the console's live events (vtc/admin/events 0.2) (#767)
79
+
80
+ rooms/owner/group/remove/0.1 — the last of the owner's group tasks
81
+ (data-rooms-files.md §11). Removal is an epoch advance and nothing else is:
82
+ the key holder drops the member's leaf and advances the room at its host
83
+ with the link and commit, under the caller's `admin` authority. Same
84
+ remote-first rules as group/add as corrected in #766: the advanced state is
85
+ kept durably before the host is contacted, applied only once the host
86
+ accepts, discarded only on a refusal, kept on an unknown outcome and settled
87
+ by the next request through rooms/info. At most one pending advance per room,
88
+ admission or removal. Refuses `ownLeaf` (an owner leaving hands the room on
89
+ with rooms/owner/transfer). States what removal does not do: no recall of
90
+ what was read, and the authority credential is a separate thing.
91
+
92
+ vtc/admin/events {_shared,subscribe,event} 0.2 — the topic set is closed per
93
+ version ("a topic not listed here is a new MINOR version of this
94
+ component"), so the `rooms` topic is a new version rather than an `ext`
95
+ member. `rooms` prompts vtc/rooms/list, vtc/rooms/usage and
96
+ vtc/storage/configs/list, goes to holders of vtc.rooms.admin, carries no
97
+ count, and is hinted when a room is registered or removed or changes
98
+ lifecycle state, when a room's usage or a storage config's held bytes
99
+ crosses 80, 95 or 100 percent of a limit or capacity in either direction,
100
+ and when a storage config is created, changed or changes state — naming
101
+ none of them (data-rooms-files.md §6.3 alerts). subscribe 0.2 allows up to
102
+ seven topics. 0.1 is unchanged; a community serving both answers each at its
103
+ own version.
104
+
105
+ Additive for the generated types: new modules; the TypeScript 0.1 modules
106
+ keep exporting `Topic` (the generator now disambiguates the two shared
107
+ definitions internally).
108
+
109
+ - **rooms**: Group/add keeps a pending admission on an unknown outcome; details schemas for group codes (#766)
110
+
111
+ Corrections to rooms/owner/group/{create,add}/0.1 (drafts, #763), found
112
+ implementing them in the VTA:
113
+
114
+ - add, item 5: discard the pending admission only on a refusal. An
115
+ unreachable or silent host is an unknown outcome — it may have accepted —
116
+ and discarding then would leave the owner an epoch behind their own room.
117
+ The pending admission is kept for item 6; hostUnreachable's meaning says so
118
+ instead of "nothing was changed".
119
+ - add, items 2-3: what is kept is the advanced group state with the link,
120
+ commit and Welcome, beside the group the recipient holds, since a
121
+ committer cannot process its own commit later.
122
+ - add, item 6: the host's epoch is read with rooms/info under the caller's
123
+ read authority, from the host the admission was sent to; a host at neither
124
+ epoch has moved on, so discard and refuse epochConflict.
125
+ - detailsSchema for create's alreadyExists (epoch) and add's epochConflict
126
+ (hostEpoch), which the text already promised.
127
+ - create, item 1: the gates on naming the key are issue-membership's, but
128
+ nothing is signed, so a signing quota is not consumed or consulted.
129
+
130
+ - **rooms**: Rooms/owner/group/{create,add} — the owner's agent founds and grows a sealed room's group; register signs as the owner (#763)
131
+
132
+ * spec(rooms): rooms/owner/group/{create,add} — the owner's agent founds and grows a sealed room's group; register signs as the owner
133
+
134
+ A sealed room (`attributed`, `private`) cannot be written to until its MLS
135
+ group exists, and every member reaches the group by a Welcome — except the
136
+ owner, whom nobody can welcome. The member half is specified
137
+ (`rooms/keys/{key-package,welcome,commit}`); the owner half was not, so no
138
+ surface could found a sealed room or admit anyone to one.
139
+
140
+ - `rooms/owner/group/create/0.1`: the owner's key holder forms the room's
141
+ group with the owner as its only leaf, at room epoch 1 (the epoch a host
142
+ records at registration). Entitlement: control of the room's signing key,
143
+ as for issuing its credentials. Refuses `alreadyExists` rather than
144
+ replacing a group whose key schedule sealed records depend on.
145
+ - `rooms/owner/group/add/0.1`: the key holder admits a member's KeyPackage,
146
+ advances the room at its host with `rooms/epoch/mint` (link and commit
147
+ included, the caller's `admin` authority presented), and returns the
148
+ Welcome for the caller to deliver with `rooms/keys/welcome` — never
149
+ through the host. Remote first: the pending commit is kept durably, sent,
150
+ and applied only once the host accepts, and reconciled against the host's
151
+ epoch after a crash, since a key holder cannot process its own commit
152
+ from the wire.
153
+ - `rooms/owner/register/0.1` (draft, clarified in place): the key holder
154
+ sends `rooms/create` with `ownerDid` as its issuer, signed with a key of
155
+ that DID it holds, and never as itself; it refuses with `permissionDenied`
156
+ before contacting the host when it holds none. `rooms/create` names the
157
+ Owner as issuer, and a host running a creation policy (a community
158
+ admitting rooms for its members) checks the party asking is the owner it
159
+ names — a registration issued by the agent in another party's name is one
160
+ no host can tell from registering rooms in a stranger's name. No schema
161
+ change beyond the `ownerDid` description.
162
+
163
+ Additive for the generated types: two new modules, no change to an
164
+ existing type.
165
+
14
166
  ## 0.26.1 — 2026-10-14
15
167
 
16
168
 
@@ -707,6 +707,21 @@ export type LimitSource = "policy" | "override" | "default";
707
707
  * The two-digit number the service chooses at claim, shows only to the starter (through redeem), and the approver types from the starter's screen. A string so that a leading zero survives.
708
708
  */
709
709
  export type MatchNumber = string;
710
+ /**
711
+ * What a member of a community-owned room may do there. `admin` is not among them: minting epochs, admitting and removing members are the community's, as the room's owner, and are exercised through the vtc/rooms/community/* tasks rather than by any member's credential. `curate` is not implied by `write`.
712
+ */
713
+ export type MemberAction = "read" | "write" | "curate";
714
+ /**
715
+ * The actions granted, at least one. An empty list confers nothing rather than everything, and a schema that allowed it would make the more dangerous reading available to a careless consumer.
716
+ *
717
+ * @minItems 1
718
+ * @maxItems 3
719
+ */
720
+ export type MemberActions = [MemberAction] | [MemberAction, MemberAction] | [MemberAction, MemberAction, MemberAction];
721
+ /**
722
+ * Where an admission stands. `offered`: credentials issued and waiting for the member to collect and accept them. `admitted`: accepted — on a sealed tier, the member is in the room's group. `removed`: an administrator removed them; on a sealed tier the room has advanced past them.
723
+ */
724
+ export type MemberState = "offered" | "admitted" | "removed";
710
725
  /**
711
726
  * How the request reaches the approver. A CLOSED list. Version 0.1 defines `scan`: the starter shows a trigger link (as a QR code that is also a clickable link, TRIGGER-LINK.md) and the approver's wallet reads it. `code` (a typed code of at least 8 characters, under strict rate limits) and `push` (sent to the approver's enrolled devices) are reserved names.
712
727
  */
@@ -866,6 +881,10 @@ export type PushRegistration = Apns | Fcm | WebPush;
866
881
  * Which of an account's two queues. `receive` holds messages addressed to the account awaiting its pickup. `send` holds messages the account sent that are still held against it until their recipient deletes them — so a stalled recipient fills its senders' send queues.
867
882
  */
868
883
  export type Queue = "receive" | "send";
884
+ /**
885
+ * Why the administrator is making this change. Recorded with it in the audit trail. Attributed to its author on every surface and untrusted: it MUST NOT carry personal data or a credential, and a reader MUST NOT treat it as instructions.
886
+ */
887
+ export type Reason = string;
869
888
  /**
870
889
  * How many records the room held when `DataCommitment` was computed — the number of leaves in that tree, tombstones included, since a tombstone is a record.
871
890
  *
@@ -970,6 +989,10 @@ export type RoleKeyState = "pending" | "staged" | "active" | "retiring" | "retir
970
989
  * A role identifier: lowercase, hyphen-separated, at most 64 characters. Compared by exact string equality. It is the value an AclEntry 0.2 carries in `role`.
971
990
  */
972
991
  export type RoleName = string;
992
+ /**
993
+ * 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.
994
+ */
995
+ export type RoomLabel = string;
973
996
  /**
974
997
  * `planned` — a successor was staged, activated, and the predecessor retired on the operator's schedule. `compromise` — a key was revoked and, where the role would otherwise be empty, replaced in the same log entry. `addition` — a key was added to a role without anything leaving it (for example a post-quantum key alongside a classical one).
975
998
  */
@@ -1133,7 +1156,11 @@ export type TickLength = string;
1133
1156
  /**
1134
1157
  * One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
1135
1158
  */
1136
- export type Topic = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config";
1159
+ export type Topic_VtcAdminEventsV0_1 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config";
1160
+ /**
1161
+ * One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
1162
+ */
1163
+ export type Topic_VtcAdminEventsV0_2 = "actions" | "acknowledgements" | "joinRequests" | "members" | "singleAdminMode" | "config" | "rooms";
1137
1164
  /**
1138
1165
  * How the traffic reached or left the mediator. `peerMediator` is mediator-to-mediator forwarding.
1139
1166
  */
@@ -4323,6 +4350,33 @@ export interface CommunityProfileView {
4323
4350
  */
4324
4351
  personhood?: PersonhoodGovernance;
4325
4352
  }
4353
+ /**
4354
+ * One room the community owns, as its administrators see it.
4355
+ */
4356
+ export interface CommunityRoom {
4357
+ room: HostedRoom;
4358
+ label: RoomLabel;
4359
+ /**
4360
+ * The storage config receiving the room's new uploads.
4361
+ */
4362
+ storageConfig?: StorageConfigId;
4363
+ /**
4364
+ * Members in state `admitted`.
4365
+ */
4366
+ admitted: number;
4367
+ /**
4368
+ * Offers not yet accepted or withdrawn.
4369
+ */
4370
+ offered: number;
4371
+ /**
4372
+ * When the community's own `admin` authority over the room expires. A room whose owner's authority lapses can no longer advance its epoch, admit or remove; a community SHOULD renew it well before.
4373
+ */
4374
+ ownerAuthorityValidUntil?: string;
4375
+ /**
4376
+ * The administrator who created it.
4377
+ */
4378
+ createdBy?: string;
4379
+ }
4326
4380
  /**
4327
4381
  * A community's portable configuration: its profile plus the configuration overrides a maintainer stores for itself. Deliberately excludes per-host layers (environment variables, on-disk config files) — those describe where a maintainer runs, not what the community is, and carrying them would make an import overwrite the target host's own deployment settings.
4328
4382
  *
@@ -6470,6 +6524,43 @@ export interface MonitorFilter {
6470
6524
  */
6471
6525
  failuresOnly?: boolean;
6472
6526
  }
6527
+ /**
6528
+ * A community's offer of admission to a room it owns, as the member it is addressed to sees it.
6529
+ */
6530
+ export interface Offer {
6531
+ roomId: string;
6532
+ /**
6533
+ * The room's host: this community.
6534
+ */
6535
+ host: string;
6536
+ label: RoomLabel;
6537
+ visibility: Visibility;
6538
+ actions: MemberActions;
6539
+ validUntil: string;
6540
+ offeredAt: string;
6541
+ /**
6542
+ * `open`: not yet accepted. `accepted`: accepted, kept listed while a repeated accept can still be answered.
6543
+ */
6544
+ state: "open" | "accepted";
6545
+ credentials: OfferCredentials;
6546
+ }
6547
+ /**
6548
+ * The three credentials the room issued to the member, serialized as rooms/owner/{invite,issue-membership,issue-authority} return them. None is a secret: each names its subject, and a presentation of it must be signed by that subject. The member stores them in their own key holder's vault.
6549
+ */
6550
+ export interface OfferCredentials {
6551
+ /**
6552
+ * The Verifiable Invitation Credential. On a sealed tier the member's key holder needs it to mint a KeyPackage (rooms/keys/key-package) and to accept the Welcome (rooms/keys/welcome).
6553
+ */
6554
+ invitation: string;
6555
+ /**
6556
+ * The Verifiable Membership Credential.
6557
+ */
6558
+ membership: string;
6559
+ /**
6560
+ * The Verifiable Authority Credential granting `actions` until `validUntil`.
6561
+ */
6562
+ authority: string;
6563
+ }
6473
6564
  export interface PasskeyVerificationMethod {
6474
6565
  /**
6475
6566
  * The verificationMethod id as it appears in the DID document: `<did>#passkey-<base64url(sha256(credentialId))>`. The fragment is content-derived so a verifier can locate this VM by recomputing `sha256(credential.id)`.
@@ -7609,6 +7700,21 @@ export interface RoomLimits {
7609
7700
  */
7610
7701
  member?: ScopeLimits;
7611
7702
  }
7703
+ /**
7704
+ * One party the community admitted to a room it owns, or offered admission to.
7705
+ */
7706
+ export interface RoomMember {
7707
+ member: string;
7708
+ actions: MemberActions;
7709
+ /**
7710
+ * When the member's authority credential expires.
7711
+ */
7712
+ validUntil: string;
7713
+ state: MemberState;
7714
+ offeredAt: string;
7715
+ admittedAt?: string;
7716
+ removedAt?: string;
7717
+ }
7612
7718
  /**
7613
7719
  * One change to a role's key set, from preview to completion. The rotation history of a DID is the list of these; the log is the authority for what was published, and this record adds what the log cannot say — which change was which, and (custody projection only) who asked, who approved, and why.
7614
7720
  */