@vscode/component-explorer-cli 0.1.1-1 → 0.1.1-2

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 (58) hide show
  1. package/dist/commands/mcpCommand.d.ts +8 -0
  2. package/dist/commands/mcpCommand.d.ts.map +1 -0
  3. package/dist/commands/mcpCommand.js +24 -0
  4. package/dist/commands/mcpCommand.js.map +1 -0
  5. package/dist/commands/screenshotCommand.js +1 -1
  6. package/dist/commands/screenshotCommand.js.map +1 -1
  7. package/dist/commands/serveCommand.d.ts +16 -0
  8. package/dist/commands/serveCommand.d.ts.map +1 -0
  9. package/dist/commands/serveCommand.js +137 -0
  10. package/dist/commands/serveCommand.js.map +1 -0
  11. package/dist/commands/watchCommand.d.ts.map +1 -1
  12. package/dist/commands/watchCommand.js +6 -3
  13. package/dist/commands/watchCommand.js.map +1 -1
  14. package/dist/daemon/DaemonService.d.ts +131 -0
  15. package/dist/daemon/DaemonService.d.ts.map +1 -0
  16. package/dist/daemon/DaemonService.js +450 -0
  17. package/dist/daemon/DaemonService.js.map +1 -0
  18. package/dist/daemon/approvalStore.d.ts +51 -0
  19. package/dist/daemon/approvalStore.d.ts.map +1 -0
  20. package/dist/daemon/approvalStore.js +58 -0
  21. package/dist/daemon/approvalStore.js.map +1 -0
  22. package/dist/daemon/lifecycle.d.ts +8 -0
  23. package/dist/daemon/lifecycle.d.ts.map +1 -0
  24. package/dist/daemon/lifecycle.js +51 -0
  25. package/dist/daemon/lifecycle.js.map +1 -0
  26. package/dist/daemon/pipeClient.d.ts +4 -0
  27. package/dist/daemon/pipeClient.d.ts.map +1 -0
  28. package/dist/daemon/pipeClient.js +97 -0
  29. package/dist/daemon/pipeClient.js.map +1 -0
  30. package/dist/daemon/pipeName.d.ts +2 -0
  31. package/dist/daemon/pipeName.d.ts.map +1 -0
  32. package/dist/daemon/pipeName.js +14 -0
  33. package/dist/daemon/pipeName.js.map +1 -0
  34. package/dist/daemon/pipeServer.d.ts +4 -0
  35. package/dist/daemon/pipeServer.d.ts.map +1 -0
  36. package/dist/daemon/pipeServer.js +23 -0
  37. package/dist/daemon/pipeServer.js.map +1 -0
  38. package/dist/explorerSession.d.ts +5 -3
  39. package/dist/explorerSession.d.ts.map +1 -1
  40. package/dist/explorerSession.js +6 -3
  41. package/dist/explorerSession.js.map +1 -1
  42. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js +3 -0
  43. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -1
  44. package/dist/httpServer.d.ts +8 -7
  45. package/dist/httpServer.d.ts.map +1 -1
  46. package/dist/httpServer.js +44 -4
  47. package/dist/httpServer.js.map +1 -1
  48. package/dist/index.js +4 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/mcp/McpServer.d.ts +28 -0
  51. package/dist/mcp/McpServer.d.ts.map +1 -0
  52. package/dist/mcp/McpServer.js +386 -0
  53. package/dist/mcp/McpServer.js.map +1 -0
  54. package/dist/watchConfig.d.ts +5 -0
  55. package/dist/watchConfig.d.ts.map +1 -1
  56. package/dist/watchConfig.js +14 -2
  57. package/dist/watchConfig.js.map +1 -1
  58. package/package.json +7 -3
@@ -0,0 +1,386 @@
1
+ import { z } from 'zod';
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+
5
+ // ---------------------------------------------------------------------------
6
+ // Client-local state
7
+ // ---------------------------------------------------------------------------
8
+ class WatchList {
9
+ _fixtureIds = new Set();
10
+ _hashes = new Map();
11
+ get fixtureIds() { return this._fixtureIds; }
12
+ add(ids) {
13
+ for (const id of ids) {
14
+ this._fixtureIds.add(id);
15
+ }
16
+ }
17
+ remove(ids) {
18
+ for (const id of ids) {
19
+ this._fixtureIds.delete(id);
20
+ this._hashes.delete(id);
21
+ }
22
+ }
23
+ set(ids) {
24
+ this._fixtureIds.clear();
25
+ this._hashes.clear();
26
+ for (const id of ids) {
27
+ this._fixtureIds.add(id);
28
+ }
29
+ }
30
+ getHash(fixtureId) {
31
+ return this._hashes.get(fixtureId);
32
+ }
33
+ setHash(fixtureId, hash) {
34
+ this._hashes.set(fixtureId, hash);
35
+ }
36
+ toJSON() {
37
+ return {
38
+ fixtureIds: [...this._fixtureIds],
39
+ hashes: Object.fromEntries(this._hashes),
40
+ };
41
+ }
42
+ }
43
+ // ---------------------------------------------------------------------------
44
+ // ComponentExplorerMcpServer
45
+ // ---------------------------------------------------------------------------
46
+ class ComponentExplorerMcpServer {
47
+ _daemon;
48
+ _mcp;
49
+ _watchList = new WatchList();
50
+ _sessions = [];
51
+ constructor(_daemon) {
52
+ this._daemon = _daemon;
53
+ this._mcp = new McpServer({
54
+ name: 'component-explorer',
55
+ version: '0.1.0',
56
+ });
57
+ this._registerTools();
58
+ }
59
+ async connect() {
60
+ this._sessions = await this._daemon.methods.sessions();
61
+ const transport = new StdioServerTransport();
62
+ await this._mcp.connect(transport);
63
+ }
64
+ // -- Helpers --------------------------------------------------------------
65
+ _defaultSessionName() {
66
+ return this._sessions[0]?.name ?? 'current';
67
+ }
68
+ _defaultBaselineSessionName() {
69
+ const worktree = this._sessions.find(s => s.sourceKind === 'worktree');
70
+ return worktree?.name ?? this._sessions[1]?.name ?? this._defaultSessionName();
71
+ }
72
+ _defaultCurrentSessionName() {
73
+ const current = this._sessions.find(s => s.sourceKind === 'current');
74
+ return current?.name ?? this._defaultSessionName();
75
+ }
76
+ _sourceTreeId(sessionName) {
77
+ const s = this._sessions.find(s => s.name === sessionName);
78
+ return s?.sourceTreeId ?? '';
79
+ }
80
+ _updateSessionSourceTreeId(sessionName, sourceTreeId) {
81
+ const s = this._sessions.find(s => s.name === sessionName);
82
+ if (s) {
83
+ s.sourceTreeId = sourceTreeId;
84
+ }
85
+ }
86
+ async _refreshSessions() {
87
+ this._sessions = await this._daemon.methods.sessions();
88
+ }
89
+ // -- Tool registration ---------------------------------------------------
90
+ _registerTools() {
91
+ this._registerListFixtures();
92
+ this._registerScreenshot();
93
+ this._registerCompareScreenshot();
94
+ this._registerApproveDiff();
95
+ this._registerWatchAdd();
96
+ this._registerWatchRemove();
97
+ this._registerWatchSet();
98
+ this._registerWatchCompare();
99
+ this._registerWaitForUpdate();
100
+ this._registerSessions();
101
+ }
102
+ _registerListFixtures() {
103
+ this._mcp.registerTool('list_fixtures', {
104
+ description: 'List all fixtures from a session',
105
+ inputSchema: {
106
+ sessionName: z.string().optional().describe('Session name (defaults to first session)'),
107
+ sourceTreeId: z.string().optional().describe('Source tree ID (defaults to latest known)'),
108
+ },
109
+ }, async (args) => {
110
+ const sessionName = args.sessionName ?? this._defaultSessionName();
111
+ const sourceTreeId = args.sourceTreeId ?? this._sourceTreeId(sessionName);
112
+ const fixtures = await this._daemon.methods.fixtures.list({ sessionName, sourceTreeId });
113
+ return {
114
+ content: [{ type: 'text', text: JSON.stringify(fixtures, null, 2) }],
115
+ };
116
+ });
117
+ }
118
+ _registerScreenshot() {
119
+ this._mcp.registerTool('screenshot', {
120
+ description: 'Take a screenshot of a single fixture',
121
+ inputSchema: {
122
+ fixtureId: z.string().describe('The fixture ID'),
123
+ sessionName: z.string().optional().describe('Session name (defaults to first session)'),
124
+ sourceTreeId: z.string().optional().describe('Source tree ID (defaults to latest known)'),
125
+ },
126
+ }, async (args) => {
127
+ const sessionName = args.sessionName ?? this._defaultSessionName();
128
+ const sourceTreeId = args.sourceTreeId ?? this._sourceTreeId(sessionName);
129
+ const result = await this._daemon.methods.screenshots.take({
130
+ fixtureId: args.fixtureId,
131
+ sessionName,
132
+ sourceTreeId,
133
+ includeImage: true,
134
+ });
135
+ const r = result;
136
+ this._updateSessionSourceTreeId(sessionName, r.sourceTreeId);
137
+ const content = [
138
+ { type: 'text', text: `hash: ${r.hash}\nsourceTreeId: ${r.sourceTreeId}` },
139
+ ];
140
+ if (r.image) {
141
+ content.push({ type: 'image', data: r.image, mimeType: 'image/png' });
142
+ }
143
+ return { content };
144
+ });
145
+ }
146
+ _registerCompareScreenshot() {
147
+ this._mcp.registerTool('compare_screenshot', {
148
+ description: 'Compare a fixture\'s screenshot across two sessions (e.g. baseline vs current)',
149
+ inputSchema: {
150
+ fixtureId: z.string().describe('The fixture ID'),
151
+ baselineSessionName: z.string().optional().describe('Baseline session name (defaults to worktree session)'),
152
+ currentSessionName: z.string().optional().describe('Current session name (defaults to current session)'),
153
+ baselineSourceTreeId: z.string().optional().describe('Baseline source tree ID (defaults to latest known)'),
154
+ currentSourceTreeId: z.string().optional().describe('Current source tree ID (defaults to latest known)'),
155
+ },
156
+ }, async (args) => {
157
+ const baselineSessionName = args.baselineSessionName ?? this._defaultBaselineSessionName();
158
+ const currentSessionName = args.currentSessionName ?? this._defaultCurrentSessionName();
159
+ const baselineSourceTreeId = args.baselineSourceTreeId ?? this._sourceTreeId(baselineSessionName);
160
+ const currentSourceTreeId = args.currentSourceTreeId ?? this._sourceTreeId(currentSessionName);
161
+ const result = await this._daemon.methods.screenshots.compare({
162
+ fixtureId: args.fixtureId,
163
+ baselineSessionName,
164
+ baselineSourceTreeId,
165
+ currentSessionName,
166
+ currentSourceTreeId,
167
+ includeImages: true,
168
+ });
169
+ const r = result;
170
+ const info = {
171
+ match: r.match,
172
+ baselineHash: r.baselineHash,
173
+ currentHash: r.currentHash,
174
+ };
175
+ if (r.approval) {
176
+ info.approval = r.approval;
177
+ }
178
+ const content = [
179
+ { type: 'text', text: JSON.stringify(info, null, 2) },
180
+ ];
181
+ if (r.baselineImage) {
182
+ content.push({ type: 'image', data: r.baselineImage, mimeType: 'image/png' });
183
+ }
184
+ if (r.currentImage) {
185
+ content.push({ type: 'image', data: r.currentImage, mimeType: 'image/png' });
186
+ }
187
+ return { content };
188
+ });
189
+ }
190
+ _registerApproveDiff() {
191
+ this._mcp.registerTool('approve_diff', {
192
+ description: 'Approve a visual diff so it won\'t require re-inspection next time',
193
+ inputSchema: {
194
+ fixtureId: z.string(),
195
+ originalHash: z.string(),
196
+ modifiedHash: z.string(),
197
+ comment: z.string().describe('Reason for approving this diff'),
198
+ },
199
+ }, async (args) => {
200
+ await this._daemon.methods.approvals.approve(args);
201
+ return {
202
+ content: [{
203
+ type: 'text',
204
+ text: `Approved diff for ${args.fixtureId}: ${args.originalHash} → ${args.modifiedHash}`,
205
+ }],
206
+ };
207
+ });
208
+ }
209
+ _registerWatchAdd() {
210
+ this._mcp.registerTool('watch_add', {
211
+ description: 'Add fixtures to the watch list. Watched fixtures are automatically re-screenshotted when source changes.',
212
+ inputSchema: {
213
+ fixtureIds: z.array(z.string()).describe('Fixture IDs to add'),
214
+ },
215
+ }, async (args) => {
216
+ this._watchList.add(args.fixtureIds);
217
+ return {
218
+ content: [{
219
+ type: 'text',
220
+ text: `Watch list: ${[...this._watchList.fixtureIds].join(', ') || '(empty)'}`,
221
+ }],
222
+ };
223
+ });
224
+ }
225
+ _registerWatchRemove() {
226
+ this._mcp.registerTool('watch_remove', {
227
+ description: 'Remove fixtures from the watch list',
228
+ inputSchema: {
229
+ fixtureIds: z.array(z.string()).describe('Fixture IDs to remove'),
230
+ },
231
+ }, async (args) => {
232
+ this._watchList.remove(args.fixtureIds);
233
+ return {
234
+ content: [{
235
+ type: 'text',
236
+ text: `Watch list: ${[...this._watchList.fixtureIds].join(', ') || '(empty)'}`,
237
+ }],
238
+ };
239
+ });
240
+ }
241
+ _registerWatchSet() {
242
+ this._mcp.registerTool('watch_set', {
243
+ description: 'Replace the watch list entirely',
244
+ inputSchema: {
245
+ fixtureIds: z.array(z.string()).describe('Fixture IDs to watch'),
246
+ },
247
+ }, async (args) => {
248
+ this._watchList.set(args.fixtureIds);
249
+ return {
250
+ content: [{
251
+ type: 'text',
252
+ text: `Watch list: ${[...this._watchList.fixtureIds].join(', ') || '(empty)'}`,
253
+ }],
254
+ };
255
+ });
256
+ }
257
+ _registerWatchCompare() {
258
+ this._mcp.registerTool('watch_compare', {
259
+ description: 'Compare all watched fixtures across two sessions. Takes fresh screenshots from both sessions and reports which fixtures differ.',
260
+ inputSchema: {
261
+ baselineSessionName: z.string().optional().describe('Baseline session name (defaults to worktree session)'),
262
+ currentSessionName: z.string().optional().describe('Current session name (defaults to current session)'),
263
+ baselineSourceTreeId: z.string().optional().describe('Baseline source tree ID (defaults to latest known)'),
264
+ currentSourceTreeId: z.string().optional().describe('Current source tree ID (defaults to latest known)'),
265
+ },
266
+ }, async (args) => {
267
+ const ids = [...this._watchList.fixtureIds];
268
+ if (ids.length === 0) {
269
+ return { content: [{ type: 'text', text: 'Watch list is empty. Use watch_add or watch_set first.' }] };
270
+ }
271
+ const baselineSessionName = args.baselineSessionName ?? this._defaultBaselineSessionName();
272
+ const currentSessionName = args.currentSessionName ?? this._defaultCurrentSessionName();
273
+ const baselineSourceTreeId = args.baselineSourceTreeId ?? this._sourceTreeId(baselineSessionName);
274
+ const currentSourceTreeId = args.currentSourceTreeId ?? this._sourceTreeId(currentSessionName);
275
+ const [baselineResult, currentResult] = await Promise.all([
276
+ this._daemon.methods.screenshots.takeBatch({
277
+ fixtureIds: ids,
278
+ sessionName: baselineSessionName,
279
+ sourceTreeId: baselineSourceTreeId,
280
+ }),
281
+ this._daemon.methods.screenshots.takeBatch({
282
+ fixtureIds: ids,
283
+ sessionName: currentSessionName,
284
+ sourceTreeId: currentSourceTreeId,
285
+ }),
286
+ ]);
287
+ const br = baselineResult;
288
+ const cr = currentResult;
289
+ const baselineMap = new Map(br.screenshots.map(s => [s.fixtureId, s.hash]));
290
+ const currentMap = new Map(cr.screenshots.map(s => [s.fixtureId, s.hash]));
291
+ const entries = ids.map(id => {
292
+ const bHash = baselineMap.get(id) ?? '';
293
+ const cHash = currentMap.get(id) ?? '';
294
+ return {
295
+ fixtureId: id,
296
+ match: bHash === cHash,
297
+ baselineHash: bHash,
298
+ currentHash: cHash,
299
+ };
300
+ });
301
+ // Look up approvals for changed fixtures
302
+ const results = [];
303
+ for (const entry of entries) {
304
+ let approval = undefined;
305
+ if (!entry.match && entry.baselineHash && entry.currentHash) {
306
+ approval = await this._daemon.methods.approvals.lookup({
307
+ fixtureId: entry.fixtureId,
308
+ originalHash: entry.baselineHash,
309
+ modifiedHash: entry.currentHash,
310
+ }) ?? undefined;
311
+ }
312
+ results.push({ ...entry, approval });
313
+ }
314
+ return {
315
+ content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
316
+ };
317
+ });
318
+ }
319
+ _registerWaitForUpdate() {
320
+ this._mcp.registerTool('wait_for_update', {
321
+ description: 'Block until the next source change or ref change event. If fixtures are on the watch list, automatically re-screenshots them and reports which changed.',
322
+ }, async () => {
323
+ const events = await this._daemon.methods.events();
324
+ const iterator = events[Symbol.asyncIterator]();
325
+ const { value: event, done } = await iterator.next();
326
+ // Close the stream after consuming one event
327
+ await iterator.return?.();
328
+ if (done || !event) {
329
+ return { content: [{ type: 'text', text: 'Event stream ended.' }] };
330
+ }
331
+ const ev = event;
332
+ // Update cached session info
333
+ if (ev.type === 'source-change' && ev.sourceTreeId) {
334
+ this._updateSessionSourceTreeId(ev.sessionName, ev.sourceTreeId);
335
+ }
336
+ if (ev.type === 'ref-change') {
337
+ await this._refreshSessions();
338
+ }
339
+ // If there are watched fixtures and this is a source-change, re-screenshot them
340
+ const watchedIds = [...this._watchList.fixtureIds];
341
+ if (ev.type === 'source-change' && watchedIds.length > 0 && ev.sourceTreeId) {
342
+ const batchResult = await this._daemon.methods.screenshots.takeBatch({
343
+ fixtureIds: watchedIds,
344
+ sessionName: ev.sessionName,
345
+ sourceTreeId: ev.sourceTreeId,
346
+ });
347
+ const br = batchResult;
348
+ const changes = [];
349
+ for (const s of br.screenshots) {
350
+ const prevHash = this._watchList.getHash(s.fixtureId);
351
+ const changed = prevHash !== undefined && prevHash !== s.hash;
352
+ this._watchList.setHash(s.fixtureId, s.hash);
353
+ if (changed) {
354
+ changes.push({ fixtureId: s.fixtureId, previousHash: prevHash, hash: s.hash });
355
+ }
356
+ }
357
+ return {
358
+ content: [{
359
+ type: 'text',
360
+ text: JSON.stringify({
361
+ event: ev,
362
+ watchedFixtures: br.screenshots.length,
363
+ changed: changes,
364
+ }, null, 2),
365
+ }],
366
+ };
367
+ }
368
+ return {
369
+ content: [{ type: 'text', text: JSON.stringify(ev, null, 2) }],
370
+ };
371
+ });
372
+ }
373
+ _registerSessions() {
374
+ this._mcp.registerTool('sessions', {
375
+ description: 'List active sessions with their names, URLs, and current sourceTreeIds',
376
+ }, async () => {
377
+ await this._refreshSessions();
378
+ return {
379
+ content: [{ type: 'text', text: JSON.stringify(this._sessions, null, 2) }],
380
+ };
381
+ });
382
+ }
383
+ }
384
+
385
+ export { ComponentExplorerMcpServer };
386
+ //# sourceMappingURL=McpServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpServer.js","sources":["../../src/mcp/McpServer.ts"],"sourcesContent":[null],"names":["SdkMcpServer"],"mappings":"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"}
@@ -37,11 +37,16 @@ export declare class ResolvedCompareConfig {
37
37
  readonly current: string;
38
38
  constructor(baseline: string, current: string);
39
39
  }
