@skillcdn/console 0.1.9 → 0.1.10
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 +5 -5
- package/dist/api.d.ts +5 -5
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +4 -4
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +255 -10
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts +9 -1
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +80 -0
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +62 -7
- package/dist/cli/help.js.map +1 -1
- package/dist/client.d.ts +31 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -3
- package/dist/client.js.map +1 -1
- package/dist/components/board.d.ts +27 -1
- package/dist/components/board.d.ts.map +1 -1
- package/dist/components/board.js +75 -7
- package/dist/components/board.js.map +1 -1
- package/dist/components/calendar.d.ts +34 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +96 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/categories.d.ts +13 -0
- package/dist/components/categories.d.ts.map +1 -0
- package/dist/components/categories.js +52 -0
- package/dist/components/categories.js.map +1 -0
- package/dist/components/decision-list.d.ts +10 -0
- package/dist/components/decision-list.d.ts.map +1 -1
- package/dist/components/decision-list.js +14 -1
- package/dist/components/decision-list.js.map +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +12 -0
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/goals.d.ts +35 -0
- package/dist/components/goals.d.ts.map +1 -0
- package/dist/components/goals.js +45 -0
- package/dist/components/goals.js.map +1 -0
- package/dist/components/task-form.d.ts +5 -1
- package/dist/components/task-form.d.ts.map +1 -1
- package/dist/components/task-form.js +13 -1
- package/dist/components/task-form.js.map +1 -1
- package/dist/components/task-list.d.ts +16 -0
- package/dist/components/task-list.d.ts.map +1 -0
- package/dist/components/task-list.js +14 -0
- package/dist/components/task-list.js.map +1 -0
- package/dist/components/task-view.d.ts +9 -1
- package/dist/components/task-view.d.ts.map +1 -1
- package/dist/components/task-view.js +10 -4
- package/dist/components/task-view.js.map +1 -1
- package/dist/components/ui.d.ts +30 -1
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +60 -0
- package/dist/components/ui.js.map +1 -1
- package/dist/components/work.d.ts +10 -0
- package/dist/components/work.d.ts.map +1 -0
- package/dist/components/work.js +29 -0
- package/dist/components/work.js.map +1 -0
- package/dist/console.css +511 -0
- package/dist/console.d.ts +8 -0
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +124 -8
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +14 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +36 -2
- package/dist/data.js.map +1 -1
- package/dist/dates.d.ts +39 -0
- package/dist/dates.d.ts.map +1 -0
- package/dist/dates.js +120 -0
- package/dist/dates.js.map +1 -0
- package/dist/i18n/en.d.ts +162 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +174 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +169 -1
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +5 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +5 -0
- package/dist/limits.js.map +1 -1
- package/dist/router.d.ts +50 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +74 -1
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +7 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +9 -0
- package/dist/routes.js.map +1 -1
- package/dist/schemas.d.ts +366 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +112 -3
- package/dist/schemas.js.map +1 -1
- package/dist/vocabulary.d.ts +15 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +26 -0
- package/dist/vocabulary.js.map +1 -1
- package/docs/specs/cli.md +11 -4
- package/docs/specs/rest.md +33 -8
- package/package.json +1 -1
- package/skills/working-the-board/SKILL.md +7 -6
- package/src/api.ts +30 -0
- package/src/cli/cli.ts +311 -10
- package/src/cli/format.ts +88 -0
- package/src/cli/help.ts +69 -7
- package/src/client.ts +70 -2
- package/src/components/board.tsx +205 -12
- package/src/components/calendar.tsx +255 -0
- package/src/components/categories.tsx +209 -0
- package/src/components/decision-list.tsx +62 -5
- package/src/components/event-feed.tsx +12 -0
- package/src/components/goals.tsx +264 -0
- package/src/components/task-form.tsx +78 -1
- package/src/components/task-list.tsx +61 -0
- package/src/components/task-view.tsx +74 -3
- package/src/components/ui.tsx +116 -1
- package/src/components/work.tsx +83 -0
- package/src/console.tsx +337 -4
- package/src/data.ts +63 -8
- package/src/dates.ts +143 -0
- package/src/i18n/en.ts +184 -1
- package/src/i18n/ko.ts +175 -1
- package/src/index.ts +58 -1
- package/src/limits.ts +5 -0
- package/src/router.ts +119 -6
- package/src/routes.ts +10 -0
- package/src/schemas.ts +141 -1
- package/src/styles/console.css +511 -0
- package/src/vocabulary.ts +33 -0
package/dist/schemas.d.ts
CHANGED
|
@@ -209,6 +209,75 @@ export declare const restTaskLinkSchema: z.ZodMiniObject<{
|
|
|
209
209
|
label: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
210
210
|
}, z.core.$strip>;
|
|
211
211
|
export type RestTaskLink = z.infer<typeof restTaskLinkSchema>;
|
|
212
|
+
/** A category tasks are sorted into (ADR-0019): the workspace's own word for a kind of work. */
|
|
213
|
+
export declare const restCategorySchema: z.ZodMiniObject<{
|
|
214
|
+
key: z.ZodMiniString<string>;
|
|
215
|
+
name: z.ZodMiniString<string>;
|
|
216
|
+
color: z.ZodMiniEnum<{
|
|
217
|
+
blue: "blue";
|
|
218
|
+
gray: "gray";
|
|
219
|
+
green: "green";
|
|
220
|
+
orange: "orange";
|
|
221
|
+
pink: "pink";
|
|
222
|
+
purple: "purple";
|
|
223
|
+
teal: "teal";
|
|
224
|
+
yellow: "yellow";
|
|
225
|
+
}>;
|
|
226
|
+
createdAt: z.ZodMiniISODateTime;
|
|
227
|
+
updatedAt: z.ZodMiniISODateTime;
|
|
228
|
+
}, z.core.$strip>;
|
|
229
|
+
export type RestCategory = z.infer<typeof restCategorySchema>;
|
|
230
|
+
/** `GET /api/v1/categories`: the workspace's categories, by name. */
|
|
231
|
+
export declare const restCategoriesSchema: z.ZodMiniObject<{
|
|
232
|
+
items: z.ZodMiniArray<z.ZodMiniObject<{
|
|
233
|
+
key: z.ZodMiniString<string>;
|
|
234
|
+
name: z.ZodMiniString<string>;
|
|
235
|
+
color: z.ZodMiniEnum<{
|
|
236
|
+
blue: "blue";
|
|
237
|
+
gray: "gray";
|
|
238
|
+
green: "green";
|
|
239
|
+
orange: "orange";
|
|
240
|
+
pink: "pink";
|
|
241
|
+
purple: "purple";
|
|
242
|
+
teal: "teal";
|
|
243
|
+
yellow: "yellow";
|
|
244
|
+
}>;
|
|
245
|
+
createdAt: z.ZodMiniISODateTime;
|
|
246
|
+
updatedAt: z.ZodMiniISODateTime;
|
|
247
|
+
}, z.core.$strip>>;
|
|
248
|
+
}, z.core.$strip>;
|
|
249
|
+
export type RestCategories = z.infer<typeof restCategoriesSchema>;
|
|
250
|
+
/** What `POST /api/v1/categories` is sent, by an administrator: the key, the name, and a colour or the plain one. */
|
|
251
|
+
export declare const restCategoryInputSchema: z.ZodMiniObject<{
|
|
252
|
+
key: z.ZodMiniString<string>;
|
|
253
|
+
name: z.ZodMiniString<string>;
|
|
254
|
+
color: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
255
|
+
blue: "blue";
|
|
256
|
+
gray: "gray";
|
|
257
|
+
green: "green";
|
|
258
|
+
orange: "orange";
|
|
259
|
+
pink: "pink";
|
|
260
|
+
purple: "purple";
|
|
261
|
+
teal: "teal";
|
|
262
|
+
yellow: "yellow";
|
|
263
|
+
}>>;
|
|
264
|
+
}, z.core.$strip>;
|
|
265
|
+
export type RestCategoryInput = z.infer<typeof restCategoryInputSchema>;
|
|
266
|
+
/** What `PATCH /api/v1/categories/<key>` is sent: only what changes; the key does not. */
|
|
267
|
+
export declare const restCategoryPatchSchema: z.ZodMiniObject<{
|
|
268
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
269
|
+
color: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
270
|
+
blue: "blue";
|
|
271
|
+
gray: "gray";
|
|
272
|
+
green: "green";
|
|
273
|
+
orange: "orange";
|
|
274
|
+
pink: "pink";
|
|
275
|
+
purple: "purple";
|
|
276
|
+
teal: "teal";
|
|
277
|
+
yellow: "yellow";
|
|
278
|
+
}>>;
|
|
279
|
+
}, z.core.$strip>;
|
|
280
|
+
export type RestCategoryPatch = z.infer<typeof restCategoryPatchSchema>;
|
|
212
281
|
export declare const restTaskSchema: z.ZodMiniObject<{
|
|
213
282
|
id: z.ZodMiniUUID;
|
|
214
283
|
number: z.ZodMiniInt;
|
|
@@ -249,6 +318,25 @@ export declare const restTaskSchema: z.ZodMiniObject<{
|
|
|
249
318
|
}>;
|
|
250
319
|
}, z.core.$strip>>;
|
|
251
320
|
parentId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
321
|
+
category: z.ZodMiniNullable<z.ZodMiniObject<{
|
|
322
|
+
key: z.ZodMiniString<string>;
|
|
323
|
+
name: z.ZodMiniString<string>;
|
|
324
|
+
color: z.ZodMiniEnum<{
|
|
325
|
+
blue: "blue";
|
|
326
|
+
gray: "gray";
|
|
327
|
+
green: "green";
|
|
328
|
+
orange: "orange";
|
|
329
|
+
pink: "pink";
|
|
330
|
+
purple: "purple";
|
|
331
|
+
teal: "teal";
|
|
332
|
+
yellow: "yellow";
|
|
333
|
+
}>;
|
|
334
|
+
}, z.core.$strip>>;
|
|
335
|
+
goalId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
336
|
+
startsOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
337
|
+
dueOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
338
|
+
startedAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
|
|
339
|
+
doneAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
|
|
252
340
|
links: z.ZodMiniArray<z.ZodMiniObject<{
|
|
253
341
|
url: z.ZodMiniString<string>;
|
|
254
342
|
label: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
@@ -301,6 +389,25 @@ export declare const restTasksSchema: z.ZodMiniObject<{
|
|
|
301
389
|
}>;
|
|
302
390
|
}, z.core.$strip>>;
|
|
303
391
|
parentId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
392
|
+
category: z.ZodMiniNullable<z.ZodMiniObject<{
|
|
393
|
+
key: z.ZodMiniString<string>;
|
|
394
|
+
name: z.ZodMiniString<string>;
|
|
395
|
+
color: z.ZodMiniEnum<{
|
|
396
|
+
blue: "blue";
|
|
397
|
+
gray: "gray";
|
|
398
|
+
green: "green";
|
|
399
|
+
orange: "orange";
|
|
400
|
+
pink: "pink";
|
|
401
|
+
purple: "purple";
|
|
402
|
+
teal: "teal";
|
|
403
|
+
yellow: "yellow";
|
|
404
|
+
}>;
|
|
405
|
+
}, z.core.$strip>>;
|
|
406
|
+
goalId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
407
|
+
startsOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
408
|
+
dueOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
409
|
+
startedAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
|
|
410
|
+
doneAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
|
|
304
411
|
links: z.ZodMiniArray<z.ZodMiniObject<{
|
|
305
412
|
url: z.ZodMiniString<string>;
|
|
306
413
|
label: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
@@ -332,6 +439,10 @@ export declare const restTaskInputSchema: z.ZodMiniObject<{
|
|
|
332
439
|
}>>;
|
|
333
440
|
assigneeId: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniUUID>>;
|
|
334
441
|
parentId: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniUUID>>;
|
|
442
|
+
category: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
|
|
443
|
+
goalId: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniUUID>>;
|
|
444
|
+
startsOn: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODate>>;
|
|
445
|
+
dueOn: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODate>>;
|
|
335
446
|
links: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
336
447
|
url: z.ZodMiniString<string>;
|
|
337
448
|
label: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
|
|
@@ -358,12 +469,125 @@ export declare const restTaskPatchSchema: z.ZodMiniObject<{
|
|
|
358
469
|
}>>;
|
|
359
470
|
assigneeId: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniUUID>>;
|
|
360
471
|
parentId: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniUUID>>;
|
|
472
|
+
category: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
|
|
473
|
+
goalId: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniUUID>>;
|
|
474
|
+
startsOn: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODate>>;
|
|
475
|
+
dueOn: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODate>>;
|
|
361
476
|
links: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
362
477
|
url: z.ZodMiniString<string>;
|
|
363
478
|
label: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
|
|
364
479
|
}, z.core.$strip>>>;
|
|
365
480
|
}, z.core.$strip>;
|
|
366
481
|
export type RestTaskPatch = z.infer<typeof restTaskPatchSchema>;
|
|
482
|
+
/** How many tasks a goal has in each state: what its progress is read from, live. */
|
|
483
|
+
export declare const restTaskCountsSchema: z.ZodMiniObject<{
|
|
484
|
+
idea: z.ZodMiniInt;
|
|
485
|
+
ready: z.ZodMiniInt;
|
|
486
|
+
in_progress: z.ZodMiniInt;
|
|
487
|
+
in_review: z.ZodMiniInt;
|
|
488
|
+
done: z.ZodMiniInt;
|
|
489
|
+
dropped: z.ZodMiniInt;
|
|
490
|
+
}, z.core.$strip>;
|
|
491
|
+
export type RestTaskCounts = z.infer<typeof restTaskCountsSchema>;
|
|
492
|
+
/**
|
|
493
|
+
* A goal of a project's roadmap (ADR-0019): what the project works towards, with the day it is
|
|
494
|
+
* meant to be reached by, and how far the tasks under it are.
|
|
495
|
+
*/
|
|
496
|
+
export declare const restGoalSchema: z.ZodMiniObject<{
|
|
497
|
+
id: z.ZodMiniUUID;
|
|
498
|
+
title: z.ZodMiniString<string>;
|
|
499
|
+
body: z.ZodMiniString<string>;
|
|
500
|
+
state: z.ZodMiniEnum<{
|
|
501
|
+
active: "active";
|
|
502
|
+
done: "done";
|
|
503
|
+
dropped: "dropped";
|
|
504
|
+
planned: "planned";
|
|
505
|
+
}>;
|
|
506
|
+
dueOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
507
|
+
createdBy: z.ZodMiniObject<{
|
|
508
|
+
id: z.ZodMiniUUID;
|
|
509
|
+
login: z.ZodMiniString<string>;
|
|
510
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
511
|
+
avatar: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
512
|
+
role: z.ZodMiniEnum<{
|
|
513
|
+
admin: "admin";
|
|
514
|
+
member: "member";
|
|
515
|
+
}>;
|
|
516
|
+
}, z.core.$strip>;
|
|
517
|
+
taskCounts: z.ZodMiniObject<{
|
|
518
|
+
idea: z.ZodMiniInt;
|
|
519
|
+
ready: z.ZodMiniInt;
|
|
520
|
+
in_progress: z.ZodMiniInt;
|
|
521
|
+
in_review: z.ZodMiniInt;
|
|
522
|
+
done: z.ZodMiniInt;
|
|
523
|
+
dropped: z.ZodMiniInt;
|
|
524
|
+
}, z.core.$strip>;
|
|
525
|
+
createdAt: z.ZodMiniISODateTime;
|
|
526
|
+
updatedAt: z.ZodMiniISODateTime;
|
|
527
|
+
}, z.core.$strip>;
|
|
528
|
+
export type RestGoal = z.infer<typeof restGoalSchema>;
|
|
529
|
+
/** `GET /api/v1/projects/<key>/goals`: the roadmap, the active goals first. */
|
|
530
|
+
export declare const restGoalsSchema: z.ZodMiniObject<{
|
|
531
|
+
items: z.ZodMiniArray<z.ZodMiniObject<{
|
|
532
|
+
id: z.ZodMiniUUID;
|
|
533
|
+
title: z.ZodMiniString<string>;
|
|
534
|
+
body: z.ZodMiniString<string>;
|
|
535
|
+
state: z.ZodMiniEnum<{
|
|
536
|
+
active: "active";
|
|
537
|
+
done: "done";
|
|
538
|
+
dropped: "dropped";
|
|
539
|
+
planned: "planned";
|
|
540
|
+
}>;
|
|
541
|
+
dueOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
542
|
+
createdBy: z.ZodMiniObject<{
|
|
543
|
+
id: z.ZodMiniUUID;
|
|
544
|
+
login: z.ZodMiniString<string>;
|
|
545
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
546
|
+
avatar: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
547
|
+
role: z.ZodMiniEnum<{
|
|
548
|
+
admin: "admin";
|
|
549
|
+
member: "member";
|
|
550
|
+
}>;
|
|
551
|
+
}, z.core.$strip>;
|
|
552
|
+
taskCounts: z.ZodMiniObject<{
|
|
553
|
+
idea: z.ZodMiniInt;
|
|
554
|
+
ready: z.ZodMiniInt;
|
|
555
|
+
in_progress: z.ZodMiniInt;
|
|
556
|
+
in_review: z.ZodMiniInt;
|
|
557
|
+
done: z.ZodMiniInt;
|
|
558
|
+
dropped: z.ZodMiniInt;
|
|
559
|
+
}, z.core.$strip>;
|
|
560
|
+
createdAt: z.ZodMiniISODateTime;
|
|
561
|
+
updatedAt: z.ZodMiniISODateTime;
|
|
562
|
+
}, z.core.$strip>>;
|
|
563
|
+
}, z.core.$strip>;
|
|
564
|
+
export type RestGoals = z.infer<typeof restGoalsSchema>;
|
|
565
|
+
/** What `POST /api/v1/projects/<key>/goals` is sent: the title, and the rest with defaults. */
|
|
566
|
+
export declare const restGoalInputSchema: z.ZodMiniObject<{
|
|
567
|
+
title: z.ZodMiniString<string>;
|
|
568
|
+
body: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
569
|
+
state: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
570
|
+
active: "active";
|
|
571
|
+
done: "done";
|
|
572
|
+
dropped: "dropped";
|
|
573
|
+
planned: "planned";
|
|
574
|
+
}>>;
|
|
575
|
+
dueOn: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODate>>;
|
|
576
|
+
}, z.core.$strip>;
|
|
577
|
+
export type RestGoalInput = z.infer<typeof restGoalInputSchema>;
|
|
578
|
+
/** What `PATCH /api/v1/projects/<key>/goals/<id>` is sent: only what changes. */
|
|
579
|
+
export declare const restGoalPatchSchema: z.ZodMiniObject<{
|
|
580
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
581
|
+
body: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
582
|
+
state: z.ZodMiniOptional<z.ZodMiniEnum<{
|
|
583
|
+
active: "active";
|
|
584
|
+
done: "done";
|
|
585
|
+
dropped: "dropped";
|
|
586
|
+
planned: "planned";
|
|
587
|
+
}>>;
|
|
588
|
+
dueOn: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODate>>;
|
|
589
|
+
}, z.core.$strip>;
|
|
590
|
+
export type RestGoalPatch = z.infer<typeof restGoalPatchSchema>;
|
|
367
591
|
export declare const restDecisionOptionSchema: z.ZodMiniObject<{
|
|
368
592
|
id: z.ZodMiniString<string>;
|
|
369
593
|
label: z.ZodMiniString<string>;
|
|
@@ -460,6 +684,136 @@ export declare const restDecisionsSchema: z.ZodMiniObject<{
|
|
|
460
684
|
}, z.core.$strip>>;
|
|
461
685
|
}, z.core.$strip>;
|
|
462
686
|
export type RestDecisions = z.infer<typeof restDecisionsSchema>;
|
|
687
|
+
/**
|
|
688
|
+
* `GET /api/v1/work`: what is on the asker's plate across the projects they may see (ADR-0019):
|
|
689
|
+
* the open tasks assigned to them, and the decisions that wait for a person, each with its project.
|
|
690
|
+
*/
|
|
691
|
+
export declare const restWorkSchema: z.ZodMiniObject<{
|
|
692
|
+
tasks: z.ZodMiniArray<z.ZodMiniObject<{
|
|
693
|
+
project: z.ZodMiniObject<{
|
|
694
|
+
key: z.ZodMiniString<string>;
|
|
695
|
+
name: z.ZodMiniString<string>;
|
|
696
|
+
}, z.core.$strip>;
|
|
697
|
+
task: z.ZodMiniObject<{
|
|
698
|
+
id: z.ZodMiniUUID;
|
|
699
|
+
number: z.ZodMiniInt;
|
|
700
|
+
title: z.ZodMiniString<string>;
|
|
701
|
+
body: z.ZodMiniString<string>;
|
|
702
|
+
state: z.ZodMiniEnum<{
|
|
703
|
+
done: "done";
|
|
704
|
+
dropped: "dropped";
|
|
705
|
+
idea: "idea";
|
|
706
|
+
in_progress: "in_progress";
|
|
707
|
+
in_review: "in_review";
|
|
708
|
+
ready: "ready";
|
|
709
|
+
}>;
|
|
710
|
+
priority: z.ZodMiniEnum<{
|
|
711
|
+
high: "high";
|
|
712
|
+
low: "low";
|
|
713
|
+
normal: "normal";
|
|
714
|
+
urgent: "urgent";
|
|
715
|
+
}>;
|
|
716
|
+
owner: z.ZodMiniObject<{
|
|
717
|
+
id: z.ZodMiniUUID;
|
|
718
|
+
login: z.ZodMiniString<string>;
|
|
719
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
720
|
+
avatar: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
721
|
+
role: z.ZodMiniEnum<{
|
|
722
|
+
admin: "admin";
|
|
723
|
+
member: "member";
|
|
724
|
+
}>;
|
|
725
|
+
}, z.core.$strip>;
|
|
726
|
+
assignee: z.ZodMiniNullable<z.ZodMiniObject<{
|
|
727
|
+
id: z.ZodMiniUUID;
|
|
728
|
+
login: z.ZodMiniString<string>;
|
|
729
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
730
|
+
avatar: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
731
|
+
role: z.ZodMiniEnum<{
|
|
732
|
+
admin: "admin";
|
|
733
|
+
member: "member";
|
|
734
|
+
}>;
|
|
735
|
+
}, z.core.$strip>>;
|
|
736
|
+
parentId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
737
|
+
category: z.ZodMiniNullable<z.ZodMiniObject<{
|
|
738
|
+
key: z.ZodMiniString<string>;
|
|
739
|
+
name: z.ZodMiniString<string>;
|
|
740
|
+
color: z.ZodMiniEnum<{
|
|
741
|
+
blue: "blue";
|
|
742
|
+
gray: "gray";
|
|
743
|
+
green: "green";
|
|
744
|
+
orange: "orange";
|
|
745
|
+
pink: "pink";
|
|
746
|
+
purple: "purple";
|
|
747
|
+
teal: "teal";
|
|
748
|
+
yellow: "yellow";
|
|
749
|
+
}>;
|
|
750
|
+
}, z.core.$strip>>;
|
|
751
|
+
goalId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
752
|
+
startsOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
753
|
+
dueOn: z.ZodMiniNullable<z.ZodMiniISODate>;
|
|
754
|
+
startedAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
|
|
755
|
+
doneAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
|
|
756
|
+
links: z.ZodMiniArray<z.ZodMiniObject<{
|
|
757
|
+
url: z.ZodMiniString<string>;
|
|
758
|
+
label: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
759
|
+
}, z.core.$strip>>;
|
|
760
|
+
openDecisions: z.ZodMiniInt;
|
|
761
|
+
openRuns: z.ZodMiniInt;
|
|
762
|
+
createdAt: z.ZodMiniISODateTime;
|
|
763
|
+
updatedAt: z.ZodMiniISODateTime;
|
|
764
|
+
}, z.core.$strip>;
|
|
765
|
+
}, z.core.$strip>>;
|
|
766
|
+
decisions: z.ZodMiniArray<z.ZodMiniObject<{
|
|
767
|
+
project: z.ZodMiniObject<{
|
|
768
|
+
key: z.ZodMiniString<string>;
|
|
769
|
+
name: z.ZodMiniString<string>;
|
|
770
|
+
}, z.core.$strip>;
|
|
771
|
+
decision: z.ZodMiniObject<{
|
|
772
|
+
id: z.ZodMiniUUID;
|
|
773
|
+
question: z.ZodMiniString<string>;
|
|
774
|
+
body: z.ZodMiniString<string>;
|
|
775
|
+
options: z.ZodMiniArray<z.ZodMiniObject<{
|
|
776
|
+
id: z.ZodMiniString<string>;
|
|
777
|
+
label: z.ZodMiniString<string>;
|
|
778
|
+
}, z.core.$strip>>;
|
|
779
|
+
taskId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
780
|
+
taskNumber: z.ZodMiniNullable<z.ZodMiniInt>;
|
|
781
|
+
raisedBy: z.ZodMiniObject<{
|
|
782
|
+
id: z.ZodMiniUUID;
|
|
783
|
+
login: z.ZodMiniString<string>;
|
|
784
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
785
|
+
avatar: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
786
|
+
role: z.ZodMiniEnum<{
|
|
787
|
+
admin: "admin";
|
|
788
|
+
member: "member";
|
|
789
|
+
}>;
|
|
790
|
+
}, z.core.$strip>;
|
|
791
|
+
run: z.ZodMiniNullable<z.ZodMiniObject<{
|
|
792
|
+
id: z.ZodMiniUUID;
|
|
793
|
+
agent: z.ZodMiniString<string>;
|
|
794
|
+
}, z.core.$strip>>;
|
|
795
|
+
answer: z.ZodMiniNullable<z.ZodMiniObject<{
|
|
796
|
+
option: z.ZodMiniString<string>;
|
|
797
|
+
note: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
798
|
+
by: z.ZodMiniObject<{
|
|
799
|
+
id: z.ZodMiniUUID;
|
|
800
|
+
login: z.ZodMiniString<string>;
|
|
801
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
802
|
+
avatar: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
803
|
+
role: z.ZodMiniEnum<{
|
|
804
|
+
admin: "admin";
|
|
805
|
+
member: "member";
|
|
806
|
+
}>;
|
|
807
|
+
}, z.core.$strip>;
|
|
808
|
+
at: z.ZodMiniISODateTime;
|
|
809
|
+
}, z.core.$strip>>;
|
|
810
|
+
outcome: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
811
|
+
createdAt: z.ZodMiniISODateTime;
|
|
812
|
+
updatedAt: z.ZodMiniISODateTime;
|
|
813
|
+
}, z.core.$strip>;
|
|
814
|
+
}, z.core.$strip>>;
|
|
815
|
+
}, z.core.$strip>;
|
|
816
|
+
export type RestWork = z.infer<typeof restWorkSchema>;
|
|
463
817
|
/** What `POST /api/v1/projects/<key>/decisions` is sent: the question, its context, and the options. */
|
|
464
818
|
export declare const restDecisionInputSchema: z.ZodMiniObject<{
|
|
465
819
|
question: z.ZodMiniString<string>;
|
|
@@ -530,6 +884,9 @@ export type RestEventData = z.infer<typeof restEventDataSchema>;
|
|
|
530
884
|
export declare const restEventSchema: z.ZodMiniObject<{
|
|
531
885
|
id: z.ZodMiniInt;
|
|
532
886
|
kind: z.ZodMiniEnum<{
|
|
887
|
+
"category.created": "category.created";
|
|
888
|
+
"category.removed": "category.removed";
|
|
889
|
+
"category.updated": "category.updated";
|
|
533
890
|
"decision.answered": "decision.answered";
|
|
534
891
|
"decision.raised": "decision.raised";
|
|
535
892
|
"decision.updated": "decision.updated";
|
|
@@ -537,6 +894,8 @@ export declare const restEventSchema: z.ZodMiniObject<{
|
|
|
537
894
|
"document.file_attached": "document.file_attached";
|
|
538
895
|
"document.restored": "document.restored";
|
|
539
896
|
"document.written": "document.written";
|
|
897
|
+
"goal.created": "goal.created";
|
|
898
|
+
"goal.updated": "goal.updated";
|
|
540
899
|
"person.joined": "person.joined";
|
|
541
900
|
"person.role_changed": "person.role_changed";
|
|
542
901
|
"project.created": "project.created";
|
|
@@ -568,6 +927,7 @@ export declare const restEventSchema: z.ZodMiniObject<{
|
|
|
568
927
|
decisionId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
569
928
|
runId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
570
929
|
documentId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
930
|
+
goalId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
571
931
|
data: z.ZodMiniObject<{
|
|
572
932
|
number: z.ZodMiniOptional<z.ZodMiniInt>;
|
|
573
933
|
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -750,6 +1110,9 @@ export declare const restEventsSchema: z.ZodMiniObject<{
|
|
|
750
1110
|
items: z.ZodMiniArray<z.ZodMiniObject<{
|
|
751
1111
|
id: z.ZodMiniInt;
|
|
752
1112
|
kind: z.ZodMiniEnum<{
|
|
1113
|
+
"category.created": "category.created";
|
|
1114
|
+
"category.removed": "category.removed";
|
|
1115
|
+
"category.updated": "category.updated";
|
|
753
1116
|
"decision.answered": "decision.answered";
|
|
754
1117
|
"decision.raised": "decision.raised";
|
|
755
1118
|
"decision.updated": "decision.updated";
|
|
@@ -757,6 +1120,8 @@ export declare const restEventsSchema: z.ZodMiniObject<{
|
|
|
757
1120
|
"document.file_attached": "document.file_attached";
|
|
758
1121
|
"document.restored": "document.restored";
|
|
759
1122
|
"document.written": "document.written";
|
|
1123
|
+
"goal.created": "goal.created";
|
|
1124
|
+
"goal.updated": "goal.updated";
|
|
760
1125
|
"person.joined": "person.joined";
|
|
761
1126
|
"person.role_changed": "person.role_changed";
|
|
762
1127
|
"project.created": "project.created";
|
|
@@ -788,6 +1153,7 @@ export declare const restEventsSchema: z.ZodMiniObject<{
|
|
|
788
1153
|
decisionId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
789
1154
|
runId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
790
1155
|
documentId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
1156
|
+
goalId: z.ZodMiniNullable<z.ZodMiniUUID>;
|
|
791
1157
|
data: z.ZodMiniObject<{
|
|
792
1158
|
number: z.ZodMiniOptional<z.ZodMiniInt>;
|
|
793
1159
|
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
// Absent values are `null` on the wire, never missing keys. Changes within a version are additive.
|
|
5
5
|
import * as z from "zod/mini";
|
|
6
6
|
import { isDocumentPath } from "./documents.js";
|
|
7
|
-
import { MAX_AGENT_LENGTH, MAX_BODY_LENGTH, MAX_DOCUMENT_LENGTH, MAX_DOCUMENT_PATH_LENGTH, MAX_FILE_NAME_LENGTH, MAX_LANGUAGE_TAG_LENGTH, MAX_LINK_LABEL_LENGTH, MAX_LINKS, MAX_NOTE_LENGTH, MAX_OPTION_LABEL_LENGTH, MAX_OPTIONS, MAX_PROJECT_DESCRIPTION_LENGTH, MAX_PROJECT_KEY_LENGTH, MAX_PROJECT_NAME_LENGTH, MAX_QUESTION_LENGTH, MAX_SECRET_LENGTH, MAX_SKILLS_ADDRESS_LENGTH, MAX_SUMMARY_LENGTH, MAX_TITLE_LENGTH, MAX_TOKEN_DAYS, MAX_TOKEN_NAME_LENGTH, MAX_URL_LENGTH, MIN_OPTIONS, } from "./limits.js";
|
|
7
|
+
import { MAX_AGENT_LENGTH, MAX_BODY_LENGTH, MAX_CATEGORY_KEY_LENGTH, MAX_CATEGORY_NAME_LENGTH, MAX_DOCUMENT_LENGTH, MAX_DOCUMENT_PATH_LENGTH, MAX_FILE_NAME_LENGTH, MAX_LANGUAGE_TAG_LENGTH, MAX_LINK_LABEL_LENGTH, MAX_LINKS, MAX_NOTE_LENGTH, MAX_OPTION_LABEL_LENGTH, MAX_OPTIONS, MAX_PROJECT_DESCRIPTION_LENGTH, MAX_PROJECT_KEY_LENGTH, MAX_PROJECT_NAME_LENGTH, MAX_QUESTION_LENGTH, MAX_SECRET_LENGTH, MAX_SKILLS_ADDRESS_LENGTH, MAX_SUMMARY_LENGTH, MAX_TITLE_LENGTH, MAX_TOKEN_DAYS, MAX_TOKEN_NAME_LENGTH, MAX_URL_LENGTH, MIN_OPTIONS, } from "./limits.js";
|
|
8
8
|
import { hasForbiddenCodePoint } from "./text.js";
|
|
9
|
-
import { ARTIFACT_KINDS, EVENT_KINDS, LINK_SOURCES, PERSON_ROLES, PROJECT_ROLES, PROJECT_VISIBILITIES, PROVIDER_KEYS, RUN_ENDINGS, RUN_STATUSES, SKILLS_STATUSES, TASK_PRIORITIES, TASK_STATES, } from "./vocabulary.js";
|
|
9
|
+
import { ARTIFACT_KINDS, CATEGORY_COLORS, EVENT_KINDS, GOAL_STATES, LINK_SOURCES, PERSON_ROLES, PROJECT_ROLES, PROJECT_VISIBILITIES, PROVIDER_KEYS, RUN_ENDINGS, RUN_STATUSES, SKILLS_STATUSES, TASK_PRIORITIES, TASK_STATES, } from "./vocabulary.js";
|
|
10
10
|
/** A line of text a person wrote: trimmed, bounded, and free of characters that hide. */
|
|
11
11
|
const line = (maxLength) => z.string().check(z.trim(), z.minLength(1), z.maxLength(maxLength), z.refine((value) => !hasForbiddenCodePoint(value), "must not contain control characters"));
|
|
12
12
|
/** A text of a few lines: bounded, with its line breaks, and otherwise the same rule. */
|
|
@@ -18,6 +18,8 @@ const url = z.string().check(z.trim(), z.maxLength(MAX_URL_LENGTH), z.url({ prot
|
|
|
18
18
|
const uuid = z.uuid();
|
|
19
19
|
/** An ISO 8601 instant, as the server writes it. */
|
|
20
20
|
const instant = z.iso.datetime();
|
|
21
|
+
/** A calendar day (`2026-10-20`): a plan is made in days, wherever the people are (ADR-0019). */
|
|
22
|
+
const day = z.iso.date();
|
|
21
23
|
const count = z.int().check(z.nonnegative());
|
|
22
24
|
/** A person of the workspace, as the pages show them. Nothing here is a secret. */
|
|
23
25
|
export const restPersonSchema = z.object({
|
|
@@ -136,6 +138,36 @@ export const restTaskLinkSchema = z.object({
|
|
|
136
138
|
url: z.string(),
|
|
137
139
|
label: z.nullable(z.string()),
|
|
138
140
|
});
|
|
141
|
+
/**
|
|
142
|
+
* A category's key: what the command and the filters say, as a project's key is. Lowercase
|
|
143
|
+
* letters, digits and hyphens; immutable once the category is made.
|
|
144
|
+
*/
|
|
145
|
+
const categoryKey = z
|
|
146
|
+
.string()
|
|
147
|
+
.check(z.maxLength(MAX_CATEGORY_KEY_LENGTH), z.regex(/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/, "must be lowercase letters, digits and hyphens"));
|
|
148
|
+
/** A category tasks are sorted into (ADR-0019): the workspace's own word for a kind of work. */
|
|
149
|
+
export const restCategorySchema = z.object({
|
|
150
|
+
key: categoryKey,
|
|
151
|
+
name: z.string(),
|
|
152
|
+
/** One of the names the pages paint a category in. */
|
|
153
|
+
color: z.enum(CATEGORY_COLORS),
|
|
154
|
+
createdAt: instant,
|
|
155
|
+
updatedAt: instant,
|
|
156
|
+
});
|
|
157
|
+
/** `GET /api/v1/categories`: the workspace's categories, by name. */
|
|
158
|
+
export const restCategoriesSchema = z.object({ items: z.array(restCategorySchema) });
|
|
159
|
+
/** What `POST /api/v1/categories` is sent, by an administrator: the key, the name, and a colour or the plain one. */
|
|
160
|
+
export const restCategoryInputSchema = z.object({
|
|
161
|
+
key: categoryKey,
|
|
162
|
+
name: line(MAX_CATEGORY_NAME_LENGTH),
|
|
163
|
+
/** Left out: `gray`. */
|
|
164
|
+
color: z.optional(z.enum(CATEGORY_COLORS)),
|
|
165
|
+
});
|
|
166
|
+
/** What `PATCH /api/v1/categories/<key>` is sent: only what changes; the key does not. */
|
|
167
|
+
export const restCategoryPatchSchema = z.object({
|
|
168
|
+
name: z.optional(line(MAX_CATEGORY_NAME_LENGTH)),
|
|
169
|
+
color: z.optional(z.enum(CATEGORY_COLORS)),
|
|
170
|
+
});
|
|
139
171
|
export const restTaskSchema = z.object({
|
|
140
172
|
id: uuid,
|
|
141
173
|
/** The task's number in its project, the one people say out loud. */
|
|
@@ -149,6 +181,16 @@ export const restTaskSchema = z.object({
|
|
|
149
181
|
assignee: z.nullable(restPersonSchema),
|
|
150
182
|
/** The task this one is part of, or `null`. */
|
|
151
183
|
parentId: z.nullable(uuid),
|
|
184
|
+
/** The category the task is sorted into, as the workspace keeps it, or `null`. */
|
|
185
|
+
category: z.nullable(z.object({ key: z.string(), name: z.string(), color: z.enum(CATEGORY_COLORS) })),
|
|
186
|
+
/** The goal of the project's roadmap the task works towards, or `null`. */
|
|
187
|
+
goalId: z.nullable(uuid),
|
|
188
|
+
/** The plan (ADR-0019): the day the work is meant to begin, and the day it is due, each or `null`. */
|
|
189
|
+
startsOn: z.nullable(day),
|
|
190
|
+
dueOn: z.nullable(day),
|
|
191
|
+
/** What happened: when the task was first moved past ready, and when it was moved to done; each or `null`. The board keeps both. */
|
|
192
|
+
startedAt: z.nullable(instant),
|
|
193
|
+
doneAt: z.nullable(instant),
|
|
152
194
|
links: z.array(restTaskLinkSchema),
|
|
153
195
|
/** How many decisions about this task wait for a person. */
|
|
154
196
|
openDecisions: count,
|
|
@@ -171,6 +213,13 @@ export const restTaskInputSchema = z.object({
|
|
|
171
213
|
priority: z.optional(z.enum(TASK_PRIORITIES)),
|
|
172
214
|
assigneeId: z.optional(z.nullable(uuid)),
|
|
173
215
|
parentId: z.optional(z.nullable(uuid)),
|
|
216
|
+
/** The key of a category of the workspace, or `null` for none. */
|
|
217
|
+
category: z.optional(z.nullable(categoryKey)),
|
|
218
|
+
/** A goal of the project, or `null` for none. */
|
|
219
|
+
goalId: z.optional(z.nullable(uuid)),
|
|
220
|
+
/** The plan, in days; the due day is not before the start. */
|
|
221
|
+
startsOn: z.optional(z.nullable(day)),
|
|
222
|
+
dueOn: z.optional(z.nullable(day)),
|
|
174
223
|
links: z.optional(z.array(taskLinkInput).check(z.maxLength(MAX_LINKS))),
|
|
175
224
|
});
|
|
176
225
|
/** What `PATCH /api/v1/projects/<key>/tasks/<id>` is sent: only what changes. */
|
|
@@ -181,8 +230,56 @@ export const restTaskPatchSchema = z.object({
|
|
|
181
230
|
priority: z.optional(z.enum(TASK_PRIORITIES)),
|
|
182
231
|
assigneeId: z.optional(z.nullable(uuid)),
|
|
183
232
|
parentId: z.optional(z.nullable(uuid)),
|
|
233
|
+
category: z.optional(z.nullable(categoryKey)),
|
|
234
|
+
goalId: z.optional(z.nullable(uuid)),
|
|
235
|
+
startsOn: z.optional(z.nullable(day)),
|
|
236
|
+
dueOn: z.optional(z.nullable(day)),
|
|
184
237
|
links: z.optional(z.array(taskLinkInput).check(z.maxLength(MAX_LINKS))),
|
|
185
238
|
});
|
|
239
|
+
/** How many tasks a goal has in each state: what its progress is read from, live. */
|
|
240
|
+
export const restTaskCountsSchema = z.object({
|
|
241
|
+
idea: count,
|
|
242
|
+
ready: count,
|
|
243
|
+
in_progress: count,
|
|
244
|
+
in_review: count,
|
|
245
|
+
done: count,
|
|
246
|
+
dropped: count,
|
|
247
|
+
});
|
|
248
|
+
/**
|
|
249
|
+
* A goal of a project's roadmap (ADR-0019): what the project works towards, with the day it is
|
|
250
|
+
* meant to be reached by, and how far the tasks under it are.
|
|
251
|
+
*/
|
|
252
|
+
export const restGoalSchema = z.object({
|
|
253
|
+
id: uuid,
|
|
254
|
+
title: z.string(),
|
|
255
|
+
/** Markdown: what reaching the goal means. Shown as text or rendered to elements, never as HTML. */
|
|
256
|
+
body: z.string(),
|
|
257
|
+
state: z.enum(GOAL_STATES),
|
|
258
|
+
/** The day the goal is meant to be reached by, or `null`. */
|
|
259
|
+
dueOn: z.nullable(day),
|
|
260
|
+
createdBy: restPersonSchema,
|
|
261
|
+
/** The tasks that work towards it, counted by state. */
|
|
262
|
+
taskCounts: restTaskCountsSchema,
|
|
263
|
+
createdAt: instant,
|
|
264
|
+
updatedAt: instant,
|
|
265
|
+
});
|
|
266
|
+
/** `GET /api/v1/projects/<key>/goals`: the roadmap, the active goals first. */
|
|
267
|
+
export const restGoalsSchema = z.object({ items: z.array(restGoalSchema) });
|
|
268
|
+
/** What `POST /api/v1/projects/<key>/goals` is sent: the title, and the rest with defaults. */
|
|
269
|
+
export const restGoalInputSchema = z.object({
|
|
270
|
+
title: line(MAX_TITLE_LENGTH),
|
|
271
|
+
body: z.optional(body),
|
|
272
|
+
/** Left out: `planned`. */
|
|
273
|
+
state: z.optional(z.enum(GOAL_STATES)),
|
|
274
|
+
dueOn: z.optional(z.nullable(day)),
|
|
275
|
+
});
|
|
276
|
+
/** What `PATCH /api/v1/projects/<key>/goals/<id>` is sent: only what changes. */
|
|
277
|
+
export const restGoalPatchSchema = z.object({
|
|
278
|
+
title: z.optional(line(MAX_TITLE_LENGTH)),
|
|
279
|
+
body: z.optional(body),
|
|
280
|
+
state: z.optional(z.enum(GOAL_STATES)),
|
|
281
|
+
dueOn: z.optional(z.nullable(day)),
|
|
282
|
+
});
|
|
186
283
|
export const restDecisionOptionSchema = z.object({
|
|
187
284
|
/** What an answer names: stable for the life of the decision. */
|
|
188
285
|
id: z.string(),
|
|
@@ -217,6 +314,16 @@ export const restDecisionSchema = z.object({
|
|
|
217
314
|
});
|
|
218
315
|
/** `GET /api/v1/projects/<key>/decisions`: the ones that wait first, newest first within each. */
|
|
219
316
|
export const restDecisionsSchema = z.object({ items: z.array(restDecisionSchema) });
|
|
317
|
+
/** The project a thing on a person's plate belongs to, named for the page to say and link it. */
|
|
318
|
+
const projectRef = z.object({ key: projectKey, name: z.string() });
|
|
319
|
+
/**
|
|
320
|
+
* `GET /api/v1/work`: what is on the asker's plate across the projects they may see (ADR-0019):
|
|
321
|
+
* the open tasks assigned to them, and the decisions that wait for a person, each with its project.
|
|
322
|
+
*/
|
|
323
|
+
export const restWorkSchema = z.object({
|
|
324
|
+
tasks: z.array(z.object({ project: projectRef, task: restTaskSchema })),
|
|
325
|
+
decisions: z.array(z.object({ project: projectRef, decision: restDecisionSchema })),
|
|
326
|
+
});
|
|
220
327
|
/** What `POST /api/v1/projects/<key>/decisions` is sent: the question, its context, and the options. */
|
|
221
328
|
export const restDecisionInputSchema = z.object({
|
|
222
329
|
question: line(MAX_QUESTION_LENGTH),
|
|
@@ -246,7 +353,7 @@ export const restAnswerInputSchema = z.object({
|
|
|
246
353
|
export const restEventDataSchema = z.object({
|
|
247
354
|
number: z.optional(z.int()),
|
|
248
355
|
title: z.optional(z.string()),
|
|
249
|
-
/** For `task.updated`, `project.updated` and `decision.updated`: which fields changed. */
|
|
356
|
+
/** For `task.updated`, `project.updated`, `goal.updated` and `decision.updated`: which fields changed. */
|
|
250
357
|
fields: z.optional(z.array(z.string())),
|
|
251
358
|
/** For the events about a document: its path, and the version written. */
|
|
252
359
|
path: z.optional(z.string()),
|
|
@@ -287,6 +394,8 @@ export const restEventSchema = z.object({
|
|
|
287
394
|
runId: z.nullable(uuid),
|
|
288
395
|
/** The document it is about, or `null`. */
|
|
289
396
|
documentId: z.nullable(uuid),
|
|
397
|
+
/** The goal it is about, or `null`. */
|
|
398
|
+
goalId: z.nullable(uuid),
|
|
290
399
|
data: restEventDataSchema,
|
|
291
400
|
createdAt: instant,
|
|
292
401
|
});
|