mockpit 1.3.0 → 3.0.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 (77) hide show
  1. package/README.md +66 -202
  2. package/bin/demoData.js +5 -5
  3. package/bin/initDesign.js +6 -6
  4. package/bin/mockpit.js +687 -192
  5. package/bin/poster.js +377 -0
  6. package/dist/mcp/server.js +110 -19
  7. package/dist/server/answerAdditions.d.ts +7 -0
  8. package/dist/server/answerAdditions.js +76 -0
  9. package/dist/server/apiViews.d.ts +563 -41
  10. package/dist/server/apiViews.js +223 -74
  11. package/dist/server/app.d.ts +10 -2
  12. package/dist/server/app.js +3284 -782
  13. package/dist/server/appIcon.js +15 -5
  14. package/dist/server/appIconPng.js +3 -3
  15. package/dist/server/askNudges.js +1 -1
  16. package/dist/server/cdnInline.d.ts +8 -0
  17. package/dist/server/cdnInline.js +638 -0
  18. package/dist/server/codeWorker.js +2 -1
  19. package/dist/server/decisionList.d.ts +45 -0
  20. package/dist/server/decisionList.js +302 -0
  21. package/dist/server/decisions.d.ts +8 -8
  22. package/dist/server/decisions.js +18 -17
  23. package/dist/server/designGuide.d.ts +10 -6
  24. package/dist/server/designGuide.js +173 -78
  25. package/dist/server/embeds.d.ts +4 -1
  26. package/dist/server/embeds.js +57 -6
  27. package/dist/server/eventLog.d.ts +2 -2
  28. package/dist/server/eventLog.js +11 -11
  29. package/dist/server/events.d.ts +9 -6
  30. package/dist/server/feedbackBatch.d.ts +38 -16
  31. package/dist/server/feedbackBatch.js +121 -50
  32. package/dist/server/fills.d.ts +4 -0
  33. package/dist/server/fills.js +55 -1
  34. package/dist/server/guidance.d.ts +23 -0
  35. package/dist/server/guidance.js +71 -0
  36. package/dist/server/handoff.d.ts +4 -1
  37. package/dist/server/handoff.js +8 -2
  38. package/dist/server/icons.js +1 -1
  39. package/dist/server/index.js +49 -11
  40. package/dist/server/jump.d.ts +21 -0
  41. package/dist/server/jump.js +175 -0
  42. package/dist/server/knobs.d.ts +3 -3
  43. package/dist/server/knobs.js +6 -6
  44. package/dist/server/mcpHttp.d.ts +8 -1
  45. package/dist/server/mcpHttp.js +44 -7
  46. package/dist/server/mcpSpec.d.ts +2 -1
  47. package/dist/server/mcpSpec.js +172 -50
  48. package/dist/server/parts.js +9 -1
  49. package/dist/server/postSurfaces.js +3 -0
  50. package/dist/server/run.d.ts +1 -1
  51. package/dist/server/run.js +31 -17
  52. package/dist/server/runApi.d.ts +3 -3
  53. package/dist/server/runApi.js +34 -24
  54. package/dist/server/sqlStore.d.ts +117 -94
  55. package/dist/server/sqlStore.js +1089 -141
  56. package/dist/server/standings.d.ts +25 -0
  57. package/dist/server/standings.js +113 -0
  58. package/dist/server/surfacePage.d.ts +6 -9
  59. package/dist/server/surfacePage.js +361 -86
  60. package/dist/server/types.d.ts +252 -69
  61. package/dist/server/types.js +87 -69
  62. package/extensions/mockpit.js +245 -65
  63. package/guide/AGENT_SETUP.md +13 -1
  64. package/guide/packs/design-craft.md +34 -0
  65. package/guide/topics/asks.md +117 -69
  66. package/guide/topics/feedback.md +156 -119
  67. package/guide/topics/html.md +19 -32
  68. package/guide/topics/http.md +43 -40
  69. package/guide/topics/knobs.md +7 -10
  70. package/guide/topics/scripts.md +24 -35
  71. package/guide/topics/surfaces.md +50 -41
  72. package/opencode/mockpit.js +120 -0
  73. package/opencode/package.json +8 -0
  74. package/package.json +4 -6
  75. package/skills/launch-video/SKILL.md +12 -12
  76. package/skills/mockpit/SKILL.md +35 -23
  77. package/viewer/dist/index.html +9 -8
