overskill 1.0.3 → 2.0.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.
Files changed (98) hide show
  1. package/README.md +13 -2
  2. package/dist/commands/add.d.ts.map +1 -1
  3. package/dist/commands/add.js +8 -35
  4. package/dist/commands/add.js.map +1 -1
  5. package/dist/commands/bundle.d.ts.map +1 -1
  6. package/dist/commands/bundle.js +1 -6
  7. package/dist/commands/bundle.js.map +1 -1
  8. package/dist/commands/delete.d.ts +1 -1
  9. package/dist/commands/delete.d.ts.map +1 -1
  10. package/dist/commands/delete.js +19 -19
  11. package/dist/commands/delete.js.map +1 -1
  12. package/dist/commands/edit.js +5 -5
  13. package/dist/commands/edit.js.map +1 -1
  14. package/dist/commands/feedback.d.ts +3 -0
  15. package/dist/commands/feedback.d.ts.map +1 -0
  16. package/dist/commands/feedback.js +40 -0
  17. package/dist/commands/feedback.js.map +1 -0
  18. package/dist/commands/import.d.ts.map +1 -1
  19. package/dist/commands/import.js +5 -19
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/info.d.ts.map +1 -1
  22. package/dist/commands/info.js +10 -39
  23. package/dist/commands/info.js.map +1 -1
  24. package/dist/commands/list.d.ts.map +1 -1
  25. package/dist/commands/list.js +14 -20
  26. package/dist/commands/list.js.map +1 -1
  27. package/dist/commands/new.d.ts.map +1 -1
  28. package/dist/commands/new.js +81 -116
  29. package/dist/commands/new.js.map +1 -1
  30. package/dist/commands/open.d.ts +3 -0
  31. package/dist/commands/open.d.ts.map +1 -0
  32. package/dist/commands/open.js +75 -0
  33. package/dist/commands/open.js.map +1 -0
  34. package/dist/commands/publish.d.ts +1 -1
  35. package/dist/commands/publish.d.ts.map +1 -1
  36. package/dist/commands/publish.js +48 -105
  37. package/dist/commands/publish.js.map +1 -1
  38. package/dist/commands/push.d.ts.map +1 -1
  39. package/dist/commands/push.js +1 -13
  40. package/dist/commands/push.js.map +1 -1
  41. package/dist/commands/rename.d.ts +3 -0
  42. package/dist/commands/rename.d.ts.map +1 -0
  43. package/dist/commands/rename.js +177 -0
  44. package/dist/commands/rename.js.map +1 -0
  45. package/dist/commands/save.d.ts +3 -0
  46. package/dist/commands/save.d.ts.map +1 -0
  47. package/dist/commands/save.js +112 -0
  48. package/dist/commands/save.js.map +1 -0
  49. package/dist/commands/search.js +1 -1
  50. package/dist/commands/search.js.map +1 -1
  51. package/dist/commands/sync.d.ts +1 -1
  52. package/dist/commands/sync.d.ts.map +1 -1
  53. package/dist/commands/sync.js +29 -63
  54. package/dist/commands/sync.js.map +1 -1
  55. package/dist/commands/update.d.ts.map +1 -1
  56. package/dist/commands/update.js +80 -98
  57. package/dist/commands/update.js.map +1 -1
  58. package/dist/commands/upgrade.d.ts +3 -0
  59. package/dist/commands/upgrade.d.ts.map +1 -0
  60. package/dist/commands/upgrade.js +98 -0
  61. package/dist/commands/upgrade.js.map +1 -0
  62. package/dist/commands/validate.d.ts.map +1 -1
  63. package/dist/commands/validate.js +2 -8
  64. package/dist/commands/validate.js.map +1 -1
  65. package/dist/index.js +38 -25
  66. package/dist/index.js.map +1 -1
  67. package/dist/lib/index-gen.d.ts.map +1 -1
  68. package/dist/lib/index-gen.js +0 -2
  69. package/dist/lib/index-gen.js.map +1 -1
  70. package/dist/lib/local-registry/index.d.ts +3 -5
  71. package/dist/lib/local-registry/index.d.ts.map +1 -1
  72. package/dist/lib/local-registry/index.js +2 -5
  73. package/dist/lib/local-registry/index.js.map +1 -1
  74. package/dist/lib/local-registry/paths.d.ts +2 -2
  75. package/dist/lib/local-registry/paths.d.ts.map +1 -1
  76. package/dist/lib/local-registry/paths.js +4 -4
  77. package/dist/lib/local-registry/paths.js.map +1 -1
  78. package/dist/lib/local-registry/skills.d.ts +10 -29
  79. package/dist/lib/local-registry/skills.d.ts.map +1 -1
  80. package/dist/lib/local-registry/skills.js +57 -83
  81. package/dist/lib/local-registry/skills.js.map +1 -1
  82. package/dist/lib/local-registry/types.d.ts +6 -38
  83. package/dist/lib/local-registry/types.d.ts.map +1 -1
  84. package/dist/lib/local-registry/versions.d.ts +6 -57
  85. package/dist/lib/local-registry/versions.d.ts.map +1 -1
  86. package/dist/lib/local-registry/versions.js +6 -159
  87. package/dist/lib/local-registry/versions.js.map +1 -1
  88. package/dist/lib/lockfile.d.ts +2 -2
  89. package/dist/lib/lockfile.d.ts.map +1 -1
  90. package/dist/lib/lockfile.js +5 -10
  91. package/dist/lib/lockfile.js.map +1 -1
  92. package/dist/lib/meta-skill.d.ts +1 -1
  93. package/dist/lib/meta-skill.d.ts.map +1 -1
  94. package/dist/lib/meta-skill.js +19 -15
  95. package/dist/lib/meta-skill.js.map +1 -1
  96. package/dist/types.d.ts +0 -7
  97. package/dist/types.d.ts.map +1 -1
  98. package/package.json +1 -1
