@vercel/board 0.0.0-stage → 0.15.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 (126) hide show
  1. package/README.md +179 -2
  2. package/dist/a2-5EG8FkZ8.d.mts +3359 -0
  3. package/dist/a2-DYGYankn.mjs +3045 -0
  4. package/dist/access-CJU2-vaa.mjs +226 -0
  5. package/dist/access-CV96SYgr.d.mts +32 -0
  6. package/dist/access.d.mts +29 -0
  7. package/dist/access.mjs +4 -0
  8. package/dist/actors-rdN4dDTU.mjs +223 -0
  9. package/dist/attempts-BQUp9MKO.mjs +919 -0
  10. package/dist/auth-COzc09sn.mjs +276 -0
  11. package/dist/auth-wHFcAte3.d.mts +203 -0
  12. package/dist/backend-a2/blob-vercel.d.mts +8 -0
  13. package/dist/backend-a2/blob-vercel.mjs +81 -0
  14. package/dist/backend-a2/contract.d.mts +18 -0
  15. package/dist/backend-a2/contract.mjs +5 -0
  16. package/dist/backend-a2/scheduler-local.d.mts +11 -0
  17. package/dist/backend-a2/scheduler-local.mjs +2 -0
  18. package/dist/backend-a2/scheduler-qstash.d.mts +2 -0
  19. package/dist/backend-a2/scheduler-qstash.mjs +2 -0
  20. package/dist/backend-a2/scheduler-vercel.d.mts +2 -0
  21. package/dist/backend-a2/scheduler-vercel.mjs +2 -0
  22. package/dist/backend-a2/store-memory.d.mts +11 -0
  23. package/dist/backend-a2/store-memory.mjs +19 -0
  24. package/dist/backend-a2/store-postgres.d.mts +38 -0
  25. package/dist/backend-a2/store-postgres.mjs +110 -0
  26. package/dist/backend-a2/store-redis-http.d.mts +17 -0
  27. package/dist/backend-a2/store-redis-http.mjs +32 -0
  28. package/dist/backend-a2/store-redis.d.mts +23 -0
  29. package/dist/backend-a2/store-redis.mjs +39 -0
  30. package/dist/backend-a2/store-sqlite.d.mts +12 -0
  31. package/dist/backend-a2/store-sqlite.mjs +31 -0
  32. package/dist/backend-a2.d.mts +4 -0
  33. package/dist/backend-a2.mjs +2 -0
  34. package/dist/backend-http-8ex5g7Wv.d.mts +630 -0
  35. package/dist/backend-http-BsDSgmeo.mjs +613 -0
  36. package/dist/backend-http-Cv6xbEy9.mjs +469 -0
  37. package/dist/backend-http.d.mts +10 -0
  38. package/dist/backend-http.mjs +2 -0
  39. package/dist/backend-http.node.d.mts +10 -0
  40. package/dist/backend-http.node.mjs +2 -0
  41. package/dist/blob-C0J3wbGv.d.mts +39 -0
  42. package/dist/bots-CGkO76qH.mjs +67 -0
  43. package/dist/chat-provider-XCnQlxq6.d.mts +140 -0
  44. package/dist/chat-provider-jFSeyNmB.mjs +389 -0
  45. package/dist/cli.d.mts +1 -0
  46. package/dist/cli.mjs +2252 -0
  47. package/dist/client-DGDPaN7U.mjs +380 -0
  48. package/dist/conformance-DRR23YNy.mjs +512 -0
  49. package/dist/conformance.d.mts +30 -0
  50. package/dist/conformance.mjs +2 -0
  51. package/dist/contract-CuJmlrhw.mjs +566 -0
  52. package/dist/emoji-CTLpvH-A.mjs +445 -0
  53. package/dist/engine-3EvQ8idk.mjs +1449 -0
  54. package/dist/errors-DX3hpwWt.mjs +64 -0
  55. package/dist/exports-BpgyEdh6.d.mts +4 -0
  56. package/dist/exports-CyY3_FjZ.mjs +1285 -0
  57. package/dist/files-SniSmeEr.mjs +47 -0
  58. package/dist/index.d.mts +13 -0
  59. package/dist/index.default-BZ3lItjH.mjs +12 -0
  60. package/dist/index.mjs +19 -0
  61. package/dist/index.node.d.mts +14 -0
  62. package/dist/index.node.mjs +5 -0
  63. package/dist/inspect/app.js +416 -0
  64. package/dist/inspect/engine.js +5 -0
  65. package/dist/local-Cr_dSjvs.mjs +44 -0
  66. package/dist/own-OwgPWdmh.mjs +15 -0
  67. package/dist/project-CFiArraX.mjs +124 -0
  68. package/dist/provider-BGjz-mDa.d.mts +2473 -0
  69. package/dist/provider-CuewcDNZ.mjs +205 -0
  70. package/dist/redis-tables-B35vv4CZ.mjs +842 -0
  71. package/dist/reducers-B_vUGQRp.d.mts +1172 -0
  72. package/dist/reducers-mUPFuFJV.mjs +293 -0
  73. package/dist/schemas-Be08nyfW.mjs +74 -0
  74. package/dist/schemas-CWxs3ECJ.d.mts +50 -0
  75. package/dist/serve-Ccbb2LSb.mjs +170 -0
  76. package/dist/server-Cxey38B-.mjs +17 -0
  77. package/dist/serving-BNbzc96L.mjs +2 -0
  78. package/dist/sql-DbiEnqM0.mjs +571 -0
  79. package/dist/sqlite-db-Cbj03vmp.mjs +70 -0
  80. package/dist/sync-github.d.mts +473 -0
  81. package/dist/sync-github.mjs +603 -0
  82. package/dist/sync-kapso.d.mts +175 -0
  83. package/dist/sync-kapso.mjs +86 -0
  84. package/dist/sync-slack.d.mts +364 -0
  85. package/dist/sync-slack.mjs +728 -0
  86. package/dist/sync.chat.d.mts +2 -0
  87. package/dist/sync.chat.mjs +2 -0
  88. package/dist/sync.d.mts +3 -0
  89. package/dist/sync.mjs +4 -0
  90. package/dist/targets-ojFEXEyN.mjs +94 -0
  91. package/dist/tokens-DKLn5P9B.mjs +256 -0
  92. package/dist/types-BHCjTZdB.d.mts +104 -0
  93. package/dist/users-Dls7_ANV.mjs +42 -0
  94. package/dist/watch-spec-W0c7ypHJ.mjs +787 -0
  95. package/dist/watchers-hash-D9hbHLKB.mjs +225 -0
  96. package/docs/01-board/01-mounting.md +506 -0
  97. package/docs/01-board/02-database.md +258 -0
  98. package/docs/01-board/03-identity.md +262 -0
  99. package/docs/01-board/04-messages.md +192 -0
  100. package/docs/01-board/05-reading.md +177 -0
  101. package/docs/01-board/06-watchers.md +249 -0
  102. package/docs/01-board/07-schedules.md +133 -0
  103. package/docs/01-board/08-middleware.md +139 -0
  104. package/docs/01-board/09-access.md +499 -0
  105. package/docs/01-quickstart.md +196 -0
  106. package/docs/02-sync/01-overview.md +290 -0
  107. package/docs/02-sync/02-callbacks.md +265 -0
  108. package/docs/02-sync/03-slack.md +248 -0
  109. package/docs/02-sync/04-github.md +201 -0
  110. package/docs/02-sync/05-whatsapp.md +148 -0
  111. package/docs/02-sync/06-providers.md +228 -0
  112. package/docs/03-guides/01-coding-agents.md +226 -0
  113. package/docs/03-guides/02-inspector.md +104 -0
  114. package/docs/03-guides/03-ci.md +251 -0
  115. package/docs/03-guides/04-triage.md +233 -0
  116. package/docs/03-guides/05-agent-factory.md +142 -0
  117. package/docs/04-reference/01-cli.md +606 -0
  118. package/docs/04-reference/02-board.md +579 -0
  119. package/docs/04-reference/03-http.md +489 -0
  120. package/docs/04-reference/04-log.md +250 -0
  121. package/docs/04-reference/05-conformance.md +97 -0
  122. package/docs/index.md +186 -0
  123. package/package.json +165 -3
  124. package/sql/postgres/board.sql +145 -0
  125. package/sql/postgres/notifications.sql +24 -0
  126. package/sql/postgres/schema.sql +451 -0
