automatasaurus 0.1.10 → 0.1.12

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "automatasaurus",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Automated software development workflow powered by Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3,7 +3,7 @@ import { join } from 'node:path';
3
3
  import { getTemplateDir, getProjectPaths, getVersion, SUBDIR_SYMLINK_DIRS, FILE_SYMLINK_DIRS } from '../lib/paths.js';
4
4
  import { symlinkDirectory, symlinkSubdirectories } from '../lib/symlinks.js';
5
5
  import { mergeBlockIntoFile } from '../lib/block-merge.js';
6
- import { mergeLayeredSettings, createLocalSettingsTemplate } from '../lib/json-merge.js';
6
+ import { mergeLayeredSettings, createLocalSettingsTemplate, mergeJsonFile } from '../lib/json-merge.js';
7
7
  import { readManifest, writeManifest, createManifest, updateManifest } from '../lib/manifest.js';
8
8
 
9
9
  export async function init({ force = false } = {}) {
@@ -114,7 +114,20 @@ export async function init({ force = false } = {}) {
114
114
  console.log(' No settings template found, skipping');
115
115
  }
116
116
 
117
- // 6. Block-merge commands.md
117
+ // 6. Merge MCP config
118
+ console.log('\nMerging MCP config...');
119
+ const mcpTemplate = join(templateDir, 'mcp.json');
120
+ try {
121
+ const mcpContent = await readFile(mcpTemplate, 'utf-8');
122
+ const frameworkMcp = JSON.parse(mcpContent);
123
+ const result = await mergeJsonFile(paths.mcp, frameworkMcp);
124
+ console.log(` ${result.created ? 'Created' : 'Updated'} .mcp.json`);
125
+ } catch (error) {
126
+ if (error.code !== 'ENOENT') throw error;
127
+ console.log(' No MCP template found, skipping');
128
+ }
129
+
130
+ // 7. Block-merge commands.md
118
131
  console.log('\nMerging commands.md...');
119
132
  const commandsTemplate = join(templateDir, 'commands.block.md');
120
133
  try {
@@ -126,7 +139,7 @@ export async function init({ force = false } = {}) {
126
139
  console.log(' No commands.md template found, skipping');
127
140
  }
128
141
 
129
- // 7. Write manifest
142
+ // 8. Write manifest
130
143
  const manifest = createManifest(version);
131
144
  manifest.symlinks = allSymlinks;
132
145
  manifest.merged_blocks = [
@@ -3,7 +3,7 @@ import { join } from 'node:path';
3
3
  import { getTemplateDir, getProjectPaths, getVersion, SUBDIR_SYMLINK_DIRS, FILE_SYMLINK_DIRS } from '../lib/paths.js';
4
4
  import { symlinkDirectory, symlinkSubdirectories } from '../lib/symlinks.js';
5
5
  import { mergeBlockIntoFile } from '../lib/block-merge.js';
6
- import { mergeLayeredSettings, createLocalSettingsTemplate } from '../lib/json-merge.js';
6
+ import { mergeLayeredSettings, createLocalSettingsTemplate, mergeJsonFile } from '../lib/json-merge.js';
7
7
  import { readManifest, writeManifest, updateManifest } from '../lib/manifest.js';
8
8
  import { getDeprecatedPaths } from '../lib/migrations.js';
9
9
 
@@ -157,6 +157,17 @@ export async function update({ force = false } = {}) {
157
157
  if (error.code !== 'ENOENT') throw error;
158
158
  }
159
159
 
160
+ // .mcp.json
161
+ const mcpTemplate = join(templateDir, 'mcp.json');
162
+ try {
163
+ const mcpContent = await readFile(mcpTemplate, 'utf-8');
164
+ const frameworkMcp = JSON.parse(mcpContent);
165
+ await mergeJsonFile(paths.mcp, frameworkMcp);
166
+ console.log(' Updated .mcp.json');
167
+ } catch (error) {
168
+ if (error.code !== 'ENOENT') throw error;
169
+ }
170
+
160
171
  // 5. Update manifest
161
172
  const updatedManifest = updateManifest(manifest, {
162
173
  version,
package/src/lib/paths.js CHANGED
@@ -39,6 +39,7 @@ export function getProjectPaths(projectRoot) {
39
39
  settings: join(projectRoot, '.claude', 'settings.json'),
40
40
  settingsLocal: join(projectRoot, '.claude', 'settings.local.json'),
41
41
  commands: join(projectRoot, '.claude', 'commands.md'),
42
+ mcp: join(projectRoot, '.mcp.json'),
42
43
  };
43
44
  }
44
45
 
@@ -0,0 +1,9 @@
1
+ {
2
+ "mcpServers": {
3
+ "playwright": {
4
+ "command": "npx",
5
+ "args": ["@playwright/mcp@latest"],
6
+ "description": "Browser automation for E2E testing and visual verification"
7
+ }
8
+ }
9
+ }
@@ -14,7 +14,8 @@
14
14
  "Read",
15
15
  "Edit(./**)",
16
16
  "Write(./**)",
17
- "WebSearch"
17
+ "WebSearch",
18
+ "mcp__playwright__*"
18
19
  ],
19
20
  "deny": [
20
21
  "Read(./.env)",