@pairlobby/protocol 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +93 -0
  2. package/README.md +5 -0
  3. package/dist/auto-close.d.ts +34 -0
  4. package/dist/auto-close.d.ts.map +1 -0
  5. package/dist/auto-close.js +12 -0
  6. package/dist/auto-close.js.map +1 -0
  7. package/dist/credentials.d.ts +15 -0
  8. package/dist/credentials.d.ts.map +1 -0
  9. package/dist/credentials.js +48 -0
  10. package/dist/credentials.js.map +1 -0
  11. package/dist/errors.d.ts +23 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +78 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/events.d.ts +3177 -0
  16. package/dist/events.d.ts.map +1 -0
  17. package/dist/events.js +145 -0
  18. package/dist/events.js.map +1 -0
  19. package/dist/handover.d.ts +266 -0
  20. package/dist/handover.d.ts.map +1 -0
  21. package/dist/handover.js +37 -0
  22. package/dist/handover.js.map +1 -0
  23. package/dist/http.d.ts +8849 -0
  24. package/dist/http.d.ts.map +1 -0
  25. package/dist/http.js +157 -0
  26. package/dist/http.js.map +1 -0
  27. package/dist/ids.d.ts +26 -0
  28. package/dist/ids.d.ts.map +1 -0
  29. package/dist/ids.js +46 -0
  30. package/dist/ids.js.map +1 -0
  31. package/dist/index.d.ts +13 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +13 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/limits.d.ts +74 -0
  36. package/dist/limits.d.ts.map +1 -0
  37. package/dist/limits.js +56 -0
  38. package/dist/limits.js.map +1 -0
  39. package/dist/names.d.ts +16 -0
  40. package/dist/names.d.ts.map +1 -0
  41. package/dist/names.js +7 -0
  42. package/dist/names.js.map +1 -0
  43. package/dist/records.d.ts +1109 -0
  44. package/dist/records.d.ts.map +1 -0
  45. package/dist/records.js +169 -0
  46. package/dist/records.js.map +1 -0
  47. package/dist/requests.d.ts +71 -0
  48. package/dist/requests.d.ts.map +1 -0
  49. package/dist/requests.js +93 -0
  50. package/dist/requests.js.map +1 -0
  51. package/dist/wire.d.ts +4266 -0
  52. package/dist/wire.d.ts.map +1 -0
  53. package/dist/wire.js +24 -0
  54. package/dist/wire.js.map +1 -0
  55. package/package.json +35 -0
