@joe-broadhead/messaging 0.8.0 → 0.9.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 (50) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/dist/bin/messaging-mcp.js +202 -31
  3. package/dist/bin/messaging-relay.js +291 -43
  4. package/dist/bin/messaging.js +290 -32
  5. package/dist/bin/messagingd.js +1158 -138
  6. package/dist/lib/modules/core/agent/present.js +5 -0
  7. package/dist/lib/modules/core/agent-tools.js +12 -0
  8. package/dist/lib/modules/core/consent.js +54 -14
  9. package/dist/lib/modules/core/contact-card.js +3 -3
  10. package/dist/lib/modules/core/index.js +1 -1
  11. package/dist/lib/modules/core/jelly-host.js +3 -0
  12. package/dist/lib/modules/core/schema/common.js +2 -0
  13. package/dist/lib/modules/core/schema/consent.js +20 -3
  14. package/dist/lib/modules/core/schema/conv-frames.js +10 -3
  15. package/dist/lib/modules/core/schema/directory-frames.js +8 -3
  16. package/dist/lib/modules/core/schema/errors.js +3 -2
  17. package/dist/lib/modules/core/schema/ipc/consent.js +85 -10
  18. package/dist/lib/modules/core/schema/ipc/conversation-views.js +8 -1
  19. package/dist/lib/modules/core/schema/ipc/conversations.js +5 -1
  20. package/dist/lib/modules/core/schema/ipc/device.js +7 -0
  21. package/dist/lib/modules/core/schema/ipc/jelly.js +14 -7
  22. package/dist/lib/modules/core/schema/ipc/shapes.js +60 -1
  23. package/dist/lib/modules/core/schema/ipc.js +51 -3
  24. package/dist/lib/modules/core/version.js +1 -1
  25. package/dist/spec/messaging-v1.md +321 -49
  26. package/dist/types/core/agent/present.d.ts +1 -1
  27. package/dist/types/core/agent-tools.d.ts +32 -0
  28. package/dist/types/core/consent.d.ts +30 -7
  29. package/dist/types/core/contact-card.d.ts +3 -3
  30. package/dist/types/core/conversation-agent-tools.d.ts +21 -0
  31. package/dist/types/core/index.d.ts +1 -1
  32. package/dist/types/core/schema/common.d.ts +2 -0
  33. package/dist/types/core/schema/consent.d.ts +23 -2
  34. package/dist/types/core/schema/conv-frames.d.ts +6 -2
  35. package/dist/types/core/schema/directory-frames.d.ts +8 -3
  36. package/dist/types/core/schema/envelope.d.ts +2 -0
  37. package/dist/types/core/schema/errors.d.ts +2 -0
  38. package/dist/types/core/schema/ipc/consent.d.ts +377 -15
  39. package/dist/types/core/schema/ipc/conversation-views.d.ts +176 -0
  40. package/dist/types/core/schema/ipc/conversations.d.ts +368 -0
  41. package/dist/types/core/schema/ipc/device.d.ts +6 -0
  42. package/dist/types/core/schema/ipc/jelly.d.ts +14 -6
  43. package/dist/types/core/schema/ipc/shapes.d.ts +198 -0
  44. package/dist/types/core/schema/ipc/surfaces.d.ts +1 -0
  45. package/dist/types/core/schema/ipc/tasks.d.ts +2 -0
  46. package/dist/types/core/schema/ipc.d.ts +826 -3
  47. package/dist/types/core/schema/relay.d.ts +4 -0
  48. package/dist/types/core/version.d.ts +1 -1
  49. package/dist/types/ipc/server.d.ts +6 -0
  50. package/package.json +1 -1
@@ -86,8 +86,48 @@ export declare const GrantSetParams: z.ZodObject<{
86
86
  }, z.core.$strict>]>;
87
87
  }, z.core.$strict>;
88
88
  export type GrantSetParams = z.infer<typeof GrantSetParams>;
