@ethlete/cli 3.0.0-next.24 → 3.0.0-next.25

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 (111) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/design/define-call.ts +43 -0
  3. package/design/define-part.ts +28 -8
  4. package/design/embed-page.ts +37 -4
  5. package/design/icon-sheet.ts +151 -0
  6. package/design/mark-part.ts +79 -2
  7. package/design/motion-runtime.ts +212 -5
  8. package/design/spring.ts +53 -0
  9. package/design/token-sheet.ts +87 -0
  10. package/design/web/frame.ts +139 -24
  11. package/package.json +1 -1
  12. package/src/lib/design/calls-tsconfig.js +1 -2
  13. package/src/lib/design/calls-tsconfig.js.map +1 -1
  14. package/src/lib/design/design-command.js +34 -4
  15. package/src/lib/design/design-command.js.map +1 -1
  16. package/src/lib/design/force-interactions.d.ts +2 -1
  17. package/src/lib/design/force-interactions.js +7 -4
  18. package/src/lib/design/force-interactions.js.map +1 -1
  19. package/src/lib/design/mcp-command.d.ts +60 -0
  20. package/src/lib/design/mcp-command.js +327 -0
  21. package/src/lib/design/mcp-command.js.map +1 -0
  22. package/src/lib/design/motion-command.d.ts +71 -0
  23. package/src/lib/design/motion-command.js +314 -0
  24. package/src/lib/design/motion-command.js.map +1 -0
  25. package/src/lib/design/motion-endpoint.d.ts +61 -0
  26. package/src/lib/design/motion-endpoint.js +133 -0
  27. package/src/lib/design/motion-endpoint.js.map +1 -0
  28. package/src/lib/design/motion-flow.d.ts +5 -0
  29. package/src/lib/design/motion-flow.js +29 -0
  30. package/src/lib/design/motion-flow.js.map +1 -0
  31. package/src/lib/design/motion-shot.d.ts +43 -0
  32. package/src/lib/design/motion-shot.js +97 -0
  33. package/src/lib/design/motion-shot.js.map +1 -0
  34. package/src/lib/design/ready-shots.d.ts +7 -0
  35. package/src/lib/design/ready-shots.js +22 -1
  36. package/src/lib/design/ready-shots.js.map +1 -1
  37. package/src/lib/design/render-packages.d.ts +9 -0
  38. package/src/lib/design/render-packages.js +13 -3
  39. package/src/lib/design/render-packages.js.map +1 -1
  40. package/src/lib/design/render.js +3 -3
  41. package/src/lib/design/render.js.map +1 -1
  42. package/src/lib/design/serve.js +34 -3
  43. package/src/lib/design/serve.js.map +1 -1
  44. package/src/lib/design/shot-command.d.ts +8 -2
  45. package/src/lib/design/shot-command.js +12 -8
  46. package/src/lib/design/shot-command.js.map +1 -1
  47. package/src/lib/design/shot.d.ts +16 -0
  48. package/src/lib/design/shot.js +68 -4
  49. package/src/lib/design/shot.js.map +1 -1
  50. package/src/lib/design/sketch-command.js +78 -16
  51. package/src/lib/design/sketch-command.js.map +1 -1
  52. package/src/lib/design/studio-api.d.ts +19 -0
  53. package/src/lib/design/studio-api.js +52 -1
  54. package/src/lib/design/studio-api.js.map +1 -1
  55. package/src/lib/design/system/complete-command.d.ts +1 -1
  56. package/src/lib/design/system/complete-command.js +76 -6
  57. package/src/lib/design/system/complete-command.js.map +1 -1
  58. package/src/lib/design/system/complete.d.ts +107 -9
  59. package/src/lib/design/system/complete.js +592 -141
  60. package/src/lib/design/system/complete.js.map +1 -1
  61. package/src/lib/design/system/exceptions.d.ts +59 -0
  62. package/src/lib/design/system/exceptions.js +132 -0
  63. package/src/lib/design/system/exceptions.js.map +1 -0
  64. package/src/lib/design/system/flows/flow.d.ts +3 -0
  65. package/src/lib/design/system/flows/flow.js +5 -3
  66. package/src/lib/design/system/flows/flow.js.map +1 -1
  67. package/src/lib/design/system/handoff.d.ts +11 -0
  68. package/src/lib/design/system/handoff.js +30 -0
  69. package/src/lib/design/system/handoff.js.map +1 -0
  70. package/src/lib/design/system/inventory-approval.d.ts +41 -0
  71. package/src/lib/design/system/inventory-approval.js +71 -0
  72. package/src/lib/design/system/inventory-approval.js.map +1 -0
  73. package/src/lib/design/system/inventory.d.ts +65 -0
  74. package/src/lib/design/system/inventory.js +168 -0
  75. package/src/lib/design/system/inventory.js.map +1 -0
  76. package/src/lib/design/system/list-system.js +9 -2
  77. package/src/lib/design/system/list-system.js.map +1 -1
  78. package/src/lib/design/system/render-check.js +19 -1
  79. package/src/lib/design/system/render-check.js.map +1 -1
  80. package/src/lib/design/system/resolve-product.d.ts +2 -3
  81. package/src/lib/design/system/resolve-product.js +4 -6
  82. package/src/lib/design/system/resolve-product.js.map +1 -1
  83. package/src/lib/design/system/rules/stale-replace.js +41 -2
  84. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  85. package/src/lib/design/system/rules/token-selectors.js +1 -1
  86. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  87. package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
  88. package/src/lib/design/system/sketch/host-edit.js +68 -0
  89. package/src/lib/design/system/sketch/host-edit.js.map +1 -0
  90. package/src/lib/design/system/sketch/merge.d.ts +3 -2
  91. package/src/lib/design/system/sketch/merge.js +47 -12
  92. package/src/lib/design/system/sketch/merge.js.map +1 -1
  93. package/src/lib/design/system/sketch/merged-parts.d.ts +10 -0
  94. package/src/lib/design/system/sketch/merged-parts.js +24 -3
  95. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  96. package/src/lib/design/system/sketch/no-visible-change.d.ts +6 -0
  97. package/src/lib/design/system/sketch/no-visible-change.js +25 -1
  98. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  99. package/src/lib/design/system/sketch/overlay.js +11 -3
  100. package/src/lib/design/system/sketch/overlay.js.map +1 -1
  101. package/src/lib/design/system/sketch/sketch.d.ts +32 -0
  102. package/src/lib/design/system/sketch/sketch.js +73 -18
  103. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  104. package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
  105. package/src/lib/design/system/sketch/unused-closure.js +185 -0
  106. package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
  107. package/src/lib/design/system/system-modules.js +6 -9
  108. package/src/lib/design/system/system-modules.js.map +1 -1
  109. package/src/lib/design/system/system-tsconfig.d.ts +2 -1
  110. package/src/lib/design/system/system-tsconfig.js +9 -5
  111. package/src/lib/design/system/system-tsconfig.js.map +1 -1
