@axiomatic-labs/claudeflow 2.10.254 → 2.10.256
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/lib/install.js +25 -13
- package/package.json +1 -1
package/lib/install.js
CHANGED
|
@@ -77,22 +77,34 @@ async function run() {
|
|
|
77
77
|
fs.copyFileSync(srcSettings, dstSettings);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
//
|
|
80
|
+
// Upsert playwright entry in .mcp.json with project-specific CDP port.
|
|
81
|
+
// IMPORTANT: read existing .mcp.json first and merge — never overwrite
|
|
82
|
+
// wholesale. Users may have custom MCP servers (claude-in-chrome, Linear,
|
|
83
|
+
// GitHub, etc) that must be preserved across install/update runs. Only
|
|
84
|
+
// the three template-managed entries (playwright, serena, context7) are
|
|
85
|
+
// allowed to be mutated by the installer.
|
|
81
86
|
const cdpHash = require('crypto').createHash('sha1').update(cwd).digest();
|
|
82
87
|
const cdpPort = 9200 + (cdpHash.readUInt16BE(2) % 100);
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
const mcpPath = path.join(cwd, '.mcp.json');
|
|
89
|
+
let mcpConfig = { mcpServers: {} };
|
|
90
|
+
try {
|
|
91
|
+
const existing = fs.readFileSync(mcpPath, 'utf8');
|
|
92
|
+
mcpConfig = JSON.parse(existing);
|
|
93
|
+
if (!mcpConfig.mcpServers || typeof mcpConfig.mcpServers !== 'object') {
|
|
94
|
+
mcpConfig.mcpServers = {};
|
|
95
|
+
}
|
|
96
|
+
} catch {
|
|
97
|
+
// File doesn't exist or is invalid JSON — start fresh with empty servers
|
|
98
|
+
}
|
|
99
|
+
mcpConfig.mcpServers.playwright = {
|
|
100
|
+
command: "npx",
|
|
101
|
+
args: [
|
|
102
|
+
"@playwright/mcp@latest",
|
|
103
|
+
"--cdp-endpoint", `http://localhost:${cdpPort}`,
|
|
104
|
+
"--caps", "vision,devtools",
|
|
105
|
+
],
|
|
94
106
|
};
|
|
95
|
-
fs.writeFileSync(
|
|
107
|
+
fs.writeFileSync(mcpPath, JSON.stringify(mcpConfig, null, 2) + '\n');
|
|
96
108
|
|
|
97
109
|
// Copy all template-managed skills from the ZIP, including subskills.
|
|
98
110
|
const srcSkills = path.join(srcClaude, 'skills');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiomatic-labs/claudeflow",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.256",
|
|
4
4
|
"description": "Claudeflow — AI-powered development toolkit for Claude Code. Skills, agents, hooks, and quality gates that ship production apps.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"claudeflow": "./bin/cli.js"
|