@vercel/board 0.16.0 → 0.18.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 (130) hide show
  1. package/README.md +27 -27
  2. package/dist/{a2-C41hD8SF.mjs → a2-ChRLRupa.mjs} +969 -25
  3. package/dist/access.d.mts +1 -1
  4. package/dist/access.mjs +3 -3
  5. package/dist/{actors-DjMeZpnU.mjs → actors-BOamkEuz.mjs} +3 -73
  6. package/dist/attempts-CLG840Oj.mjs +20 -0
  7. package/dist/{auth-COzc09sn.mjs → auth-Drg9FiC2.mjs} +225 -2
  8. package/dist/backend-B-SJ7p6p.d.mts +680 -0
  9. package/dist/backend-a2/contract.d.mts +873 -2
  10. package/dist/backend-a2/contract.mjs +2 -2
  11. package/dist/backend-a2/scheduler-local.d.mts +1 -1
  12. package/dist/backend-a2/scheduler-local.mjs +1 -1
  13. package/dist/backend-a2/scheduler-qstash.d.mts +78 -1
  14. package/dist/backend-a2/scheduler-qstash.mjs +521 -1
  15. package/dist/backend-a2/scheduler-vercel.d.mts +37 -1
  16. package/dist/backend-a2/scheduler-vercel.mjs +203 -1
  17. package/dist/backend-a2/store-memory.d.mts +2 -2
  18. package/dist/backend-a2/store-memory.mjs +3 -3
  19. package/dist/backend-a2/store-postgres.d.mts +1 -1
  20. package/dist/backend-a2/store-postgres.mjs +2850 -2
  21. package/dist/backend-a2/store-redis-http.d.mts +1 -1
  22. package/dist/backend-a2/store-redis-http.mjs +490 -2
  23. package/dist/backend-a2/store-redis.d.mts +10 -2
  24. package/dist/backend-a2/store-redis.mjs +51 -2
  25. package/dist/backend-a2/store-sqlite.d.mts +1 -1
  26. package/dist/backend-a2/store-sqlite.mjs +3 -3
  27. package/dist/backend-a2.d.mts +2706 -3
  28. package/dist/backend-a2.mjs +1 -1
  29. package/dist/{backend-http-Bid7RIpC.d.mts → backend-http-7cNb8nJI.d.mts} +10 -3
  30. package/dist/{backend-http-0roEmjl0.mjs → backend-http-CMlL3yq3.mjs} +2 -2
  31. package/dist/{backend-http-BVRno-ca.mjs → backend-http-Ddzd5kTS.mjs} +32 -3
  32. package/dist/backend-http.d.mts +1 -1
  33. package/dist/backend-http.mjs +1 -1
  34. package/dist/backend-http.node.d.mts +1 -1
  35. package/dist/backend-http.node.mjs +1 -1
  36. package/dist/{chat-provider-XCnQlxq6.d.mts → chat-provider-DNJQyajS.d.mts} +16 -4
  37. package/dist/{chat-provider-jFSeyNmB.mjs → chat-provider-YHy-WbrB.mjs} +15 -9
  38. package/dist/cli.mjs +30 -10
  39. package/dist/{client-DGDPaN7U.mjs → client-BA-J7usH.mjs} +10 -2
  40. package/dist/{conformance-DRR23YNy.mjs → conformance-CT5EeHeC.mjs} +5 -2
  41. package/dist/conformance.d.mts +1 -1
  42. package/dist/conformance.mjs +1 -1
  43. package/dist/{engine-Bir5s8ts.mjs → engine-D0oBUBEK.mjs} +249 -163
  44. package/dist/events-CewD4kw7.mjs +75 -0
  45. package/dist/{exports-Dvc1o52I.mjs → exports-CgjfMrQ-.mjs} +35 -32
  46. package/dist/exports-ZsgjzEnM.d.mts +4 -0
  47. package/dist/external-BV_cUncs.mjs +151 -0
  48. package/dist/folds-CRYY14kc.d.mts +534 -0
  49. package/dist/{reducers-mUPFuFJV.mjs → folds-Dyjput8M.mjs} +6 -73
  50. package/dist/ids-C6AYo1bu.mjs +31 -0
  51. package/dist/index.d.mts +4 -4
  52. package/dist/{index.default-Bkg77Pxn.mjs → index.default-C5Cpz3sa.mjs} +1 -1
  53. package/dist/index.mjs +5 -5
  54. package/dist/index.node.d.mts +4 -4
  55. package/dist/index.node.mjs +3 -3
  56. package/dist/inspect/app.js +31 -31
  57. package/dist/inspect/engine.js +5 -5
  58. package/dist/internal-CvsrprnU-CRY89I-b.mjs +203 -0
  59. package/dist/{local-Cr_dSjvs.mjs → local-DhkrAqPP.mjs} +1 -1
  60. package/dist/mentions-CB6ShY4R.mjs +72 -0
  61. package/dist/{targets-yM5JBUgr.mjs → middleware-CqaCwucP.mjs} +1 -33
  62. package/dist/platform-B4TnJtWu-CwcTyKg2.mjs +32 -0
  63. package/dist/{project-CFiArraX.mjs → project-DMDST9kl.mjs} +1 -1
  64. package/dist/{provider-BGjz-mDa.d.mts → provider-B0b9Qxw4.d.mts} +170 -40
  65. package/dist/provider-B3DpYSDq.mjs +220 -0
  66. package/dist/redis-tables-DN9PfIDi.mjs +3897 -0
  67. package/dist/reducer-CYPHsSmd-BQIfozGi.d.mts +170 -0
  68. package/dist/reducer-CjmvZSAb-D_OSISmj.mjs +74 -0
  69. package/dist/{contract-CuJmlrhw.mjs → reducers-BFmIXilu.mjs} +260 -287
  70. package/dist/retryable-lazy-DZWmHpii-Bye-W8q7.mjs +19 -0
  71. package/dist/scheduler-task-X1SToDjP-BVoWuInI.mjs +69 -0
  72. package/dist/{serve-BsOOc-6_.mjs → serve-BGYw0uNL.mjs} +5 -5
  73. package/dist/{server-jwPY7_wi.mjs → server-DPxBSogx.mjs} +4 -4
  74. package/dist/server-DtFrWxi3-Boa6gdWO.mjs +3602 -0
  75. package/dist/server-qgez0Xny-D5mLfqFQ.d.mts +385 -0
  76. package/dist/{serving-BNbzc96L.mjs → serving-CNkgUPW1.mjs} +1 -1
  77. package/dist/session-clear-wHd5GCpZ-BnKSxReK.mjs +51 -0
  78. package/dist/{sql-DbiEnqM0.mjs → sql-U9WTxrwJ.mjs} +2 -2
  79. package/dist/{sqlite-db-Cbj03vmp.mjs → sqlite-db-Ds4majtT.mjs} +1 -1
  80. package/dist/store-D0MhBvg6-4Z2L0Kqd.d.mts +530 -0
  81. package/dist/store-N8PXxDAS-BWBgzBHp.mjs +5 -0
  82. package/dist/store-codec-DwrWlgQx-CYxGW0aD.mjs +61 -0
  83. package/dist/store-memory-Bas9Uq5C.mjs +872 -0
  84. package/dist/store-memory-ZLiZbH3R.mjs +2 -0
  85. package/dist/store-polling-BZt2Rf3D-BiEM6_HB.mjs +148 -0
  86. package/dist/store-presence-polling-JuAy2Ck2-CYpuK75X.mjs +109 -0
  87. package/dist/store-sqlite-BmwL3pUR.mjs +2 -0
  88. package/dist/store-sqlite-CxxPCcCT.mjs +1053 -0
  89. package/dist/stream-buffer-DrTyiIuo-BKy-vI14.mjs +53 -0
  90. package/dist/sync-github.d.mts +24 -17
  91. package/dist/sync-github.mjs +89 -22
  92. package/dist/sync-kapso.d.mts +15 -13
  93. package/dist/sync-kapso.mjs +17 -14
  94. package/dist/sync-linear.d.mts +219 -0
  95. package/dist/sync-linear.mjs +311 -0
  96. package/dist/sync-slack.d.mts +12 -17
  97. package/dist/sync-slack.mjs +54 -42
  98. package/dist/sync.chat.d.mts +1 -1
  99. package/dist/sync.chat.mjs +1 -1
  100. package/dist/sync.d.mts +3 -3
  101. package/dist/sync.mjs +5 -4
  102. package/dist/targets-C-wdR5wP.mjs +33 -0
  103. package/dist/{tokens-DKLn5P9B.mjs → tokens-DhuzKzAl.mjs} +1 -1
  104. package/dist/{types-BHCjTZdB.d.mts → types-8yq2VnKI.d.mts} +2 -2
  105. package/dist/{users-Dls7_ANV.mjs → users-yryHKFMo.mjs} +2 -2
  106. package/dist/{watch-spec-W0c7ypHJ.mjs → watchers-hash-RLtnSF-t.mjs} +233 -28
  107. package/docs/01-board/01-mounting.md +1 -1
  108. package/docs/02-sync/01-overview.md +72 -48
  109. package/docs/02-sync/02-functions.md +398 -0
  110. package/docs/02-sync/03-slack.md +30 -25
  111. package/docs/02-sync/04-github.md +62 -26
  112. package/docs/02-sync/05-whatsapp.md +23 -19
  113. package/docs/02-sync/06-providers.md +60 -27
  114. package/docs/02-sync/07-linear.md +129 -0
  115. package/docs/03-guides/04-triage.md +1 -1
  116. package/docs/04-reference/01-cli.md +26 -6
  117. package/docs/04-reference/02-board.md +18 -5
  118. package/docs/04-reference/03-http.md +5 -2
  119. package/docs/04-reference/05-conformance.md +1 -1
  120. package/docs/index.md +5 -10
  121. package/package.json +31 -6
  122. package/dist/a2-D24cvwpN.d.mts +0 -3359
  123. package/dist/access-CJU2-vaa.mjs +0 -226
  124. package/dist/attempts-Bxp9KgPf.mjs +0 -919
  125. package/dist/exports-DLiE7fLY.d.mts +0 -4
  126. package/dist/provider-CuewcDNZ.mjs +0 -205
  127. package/dist/redis-tables-B35vv4CZ.mjs +0 -842
  128. package/dist/reducers-B_vUGQRp.d.mts +0 -1172
  129. package/dist/watchers-hash-CLjsa6od.mjs +0 -225
  130. package/docs/02-sync/02-callbacks.md +0 -265