89
+ /**
90
+ * For an ask: `once` delivers it, guarded; `always` sets the sender's grant to `ask: "open"` (keeping its other
91
+ * levels), then delivers it, guarded. For a message request: `accept` sets the sender's grant to `chat: "open"`
92
+ * (keeping its other levels), files the request as their first line and sends them a card. For both: `decline`
93
+ * refuses it (`declined`); `block` sets the sender's grant to `chat: "blocked"` (keeping its other levels), then
94
+ * declines it. For a suggestion: `decline` dismisses it.
95
+ */
96
+ export declare const RequestAnswer: z.ZodEnum<{
97
+ accept: "accept";
98
+ decline: "decline";
99
+ once: "once";
100
+ always: "always";
101
+ block: "block";
102
+ }>;
103
+ export type RequestAnswer = z.infer<typeof RequestAnswer>;
104
+ /**
105
+ * A source-issued action on a held request (spec §8.2, "Action tokens"): `name` is the answer it gives, redeemed with
106
+ * `request.answer {id, answer: name, token}` on the connection that read it.
107
+ */
108
+ export declare const RequestAction: z.ZodObject<{
109
+ name: z.ZodEnum<{
110
+ accept: "accept";
111
+ decline: "decline";
112
+ once: "once";
113
+ always: "always";
114
+ block: "block";
115
+ }>;
116
+ token: z.ZodString;
117
+ }, z.core.$strict>;
118
+ export type RequestAction = z.infer<typeof RequestAction>;
89
119
  /** A request this device holds for its person to answer (spec §6.9, "Holds"): mail or a task to one of their agents. */
90
120
  export declare const AskRequest: z.ZodObject<{
121
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
122
+ name: z.ZodEnum<{
123
+ accept: "accept";
124
+ decline: "decline";
125
+ once: "once";
126
+ always: "always";
127
+ block: "block";
128
+ }>;
129
+ token: z.ZodString;
130
+ }, z.core.$strict>>>;
91
131
  id: z.ZodString;
