@calibrate-ds/cli 0.1.7 → 0.1.8

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 (45) hide show
  1. package/dist/commands/bridge.d.ts +3 -0
  2. package/dist/commands/bridge.d.ts.map +1 -0
  3. package/dist/commands/bridge.js +62 -0
  4. package/dist/commands/bridge.js.map +1 -0
  5. package/dist/commands/generate-components.d.ts.map +1 -1
  6. package/dist/commands/generate-components.js +31 -1
  7. package/dist/commands/generate-components.js.map +1 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +4 -1
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/mcp.d.ts +4 -0
  12. package/dist/commands/mcp.d.ts.map +1 -0
  13. package/dist/commands/mcp.js +25 -0
  14. package/dist/commands/mcp.js.map +1 -0
  15. package/dist/commands/verify.d.ts +6 -0
  16. package/dist/commands/verify.d.ts.map +1 -0
  17. package/dist/commands/verify.js +280 -0
  18. package/dist/commands/verify.js.map +1 -0
  19. package/dist/index.js +32 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/mcp/registry.d.ts +20 -0
  22. package/dist/mcp/registry.d.ts.map +1 -0
  23. package/dist/mcp/registry.js +8 -0
  24. package/dist/mcp/registry.js.map +1 -0
  25. package/dist/mcp/server.d.ts +3 -0
  26. package/dist/mcp/server.d.ts.map +1 -0
  27. package/dist/mcp/server.js +67 -0
  28. package/dist/mcp/server.js.map +1 -0
  29. package/dist/mcp/tools/component-tools.d.ts +9 -0
  30. package/dist/mcp/tools/component-tools.d.ts.map +1 -0
  31. package/dist/mcp/tools/component-tools.js +105 -0
  32. package/dist/mcp/tools/component-tools.js.map +1 -0
  33. package/dist/mcp/tools/governance-tools.d.ts +3 -0
  34. package/dist/mcp/tools/governance-tools.d.ts.map +1 -0
  35. package/dist/mcp/tools/governance-tools.js +180 -0
  36. package/dist/mcp/tools/governance-tools.js.map +1 -0
  37. package/dist/mcp/tools/token-tools.d.ts +3 -0
  38. package/dist/mcp/tools/token-tools.d.ts.map +1 -0
  39. package/dist/mcp/tools/token-tools.js +60 -0
  40. package/dist/mcp/tools/token-tools.js.map +1 -0
  41. package/dist/mcp/tools/verify-tool.d.ts +3 -0
  42. package/dist/mcp/tools/verify-tool.d.ts.map +1 -0
  43. package/dist/mcp/tools/verify-tool.js +82 -0
  44. package/dist/mcp/tools/verify-tool.js.map +1 -0
  45. package/package.json +6 -5