@@ -23,6 +23,8 @@ const product_command_1 = require("./product-command");
23
23
  const serve_1 = require("./serve");
24
24
  const asset_shot_1 = require("./asset-shot");
25
25
  const shot_command_1 = require("./shot-command");
26
+ const mcp_command_1 = require("./mcp-command");
27
+ const motion_command_1 = require("./motion-command");
26
28
  const sketch_command_1 = require("./sketch-command");
27
29
  const stamp_1 = require("./stamp");
28
30
  const status_1 = require("./status");
@@ -102,10 +104,20 @@ const helpOf = (invocation) => [
102
104
  '',
103
105
  `${invocation} ${complete_command_1.COMPLETE_USAGE}`,
104
106
  ' Exit 1 while a control the part declares in definePart({ controls }) lacks a drawn state or surface: hover and',
105
- ' active for pointer input, focus-visible for keyboard, and for a disclosure a collapsed state and its visible',
106
- ' body. A part that changed since its last merge or accept fails too, and so does a drawn control without a',
107
- ' data-et-control marker, or an element with a pointer cursor or :hover rule but no control role. Separate from',
108
- ' check and sketch ready: a round can be ready for comparison and still not complete for implementation.',
107
+ ' active for pointer input, focus-visible for keyboard, and per kind: active for a button; a collapsed state and',
108
+ ' its visible body for a disclosure; the open surface with hovered, focused and selected options for a select or',
109
+ ' menu; a selected look and selected hover for a row; the visible tooltip for a tooltip; a disabled look when the',
110
+ ' control declares disabled. A part that changed since its last merge or accept fails too, and so does a drawn',
111
+ ' control without a data-et-control marker, or an element with a pointer cursor or :hover rule but no control',
112
+ ' role. A control',
113
+ ' inside an embedded part (its data-et-part root) belongs to that part, which must be complete itself; a rule',
114
+ " of the part's own CSS that restyles it fails as CONTROL-OVERRIDDEN. Separate from check and sketch ready:",
115
+ ' a round can be ready for comparison and still not complete for implementation.',
116
+ " --variant checks a variant of the part's open sketch instead, without PART-UNREVIEWED for the parts it changes.",
117
+ ' --request writes a pending exception to one requirement with a reason; it still fails until the user approves',
118
+ ' it in Studio, and a later change of the part reopens it.',
119
+ ' --handoff with a part gives it the handoff status (handoff.json) when it passes; app work builds only those.',
120
+ ' --handoff without a part re-checks every handoff part and exits 1 when one regresses - CI runs it.',
109
121
  '',
110
122
  `${invocation} ${part_command_1.PART_USAGE}`,
111
123
  " Delete a part's folder and its merged.json entry, rewrite the product tsconfig paths, and resolve its comments.",
@@ -120,6 +132,11 @@ const helpOf = (invocation) => [
120
132
  ' With --variants --crop changed, every cell is cut to one box around the pixels any shown variant changes',
121
133
  ' from the merged part, plus a margin, and the box is printed for a later --crop x,y,width,height.',
122
134
  '',
135
+ `${invocation} ${motion_command_1.MOTION_USAGE}`,
136
+ ' Draw a motion of a part from its from state at 0, 25, 50, 75 and 100 % of its run and at its at times, in full',
137
+ ' and reduced motion (--mode picks one), into a contact sheet PNG with a row per mode. Writes the tracks of each',
138
+ ' mode (element, properties, start, delay, duration, easing) as JSON next to it and prints both paths.',
139
+ '',
123
140
  `${invocation} ${asset_shot_1.ASSET_SHOT_USAGE}`,
124
141
  ' Draw an image file (svg, png, webp, ...) of a path, or of a product assets/ folder with --product, into a PNG',
125
142
  ' and print its path. --width sets the drawn width in px.',
@@ -147,6 +164,11 @@ const helpOf = (invocation) => [
147
164
  ' inbox without --product covers every product.',
148
165
  ' --by is the exact model id of the agent that writes, e.g. claude-opus-5-5; every agent write needs it.',
149
166
  '',
167
+ `${invocation} ${mcp_command_1.MCP_USAGE}`,
168
+ ' Serve the design tools to an MCP client over stdio: parts, check, shot, motion_shots, sketch_new, sketch_report,',
169
+ ' sketch_ready, sketch_merge, sketch_discard, inbox and inbox_done. Each runs the command of the same name in the',
170
+ ' working directory and returns its output, its images and its JSON.',
171
+ '',
150
172
  `${invocation} stamp`,
151
173
  ' Print the version and build of this cli as JSON, which a running server answers with too.',
152
174
  '',
@@ -236,6 +258,14 @@ const designCommand = (options) => __awaiter(void 0, void 0, void 0, function* (
236
258
  ? (0, asset_shot_1.designAssetShot)({ target, argv: rest, invocation })
237
259
  : (0, shot_command_1.designShot)({ target, argv: rest, invocation });
238
260
  }
261
+ if (argv[0] === 'motion') {
262
+ const { target, rest } = splitCheckout(argv.slice(1), root);
263
+ return (0, motion_command_1.designMotion)({ target, argv: rest, invocation });
264
+ }
265
+ if (argv[0] === 'mcp') {
266
+ const { target } = splitCheckout(argv.slice(1), root);
267
+ return (0, mcp_command_1.designMcp)({ target });
268
+ }
239
269
  if (argv[0] === 'token') {
240
270
  const { target, rest } = splitCheckout(argv.slice(1), root);
241
271
  return (0, asset_shot_1.designToken)({ target, argv: rest, invocation });
@@ -1 +1 @@
1
- {"version":3,"file":"design-command.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/design-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design-command.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/design-command.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ export declare const FORCE_ATTRIBUTE = "data-et-force";
6
6
  /**
7
7
  * Rewrites every `:hover`, `:focus-visible` and `:active` in the selectors of a stylesheet to
8
8
  * `:is(<pseudo>, [data-et-force~="<name>"])`, so a frame can force the interaction with the
9
- * attribute. Safe to run again on its own output; CSS it cannot parse comes back unchanged.
9
+ * attribute. `:focus-within` also matches an element that is, or has a descendant that is,
10
+ * forced to `focus-visible`. Safe to run again on its own output; CSS it cannot parse comes back unchanged.
10
11
  */
11
12
  export declare const forceInteractions: (css: string) => string;
12
13
  /** {@link forceInteractions} as a PostCSS plugin, run after every other plugin of the pipeline. */
@@ -9,8 +9,8 @@ const postcss_selector_parser_1 = __importDefault(require("postcss-selector-pars
9
9
  /** The interactions a part can declare in `definePart({ interactions })`. Rest is always implied. */
10
10
  exports.INTERACTIONS = ['hover', 'focus-visible', 'active', 'disabled'];
11
11
  exports.FORCE_ATTRIBUTE = 'data-et-force';
12
- const FORCED_PSEUDOS = new Set([':hover', ':focus-visible', ':active']);
13
- const MAY_FORCE = /:(?:hover|focus-visible|active)/iu;
12
+ const FORCED_PSEUDOS = new Set([':hover', ':focus-visible', ':active', ':focus-within']);
13
+ const MAY_FORCE = /:(?:hover|focus-visible|active|focus-within)/iu;
14
14
  const isForcedAlready = (pseudo) => {
15
15
  var _a;
16
16
  const wrapper = (_a = pseudo.parent) === null || _a === void 0 ? void 0 : _a.parent;
@@ -23,7 +23,9 @@ const isForcedAlready = (pseudo) => {
23
23
  });
24
24
  return forced;
25
25
  };
26
- const forcedPseudoOf = (name) => (0, postcss_selector_parser_1.default)().astSync(`:is(:${name}, [${exports.FORCE_ATTRIBUTE}~="${name}"])`).first.first;
26
+ const forcedPseudoOf = (name) => (0, postcss_selector_parser_1.default)().astSync(name === 'focus-within'
27
+ ? `:is(:focus-within, :has([${exports.FORCE_ATTRIBUTE}~="focus-visible"]), [${exports.FORCE_ATTRIBUTE}~="focus-visible"])`
28
+ : `:is(:${name}, [${exports.FORCE_ATTRIBUTE}~="${name}"])`).first.first;
27
29
  const forceSelector = (0, postcss_selector_parser_1.default)((selectors) => {
28
30
  const found = [];
29
31
  selectors.walkPseudos((pseudo) => {
@@ -51,7 +53,8 @@ const forceRoot = (root) => {
51
53
  /**
52
54
  * Rewrites every `:hover`, `:focus-visible` and `:active` in the selectors of a stylesheet to
53
55
  * `:is(<pseudo>, [data-et-force~="<name>"])`, so a frame can force the interaction with the
54
- * attribute. Safe to run again on its own output; CSS it cannot parse comes back unchanged.
56
+ * attribute. `:focus-within` also matches an element that is, or has a descendant that is,
57
+ * forced to `focus-visible`. Safe to run again on its own output; CSS it cannot parse comes back unchanged.
55
58
  */
56
59
  const forceInteractions = (css) => {
57
60
  if (!MAY_FORCE.test(css))
@@ -1 +1 @@
1
- {"version":3,"file":"force-interactions.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/force-interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"force-interactions.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/force-interactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ export declare const MCP_USAGE = "mcp";
2
+ export declare const MCP_PROTOCOL_VERSION = "2025-06-18";
3
+ type ToolInput = {
4
+ name: string;
5
+ flag?: string;
6
+ description: string;
7
+ required?: boolean;
8
+ type?: 'string' | 'integer';
9
+ };
10
+ type ToolSpec = {
11
+ name: string;
12
+ description: string;
13
+ command: string[];
14
+ positional?: ToolInput[];
15
+ values?: ToolInput[];
16
+ switches?: ToolInput[];
17
+ };
18
+ export type ToolRun = {
19
+ code: number;
20
+ stdout: string;
21
+ stderr: string;
22
+ };
23
+ export type ToolRunner = (argv: string[]) => Promise<ToolRun>;
24
+ /** The tools of `et design mcp`: each runs the `et design` command of the same name. */
25
+ export declare const MCP_TOOLS: ToolSpec[];
26
+ /** The `et design` arguments a tool call runs, or why it cannot run. */
27
+ export declare const toolArgvOf: (tool: ToolSpec, args: Record<string, unknown>) => string[] | string;
28
+ type Request = {
29
+ id?: unknown;
30
+ method?: string;
31
+ params?: Record<string, unknown>;
32
+ };
33
+ /** The answer to one JSON-RPC request of an MCP client; `null` for a notification. */
34
+ export declare const mcpAnswerOf: (options: {
35
+ target: string;
36
+ request: Request;
37
+ run: ToolRunner;
38
+ }) => Promise<{
39
+ jsonrpc: string;
40
+ id: unknown;
41
+ result: unknown;
42
+ } | {
43
+ jsonrpc: string;
44
+ id: {};
45
+ error: {
46
+ code: number;
47
+ message: string;
48
+ };
49
+ } | null>;
50
+ /** Runs `et design <argv>` of this same CLI in the workspace, in its own process so its output stays off the protocol. */
51
+ export declare const cliRunnerOf: (target: string) => ToolRunner;
52
+ /**
53
+ * `et design mcp` serves the design tools to an MCP client over stdio. The workspace is the working directory;
54
+ * each tool runs the `et design` command of the same name there.
55
+ */
56
+ export declare const designMcp: (options: {
57
+ target: string;
58
+ run?: ToolRunner;
59
+ }) => Promise<number>;
60
+ export {};
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.designMcp = exports.cliRunnerOf = exports.mcpAnswerOf = exports.toolArgvOf = exports.MCP_TOOLS = exports.MCP_PROTOCOL_VERSION = exports.MCP_USAGE = void 0;
13
+ const child_process_1 = require("child_process");
14
+ const fs_1 = require("fs");
15
+ const path_1 = require("path");
16
+ const readline_1 = require("readline");
17
+ const stamp_1 = require("./stamp");
18
+ exports.MCP_USAGE = 'mcp';
19
+ exports.MCP_PROTOCOL_VERSION = '2025-06-18';
20
+ const BY = {
21
+ name: 'by',
22
+ flag: '--by',
23
+ description: 'The exact model id of the agent that writes, e.g. claude-opus-5-5.',
24
+ required: true,
25
+ };
26
+ const PART = { name: 'part', description: 'The part, as <layer>/<name>.', required: true };
27
+ const PRODUCT = {
28
+ name: 'product',
29
+ flag: '--product',
30
+ description: 'The product. Optional when the workspace has only one.',
31
+ };
32
+ const SIZE = [
33
+ { name: 'preset', flag: '--preset', description: 'A preset of the product, e.g. phone.' },
34
+ { name: 'width', flag: '--width', description: 'A width in px instead of a preset.', type: 'integer' },
35
+ { name: 'scale', flag: '--scale', description: 'The device scale, 1 to 4.', type: 'integer' },
36
+ { name: 'surface', flag: '--surface', description: 'The surface theme to draw on.' },
37
+ { name: 'color', flag: '--color', description: 'The colour theme to draw with.' },
38
+ ];
39
+ /** The tools of `et design mcp`: each runs the `et design` command of the same name. */
40
+ exports.MCP_TOOLS = [
41
+ {
42
+ name: 'parts',
43
+ description: "List each product's parts as JSON: origin, note, states, widths, presets and problems.",
44
+ command: ['system', '--json'],
45
+ },
46
+ {
47
+ name: 'check',
48
+ description: "Check a product's design system, or every product without one. Exits with an error on findings.",
49
+ command: ['check'],
50
+ },
51
+ {
52
+ name: 'shot',
53
+ description: 'Draw the states of a part, the same way as the Studio screenshots, and return the contact sheet image.',
54
+ command: ['shot'],
55
+ positional: [PART],
56
+ values: [
57
+ { name: 'state', flag: '--state', description: 'The states to draw, a comma list. All states without it.' },
58
+ { name: 'interaction', flag: '--interaction', description: 'An interaction to force, e.g. hover.' },
59
+ ...SIZE,
60
+ ],
61
+ switches: [{ name: 'variants', flag: '--variants', description: "Draw every variant of the part's open sketch." }],
62
+ },
63
+ {
64
+ name: 'motion_shots',
65
+ description: 'Draw a motion of a part at each keyframe time, in full and reduced motion. Returns the contact sheet image and the JSON of its tracks.',
66
+ command: ['motion', 'shots'],
67
+ positional: [PART, { name: 'motion', description: 'The motion name of the part.', required: true }],
68
+ values: [
69
+ { name: 'variant', flag: '--variant', description: 'A variant of the open sketch on the part.' },
70
+ { name: 'mode', flag: '--mode', description: 'full or reduced. Both without it.' },
71
+ ...SIZE,
72
+ ],
73
+ },
74
+ {
75
+ name: 'sketch_new',
76
+ description: 'Open a sketch on a part, new or existing. Each variant starts as a copy of the part.',
77
+ command: ['sketch', 'new'],
78
+ positional: [PART],
79
+ values: [
80
+ { name: 'variants', flag: '--variants', description: 'The variant keys, a comma list: a,b.', required: true },
81
+ { name: 'like', flag: '--like', description: 'Start each variant as a copy of this part instead.' },
82
+ { name: 'round', flag: '--round', description: 'The title of the first round.' },
83
+ { name: 'note', flag: '--note', description: 'What the sketch tries.' },
84
+ BY,
85
+ ],
86
+ },
87
+ {
88
+ name: 'sketch_report',
89
+ description: 'Tell Studio what you build on a variant now, e.g. "phone, outline state".',
90
+ command: ['sketch', 'report'],
91
+ positional: [PART, { name: 'text', description: 'What you build now.', required: true }],
92
+ values: [{ name: 'variant', flag: '--variant', description: 'The variant key.', required: true }, BY],
93
+ },
94
+ {
95
+ name: 'sketch_ready',
96
+ description: 'Mark a sketch ready for the user to pick.',
97
+ command: ['sketch', 'ready'],
98
+ positional: [PART],
99
+ values: [BY],
100
+ },
101
+ {
102
+ name: 'sketch_merge',
103
+ description: 'Merge the variant the user picked. Studio runs it on the click of the user.',
104
+ command: ['sketch', 'merge'],
105
+ positional: [PART],
106
+ values: [{ name: 'note', flag: '--note', description: 'The reason, the note of the part.' }, BY],
107
+ },
108
+ {
109
+ name: 'sketch_discard',
110
+ description: 'Drop a sketch. Studio runs it on the click of the user.',
111
+ command: ['sketch', 'discard'],
112
+ positional: [PART],
113
+ values: [BY],
114
+ },
115
+ {
116
+ name: 'sketch_variant',
117
+ description: 'Add a variant to the open sketch, as a copy of another, in the running round or a new one.',
118
+ command: ['sketch', 'variant'],
119
+ positional: [PART, { name: 'variant', description: 'The key of the new variant.', required: true }],
120
+ values: [
121
+ { name: 'from', flag: '--from', description: 'The variant to copy.', required: true },
122
+ { name: 'round', flag: '--round', description: 'The title of a new round.' },
123
+ { name: 'note', flag: '--note', description: 'Why the running round lost. Needed with round.' },
124
+ BY,
125
+ ],
126
+ },
127
+ {
128
+ name: 'sketch_round',
129
+ description: 'Set the title, note or dropped states of a round of the open sketch.',
130
+ command: ['sketch', 'round'],
131
+ positional: [PART, { name: 'round', description: 'The round to change.', required: true }],
132
+ values: [
133
+ { name: 'title', flag: '--title', description: 'The title of the round.' },
134
+ { name: 'note', flag: '--note', description: 'The note of the round.' },
135
+ { name: 'drops', flag: '--drops', description: 'The states the round drops on purpose, a comma list.' },
136
+ BY,
137
+ ],
138
+ },
139
+ {
140
+ name: 'sketch_list',
141
+ description: 'List the open sketches as JSON.',
142
+ command: ['sketch', 'list', '--json'],
143
+ },
144
+ {
145
+ name: 'sketch_check',
146
+ description: 'Check each variant of a sketch laid over the product, or of every open sketch without a part.',
147
+ command: ['sketch', 'check'],
148
+ positional: [{ name: 'part', description: 'The part, as <layer>/<name>.' }],
149
+ },
150
+ {
151
+ name: 'sketch_preview',
152
+ description: 'List the elements and pages a merge of a variant changes.',
153
+ command: ['sketch', 'preview'],
154
+ positional: [PART, { name: 'variant', description: 'The variant key.', required: true }],
155
+ },
156
+ {
157
+ name: 'sketch_rebase',
158
+ description: 'After bringing each variant up to date with the product, record the product as it is now.',
159
+ command: ['sketch', 'rebase'],
160
+ positional: [PART],
161
+ values: [BY],
162
+ },
163
+ {
164
+ name: 'comment_reply',
165
+ description: 'Answer a comment thread as the agent. A question waits for the answer of the user.',
166
+ command: ['comment', 'reply'],
167
+ positional: [
168
+ { name: 'id', description: 'The comment id.', required: true },
169
+ { name: 'text', description: 'The reply.', required: true },
170
+ ],
171
+ values: [BY],
172
+ switches: [{ name: 'question', flag: '--question', description: 'Mark the reply as a question for the user.' }],
173
+ },
174
+ {
175
+ name: 'inbox',
176
+ description: 'List the comment threads and sketches that wait for the agent, then those that wait for the user.',
177
+ command: ['inbox', '--json'],
178
+ },
179
+ {
180
+ name: 'inbox_done',
181
+ description: 'Set the note of the part a comment thread is about, then mark the thread addressed.',
182
+ command: ['inbox', 'done'],
183
+ positional: [{ name: 'id', description: 'The comment id.', required: true }],
184
+ values: [{ name: 'note', flag: '--note', description: 'The new note of the part.', required: true }, BY],
185
+ },
186
+ ];
187
+ const inputsOf = (tool) => {
188
+ var _a, _b, _c;
189
+ return [
190
+ ...((_a = tool.positional) !== null && _a !== void 0 ? _a : []),
191
+ ...((_b = tool.values) !== null && _b !== void 0 ? _b : []),
192
+ ...((_c = tool.switches) !== null && _c !== void 0 ? _c : []).map((input) => (Object.assign(Object.assign({}, input), { type: 'boolean' }))),
193
+ PRODUCT,
194
+ ];
195
+ };
196
+ const inputSchemaOf = (tool) => {
197
+ const inputs = inputsOf(tool);
198
+ return {
199
+ type: 'object',
200
+ properties: Object.fromEntries(inputs.map((input) => { var _a; return [input.name, { type: (_a = input.type) !== null && _a !== void 0 ? _a : 'string', description: input.description }]; })),
201
+ required: inputs.filter((input) => input.required).map((input) => input.name),
202
+ };
203
+ };
204
+ /** The `et design` arguments a tool call runs, or why it cannot run. */
205
+ const toolArgvOf = (tool, args) => {
206
+ var _a, _b, _c;
207
+ const missing = inputsOf(tool).filter((input) => { var _a; return input.required && ((_a = args[input.name]) !== null && _a !== void 0 ? _a : '') === ''; });
208
+ if (missing.length > 0)
209
+ return `${tool.name} needs ${missing.map((input) => input.name).join(', ')}`;
210
+ const valueOf = (input) => args[input.name];
211
+ return [
212
+ ...tool.command,
213
+ ...((_a = tool.positional) !== null && _a !== void 0 ? _a : []).flatMap((input) => (valueOf(input) === undefined ? [] : [String(valueOf(input))])),
214
+ ...[...((_b = tool.values) !== null && _b !== void 0 ? _b : []), PRODUCT].flatMap((input) => { var _a; return valueOf(input) === undefined || valueOf(input) === '' ? [] : [(_a = input.flag) !== null && _a !== void 0 ? _a : '', String(valueOf(input))]; }),
215
+ ...(tool.name === 'shot' ? ['--states'] : []),
216
+ ...((_c = tool.switches) !== null && _c !== void 0 ? _c : []).flatMap((input) => { var _a; return (valueOf(input) === true ? [(_a = input.flag) !== null && _a !== void 0 ? _a : ''] : []); }),
217
+ ];
218
+ };
219
+ exports.toolArgvOf = toolArgvOf;
220
+ const filesOf = (options) => options.stdout
221
+ .split('\n')
222
+ .map((line) => line.trim())
223
+ .filter((line) => line.endsWith(options.extension))
224
+ .map((line) => ((0, path_1.isAbsolute)(line) ? line : (0, path_1.resolve)(options.target, line)))
225
+ .filter((file) => (0, fs_1.existsSync)(file));
226
+ const resultOf = (target, run) => ({
227
+ content: [
228
+ { type: 'text', text: [run.stdout.trim(), run.stderr.trim()].filter(Boolean).join('\n') || `exit ${run.code}` },
229
+ ...filesOf({ target, stdout: run.stdout, extension: '.png' }).map((file) => ({
230
+ type: 'image',
231
+ data: (0, fs_1.readFileSync)(file).toString('base64'),
232
+ mimeType: 'image/png',
233
+ })),
234
+ ...filesOf({ target, stdout: run.stdout, extension: '.json' }).map((file) => ({
235
+ type: 'text',
236
+ text: (0, fs_1.readFileSync)(file, 'utf8'),
237
+ })),
238
+ ],
239
+ isError: run.code !== 0,
240
+ });
241
+ /** The answer to one JSON-RPC request of an MCP client; `null` for a notification. */
242
+ const mcpAnswerOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
243
+ var _a, _b, _c, _d;
244
+ const { target, request, run } = options;
245
+ if (request.id === undefined || request.id === null)
246
+ return null;
247
+ const answer = (result) => ({ jsonrpc: '2.0', id: request.id, result });
248
+ if (request.method === 'initialize') {
249
+ const asked = (_a = request.params) === null || _a === void 0 ? void 0 : _a['protocolVersion'];
250
+ return answer({
251
+ protocolVersion: typeof asked === 'string' ? asked : exports.MCP_PROTOCOL_VERSION,
252
+ capabilities: { tools: {} },
253
+ serverInfo: { name: 'ethlete-design', version: (0, stamp_1.buildStampOf)().version },
254
+ });
255
+ }
256
+ if (request.method === 'ping')
257
+ return answer({});
258
+ if (request.method === 'tools/list') {
259
+ return answer({
260
+ tools: exports.MCP_TOOLS.map((tool) => ({
261
+ name: tool.name,
262
+ description: tool.description,
263
+ inputSchema: inputSchemaOf(tool),
264
+ })),
265
+ });
266
+ }
267
+ if (request.method === 'tools/call') {
268
+ const name = (_b = request.params) === null || _b === void 0 ? void 0 : _b['name'];
269
+ const tool = exports.MCP_TOOLS.find((candidate) => candidate.name === name);
270
+ if (!tool)
271
+ return { jsonrpc: '2.0', id: request.id, error: { code: -32602, message: `unknown tool "${name}"` } };
272
+ const argv = (0, exports.toolArgvOf)(tool, (_d = (_c = request.params) === null || _c === void 0 ? void 0 : _c['arguments']) !== null && _d !== void 0 ? _d : {});
273
+ if (typeof argv === 'string')
274
+ return answer({ content: [{ type: 'text', text: argv }], isError: true });
275
+ return answer(resultOf(target, yield run(argv)));
276
+ }
277
+ return {
278
+ jsonrpc: '2.0',
279
+ id: request.id,
280
+ error: { code: -32601, message: `${request.method} is not a method of this server` },
281
+ };
282
+ });
283
+ exports.mcpAnswerOf = mcpAnswerOf;
284
+ /** Runs `et design <argv>` of this same CLI in the workspace, in its own process so its output stays off the protocol. */
285
+ const cliRunnerOf = (target) => (argv) => new Promise((done) => {
286
+ var _a;
287
+ const child = (0, child_process_1.spawn)(process.execPath, [(_a = process.argv[1]) !== null && _a !== void 0 ? _a : '', 'design', ...argv], {
288
+ cwd: target,
289
+ stdio: ['ignore', 'pipe', 'pipe'],
290
+ });
291
+ const stdout = [];
292
+ const stderr = [];
293
+ child.stdout.on('data', (chunk) => stdout.push(chunk));
294
+ child.stderr.on('data', (chunk) => stderr.push(chunk));
295
+ child.on('error', (error) => done({ code: 1, stdout: '', stderr: error.message }));
296
+ child.on('close', (code) => done({ code: code !== null && code !== void 0 ? code : 1, stdout: Buffer.concat(stdout).toString(), stderr: Buffer.concat(stderr).toString() }));
297
+ });
298
+ exports.cliRunnerOf = cliRunnerOf;
299
+ /**
300
+ * `et design mcp` serves the design tools to an MCP client over stdio. The workspace is the working directory;
301
+ * each tool runs the `et design` command of the same name there.
302
+ */
303
+ const designMcp = (options) => {
304
+ var _a;
305
+ const { target } = options;
306
+ const run = (_a = options.run) !== null && _a !== void 0 ? _a : (0, exports.cliRunnerOf)(target);
307
+ const lines = (0, readline_1.createInterface)({ input: process.stdin });
308
+ const pending = new Set();
309
+ lines.on('line', (line) => {
310
+ let request;
311
+ try {
312
+ request = JSON.parse(line);
313
+ }
314
+ catch (_a) {
315
+ return;
316
+ }
317
+ const answered = (0, exports.mcpAnswerOf)({ target, request, run }).then((answer) => {
318
+ if (answer)
319
+ process.stdout.write(`${JSON.stringify(answer)}\n`);
320
+ });
321
+ pending.add(answered);
322
+ void answered.finally(() => pending.delete(answered));
323
+ });
324
+ return new Promise((done) => lines.on('close', () => void Promise.all([...pending]).then(() => done(0))));
325
+ };
326
+ exports.designMcp = designMcp;
327
+ //# sourceMappingURL=mcp-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/mcp-command.ts"],"names":[],"mappings":"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"}