@@ -1,5 +1,6 @@
1
+ import type { Mode } from "./themes.ts";
1
2
  import { type PartInfo } from "./parts.ts";
2
- import { type Embed, type KnobValue, type Mock, type Post, type PostVersion, type Session, type Surface } from "./types.ts";
3
+ import { type Embed, type KnobValue, type Design, type Post, type PostHead, type PostVersion, type Session, type Surface } from "./types.ts";
3
4
  export declare const surfaceRef: (surface: Pick<Surface, "id" | "kind">, index: number) => {
4
5
  id: string | undefined;
5
6
  kind: "html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code";
@@ -10,6 +11,8 @@ export declare const fullSurfaceView: (surface: Surface, index: number) => {
10
11
  kind: "html";
11
12
  html: string;
12
13
  kits?: string[];
14
+ poster?: string;
15
+ posterMode?: Mode;
13
16
  id?: string;
14
17
  } | {
15
18
  index: number;
@@ -61,6 +64,8 @@ export declare const hydratedSurfaceView: (surface: Surface, index: number) => {
61
64
  kind: "html";
62
65
  html: string;
63
66
  kits?: string[];
67
+ poster?: string;
68
+ posterMode?: Mode;
64
69
  id?: string;
65
70
  } | {
66
71
  index: number;
@@ -107,8 +112,30 @@ export declare const hydratedSurfaceView: (surface: Surface, index: number) => {
107
112
  lineStart?: number;
108
113
  id?: string;
109
114
  } | Record<string, unknown>;
115
+ export declare const postersFor: <S extends {
116
+ kind: string;
117
+ }, P extends {
118
+ surfaces: S[];
119
+ history: {
120
+ surfaces: S[];
121
+ }[];
122
+ }>(posts: P[], mode: Mode) => P[];
110
123
  export declare const historyMetaView: (version: PostVersion) => {
124
+ canvas?: boolean | undefined;
125
+ poster: string;
126
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
127
+ amendedAt?: string | undefined;
128
+ author?: string | undefined;
129
+ prompt?: string | undefined;
130
+ from?: number | undefined;
131
+ version: number;
132
+ title: string;
133
+ at: string;
134
+ } | {
135
+ canvas?: boolean | undefined;
136
+ poster?: undefined;
111
137
  surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
138
+ amendedAt?: string | undefined;
112
139
  author?: string | undefined;
113
140
  prompt?: string | undefined;
114
141
  from?: number | undefined;
@@ -120,6 +147,7 @@ export interface VariantViewOptions {
120
147
  body?: boolean;
121
148
  history?: boolean;
122
149
  embeds?: Map<string, EmbedView>;
150
+ kept?: Set<string>;
123
151
  }
124
152
  export interface EmbedView {
125
153
  key: string;
@@ -130,7 +158,21 @@ export interface EmbedView {
130
158
  }
131
159
  export declare const variantView: (post: Post, opts?: VariantViewOptions) => {
132
160
  history?: ({
161
+ canvas?: boolean | undefined;
162
+ poster: string;
163
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
164
+ amendedAt?: string | undefined;
165
+ author?: string | undefined;
166
+ prompt?: string | undefined;
167
+ from?: number | undefined;
168
+ version: number;
169
+ title: string;
170
+ at: string;
171
+ } | {
172
+ canvas?: boolean | undefined;
173
+ poster?: undefined;
133
174
  surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
175
+ amendedAt?: string | undefined;
134
176
  author?: string | undefined;
135
177
  prompt?: string | undefined;
136
178
  from?: number | undefined;
@@ -139,7 +181,22 @@ export declare const variantView: (post: Post, opts?: VariantViewOptions) => {
139
181
  at: string;
140
182
  } | {
141
183
  hidden: true;
184
+ canvas?: boolean | undefined;
185
+ poster: string;
142
186
  surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
187
+ amendedAt?: string | undefined;
188
+ author?: string | undefined;
189
+ prompt?: string | undefined;
190
+ from?: number | undefined;
191
+ version: number;
192
+ title: string;
193
+ at: string;
194
+ } | {
195
+ hidden: true;
196
+ canvas?: boolean | undefined;
197
+ poster?: undefined;
198
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
199
+ amendedAt?: string | undefined;
143
200
  author?: string | undefined;
144
201
  prompt?: string | undefined;
145
202
  from?: number | undefined;
@@ -153,6 +210,8 @@ export declare const variantView: (post: Post, opts?: VariantViewOptions) => {
153
210
  kind: "html";
154
211
  html: string;
155
212
  kits?: string[];
213
+ poster?: string;
214
+ posterMode?: Mode;
156
215
  id?: string;
157
216
  } | {
158
217
  index: number;
@@ -199,8 +258,11 @@ export declare const variantView: (post: Post, opts?: VariantViewOptions) => {
199
258
  lineStart?: number;
200
259
  id?: string;
201
260
  } | Record<string, unknown>)[];
202
- acceptedVersion?: number | undefined;
203
- starred?: boolean | undefined;
261
+ archiveReason?: string | undefined;
262
+ changedTo?: number | undefined;
263
+ inUseVersion?: number | undefined;
264
+ kept?: boolean | undefined;
265
+ copiedFrom?: import("./types.ts").CopyRef | undefined;
204
266
  forkedFrom?: import("./types.ts").ForkRef | undefined;
205
267
  publishedWith?: Embed[] | undefined;
206
268
  embeds?: (Embed & {
@@ -208,25 +270,27 @@ export declare const variantView: (post: Post, opts?: VariantViewOptions) => {
208
270
  versions: number[];
209
271
  })[] | undefined;
210
272
  embedsKey?: string | undefined;
211
- note?: string | undefined;
212
- slots?: import("./fills.ts").SlotInfo[] | undefined;
273
+ description?: string | undefined;
274
+ fills?: import("./fills.ts").SlotInfo[] | undefined;
213
275
  knobs?: {
214
276
  [x: string]: import("./types.ts").KnobConfig;
215
277
  } | undefined;
278
+ rewrites?: number | undefined;
279
+ amendedAt?: string | undefined;
216
280
  author?: string | undefined;
217
281
  prompt?: string | undefined;
218
282
  from?: number | undefined;
219
283
  postId: string;
220
284
  state: string | null;
221
285
  variant: string;
222
- status: import("./types.ts").PostStatus;
286
+ status: import("./types.ts").VariantStatus;
223
287
  version: number;
224
288
  title: string;
225
289
  sessionId: string;
226
290
  createdAt: string;
227
291
  updatedAt: string;
228
292
  };
229
- export declare const inUseByState: (mock: Mock, posts: Post[]) => {
293
+ export declare const inUseByState: (design: Design, posts: PostHead[]) => {
230
294
  state: string | null;
231
295
  variant: string;
232
296
  version: number;
@@ -235,48 +299,267 @@ export interface StateParts {
235
299
  state: string | null;
236
300
  parts: PartInfo[];
237
301
  }
238
- export declare function partsByState(mock: Mock, posts: Post[]): StateParts[];
239
- export declare const mockSummaryView: (mock: Mock, posts: Post[]) => {
302
+ export declare function partsByState(design: Design, posts: Post[]): StateParts[];
303
+ export declare const placeOf: (design: Pick<Design, "area" | "source">) => {
304
+ area?: string;
305
+ source?: string;
306
+ };
307
+ export declare const draftHolds: (draft: Design["draft"]) => boolean;
308
+ export declare const designSummaryView: (design: Design, posts: PostHead[]) => {
240
309
  sessionId: string | null;
241
- resolvedAt: string | null;
310
+ archivedAt: string | null;
242
311
  createdAt: string;
243
312
  updatedAt: string;
244
313
  thumbnail: {
314
+ rewrites?: number | undefined;
315
+ poster?: string | undefined;
245
316
  postId: string;
246
317
  surface: number;
247
318
  version: number;
248
319
  } | null;
249
320
  drafted?: number | undefined;
321
+ states: string[];
322
+ stateCount: number;
323
+ variants: number;
324
+ open: number;
325
+ hasNotes?: true | undefined;
326
+ planned: true;
327
+ area?: string;
328
+ source?: string;
250
329
  id: string;
251
330
  project: string;
252
331
  slug: string;
253
332
  title: string;
254
- kind: import("./types.ts").MockKind;
333
+ kind: import("./types.ts").DesignKind;
334
+ } | {
335
+ sessionId: string | null;
336
+ archivedAt: string | null;
337
+ createdAt: string;
338
+ updatedAt: string;
339
+ thumbnail: {
340
+ rewrites?: number | undefined;
341
+ poster?: string | undefined;
342
+ postId: string;
343
+ surface: number;
344
+ version: number;
345
+ } | null;
346
+ drafted?: number | undefined;
255
347
  states: string[];
256
348
  stateCount: number;
257
349
  variants: number;
258
350
  open: number;
259
- };
260
- export declare const mockDetailView: (mock: Mock, posts: Post[], opts?: VariantViewOptions & {
261
- settled?: Record<string, KnobValue>;
262
- }) => {
351
+ hasNotes?: true | undefined;
352
+ planned?: undefined;
353
+ area?: string;
354
+ source?: string;
263
355
  id: string;
264
356
  project: string;
265
357
  slug: string;
266
358
  title: string;
267
- kind: import("./types.ts").MockKind;
268
- states: string[];
269
- asks: import("./types.ts").Ask[];
359
+ kind: import("./types.ts").DesignKind;
360
+ };
361
+ export declare const designDetailView: (design: Design, posts: Post[], opts?: VariantViewOptions & {
362
+ settled?: Record<string, KnobValue>;
363
+ repliesGoTo?: string;
364
+ }) => {
365
+ createdAt: string;
366
+ updatedAt: string;
367
+ variants: {
368
+ history?: ({
369
+ canvas?: boolean | undefined;
370
+ poster: string;
371
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
372
+ amendedAt?: string | undefined;
373
+ author?: string | undefined;
374
+ prompt?: string | undefined;
375
+ from?: number | undefined;
376
+ version: number;
377
+ title: string;
378
+ at: string;
379
+ } | {
380
+ canvas?: boolean | undefined;
381
+ poster?: undefined;
382
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
383
+ amendedAt?: string | undefined;
384
+ author?: string | undefined;
385
+ prompt?: string | undefined;
386
+ from?: number | undefined;
387
+ version: number;
388
+ title: string;
389
+ at: string;
390
+ } | {
391
+ hidden: true;
392
+ canvas?: boolean | undefined;
393
+ poster: string;
394
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
395
+ amendedAt?: string | undefined;
396
+ author?: string | undefined;
397
+ prompt?: string | undefined;
398
+ from?: number | undefined;
399
+ version: number;
400
+ title: string;
401
+ at: string;
402
+ } | {
403
+ hidden: true;
404
+ canvas?: boolean | undefined;
405
+ poster?: undefined;
406
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
407
+ amendedAt?: string | undefined;
408
+ author?: string | undefined;
409
+ prompt?: string | undefined;
410
+ from?: number | undefined;
411
+ version: number;
412
+ title: string;
413
+ at: string;
414
+ })[] | undefined;
415
+ parts: string[];
416
+ surfaces: ({
417
+ index: number;
418
+ kind: "html";
419
+ html: string;
420
+ kits?: string[];
421
+ poster?: string;
422
+ posterMode?: Mode;
423
+ id?: string;
424
+ } | {
425
+ index: number;
426
+ kind: "diff";
427
+ patch?: string;
428
+ files?: import("./types.ts").DiffFile[];
429
+ layout?: "unified" | "split";
430
+ id?: string;
431
+ } | {
432
+ index: number;
433
+ kind: "image";
434
+ assetId: string;
435
+ alt?: string;
436
+ caption?: string;
437
+ id?: string;
438
+ } | {
439
+ index: number;
440
+ kind: "markdown";
441
+ markdown: string;
442
+ id?: string;
443
+ } | {
444
+ index: number;
445
+ kind: "terminal";
446
+ text: string;
447
+ cols?: number;
448
+ title?: string;
449
+ id?: string;
450
+ } | {
451
+ index: number;
452
+ kind: "mermaid";
453
+ mermaid: string;
454
+ id?: string;
455
+ } | {
456
+ index: number;
457
+ kind: "json";
458
+ data: unknown;
459
+ id?: string;
460
+ } | {
461
+ index: number;
462
+ kind: "code";
463
+ code: string;
464
+ language?: string;
465
+ title?: string;
466
+ lineStart?: number;
467
+ id?: string;
468
+ } | Record<string, unknown>)[];
469
+ archiveReason?: string | undefined;
470
+ changedTo?: number | undefined;
471
+ inUseVersion?: number | undefined;
472
+ kept?: boolean | undefined;
473
+ copiedFrom?: import("./types.ts").CopyRef | undefined;
474
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
475
+ publishedWith?: Embed[] | undefined;
476
+ embeds?: (Embed & {
477
+ latest: number;
478
+ versions: number[];
479
+ })[] | undefined;
480
+ embedsKey?: string | undefined;
481
+ description?: string | undefined;
482
+ fills?: import("./fills.ts").SlotInfo[] | undefined;
483
+ knobs?: {
484
+ [x: string]: import("./types.ts").KnobConfig;
485
+ } | undefined;
486
+ rewrites?: number | undefined;
487
+ amendedAt?: string | undefined;
488
+ author?: string | undefined;
489
+ prompt?: string | undefined;
490
+ from?: number | undefined;
491
+ postId: string;
492
+ state: string | null;
493
+ variant: string;
494
+ status: import("./types.ts").VariantStatus;
495
+ version: number;
496
+ title: string;
497
+ sessionId: string;
498
+ createdAt: string;
499
+ updatedAt: string;
500
+ }[];
501
+ inUse: {
502
+ state: string | null;
503
+ variant: string;
504
+ version: number;
505
+ }[];
506
+ parts: StateParts[];
507
+ settled: Record<string, KnobValue>;
508
+ archiveReason?: string | undefined;
270
509
  open: number;
271
510
  knobs: import("./types.ts").Knobs;
272
511
  widths: number[];
273
512
  sessionId: string | null;
274
- resolvedAt: string | null;
513
+ archivedAt: string | null;
514
+ sets?: import("./types.ts").AnswerSet[] | undefined;
515
+ standings?: Record<string, import("./types.ts").AnswerStanding> | undefined;
516
+ asks: import("./types.ts").Ask[];
517
+ answerAdditions?: import("./types.ts").AnswerAddition[] | undefined;
518
+ stateOutlines?: Record<string, import("./types.ts").StateOutline> | undefined;
519
+ notes?: import("./types.ts").DesignNotes | undefined;
520
+ states: string[];
521
+ planned: true;
522
+ repliesGoTo?: string | undefined;
523
+ shortlist?: boolean | undefined;
524
+ area?: string;
525
+ source?: string;
526
+ id: string;
527
+ project: string;
528
+ slug: string;
529
+ title: string;
530
+ kind: import("./types.ts").DesignKind;
531
+ } | {
275
532
  createdAt: string;
276
533
  updatedAt: string;
277
534
  variants: {
278
535
  history?: ({
536
+ canvas?: boolean | undefined;
537
+ poster: string;
538
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
539
+ amendedAt?: string | undefined;
540
+ author?: string | undefined;
541
+ prompt?: string | undefined;
542
+ from?: number | undefined;
543
+ version: number;
544
+ title: string;
545
+ at: string;
546
+ } | {
547
+ canvas?: boolean | undefined;
548
+ poster?: undefined;
549
+ surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
550
+ amendedAt?: string | undefined;
551
+ author?: string | undefined;
552
+ prompt?: string | undefined;
553
+ from?: number | undefined;
554
+ version: number;
555
+ title: string;
556
+ at: string;
557
+ } | {
558
+ hidden: true;
559
+ canvas?: boolean | undefined;
560
+ poster: string;
279
561
  surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
562
+ amendedAt?: string | undefined;
280
563
  author?: string | undefined;
281
564
  prompt?: string | undefined;
282
565
  from?: number | undefined;
@@ -285,7 +568,10 @@ export declare const mockDetailView: (mock: Mock, posts: Post[], opts?: VariantV
285
568
  at: string;
286
569
  } | {
287
570
  hidden: true;
571
+ canvas?: boolean | undefined;
572
+ poster?: undefined;
288
573
  surfaceKinds: ("html" | "diff" | "image" | "markdown" | "terminal" | "mermaid" | "json" | "code")[];
574
+ amendedAt?: string | undefined;
289
575
  author?: string | undefined;
290
576
  prompt?: string | undefined;
291
577
  from?: number | undefined;
@@ -299,6 +585,8 @@ export declare const mockDetailView: (mock: Mock, posts: Post[], opts?: VariantV
299
585
  kind: "html";
300
586
  html: string;
301
587
  kits?: string[];
588
+ poster?: string;
589
+ posterMode?: Mode;
302
590
  id?: string;
303
591
  } | {
304
592
  index: number;
@@ -345,8 +633,11 @@ export declare const mockDetailView: (mock: Mock, posts: Post[], opts?: VariantV
345
633
  lineStart?: number;
346
634
  id?: string;
347
635
  } | Record<string, unknown>)[];
348
- acceptedVersion?: number | undefined;
349
- starred?: boolean | undefined;
636
+ archiveReason?: string | undefined;
637
+ changedTo?: number | undefined;
638
+ inUseVersion?: number | undefined;
639
+ kept?: boolean | undefined;
640
+ copiedFrom?: import("./types.ts").CopyRef | undefined;
350
641
  forkedFrom?: import("./types.ts").ForkRef | undefined;
351
642
  publishedWith?: Embed[] | undefined;
352
643
  embeds?: (Embed & {
@@ -354,18 +645,20 @@ export declare const mockDetailView: (mock: Mock, posts: Post[], opts?: VariantV
354
645
  versions: number[];
355
646
  })[] | undefined;
356
647
  embedsKey?: string | undefined;
357
- note?: string | undefined;
358
- slots?: import("./fills.ts").SlotInfo[] | undefined;
648
+ description?: string | undefined;
649
+ fills?: import("./fills.ts").SlotInfo[] | undefined;
359
650
  knobs?: {
360
651
  [x: string]: import("./types.ts").KnobConfig;
361
652
  } | undefined;
653
+ rewrites?: number | undefined;
654
+ amendedAt?: string | undefined;
362
655
  author?: string | undefined;
363
656
  prompt?: string | undefined;
364
657
  from?: number | undefined;
365
658
  postId: string;
366
659
  state: string | null;
367
660
  variant: string;
368
- status: import("./types.ts").PostStatus;
661
+ status: import("./types.ts").VariantStatus;
369
662
  version: number;
370
663
  title: string;
371
664
  sessionId: string;
@@ -379,6 +672,29 @@ export declare const mockDetailView: (mock: Mock, posts: Post[], opts?: VariantV
379
672
  }[];
380
673
  parts: StateParts[];
381
674
  settled: Record<string, KnobValue>;
675
+ archiveReason?: string | undefined;
676
+ open: number;
677
+ knobs: import("./types.ts").Knobs;
678
+ widths: number[];
679
+ sessionId: string | null;
680
+ archivedAt: string | null;
681
+ sets?: import("./types.ts").AnswerSet[] | undefined;
682
+ standings?: Record<string, import("./types.ts").AnswerStanding> | undefined;
683
+ asks: import("./types.ts").Ask[];
684
+ answerAdditions?: import("./types.ts").AnswerAddition[] | undefined;
685
+ stateOutlines?: Record<string, import("./types.ts").StateOutline> | undefined;
686
+ notes?: import("./types.ts").DesignNotes | undefined;
687
+ states: string[];
688
+ planned?: undefined;
689
+ repliesGoTo?: string | undefined;
690
+ shortlist?: boolean | undefined;
691
+ area?: string;
692
+ source?: string;
693
+ id: string;
694
+ project: string;
695
+ slug: string;
696
+ title: string;
697
+ kind: import("./types.ts").DesignKind;
382
698
  };
383
699
  export declare const sessionRowView: (session: Session, postCount: number) => {
384
700
  postCount: number;
@@ -393,41 +709,247 @@ export declare const sessionRowView: (session: Session, postCount: number) => {
393
709
  agentActiveAt: string | null;
394
710
  keyed: boolean;
395
711
  };
396
- export declare const treeNodeView: (mock: Mock, posts: Post[], extra: {
712
+ export declare const treeNodeView: (design: Design, posts: PostHead[], extra: {
397
713
  settled: Record<string, KnobValue>;
398
- uses: string[];
399
- embeds: Map<string, EmbedView>;
714
+ embeds: string[];
715
+ embedViews: Map<string, EmbedView>;
716
+ lastReplyAt?: string;
717
+ noDescriptions?: boolean;
718
+ lastSend?: {
719
+ sessionId: string;
720
+ at: string;
721
+ delivered: boolean;
722
+ calledAt?: string;
723
+ };
724
+ drafting?: boolean;
400
725
  }) => {
401
- id: string;
402
- slug: string;
403
- title: string;
404
- kind: import("./types.ts").MockKind;
405
- open: number;
726
+ settled: Record<string, KnobValue>;
727
+ embeds: string[];
728
+ embeddedIn: string[];
729
+ inUse: {
730
+ state: string | null;
731
+ variant: string;
732
+ version: number;
733
+ }[];
734
+ recommended: {
735
+ state: string | null;
736
+ variant: string;
737
+ }[];
738
+ variants: ({
739
+ embedsKey?: string | undefined;
740
+ archiveReason?: string | undefined;
741
+ changedTo?: number | undefined;
742
+ inUseVersion?: number | undefined;
743
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
744
+ description?: string | undefined;
745
+ coverVersion?: number;
746
+ coverPoster?: string;
747
+ inUsePoster?: undefined;
748
+ poster: string;
749
+ surface: number;
750
+ rewrites?: number | undefined;
751
+ postId: string;
752
+ state: string | null;
753
+ variant: string;
754
+ status: import("./types.ts").VariantStatus;
755
+ version: number;
756
+ updatedAt: string;
757
+ } | {
758
+ embedsKey?: string | undefined;
759
+ archiveReason?: string | undefined;
760
+ changedTo?: number | undefined;
761
+ inUseVersion?: number | undefined;
762
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
763
+ description?: string | undefined;
764
+ coverVersion?: number;
765
+ coverPoster?: string;
766
+ inUsePoster: string;
767
+ poster: string;
768
+ surface: number;
769
+ rewrites?: number | undefined;
770
+ postId: string;
771
+ state: string | null;
772
+ variant: string;
773
+ status: import("./types.ts").VariantStatus;
774
+ version: number;
775
+ updatedAt: string;
776
+ } | {
777
+ embedsKey?: string | undefined;
778
+ archiveReason?: string | undefined;
779
+ changedTo?: number | undefined;
780
+ inUseVersion?: number | undefined;
781
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
782
+ description?: string | undefined;
783
+ coverVersion?: number;
784
+ coverPoster?: string;
785
+ inUsePoster?: undefined;
786
+ poster?: undefined;
787
+ surface: number;
788
+ rewrites?: number | undefined;
789
+ postId: string;
790
+ state: string | null;
791
+ variant: string;
792
+ status: import("./types.ts").VariantStatus;
793
+ version: number;
794
+ updatedAt: string;
795
+ } | {
796
+ embedsKey?: string | undefined;
797
+ archiveReason?: string | undefined;
798
+ changedTo?: number | undefined;
799
+ inUseVersion?: number | undefined;
800
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
801
+ description?: string | undefined;
802
+ coverVersion?: number;
803
+ coverPoster?: string;
804
+ inUsePoster: string;
805
+ poster?: undefined;
806
+ surface: number;
807
+ rewrites?: number | undefined;
808
+ postId: string;
809
+ state: string | null;
810
+ variant: string;
811
+ status: import("./types.ts").VariantStatus;
812
+ version: number;
813
+ updatedAt: string;
814
+ })[];
815
+ archiveReason?: string | undefined;
816
+ leftAt?: string;
406
817
  states: string[] | null[];
407
818
  widths: number[];
408
819
  createdAt: string;
409
820
  updatedAt: string;
410
- resolvedAt: string | null;
821
+ archivedAt: string | null;
822
+ drafting?: boolean | undefined;
823
+ lastSend?: {
824
+ sessionId: string;
825
+ at: string;
826
+ delivered: boolean;
827
+ calledAt?: string;
828
+ } | undefined;
829
+ lastReplyAt?: string | undefined;
830
+ asked?: number | undefined;
831
+ open: number;
832
+ planned: true;
833
+ shortlist?: boolean | undefined;
834
+ area?: string;
835
+ source?: string;
836
+ id: string;
837
+ slug: string;
838
+ title: string;
839
+ kind: import("./types.ts").DesignKind;
840
+ } | {
411
841
  settled: Record<string, KnobValue>;
412
- uses: string[];
413
- usedIn: string[];
842
+ embeds: string[];
843
+ embeddedIn: string[];
414
844
  inUse: {
415
845
  state: string | null;
416
846
  variant: string;
417
847
  version: number;
418
848
  }[];
419
- variants: {
849
+ recommended: {
850
+ state: string | null;
851
+ variant: string;
852
+ }[];
853
+ variants: ({
854
+ embedsKey?: string | undefined;
855
+ archiveReason?: string | undefined;
856
+ changedTo?: number | undefined;
857
+ inUseVersion?: number | undefined;
858
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
859
+ description?: string | undefined;
860
+ coverVersion?: number;
861
+ coverPoster?: string;
862
+ inUsePoster?: undefined;
863
+ poster: string;
864
+ surface: number;
865
+ rewrites?: number | undefined;
866
+ postId: string;
867
+ state: string | null;
868
+ variant: string;
869
+ status: import("./types.ts").VariantStatus;
870
+ version: number;
871
+ updatedAt: string;
872
+ } | {
420
873
  embedsKey?: string | undefined;
421
- acceptedVersion?: number | undefined;
422
- starred?: boolean | undefined;
874
+ archiveReason?: string | undefined;
875
+ changedTo?: number | undefined;
876
+ inUseVersion?: number | undefined;
423
877
  forkedFrom?: import("./types.ts").ForkRef | undefined;
424
- note?: string | undefined;
878
+ description?: string | undefined;
879
+ coverVersion?: number;
880
+ coverPoster?: string;
881
+ inUsePoster: string;
882
+ poster: string;
883
+ surface: number;
884
+ rewrites?: number | undefined;
425
885
  postId: string;
426
886
  state: string | null;
427
887
  variant: string;
428
- status: import("./types.ts").PostStatus;
888
+ status: import("./types.ts").VariantStatus;
429
889
  version: number;
430
890
  updatedAt: string;
891
+ } | {
892
+ embedsKey?: string | undefined;
893
+ archiveReason?: string | undefined;
894
+ changedTo?: number | undefined;
895
+ inUseVersion?: number | undefined;
896
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
897
+ description?: string | undefined;
898
+ coverVersion?: number;
899
+ coverPoster?: string;
900
+ inUsePoster?: undefined;
901
+ poster?: undefined;
431
902
  surface: number;
432
- }[];
903
+ rewrites?: number | undefined;
904
+ postId: string;
905
+ state: string | null;
906
+ variant: string;
907
+ status: import("./types.ts").VariantStatus;
908
+ version: number;
909
+ updatedAt: string;
910
+ } | {
911
+ embedsKey?: string | undefined;
912
+ archiveReason?: string | undefined;
913
+ changedTo?: number | undefined;
914
+ inUseVersion?: number | undefined;
915
+ forkedFrom?: import("./types.ts").ForkRef | undefined;
916
+ description?: string | undefined;
917
+ coverVersion?: number;
918
+ coverPoster?: string;
919
+ inUsePoster: string;
920
+ poster?: undefined;
921
+ surface: number;
922
+ rewrites?: number | undefined;
923
+ postId: string;
924
+ state: string | null;
925
+ variant: string;
926
+ status: import("./types.ts").VariantStatus;
927
+ version: number;
928
+ updatedAt: string;
929
+ })[];
930
+ archiveReason?: string | undefined;
931
+ leftAt?: string;
932
+ states: string[] | null[];
933
+ widths: number[];
934
+ createdAt: string;
935
+ updatedAt: string;
936
+ archivedAt: string | null;
937
+ drafting?: boolean | undefined;
938
+ lastSend?: {
939
+ sessionId: string;
940
+ at: string;
941
+ delivered: boolean;
942
+ calledAt?: string;
943
+ } | undefined;
944
+ lastReplyAt?: string | undefined;
945
+ asked?: number | undefined;
946
+ open: number;
947
+ planned?: undefined;
948
+ shortlist?: boolean | undefined;
949
+ area?: string;
950
+ source?: string;
951
+ id: string;
952
+ slug: string;
953
+ title: string;
954
+ kind: import("./types.ts").DesignKind;
433
955
  };