skiller 0.7.23 → 0.8.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/README.md +1 -1
- package/dist/agents/CodexCliAgent.js +1 -1
- package/dist/core/SkillsProcessor.js +42 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ npx skiller@latest apply
|
|
|
37
37
|
| `agentsmd` | AgentsMd (pseudo) | `AGENTS.md` | - | - |
|
|
38
38
|
| `copilot` | GitHub Copilot | `AGENTS.md` | `.vscode/mcp.json` (`servers`) | `.claude/skills` |
|
|
39
39
|
| `claude` | Claude Code | `CLAUDE.md` (`@file` refs) | `.mcp.json` | `.claude/skills` |
|
|
40
|
-
| `codex` | OpenAI Codex CLI | `AGENTS.md`, `.codex/config.toml` | `.codex/config.toml` | `.
|
|
40
|
+
| `codex` | OpenAI Codex CLI | `AGENTS.md`, `.codex/config.toml` | `.codex/config.toml` | `.agents/skills` |
|
|
41
41
|
| `cursor` | Cursor | `AGENTS.md` | `.cursor/mcp.json` | `.cursor/skills` |
|
|
42
42
|
| `windsurf` | Windsurf | `AGENTS.md` | `.windsurf/mcp_config.json` | - |
|
|
43
43
|
| `cline` | Cline | `.clinerules` | - | - |
|
|
@@ -49,6 +49,8 @@ const yaml = __importStar(require("js-yaml"));
|
|
|
49
49
|
const constants_1 = require("../constants");
|
|
50
50
|
const SkillsUtils_1 = require("./SkillsUtils");
|
|
51
51
|
const FrontmatterParser_1 = require("./FrontmatterParser");
|
|
52
|
+
const LEGACY_CODEX_SKILLS_PATH = path.join('.codex', 'skills');
|
|
53
|
+
const UNIVERSAL_AGENTS_SKILLS_PATH = path.join('.agents', 'skills');
|
|
52
54
|
/**
|
|
53
55
|
* For non-Claude agents, compile a wrapper SKILL.md (body is a single @reference)
|
|
54
56
|
* into a standalone SKILL.md with the referenced file's body inlined.
|
|
@@ -570,6 +572,45 @@ function getSkillsGitignorePaths(projectRoot, agents) {
|
|
|
570
572
|
* This function now only discovers and validates skills.
|
|
571
573
|
*/
|
|
572
574
|
async function propagateSkills(projectRoot, agents, skillsEnabled, verbose, dryRun, skillerDir) {
|
|
575
|
+
async function migrateLegacyCodexSkillsDir(destinationPaths) {
|
|
576
|
+
const universalSkillsDir = path.join(projectRoot, UNIVERSAL_AGENTS_SKILLS_PATH);
|
|
577
|
+
const legacyCodexSkillsDir = path.join(projectRoot, LEGACY_CODEX_SKILLS_PATH);
|
|
578
|
+
if (!destinationPaths.has(universalSkillsDir))
|
|
579
|
+
return;
|
|
580
|
+
try {
|
|
581
|
+
await fs.access(legacyCodexSkillsDir);
|
|
582
|
+
}
|
|
583
|
+
catch {
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
(0, constants_1.logVerboseInfo)(dryRun
|
|
587
|
+
? `DRY RUN: Would migrate legacy Codex skills from ${legacyCodexSkillsDir} to ${universalSkillsDir}`
|
|
588
|
+
: `Migrating legacy Codex skills from ${legacyCodexSkillsDir} to ${universalSkillsDir}`, verbose, dryRun);
|
|
589
|
+
if (dryRun)
|
|
590
|
+
return;
|
|
591
|
+
await fs.mkdir(path.dirname(universalSkillsDir), { recursive: true });
|
|
592
|
+
try {
|
|
593
|
+
await fs.access(universalSkillsDir);
|
|
594
|
+
const entries = await fs.readdir(legacyCodexSkillsDir, {
|
|
595
|
+
withFileTypes: true,
|
|
596
|
+
});
|
|
597
|
+
for (const entry of entries) {
|
|
598
|
+
const sourcePath = path.join(legacyCodexSkillsDir, entry.name);
|
|
599
|
+
const targetPath = path.join(universalSkillsDir, entry.name);
|
|
600
|
+
try {
|
|
601
|
+
await fs.access(targetPath);
|
|
602
|
+
await fs.rm(sourcePath, { recursive: true, force: true });
|
|
603
|
+
}
|
|
604
|
+
catch {
|
|
605
|
+
await fs.rename(sourcePath, targetPath);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
await fs.rmdir(legacyCodexSkillsDir).catch(() => undefined);
|
|
609
|
+
}
|
|
610
|
+
catch {
|
|
611
|
+
await fs.rename(legacyCodexSkillsDir, universalSkillsDir);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
573
614
|
if (!skillsEnabled) {
|
|
574
615
|
(0, constants_1.logVerboseInfo)('Skills support disabled', verbose, dryRun);
|
|
575
616
|
return;
|
|
@@ -589,6 +630,7 @@ async function propagateSkills(projectRoot, agents, skillsEnabled, verbose, dryR
|
|
|
589
630
|
}
|
|
590
631
|
}
|
|
591
632
|
}
|
|
633
|
+
await migrateLegacyCodexSkillsDir(destinationPaths);
|
|
592
634
|
// Check if skills directory exists
|
|
593
635
|
let skillsDirExists = true;
|
|
594
636
|
try {
|