@@ -0,0 +1,75 @@
1
+ import { Command } from 'commander';
2
+ import { spawn } from 'child_process';
3
+ import chalk from 'chalk';
4
+ import * as localRegistry from '../lib/local-registry/index.js';
5
+ import * as auth from '../lib/auth.js';
6
+ import { parseEditorCommand } from '../lib/editor.js';
7
+ export const openCommand = new Command('open')
8
+ .description('Open a skill in your editor (works globally, no project required)')
9
+ .argument('<slug>', 'Skill slug to open')
10
+ .option('-e, --editor <editor>', 'Editor to use')
11
+ .action(async (slug, options) => {
12
+ try {
13
+ // Check if skill exists in local registry
14
+ if (!localRegistry.skillExists(slug)) {
15
+ console.log(chalk.red(`Error: Skill '${slug}' not found in local registry.`));
16
+ console.log('');
17
+ console.log('Available skills:');
18
+ const skills = localRegistry.listSkills();
19
+ if (skills.length === 0) {
20
+ console.log(chalk.yellow(' No skills in local registry.'));
21
+ console.log(` Run ${chalk.cyan('skill new <slug>')} to create one.`);
22
+ }
23
+ else {
24
+ for (const skill of skills.slice(0, 10)) {
25
+ console.log(` ${chalk.cyan(skill.slug)}`);
26
+ }
27
+ if (skills.length > 10) {
28
+ console.log(chalk.gray(` ... and ${skills.length - 10} more`));
29
+ }
30
+ }
31
+ process.exit(1);
32
+ }
33
+ // Ensure the SKILL.md working copy exists in the registry
34
+ const skillData = localRegistry.getSkill(slug);
35
+ if (!skillData) {
36
+ console.log(chalk.red(`Error: Could not read skill '${slug}' from registry.`));
37
+ process.exit(1);
38
+ }
39
+ // The getSkill call ensures SKILL.md exists via putSkill/migration,
40
+ // but let's also ensure it's written at the registry path
41
+ const skillFilePath = localRegistry.getSkillFilePath(slug);
42
+ // Determine editor
43
+ const editor = options.editor || auth.getEditor();
44
+ console.log(`Opening ${chalk.cyan(skillFilePath)} in ${editor}...`);
45
+ // Open editor
46
+ let command;
47
+ let args;
48
+ try {
49
+ const parsed = parseEditorCommand(editor);
50
+ command = parsed.command;
51
+ args = parsed.args;
52
+ }
53
+ catch (error) {
54
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);
55
+ console.log(`Try setting a different editor with ${chalk.cyan('skill config editor <name>')}`);
56
+ process.exit(1);
57
+ }
58
+ const child = spawn(command, [...args, skillFilePath], {
59
+ stdio: 'ignore',
60
+ detached: true,
61
+ });
62
+ // Detach so the CLI doesn't wait for the editor to close
63
+ child.unref();
64
+ child.on('error', (err) => {
65
+ console.error(chalk.red(`Error opening editor: ${err.message}`));
66
+ console.log(`Try setting a different editor with ${chalk.cyan('skill config editor <name>')}`);
67
+ process.exit(1);
68
+ });
69
+ }
70
+ catch (error) {
71
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);
72
+ process.exit(1);
73
+ }
74
+ });
75
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { Command } from 'commander';
1
+ import { Command } from "commander";
2
2
  export declare const publishCommand: Command;
3
3
  //# sourceMappingURL=publish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6EpC,eAAO,MAAM,cAAc,SA6JvB,CAAC"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmFpC,eAAO,MAAM,cAAc,SAoHvB,CAAC"}
@@ -1,15 +1,14 @@
1
- import { Command } from 'commander';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
- import * as os from 'os';
5
- import { spawn } from 'child_process';
6
- import chalk from 'chalk';
7
- import ora from 'ora';
8
- import * as localRegistry from '../lib/local-registry/index.js';
9
- import * as auth from '../lib/auth.js';
10
- import { isValidVersion, bumpVersion, isGreaterThan } from '../lib/semver.js';
11
- import * as readline from 'readline';
12
- import { parseEditorCommand } from '../lib/editor.js';
1
+ import { Command } from "commander";
2
+ import * as fs from "fs";
3
+ import * as os from "os";
4
+ import * as path from "path";
5
+ import { spawn } from "child_process";
6
+ import chalk from "chalk";
7
+ import ora from "ora";
8
+ import * as localRegistry from "../lib/local-registry/index.js";
9
+ import * as auth from "../lib/auth.js";
10
+ import * as readline from "readline";
11
+ import { parseEditorCommand } from "../lib/editor.js";
13
12
  /**
14
13
  * Prompt user for input
15
14
  */
@@ -19,10 +18,10 @@ async function prompt(question, defaultValue) {
19
18
  output: process.stdout,
20
19
  });
21
20
  return new Promise((resolve) => {
22
- const displayDefault = defaultValue ? ` [${defaultValue}]` : '';
21
+ const displayDefault = defaultValue ? ` [${defaultValue}]` : "";
23
22
  rl.question(`${question}${displayDefault}: `, (answer) => {
24
23
  rl.close();
25
- resolve(answer.trim() || defaultValue || '');
24
+ resolve(answer.trim() || defaultValue || "");
26
25
  });
27
26
  });
28
27
  }
@@ -33,7 +32,7 @@ async function openInEditor(content) {
33
32
  const editor = auth.getEditor();
34
33
  const tempFile = path.join(os.tmpdir(), `skill-${Date.now()}.md`);
35
34
  // Write initial content to temp file
36
- fs.writeFileSync(tempFile, content, 'utf-8');
35
+ fs.writeFileSync(tempFile, content, "utf-8");
37
36
  return new Promise((resolve, reject) => {
38
37
  let command;
39
38
  let args;
@@ -47,40 +46,35 @@ async function openInEditor(content) {
47
46
  reject(error);
48
47
  return;
49
48
  }
50
- const child = spawn(command, [...args, tempFile], { stdio: 'inherit' });
51
- child.on('error', (err) => {
49
+ const child = spawn(command, [...args, tempFile], { stdio: "inherit" });
50
+ child.on("error", (err) => {
52
51
  fs.unlinkSync(tempFile);
53
- reject(new Error(`Failed to open editor: ${err.message}`));
52
+ reject(new Error(`Failed to open editor. Ensure your editor is properly configured by running ${chalk.cyan("skill config show")} to view your current configuration and ${chalk.cyan("skill config editor <name>")} to set your preferred editor. Error message: ${err.message}`));
54
53
  });
55
- child.on('exit', (code) => {
54
+ child.on("exit", (code) => {
56
55
  if (code !== 0) {
57
56
  fs.unlinkSync(tempFile);
58
57
  reject(new Error(`Editor exited with code ${code}`));
59
58
  return;
60
59
  }
61
60
  // Read the edited content
62
- const editedContent = fs.readFileSync(tempFile, 'utf-8');
61
+ const editedContent = fs.readFileSync(tempFile, "utf-8");
63
62
  fs.unlinkSync(tempFile);
64
63
  resolve(editedContent);
65
64
  });
66
65
  });
67
66
  }
68
- export const publishCommand = new Command('publish')
69
- .description('Publish a new version of an existing skill to the local registry')
70
- .argument('<slug>', 'Skill slug')
71
- .option('-v, --version <version>', 'New version (must be higher than current)')
72
- .option('--patch', 'Bump patch version (1.0.0 -> 1.0.1)')
73
- .option('--minor', 'Bump minor version (1.0.0 -> 1.1.0)')
74
- .option('--major', 'Bump major version (1.0.0 -> 2.0.0)')
75
- .option('-m, --message <message>', 'Changelog message for this version')
76
- .option('--content <file>', 'Read new content from file')
77
- .option('--no-editor', 'Skip editor (use current content)')
67
+ export const publishCommand = new Command("publish")
68
+ .description("Update a skill's content in the local registry")
69
+ .argument("<slug>", "Skill slug")
70
+ .option("--content <file>", "Read new content from file")
71
+ .option("--no-editor", "Skip editor (use current content)")
78
72
  .action(async (slug, options) => {
79
73
  try {
80
74
  // Check if skill exists
81
75
  if (!localRegistry.skillExists(slug)) {
82
76
  console.log(chalk.red(`Error: Skill '${slug}' not found in local registry.`));
83
- console.log(`Use ${chalk.cyan(`skills new ${slug}`)} to create it first.`);
77
+ console.log(`Use ${chalk.cyan(`skill new ${slug}`)} to create it first.`);
84
78
  process.exit(1);
85
79
  }
86
80
  // Get current skill info
@@ -89,61 +83,20 @@ export const publishCommand = new Command('publish')
89
83
  console.log(chalk.red(`Error: Could not read skill '${slug}'.`));
90
84
  process.exit(1);
91
85
  }
92
- const currentVersion = localRegistry.getLatestVersion(slug);
93
- if (!currentVersion) {
94
- console.log(chalk.red(`Error: Skill '${slug}' has no versions.`));
95
- process.exit(1);
96
- }
97
- console.log(`Current version: ${chalk.cyan(currentVersion)}`);
98
- // Determine new version
99
- let newVersion;
100
- if (options.version) {
101
- newVersion = options.version;
102
- }
103
- else if (options.patch) {
104
- newVersion = bumpVersion(currentVersion, 'patch') || '';
105
- }
106
- else if (options.minor) {
107
- newVersion = bumpVersion(currentVersion, 'minor') || '';
108
- }
109
- else if (options.major) {
110
- newVersion = bumpVersion(currentVersion, 'major') || '';
111
- }
112
- else {
113
- // Prompt for version
114
- const suggestedVersion = bumpVersion(currentVersion, 'patch') || '';
115
- newVersion = await prompt('New version', suggestedVersion);
116
- }
117
- // Validate new version
118
- if (!isValidVersion(newVersion)) {
119
- console.log(chalk.red(`Error: Invalid version '${newVersion}'. Use semver format (e.g., 1.0.1).`));
120
- process.exit(1);
121
- }
122
- // Check version is higher
123
- if (!isGreaterThan(newVersion, currentVersion)) {
124
- console.log(chalk.red(`Error: New version '${newVersion}' must be higher than current '${currentVersion}'.`));
125
- process.exit(1);
126
- }
127
- // Check if version already exists
128
- if (localRegistry.versionExists(slug, newVersion)) {
129
- console.log(chalk.red(`Error: Version '${newVersion}' already exists.`));
130
- process.exit(1);
131
- }
132
- // Get content
133
- let content;
134
- // Get current content
135
- const currentSkill = localRegistry.getLatest(slug);
86
+ const currentSkill = localRegistry.getSkill(slug);
136
87
  if (!currentSkill) {
137
88
  console.log(chalk.red(`Error: Could not read current content for '${slug}'.`));
138
89
  process.exit(1);
139
90
  }
91
+ // Get content
92
+ let content;
140
93
  if (options.content) {
141
94
  // Read from file
142
95
  if (!fs.existsSync(options.content)) {
143
96
  console.log(chalk.red(`Error: File not found: ${options.content}`));
144
97
  process.exit(1);
145
98
  }
146
- content = fs.readFileSync(options.content, 'utf-8');
99
+ content = fs.readFileSync(options.content, "utf-8");
147
100
  }
148
101
  else if (options.editor === false) {
149
102
  // Use current content without editing
@@ -151,31 +104,30 @@ export const publishCommand = new Command('publish')
151
104
  }
152
105
  else {
153
106
  // Open editor with current content
154
- console.log(chalk.gray('Opening editor with current content...'));
107
+ console.log(chalk.gray("Opening editor with current content..."));
155
108
  try {
156
109
  content = await openInEditor(currentSkill.content);
157
110
  }
158
111
  catch (error) {
159
- console.log(chalk.red('Error:'), error instanceof Error ? error.message : error);
112
+ console.log(chalk.red("Error:"), error instanceof Error ? error.message : error);
160
113
  process.exit(1);
161
114
  }
162
115
  }
163
116
  // Validate content
164
117
  if (!content.trim()) {
165
- console.log(chalk.red('Error: Skill content cannot be empty.'));
118
+ console.log(chalk.red("Error: Skill content cannot be empty."));
166
119
  process.exit(1);
167
120
  }
168
- // Get changelog message
169
- let changelog = options.message;
170
- if (!changelog && options.editor !== false) {
171
- changelog = await prompt('Changelog message (optional)');
121
+ // Check if content actually changed
122
+ if (content === currentSkill.content) {
123
+ console.log(chalk.yellow("No changes detected."));
124
+ return;
172
125
  }
173
- const spinner = ora(`Publishing ${slug}@${newVersion}...`).start();
126
+ const spinner = ora(`Saving ${slug}...`).start();
174
127
  try {
175
128
  // Save to local registry
176
- const { sha256 } = localRegistry.putVersion({
129
+ const { sha256 } = localRegistry.putSkill({
177
130
  slug,
178
- version: newVersion,
179
131
  content,
180
132
  meta: {
181
133
  name: skillInfo.meta.name,
@@ -183,32 +135,23 @@ export const publishCommand = new Command('publish')
183
135
  tags: skillInfo.meta.tags,
184
136
  compat: skillInfo.meta.compat,
185
137
  },
186
- provenance: {
187
- kind: 'local',
188
- source: 'created',
189
- },
190
- changelog: changelog || undefined,
191
138
  });
192
- spinner.succeed(`Published ${chalk.cyan(slug)}@${newVersion}`);
193
- console.log('');
194
- console.log('Version details:');
195
- console.log(` ${chalk.bold('Version:')} ${newVersion}`);
196
- console.log(` ${chalk.bold('SHA256:')} ${sha256.substring(0, 16)}...`);
197
- if (changelog) {
198
- console.log(` ${chalk.bold('Changelog:')} ${changelog}`);
199
- }
200
- console.log('');
201
- console.log('Next steps:');
202
- console.log(` ${chalk.cyan(`skills sync`)} Update projects using this skill`);
203
- console.log(` ${chalk.cyan(`skills info ${slug}`)} View all versions`);
139
+ spinner.succeed(`Saved ${chalk.cyan(slug)}`);
140
+ console.log("");
141
+ console.log("Details:");
142
+ console.log(` ${chalk.bold("SHA256:")} ${sha256.substring(0, 16)}...`);
143
+ console.log("");
144
+ console.log("Next steps:");
145
+ console.log(` ${chalk.cyan(`skill sync`)} Update projects using this skill`);
146
+ console.log(` ${chalk.cyan(`skill info ${slug}`)} View skill details`);
204
147
  }
205
148
  catch (error) {
206
- spinner.fail('Failed to publish version');
149
+ spinner.fail("Failed to save");
207
150
  throw error;
208
151
  }
209
152
  }
210
153
  catch (error) {
211
- console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);
154
+ console.error(chalk.red("Error:"), error instanceof Error ? error.message : error);
212
155
  process.exit(1);
213
156
  }
214
157
  });
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,WAAW,SAiKpB,CAAC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,WAAW,SAiJpB,CAAC"}
@@ -104,21 +104,11 @@ export const pushCommand = new Command('push')
104
104
  }
105
105
  else {
106
106
  // Push new version
107
- const locked = lockfile.getLockedSkill(skillSlug);
108
- const currentVersion = locked?.version || '1.0.0';
109
- // Determine new version
110
- let newVersion = options.version;
111
- if (!newVersion) {
112
- newVersion = semverLib.autoBump(currentVersion);
113
- }
107
+ const newVersion = options.version || '1.0.0';
114
108
  if (!semverLib.isValidVersion(newVersion)) {
115
109
  spinner.fail(`Invalid version: ${newVersion}`);
116
110
  continue;
117
111
  }
118
- if (!semverLib.isGreaterThan(newVersion, currentVersion)) {
119
- spinner.fail(`New version (${newVersion}) must be greater than current (${currentVersion})`);
120
- continue;
121
- }
122
112
  // Push version
123
113
  const result = await api.createVersion(source.registry, skillSlug, {
124
114
  version: newVersion,
@@ -129,8 +119,6 @@ export const pushCommand = new Command('push')
129
119
  const hash = await fs.computeHash(content);
130
120
  lockfile.updateLockedSkill({
131
121
  slug: skillSlug,
132
- registry: source.registry,
133
- version: newVersion,
134
122
  sha256: hash,
135
123
  });
136
124
  // Clear modified marker
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const renameCommand: Command;
3
+ //# sourceMappingURL=rename.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/commands/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsJpC,eAAO,MAAM,aAAa,SA2EtB,CAAC"}
@@ -0,0 +1,177 @@
1
+ import { Command } from 'commander';
2
+ import * as nodeFs from 'fs';
3
+ import * as path from 'path';
4
+ import * as yaml from 'yaml';
5
+ import * as readline from 'readline';
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import * as localRegistry from '../lib/local-registry/index.js';
9
+ import * as projectConfig from '../lib/config.js';
10
+ import * as projectFs from '../lib/fs.js';
11
+ import * as indexGen from '../lib/index-gen.js';
12
+ function createQuestionInterface() {
13
+ return readline.createInterface({
14
+ input: process.stdin,
15
+ output: process.stdout
16
+ });
17
+ }
18
+ async function promptForNewName(params) {
19
+ const { currentName } = params;
20
+ const rl = createQuestionInterface();
21
+ const question = (prompt) => new Promise(resolve => {
22
+ rl.question(prompt, answer => resolve(answer));
23
+ });
24
+ const answer = await question(`New name [${currentName}]: `);
25
+ rl.close();
26
+ const trimmed = answer.trim();
27
+ return trimmed || currentName;
28
+ }
29
+ function slugFromName(params) {
30
+ const { name } = params;
31
+ const normalized = name.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-');
32
+ return normalized.replace(/^-+|-+$/g, '');
33
+ }
34
+ function validateSlug(params) {
35
+ const { slug } = params;
36
+ if (!slug) {
37
+ throw new Error('Slug cannot be empty after normalization.');
38
+ }
39
+ if (!/^[a-z0-9-]+$/.test(slug)) {
40
+ throw new Error("Slug must be lowercase alphanumeric with hyphens only (generated from the new name).");
41
+ }
42
+ }
43
+ function renameInRegistry(params) {
44
+ const { oldSlug, newSlug, newName } = params;
45
+ const existingMeta = localRegistry.readMeta(oldSlug);
46
+ if (!existingMeta) {
47
+ throw new Error(`Could not read metadata for '${oldSlug}' in local registry.`);
48
+ }
49
+ // Rename the skill directory if the slug changed
50
+ if (oldSlug !== newSlug) {
51
+ const oldDir = localRegistry.getSkillDir(oldSlug);
52
+ const newDir = localRegistry.getSkillDir(newSlug);
53
+ if (!nodeFs.existsSync(oldDir)) {
54
+ throw new Error(`Skill directory not found in registry: ${oldDir}`);
55
+ }
56
+ if (nodeFs.existsSync(newDir)) {
57
+ throw new Error(`Target slug '${newSlug}' already exists in registry at ${newDir}. Choose a different name.`);
58
+ }
59
+ nodeFs.renameSync(oldDir, newDir);
60
+ }
61
+ const updatedMeta = {
62
+ ...existingMeta,
63
+ slug: newSlug,
64
+ name: newName
65
+ };
66
+ localRegistry.writeMeta(newSlug, updatedMeta);
67
+ }
68
+ function renameInProject(params) {
69
+ const { oldSlug, newSlug, newName } = params;
70
+ if (!projectConfig.configExists()) {
71
+ return;
72
+ }
73
+ const skillsConfig = projectConfig.readConfig();
74
+ let configChanged = false;
75
+ const updatedSkills = skillsConfig.skills.map(skill => {
76
+ if (skill.slug !== oldSlug) {
77
+ return skill;
78
+ }
79
+ configChanged = true;
80
+ return {
81
+ ...skill,
82
+ slug: newSlug
83
+ };
84
+ });
85
+ if (configChanged) {
86
+ projectConfig.writeConfig({
87
+ ...skillsConfig,
88
+ skills: updatedSkills
89
+ });
90
+ }
91
+ // Rename installed skill directory in the project, if present
92
+ const projectOldDir = projectFs.getSkillDir(oldSlug);
93
+ const projectNewDir = projectFs.getSkillDir(newSlug);
94
+ if (nodeFs.existsSync(projectOldDir)) {
95
+ if (nodeFs.existsSync(projectNewDir)) {
96
+ throw new Error(`Cannot rename project skill directory: target '${newSlug}' already exists at ${projectNewDir}.`);
97
+ }
98
+ nodeFs.renameSync(projectOldDir, projectNewDir);
99
+ // Update project meta.yaml slug and name
100
+ const projectMeta = projectFs.readSkillMeta(newSlug);
101
+ if (projectMeta) {
102
+ const updatedProjectMeta = {
103
+ ...projectMeta,
104
+ slug: newSlug,
105
+ name: newName
106
+ };
107
+ const metaPath = path.join(projectFs.getSkillDir(newSlug), 'meta.yaml');
108
+ const content = yaml.stringify(updatedProjectMeta, { lineWidth: 0 });
109
+ nodeFs.writeFileSync(metaPath, content, 'utf-8');
110
+ }
111
+ }
112
+ // Regenerate SKILLS_INDEX.md if we are in a project
113
+ indexGen.regenerateIndex();
114
+ }
115
+ export const renameCommand = new Command('rename')
116
+ .description('Rename a skill (updates slug and display name)')
117
+ .argument('<slug>', 'Current skill slug')
118
+ .action(async (slug) => {
119
+ try {
120
+ if (!localRegistry.skillExists(slug)) {
121
+ console.log(chalk.red(`Error: Skill '${slug}' not found in local registry.`));
122
+ console.log('');
123
+ console.log('To create this skill:');
124
+ console.log(` ${chalk.cyan(`skill new ${slug}`)}`);
125
+ process.exit(1);
126
+ }
127
+ const skillInfo = localRegistry.getSkillInfo(slug);
128
+ if (!skillInfo) {
129
+ console.log(chalk.red(`Error: Could not read skill '${slug}' from local registry.`));
130
+ process.exit(1);
131
+ }
132
+ const currentName = skillInfo.meta.name || slug;
133
+ console.log('');
134
+ console.log(chalk.bold('Rename skill'));
135
+ console.log(` ${chalk.bold('Current slug:')} ${chalk.cyan(slug)}`);
136
+ console.log(` ${chalk.bold('Current name:')} ${currentName}`);
137
+ console.log('');
138
+ const newName = await promptForNewName({ currentName });
139
+ if (newName === currentName) {
140
+ console.log(chalk.yellow('Name unchanged. Nothing to do.'));
141
+ return;
142
+ }
143
+ const newSlug = slugFromName({ name: newName });
144
+ try {
145
+ validateSlug({ slug: newSlug });
146
+ }
147
+ catch (error) {
148
+ console.log(chalk.red(`Error: Could not derive a valid slug from '${newName}'. ` +
149
+ (error instanceof Error ? error.message : String(error))));
150
+ process.exit(1);
151
+ }
152
+ if (newSlug !== slug && localRegistry.skillExists(newSlug)) {
153
+ console.log(chalk.red(`Error: A skill with slug '${newSlug}' already exists in the local registry. ` +
154
+ 'Choose a different name.'));
155
+ process.exit(1);
156
+ }
157
+ const spinner = ora('Renaming skill...').start();
158
+ try {
159
+ renameInRegistry({ oldSlug: slug, newSlug, newName });
160
+ renameInProject({ oldSlug: slug, newSlug, newName });
161
+ spinner.succeed(`Renamed skill to ${chalk.cyan(newSlug)}`);
162
+ console.log('');
163
+ console.log('Updated details:');
164
+ console.log(` ${chalk.bold('Slug:')} ${chalk.cyan(newSlug)}`);
165
+ console.log(` ${chalk.bold('Name:')} ${newName}`);
166
+ }
167
+ catch (error) {
168
+ spinner.fail('Failed to rename skill');
169
+ throw error;
170
+ }
171
+ }
172
+ catch (error) {
173
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : error);
174
+ process.exit(1);
175
+ }
176
+ });
177
+ //# sourceMappingURL=rename.js.map