skill-creator 0.0.0 → 1.1.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 +157 -19
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +268 -262
- package/dist/cli.js.map +1 -1
- package/dist/commands/addContent.d.ts +5 -0
- package/dist/commands/addContent.d.ts.map +1 -0
- package/dist/commands/addContent.js +74 -0
- package/dist/commands/addContent.js.map +1 -0
- package/dist/commands/buildIndex.d.ts +5 -0
- package/dist/commands/buildIndex.d.ts.map +1 -0
- package/dist/commands/buildIndex.js +17 -0
- package/dist/commands/buildIndex.js.map +1 -0
- package/dist/commands/downloadContext7.d.ts +5 -0
- package/dist/commands/downloadContext7.d.ts.map +1 -0
- package/dist/commands/downloadContext7.js +62 -0
- package/dist/commands/downloadContext7.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +89 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/listContent.d.ts +5 -0
- package/dist/commands/listContent.d.ts.map +1 -0
- package/dist/commands/listContent.js +35 -0
- package/dist/commands/listContent.js.map +1 -0
- package/dist/commands/searchContent.d.ts +5 -0
- package/dist/commands/searchContent.d.ts.map +1 -0
- package/dist/commands/searchContent.js +98 -0
- package/dist/commands/searchContent.js.map +1 -0
- package/dist/commands/shared.d.ts +23 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +92 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/core/autoSearchAdapter.d.ts +42 -0
- package/dist/core/autoSearchAdapter.d.ts.map +1 -0
- package/dist/core/autoSearchAdapter.js +116 -0
- package/dist/core/autoSearchAdapter.js.map +1 -0
- package/dist/core/chromaSearch.d.ts +2 -2
- package/dist/core/chromaSearch.d.ts.map +1 -1
- package/dist/core/chromaSearch.js +11 -9
- package/dist/core/chromaSearch.js.map +1 -1
- package/dist/core/chromaSearchAdapter.d.ts +86 -0
- package/dist/core/chromaSearchAdapter.d.ts.map +1 -0
- package/dist/core/chromaSearchAdapter.js +477 -0
- package/dist/core/chromaSearchAdapter.js.map +1 -0
- package/dist/core/chromaServerManager.d.ts +64 -0
- package/dist/core/chromaServerManager.d.ts.map +1 -0
- package/dist/core/chromaServerManager.js +186 -0
- package/dist/core/chromaServerManager.js.map +1 -0
- package/dist/core/contentManager.d.ts +1 -0
- package/dist/core/contentManager.d.ts.map +1 -1
- package/dist/core/contentManager.js +75 -21
- package/dist/core/contentManager.js.map +1 -1
- package/dist/core/fuzzySearchAdapter.d.ts +33 -0
- package/dist/core/fuzzySearchAdapter.d.ts.map +1 -0
- package/dist/core/fuzzySearchAdapter.js +185 -0
- package/dist/core/fuzzySearchAdapter.js.map +1 -0
- package/dist/core/portUtils.d.ts +51 -0
- package/dist/core/portUtils.d.ts.map +1 -0
- package/dist/core/portUtils.js +120 -0
- package/dist/core/portUtils.js.map +1 -0
- package/dist/core/runScript.d.ts +1 -1
- package/dist/core/runScript.d.ts.map +1 -1
- package/dist/core/runScript.js +27 -210
- package/dist/core/runScript.js.map +1 -1
- package/dist/core/searchAdapter.d.ts +48 -0
- package/dist/core/searchAdapter.d.ts.map +1 -0
- package/dist/core/searchAdapter.js +6 -0
- package/dist/core/searchAdapter.js.map +1 -0
- package/dist/core/searchEngineFactory.d.ts +30 -0
- package/dist/core/searchEngineFactory.d.ts.map +1 -0
- package/dist/core/searchEngineFactory.js +41 -0
- package/dist/core/searchEngineFactory.js.map +1 -0
- package/dist/core/skillCreator.d.ts +2 -4
- package/dist/core/skillCreator.d.ts.map +1 -1
- package/dist/core/skillCreator.js +46 -195
- package/dist/core/skillCreator.js.map +1 -1
- package/dist/core/templateManager.d.ts +2 -1
- package/dist/core/templateManager.d.ts.map +1 -1
- package/dist/core/templateManager.js +19 -13
- package/dist/core/templateManager.js.map +1 -1
- package/dist/core/unifiedSearch.d.ts +57 -11
- package/dist/core/unifiedSearch.d.ts.map +1 -1
- package/dist/core/unifiedSearch.js +88 -29
- package/dist/core/unifiedSearch.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/search_format/enhancedFormatter.d.ts +109 -0
- package/dist/search_format/enhancedFormatter.d.ts.map +1 -0
- package/dist/search_format/enhancedFormatter.js +262 -0
- package/dist/search_format/enhancedFormatter.js.map +1 -0
- package/dist/search_format/index.d.ts +10 -0
- package/dist/search_format/index.d.ts.map +1 -0
- package/dist/search_format/index.js +22 -0
- package/dist/search_format/index.js.map +1 -0
- package/dist/search_format/listFormatter.d.ts +16 -0
- package/dist/search_format/listFormatter.d.ts.map +1 -0
- package/dist/search_format/listFormatter.js +51 -0
- package/dist/search_format/listFormatter.js.map +1 -0
- package/dist/search_format/types.d.ts +69 -0
- package/dist/search_format/types.d.ts.map +1 -0
- package/dist/search_format/types.js +5 -0
- package/dist/search_format/types.js.map +1 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/package.d.ts +17 -0
- package/dist/utils/package.d.ts.map +1 -1
- package/dist/utils/package.js +51 -14
- package/dist/utils/package.js.map +1 -1
- package/package.json +9 -8
- package/templates/SKILL.md +193 -0
- package/templates/SKILL.zh-CN.md +193 -0
- package/templates/skill-creator.md +68 -154
- package/templates/skill-creator.zh-CN.md +98 -0
- package/dist/core/searchEngine.d.ts +0 -25
- package/dist/core/searchEngine.d.ts.map +0 -1
- package/dist/core/searchEngine.js +0 -198
- package/dist/core/searchEngine.js.map +0 -1
- package/dist/core/simpleSearch.d.ts +0 -21
- package/dist/core/simpleSearch.d.ts.map +0 -1
- package/dist/core/simpleSearch.js +0 -113
- package/dist/core/simpleSearch.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Main skill creator class
|
|
3
3
|
*/
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { existsSync, mkdirSync, writeFileSync,
|
|
4
|
+
import { join, resolve } from 'node:path';
|
|
5
|
+
import { existsSync, mkdirSync, writeFileSync, readdirSync, readFileSync } from 'node:fs';
|
|
6
6
|
import { homedir } from 'node:os';
|
|
7
7
|
import { Config } from '../utils/config.js';
|
|
8
8
|
import { TemplateManager } from './templateManager.js';
|
|
@@ -10,10 +10,7 @@ export class SkillCreator {
|
|
|
10
10
|
templateDir;
|
|
11
11
|
templateManager;
|
|
12
12
|
constructor() {
|
|
13
|
-
|
|
14
|
-
const __filename = new URL(import.meta.url).pathname;
|
|
15
|
-
const __dirname = join(__filename, '..');
|
|
16
|
-
this.templateDir = join(__dirname, '..', 'templates');
|
|
13
|
+
this.templateDir = join(import.meta.dirname, '../../templates');
|
|
17
14
|
this.templateManager = new TemplateManager();
|
|
18
15
|
}
|
|
19
16
|
async createSkill(options) {
|
|
@@ -32,19 +29,24 @@ export class SkillCreator {
|
|
|
32
29
|
// Create skill folder name
|
|
33
30
|
const skillName = PackageUtils.createSkillFolderName(options.packageName, version ?? '1.0.0');
|
|
34
31
|
// Determine output path
|
|
35
|
-
const outputPath = options.
|
|
32
|
+
const outputPath = options.scope === 'user'
|
|
36
33
|
? join(homedir(), '.claude', 'skills')
|
|
37
|
-
: options.path
|
|
34
|
+
: options.path
|
|
35
|
+
? resolve(options.path) // Ensure absolute path
|
|
36
|
+
: join(process.cwd(), '.claude', 'skills');
|
|
38
37
|
// Create skill directory
|
|
39
38
|
const skillDir = join(outputPath, skillName);
|
|
40
39
|
if (existsSync(skillDir)) {
|
|
41
40
|
const files = readdirSync(skillDir);
|
|
42
41
|
// Filter out .gitkeep files
|
|
43
|
-
const realFiles = files.filter(f => f !== '.gitkeep');
|
|
44
|
-
if (realFiles.length > 0) {
|
|
42
|
+
const realFiles = files.filter((f) => f !== '.gitkeep');
|
|
43
|
+
if (realFiles.length > 0 && !options.force) {
|
|
45
44
|
result.message = `Skill directory already exists and is not empty: ${skillDir}`;
|
|
46
45
|
return result;
|
|
47
46
|
}
|
|
47
|
+
else if (realFiles.length > 0 && options.force) {
|
|
48
|
+
console.log(`⚠️ Skill directory exists, forcing overwrite of existing files: ${skillDir}`);
|
|
49
|
+
}
|
|
48
50
|
}
|
|
49
51
|
mkdirSync(skillDir, { recursive: true });
|
|
50
52
|
// Detect framework template
|
|
@@ -68,15 +70,17 @@ export class SkillCreator {
|
|
|
68
70
|
}
|
|
69
71
|
// Create directory structure
|
|
70
72
|
await this.createDirectoryStructure(skillDir);
|
|
71
|
-
// Create configuration
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
// Create basic config.json (minimal configuration)
|
|
74
|
+
const skillConfig = {
|
|
75
|
+
name: config.name,
|
|
76
|
+
description: config.description,
|
|
77
|
+
version: config.version,
|
|
78
|
+
packageName: options.packageName,
|
|
79
|
+
context7LibraryId: config.context7LibraryId,
|
|
80
|
+
};
|
|
81
|
+
this.createBasicConfig(skillDir, skillConfig);
|
|
82
|
+
// Create SKILL.md from template
|
|
83
|
+
await this.createSkillMdFromTemplate(skillDir, skillConfig);
|
|
80
84
|
result.created = true;
|
|
81
85
|
result.skillPath = skillDir;
|
|
82
86
|
result.message = `Skill created successfully: ${skillDir}`;
|
|
@@ -95,7 +99,6 @@ export class SkillCreator {
|
|
|
95
99
|
}
|
|
96
100
|
createDirectoryStructure(skillDir) {
|
|
97
101
|
const dirs = [
|
|
98
|
-
'scripts',
|
|
99
102
|
'assets/references/context7',
|
|
100
103
|
'assets/references/user',
|
|
101
104
|
'assets/chroma_db',
|
|
@@ -107,185 +110,33 @@ export class SkillCreator {
|
|
|
107
110
|
writeFileSync(join(dirPath, '.gitkeep'), '');
|
|
108
111
|
}
|
|
109
112
|
}
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
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,
|
|
113
|
+
createBasicConfig(skillDir, config) {
|
|
114
|
+
const basicConfig = {
|
|
115
|
+
name: config.name,
|
|
200
116
|
description: config.description,
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
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
|
-
},
|
|
117
|
+
version: config.version,
|
|
118
|
+
packageName: config.packageName,
|
|
119
|
+
context7LibraryId: '', // Will be filled by download-context7 command
|
|
221
120
|
};
|
|
222
|
-
|
|
121
|
+
const configPath = join(skillDir, 'config.json');
|
|
122
|
+
writeFileSync(configPath, JSON.stringify(basicConfig, null, 2));
|
|
223
123
|
}
|
|
224
|
-
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
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', ''));
|
|
124
|
+
async createSkillMdFromTemplate(skillDir, config) {
|
|
125
|
+
const templatePath = join(this.templateDir, 'SKILL.md');
|
|
126
|
+
if (!existsSync(templatePath)) {
|
|
127
|
+
throw new Error(`SKILL.md template not found at ${templatePath}`);
|
|
237
128
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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);
|
|
129
|
+
let templateContent = readFileSync(templatePath, 'utf-8');
|
|
130
|
+
// Replace template variables with English defaults
|
|
131
|
+
templateContent = templateContent
|
|
132
|
+
.replace(/{{NAME}}/g, config.name)
|
|
133
|
+
.replace(/{{DESCRIPTION}}/g, config.description ||
|
|
134
|
+
`Specialized ${config.name} expert assistant providing comprehensive technical support`)
|
|
135
|
+
.replace(/{{PACKAGE_NAME}}/g, config.packageName || config.name)
|
|
136
|
+
.replace(/{{LICENSE}}/g, config.license || 'MIT')
|
|
137
|
+
.replace(/{{SKILL_PATH}}/g, skillDir)
|
|
138
|
+
.replace(/{{CONTEXT7_ID}}/g, config.context7LibraryId || '{{CONTEXT7_ID}}');
|
|
139
|
+
writeFileSync(join(skillDir, 'SKILL.md'), templateContent);
|
|
289
140
|
}
|
|
290
141
|
}
|
|
291
142
|
//# sourceMappingURL=skillCreator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillCreator.js","sourceRoot":"","sources":["../../src/core/skillCreator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"skillCreator.js","sourceRoot":"","sources":["../../src/core/skillCreator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Template system for framework-specific skill enhancements
|
|
3
3
|
*/
|
|
4
|
+
import type { SkillConfig } from '../types/index.js';
|
|
4
5
|
export interface FrameworkTemplate {
|
|
5
6
|
name: string;
|
|
6
7
|
description: string;
|
|
@@ -18,7 +19,7 @@ export declare class TemplateManager {
|
|
|
18
19
|
getTemplate(name: string): FrameworkTemplate | undefined;
|
|
19
20
|
getAllTemplates(): FrameworkTemplate[];
|
|
20
21
|
detectFramework(packageName: string): FrameworkTemplate | null;
|
|
21
|
-
applyTemplate(template: FrameworkTemplate, skillPath: string, config:
|
|
22
|
+
applyTemplate(template: FrameworkTemplate, skillPath: string, config: SkillConfig): void;
|
|
22
23
|
private generateFrameworkScripts;
|
|
23
24
|
private createExpressServerExample;
|
|
24
25
|
private createTypeormEntityGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateManager.d.ts","sourceRoot":"","sources":["../../src/core/templateManager.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"templateManager.d.ts","sourceRoot":"","sources":["../../src/core/templateManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAsB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAExE,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;IAoC9D,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IA8CxF,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,0BAA0B;IAiClC,OAAO,CAAC,4BAA4B;IAsGpC,OAAO,CAAC,2BAA2B;IAgGnC,OAAO,CAAC,yBAAyB;CAmJlC"}
|
|
@@ -61,8 +61,8 @@ export class TemplateManager {
|
|
|
61
61
|
context7Ids: ['/expressjs/express/docs'],
|
|
62
62
|
additionalDependencies: {
|
|
63
63
|
'@types/express': '^4.17.0',
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
cors: '^2.8.5',
|
|
65
|
+
helmet: '^7.0.0',
|
|
66
66
|
},
|
|
67
67
|
additionalScripts: {
|
|
68
68
|
'server-example': 'node scripts/server-example.js',
|
|
@@ -73,8 +73,8 @@ export class TemplateManager {
|
|
|
73
73
|
description: 'The React Framework for Production',
|
|
74
74
|
context7Ids: ['/vercel/next.js/docs'],
|
|
75
75
|
additionalDependencies: {
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
next: '^14.0.0',
|
|
77
|
+
react: '^18.0.0',
|
|
78
78
|
'react-dom': '^18.0.0',
|
|
79
79
|
},
|
|
80
80
|
customConfig: {
|
|
@@ -103,7 +103,7 @@ export class TemplateManager {
|
|
|
103
103
|
description: 'Modern ORM for TypeScript and JavaScript',
|
|
104
104
|
context7Ids: ['/typeorm/typeorm/docs'],
|
|
105
105
|
additionalDependencies: {
|
|
106
|
-
|
|
106
|
+
typeorm: '^0.3.17',
|
|
107
107
|
'reflect-metadata': '^0.1.13',
|
|
108
108
|
},
|
|
109
109
|
additionalScripts: {
|
|
@@ -116,7 +116,7 @@ export class TemplateManager {
|
|
|
116
116
|
context7Ids: ['/prisma/prisma/docs'],
|
|
117
117
|
additionalDependencies: {
|
|
118
118
|
'@prisma/client': '^5.0.0',
|
|
119
|
-
|
|
119
|
+
prisma: '^5.0.0',
|
|
120
120
|
},
|
|
121
121
|
additionalScripts: {
|
|
122
122
|
'generate-schema': 'node scripts/generate-schema.js',
|
|
@@ -142,7 +142,7 @@ export class TemplateManager {
|
|
|
142
142
|
description: 'Fast and low overhead web framework, for Node.js',
|
|
143
143
|
context7Ids: ['/fastify/fastify/docs'],
|
|
144
144
|
additionalDependencies: {
|
|
145
|
-
|
|
145
|
+
fastify: '^4.0.0',
|
|
146
146
|
'@fastify/cors': '^8.0.0',
|
|
147
147
|
'@fastify/helmet': '^11.0.0',
|
|
148
148
|
},
|
|
@@ -155,7 +155,10 @@ export class TemplateManager {
|
|
|
155
155
|
return Array.from(this.templates.values());
|
|
156
156
|
}
|
|
157
157
|
detectFramework(packageName) {
|
|
158
|
-
const keywords = packageName
|
|
158
|
+
const keywords = packageName
|
|
159
|
+
.toLowerCase()
|
|
160
|
+
.replace(/[^a-z0-9]/g, ' ')
|
|
161
|
+
.split(/\s+/);
|
|
159
162
|
for (const [templateName, template] of this.templates) {
|
|
160
163
|
// Check if template name matches package keywords
|
|
161
164
|
if (keywords.includes(templateName)) {
|
|
@@ -175,7 +178,7 @@ export class TemplateManager {
|
|
|
175
178
|
fastify: ['fastify', '@fastify'],
|
|
176
179
|
};
|
|
177
180
|
for (const [key, values] of Object.entries(aliases)) {
|
|
178
|
-
if (key === templateName && values.some(v => keywords.includes(v))) {
|
|
181
|
+
if (key === templateName && values.some((v) => keywords.includes(v))) {
|
|
179
182
|
return template;
|
|
180
183
|
}
|
|
181
184
|
}
|
|
@@ -202,12 +205,15 @@ export class TemplateManager {
|
|
|
202
205
|
writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
203
206
|
}
|
|
204
207
|
}
|
|
205
|
-
// Update config with
|
|
208
|
+
// Update config with template-specific settings
|
|
206
209
|
if (template.customConfig) {
|
|
207
|
-
Object.assign(config, template.customConfig);
|
|
208
|
-
// Update config file
|
|
209
210
|
const configPath = join(skillPath, 'config.json');
|
|
210
|
-
|
|
211
|
+
let existingConfig = {};
|
|
212
|
+
if (existsSync(configPath)) {
|
|
213
|
+
existingConfig = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
214
|
+
}
|
|
215
|
+
const updatedConfig = { ...existingConfig, ...template.customConfig };
|
|
216
|
+
writeFileSync(configPath, JSON.stringify(updatedConfig, null, 2));
|
|
211
217
|
}
|
|
212
218
|
// Create additional script files
|
|
213
219
|
if (template.additionalScripts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateManager.js","sourceRoot":"","sources":["../../src/core/templateManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAavF,MAAM,OAAO,eAAe;IAClB,YAAY,CAAQ;IACpB,SAAS,GAAmC,IAAI,GAAG,EAAE,CAAA;IAE7D;QACE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAEO,aAAa;QACnB,4BAA4B;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;YAC1B,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,uDAAuD;YACpE,WAAW,EAAE,CAAC,aAAa,EAAE,qBAAqB,CAAC;YACnD,sBAAsB,EAAE;gBACtB,cAAc,EAAE,SAAS;gBACzB,kBAAkB,EAAE,SAAS;aAC9B;YACD,YAAY,EAAE;gBACZ,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,GAAG;gBACd,YAAY,EAAE,GAAG;aAClB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACxB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACpD,sBAAsB,EAAE;gBACtB,aAAa,EAAE,SAAS;aACzB;YACD,YAAY,EAAE;gBACZ,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,GAAG;aAClB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;YAC5B,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,2DAA2D;YACxE,WAAW,EAAE,CAAC,uBAAuB,CAAC;YACtC,sBAAsB,EAAE;gBACtB,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,SAAS;aAC3B;YACD,YAAY,EAAE;gBACZ,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,GAAG;aAClB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;YAC5B,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,2DAA2D;YACxE,WAAW,EAAE,CAAC,yBAAyB,CAAC;YACxC,sBAAsB,EAAE;gBACtB,gBAAgB,EAAE,SAAS;gBAC3B,
|
|
1
|
+
{"version":3,"file":"templateManager.js","sourceRoot":"","sources":["../../src/core/templateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Unified
|
|
2
|
+
* Unified Search Engine
|
|
3
|
+
* Acts as a coordinator between search adapters and formatters
|
|
4
|
+
* Provides a clean interface for the complete search pipeline
|
|
3
5
|
*/
|
|
4
|
-
import type { SearchResult } from '
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import type { SearchResult } from './searchAdapter.js';
|
|
7
|
+
import type { FormattedResult } from '../search_format/types.js';
|
|
8
|
+
import type { SearchEngineOptions } from './searchEngineFactory.js';
|
|
9
|
+
/**
|
|
10
|
+
* Unified search options including formatting preferences
|
|
11
|
+
*/
|
|
12
|
+
export interface UnifiedSearchOptions extends SearchEngineOptions {
|
|
13
|
+
/** Output format: list, enhanced, or custom */
|
|
14
|
+
format?: 'list' | 'enhanced' | string;
|
|
15
|
+
/** Skill path for relative path calculation */
|
|
16
|
+
skillPath?: string;
|
|
17
|
+
/** Formatting options */
|
|
18
|
+
formatting?: {
|
|
19
|
+
maxPreviewLength?: number;
|
|
20
|
+
showFullContentThreshold?: number;
|
|
21
|
+
minScoreForPreview?: number;
|
|
22
|
+
showLineNumbers?: boolean;
|
|
23
|
+
};
|
|
10
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Unified Search Engine
|
|
27
|
+
* Coordinates search adapters with formatters for complete search experience
|
|
28
|
+
*/
|
|
11
29
|
export declare class UnifiedSearchEngine {
|
|
12
|
-
private
|
|
30
|
+
private searchEngine;
|
|
31
|
+
private formatter;
|
|
13
32
|
private options;
|
|
14
33
|
constructor(options: UnifiedSearchOptions);
|
|
15
|
-
|
|
16
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Initialize the search engine
|
|
36
|
+
*/
|
|
37
|
+
initialize(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Build search index
|
|
40
|
+
*/
|
|
41
|
+
buildIndex(referencesDir: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Search and optionally format results
|
|
44
|
+
*/
|
|
17
45
|
search(query: string, topK?: number, where?: Record<string, any>): Promise<SearchResult[]>;
|
|
18
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Search and return formatted results
|
|
48
|
+
*/
|
|
49
|
+
searchAndFormat(query: string, topK?: number, where?: Record<string, any>): Promise<FormattedResult[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if search index is built
|
|
52
|
+
*/
|
|
53
|
+
isBuilt(): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Get search statistics
|
|
56
|
+
*/
|
|
19
57
|
getStats(): Promise<{
|
|
20
58
|
totalDocuments: number;
|
|
21
59
|
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Clear search index
|
|
62
|
+
*/
|
|
63
|
+
clearIndex(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Ensure engine is initialized
|
|
66
|
+
*/
|
|
67
|
+
private ensureInitialized;
|
|
22
68
|
}
|
|
23
69
|
//# sourceMappingURL=unifiedSearch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unifiedSearch.d.ts","sourceRoot":"","sources":["../../src/core/unifiedSearch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"unifiedSearch.d.ts","sourceRoot":"","sources":["../../src/core/unifiedSearch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EAAsC,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAGnE;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;IACrC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAA;QACjC,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;CACF;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAA6D;IACjF,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,OAAO,CAAsB;gBAEzB,OAAO,EAAE,oBAAoB;IAKzC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;OAEG;IACG,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAU,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAQ1B;;OAEG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAU,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC;IAkB7B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAKjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAKrD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;YACW,iBAAiB;CAKhC"}
|