skill-creator 0.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 (55) hide show
  1. package/README.md +53 -0
  2. package/dist/cli.d.ts +8 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +378 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/core/chromaSearch.d.ts +24 -0
  7. package/dist/core/chromaSearch.d.ts.map +1 -0
  8. package/dist/core/chromaSearch.js +192 -0
  9. package/dist/core/chromaSearch.js.map +1 -0
  10. package/dist/core/contentManager.d.ts +40 -0
  11. package/dist/core/contentManager.d.ts.map +1 -0
  12. package/dist/core/contentManager.js +355 -0
  13. package/dist/core/contentManager.js.map +1 -0
  14. package/dist/core/runScript.d.ts +5 -0
  15. package/dist/core/runScript.d.ts.map +1 -0
  16. package/dist/core/runScript.js +220 -0
  17. package/dist/core/runScript.js.map +1 -0
  18. package/dist/core/searchEngine.d.ts +25 -0
  19. package/dist/core/searchEngine.d.ts.map +1 -0
  20. package/dist/core/searchEngine.js +198 -0
  21. package/dist/core/searchEngine.js.map +1 -0
  22. package/dist/core/simpleSearch.d.ts +21 -0
  23. package/dist/core/simpleSearch.d.ts.map +1 -0
  24. package/dist/core/simpleSearch.js +113 -0
  25. package/dist/core/simpleSearch.js.map +1 -0
  26. package/dist/core/skillCreator.d.ts +16 -0
  27. package/dist/core/skillCreator.d.ts.map +1 -0
  28. package/dist/core/skillCreator.js +291 -0
  29. package/dist/core/skillCreator.js.map +1 -0
  30. package/dist/core/templateManager.d.ts +28 -0
  31. package/dist/core/templateManager.d.ts.map +1 -0
  32. package/dist/core/templateManager.js +612 -0
  33. package/dist/core/templateManager.js.map +1 -0
  34. package/dist/core/unifiedSearch.d.ts +23 -0
  35. package/dist/core/unifiedSearch.d.ts.map +1 -0
  36. package/dist/core/unifiedSearch.js +46 -0
  37. package/dist/core/unifiedSearch.js.map +1 -0
  38. package/dist/index.d.ts +10 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +9 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/types/index.d.ts +86 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/types/index.js +5 -0
  45. package/dist/types/index.js.map +1 -0
  46. package/dist/utils/config.d.ts +47 -0
  47. package/dist/utils/config.d.ts.map +1 -0
  48. package/dist/utils/config.js +69 -0
  49. package/dist/utils/config.js.map +1 -0
  50. package/dist/utils/package.d.ts +57 -0
  51. package/dist/utils/package.d.ts.map +1 -0
  52. package/dist/utils/package.js +170 -0
  53. package/dist/utils/package.js.map +1 -0
  54. package/package.json +57 -0
  55. package/templates/skill-creator.md +182 -0
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Main skill creator class
3
+ */
4
+ import { join } from 'node:path';
5
+ import { existsSync, mkdirSync, writeFileSync, chmodSync, readdirSync } from 'node:fs';
6
+ import { homedir } from 'node:os';
7
+ import { Config } from '../utils/config.js';
8
+ import { TemplateManager } from './templateManager.js';
9
+ export class SkillCreator {
10
+ templateDir;
11
+ templateManager;
12
+ constructor() {
13
+ // Use __dirname equivalent for ES modules
14
+ const __filename = new URL(import.meta.url).pathname;
15
+ const __dirname = join(__filename, '..');
16
+ this.templateDir = join(__dirname, '..', 'templates');
17
+ this.templateManager = new TemplateManager();
18
+ }
19
+ async createSkill(options) {
20
+ const result = {
21
+ created: false,
22
+ message: '',
23
+ docsInitialized: false,
24
+ };
25
+ try {
26
+ // Get package version
27
+ const { PackageUtils } = await import('../utils/package.js');
28
+ const version = options.version ?? (await PackageUtils.getPackageVersion(options.packageName));
29
+ if (!version) {
30
+ console.warn(`⚠️ Could not determine version for ${options.packageName}`);
31
+ }
32
+ // Create skill folder name
33
+ const skillName = PackageUtils.createSkillFolderName(options.packageName, version ?? '1.0.0');
34
+ // Determine output path
35
+ const outputPath = options.storage === 'user'
36
+ ? join(homedir(), '.claude', 'skills')
37
+ : options.path ?? '.';
38
+ // Create skill directory
39
+ const skillDir = join(outputPath, skillName);
40
+ if (existsSync(skillDir)) {
41
+ const files = readdirSync(skillDir);
42
+ // Filter out .gitkeep files
43
+ const realFiles = files.filter(f => f !== '.gitkeep');
44
+ if (realFiles.length > 0) {
45
+ result.message = `Skill directory already exists and is not empty: ${skillDir}`;
46
+ return result;
47
+ }
48
+ }
49
+ mkdirSync(skillDir, { recursive: true });
50
+ // Detect framework template
51
+ const template = this.templateManager.detectFramework(options.packageName);
52
+ // Create configuration
53
+ let context7Id = options.context7Id;
54
+ if (!context7Id && template?.context7Ids?.length) {
55
+ context7Id = template.context7Ids[0];
56
+ }
57
+ const config = Config.createDefault({
58
+ skillName,
59
+ description: options.description ?? `Documentation skill for ${options.packageName}`,
60
+ context7Id: context7Id ?? `/${options.packageName.replace('@', '').replace('/', '__')}/docs`,
61
+ });
62
+ // Set the actual version (not formatted) in config
63
+ config.version = version ?? '1.0.0';
64
+ // Apply template if detected
65
+ if (template) {
66
+ console.log(`\n📋 Detected framework: ${template.name}`);
67
+ this.templateManager.applyTemplate(template, skillDir, config);
68
+ }
69
+ // Create directory structure
70
+ await this.createDirectoryStructure(skillDir);
71
+ // Create configuration file
72
+ const configFile = join(skillDir, 'config.json');
73
+ Config.save(config, configFile);
74
+ // Create SKILL.md
75
+ await this.createSkillMd(skillDir, config);
76
+ // Create package.json
77
+ await this.createPackageJson(skillDir, config);
78
+ // Create scripts
79
+ await this.createScripts(skillDir);
80
+ result.created = true;
81
+ result.skillPath = skillDir;
82
+ result.message = `Skill created successfully: ${skillDir}`;
83
+ // Initialize documentation if requested
84
+ if (!options.noInitDocs && options.context7Id) {
85
+ // Note: We'll skip auto-initialization for now to avoid dependency issues
86
+ result.docsInitialized = false;
87
+ result.message += ' | Documentation initialization skipped - run manually';
88
+ }
89
+ return result;
90
+ }
91
+ catch (error) {
92
+ result.message = `Failed to create skill: ${error}`;
93
+ return result;
94
+ }
95
+ }
96
+ createDirectoryStructure(skillDir) {
97
+ const dirs = [
98
+ 'scripts',
99
+ 'assets/references/context7',
100
+ 'assets/references/user',
101
+ 'assets/chroma_db',
102
+ 'assets/logs',
103
+ ];
104
+ for (const dir of dirs) {
105
+ const dirPath = join(skillDir, dir);
106
+ mkdirSync(dirPath, { recursive: true });
107
+ writeFileSync(join(dirPath, '.gitkeep'), '');
108
+ }
109
+ }
110
+ createSkillMd(skillDir, config) {
111
+ const content = `---
112
+ name: ${config.name}
113
+ description: ${config.description}
114
+ license: Complete terms in LICENSE.txt
115
+ ---
116
+
117
+ # ${config.name} Documentation Skill
118
+
119
+ This skill provides comprehensive documentation management for ${config.name}, featuring:
120
+
121
+ ## Features
122
+
123
+ 1. **Intelligent Search**: ChromaDB-powered semantic search through all documentation
124
+ 2. **Dynamic Content Addition**: Add new knowledge with deduplication and smart updates
125
+ 3. **Context7 Integration**: Automatically fetches and slices latest documentation
126
+ 4. **Priority Management**: User-generated content takes precedence over Context7 docs
127
+
128
+ ## Usage
129
+
130
+ ### Search Documentation
131
+ To search through the documentation:
132
+ \`\`\`bash
133
+ node scripts/search.js --query "your search query"
134
+ \`\`\`
135
+
136
+ ### Add New Knowledge
137
+ To add new documentation or knowledge:
138
+ \`\`\`bash
139
+ node scripts/add.js --content "your content" --title "content title"
140
+ \`\`\`
141
+
142
+ ### Update from Context7
143
+ To refresh documentation from Context7:
144
+ \`\`\`bash
145
+ node scripts/update_context7.js
146
+ \`\`\`
147
+
148
+ ### List All Content
149
+ To list all documentation files:
150
+ \`\`\`bash
151
+ node scripts/list_content.js
152
+ \`\`\`
153
+
154
+ ### Rebuild Search Index
155
+ To manually rebuild the search index:
156
+ \`\`\`bash
157
+ node scripts/build_index.js
158
+ \`\`\`
159
+
160
+ ## File Structure
161
+
162
+ - \`assets/references/context7/\` - Auto-generated Context7 documentation slices
163
+ - \`assets/references/user/\` - User-generated knowledge and documentation
164
+ - \`assets/chroma_db/\` - ChromaDB index for semantic search
165
+ - \`scripts/\` - Management scripts for documentation operations
166
+
167
+ ## Workflow
168
+
169
+ 1. Initial setup automatically downloads and slices Context7 documentation
170
+ 2. ChromaDB index is built from all documentation sources
171
+ 3. Search queries return ranked results with source citations
172
+ 4. New content is intelligently merged with existing knowledge
173
+ 5. User content always takes priority over Context7 sources
174
+
175
+ ## Configuration
176
+
177
+ Edit \`config.json\` to customize:
178
+ - Context7 library ID
179
+ - Embedding model
180
+ - Chunk size and overlap
181
+ - Similarity thresholds
182
+
183
+ ## Dependencies
184
+
185
+ See \`package.json\` for all required dependencies.
186
+
187
+ ## Installation
188
+
189
+ Install the dependencies using npm:
190
+ \`\`\`bash
191
+ npm install
192
+ \`\`\`
193
+ `;
194
+ writeFileSync(join(skillDir, 'SKILL.md'), content);
195
+ }
196
+ createPackageJson(skillDir, config) {
197
+ const content = {
198
+ name: config.name.toLowerCase().replace(/[^a-z0-9]/g, '-'),
199
+ version: config.version,
200
+ description: config.description,
201
+ type: 'module',
202
+ scripts: {
203
+ 'search': 'node scripts/search.js',
204
+ 'add': 'node scripts/add.js',
205
+ 'update-context7': 'node scripts/update_context7.js',
206
+ 'build-index': 'node scripts/build_index.js',
207
+ 'list-content': 'node scripts/list_content.js',
208
+ },
209
+ dependencies: {
210
+ 'chromadb': '^1.8.1',
211
+ 'markdown-it': '^14.1.0',
212
+ 'zod': '^3.24.0',
213
+ 'gradient-string': '^3.0.0',
214
+ 'ora': '^8.1.0',
215
+ 'inquirer': '^10.2.2',
216
+ 'dedent': '^1.5.3',
217
+ },
218
+ devDependencies: {
219
+ '@types/node': '^22.10.2',
220
+ },
221
+ };
222
+ writeFileSync(join(skillDir, 'package.json'), JSON.stringify(content, null, 2));
223
+ }
224
+ createScripts(skillDir) {
225
+ const scriptsDir = join(skillDir, 'scripts');
226
+ // The scripts will reference the skill-creator package
227
+ const scriptFiles = [
228
+ 'search.js',
229
+ 'add.js',
230
+ 'update_context7.js',
231
+ 'build_index.js',
232
+ 'list_content.js',
233
+ ];
234
+ for (const script of scriptFiles) {
235
+ const scriptPath = join(scriptsDir, script);
236
+ this.createScriptWrapper(scriptPath, script.replace('.js', ''));
237
+ }
238
+ }
239
+ createScriptWrapper(scriptPath, command) {
240
+ const content = `#!/usr/bin/env node
241
+ /**
242
+ * Wrapper script for ${command}
243
+ * This script forwards execution to the skill-creator package
244
+ */
245
+
246
+ import { spawn } from 'node:child_process'
247
+ import { fileURLToPath } from 'node:url'
248
+ import { dirname, join } from 'node:path'
249
+ import { existsSync } from 'node:fs'
250
+
251
+ const __filename = fileURLToPath(import.meta.url)
252
+ const __dirname = dirname(__filename)
253
+
254
+ // Find skill-creator CLI - try multiple possible paths
255
+ let skillCreatorPath = process.env.SKILL_CREATOR_PATH || ''
256
+
257
+ // If not set, try to find it
258
+ if (!skillCreatorPath) {
259
+ const possiblePaths = [
260
+ join(__dirname, '..', '..', '..', '..', 'dist', 'cli.js'), // Relative to skill
261
+ join(process.cwd(), 'dist', 'cli.js'), // From current working directory
262
+ '/usr/local/bin/skill-creator', // Global installation
263
+ '/Users/kzf/.claude/agents/skill-creator/dist/cli.js', // Default user path
264
+ ]
265
+
266
+ skillCreatorPath = possiblePaths.find(p => existsSync(p)) || ''
267
+ }
268
+
269
+ if (!skillCreatorPath) {
270
+ console.error('❌ Could not find skill-creator CLI')
271
+ console.error('💡 Please install skill-creator or set SKILL_CREATOR_PATH environment variable')
272
+ process.exit(1)
273
+ }
274
+
275
+ const args = process.argv.slice(2)
276
+
277
+ // Run the command
278
+ const child = spawn('node', [skillCreatorPath, 'run-script', '${command}'.replace(/_/g, '-'), ...args], {
279
+ stdio: 'inherit',
280
+ cwd: join(__dirname, '..'),
281
+ })
282
+
283
+ child.on('exit', (code) => {
284
+ process.exit(code ?? 1)
285
+ })
286
+ `;
287
+ writeFileSync(scriptPath, content);
288
+ chmodSync(scriptPath, 0o755);
289
+ }
290
+ }
291
+ //# sourceMappingURL=skillCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillCreator.js","sourceRoot":"","sources":["../../src/core/skillCreator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Template system for framework-specific skill enhancements
3
+ */
4
+ export interface FrameworkTemplate {
5
+ name: string;
6
+ description: string;
7
+ context7Ids?: string[];
8
+ additionalDependencies?: Record<string, string>;
9
+ additionalScripts?: Record<string, string>;
10
+ customConfig?: Record<string, any>;
11
+ postCreateScript?: string;
12
+ }
13
+ export declare class TemplateManager {
14
+ private templatesDir;
15
+ private templates;
16
+ constructor();
17
+ private loadTemplates;
18
+ getTemplate(name: string): FrameworkTemplate | undefined;
19
+ getAllTemplates(): FrameworkTemplate[];
20
+ detectFramework(packageName: string): FrameworkTemplate | null;
21
+ applyTemplate(template: FrameworkTemplate, skillPath: string, config: any): void;
22
+ private generateFrameworkScripts;
23
+ private createExpressServerExample;
24
+ private createTypeormEntityGenerator;
25
+ private createPrismaSchemaGenerator;
26
+ private createReactExampleScripts;
27
+ }
28
+ //# sourceMappingURL=templateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateManager.d.ts","sourceRoot":"","sources":["../../src/core/templateManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,SAAS,CAA4C;;IAS7D,OAAO,CAAC,aAAa;IAkJrB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIxD,eAAe,IAAI,iBAAiB,EAAE;IAItC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAiC9D,aAAa,CACX,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,GACV,IAAI;IAgDP,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,0BAA0B;IAiClC,OAAO,CAAC,4BAA4B;IAsGpC,OAAO,CAAC,2BAA2B;IAgGnC,OAAO,CAAC,yBAAyB;CAmJlC"}