@selvakumaresra/specship 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/commands/ss-design-implement.md +5 -0
  2. package/commands/ss-design-loop.md +125 -0
  3. package/dist/bin/specship.js +66 -0
  4. package/dist/bin/specship.js.map +1 -1
  5. package/dist/designer/artifact-store.js +54 -0
  6. package/dist/designer/browser.js +141 -0
  7. package/dist/designer/cdp-ensure.js +60 -0
  8. package/dist/designer/cdp-env.js +18 -0
  9. package/dist/designer/cdp-trace.js +599 -0
  10. package/dist/designer/cross-platform.js +74 -0
  11. package/dist/designer/designer-controller.js +1413 -0
  12. package/dist/designer/file-panel.js +39 -0
  13. package/dist/designer/interstitials.js +97 -0
  14. package/dist/designer/oopif-reader.js +176 -0
  15. package/dist/designer/package-meta.js +18 -0
  16. package/dist/designer/preview-host.js +50 -0
  17. package/dist/designer/repo-root.js +31 -0
  18. package/dist/designer/run-state.js +353 -0
  19. package/dist/designer/session-store.js +59 -0
  20. package/dist/designer/ui-anchors.js +651 -0
  21. package/dist/installer/index.d.ts +5 -0
  22. package/dist/installer/index.d.ts.map +1 -1
  23. package/dist/installer/index.js +3 -2
  24. package/dist/installer/index.js.map +1 -1
  25. package/dist/installer/instructions-template.d.ts +17 -0
  26. package/dist/installer/instructions-template.d.ts.map +1 -1
  27. package/dist/installer/instructions-template.js +31 -1
  28. package/dist/installer/instructions-template.js.map +1 -1
  29. package/dist/installer/targets/claude.d.ts +19 -0
  30. package/dist/installer/targets/claude.d.ts.map +1 -1
  31. package/dist/installer/targets/claude.js +98 -1
  32. package/dist/installer/targets/claude.js.map +1 -1
  33. package/dist/installer/targets/shared.d.ts +14 -0
  34. package/dist/installer/targets/shared.d.ts.map +1 -1
  35. package/dist/installer/targets/shared.js +49 -0
  36. package/dist/installer/targets/shared.js.map +1 -1
  37. package/dist/installer/targets/types.d.ts +8 -0
  38. package/dist/installer/targets/types.d.ts.map +1 -1
  39. package/dist/mcp/designer-tools.d.ts +33 -0
  40. package/dist/mcp/designer-tools.d.ts.map +1 -0
  41. package/dist/mcp/designer-tools.js +313 -0
  42. package/dist/mcp/designer-tools.js.map +1 -0
  43. package/dist/mcp/tools.d.ts.map +1 -1
  44. package/dist/mcp/tools.js +22 -1
  45. package/dist/mcp/tools.js.map +1 -1
  46. package/dist/web/{chunk-JT7P3DEK.js → chunk-2YUJNZ2Y.js} +3 -3
  47. package/dist/web/{chunk-JN6W7HCN.js → chunk-45QHGCB4.js} +1 -1
  48. package/dist/web/{chunk-RAAMPHPJ.js → chunk-A5R3MJMO.js} +1 -1
  49. package/dist/web/{chunk-2DHIGIOI.js → chunk-ASZ77FMZ.js} +1 -1
  50. package/dist/web/{chunk-TWXZK6XM.js → chunk-B3YPFY6A.js} +1 -1
  51. package/dist/web/chunk-D5OCNEJA.js +2 -0
  52. package/dist/web/{chunk-3SEJX2BK.js → chunk-FHZHD2ZG.js} +1 -1
  53. package/dist/web/chunk-GR72OOCN.js +1 -0
  54. package/dist/web/{chunk-DA6SNNAF.js → chunk-GWPVKJIY.js} +1 -1
  55. package/dist/web/{chunk-YAWCRPHV.js → chunk-NZEZCT65.js} +1 -1
  56. package/dist/web/{chunk-BCZM5AXU.js → chunk-UBOZGQNK.js} +1 -1
  57. package/dist/web/{chunk-BPECIDVO.js → chunk-WCKHQIYN.js} +1 -1
  58. package/dist/web/{chunk-JFYVCXK3.js → chunk-WLIMNDS3.js} +1 -1
  59. package/dist/web/{chunk-LV4G6QFG.js → chunk-YAMRN47K.js} +1 -1
  60. package/dist/web/index.html +1 -1
  61. package/dist/web/main-R53HA54V.js +1 -0
  62. package/dist/web/sw.js +69 -0
  63. package/dist/workflows/defaults/claude-design-implement.yaml +138 -49
  64. package/hooks/hooks.json +11 -0
  65. package/package.json +7 -3
  66. package/selectors.json +41 -0
  67. package/dist/web/chunk-2OKMB4KX.js +0 -2
  68. package/dist/web/chunk-4N5DWG46.js +0 -1
  69. package/dist/web/main-WVI3YTDU.js +0 -1
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ /**
3
+ * Designer MCP tools — claude.ai/design driving, vendored from @pro-vi/designer.
4
+ *
5
+ * These six tools merge the standalone `designer` MCP into SpecShip's surface
6
+ * so one `specship serve --mcp` exposes both the code-graph tools and the
7
+ * design loop:
8
+ * - designer_session — enter / inspect / transition a claude.ai/design session
9
+ * - designer_prompt — modify the design (returns a live URL to taste)
10
+ * - designer_ask — Q&A with the design assistant (no file change)
11
+ * - designer_list — list projects or files
12
+ * - designer_snapshot — capture the current file (paths + hash; optional HTML)
13
+ * - designer_handoff — fetch the export bundle → ./artifacts/<key>/handoff-<ts>/
14
+ *
15
+ * The heavy lifting lives in the vendored subtree under src/designer/ (compiled
16
+ * separately to dist/designer/ as CommonJS — see src/designer/tsconfig.json).
17
+ * We load it through a RUNTIME require so SpecShip's strict root tsc never has
18
+ * to type-check the foreign code. `DesignerController` holds a CDP connection to
19
+ * a debug Chrome; it is a per-process singleton (keyed by `key`) held here so
20
+ * the daemon shares one browser across MCP clients.
21
+ *
22
+ * Runtime requirements (inherited from designer, NOT vendored): the external
23
+ * `agent-browser` binary on PATH, and a one-time Chrome debug-profile + login
24
+ * (`designer setup`). Tools surface a clear error if the session isn't ready.
25
+ */
26
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ var desc = Object.getOwnPropertyDescriptor(m, k);
29
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
30
+ desc = { enumerable: true, get: function() { return m[k]; } };
31
+ }
32
+ Object.defineProperty(o, k2, desc);
33
+ }) : (function(o, m, k, k2) {
34
+ if (k2 === undefined) k2 = k;
35
+ o[k2] = m[k];
36
+ }));
37
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
38
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
39
+ }) : function(o, v) {
40
+ o["default"] = v;
41
+ });
42
+ var __importStar = (this && this.__importStar) || (function () {
43
+ var ownKeys = function(o) {
44
+ ownKeys = Object.getOwnPropertyNames || function (o) {
45
+ var ar = [];
46
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
47
+ return ar;
48
+ };
49
+ return ownKeys(o);
50
+ };
51
+ return function (mod) {
52
+ if (mod && mod.__esModule) return mod;
53
+ var result = {};
54
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
55
+ __setModuleDefault(result, mod);
56
+ return result;
57
+ };
58
+ })();
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.designerToolDefinitions = void 0;
61
+ exports.handleDesignerSession = handleDesignerSession;
62
+ exports.handleDesignerPrompt = handleDesignerPrompt;
63
+ exports.handleDesignerAsk = handleDesignerAsk;
64
+ exports.handleDesignerList = handleDesignerList;
65
+ exports.handleDesignerSnapshot = handleDesignerSnapshot;
66
+ exports.handleDesignerHandoff = handleDesignerHandoff;
67
+ const path = __importStar(require("path"));
68
+ const fs = __importStar(require("fs"));
69
+ // Lazy module handles + per-key controller cache (process singleton).
70
+ let designerMod = null;
71
+ let artifactStoreMod = null;
72
+ const controllers = new Map();
73
+ function loadDesignerModules() {
74
+ if (!designerMod || !artifactStoreMod) {
75
+ // Relative to the COMPILED location (dist/mcp/designer-tools.js → dist/designer/*).
76
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
77
+ designerMod = require('../designer/designer-controller');
78
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
79
+ artifactStoreMod = require('../designer/artifact-store');
80
+ }
81
+ return { designer: designerMod, artifacts: artifactStoreMod };
82
+ }
83
+ function getController(key) {
84
+ const k = key || 'default';
85
+ let c = controllers.get(k);
86
+ if (!c) {
87
+ const { designer } = loadDesignerModules();
88
+ c = new designer.DesignerController({ key: k, headed: true });
89
+ controllers.set(k, c);
90
+ }
91
+ return c;
92
+ }
93
+ function ok(obj) {
94
+ return {
95
+ content: [{ type: 'text', text: typeof obj === 'string' ? obj : JSON.stringify(obj, null, 2) }],
96
+ };
97
+ }
98
+ function fail(message) {
99
+ return { content: [{ type: 'text', text: message }], isError: true };
100
+ }
101
+ /** Wrap a controller call so a not-ready session / missing agent-browser
102
+ * surfaces as a clean tool error rather than an unhandled rejection. */
103
+ async function guard(run) {
104
+ try {
105
+ return ok(await run());
106
+ }
107
+ catch (err) {
108
+ return fail(`designer: ${err instanceof Error ? err.message : String(err)}`);
109
+ }
110
+ }
111
+ function str(v) {
112
+ return typeof v === 'string' ? v : undefined;
113
+ }
114
+ function num(v) {
115
+ return typeof v === 'number' ? v : undefined;
116
+ }
117
+ function bool(v) {
118
+ return typeof v === 'boolean' ? v : undefined;
119
+ }
120
+ // --- Handlers ----------------------------------------------------------------
121
+ async function handleDesignerSession(args) {
122
+ const key = str(args.key);
123
+ const action = str(args.action) ?? 'status';
124
+ const name = str(args.name);
125
+ const fidelity = str(args.fidelity);
126
+ return guard(() => getController(key).session({ action, name, fidelity }));
127
+ }
128
+ async function handleDesignerPrompt(args) {
129
+ const prompt = str(args.prompt);
130
+ if (prompt === undefined)
131
+ return fail('designer_prompt: "prompt" (string) is required');
132
+ const key = str(args.key);
133
+ return guard(() => getController(key).iterate(prompt, {
134
+ file: str(args.file),
135
+ timeoutMs: num(args.timeoutMs),
136
+ stabilityMs: num(args.stabilityMs),
137
+ decisive: bool(args.decisive),
138
+ }));
139
+ }
140
+ async function handleDesignerAsk(args) {
141
+ const prompt = str(args.prompt);
142
+ if (prompt === undefined)
143
+ return fail('designer_ask: "prompt" (string) is required');
144
+ const key = str(args.key);
145
+ return guard(() => getController(key).ask(prompt, {
146
+ file: str(args.file),
147
+ timeoutMs: num(args.timeoutMs),
148
+ stabilityMs: num(args.stabilityMs),
149
+ }));
150
+ }
151
+ async function handleDesignerList(args) {
152
+ const scope = str(args.scope);
153
+ if (scope !== 'projects' && scope !== 'files') {
154
+ return fail('designer_list: "scope" must be "projects" or "files"');
155
+ }
156
+ const key = str(args.key);
157
+ return guard(async () => {
158
+ const c = getController(key);
159
+ if (scope === 'projects')
160
+ return c.listProjects();
161
+ const detail = await c.listFilesDetailed();
162
+ if (!detail.authoritative) {
163
+ return {
164
+ files: detail.files,
165
+ folders: detail.folders,
166
+ authoritative: false,
167
+ warning: 'This project has folders (' +
168
+ detail.folders.join(', ') +
169
+ '). Files under folders are not visible to the live file-list scrape. Call designer_handoff for an authoritative list.',
170
+ };
171
+ }
172
+ return { files: detail.files, authoritative: true };
173
+ });
174
+ }
175
+ async function handleDesignerSnapshot(args) {
176
+ const key = str(args.key);
177
+ const filename = str(args.filename);
178
+ const includeHtml = bool(args.includeHtml) ?? false;
179
+ const screenshot = bool(args.screenshot) ?? true;
180
+ return guard(async () => {
181
+ const { artifacts } = loadDesignerModules();
182
+ const c = getController(key);
183
+ if (filename) {
184
+ const swap = await c.openFile(filename);
185
+ if (!swap.ok)
186
+ return { ok: false, error: swap.error, file: filename };
187
+ }
188
+ const snap = await c.snapshotDesign({});
189
+ let htmlPath = null;
190
+ if (snap.html) {
191
+ htmlPath = path.join(artifacts.sessionDir(c.key), `snap-${Date.now()}.html`);
192
+ fs.writeFileSync(htmlPath, snap.html);
193
+ }
194
+ return {
195
+ ok: true,
196
+ file: filename || extractFileParamFromUrl(snap.url),
197
+ url: snap.url,
198
+ iframeSrc: snap.iframeSrc,
199
+ htmlPath,
200
+ screenshotPath: screenshot ? snap.screenshotPath : null,
201
+ htmlBytes: snap.html ? snap.html.length : 0,
202
+ html: includeHtml ? snap.html : undefined,
203
+ };
204
+ });
205
+ }
206
+ async function handleDesignerHandoff(args) {
207
+ const key = str(args.key);
208
+ const openFile = str(args.openFile);
209
+ return guard(() => getController(key).handoff({ openFile }));
210
+ }
211
+ function extractFileParamFromUrl(url) {
212
+ try {
213
+ return new URL(url).searchParams.get('file');
214
+ }
215
+ catch {
216
+ return null;
217
+ }
218
+ }
219
+ // --- Definitions -------------------------------------------------------------
220
+ exports.designerToolDefinitions = [
221
+ {
222
+ name: 'designer_session',
223
+ description: "Enter, inspect, or transition a claude.ai/design session (drives a debug Chrome via CDP). action='status' (default) is a read-only orient — returns stored state + currentUrl + inSession + availableFiles. Other actions: ensure_ready (navigate to /design), resume (open the stored design URL), create (new project — requires name), adopt (bind an already-open /design/p/<uuid> tab), clear (dismiss interstitial overlays). Requires the agent-browser tool on PATH and a signed-in debug Chrome (one-time `designer setup`).",
224
+ inputSchema: {
225
+ type: 'object',
226
+ properties: {
227
+ key: { type: 'string', description: 'Stable key for this loop (e.g. feature name). Defaults to "default".' },
228
+ action: {
229
+ type: 'string',
230
+ description: 'Default: status',
231
+ enum: ['status', 'ensure_ready', 'resume', 'create', 'adopt', 'clear'],
232
+ },
233
+ name: { type: 'string', description: 'Required when action=create; optional label when action=adopt.' },
234
+ fidelity: {
235
+ type: 'string',
236
+ description: 'wireframe (default) or highfi — folded into the creation seed prompt.',
237
+ enum: ['wireframe', 'highfi'],
238
+ },
239
+ },
240
+ },
241
+ },
242
+ {
243
+ name: 'designer_prompt',
244
+ description: "Modify the design. Sends a prompt expected to change the served HTML (e.g. 'create a login screen'). Waits for Claude Design's turn to complete, then returns slim metadata (NOT inline HTML). DEFAULT TASTE PATH: hand the human the returned `url` — it's the live, interactive claude.ai/design surface. Auto-appends a 'keep all files at project root, no subfolders' instruction.",
245
+ inputSchema: {
246
+ type: 'object',
247
+ properties: {
248
+ key: { type: 'string', description: 'Stable key for this loop. Defaults to "default".' },
249
+ prompt: { type: 'string', description: 'The instruction to send to Claude Design.' },
250
+ file: { type: 'string', description: 'Switch to this file before sending (targets the prompt at it).' },
251
+ timeoutMs: { type: 'number', description: 'Default 20m. Hi-fi generations can take 15+ min.' },
252
+ stabilityMs: { type: 'number', description: 'Default 4s.' },
253
+ decisive: {
254
+ type: 'boolean',
255
+ description: "Append a 'do not stop to ask clarifying questions' instruction.",
256
+ },
257
+ },
258
+ required: ['prompt'],
259
+ },
260
+ },
261
+ {
262
+ name: 'designer_ask',
263
+ description: "Q&A with the design assistant — text-only, changes no file. Use for 'why did you choose X?', 'compare A vs B', 'suggest 3 alternatives before I commit'. Returns the assistant's reply.",
264
+ inputSchema: {
265
+ type: 'object',
266
+ properties: {
267
+ key: { type: 'string', description: 'Stable key for this loop. Defaults to "default".' },
268
+ prompt: { type: 'string', description: 'The question to ask Claude Design.' },
269
+ file: { type: 'string', description: 'Switch to this file before asking (gives Claude context).' },
270
+ timeoutMs: { type: 'number', description: 'Default 5m.' },
271
+ stabilityMs: { type: 'number', description: 'Default 2.5s.' },
272
+ },
273
+ required: ['prompt'],
274
+ },
275
+ },
276
+ {
277
+ name: 'designer_list',
278
+ description: "Inventory. scope='projects' lists all your Claude design projects; scope='files' lists files in the currently-open project (flat-only — folder contents need designer_handoff). Usually unnecessary — designer_session already returns availableFiles.",
279
+ inputSchema: {
280
+ type: 'object',
281
+ properties: {
282
+ key: { type: 'string', description: 'Stable key for this loop. Defaults to "default".' },
283
+ scope: { type: 'string', description: 'projects or files', enum: ['projects', 'files'] },
284
+ },
285
+ required: ['scope'],
286
+ },
287
+ },
288
+ {
289
+ name: 'designer_snapshot',
290
+ description: "Inspect a file's current state. Switches to `filename` first if given. Default returns paths + hash only (HTML written to disk at htmlPath); set includeHtml=true to inline the HTML. Reads the real rendered HTML over CDP from inside the cross-origin preview iframe.",
291
+ inputSchema: {
292
+ type: 'object',
293
+ properties: {
294
+ key: { type: 'string', description: 'Stable key for this loop. Defaults to "default".' },
295
+ filename: { type: 'string', description: 'Switch to this file first. Omit to snapshot whatever is active.' },
296
+ includeHtml: { type: 'boolean', description: 'Default false.' },
297
+ screenshot: { type: 'boolean', description: 'Default true.' },
298
+ },
299
+ },
300
+ },
301
+ {
302
+ name: 'designer_handoff',
303
+ description: "Promote: fetch the project's export zip and extract it under ./artifacts/<key>/handoff-<ts>/project/, plus decision-record.md (the live chat transcript, verbatim). Call when the human says 'yes, that's it'. The bundle is what /ss-design-loop feeds to the claude-design-implement workflow.",
304
+ inputSchema: {
305
+ type: 'object',
306
+ properties: {
307
+ key: { type: 'string', description: 'Stable key for this loop. Defaults to "default".' },
308
+ openFile: { type: 'string', description: 'Set the open file before handoff.' },
309
+ },
310
+ },
311
+ },
312
+ ];
313
+ //# sourceMappingURL=designer-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designer-tools.js","sourceRoot":"","sources":["../../src/mcp/designer-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
package/dist/mcp/tools.js CHANGED
@@ -275,6 +275,7 @@ const projectPathProperty = {
275
275
  * All tools support cross-project queries via the optional `projectPath` parameter.
276
276
  */
277
277
  const spec_tools_1 = require("./spec-tools");
278
+ const designer_tools_1 = require("./designer-tools");
278
279
  exports.tools = [
279
280
  {
280
281
  name: 'specship_search',
@@ -454,6 +455,9 @@ exports.tools = [
454
455
  },
455
456
  // Spec-layer tools (v5): see ./spec-tools.ts for handlers.
456
457
  ...spec_tools_1.specToolDefinitions,
458
+ // Designer tools: claude.ai/design driving, vendored from @pro-vi/designer.
459
+ // See ./designer-tools.ts for handlers. Drives a debug Chrome over CDP.
460
+ ...designer_tools_1.designerToolDefinitions,
457
461
  ];
458
462
  /**
459
463
  * Allowlist-filtered tool definitions WITHOUT an engine — the static surface the
@@ -593,7 +597,9 @@ class ToolHandler {
593
597
  'specship_node',
594
598
  ]);
595
599
  if (stats.fileCount < TINY_REPO_FILE_THRESHOLD) {
596
- visible = visible.filter(t => TINY_REPO_CORE_TOOLS.has(t.name));
600
+ // Designer tools are not code-graph tools — the tiny-repo flow-question
601
+ // economics that justify trimming don't apply, so they always survive.
602
+ visible = visible.filter(t => TINY_REPO_CORE_TOOLS.has(t.name) || t.name.startsWith('designer_'));
597
603
  }
598
604
  return visible.map(tool => {
599
605
  if (tool.name === 'specship_explore') {
@@ -934,6 +940,21 @@ class ToolHandler {
934
940
  case 'specship_drifted':
935
941
  result = await (0, spec_tools_1.handleSpecshipDrifted)(this.getSpecShip(args.projectPath), args);
936
942
  break;
943
+ // Designer tools are independent of the code graph — return directly,
944
+ // bypassing the worktree/staleness notice wrappers (which assume a
945
+ // code-graph query).
946
+ case 'designer_session':
947
+ return await (0, designer_tools_1.handleDesignerSession)(args);
948
+ case 'designer_prompt':
949
+ return await (0, designer_tools_1.handleDesignerPrompt)(args);
950
+ case 'designer_ask':
951
+ return await (0, designer_tools_1.handleDesignerAsk)(args);
952
+ case 'designer_list':
953
+ return await (0, designer_tools_1.handleDesignerList)(args);
954
+ case 'designer_snapshot':
955
+ return await (0, designer_tools_1.handleDesignerSnapshot)(args);
956
+ case 'designer_handoff':
957
+ return await (0, designer_tools_1.handleDesignerHandoff)(args);
937
958
  default:
938
959
  return this.errorResult(`Unknown tool: ${toolName}`);
939
960
  }