fix(agents): support loadSkillsFromDir result
parent
055d839fc3
commit
137980b46e
|
|
@ -147,12 +147,17 @@ export async function installSkill(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = command.shell
|
const result = await (async () => {
|
||||||
? await runShell(command.shell, timeoutMs)
|
if (command.shell) return runShell(command.shell, timeoutMs);
|
||||||
: await runCommandWithTimeout(command.argv, {
|
const argv = command.argv;
|
||||||
timeoutMs,
|
if (!argv || argv.length === 0) {
|
||||||
cwd: command.cwd,
|
return { code: null, stdout: "", stderr: "invalid install command" };
|
||||||
});
|
}
|
||||||
|
return runCommandWithTimeout(argv, {
|
||||||
|
timeoutMs,
|
||||||
|
cwd: command.cwd,
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
const success = result.code === 0;
|
const success = result.code === 0;
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -412,6 +412,20 @@ function loadSkillEntries(
|
||||||
bundledSkillsDir?: string;
|
bundledSkillsDir?: string;
|
||||||
},
|
},
|
||||||
): SkillEntry[] {
|
): SkillEntry[] {
|
||||||
|
const loadSkills = (params: { dir: string; source: string }): Skill[] => {
|
||||||
|
const loaded = loadSkillsFromDir(params);
|
||||||
|
if (Array.isArray(loaded)) return loaded;
|
||||||
|
if (
|
||||||
|
loaded &&
|
||||||
|
typeof loaded === "object" &&
|
||||||
|
"skills" in loaded &&
|
||||||
|
Array.isArray((loaded as { skills?: unknown }).skills)
|
||||||
|
) {
|
||||||
|
return (loaded as { skills: Skill[] }).skills;
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
};
|
||||||
|
|
||||||
const managedSkillsDir =
|
const managedSkillsDir =
|
||||||
opts?.managedSkillsDir ?? path.join(CONFIG_DIR, "skills");
|
opts?.managedSkillsDir ?? path.join(CONFIG_DIR, "skills");
|
||||||
const workspaceSkillsDir = path.join(workspaceDir, "skills");
|
const workspaceSkillsDir = path.join(workspaceDir, "skills");
|
||||||
|
|
@ -422,23 +436,23 @@ function loadSkillEntries(
|
||||||
.filter(Boolean);
|
.filter(Boolean);
|
||||||
|
|
||||||
const bundledSkills = bundledSkillsDir
|
const bundledSkills = bundledSkillsDir
|
||||||
? loadSkillsFromDir({
|
? loadSkills({
|
||||||
dir: bundledSkillsDir,
|
dir: bundledSkillsDir,
|
||||||
source: "clawdis-bundled",
|
source: "clawdis-bundled",
|
||||||
})
|
})
|
||||||
: [];
|
: [];
|
||||||
const extraSkills = extraDirs.flatMap((dir) => {
|
const extraSkills = extraDirs.flatMap((dir) => {
|
||||||
const resolved = resolveUserPath(dir);
|
const resolved = resolveUserPath(dir);
|
||||||
return loadSkillsFromDir({
|
return loadSkills({
|
||||||
dir: resolved,
|
dir: resolved,
|
||||||
source: "clawdis-extra",
|
source: "clawdis-extra",
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
const managedSkills = loadSkillsFromDir({
|
const managedSkills = loadSkills({
|
||||||
dir: managedSkillsDir,
|
dir: managedSkillsDir,
|
||||||
source: "clawdis-managed",
|
source: "clawdis-managed",
|
||||||
});
|
});
|
||||||
const workspaceSkills = loadSkillsFromDir({
|
const workspaceSkills = loadSkills({
|
||||||
dir: workspaceSkillsDir,
|
dir: workspaceSkillsDir,
|
||||||
source: "clawdis-workspace",
|
source: "clawdis-workspace",
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue