@axiomatic-labs/claudeflow 2.33.8 → 2.34.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.
- package/lib/install.js +13 -2
- package/package.json +1 -1
package/lib/install.js
CHANGED
|
@@ -16,7 +16,7 @@ const ui = require('./ui.js');
|
|
|
16
16
|
const CLAUDE_MARK = '<!-- claudeflow:begin -->';
|
|
17
17
|
const HOOK_TAG = 'scripts/claudeflow/hook_'; // identifies OUR hook entries in settings.json
|
|
18
18
|
const PER_PROJECT_CONFIGS = ['brand.json', 'risk-signals.json']; // create-if-absent, never clobber
|
|
19
|
-
const SHARED_CONFIGS = ['playbook-map.json'];
|
|
19
|
+
const SHARED_CONFIGS = ['playbook-map.json', 'agent-map.json']; // always refreshed (shared system)
|
|
20
20
|
|
|
21
21
|
function rmrf(p) { fs.rmSync(p, { recursive: true, force: true }); }
|
|
22
22
|
|
|
@@ -73,7 +73,7 @@ function appendClaudeMd(cwd, snippetPath) {
|
|
|
73
73
|
// Place + merge the framework from an extracted payload dir into a project. Pure filesystem, no network —
|
|
74
74
|
// so it is testable on a throwaway dir.
|
|
75
75
|
function installFromPayload(src, cwd) {
|
|
76
|
-
const out = { playbooks: 0, scripts: 0, skills: 0, claudeMd: false };
|
|
76
|
+
const out = { playbooks: 0, scripts: 0, skills: 0, agents: 0, claudeMd: false };
|
|
77
77
|
|
|
78
78
|
// 1) Playbooks — always refreshed (shared system).
|
|
79
79
|
const srcPlaybooks = path.join(src, '.claudeflow', 'playbooks');
|
|
@@ -114,6 +114,17 @@ function installFromPayload(src, cwd) {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
// 4b) Agents — replace each shipped claudeflow-* agent; preserve the user's own agents.
|
|
118
|
+
const srcAgents = path.join(src, '.claude', 'agents');
|
|
119
|
+
if (fs.existsSync(srcAgents)) {
|
|
120
|
+
const dst = path.join(cwd, '.claude', 'agents');
|
|
121
|
+
fs.mkdirSync(dst, { recursive: true });
|
|
122
|
+
for (const e of fs.readdirSync(srcAgents, { withFileTypes: true })) {
|
|
123
|
+
if (!e.isFile() || !e.name.startsWith('claudeflow-') || !e.name.endsWith('.md')) continue;
|
|
124
|
+
fs.copyFileSync(path.join(srcAgents, e.name), path.join(dst, e.name)); out.agents++;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
117
128
|
// 5) settings.json hooks — MERGE (never clobber the user's settings).
|
|
118
129
|
const srcSettings = path.join(src, '.claude', 'settings.json');
|
|
119
130
|
if (fs.existsSync(srcSettings)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiomatic-labs/claudeflow",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.34.0",
|
|
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"
|