mockpit 2.0.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 (73) hide show
  1. package/README.md +60 -212
  2. package/bin/demoData.js +2 -2
  3. package/bin/initDesign.js +6 -6
  4. package/bin/mockpit.js +407 -187
  5. package/bin/poster.js +377 -0
  6. package/dist/mcp/server.js +80 -24
  7. package/dist/server/answerAdditions.d.ts +7 -0
  8. package/dist/server/answerAdditions.js +76 -0
  9. package/dist/server/apiViews.d.ts +289 -52
  10. package/dist/server/apiViews.js +189 -81
  11. package/dist/server/app.d.ts +7 -2
  12. package/dist/server/app.js +2845 -832
  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 +1 -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 +4 -4
  22. package/dist/server/decisions.js +9 -9
  23. package/dist/server/designGuide.d.ts +5 -5
  24. package/dist/server/designGuide.js +128 -67
  25. package/dist/server/embeds.d.ts +3 -1
  26. package/dist/server/embeds.js +31 -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 +35 -13
  31. package/dist/server/feedbackBatch.js +111 -47
  32. package/dist/server/fills.d.ts +4 -0
  33. package/dist/server/fills.js +55 -1
  34. package/dist/server/handoff.d.ts +4 -1
  35. package/dist/server/handoff.js +8 -2
  36. package/dist/server/icons.js +1 -1
  37. package/dist/server/index.js +39 -10
  38. package/dist/server/jump.d.ts +21 -0
  39. package/dist/server/jump.js +175 -0
  40. package/dist/server/knobs.d.ts +3 -3
  41. package/dist/server/knobs.js +6 -6
  42. package/dist/server/mcpHttp.d.ts +5 -1
  43. package/dist/server/mcpHttp.js +16 -11
  44. package/dist/server/mcpSpec.js +118 -46
  45. package/dist/server/parts.js +9 -1
  46. package/dist/server/run.d.ts +1 -1
  47. package/dist/server/run.js +25 -16
  48. package/dist/server/runApi.d.ts +3 -3
  49. package/dist/server/runApi.js +25 -19
  50. package/dist/server/sqlStore.d.ts +112 -96
  51. package/dist/server/sqlStore.js +906 -172
  52. package/dist/server/standings.d.ts +25 -0
  53. package/dist/server/standings.js +113 -0
  54. package/dist/server/surfacePage.d.ts +6 -9
  55. package/dist/server/surfacePage.js +361 -86
  56. package/dist/server/types.d.ts +226 -72
  57. package/dist/server/types.js +73 -78
  58. package/extensions/mockpit.js +89 -72
  59. package/guide/AGENT_SETUP.md +13 -1
  60. package/guide/packs/design-craft.md +2 -3
  61. package/guide/topics/asks.md +106 -62
  62. package/guide/topics/feedback.md +126 -119
  63. package/guide/topics/html.md +17 -24
  64. package/guide/topics/http.md +41 -41
  65. package/guide/topics/knobs.md +7 -10
  66. package/guide/topics/scripts.md +22 -33
  67. package/guide/topics/surfaces.md +39 -48
  68. package/opencode/mockpit.js +120 -0
  69. package/opencode/package.json +8 -0
  70. package/package.json +4 -3
  71. package/skills/launch-video/SKILL.md +11 -11
  72. package/skills/mockpit/SKILL.md +26 -22
  73. package/viewer/dist/index.html +9 -9
