@skillsmith/cli 0.2.7 → 0.3.1
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 +104 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/commands/author/index.d.ts +16 -0
- package/dist/src/commands/author/index.d.ts.map +1 -0
- package/dist/src/commands/author/index.js +18 -0
- package/dist/src/commands/author/index.js.map +1 -0
- package/dist/src/commands/author/init.d.ts +47 -0
- package/dist/src/commands/author/init.d.ts.map +1 -0
- package/dist/src/commands/author/init.js +346 -0
- package/dist/src/commands/author/init.js.map +1 -0
- package/dist/src/commands/author/mcp-init.d.ts +20 -0
- package/dist/src/commands/author/mcp-init.d.ts.map +1 -0
- package/dist/src/commands/author/mcp-init.js +183 -0
- package/dist/src/commands/author/mcp-init.js.map +1 -0
- package/dist/src/commands/author/subagent.d.ts +22 -0
- package/dist/src/commands/author/subagent.d.ts.map +1 -0
- package/dist/src/commands/author/subagent.js +166 -0
- package/dist/src/commands/author/subagent.js.map +1 -0
- package/dist/src/commands/author/transform.d.ts +22 -0
- package/dist/src/commands/author/transform.d.ts.map +1 -0
- package/dist/src/commands/author/transform.js +141 -0
- package/dist/src/commands/author/transform.js.map +1 -0
- package/dist/src/commands/author/utils.d.ts +27 -0
- package/dist/src/commands/author/utils.d.ts.map +1 -0
- package/dist/src/commands/author/utils.js +118 -0
- package/dist/src/commands/author/utils.js.map +1 -0
- package/dist/src/commands/index.d.ts +2 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +6 -1
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/sync.d.ts +21 -0
- package/dist/src/commands/sync.d.ts.map +1 -0
- package/dist/src/commands/sync.js +373 -0
- package/dist/src/commands/sync.js.map +1 -0
- package/dist/src/import.d.ts +1 -0
- package/dist/src/import.d.ts.map +1 -1
- package/dist/src/import.js +20 -5
- package/dist/src/import.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/formatters.d.ts +39 -0
- package/dist/src/utils/formatters.d.ts.map +1 -0
- package/dist/src/utils/formatters.js +69 -0
- package/dist/src/utils/formatters.js.map +1 -0
- package/dist/tests/author.test.js +117 -32
- package/dist/tests/author.test.js.map +1 -1
- package/dist/tests/e2e/author.e2e.test.js +341 -21
- package/dist/tests/e2e/author.e2e.test.js.map +1 -1
- package/dist/tests/e2e/utils/index.d.ts +4 -0
- package/dist/tests/e2e/utils/index.d.ts.map +1 -1
- package/dist/tests/e2e/utils/index.js +4 -0
- package/dist/tests/e2e/utils/index.js.map +1 -1
- package/dist/tests/e2e/utils/mock-github.d.ts +23 -0
- package/dist/tests/e2e/utils/mock-github.d.ts.map +1 -0
- package/dist/tests/e2e/utils/mock-github.js +60 -0
- package/dist/tests/e2e/utils/mock-github.js.map +1 -0
- package/dist/tests/e2e/utils/mock-prompts.d.ts +19 -0
- package/dist/tests/e2e/utils/mock-prompts.d.ts.map +1 -0
- package/dist/tests/e2e/utils/mock-prompts.js +48 -0
- package/dist/tests/e2e/utils/mock-prompts.js.map +1 -0
- package/package.json +1 -1
- package/dist/src/commands/author.d.ts +0 -76
- package/dist/src/commands/author.d.ts.map +0 -1
- package/dist/src/commands/author.js +0 -857
- package/dist/src/commands/author.js.map +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1487: Shared utilities for author commands
|
|
3
|
+
*
|
|
4
|
+
* Common helper functions used across multiple author subcommands.
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import { access } from 'fs/promises';
|
|
8
|
+
import { mkdir } from 'fs/promises';
|
|
9
|
+
import { join, resolve } from 'path';
|
|
10
|
+
import { homedir } from 'os';
|
|
11
|
+
/**
|
|
12
|
+
* Pretty print validation errors and warnings
|
|
13
|
+
*/
|
|
14
|
+
export function printValidationResult(result, filePath) {
|
|
15
|
+
console.log(chalk.bold(`\nValidation Result for ${filePath}:\n`));
|
|
16
|
+
if (result.valid) {
|
|
17
|
+
console.log(chalk.green.bold(' VALID'));
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.log(chalk.red.bold(' INVALID'));
|
|
21
|
+
}
|
|
22
|
+
if (result.errors.length > 0) {
|
|
23
|
+
console.log(chalk.red.bold('\nErrors:'));
|
|
24
|
+
for (const error of result.errors) {
|
|
25
|
+
console.log(chalk.red(` - ${error}`));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (result.warnings.length > 0) {
|
|
29
|
+
console.log(chalk.yellow.bold('\nWarnings:'));
|
|
30
|
+
for (const warning of result.warnings) {
|
|
31
|
+
console.log(chalk.yellow(` - ${warning}`));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
console.log();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if file exists
|
|
38
|
+
*/
|
|
39
|
+
export async function fileExists(path) {
|
|
40
|
+
try {
|
|
41
|
+
await access(path);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Ensure ~/.claude/agents directory exists
|
|
50
|
+
*/
|
|
51
|
+
export async function ensureAgentsDirectory(customPath) {
|
|
52
|
+
const agentsDir = customPath
|
|
53
|
+
? resolve(customPath.replace(/^~/, homedir()))
|
|
54
|
+
: join(homedir(), '.claude', 'agents');
|
|
55
|
+
await mkdir(agentsDir, { recursive: true });
|
|
56
|
+
return agentsDir;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* SMI-1389: Extract trigger phrases from skill description
|
|
60
|
+
*/
|
|
61
|
+
export function extractTriggerPhrases(description) {
|
|
62
|
+
const phrases = [];
|
|
63
|
+
// Pattern: "Use when [phrases]" or "when the user asks to [phrases]"
|
|
64
|
+
const patterns = [
|
|
65
|
+
/use when (?:the user asks to )?["']([^"']+)["']/gi,
|
|
66
|
+
/when (?:the user asks to )?["']([^"']+)["']/gi,
|
|
67
|
+
/trigger(?:ed)? (?:by|when|phrases?)[\s:]+["']([^"']+)["']/gi,
|
|
68
|
+
/invoke when (?:the user )?["']([^"']+)["']/gi,
|
|
69
|
+
];
|
|
70
|
+
for (const pattern of patterns) {
|
|
71
|
+
const matches = description.matchAll(pattern);
|
|
72
|
+
for (const match of matches) {
|
|
73
|
+
if (match[1]) {
|
|
74
|
+
phrases.push(match[1]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return phrases;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* SMI-1389: Validate subagent definition structure
|
|
82
|
+
*/
|
|
83
|
+
export function validateSubagentDefinition(content) {
|
|
84
|
+
const errors = [];
|
|
85
|
+
const warnings = [];
|
|
86
|
+
// Check for YAML frontmatter
|
|
87
|
+
if (!content.trim().startsWith('---')) {
|
|
88
|
+
errors.push('Missing YAML frontmatter');
|
|
89
|
+
}
|
|
90
|
+
// Extract and validate frontmatter
|
|
91
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
92
|
+
if (frontmatterMatch) {
|
|
93
|
+
const frontmatter = frontmatterMatch[1] || '';
|
|
94
|
+
const requiredFields = ['name', 'description', 'skills', 'tools', 'model'];
|
|
95
|
+
for (const field of requiredFields) {
|
|
96
|
+
if (!frontmatter.includes(`${field}:`)) {
|
|
97
|
+
errors.push(`Missing required field: ${field}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
errors.push('Could not parse YAML frontmatter');
|
|
103
|
+
}
|
|
104
|
+
// Check for operating protocol section
|
|
105
|
+
if (!content.includes('## Operating Protocol')) {
|
|
106
|
+
warnings.push('Missing Operating Protocol section');
|
|
107
|
+
}
|
|
108
|
+
// Check for output format section
|
|
109
|
+
if (!content.includes('## Output Format')) {
|
|
110
|
+
warnings.push('Missing Output Format section');
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
valid: errors.length === 0,
|
|
114
|
+
errors,
|
|
115
|
+
warnings,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/commands/author/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAG5B;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAwB,EAAE,QAAgB;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,QAAQ,KAAK,CAAC,CAAC,CAAA;IAEjE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;QAC7C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAmB;IAC7D,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IAExC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,qEAAqE;IACrE,MAAM,QAAQ,GAAG;QACf,mDAAmD;QACnD,+CAA+C;QAC/C,6DAA6D;QAC7D,8CAA8C;KAC/C,CAAA;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,6BAA6B;IAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC;IAED,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC/D,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAE7C,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IACjD,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IACrD,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,QAAQ;KACT,CAAA;AACH,CAAC"}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { createSearchCommand } from './search.js';
|
|
7
7
|
export { createListCommand, createUpdateCommand, createRemoveCommand } from './manage.js';
|
|
8
|
-
export { createInitCommand, createValidateCommand, createPublishCommand, createSubagentCommand, createTransformCommand, createMcpInitCommand, } from './author.js';
|
|
8
|
+
export { createInitCommand, createValidateCommand, createPublishCommand, createSubagentCommand, createTransformCommand, createMcpInitCommand, } from './author/index.js';
|
|
9
9
|
export { createAnalyzeCommand } from './analyze.js';
|
|
10
10
|
export { createRecommendCommand } from './recommend.js';
|
|
11
|
+
export { createSyncCommand } from './sync.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMzF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -8,9 +8,14 @@ export { createSearchCommand } from './search.js';
|
|
|
8
8
|
// SMI-745: Skill Management
|
|
9
9
|
export { createListCommand, createUpdateCommand, createRemoveCommand } from './manage.js';
|
|
10
10
|
// SMI-746: Skill Authoring
|
|
11
|
-
|
|
11
|
+
// SMI-1389, SMI-1390: Subagent Generation
|
|
12
|
+
// SMI-1433: MCP Server Scaffolding
|
|
13
|
+
// SMI-1487: Refactored into modular structure
|
|
14
|
+
export { createInitCommand, createValidateCommand, createPublishCommand, createSubagentCommand, createTransformCommand, createMcpInitCommand, } from './author/index.js';
|
|
12
15
|
// SMI-1283: Codebase Analysis
|
|
13
16
|
export { createAnalyzeCommand } from './analyze.js';
|
|
14
17
|
// SMI-1299: Recommendations
|
|
15
18
|
export { createRecommendCommand } from './recommend.js';
|
|
19
|
+
// Registry Sync
|
|
20
|
+
export { createSyncCommand } from './sync.js';
|
|
16
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEzF,2BAA2B;AAC3B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEzF,2BAA2B;AAC3B,0CAA0C;AAC1C,mCAAmC;AACnC,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAE1B,8BAA8B;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,4BAA4B;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Command - Registry synchronization CLI
|
|
3
|
+
*
|
|
4
|
+
* Provides commands for syncing the local skill database with the
|
|
5
|
+
* live Skillsmith registry.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* skillsmith sync # Run sync (differential)
|
|
9
|
+
* skillsmith sync --force # Run full sync
|
|
10
|
+
* skillsmith sync --dry-run # Preview what would sync
|
|
11
|
+
* skillsmith sync status # Show sync status
|
|
12
|
+
* skillsmith sync history # Show sync history
|
|
13
|
+
* skillsmith sync config # Configure auto-sync
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
/**
|
|
17
|
+
* Create sync command with subcommands
|
|
18
|
+
*/
|
|
19
|
+
export declare function createSyncCommand(): Command;
|
|
20
|
+
export default createSyncCommand;
|
|
21
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAganC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAsB3C;AAED,eAAe,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Command - Registry synchronization CLI
|
|
3
|
+
*
|
|
4
|
+
* Provides commands for syncing the local skill database with the
|
|
5
|
+
* live Skillsmith registry.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* skillsmith sync # Run sync (differential)
|
|
9
|
+
* skillsmith sync --force # Run full sync
|
|
10
|
+
* skillsmith sync --dry-run # Preview what would sync
|
|
11
|
+
* skillsmith sync status # Show sync status
|
|
12
|
+
* skillsmith sync history # Show sync history
|
|
13
|
+
* skillsmith sync config # Configure auto-sync
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
import chalk from 'chalk';
|
|
17
|
+
import ora from 'ora';
|
|
18
|
+
import Table from 'cli-table3';
|
|
19
|
+
import { createDatabase, SkillRepository, createApiClient, SyncConfigRepository, SyncHistoryRepository, SyncEngine, } from '@skillsmith/core';
|
|
20
|
+
import { DEFAULT_DB_PATH } from '../config.js';
|
|
21
|
+
import { sanitizeError } from '../utils/sanitize.js';
|
|
22
|
+
import { formatDuration, formatDate, formatTimeUntil } from '../utils/formatters.js';
|
|
23
|
+
/**
|
|
24
|
+
* Run sync operation
|
|
25
|
+
*/
|
|
26
|
+
async function runSync(options) {
|
|
27
|
+
const spinner = ora();
|
|
28
|
+
try {
|
|
29
|
+
spinner.start('Opening database...');
|
|
30
|
+
const db = createDatabase(options.dbPath);
|
|
31
|
+
try {
|
|
32
|
+
const skillRepo = new SkillRepository(db);
|
|
33
|
+
const syncConfigRepo = new SyncConfigRepository(db);
|
|
34
|
+
const syncHistoryRepo = new SyncHistoryRepository(db);
|
|
35
|
+
const apiClient = createApiClient();
|
|
36
|
+
const syncEngine = new SyncEngine(apiClient, skillRepo, syncConfigRepo, syncHistoryRepo);
|
|
37
|
+
spinner.text = options.force ? 'Starting full sync...' : 'Starting differential sync...';
|
|
38
|
+
const result = await syncEngine.sync({
|
|
39
|
+
force: options.force,
|
|
40
|
+
dryRun: options.dryRun,
|
|
41
|
+
onProgress: (progress) => {
|
|
42
|
+
switch (progress.phase) {
|
|
43
|
+
case 'connecting':
|
|
44
|
+
spinner.text = 'Checking API health...';
|
|
45
|
+
break;
|
|
46
|
+
case 'fetching':
|
|
47
|
+
spinner.text = `Fetching skills... (${progress.current} fetched)`;
|
|
48
|
+
break;
|
|
49
|
+
case 'comparing':
|
|
50
|
+
spinner.text = `Comparing ${progress.total} skills with local database...`;
|
|
51
|
+
break;
|
|
52
|
+
case 'upserting':
|
|
53
|
+
spinner.text = `Syncing skill ${progress.current}/${progress.total}...`;
|
|
54
|
+
break;
|
|
55
|
+
case 'complete':
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
if (options.json) {
|
|
61
|
+
spinner.stop();
|
|
62
|
+
console.log(JSON.stringify(result, null, 2));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (result.success) {
|
|
66
|
+
spinner.succeed(options.dryRun
|
|
67
|
+
? chalk.yellow('Dry run complete (no changes made)')
|
|
68
|
+
: chalk.green('Sync completed successfully'));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
spinner.warn(chalk.yellow('Sync completed with errors'));
|
|
72
|
+
}
|
|
73
|
+
// Display results
|
|
74
|
+
console.log();
|
|
75
|
+
console.log(chalk.bold('Results:'));
|
|
76
|
+
console.log(` ${chalk.green('+')} Added: ${result.skillsAdded}`);
|
|
77
|
+
console.log(` ${chalk.blue('~')} Updated: ${result.skillsUpdated}`);
|
|
78
|
+
console.log(` ${chalk.dim('=')} Unchanged: ${result.skillsUnchanged}`);
|
|
79
|
+
console.log(` ${chalk.cyan('Σ')} Total: ${result.totalProcessed}`);
|
|
80
|
+
console.log(` ${chalk.dim('⏱')} Duration: ${formatDuration(result.durationMs)}`);
|
|
81
|
+
if (result.errors.length > 0) {
|
|
82
|
+
console.log();
|
|
83
|
+
console.log(chalk.red('Errors:'));
|
|
84
|
+
for (const error of result.errors) {
|
|
85
|
+
console.log(` ${chalk.red('•')} ${error}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (options.dryRun) {
|
|
89
|
+
console.log();
|
|
90
|
+
console.log(chalk.dim('Run without --dry-run to apply these changes.'));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
db.close();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
spinner.fail('Sync failed');
|
|
99
|
+
console.error(chalk.red('Error:'), sanitizeError(error));
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Show sync status
|
|
105
|
+
*/
|
|
106
|
+
async function showStatus(options) {
|
|
107
|
+
try {
|
|
108
|
+
const db = createDatabase(options.dbPath);
|
|
109
|
+
try {
|
|
110
|
+
const syncConfigRepo = new SyncConfigRepository(db);
|
|
111
|
+
const syncHistoryRepo = new SyncHistoryRepository(db);
|
|
112
|
+
const config = syncConfigRepo.getConfig();
|
|
113
|
+
const lastRun = syncHistoryRepo.getLastSuccessful();
|
|
114
|
+
const isRunning = syncHistoryRepo.isRunning();
|
|
115
|
+
const isDue = syncConfigRepo.isSyncDue();
|
|
116
|
+
const stats = syncHistoryRepo.getStats();
|
|
117
|
+
if (options.json) {
|
|
118
|
+
console.log(JSON.stringify({
|
|
119
|
+
config,
|
|
120
|
+
lastRun,
|
|
121
|
+
isRunning,
|
|
122
|
+
isDue,
|
|
123
|
+
stats,
|
|
124
|
+
}, null, 2));
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
console.log(chalk.bold.blue('\n=== Sync Status ===\n'));
|
|
128
|
+
// Configuration
|
|
129
|
+
console.log(chalk.bold('Configuration:'));
|
|
130
|
+
console.log(` Auto-sync: ${config.enabled ? chalk.green('Enabled') : chalk.red('Disabled')}`);
|
|
131
|
+
console.log(` Frequency: ${chalk.cyan(config.frequency)}`);
|
|
132
|
+
console.log();
|
|
133
|
+
// Current state
|
|
134
|
+
console.log(chalk.bold('Current State:'));
|
|
135
|
+
console.log(` Last sync: ${formatDate(config.lastSyncAt)}`);
|
|
136
|
+
console.log(` Next sync: ${formatDate(config.nextSyncAt)}`);
|
|
137
|
+
console.log(` Time until: ${formatTimeUntil(config.nextSyncAt)}`);
|
|
138
|
+
console.log(` Status: ${isRunning ? chalk.yellow('Running') : isDue ? chalk.green('Due') : chalk.dim('Waiting')}`);
|
|
139
|
+
console.log();
|
|
140
|
+
// Last run details
|
|
141
|
+
if (lastRun) {
|
|
142
|
+
console.log(chalk.bold('Last Successful Run:'));
|
|
143
|
+
console.log(` Started: ${formatDate(lastRun.startedAt)}`);
|
|
144
|
+
console.log(` Duration: ${lastRun.durationMs ? formatDuration(lastRun.durationMs) : 'N/A'}`);
|
|
145
|
+
console.log(` Added: ${lastRun.skillsAdded}`);
|
|
146
|
+
console.log(` Updated: ${lastRun.skillsUpdated}`);
|
|
147
|
+
console.log(` Unchanged: ${lastRun.skillsUnchanged}`);
|
|
148
|
+
console.log();
|
|
149
|
+
}
|
|
150
|
+
// Error info
|
|
151
|
+
if (config.lastSyncError) {
|
|
152
|
+
console.log(chalk.bold.red('Last Error:'));
|
|
153
|
+
console.log(` ${config.lastSyncError}`);
|
|
154
|
+
console.log();
|
|
155
|
+
}
|
|
156
|
+
// Statistics
|
|
157
|
+
console.log(chalk.bold('Statistics:'));
|
|
158
|
+
console.log(` Total runs: ${stats.totalRuns}`);
|
|
159
|
+
console.log(` Successful: ${stats.successfulRuns}`);
|
|
160
|
+
console.log(` Failed: ${stats.failedRuns}`);
|
|
161
|
+
console.log(` Avg duration: ${stats.averageDurationMs ? formatDuration(stats.averageDurationMs) : 'N/A'}`);
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
db.close();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error(chalk.red('Error:'), sanitizeError(error));
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Show sync history
|
|
174
|
+
*/
|
|
175
|
+
async function showHistory(options) {
|
|
176
|
+
try {
|
|
177
|
+
const db = createDatabase(options.dbPath);
|
|
178
|
+
try {
|
|
179
|
+
const syncHistoryRepo = new SyncHistoryRepository(db);
|
|
180
|
+
const history = syncHistoryRepo.getHistory(options.limit);
|
|
181
|
+
if (options.json) {
|
|
182
|
+
console.log(JSON.stringify(history, null, 2));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (history.length === 0) {
|
|
186
|
+
console.log(chalk.dim('\nNo sync history found. Run `skillsmith sync` to start syncing.\n'));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
console.log(chalk.bold.blue('\n=== Sync History ===\n'));
|
|
190
|
+
const table = new Table({
|
|
191
|
+
head: [
|
|
192
|
+
chalk.bold('Date'),
|
|
193
|
+
chalk.bold('Status'),
|
|
194
|
+
chalk.bold('Added'),
|
|
195
|
+
chalk.bold('Updated'),
|
|
196
|
+
chalk.bold('Duration'),
|
|
197
|
+
],
|
|
198
|
+
colWidths: [22, 12, 10, 10, 12],
|
|
199
|
+
});
|
|
200
|
+
for (const entry of history) {
|
|
201
|
+
const statusColor = entry.status === 'success'
|
|
202
|
+
? chalk.green
|
|
203
|
+
: entry.status === 'failed'
|
|
204
|
+
? chalk.red
|
|
205
|
+
: entry.status === 'partial'
|
|
206
|
+
? chalk.yellow
|
|
207
|
+
: chalk.blue;
|
|
208
|
+
table.push([
|
|
209
|
+
new Date(entry.startedAt).toLocaleString(),
|
|
210
|
+
statusColor(entry.status),
|
|
211
|
+
String(entry.skillsAdded),
|
|
212
|
+
String(entry.skillsUpdated),
|
|
213
|
+
entry.durationMs ? formatDuration(entry.durationMs) : '-',
|
|
214
|
+
]);
|
|
215
|
+
}
|
|
216
|
+
console.log(table.toString());
|
|
217
|
+
if (history.some((e) => e.errorMessage)) {
|
|
218
|
+
console.log();
|
|
219
|
+
console.log(chalk.bold.red('Errors:'));
|
|
220
|
+
for (const entry of history.filter((e) => e.errorMessage)) {
|
|
221
|
+
console.log(` ${chalk.dim(new Date(entry.startedAt).toLocaleDateString())}: ${entry.errorMessage}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
db.close();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
console.error(chalk.red('Error:'), sanitizeError(error));
|
|
231
|
+
process.exit(1);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Configure sync settings
|
|
236
|
+
*/
|
|
237
|
+
async function configureSync(options) {
|
|
238
|
+
try {
|
|
239
|
+
const db = createDatabase(options.dbPath);
|
|
240
|
+
try {
|
|
241
|
+
const syncConfigRepo = new SyncConfigRepository(db);
|
|
242
|
+
// If just showing config
|
|
243
|
+
if (options.show || (!options.enable && !options.disable && !options.frequency)) {
|
|
244
|
+
const config = syncConfigRepo.getConfig();
|
|
245
|
+
if (options.json) {
|
|
246
|
+
console.log(JSON.stringify(config, null, 2));
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
console.log(chalk.bold.blue('\n=== Sync Configuration ===\n'));
|
|
250
|
+
console.log(` Auto-sync: ${config.enabled ? chalk.green('Enabled') : chalk.red('Disabled')}`);
|
|
251
|
+
console.log(` Frequency: ${chalk.cyan(config.frequency)}`);
|
|
252
|
+
console.log(` Interval: ${formatDuration(config.intervalMs)}`);
|
|
253
|
+
console.log(` Last sync: ${formatDate(config.lastSyncAt)}`);
|
|
254
|
+
console.log(` Next sync: ${formatDate(config.nextSyncAt)}`);
|
|
255
|
+
console.log();
|
|
256
|
+
console.log(chalk.dim('Use --enable/--disable to toggle auto-sync'));
|
|
257
|
+
console.log(chalk.dim('Use --frequency daily|weekly to change schedule'));
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
// Apply changes
|
|
261
|
+
if (options.enable) {
|
|
262
|
+
syncConfigRepo.enable();
|
|
263
|
+
console.log(chalk.green('✓ Auto-sync enabled'));
|
|
264
|
+
}
|
|
265
|
+
if (options.disable) {
|
|
266
|
+
syncConfigRepo.disable();
|
|
267
|
+
console.log(chalk.yellow('✓ Auto-sync disabled'));
|
|
268
|
+
}
|
|
269
|
+
if (options.frequency) {
|
|
270
|
+
const freq = options.frequency.toLowerCase();
|
|
271
|
+
if (freq !== 'daily' && freq !== 'weekly') {
|
|
272
|
+
console.error(chalk.red('Error: Frequency must be "daily" or "weekly"'));
|
|
273
|
+
process.exit(1);
|
|
274
|
+
}
|
|
275
|
+
syncConfigRepo.setFrequency(freq);
|
|
276
|
+
console.log(chalk.green(`✓ Frequency set to ${freq}`));
|
|
277
|
+
}
|
|
278
|
+
// Show updated config
|
|
279
|
+
const config = syncConfigRepo.getConfig();
|
|
280
|
+
console.log();
|
|
281
|
+
console.log(chalk.dim('Current settings:'));
|
|
282
|
+
console.log(` Auto-sync: ${config.enabled ? 'enabled' : 'disabled'}, Frequency: ${config.frequency}`);
|
|
283
|
+
}
|
|
284
|
+
finally {
|
|
285
|
+
db.close();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
console.error(chalk.red('Error:'), sanitizeError(error));
|
|
290
|
+
process.exit(1);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Create sync status subcommand
|
|
295
|
+
*/
|
|
296
|
+
function createStatusCommand() {
|
|
297
|
+
return new Command('status')
|
|
298
|
+
.description('Show sync status and statistics')
|
|
299
|
+
.option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
|
|
300
|
+
.option('--json', 'Output as JSON')
|
|
301
|
+
.action(async (opts) => {
|
|
302
|
+
await showStatus({
|
|
303
|
+
dbPath: opts['db'],
|
|
304
|
+
json: opts['json'] ?? false,
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Create sync history subcommand
|
|
310
|
+
*/
|
|
311
|
+
function createHistoryCommand() {
|
|
312
|
+
return new Command('history')
|
|
313
|
+
.description('Show sync history')
|
|
314
|
+
.option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
|
|
315
|
+
.option('-l, --limit <number>', 'Number of entries to show', '10')
|
|
316
|
+
.option('--json', 'Output as JSON')
|
|
317
|
+
.action(async (opts) => {
|
|
318
|
+
await showHistory({
|
|
319
|
+
dbPath: opts['db'],
|
|
320
|
+
limit: parseInt(opts['limit'], 10),
|
|
321
|
+
json: opts['json'] ?? false,
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Create sync config subcommand
|
|
327
|
+
*/
|
|
328
|
+
function createConfigCommand() {
|
|
329
|
+
return new Command('config')
|
|
330
|
+
.description('Configure automatic sync settings')
|
|
331
|
+
.option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
|
|
332
|
+
.option('--enable', 'Enable automatic background sync')
|
|
333
|
+
.option('--disable', 'Disable automatic background sync')
|
|
334
|
+
.option('--frequency <freq>', 'Set sync frequency (daily|weekly)')
|
|
335
|
+
.option('--show', 'Show current configuration')
|
|
336
|
+
.option('--json', 'Output as JSON')
|
|
337
|
+
.action(async (opts) => {
|
|
338
|
+
await configureSync({
|
|
339
|
+
dbPath: opts['db'],
|
|
340
|
+
enable: opts['enable'],
|
|
341
|
+
disable: opts['disable'],
|
|
342
|
+
frequency: opts['frequency'],
|
|
343
|
+
show: opts['show'],
|
|
344
|
+
json: opts['json'] ?? false,
|
|
345
|
+
});
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Create sync command with subcommands
|
|
350
|
+
*/
|
|
351
|
+
export function createSyncCommand() {
|
|
352
|
+
const cmd = new Command('sync')
|
|
353
|
+
.description('Synchronize skills from the Skillsmith registry')
|
|
354
|
+
.option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
|
|
355
|
+
.option('-f, --force', 'Force full sync (ignore last sync time)')
|
|
356
|
+
.option('--dry-run', 'Show what would be synced without making changes')
|
|
357
|
+
.option('--json', 'Output results as JSON')
|
|
358
|
+
.action(async (opts) => {
|
|
359
|
+
await runSync({
|
|
360
|
+
dbPath: opts['db'],
|
|
361
|
+
force: opts['force'] ?? false,
|
|
362
|
+
dryRun: opts['dry-run'] ?? false,
|
|
363
|
+
json: opts['json'] ?? false,
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
// Add subcommands
|
|
367
|
+
cmd.addCommand(createStatusCommand());
|
|
368
|
+
cmd.addCommand(createHistoryCommand());
|
|
369
|
+
cmd.addCommand(createConfigCommand());
|
|
370
|
+
return cmd;
|
|
371
|
+
}
|
|
372
|
+
export default createSyncCommand;
|
|
373
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/src/import.d.ts
CHANGED
package/dist/src/import.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/import.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AA0BH,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/import.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AA0BH,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAEhB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAoMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiGrF"}
|