@@ -1,3359 +0,0 @@
1
- import { t as Access } from "./access-CV96SYgr.mjs";
2
- import { m as RuleFunction, n as AccessRule, r as Authenticate, s as Granted, t as AccessFunction, u as Known } from "./auth-CU56Q2Xh.mjs";
3
- import { i as Attachment, o as Author, p as Labels } from "./schemas-CWxs3ECJ.mjs";
4
- import { g as ExternalEvent, t as Actor } from "./reducers-B_vUGQRp.mjs";
5
- import { $ as InboxAckBody, Bt as SyncCodeView, D as BoardClient, Ft as SourceReadQuery, G as Discovery, Gt as SyncFindView, H as BoardEventView, Ht as SyncCopiesView, It as SyncAccountBody, J as EventsQuery, Jt as SyncReceiptBody, K as EditBody, Kt as SyncImportBody, Ot as ScheduleView, Pt as SourceRead, Q as IdentityView, Qt as SyncUnlinkBody, St as RegistrationView, Tt as ScheduleBody, U as ChannelView, Vt as SyncCopiesQuery, Wt as SyncFindQuery, Xt as SyncRootsQuery, Zt as SyncThreadView, at as LabelBody, ct as MatchView, dt as MessageView, en as ThreadView, et as InboxEntry, ft as MessagesPage, gt as PostBody, h as SyncProvider, ht as PersonView, in as TypingBody, it as InboxQuery, j as ProfileOption, kt as SchedulesQuery, lt as MatchesQuery, nn as ThreadsQuery, nt as InboxNextQuery, on as UploadStartBody, pt as MessagesQuery, q as EventsPage, rt as InboxPushBody, sn as UploadTicket, st as LinkedAccount, tn as ThreadsPage, tt as InboxItem, ut as Me, xt as RegisterBody, yt as ReactBody, z as AckBody, zt as SyncCodeBody } from "./provider-BGjz-mDa.mjs";
6
- import { t as BoardStore } from "./types-BHCjTZdB.mjs";
7
- import { t as BlobStore } from "./blob-C0J3wbGv.mjs";
8
- import { z } from "zod";
9
- import { ContractEvent } from "experimental-a2";
10
- import { A2Scheduler, A2Store } from "experimental-a2/server";
11
- //#region src/api/protocol.d.ts
12
- type Input<S extends z.ZodType> = NonNullable<z.output<S>>;
13
- type Id = {
14
- id: string;
15
- };
16
- type Key = {
17
- key: string;
18
- };
19
- type Nothing = Record<string, never>;
20
- /**
21
- * The protocol, method by method: what each takes and what it answers, as the wire carries them.
22
- * board() serves each at its route in `routes` and calls the backend's method of the same name.
23
- */
24
- type Protocol = {
25
- /** Where the board is and what it syncs, for a client to mint a token from: it needs none itself. */
26
- discovery: {
27
- input: Nothing;
28
- output: Discovery;
29
- };
30
- me: {
31
- input: Nothing;
32
- output: Me;
33
- };
34
- channels: {
35
- input: Nothing;
36
- output: {
37
- channels: ChannelView[];
38
- cursor: string;
39
- };
40
- };
41
- actors: {
42
- input: Nothing;
43
- output: {
44
- actors: (Actor & {
45
- person?: PersonView;
46
- })[];
47
- cursor: string;
48
- };
49
- };
50
- identity: {
51
- input: Nothing;
52
- output: IdentityView;
53
- };
54
- messages: {
55
- input: Input<typeof MessagesQuery>;
56
- output: MessagesPage;
57
- };
58
- threads: {
59
- input: Input<typeof ThreadsQuery>;
60
- output: ThreadsPage;
61
- };
62
- message: {
63
- input: Id;
64
- output: ThreadView;
65
- };
66
- post: {
67
- input: Input<typeof PostBody>;
68
- output: {
69
- message: MessageView;
70
- unknownMentions?: string[];
71
- };
72
- };
73
- /** The caller's own post with client ID `id`, as it landed: 404 `post_not_found` when there's none. */
74
- posted: {
75
- input: Id;
76
- output: {
77
- message: MessageView;
78
- };
79
- };
80
- edit: {
81
- input: Id & Input<typeof EditBody>;
82
- output: {
83
- ok: true;
84
- unknownMentions?: string[];
85
- };
86
- };
87
- delete: {
88
- input: Id;
89
- output: {
90
- ok: true;
91
- };
92
- };
93
- react: {
94
- input: Id & Input<typeof ReactBody>;
95
- output: {
96
- ok: true;
97
- };
98
- };
99
- label: {
100
- input: Id & Input<typeof LabelBody>;
101
- output: {
102
- ok: true;
103
- };
104
- };
105
- schedule: {
106
- input: Input<typeof ScheduleBody>;
107
- output: {
108
- schedule: ScheduleView;
109
- unknownMentions?: string[];
110
- };
111
- };
112
- schedules: {
113
- input: Input<typeof SchedulesQuery>;
114
- output: {
115
- schedules: ScheduleView[];
116
- };
117
- };
118
- cancelSchedule: {
119
- input: Id;
120
- output: {
121
- schedule: ScheduleView;
122
- canceled: boolean;
123
- };
124
- };
125
- upload: {
126
- input: {
127
- data: Uint8Array;
128
- name: string | null;
129
- type: string | null;
130
- };
131
- output: {
132
- attachment: Attachment;
133
- };
134
- };
135
- attachment: {
136
- input: Id;
137
- output: {
138
- attachment: Attachment;
139
- data: Uint8Array | ReadableStream<Uint8Array>;
140
- };
141
- };
142
- /** A direct upload's ticket: where to `PUT` a file too big for `upload`. 501 `no_direct_uploads` when the blob store can't sign one. */
143
- uploadStart: {
144
- input: Input<typeof UploadStartBody>;
145
- output: UploadTicket;
146
- };
147
- /** The attachment, once the bytes are in the store: 409 `not_uploaded` before. Finishing one twice answers the same. */
148
- uploadFinish: {
149
- input: Id;
150
- output: {
151
- attachment: Attachment;
152
- };
153
- };
154
- watchers: {
155
- input: Nothing;
156
- output: {
157
- watchers: RegistrationView[];
158
- };
159
- };
160
- register: {
161
- input: Input<typeof RegisterBody>;
162
- output: RegistrationView;
163
- };
164
- matches: {
165
- input: Input<typeof MatchesQuery>;
166
- output: {
167
- matches: MatchView[];
168
- };
169
- };
170
- ack: {
171
- input: Id & Input<typeof AckBody>;
172
- output: {
173
- ok: true;
174
- };
175
- };
176
- /** Long-polls with `wait`. board() serves SSE from it, so a backend has one way to read events. */
177
- events: {
178
- input: Input<typeof EventsQuery>;
179
- output: EventsPage;
180
- };
181
- /** Typing in the platform threads the message's thread is synced to: needs `post` there. Answers the threads that took it. */
182
- typing: {
183
- input: Id & Input<typeof TypingBody>;
184
- output: {
185
- targets: string[];
186
- };
187
- };
188
- /** A platform channel or thread, read with sync entry `key`'s app where that sync runs: needs `manage` everywhere. */
189
- readSource: {
190
- input: Key & Input<typeof SourceReadQuery>;
191
- output: SourceRead;
192
- };
193
- /**
194
- * A platform's write as its platform author, idempotent per platform event. `dropped`: the
195
- * middleware kept a post or an edit off the board, and what it responded, for sync to tell the
196
- * author on the platform.
197
- */
198
- syncImport: {
199
- input: Input<typeof SyncImportBody>;
200
- output: {
201
- message: string | null;
202
- dropped?: string[];
203
- };
204
- };
205
- /** A delivery, its files, a failure, or a thread's new target. `attached` is false for a target the thread had. */
206
- syncReceipt: {
207
- input: Input<typeof SyncReceiptBody>;
208
- output: {
209
- ok: true;
210
- attached?: boolean;
211
- };
212
- };
213
- syncThread: {
214
- input: {
215
- thread: string;
216
- };
217
- output: SyncThreadView;
218
- };
219
- syncFind: {
220
- input: Input<typeof SyncFindQuery>;
221
- output: SyncFindView;
222
- };
223
- /** Messages' copies on platforms that the caller's sync recorded, by target: another sync's never show. */
224
- syncCopies: {
225
- input: Input<typeof SyncCopiesQuery>;
226
- output: SyncCopiesView;
227
- };
228
- syncRoots: {
229
- input: Input<typeof SyncRootsQuery>;
230
- output: {
231
- roots: MessageView[];
232
- };
233
- };
234
- /** Platform events into the caller's inbox, deduplicated by their platform IDs. */
235
- inboxPush: {
236
- input: Key & Input<typeof InboxPushBody>;
237
- output: {
238
- ok: true;
239
- };
240
- };
241
- /** The caller's next inbox events, leased, one platform thread at a time and in order. */
242
- inboxNext: {
243
- input: Key & Input<typeof InboxNextQuery>;
244
- output: {
245
- items: InboxItem[];
246
- };
247
- };
248
- inboxAck: {
249
- input: Key & Id & Input<typeof InboxAckBody>;
250
- output: {
251
- ok: true;
252
- };
253
- };
254
- /** Raw platform events, newest first, for debugging sync. */
255
- inbox: {
256
- input: Key & Input<typeof InboxQuery>;
257
- output: {
258
- events: InboxEntry[];
259
- };
260
- };
261
- /** A code for linking the caller's account, and the sign-in that carries it when the entry signs people in. */
262
- syncCode: {
263
- input: Input<typeof SyncCodeBody>;
264
- output: SyncCodeView;
265
- };
266
- /** 404 `bad_code` for a code that isn't live. */
267
- syncAccount: {
268
- input: Input<typeof SyncAccountBody>;
269
- output: {
270
- person: string;
271
- link: LinkedAccount;
272
- };
273
- };
274
- syncUnlink: {
275
- input: Input<typeof SyncUnlinkBody>;
276
- output: {
277
- ok: true;
278
- };
279
- };
280
- };
281
- type Method = keyof Protocol;
282
- //#endregion
283
- //#region src/server/targets.d.ts
284
- /** A sync target, resolved: a platform channel to start a thread in, or a thread to join. */
285
- type SyncTarget = {
286
- target: string;
287
- kind: 'channel' | 'thread';
288
- };
289
- //#endregion
290
- //#region src/server/errors.d.ts
291
- declare class HttpError extends Error {
292
- readonly status: number;
293
- readonly code: string;
294
- constructor(status: number, code: string, message: string);
295
- }
296
- //#endregion
297
- //#region src/server/middleware.d.ts
298
- /** Where a write came from, as the middleware sees it. */
299
- type WriteSource =
300
- /** The HTTP API: the CLI, the SDK, scripts, CI. */
301
- {
302
- kind: 'api';
303
- } |
304
- /** A synced platform's event, or a sync callback's own writes. `thread` is the platform thread. */
305
- {
306
- kind: 'sync';
307
- key: string;
308
- platform: string;
309
- channel: string;
310
- thread: string;
311
- } |
312
- /** The board's handle in this deployment: `team.post(…)`, or `team.as(name).post(…)`. `name` is null for the handle itself. */
313
- {
314
- kind: 'client';
315
- name: string | null;
316
- } |
317
- /** A watcher's in-process client. */
318
- {
319
- kind: 'watcher';
320
- id: string;
321
- } |
322
- /** A scheduled message's send. */
323
- {
324
- kind: 'schedule';
325
- id: number;
326
- };
327
- /** The message a write would put on the board. `re` is its thread's root, and IDs are as clients see them. */
328
- type Write = {
329
- kind: 'post';
330
- channel: string;
331
- re: string | null;
332
- text: string;
333
- labels: Labels;
334
- attachments: readonly Attachment[];
335
- } | {
336
- kind: 'edit';
337
- id: string;
338
- channel: string;
339
- re: string | null;
340
- text: string;
341
- };
342
- /** What `next` may change before the write lands. Labels apply to posts only. */
343
- type WritePatch = {
344
- text?: string;
345
- labels?: Labels;
346
- };
347
- type MiddlewareContext = {
348
- write: Readonly<Write>;
349
- /** Who's writing. */
350
- author: Readonly<Actor>;
351
- source: Readonly<WriteSource>;
352
- /**
353
- * What to tell whoever wrote it when the write is dropped, where they wrote it from: a reply in
354
- * their platform thread for sync, the error the API answers with otherwise.
355
- */
356
- respond(text: string): Promise<void>;
357
- /** The board, acting as `board:middleware`. Its writes skip the middleware. */
358
- board: Board;
359
- /**
360
- * Hands the write to the next middleware, and after the last one, to the board.
361
- * Not calling it drops the write, and so does emptying a write that has no files.
362
- */
363
- next(patch?: WritePatch): Promise<void>;
364
- };
365
- type Middleware = (context: MiddlewareContext) => unknown;
366
- /** A write the middleware didn't let through: the API answers 422 with what it responded. */
367
- declare class DroppedError extends HttpError {
368
- /** What the middleware responded, in order: none when it dropped the write without a word. */
369
- readonly responses: readonly string[];
370
- constructor(responses: readonly string[]);
371
- }
372
- //#endregion
373
- //#region src/server/writes.d.ts
374
- /**
375
- * Where a write came from: `middleware` is the middleware's own client, which skips it, and
376
- * `engine` is sync's own lookups and receipts.
377
- */
378
- type Via = WriteSource | {
379
- kind: 'middleware';
380
- } | {
381
- kind: 'engine';
382
- };
383
- /**
384
- * How a write reaches the middleware: where it's from, and how to answer there. `schedule` marks a
385
- * schedule's send, which a backend's own schedules set in-process: no request carries it.
386
- */
387
- type WriteOrigin = {
388
- via?: Via;
389
- respond?: (text: string) => Promise<void>;
390
- schedule?: {
391
- id: number;
392
- n: number;
393
- };
394
- /**
395
- * The targets a new root's channel syncs with, as board()'s sync resolved them, so they land with
396
- * it. Only board() sets it, in-process; sync records them later for a root that came another way.
397
- */
398
- config?: SyncTarget[];
399
- };
400
- //#endregion
401
- //#region src/server/policy.d.ts
402
- /** Who may use a board, and what they may do: `board()`'s options for it. */
403
- type PolicyOptions = {
404
- /**
405
- * Who a request is: `oidcTokens()` from `@vercel/board/access` by default, which checks its bearer token
406
- * for the board's URL (pass it `local` for `vb serve`'s, or test issuers). Or a host's own
407
- * verifier, `(request) => ({ id, kind, handle })`: who the request is in the board's ID scheme,
408
- * from its credential or its headers (a session cookie). It replaces the built-in one, so no
409
- * token's audience or the board's own project counts then, unless it calls `oidcTokens()` itself.
410
- * Null when it recognizes nothing; to reject, return or throw a `Response`.
411
- */
412
- authenticate?: Authenticate;
413
- /**
414
- * Who besides the board's people and its own deployments in the environment it runs in may use
415
- * it, and what they may do in each channel: `vercelProject()`, `githubActions()`, `oidc()` from
416
- * `@vercel/board/access`, and functions of your own, `(principal) => can`, for principals your
417
- * `authenticate` returns. The first rule that matches decides; a function's undefined leaves it to
418
- * the next. A production board's previews need a rule, as
419
- * `vercelProject({ project: 'self', environments: ['preview'], can })`.
420
- *
421
- * Or a host's own model: one function of the principal its `authenticate` returned, giving what it
422
- * may do in each channel (`'all'`, `['read']`, `{ 'dev/': ['post'] }`), or null for nothing.
423
- * Nothing else is trusted then, not the board's own people or deployments.
424
- *
425
- * On `http()`, a board with none serves no requests but wake-ups and webhooks; with one, it serves
426
- * its callers within it, as its project on the board it uses.
427
- */
428
- access?: readonly (AccessRule | RuleFunction)[] | AccessFunction;
429
- /**
430
- * The board's Vercel project: `self` in the rules, whose people's development tokens it takes,
431
- * and what discovery names for clients to mint them. Defaults to `VERCEL_PROJECT_ID` or
432
- * `.vercel/project.json`.
433
- */
434
- project?: {
435
- id: string;
436
- teamId?: string;
437
- };
438
- };
439
- //#endregion
440
- //#region src/server/watch.d.ts
441
- /** What a watcher's `run` gets. */
442
- type WatcherContext = {
443
- /** Exactly what `vb tail --json` prints. */
444
- event: BoardEventView;
445
- /** The board, acting as this watcher. */
446
- board: Board;
447
- };
448
- /** A `vb tail` the board runs for you: every event the tail would print, handed to `run`. */
449
- type Watcher = {
450
- /**
451
- * A `vb tail` expression without `vb tail`: `firehose --label status=needs-agent`. `--all` adds
452
- * delivery receipts, as in `vb tail`: `message.synced` says where a message landed on a platform.
453
- */
454
- tail: string;
455
- /**
456
- * `matches` (the default) runs on every event the tail prints. `enters` runs only when a
457
- * message enters the view: it didn't match before the event and does after it.
458
- */
459
- when?: 'matches' | 'enters';
460
- run: (context: WatcherContext) => unknown;
461
- };
462
- //#endregion
463
- //#region src/server/board.d.ts
464
- /**
465
- * `board()`'s options: where the board lives, who may use it and what its writes go through, and
466
- * what runs here. The backend keeps or reaches the log; the policy is the board's.
467
- */
468
- type BoardOptions = PolicyOptions & {
469
- /**
470
- * Where the board lives: `a2({ … })` from `@vercel/board/backend-a2` keeps it here, `http(url)` from
471
- * `@vercel/board/backend-http` uses another, or your own. By default, `http()`: in Node, the board the
472
- * environment points at (`BOARD_URL`, the repo's link, or `vb use`'s).
473
- */
474
- backend?: Backend;
475
- /**
476
- * Runs on every post and edit before it reaches the backend, whatever it came from: requests (a
477
- * board on `http()` using this one included), watchers, schedules, the handle, and sync's imports.
478
- * Each calls `next()` to pass the write on; one that doesn't drops it.
479
- */
480
- middleware?: readonly Middleware[];
481
- /** Tails the board runs for you, keyed by an id you choose: `{ triage: { tail: 'firehose', run } }`. */
482
- watch?: Record<string, Watcher>;
483
- /**
484
- * Two-way sync, keyed by a name you choose: `{ slack: slack({...}), github: github({...}) }`. It
485
- * runs here, wherever the board lives: webhooks land at `<board>/webhooks/<key>`, and what the
486
- * board's channels say goes out to the platforms. On `http()`, the board it uses must let this
487
- * deployment `sync` in those channels.
488
- */
489
- sync?: Record<string, SyncProvider>;
490
- /** The board's public URL, which every token's audience must equal. Inferred from requests otherwise. */
491
- url?: string;
492
- /** The mount path, e.g. `/api/board`. Inferred from requests otherwise: the shallowest one they show. */
493
- basePath?: string;
494
- /** SSE streams close after this long, before the platform's limit; clients reconnect. */
495
- streamMaxMs?: number;
496
- };
497
- /**
498
- * The handle on a board: its methods act as the board's caller, through board(), which calls the
499
- * backend's methods, and `fetch` serves it. Over `http()` the caller is whoever its `fetch`'s
500
- * credentials say, with the profile `BOARD_AS` or the agent it runs in picks; on a board it keeps
501
- * (`a2()`), its own code, as `board:client`.
502
- */
503
- type Board = BoardClient & {
504
- /**
505
- * The board's HTTP handler, for a route file (`export const GET = team.fetch, POST = team.fetch`)
506
- * or any runtime that takes one function.
507
- */
508
- fetch(request: Request): Promise<Response>;
509
- /**
510
- * The handle, acting with `profile`: `<principal>+<profile>` over HTTP, `board:client:<profile>`
511
- * on `a2()`. `null` acts as yourself, outside any agent session.
512
- */
513
- as(profile: ProfileOption): Board;
514
- };
515
- //#endregion
516
- //#region src/server/backend.d.ts
517
- /**
518
- * Who a verified caller is: its principal, with what board()'s `access` lets it do now (its scope
519
- * included, which only narrows), the author record its writes carry, and the actor it writes as.
520
- * `records: false`: its writes leave the board's record of its actor (name, avatar) as it is, for
521
- * a platform user a sync that can't sync everywhere writes as.
522
- */
523
- type Identity = {
524
- principal: Granted;
525
- author: Author;
526
- actor: Actor;
527
- records?: false;
528
- };
529
- /**
530
- * A caller board() verified, and what its policy lets it do: a request's, or for work a backend does
531
- * outside requests, the one it does it for (a schedule's creator, at its send). A backend trusts it
532
- * as it is: only board() makes one, in process.
533
- */
534
- type VerifiedCaller = {
535
- identity: Identity;
536
- origin: WriteOrigin;
537
- };
538
- /** This deployment's own code, as it calls the backend through board(). */
539
- type SelfCaller = {
540
- /**
541
- * A handle (`via: client`, with the profile from `as(profile)`, or null for the board's own), a
542
- * watcher, the middleware's handle (`via: middleware`), or sync (`via: engine`). Each backend
543
- * decides who that is on its board: `board:client` and `board:client:<profile>` on a2(), the
544
- * token's holder with that profile elsewhere.
545
- */
546
- self: string | null;
547
- /**
548
- * What `as(profile)` asked for, its avatar included, or null for yourself. Absent on the
549
- * handle itself, whose caller is whoever the environment picks: a backend elsewhere sends
550
- * the profile `BOARD_AS` or the agent it runs in names.
551
- */
552
- profile?: ProfileOption;
553
- origin: WriteOrigin;
554
- };
555
- /** Who's calling a backend's method: one board() verified, or this deployment's own code. Every method honors what it may do. */
556
- type Caller = VerifiedCaller | SelfCaller;
557
- /** One method per protocol route: the caller, the parsed input, and the request's signal. */
558
- type ProtocolMethods = { [M in keyof Protocol]: (caller: Caller, input: Protocol[M]['input'], signal: AbortSignal) => Promise<Protocol[M]['output']>; };
559
- /** A route of a backend's own, beside the protocol: http()'s wake-ups. */
560
- type BackendRoute = {
561
- method: 'GET' | 'POST';
562
- /** Under the board's mount, with `:param` segments, e.g. `/wake`. One at a protocol route's path takes its place. */
563
- path: string;
564
- /** `caller` is this deployment's own code, or null for a request, which board() doesn't verify for it: the route checks what it needs. */
565
- handle(request: Request, context: {
566
- caller: Caller | null;
567
- param: string | null;
568
- }): Promise<Response>;
569
- };
570
- /** What runs on a board's events. */
571
- type Subscription =
572
- /** A watcher: every event its tail prints. */
573
- {
574
- kind: 'tail';
575
- tail: string;
576
- when: 'matches' | 'enters';
577
- } |
578
- /** Sync's outbound: every post, change, and thread sync in every channel, as its own code sees them. */
579
- {
580
- kind: 'sync';
581
- };
582
- /** One of board()'s sync entries: its key, its platform, and whether it can sign people in. */
583
- type SyncEntry = {
584
- key: string;
585
- platform: string;
586
- signIn: boolean;
587
- };
588
- /** A platform event sync pushed to an inbox, as the backend delivers it back. */
589
- type InboxDelivery = {
590
- event: ExternalEvent;
591
- raw: unknown;
592
- };
593
- /** What a backend gets from the board it serves: once, in memory, when board() is created. */
594
- type BoardBinding = {
595
- /** What runs on this board's events, by ID: this project's watchers, and sync's outbound at `SYNC` when it syncs. */
596
- subscriptions: Record<string, Subscription>;
597
- /**
598
- * Runs one subscription on an event. A throw is the backend's to retry; `attempt` counts tries
599
- * from 1, and sync gives up on a delivery, and says so, before A2 would dead-letter it.
600
- */
601
- run(id: string, event: WatcherContext['event'], meta: {
602
- trigger: string;
603
- attempt: number;
604
- }): Promise<void>;
605
- /**
606
- * Runs one platform event this board's sync pushed to the backend's inbox, for a backend that
607
- * delivers them in-process: one platform thread at a time, in order. `id` is the event's in the
608
- * inbox, which the writes it makes derive their IDs from. A throw is the backend's to retry.
609
- */
610
- receive(key: string, item: InboxDelivery, meta: {
611
- id: string;
612
- attempt: number;
613
- signal: AbortSignal;
614
- }): Promise<void>;
615
- /** Pulls and runs what this board's sync queued in a backend's inbox, for one that queues them: http()'s, when it's woken. */
616
- pull(): Promise<number>;
617
- /** board()'s sync entries: what its sync imports through, and what discovery lists. */
618
- sync: readonly SyncEntry[];
619
- /**
620
- * Reads a platform channel or thread with sync entry `key`'s app, which only board() has: what
621
- * `readSource` answers. 404 `not_synced_here` for an entry it doesn't run.
622
- */
623
- readSource(key: string, target: string, limit: number): Promise<SourceRead>;
624
- /**
625
- * Shows typing in the platform threads a board thread (`messages`, its root first) is synced to,
626
- * through board()'s sync: what `typing` answers. Answers the threads that took it.
627
- */
628
- typing(messages: readonly MessageView[], status: string | undefined): Promise<string[]>;
629
- /**
630
- * What a principal the backend stored may do now, under board()'s `access`: a schedule's creator
631
- * at each send, a registrant at each event and pull. Null once it may do nothing.
632
- */
633
- accessNow(principal: Known): Promise<Access | null>;
634
- /** The board's own Vercel project and team, as board() knows them: what discovery names, for clients to mint tokens with. */
635
- project(): Promise<{
636
- id: string | null;
637
- teamId: string | null;
638
- }>;
639
- /**
640
- * A handle through board(), as `caller`: what a backend writes for someone outside a request
641
- * goes through it, so board()'s middleware sees it, a schedule's send as its creator, say. A
642
- * verified caller's posts keep the IDs they're given.
643
- */
644
- handle(caller: Caller): Board;
645
- /** The board's own URL, where a board elsewhere can wake it, once it's known. */
646
- url(): string | null;
647
- };
648
- /**
649
- * Where a board lives. board() serves the protocol over HTTP: it routes, validates, verifies each
650
- * caller, applies `access`, runs the middleware, watchers, and sync, and calls these with the caller
651
- * it verified. A backend stores and answers, honoring what each caller may do.
652
- */
653
- interface Backend extends ProtocolMethods {
654
- /** Routes of its own, beside the protocol: one at a protocol route's path takes its place. */
655
- readonly routes: readonly BackendRoute[];
656
- /**
657
- * Whether the board lives here. One that keeps it (`a2()`) lets in, when board()'s `access` is left
658
- * out, its people and the board's own deployments; one that uses another board (`http()`) serves no
659
- * requests then but wake-ups and webhooks, and with an `access`, serves its callers as that board's
660
- * project.
661
- */
662
- readonly keeps: boolean;
663
- /**
664
- * board() calls it once, when it's created, before any request: what background work needs
665
- * from the board (its subscriptions, its sync, its policy, a handle through it). It does no I/O.
666
- */
667
- bind(board: BoardBinding): void;
668
- }
669
- //#endregion
670
- //#region src/server/transport.d.ts
671
- /**
672
- * How a board POSTs to a URL a caller gave it: a wake-up to a board on `http()`. That URL
673
- * comes from a caller, so by default it's `https` to a public address only, checked as it
674
- * connects: no loopback, private, or link-local address, however its name resolves, and no
675
- * redirects. Tests pass their own.
676
- */
677
- type Post = (url: string, init: {
678
- headers: Record<string, string>;
679
- body: string;
680
- signal: AbortSignal;
681
- }) => Promise<Response>;
682
- //#endregion
683
- //#region src/server/a2.d.ts
684
- /**
685
- * `a2()`'s options: the board in this deployment, on A2's log, and what runs it. Who may use it,
686
- * and what its writes go through, are board()'s: `board({ authenticate, access, middleware })`.
687
- */
688
- type A2Options = {
689
- /**
690
- * Where the board keeps its log and tables: `postgres()`, `redis()`, `redisHttp()`, `sqlite()`, or
691
- * `memory()` from `@vercel/board/backend-a2/store-*`. Omitted: SQLite at `.a2/dev.db` in the working
692
- * directory, everywhere, which suits development and a single long-running server. Serverless
693
- * functions can't write there: pass a store, and the board's requests say so until you do.
694
- */
695
- store?: BoardStore;
696
- /**
697
- * What gives the board a clock: `vercelQueues()` or `qstash()` from `@vercel/board/backend-a2/scheduler-*`,
698
- * or `localScheduler()` from `@vercel/board/backend-a2/scheduler-local` in a long-running process. Mount
699
- * the backend's `scheduler` as `POST` in its own route. Without one, the consumers (the tables,
700
- * watchers, sync) run in the request that writes, a failure is tried again on the next write, and
701
- * scheduling answers 501 `no_scheduler`.
702
- */
703
- scheduler?: A2Scheduler;
704
- /**
705
- * Where attachments live: `vercelBlob()` from `@vercel/board/backend-a2/blob-vercel`, or `fsBlob()` and
706
- * `memoryBlob()` from `@vercel/board/backend-a2`. Without one, the board keeps no files: uploads, and
707
- * posts that carry them, answer 501 `no_files`, and sync links a platform's files where they are.
708
- */
709
- blob?: BlobStore;
710
- /** For tests: how the board POSTs wake-ups to boards on `http()`. Defaults to https to public addresses only. */
711
- transport?: {
712
- post?: Post;
713
- };
714
- };
715
- /**
716
- * The board in this deployment, on A2's log: its store (SQLite at `.a2/dev.db` by default), and
717
- * optionally a scheduler and somewhere for files. It's the backend itself: pass it to
718
- * `board({ backend })`, and mount its `scheduler` in a route of its own. It trusts the callers
719
- * board() verified; what it does outside requests, it asks board()'s policy about and writes
720
- * through board(). Nothing is built or connected until board() binds it, and the default store
721
- * opens on the first call.
722
- */
723
- declare function a2(options?: A2Options): {
724
- discovery: (caller: Caller, input: {
725
- [x: string]: never;
726
- }, signal: AbortSignal) => Promise<Discovery>;
727
- me: (caller: Caller, input: {
728
- [x: string]: never;
729
- }, signal: AbortSignal) => Promise<Me>;
730
- channels: (caller: Caller, input: {
731
- [x: string]: never;
732
- }, signal: AbortSignal) => Promise<{
733
- channels: ChannelView[];
734
- cursor: string;
735
- }>;
736
- actors: (caller: Caller, input: {
737
- [x: string]: never;
738
- }, signal: AbortSignal) => Promise<{
739
- actors: (Actor & {
740
- person?: PersonView;
741
- })[];
742
- cursor: string;
743
- }>;
744
- identity: (caller: Caller, input: {
745
- [x: string]: never;
746
- }, signal: AbortSignal) => Promise<IdentityView>;
747
- messages: (caller: Caller, input: {
748
- channel?: string | undefined;
749
- re?: string | undefined;
750
- by?: string | undefined;
751
- mentions?: string | undefined;
752
- label?: (readonly [string, null] | readonly [string, string[]])[] | undefined;
753
- from?: string | undefined;
754
- text?: string | undefined;
755
- after?: string | undefined;
756
- before?: string | undefined;
757
- limit?: number | undefined;
758
- }, signal: AbortSignal) => Promise<MessagesPage>;
759
- threads: (caller: Caller, input: {
760
- channel?: string | undefined;
761
- re?: string | undefined;
762
- by?: string | undefined;
763
- mentions?: string | undefined;
764
- label?: (readonly [string, null] | readonly [string, string[]])[] | undefined;
765
- from?: string | undefined;
766
- text?: string | undefined;
767
- after?: string | undefined;
768
- limit?: number | undefined;
769
- }, signal: AbortSignal) => Promise<ThreadsPage>;
770
- message: (caller: Caller, input: {
771
- id: string;
772
- }, signal: AbortSignal) => Promise<ThreadView>;
773
- post: (caller: Caller, input: {
774
- channel?: string | undefined;
775
- re?: string | undefined;
776
- text: string;
777
- labels?: Record<string, string> | undefined;
778
- noSync?: boolean | undefined;
779
- sync?: (string | {
780
- target: string;
781
- kind: "channel" | "thread";
782
- })[] | undefined;
783
- id?: string | undefined;
784
- attachments?: string[] | undefined;
785
- }, signal: AbortSignal) => Promise<{
786
- message: MessageView;
787
- unknownMentions?: string[];
788
- }>;
789
- posted: (caller: Caller, input: {
790
- id: string;
791
- }, signal: AbortSignal) => Promise<{
792
- message: MessageView;
793
- }>;
794
- edit: (caller: Caller, input: {
795
- id: string;
796
- } & {
797
- text: string;
798
- }, signal: AbortSignal) => Promise<{
799
- ok: true;
800
- unknownMentions?: string[];
801
- }>;
802
- delete: (caller: Caller, input: {
803
- id: string;
804
- }, signal: AbortSignal) => Promise<{
805
- ok: true;
806
- }>;
807
- react: (caller: Caller, input: {
808
- id: string;
809
- } & {
810
- emoji: string;
811
- remove?: boolean | undefined;
812
- }, signal: AbortSignal) => Promise<{
813
- ok: true;
814
- }>;
815
- label: (caller: Caller, input: {
816
- id: string;
817
- } & {
818
- set?: Record<string, string> | undefined;
819
- unset?: string[] | undefined;
820
- }, signal: AbortSignal) => Promise<{
821
- ok: true;
822
- }>;
823
- schedule: (caller: Caller, input: {
824
- channel?: string | undefined;
825
- re?: string | undefined;
826
- text: string;
827
- labels?: Record<string, string> | undefined;
828
- noSync?: boolean | undefined;
829
- attachments?: string[] | undefined;
830
- in?: string | undefined;
831
- at?: string | undefined;
832
- every?: string | undefined;
833
- until?: string | undefined;
834
- for?: string | undefined;
835
- times?: number | undefined;
836
- }, signal: AbortSignal) => Promise<{
837
- schedule: ScheduleView;
838
- unknownMentions?: string[];
839
- }>;
840
- schedules: (caller: Caller, input: {
841
- re?: string | undefined;
842
- channel?: string | undefined;
843
- by?: string | undefined;
844
- all?: boolean | undefined;
845
- }, signal: AbortSignal) => Promise<{
846
- schedules: ScheduleView[];
847
- }>;
848
- cancelSchedule: (caller: Caller, input: {
849
- id: string;
850
- }, signal: AbortSignal) => Promise<{
851
- schedule: ScheduleView;
852
- canceled: boolean;
853
- }>;
854
- upload: (caller: Caller, input: {
855
- data: Uint8Array;
856
- name: string | null;
857
- type: string | null;
858
- }, signal: AbortSignal) => Promise<{
859
- attachment: Attachment;
860
- }>;
861
- attachment: (caller: Caller, input: {
862
- id: string;
863
- }, signal: AbortSignal) => Promise<{
864
- attachment: Attachment;
865
- data: Uint8Array | ReadableStream<Uint8Array>;
866
- }>;
867
- uploadStart: (caller: Caller, input: {
868
- name?: string | null | undefined;
869
- type?: string | null | undefined;
870
- size: number;
871
- }, signal: AbortSignal) => Promise<UploadTicket>;
872
- uploadFinish: (caller: Caller, input: {
873
- id: string;
874
- }, signal: AbortSignal) => Promise<{
875
- attachment: Attachment;
876
- }>;
877
- watchers: (caller: Caller, input: {
878
- [x: string]: never;
879
- }, signal: AbortSignal) => Promise<{
880
- watchers: RegistrationView[];
881
- }>;
882
- register: (caller: Caller, input: {
883
- url?: string | null | undefined;
884
- watch: Record<string, {
885
- tail: string;
886
- when: "enters" | "matches";
887
- }>;
888
- sync?: {
889
- key: string;
890
- platform: string;
891
- signIn: boolean;
892
- }[] | undefined;
893
- }, signal: AbortSignal) => Promise<RegistrationView>;
894
- matches: (caller: Caller, input: {
895
- limit?: number | undefined;
896
- wait?: number | undefined;
897
- }, signal: AbortSignal) => Promise<{
898
- matches: MatchView[];
899
- }>;
900
- ack: (caller: Caller, input: {
901
- id: string;
902
- } & {
903
- lease: string;
904
- error?: string | undefined;
905
- skip?: boolean | undefined;
906
- }, signal: AbortSignal) => Promise<{
907
- ok: true;
908
- }>;
909
- events: (caller: Caller, input: {
910
- channel?: string | undefined;
911
- re?: string | undefined;
912
- by?: string | undefined;
913
- mentions?: string | undefined;
914
- label?: (readonly [string, null] | readonly [string, string[]])[] | undefined;
915
- from?: string | undefined;
916
- text?: string | undefined;
917
- after?: string | undefined;
918
- wait?: number | undefined;
919
- all?: boolean | undefined;
920
- }, signal: AbortSignal) => Promise<EventsPage>;
921
- typing: (caller: Caller, input: {
922
- id: string;
923
- } & {
924
- status?: string | undefined;
925
- }, signal: AbortSignal) => Promise<{
926
- targets: string[];
927
- }>;
928
- readSource: (caller: Caller, input: {
929
- key: string;
930
- } & {
931
- target: string;
932
- limit?: number | undefined;
933
- }, signal: AbortSignal) => Promise<SourceRead>;
934
- syncImport: (caller: Caller, input: {
935
- author: {
936
- id: string;
937
- handle: string;
938
- name: string;
939
- isBot: boolean;
940
- avatar: string | null;
941
- };
942
- from: string | null;
943
- op: "post";
944
- origin: {
945
- channel?: string | undefined;
946
- thread: string;
947
- subthread: string | null;
948
- message: string;
949
- context: string | null;
950
- } | null;
951
- source?: {
952
- key: string;
953
- channel: string;
954
- thread: string;
955
- } | undefined;
956
- channel?: string | undefined;
957
- re?: string | undefined;
958
- text: string;
959
- labels?: Record<string, string> | undefined;
960
- noSync?: boolean | undefined;
961
- attachments?: string[] | undefined;
962
- links?: {
963
- url: string;
964
- snapshot: {
965
- author: string;
966
- text: string;
967
- createdAt: string | null;
968
- files: {
969
- name: string;
970
- url: string | null;
971
- }[];
972
- } | null;
973
- unavailable: string | null;
974
- message: string | null;
975
- }[] | undefined;
976
- id?: string | undefined;
977
- } | {
978
- author: {
979
- id: string;
980
- handle: string;
981
- name: string;
982
- isBot: boolean;
983
- avatar: string | null;
984
- };
985
- from: string | null;
986
- origin?: {
987
- thread: string;
988
- message?: string | undefined;
989
- } | undefined;
990
- message?: string | undefined;
991
- op: "edit";
992
- text: string;
993
- source?: {
994
- key: string;
995
- channel: string;
996
- thread: string;
997
- } | undefined;
998
- } | {
999
- author: {
1000
- id: string;
1001
- handle: string;
1002
- name: string;
1003
- isBot: boolean;
1004
- avatar: string | null;
1005
- };
1006
- from: string | null;
1007
- origin?: {
1008
- thread: string;
1009
- message?: string | undefined;
1010
- } | undefined;
1011
- message?: string | undefined;
1012
- op: "delete";
1013
- } | {
1014
- author: {
1015
- id: string;
1016
- handle: string;
1017
- name: string;
1018
- isBot: boolean;
1019
- avatar: string | null;
1020
- };
1021
- from: string | null;
1022
- origin?: {
1023
- thread: string;
1024
- message?: string | undefined;
1025
- } | undefined;
1026
- message?: string | undefined;
1027
- op: "react";
1028
- emoji: string;
1029
- remove?: boolean | undefined;
1030
- } | {
1031
- author: {
1032
- id: string;
1033
- handle: string;
1034
- name: string;
1035
- isBot: boolean;
1036
- avatar: string | null;
1037
- };
1038
- from: string | null;
1039
- origin?: {
1040
- thread: string;
1041
- message?: string | undefined;
1042
- } | undefined;
1043
- message?: string | undefined;
1044
- op: "labels";
1045
- set?: Record<string, string> | undefined;
1046
- unset?: string[] | undefined;
1047
- } | {
1048
- author: {
1049
- id: string;
1050
- handle: string;
1051
- name: string;
1052
- isBot: boolean;
1053
- avatar: string | null;
1054
- };
1055
- from: string | null;
1056
- origin?: {
1057
- thread: string;
1058
- message?: string | undefined;
1059
- } | undefined;
1060
- message?: string | undefined;
1061
- op: "links";
1062
- links: {
1063
- url: string;
1064
- snapshot: {
1065
- author: string;
1066
- text: string;
1067
- createdAt: string | null;
1068
- files: {
1069
- name: string;
1070
- url: string | null;
1071
- }[];
1072
- } | null;
1073
- unavailable: string | null;
1074
- message: string | null;
1075
- }[];
1076
- } | {
1077
- op: "seen";
1078
- author: {
1079
- id: string;
1080
- handle: string;
1081
- name: string;
1082
- isBot: boolean;
1083
- avatar: string | null;
1084
- };
1085
- }, signal: AbortSignal) => Promise<{
1086
- message: string | null;
1087
- dropped?: string[];
1088
- }>;
1089
- syncReceipt: (caller: Caller, input: {
1090
- kind: "message";
1091
- message: string;
1092
- target: string;
1093
- external: {
1094
- thread: string;
1095
- message: string;
1096
- asUser?: true | undefined;
1097
- };
1098
- files?: string[] | null | undefined;
1099
- } | {
1100
- kind: "files";
1101
- message: string;
1102
- target: string;
1103
- files: string[] | null;
1104
- } | {
1105
- kind: "failed";
1106
- message: string;
1107
- target: string;
1108
- error: string;
1109
- } | {
1110
- kind: "thread";
1111
- message: string;
1112
- target: string;
1113
- targetKind: "channel" | "thread";
1114
- cause: "config" | "request";
1115
- }, signal: AbortSignal) => Promise<{
1116
- ok: true;
1117
- attached?: boolean;
1118
- }>;
1119
- syncThread: (caller: Caller, input: {
1120
- thread: string;
1121
- }, signal: AbortSignal) => Promise<SyncThreadView>;
1122
- syncFind: (caller: Caller, input: {
1123
- code?: string | undefined;
1124
- post?: string | undefined;
1125
- thread?: string | undefined;
1126
- message?: string | undefined;
1127
- account?: string | undefined;
1128
- person?: string | undefined;
1129
- }, signal: AbortSignal) => Promise<SyncFindView>;
1130
- syncCopies: (caller: Caller, input: {
1131
- message: string[];
1132
- }, signal: AbortSignal) => Promise<SyncCopiesView>;
1133
- syncRoots: (caller: Caller, input: {
1134
- by: string;
1135
- since: number;
1136
- }, signal: AbortSignal) => Promise<{
1137
- roots: MessageView[];
1138
- }>;
1139
- inboxPush: (caller: Caller, input: {
1140
- key: string;
1141
- } & {
1142
- events: {
1143
- id: string;
1144
- event: {
1145
- channel: string;
1146
- thread: string;
1147
- subthread: string | null;
1148
- kind: "message";
1149
- message: string;
1150
- isRoot: boolean;
1151
- text: string;
1152
- context: string | null;
1153
- author: {
1154
- id: string;
1155
- handle: string;
1156
- name: string;
1157
- avatar: string | null;
1158
- isBot: boolean;
1159
- };
1160
- files?: {
1161
- type: "audio" | "file" | "image" | "video";
1162
- name?: string | undefined;
1163
- mimeType?: string | undefined;
1164
- size?: number | undefined;
1165
- url?: string | undefined;
1166
- fetchMetadata?: Record<string, string> | undefined;
1167
- }[] | undefined;
1168
- links?: {
1169
- url: string;
1170
- thread: string;
1171
- message: string;
1172
- snapshot: {
1173
- author: string;
1174
- text: string;
1175
- createdAt: string | null;
1176
- files: {
1177
- name: string;
1178
- url: string | null;
1179
- }[];
1180
- } | null;
1181
- }[] | undefined;
1182
- } | {
1183
- channel: string;
1184
- thread: string;
1185
- subthread: string | null;
1186
- kind: "edited";
1187
- message: string;
1188
- text: string;
1189
- author: {
1190
- id: string;
1191
- handle: string;
1192
- name: string;
1193
- avatar: string | null;
1194
- isBot: boolean;
1195
- };
1196
- links?: {
1197
- url: string;
1198
- thread: string;
1199
- message: string;
1200
- snapshot: {
1201
- author: string;
1202
- text: string;
1203
- createdAt: string | null;
1204
- files: {
1205
- name: string;
1206
- url: string | null;
1207
- }[];
1208
- } | null;
1209
- }[] | undefined;
1210
- linksOnly?: boolean | undefined;
1211
- } | {
1212
- channel: string;
1213
- thread: string;
1214
- subthread: string | null;
1215
- kind: "deleted";
1216
- message: string;
1217
- } | {
1218
- channel: string;
1219
- thread: string;
1220
- subthread: string | null;
1221
- kind: "reaction";
1222
- message: string;
1223
- emoji: string;
1224
- added: boolean;
1225
- author: {
1226
- id: string;
1227
- handle: string;
1228
- name: string;
1229
- avatar: string | null;
1230
- isBot: boolean;
1231
- };
1232
- } | {
1233
- channel: string;
1234
- thread: string;
1235
- kind: "lifecycle";
1236
- type: string;
1237
- title: string;
1238
- url: string | null;
1239
- labels: Record<string, string>;
1240
- unset: string[];
1241
- owns?: string[] | undefined;
1242
- reply: string | null;
1243
- createRoot: boolean;
1244
- author: {
1245
- id: string;
1246
- handle: string;
1247
- name: string;
1248
- avatar: string | null;
1249
- isBot: boolean;
1250
- };
1251
- };
1252
- raw: unknown;
1253
- }[];
1254
- }, signal: AbortSignal) => Promise<{
1255
- ok: true;
1256
- }>;
1257
- inboxNext: (caller: Caller, input: {
1258
- key: string;
1259
- } & {
1260
- limit?: number | undefined;
1261
- }, signal: AbortSignal) => Promise<{
1262
- items: InboxItem[];
1263
- }>;
1264
- inboxAck: (caller: Caller, input: {
1265
- key: string;
1266
- } & {
1267
- id: string;
1268
- } & {
1269
- lease: string;
1270
- error?: string | undefined;
1271
- }, signal: AbortSignal) => Promise<{
1272
- ok: true;
1273
- }>;
1274
- inbox: (caller: Caller, input: {
1275
- key: string;
1276
- } & {
1277
- channel?: string | undefined;
1278
- limit?: number | undefined;
1279
- }, signal: AbortSignal) => Promise<{
1280
- events: InboxEntry[];
1281
- }>;
1282
- syncCode: (caller: Caller, input: {
1283
- sync: string;
1284
- }, signal: AbortSignal) => Promise<SyncCodeView>;
1285
- syncAccount: (caller: Caller, input: {
1286
- sync: string;
1287
- account: {
1288
- id: string;
1289
- handle: string;
1290
- name: string;
1291
- isBot: boolean;
1292
- avatar: string | null;
1293
- };
1294
- code: string;
1295
- message?: string | undefined;
1296
- method?: "code" | "consent" | undefined;
1297
- }, signal: AbortSignal) => Promise<{
1298
- person: string;
1299
- link: LinkedAccount;
1300
- }>;
1301
- syncUnlink: (caller: Caller, input: {
1302
- account: string;
1303
- }, signal: AbortSignal) => Promise<{
1304
- ok: true;
1305
- }>;
1306
- routes: BackendRoute[];
1307
- keeps: boolean;
1308
- bind(given: BoardBinding): void;
1309
- /** The scheduler's callback: `export { scheduler as POST }` from a route of its own. A board without a scheduler answers 404. */
1310
- scheduler: (request: Request) => Promise<Response>;
1311
- servers: (import("experimental-a2/server").A2Server<{
1312
- 'message.posted': z.ZodObject<{
1313
- channel: z.ZodString;
1314
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
1315
- re: z.ZodNullable<z.ZodNumber>;
1316
- replyTo: z.ZodNullable<z.ZodNumber>;
1317
- thread: z.ZodString;
1318
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
1319
- noSync: z.ZodBoolean;
1320
- mentions: z.ZodArray<z.ZodString>;
1321
- by: z.ZodObject<{
1322
- actor: z.ZodString;
1323
- principal: z.ZodString;
1324
- profile: z.ZodNullable<z.ZodString>;
1325
- session: z.ZodNullable<z.ZodString>;
1326
- }, z.core.$strip>;
1327
- origin: z.ZodNullable<z.ZodObject<{
1328
- channel: z.ZodOptional<z.ZodString>;
1329
- thread: z.ZodString;
1330
- subthread: z.ZodNullable<z.ZodString>;
1331
- message: z.ZodString;
1332
- context: z.ZodNullable<z.ZodString>;
1333
- }, z.core.$strip>>;
1334
- from: z.ZodNullable<z.ZodString>;
1335
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1336
- id: z.ZodString;
1337
- name: z.ZodString;
1338
- type: z.ZodString;
1339
- size: z.ZodNumber;
1340
- }, z.core.$strip>>>;
1341
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1342
- url: z.ZodString;
1343
- message: z.ZodNullable<z.ZodNumber>;
1344
- snapshot: z.ZodNullable<z.ZodObject<{
1345
- author: z.ZodString;
1346
- text: z.ZodString;
1347
- createdAt: z.ZodNullable<z.ZodString>;
1348
- files: z.ZodArray<z.ZodObject<{
1349
- name: z.ZodString;
1350
- url: z.ZodNullable<z.ZodString>;
1351
- }, z.core.$strip>>;
1352
- }, z.core.$strip>>;
1353
- unavailable: z.ZodNullable<z.ZodString>;
1354
- }, z.core.$strip>>>;
1355
- schedule: z.ZodOptional<z.ZodObject<{
1356
- id: z.ZodNumber;
1357
- n: z.ZodNumber;
1358
- }, z.core.$strip>>;
1359
- blind: z.ZodOptional<z.ZodLiteral<true>>;
1360
- importedBy: z.ZodOptional<z.ZodString>;
1361
- }, z.core.$strip>;
1362
- 'message.linked': z.ZodObject<{
1363
- id: z.ZodNumber;
1364
- thread: z.ZodString;
1365
- links: z.ZodArray<z.ZodObject<{
1366
- url: z.ZodString;
1367
- message: z.ZodNullable<z.ZodNumber>;
1368
- snapshot: z.ZodNullable<z.ZodObject<{
1369
- author: z.ZodString;
1370
- text: z.ZodString;
1371
- createdAt: z.ZodNullable<z.ZodString>;
1372
- files: z.ZodArray<z.ZodObject<{
1373
- name: z.ZodString;
1374
- url: z.ZodNullable<z.ZodString>;
1375
- }, z.core.$strip>>;
1376
- }, z.core.$strip>>;
1377
- unavailable: z.ZodNullable<z.ZodString>;
1378
- }, z.core.$strip>>;
1379
- by: z.ZodObject<{
1380
- actor: z.ZodString;
1381
- principal: z.ZodString;
1382
- profile: z.ZodNullable<z.ZodString>;
1383
- session: z.ZodNullable<z.ZodString>;
1384
- }, z.core.$strip>;
1385
- from: z.ZodNullable<z.ZodString>;
1386
- }, z.core.$strip>;
1387
- 'message.edited': z.ZodObject<{
1388
- id: z.ZodNumber;
1389
- thread: z.ZodString;
1390
- text: z.ZodString;
1391
- mentions: z.ZodArray<z.ZodString>;
1392
- by: z.ZodObject<{
1393
- actor: z.ZodString;
1394
- principal: z.ZodString;
1395
- profile: z.ZodNullable<z.ZodString>;
1396
- session: z.ZodNullable<z.ZodString>;
1397
- }, z.core.$strip>;
1398
- from: z.ZodNullable<z.ZodString>;
1399
- }, z.core.$strip>;
1400
- 'message.deleted': z.ZodObject<{
1401
- id: z.ZodNumber;
1402
- thread: z.ZodString;
1403
- by: z.ZodObject<{
1404
- actor: z.ZodString;
1405
- principal: z.ZodString;
1406
- profile: z.ZodNullable<z.ZodString>;
1407
- session: z.ZodNullable<z.ZodString>;
1408
- }, z.core.$strip>;
1409
- from: z.ZodNullable<z.ZodString>;
1410
- }, z.core.$strip>;
1411
- 'reaction.added': z.ZodObject<{
1412
- id: z.ZodNumber;
1413
- thread: z.ZodString;
1414
- emoji: z.ZodString;
1415
- by: z.ZodObject<{
1416
- actor: z.ZodString;
1417
- principal: z.ZodString;
1418
- profile: z.ZodNullable<z.ZodString>;
1419
- session: z.ZodNullable<z.ZodString>;
1420
- }, z.core.$strip>;
1421
- from: z.ZodNullable<z.ZodString>;
1422
- }, z.core.$strip>;
1423
- 'reaction.removed': z.ZodObject<{
1424
- id: z.ZodNumber;
1425
- thread: z.ZodString;
1426
- emoji: z.ZodString;
1427
- by: z.ZodObject<{
1428
- actor: z.ZodString;
1429
- principal: z.ZodString;
1430
- profile: z.ZodNullable<z.ZodString>;
1431
- session: z.ZodNullable<z.ZodString>;
1432
- }, z.core.$strip>;
1433
- from: z.ZodNullable<z.ZodString>;
1434
- }, z.core.$strip>;
1435
- 'labels.changed': z.ZodObject<{
1436
- id: z.ZodNumber;
1437
- thread: z.ZodString;
1438
- set: z.ZodRecord<z.ZodString, z.ZodString>;
1439
- unset: z.ZodArray<z.ZodString>;
1440
- by: z.ZodObject<{
1441
- actor: z.ZodString;
1442
- principal: z.ZodString;
1443
- profile: z.ZodNullable<z.ZodString>;
1444
- session: z.ZodNullable<z.ZodString>;
1445
- }, z.core.$strip>;
1446
- }, z.core.$strip>;
1447
- 'thread.synced': z.ZodObject<{
1448
- thread: z.ZodString;
1449
- target: z.ZodString;
1450
- cause: z.ZodEnum<{
1451
- config: "config";
1452
- request: "request";
1453
- }>;
1454
- kind: z.ZodOptional<z.ZodEnum<{
1455
- channel: "channel";
1456
- thread: "thread";
1457
- }>>;
1458
- by: z.ZodObject<{
1459
- actor: z.ZodString;
1460
- principal: z.ZodString;
1461
- profile: z.ZodNullable<z.ZodString>;
1462
- session: z.ZodNullable<z.ZodString>;
1463
- }, z.core.$strip>;
1464
- }, z.core.$strip>;
1465
- 'message.synced': z.ZodObject<{
1466
- id: z.ZodNumber;
1467
- thread: z.ZodString;
1468
- target: z.ZodString;
1469
- external: z.ZodObject<{
1470
- thread: z.ZodString;
1471
- message: z.ZodString;
1472
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
1473
- }, z.core.$strip>;
1474
- syncedBy: z.ZodOptional<z.ZodString>;
1475
- }, z.core.$strip>;
1476
- 'message.files_synced': z.ZodObject<{
1477
- id: z.ZodNumber;
1478
- thread: z.ZodString;
1479
- target: z.ZodString;
1480
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
1481
- syncedBy: z.ZodOptional<z.ZodString>;
1482
- }, z.core.$strip>;
1483
- 'message.sync_failed': z.ZodObject<{
1484
- id: z.ZodNumber;
1485
- thread: z.ZodString;
1486
- target: z.ZodString;
1487
- error: z.ZodString;
1488
- }, z.core.$strip>;
1489
- 'actor.seen': z.ZodObject<{
1490
- actor: z.ZodString;
1491
- kind: z.ZodUnion<readonly [z.ZodEnum<{
1492
- agent: "agent";
1493
- deployment: "deployment";
1494
- external: "external";
1495
- person: "person";
1496
- workflow: "workflow";
1497
- }>, z.ZodLiteral<"profile">]>;
1498
- handle: z.ZodString;
1499
- name: z.ZodString;
1500
- avatar: z.ZodNullable<z.ZodString>;
1501
- host: z.ZodOptional<z.ZodLiteral<true>>;
1502
- }, z.core.$strip>;
1503
- 'actor.linked': z.ZodObject<{
1504
- actor: z.ZodString;
1505
- to: z.ZodString;
1506
- method: z.ZodEnum<{
1507
- code: "code";
1508
- consent: "consent";
1509
- }>;
1510
- by: z.ZodObject<{
1511
- actor: z.ZodString;
1512
- principal: z.ZodString;
1513
- profile: z.ZodNullable<z.ZodString>;
1514
- session: z.ZodNullable<z.ZodString>;
1515
- }, z.core.$strip>;
1516
- }, z.core.$strip>;
1517
- 'actor.unlinked': z.ZodObject<{
1518
- actor: z.ZodString;
1519
- by: z.ZodObject<{
1520
- actor: z.ZodString;
1521
- principal: z.ZodString;
1522
- profile: z.ZodNullable<z.ZodString>;
1523
- session: z.ZodNullable<z.ZodString>;
1524
- }, z.core.$strip>;
1525
- }, z.core.$strip>;
1526
- }, Record<never, never>, undefined> | import("experimental-a2/server").A2Server<{
1527
- 'external.received': z.ZodObject<{
1528
- sync: z.ZodString;
1529
- event: z.ZodDiscriminatedUnion<[z.ZodObject<{
1530
- channel: z.ZodString;
1531
- thread: z.ZodString;
1532
- subthread: z.ZodNullable<z.ZodString>;
1533
- kind: z.ZodLiteral<"message">;
1534
- message: z.ZodString;
1535
- isRoot: z.ZodBoolean;
1536
- text: z.ZodString;
1537
- context: z.ZodNullable<z.ZodString>;
1538
- author: z.ZodObject<{
1539
- id: z.ZodString;
1540
- handle: z.ZodString;
1541
- name: z.ZodString;
1542
- avatar: z.ZodNullable<z.ZodString>;
1543
- isBot: z.ZodBoolean;
1544
- }, z.core.$strip>;
1545
- files: z.ZodOptional<z.ZodArray<z.ZodObject<{
1546
- type: z.ZodEnum<{
1547
- audio: "audio";
1548
- file: "file";
1549
- image: "image";
1550
- video: "video";
1551
- }>;
1552
- name: z.ZodOptional<z.ZodString>;
1553
- mimeType: z.ZodOptional<z.ZodString>;
1554
- size: z.ZodOptional<z.ZodNumber>;
1555
- url: z.ZodOptional<z.ZodString>;
1556
- fetchMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1557
- }, z.core.$strip>>>;
1558
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1559
- url: z.ZodString;
1560
- thread: z.ZodString;
1561
- message: z.ZodString;
1562
- snapshot: z.ZodNullable<z.ZodObject<{
1563
- author: z.ZodString;
1564
- text: z.ZodString;
1565
- createdAt: z.ZodNullable<z.ZodString>;
1566
- files: z.ZodArray<z.ZodObject<{
1567
- name: z.ZodString;
1568
- url: z.ZodNullable<z.ZodString>;
1569
- }, z.core.$strip>>;
1570
- }, z.core.$strip>>;
1571
- }, z.core.$strip>>>;
1572
- }, z.core.$strip>, z.ZodObject<{
1573
- channel: z.ZodString;
1574
- thread: z.ZodString;
1575
- subthread: z.ZodNullable<z.ZodString>;
1576
- kind: z.ZodLiteral<"edited">;
1577
- message: z.ZodString;
1578
- text: z.ZodString;
1579
- author: z.ZodObject<{
1580
- id: z.ZodString;
1581
- handle: z.ZodString;
1582
- name: z.ZodString;
1583
- avatar: z.ZodNullable<z.ZodString>;
1584
- isBot: z.ZodBoolean;
1585
- }, z.core.$strip>;
1586
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1587
- url: z.ZodString;
1588
- thread: z.ZodString;
1589
- message: z.ZodString;
1590
- snapshot: z.ZodNullable<z.ZodObject<{
1591
- author: z.ZodString;
1592
- text: z.ZodString;
1593
- createdAt: z.ZodNullable<z.ZodString>;
1594
- files: z.ZodArray<z.ZodObject<{
1595
- name: z.ZodString;
1596
- url: z.ZodNullable<z.ZodString>;
1597
- }, z.core.$strip>>;
1598
- }, z.core.$strip>>;
1599
- }, z.core.$strip>>>;
1600
- linksOnly: z.ZodOptional<z.ZodBoolean>;
1601
- }, z.core.$strip>, z.ZodObject<{
1602
- channel: z.ZodString;
1603
- thread: z.ZodString;
1604
- subthread: z.ZodNullable<z.ZodString>;
1605
- kind: z.ZodLiteral<"deleted">;
1606
- message: z.ZodString;
1607
- }, z.core.$strip>, z.ZodObject<{
1608
- channel: z.ZodString;
1609
- thread: z.ZodString;
1610
- subthread: z.ZodNullable<z.ZodString>;
1611
- kind: z.ZodLiteral<"reaction">;
1612
- message: z.ZodString;
1613
- emoji: z.ZodString;
1614
- added: z.ZodBoolean;
1615
- author: z.ZodObject<{
1616
- id: z.ZodString;
1617
- handle: z.ZodString;
1618
- name: z.ZodString;
1619
- avatar: z.ZodNullable<z.ZodString>;
1620
- isBot: z.ZodBoolean;
1621
- }, z.core.$strip>;
1622
- }, z.core.$strip>, z.ZodObject<{
1623
- channel: z.ZodString;
1624
- thread: z.ZodString;
1625
- kind: z.ZodLiteral<"lifecycle">;
1626
- type: z.ZodString;
1627
- title: z.ZodString;
1628
- url: z.ZodNullable<z.ZodString>;
1629
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
1630
- unset: z.ZodArray<z.ZodString>;
1631
- owns: z.ZodOptional<z.ZodArray<z.ZodString>>;
1632
- reply: z.ZodNullable<z.ZodString>;
1633
- createRoot: z.ZodBoolean;
1634
- author: z.ZodObject<{
1635
- id: z.ZodString;
1636
- handle: z.ZodString;
1637
- name: z.ZodString;
1638
- avatar: z.ZodNullable<z.ZodString>;
1639
- isBot: z.ZodBoolean;
1640
- }, z.core.$strip>;
1641
- }, z.core.$strip>], "kind">;
1642
- raw: z.ZodUnknown;
1643
- }, z.core.$strip>;
1644
- 'inbox.opened': z.ZodObject<{
1645
- channel: z.ZodString;
1646
- }, z.core.$strip>;
1647
- }, Record<never, never>, undefined> | import("experimental-a2/server").A2Server<{
1648
- 'watch.matched': z.ZodObject<{
1649
- thread: z.ZodString;
1650
- event: z.ZodUnknown;
1651
- watcher: z.ZodOptional<z.ZodString>;
1652
- sync: z.ZodOptional<z.ZodLiteral<true>>;
1653
- inbox: z.ZodOptional<z.ZodString>;
1654
- }, z.core.$strip>;
1655
- 'watch.failed': z.ZodObject<{
1656
- matched: z.ZodString;
1657
- thread: z.ZodString;
1658
- error: z.ZodString;
1659
- }, z.core.$strip>;
1660
- 'watch.leased': z.ZodObject<{
1661
- matched: z.ZodString;
1662
- lease: z.ZodString;
1663
- until: z.ZodNumber;
1664
- }, z.core.$strip>;
1665
- 'watch.acked': z.ZodObject<{
1666
- matched: z.ZodString;
1667
- lease: z.ZodString;
1668
- error: z.ZodOptional<z.ZodString>;
1669
- retryAt: z.ZodOptional<z.ZodNumber>;
1670
- }, z.core.$strip>;
1671
- 'watch.expired': z.ZodObject<{
1672
- matched: z.ZodString;
1673
- lease: z.ZodString;
1674
- }, z.core.$strip>;
1675
- 'watch.retry': z.ZodObject<{
1676
- matched: z.ZodString;
1677
- }, z.core.$strip>;
1678
- 'watch.skipped': z.ZodObject<{
1679
- matched: z.ZodString;
1680
- reason: z.ZodString;
1681
- }, z.core.$strip>;
1682
- 'watch.armed': z.ZodObject<{
1683
- at: z.ZodNumber;
1684
- }, z.core.$strip>;
1685
- 'watch.due': z.ZodObject<{
1686
- matched: z.ZodOptional<z.ZodString>;
1687
- retry: z.ZodOptional<z.ZodBoolean>;
1688
- sweep: z.ZodOptional<z.ZodNumber>;
1689
- }, z.core.$strip>;
1690
- 'watch.unreachable': z.ZodObject<{
1691
- failures: z.ZodNumber;
1692
- until: z.ZodNumber;
1693
- why: z.ZodString;
1694
- }, z.core.$strip>;
1695
- 'watch.reachable': z.ZodObject<{
1696
- by: z.ZodEnum<{
1697
- pull: "pull";
1698
- registration: "registration";
1699
- wake: "wake";
1700
- }>;
1701
- }, z.core.$strip>;
1702
- }, Record<never, never>, undefined> | import("experimental-a2/server").A2Server<{
1703
- 'watchers.registered': z.ZodObject<{
1704
- owner: z.ZodString;
1705
- principal: z.ZodObject<{
1706
- id: z.ZodString;
1707
- kind: z.ZodEnum<{
1708
- deployment: "deployment";
1709
- external: "external";
1710
- person: "person";
1711
- workflow: "workflow";
1712
- }>;
1713
- handle: z.ZodString;
1714
- facts: z.ZodOptional<z.ZodObject<{
1715
- issuer: z.ZodEnum<{
1716
- github: "github";
1717
- host: "host";
1718
- oidc: "oidc";
1719
- vercel: "vercel";
1720
- }>;
1721
- iss: z.ZodString;
1722
- claims: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1723
- team: z.ZodOptional<z.ZodString>;
1724
- }, z.core.$strip>>;
1725
- scope: z.ZodOptional<z.ZodString>;
1726
- }, z.core.$strip>;
1727
- url: z.ZodNullable<z.ZodString>;
1728
- watch: z.ZodRecord<z.ZodString, z.ZodObject<{
1729
- tail: z.ZodString;
1730
- when: z.ZodEnum<{
1731
- enters: "enters";
1732
- matches: "matches";
1733
- }>;
1734
- }, z.core.$strip>>;
1735
- sync: z.ZodOptional<z.ZodArray<z.ZodObject<{
1736
- key: z.ZodString;
1737
- platform: z.ZodString;
1738
- signIn: z.ZodBoolean;
1739
- }, z.core.$strip>>>;
1740
- hash: z.ZodString;
1741
- }, z.core.$strip>;
1742
- }, Record<never, never>, undefined> | import("experimental-a2/server").A2Server<{
1743
- 'schedule.created': z.ZodObject<{
1744
- channel: z.ZodString;
1745
- re: z.ZodNullable<z.ZodNumber>;
1746
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
1747
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
1748
- noSync: z.ZodBoolean;
1749
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1750
- id: z.ZodString;
1751
- name: z.ZodString;
1752
- type: z.ZodString;
1753
- size: z.ZodNumber;
1754
- }, z.core.$strip>>>;
1755
- first: z.ZodNumber;
1756
- every: z.ZodNullable<z.ZodNumber>;
1757
- until: z.ZodNullable<z.ZodNumber>;
1758
- times: z.ZodNullable<z.ZodNumber>;
1759
- as: z.ZodObject<{
1760
- author: z.ZodObject<{
1761
- actor: z.ZodString;
1762
- principal: z.ZodString;
1763
- profile: z.ZodNullable<z.ZodString>;
1764
- session: z.ZodNullable<z.ZodString>;
1765
- }, z.core.$strip>;
1766
- principal: z.ZodObject<{
1767
- id: z.ZodString;
1768
- kind: z.ZodEnum<{
1769
- deployment: "deployment";
1770
- external: "external";
1771
- person: "person";
1772
- workflow: "workflow";
1773
- }>;
1774
- handle: z.ZodString;
1775
- facts: z.ZodOptional<z.ZodObject<{
1776
- issuer: z.ZodEnum<{
1777
- github: "github";
1778
- host: "host";
1779
- oidc: "oidc";
1780
- vercel: "vercel";
1781
- }>;
1782
- iss: z.ZodString;
1783
- claims: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1784
- team: z.ZodOptional<z.ZodString>;
1785
- }, z.core.$strip>>;
1786
- scope: z.ZodOptional<z.ZodString>;
1787
- }, z.core.$strip>;
1788
- actor: z.ZodObject<{
1789
- id: z.ZodString;
1790
- kind: z.ZodUnion<readonly [z.ZodEnum<{
1791
- agent: "agent";
1792
- deployment: "deployment";
1793
- external: "external";
1794
- person: "person";
1795
- workflow: "workflow";
1796
- }>, z.ZodLiteral<"profile">]>;
1797
- handle: z.ZodString;
1798
- name: z.ZodString;
1799
- avatar: z.ZodNullable<z.ZodString>;
1800
- }, z.core.$strip>;
1801
- }, z.core.$strip>;
1802
- blind: z.ZodOptional<z.ZodLiteral<true>>;
1803
- }, z.core.$strip>;
1804
- 'schedule.canceled': z.ZodObject<{
1805
- id: z.ZodNumber;
1806
- by: z.ZodObject<{
1807
- actor: z.ZodString;
1808
- principal: z.ZodString;
1809
- profile: z.ZodNullable<z.ZodString>;
1810
- session: z.ZodNullable<z.ZodString>;
1811
- }, z.core.$strip>;
1812
- reason: z.ZodEnum<{
1813
- canceled: "canceled";
1814
- dropped: "dropped";
1815
- revoked: "revoked";
1816
- thread_deleted: "thread_deleted";
1817
- }>;
1818
- }, z.core.$strip>;
1819
- 'schedule.due': z.ZodObject<{
1820
- id: z.ZodNumber;
1821
- n: z.ZodNumber;
1822
- at: z.ZodNumber;
1823
- }, z.core.$strip>;
1824
- 'schedule.fired': z.ZodObject<{
1825
- id: z.ZodNumber;
1826
- n: z.ZodNumber;
1827
- message: z.ZodNumber;
1828
- next: z.ZodNullable<z.ZodNumber>;
1829
- }, z.core.$strip>;
1830
- }, Record<never, never>, undefined>)[];
1831
- session: {
1832
- readonly id: string;
1833
- append: import("experimental-a2/server").SessionAppend<{
1834
- 'message.posted': z.ZodObject<{
1835
- channel: z.ZodString;
1836
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
1837
- re: z.ZodNullable<z.ZodNumber>;
1838
- replyTo: z.ZodNullable<z.ZodNumber>;
1839
- thread: z.ZodString;
1840
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
1841
- noSync: z.ZodBoolean;
1842
- mentions: z.ZodArray<z.ZodString>;
1843
- by: z.ZodObject<{
1844
- actor: z.ZodString;
1845
- principal: z.ZodString;
1846
- profile: z.ZodNullable<z.ZodString>;
1847
- session: z.ZodNullable<z.ZodString>;
1848
- }, z.core.$strip>;
1849
- origin: z.ZodNullable<z.ZodObject<{
1850
- channel: z.ZodOptional<z.ZodString>;
1851
- thread: z.ZodString;
1852
- subthread: z.ZodNullable<z.ZodString>;
1853
- message: z.ZodString;
1854
- context: z.ZodNullable<z.ZodString>;
1855
- }, z.core.$strip>>;
1856
- from: z.ZodNullable<z.ZodString>;
1857
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1858
- id: z.ZodString;
1859
- name: z.ZodString;
1860
- type: z.ZodString;
1861
- size: z.ZodNumber;
1862
- }, z.core.$strip>>>;
1863
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
1864
- url: z.ZodString;
1865
- message: z.ZodNullable<z.ZodNumber>;
1866
- snapshot: z.ZodNullable<z.ZodObject<{
1867
- author: z.ZodString;
1868
- text: z.ZodString;
1869
- createdAt: z.ZodNullable<z.ZodString>;
1870
- files: z.ZodArray<z.ZodObject<{
1871
- name: z.ZodString;
1872
- url: z.ZodNullable<z.ZodString>;
1873
- }, z.core.$strip>>;
1874
- }, z.core.$strip>>;
1875
- unavailable: z.ZodNullable<z.ZodString>;
1876
- }, z.core.$strip>>>;
1877
- schedule: z.ZodOptional<z.ZodObject<{
1878
- id: z.ZodNumber;
1879
- n: z.ZodNumber;
1880
- }, z.core.$strip>>;
1881
- blind: z.ZodOptional<z.ZodLiteral<true>>;
1882
- importedBy: z.ZodOptional<z.ZodString>;
1883
- }, z.core.$strip>;
1884
- 'message.linked': z.ZodObject<{
1885
- id: z.ZodNumber;
1886
- thread: z.ZodString;
1887
- links: z.ZodArray<z.ZodObject<{
1888
- url: z.ZodString;
1889
- message: z.ZodNullable<z.ZodNumber>;
1890
- snapshot: z.ZodNullable<z.ZodObject<{
1891
- author: z.ZodString;
1892
- text: z.ZodString;
1893
- createdAt: z.ZodNullable<z.ZodString>;
1894
- files: z.ZodArray<z.ZodObject<{
1895
- name: z.ZodString;
1896
- url: z.ZodNullable<z.ZodString>;
1897
- }, z.core.$strip>>;
1898
- }, z.core.$strip>>;
1899
- unavailable: z.ZodNullable<z.ZodString>;
1900
- }, z.core.$strip>>;
1901
- by: z.ZodObject<{
1902
- actor: z.ZodString;
1903
- principal: z.ZodString;
1904
- profile: z.ZodNullable<z.ZodString>;
1905
- session: z.ZodNullable<z.ZodString>;
1906
- }, z.core.$strip>;
1907
- from: z.ZodNullable<z.ZodString>;
1908
- }, z.core.$strip>;
1909
- 'message.edited': z.ZodObject<{
1910
- id: z.ZodNumber;
1911
- thread: z.ZodString;
1912
- text: z.ZodString;
1913
- mentions: z.ZodArray<z.ZodString>;
1914
- by: z.ZodObject<{
1915
- actor: z.ZodString;
1916
- principal: z.ZodString;
1917
- profile: z.ZodNullable<z.ZodString>;
1918
- session: z.ZodNullable<z.ZodString>;
1919
- }, z.core.$strip>;
1920
- from: z.ZodNullable<z.ZodString>;
1921
- }, z.core.$strip>;
1922
- 'message.deleted': z.ZodObject<{
1923
- id: z.ZodNumber;
1924
- thread: z.ZodString;
1925
- by: z.ZodObject<{
1926
- actor: z.ZodString;
1927
- principal: z.ZodString;
1928
- profile: z.ZodNullable<z.ZodString>;
1929
- session: z.ZodNullable<z.ZodString>;
1930
- }, z.core.$strip>;
1931
- from: z.ZodNullable<z.ZodString>;
1932
- }, z.core.$strip>;
1933
- 'reaction.added': z.ZodObject<{
1934
- id: z.ZodNumber;
1935
- thread: z.ZodString;
1936
- emoji: z.ZodString;
1937
- by: z.ZodObject<{
1938
- actor: z.ZodString;
1939
- principal: z.ZodString;
1940
- profile: z.ZodNullable<z.ZodString>;
1941
- session: z.ZodNullable<z.ZodString>;
1942
- }, z.core.$strip>;
1943
- from: z.ZodNullable<z.ZodString>;
1944
- }, z.core.$strip>;
1945
- 'reaction.removed': z.ZodObject<{
1946
- id: z.ZodNumber;
1947
- thread: z.ZodString;
1948
- emoji: z.ZodString;
1949
- by: z.ZodObject<{
1950
- actor: z.ZodString;
1951
- principal: z.ZodString;
1952
- profile: z.ZodNullable<z.ZodString>;
1953
- session: z.ZodNullable<z.ZodString>;
1954
- }, z.core.$strip>;
1955
- from: z.ZodNullable<z.ZodString>;
1956
- }, z.core.$strip>;
1957
- 'labels.changed': z.ZodObject<{
1958
- id: z.ZodNumber;
1959
- thread: z.ZodString;
1960
- set: z.ZodRecord<z.ZodString, z.ZodString>;
1961
- unset: z.ZodArray<z.ZodString>;
1962
- by: z.ZodObject<{
1963
- actor: z.ZodString;
1964
- principal: z.ZodString;
1965
- profile: z.ZodNullable<z.ZodString>;
1966
- session: z.ZodNullable<z.ZodString>;
1967
- }, z.core.$strip>;
1968
- }, z.core.$strip>;
1969
- 'thread.synced': z.ZodObject<{
1970
- thread: z.ZodString;
1971
- target: z.ZodString;
1972
- cause: z.ZodEnum<{
1973
- config: "config";
1974
- request: "request";
1975
- }>;
1976
- kind: z.ZodOptional<z.ZodEnum<{
1977
- channel: "channel";
1978
- thread: "thread";
1979
- }>>;
1980
- by: z.ZodObject<{
1981
- actor: z.ZodString;
1982
- principal: z.ZodString;
1983
- profile: z.ZodNullable<z.ZodString>;
1984
- session: z.ZodNullable<z.ZodString>;
1985
- }, z.core.$strip>;
1986
- }, z.core.$strip>;
1987
- 'message.synced': z.ZodObject<{
1988
- id: z.ZodNumber;
1989
- thread: z.ZodString;
1990
- target: z.ZodString;
1991
- external: z.ZodObject<{
1992
- thread: z.ZodString;
1993
- message: z.ZodString;
1994
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
1995
- }, z.core.$strip>;
1996
- syncedBy: z.ZodOptional<z.ZodString>;
1997
- }, z.core.$strip>;
1998
- 'message.files_synced': z.ZodObject<{
1999
- id: z.ZodNumber;
2000
- thread: z.ZodString;
2001
- target: z.ZodString;
2002
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
2003
- syncedBy: z.ZodOptional<z.ZodString>;
2004
- }, z.core.$strip>;
2005
- 'message.sync_failed': z.ZodObject<{
2006
- id: z.ZodNumber;
2007
- thread: z.ZodString;
2008
- target: z.ZodString;
2009
- error: z.ZodString;
2010
- }, z.core.$strip>;
2011
- 'actor.seen': z.ZodObject<{
2012
- actor: z.ZodString;
2013
- kind: z.ZodUnion<readonly [z.ZodEnum<{
2014
- agent: "agent";
2015
- deployment: "deployment";
2016
- external: "external";
2017
- person: "person";
2018
- workflow: "workflow";
2019
- }>, z.ZodLiteral<"profile">]>;
2020
- handle: z.ZodString;
2021
- name: z.ZodString;
2022
- avatar: z.ZodNullable<z.ZodString>;
2023
- host: z.ZodOptional<z.ZodLiteral<true>>;
2024
- }, z.core.$strip>;
2025
- 'actor.linked': z.ZodObject<{
2026
- actor: z.ZodString;
2027
- to: z.ZodString;
2028
- method: z.ZodEnum<{
2029
- code: "code";
2030
- consent: "consent";
2031
- }>;
2032
- by: z.ZodObject<{
2033
- actor: z.ZodString;
2034
- principal: z.ZodString;
2035
- profile: z.ZodNullable<z.ZodString>;
2036
- session: z.ZodNullable<z.ZodString>;
2037
- }, z.core.$strip>;
2038
- }, z.core.$strip>;
2039
- 'actor.unlinked': z.ZodObject<{
2040
- actor: z.ZodString;
2041
- by: z.ZodObject<{
2042
- actor: z.ZodString;
2043
- principal: z.ZodString;
2044
- profile: z.ZodNullable<z.ZodString>;
2045
- session: z.ZodNullable<z.ZodString>;
2046
- }, z.core.$strip>;
2047
- }, z.core.$strip>;
2048
- }>;
2049
- schedule: import("experimental-a2/server").SessionSchedule<{
2050
- 'message.posted': z.ZodObject<{
2051
- channel: z.ZodString;
2052
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
2053
- re: z.ZodNullable<z.ZodNumber>;
2054
- replyTo: z.ZodNullable<z.ZodNumber>;
2055
- thread: z.ZodString;
2056
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
2057
- noSync: z.ZodBoolean;
2058
- mentions: z.ZodArray<z.ZodString>;
2059
- by: z.ZodObject<{
2060
- actor: z.ZodString;
2061
- principal: z.ZodString;
2062
- profile: z.ZodNullable<z.ZodString>;
2063
- session: z.ZodNullable<z.ZodString>;
2064
- }, z.core.$strip>;
2065
- origin: z.ZodNullable<z.ZodObject<{
2066
- channel: z.ZodOptional<z.ZodString>;
2067
- thread: z.ZodString;
2068
- subthread: z.ZodNullable<z.ZodString>;
2069
- message: z.ZodString;
2070
- context: z.ZodNullable<z.ZodString>;
2071
- }, z.core.$strip>>;
2072
- from: z.ZodNullable<z.ZodString>;
2073
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2074
- id: z.ZodString;
2075
- name: z.ZodString;
2076
- type: z.ZodString;
2077
- size: z.ZodNumber;
2078
- }, z.core.$strip>>>;
2079
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2080
- url: z.ZodString;
2081
- message: z.ZodNullable<z.ZodNumber>;
2082
- snapshot: z.ZodNullable<z.ZodObject<{
2083
- author: z.ZodString;
2084
- text: z.ZodString;
2085
- createdAt: z.ZodNullable<z.ZodString>;
2086
- files: z.ZodArray<z.ZodObject<{
2087
- name: z.ZodString;
2088
- url: z.ZodNullable<z.ZodString>;
2089
- }, z.core.$strip>>;
2090
- }, z.core.$strip>>;
2091
- unavailable: z.ZodNullable<z.ZodString>;
2092
- }, z.core.$strip>>>;
2093
- schedule: z.ZodOptional<z.ZodObject<{
2094
- id: z.ZodNumber;
2095
- n: z.ZodNumber;
2096
- }, z.core.$strip>>;
2097
- blind: z.ZodOptional<z.ZodLiteral<true>>;
2098
- importedBy: z.ZodOptional<z.ZodString>;
2099
- }, z.core.$strip>;
2100
- 'message.linked': z.ZodObject<{
2101
- id: z.ZodNumber;
2102
- thread: z.ZodString;
2103
- links: z.ZodArray<z.ZodObject<{
2104
- url: z.ZodString;
2105
- message: z.ZodNullable<z.ZodNumber>;
2106
- snapshot: z.ZodNullable<z.ZodObject<{
2107
- author: z.ZodString;
2108
- text: z.ZodString;
2109
- createdAt: z.ZodNullable<z.ZodString>;
2110
- files: z.ZodArray<z.ZodObject<{
2111
- name: z.ZodString;
2112
- url: z.ZodNullable<z.ZodString>;
2113
- }, z.core.$strip>>;
2114
- }, z.core.$strip>>;
2115
- unavailable: z.ZodNullable<z.ZodString>;
2116
- }, z.core.$strip>>;
2117
- by: z.ZodObject<{
2118
- actor: z.ZodString;
2119
- principal: z.ZodString;
2120
- profile: z.ZodNullable<z.ZodString>;
2121
- session: z.ZodNullable<z.ZodString>;
2122
- }, z.core.$strip>;
2123
- from: z.ZodNullable<z.ZodString>;
2124
- }, z.core.$strip>;
2125
- 'message.edited': z.ZodObject<{
2126
- id: z.ZodNumber;
2127
- thread: z.ZodString;
2128
- text: z.ZodString;
2129
- mentions: z.ZodArray<z.ZodString>;
2130
- by: z.ZodObject<{
2131
- actor: z.ZodString;
2132
- principal: z.ZodString;
2133
- profile: z.ZodNullable<z.ZodString>;
2134
- session: z.ZodNullable<z.ZodString>;
2135
- }, z.core.$strip>;
2136
- from: z.ZodNullable<z.ZodString>;
2137
- }, z.core.$strip>;
2138
- 'message.deleted': z.ZodObject<{
2139
- id: z.ZodNumber;
2140
- thread: z.ZodString;
2141
- by: z.ZodObject<{
2142
- actor: z.ZodString;
2143
- principal: z.ZodString;
2144
- profile: z.ZodNullable<z.ZodString>;
2145
- session: z.ZodNullable<z.ZodString>;
2146
- }, z.core.$strip>;
2147
- from: z.ZodNullable<z.ZodString>;
2148
- }, z.core.$strip>;
2149
- 'reaction.added': z.ZodObject<{
2150
- id: z.ZodNumber;
2151
- thread: z.ZodString;
2152
- emoji: z.ZodString;
2153
- by: z.ZodObject<{
2154
- actor: z.ZodString;
2155
- principal: z.ZodString;
2156
- profile: z.ZodNullable<z.ZodString>;
2157
- session: z.ZodNullable<z.ZodString>;
2158
- }, z.core.$strip>;
2159
- from: z.ZodNullable<z.ZodString>;
2160
- }, z.core.$strip>;
2161
- 'reaction.removed': z.ZodObject<{
2162
- id: z.ZodNumber;
2163
- thread: z.ZodString;
2164
- emoji: z.ZodString;
2165
- by: z.ZodObject<{
2166
- actor: z.ZodString;
2167
- principal: z.ZodString;
2168
- profile: z.ZodNullable<z.ZodString>;
2169
- session: z.ZodNullable<z.ZodString>;
2170
- }, z.core.$strip>;
2171
- from: z.ZodNullable<z.ZodString>;
2172
- }, z.core.$strip>;
2173
- 'labels.changed': z.ZodObject<{
2174
- id: z.ZodNumber;
2175
- thread: z.ZodString;
2176
- set: z.ZodRecord<z.ZodString, z.ZodString>;
2177
- unset: z.ZodArray<z.ZodString>;
2178
- by: z.ZodObject<{
2179
- actor: z.ZodString;
2180
- principal: z.ZodString;
2181
- profile: z.ZodNullable<z.ZodString>;
2182
- session: z.ZodNullable<z.ZodString>;
2183
- }, z.core.$strip>;
2184
- }, z.core.$strip>;
2185
- 'thread.synced': z.ZodObject<{
2186
- thread: z.ZodString;
2187
- target: z.ZodString;
2188
- cause: z.ZodEnum<{
2189
- config: "config";
2190
- request: "request";
2191
- }>;
2192
- kind: z.ZodOptional<z.ZodEnum<{
2193
- channel: "channel";
2194
- thread: "thread";
2195
- }>>;
2196
- by: z.ZodObject<{
2197
- actor: z.ZodString;
2198
- principal: z.ZodString;
2199
- profile: z.ZodNullable<z.ZodString>;
2200
- session: z.ZodNullable<z.ZodString>;
2201
- }, z.core.$strip>;
2202
- }, z.core.$strip>;
2203
- 'message.synced': z.ZodObject<{
2204
- id: z.ZodNumber;
2205
- thread: z.ZodString;
2206
- target: z.ZodString;
2207
- external: z.ZodObject<{
2208
- thread: z.ZodString;
2209
- message: z.ZodString;
2210
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
2211
- }, z.core.$strip>;
2212
- syncedBy: z.ZodOptional<z.ZodString>;
2213
- }, z.core.$strip>;
2214
- 'message.files_synced': z.ZodObject<{
2215
- id: z.ZodNumber;
2216
- thread: z.ZodString;
2217
- target: z.ZodString;
2218
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
2219
- syncedBy: z.ZodOptional<z.ZodString>;
2220
- }, z.core.$strip>;
2221
- 'message.sync_failed': z.ZodObject<{
2222
- id: z.ZodNumber;
2223
- thread: z.ZodString;
2224
- target: z.ZodString;
2225
- error: z.ZodString;
2226
- }, z.core.$strip>;
2227
- 'actor.seen': z.ZodObject<{
2228
- actor: z.ZodString;
2229
- kind: z.ZodUnion<readonly [z.ZodEnum<{
2230
- agent: "agent";
2231
- deployment: "deployment";
2232
- external: "external";
2233
- person: "person";
2234
- workflow: "workflow";
2235
- }>, z.ZodLiteral<"profile">]>;
2236
- handle: z.ZodString;
2237
- name: z.ZodString;
2238
- avatar: z.ZodNullable<z.ZodString>;
2239
- host: z.ZodOptional<z.ZodLiteral<true>>;
2240
- }, z.core.$strip>;
2241
- 'actor.linked': z.ZodObject<{
2242
- actor: z.ZodString;
2243
- to: z.ZodString;
2244
- method: z.ZodEnum<{
2245
- code: "code";
2246
- consent: "consent";
2247
- }>;
2248
- by: z.ZodObject<{
2249
- actor: z.ZodString;
2250
- principal: z.ZodString;
2251
- profile: z.ZodNullable<z.ZodString>;
2252
- session: z.ZodNullable<z.ZodString>;
2253
- }, z.core.$strip>;
2254
- }, z.core.$strip>;
2255
- 'actor.unlinked': z.ZodObject<{
2256
- actor: z.ZodString;
2257
- by: z.ZodObject<{
2258
- actor: z.ZodString;
2259
- principal: z.ZodString;
2260
- profile: z.ZodNullable<z.ZodString>;
2261
- session: z.ZodNullable<z.ZodString>;
2262
- }, z.core.$strip>;
2263
- }, z.core.$strip>;
2264
- }>;
2265
- clear(options?: import("experimental-a2/server").SessionClearOptions): Promise<import("experimental-a2/server").SessionClearResult>;
2266
- history(options?: {
2267
- gte?: number;
2268
- lte?: number;
2269
- }): Promise<import("experimental-a2").ContractEvent<{
2270
- 'message.posted': z.ZodObject<{
2271
- channel: z.ZodString;
2272
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
2273
- re: z.ZodNullable<z.ZodNumber>;
2274
- replyTo: z.ZodNullable<z.ZodNumber>;
2275
- thread: z.ZodString;
2276
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
2277
- noSync: z.ZodBoolean;
2278
- mentions: z.ZodArray<z.ZodString>;
2279
- by: z.ZodObject<{
2280
- actor: z.ZodString;
2281
- principal: z.ZodString;
2282
- profile: z.ZodNullable<z.ZodString>;
2283
- session: z.ZodNullable<z.ZodString>;
2284
- }, z.core.$strip>;
2285
- origin: z.ZodNullable<z.ZodObject<{
2286
- channel: z.ZodOptional<z.ZodString>;
2287
- thread: z.ZodString;
2288
- subthread: z.ZodNullable<z.ZodString>;
2289
- message: z.ZodString;
2290
- context: z.ZodNullable<z.ZodString>;
2291
- }, z.core.$strip>>;
2292
- from: z.ZodNullable<z.ZodString>;
2293
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2294
- id: z.ZodString;
2295
- name: z.ZodString;
2296
- type: z.ZodString;
2297
- size: z.ZodNumber;
2298
- }, z.core.$strip>>>;
2299
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2300
- url: z.ZodString;
2301
- message: z.ZodNullable<z.ZodNumber>;
2302
- snapshot: z.ZodNullable<z.ZodObject<{
2303
- author: z.ZodString;
2304
- text: z.ZodString;
2305
- createdAt: z.ZodNullable<z.ZodString>;
2306
- files: z.ZodArray<z.ZodObject<{
2307
- name: z.ZodString;
2308
- url: z.ZodNullable<z.ZodString>;
2309
- }, z.core.$strip>>;
2310
- }, z.core.$strip>>;
2311
- unavailable: z.ZodNullable<z.ZodString>;
2312
- }, z.core.$strip>>>;
2313
- schedule: z.ZodOptional<z.ZodObject<{
2314
- id: z.ZodNumber;
2315
- n: z.ZodNumber;
2316
- }, z.core.$strip>>;
2317
- blind: z.ZodOptional<z.ZodLiteral<true>>;
2318
- importedBy: z.ZodOptional<z.ZodString>;
2319
- }, z.core.$strip>;
2320
- 'message.linked': z.ZodObject<{
2321
- id: z.ZodNumber;
2322
- thread: z.ZodString;
2323
- links: z.ZodArray<z.ZodObject<{
2324
- url: z.ZodString;
2325
- message: z.ZodNullable<z.ZodNumber>;
2326
- snapshot: z.ZodNullable<z.ZodObject<{
2327
- author: z.ZodString;
2328
- text: z.ZodString;
2329
- createdAt: z.ZodNullable<z.ZodString>;
2330
- files: z.ZodArray<z.ZodObject<{
2331
- name: z.ZodString;
2332
- url: z.ZodNullable<z.ZodString>;
2333
- }, z.core.$strip>>;
2334
- }, z.core.$strip>>;
2335
- unavailable: z.ZodNullable<z.ZodString>;
2336
- }, z.core.$strip>>;
2337
- by: z.ZodObject<{
2338
- actor: z.ZodString;
2339
- principal: z.ZodString;
2340
- profile: z.ZodNullable<z.ZodString>;
2341
- session: z.ZodNullable<z.ZodString>;
2342
- }, z.core.$strip>;
2343
- from: z.ZodNullable<z.ZodString>;
2344
- }, z.core.$strip>;
2345
- 'message.edited': z.ZodObject<{
2346
- id: z.ZodNumber;
2347
- thread: z.ZodString;
2348
- text: z.ZodString;
2349
- mentions: z.ZodArray<z.ZodString>;
2350
- by: z.ZodObject<{
2351
- actor: z.ZodString;
2352
- principal: z.ZodString;
2353
- profile: z.ZodNullable<z.ZodString>;
2354
- session: z.ZodNullable<z.ZodString>;
2355
- }, z.core.$strip>;
2356
- from: z.ZodNullable<z.ZodString>;
2357
- }, z.core.$strip>;
2358
- 'message.deleted': z.ZodObject<{
2359
- id: z.ZodNumber;
2360
- thread: z.ZodString;
2361
- by: z.ZodObject<{
2362
- actor: z.ZodString;
2363
- principal: z.ZodString;
2364
- profile: z.ZodNullable<z.ZodString>;
2365
- session: z.ZodNullable<z.ZodString>;
2366
- }, z.core.$strip>;
2367
- from: z.ZodNullable<z.ZodString>;
2368
- }, z.core.$strip>;
2369
- 'reaction.added': z.ZodObject<{
2370
- id: z.ZodNumber;
2371
- thread: z.ZodString;
2372
- emoji: z.ZodString;
2373
- by: z.ZodObject<{
2374
- actor: z.ZodString;
2375
- principal: z.ZodString;
2376
- profile: z.ZodNullable<z.ZodString>;
2377
- session: z.ZodNullable<z.ZodString>;
2378
- }, z.core.$strip>;
2379
- from: z.ZodNullable<z.ZodString>;
2380
- }, z.core.$strip>;
2381
- 'reaction.removed': z.ZodObject<{
2382
- id: z.ZodNumber;
2383
- thread: z.ZodString;
2384
- emoji: z.ZodString;
2385
- by: z.ZodObject<{
2386
- actor: z.ZodString;
2387
- principal: z.ZodString;
2388
- profile: z.ZodNullable<z.ZodString>;
2389
- session: z.ZodNullable<z.ZodString>;
2390
- }, z.core.$strip>;
2391
- from: z.ZodNullable<z.ZodString>;
2392
- }, z.core.$strip>;
2393
- 'labels.changed': z.ZodObject<{
2394
- id: z.ZodNumber;
2395
- thread: z.ZodString;
2396
- set: z.ZodRecord<z.ZodString, z.ZodString>;
2397
- unset: z.ZodArray<z.ZodString>;
2398
- by: z.ZodObject<{
2399
- actor: z.ZodString;
2400
- principal: z.ZodString;
2401
- profile: z.ZodNullable<z.ZodString>;
2402
- session: z.ZodNullable<z.ZodString>;
2403
- }, z.core.$strip>;
2404
- }, z.core.$strip>;
2405
- 'thread.synced': z.ZodObject<{
2406
- thread: z.ZodString;
2407
- target: z.ZodString;
2408
- cause: z.ZodEnum<{
2409
- config: "config";
2410
- request: "request";
2411
- }>;
2412
- kind: z.ZodOptional<z.ZodEnum<{
2413
- channel: "channel";
2414
- thread: "thread";
2415
- }>>;
2416
- by: z.ZodObject<{
2417
- actor: z.ZodString;
2418
- principal: z.ZodString;
2419
- profile: z.ZodNullable<z.ZodString>;
2420
- session: z.ZodNullable<z.ZodString>;
2421
- }, z.core.$strip>;
2422
- }, z.core.$strip>;
2423
- 'message.synced': z.ZodObject<{
2424
- id: z.ZodNumber;
2425
- thread: z.ZodString;
2426
- target: z.ZodString;
2427
- external: z.ZodObject<{
2428
- thread: z.ZodString;
2429
- message: z.ZodString;
2430
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
2431
- }, z.core.$strip>;
2432
- syncedBy: z.ZodOptional<z.ZodString>;
2433
- }, z.core.$strip>;
2434
- 'message.files_synced': z.ZodObject<{
2435
- id: z.ZodNumber;
2436
- thread: z.ZodString;
2437
- target: z.ZodString;
2438
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
2439
- syncedBy: z.ZodOptional<z.ZodString>;
2440
- }, z.core.$strip>;
2441
- 'message.sync_failed': z.ZodObject<{
2442
- id: z.ZodNumber;
2443
- thread: z.ZodString;
2444
- target: z.ZodString;
2445
- error: z.ZodString;
2446
- }, z.core.$strip>;
2447
- 'actor.seen': z.ZodObject<{
2448
- actor: z.ZodString;
2449
- kind: z.ZodUnion<readonly [z.ZodEnum<{
2450
- agent: "agent";
2451
- deployment: "deployment";
2452
- external: "external";
2453
- person: "person";
2454
- workflow: "workflow";
2455
- }>, z.ZodLiteral<"profile">]>;
2456
- handle: z.ZodString;
2457
- name: z.ZodString;
2458
- avatar: z.ZodNullable<z.ZodString>;
2459
- host: z.ZodOptional<z.ZodLiteral<true>>;
2460
- }, z.core.$strip>;
2461
- 'actor.linked': z.ZodObject<{
2462
- actor: z.ZodString;
2463
- to: z.ZodString;
2464
- method: z.ZodEnum<{
2465
- code: "code";
2466
- consent: "consent";
2467
- }>;
2468
- by: z.ZodObject<{
2469
- actor: z.ZodString;
2470
- principal: z.ZodString;
2471
- profile: z.ZodNullable<z.ZodString>;
2472
- session: z.ZodNullable<z.ZodString>;
2473
- }, z.core.$strip>;
2474
- }, z.core.$strip>;
2475
- 'actor.unlinked': z.ZodObject<{
2476
- actor: z.ZodString;
2477
- by: z.ZodObject<{
2478
- actor: z.ZodString;
2479
- principal: z.ZodString;
2480
- profile: z.ZodNullable<z.ZodString>;
2481
- session: z.ZodNullable<z.ZodString>;
2482
- }, z.core.$strip>;
2483
- }, z.core.$strip>;
2484
- }>[]>;
2485
- consume(consumer: import("experimental-a2/server").Consumer<{
2486
- 'message.posted': z.ZodObject<{
2487
- channel: z.ZodString;
2488
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
2489
- re: z.ZodNullable<z.ZodNumber>;
2490
- replyTo: z.ZodNullable<z.ZodNumber>;
2491
- thread: z.ZodString;
2492
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
2493
- noSync: z.ZodBoolean;
2494
- mentions: z.ZodArray<z.ZodString>;
2495
- by: z.ZodObject<{
2496
- actor: z.ZodString;
2497
- principal: z.ZodString;
2498
- profile: z.ZodNullable<z.ZodString>;
2499
- session: z.ZodNullable<z.ZodString>;
2500
- }, z.core.$strip>;
2501
- origin: z.ZodNullable<z.ZodObject<{
2502
- channel: z.ZodOptional<z.ZodString>;
2503
- thread: z.ZodString;
2504
- subthread: z.ZodNullable<z.ZodString>;
2505
- message: z.ZodString;
2506
- context: z.ZodNullable<z.ZodString>;
2507
- }, z.core.$strip>>;
2508
- from: z.ZodNullable<z.ZodString>;
2509
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2510
- id: z.ZodString;
2511
- name: z.ZodString;
2512
- type: z.ZodString;
2513
- size: z.ZodNumber;
2514
- }, z.core.$strip>>>;
2515
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2516
- url: z.ZodString;
2517
- message: z.ZodNullable<z.ZodNumber>;
2518
- snapshot: z.ZodNullable<z.ZodObject<{
2519
- author: z.ZodString;
2520
- text: z.ZodString;
2521
- createdAt: z.ZodNullable<z.ZodString>;
2522
- files: z.ZodArray<z.ZodObject<{
2523
- name: z.ZodString;
2524
- url: z.ZodNullable<z.ZodString>;
2525
- }, z.core.$strip>>;
2526
- }, z.core.$strip>>;
2527
- unavailable: z.ZodNullable<z.ZodString>;
2528
- }, z.core.$strip>>>;
2529
- schedule: z.ZodOptional<z.ZodObject<{
2530
- id: z.ZodNumber;
2531
- n: z.ZodNumber;
2532
- }, z.core.$strip>>;
2533
- blind: z.ZodOptional<z.ZodLiteral<true>>;
2534
- importedBy: z.ZodOptional<z.ZodString>;
2535
- }, z.core.$strip>;
2536
- 'message.linked': z.ZodObject<{
2537
- id: z.ZodNumber;
2538
- thread: z.ZodString;
2539
- links: z.ZodArray<z.ZodObject<{
2540
- url: z.ZodString;
2541
- message: z.ZodNullable<z.ZodNumber>;
2542
- snapshot: z.ZodNullable<z.ZodObject<{
2543
- author: z.ZodString;
2544
- text: z.ZodString;
2545
- createdAt: z.ZodNullable<z.ZodString>;
2546
- files: z.ZodArray<z.ZodObject<{
2547
- name: z.ZodString;
2548
- url: z.ZodNullable<z.ZodString>;
2549
- }, z.core.$strip>>;
2550
- }, z.core.$strip>>;
2551
- unavailable: z.ZodNullable<z.ZodString>;
2552
- }, z.core.$strip>>;
2553
- by: z.ZodObject<{
2554
- actor: z.ZodString;
2555
- principal: z.ZodString;
2556
- profile: z.ZodNullable<z.ZodString>;
2557
- session: z.ZodNullable<z.ZodString>;
2558
- }, z.core.$strip>;
2559
- from: z.ZodNullable<z.ZodString>;
2560
- }, z.core.$strip>;
2561
- 'message.edited': z.ZodObject<{
2562
- id: z.ZodNumber;
2563
- thread: z.ZodString;
2564
- text: z.ZodString;
2565
- mentions: z.ZodArray<z.ZodString>;
2566
- by: z.ZodObject<{
2567
- actor: z.ZodString;
2568
- principal: z.ZodString;
2569
- profile: z.ZodNullable<z.ZodString>;
2570
- session: z.ZodNullable<z.ZodString>;
2571
- }, z.core.$strip>;
2572
- from: z.ZodNullable<z.ZodString>;
2573
- }, z.core.$strip>;
2574
- 'message.deleted': z.ZodObject<{
2575
- id: z.ZodNumber;
2576
- thread: z.ZodString;
2577
- by: z.ZodObject<{
2578
- actor: z.ZodString;
2579
- principal: z.ZodString;
2580
- profile: z.ZodNullable<z.ZodString>;
2581
- session: z.ZodNullable<z.ZodString>;
2582
- }, z.core.$strip>;
2583
- from: z.ZodNullable<z.ZodString>;
2584
- }, z.core.$strip>;
2585
- 'reaction.added': z.ZodObject<{
2586
- id: z.ZodNumber;
2587
- thread: z.ZodString;
2588
- emoji: z.ZodString;
2589
- by: z.ZodObject<{
2590
- actor: z.ZodString;
2591
- principal: z.ZodString;
2592
- profile: z.ZodNullable<z.ZodString>;
2593
- session: z.ZodNullable<z.ZodString>;
2594
- }, z.core.$strip>;
2595
- from: z.ZodNullable<z.ZodString>;
2596
- }, z.core.$strip>;
2597
- 'reaction.removed': z.ZodObject<{
2598
- id: z.ZodNumber;
2599
- thread: z.ZodString;
2600
- emoji: z.ZodString;
2601
- by: z.ZodObject<{
2602
- actor: z.ZodString;
2603
- principal: z.ZodString;
2604
- profile: z.ZodNullable<z.ZodString>;
2605
- session: z.ZodNullable<z.ZodString>;
2606
- }, z.core.$strip>;
2607
- from: z.ZodNullable<z.ZodString>;
2608
- }, z.core.$strip>;
2609
- 'labels.changed': z.ZodObject<{
2610
- id: z.ZodNumber;
2611
- thread: z.ZodString;
2612
- set: z.ZodRecord<z.ZodString, z.ZodString>;
2613
- unset: z.ZodArray<z.ZodString>;
2614
- by: z.ZodObject<{
2615
- actor: z.ZodString;
2616
- principal: z.ZodString;
2617
- profile: z.ZodNullable<z.ZodString>;
2618
- session: z.ZodNullable<z.ZodString>;
2619
- }, z.core.$strip>;
2620
- }, z.core.$strip>;
2621
- 'thread.synced': z.ZodObject<{
2622
- thread: z.ZodString;
2623
- target: z.ZodString;
2624
- cause: z.ZodEnum<{
2625
- config: "config";
2626
- request: "request";
2627
- }>;
2628
- kind: z.ZodOptional<z.ZodEnum<{
2629
- channel: "channel";
2630
- thread: "thread";
2631
- }>>;
2632
- by: z.ZodObject<{
2633
- actor: z.ZodString;
2634
- principal: z.ZodString;
2635
- profile: z.ZodNullable<z.ZodString>;
2636
- session: z.ZodNullable<z.ZodString>;
2637
- }, z.core.$strip>;
2638
- }, z.core.$strip>;
2639
- 'message.synced': z.ZodObject<{
2640
- id: z.ZodNumber;
2641
- thread: z.ZodString;
2642
- target: z.ZodString;
2643
- external: z.ZodObject<{
2644
- thread: z.ZodString;
2645
- message: z.ZodString;
2646
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
2647
- }, z.core.$strip>;
2648
- syncedBy: z.ZodOptional<z.ZodString>;
2649
- }, z.core.$strip>;
2650
- 'message.files_synced': z.ZodObject<{
2651
- id: z.ZodNumber;
2652
- thread: z.ZodString;
2653
- target: z.ZodString;
2654
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
2655
- syncedBy: z.ZodOptional<z.ZodString>;
2656
- }, z.core.$strip>;
2657
- 'message.sync_failed': z.ZodObject<{
2658
- id: z.ZodNumber;
2659
- thread: z.ZodString;
2660
- target: z.ZodString;
2661
- error: z.ZodString;
2662
- }, z.core.$strip>;
2663
- 'actor.seen': z.ZodObject<{
2664
- actor: z.ZodString;
2665
- kind: z.ZodUnion<readonly [z.ZodEnum<{
2666
- agent: "agent";
2667
- deployment: "deployment";
2668
- external: "external";
2669
- person: "person";
2670
- workflow: "workflow";
2671
- }>, z.ZodLiteral<"profile">]>;
2672
- handle: z.ZodString;
2673
- name: z.ZodString;
2674
- avatar: z.ZodNullable<z.ZodString>;
2675
- host: z.ZodOptional<z.ZodLiteral<true>>;
2676
- }, z.core.$strip>;
2677
- 'actor.linked': z.ZodObject<{
2678
- actor: z.ZodString;
2679
- to: z.ZodString;
2680
- method: z.ZodEnum<{
2681
- code: "code";
2682
- consent: "consent";
2683
- }>;
2684
- by: z.ZodObject<{
2685
- actor: z.ZodString;
2686
- principal: z.ZodString;
2687
- profile: z.ZodNullable<z.ZodString>;
2688
- session: z.ZodNullable<z.ZodString>;
2689
- }, z.core.$strip>;
2690
- }, z.core.$strip>;
2691
- 'actor.unlinked': z.ZodObject<{
2692
- actor: z.ZodString;
2693
- by: z.ZodObject<{
2694
- actor: z.ZodString;
2695
- principal: z.ZodString;
2696
- profile: z.ZodNullable<z.ZodString>;
2697
- session: z.ZodNullable<z.ZodString>;
2698
- }, z.core.$strip>;
2699
- }, z.core.$strip>;
2700
- }>, options?: import("experimental-a2/server").SessionConsumeOptions): Promise<import("experimental-a2/server").SessionConsumeResult>;
2701
- state: <T>(reducer: import("experimental-a2").Reducer<{
2702
- 'message.posted': z.ZodObject<{
2703
- channel: z.ZodString;
2704
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
2705
- re: z.ZodNullable<z.ZodNumber>;
2706
- replyTo: z.ZodNullable<z.ZodNumber>;
2707
- thread: z.ZodString;
2708
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
2709
- noSync: z.ZodBoolean;
2710
- mentions: z.ZodArray<z.ZodString>;
2711
- by: z.ZodObject<{
2712
- actor: z.ZodString;
2713
- principal: z.ZodString;
2714
- profile: z.ZodNullable<z.ZodString>;
2715
- session: z.ZodNullable<z.ZodString>;
2716
- }, z.core.$strip>;
2717
- origin: z.ZodNullable<z.ZodObject<{
2718
- channel: z.ZodOptional<z.ZodString>;
2719
- thread: z.ZodString;
2720
- subthread: z.ZodNullable<z.ZodString>;
2721
- message: z.ZodString;
2722
- context: z.ZodNullable<z.ZodString>;
2723
- }, z.core.$strip>>;
2724
- from: z.ZodNullable<z.ZodString>;
2725
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2726
- id: z.ZodString;
2727
- name: z.ZodString;
2728
- type: z.ZodString;
2729
- size: z.ZodNumber;
2730
- }, z.core.$strip>>>;
2731
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2732
- url: z.ZodString;
2733
- message: z.ZodNullable<z.ZodNumber>;
2734
- snapshot: z.ZodNullable<z.ZodObject<{
2735
- author: z.ZodString;
2736
- text: z.ZodString;
2737
- createdAt: z.ZodNullable<z.ZodString>;
2738
- files: z.ZodArray<z.ZodObject<{
2739
- name: z.ZodString;
2740
- url: z.ZodNullable<z.ZodString>;
2741
- }, z.core.$strip>>;
2742
- }, z.core.$strip>>;
2743
- unavailable: z.ZodNullable<z.ZodString>;
2744
- }, z.core.$strip>>>;
2745
- schedule: z.ZodOptional<z.ZodObject<{
2746
- id: z.ZodNumber;
2747
- n: z.ZodNumber;
2748
- }, z.core.$strip>>;
2749
- blind: z.ZodOptional<z.ZodLiteral<true>>;
2750
- importedBy: z.ZodOptional<z.ZodString>;
2751
- }, z.core.$strip>;
2752
- 'message.linked': z.ZodObject<{
2753
- id: z.ZodNumber;
2754
- thread: z.ZodString;
2755
- links: z.ZodArray<z.ZodObject<{
2756
- url: z.ZodString;
2757
- message: z.ZodNullable<z.ZodNumber>;
2758
- snapshot: z.ZodNullable<z.ZodObject<{
2759
- author: z.ZodString;
2760
- text: z.ZodString;
2761
- createdAt: z.ZodNullable<z.ZodString>;
2762
- files: z.ZodArray<z.ZodObject<{
2763
- name: z.ZodString;
2764
- url: z.ZodNullable<z.ZodString>;
2765
- }, z.core.$strip>>;
2766
- }, z.core.$strip>>;
2767
- unavailable: z.ZodNullable<z.ZodString>;
2768
- }, z.core.$strip>>;
2769
- by: z.ZodObject<{
2770
- actor: z.ZodString;
2771
- principal: z.ZodString;
2772
- profile: z.ZodNullable<z.ZodString>;
2773
- session: z.ZodNullable<z.ZodString>;
2774
- }, z.core.$strip>;
2775
- from: z.ZodNullable<z.ZodString>;
2776
- }, z.core.$strip>;
2777
- 'message.edited': z.ZodObject<{
2778
- id: z.ZodNumber;
2779
- thread: z.ZodString;
2780
- text: z.ZodString;
2781
- mentions: z.ZodArray<z.ZodString>;
2782
- by: z.ZodObject<{
2783
- actor: z.ZodString;
2784
- principal: z.ZodString;
2785
- profile: z.ZodNullable<z.ZodString>;
2786
- session: z.ZodNullable<z.ZodString>;
2787
- }, z.core.$strip>;
2788
- from: z.ZodNullable<z.ZodString>;
2789
- }, z.core.$strip>;
2790
- 'message.deleted': z.ZodObject<{
2791
- id: z.ZodNumber;
2792
- thread: z.ZodString;
2793
- by: z.ZodObject<{
2794
- actor: z.ZodString;
2795
- principal: z.ZodString;
2796
- profile: z.ZodNullable<z.ZodString>;
2797
- session: z.ZodNullable<z.ZodString>;
2798
- }, z.core.$strip>;
2799
- from: z.ZodNullable<z.ZodString>;
2800
- }, z.core.$strip>;
2801
- 'reaction.added': z.ZodObject<{
2802
- id: z.ZodNumber;
2803
- thread: z.ZodString;
2804
- emoji: z.ZodString;
2805
- by: z.ZodObject<{
2806
- actor: z.ZodString;
2807
- principal: z.ZodString;
2808
- profile: z.ZodNullable<z.ZodString>;
2809
- session: z.ZodNullable<z.ZodString>;
2810
- }, z.core.$strip>;
2811
- from: z.ZodNullable<z.ZodString>;
2812
- }, z.core.$strip>;
2813
- 'reaction.removed': z.ZodObject<{
2814
- id: z.ZodNumber;
2815
- thread: z.ZodString;
2816
- emoji: z.ZodString;
2817
- by: z.ZodObject<{
2818
- actor: z.ZodString;
2819
- principal: z.ZodString;
2820
- profile: z.ZodNullable<z.ZodString>;
2821
- session: z.ZodNullable<z.ZodString>;
2822
- }, z.core.$strip>;
2823
- from: z.ZodNullable<z.ZodString>;
2824
- }, z.core.$strip>;
2825
- 'labels.changed': z.ZodObject<{
2826
- id: z.ZodNumber;
2827
- thread: z.ZodString;
2828
- set: z.ZodRecord<z.ZodString, z.ZodString>;
2829
- unset: z.ZodArray<z.ZodString>;
2830
- by: z.ZodObject<{
2831
- actor: z.ZodString;
2832
- principal: z.ZodString;
2833
- profile: z.ZodNullable<z.ZodString>;
2834
- session: z.ZodNullable<z.ZodString>;
2835
- }, z.core.$strip>;
2836
- }, z.core.$strip>;
2837
- 'thread.synced': z.ZodObject<{
2838
- thread: z.ZodString;
2839
- target: z.ZodString;
2840
- cause: z.ZodEnum<{
2841
- config: "config";
2842
- request: "request";
2843
- }>;
2844
- kind: z.ZodOptional<z.ZodEnum<{
2845
- channel: "channel";
2846
- thread: "thread";
2847
- }>>;
2848
- by: z.ZodObject<{
2849
- actor: z.ZodString;
2850
- principal: z.ZodString;
2851
- profile: z.ZodNullable<z.ZodString>;
2852
- session: z.ZodNullable<z.ZodString>;
2853
- }, z.core.$strip>;
2854
- }, z.core.$strip>;
2855
- 'message.synced': z.ZodObject<{
2856
- id: z.ZodNumber;
2857
- thread: z.ZodString;
2858
- target: z.ZodString;
2859
- external: z.ZodObject<{
2860
- thread: z.ZodString;
2861
- message: z.ZodString;
2862
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
2863
- }, z.core.$strip>;
2864
- syncedBy: z.ZodOptional<z.ZodString>;
2865
- }, z.core.$strip>;
2866
- 'message.files_synced': z.ZodObject<{
2867
- id: z.ZodNumber;
2868
- thread: z.ZodString;
2869
- target: z.ZodString;
2870
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
2871
- syncedBy: z.ZodOptional<z.ZodString>;
2872
- }, z.core.$strip>;
2873
- 'message.sync_failed': z.ZodObject<{
2874
- id: z.ZodNumber;
2875
- thread: z.ZodString;
2876
- target: z.ZodString;
2877
- error: z.ZodString;
2878
- }, z.core.$strip>;
2879
- 'actor.seen': z.ZodObject<{
2880
- actor: z.ZodString;
2881
- kind: z.ZodUnion<readonly [z.ZodEnum<{
2882
- agent: "agent";
2883
- deployment: "deployment";
2884
- external: "external";
2885
- person: "person";
2886
- workflow: "workflow";
2887
- }>, z.ZodLiteral<"profile">]>;
2888
- handle: z.ZodString;
2889
- name: z.ZodString;
2890
- avatar: z.ZodNullable<z.ZodString>;
2891
- host: z.ZodOptional<z.ZodLiteral<true>>;
2892
- }, z.core.$strip>;
2893
- 'actor.linked': z.ZodObject<{
2894
- actor: z.ZodString;
2895
- to: z.ZodString;
2896
- method: z.ZodEnum<{
2897
- code: "code";
2898
- consent: "consent";
2899
- }>;
2900
- by: z.ZodObject<{
2901
- actor: z.ZodString;
2902
- principal: z.ZodString;
2903
- profile: z.ZodNullable<z.ZodString>;
2904
- session: z.ZodNullable<z.ZodString>;
2905
- }, z.core.$strip>;
2906
- }, z.core.$strip>;
2907
- 'actor.unlinked': z.ZodObject<{
2908
- actor: z.ZodString;
2909
- by: z.ZodObject<{
2910
- actor: z.ZodString;
2911
- principal: z.ZodString;
2912
- profile: z.ZodNullable<z.ZodString>;
2913
- session: z.ZodNullable<z.ZodString>;
2914
- }, z.core.$strip>;
2915
- }, z.core.$strip>;
2916
- }, T, Record<never, never>>, options?: import("experimental-a2/server").StateOptions) => Promise<{
2917
- state: T;
2918
- index: number;
2919
- clearIndex?: number;
2920
- }>;
2921
- stream(opts?: {
2922
- startAfter?: number;
2923
- }): AsyncIterable<import("experimental-a2").ContractEvent<{
2924
- 'message.posted': z.ZodObject<{
2925
- channel: z.ZodString;
2926
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
2927
- re: z.ZodNullable<z.ZodNumber>;
2928
- replyTo: z.ZodNullable<z.ZodNumber>;
2929
- thread: z.ZodString;
2930
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
2931
- noSync: z.ZodBoolean;
2932
- mentions: z.ZodArray<z.ZodString>;
2933
- by: z.ZodObject<{
2934
- actor: z.ZodString;
2935
- principal: z.ZodString;
2936
- profile: z.ZodNullable<z.ZodString>;
2937
- session: z.ZodNullable<z.ZodString>;
2938
- }, z.core.$strip>;
2939
- origin: z.ZodNullable<z.ZodObject<{
2940
- channel: z.ZodOptional<z.ZodString>;
2941
- thread: z.ZodString;
2942
- subthread: z.ZodNullable<z.ZodString>;
2943
- message: z.ZodString;
2944
- context: z.ZodNullable<z.ZodString>;
2945
- }, z.core.$strip>>;
2946
- from: z.ZodNullable<z.ZodString>;
2947
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
2948
- id: z.ZodString;
2949
- name: z.ZodString;
2950
- type: z.ZodString;
2951
- size: z.ZodNumber;
2952
- }, z.core.$strip>>>;
2953
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
2954
- url: z.ZodString;
2955
- message: z.ZodNullable<z.ZodNumber>;
2956
- snapshot: z.ZodNullable<z.ZodObject<{
2957
- author: z.ZodString;
2958
- text: z.ZodString;
2959
- createdAt: z.ZodNullable<z.ZodString>;
2960
- files: z.ZodArray<z.ZodObject<{
2961
- name: z.ZodString;
2962
- url: z.ZodNullable<z.ZodString>;
2963
- }, z.core.$strip>>;
2964
- }, z.core.$strip>>;
2965
- unavailable: z.ZodNullable<z.ZodString>;
2966
- }, z.core.$strip>>>;
2967
- schedule: z.ZodOptional<z.ZodObject<{
2968
- id: z.ZodNumber;
2969
- n: z.ZodNumber;
2970
- }, z.core.$strip>>;
2971
- blind: z.ZodOptional<z.ZodLiteral<true>>;
2972
- importedBy: z.ZodOptional<z.ZodString>;
2973
- }, z.core.$strip>;
2974
- 'message.linked': z.ZodObject<{
2975
- id: z.ZodNumber;
2976
- thread: z.ZodString;
2977
- links: z.ZodArray<z.ZodObject<{
2978
- url: z.ZodString;
2979
- message: z.ZodNullable<z.ZodNumber>;
2980
- snapshot: z.ZodNullable<z.ZodObject<{
2981
- author: z.ZodString;
2982
- text: z.ZodString;
2983
- createdAt: z.ZodNullable<z.ZodString>;
2984
- files: z.ZodArray<z.ZodObject<{
2985
- name: z.ZodString;
2986
- url: z.ZodNullable<z.ZodString>;
2987
- }, z.core.$strip>>;
2988
- }, z.core.$strip>>;
2989
- unavailable: z.ZodNullable<z.ZodString>;
2990
- }, z.core.$strip>>;
2991
- by: z.ZodObject<{
2992
- actor: z.ZodString;
2993
- principal: z.ZodString;
2994
- profile: z.ZodNullable<z.ZodString>;
2995
- session: z.ZodNullable<z.ZodString>;
2996
- }, z.core.$strip>;
2997
- from: z.ZodNullable<z.ZodString>;
2998
- }, z.core.$strip>;
2999
- 'message.edited': z.ZodObject<{
3000
- id: z.ZodNumber;
3001
- thread: z.ZodString;
3002
- text: z.ZodString;
3003
- mentions: z.ZodArray<z.ZodString>;
3004
- by: z.ZodObject<{
3005
- actor: z.ZodString;
3006
- principal: z.ZodString;
3007
- profile: z.ZodNullable<z.ZodString>;
3008
- session: z.ZodNullable<z.ZodString>;
3009
- }, z.core.$strip>;
3010
- from: z.ZodNullable<z.ZodString>;
3011
- }, z.core.$strip>;
3012
- 'message.deleted': z.ZodObject<{
3013
- id: z.ZodNumber;
3014
- thread: z.ZodString;
3015
- by: z.ZodObject<{
3016
- actor: z.ZodString;
3017
- principal: z.ZodString;
3018
- profile: z.ZodNullable<z.ZodString>;
3019
- session: z.ZodNullable<z.ZodString>;
3020
- }, z.core.$strip>;
3021
- from: z.ZodNullable<z.ZodString>;
3022
- }, z.core.$strip>;
3023
- 'reaction.added': z.ZodObject<{
3024
- id: z.ZodNumber;
3025
- thread: z.ZodString;
3026
- emoji: z.ZodString;
3027
- by: z.ZodObject<{
3028
- actor: z.ZodString;
3029
- principal: z.ZodString;
3030
- profile: z.ZodNullable<z.ZodString>;
3031
- session: z.ZodNullable<z.ZodString>;
3032
- }, z.core.$strip>;
3033
- from: z.ZodNullable<z.ZodString>;
3034
- }, z.core.$strip>;
3035
- 'reaction.removed': z.ZodObject<{
3036
- id: z.ZodNumber;
3037
- thread: z.ZodString;
3038
- emoji: z.ZodString;
3039
- by: z.ZodObject<{
3040
- actor: z.ZodString;
3041
- principal: z.ZodString;
3042
- profile: z.ZodNullable<z.ZodString>;
3043
- session: z.ZodNullable<z.ZodString>;
3044
- }, z.core.$strip>;
3045
- from: z.ZodNullable<z.ZodString>;
3046
- }, z.core.$strip>;
3047
- 'labels.changed': z.ZodObject<{
3048
- id: z.ZodNumber;
3049
- thread: z.ZodString;
3050
- set: z.ZodRecord<z.ZodString, z.ZodString>;
3051
- unset: z.ZodArray<z.ZodString>;
3052
- by: z.ZodObject<{
3053
- actor: z.ZodString;
3054
- principal: z.ZodString;
3055
- profile: z.ZodNullable<z.ZodString>;
3056
- session: z.ZodNullable<z.ZodString>;
3057
- }, z.core.$strip>;
3058
- }, z.core.$strip>;
3059
- 'thread.synced': z.ZodObject<{
3060
- thread: z.ZodString;
3061
- target: z.ZodString;
3062
- cause: z.ZodEnum<{
3063
- config: "config";
3064
- request: "request";
3065
- }>;
3066
- kind: z.ZodOptional<z.ZodEnum<{
3067
- channel: "channel";
3068
- thread: "thread";
3069
- }>>;
3070
- by: z.ZodObject<{
3071
- actor: z.ZodString;
3072
- principal: z.ZodString;
3073
- profile: z.ZodNullable<z.ZodString>;
3074
- session: z.ZodNullable<z.ZodString>;
3075
- }, z.core.$strip>;
3076
- }, z.core.$strip>;
3077
- 'message.synced': z.ZodObject<{
3078
- id: z.ZodNumber;
3079
- thread: z.ZodString;
3080
- target: z.ZodString;
3081
- external: z.ZodObject<{
3082
- thread: z.ZodString;
3083
- message: z.ZodString;
3084
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
3085
- }, z.core.$strip>;
3086
- syncedBy: z.ZodOptional<z.ZodString>;
3087
- }, z.core.$strip>;
3088
- 'message.files_synced': z.ZodObject<{
3089
- id: z.ZodNumber;
3090
- thread: z.ZodString;
3091
- target: z.ZodString;
3092
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
3093
- syncedBy: z.ZodOptional<z.ZodString>;
3094
- }, z.core.$strip>;
3095
- 'message.sync_failed': z.ZodObject<{
3096
- id: z.ZodNumber;
3097
- thread: z.ZodString;
3098
- target: z.ZodString;
3099
- error: z.ZodString;
3100
- }, z.core.$strip>;
3101
- 'actor.seen': z.ZodObject<{
3102
- actor: z.ZodString;
3103
- kind: z.ZodUnion<readonly [z.ZodEnum<{
3104
- agent: "agent";
3105
- deployment: "deployment";
3106
- external: "external";
3107
- person: "person";
3108
- workflow: "workflow";
3109
- }>, z.ZodLiteral<"profile">]>;
3110
- handle: z.ZodString;
3111
- name: z.ZodString;
3112
- avatar: z.ZodNullable<z.ZodString>;
3113
- host: z.ZodOptional<z.ZodLiteral<true>>;
3114
- }, z.core.$strip>;
3115
- 'actor.linked': z.ZodObject<{
3116
- actor: z.ZodString;
3117
- to: z.ZodString;
3118
- method: z.ZodEnum<{
3119
- code: "code";
3120
- consent: "consent";
3121
- }>;
3122
- by: z.ZodObject<{
3123
- actor: z.ZodString;
3124
- principal: z.ZodString;
3125
- profile: z.ZodNullable<z.ZodString>;
3126
- session: z.ZodNullable<z.ZodString>;
3127
- }, z.core.$strip>;
3128
- }, z.core.$strip>;
3129
- 'actor.unlinked': z.ZodObject<{
3130
- actor: z.ZodString;
3131
- by: z.ZodObject<{
3132
- actor: z.ZodString;
3133
- principal: z.ZodString;
3134
- profile: z.ZodNullable<z.ZodString>;
3135
- session: z.ZodNullable<z.ZodString>;
3136
- }, z.core.$strip>;
3137
- }, z.core.$strip>;
3138
- }> | import("experimental-a2").SessionCleared>;
3139
- } & import("experimental-a2/server").SessionDeadLetters<{
3140
- 'message.posted': z.ZodObject<{
3141
- channel: z.ZodString;
3142
- text: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"">]>;
3143
- re: z.ZodNullable<z.ZodNumber>;
3144
- replyTo: z.ZodNullable<z.ZodNumber>;
3145
- thread: z.ZodString;
3146
- labels: z.ZodRecord<z.ZodString, z.ZodString>;
3147
- noSync: z.ZodBoolean;
3148
- mentions: z.ZodArray<z.ZodString>;
3149
- by: z.ZodObject<{
3150
- actor: z.ZodString;
3151
- principal: z.ZodString;
3152
- profile: z.ZodNullable<z.ZodString>;
3153
- session: z.ZodNullable<z.ZodString>;
3154
- }, z.core.$strip>;
3155
- origin: z.ZodNullable<z.ZodObject<{
3156
- channel: z.ZodOptional<z.ZodString>;
3157
- thread: z.ZodString;
3158
- subthread: z.ZodNullable<z.ZodString>;
3159
- message: z.ZodString;
3160
- context: z.ZodNullable<z.ZodString>;
3161
- }, z.core.$strip>>;
3162
- from: z.ZodNullable<z.ZodString>;
3163
- attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
3164
- id: z.ZodString;
3165
- name: z.ZodString;
3166
- type: z.ZodString;
3167
- size: z.ZodNumber;
3168
- }, z.core.$strip>>>;
3169
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
3170
- url: z.ZodString;
3171
- message: z.ZodNullable<z.ZodNumber>;
3172
- snapshot: z.ZodNullable<z.ZodObject<{
3173
- author: z.ZodString;
3174
- text: z.ZodString;
3175
- createdAt: z.ZodNullable<z.ZodString>;
3176
- files: z.ZodArray<z.ZodObject<{
3177
- name: z.ZodString;
3178
- url: z.ZodNullable<z.ZodString>;
3179
- }, z.core.$strip>>;
3180
- }, z.core.$strip>>;
3181
- unavailable: z.ZodNullable<z.ZodString>;
3182
- }, z.core.$strip>>>;
3183
- schedule: z.ZodOptional<z.ZodObject<{
3184
- id: z.ZodNumber;
3185
- n: z.ZodNumber;
3186
- }, z.core.$strip>>;
3187
- blind: z.ZodOptional<z.ZodLiteral<true>>;
3188
- importedBy: z.ZodOptional<z.ZodString>;
3189
- }, z.core.$strip>;
3190
- 'message.linked': z.ZodObject<{
3191
- id: z.ZodNumber;
3192
- thread: z.ZodString;
3193
- links: z.ZodArray<z.ZodObject<{
3194
- url: z.ZodString;
3195
- message: z.ZodNullable<z.ZodNumber>;
3196
- snapshot: z.ZodNullable<z.ZodObject<{
3197
- author: z.ZodString;
3198
- text: z.ZodString;
3199
- createdAt: z.ZodNullable<z.ZodString>;
3200
- files: z.ZodArray<z.ZodObject<{
3201
- name: z.ZodString;
3202
- url: z.ZodNullable<z.ZodString>;
3203
- }, z.core.$strip>>;
3204
- }, z.core.$strip>>;
3205
- unavailable: z.ZodNullable<z.ZodString>;
3206
- }, z.core.$strip>>;
3207
- by: z.ZodObject<{
3208
- actor: z.ZodString;
3209
- principal: z.ZodString;
3210
- profile: z.ZodNullable<z.ZodString>;
3211
- session: z.ZodNullable<z.ZodString>;
3212
- }, z.core.$strip>;
3213
- from: z.ZodNullable<z.ZodString>;
3214
- }, z.core.$strip>;
3215
- 'message.edited': z.ZodObject<{
3216
- id: z.ZodNumber;
3217
- thread: z.ZodString;
3218
- text: z.ZodString;
3219
- mentions: z.ZodArray<z.ZodString>;
3220
- by: z.ZodObject<{
3221
- actor: z.ZodString;
3222
- principal: z.ZodString;
3223
- profile: z.ZodNullable<z.ZodString>;
3224
- session: z.ZodNullable<z.ZodString>;
3225
- }, z.core.$strip>;
3226
- from: z.ZodNullable<z.ZodString>;
3227
- }, z.core.$strip>;
3228
- 'message.deleted': z.ZodObject<{
3229
- id: z.ZodNumber;
3230
- thread: z.ZodString;
3231
- by: z.ZodObject<{
3232
- actor: z.ZodString;
3233
- principal: z.ZodString;
3234
- profile: z.ZodNullable<z.ZodString>;
3235
- session: z.ZodNullable<z.ZodString>;
3236
- }, z.core.$strip>;
3237
- from: z.ZodNullable<z.ZodString>;
3238
- }, z.core.$strip>;
3239
- 'reaction.added': z.ZodObject<{
3240
- id: z.ZodNumber;
3241
- thread: z.ZodString;
3242
- emoji: z.ZodString;
3243
- by: z.ZodObject<{
3244
- actor: z.ZodString;
3245
- principal: z.ZodString;
3246
- profile: z.ZodNullable<z.ZodString>;
3247
- session: z.ZodNullable<z.ZodString>;
3248
- }, z.core.$strip>;
3249
- from: z.ZodNullable<z.ZodString>;
3250
- }, z.core.$strip>;
3251
- 'reaction.removed': z.ZodObject<{
3252
- id: z.ZodNumber;
3253
- thread: z.ZodString;
3254
- emoji: z.ZodString;
3255
- by: z.ZodObject<{
3256
- actor: z.ZodString;
3257
- principal: z.ZodString;
3258
- profile: z.ZodNullable<z.ZodString>;
3259
- session: z.ZodNullable<z.ZodString>;
3260
- }, z.core.$strip>;
3261
- from: z.ZodNullable<z.ZodString>;
3262
- }, z.core.$strip>;
3263
- 'labels.changed': z.ZodObject<{
3264
- id: z.ZodNumber;
3265
- thread: z.ZodString;
3266
- set: z.ZodRecord<z.ZodString, z.ZodString>;
3267
- unset: z.ZodArray<z.ZodString>;
3268
- by: z.ZodObject<{
3269
- actor: z.ZodString;
3270
- principal: z.ZodString;
3271
- profile: z.ZodNullable<z.ZodString>;
3272
- session: z.ZodNullable<z.ZodString>;
3273
- }, z.core.$strip>;
3274
- }, z.core.$strip>;
3275
- 'thread.synced': z.ZodObject<{
3276
- thread: z.ZodString;
3277
- target: z.ZodString;
3278
- cause: z.ZodEnum<{
3279
- config: "config";
3280
- request: "request";
3281
- }>;
3282
- kind: z.ZodOptional<z.ZodEnum<{
3283
- channel: "channel";
3284
- thread: "thread";
3285
- }>>;
3286
- by: z.ZodObject<{
3287
- actor: z.ZodString;
3288
- principal: z.ZodString;
3289
- profile: z.ZodNullable<z.ZodString>;
3290
- session: z.ZodNullable<z.ZodString>;
3291
- }, z.core.$strip>;
3292
- }, z.core.$strip>;
3293
- 'message.synced': z.ZodObject<{
3294
- id: z.ZodNumber;
3295
- thread: z.ZodString;
3296
- target: z.ZodString;
3297
- external: z.ZodObject<{
3298
- thread: z.ZodString;
3299
- message: z.ZodString;
3300
- asUser: z.ZodOptional<z.ZodLiteral<true>>;
3301
- }, z.core.$strip>;
3302
- syncedBy: z.ZodOptional<z.ZodString>;
3303
- }, z.core.$strip>;
3304
- 'message.files_synced': z.ZodObject<{
3305
- id: z.ZodNumber;
3306
- thread: z.ZodString;
3307
- target: z.ZodString;
3308
- files: z.ZodNullable<z.ZodArray<z.ZodString>>;
3309
- syncedBy: z.ZodOptional<z.ZodString>;
3310
- }, z.core.$strip>;
3311
- 'message.sync_failed': z.ZodObject<{
3312
- id: z.ZodNumber;
3313
- thread: z.ZodString;
3314
- target: z.ZodString;
3315
- error: z.ZodString;
3316
- }, z.core.$strip>;
3317
- 'actor.seen': z.ZodObject<{
3318
- actor: z.ZodString;
3319
- kind: z.ZodUnion<readonly [z.ZodEnum<{
3320
- agent: "agent";
3321
- deployment: "deployment";
3322
- external: "external";
3323
- person: "person";
3324
- workflow: "workflow";
3325
- }>, z.ZodLiteral<"profile">]>;
3326
- handle: z.ZodString;
3327
- name: z.ZodString;
3328
- avatar: z.ZodNullable<z.ZodString>;
3329
- host: z.ZodOptional<z.ZodLiteral<true>>;
3330
- }, z.core.$strip>;
3331
- 'actor.linked': z.ZodObject<{
3332
- actor: z.ZodString;
3333
- to: z.ZodString;
3334
- method: z.ZodEnum<{
3335
- code: "code";
3336
- consent: "consent";
3337
- }>;
3338
- by: z.ZodObject<{
3339
- actor: z.ZodString;
3340
- principal: z.ZodString;
3341
- profile: z.ZodNullable<z.ZodString>;
3342
- session: z.ZodNullable<z.ZodString>;
3343
- }, z.core.$strip>;
3344
- }, z.core.$strip>;
3345
- 'actor.unlinked': z.ZodObject<{
3346
- actor: z.ZodString;
3347
- by: z.ZodObject<{
3348
- actor: z.ZodString;
3349
- principal: z.ZodString;
3350
- profile: z.ZodNullable<z.ZodString>;
3351
- session: z.ZodNullable<z.ZodString>;
3352
- }, z.core.$strip>;
3353
- }, z.core.$strip>;
3354
- }>;
3355
- store: BoardStore;
3356
- };
3357
- type A2Backend = ReturnType<typeof a2>;
3358
- //#endregion
3359
- export { WriteSource as C, Protocol as E, WritePatch as S, Method as T, WatcherContext as _, BackendRoute as a, MiddlewareContext as b, Identity as c, SelfCaller as d, Subscription as f, Watcher as g, BoardOptions as h, Backend as i, InboxDelivery as l, Board as m, A2Options as n, BoardBinding as o, VerifiedCaller as p, a2 as r, Caller as s, A2Backend as t, ProtocolMethods as u, DroppedError as v, HttpError as w, Write as x, Middleware as y };