@@ -1,13 +1,25 @@
1
- import { type Ask, type Asset, type Comment, type CommentQuery, type CommitReplyInput, type CreateAssetInput, type CreateCommentInput, type CreateMockInput, type CreatePostInput, type CreateSessionInput, type Draft, type Knobs, type Mock, type Post, type PostQuery, type PostStatus, type PostVersion, type Session, type Embed, type Flow, type FlowStep, type ForkRef, type SqlStorage, type Store, type Surface, type UpdateMockInput, type UpdatePostInput } from "./types.ts";
1
+ import { type Ask, type JumpRows, type DesignKind, type Asset, type Comment, type CommentQuery, type CommitReplyInput, type CreateAssetInput, type CreateCommentInput, type CreateDesignInput, type CreatePostInput, type CreateSessionInput, type Draft, type Knobs, type Design, type DesignNotes, type AnswerAddition, type AnswerSet, type AnswerStanding, type StateOutline, type Post, type CopyRef, type LiveCopy, type PostHead, type PostQuery, type PostStatus, type PostVersion, type Session, type Embed, type Flow, type FlowStep, type ForkRef, type SqlStorage, type Store, type Surface, type UpdateDesignInput, type UpdatePostInput, type AmendPostInput, type DecisionVariant } from "./types.ts";
2
+ import type { Mode } from "./themes.ts";
2
3
  export declare class SqlStore implements Store {
3
4
  private sql;
4
5
  private assetRefCache;
5
- constructor(sql: SqlStorage);
6
+ private postCache;
7
+ private postCacheBytes;
8
+ private postCacheLimit;
9
+ private raw;
10
+ private holdPostDrop;
11
+ constructor(sql: SqlStorage, opts?: {
12
+ postCacheBytes?: number;
13
+ });
6
14
  private atomic;
7
15
  private tables;
8
16
  private columns;
9
17
  private addMissing;
18
+ private migrateToDesignWords;
19
+ private migrateAskScopeWord;
20
+ private renameMocksToDesigns;
10
21
  private migrate;
22
+ private migrateSituations;
11
23
  private migrateToContractTerms;
12
24
  private createIndexes;
13
25
  private migrateLegacy;
@@ -16,7 +28,7 @@ export declare class SqlStore implements Store {
16
28
  private migrateSurfaceIds;
17
29
  private migrateToItems;
18
30
  private migrateToVersions;
19
- private migrateToMocks;
31
+ private migrateToDesigns;
20
32
  private migrateToSketches;
21
33
  private settingSync;
22
34
  private insertVersion;
@@ -24,7 +36,7 @@ export declare class SqlStore implements Store {
24
36
  private historiesFor;
25
37
  private rowsToPosts;
26
38
  private rowToSession;
27
- private rowToMock;
39
+ private rowToDesign;
28
40
  private rowToPost;
29
41
  private rowToAsset;
30
42
  private rowToComment;
@@ -41,44 +53,60 @@ export declare class SqlStore implements Store {
41
53
  getSetting(key: string): Promise<string | null>;
42
54
  setSetting(key: string, value: string): Promise<void>;
43
55
  listProjects(): Promise<import("./types.ts").ProjectSummary[]>;
44
- listMocks(project?: string): Promise<Mock[]>;
45
- getMock(id: string): Promise<Mock | null>;
46
- findMock(project: string, slug: string): Promise<Mock | null>;
47
- createMock(input: CreateMockInput): Promise<Mock>;
48
- updateMock(id: string, patch: UpdateMockInput): Promise<Mock | null>;
49
- removeMock(id: string): Promise<boolean>;
50
- renameMock(id: string, slug: string): Promise<Mock | null>;
56
+ listJumpRows(): Promise<JumpRows>;
57
+ listDesigns(project?: string): Promise<Design[]>;
58
+ getDesign(id: string): Promise<Design | null>;
59
+ findDesign(project: string, slug: string): Promise<Design | null>;
60
+ createDesign(input: CreateDesignInput): Promise<Design>;
61
+ updateDesign(id: string, patch: UpdateDesignInput): Promise<Design | null>;
62
+ removeDesign(id: string): Promise<boolean>;
63
+ nameFirstState(id: string, state: string): Promise<Design | null>;
64
+ renameDesign(id: string, slug: string): Promise<Design | null>;
51
65
  renameProject(from: string, to: string): Promise<boolean>;
52
66
  private flowsOf;
53
67
  private writeFlow;
54
68
  listFlows(project: string): Promise<Flow[]>;
55
69
  placeFlowStep(project: string, name: string, screen: FlowStep, step: number): Promise<Flow | null>;
56
- putDraft(mockId: string, draft: Draft | null): Promise<{
70
+ putDraft(designId: string, draft: Draft | null): Promise<{
57
71
  draft: Draft | null;
58
72
  id: string;
59
73
  project: string;
60
74
  slug: string;
61
75
  title: string;
62
- kind: import("./types.ts").MockKind;
76
+ kind: DesignKind;
63
77
  area: string | null;
64
78
  source: string | null;
65
79
  states: string[];
66
- situations: Record<string, string[]>;
67
80
  asks: Ask[];
68
81
  knobs: Knobs;
69
82
  widths: number[];
70
83
  sessionId: string | null;
71
- closedAt: string | null;
84
+ shortlist: boolean;
85
+ archivedAt: string | null;
86
+ archiveReason: string | null;
87
+ notes: DesignNotes | null;
88
+ stateOutlines: Record<string, StateOutline>;
89
+ answerAdditions: AnswerAddition[];
90
+ standings: Record<string, AnswerStanding>;
91
+ sets: AnswerSet[];
72
92
  createdAt: string;
73
93
  updatedAt: string;
74
94
  } | null>;
75
- private touchMock;
95
+ private touchDesign;
76
96
  listPosts(query?: PostQuery): Promise<Post[]>;
97
+ listPostHeads(project?: string): Promise<PostHead[]>;
98
+ listCopies(project: string): Promise<LiveCopy[]>;
99
+ private postsOfDesign;
100
+ private trimPostCache;
101
+ private writingPosts;
102
+ private cachedPost;
103
+ private recache;
77
104
  countPostsBySession(): Promise<Map<string, number>>;
78
105
  getPost(id: string): Promise<Post | null>;
79
- findPost(mockId: string, state: string | null, variant: string): Promise<Post | null>;
106
+ findPost(designId: string, state: string | null, variant: string): Promise<Post | null>;
80
107
  createPost(input: CreatePostInput): Promise<Post | null>;
81
108
  updatePost(id: string, patch: UpdatePostInput): Promise<{
109
+ publishedBy?: string | undefined;
82
110
  author?: string | undefined;
83
111
  embeds: Embed[];
84
112
  state: string | null;
@@ -87,119 +115,107 @@ export declare class SqlStore implements Store {
87
115
  history: PostVersion[];
88
116
  from: number;
89
117
  prompt: string;
90
- note?: string | undefined;
118
+ description?: string | undefined;
91
119
  knobs?: Knobs | undefined;
92
120
  title: string;
93
121
  surfaces: Surface[];
94
122
  id: string;
95
123
  sessionId: string;
96
- mock: string;
124
+ design: string;
97
125
  variant: string;
98
126
  status: PostStatus;
99
127
  createdAt: string;
100
128
  forkedFrom?: ForkRef;
101
- starred?: true;
129
+ copiedFrom?: CopyRef;
102
130
  acceptedVersion?: number;
103
131
  hiddenVersions?: number[];
132
+ archiveReason?: string;
133
+ archivedAt?: string;
134
+ stayedVersion?: number;
135
+ rewrites?: number;
104
136
  } | null>;
105
- removePost(id: string): Promise<boolean>;
106
- setPostStatus(id: string, status: PostStatus, acceptedVersion?: number): Promise<{
107
- status: PostStatus;
108
- id: string;
109
- sessionId: string;
110
- mock: string;
111
- state: string | null;
112
- variant: string;
113
- title: string;
114
- surfaces: Surface[];
115
- createdAt: string;
116
- updatedAt: string;
117
- version: number;
118
- history: PostVersion[];
119
- knobs?: Knobs;
120
- note?: string;
137
+ amendPost(id: string, version: number, patch: AmendPostInput): Promise<{
138
+ amendedAt: string;
139
+ rewrites: number;
140
+ author?: string | undefined;
141
+ prompt?: string | undefined;
142
+ from?: number | undefined;
121
143
  embeds: Embed[];
122
- forkedFrom?: ForkRef;
123
- starred?: true;
124
- hiddenVersions?: number[];
125
- from?: number;
126
- prompt?: string;
127
- author?: string;
128
- } | {
129
- status: PostStatus;
130
- acceptedVersion: number;
131
- id: string;
132
- sessionId: string;
133
- mock: string;
134
- state: string | null;
135
- variant: string;
144
+ description?: string | undefined;
145
+ knobs?: Knobs | undefined;
136
146
  title: string;
137
147
  surfaces: Surface[];
138
- createdAt: string;
139
- updatedAt: string;
140
- version: number;
141
- history: PostVersion[];
142
- knobs?: Knobs;
143
- note?: string;
144
- embeds: Embed[];
145
- forkedFrom?: ForkRef;
146
- starred?: true;
147
- hiddenVersions?: number[];
148
- from?: number;
149
- prompt?: string;
150
- author?: string;
151
- } | null>;
152
- setPostStarred(id: string, starred: boolean): Promise<{
153
148
  id: string;
154
149
  sessionId: string;
155
- mock: string;
150
+ design: string;
156
151
  state: string | null;
157
152
  variant: string;
158
153
  status: PostStatus;
159
- title: string;
160
- surfaces: Surface[];
161
154
  createdAt: string;
162
155
  updatedAt: string;
163
156
  version: number;
164
157
  history: PostVersion[];
165
- knobs?: Knobs;
166
- note?: string;
167
- embeds: Embed[];
168
158
  forkedFrom?: ForkRef;
159
+ copiedFrom?: CopyRef;
169
160
  acceptedVersion?: number;
170
161
  hiddenVersions?: number[];
171
- from?: number;
172
- prompt?: string;
173
- author?: string;
162
+ archiveReason?: string;
163
+ archivedAt?: string;
164
+ stayedVersion?: number;
165
+ publishedBy?: string;
166
+ } | null>;
167
+ setPosterOnce(id: string, version: number, poster: string, mode?: Mode): Promise<boolean>;
168
+ withdrawVersion(id: string, version: number, embeds: Embed[]): Promise<{
169
+ post: null;
174
170
  } | {
175
- starred: true;
176
- id: string;
177
- sessionId: string;
178
- mock: string;
179
- state: string | null;
180
- variant: string;
181
- status: PostStatus;
182
- title: string;
183
- surfaces: Surface[];
184
- createdAt: string;
185
- updatedAt: string;
186
- version: number;
187
- history: PostVersion[];
188
- knobs?: Knobs;
189
- note?: string;
190
- embeds: Embed[];
191
- forkedFrom?: ForkRef;
192
- acceptedVersion?: number;
193
- hiddenVersions?: number[];
194
- from?: number;
195
- prompt?: string;
196
- author?: string;
171
+ post: {
172
+ rewrites: number;
173
+ hiddenVersions?: number[] | undefined;
174
+ amendedAt?: string | undefined;
175
+ publishedBy?: string | undefined;
176
+ author?: string | undefined;
177
+ prompt?: string | undefined;
178
+ from?: number | undefined;
179
+ title: string;
180
+ surfaces: Surface[];
181
+ embeds: Embed[];
182
+ updatedAt: string;
183
+ version: number;
184
+ history: PostVersion[];
185
+ id: string;
186
+ sessionId: string;
187
+ design: string;
188
+ state: string | null;
189
+ variant: string;
190
+ status: PostStatus;
191
+ createdAt: string;
192
+ knobs?: Knobs;
193
+ description?: string;
194
+ forkedFrom?: ForkRef;
195
+ copiedFrom?: CopyRef;
196
+ acceptedVersion?: number;
197
+ archiveReason?: string;
198
+ archivedAt?: string;
199
+ stayedVersion?: number;
200
+ };
197
201
  } | null>;
202
+ removePost(id: string): Promise<boolean>;
203
+ setPostStatus(id: string, status: PostStatus, acceptedVersion?: number): Promise<Post | null>;
204
+ setPostArchived(id: string, archivedAt: string, reason: string | null): Promise<Post | null>;
205
+ setForkedFrom(id: string, from: ForkRef | null): Promise<Post | null>;
206
+ bumpRewrites(designId: string): Promise<void>;
198
207
  setVersionHidden(id: string, version: number, hidden: boolean): Promise<Post | null>;
208
+ deleteOldVersions(id: string, versions: number[]): Promise<Post | null>;
209
+ setPostReason(id: string, reason: string | null): Promise<Post | null>;
210
+ setPostStayed(id: string, version: number): Promise<Post | null>;
199
211
  listComments(query: CommentQuery): Promise<Comment[]>;
200
212
  private insertComment;
201
213
  createComment(input: CreateCommentInput): Promise<Comment | null>;
202
214
  removeComment(id: string): Promise<Comment | null>;
215
+ listDecisionSources(project: string): Promise<{
216
+ variants: DecisionVariant[];
217
+ decidedAt: Record<string, string>;
218
+ }>;
203
219
  commitReply(input: CommitReplyInput): Promise<Comment | null>;
204
220
  private referencedAssetIds;
205
221
  private addAssetRefs;