openspec-playwright 0.3.43 → 0.3.44

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.
@@ -1,7 +1,28 @@
1
- import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs";
2
- import { join, dirname, resolve as pathResolve } from "path";
1
+ /**
2
+ * Editor adapter layer.
3
+ *
4
+ * Both Claude Code and OpenCode can host the /opsx:e2e command, plus a
5
+ * project-level rules file (CLAUDE.md / AGENTS.md) and an MCP server
6
+ * definition. Each editor has its own conventions — file path, frontmatter
7
+ * shape, MCP install mechanism — so this module exposes a single
8
+ * `EditorAdapter` interface and a registry that callers can iterate.
9
+ *
10
+ * Conventions follow the upstream OpenSpec reference implementation:
11
+ * - Claude: `.claude/commands/opsx/<id>.md`, full frontmatter,
12
+ * `claude mcp add …`, reads CLAUDE.md directly.
13
+ * - OpenCode: `.opencode/commands/opsx-<id>.md`, description-only
14
+ * frontmatter, edits `opencode.json(c)`, reads files listed
15
+ * under `instructions` (CLAUDE.md is a built-in fallback).
16
+ */
17
+ import { existsSync, mkdirSync, rmSync, writeFileSync, readFileSync, } from "fs";
18
+ import { execFileSync } from "node:child_process";
19
+ import { join, dirname, basename, resolve as pathResolve } from "path";
3
20
  import chalk from "chalk";
