skill-creator 1.4.3 → 1.5.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/dist/chunk-Da8dvM5T.mjs +1 -0
- package/dist/cli.d.mts +1016 -0
- package/dist/cli.d.mts.map +1 -0
- package/dist/cli.mjs +36 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/contentManager-8rmWJMb6.mjs +22 -0
- package/dist/contentManager-8rmWJMb6.mjs.map +1 -0
- package/dist/contentManager-Xt8N5psY.mjs +1 -0
- package/dist/dist-DZL34HNo.mjs +8 -0
- package/dist/dist-DZL34HNo.mjs.map +1 -0
- package/dist/dist-X_kVEzbK.mjs +1 -0
- package/dist/esm-8qfZdcpd.mjs +33 -0
- package/dist/esm-8qfZdcpd.mjs.map +1 -0
- package/dist/esm-BF5pvSbc.mjs +1 -0
- package/dist/esm-BbhxxeGF.mjs +4 -0
- package/dist/esm-BbhxxeGF.mjs.map +1 -0
- package/dist/index.d.mts +1964 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +21 -0
- package/dist/index.mjs.map +1 -0
- package/dist/listContext7-DKXzgWdn.mjs +2 -0
- package/dist/listContext7-DKXzgWdn.mjs.map +1 -0
- package/dist/package-B4FNst2t.mjs +2 -0
- package/dist/package-B4FNst2t.mjs.map +1 -0
- package/dist/path-CuoiIaIe.mjs +2 -0
- package/dist/path-CuoiIaIe.mjs.map +1 -0
- package/dist/removeContext7-DOXrTXeI.mjs +3 -0
- package/dist/removeContext7-DOXrTXeI.mjs.map +1 -0
- package/dist/removeSkill-C-ehFexk.mjs +5 -0
- package/dist/removeSkill-C-ehFexk.mjs.map +1 -0
- package/dist/removeSkill-DWwhvzej.mjs +1 -0
- package/dist/runScript-Cr9RRN9y.mjs +14 -0
- package/dist/runScript-Cr9RRN9y.mjs.map +1 -0
- package/dist/search_format-DIs-1lKk.mjs +5 -0
- package/dist/search_format-DIs-1lKk.mjs.map +1 -0
- package/dist/shared-CFoY2Xhg.mjs +2 -0
- package/dist/shared-CFoY2Xhg.mjs.map +1 -0
- package/dist/skillMdManager-DP8fGZb7.mjs +7 -0
- package/dist/skillMdManager-DP8fGZb7.mjs.map +1 -0
- package/dist/unifiedSearch-CGZXw0NB.mjs +1 -0
- package/dist/unifiedSearch-l-lrSc9C.mjs +4 -0
- package/dist/unifiedSearch-l-lrSc9C.mjs.map +1 -0
- package/package.json +30 -17
- package/dist/cli.d.ts +0 -8
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -513
- package/dist/cli.js.map +0 -1
- package/dist/commands/addContent.d.ts +0 -5
- package/dist/commands/addContent.d.ts.map +0 -1
- package/dist/commands/addContent.js +0 -88
- package/dist/commands/addContent.js.map +0 -1
- package/dist/commands/buildIndex.d.ts +0 -5
- package/dist/commands/buildIndex.d.ts.map +0 -1
- package/dist/commands/buildIndex.js +0 -16
- package/dist/commands/buildIndex.js.map +0 -1
- package/dist/commands/createSkill.d.ts +0 -6
- package/dist/commands/createSkill.d.ts.map +0 -1
- package/dist/commands/createSkill.js +0 -32
- package/dist/commands/createSkill.js.map +0 -1
- package/dist/commands/downloadContext7.d.ts +0 -5
- package/dist/commands/downloadContext7.d.ts.map +0 -1
- package/dist/commands/downloadContext7.js +0 -71
- package/dist/commands/downloadContext7.js.map +0 -1
- package/dist/commands/init.d.ts +0 -5
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -95
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/listContent.d.ts +0 -5
- package/dist/commands/listContent.d.ts.map +0 -1
- package/dist/commands/listContent.js +0 -34
- package/dist/commands/listContent.js.map +0 -1
- package/dist/commands/listContext7.d.ts +0 -5
- package/dist/commands/listContext7.d.ts.map +0 -1
- package/dist/commands/listContext7.js +0 -26
- package/dist/commands/listContext7.js.map +0 -1
- package/dist/commands/listSkills.d.ts +0 -5
- package/dist/commands/listSkills.d.ts.map +0 -1
- package/dist/commands/listSkills.js +0 -34
- package/dist/commands/listSkills.js.map +0 -1
- package/dist/commands/removeContext7.d.ts +0 -5
- package/dist/commands/removeContext7.d.ts.map +0 -1
- package/dist/commands/removeContext7.js +0 -54
- package/dist/commands/removeContext7.js.map +0 -1
- package/dist/commands/removeSkill.d.ts +0 -5
- package/dist/commands/removeSkill.d.ts.map +0 -1
- package/dist/commands/removeSkill.js +0 -83
- package/dist/commands/removeSkill.js.map +0 -1
- package/dist/commands/searchContent.d.ts +0 -5
- package/dist/commands/searchContent.d.ts.map +0 -1
- package/dist/commands/searchContent.js +0 -99
- package/dist/commands/searchContent.js.map +0 -1
- package/dist/commands/shared.d.ts +0 -21
- package/dist/commands/shared.d.ts.map +0 -1
- package/dist/commands/shared.js +0 -80
- package/dist/commands/shared.js.map +0 -1
- package/dist/core/autoSearchAdapter.d.ts +0 -42
- package/dist/core/autoSearchAdapter.d.ts.map +0 -1
- package/dist/core/autoSearchAdapter.js +0 -116
- package/dist/core/autoSearchAdapter.js.map +0 -1
- package/dist/core/chromaSearch.d.ts +0 -24
- package/dist/core/chromaSearch.d.ts.map +0 -1
- package/dist/core/chromaSearch.js +0 -194
- package/dist/core/chromaSearch.js.map +0 -1
- package/dist/core/chromaSearchAdapter.d.ts +0 -86
- package/dist/core/chromaSearchAdapter.d.ts.map +0 -1
- package/dist/core/chromaSearchAdapter.js +0 -477
- package/dist/core/chromaSearchAdapter.js.map +0 -1
- package/dist/core/chromaServerManager.d.ts +0 -64
- package/dist/core/chromaServerManager.d.ts.map +0 -1
- package/dist/core/chromaServerManager.js +0 -186
- package/dist/core/chromaServerManager.js.map +0 -1
- package/dist/core/contentManager.d.ts +0 -65
- package/dist/core/contentManager.d.ts.map +0 -1
- package/dist/core/contentManager.js +0 -533
- package/dist/core/contentManager.js.map +0 -1
- package/dist/core/fuzzySearchAdapter.d.ts +0 -33
- package/dist/core/fuzzySearchAdapter.d.ts.map +0 -1
- package/dist/core/fuzzySearchAdapter.js +0 -185
- package/dist/core/fuzzySearchAdapter.js.map +0 -1
- package/dist/core/portUtils.d.ts +0 -51
- package/dist/core/portUtils.d.ts.map +0 -1
- package/dist/core/portUtils.js +0 -120
- package/dist/core/portUtils.js.map +0 -1
- package/dist/core/runScript.d.ts +0 -5
- package/dist/core/runScript.d.ts.map +0 -1
- package/dist/core/runScript.js +0 -40
- package/dist/core/runScript.js.map +0 -1
- package/dist/core/searchAdapter.d.ts +0 -48
- package/dist/core/searchAdapter.d.ts.map +0 -1
- package/dist/core/searchAdapter.js +0 -6
- package/dist/core/searchAdapter.js.map +0 -1
- package/dist/core/searchEngineFactory.d.ts +0 -30
- package/dist/core/searchEngineFactory.d.ts.map +0 -1
- package/dist/core/searchEngineFactory.js +0 -41
- package/dist/core/searchEngineFactory.js.map +0 -1
- package/dist/core/skillCreator.d.ts +0 -12
- package/dist/core/skillCreator.d.ts.map +0 -1
- package/dist/core/skillCreator.js +0 -79
- package/dist/core/skillCreator.js.map +0 -1
- package/dist/core/templateManager.d.ts +0 -28
- package/dist/core/templateManager.d.ts.map +0 -1
- package/dist/core/templateManager.js +0 -583
- package/dist/core/templateManager.js.map +0 -1
- package/dist/core/unifiedSearch.d.ts +0 -69
- package/dist/core/unifiedSearch.d.ts.map +0 -1
- package/dist/core/unifiedSearch.js +0 -105
- package/dist/core/unifiedSearch.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/search_format/enhancedFormatter.d.ts +0 -109
- package/dist/search_format/enhancedFormatter.d.ts.map +0 -1
- package/dist/search_format/enhancedFormatter.js +0 -262
- package/dist/search_format/enhancedFormatter.js.map +0 -1
- package/dist/search_format/index.d.ts +0 -10
- package/dist/search_format/index.d.ts.map +0 -1
- package/dist/search_format/index.js +0 -22
- package/dist/search_format/index.js.map +0 -1
- package/dist/search_format/listFormatter.d.ts +0 -16
- package/dist/search_format/listFormatter.d.ts.map +0 -1
- package/dist/search_format/listFormatter.js +0 -51
- package/dist/search_format/listFormatter.js.map +0 -1
- package/dist/search_format/types.d.ts +0 -69
- package/dist/search_format/types.d.ts.map +0 -1
- package/dist/search_format/types.js +0 -5
- package/dist/search_format/types.js.map +0 -1
- package/dist/types/index.d.ts +0 -74
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/utils/claudeCodeDetection.d.ts +0 -27
- package/dist/utils/claudeCodeDetection.d.ts.map +0 -1
- package/dist/utils/claudeCodeDetection.js +0 -81
- package/dist/utils/claudeCodeDetection.js.map +0 -1
- package/dist/utils/config.d.ts +0 -23
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -41
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/package.d.ts +0 -88
- package/dist/utils/package.d.ts.map +0 -1
- package/dist/utils/package.js +0 -221
- package/dist/utils/package.js.map +0 -1
- package/dist/utils/skillMdManager.d.ts +0 -45
- package/dist/utils/skillMdManager.d.ts.map +0 -1
- package/dist/utils/skillMdManager.js +0 -173
- package/dist/utils/skillMdManager.js.map +0 -1
package/dist/cli.js
DELETED
|
@@ -1,513 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* CLI interface for skill creator
|
|
4
|
-
*/
|
|
5
|
-
import { Command } from 'commander';
|
|
6
|
-
import gradient from 'gradient-string';
|
|
7
|
-
import { PackageUtils } from './utils/package.js';
|
|
8
|
-
import path, { join } from 'node:path';
|
|
9
|
-
import { homedir } from 'node:os';
|
|
10
|
-
import { readdirSync, existsSync } from 'node:fs';
|
|
11
|
-
import { createSkillForPackage } from './commands/createSkill.js';
|
|
12
|
-
const program = new Command();
|
|
13
|
-
let globalOptions = {};
|
|
14
|
-
// Helper function to resolve skill directory from global or command options
|
|
15
|
-
async function resolveSkillDirectory(commandOptions) {
|
|
16
|
-
// Use command options first, then global options
|
|
17
|
-
const pwd = commandOptions.pwd || globalOptions.pwd;
|
|
18
|
-
if (pwd) {
|
|
19
|
-
return pwd;
|
|
20
|
-
}
|
|
21
|
-
if (commandOptions.package) {
|
|
22
|
-
const findDir = (base) => {
|
|
23
|
-
if (!existsSync(base))
|
|
24
|
-
return undefined;
|
|
25
|
-
const dirs = readdirSync(base, { withFileTypes: true })
|
|
26
|
-
.filter((dirent) => dirent.isDirectory())
|
|
27
|
-
.map((dirent) => dirent.name)
|
|
28
|
-
.filter((name) => name.includes(commandOptions.package.replace(/[^a-z0-9]/gi, '')));
|
|
29
|
-
return dirs.length > 0 ? join(base, dirs[0]) : undefined;
|
|
30
|
-
};
|
|
31
|
-
const skillDir = findDir(join(process.cwd(), '.claude', 'skills')) ||
|
|
32
|
-
findDir(join(homedir(), '.claude', 'skills'));
|
|
33
|
-
if (skillDir) {
|
|
34
|
-
return skillDir;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
throw new Error('Could not find skill directory. Please provide --pwd or a valid --package.');
|
|
38
|
-
}
|
|
39
|
-
program
|
|
40
|
-
.name('skill-creator')
|
|
41
|
-
.description('Create claude-code-skills with documentation management')
|
|
42
|
-
.version(PackageUtils.getCurrentPackageInfo()?.version ?? '0.0.0')
|
|
43
|
-
.option('--pwd <path>', 'Global path to the skill directory (used for all commands)');
|
|
44
|
-
// Handle global options
|
|
45
|
-
program.hook('preAction', (thisCommand) => {
|
|
46
|
-
const options = thisCommand.opts();
|
|
47
|
-
globalOptions.pwd = options.pwd;
|
|
48
|
-
});
|
|
49
|
-
// Add create-cc-skill command
|
|
50
|
-
program
|
|
51
|
-
.command('create-cc-skill')
|
|
52
|
-
.option('--interactive', 'Enable interactive confirmation prompts')
|
|
53
|
-
.option('--scope <scope>', 'Storage scope (user or current), or custom directory to store skills')
|
|
54
|
-
.option('--name <name>', 'The skill name')
|
|
55
|
-
.option('--description <description>', 'Custom description for the skill')
|
|
56
|
-
.option('--force', 'Force overwrite existing files in the skill directory')
|
|
57
|
-
.argument('<skill_dir_name>', 'The name of the skill directory to create')
|
|
58
|
-
.action(async (skillDirName, options) => {
|
|
59
|
-
try {
|
|
60
|
-
let { scope, interactive, force, description, name } = options;
|
|
61
|
-
// Import inquirer for interactive prompts
|
|
62
|
-
const { default: inquirer } = await import('inquirer');
|
|
63
|
-
let finalSkillName = name || skillDirName;
|
|
64
|
-
if (interactive) {
|
|
65
|
-
console.log('Skill Creation Configuration:');
|
|
66
|
-
// 1. 确认存储位置
|
|
67
|
-
if (!scope) {
|
|
68
|
-
const scopeAnswer = await inquirer.prompt([
|
|
69
|
-
{
|
|
70
|
-
type: 'list',
|
|
71
|
-
name: 'scope',
|
|
72
|
-
message: 'Where would you like to store this skill?',
|
|
73
|
-
choices: [
|
|
74
|
-
{
|
|
75
|
-
name: 'Current directory (./.claude/skills/)',
|
|
76
|
-
value: 'current',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: 'User home directory (~/.claude/skills)',
|
|
80
|
-
value: 'user',
|
|
81
|
-
},
|
|
82
|
-
new inquirer.Separator(),
|
|
83
|
-
{
|
|
84
|
-
name: 'Custom directory',
|
|
85
|
-
value: 'custom',
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
default: existsSync(join(process.cwd(), '.claude/agents/skill-creator.md'))
|
|
89
|
-
? 'current'
|
|
90
|
-
: 'user',
|
|
91
|
-
},
|
|
92
|
-
]);
|
|
93
|
-
scope = scopeAnswer.scope;
|
|
94
|
-
if (scope === 'custom') {
|
|
95
|
-
const scopeAnswer = await inquirer.prompt([
|
|
96
|
-
{
|
|
97
|
-
type: 'input',
|
|
98
|
-
name: 'scope',
|
|
99
|
-
message: 'Directory to store skills',
|
|
100
|
-
validate: (input) => input.trim() !== '' || 'Directory cannot be empty',
|
|
101
|
-
},
|
|
102
|
-
]);
|
|
103
|
-
scope = path.join(process.cwd(), scopeAnswer.scope);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// 2. 如果没有提供--name参数,询问包名
|
|
107
|
-
if (!name) {
|
|
108
|
-
const { packageNameConfirmed } = await inquirer.prompt([
|
|
109
|
-
{
|
|
110
|
-
type: 'confirm',
|
|
111
|
-
name: 'packageNameConfirmed',
|
|
112
|
-
message: `Use '${skillDirName}' as the package name?`,
|
|
113
|
-
default: true,
|
|
114
|
-
},
|
|
115
|
-
]);
|
|
116
|
-
if (!packageNameConfirmed) {
|
|
117
|
-
const { customSkillName } = await inquirer.prompt([
|
|
118
|
-
{
|
|
119
|
-
type: 'input',
|
|
120
|
-
name: 'customSkillName',
|
|
121
|
-
message: 'Enter the skill name:',
|
|
122
|
-
validate: (input) => input.trim() !== '' || 'Skill name cannot be empty',
|
|
123
|
-
},
|
|
124
|
-
]);
|
|
125
|
-
finalSkillName = customSkillName.trim();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (!description) {
|
|
129
|
-
const { customDescription } = await inquirer.prompt([
|
|
130
|
-
{
|
|
131
|
-
type: 'input',
|
|
132
|
-
name: 'customDescription',
|
|
133
|
-
message: 'Enter the skill description:',
|
|
134
|
-
},
|
|
135
|
-
]);
|
|
136
|
-
description = customDescription.trim();
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (scope == null) {
|
|
140
|
-
scope = existsSync(join(process.cwd(), '.claude/agents/skill-creator.md'))
|
|
141
|
-
? 'current'
|
|
142
|
-
: 'user';
|
|
143
|
-
}
|
|
144
|
-
if (scope === 'user') {
|
|
145
|
-
scope = path.join(homedir(), '.claude/skills');
|
|
146
|
-
}
|
|
147
|
-
else if (scope === 'current') {
|
|
148
|
-
scope = path.join(process.cwd(), '.claude/skills');
|
|
149
|
-
}
|
|
150
|
-
if (interactive) {
|
|
151
|
-
// 3. 确认最终配置
|
|
152
|
-
console.log('\nFinal Configuration:');
|
|
153
|
-
console.log(`- Storage location: ${scope}`);
|
|
154
|
-
console.log(`- Skill directory name: ${skillDirName}`);
|
|
155
|
-
console.log(`- Skill Name: ${finalSkillName}`);
|
|
156
|
-
console.log(`- Skill Description: ${description}`);
|
|
157
|
-
const { confirmFinal } = await inquirer.prompt([
|
|
158
|
-
{
|
|
159
|
-
type: 'confirm',
|
|
160
|
-
name: 'confirmFinal',
|
|
161
|
-
message: 'Proceed with skill creation?',
|
|
162
|
-
default: true,
|
|
163
|
-
},
|
|
164
|
-
]);
|
|
165
|
-
if (!confirmFinal) {
|
|
166
|
-
console.log('Skill creation cancelled.');
|
|
167
|
-
process.exit(0);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Create the skill with confirmed configuration
|
|
171
|
-
const skillPath = await createSkillForPackage({
|
|
172
|
-
baseDir: scope,
|
|
173
|
-
skillDirname: skillDirName,
|
|
174
|
-
skillName: finalSkillName,
|
|
175
|
-
skillDescription: description,
|
|
176
|
-
force: force,
|
|
177
|
-
});
|
|
178
|
-
console.log(`Skill created successfully at: ${skillPath}`);
|
|
179
|
-
}
|
|
180
|
-
catch (error) {
|
|
181
|
-
console.error('Error:', error instanceof Error ? (error.stack ?? error.message) : String(error));
|
|
182
|
-
process.exit(1);
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
// Add interactive init command
|
|
186
|
-
program
|
|
187
|
-
.command('init')
|
|
188
|
-
.description('Install skill-creator as subagent (interactive mode)')
|
|
189
|
-
.option('--scope <scope>', 'Storage scope (user or current)')
|
|
190
|
-
.action(async (options) => {
|
|
191
|
-
const { runScript } = await import('./core/runScript.js');
|
|
192
|
-
const args = [];
|
|
193
|
-
// Pass scope to init command
|
|
194
|
-
if (options.scope) {
|
|
195
|
-
args.push('--scope', options.scope);
|
|
196
|
-
}
|
|
197
|
-
await runScript('init', args);
|
|
198
|
-
});
|
|
199
|
-
// Add init command to install subagents (non-interactive version)
|
|
200
|
-
program
|
|
201
|
-
.command('init-cc')
|
|
202
|
-
.description('Install skill-creator as subagent in ~/.claude/agents/')
|
|
203
|
-
.action(async () => {
|
|
204
|
-
const { runScript } = await import('./core/runScript.js');
|
|
205
|
-
// For init-cc, we want the non-interactive version that installs to user directory
|
|
206
|
-
// Use --scope=user for consistency with other CLI commands
|
|
207
|
-
await runScript('init', ['--scope', 'user']);
|
|
208
|
-
});
|
|
209
|
-
// Add search command for package searching
|
|
210
|
-
program
|
|
211
|
-
.command('search')
|
|
212
|
-
.argument('<keywords>', 'Search keywords for npm packages')
|
|
213
|
-
.option('-l, --limit <limit>', 'Number of results to show', '10')
|
|
214
|
-
.action(async (keywords, options) => {
|
|
215
|
-
const query = keywords;
|
|
216
|
-
const suggestions = await PackageUtils.suggestPackages(query, {
|
|
217
|
-
limit: parseInt(options.limit),
|
|
218
|
-
});
|
|
219
|
-
console.log(JSON.stringify(suggestions, null, 2));
|
|
220
|
-
});
|
|
221
|
-
// Add get-info command for package information
|
|
222
|
-
program
|
|
223
|
-
.command('get-info')
|
|
224
|
-
.argument('<package_name>', 'The npm package name to get information for')
|
|
225
|
-
.action(async (packageName) => {
|
|
226
|
-
const packageInfo = await PackageUtils.getPackageInfo(packageName);
|
|
227
|
-
if (!packageInfo) {
|
|
228
|
-
console.error(`❌ Package "${packageName}" not found or API error occurred.`);
|
|
229
|
-
process.exit(1);
|
|
230
|
-
}
|
|
231
|
-
const version = packageInfo.version;
|
|
232
|
-
const skillDirName = PackageUtils.createSkillFolderName(packageName, version);
|
|
233
|
-
const result = {
|
|
234
|
-
skill_dir_name: skillDirName,
|
|
235
|
-
name: packageInfo.name,
|
|
236
|
-
version: version,
|
|
237
|
-
description: packageInfo.description || '',
|
|
238
|
-
keywords: packageInfo.keywords || [],
|
|
239
|
-
license: packageInfo.license || '',
|
|
240
|
-
author: packageInfo.author || '',
|
|
241
|
-
maintainers: packageInfo.maintainers || [],
|
|
242
|
-
homepage: packageInfo.homepage || '',
|
|
243
|
-
repository: {
|
|
244
|
-
url: packageInfo.repository?.url || '',
|
|
245
|
-
type: packageInfo.repository?.type || '',
|
|
246
|
-
},
|
|
247
|
-
bugs: {
|
|
248
|
-
url: packageInfo.bugs?.url || '',
|
|
249
|
-
},
|
|
250
|
-
funding: packageInfo.funding || '',
|
|
251
|
-
scripts: packageInfo.scripts || {},
|
|
252
|
-
engines: packageInfo.engines || {},
|
|
253
|
-
types: packageInfo.types || '',
|
|
254
|
-
dependencies: packageInfo.dependencies || {},
|
|
255
|
-
devDependencies: packageInfo.devDependencies || {},
|
|
256
|
-
time: {
|
|
257
|
-
created: packageInfo.time?.created || '',
|
|
258
|
-
modified: packageInfo.time?.modified || '',
|
|
259
|
-
},
|
|
260
|
-
};
|
|
261
|
-
console.log(JSON.stringify(result, null, 2));
|
|
262
|
-
});
|
|
263
|
-
// Add search-skill command
|
|
264
|
-
program
|
|
265
|
-
.command('search-skill')
|
|
266
|
-
.argument('<query>', 'Search query')
|
|
267
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
268
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
269
|
-
.option('--mode <mode>', 'Search mode: auto, fuzzy, or chroma', 'auto')
|
|
270
|
-
.option('--list', 'Show simplified list view (basic info only)', false)
|
|
271
|
-
.action(async (query, options) => {
|
|
272
|
-
try {
|
|
273
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
274
|
-
console.log(gradient('cyan', 'magenta')('\n🔍 Searching in skill...'));
|
|
275
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
276
|
-
console.log(`Query: ${query}`);
|
|
277
|
-
const { chdir } = await import('node:process');
|
|
278
|
-
const originalCwd = process.cwd();
|
|
279
|
-
chdir(skillDir);
|
|
280
|
-
try {
|
|
281
|
-
const { runScript } = await import('./core/runScript.js');
|
|
282
|
-
const args = ['--query', query];
|
|
283
|
-
if (options.mode !== 'auto')
|
|
284
|
-
args.push('--mode', options.mode);
|
|
285
|
-
if (options.list)
|
|
286
|
-
args.push('--list');
|
|
287
|
-
// Enhanced search is now enabled by default, no need for --enhanced flag
|
|
288
|
-
await runScript('search-skill', args);
|
|
289
|
-
}
|
|
290
|
-
finally {
|
|
291
|
-
chdir(originalCwd);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
catch (error) {
|
|
295
|
-
console.error(error);
|
|
296
|
-
process.exit(1);
|
|
297
|
-
}
|
|
298
|
-
});
|
|
299
|
-
// Add download-context7 command
|
|
300
|
-
program
|
|
301
|
-
.command('download-context7')
|
|
302
|
-
.argument('<project_id>', 'Context7 library ID')
|
|
303
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
304
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
305
|
-
.option('-f, --force', 'Force update even if up to date')
|
|
306
|
-
.option('--skip-chroma-indexing', 'Skip automatic ChromaDB index building after download')
|
|
307
|
-
.action(async (projectId, options) => {
|
|
308
|
-
try {
|
|
309
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
310
|
-
console.log(gradient('cyan', 'magenta')('\n📥 Downloading Context7 documentation...'));
|
|
311
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
312
|
-
console.log(`Context7 ID: ${projectId}`);
|
|
313
|
-
const { chdir } = await import('node:process');
|
|
314
|
-
const originalCwd = process.cwd();
|
|
315
|
-
chdir(skillDir);
|
|
316
|
-
try {
|
|
317
|
-
const { runScript } = await import('./core/runScript.js');
|
|
318
|
-
const args = [];
|
|
319
|
-
if (options.force)
|
|
320
|
-
args.push('--force');
|
|
321
|
-
if (options['skip-chroma-indexing'])
|
|
322
|
-
args.push('--skip-chroma-indexing');
|
|
323
|
-
args.push('--project-id', projectId);
|
|
324
|
-
await runScript('download-context7', args);
|
|
325
|
-
}
|
|
326
|
-
finally {
|
|
327
|
-
chdir(originalCwd);
|
|
328
|
-
}
|
|
329
|
-
console.log(gradient('green', 'cyan')('\n✅ Documentation downloaded and sliced!'));
|
|
330
|
-
}
|
|
331
|
-
catch (error) {
|
|
332
|
-
console.error(error);
|
|
333
|
-
process.exit(1);
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
// Add add-skill command
|
|
337
|
-
program
|
|
338
|
-
.command('add-skill')
|
|
339
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
340
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
341
|
-
.option('-t, --title <title>', 'Content title')
|
|
342
|
-
.option('-c, --content <content>', 'Content text')
|
|
343
|
-
.option('-f, --file <file>', 'Read content from file')
|
|
344
|
-
.option('--force', 'Force overwrite existing content')
|
|
345
|
-
.option('--force-append', 'Append content to existing file instead of creating new file')
|
|
346
|
-
.action(async (options) => {
|
|
347
|
-
if (!options.title && !options.file) {
|
|
348
|
-
console.error('❌ Please provide either --title or --file');
|
|
349
|
-
process.exit(1);
|
|
350
|
-
}
|
|
351
|
-
try {
|
|
352
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
353
|
-
console.log(gradient('cyan', 'magenta')('\n📝 Adding content to skill...'));
|
|
354
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
355
|
-
const { chdir } = await import('node:process');
|
|
356
|
-
const originalCwd = process.cwd();
|
|
357
|
-
chdir(skillDir);
|
|
358
|
-
try {
|
|
359
|
-
const { runScript } = await import('./core/runScript.js');
|
|
360
|
-
const args = [];
|
|
361
|
-
if (options.title)
|
|
362
|
-
args.push('--title', options.title);
|
|
363
|
-
if (options.content)
|
|
364
|
-
args.push('--content', options.content);
|
|
365
|
-
if (options.file)
|
|
366
|
-
args.push('--file', options.file);
|
|
367
|
-
if (options.force)
|
|
368
|
-
args.push('--force');
|
|
369
|
-
if (options.forceAppend)
|
|
370
|
-
args.push('--force-append');
|
|
371
|
-
await runScript('add', args);
|
|
372
|
-
}
|
|
373
|
-
finally {
|
|
374
|
-
chdir(originalCwd);
|
|
375
|
-
}
|
|
376
|
-
console.log(gradient('green', 'cyan')('\n✅ Content added successfully!'));
|
|
377
|
-
}
|
|
378
|
-
catch (error) {
|
|
379
|
-
console.error(error);
|
|
380
|
-
process.exit(1);
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
|
-
// Add sub-commands for script execution
|
|
384
|
-
program
|
|
385
|
-
.command('list-skills')
|
|
386
|
-
.description('List all skill content files')
|
|
387
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
388
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
389
|
-
.action(async (options) => {
|
|
390
|
-
try {
|
|
391
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
392
|
-
console.log(gradient('cyan', 'magenta')('\n📚 Skill Content'));
|
|
393
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
394
|
-
const { chdir } = await import('node:process');
|
|
395
|
-
const originalCwd = process.cwd();
|
|
396
|
-
chdir(skillDir);
|
|
397
|
-
try {
|
|
398
|
-
const { runScript } = await import('./core/runScript.js');
|
|
399
|
-
await runScript('list-skills', process.argv
|
|
400
|
-
.slice(3)
|
|
401
|
-
.filter((arg) => !arg.startsWith('--pwd') &&
|
|
402
|
-
!arg.startsWith('--package') &&
|
|
403
|
-
arg !== options.pwd &&
|
|
404
|
-
arg !== options.package));
|
|
405
|
-
}
|
|
406
|
-
finally {
|
|
407
|
-
chdir(originalCwd);
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
catch (error) {
|
|
411
|
-
console.error(error);
|
|
412
|
-
process.exit(1);
|
|
413
|
-
}
|
|
414
|
-
});
|
|
415
|
-
// Add remove-skill command
|
|
416
|
-
program
|
|
417
|
-
.command('remove-skill')
|
|
418
|
-
.description('Remove a skill file')
|
|
419
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
420
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
421
|
-
.option('--type <type>', 'Type: user or context7:<project_id>', 'user')
|
|
422
|
-
.option('--file <file>', 'File name to remove')
|
|
423
|
-
.action(async (options) => {
|
|
424
|
-
try {
|
|
425
|
-
if (!options.file) {
|
|
426
|
-
console.error('❌ Please provide --file <filename>');
|
|
427
|
-
process.exit(1);
|
|
428
|
-
}
|
|
429
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
430
|
-
console.log(gradient('cyan', 'magenta')('\n🗑️ Remove Skill File'));
|
|
431
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
432
|
-
console.log(`Type: ${options.type}`);
|
|
433
|
-
console.log(`File: ${options.file}`);
|
|
434
|
-
const { chdir } = await import('node:process');
|
|
435
|
-
const originalCwd = process.cwd();
|
|
436
|
-
chdir(skillDir);
|
|
437
|
-
try {
|
|
438
|
-
const { removeSkill } = await import('./commands/removeSkill.js');
|
|
439
|
-
await removeSkill(['--type', options.type, '--file', options.file]);
|
|
440
|
-
}
|
|
441
|
-
finally {
|
|
442
|
-
chdir(originalCwd);
|
|
443
|
-
}
|
|
444
|
-
console.log(gradient('green', 'cyan')('\n✅ Skill file removed!'));
|
|
445
|
-
}
|
|
446
|
-
catch (error) {
|
|
447
|
-
console.error(error);
|
|
448
|
-
process.exit(1);
|
|
449
|
-
}
|
|
450
|
-
});
|
|
451
|
-
// Add list-context7 command
|
|
452
|
-
program
|
|
453
|
-
.command('list-context7')
|
|
454
|
-
.description('List all Context7 projects')
|
|
455
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
456
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
457
|
-
.action(async (options) => {
|
|
458
|
-
try {
|
|
459
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
460
|
-
console.log(gradient('cyan', 'magenta')('\n📦 Context7 Projects'));
|
|
461
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
462
|
-
const { chdir } = await import('node:process');
|
|
463
|
-
const originalCwd = process.cwd();
|
|
464
|
-
chdir(skillDir);
|
|
465
|
-
try {
|
|
466
|
-
const { listContext7 } = await import('./commands/listContext7.js');
|
|
467
|
-
await listContext7();
|
|
468
|
-
}
|
|
469
|
-
finally {
|
|
470
|
-
chdir(originalCwd);
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
catch (error) {
|
|
474
|
-
console.error(error);
|
|
475
|
-
process.exit(1);
|
|
476
|
-
}
|
|
477
|
-
});
|
|
478
|
-
// Add remove-context7 command
|
|
479
|
-
program
|
|
480
|
-
.command('remove-context7')
|
|
481
|
-
.argument('<project_id>', 'Context7 project ID to remove')
|
|
482
|
-
.description('Remove a Context7 project')
|
|
483
|
-
.option('--pwd <path>', 'Path to the skill directory')
|
|
484
|
-
.option('--package <name>', 'Package name to find skill directory for')
|
|
485
|
-
.action(async (projectId, options) => {
|
|
486
|
-
try {
|
|
487
|
-
const skillDir = await resolveSkillDirectory(options);
|
|
488
|
-
console.log(gradient('cyan', 'magenta')('\n🗑️ Remove Context7 Project'));
|
|
489
|
-
console.log(`Skill Path: ${skillDir}`);
|
|
490
|
-
console.log(`Project ID: ${projectId}`);
|
|
491
|
-
const { chdir } = await import('node:process');
|
|
492
|
-
const originalCwd = process.cwd();
|
|
493
|
-
chdir(skillDir);
|
|
494
|
-
try {
|
|
495
|
-
const { removeContext7 } = await import('./commands/removeContext7.js');
|
|
496
|
-
await removeContext7(['--project-id', projectId]);
|
|
497
|
-
}
|
|
498
|
-
finally {
|
|
499
|
-
chdir(originalCwd);
|
|
500
|
-
}
|
|
501
|
-
console.log(gradient('green', 'cyan')('\n✅ Context7 project removed!'));
|
|
502
|
-
}
|
|
503
|
-
catch (error) {
|
|
504
|
-
console.error(error);
|
|
505
|
-
process.exit(1);
|
|
506
|
-
}
|
|
507
|
-
});
|
|
508
|
-
// Export for testing
|
|
509
|
-
export { program };
|
|
510
|
-
// Run CLI if this file is executed directly
|
|
511
|
-
// Always parse for now since we're using this as the main CLI entry point
|
|
512
|
-
program.parse();
|
|
513
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addContent.d.ts","sourceRoot":"","sources":["../../src/commands/addContent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2F9D"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Add content command
|
|
3
|
-
*/
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { existsSync, readdirSync } from 'node:fs';
|
|
6
|
-
import { parseArgs, createSearchEngine } from './shared.js';
|
|
7
|
-
import { updateSkillMdFile } from '../utils/skillMdManager.js';
|
|
8
|
-
export async function addContent(args) {
|
|
9
|
-
const searchEngine = await createSearchEngine({});
|
|
10
|
-
const { ContentManager } = await import('../core/contentManager.js');
|
|
11
|
-
const contentManager = new ContentManager({
|
|
12
|
-
searchEngine,
|
|
13
|
-
referencesDir: join(process.cwd(), 'assets', 'references'),
|
|
14
|
-
});
|
|
15
|
-
// Parse arguments
|
|
16
|
-
const options = parseArgs(args, [
|
|
17
|
-
{ name: 'title', alias: 't', type: 'string', required: false },
|
|
18
|
-
{ name: 'content', alias: 'c', type: 'string', required: false },
|
|
19
|
-
{ name: 'file', alias: 'f', type: 'string', required: false },
|
|
20
|
-
{ name: 'force', type: 'boolean' },
|
|
21
|
-
{ name: 'force-append', type: 'boolean' },
|
|
22
|
-
{ name: 'no-update', type: 'boolean' },
|
|
23
|
-
]);
|
|
24
|
-
if (!options.title && !options.file) {
|
|
25
|
-
console.error('❌ Please provide either --title or --file');
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
let content = options.content || '';
|
|
29
|
-
let title = options.title || '';
|
|
30
|
-
// Read content from file if provided
|
|
31
|
-
if (options.file) {
|
|
32
|
-
const { readFileSync } = await import('node:fs');
|
|
33
|
-
try {
|
|
34
|
-
content = readFileSync(options.file, 'utf-8');
|
|
35
|
-
if (!title) {
|
|
36
|
-
// Extract title from filename or first line
|
|
37
|
-
const fileName = options.file
|
|
38
|
-
.split('/')
|
|
39
|
-
.pop()
|
|
40
|
-
?.replace(/\.[^/.]+$/, '') || '';
|
|
41
|
-
const firstLine = content.split('\n')[0]?.replace(/^#+\s*/, '') || fileName;
|
|
42
|
-
title = firstLine || fileName;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
console.error(`❌ Failed to read file: ${options.file}`);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const result = await contentManager.addUserContent({
|
|
51
|
-
title,
|
|
52
|
-
content,
|
|
53
|
-
force: options.force,
|
|
54
|
-
forceAppend: options['force-append'],
|
|
55
|
-
autoUpdate: !options['no-update'],
|
|
56
|
-
});
|
|
57
|
-
console.log(result.message);
|
|
58
|
-
// Handle existing file case
|
|
59
|
-
if (result.existingFile) {
|
|
60
|
-
console.log('\n📄 Existing file content:');
|
|
61
|
-
console.log('─'.repeat(50));
|
|
62
|
-
console.log(result.existingFile.content);
|
|
63
|
-
console.log('─'.repeat(50));
|
|
64
|
-
process.exit(1);
|
|
65
|
-
}
|
|
66
|
-
if (result.similarContent && result.similarContent.length > 0) {
|
|
67
|
-
console.log('\nSimilar content found:');
|
|
68
|
-
result.similarContent.forEach((similar, i) => {
|
|
69
|
-
console.log(`\n${i + 1}. [${similar.score.toFixed(2)}] ${similar.title}`);
|
|
70
|
-
console.log(` Source: ${similar.source}`);
|
|
71
|
-
console.log(` Preview: ${similar.preview}`);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
// Update SKILL.md with user files list
|
|
75
|
-
if (result.added || result.updated) {
|
|
76
|
-
const skillMdPath = join(process.cwd(), 'SKILL.md');
|
|
77
|
-
if (existsSync(skillMdPath)) {
|
|
78
|
-
const userDir = join(process.cwd(), 'assets', 'references', 'user');
|
|
79
|
-
if (existsSync(userDir)) {
|
|
80
|
-
const files = readdirSync(userDir).filter((f) => f.endsWith('.md'));
|
|
81
|
-
const fileList = files.map((f) => `- ${f}`).join('\n');
|
|
82
|
-
updateSkillMdFile(skillMdPath, 'user-skills', fileList);
|
|
83
|
-
console.log(`📝 Updated SKILL.md with user skills`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=addContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addContent.js","sourceRoot":"","sources":["../../src/commands/addContent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEjD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;IAEpE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;QACxC,YAAY;QACZ,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC;KAC3D,CAAC,CAAA;IAEF,kBAAkB;IAClB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE;QAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QAChE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC7D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;IAE/B,qCAAqC;IACrC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,4CAA4C;gBAC5C,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI;qBACT,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,EAAE;oBACN,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;gBACpC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAA;gBAC3E,KAAK,GAAG,SAAS,IAAI,QAAQ,CAAA;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC;QACjD,KAAK;QACL,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC;QACpC,UAAU,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;KAClC,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAE3B,4BAA4B;IAC5B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QACvC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;YACzE,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;QACnD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;YACnE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;gBACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEtD,iBAAiB,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAA;gBACvD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildIndex.d.ts","sourceRoot":"","sources":["../../src/commands/buildIndex.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9D"}
|