feat: sync global ~/.claude/commands/ into agent sessions
This commit is contained in:
@@ -80,20 +80,34 @@ function prepareGroupEnvironment(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sync skills into each group's .claude/skills/
|
// Sync skills and commands into each group's .claude/ session dir
|
||||||
// Sources: 1) user's global ~/.claude/skills/ 2) container/skills/ (nanoclaw bundled)
|
// Sources: 1) user's global ~/.claude/ 2) container/skills/ (nanoclaw bundled)
|
||||||
const skillsDst = path.join(groupSessionsDir, 'skills');
|
const syncDirs = [
|
||||||
const skillSources = [
|
{
|
||||||
path.join(os.homedir(), '.claude', 'skills'),
|
dst: path.join(groupSessionsDir, 'skills'),
|
||||||
path.join(projectRoot, 'container', 'skills'),
|
sources: [
|
||||||
|
path.join(os.homedir(), '.claude', 'skills'),
|
||||||
|
path.join(projectRoot, 'container', 'skills'),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dst: path.join(groupSessionsDir, 'commands'),
|
||||||
|
sources: [path.join(os.homedir(), '.claude', 'commands')],
|
||||||
|
},
|
||||||
];
|
];
|
||||||
for (const skillsSrc of skillSources) {
|
for (const { dst, sources } of syncDirs) {
|
||||||
if (!fs.existsSync(skillsSrc)) continue;
|
for (const src of sources) {
|
||||||
for (const skillDir of fs.readdirSync(skillsSrc)) {
|
if (!fs.existsSync(src)) continue;
|
||||||
const srcDir = path.join(skillsSrc, skillDir);
|
for (const entry of fs.readdirSync(src)) {
|
||||||
if (!fs.statSync(srcDir).isDirectory()) continue;
|
const srcPath = path.join(src, entry);
|
||||||
const dstDir = path.join(skillsDst, skillDir);
|
const dstPath = path.join(dst, entry);
|
||||||
fs.cpSync(srcDir, dstDir, { recursive: true });
|
if (fs.statSync(srcPath).isDirectory()) {
|
||||||
|
fs.cpSync(srcPath, dstPath, { recursive: true });
|
||||||
|
} else {
|
||||||
|
fs.mkdirSync(dst, { recursive: true });
|
||||||
|
fs.copyFileSync(srcPath, dstPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user