@@ -0,0 +1,473 @@
1
+ import { d as ResolvedTarget, g as UserTokens, i as ProviderDelivery, m as SyncHandler, p as SyncContext, s as ProviderPost, t as EventMapping, u as RenderInput, v as withUserTokens } from "./provider-BGjz-mDa.mjs";
2
+ import { n as ChatSyncProvider } from "./chat-provider-XCnQlxq6.mjs";
3
+ import { z } from "zod";
4
+ import { Adapter } from "chat";
5
+ //#region src/sync/github.d.ts
6
+ export declare const GitHubPayload: z.ZodObject<{
7
+ pull_request: z.ZodOptional<z.ZodObject<{
8
+ number: z.ZodNumber;
9
+ title: z.ZodString;
10
+ html_url: z.ZodString;
11
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
+ draft: z.ZodOptional<z.ZodBoolean>;
13
+ state: z.ZodOptional<z.ZodString>;
14
+ base: z.ZodOptional<z.ZodObject<{
15
+ ref: z.ZodString;
16
+ }, z.core.$loose>>;
17
+ head: z.ZodOptional<z.ZodObject<{
18
+ ref: z.ZodString;
19
+ }, z.core.$loose>>;
20
+ }, z.core.$loose>>;
21
+ issue: z.ZodOptional<z.ZodObject<{
22
+ number: z.ZodNumber;
23
+ title: z.ZodString;
24
+ html_url: z.ZodString;
25
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ draft: z.ZodOptional<z.ZodBoolean>;
27
+ state: z.ZodOptional<z.ZodString>;
28
+ base: z.ZodOptional<z.ZodObject<{
29
+ ref: z.ZodString;
30
+ }, z.core.$loose>>;
31
+ head: z.ZodOptional<z.ZodObject<{
32
+ ref: z.ZodString;
33
+ }, z.core.$loose>>;
34
+ }, z.core.$loose>>;
35
+ action: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$loose>;
37
+ export declare const GitHubEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
38
+ channel: z.ZodString;
39
+ thread: z.ZodString;
40
+ subthread: z.ZodNullable<z.ZodString>;
41
+ kind: z.ZodLiteral<"message">;
42
+ message: z.ZodString;
43
+ isRoot: z.ZodBoolean;
44
+ text: z.ZodString;
45
+ context: z.ZodNullable<z.ZodString>;
46
+ author: z.ZodObject<{
47
+ id: z.ZodString;
48
+ handle: z.ZodString;
49
+ name: z.ZodString;
50
+ avatar: z.ZodNullable<z.ZodString>;
51
+ isBot: z.ZodBoolean;
52
+ }, z.core.$strip>;
53
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
54
+ type: z.ZodEnum<{
55
+ audio: "audio";
56
+ file: "file";
57
+ image: "image";
58
+ video: "video";
59
+ }>;
60
+ name: z.ZodOptional<z.ZodString>;
61
+ mimeType: z.ZodOptional<z.ZodString>;
62
+ size: z.ZodOptional<z.ZodNumber>;
63
+ url: z.ZodOptional<z.ZodString>;
64
+ fetchMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
65
+ }, z.core.$strip>>>;
66
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
67
+ url: z.ZodString;
68
+ thread: z.ZodString;
69
+ message: z.ZodString;
70
+ snapshot: z.ZodNullable<z.ZodObject<{
71
+ author: z.ZodString;
72
+ text: z.ZodString;
73
+ createdAt: z.ZodNullable<z.ZodString>;
74
+ files: z.ZodArray<z.ZodObject<{
75
+ name: z.ZodString;
76
+ url: z.ZodNullable<z.ZodString>;
77
+ }, z.core.$strip>>;
78
+ }, z.core.$strip>>;
79
+ }, z.core.$strip>>>;
80
+ id: z.ZodString;
81
+ key: z.ZodString;
82
+ platform: z.ZodLiteral<"github">;
83
+ type: z.ZodLiteral<"comment">;
84
+ subject: z.ZodObject<{
85
+ type: z.ZodEnum<{
86
+ issue: "issue";
87
+ pull_request: "pull_request";
88
+ }>;
89
+ repo: z.ZodString;
90
+ number: z.ZodNumber;
91
+ }, z.core.$strip>;
92
+ raw: z.ZodObject<{
93
+ pull_request: z.ZodOptional<z.ZodObject<{
94
+ number: z.ZodNumber;
95
+ title: z.ZodString;
96
+ html_url: z.ZodString;
97
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
98
+ draft: z.ZodOptional<z.ZodBoolean>;
99
+ state: z.ZodOptional<z.ZodString>;
100
+ base: z.ZodOptional<z.ZodObject<{
101
+ ref: z.ZodString;
102
+ }, z.core.$loose>>;
103
+ head: z.ZodOptional<z.ZodObject<{
104
+ ref: z.ZodString;
105
+ }, z.core.$loose>>;
106
+ }, z.core.$loose>>;
107
+ issue: z.ZodOptional<z.ZodObject<{
108
+ number: z.ZodNumber;
109
+ title: z.ZodString;
110
+ html_url: z.ZodString;
111
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
112
+ draft: z.ZodOptional<z.ZodBoolean>;
113
+ state: z.ZodOptional<z.ZodString>;
114
+ base: z.ZodOptional<z.ZodObject<{
115
+ ref: z.ZodString;
116
+ }, z.core.$loose>>;
117
+ head: z.ZodOptional<z.ZodObject<{
118
+ ref: z.ZodString;
119
+ }, z.core.$loose>>;
120
+ }, z.core.$loose>>;
121
+ action: z.ZodOptional<z.ZodString>;
122
+ }, z.core.$loose>;
123
+ }, z.core.$strip>, z.ZodObject<{
124
+ channel: z.ZodString;
125
+ thread: z.ZodString;
126
+ subthread: z.ZodNullable<z.ZodString>;
127
+ kind: z.ZodLiteral<"edited">;
128
+ message: z.ZodString;
129
+ text: z.ZodString;
130
+ author: z.ZodObject<{
131
+ id: z.ZodString;
132
+ handle: z.ZodString;
133
+ name: z.ZodString;
134
+ avatar: z.ZodNullable<z.ZodString>;
135
+ isBot: z.ZodBoolean;
136
+ }, z.core.$strip>;
137
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
138
+ url: z.ZodString;
139
+ thread: z.ZodString;
140
+ message: z.ZodString;
141
+ snapshot: z.ZodNullable<z.ZodObject<{
142
+ author: z.ZodString;
143
+ text: z.ZodString;
144
+ createdAt: z.ZodNullable<z.ZodString>;
145
+ files: z.ZodArray<z.ZodObject<{
146
+ name: z.ZodString;
147
+ url: z.ZodNullable<z.ZodString>;
148
+ }, z.core.$strip>>;
149
+ }, z.core.$strip>>;
150
+ }, z.core.$strip>>>;
151
+ linksOnly: z.ZodOptional<z.ZodBoolean>;
152
+ id: z.ZodString;
153
+ key: z.ZodString;
154
+ platform: z.ZodLiteral<"github">;
155
+ type: z.ZodLiteral<"message.edited">;
156
+ subject: z.ZodObject<{
157
+ type: z.ZodEnum<{
158
+ issue: "issue";
159
+ pull_request: "pull_request";
160
+ }>;
161
+ repo: z.ZodString;
162
+ number: z.ZodNumber;
163
+ }, z.core.$strip>;
164
+ raw: z.ZodObject<{
165
+ pull_request: z.ZodOptional<z.ZodObject<{
166
+ number: z.ZodNumber;
167
+ title: z.ZodString;
168
+ html_url: z.ZodString;
169
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
170
+ draft: z.ZodOptional<z.ZodBoolean>;
171
+ state: z.ZodOptional<z.ZodString>;
172
+ base: z.ZodOptional<z.ZodObject<{
173
+ ref: z.ZodString;
174
+ }, z.core.$loose>>;
175
+ head: z.ZodOptional<z.ZodObject<{
176
+ ref: z.ZodString;
177
+ }, z.core.$loose>>;
178
+ }, z.core.$loose>>;
179
+ issue: z.ZodOptional<z.ZodObject<{
180
+ number: z.ZodNumber;
181
+ title: z.ZodString;
182
+ html_url: z.ZodString;
183
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
184
+ draft: z.ZodOptional<z.ZodBoolean>;
185
+ state: z.ZodOptional<z.ZodString>;
186
+ base: z.ZodOptional<z.ZodObject<{
187
+ ref: z.ZodString;
188
+ }, z.core.$loose>>;
189
+ head: z.ZodOptional<z.ZodObject<{
190
+ ref: z.ZodString;
191
+ }, z.core.$loose>>;
192
+ }, z.core.$loose>>;
193
+ action: z.ZodOptional<z.ZodString>;
194
+ }, z.core.$loose>;
195
+ }, z.core.$strip>, z.ZodObject<{
196
+ channel: z.ZodString;
197
+ thread: z.ZodString;
198
+ subthread: z.ZodNullable<z.ZodString>;
199
+ kind: z.ZodLiteral<"deleted">;
200
+ message: z.ZodString;
201
+ id: z.ZodString;
202
+ key: z.ZodString;
203
+ platform: z.ZodLiteral<"github">;
204
+ type: z.ZodLiteral<"message.deleted">;
205
+ subject: z.ZodObject<{
206
+ type: z.ZodEnum<{
207
+ issue: "issue";
208
+ pull_request: "pull_request";
209
+ }>;
210
+ repo: z.ZodString;
211
+ number: z.ZodNumber;
212
+ }, z.core.$strip>;
213
+ raw: z.ZodObject<{
214
+ pull_request: z.ZodOptional<z.ZodObject<{
215
+ number: z.ZodNumber;
216
+ title: z.ZodString;
217
+ html_url: z.ZodString;
218
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
219
+ draft: z.ZodOptional<z.ZodBoolean>;
220
+ state: z.ZodOptional<z.ZodString>;
221
+ base: z.ZodOptional<z.ZodObject<{
222
+ ref: z.ZodString;
223
+ }, z.core.$loose>>;
224
+ head: z.ZodOptional<z.ZodObject<{
225
+ ref: z.ZodString;
226
+ }, z.core.$loose>>;
227
+ }, z.core.$loose>>;
228
+ issue: z.ZodOptional<z.ZodObject<{
229
+ number: z.ZodNumber;
230
+ title: z.ZodString;
231
+ html_url: z.ZodString;
232
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
233
+ draft: z.ZodOptional<z.ZodBoolean>;
234
+ state: z.ZodOptional<z.ZodString>;
235
+ base: z.ZodOptional<z.ZodObject<{
236
+ ref: z.ZodString;
237
+ }, z.core.$loose>>;
238
+ head: z.ZodOptional<z.ZodObject<{
239
+ ref: z.ZodString;
240
+ }, z.core.$loose>>;
241
+ }, z.core.$loose>>;
242
+ action: z.ZodOptional<z.ZodString>;
243
+ }, z.core.$loose>;
244
+ }, z.core.$strip>, z.ZodObject<{
245
+ channel: z.ZodString;
246
+ thread: z.ZodString;
247
+ subthread: z.ZodNullable<z.ZodString>;
248
+ kind: z.ZodLiteral<"reaction">;
249
+ message: z.ZodString;
250
+ emoji: z.ZodString;
251
+ added: z.ZodBoolean;
252
+ author: z.ZodObject<{
253
+ id: z.ZodString;
254
+ handle: z.ZodString;
255
+ name: z.ZodString;
256
+ avatar: z.ZodNullable<z.ZodString>;
257
+ isBot: z.ZodBoolean;
258
+ }, z.core.$strip>;
259
+ id: z.ZodString;
260
+ key: z.ZodString;
261
+ platform: z.ZodLiteral<"github">;
262
+ type: z.ZodEnum<{
263
+ "reaction.added": "reaction.added";
264
+ "reaction.removed": "reaction.removed";
265
+ }>;
266
+ subject: z.ZodObject<{
267
+ type: z.ZodEnum<{
268
+ issue: "issue";
269
+ pull_request: "pull_request";
270
+ }>;
271
+ repo: z.ZodString;
272
+ number: z.ZodNumber;
273
+ }, z.core.$strip>;
274
+ raw: z.ZodObject<{
275
+ pull_request: z.ZodOptional<z.ZodObject<{
276
+ number: z.ZodNumber;
277
+ title: z.ZodString;
278
+ html_url: z.ZodString;
279
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
280
+ draft: z.ZodOptional<z.ZodBoolean>;
281
+ state: z.ZodOptional<z.ZodString>;
282
+ base: z.ZodOptional<z.ZodObject<{
283
+ ref: z.ZodString;
284
+ }, z.core.$loose>>;
285
+ head: z.ZodOptional<z.ZodObject<{
286
+ ref: z.ZodString;
287
+ }, z.core.$loose>>;
288
+ }, z.core.$loose>>;
289
+ issue: z.ZodOptional<z.ZodObject<{
290
+ number: z.ZodNumber;
291
+ title: z.ZodString;
292
+ html_url: z.ZodString;
293
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
294
+ draft: z.ZodOptional<z.ZodBoolean>;
295
+ state: z.ZodOptional<z.ZodString>;
296
+ base: z.ZodOptional<z.ZodObject<{
297
+ ref: z.ZodString;
298
+ }, z.core.$loose>>;
299
+ head: z.ZodOptional<z.ZodObject<{
300
+ ref: z.ZodString;
301
+ }, z.core.$loose>>;
302
+ }, z.core.$loose>>;
303
+ action: z.ZodOptional<z.ZodString>;
304
+ }, z.core.$loose>;
305
+ }, z.core.$strip>, ...(z.ZodObject<{
306
+ channel: z.ZodString;
307
+ thread: z.ZodString;
308
+ subthread: z.ZodNullable<z.ZodString>;
309
+ kind: z.ZodLiteral<"lifecycle">;
310
+ title: z.ZodString;
311
+ url: z.ZodNullable<z.ZodString>;
312
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
313
+ unset: z.ZodArray<z.ZodString>;
314
+ owns: z.ZodOptional<z.ZodArray<z.ZodString>>;
315
+ reply: z.ZodNullable<z.ZodString>;
316
+ createRoot: z.ZodBoolean;
317
+ author: z.ZodObject<{
318
+ id: z.ZodString;
319
+ handle: z.ZodString;
320
+ name: z.ZodString;
321
+ avatar: z.ZodNullable<z.ZodString>;
322
+ isBot: z.ZodBoolean;
323
+ }, z.core.$strip>;
324
+ id: z.ZodString;
325
+ key: z.ZodString;
326
+ platform: z.ZodLiteral<"github">;
327
+ type: z.ZodLiteral<"pr.assigned" | "pr.closed" | "pr.draft" | "pr.labeled" | "pr.opened" | "pr.ready" | "pr.reopened" | "pr.unassigned" | "pr.unlabeled" | "review.dismissed" | "review.submitted">;
328
+ subject: z.ZodObject<{
329
+ repo: z.ZodString;
330
+ number: z.ZodNumber;
331
+ type: z.ZodLiteral<"pull_request">;
332
+ }, z.core.$strip>;
333
+ raw: z.ZodObject<{
334
+ issue: z.ZodOptional<z.ZodObject<{
335
+ number: z.ZodNumber;
336
+ title: z.ZodString;
337
+ html_url: z.ZodString;
338
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
339
+ draft: z.ZodOptional<z.ZodBoolean>;
340
+ state: z.ZodOptional<z.ZodString>;
341
+ base: z.ZodOptional<z.ZodObject<{
342
+ ref: z.ZodString;
343
+ }, z.core.$loose>>;
344
+ head: z.ZodOptional<z.ZodObject<{
345
+ ref: z.ZodString;
346
+ }, z.core.$loose>>;
347
+ }, z.core.$loose>>;
348
+ action: z.ZodOptional<z.ZodString>;
349
+ pull_request: z.ZodObject<{
350
+ number: z.ZodNumber;
351
+ title: z.ZodString;
352
+ html_url: z.ZodString;
353
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
354
+ draft: z.ZodOptional<z.ZodBoolean>;
355
+ state: z.ZodOptional<z.ZodString>;
356
+ base: z.ZodOptional<z.ZodObject<{
357
+ ref: z.ZodString;
358
+ }, z.core.$loose>>;
359
+ head: z.ZodOptional<z.ZodObject<{
360
+ ref: z.ZodString;
361
+ }, z.core.$loose>>;
362
+ }, z.core.$loose>;
363
+ }, z.core.$loose>;
364
+ }, z.core.$strip> | z.ZodObject<{
365
+ channel: z.ZodString;
366
+ thread: z.ZodString;
367
+ subthread: z.ZodNullable<z.ZodString>;
368
+ kind: z.ZodLiteral<"lifecycle">;
369
+ title: z.ZodString;
370
+ url: z.ZodNullable<z.ZodString>;
371
+ labels: z.ZodRecord<z.ZodString, z.ZodString>;
372
+ unset: z.ZodArray<z.ZodString>;
373
+ owns: z.ZodOptional<z.ZodArray<z.ZodString>>;
374
+ reply: z.ZodNullable<z.ZodString>;
375
+ createRoot: z.ZodBoolean;
376
+ author: z.ZodObject<{
377
+ id: z.ZodString;
378
+ handle: z.ZodString;
379
+ name: z.ZodString;
380
+ avatar: z.ZodNullable<z.ZodString>;
381
+ isBot: z.ZodBoolean;
382
+ }, z.core.$strip>;
383
+ id: z.ZodString;
384
+ key: z.ZodString;
385
+ platform: z.ZodLiteral<"github">;
386
+ type: z.ZodLiteral<"issue.assigned" | "issue.closed" | "issue.labeled" | "issue.opened" | "issue.reopened" | "issue.unassigned" | "issue.unlabeled">;
387
+ subject: z.ZodObject<{
388
+ repo: z.ZodString;
389
+ number: z.ZodNumber;
390
+ type: z.ZodLiteral<"issue">;
391
+ }, z.core.$strip>;
392
+ raw: z.ZodObject<{
393
+ pull_request: z.ZodOptional<z.ZodObject<{
394
+ number: z.ZodNumber;
395
+ title: z.ZodString;
396
+ html_url: z.ZodString;
397
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
398
+ draft: z.ZodOptional<z.ZodBoolean>;
399
+ state: z.ZodOptional<z.ZodString>;
400
+ base: z.ZodOptional<z.ZodObject<{
401
+ ref: z.ZodString;
402
+ }, z.core.$loose>>;
403
+ head: z.ZodOptional<z.ZodObject<{
404
+ ref: z.ZodString;
405
+ }, z.core.$loose>>;
406
+ }, z.core.$loose>>;
407
+ action: z.ZodOptional<z.ZodString>;
408
+ issue: z.ZodObject<{
409
+ number: z.ZodNumber;
410
+ title: z.ZodString;
411
+ html_url: z.ZodString;
412
+ body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
413
+ draft: z.ZodOptional<z.ZodBoolean>;
414
+ state: z.ZodOptional<z.ZodString>;
415
+ base: z.ZodOptional<z.ZodObject<{
416
+ ref: z.ZodString;
417
+ }, z.core.$loose>>;
418
+ head: z.ZodOptional<z.ZodObject<{
419
+ ref: z.ZodString;
420
+ }, z.core.$loose>>;
421
+ }, z.core.$loose>;
422
+ }, z.core.$loose>;
423
+ }, z.core.$strip>)[]], "type">;
424
+ export type GitHubEvent = z.infer<typeof GitHubEvent>;
425
+ export type GitHubHandler = SyncHandler<GitHubEvent>;
426
+ export type GitHubRepo = EventMapping<GitHubEvent> | {
427
+ pulls?: EventMapping<GitHubEvent>;
428
+ issues?: EventMapping<GitHubEvent>;
429
+ };
430
+ export type GitHubOptions = {
431
+ /**
432
+ * A Vercel Connect connector (`'github/acme'`): board builds the GitHub adapter
433
+ * and people's sign-in, so comments they write on the board post as them.
434
+ * Or your own Chat SDK adapter, wrapped in `withUserTokens` to post as people.
435
+ */
436
+ adapter: Adapter | string;
437
+ /**
438
+ * The app's bot user ID, so its own comments never echo back. With a connector,
439
+ * board looks it up from the installation token; set it to skip that call.
440
+ */
441
+ botUserId?: number;
442
+ render?: (input: RenderInput) => string;
443
+ repos: Record<string, GitHubRepo>;
444
+ };
445
+ /**
446
+ * Syncs GitHub repos with board channels. Keys are repos (`'owner/repo'`);
447
+ * values are a board channel (PRs and issues become threads there), a
448
+ * function, or `{ pulls, issues }` to send each somewhere else. Roots never
449
+ * flow into GitHub: a board thread doesn't open an issue.
450
+ */
451
+ export declare function github(options: GitHubOptions): GitHubProvider;
452
+ export declare class GitHubProvider extends ChatSyncProvider<GitHubEvent> {
453
+ private readonly body;
454
+ constructor(given: GitHubOptions);
455
+ whoAmI(token: string): Promise<{
456
+ id: string;
457
+ handle: string;
458
+ name: string;
459
+ avatar: string | null;
460
+ isBot: boolean;
461
+ }>;
462
+ postAs(token: string, target: string, kind: ResolvedTarget['kind'], post: ProviderPost): Promise<ProviderDelivery>;
463
+ editAs(token: string, thread: string, message: string, post: ProviderPost): Promise<void>;
464
+ deleteAs(token: string, thread: string, message: string): Promise<void>;
465
+ /**
466
+ * A thread's root is the PR or issue itself, not a comment: its copy has no comment ID
467
+ * (`root:<event>` or `lifecycle:<event>`), so its reactions go on the PR or issue.
468
+ */
469
+ react(thread: string, message: string, emoji: string, added: boolean): Promise<void>;
470
+ event(context: Pick<SyncContext, 'id' | 'key' | 'event' | 'raw'>): GitHubEvent;
471
+ }
472
+ //#endregion
473
+ export { type UserTokens, withUserTokens };