92
132
  kind: z.ZodEnum<{
93
133
  message: "message";
@@ -111,6 +151,16 @@ export type AskRequest = z.infer<typeof AskRequest>;
111
151
  * write to them. `name`, `email` and `org` are the realm's verified profile of the sender, never the request's text.
112
152
  */
113
153
  export declare const ContactRequestView: z.ZodObject<{
154
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
155
+ name: z.ZodEnum<{
156
+ accept: "accept";
157
+ decline: "decline";
158
+ once: "once";
159
+ always: "always";
160
+ block: "block";
161
+ }>;
162
+ token: z.ZodString;
163
+ }, z.core.$strict>>>;
114
164
  id: z.ZodString;
115
165
  kind: z.ZodLiteral<"contact">;
116
166
  cid: z.ZodOptional<z.ZodString>;
@@ -138,6 +188,16 @@ export declare const ContactRequestView: z.ZodObject<{
138
188
  }, z.core.$strip>;
139
189
  export type ContactRequestView = z.infer<typeof ContactRequestView>;
140
190
  export declare const AgentInvitationRequest: z.ZodObject<{
191
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
192
+ name: z.ZodEnum<{
193
+ accept: "accept";
194
+ decline: "decline";
195
+ once: "once";
196
+ always: "always";
197
+ block: "block";
198
+ }>;
199
+ token: z.ZodString;
200
+ }, z.core.$strict>>>;
141
201
  kind: z.ZodLiteral<"agent-invitation">;
142
202
  id: z.ZodString;
143
203
  cid: z.ZodString;
@@ -152,6 +212,16 @@ export type AgentInvitationRequest = z.infer<typeof AgentInvitationRequest>;
152
212
  * dismisses it.
153
213
  */
154
214
  export declare const ContactSuggestion: z.ZodObject<{
215
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
216
+ name: z.ZodEnum<{
217
+ accept: "accept";
218
+ decline: "decline";
219
+ once: "once";
220
+ always: "always";
221
+ block: "block";
222
+ }>;
223
+ token: z.ZodString;
224
+ }, z.core.$strict>>>;
155
225
  id: z.ZodString;
156
226
  kind: z.ZodLiteral<"suggestion">;
157
227
  agent: z.ZodString;
@@ -161,6 +231,16 @@ export declare const ContactSuggestion: z.ZodObject<{
161
231
  export type ContactSuggestion = z.infer<typeof ContactSuggestion>;
162
232
  /** What `request.list` lists: asks to the person's agents, message requests, and contacts their agents suggest. */
163
233
  export declare const HeldRequest: z.ZodUnion<readonly [z.ZodObject<{
234
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
235
+ name: z.ZodEnum<{
236
+ accept: "accept";
237
+ decline: "decline";
238
+ once: "once";
239
+ always: "always";
240
+ block: "block";
241
+ }>;
242
+ token: z.ZodString;
243
+ }, z.core.$strict>>>;
164
244
  id: z.ZodString;
165
245
  kind: z.ZodEnum<{
166
246
  message: "message";
@@ -178,6 +258,16 @@ export declare const HeldRequest: z.ZodUnion<readonly [z.ZodObject<{
178
258
  at: z.ZodNumber;
179
259
  exp: z.ZodNumber;
180
260
  }, z.core.$strip>, z.ZodObject<{
261
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
262
+ name: z.ZodEnum<{
263
+ accept: "accept";
264
+ decline: "decline";
265
+ once: "once";
266
+ always: "always";
267
+ block: "block";
268
+ }>;
269
+ token: z.ZodString;
270
+ }, z.core.$strict>>>;
181
271
  id: z.ZodString;
182
272
  kind: z.ZodLiteral<"contact">;
183
273
  cid: z.ZodOptional<z.ZodString>;
@@ -203,12 +293,32 @@ export declare const HeldRequest: z.ZodUnion<readonly [z.ZodObject<{
203
293
  at: z.ZodNumber;
204
294
  exp: z.ZodNumber;
205
295
  }, z.core.$strip>, z.ZodObject<{
296
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
297
+ name: z.ZodEnum<{
298
+ accept: "accept";
299
+ decline: "decline";
300
+ once: "once";
301
+ always: "always";
302
+ block: "block";
303
+ }>;
304
+ token: z.ZodString;
305
+ }, z.core.$strict>>>;
206
306
  id: z.ZodString;
207
307
  kind: z.ZodLiteral<"suggestion">;
208
308
  agent: z.ZodString;
209
309
  email: z.ZodString;
210
310
  at: z.ZodNumber;
211
311
  }, z.core.$strip>, z.ZodObject<{
312
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
313
+ name: z.ZodEnum<{
314
+ accept: "accept";
315
+ decline: "decline";
316
+ once: "once";
317
+ always: "always";
318
+ block: "block";
319
+ }>;
320
+ token: z.ZodString;
321
+ }, z.core.$strict>>>;
212
322
  kind: z.ZodLiteral<"agent-invitation">;
213
323
  id: z.ZodString;
214
324
  cid: z.ZodString;
@@ -217,21 +327,6 @@ export declare const HeldRequest: z.ZodUnion<readonly [z.ZodObject<{
217
327
  at: z.ZodNumber;
218
328
  }, z.core.$strict>]>;
219
329
  export type HeldRequest = z.infer<typeof HeldRequest>;
220
- /**
221
- * For an ask: `once` delivers it, guarded; `always` sets the sender's grant to `ask: "open"` (keeping its other
222
- * levels), then delivers it, guarded. For a message request: `accept` sets the sender's grant to `chat: "open"`
223
- * (keeping its other levels), files the request as their first line and sends them a card. For both: `decline`
224
- * refuses it (`declined`); `block` sets the sender's grant to `chat: "blocked"` (keeping its other levels), then
225
- * declines it. For a suggestion: `decline` dismisses it.
226
- */
227
- export declare const RequestAnswer: z.ZodEnum<{
228
- accept: "accept";
229
- decline: "decline";
230
- once: "once";
231
- always: "always";
232
- block: "block";
233
- }>;
234
- export type RequestAnswer = z.infer<typeof RequestAnswer>;
235
330
  /** A message request's text: 1 to `LIMITS.requestChars` UTF-16 code units. */
236
331
  export declare const RequestText: z.ZodString;
237
332
  /**
@@ -263,6 +358,10 @@ export declare const PersonReach: z.ZodObject<{
263
358
  }, z.core.$strip>;
264
359
  export type PersonReach = z.infer<typeof PersonReach>;
265
360
  /** `request.answer`'s params, which `request.answer.preview` takes too (spec §8.2, "Previews"). */
361
+ /**
362
+ * `request.answer`'s params. `token` is the request's action for this `answer` (`RequestAction`); it answers that one
363
+ * request, so it never comes with `all`. Under a Jelly host it is required.
364
+ */
266
365
  export declare const RequestAnswerParams: z.ZodObject<{
267
366
  id: z.ZodString;
268
367
  answer: z.ZodEnum<{
@@ -273,6 +372,7 @@ export declare const RequestAnswerParams: z.ZodObject<{
273
372
  block: "block";
274
373
  }>;
275
374
  all: z.ZodOptional<z.ZodBoolean>;
375
+ token: z.ZodOptional<z.ZodString>;
276
376
  }, z.core.$strict>;
277
377
  /** `contact.request`'s params; its preview takes them with `text` optional (it reads only `email`). */
278
378
  export declare const ContactRequestParams: z.ZodObject<{
@@ -280,7 +380,227 @@ export declare const ContactRequestParams: z.ZodObject<{
280
380
  text: z.ZodString;
281
381
  suggestion: z.ZodOptional<z.ZodString>;
282
382
  }, z.core.$strict>;
383
+ /** A reach question (spec §6.9, "Reach choices"): `message` is "Who can message you", `ask` "How agents may ask yours". */
384
+ export declare const ReachGroupId: z.ZodEnum<{
385
+ message: "message";
386
+ ask: "ask";
387
+ }>;
388
+ export type ReachGroupId = z.infer<typeof ReachGroupId>;
389
+ /** An answer: Open, Ask me first (the default), Never. */
390
+ export declare const ReachValue: z.ZodEnum<{
391
+ never: "never";
392
+ ask: "ask";
393
+ open: "open";
394
+ }>;
395
+ export type ReachValue = z.infer<typeof ReachValue>;
396
+ export declare const ReachOption: z.ZodObject<{
397
+ value: z.ZodEnum<{
398
+ never: "never";
399
+ ask: "ask";
400
+ open: "open";
401
+ }>;
402
+ label: z.ZodString;
403
+ description: z.ZodString;
404
+ }, z.core.$strip>;
405
+ export type ReachOption = z.infer<typeof ReachOption>;
406
+ /**
407
+ * One question with its options. `value` is the person's choice, or null while they have made none and the relation
408
+ * defaults apply. `lapsed` is a choice a removed device of the person made, which lapsed with it (§6.9, "Signers")
409
+ * and waits for the person to choose again.
410
+ */
411
+ export declare const ReachGroup: z.ZodObject<{
412
+ id: z.ZodEnum<{
413
+ message: "message";
414
+ ask: "ask";
415
+ }>;
416
+ label: z.ZodString;
417
+ options: z.ZodArray<z.ZodObject<{
418
+ value: z.ZodEnum<{
419
+ never: "never";
420
+ ask: "ask";
421
+ open: "open";
422
+ }>;
423
+ label: z.ZodString;
424
+ description: z.ZodString;
425
+ }, z.core.$strip>>;
426
+ value: z.ZodNullable<z.ZodEnum<{
427
+ never: "never";
428
+ ask: "ask";
429
+ open: "open";
430
+ }>>;
431
+ lapsed: z.ZodOptional<z.ZodEnum<{
432
+ never: "never";
433
+ ask: "ask";
434
+ open: "open";
435
+ }>>;
436
+ }, z.core.$strip>;
437
+ export type ReachGroup = z.infer<typeof ReachGroup>;
438
+ /** `reach.get`'s result, and `reach.set`'s: both questions, and a `revision` that changes whenever either choice does. */
439
+ export declare const ReachSnapshot: z.ZodObject<{
440
+ revision: z.ZodString;
441
+ available: z.ZodBoolean;
442
+ groups: z.ZodArray<z.ZodObject<{
443
+ id: z.ZodEnum<{
444
+ message: "message";
445
+ ask: "ask";
446
+ }>;
447
+ label: z.ZodString;
448
+ options: z.ZodArray<z.ZodObject<{
449
+ value: z.ZodEnum<{
450
+ never: "never";
451
+ ask: "ask";
452
+ open: "open";
453
+ }>;
454
+ label: z.ZodString;
455
+ description: z.ZodString;
456
+ }, z.core.$strip>>;
457
+ value: z.ZodNullable<z.ZodEnum<{
458
+ never: "never";
459
+ ask: "ask";
460
+ open: "open";
461
+ }>>;
462
+ lapsed: z.ZodOptional<z.ZodEnum<{
463
+ never: "never";
464
+ ask: "ask";
465
+ open: "open";
466
+ }>>;
467
+ }, z.core.$strip>>;
468
+ }, z.core.$strip>;
469
+ export type ReachSnapshot = z.infer<typeof ReachSnapshot>;
470
+ /** `reach.set`'s params, which `reach.set.preview` takes too: the `revision` read, and only the declared answers that change. */
471
+ export declare const ReachSetParams: z.ZodObject<{
472
+ revision: z.ZodString;
473
+ changes: z.ZodObject<{
474
+ message: z.ZodOptional<z.ZodEnum<{
475
+ never: "never";
476
+ ask: "ask";
477
+ open: "open";
478
+ }>>;
479
+ ask: z.ZodOptional<z.ZodEnum<{
480
+ never: "never";
481
+ ask: "ask";
482
+ open: "open";
483
+ }>>;
484
+ }, z.core.$strict>;
485
+ }, z.core.$strict>;
486
+ export type ReachSetParams = z.infer<typeof ReachSetParams>;
487
+ /** The fixed words of the two questions, in `reach.get`'s order. */
488
+ export declare const REACH_QUESTIONS: readonly {
489
+ id: ReachGroupId;
490
+ label: string;
491
+ options: readonly ReachOption[];
492
+ }[];
283
493
  export declare const CONSENT_METHODS: {
494
+ /**
495
+ * The person's two reach choices (spec §6.9, "Reach choices"), each with its options and the current value (null:
496
+ * none made, the defaults apply), and a revision. Read-only.
497
+ */
498
+ readonly "reach.get": {
499
+ readonly params: z.ZodObject<{}, z.core.$strict>;
500
+ readonly result: z.ZodObject<{
501
+ revision: z.ZodString;
502
+ available: z.ZodBoolean;
503
+ groups: z.ZodArray<z.ZodObject<{
504
+ id: z.ZodEnum<{
505
+ message: "message";
506
+ ask: "ask";
507
+ }>;
508
+ label: z.ZodString;
509
+ options: z.ZodArray<z.ZodObject<{
510
+ value: z.ZodEnum<{
511
+ never: "never";
512
+ ask: "ask";
513
+ open: "open";
514
+ }>;
515
+ label: z.ZodString;
516
+ description: z.ZodString;
517
+ }, z.core.$strip>>;
518
+ value: z.ZodNullable<z.ZodEnum<{
519
+ never: "never";
520
+ ask: "ask";
521
+ open: "open";
522
+ }>>;
523
+ lapsed: z.ZodOptional<z.ZodEnum<{
524
+ never: "never";
525
+ ask: "ask";
526
+ open: "open";
527
+ }>>;
528
+ }, z.core.$strip>>;
529
+ }, z.core.$strip>;
530
+ };
531
+ /**
532
+ * Records the declared answers in `changes` as the person's relation grants, signed by this device and sent to
533
+ * their other devices, in one transaction; returns the new snapshot. `conflict` when `revision` is not the current
534
+ * one: nothing is changed, and the caller reads again.
535
+ */
536
+ readonly "reach.set": {
537
+ readonly params: z.ZodObject<{
538
+ revision: z.ZodString;
539
+ changes: z.ZodObject<{
540
+ message: z.ZodOptional<z.ZodEnum<{
541
+ never: "never";
542
+ ask: "ask";
543
+ open: "open";
544
+ }>>;
545
+ ask: z.ZodOptional<z.ZodEnum<{
546
+ never: "never";
547
+ ask: "ask";
548
+ open: "open";
549
+ }>>;
550
+ }, z.core.$strict>;
551
+ }, z.core.$strict>;
552
+ readonly result: z.ZodObject<{
553
+ revision: z.ZodString;
554
+ available: z.ZodBoolean;
555
+ groups: z.ZodArray<z.ZodObject<{
556
+ id: z.ZodEnum<{
557
+ message: "message";
558
+ ask: "ask";
559
+ }>;
560
+ label: z.ZodString;
561
+ options: z.ZodArray<z.ZodObject<{
562
+ value: z.ZodEnum<{
563
+ never: "never";
564
+ ask: "ask";
565
+ open: "open";
566
+ }>;
567
+ label: z.ZodString;
568
+ description: z.ZodString;
569
+ }, z.core.$strip>>;
570
+ value: z.ZodNullable<z.ZodEnum<{
571
+ never: "never";
572
+ ask: "ask";
573
+ open: "open";
574
+ }>>;
575
+ lapsed: z.ZodOptional<z.ZodEnum<{
576
+ never: "never";
577
+ ask: "ask";
578
+ open: "open";
579
+ }>>;
580
+ }, z.core.$strip>>;
581
+ }, z.core.$strip>;
582
+ };
583
+ /** What `reach.set` with these params would do, in one fixed sentence; checks them the same way (`conflict` too); changes nothing. */
584
+ readonly "reach.set.preview": {
585
+ readonly params: z.ZodObject<{
586
+ revision: z.ZodString;
587
+ changes: z.ZodObject<{
588
+ message: z.ZodOptional<z.ZodEnum<{
589
+ never: "never";
590
+ ask: "ask";
591
+ open: "open";
592
+ }>>;
593
+ ask: z.ZodOptional<z.ZodEnum<{
594
+ never: "never";
595
+ ask: "ask";
596
+ open: "open";
597
+ }>>;
598
+ }, z.core.$strict>;
599
+ }, z.core.$strict>;
600
+ readonly result: z.ZodObject<{
601
+ sentence: z.ZodString;
602
+ }, z.core.$strip>;
603
+ };
284
604
  /** This person's grants, newest first, and the review list. With `subject`, only that subject's. */
285
605
  readonly "grant.list": {
286
606
  readonly params: z.ZodObject<{
@@ -430,6 +750,16 @@ export declare const CONSENT_METHODS: {
430
750
  readonly params: z.ZodObject<{}, z.core.$strict>;
431
751
  readonly result: z.ZodObject<{
432
752
  requests: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
753
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
754
+ name: z.ZodEnum<{
755
+ accept: "accept";
756
+ decline: "decline";
757
+ once: "once";
758
+ always: "always";
759
+ block: "block";
760
+ }>;
761
+ token: z.ZodString;
762
+ }, z.core.$strict>>>;
433
763
  id: z.ZodString;
434
764
  kind: z.ZodEnum<{
435
765
  message: "message";
@@ -447,6 +777,16 @@ export declare const CONSENT_METHODS: {
447
777
  at: z.ZodNumber;
448
778
  exp: z.ZodNumber;
449
779
  }, z.core.$strip>, z.ZodObject<{
780
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
781
+ name: z.ZodEnum<{
782
+ accept: "accept";
783
+ decline: "decline";
784
+ once: "once";
785
+ always: "always";
786
+ block: "block";
787
+ }>;
788
+ token: z.ZodString;
789
+ }, z.core.$strict>>>;
450
790
  id: z.ZodString;
451
791
  kind: z.ZodLiteral<"contact">;
452
792
  cid: z.ZodOptional<z.ZodString>;
@@ -472,12 +812,32 @@ export declare const CONSENT_METHODS: {
472
812
  at: z.ZodNumber;
473
813
  exp: z.ZodNumber;
474
814
  }, z.core.$strip>, z.ZodObject<{
815
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
816
+ name: z.ZodEnum<{
817
+ accept: "accept";
818
+ decline: "decline";
819
+ once: "once";
820
+ always: "always";
821
+ block: "block";
822
+ }>;
823
+ token: z.ZodString;
824
+ }, z.core.$strict>>>;
475
825
  id: z.ZodString;
476
826
  kind: z.ZodLiteral<"suggestion">;
477
827
  agent: z.ZodString;
478
828
  email: z.ZodString;
479
829
  at: z.ZodNumber;
480
830
  }, z.core.$strip>, z.ZodObject<{
831
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
832
+ name: z.ZodEnum<{
833
+ accept: "accept";
834
+ decline: "decline";
835
+ once: "once";
836
+ always: "always";
837
+ block: "block";
838
+ }>;
839
+ token: z.ZodString;
840
+ }, z.core.$strict>>>;
481
841
  kind: z.ZodLiteral<"agent-invitation">;
482
842
  id: z.ZodString;
483
843
  cid: z.ZodString;
@@ -503,6 +863,7 @@ export declare const CONSENT_METHODS: {
503
863
  block: "block";
504
864
  }>;
505
865
  all: z.ZodOptional<z.ZodBoolean>;
866
+ token: z.ZodOptional<z.ZodString>;
506
867
  }, z.core.$strict>;
507
868
  readonly result: z.ZodObject<{
508
869
  answered: z.ZodArray<z.ZodString>;
@@ -526,6 +887,7 @@ export declare const CONSENT_METHODS: {
526
887
  block: "block";
527
888
  }>;
528
889
  all: z.ZodOptional<z.ZodBoolean>;
890
+ token: z.ZodOptional<z.ZodString>;
529
891
  }, z.core.$strict>;
530
892
  readonly result: z.ZodObject<{
531
893
  kind: z.ZodEnum<{