@@ -0,0 +1,60 @@
1
+ import { z } from "zod";
2
+ export const tokenTools = {
3
+ name: "token",
4
+ register(server, getContext) {
5
+ server.tool("list_themes", "List all token collections (themes) in the design system. Returns each collection's name and a sample of its tokens.", async () => {
6
+ let ctx;
7
+ try {
8
+ ctx = await getContext();
9
+ }
10
+ catch (e) {
11
+ return { content: [{ type: "text", text: e.message }] };
12
+ }
13
+ const collections = ctx.snapshot.tokens ?? [];
14
+ if (collections.length === 0) {
15
+ return { content: [{ type: "text", text: "No token collections found in snapshot." }] };
16
+ }
17
+ const summary = collections.map((col) => ({
18
+ name: col.name,
19
+ tokenCount: col.tokens?.length ?? 0,
20
+ sampleTokens: (col.tokens ?? []).slice(0, 5).map((t) => ({
21
+ name: t.name,
22
+ cssVar: t.cssVar ?? t.codeNames?.css ?? null,
23
+ value: t.resolvedValue ?? t.value ?? null,
24
+ })),
25
+ }));
26
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
27
+ });
28
+ server.tool("get_token", "Look up a design token by name or path. Returns resolved value, CSS variable, and which collection it belongs to.", { path: z.string().describe("Token name or partial path, e.g. 'brand.900', 'spacing.4', or 'border-radius'") }, async ({ path: tokenPath }) => {
29
+ let ctx;
30
+ try {
31
+ ctx = await getContext();
32
+ }
33
+ catch (e) {
34
+ return { content: [{ type: "text", text: e.message }] };
35
+ }
36
+ const query = tokenPath.toLowerCase();
37
+ const matches = [];
38
+ for (const col of (ctx.snapshot.tokens ?? [])) {
39
+ for (const token of col.tokens ?? []) {
40
+ const name = (token.name ?? "").toLowerCase();
41
+ const cssVar = (token.cssVar ?? token.codeNames?.css ?? "").toLowerCase();
42
+ if (name.includes(query) || cssVar.includes(query)) {
43
+ matches.push({
44
+ collection: col.name,
45
+ name: token.name,
46
+ cssVar: token.cssVar ?? token.codeNames?.css ?? null,
47
+ resolvedValue: token.resolvedValue ?? token.value ?? null,
48
+ valueType: token.valueType ?? null,
49
+ });
50
+ }
51
+ }
52
+ }
53
+ if (matches.length === 0) {
54
+ return { content: [{ type: "text", text: `No tokens found matching '${tokenPath}'.` }] };
55
+ }
56
+ return { content: [{ type: "text", text: JSON.stringify(matches, null, 2) }] };
57
+ });
58
+ },
59
+ };
60
+ //# sourceMappingURL=token-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/token-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MCPToolGroup } from "../registry.js";
2
+ export declare const verifyTool: MCPToolGroup;
3
+ //# sourceMappingURL=verify-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-tool.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/verify-tool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAO/D,eAAO,MAAM,UAAU,EAAE,YA8ExB,CAAC"}
@@ -0,0 +1,82 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { z } from "zod";
4
+ function toSlug(name) {
5
+ return name.toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
6
+ }
7
+ export const verifyTool = {
8
+ name: "verify",
9
+ register(server, getContext) {
10
+ server.tool("get_verify_report", "Retrieve the latest visual verification report for a component. Shows pixel match score, AI-detected visual differences, and paths to screenshots. Run 'ptb verify component <name>' first to generate or refresh the report.", { name: z.string().describe("Component name, e.g. 'Button'") }, async ({ name }) => {
11
+ let ctx;
12
+ try {
13
+ ctx = await getContext();
14
+ }
15
+ catch (e) {
16
+ return { content: [{ type: "text", text: e.message }] };
17
+ }
18
+ const slug = toSlug(name);
19
+ const reportPath = path.join(ctx.metadataDir, "verify", slug, "report.json");
20
+ try {
21
+ const raw = await fs.readFile(reportPath, "utf-8");
22
+ const report = JSON.parse(raw);
23
+ const summary = {
24
+ component: report.componentName,
25
+ checkedAt: report.checkedAt,
26
+ pixelMatchScore: report.pixelMatch?.score ?? null,
27
+ assessment: report.aiFeedback?.overallAssessment ?? null,
28
+ summary: report.aiFeedback?.summary ?? null,
29
+ differences: report.aiFeedback?.differences ?? [],
30
+ screenshots: report.screenshots,
31
+ };
32
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
33
+ }
34
+ catch {
35
+ return {
36
+ content: [{
37
+ type: "text",
38
+ text: `No verify report found for '${name}'.\nRun: ptb verify component ${name}`,
39
+ }],
40
+ };
41
+ }
42
+ });
43
+ server.tool("list_verify_reports", "List all components that have been visually verified, with their latest pixel match scores and assessment.", async () => {
44
+ let ctx;
45
+ try {
46
+ ctx = await getContext();
47
+ }
48
+ catch (e) {
49
+ return { content: [{ type: "text", text: e.message }] };
50
+ }
51
+ const verifyDir = path.join(ctx.metadataDir, "verify");
52
+ let slugDirs;
53
+ try {
54
+ slugDirs = await fs.readdir(verifyDir);
55
+ }
56
+ catch {
57
+ return { content: [{ type: "text", text: "No verify reports found. Run 'ptb verify component <name>' to generate one." }] };
58
+ }
59
+ const reports = [];
60
+ for (const slug of slugDirs) {
61
+ const reportPath = path.join(verifyDir, slug, "report.json");
62
+ try {
63
+ const raw = await fs.readFile(reportPath, "utf-8");
64
+ const report = JSON.parse(raw);
65
+ reports.push({
66
+ component: report.componentName,
67
+ slug,
68
+ checkedAt: report.checkedAt,
69
+ score: report.pixelMatch?.score ?? null,
70
+ assessment: report.aiFeedback?.overallAssessment ?? null,
71
+ });
72
+ }
73
+ catch { /* skip malformed */ }
74
+ }
75
+ if (reports.length === 0) {
76
+ return { content: [{ type: "text", text: "No valid verify reports found." }] };
77
+ }
78
+ return { content: [{ type: "text", text: JSON.stringify(reports, null, 2) }] };
79
+ });
80
+ },
81
+ };
82
+ //# sourceMappingURL=verify-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/verify-tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calibrate-ds/cli",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,13 +20,14 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@anthropic-ai/sdk": "^0.39.0",
23
+ "@modelcontextprotocol/sdk": "^1.29.0",
23
24
  "commander": "^14.0.3",
24
25
  "openai": "^6.34.0",
25
26
  "zod": "^4.3.6",
26
- "@calibrate-ds/core": "^0.1.7",
27
- "@calibrate-ds/figma-client": "^0.1.7",
28
- "@calibrate-ds/generator-react": "^0.1.7",
29
- "@calibrate-ds/shared-types": "^0.1.7"
27
+ "@calibrate-ds/core": "^0.1.8",
28
+ "@calibrate-ds/figma-client": "^0.1.8",
29
+ "@calibrate-ds/shared-types": "^0.1.8",
30
+ "@calibrate-ds/generator-react": "^0.1.8"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@types/node": "^22.13.5",