Compare commits
1 Commits
cdc2f29a89
...
7e23cd6888
| Author | SHA1 | Date |
|---|---|---|
|
|
7e23cd6888 |
|
|
@ -102,13 +102,6 @@ platforms:
|
||||||
- .iflow/commands
|
- .iflow/commands
|
||||||
target_dir: .iflow/skills
|
target_dir: .iflow/skills
|
||||||
|
|
||||||
junie:
|
|
||||||
name: "Junie"
|
|
||||||
preferred: false
|
|
||||||
installer:
|
|
||||||
target_dir: .agents/skills
|
|
||||||
ancestor_conflict_check: false
|
|
||||||
|
|
||||||
kilo:
|
kilo:
|
||||||
name: "KiloCoder"
|
name: "KiloCoder"
|
||||||
preferred: false
|
preferred: false
|
||||||
|
|
|
||||||
|
|
@ -313,41 +313,10 @@ class ExternalModuleManager {
|
||||||
|
|
||||||
// The module-definition specifies the path to module.yaml relative to repo root
|
// The module-definition specifies the path to module.yaml relative to repo root
|
||||||
// We need to return the directory containing module.yaml
|
// We need to return the directory containing module.yaml
|
||||||
const moduleDefinitionPath = moduleInfo.moduleDefinition; // e.g., 'skills/module.yaml'
|
const moduleDefinitionPath = moduleInfo.moduleDefinition; // e.g., 'src/module.yaml'
|
||||||
const configuredPath = path.join(cloneDir, moduleDefinitionPath);
|
const moduleDir = path.dirname(path.join(cloneDir, moduleDefinitionPath));
|
||||||
|
|
||||||
if (await fs.pathExists(configuredPath)) {
|
return moduleDir;
|
||||||
return path.dirname(configuredPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fallback: search skills/ and src/ (root level and one level deep for subfolders)
|
|
||||||
for (const dir of ['skills', 'src']) {
|
|
||||||
const rootCandidate = path.join(cloneDir, dir, 'module.yaml');
|
|
||||||
if (await fs.pathExists(rootCandidate)) {
|
|
||||||
return path.dirname(rootCandidate);
|
|
||||||
}
|
|
||||||
const dirPath = path.join(cloneDir, dir);
|
|
||||||
if (await fs.pathExists(dirPath)) {
|
|
||||||
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
||||||
for (const entry of entries) {
|
|
||||||
if (entry.isDirectory()) {
|
|
||||||
const subCandidate = path.join(dirPath, entry.name, 'module.yaml');
|
|
||||||
if (await fs.pathExists(subCandidate)) {
|
|
||||||
return path.dirname(subCandidate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check repo root as last fallback
|
|
||||||
const rootCandidate = path.join(cloneDir, 'module.yaml');
|
|
||||||
if (await fs.pathExists(rootCandidate)) {
|
|
||||||
return path.dirname(rootCandidate);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Nothing found: return configured path (preserves old behavior for error messaging)
|
|
||||||
return path.dirname(configuredPath);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -127,12 +127,6 @@ platforms:
|
||||||
category: ide
|
category: ide
|
||||||
description: "AI-powered IDE with cascade flows"
|
description: "AI-powered IDE with cascade flows"
|
||||||
|
|
||||||
junie:
|
|
||||||
name: "Junie"
|
|
||||||
preferred: false
|
|
||||||
category: cli
|
|
||||||
description: "AI coding agent by JetBrains"
|
|
||||||
|
|
||||||
ona:
|
ona:
|
||||||
name: "Ona"
|
name: "Ona"
|
||||||
preferred: false
|
preferred: false
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue