@calibrate-ds/cli 0.1.12 → 0.1.14
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 +34 -70
- package/dist/commands/dev.d.ts +4 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +143 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/implement.d.ts.map +1 -1
- package/dist/commands/implement.js +56 -16
- package/dist/commands/implement.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +76 -37
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +36 -0
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +144 -60
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +29 -251
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/action-tools.d.ts.map +1 -1
- package/dist/mcp/tools/action-tools.js +192 -4
- package/dist/mcp/tools/action-tools.js.map +1 -1
- package/dist/mcp/tools/governance-tools.d.ts.map +1 -1
- package/dist/mcp/tools/governance-tools.js +290 -0
- package/dist/mcp/tools/governance-tools.js.map +1 -1
- package/dist/mcp/tools/info-tools.d.ts.map +1 -1
- package/dist/mcp/tools/info-tools.js +142 -1
- package/dist/mcp/tools/info-tools.js.map +1 -1
- package/dist/mcp/tools/setup-mcp-tool.d.ts +22 -0
- package/dist/mcp/tools/setup-mcp-tool.d.ts.map +1 -0
- package/dist/mcp/tools/setup-mcp-tool.js +150 -0
- package/dist/mcp/tools/setup-mcp-tool.js.map +1 -0
- package/dist/mcp/tools/verify-tool.d.ts.map +1 -1
- package/dist/mcp/tools/verify-tool.js +71 -3
- package/dist/mcp/tools/verify-tool.js.map +1 -1
- package/dist/verify/run-verify.d.ts +16 -0
- package/dist/verify/run-verify.d.ts.map +1 -0
- package/dist/verify/run-verify.js +217 -0
- package/dist/verify/run-verify.js.map +1 -0
- package/package.json +5 -5
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import * as fs from "node:fs/promises";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
+
import { execSync } from "node:child_process";
|
|
3
4
|
import { z } from "zod";
|
|
5
|
+
import { computeDesignDiff, loadPreviousSnapshot } from "@calibrate-ds/core";
|
|
4
6
|
function toSlug(name) {
|
|
5
7
|
return name.toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
6
8
|
}
|
|
9
|
+
function getGitIdentity() {
|
|
10
|
+
try {
|
|
11
|
+
const n = execSync("git config user.name", { encoding: "utf-8" }).trim();
|
|
12
|
+
const e = execSync("git config user.email", { encoding: "utf-8" }).trim();
|
|
13
|
+
return n && e ? `${n} <${e}>` : n || e || "unknown";
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return "unknown";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
7
19
|
async function loadLock(workspaceRoot) {
|
|
8
20
|
try {
|
|
9
21
|
const raw = await fs.readFile(path.join(workspaceRoot, "ptb.lock"), "utf-8");
|
|
@@ -13,6 +25,22 @@ async function loadLock(workspaceRoot) {
|
|
|
13
25
|
return null;
|
|
14
26
|
}
|
|
15
27
|
}
|
|
28
|
+
function parseSinceCutoff(since) {
|
|
29
|
+
if (!since)
|
|
30
|
+
return new Date(Date.now() - 24 * 60 * 60 * 1000);
|
|
31
|
+
const match = since.match(/^(\d+)(h|d)$/i);
|
|
32
|
+
if (match) {
|
|
33
|
+
const n = parseInt(match[1], 10);
|
|
34
|
+
const ms = match[2].toLowerCase() === "h" ? n * 3_600_000 : n * 86_400_000;
|
|
35
|
+
return new Date(Date.now() - ms);
|
|
36
|
+
}
|
|
37
|
+
const parsed = new Date(since);
|
|
38
|
+
return isNaN(parsed.getTime()) ? new Date(Date.now() - 24 * 60 * 60 * 1000) : parsed;
|
|
39
|
+
}
|
|
40
|
+
const PRIORITY_ORDER = { p0: 0, p1: 1, p2: 2, p3: 3 };
|
|
41
|
+
function priorityRank(p) {
|
|
42
|
+
return p !== undefined ? (PRIORITY_ORDER[p] ?? 4) : 4;
|
|
43
|
+
}
|
|
16
44
|
export const governanceTools = {
|
|
17
45
|
name: "governance",
|
|
18
46
|
register(server, getContext) {
|
|
@@ -175,6 +203,268 @@ export const governanceTools = {
|
|
|
175
203
|
}
|
|
176
204
|
return { content: [{ type: "text", text: JSON.stringify({ tokenName, affectedComponents: affected }, null, 2) }] };
|
|
177
205
|
});
|
|
206
|
+
server.tool("run_diff", "Get a diff of design system changes: what components and tokens were added, modified, or removed since the last scan or stamp. Call this when the user asks what changed in the design system, what's new from Figma, which components need re-implementation, or anything equivalent to 'ptb diff'.", async () => {
|
|
207
|
+
let ctx;
|
|
208
|
+
try {
|
|
209
|
+
ctx = await getContext();
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
return { content: [{ type: "text", text: e.message }] };
|
|
213
|
+
}
|
|
214
|
+
const { workspaceRoot, metadataDir } = ctx;
|
|
215
|
+
const historyDir = path.join(metadataDir, "history");
|
|
216
|
+
const currentModel = ctx.snapshot;
|
|
217
|
+
let previousModel;
|
|
218
|
+
let previousLabel = "unknown";
|
|
219
|
+
// 1. ptb.lock: stale components with a stampedSnapshotFile → compare from that stamp
|
|
220
|
+
const lock = await loadLock(workspaceRoot);
|
|
221
|
+
if (lock) {
|
|
222
|
+
const staleEntries = Object.entries(lock.components).filter(([, e]) => e.stampedHash && e.stampedHash !== e.designHash);
|
|
223
|
+
if (staleEntries.length > 0) {
|
|
224
|
+
const withFile = staleEntries
|
|
225
|
+
.filter(([, e]) => e.stampedSnapshotFile)
|
|
226
|
+
.map(([, e]) => e.stampedSnapshotFile);
|
|
227
|
+
if (withFile.length > 0) {
|
|
228
|
+
const baselineFile = withFile.sort()[0];
|
|
229
|
+
try {
|
|
230
|
+
const raw = await fs.readFile(path.join(historyDir, baselineFile), "utf-8");
|
|
231
|
+
previousModel = JSON.parse(raw);
|
|
232
|
+
previousLabel = `history/${baselineFile}`;
|
|
233
|
+
}
|
|
234
|
+
catch { /* fall through */ }
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// 2. Explicit baseline written by `ptb diff clear`
|
|
239
|
+
if (!previousModel) {
|
|
240
|
+
try {
|
|
241
|
+
const raw = await fs.readFile(path.join(metadataDir, "diff-baseline.json"), "utf-8");
|
|
242
|
+
previousModel = JSON.parse(raw);
|
|
243
|
+
previousLabel = "diff-baseline.json";
|
|
244
|
+
}
|
|
245
|
+
catch { /* fall through */ }
|
|
246
|
+
}
|
|
247
|
+
// 3. Most recent distinct snapshot in history
|
|
248
|
+
if (!previousModel) {
|
|
249
|
+
const prev = await loadPreviousSnapshot(ctx.config);
|
|
250
|
+
if (prev) {
|
|
251
|
+
previousModel = prev.model;
|
|
252
|
+
previousLabel = `history/${prev.filename}`;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (!previousModel) {
|
|
256
|
+
return { content: [{ type: "text", text: "No previous snapshot found. This appears to be the first scan — run 'ptb scan' again after the next design update to see what changed." }] };
|
|
257
|
+
}
|
|
258
|
+
const diff = computeDesignDiff(previousModel, currentModel);
|
|
259
|
+
if (diff.addedCount === 0 && diff.modifiedCount === 0 && diff.deletedCount === 0) {
|
|
260
|
+
return { content: [{ type: "text", text: JSON.stringify({ comparing: { current: "latest.json", previous: previousLabel }, totalChanges: 0, message: "No design system changes detected." }, null, 2) }] };
|
|
261
|
+
}
|
|
262
|
+
const componentChanges = diff.changes.filter(c => c.entityType === "component");
|
|
263
|
+
const tokenChanges = diff.changes.filter(c => c.entityType !== "component");
|
|
264
|
+
const result = {
|
|
265
|
+
comparing: { current: "latest.json", previous: previousLabel },
|
|
266
|
+
totalChanges: diff.addedCount + diff.modifiedCount + diff.deletedCount,
|
|
267
|
+
components: {
|
|
268
|
+
added: componentChanges
|
|
269
|
+
.filter(c => c.changeType === "added")
|
|
270
|
+
.map(c => ({ name: c.newValue?.name || c.entityId, id: c.entityId })),
|
|
271
|
+
modified: componentChanges
|
|
272
|
+
.filter(c => c.changeType === "modified")
|
|
273
|
+
.map(c => ({
|
|
274
|
+
name: c.newValue?.name || c.previousValue?.name || c.entityId,
|
|
275
|
+
id: c.entityId,
|
|
276
|
+
changes: c.details || [],
|
|
277
|
+
})),
|
|
278
|
+
removed: componentChanges
|
|
279
|
+
.filter(c => c.changeType === "deleted")
|
|
280
|
+
.map(c => ({ name: c.previousValue?.name || c.entityId, id: c.entityId })),
|
|
281
|
+
},
|
|
282
|
+
tokens: tokenChanges.map(c => ({
|
|
283
|
+
name: c.newValue?.name || c.previousValue?.name || c.entityId,
|
|
284
|
+
changeType: c.changeType,
|
|
285
|
+
changes: c.details || [],
|
|
286
|
+
})),
|
|
287
|
+
};
|
|
288
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
289
|
+
});
|
|
290
|
+
server.tool("my_queue", `Get your assigned implementation work queue — what to work on, in priority order.
|
|
291
|
+
|
|
292
|
+
Returns components assigned to you (or a specified user) sorted by urgency:
|
|
293
|
+
1. Stale assignments (you implemented it but design changed — fix first)
|
|
294
|
+
2. In-progress work (already started)
|
|
295
|
+
3. Ready-to-start, sorted by priority (p0→p3) then dueAt
|
|
296
|
+
4. Blocked (unbuilt dependencies) — shown last with blocker details
|
|
297
|
+
|
|
298
|
+
Each entry includes a startCommand to begin immediately.`, { user: z.string().optional().describe("Git identity to query (e.g. 'Alice <alice@co.com>'). Defaults to current git user.") }, async ({ user }) => {
|
|
299
|
+
let ctx;
|
|
300
|
+
try {
|
|
301
|
+
ctx = await getContext();
|
|
302
|
+
}
|
|
303
|
+
catch (e) {
|
|
304
|
+
return { content: [{ type: "text", text: e.message }] };
|
|
305
|
+
}
|
|
306
|
+
const lock = await loadLock(ctx.workspaceRoot);
|
|
307
|
+
if (!lock) {
|
|
308
|
+
return { content: [{ type: "text", text: "No ptb.lock found. Run export_context first." }] };
|
|
309
|
+
}
|
|
310
|
+
const identity = user ?? getGitIdentity();
|
|
311
|
+
const assigned = Object.entries(lock.components).filter(([, e]) => e.assignedTo && (e.assignedTo === identity || e.assignedTo.includes(identity.split(" ")[0])));
|
|
312
|
+
if (assigned.length === 0) {
|
|
313
|
+
return { content: [{ type: "text", text: `No components assigned to '${identity}'.` }] };
|
|
314
|
+
}
|
|
315
|
+
const queue = assigned.map(([slug, entry]) => {
|
|
316
|
+
// Determine implementation status
|
|
317
|
+
const isStale = !!(entry.stampedHash && entry.stampedHash !== entry.designHash);
|
|
318
|
+
const isStamped = !!(entry.stampedHash && entry.stampedHash === entry.designHash);
|
|
319
|
+
const designStatus = isStale ? "stale" : isStamped ? "stamped" : "unstamped";
|
|
320
|
+
// Check dependencies
|
|
321
|
+
const comp = ctx.snapshot.components.find((c) => toSlug(c.name) === slug);
|
|
322
|
+
let blockedBy = [];
|
|
323
|
+
if (comp) {
|
|
324
|
+
const depIds = new Set([
|
|
325
|
+
...(comp.dependencies ?? []),
|
|
326
|
+
...(comp.dependencyInstances ?? [])
|
|
327
|
+
.map((di) => di.componentId)
|
|
328
|
+
.filter(Boolean),
|
|
329
|
+
]);
|
|
330
|
+
depIds.delete(comp.id);
|
|
331
|
+
const depComponents = ctx.snapshot.components.filter((c) => depIds.has(c.id));
|
|
332
|
+
blockedBy = depComponents
|
|
333
|
+
.map((dep) => {
|
|
334
|
+
const depSlug = toSlug(dep.name);
|
|
335
|
+
const depEntry = lock.components[depSlug];
|
|
336
|
+
const ready = !!(depEntry?.stampedHash && depEntry.stampedHash === depEntry.designHash);
|
|
337
|
+
return ready ? null : { name: dep.name, slug: depSlug, status: depEntry?.stampedHash ? "stale" : "unbuilt" };
|
|
338
|
+
})
|
|
339
|
+
.filter(Boolean);
|
|
340
|
+
}
|
|
341
|
+
const isBlocked = blockedBy.length > 0;
|
|
342
|
+
const workStatus = entry.workStatus ?? "assigned";
|
|
343
|
+
// Sort tier: stale=0, started=1, assigned=2, blocked=3, stamped=4
|
|
344
|
+
let tier;
|
|
345
|
+
if (isStale && workStatus !== "stamped")
|
|
346
|
+
tier = 0;
|
|
347
|
+
else if (workStatus === "started")
|
|
348
|
+
tier = 1;
|
|
349
|
+
else if (isBlocked)
|
|
350
|
+
tier = 3;
|
|
351
|
+
else if (workStatus === "stamped")
|
|
352
|
+
tier = 4;
|
|
353
|
+
else
|
|
354
|
+
tier = 2;
|
|
355
|
+
return {
|
|
356
|
+
name: entry.displayName,
|
|
357
|
+
slug,
|
|
358
|
+
designStatus,
|
|
359
|
+
workStatus,
|
|
360
|
+
priority: entry.priority ?? null,
|
|
361
|
+
dueAt: entry.dueAt ?? null,
|
|
362
|
+
assignedBy: entry.assignedBy ?? null,
|
|
363
|
+
note: entry.assignedNote ?? null,
|
|
364
|
+
acceptanceCriteria: entry.acceptanceCriteria ?? [],
|
|
365
|
+
blockedBy,
|
|
366
|
+
startCommand: `start_work("${entry.displayName}")`,
|
|
367
|
+
_tier: tier,
|
|
368
|
+
};
|
|
369
|
+
});
|
|
370
|
+
queue.sort((a, b) => {
|
|
371
|
+
if (a._tier !== b._tier)
|
|
372
|
+
return a._tier - b._tier;
|
|
373
|
+
const pDiff = priorityRank(a.priority ?? undefined) - priorityRank(b.priority ?? undefined);
|
|
374
|
+
if (pDiff !== 0)
|
|
375
|
+
return pDiff;
|
|
376
|
+
if (a.dueAt && b.dueAt)
|
|
377
|
+
return a.dueAt.localeCompare(b.dueAt);
|
|
378
|
+
if (a.dueAt)
|
|
379
|
+
return -1;
|
|
380
|
+
if (b.dueAt)
|
|
381
|
+
return 1;
|
|
382
|
+
return a.name.localeCompare(b.name);
|
|
383
|
+
});
|
|
384
|
+
const items = queue.map(({ _tier: _t, ...rest }) => rest);
|
|
385
|
+
return { content: [{ type: "text", text: JSON.stringify({ user: identity, queue: items }, null, 2) }] };
|
|
386
|
+
});
|
|
387
|
+
server.tool("whats_new", `Show what changed in the design system since a given point in time.
|
|
388
|
+
|
|
389
|
+
Returns:
|
|
390
|
+
- newComponents: components first added to ptb.lock since the cutoff
|
|
391
|
+
- becameStale: components whose stamp is older than the cutoff and design has changed
|
|
392
|
+
- recentlyStamped: components stamped since the cutoff
|
|
393
|
+
- recentlyAssigned: components assigned since the cutoff
|
|
394
|
+
|
|
395
|
+
Use since='24h', '7d', '30d', or an ISO date string. Defaults to 24h.`, { since: z.string().optional().describe("Cutoff: '24h', '7d', '30d', or ISO date. Defaults to '24h'.") }, async ({ since }) => {
|
|
396
|
+
let ctx;
|
|
397
|
+
try {
|
|
398
|
+
ctx = await getContext();
|
|
399
|
+
}
|
|
400
|
+
catch (e) {
|
|
401
|
+
return { content: [{ type: "text", text: e.message }] };
|
|
402
|
+
}
|
|
403
|
+
const lock = await loadLock(ctx.workspaceRoot);
|
|
404
|
+
if (!lock) {
|
|
405
|
+
return { content: [{ type: "text", text: "No ptb.lock found. Run export_context first." }] };
|
|
406
|
+
}
|
|
407
|
+
const cutoff = parseSinceCutoff(since);
|
|
408
|
+
const cutoffISO = cutoff.toISOString();
|
|
409
|
+
const newComponents = [];
|
|
410
|
+
const becameStale = [];
|
|
411
|
+
const recentlyStamped = [];
|
|
412
|
+
const recentlyAssigned = [];
|
|
413
|
+
for (const [slug, entry] of Object.entries(lock.components)) {
|
|
414
|
+
if (entry.addedAt && entry.addedAt >= cutoffISO) {
|
|
415
|
+
newComponents.push({
|
|
416
|
+
name: entry.displayName,
|
|
417
|
+
slug,
|
|
418
|
+
addedAt: entry.addedAt,
|
|
419
|
+
assignedTo: entry.assignedTo ?? null,
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
if (entry.stampedHash && entry.stampedHash !== entry.designHash) {
|
|
423
|
+
const stampedAt = entry.stampedAt;
|
|
424
|
+
if (!stampedAt || stampedAt < cutoffISO) {
|
|
425
|
+
becameStale.push({
|
|
426
|
+
name: entry.displayName,
|
|
427
|
+
slug,
|
|
428
|
+
stampedAt: stampedAt ?? null,
|
|
429
|
+
stampedBy: entry.stampedBy ?? null,
|
|
430
|
+
assignedTo: entry.assignedTo ?? null,
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
if (entry.stampedAt && entry.stampedAt >= cutoffISO) {
|
|
435
|
+
recentlyStamped.push({
|
|
436
|
+
name: entry.displayName,
|
|
437
|
+
slug,
|
|
438
|
+
stampedAt: entry.stampedAt,
|
|
439
|
+
stampedBy: entry.stampedBy ?? null,
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
if (entry.assignedAt && entry.assignedAt >= cutoffISO) {
|
|
443
|
+
recentlyAssigned.push({
|
|
444
|
+
name: entry.displayName,
|
|
445
|
+
slug,
|
|
446
|
+
assignedTo: entry.assignedTo ?? null,
|
|
447
|
+
assignedBy: entry.assignedBy ?? null,
|
|
448
|
+
assignedAt: entry.assignedAt,
|
|
449
|
+
priority: entry.priority ?? null,
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
const total = newComponents.length + becameStale.length + recentlyStamped.length + recentlyAssigned.length;
|
|
454
|
+
return {
|
|
455
|
+
content: [{
|
|
456
|
+
type: "text",
|
|
457
|
+
text: JSON.stringify({
|
|
458
|
+
since: cutoffISO,
|
|
459
|
+
totalEvents: total,
|
|
460
|
+
newComponents,
|
|
461
|
+
becameStale,
|
|
462
|
+
recentlyStamped,
|
|
463
|
+
recentlyAssigned,
|
|
464
|
+
}, null, 2),
|
|
465
|
+
}],
|
|
466
|
+
};
|
|
467
|
+
});
|
|
178
468
|
},
|
|
179
469
|
};
|
|
180
470
|
//# sourceMappingURL=governance-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/governance-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"governance-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/governance-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/info-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"info-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/info-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAsEnD,eAAO,MAAM,SAAS,EAAE,YAkLvB,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as fs from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
1
3
|
const CHANGELOG = {
|
|
2
4
|
"0.1.9": {
|
|
3
5
|
summary: "Write-action MCP tools, preferred values for instance-swap slots, and upgrade notices.",
|
|
@@ -66,7 +68,7 @@ const UPGRADE_CHECKLIST = {
|
|
|
66
68
|
};
|
|
67
69
|
export const infoTools = {
|
|
68
70
|
name: "info",
|
|
69
|
-
register(server) {
|
|
71
|
+
register(server, getContext) {
|
|
70
72
|
server.tool("get_changelog", "Show what changed in recent PTB versions. Returns a summary and highlights for each release.", async () => {
|
|
71
73
|
const entries = Object.entries(CHANGELOG).map(([v, c]) => ({
|
|
72
74
|
version: v,
|
|
@@ -82,6 +84,145 @@ export const infoTools = {
|
|
|
82
84
|
}));
|
|
83
85
|
return { content: [{ type: "text", text: JSON.stringify(entries, null, 2) }] };
|
|
84
86
|
});
|
|
87
|
+
server.tool("get_setup_checklist", `Check the current PTB setup state and return a prioritized step-by-step guide.
|
|
88
|
+
|
|
89
|
+
Each step shows status (done / pending / blocked) and, for MCP-executable steps,
|
|
90
|
+
the exact tool name to call. Work through steps in order:
|
|
91
|
+
- Run canAutoRun steps immediately using the mcpTool provided
|
|
92
|
+
- Pause and ask the user only for steps that require manual action (like setting a file key or token)
|
|
93
|
+
- Once a manual step is confirmed done, continue with the next canAutoRun steps
|
|
94
|
+
|
|
95
|
+
Call this after ptb init to drive the full guided setup without the user needing a terminal.`, async () => {
|
|
96
|
+
let workspaceRoot = process.cwd();
|
|
97
|
+
let config = null;
|
|
98
|
+
// Try to get workspaceRoot from context if snapshot already exists
|
|
99
|
+
try {
|
|
100
|
+
const ctx = await getContext();
|
|
101
|
+
workspaceRoot = ctx.workspaceRoot;
|
|
102
|
+
config = ctx.config;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// No snapshot yet — load config independently
|
|
106
|
+
try {
|
|
107
|
+
const raw = await fs.readFile(path.join(workspaceRoot, "ptb.config.json"), "utf-8");
|
|
108
|
+
config = JSON.parse(raw);
|
|
109
|
+
}
|
|
110
|
+
catch { /* no config yet */ }
|
|
111
|
+
}
|
|
112
|
+
const steps = [];
|
|
113
|
+
// Step 1 — file key configured
|
|
114
|
+
const fileKey = config?.designTool?.fileKey;
|
|
115
|
+
const fileKeySet = !!fileKey && fileKey !== "YOUR_FIGMA_FILE_KEY";
|
|
116
|
+
steps.push({
|
|
117
|
+
step: 1,
|
|
118
|
+
name: "Set Figma file key in ptb.config.json",
|
|
119
|
+
status: fileKeySet ? "done" : "pending",
|
|
120
|
+
canAutoRun: false,
|
|
121
|
+
action: fileKeySet
|
|
122
|
+
? null
|
|
123
|
+
: 'Open ptb.config.json and replace "YOUR_FIGMA_FILE_KEY" with your actual file key.\nFind it in the Figma URL: figma.com/design/<FILE_KEY>/...',
|
|
124
|
+
});
|
|
125
|
+
// Step 2 — access token set in MCP server environment
|
|
126
|
+
const tokenEnv = config?.designTool?.accessTokenEnv ?? "FIGMA_ACCESS_TOKEN";
|
|
127
|
+
const tokenSet = !!process.env[tokenEnv];
|
|
128
|
+
steps.push({
|
|
129
|
+
step: 2,
|
|
130
|
+
name: `Set ${tokenEnv} in the MCP server environment`,
|
|
131
|
+
status: tokenSet ? "done" : "pending",
|
|
132
|
+
canAutoRun: false,
|
|
133
|
+
action: tokenSet
|
|
134
|
+
? null
|
|
135
|
+
: `The MCP server needs the token in its own environment (not just your terminal).\nMac: run in terminal: launchctl setenv ${tokenEnv} your_token\nThen fully quit and relaunch your IDE.\nGet your token: Figma → Account Settings → Security → Generate New Token`,
|
|
136
|
+
});
|
|
137
|
+
// Step 3 — snapshot exists
|
|
138
|
+
const snapshotPath = path.join(workspaceRoot, ".ptb", "latest.json");
|
|
139
|
+
const hasSnapshot = await fs.access(snapshotPath).then(() => true).catch(() => false);
|
|
140
|
+
const canScan = fileKeySet && tokenSet;
|
|
141
|
+
steps.push({
|
|
142
|
+
step: 3,
|
|
143
|
+
name: "Scan Figma file (fetch design system snapshot)",
|
|
144
|
+
status: hasSnapshot ? "done" : canScan ? "pending" : "blocked",
|
|
145
|
+
blockedReason: !fileKeySet ? "Complete step 1 first" : !tokenSet ? "Complete step 2 first" : undefined,
|
|
146
|
+
canAutoRun: canScan,
|
|
147
|
+
mcpTool: "run_scan",
|
|
148
|
+
action: hasSnapshot ? null : "Call run_scan",
|
|
149
|
+
});
|
|
150
|
+
// Step 4 — context exported
|
|
151
|
+
const contextDir = path.join(workspaceRoot, ".ptb", "context");
|
|
152
|
+
let contextCount = 0;
|
|
153
|
+
try {
|
|
154
|
+
const files = await fs.readdir(contextDir);
|
|
155
|
+
contextCount = files.filter((f) => f.endsWith(".json")).length;
|
|
156
|
+
}
|
|
157
|
+
catch { /* not yet */ }
|
|
158
|
+
steps.push({
|
|
159
|
+
step: 4,
|
|
160
|
+
name: "Export component context files",
|
|
161
|
+
status: contextCount > 0 ? "done" : hasSnapshot ? "pending" : "blocked",
|
|
162
|
+
blockedReason: !hasSnapshot ? "Complete step 3 first" : undefined,
|
|
163
|
+
details: contextCount > 0 ? `${contextCount} context files in .ptb/context/` : null,
|
|
164
|
+
canAutoRun: hasSnapshot,
|
|
165
|
+
mcpTool: "export_context",
|
|
166
|
+
action: contextCount > 0 ? null : "Call export_context",
|
|
167
|
+
});
|
|
168
|
+
// Step 5 — tokens generated
|
|
169
|
+
const tokensDir = config?.output?.tokensDir
|
|
170
|
+
? path.join(workspaceRoot, config.output.tokensDir)
|
|
171
|
+
: path.join(workspaceRoot, "packages/ui/src/tokens");
|
|
172
|
+
let tokenFileCount = 0;
|
|
173
|
+
try {
|
|
174
|
+
const files = await fs.readdir(tokensDir);
|
|
175
|
+
tokenFileCount = files.filter((f) => f.endsWith(".css") || f.endsWith(".ts")).length;
|
|
176
|
+
}
|
|
177
|
+
catch { /* not yet */ }
|
|
178
|
+
steps.push({
|
|
179
|
+
step: 5,
|
|
180
|
+
name: "Generate design tokens",
|
|
181
|
+
status: tokenFileCount > 0 ? "done" : hasSnapshot ? "pending" : "blocked",
|
|
182
|
+
blockedReason: !hasSnapshot ? "Complete step 3 first" : undefined,
|
|
183
|
+
details: tokenFileCount > 0 ? `${tokenFileCount} token files generated` : null,
|
|
184
|
+
canAutoRun: hasSnapshot,
|
|
185
|
+
mcpTool: "generate_tokens",
|
|
186
|
+
action: tokenFileCount > 0 ? null : "Call generate_tokens",
|
|
187
|
+
});
|
|
188
|
+
// Step 6 — components generated
|
|
189
|
+
const manifestPath = path.join(workspaceRoot, ".ptb", "manifest.json");
|
|
190
|
+
let generatedCount = 0;
|
|
191
|
+
try {
|
|
192
|
+
const manifest = JSON.parse(await fs.readFile(manifestPath, "utf-8"));
|
|
193
|
+
generatedCount = Object.keys(manifest.components ?? {}).length;
|
|
194
|
+
}
|
|
195
|
+
catch { /* not yet */ }
|
|
196
|
+
steps.push({
|
|
197
|
+
step: 6,
|
|
198
|
+
name: "Generate component shells",
|
|
199
|
+
status: generatedCount > 0 ? "done" : hasSnapshot ? "pending" : "blocked",
|
|
200
|
+
blockedReason: !hasSnapshot ? "Complete step 3 first" : undefined,
|
|
201
|
+
details: generatedCount > 0 ? `${generatedCount} component shells scaffolded` : null,
|
|
202
|
+
canAutoRun: hasSnapshot,
|
|
203
|
+
mcpTool: "generate_components",
|
|
204
|
+
action: generatedCount > 0 ? null : 'Call generate_components (or call generate_components with name="." for all)',
|
|
205
|
+
});
|
|
206
|
+
const done = steps.filter((s) => s.status === "done").length;
|
|
207
|
+
const pending = steps.filter((s) => s.status === "pending");
|
|
208
|
+
const nextAutoRun = pending.find((s) => s.canAutoRun) ?? null;
|
|
209
|
+
const nextManual = pending.find((s) => !s.canAutoRun) ?? null;
|
|
210
|
+
return {
|
|
211
|
+
content: [{
|
|
212
|
+
type: "text",
|
|
213
|
+
text: JSON.stringify({
|
|
214
|
+
summary: {
|
|
215
|
+
done,
|
|
216
|
+
remaining: steps.length - done,
|
|
217
|
+
total: steps.length,
|
|
218
|
+
nextAutoRunStep: nextAutoRun ? { step: nextAutoRun.step, name: nextAutoRun.name, mcpTool: nextAutoRun.mcpTool } : null,
|
|
219
|
+
nextManualStep: nextManual ? { step: nextManual.step, name: nextManual.name } : null,
|
|
220
|
+
},
|
|
221
|
+
steps,
|
|
222
|
+
}, null, 2),
|
|
223
|
+
}],
|
|
224
|
+
};
|
|
225
|
+
});
|
|
85
226
|
},
|
|
86
227
|
};
|
|
87
228
|
//# sourceMappingURL=info-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/info-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"info-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/info-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MCPToolGroup } from "../registry.js";
|
|
2
|
+
export type IdeId = "claude-code" | "cursor" | "windsurf" | "antigravity" | "vscode";
|
|
3
|
+
export declare const VALID_IDE_IDS: IdeId[];
|
|
4
|
+
export declare function detectInstalledIDEs(workspaceRoot: string): Promise<IdeId[]>;
|
|
5
|
+
export type SetupIdeResult = {
|
|
6
|
+
ide: IdeId;
|
|
7
|
+
label: string;
|
|
8
|
+
filePath: string;
|
|
9
|
+
action: "created" | "updated";
|
|
10
|
+
};
|
|
11
|
+
export type SetupMcpResult = {
|
|
12
|
+
configured: SetupIdeResult[];
|
|
13
|
+
errors: Array<{
|
|
14
|
+
ide: IdeId;
|
|
15
|
+
label: string;
|
|
16
|
+
error: string;
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
export declare function setupIde(ide: IdeId, workspaceRoot: string): Promise<SetupIdeResult>;
|
|
20
|
+
export declare function runMcpSetup(workspaceRoot: string, ides?: IdeId[]): Promise<SetupMcpResult>;
|
|
21
|
+
export declare const setupMcpTool: MCPToolGroup;
|
|
22
|
+
//# sourceMappingURL=setup-mcp-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-mcp-tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/setup-mcp-tool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAI/D,MAAM,MAAM,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAErF,eAAO,MAAM,aAAa,EAAE,KAAK,EAAmE,CAAC;AAwDrG,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAQjF;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,GAAG,EAAE,KAAK,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D,CAAC;AAEF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBzF;AAED,wBAAsB,WAAW,CAC7B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,KAAK,EAAE,GACf,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,eAAO,MAAM,YAAY,EAAE,YAqE1B,CAAC"}
|