yo-bug 0.1.1 → 0.1.2

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 +1 @@
1
- {"version":3,"file":"detect-ai-tool.d.ts","sourceRoot":"","sources":["../../../src/install/detect-ai-tool.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BvD"}
1
+ {"version":3,"file":"detect-ai-tool.d.ts","sourceRoot":"","sources":["../../../src/install/detect-ai-tool.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA2BvD"}
@@ -3,12 +3,11 @@ import path from 'path';
3
3
  const HOME = process.env.HOME || process.env.USERPROFILE || '';
4
4
  export async function detectAITools() {
5
5
  const tools = [];
6
- // Claude Code
7
- const claudeDir = path.join(HOME, '.claude');
6
+ // Claude Code — MCP config goes in ~/.claude.json (NOT ~/.claude/settings.json)
8
7
  tools.push({
9
8
  name: 'Claude Code',
10
- configPath: path.join(claudeDir, 'settings.json'),
11
- detected: await dirExists(claudeDir),
9
+ configPath: path.join(HOME, '.claude.json'),
10
+ detected: await dirExists(path.join(HOME, '.claude')),
12
11
  });
13
12
  // Cursor
14
13
  const cursorDir = path.join(HOME, '.cursor');
@@ -1 +1 @@
1
- {"version":3,"file":"detect-ai-tool.js","sourceRoot":"","sources":["../../../src/install/detect-ai-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,cAAc;IACd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;QACjD,QAAQ,EAAE,MAAM,SAAS,CAAC,SAAS,CAAC;KACrC,CAAC,CAAC;IAEH,SAAS;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QAC5C,QAAQ,EAAE,MAAM,SAAS,CAAC,SAAS,CAAC;KACrC,CAAC,CAAC;IAEH,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QAC9C,QAAQ,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC;KACvC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"detect-ai-tool.js","sourceRoot":"","sources":["../../../src/install/detect-ai-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,gFAAgF;IAChF,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QAC3C,QAAQ,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KACtD,CAAC,CAAC;IAEH,SAAS;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QAC5C,QAAQ,EAAE,MAAM,SAAS,CAAC,SAAS,CAAC;KACrC,CAAC,CAAC;IAEH,WAAW;IACX,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QAC9C,QAAQ,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC;KACvC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"write-mcp-config.d.ts","sourceRoot":"","sources":["../../../src/install/write-mcp-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAuCjG"}
1
+ {"version":3,"file":"write-mcp-config.d.ts","sourceRoot":"","sources":["../../../src/install/write-mcp-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQlD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BjG"}
@@ -18,25 +18,12 @@ export async function writeMcpConfig(tool) {
18
18
  catch {
19
19
  // File doesn't exist or invalid JSON — start fresh
20
20
  }
21
- // Check if already configured
22
- if (tool.name === 'Claude Code') {
23
- config.mcpServers = config.mcpServers || {};
24
- if (config.mcpServers['yo-bug']) {
25
- return { success: true, message: `${tool.name}: Already configured, skipped.` };
26
- }
27
- config.mcpServers['yo-bug'] = {
28
- type: 'stdio',
29
- ...MCP_SERVER_CONFIG,
30
- };
31
- }
32
- else {
33
- // Cursor / Windsurf format
34
- config.mcpServers = config.mcpServers || {};
35
- if (config.mcpServers['yo-bug']) {
36
- return { success: true, message: `${tool.name}: Already configured, skipped.` };
37
- }
38
- config.mcpServers['yo-bug'] = MCP_SERVER_CONFIG;
39
- }
21
+ config.mcpServers = config.mcpServers || {};
22
+ // Always overwrite don't skip, in case config was wrong before
23
+ config.mcpServers['yo-bug'] = {
24
+ ...MCP_SERVER_CONFIG,
25
+ ...(tool.name === 'Claude Code' ? { type: 'stdio' } : {}),
26
+ };
40
27
  // Write config
41
28
  await fs.writeFile(tool.configPath, JSON.stringify(config, null, 2), 'utf-8');
42
29
  return { success: true, message: `${tool.name}: MCP config written to ${tool.configPath}` };
@@ -1 +1 @@
1
- {"version":3,"file":"write-mcp-config.js","sourceRoot":"","sources":["../../../src/install/write-mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,qDAAqD;AACrD,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,uBAAuB;QACvB,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,gCAAgC,EAAE,CAAC;YAClF,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG;gBAC5B,IAAI,EAAE,OAAO;gBACb,GAAG,iBAAiB;aACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,gCAAgC,EAAE,CAAC;YAClF,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC;QAClD,CAAC;QAED,eAAe;QACf,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IAC9F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACpF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"write-mcp-config.js","sourceRoot":"","sources":["../../../src/install/write-mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,qDAAqD;AACrD,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,uBAAuB;QACvB,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;QAED,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAE5C,iEAAiE;QACjE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG;YAC5B,GAAG,iBAAiB;YACpB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;QAEF,eAAe;QACf,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IAC9F,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACpF,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yo-bug",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MCP Server for visual test feedback in vibe coding — QA capability as a protocol",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,12 +12,11 @@ const HOME = process.env.HOME || process.env.USERPROFILE || '';
12
12
  export async function detectAITools(): Promise<AITool[]> {
13
13
  const tools: AITool[] = [];
14
14
 
15
- // Claude Code
16
- const claudeDir = path.join(HOME, '.claude');
15
+ // Claude Code — MCP config goes in ~/.claude.json (NOT ~/.claude/settings.json)
17
16
  tools.push({
18
17
  name: 'Claude Code',
19
- configPath: path.join(claudeDir, 'settings.json'),
20
- detected: await dirExists(claudeDir),
18
+ configPath: path.join(HOME, '.claude.json'),
19
+ detected: await dirExists(path.join(HOME, '.claude')),
21
20
  });
22
21
 
23
22
  // Cursor
@@ -22,24 +22,13 @@ export async function writeMcpConfig(tool: AITool): Promise<{ success: boolean;
22
22
  // File doesn't exist or invalid JSON — start fresh
23
23
  }
24
24
 
25
- // Check if already configured
26
- if (tool.name === 'Claude Code') {
27
- config.mcpServers = config.mcpServers || {};
28
- if (config.mcpServers['yo-bug']) {
29
- return { success: true, message: `${tool.name}: Already configured, skipped.` };
30
- }
31
- config.mcpServers['yo-bug'] = {
32
- type: 'stdio',
33
- ...MCP_SERVER_CONFIG,
34
- };
35
- } else {
36
- // Cursor / Windsurf format
37
- config.mcpServers = config.mcpServers || {};
38
- if (config.mcpServers['yo-bug']) {
39
- return { success: true, message: `${tool.name}: Already configured, skipped.` };
40
- }
41
- config.mcpServers['yo-bug'] = MCP_SERVER_CONFIG;
42
- }
25
+ config.mcpServers = config.mcpServers || {};
26
+
27
+ // Always overwrite — don't skip, in case config was wrong before
28
+ config.mcpServers['yo-bug'] = {
29
+ ...MCP_SERVER_CONFIG,
30
+ ...(tool.name === 'Claude Code' ? { type: 'stdio' } : {}),
31
+ };
43
32
 
44
33
  // Write config
45
34
  await fs.writeFile(tool.configPath, JSON.stringify(config, null, 2), 'utf-8');