* fix(db): remove unique constraint on folder to support multi-channel agents * ci: implement automated skill drift detection and self-healing PRs * fix: align registration logic with Gavriel's feedback and fix build/test issues from Daniel Mi * style: conform to prettier standards for CI validation * test: fix branch naming inconsistency in CI (master vs main) * fix(ci): robust module resolution by removing file extensions in scripts * refactor(ci): simplify skill validation by removing redundant combination tests * style: conform skills-engine to prettier, unify logging in index.ts and cleanup unused imports * refactor: extract multi-channel DB changes to separate branch Move channel column, folder suffix logic, and related migrations to feat/multi-channel-db-v2 for independent review. This PR now contains only CI/CD optimizations, Prettier formatting, and logging improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
#!/usr/bin/env npx tsx
|
|
import { uninstallSkill } from '../skills-engine/uninstall.js';
|
|
|
|
async function main() {
|
|
const skillName = process.argv[2];
|
|
if (!skillName) {
|
|
console.error('Usage: npx tsx scripts/uninstall-skill.ts <skill-name>');
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(`Uninstalling skill: ${skillName}`);
|
|
const result = await uninstallSkill(skillName);
|
|
|
|
if (result.customPatchWarning) {
|
|
console.warn(`\nWarning: ${result.customPatchWarning}`);
|
|
console.warn(
|
|
'To proceed, remove the custom_patch from state.yaml and re-run.',
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
if (!result.success) {
|
|
console.error(`\nFailed: ${result.error}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(`\nSuccessfully uninstalled: ${skillName}`);
|
|
if (result.replayResults) {
|
|
console.log('Replay test results:');
|
|
for (const [name, passed] of Object.entries(result.replayResults)) {
|
|
console.log(` ${name}: ${passed ? 'PASS' : 'FAIL'}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error(err);
|
|
process.exit(1);
|
|
});
|