@@ -0,0 +1,1109 @@
1
+ import { z } from 'zod';
2
+ export declare const RoomLifecycle: z.ZodEnum<["open", "closed", "expired", "deleted"]>;
3
+ export type RoomLifecycle = z.infer<typeof RoomLifecycle>;
4
+ export declare const RoomPolicySchema: z.ZodObject<{
5
+ joinPolicy: z.ZodDefault<z.ZodEnum<["invite_only", "open_to_guests"]>>;
6
+ inviteRole: z.ZodOptional<z.ZodEnum<["member", "guest"]>>;
7
+ autoClose: z.ZodOptional<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
8
+ mode: z.ZodLiteral<"off">;
9
+ }, "strip", z.ZodTypeAny, {
10
+ mode: "off";
11
+ }, {
12
+ mode: "off";
13
+ }>, z.ZodObject<{
14
+ mode: z.ZodLiteral<"inactivity">;
15
+ afterMs: z.ZodNumber;
16
+ }, "strip", z.ZodTypeAny, {
17
+ mode: "inactivity";
18
+ afterMs: number;
19
+ }, {
20
+ mode: "inactivity";
21
+ afterMs: number;
22
+ }>, z.ZodObject<{
23
+ mode: z.ZodLiteral<"age">;
24
+ afterMs: z.ZodNumber;
25
+ }, "strip", z.ZodTypeAny, {
26
+ mode: "age";
27
+ afterMs: number;
28
+ }, {
29
+ mode: "age";
30
+ afterMs: number;
31
+ }>, z.ZodObject<{
32
+ mode: z.ZodLiteral<"agents_and_guests_left">;
33
+ }, "strip", z.ZodTypeAny, {
34
+ mode: "agents_and_guests_left";
35
+ }, {
36
+ mode: "agents_and_guests_left";
37
+ }>]>>;
38
+ localJoin: z.ZodOptional<z.ZodBoolean>;
39
+ maxParticipants: z.ZodNumber;
40
+ maxEventPayloadBytes: z.ZodNumber;
41
+ maxRetainedEventBytes: z.ZodNumber;
42
+ maxRetainedEvents: z.ZodNumber;
43
+ roomLifetimeMs: z.ZodNullable<z.ZodNumber>;
44
+ inviteLifetimeMs: z.ZodNullable<z.ZodNumber>;
45
+ exportWindowMs: z.ZodNumber;
46
+ connectTicketLifetimeMs: z.ZodNumber;
47
+ }, "strip", z.ZodTypeAny, {
48
+ joinPolicy: "invite_only" | "open_to_guests";
49
+ maxParticipants: number;
50
+ maxEventPayloadBytes: number;
51
+ maxRetainedEventBytes: number;
52
+ maxRetainedEvents: number;
53
+ roomLifetimeMs: number | null;
54
+ inviteLifetimeMs: number | null;
55
+ exportWindowMs: number;
56
+ connectTicketLifetimeMs: number;
57
+ autoClose?: {
58
+ mode: "off";
59
+ } | {
60
+ mode: "inactivity";
61
+ afterMs: number;
62
+ } | {
63
+ mode: "age";
64
+ afterMs: number;
65
+ } | {
66
+ mode: "agents_and_guests_left";
67
+ } | undefined;
68
+ inviteRole?: "guest" | "member" | undefined;
69
+ localJoin?: boolean | undefined;
70
+ }, {
71
+ maxParticipants: number;
72
+ maxEventPayloadBytes: number;
73
+ maxRetainedEventBytes: number;
74
+ maxRetainedEvents: number;
75
+ roomLifetimeMs: number | null;
76
+ inviteLifetimeMs: number | null;
77
+ exportWindowMs: number;
78
+ connectTicketLifetimeMs: number;
79
+ autoClose?: {
80
+ mode: "off";
81
+ } | {
82
+ mode: "inactivity";
83
+ afterMs: number;
84
+ } | {
85
+ mode: "age";
86
+ afterMs: number;
87
+ } | {
88
+ mode: "agents_and_guests_left";
89
+ } | undefined;
90
+ joinPolicy?: "invite_only" | "open_to_guests" | undefined;
91
+ inviteRole?: "guest" | "member" | undefined;
92
+ localJoin?: boolean | undefined;
93
+ }>;
94
+ export declare const RoomRecord: z.ZodObject<{
95
+ roomId: z.ZodString;
96
+ name: z.ZodString;
97
+ createdAt: z.ZodNumber;
98
+ /** Null for a room that does not expire. */
99
+ expiresAt: z.ZodNullable<z.ZodNumber>;
100
+ closedAt: z.ZodNullable<z.ZodNumber>;
101
+ lifecycle: z.ZodEnum<["open", "closed", "expired", "deleted"]>;
102
+ locked: z.ZodOptional<z.ZodBoolean>;
103
+ policy: z.ZodObject<{
104
+ joinPolicy: z.ZodDefault<z.ZodEnum<["invite_only", "open_to_guests"]>>;
105
+ inviteRole: z.ZodOptional<z.ZodEnum<["member", "guest"]>>;
106
+ autoClose: z.ZodOptional<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
107
+ mode: z.ZodLiteral<"off">;
108
+ }, "strip", z.ZodTypeAny, {
109
+ mode: "off";
110
+ }, {
111
+ mode: "off";
112
+ }>, z.ZodObject<{
113
+ mode: z.ZodLiteral<"inactivity">;
114
+ afterMs: z.ZodNumber;
115
+ }, "strip", z.ZodTypeAny, {
116
+ mode: "inactivity";
117
+ afterMs: number;
118
+ }, {
119
+ mode: "inactivity";
120
+ afterMs: number;
121
+ }>, z.ZodObject<{
122
+ mode: z.ZodLiteral<"age">;
123
+ afterMs: z.ZodNumber;
124
+ }, "strip", z.ZodTypeAny, {
125
+ mode: "age";
126
+ afterMs: number;
127
+ }, {
128
+ mode: "age";
129
+ afterMs: number;
130
+ }>, z.ZodObject<{
131
+ mode: z.ZodLiteral<"agents_and_guests_left">;
132
+ }, "strip", z.ZodTypeAny, {
133
+ mode: "agents_and_guests_left";
134
+ }, {
135
+ mode: "agents_and_guests_left";
136
+ }>]>>;
137
+ localJoin: z.ZodOptional<z.ZodBoolean>;
138
+ maxParticipants: z.ZodNumber;
139
+ maxEventPayloadBytes: z.ZodNumber;
140
+ maxRetainedEventBytes: z.ZodNumber;
141
+ maxRetainedEvents: z.ZodNumber;
142
+ roomLifetimeMs: z.ZodNullable<z.ZodNumber>;
143
+ inviteLifetimeMs: z.ZodNullable<z.ZodNumber>;
144
+ exportWindowMs: z.ZodNumber;
145
+ connectTicketLifetimeMs: z.ZodNumber;
146
+ }, "strip", z.ZodTypeAny, {
147
+ joinPolicy: "invite_only" | "open_to_guests";
148
+ maxParticipants: number;
149
+ maxEventPayloadBytes: number;
150
+ maxRetainedEventBytes: number;
151
+ maxRetainedEvents: number;
152
+ roomLifetimeMs: number | null;
153
+ inviteLifetimeMs: number | null;
154
+ exportWindowMs: number;
155
+ connectTicketLifetimeMs: number;
156
+ autoClose?: {
157
+ mode: "off";
158
+ } | {
159
+ mode: "inactivity";
160
+ afterMs: number;
161
+ } | {
162
+ mode: "age";
163
+ afterMs: number;
164
+ } | {
165
+ mode: "agents_and_guests_left";
166
+ } | undefined;
167
+ inviteRole?: "guest" | "member" | undefined;
168
+ localJoin?: boolean | undefined;
169
+ }, {
170
+ maxParticipants: number;
171
+ maxEventPayloadBytes: number;
172
+ maxRetainedEventBytes: number;
173
+ maxRetainedEvents: number;
174
+ roomLifetimeMs: number | null;
175
+ inviteLifetimeMs: number | null;
176
+ exportWindowMs: number;
177
+ connectTicketLifetimeMs: number;
178
+ autoClose?: {
179
+ mode: "off";
180
+ } | {
181
+ mode: "inactivity";
182
+ afterMs: number;
183
+ } | {
184
+ mode: "age";
185
+ afterMs: number;
186
+ } | {
187
+ mode: "agents_and_guests_left";
188
+ } | undefined;
189
+ joinPolicy?: "invite_only" | "open_to_guests" | undefined;
190
+ inviteRole?: "guest" | "member" | undefined;
191
+ localJoin?: boolean | undefined;
192
+ }>;
193
+ controllerCredentialHash: z.ZodString;
194
+ /** Bumped by every control request so a late acknowledgement cannot overwrite newer state. */
195
+ controlRevision: z.ZodNumber;
196
+ turnMode: z.ZodOptional<z.ZodEnum<["sequential", "parallel"]>>;
197
+ turnRevision: z.ZodOptional<z.ZodNumber>;
198
+ turnChangedAt: z.ZodOptional<z.ZodNumber>;
199
+ allStartIndex: z.ZodOptional<z.ZodNumber>;
200
+ nextRequestSeq: z.ZodOptional<z.ZodNumber>;
201
+ /** When the last `message` was accepted; drives inactivity auto-close without scanning the transcript. */
202
+ lastMessageAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
203
+ /** The agents-and-guests mode closes only after one has joined. */
204
+ autoCloseArmed: z.ZodOptional<z.ZodBoolean>;
205
+ /** The computed next auto-close deadline, or null; recomputed in every mutation. */
206
+ autoCloseAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
207
+ closeReason: z.ZodOptional<z.ZodEnum<["manual", "inactivity", "age", "agents_and_guests_left"]>>;
208
+ nextSeq: z.ZodNumber;
209
+ retainedEventBytes: z.ZodNumber;
210
+ retainedEvents: z.ZodNumber;
211
+ }, "strip", z.ZodTypeAny, {
212
+ name: string;
213
+ expiresAt: number | null;
214
+ roomId: string;
215
+ createdAt: number;
216
+ closedAt: number | null;
217
+ lifecycle: "open" | "closed" | "expired" | "deleted";
218
+ policy: {
219
+ joinPolicy: "invite_only" | "open_to_guests";
220
+ maxParticipants: number;
221
+ maxEventPayloadBytes: number;
222
+ maxRetainedEventBytes: number;
223
+ maxRetainedEvents: number;
224
+ roomLifetimeMs: number | null;
225
+ inviteLifetimeMs: number | null;
226
+ exportWindowMs: number;
227
+ connectTicketLifetimeMs: number;
228
+ autoClose?: {
229
+ mode: "off";
230
+ } | {
231
+ mode: "inactivity";
232
+ afterMs: number;
233
+ } | {
234
+ mode: "age";
235
+ afterMs: number;
236
+ } | {
237
+ mode: "agents_and_guests_left";
238
+ } | undefined;
239
+ inviteRole?: "guest" | "member" | undefined;
240
+ localJoin?: boolean | undefined;
241
+ };
242
+ controllerCredentialHash: string;
243
+ controlRevision: number;
244
+ nextSeq: number;
245
+ retainedEventBytes: number;
246
+ retainedEvents: number;
247
+ locked?: boolean | undefined;
248
+ turnMode?: "sequential" | "parallel" | undefined;
249
+ turnRevision?: number | undefined;
250
+ turnChangedAt?: number | undefined;
251
+ allStartIndex?: number | undefined;
252
+ nextRequestSeq?: number | undefined;
253
+ lastMessageAt?: number | null | undefined;
254
+ autoCloseArmed?: boolean | undefined;
255
+ autoCloseAt?: number | null | undefined;
256
+ closeReason?: "inactivity" | "age" | "agents_and_guests_left" | "manual" | undefined;
257
+ }, {
258
+ name: string;
259
+ expiresAt: number | null;
260
+ roomId: string;
261
+ createdAt: number;
262
+ closedAt: number | null;
263
+ lifecycle: "open" | "closed" | "expired" | "deleted";
264
+ policy: {
265
+ maxParticipants: number;
266
+ maxEventPayloadBytes: number;
267
+ maxRetainedEventBytes: number;
268
+ maxRetainedEvents: number;
269
+ roomLifetimeMs: number | null;
270
+ inviteLifetimeMs: number | null;
271
+ exportWindowMs: number;
272
+ connectTicketLifetimeMs: number;
273
+ autoClose?: {
274
+ mode: "off";
275
+ } | {
276
+ mode: "inactivity";
277
+ afterMs: number;
278
+ } | {
279
+ mode: "age";
280
+ afterMs: number;
281
+ } | {
282
+ mode: "agents_and_guests_left";
283
+ } | undefined;
284
+ joinPolicy?: "invite_only" | "open_to_guests" | undefined;
285
+ inviteRole?: "guest" | "member" | undefined;
286
+ localJoin?: boolean | undefined;
287
+ };
288
+ controllerCredentialHash: string;
289
+ controlRevision: number;
290
+ nextSeq: number;
291
+ retainedEventBytes: number;
292
+ retainedEvents: number;
293
+ locked?: boolean | undefined;
294
+ turnMode?: "sequential" | "parallel" | undefined;
295
+ turnRevision?: number | undefined;
296
+ turnChangedAt?: number | undefined;
297
+ allStartIndex?: number | undefined;
298
+ nextRequestSeq?: number | undefined;
299
+ lastMessageAt?: number | null | undefined;
300
+ autoCloseArmed?: boolean | undefined;
301
+ autoCloseAt?: number | null | undefined;
302
+ closeReason?: "inactivity" | "age" | "agents_and_guests_left" | "manual" | undefined;
303
+ }>;
304
+ export type RoomRecord = z.infer<typeof RoomRecord>;
305
+ export declare const ParticipantRecord: z.ZodObject<{
306
+ participantId: z.ZodString;
307
+ roomId: z.ZodString;
308
+ /** A label for humans. Never an authentication identity and never a routing key on its own. */
309
+ displayName: z.ZodString;
310
+ nameSource: z.ZodOptional<z.ZodEnum<["profile", "room"]>>;
311
+ kind: z.ZodEnum<["agent", "human"]>;
312
+ role: z.ZodEnum<["guest", "member", "controller"]>;
313
+ /** Distinguishes two sessions of the same runtime in the same working directory. */
314
+ sessionId: z.ZodNullable<z.ZodString>;
315
+ credentialHash: z.ZodString;
316
+ capabilities: z.ZodNullable<z.ZodObject<{
317
+ deliverUnsolicited: z.ZodDefault<z.ZodBoolean>;
318
+ cancelTurn: z.ZodDefault<z.ZodBoolean>;
319
+ cancelTool: z.ZodDefault<z.ZodBoolean>;
320
+ runtime: z.ZodOptional<z.ZodString>;
321
+ runtimeVersion: z.ZodOptional<z.ZodString>;
322
+ }, "strip", z.ZodTypeAny, {
323
+ deliverUnsolicited: boolean;
324
+ cancelTurn: boolean;
325
+ cancelTool: boolean;
326
+ runtime?: string | undefined;
327
+ runtimeVersion?: string | undefined;
328
+ }, {
329
+ deliverUnsolicited?: boolean | undefined;
330
+ cancelTurn?: boolean | undefined;
331
+ cancelTool?: boolean | undefined;
332
+ runtime?: string | undefined;
333
+ runtimeVersion?: string | undefined;
334
+ }>>;
335
+ joinedAt: z.ZodNumber;
336
+ revokedAt: z.ZodNullable<z.ZodNumber>;
337
+ leftAt: z.ZodNullable<z.ZodNumber>;
338
+ muted: z.ZodOptional<z.ZodBoolean>;
339
+ }, "strip", z.ZodTypeAny, {
340
+ participantId: string;
341
+ displayName: string;
342
+ kind: "agent" | "human";
343
+ role: "controller" | "guest" | "member";
344
+ capabilities: {
345
+ deliverUnsolicited: boolean;
346
+ cancelTurn: boolean;
347
+ cancelTool: boolean;
348
+ runtime?: string | undefined;
349
+ runtimeVersion?: string | undefined;
350
+ } | null;
351
+ roomId: string;
352
+ sessionId: string | null;
353
+ credentialHash: string;
354
+ joinedAt: number;
355
+ revokedAt: number | null;
356
+ leftAt: number | null;
357
+ muted?: boolean | undefined;
358
+ nameSource?: "profile" | "room" | undefined;
359
+ }, {
360
+ participantId: string;
361
+ displayName: string;
362
+ kind: "agent" | "human";
363
+ role: "controller" | "guest" | "member";
364
+ capabilities: {
365
+ deliverUnsolicited?: boolean | undefined;
366
+ cancelTurn?: boolean | undefined;
367
+ cancelTool?: boolean | undefined;
368
+ runtime?: string | undefined;
369
+ runtimeVersion?: string | undefined;
370
+ } | null;
371
+ roomId: string;
372
+ sessionId: string | null;
373
+ credentialHash: string;
374
+ joinedAt: number;
375
+ revokedAt: number | null;
376
+ leftAt: number | null;
377
+ muted?: boolean | undefined;
378
+ nameSource?: "profile" | "room" | undefined;
379
+ }>;
380
+ export type ParticipantRecord = z.infer<typeof ParticipantRecord>;
381
+ export declare const InviteRedemption: z.ZodEnum<["unused", "reserved", "redeemed"]>;
382
+ export type InviteRedemption = z.infer<typeof InviteRedemption>;
383
+ export declare const InviteRecord: z.ZodObject<{
384
+ /** SHA-256 of the normalized code. The code itself is never stored. */
385
+ digest: z.ZodString;
386
+ roomId: z.ZodString;
387
+ role: z.ZodEnum<["guest", "member", "controller"]>;
388
+ defaultName: z.ZodOptional<z.ZodString>;
389
+ createdAt: z.ZodNumber;
390
+ /** Null for an invite that does not expire. */
391
+ expiresAt: z.ZodNullable<z.ZodNumber>;
392
+ state: z.ZodEnum<["unused", "reserved", "redeemed"]>;
393
+ /**
394
+ * A reusable code behaves as a seat: it admits one participant at a time and
395
+ * becomes available again when that participant leaves. A single-use code is
396
+ * spent on first redemption.
397
+ */
398
+ reusable: z.ZodDefault<z.ZodBoolean>;
399
+ /** Set once an attempt reserves the invite, so a retry of that attempt recovers the same membership. */
400
+ boundAttemptId: z.ZodNullable<z.ZodString>;
401
+ boundCredentialHash: z.ZodNullable<z.ZodString>;
402
+ redeemedParticipantId: z.ZodNullable<z.ZodString>;
403
+ /** Tombstone horizon: a consumed code stays unclaimable by anyone else until this time. */
404
+ recoverableUntil: z.ZodNullable<z.ZodNumber>;
405
+ }, "strip", z.ZodTypeAny, {
406
+ role: "controller" | "guest" | "member";
407
+ expiresAt: number | null;
408
+ state: "unused" | "reserved" | "redeemed";
409
+ roomId: string;
410
+ createdAt: number;
411
+ digest: string;
412
+ reusable: boolean;
413
+ boundAttemptId: string | null;
414
+ boundCredentialHash: string | null;
415
+ redeemedParticipantId: string | null;
416
+ recoverableUntil: number | null;
417
+ defaultName?: string | undefined;
418
+ }, {
419
+ role: "controller" | "guest" | "member";
420
+ expiresAt: number | null;
421
+ state: "unused" | "reserved" | "redeemed";
422
+ roomId: string;
423
+ createdAt: number;
424
+ digest: string;
425
+ boundAttemptId: string | null;
426
+ boundCredentialHash: string | null;
427
+ redeemedParticipantId: string | null;
428
+ recoverableUntil: number | null;
429
+ defaultName?: string | undefined;
430
+ reusable?: boolean | undefined;
431
+ }>;
432
+ export type InviteRecord = z.infer<typeof InviteRecord>;
433
+ export declare const HandoverRecord: z.ZodObject<{
434
+ handoverId: z.ZodString;
435
+ roomId: z.ZodString;
436
+ senderId: z.ZodString;
437
+ recipientId: z.ZodString;
438
+ /** Immutable per revision. An amendment produces the next revision; acceptance names an exact one. */
439
+ revision: z.ZodNumber;
440
+ document: z.ZodObject<{
441
+ metadata: z.ZodObject<{
442
+ goal: z.ZodString;
443
+ recipient: z.ZodString;
444
+ mode: z.ZodEnum<["sequential", "concurrent"]>;
445
+ nextAction: z.ZodString;
446
+ decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
447
+ blockers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
448
+ repository: z.ZodOptional<z.ZodObject<{
449
+ remote: z.ZodOptional<z.ZodString>;
450
+ branch: z.ZodString;
451
+ commit: z.ZodString;
452
+ worktreePath: z.ZodOptional<z.ZodString>;
453
+ dirty: z.ZodBoolean;
454
+ missingPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
455
+ }, "strip", z.ZodTypeAny, {
456
+ dirty: boolean;
457
+ branch: string;
458
+ commit: string;
459
+ missingPaths: string[];
460
+ remote?: string | undefined;
461
+ worktreePath?: string | undefined;
462
+ }, {
463
+ dirty: boolean;
464
+ branch: string;
465
+ commit: string;
466
+ remote?: string | undefined;
467
+ worktreePath?: string | undefined;
468
+ missingPaths?: string[] | undefined;
469
+ }>>;
470
+ tests: z.ZodOptional<z.ZodObject<{
471
+ command: z.ZodString;
472
+ result: z.ZodEnum<["passed", "failed", "not_run"]>;
473
+ notes: z.ZodOptional<z.ZodString>;
474
+ }, "strip", z.ZodTypeAny, {
475
+ command: string;
476
+ result: "passed" | "failed" | "not_run";
477
+ notes?: string | undefined;
478
+ }, {
479
+ command: string;
480
+ result: "passed" | "failed" | "not_run";
481
+ notes?: string | undefined;
482
+ }>>;
483
+ }, "strip", z.ZodTypeAny, {
484
+ mode: "sequential" | "concurrent";
485
+ goal: string;
486
+ recipient: string;
487
+ nextAction: string;
488
+ decisions: string[];
489
+ blockers: string[];
490
+ repository?: {
491
+ dirty: boolean;
492
+ branch: string;
493
+ commit: string;
494
+ missingPaths: string[];
495
+ remote?: string | undefined;
496
+ worktreePath?: string | undefined;
497
+ } | undefined;
498
+ tests?: {
499
+ command: string;
500
+ result: "passed" | "failed" | "not_run";
501
+ notes?: string | undefined;
502
+ } | undefined;
503
+ }, {
504
+ mode: "sequential" | "concurrent";
505
+ goal: string;
506
+ recipient: string;
507
+ nextAction: string;
508
+ decisions?: string[] | undefined;
509
+ blockers?: string[] | undefined;
510
+ repository?: {
511
+ dirty: boolean;
512
+ branch: string;
513
+ commit: string;
514
+ remote?: string | undefined;
515
+ worktreePath?: string | undefined;
516
+ missingPaths?: string[] | undefined;
517
+ } | undefined;
518
+ tests?: {
519
+ command: string;
520
+ result: "passed" | "failed" | "not_run";
521
+ notes?: string | undefined;
522
+ } | undefined;
523
+ }>;
524
+ body: z.ZodString;
525
+ }, "strip", z.ZodTypeAny, {
526
+ metadata: {
527
+ mode: "sequential" | "concurrent";
528
+ goal: string;
529
+ recipient: string;
530
+ nextAction: string;
531
+ decisions: string[];
532
+ blockers: string[];
533
+ repository?: {
534
+ dirty: boolean;
535
+ branch: string;
536
+ commit: string;
537
+ missingPaths: string[];
538
+ remote?: string | undefined;
539
+ worktreePath?: string | undefined;
540
+ } | undefined;
541
+ tests?: {
542
+ command: string;
543
+ result: "passed" | "failed" | "not_run";
544
+ notes?: string | undefined;
545
+ } | undefined;
546
+ };
547
+ body: string;
548
+ }, {
549
+ metadata: {
550
+ mode: "sequential" | "concurrent";
551
+ goal: string;
552
+ recipient: string;
553
+ nextAction: string;
554
+ decisions?: string[] | undefined;
555
+ blockers?: string[] | undefined;
556
+ repository?: {
557
+ dirty: boolean;
558
+ branch: string;
559
+ commit: string;
560
+ remote?: string | undefined;
561
+ worktreePath?: string | undefined;
562
+ missingPaths?: string[] | undefined;
563
+ } | undefined;
564
+ tests?: {
565
+ command: string;
566
+ result: "passed" | "failed" | "not_run";
567
+ notes?: string | undefined;
568
+ } | undefined;
569
+ };
570
+ body: string;
571
+ }>;
572
+ state: z.ZodEnum<["offered", "accepted", "declined"]>;
573
+ offeredEventId: z.ZodString;
574
+ resolvedEventId: z.ZodNullable<z.ZodString>;
575
+ resolvedAt: z.ZodNullable<z.ZodNumber>;
576
+ }, "strip", z.ZodTypeAny, {
577
+ handoverId: string;
578
+ revision: number;
579
+ document: {
580
+ metadata: {
581
+ mode: "sequential" | "concurrent";
582
+ goal: string;
583
+ recipient: string;
584
+ nextAction: string;
585
+ decisions: string[];
586
+ blockers: string[];
587
+ repository?: {
588
+ dirty: boolean;
589
+ branch: string;
590
+ commit: string;
591
+ missingPaths: string[];
592
+ remote?: string | undefined;
593
+ worktreePath?: string | undefined;
594
+ } | undefined;
595
+ tests?: {
596
+ command: string;
597
+ result: "passed" | "failed" | "not_run";
598
+ notes?: string | undefined;
599
+ } | undefined;
600
+ };
601
+ body: string;
602
+ };
603
+ state: "offered" | "accepted" | "declined";
604
+ roomId: string;
605
+ senderId: string;
606
+ recipientId: string;
607
+ offeredEventId: string;
608
+ resolvedEventId: string | null;
609
+ resolvedAt: number | null;
610
+ }, {
611
+ handoverId: string;
612
+ revision: number;
613
+ document: {
614
+ metadata: {
615
+ mode: "sequential" | "concurrent";
616
+ goal: string;
617
+ recipient: string;
618
+ nextAction: string;
619
+ decisions?: string[] | undefined;
620
+ blockers?: string[] | undefined;
621
+ repository?: {
622
+ dirty: boolean;
623
+ branch: string;
624
+ commit: string;
625
+ remote?: string | undefined;
626
+ worktreePath?: string | undefined;
627
+ missingPaths?: string[] | undefined;
628
+ } | undefined;
629
+ tests?: {
630
+ command: string;
631
+ result: "passed" | "failed" | "not_run";
632
+ notes?: string | undefined;
633
+ } | undefined;
634
+ };
635
+ body: string;
636
+ };
637
+ state: "offered" | "accepted" | "declined";
638
+ roomId: string;
639
+ senderId: string;
640
+ recipientId: string;
641
+ offeredEventId: string;
642
+ resolvedEventId: string | null;
643
+ resolvedAt: number | null;
644
+ }>;
645
+ export type HandoverRecord = z.infer<typeof HandoverRecord>;
646
+ export declare const ControlRecord: z.ZodObject<{
647
+ roomId: z.ZodString;
648
+ targetParticipantId: z.ZodString;
649
+ paused: z.ZodBoolean;
650
+ /** The latest pause also asked to stop the current turn. Absent on older records. */
651
+ interruptRequested: z.ZodOptional<z.ZodBoolean>;
652
+ revision: z.ZodNumber;
653
+ requestedAt: z.ZodNumber;
654
+ acknowledgedRevision: z.ZodNumber;
655
+ acknowledgedOutcome: z.ZodNullable<z.ZodEnum<["pause_requested", "paused_between_turns", "current_turn_cancelled", "tool_cancellation_unknown", "resumed", "unsupported", "disconnected"]>>;
656
+ acknowledgedAt: z.ZodNullable<z.ZodNumber>;
657
+ }, "strip", z.ZodTypeAny, {
658
+ revision: number;
659
+ targetParticipantId: string;
660
+ roomId: string;
661
+ paused: boolean;
662
+ requestedAt: number;
663
+ acknowledgedRevision: number;
664
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
665
+ acknowledgedAt: number | null;
666
+ interruptRequested?: boolean | undefined;
667
+ }, {
668
+ revision: number;
669
+ targetParticipantId: string;
670
+ roomId: string;
671
+ paused: boolean;
672
+ requestedAt: number;
673
+ acknowledgedRevision: number;
674
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
675
+ acknowledgedAt: number | null;
676
+ interruptRequested?: boolean | undefined;
677
+ }>;
678
+ export type ControlRecord = z.infer<typeof ControlRecord>;
679
+ /** What a member sees about another participant. Credential hashes never leave the server. */
680
+ export declare const ParticipantView: z.ZodObject<{
681
+ participantId: z.ZodString;
682
+ displayName: z.ZodString;
683
+ nameSource: z.ZodOptional<z.ZodEnum<["profile", "room"]>>;
684
+ kind: z.ZodEnum<["agent", "human"]>;
685
+ role: z.ZodEnum<["guest", "member", "controller"]>;
686
+ capabilities: z.ZodNullable<z.ZodObject<{
687
+ deliverUnsolicited: z.ZodDefault<z.ZodBoolean>;
688
+ cancelTurn: z.ZodDefault<z.ZodBoolean>;
689
+ cancelTool: z.ZodDefault<z.ZodBoolean>;
690
+ runtime: z.ZodOptional<z.ZodString>;
691
+ runtimeVersion: z.ZodOptional<z.ZodString>;
692
+ }, "strip", z.ZodTypeAny, {
693
+ deliverUnsolicited: boolean;
694
+ cancelTurn: boolean;
695
+ cancelTool: boolean;
696
+ runtime?: string | undefined;
697
+ runtimeVersion?: string | undefined;
698
+ }, {
699
+ deliverUnsolicited?: boolean | undefined;
700
+ cancelTurn?: boolean | undefined;
701
+ cancelTool?: boolean | undefined;
702
+ runtime?: string | undefined;
703
+ runtimeVersion?: string | undefined;
704
+ }>>;
705
+ joinedAt: z.ZodNumber;
706
+ revoked: z.ZodBoolean;
707
+ left: z.ZodBoolean;
708
+ paused: z.ZodBoolean;
709
+ muted: z.ZodOptional<z.ZodBoolean>;
710
+ controlRevision: z.ZodNumber;
711
+ acknowledgedOutcome: z.ZodNullable<z.ZodEnum<["pause_requested", "paused_between_turns", "current_turn_cancelled", "tool_cancellation_unknown", "resumed", "unsupported", "disconnected"]>>;
712
+ /** The revision the receiver last acknowledged, so a client can tell whether the latest control was answered. */
713
+ acknowledgedRevision: z.ZodOptional<z.ZodNumber>;
714
+ interruptRequested: z.ZodOptional<z.ZodBoolean>;
715
+ }, "strip", z.ZodTypeAny, {
716
+ participantId: string;
717
+ displayName: string;
718
+ kind: "agent" | "human";
719
+ role: "controller" | "guest" | "member";
720
+ capabilities: {
721
+ deliverUnsolicited: boolean;
722
+ cancelTurn: boolean;
723
+ cancelTool: boolean;
724
+ runtime?: string | undefined;
725
+ runtimeVersion?: string | undefined;
726
+ } | null;
727
+ controlRevision: number;
728
+ joinedAt: number;
729
+ paused: boolean;
730
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
731
+ revoked: boolean;
732
+ left: boolean;
733
+ muted?: boolean | undefined;
734
+ nameSource?: "profile" | "room" | undefined;
735
+ interruptRequested?: boolean | undefined;
736
+ acknowledgedRevision?: number | undefined;
737
+ }, {
738
+ participantId: string;
739
+ displayName: string;
740
+ kind: "agent" | "human";
741
+ role: "controller" | "guest" | "member";
742
+ capabilities: {
743
+ deliverUnsolicited?: boolean | undefined;
744
+ cancelTurn?: boolean | undefined;
745
+ cancelTool?: boolean | undefined;
746
+ runtime?: string | undefined;
747
+ runtimeVersion?: string | undefined;
748
+ } | null;
749
+ controlRevision: number;
750
+ joinedAt: number;
751
+ paused: boolean;
752
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
753
+ revoked: boolean;
754
+ left: boolean;
755
+ muted?: boolean | undefined;
756
+ nameSource?: "profile" | "room" | undefined;
757
+ interruptRequested?: boolean | undefined;
758
+ acknowledgedRevision?: number | undefined;
759
+ }>;
760
+ export type ParticipantView = z.infer<typeof ParticipantView>;
761
+ export declare const RoomSnapshot: z.ZodObject<{
762
+ roomId: z.ZodString;
763
+ /** Absent on older relays, which only accept addressed-recipient receipts. */
764
+ messageReceiptScope: z.ZodOptional<z.ZodEnum<["recipient", "members"]>>;
765
+ messageStagesSupported: z.ZodOptional<z.ZodBoolean>;
766
+ rejoinSupported: z.ZodOptional<z.ZodBoolean>;
767
+ renameSelfSupported: z.ZodOptional<z.ZodBoolean>;
768
+ adminRolesSupported: z.ZodOptional<z.ZodBoolean>;
769
+ inviteRoleSupported: z.ZodOptional<z.ZodBoolean>;
770
+ autoCloseSupported: z.ZodOptional<z.ZodBoolean>;
771
+ interruptSupported: z.ZodOptional<z.ZodBoolean>;
772
+ lastMessageAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
773
+ autoCloseArmed: z.ZodOptional<z.ZodBoolean>;
774
+ autoCloseAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
775
+ closeReason: z.ZodOptional<z.ZodEnum<["manual", "inactivity", "age", "agents_and_guests_left"]>>;
776
+ quotedMessagesSupported: z.ZodOptional<z.ZodBoolean>;
777
+ groupTurnsSupported: z.ZodOptional<z.ZodBoolean>;
778
+ workingStatusSupported: z.ZodOptional<z.ZodBoolean>;
779
+ turnMode: z.ZodOptional<z.ZodEnum<["sequential", "parallel"]>>;
780
+ name: z.ZodString;
781
+ lifecycle: z.ZodEnum<["open", "closed", "expired", "deleted"]>;
782
+ locked: z.ZodOptional<z.ZodBoolean>;
783
+ createdAt: z.ZodNumber;
784
+ expiresAt: z.ZodNullable<z.ZodNumber>;
785
+ closedAt: z.ZodNullable<z.ZodNumber>;
786
+ controlRevision: z.ZodNumber;
787
+ latestSeq: z.ZodNumber;
788
+ earliestSeq: z.ZodNumber;
789
+ participants: z.ZodArray<z.ZodObject<{
790
+ participantId: z.ZodString;
791
+ displayName: z.ZodString;
792
+ nameSource: z.ZodOptional<z.ZodEnum<["profile", "room"]>>;
793
+ kind: z.ZodEnum<["agent", "human"]>;
794
+ role: z.ZodEnum<["guest", "member", "controller"]>;
795
+ capabilities: z.ZodNullable<z.ZodObject<{
796
+ deliverUnsolicited: z.ZodDefault<z.ZodBoolean>;
797
+ cancelTurn: z.ZodDefault<z.ZodBoolean>;
798
+ cancelTool: z.ZodDefault<z.ZodBoolean>;
799
+ runtime: z.ZodOptional<z.ZodString>;
800
+ runtimeVersion: z.ZodOptional<z.ZodString>;
801
+ }, "strip", z.ZodTypeAny, {
802
+ deliverUnsolicited: boolean;
803
+ cancelTurn: boolean;
804
+ cancelTool: boolean;
805
+ runtime?: string | undefined;
806
+ runtimeVersion?: string | undefined;
807
+ }, {
808
+ deliverUnsolicited?: boolean | undefined;
809
+ cancelTurn?: boolean | undefined;
810
+ cancelTool?: boolean | undefined;
811
+ runtime?: string | undefined;
812
+ runtimeVersion?: string | undefined;
813
+ }>>;
814
+ joinedAt: z.ZodNumber;
815
+ revoked: z.ZodBoolean;
816
+ left: z.ZodBoolean;
817
+ paused: z.ZodBoolean;
818
+ muted: z.ZodOptional<z.ZodBoolean>;
819
+ controlRevision: z.ZodNumber;
820
+ acknowledgedOutcome: z.ZodNullable<z.ZodEnum<["pause_requested", "paused_between_turns", "current_turn_cancelled", "tool_cancellation_unknown", "resumed", "unsupported", "disconnected"]>>;
821
+ /** The revision the receiver last acknowledged, so a client can tell whether the latest control was answered. */
822
+ acknowledgedRevision: z.ZodOptional<z.ZodNumber>;
823
+ interruptRequested: z.ZodOptional<z.ZodBoolean>;
824
+ }, "strip", z.ZodTypeAny, {
825
+ participantId: string;
826
+ displayName: string;
827
+ kind: "agent" | "human";
828
+ role: "controller" | "guest" | "member";
829
+ capabilities: {
830
+ deliverUnsolicited: boolean;
831
+ cancelTurn: boolean;
832
+ cancelTool: boolean;
833
+ runtime?: string | undefined;
834
+ runtimeVersion?: string | undefined;
835
+ } | null;
836
+ controlRevision: number;
837
+ joinedAt: number;
838
+ paused: boolean;
839
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
840
+ revoked: boolean;
841
+ left: boolean;
842
+ muted?: boolean | undefined;
843
+ nameSource?: "profile" | "room" | undefined;
844
+ interruptRequested?: boolean | undefined;
845
+ acknowledgedRevision?: number | undefined;
846
+ }, {
847
+ participantId: string;
848
+ displayName: string;
849
+ kind: "agent" | "human";
850
+ role: "controller" | "guest" | "member";
851
+ capabilities: {
852
+ deliverUnsolicited?: boolean | undefined;
853
+ cancelTurn?: boolean | undefined;
854
+ cancelTool?: boolean | undefined;
855
+ runtime?: string | undefined;
856
+ runtimeVersion?: string | undefined;
857
+ } | null;
858
+ controlRevision: number;
859
+ joinedAt: number;
860
+ paused: boolean;
861
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
862
+ revoked: boolean;
863
+ left: boolean;
864
+ muted?: boolean | undefined;
865
+ nameSource?: "profile" | "room" | undefined;
866
+ interruptRequested?: boolean | undefined;
867
+ acknowledgedRevision?: number | undefined;
868
+ }>, "many">;
869
+ policy: z.ZodObject<{
870
+ joinPolicy: z.ZodDefault<z.ZodEnum<["invite_only", "open_to_guests"]>>;
871
+ inviteRole: z.ZodOptional<z.ZodEnum<["member", "guest"]>>;
872
+ autoClose: z.ZodOptional<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
873
+ mode: z.ZodLiteral<"off">;
874
+ }, "strip", z.ZodTypeAny, {
875
+ mode: "off";
876
+ }, {
877
+ mode: "off";
878
+ }>, z.ZodObject<{
879
+ mode: z.ZodLiteral<"inactivity">;
880
+ afterMs: z.ZodNumber;
881
+ }, "strip", z.ZodTypeAny, {
882
+ mode: "inactivity";
883
+ afterMs: number;
884
+ }, {
885
+ mode: "inactivity";
886
+ afterMs: number;
887
+ }>, z.ZodObject<{
888
+ mode: z.ZodLiteral<"age">;
889
+ afterMs: z.ZodNumber;
890
+ }, "strip", z.ZodTypeAny, {
891
+ mode: "age";
892
+ afterMs: number;
893
+ }, {
894
+ mode: "age";
895
+ afterMs: number;
896
+ }>, z.ZodObject<{
897
+ mode: z.ZodLiteral<"agents_and_guests_left">;
898
+ }, "strip", z.ZodTypeAny, {
899
+ mode: "agents_and_guests_left";
900
+ }, {
901
+ mode: "agents_and_guests_left";
902
+ }>]>>;
903
+ localJoin: z.ZodOptional<z.ZodBoolean>;
904
+ maxParticipants: z.ZodNumber;
905
+ maxEventPayloadBytes: z.ZodNumber;
906
+ maxRetainedEventBytes: z.ZodNumber;
907
+ maxRetainedEvents: z.ZodNumber;
908
+ roomLifetimeMs: z.ZodNullable<z.ZodNumber>;
909
+ inviteLifetimeMs: z.ZodNullable<z.ZodNumber>;
910
+ exportWindowMs: z.ZodNumber;
911
+ connectTicketLifetimeMs: z.ZodNumber;
912
+ }, "strip", z.ZodTypeAny, {
913
+ joinPolicy: "invite_only" | "open_to_guests";
914
+ maxParticipants: number;
915
+ maxEventPayloadBytes: number;
916
+ maxRetainedEventBytes: number;
917
+ maxRetainedEvents: number;
918
+ roomLifetimeMs: number | null;
919
+ inviteLifetimeMs: number | null;
920
+ exportWindowMs: number;
921
+ connectTicketLifetimeMs: number;
922
+ autoClose?: {
923
+ mode: "off";
924
+ } | {
925
+ mode: "inactivity";
926
+ afterMs: number;
927
+ } | {
928
+ mode: "age";
929
+ afterMs: number;
930
+ } | {
931
+ mode: "agents_and_guests_left";
932
+ } | undefined;
933
+ inviteRole?: "guest" | "member" | undefined;
934
+ localJoin?: boolean | undefined;
935
+ }, {
936
+ maxParticipants: number;
937
+ maxEventPayloadBytes: number;
938
+ maxRetainedEventBytes: number;
939
+ maxRetainedEvents: number;
940
+ roomLifetimeMs: number | null;
941
+ inviteLifetimeMs: number | null;
942
+ exportWindowMs: number;
943
+ connectTicketLifetimeMs: number;
944
+ autoClose?: {
945
+ mode: "off";
946
+ } | {
947
+ mode: "inactivity";
948
+ afterMs: number;
949
+ } | {
950
+ mode: "age";
951
+ afterMs: number;
952
+ } | {
953
+ mode: "agents_and_guests_left";
954
+ } | undefined;
955
+ joinPolicy?: "invite_only" | "open_to_guests" | undefined;
956
+ inviteRole?: "guest" | "member" | undefined;
957
+ localJoin?: boolean | undefined;
958
+ }>;
959
+ }, "strip", z.ZodTypeAny, {
960
+ name: string;
961
+ expiresAt: number | null;
962
+ roomId: string;
963
+ createdAt: number;
964
+ closedAt: number | null;
965
+ lifecycle: "open" | "closed" | "expired" | "deleted";
966
+ policy: {
967
+ joinPolicy: "invite_only" | "open_to_guests";
968
+ maxParticipants: number;
969
+ maxEventPayloadBytes: number;
970
+ maxRetainedEventBytes: number;
971
+ maxRetainedEvents: number;
972
+ roomLifetimeMs: number | null;
973
+ inviteLifetimeMs: number | null;
974
+ exportWindowMs: number;
975
+ connectTicketLifetimeMs: number;
976
+ autoClose?: {
977
+ mode: "off";
978
+ } | {
979
+ mode: "inactivity";
980
+ afterMs: number;
981
+ } | {
982
+ mode: "age";
983
+ afterMs: number;
984
+ } | {
985
+ mode: "agents_and_guests_left";
986
+ } | undefined;
987
+ inviteRole?: "guest" | "member" | undefined;
988
+ localJoin?: boolean | undefined;
989
+ };
990
+ controlRevision: number;
991
+ latestSeq: number;
992
+ earliestSeq: number;
993
+ participants: {
994
+ participantId: string;
995
+ displayName: string;
996
+ kind: "agent" | "human";
997
+ role: "controller" | "guest" | "member";
998
+ capabilities: {
999
+ deliverUnsolicited: boolean;
1000
+ cancelTurn: boolean;
1001
+ cancelTool: boolean;
1002
+ runtime?: string | undefined;
1003
+ runtimeVersion?: string | undefined;
1004
+ } | null;
1005
+ controlRevision: number;
1006
+ joinedAt: number;
1007
+ paused: boolean;
1008
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
1009
+ revoked: boolean;
1010
+ left: boolean;
1011
+ muted?: boolean | undefined;
1012
+ nameSource?: "profile" | "room" | undefined;
1013
+ interruptRequested?: boolean | undefined;
1014
+ acknowledgedRevision?: number | undefined;
1015
+ }[];
1016
+ locked?: boolean | undefined;
1017
+ turnMode?: "sequential" | "parallel" | undefined;
1018
+ lastMessageAt?: number | null | undefined;
1019
+ autoCloseArmed?: boolean | undefined;
1020
+ autoCloseAt?: number | null | undefined;
1021
+ closeReason?: "inactivity" | "age" | "agents_and_guests_left" | "manual" | undefined;
1022
+ messageReceiptScope?: "recipient" | "members" | undefined;
1023
+ messageStagesSupported?: boolean | undefined;
1024
+ rejoinSupported?: boolean | undefined;
1025
+ renameSelfSupported?: boolean | undefined;
1026
+ adminRolesSupported?: boolean | undefined;
1027
+ inviteRoleSupported?: boolean | undefined;
1028
+ autoCloseSupported?: boolean | undefined;
1029
+ interruptSupported?: boolean | undefined;
1030
+ quotedMessagesSupported?: boolean | undefined;
1031
+ groupTurnsSupported?: boolean | undefined;
1032
+ workingStatusSupported?: boolean | undefined;
1033
+ }, {
1034
+ name: string;
1035
+ expiresAt: number | null;
1036
+ roomId: string;
1037
+ createdAt: number;
1038
+ closedAt: number | null;
1039
+ lifecycle: "open" | "closed" | "expired" | "deleted";
1040
+ policy: {
1041
+ maxParticipants: number;
1042
+ maxEventPayloadBytes: number;
1043
+ maxRetainedEventBytes: number;
1044
+ maxRetainedEvents: number;
1045
+ roomLifetimeMs: number | null;
1046
+ inviteLifetimeMs: number | null;
1047
+ exportWindowMs: number;
1048
+ connectTicketLifetimeMs: number;
1049
+ autoClose?: {
1050
+ mode: "off";
1051
+ } | {
1052
+ mode: "inactivity";
1053
+ afterMs: number;
1054
+ } | {
1055
+ mode: "age";
1056
+ afterMs: number;
1057
+ } | {
1058
+ mode: "agents_and_guests_left";
1059
+ } | undefined;
1060
+ joinPolicy?: "invite_only" | "open_to_guests" | undefined;
1061
+ inviteRole?: "guest" | "member" | undefined;
1062
+ localJoin?: boolean | undefined;
1063
+ };
1064
+ controlRevision: number;
1065
+ latestSeq: number;
1066
+ earliestSeq: number;
1067
+ participants: {
1068
+ participantId: string;
1069
+ displayName: string;
1070
+ kind: "agent" | "human";
1071
+ role: "controller" | "guest" | "member";
1072
+ capabilities: {
1073
+ deliverUnsolicited?: boolean | undefined;
1074
+ cancelTurn?: boolean | undefined;
1075
+ cancelTool?: boolean | undefined;
1076
+ runtime?: string | undefined;
1077
+ runtimeVersion?: string | undefined;
1078
+ } | null;
1079
+ controlRevision: number;
1080
+ joinedAt: number;
1081
+ paused: boolean;
1082
+ acknowledgedOutcome: "pause_requested" | "paused_between_turns" | "current_turn_cancelled" | "tool_cancellation_unknown" | "resumed" | "unsupported" | "disconnected" | null;
1083
+ revoked: boolean;
1084
+ left: boolean;
1085
+ muted?: boolean | undefined;
1086
+ nameSource?: "profile" | "room" | undefined;
1087
+ interruptRequested?: boolean | undefined;
1088
+ acknowledgedRevision?: number | undefined;
1089
+ }[];
1090
+ locked?: boolean | undefined;
1091
+ turnMode?: "sequential" | "parallel" | undefined;
1092
+ lastMessageAt?: number | null | undefined;
1093
+ autoCloseArmed?: boolean | undefined;
1094
+ autoCloseAt?: number | null | undefined;
1095
+ closeReason?: "inactivity" | "age" | "agents_and_guests_left" | "manual" | undefined;
1096
+ messageReceiptScope?: "recipient" | "members" | undefined;
1097
+ messageStagesSupported?: boolean | undefined;
1098
+ rejoinSupported?: boolean | undefined;
1099
+ renameSelfSupported?: boolean | undefined;
1100
+ adminRolesSupported?: boolean | undefined;
1101
+ inviteRoleSupported?: boolean | undefined;
1102
+ autoCloseSupported?: boolean | undefined;
1103
+ interruptSupported?: boolean | undefined;
1104
+ quotedMessagesSupported?: boolean | undefined;
1105
+ groupTurnsSupported?: boolean | undefined;
1106
+ workingStatusSupported?: boolean | undefined;
1107
+ }>;
1108
+ export type RoomSnapshot = z.infer<typeof RoomSnapshot>;
1109
+ //# sourceMappingURL=records.d.ts.map