4
- /** Shared YAML escape matches OpenSpec's escape logic */
21
+ import { modify, applyEdits, parseTree as parseJsonc, findNodeAtLocation, getNodeValue, } from "jsonc-parser";
22
+ import { TIMEOUT } from "../shared/constants.js";
23
+ import { needsShell } from "../shared/platform.js";
24
+ // ─── YAML helpers (shared by Claude frontmatter and elsewhere) ───────────
25
+ /** Escape a value for safe inclusion in a YAML frontmatter scalar. */
5
26
  export function escapeYamlValue(value) {
6
27
  const needsQuoting = /[:\n\r#{}[\],&*!|>'"%@`]|^\s|\s$/.test(value);
7
28
  if (needsQuoting) {
@@ -13,12 +34,31 @@ export function escapeYamlValue(value) {
13
34
  }
14
35
  return value;
15
36
  }
16
- /** Format tags as YAML inline array */
37
+ /** Format tags as a YAML inline array. */
17
38
  export function formatTagsArray(tags) {
18
39
  return `[${tags.map((t) => escapeYamlValue(t)).join(", ")}]`;
19
40
  }
20
- // ─── Claude Code ──────────────────────────────────────────────────────────────
21
- /** Claude Code command file: .claude/commands/opsx/<id>.md */
41
+ // ─── Body transform ──────────────────────────────────────────────────────
42
+ /**
43
+ * OpenCode slash-command names are hyphenated (`/opsx-e2e`), Claude's are
44
+ * colon-prefixed (`/opsx:e2e`). Rewrite all `/opsx:` references in a
45
+ * command body for OpenCode installation.
46
+ */
47
+ export function transformToHyphenCommands(text) {
48
+ return text.replace(/\/opsx:/g, "/opsx-");
49
+ }
50
+ /** Build the command metadata for the /opsx:e2e command. */
51
+ export function buildCommandMeta(body) {
52
+ return {
53
+ id: "e2e",
54
+ name: "OPSX: E2E",
55
+ description: "Run Playwright E2E verification for an OpenSpec change",
56
+ category: "OpenSpec",
57
+ tags: ["openspec", "playwright", "e2e", "testing"],
58
+ body,
59
+ };
60
+ }
61
+ // ─── Claude Code adapter ─────────────────────────────────────────────────
22
62
  export function formatClaudeCommand(meta) {
23
63
  return `---
24
64
  name: ${escapeYamlValue(meta.name)}
@@ -33,60 +73,151 @@ ${meta.body}
33
73
  export function getClaudeCommandPath(id) {
34
74
  return join(".claude", "commands", "opsx", `${id}.md`);
35
75
  }
36
- /** Build the command metadata for Claude Code */
37
- export function buildCommandMeta(body) {
38
- return {
39
- id: "e2e",
40
- name: "OPSX: E2E",
41
- description: "Run Playwright E2E verification for an OpenSpec change",
42
- category: "OpenSpec",
43
- tags: ["openspec", "playwright", "e2e", "testing"],
44
- body,
45
- };
46
- }
47
- /** Detect if Claude Code is installed */
48
76
  export function hasClaudeCode(projectRoot) {
49
77
  return existsSync(join(projectRoot, ".claude"));
50
78
  }
51
- // ─── Install helpers ───────────────────────────────────────────────────────
52
- /** Install command files for Claude Code */
53
- export function installForClaudeCode(body, projectRoot) {
54
- const meta = buildCommandMeta(body);
55
- const relPath = getClaudeCommandPath(meta.id);
79
+ // ─── OpenCode adapter ────────────────────────────────────────────────────
80
+ export function formatOpenCodeCommand(meta) {
81
+ const body = transformToHyphenCommands(meta.body);
82
+ return `---
83
+ description: ${escapeYamlValue(meta.description)}
84
+ ---
85
+
86
+ ${body}
87
+ `;
88
+ }
89
+ export function getOpenCodeCommandPath(id) {
90
+ return join(".opencode", "commands", `opsx-${id}.md`);
91
+ }
92
+ export function hasOpenCode(projectRoot) {
93
+ return existsSync(join(projectRoot, ".opencode"));
94
+ }
95
+ const JSONC_FORMAT = { tabSize: 2, insertSpaces: true };
96
+ /** Find the first existing opencode.json(c), or null. */
97
+ function findOpenCodeConfig(projectRoot) {
98
+ for (const name of ["opencode.jsonc", "opencode.json"]) {
99
+ const p = join(projectRoot, name);
100
+ if (existsSync(p))
101
+ return { path: p, text: readFileSync(p, "utf-8") };
102
+ }
103
+ return null;
104
+ }
105
+ /**
106
+ * Set a value at a JSON path inside opencode.json(c), creating the file
107
+ * with a `$schema` scaffold if it doesn't exist. Replaces any existing
108
+ * value at the path (does not merge arrays).
109
+ */
110
+ function setOpenCodeValue(projectRoot, keySegments, value) {
111
+ const existing = findOpenCodeConfig(projectRoot);
112
+ const targetPath = existing?.path ?? join(projectRoot, "opencode.jsonc");
113
+ if (!existing) {
114
+ const scaffold = {
115
+ $schema: "https://opencode.ai/config.json",
116
+ };
117
+ // Build nested scaffold for multi-segment keys (e.g. ["mcp", "playwright"])
118
+ let cursor = scaffold;
119
+ for (let i = 0; i < keySegments.length - 1; i++) {
120
+ const k = String(keySegments[i]);
121
+ cursor[k] = {};
122
+ cursor = cursor[k];
123
+ }
124
+ cursor[String(keySegments[keySegments.length - 1])] = value;
125
+ // ponytail: new file uses 2-space indent; modify branch preserves existing formatting.
126
+ writeFileSync(targetPath, JSON.stringify(scaffold, null, 2) + "\n");
127
+ return;
128
+ }
129
+ const edits = modify(existing.text, keySegments, value, {
130
+ formattingOptions: JSONC_FORMAT,
131
+ });
132
+ writeFileSync(targetPath, applyEdits(existing.text, edits));
133
+ }
134
+ /** Read the current value at a JSON path (returns undefined if missing). */
135
+ function readOpenCodeValue(text, keySegments) {
136
+ try {
137
+ const tree = parseJsonc(text);
138
+ if (!tree)
139
+ return undefined;
140
+ const node = findNodeAtLocation(tree, keySegments);
141
+ return node ? getNodeValue(node) : undefined;
142
+ }
143
+ catch {
144
+ return undefined;
145
+ }
146
+ }
147
+ /** Read the current `instructions` array from opencode.json(c), or undefined. */
148
+ function readOpenCodeInstructions(projectRoot) {
149
+ const config = findOpenCodeConfig(projectRoot);
150
+ if (!config)
151
+ return undefined;
152
+ const value = readOpenCodeValue(config.text, ["instructions"]);
153
+ if (Array.isArray(value) && value.every((v) => typeof v === "string")) {
154
+ return value;
155
+ }
156
+ return undefined;
157
+ }
158
+ // ─── Registry ────────────────────────────────────────────────────────────
159
+ const ADAPTERS = [
160
+ // claudeAdapter is declared further down (after the shared mcp helpers)
161
+ // We forward-define it after shared code; the registry is filled in
162
+ // by `registerAdapter` below. See the bottom of this file.
163
+ ];
164
+ export function getAdapter(id) {
165
+ return ADAPTERS.find((a) => a.id === id);
166
+ }
167
+ export function detectAdapters(projectRoot) {
168
+ return ADAPTERS.filter((a) => a.detect(projectRoot));
169
+ }
170
+ function registerAdapter(adapter) {
171
+ ADAPTERS.push(adapter);
172
+ }
173
+ // ─── Install helpers ─────────────────────────────────────────────────────
174
+ /** Install the command file for one adapter. */
175
+ export function installCommand(adapter, meta, projectRoot) {
176
+ const relPath = adapter.commandFilePath(meta.id);
56
177
  const absPath = pathResolve(projectRoot, relPath);
57
178
  mkdirSync(dirname(absPath), { recursive: true });
58
- writeFileSync(absPath, formatClaudeCommand(meta));
59
- console.log(chalk.green(` ✓ claude: ${relPath}`));
179
+ writeFileSync(absPath, adapter.formatCommand(meta));
180
+ console.log(chalk.green(` ✓ ${adapter.label}: ${relPath}`));
60
181
  }
61
- /** Install project-level CLAUDE.md with employee-grade standards + OpenSpec context */
62
- export function installProjectClaudeMd(projectRoot, standardsContent) {
63
- const dest = join(projectRoot, "CLAUDE.md");
182
+ // ─── Project rules file (CLAUDE.md / AGENTS.md) ──────────────────────────
183
+ /**
184
+ * Install employee-grade standards into the editor's rules file
185
+ * (CLAUDE.md for Claude, AGENTS.md for OpenCode). Wraps content in
186
+ * `<!-- OPENSPEC:START -->` / `<!-- OPENSPEC:END -->` markers so future
187
+ * updates can replace the block without touching the rest of the file.
188
+ */
189
+ export function installProjectClaudeMd(projectRoot, standardsContent, adapter = claudeAdapter) {
190
+ const dest = adapter.projectRulesPath(projectRoot);
191
+ const fileLabel = basename(dest);
64
192
  const markerStart = "<!-- OPENSPEC:START -->";
65
193
  const markerEnd = "<!-- OPENSPEC:END -->";
66
194
  if (!existsSync(dest)) {
67
- // No CLAUDE.md → create with markers wrapping standards
68
195
  const projName = projectRoot.split("/").pop() ?? "Project";
69
196
  const content = `# ${projName}\n\n${markerStart}\n\n${standardsContent}\n\n${markerEnd}\n`;
70
197
  writeFileSync(dest, content);
71
- console.log(chalk.green(` ✓ CLAUDE.md: created with employee-grade standards`));
198
+ console.log(chalk.green(` ✓ ${fileLabel}: created with employee-grade standards`));
72
199
  return;
73
200
  }
74
- // CLAUDE.md exists → read and manage OPENSPEC block
75
201
  const existing = readFileSync(dest, "utf-8");
76
202
  const hasStart = existing.includes(markerStart);
77
203
  const hasEnd = existing.includes(markerEnd);
78
204
  if (hasStart && hasEnd) {
79
- // Markers exist → replace the block (preserves outside content)
80
205
  const startIdx = existing.indexOf(markerStart);
81
206
  const endIdx = existing.indexOf(markerEnd) + markerEnd.length;
82
207
  const before = existing.slice(0, startIdx).trimEnd();
83
208
  const after = existing.slice(endIdx);
84
- const updated = before + "\n" + markerStart + "\n\n" + standardsContent.trim() + "\n\n" + markerEnd + after;
209
+ const updated = before +
210
+ "\n" +
211
+ markerStart +
212
+ "\n\n" +
213
+ standardsContent.trim() +
214
+ "\n\n" +
215
+ markerEnd +
216
+ after;
85
217
  writeFileSync(dest, updated);
86
- console.log(chalk.green(` ✓ CLAUDE.md: updated employee-grade standards (markers preserved, content refreshed)`));
218
+ console.log(chalk.green(` ✓ ${fileLabel}: updated employee-grade standards (markers preserved, content refreshed)`));
87
219
  }
88
220
  else if (!hasStart && !hasEnd) {
89
- // No markers → append with markers
90
221
  const updated = existing.trim() +
91
222
  "\n\n" +
92
223
  markerStart +
@@ -96,15 +227,161 @@ export function installProjectClaudeMd(projectRoot, standardsContent) {
96
227
  markerEnd +
97
228
  "\n";
98
229
  writeFileSync(dest, updated);
99
- console.log(chalk.green(` ✓ CLAUDE.md: appended employee-grade standards with markers`));
230
+ console.log(chalk.green(` ✓ ${fileLabel}: appended employee-grade standards with markers`));
100
231
  }
101
232
  else {
102
- // Partial markers (start without end or vice versa) → malformed, warn
103
- console.log(chalk.yellow(` ⚠ CLAUDE.md has incomplete OPENSPEC markers — skipped`));
233
+ console.log(chalk.yellow(` ⚠ ${fileLabel} has incomplete OPENSPEC markers skipped`));
104
234
  }
105
235
  }
106
- /** Read the employee-grade standards from a source file */
236
+ /**
237
+ * Route the employee-grade standards into the right rules file(s) for the
238
+ * detected editors:
239
+ *
240
+ * - 1 editor detected → write to that editor's rules file
241
+ * (CLAUDE.md for Claude, AGENTS.md for OpenCode)
242
+ * - 2 editors detected → write CLAUDE.md (OpenCode reads it natively)
243
+ * and register `CLAUDE.md` in `opencode.json[c].instructions`
244
+ * so OpenCode treats it as a project rule.
245
+ */
246
+ export function installProjectRules(projectRoot, standardsContent, detected) {
247
+ if (detected.length === 0)
248
+ return;
249
+ if (detected.length === 1) {
250
+ installProjectClaudeMd(projectRoot, standardsContent, detected[0]);
251
+ // OpenCode needs explicit registration to read AGENTS.md as a project
252
+ // rule. Claude reads CLAUDE.md natively, so no instructions entry needed.
253
+ if (detected[0].id === "opencode" && detected[0].registerInstructions) {
254
+ const existing = readOpenCodeInstructions(projectRoot);
255
+ const next = Array.from(new Set([...(existing ?? []), "AGENTS.md"]));
256
+ detected[0].registerInstructions(projectRoot, next);
257
+ }
258
+ return;
259
+ }
260
+ // Both detected: write CLAUDE.md for both, plus explicit instructions
261
+ installProjectClaudeMd(projectRoot, standardsContent, claudeAdapter);
262
+ if (opencodeAdapter.registerInstructions) {
263
+ const existing = readOpenCodeInstructions(projectRoot);
264
+ const next = Array.from(new Set([...(existing ?? []), "CLAUDE.md"]));
265
+ opencodeAdapter.registerInstructions(projectRoot, next);
266
+ }
267
+ }
268
+ /** Remove the OPENSPEC markers block from a rules file (CLAUDE.md / AGENTS.md). */
269
+ export function cleanProjectRules(adapter, projectRoot) {
270
+ const dest = adapter.projectRulesPath(projectRoot);
271
+ const fileLabel = basename(dest);
272
+ if (!existsSync(dest)) {
273
+ console.log(chalk.gray(` - ${fileLabel} not found, skipping`));
274
+ return;
275
+ }
276
+ const existing = readFileSync(dest, "utf-8");
277
+ const markerStart = "<!-- OPENSPEC:START -->";
278
+ if (!existing.includes(markerStart)) {
279
+ console.log(chalk.gray(` - No OpenSpec markers found in ${fileLabel}`));
280
+ return;
281
+ }
282
+ const OPENSPEC_BLOCK = /\s*<!-- OPENSPEC:START -->[\s\S]*?<!-- OPENSPEC:END -->\s*/g;
283
+ let updated = existing.replace(OPENSPEC_BLOCK, "\n\n");
284
+ // Collapse runs of 3+ blank lines down to 2, trim
285
+ updated = updated.replace(/\n{3,}/g, "\n\n").trim();
286
+ if (updated === "") {
287
+ rmSync(dest);
288
+ console.log(chalk.green(` ✓ Removed empty ${fileLabel}`));
289
+ return;
290
+ }
291
+ writeFileSync(dest, updated + "\n");
292
+ console.log(chalk.green(` ✓ Removed OpenSpec markers from ${fileLabel}`));
293
+ }
294
+ /** Read the employee-grade standards source file (empty string if missing). */
107
295
  export function readEmployeeStandards(srcPath) {
108
296
  return existsSync(srcPath) ? readFileSync(srcPath, "utf-8") : "";
109
297
  }
298
+ // ─── Adapter instances (registered after helpers above are defined) ──────
299
+ //
300
+ // We declare them here (not at the top) so they can reference the helper
301
+ // functions defined in this same module. JS hoisting covers `function`
302
+ // declarations; `const` arrows don't get hoisted, so the order matters.
303
+ function claudeMcpOutputIncludes(output, serverName) {
304
+ return String(output ?? "").includes(serverName);
305
+ }
306
+ export const claudeAdapter = {
307
+ id: "claude",
308
+ label: "claude",
309
+ detect: hasClaudeCode,
310
+ commandFilePath: getClaudeCommandPath,
311
+ formatCommand: formatClaudeCommand,
312
+ projectRulesPath: (root) => join(root, "CLAUDE.md"),
313
+ isMcpInstalled(_root, serverName) {
314
+ try {
315
+ const out = execFileSync("claude", ["mcp", "list"], {
316
+ encoding: "utf-8",
317
+ timeout: TIMEOUT.MCP_LIST,
318
+ stdio: ["pipe", "pipe", "pipe"],
319
+ shell: needsShell,
320
+ });
321
+ return claudeMcpOutputIncludes(out, serverName);
322
+ }
323
+ catch {
324
+ // Command failed — assume server not installed
325
+ return false;
326
+ }
327
+ },
328
+ installMcp(_root, serverName, command) {
329
+ execFileSync("claude", ["mcp", "add", serverName, ...command], {
330
+ encoding: "utf-8",
331
+ timeout: TIMEOUT.MCP_LIST,
332
+ stdio: ["pipe", "pipe", "pipe"],
333
+ shell: needsShell,
334
+ });
335
+ },
336
+ removeMcp(_root, serverName) {
337
+ execFileSync("claude", ["mcp", "remove", serverName], {
338
+ encoding: "utf-8",
339
+ timeout: TIMEOUT.MCP_LIST,
340
+ stdio: ["pipe", "pipe", "pipe"],
341
+ shell: needsShell,
342
+ });
343
+ },
344
+ };
345
+ export const opencodeAdapter = {
346
+ id: "opencode",
347
+ label: "opencode",
348
+ detect: hasOpenCode,
349
+ commandFilePath: getOpenCodeCommandPath,
350
+ formatCommand: formatOpenCodeCommand,
351
+ projectRulesPath: (root) => join(root, "AGENTS.md"),
352
+ isMcpInstalled(projectRoot, serverName) {
353
+ const config = findOpenCodeConfig(projectRoot);
354
+ if (!config)
355
+ return false;
356
+ const value = readOpenCodeValue(config.text, ["mcp", serverName]);
357
+ return value !== undefined;
358
+ },
359
+ installMcp(projectRoot, serverName, command) {
360
+ setOpenCodeValue(projectRoot, ["mcp", serverName], {
361
+ type: "local",
362
+ command,
363
+ });
364
+ },
365
+ removeMcp(projectRoot, serverName) {
366
+ // Read current mcp map, rebuild without this server, write back
367
+ const config = findOpenCodeConfig(projectRoot);
368
+ if (!config)
369
+ return;
370
+ const value = readOpenCodeValue(config.text, ["mcp", serverName]);
371
+ if (value === undefined)
372
+ return;
373
+ const current = readOpenCodeValue(config.text, ["mcp"]);
374
+ if (current && typeof current === "object") {
375
+ const next = { ...current };
376
+ delete next[serverName];
377
+ setOpenCodeValue(projectRoot, ["mcp"], next);
378
+ }
379
+ },
380
+ registerInstructions(projectRoot, instructions) {
381
+ setOpenCodeValue(projectRoot, ["instructions"], instructions);
382
+ },
383
+ };
384
+ // Register the adapters now that the const arrows exist
385
+ registerAdapter(claudeAdapter);
386
+ registerAdapter(opencodeAdapter);
110
387
  //# sourceMappingURL=editors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editors.js","sourceRoot":"","sources":["../../src/commands/editors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editors.js","sourceRoot":"","sources":["../../src/commands/editors.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { join } from "path";
4
4
  import { fileURLToPath } from "url";
5
5
  import chalk from "chalk";
6
6
  import { readFile } from "fs/promises";
7
- import { hasClaudeCode, installForClaudeCode, installProjectClaudeMd, readEmployeeStandards, } from "./editors.js";
7
+ import { buildCommandMeta, detectAdapters, installCommand, installProjectRules, readEmployeeStandards, } from "./editors.js";
8
8
  import { isPlaywrightMcpInstalled, ensurePlaywrightMcp, needsShell } from "../shared/index.js";
9
9
  const TEMPLATE_DIR = fileURLToPath(new URL("../../templates", import.meta.url));
10
10
  const E2E_COMMAND_SRC = fileURLToPath(new URL("../../templates/e2e-command.md", import.meta.url));
@@ -42,42 +42,50 @@ export async function init(options) {
42
42
  return;
43
43
  }
44
44
  console.log(chalk.green(" ✓ OpenSpec initialized"));
45
- // 3. Install Playwright MCP (global)
45
+ // 3. Detect supported editors (.claude/ and/or .opencode/)
46
+ const detected = detectAdapters(projectRoot);
47
+ if (detected.length === 0) {
48
+ console.log(chalk.yellow("\n ⚠ No supported editor detected (need .claude/ or .opencode/)."));
49
+ console.log(chalk.gray(" Run openspec-pw init from a Claude Code or OpenCode project to install commands.\n"));
50
+ return;
51
+ }
52
+ console.log(chalk.gray(` Detected: ${detected.map((a) => a.label).join(", ")}`));
53
+ // 4. Install Playwright MCP for each detected editor
46
54
  if (options.mcp !== false) {
47
55
  console.log(chalk.blue("\n─── Installing Playwright MCP ───"));
48
- // Check using shared utility
49
- const mcpInstalled = isPlaywrightMcpInstalled();
50
- if (mcpInstalled) {
51
- console.log(chalk.green(" ✓ Playwright MCP already installed"));
52
- }
53
- else {
56
+ for (const adapter of detected) {
57
+ if (isPlaywrightMcpInstalled(adapter)) {
58
+ console.log(chalk.green(` ✓ ${adapter.label}: Playwright MCP already installed`));
59
+ continue;
60
+ }
54
61
  try {
55
- ensurePlaywrightMcp();
56
- console.log(chalk.gray(" (Restart Claude Code to activate)"));
62
+ ensurePlaywrightMcp(adapter);
63
+ console.log(chalk.gray(` (Restart ${adapter.label} to activate)`));
57
64
  }
58
65
  catch (err) {
59
66
  const e = err;
60
67
  if (e.stderr?.includes("already exists")) {
61
- console.log(chalk.green(" ✓ Playwright MCP already installed"));
68
+ console.log(chalk.green(`${adapter.label}: Playwright MCP already installed`));
62
69
  }
63
70
  else {
64
- console.log(chalk.yellow("Failed to run claude mcp add. Run manually:"));
65
- console.log(chalk.gray(" claude mcp add playwright npx @playwright/mcp@latest"));
66
- console.log(chalk.gray(" (Restart Claude Code to activate the MCP server)"));
71
+ console.log(chalk.yellow(`${adapter.label}: failed to install Playwright MCP. Run manually.`));
72
+ if (adapter.id === "claude") {
73
+ console.log(chalk.gray(" claude mcp add playwright npx @playwright/mcp@latest"));
74
+ }
75
+ else {
76
+ console.log(chalk.gray(" Add `playwright` to mcp in opencode.json / opencode.jsonc"));
77
+ }
78
+ console.log(chalk.gray(` (Restart ${adapter.label} to activate the MCP server)`));
67
79
  }
68
80
  }
69
81
  }
70
82
  }
71
- // 4. Install E2E command for Claude Code
83
+ // 5. Install E2E command for each detected editor
72
84
  console.log(chalk.blue("\n─── Installing E2E Commands ───"));
73
85
  const body = await readFile(E2E_COMMAND_SRC, "utf-8");
74
- if (hasClaudeCode(projectRoot)) {
75
- installForClaudeCode(body, projectRoot);
76
- }
77
- else {
78
- console.log(chalk.yellow(" ⚠ Claude Code not detected (.claude/ not found)."));
79
- console.log(chalk.gray(" Run openspec-pw init from a Claude Code project to install commands.\n"));
80
- return;
86
+ const meta = buildCommandMeta(body);
87
+ for (const adapter of detected) {
88
+ installCommand(adapter, meta, projectRoot);
81
89
  }
82
90
  // 6. Generate seed test
83
91
  console.log(chalk.blue("\n─── Generating Seed Test ───"));
@@ -100,7 +108,7 @@ export async function init(options) {
100
108
  console.log(chalk.blue("\n─── Installing Employee Standards ───"));
101
109
  const standards = readEmployeeStandards(EMPLOYEE_STANDARDS_SRC);
102
110
  if (standards) {
103
- installProjectClaudeMd(projectRoot, standards);
111
+ installProjectRules(projectRoot, standards, detected);
104
112
  }
105
113
  // 9. Summary
106
114
  console.log(chalk.blue("\n─── Summary ───"));
@@ -111,15 +119,16 @@ export async function init(options) {
111
119
  console.log(chalk.gray(" 3. Set credentials: export E2E_USERNAME=xxx E2E_PASSWORD=yyy"));
112
120
  console.log(chalk.gray(" 4. Run auth setup: npx playwright test --project=setup"));
113
121
  console.log(chalk.gray(" 5. Page objects: extend tests/playwright/pages/BasePage.ts for shared selectors"));
114
- const hasClaude = existsSync(join(projectRoot, ".claude"));
115
- if (hasClaude) {
116
- console.log(chalk.gray(" 6. In Claude Code, run: /opsx:e2e <change-name>"));
122
+ for (const adapter of detected) {
123
+ const slashCmd = adapter.id === "claude" ? "/opsx:e2e" : "/opsx-e2e";
124
+ console.log(chalk.gray(` In ${adapter.label}, run: ${slashCmd} <change-name>`));
117
125
  }
118
- console.log(chalk.gray(` ${hasClaude ? "7." : "6."} Or: openspec-pw run <change-name>`));
119
- console.log(chalk.gray(` ${hasClaude ? "8." : "7."} Or: openspec-pw doctor to verify setup\n`));
126
+ console.log(chalk.gray(" Or: openspec-pw run <change-name>"));
127
+ console.log(chalk.gray(" Or: openspec-pw doctor to verify setup\n"));
128
+ console.log(chalk.bold(`\n Restart ${detected.map((a) => a.label).join(" + ")} to use the updated commands.`));
120
129
  console.log(chalk.bold("How it works:"));
121
- console.log(chalk.gray(" /opsx:e2e reads your OpenSpec specs and runs Playwright"));
122
- console.log(chalk.gray(" E2E tests through a three-agent pipeline:"));
130
+ console.log(chalk.gray(" /opsx:e2e (Claude) and /opsx-e2e (OpenCode) read your OpenSpec specs"));
131
+ console.log(chalk.gray(" and run Playwright E2E tests through a three-agent pipeline:"));
123
132
  console.log(chalk.gray(" Planner → Generator → Healer\n"));
124
133
  }
125
134
  export async function generateSeedTest(projectRoot, force) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/F,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChF,MAAM,eAAe,GAAG,aAAa,CACnC,IAAI,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3D,CAAC;AACF,MAAM,sBAAsB,GAAG,aAAa,CAC1C,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACxD,CAAC;AASF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAElE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,yBAAyB;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzD,sEAAsE;IACtE,8EAA8E;IAC9E,8DAA8D;IAC9D,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAEtD,oBAAoB;IACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,yDAAyD,CAAC,CACxE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAErD,qCAAqC;IACrC,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE/D,6BAA6B;QAC7B,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;QAEhD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,mBAAmB,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,GAA0B,CAAC;gBACrC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACzC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CACpD,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iDAAiD,CAClD,CACF,CAAC;oBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,0DAA0D,CAC3D,CACF,CAAC;oBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,sDAAsD,CACvD,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CACnE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CACvF,CAAC;QACF,OAAO;IACT,CAAC;IAGD,wBAAwB;IACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC1D,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAE3D,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC7D,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEvC,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAClE,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAE5C,+BAA+B;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC9D,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAExC,iDAAiD;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5D,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IAChE,IAAI,SAAS,EAAE,CAAC;QACd,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,aAAa;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,sEAAsE,CACvE,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,sEAAsE,CACvE,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,gEAAgE,CACjE,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CACvE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mFAAmF,CACpF,CACF,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,oCAAoC,CACjE,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,2CAA2C,CACxE,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,KAAc;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC,CAAC;IACjG,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,GAAG,eAAe,EAAE,OAAO,CAAC,CAAC;QAC5E,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8CAA8C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED,yBAAyB;IACzB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,QAAQ,CAChC,YAAY,GAAG,gBAAgB,EAC/B,OAAO,CACR,CAAC;QACF,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,MAAM,QAAQ,CACjC,YAAY,GAAG,mBAAmB,EAClC,OAAO,CACR,CAAC;QACF,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAE1E,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACnE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CACjE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,sEAAsE,CACvE,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAmB;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/D,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAE3D,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CACnF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAE7D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC7E,4BAA4B,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,UAAkB;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxE,WAAW,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,WAAW,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAErC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACvF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC,CAAC;AACpI,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAc,EAAE,IAAY,EAAE,MAAM,GAAG,KAAK;IACvE,IAAI,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}