40
+ export interface ResolvedViteHmrConfig {
41
+ /** Glob patterns for files that keep HMR. Everything else triggers a full reload. */
42
+ readonly allowedPaths: readonly string[];
43
+ }
40
44
  export declare class ResolvedWatchConfig {
41
45
  readonly screenshotDir: string;
42
46
  readonly sessions: readonly ResolvedSessionConfig[];
43
47
  readonly compare: ResolvedCompareConfig | undefined;
44
48
  readonly repo: IGitRepo;
49
+ readonly viteHmr: ResolvedViteHmrConfig | undefined;
45
50
  private constructor();
46
51
  static fromFile(configPath: string): Promise<ResolvedWatchConfig>;
47
52
  static fromData(data: unknown, configDir: string, repo: IGitRepo): ResolvedWatchConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"watchConfig.d.ts","sourceRoot":"","sources":["../src/watchConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA4CrD,MAAM,MAAM,qBAAqB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,qBAAa,sBAAsB;IAEjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,OAAO,EAAE,qBAAqB;gBAF9B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,qBAAqB;CAExC;AAED,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE5E,qBAAa,qBAAqB;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,oBAAoB;IACrC,QAAQ,CAAC,WAAW,EAAE,cAAc;gBAF3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,cAAc;CAErC;AAED,qBAAa,qBAAqB;IAEhC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM;gBADf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM;CAEzB;AAED,qBAAa,mBAAmB;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE;IACnD,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS;IACnD,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAJxB,OAAO;WAOM,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IASvE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,mBAAmB;CAkDtF"}
1
+ {"version":3,"file":"watchConfig.d.ts","sourceRoot":"","sources":["../src/watchConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAqDrD,MAAM,MAAM,qBAAqB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,qBAAa,sBAAsB;IAEjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,OAAO,EAAE,qBAAqB;gBAF9B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,qBAAqB;CAExC;AAED,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE5E,qBAAa,qBAAqB;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,oBAAoB;IACrC,QAAQ,CAAC,WAAW,EAAE,cAAc;gBAF3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,cAAc;CAErC;AAED,qBAAa,qBAAqB;IAEhC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM;gBADf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM;CAEzB;AAED,MAAM,WAAW,qBAAqB;IACrC,qFAAqF;IACrF,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,qBAAa,mBAAmB;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE;IACnD,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS;IACnD,QAAQ,CAAC,IAAI,EAAE,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS;IALpD,OAAO;WAQM,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IASvE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,mBAAmB;CAsDtF"}
@@ -31,11 +31,18 @@ const compareConfigSchema = z.object({
31
31
  baseline: z.string(),
32
32
  current: z.string(),
33
33
  });
34
+ const viteHmrConfigSchema = z.object({
35
+ allowedPaths: z.array(z.string()),
36
+ });
37
+ const viteConfigOverridesSchema = z.object({
38
+ hmr: viteHmrConfigSchema.optional(),
39
+ });
34
40
  const watchConfigSchema = z.object({
35
41
  screenshotDir: z.string().optional(),
36
42
  sessions: z.array(sessionConfigSchema).min(1),
37
43
  compare: compareConfigSchema.optional(),
38
44
  viteConfig: z.string().optional(),
45
+ vite: viteConfigOverridesSchema.optional(),
39
46
  });
40
47
  class ResolvedWorktreeConfig {
41
48
  ref;
@@ -70,11 +77,13 @@ class ResolvedWatchConfig {
70
77
  sessions;
71
78
  compare;
72
79
  repo;
73
- constructor(screenshotDir, sessions, compare, repo) {
80
+ viteHmr;
81
+ constructor(screenshotDir, sessions, compare, repo, viteHmr) {
74
82
  this.screenshotDir = screenshotDir;
75
83
  this.sessions = sessions;
76
84
  this.compare = compare;
77
85
  this.repo = repo;
86
+ this.viteHmr = viteHmr;
78
87
  }
79
88
  static async fromFile(configPath) {
80
89
  const absConfigPath = path.resolve(configPath);
@@ -125,7 +134,10 @@ class ResolvedWatchConfig {
125
134
  }
126
135
  compare = new ResolvedCompareConfig(parsed.compare.baseline, parsed.compare.current);
127
136
  }
128
- return new ResolvedWatchConfig(screenshotDir, sessions, compare, repo);
137
+ const viteHmr = parsed.vite?.hmr
138
+ ? { allowedPaths: parsed.vite.hmr.allowedPaths }
139
+ : undefined;
140
+ return new ResolvedWatchConfig(screenshotDir, sessions, compare, repo, viteHmr);
129
141
  }
130
142
  }
131
143
  function resolveInstallConfig(raw) {
@@ -1 +1 @@
1
- {"version":3,"file":"watchConfig.js","sources":["../src/watchConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watchConfig.js","sources":["../src/watchConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode/component-explorer-cli",
3
- "version": "0.1.1-1",
3
+ "version": "0.1.1-2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "component-explorer": "./dist/index.js"
@@ -22,7 +22,10 @@
22
22
  "test": "vitest --run"
23
23
  },
24
24
  "dependencies": {
25
+ "@hediet/simple-api": "workspace:*",
26
+ "@modelcontextprotocol/sdk": "^1.26.0",
25
27
  "clipanion": "^4.0.0-rc.4",
28
+ "express": "^5.0.0",
26
29
  "zod": "^4.3.6"
27
30
  },
28
31
  "peerDependencies": {
@@ -32,15 +35,16 @@
32
35
  "devDependencies": {
33
36
  "@rollup/plugin-node-resolve": "^16.0.3",
34
37
  "@rollup/plugin-typescript": "^12.3.0",
35
- "rollup": "^4.0.0",
38
+ "@types/express": "^5.0.0",
36
39
  "@types/node": "^20.0.0",
37
- "@vscode/observables": "workspace:*",
38
40
  "@vitejs/plugin-react": "^4.3.0",
39
41
  "@vscode/component-explorer": "workspace:*",
40
42
  "@vscode/component-explorer-vite-plugin": "workspace:*",
43
+ "@vscode/observables": "workspace:*",
41
44
  "playwright": "^1.40.0",
42
45
  "react": "^18.3.0",
43
46
  "react-dom": "^18.3.0",
47
+ "rollup": "^4.0.0",
44
48
  "typescript": "^5.4.0",
45
49
  "vite": "^6.0.0",
46
50
  "vitest": "^1.3.0"