@vercel/board 0.29.0 → 0.31.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.
- package/README.md +8 -17
- package/dist/{a2-HUbQJ0RD.mjs → a2-DngWY2Eb.mjs} +741 -415
- package/dist/access-CY5xVMIK.mjs +242 -0
- package/dist/{access-CV96SYgr.d.mts → access-DPcrKIH_.d.mts} +6 -1
- package/dist/access.d.mts +4 -4
- package/dist/access.mjs +5 -4
- package/dist/{actors-DcJhFbwJ.mjs → actors-Bm-ojWWT.mjs} +2 -2
- package/dist/{auth-JO22iIwr.mjs → auth-CyO2aw5n.mjs} +126 -236
- package/dist/{auth-CU56Q2Xh.d.mts → auth-DLYSt_-A.d.mts} +32 -4
- package/dist/{backend-CPC_vyOo.d.mts → backend-Bob-5CM7.d.mts} +93 -42
- package/dist/backend-a2/blob-vercel.d.mts +1 -1
- package/dist/backend-a2/contract.d.mts +38 -98
- package/dist/backend-a2/contract.mjs +1 -1
- package/dist/backend-a2/scheduler-local.d.mts +1 -1
- package/dist/backend-a2/scheduler-local.mjs +1 -1
- package/dist/backend-a2/scheduler-qstash.d.mts +3 -3
- package/dist/backend-a2/scheduler-qstash.mjs +8 -8
- package/dist/backend-a2/scheduler-vercel.d.mts +3 -3
- package/dist/backend-a2/scheduler-vercel.mjs +6 -6
- package/dist/backend-a2/store-memory.d.mts +2 -2
- package/dist/backend-a2/store-memory.mjs +3 -3
- package/dist/backend-a2/store-postgres.d.mts +1 -1
- package/dist/backend-a2/store-postgres.mjs +34 -15
- package/dist/backend-a2/store-redis-http.d.mts +1 -1
- package/dist/backend-a2/store-redis-http.mjs +6 -6
- package/dist/backend-a2/store-redis.d.mts +2 -2
- package/dist/backend-a2/store-redis.mjs +5 -5
- package/dist/backend-a2/store-sqlite.d.mts +1 -1
- package/dist/backend-a2/store-sqlite.mjs +3 -3
- package/dist/backend-a2.d.mts +143 -242
- package/dist/backend-a2.mjs +2 -2
- package/dist/{backend-http-CqfKhrnn.d.mts → backend-http-BRrRbjRx.d.mts} +59 -45
- package/dist/{backend-http-CzIJMm58.mjs → backend-http-CvUKOn-m.mjs} +11 -10
- package/dist/{backend-http-Bmp0IgD3.mjs → backend-http-D8mUzuKQ.mjs} +2 -2
- package/dist/backend-http.d.mts +1 -1
- package/dist/backend-http.mjs +1 -1
- package/dist/backend-http.node.d.mts +1 -1
- package/dist/backend-http.node.mjs +1 -1
- package/dist/{backend-vercel-DQc_TaHp.mjs → backend-vercel-Ba8JDtqW.mjs} +3 -3
- package/dist/{backend-vercel-4tvcPKqX.d.mts → backend-vercel-BaSEUdwg.d.mts} +62 -47
- package/dist/{backend-vercel-BNauAs7w.mjs → backend-vercel-CmY9yZ9m.mjs} +279 -42
- package/dist/backend-vercel.d.mts +1 -1
- package/dist/backend-vercel.mjs +1 -1
- package/dist/backend-vercel.node.d.mts +1 -1
- package/dist/backend-vercel.node.mjs +1 -1
- package/dist/{blob-DmiQjrYy.d.mts → blob-Bx8QPWEd.d.mts} +2 -2
- package/dist/{blob-DdbpJqN1.mjs → blob-WbB2DJKn.mjs} +30 -11
- package/dist/{chat-provider-BWHbChcQ.d.mts → chat-provider-BChYrrA7.d.mts} +32 -28
- package/dist/{chat-provider-COtsU5jB.mjs → chat-provider-DkFp2hrh.mjs} +105 -60
- package/dist/cli-commands.d.mts +1 -1
- package/dist/cli-commands.mjs +1 -1
- package/dist/cli-embedded.d.mts +2 -2
- package/dist/cli-embedded.mjs +1 -1
- package/dist/cli.mjs +4 -4
- package/dist/{client-BqAjk0Q4.d.mts → client-COfYrgfV.d.mts} +240 -227
- package/dist/{commands-D6gvrOh3.d.mts → commands-DK4W3HCJ.d.mts} +47 -10
- package/dist/{commands-C3R1AWgm.mjs → commands-L1JSGz2Z.mjs} +212 -54
- package/dist/conformance-DK43HiHf.mjs +1000 -0
- package/dist/conformance.d.mts +8 -2
- package/dist/conformance.mjs +1 -1
- package/dist/{engine-DQxXk7dX.mjs → engine-DurYIRt8.mjs} +29 -210
- package/dist/{errors-DDktVeUa.d.mts → errors-2vGs49Db.d.mts} +1 -1
- package/dist/{client-D0Px7KzF.mjs → errors-CJXhhzvT.mjs} +132 -27
- package/dist/{provider-BaVmi4Hi.mjs → events-lujPA3gQ.mjs} +80 -17
- package/dist/{exports-BG-0Wyn-.mjs → exports-CWIdN0Ub.mjs} +195 -103
- package/dist/exports-FBOQWT7O.d.mts +5 -0
- package/dist/{folds-BDMSxBUf.mjs → folds-Cu9Q9zyQ.mjs} +3 -22
- package/dist/{folds-ZkHM4M-v.d.mts → folds-DLUzfibJ.d.mts} +15 -40
- package/dist/{index-D3VvNfh_.d.mts → index-Ho-ayyQL.d.mts} +2 -2
- package/dist/index.d.mts +7 -7
- package/dist/{index.default-rB8sJ9RX.mjs → index.default-BUcwDaAe.mjs} +1 -1
- package/dist/index.mjs +5 -6
- package/dist/index.node.d.mts +7 -7
- package/dist/index.node.mjs +3 -4
- package/dist/inspect/app.js +62 -61
- package/dist/inspect/engine.js +3 -3
- package/dist/{internal-CvsrprnU-CRY89I-b.mjs → internal-CvsrprnU-zZMpDiRY.mjs} +1 -1
- package/dist/{local-DhkrAqPP.mjs → local-C76Fy5ad.mjs} +1 -1
- package/dist/{main-CVBqe3VO.mjs → main-Dz-8komG.mjs} +251 -127
- package/dist/{middleware-CXjEeef4.mjs → middleware-BavYSDUa.mjs} +1 -1
- package/dist/{node-Zd_C-gxP.mjs → node-BgeGcwX0.mjs} +7 -3
- package/dist/{platform-B4TnJtWu-CwcTyKg2.mjs → platform-B4TnJtWu-Do3agKr5.mjs} +1 -1
- package/dist/{project-CBXlLftU.mjs → project-CQ4VUibA.mjs} +1 -1
- package/dist/{provider-DmSTp9lI.d.mts → provider-gynDUoyW.d.mts} +13 -43
- package/dist/{redis-tables-BJQVUspu.mjs → redis-tables-DHf85ixI.mjs} +40 -42
- package/dist/{reducer-CjmvZSAb-D_OSISmj.mjs → reducer-Bswr11ar-P324o9vn.mjs} +2 -2
- package/dist/{reducer-CYPHsSmd-BQIfozGi.d.mts → reducer-CYPHsSmd-BXjGiptm.d.mts} +1 -1
- package/dist/{reducers-DJzVpXwM.mjs → reducers-DcENwtwZ.mjs} +74 -77
- package/dist/{retryable-lazy-DZWmHpii-Bye-W8q7.mjs → retryable-lazy-DZWmHpii-DpTc5PIP.mjs} +1 -1
- package/dist/{scheduler-task-X1SToDjP-BVoWuInI.mjs → scheduler-task-X1SToDjP-D2Il2rln.mjs} +1 -1
- package/dist/{serve-G9RuaDSr.mjs → serve-CTmow-YH.mjs} +7 -7
- package/dist/{server-qgez0Xny-D5mLfqFQ.d.mts → server-B9gu0qi1-DI1WvcVK.d.mts} +10 -4
- package/dist/{server-BixV_byP.mjs → server-DG8D6VV0.mjs} +4 -4
- package/dist/{server-DtFrWxi3-Boa6gdWO.mjs → server-DX7mM6nm-D7N_7bug.mjs} +32 -23
- package/dist/{serving-B75Y4BF-.mjs → serving-DBFRo6U_.mjs} +1 -1
- package/dist/{session-clear-wHd5GCpZ-BnKSxReK.mjs → session-clear-XJYpmUpg-2q8l_FJR.mjs} +14 -2
- package/dist/{sql-D4Z_efJX.mjs → sql-CT5xVuGr.mjs} +2 -8
- package/dist/{sqlite-db-Bz2JkfCU.mjs → sqlite-db-0WeSOEZN.mjs} +1 -1
- package/dist/{store-D0MhBvg6-4Z2L0Kqd.d.mts → store-DEzcHZOA-B-5vhxef.d.mts} +12 -2
- package/dist/store-N8PXxDAS-DWWgv-Vz.mjs +5 -0
- package/dist/{store-codec-DwrWlgQx-CYxGW0aD.mjs → store-codec-pAG2oPgQ-SqDXlPBR.mjs} +4 -4
- package/dist/store-memory-4IBl0Ztu.mjs +2 -0
- package/dist/{store-memory-Bas9Uq5C.mjs → store-memory-B0PkVSuQ.mjs} +14 -7
- package/dist/{store-polling-BZt2Rf3D-BiEM6_HB.mjs → store-polling-BZt2Rf3D-Div-bJ_D.mjs} +2 -2
- package/dist/{store-presence-polling-JuAy2Ck2-CYpuK75X.mjs → store-presence-polling-JuAy2Ck2-Dh-g_KYM.mjs} +3 -3
- package/dist/{store-sqlite-CxxPCcCT.mjs → store-sqlite-D85t3tE7.mjs} +14 -7
- package/dist/store-sqlite-iBTYYKBj.mjs +2 -0
- package/dist/{stream-buffer-DrTyiIuo-BKy-vI14.mjs → stream-buffer-DrTyiIuo-Be10yOBR.mjs} +2 -2
- package/dist/{sync-kapso.d.mts → sync-chat-sdk.d.mts} +33 -37
- package/dist/sync-chat-sdk.mjs +44 -0
- package/dist/sync-github.d.mts +5 -18
- package/dist/sync-github.mjs +4 -70
- package/dist/sync-linear.d.mts +3 -3
- package/dist/sync-linear.mjs +6 -5
- package/dist/sync-slack.d.mts +7 -7
- package/dist/sync-slack.mjs +33 -54
- package/dist/sync.d.mts +3 -3
- package/dist/sync.mjs +2 -4
- package/dist/{tokens-CC3izSNr.mjs → tokens-Dnyd_y1n.mjs} +15 -6
- package/dist/{types-No0WdhE5.d.mts → types-CmrFjpml.d.mts} +2 -4
- package/dist/{watchers-hash-BDhLVkV5.mjs → watchers-hash-BjwlnGD9.mjs} +124 -115
- package/docs/01-board/01-mounting.md +2 -2
- package/docs/01-board/03-identity.md +5 -6
- package/docs/01-board/04-messages.md +96 -2
- package/docs/01-board/05-reading.md +2 -1
- package/docs/01-board/06-watchers.md +8 -6
- package/docs/01-board/08-middleware.md +6 -3
- package/docs/01-board/09-access.md +145 -14
- package/docs/02-sync/01-overview.md +19 -26
- package/docs/02-sync/02-functions.md +8 -9
- package/docs/02-sync/03-slack.md +5 -5
- package/docs/02-sync/04-github.md +2 -2
- package/docs/02-sync/06-providers.md +91 -62
- package/docs/03-guides/01-coding-agents.md +1 -1
- package/docs/03-guides/03-ci.md +7 -4
- package/docs/04-reference/01-cli.md +109 -51
- package/docs/04-reference/02-board.md +76 -28
- package/docs/04-reference/03-http.md +76 -38
- package/docs/04-reference/04-log.md +8 -11
- package/docs/04-reference/05-conformance.md +47 -7
- package/docs/index.md +2 -2
- package/package.json +7 -10
- package/sql/postgres/board.sql +1 -1
- package/sql/postgres/schema.sql +1 -1
- package/dist/conformance-DlnfuzEB.mjs +0 -556
- package/dist/errors-CusN4x2l.mjs +0 -88
- package/dist/events-qf5XG5VQ.mjs +0 -75
- package/dist/exports-mhAYiU4i.d.mts +0 -5
- package/dist/store-N8PXxDAS-BWBgzBHp.mjs +0 -5
- package/dist/store-memory-ZLiZbH3R.mjs +0 -2
- package/dist/store-sqlite-BmwL3pUR.mjs +0 -2
- package/dist/sync-kapso.mjs +0 -89
- package/dist/sync.chat.d.mts +0 -2
- package/dist/sync.chat.mjs +0 -2
- package/dist/users-yryHKFMo.mjs +0 -42
- package/docs/02-sync/05-whatsapp.md +0 -152
|
@@ -40,8 +40,10 @@ type CliCommand = {
|
|
|
40
40
|
readonly subcommands?: readonly CliCommand[];
|
|
41
41
|
/** Its arguments come before its subcommand, as in `sources <key> read <target>`. */
|
|
42
42
|
readonly argumentsBeforeSubcommand?: true;
|
|
43
|
-
/** It does something without a subcommand too, as `
|
|
43
|
+
/** It does something without a subcommand too, as `sources` lists the sync entries. */
|
|
44
44
|
readonly runsWithoutSubcommand?: true;
|
|
45
|
+
/** The subcommand its command runs when given none, as `channels` runs `channels list`. */
|
|
46
|
+
readonly default?: true;
|
|
45
47
|
/** Out of help: it still runs, for what calls it. */
|
|
46
48
|
readonly hidden?: true;
|
|
47
49
|
};
|
|
@@ -61,7 +63,7 @@ declare const options: {
|
|
|
61
63
|
readonly type: 'string';
|
|
62
64
|
readonly value: '@handle';
|
|
63
65
|
readonly optionalValue: true;
|
|
64
|
-
readonly description: 'mentioning a handle, or you without one';
|
|
66
|
+
readonly description: 'mentioning a handle or email, or you without one';
|
|
65
67
|
};
|
|
66
68
|
readonly label: {
|
|
67
69
|
readonly type: 'string';
|
|
@@ -166,6 +168,23 @@ declare const options: {
|
|
|
166
168
|
readonly value: 'k';
|
|
167
169
|
readonly description: 'remove a label';
|
|
168
170
|
};
|
|
171
|
+
readonly if: {
|
|
172
|
+
readonly type: 'string';
|
|
173
|
+
readonly multiple: true;
|
|
174
|
+
readonly value: 'k=v';
|
|
175
|
+
readonly description: 'only while the message has this label now';
|
|
176
|
+
};
|
|
177
|
+
readonly 'if-unset': {
|
|
178
|
+
readonly type: 'string';
|
|
179
|
+
readonly multiple: true;
|
|
180
|
+
readonly value: 'k';
|
|
181
|
+
readonly description: "only while the message doesn't have this label";
|
|
182
|
+
};
|
|
183
|
+
readonly 'if-revision': {
|
|
184
|
+
readonly type: 'string';
|
|
185
|
+
readonly value: 'N';
|
|
186
|
+
readonly description: 'only if it is still at this revision, as read --json shows it';
|
|
187
|
+
};
|
|
169
188
|
readonly channel: {
|
|
170
189
|
readonly type: 'string';
|
|
171
190
|
readonly value: 'c';
|
|
@@ -185,14 +204,6 @@ declare const options: {
|
|
|
185
204
|
readonly value: 'duration';
|
|
186
205
|
readonly description: 'how long to wait (default: 30m)';
|
|
187
206
|
};
|
|
188
|
-
readonly code: {
|
|
189
|
-
readonly type: 'boolean';
|
|
190
|
-
readonly description: 'post a code from your account instead of signing in';
|
|
191
|
-
};
|
|
192
|
-
readonly 'no-wait': {
|
|
193
|
-
readonly type: 'boolean';
|
|
194
|
-
readonly description: "start linking, and don't wait for it to finish";
|
|
195
|
-
};
|
|
196
207
|
readonly 'no-open': {
|
|
197
208
|
readonly type: 'boolean';
|
|
198
209
|
readonly description: "don't open the browser";
|
|
@@ -228,6 +239,32 @@ declare const options: {
|
|
|
228
239
|
readonly value: 'N';
|
|
229
240
|
readonly description: 'repeating this many times';
|
|
230
241
|
};
|
|
242
|
+
readonly can: {
|
|
243
|
+
readonly type: 'string';
|
|
244
|
+
readonly value: 'scope';
|
|
245
|
+
readonly description: 'what it may do (default: *=read,post,react,label)';
|
|
246
|
+
};
|
|
247
|
+
readonly claim: {
|
|
248
|
+
readonly type: 'string';
|
|
249
|
+
readonly multiple: true;
|
|
250
|
+
readonly value: 'k=v';
|
|
251
|
+
readonly description: 'a claim its tokens carry; the same name again is any of them';
|
|
252
|
+
};
|
|
253
|
+
readonly profile: {
|
|
254
|
+
readonly type: 'string';
|
|
255
|
+
readonly value: 'name';
|
|
256
|
+
readonly description: 'the profile every request with it writes as';
|
|
257
|
+
};
|
|
258
|
+
readonly session: {
|
|
259
|
+
readonly type: 'string';
|
|
260
|
+
readonly value: 'id';
|
|
261
|
+
readonly description: 'the session every request with it writes from';
|
|
262
|
+
};
|
|
263
|
+
readonly expires: {
|
|
264
|
+
readonly type: 'string';
|
|
265
|
+
readonly value: 'duration';
|
|
266
|
+
readonly description: 'how long it lives (default: 30d, at most 90d)';
|
|
267
|
+
};
|
|
231
268
|
readonly port: {
|
|
232
269
|
readonly type: 'string';
|
|
233
270
|
readonly value: 'N';
|
|
@@ -15,7 +15,7 @@ const options = {
|
|
|
15
15
|
type: "string",
|
|
16
16
|
value: "@handle",
|
|
17
17
|
optionalValue: true,
|
|
18
|
-
description: "mentioning a handle, or you without one"
|
|
18
|
+
description: "mentioning a handle or email, or you without one"
|
|
19
19
|
},
|
|
20
20
|
label: {
|
|
21
21
|
type: "string",
|
|
@@ -120,6 +120,23 @@ const options = {
|
|
|
120
120
|
value: "k",
|
|
121
121
|
description: "remove a label"
|
|
122
122
|
},
|
|
123
|
+
if: {
|
|
124
|
+
type: "string",
|
|
125
|
+
multiple: true,
|
|
126
|
+
value: "k=v",
|
|
127
|
+
description: "only while the message has this label now"
|
|
128
|
+
},
|
|
129
|
+
"if-unset": {
|
|
130
|
+
type: "string",
|
|
131
|
+
multiple: true,
|
|
132
|
+
value: "k",
|
|
133
|
+
description: "only while the message doesn't have this label"
|
|
134
|
+
},
|
|
135
|
+
"if-revision": {
|
|
136
|
+
type: "string",
|
|
137
|
+
value: "N",
|
|
138
|
+
description: "only if it is still at this revision, as read --json shows it"
|
|
139
|
+
},
|
|
123
140
|
channel: {
|
|
124
141
|
type: "string",
|
|
125
142
|
value: "c",
|
|
@@ -139,14 +156,6 @@ const options = {
|
|
|
139
156
|
value: "duration",
|
|
140
157
|
description: "how long to wait (default: 30m)"
|
|
141
158
|
},
|
|
142
|
-
code: {
|
|
143
|
-
type: "boolean",
|
|
144
|
-
description: "post a code from your account instead of signing in"
|
|
145
|
-
},
|
|
146
|
-
"no-wait": {
|
|
147
|
-
type: "boolean",
|
|
148
|
-
description: "start linking, and don't wait for it to finish"
|
|
149
|
-
},
|
|
150
159
|
"no-open": {
|
|
151
160
|
type: "boolean",
|
|
152
161
|
description: "don't open the browser"
|
|
@@ -182,6 +191,32 @@ const options = {
|
|
|
182
191
|
value: "N",
|
|
183
192
|
description: "repeating this many times"
|
|
184
193
|
},
|
|
194
|
+
can: {
|
|
195
|
+
type: "string",
|
|
196
|
+
value: "scope",
|
|
197
|
+
description: "what it may do (default: *=read,post,react,label)"
|
|
198
|
+
},
|
|
199
|
+
claim: {
|
|
200
|
+
type: "string",
|
|
201
|
+
multiple: true,
|
|
202
|
+
value: "k=v",
|
|
203
|
+
description: "a claim its tokens carry; the same name again is any of them"
|
|
204
|
+
},
|
|
205
|
+
profile: {
|
|
206
|
+
type: "string",
|
|
207
|
+
value: "name",
|
|
208
|
+
description: "the profile every request with it writes as"
|
|
209
|
+
},
|
|
210
|
+
session: {
|
|
211
|
+
type: "string",
|
|
212
|
+
value: "id",
|
|
213
|
+
description: "the session every request with it writes from"
|
|
214
|
+
},
|
|
215
|
+
expires: {
|
|
216
|
+
type: "string",
|
|
217
|
+
value: "duration",
|
|
218
|
+
description: "how long it lives (default: 30d, at most 90d)"
|
|
219
|
+
},
|
|
185
220
|
port: {
|
|
186
221
|
type: "string",
|
|
187
222
|
value: "N",
|
|
@@ -243,6 +278,8 @@ const text = (description = "what it says: - reads it from stdin, and it may be
|
|
|
243
278
|
required: false,
|
|
244
279
|
description
|
|
245
280
|
});
|
|
281
|
+
/** What `--after` means on a reply: a precondition, where on a read it's a position. */
|
|
282
|
+
const AFTER = "a reply only while this is the thread's newest message";
|
|
246
283
|
/** What one of the CLI's help pages lists together, in this order. */
|
|
247
284
|
const groups = [
|
|
248
285
|
"you",
|
|
@@ -265,70 +302,169 @@ const commands = [
|
|
|
265
302
|
}]
|
|
266
303
|
},
|
|
267
304
|
{
|
|
268
|
-
group: "
|
|
269
|
-
name: "
|
|
270
|
-
description: "
|
|
305
|
+
group: "you",
|
|
306
|
+
name: "tokens",
|
|
307
|
+
description: "tokens that act as you, narrowed, for a widget, a sandbox, or a script",
|
|
271
308
|
arguments: [],
|
|
272
309
|
options: [],
|
|
310
|
+
runsWithoutSubcommand: true,
|
|
273
311
|
examples: [{
|
|
274
|
-
name: "list
|
|
275
|
-
value: "
|
|
276
|
-
}]
|
|
312
|
+
name: "list your tokens",
|
|
313
|
+
value: "tokens"
|
|
314
|
+
}],
|
|
315
|
+
subcommands: [
|
|
316
|
+
{
|
|
317
|
+
name: "list",
|
|
318
|
+
default: true,
|
|
319
|
+
description: "your live tokens, or with manage, everyone's",
|
|
320
|
+
arguments: [],
|
|
321
|
+
options: [],
|
|
322
|
+
examples: [{
|
|
323
|
+
name: "list your tokens",
|
|
324
|
+
value: "tokens list"
|
|
325
|
+
}]
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: "create",
|
|
329
|
+
description: "mint one, and print its secret once",
|
|
330
|
+
arguments: [{
|
|
331
|
+
name: "name",
|
|
332
|
+
required: true,
|
|
333
|
+
description: "what it is for, e.g. feedback-widget"
|
|
334
|
+
}],
|
|
335
|
+
options: [
|
|
336
|
+
option("can"),
|
|
337
|
+
option("profile"),
|
|
338
|
+
option("session"),
|
|
339
|
+
option("expires")
|
|
340
|
+
],
|
|
341
|
+
examples: [{
|
|
342
|
+
name: "a token that only posts feedback",
|
|
343
|
+
value: "tokens create feedback-widget --can feedback/=post"
|
|
344
|
+
}, {
|
|
345
|
+
name: "a week's token for a sandbox agent",
|
|
346
|
+
value: "tokens create sandbox-7 --can dev/=read,post,react --profile lemur --expires 7d"
|
|
347
|
+
}]
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
name: "revoke",
|
|
351
|
+
description: "stop one, and every token minted with it",
|
|
352
|
+
arguments: [{
|
|
353
|
+
name: "token",
|
|
354
|
+
required: true,
|
|
355
|
+
description: "its ID, as tokens shows it (t12)"
|
|
356
|
+
}],
|
|
357
|
+
options: [],
|
|
358
|
+
examples: [{
|
|
359
|
+
name: "revoke a token",
|
|
360
|
+
value: "tokens revoke t12"
|
|
361
|
+
}]
|
|
362
|
+
}
|
|
363
|
+
]
|
|
277
364
|
},
|
|
278
365
|
{
|
|
279
366
|
group: "the board",
|
|
280
|
-
name: "
|
|
281
|
-
description: "
|
|
367
|
+
name: "grants",
|
|
368
|
+
description: "who the board lets in beside its code's rules: tokens from an OIDC issuer with these claims",
|
|
282
369
|
arguments: [],
|
|
283
370
|
options: [],
|
|
371
|
+
runsWithoutSubcommand: true,
|
|
284
372
|
examples: [{
|
|
285
|
-
name: "list
|
|
286
|
-
value: "
|
|
287
|
-
}]
|
|
373
|
+
name: "list the grants",
|
|
374
|
+
value: "grants"
|
|
375
|
+
}],
|
|
376
|
+
subcommands: [
|
|
377
|
+
{
|
|
378
|
+
name: "list",
|
|
379
|
+
default: true,
|
|
380
|
+
description: "the board's grants",
|
|
381
|
+
arguments: [],
|
|
382
|
+
options: [],
|
|
383
|
+
examples: [{
|
|
384
|
+
name: "list the grants",
|
|
385
|
+
value: "grants list"
|
|
386
|
+
}]
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
name: "create",
|
|
390
|
+
description: "let them in, or change what they may do",
|
|
391
|
+
arguments: [{
|
|
392
|
+
name: "issuer",
|
|
393
|
+
required: true,
|
|
394
|
+
description: "vercel, github, or an https URL"
|
|
395
|
+
}],
|
|
396
|
+
options: [option("claim"), option("can")],
|
|
397
|
+
examples: [{
|
|
398
|
+
name: "let a workflow post in ci/",
|
|
399
|
+
value: "grants create github --claim repository=acme/web --can ci/=read,post"
|
|
400
|
+
}, {
|
|
401
|
+
name: "let a project's production post feedback",
|
|
402
|
+
value: "grants create vercel --claim project_id=prj_123 --claim environment=production --can feedback/=post"
|
|
403
|
+
}]
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
name: "revoke",
|
|
407
|
+
description: "stop letting them in",
|
|
408
|
+
arguments: [{
|
|
409
|
+
name: "grant",
|
|
410
|
+
required: true,
|
|
411
|
+
description: "its ID, as grants shows it (g3)"
|
|
412
|
+
}],
|
|
413
|
+
options: [],
|
|
414
|
+
examples: [{
|
|
415
|
+
name: "revoke a grant",
|
|
416
|
+
value: "grants revoke g3"
|
|
417
|
+
}]
|
|
418
|
+
}
|
|
419
|
+
]
|
|
288
420
|
},
|
|
289
421
|
{
|
|
290
422
|
group: "the board",
|
|
291
|
-
name: "
|
|
292
|
-
description: "
|
|
423
|
+
name: "channels",
|
|
424
|
+
description: "channels, grouped by path prefix: a first post makes one, and so does create",
|
|
293
425
|
arguments: [],
|
|
294
426
|
options: [],
|
|
295
427
|
runsWithoutSubcommand: true,
|
|
296
428
|
examples: [{
|
|
297
|
-
name: "list
|
|
298
|
-
value: "
|
|
429
|
+
name: "list the channels",
|
|
430
|
+
value: "channels"
|
|
299
431
|
}],
|
|
300
432
|
subcommands: [{
|
|
301
|
-
name: "
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
description: "the sync entry, e.g. slack"
|
|
307
|
-
}],
|
|
308
|
-
options: [
|
|
309
|
-
option("code"),
|
|
310
|
-
option("no-wait"),
|
|
311
|
-
option("no-open")
|
|
312
|
-
],
|
|
433
|
+
name: "list",
|
|
434
|
+
default: true,
|
|
435
|
+
description: "channels, grouped by path prefix",
|
|
436
|
+
arguments: [],
|
|
437
|
+
options: [],
|
|
313
438
|
examples: [{
|
|
314
|
-
name: "
|
|
315
|
-
value: "
|
|
439
|
+
name: "list the channels",
|
|
440
|
+
value: "channels list"
|
|
316
441
|
}]
|
|
317
442
|
}, {
|
|
318
|
-
name: "
|
|
319
|
-
description: "
|
|
443
|
+
name: "create",
|
|
444
|
+
description: "a channel, before anything posts to it (one that exists stays as it is)",
|
|
320
445
|
arguments: [{
|
|
321
|
-
name: "
|
|
446
|
+
name: "channel",
|
|
322
447
|
required: true,
|
|
323
|
-
description: "
|
|
448
|
+
description: "its path, such as dev/alerts"
|
|
324
449
|
}],
|
|
325
450
|
options: [],
|
|
326
451
|
examples: [{
|
|
327
|
-
name: "
|
|
328
|
-
value: "
|
|
452
|
+
name: "make a channel for alerts",
|
|
453
|
+
value: "channels create dev/alerts"
|
|
329
454
|
}]
|
|
330
455
|
}]
|
|
331
456
|
},
|
|
457
|
+
{
|
|
458
|
+
group: "the board",
|
|
459
|
+
name: "actors",
|
|
460
|
+
description: "actors and their handles",
|
|
461
|
+
arguments: [],
|
|
462
|
+
options: [],
|
|
463
|
+
examples: [{
|
|
464
|
+
name: "list who has written here",
|
|
465
|
+
value: "actors"
|
|
466
|
+
}]
|
|
467
|
+
},
|
|
332
468
|
{
|
|
333
469
|
group: "messages",
|
|
334
470
|
name: "read",
|
|
@@ -369,7 +505,8 @@ const commands = [
|
|
|
369
505
|
option("attach"),
|
|
370
506
|
option("sync"),
|
|
371
507
|
option("no-sync"),
|
|
372
|
-
option("idempotency-key")
|
|
508
|
+
option("idempotency-key"),
|
|
509
|
+
option("after", AFTER)
|
|
373
510
|
],
|
|
374
511
|
examples: [{
|
|
375
512
|
name: "start a thread",
|
|
@@ -387,11 +524,15 @@ const commands = [
|
|
|
387
524
|
options: [
|
|
388
525
|
option("attach"),
|
|
389
526
|
option("idempotency-key"),
|
|
390
|
-
option("no-sync")
|
|
527
|
+
option("no-sync"),
|
|
528
|
+
option("after", AFTER)
|
|
391
529
|
],
|
|
392
530
|
examples: [{
|
|
393
531
|
name: "reply in a thread",
|
|
394
532
|
value: "reply 812 \"on it\""
|
|
533
|
+
}, {
|
|
534
|
+
name: "reply only if #815 is still the thread's newest",
|
|
535
|
+
value: "reply 812 \"on it\" --after 815"
|
|
395
536
|
}]
|
|
396
537
|
},
|
|
397
538
|
{
|
|
@@ -465,10 +606,13 @@ const commands = [
|
|
|
465
606
|
required: true,
|
|
466
607
|
description: "its new text: - reads it from stdin"
|
|
467
608
|
}],
|
|
468
|
-
options: [],
|
|
609
|
+
options: [option("if-revision")],
|
|
469
610
|
examples: [{
|
|
470
611
|
name: "fix a typo",
|
|
471
612
|
value: "edit 812 \"deploys are green again\""
|
|
613
|
+
}, {
|
|
614
|
+
name: "only if no one changed it since you read it",
|
|
615
|
+
value: "edit 812 \"step 3 of 5\" --if-revision 820"
|
|
472
616
|
}]
|
|
473
617
|
},
|
|
474
618
|
{
|
|
@@ -477,7 +621,7 @@ const commands = [
|
|
|
477
621
|
aliases: ["rm", "del"],
|
|
478
622
|
description: "delete a message, leaving a tombstone",
|
|
479
623
|
arguments: [id()],
|
|
480
|
-
options: [],
|
|
624
|
+
options: [option("if-revision")],
|
|
481
625
|
examples: [{
|
|
482
626
|
name: "delete a message",
|
|
483
627
|
value: "delete 812"
|
|
@@ -508,16 +652,30 @@ const commands = [
|
|
|
508
652
|
multiple: true,
|
|
509
653
|
description: "a label to set"
|
|
510
654
|
}],
|
|
511
|
-
options: [
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
655
|
+
options: [
|
|
656
|
+
option("unset"),
|
|
657
|
+
option("if"),
|
|
658
|
+
option("if-unset")
|
|
659
|
+
],
|
|
660
|
+
examples: [
|
|
661
|
+
{
|
|
662
|
+
name: "mark a bug fixed",
|
|
663
|
+
value: "label 812 state=fixed --unset wip"
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
name: "claim a thread, unless someone has",
|
|
667
|
+
value: "label 812 owner=claude --if-unset owner"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
name: "move it on from open only",
|
|
671
|
+
value: "label 812 state=fixing --if state=open"
|
|
672
|
+
}
|
|
673
|
+
]
|
|
516
674
|
},
|
|
517
675
|
{
|
|
518
676
|
group: "messages",
|
|
519
677
|
name: "typing",
|
|
520
|
-
description: "show typing in the thread's synced platform threads
|
|
678
|
+
description: "show typing in the thread's synced platform threads",
|
|
521
679
|
arguments: [id(), {
|
|
522
680
|
name: "status",
|
|
523
681
|
required: false,
|