@skillsmith/cli 0.4.3 → 0.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/.tsbuildinfo +1 -1
- package/dist/src/commands/audit.d.ts +19 -0
- package/dist/src/commands/audit.d.ts.map +1 -0
- package/dist/src/commands/audit.js +134 -0
- package/dist/src/commands/audit.js.map +1 -0
- package/dist/src/commands/audit.test.d.ts +8 -0
- package/dist/src/commands/audit.test.d.ts.map +1 -0
- package/dist/src/commands/audit.test.js +97 -0
- package/dist/src/commands/audit.test.js.map +1 -0
- package/dist/src/commands/author/init.d.ts.map +1 -1
- package/dist/src/commands/author/init.js +4 -9
- package/dist/src/commands/author/init.js.map +1 -1
- package/dist/src/commands/create.d.ts +42 -0
- package/dist/src/commands/create.d.ts.map +1 -0
- package/dist/src/commands/create.js +325 -0
- package/dist/src/commands/create.js.map +1 -0
- package/dist/src/commands/diff.d.ts +17 -0
- package/dist/src/commands/diff.d.ts.map +1 -0
- package/dist/src/commands/diff.js +191 -0
- package/dist/src/commands/diff.js.map +1 -0
- package/dist/src/commands/diff.test.d.ts +6 -0
- package/dist/src/commands/diff.test.d.ts.map +1 -0
- package/dist/src/commands/diff.test.js +275 -0
- package/dist/src/commands/diff.test.js.map +1 -0
- package/dist/src/commands/index.d.ts +4 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +7 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/manage.d.ts.map +1 -1
- package/dist/src/commands/manage.js +16 -8
- package/dist/src/commands/manage.js.map +1 -1
- package/dist/src/commands/pin.d.ts +24 -0
- package/dist/src/commands/pin.d.ts.map +1 -0
- package/dist/src/commands/pin.js +123 -0
- package/dist/src/commands/pin.js.map +1 -0
- package/dist/src/commands/pin.test.d.ts +6 -0
- package/dist/src/commands/pin.test.d.ts.map +1 -0
- package/dist/src/commands/pin.test.js +206 -0
- package/dist/src/commands/pin.test.js.map +1 -0
- package/dist/src/commands/sync.d.ts.map +1 -1
- package/dist/src/commands/sync.js +3 -2
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/index.js +9 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/templates/changelog.md.template.d.ts +8 -0
- package/dist/src/templates/changelog.md.template.d.ts.map +1 -0
- package/dist/src/templates/changelog.md.template.js +19 -0
- package/dist/src/templates/changelog.md.template.js.map +1 -0
- package/dist/src/templates/index.d.ts +1 -0
- package/dist/src/templates/index.d.ts.map +1 -1
- package/dist/src/templates/index.js +1 -0
- package/dist/src/templates/index.js.map +1 -1
- package/dist/src/templates/skill.md.template.d.ts +1 -1
- package/dist/src/templates/skill.md.template.d.ts.map +1 -1
- package/dist/src/templates/skill.md.template.js +1 -3
- package/dist/src/templates/skill.md.template.js.map +1 -1
- package/dist/src/utils/license-validation.js +1 -1
- package/dist/src/utils/license-validation.js.map +1 -1
- package/dist/src/utils/manifest.d.ts +46 -0
- package/dist/src/utils/manifest.d.ts.map +1 -0
- package/dist/src/utils/manifest.js +55 -0
- package/dist/src/utils/manifest.js.map +1 -0
- package/dist/src/utils/skill-name.d.ts +19 -0
- package/dist/src/utils/skill-name.d.ts.map +1 -0
- package/dist/src/utils/skill-name.js +26 -0
- package/dist/src/utils/skill-name.js.map +1 -0
- package/dist/src/utils/skills-directory.d.ts +12 -3
- package/dist/src/utils/skills-directory.d.ts.map +1 -1
- package/dist/src/utils/skills-directory.js +62 -7
- package/dist/src/utils/skills-directory.js.map +1 -1
- package/dist/tests/create.test.d.ts +5 -0
- package/dist/tests/create.test.d.ts.map +1 -0
- package/dist/tests/create.test.js +449 -0
- package/dist/tests/create.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared skill name validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Used by both `skillsmith author init` and `skillsmith create` to enforce
|
|
5
|
+
* a consistent, registry-safe naming convention across all scaffolding paths.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Valid skill names: lowercase letters, digits, and hyphens only.
|
|
9
|
+
* Must start with a lowercase letter.
|
|
10
|
+
* Matches the Skillsmith registry slug format.
|
|
11
|
+
*/
|
|
12
|
+
export declare const VALID_SKILL_NAME_RE: RegExp;
|
|
13
|
+
/**
|
|
14
|
+
* Validate a skill name against the canonical Skillsmith naming convention.
|
|
15
|
+
*
|
|
16
|
+
* @returns `true` if valid, or a string error message if invalid.
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateSkillName(name: string): true | string;
|
|
19
|
+
//# sourceMappingURL=skill-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-name.d.ts","sourceRoot":"","sources":["../../../src/utils/skill-name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAsB,CAAA;AAEtD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM7D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared skill name validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Used by both `skillsmith author init` and `skillsmith create` to enforce
|
|
5
|
+
* a consistent, registry-safe naming convention across all scaffolding paths.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Valid skill names: lowercase letters, digits, and hyphens only.
|
|
9
|
+
* Must start with a lowercase letter.
|
|
10
|
+
* Matches the Skillsmith registry slug format.
|
|
11
|
+
*/
|
|
12
|
+
export const VALID_SKILL_NAME_RE = /^[a-z][a-z0-9-]*$/;
|
|
13
|
+
/**
|
|
14
|
+
* Validate a skill name against the canonical Skillsmith naming convention.
|
|
15
|
+
*
|
|
16
|
+
* @returns `true` if valid, or a string error message if invalid.
|
|
17
|
+
*/
|
|
18
|
+
export function validateSkillName(name) {
|
|
19
|
+
if (!name.trim())
|
|
20
|
+
return 'Skill name is required';
|
|
21
|
+
if (!VALID_SKILL_NAME_RE.test(name)) {
|
|
22
|
+
return 'Skill name must start with a lowercase letter and contain only lowercase letters, digits, and hyphens (e.g. my-skill)';
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=skill-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-name.js","sourceRoot":"","sources":["../../../src/utils/skill-name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AAEtD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,wBAAwB,CAAA;IACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,uHAAuH,CAAA;IAChI,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -12,14 +12,23 @@ export interface InstalledSkill {
|
|
|
12
12
|
hasUpdates: boolean;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Get skills from a specific directory
|
|
15
|
+
* Get skills from a specific directory.
|
|
16
|
+
*
|
|
17
|
+
* When dbPath is provided, opens the skill_versions table to determine
|
|
18
|
+
* whether a newer content hash has been recorded since the skill was installed.
|
|
19
|
+
* Falls back to hasUpdates: false when the database is unavailable.
|
|
20
|
+
*
|
|
21
|
+
* @param skillsDir Directory to scan for installed skills
|
|
22
|
+
* @param dbPath Optional path to the Skillsmith SQLite database
|
|
16
23
|
*/
|
|
17
|
-
export declare function getSkillsFromDirectory(skillsDir: string): Promise<InstalledSkill[]>;
|
|
24
|
+
export declare function getSkillsFromDirectory(skillsDir: string, dbPath?: string): Promise<InstalledSkill[]>;
|
|
18
25
|
/**
|
|
19
26
|
* Get list of installed skills from both global (~/.claude/skills) and
|
|
20
27
|
* local (.claude/skills) directories.
|
|
21
28
|
*
|
|
22
29
|
* SMI-1630: Local skills take precedence over global skills with the same name.
|
|
30
|
+
*
|
|
31
|
+
* @param dbPath Optional path to the Skillsmith SQLite database for update detection
|
|
23
32
|
*/
|
|
24
|
-
export declare function getInstalledSkills(): Promise<InstalledSkill[]>;
|
|
33
|
+
export declare function getInstalledSkills(dbPath?: string): Promise<InstalledSkill[]>;
|
|
25
34
|
//# sourceMappingURL=skills-directory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-directory.d.ts","sourceRoot":"","sources":["../../../src/utils/skills-directory.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"skills-directory.d.ts","sourceRoot":"","sources":["../../../src/utils/skills-directory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAA;AAGzB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;CACpB;AAoBD;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,EAAE,CAAC,CAgG3B;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAsBnF"}
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* from the global and local ~/.claude/skills directories.
|
|
4
4
|
*/
|
|
5
5
|
import { readdir, readFile, stat } from 'fs/promises';
|
|
6
|
+
import { createHash } from 'crypto';
|
|
6
7
|
import { join } from 'path';
|
|
7
8
|
import { homedir } from 'os';
|
|
8
|
-
import { SkillParser } from '@skillsmith/core';
|
|
9
|
+
import { SkillParser, createDatabase, SkillVersionRepository, } from '@skillsmith/core';
|
|
10
|
+
import { DEFAULT_DB_PATH } from '../config.js';
|
|
9
11
|
/**
|
|
10
12
|
* SMI-1630: Search both global and local skill directories
|
|
11
13
|
*
|
|
@@ -23,10 +25,31 @@ function getLocalSkillsDir() {
|
|
|
23
25
|
return join(process.cwd(), '.claude', 'skills');
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
|
-
* Get skills from a specific directory
|
|
28
|
+
* Get skills from a specific directory.
|
|
29
|
+
*
|
|
30
|
+
* When dbPath is provided, opens the skill_versions table to determine
|
|
31
|
+
* whether a newer content hash has been recorded since the skill was installed.
|
|
32
|
+
* Falls back to hasUpdates: false when the database is unavailable.
|
|
33
|
+
*
|
|
34
|
+
* @param skillsDir Directory to scan for installed skills
|
|
35
|
+
* @param dbPath Optional path to the Skillsmith SQLite database
|
|
27
36
|
*/
|
|
28
|
-
export async function getSkillsFromDirectory(skillsDir) {
|
|
37
|
+
export async function getSkillsFromDirectory(skillsDir, dbPath) {
|
|
29
38
|
const skills = [];
|
|
39
|
+
// Open the version repository if a db path was provided
|
|
40
|
+
let versionRepo = null;
|
|
41
|
+
let dbConn = null;
|
|
42
|
+
if (dbPath) {
|
|
43
|
+
try {
|
|
44
|
+
dbConn = createDatabase(dbPath);
|
|
45
|
+
versionRepo = new SkillVersionRepository(dbConn);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// DB not available yet — fall back to hasUpdates: false
|
|
49
|
+
versionRepo = null;
|
|
50
|
+
dbConn = null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
30
53
|
try {
|
|
31
54
|
const entries = await readdir(skillsDir, { withFileTypes: true });
|
|
32
55
|
for (const entry of entries) {
|
|
@@ -38,13 +61,39 @@ export async function getSkillsFromDirectory(skillsDir) {
|
|
|
38
61
|
const content = await readFile(skillMdPath, 'utf-8');
|
|
39
62
|
const parser = new SkillParser();
|
|
40
63
|
const parsed = parser.parse(content);
|
|
64
|
+
// Determine hasUpdates by comparing the current SKILL.md hash to the
|
|
65
|
+
// most-recently recorded hash in skill_versions for this skill id.
|
|
66
|
+
let hasUpdates = false;
|
|
67
|
+
if (versionRepo && parsed) {
|
|
68
|
+
try {
|
|
69
|
+
const parsedAny = parsed;
|
|
70
|
+
const skillId = parsedAny['id'] ?? entry.name;
|
|
71
|
+
const latestVersion = await versionRepo.getLatestVersion(skillId);
|
|
72
|
+
if (latestVersion) {
|
|
73
|
+
const currentHash = createHash('sha256').update(content, 'utf8').digest('hex');
|
|
74
|
+
const storedHash = parsedAny['contentHash'] ??
|
|
75
|
+
parsedAny['originalContentHash'] ??
|
|
76
|
+
'';
|
|
77
|
+
// hasUpdates = latest recorded hash differs from what we have locally
|
|
78
|
+
hasUpdates = storedHash !== '' && latestVersion.content_hash !== storedHash;
|
|
79
|
+
// If we have no stored hash, compare against current content hash
|
|
80
|
+
if (!storedHash) {
|
|
81
|
+
hasUpdates = latestVersion.content_hash !== currentHash;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// Version check failed — safe to ignore, fall back to false
|
|
87
|
+
hasUpdates = false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
41
90
|
skills.push({
|
|
42
91
|
name: parsed?.name || entry.name,
|
|
43
92
|
path: skillPath,
|
|
44
93
|
version: parsed?.version || null,
|
|
45
94
|
trustTier: parsed ? parser.inferTrustTier(parsed) : 'unknown',
|
|
46
95
|
installDate: skillMdStat.mtime.toISOString().split('T')[0] || 'Unknown',
|
|
47
|
-
hasUpdates
|
|
96
|
+
hasUpdates,
|
|
48
97
|
});
|
|
49
98
|
}
|
|
50
99
|
catch (error) {
|
|
@@ -73,6 +122,9 @@ export async function getSkillsFromDirectory(skillsDir) {
|
|
|
73
122
|
throw error;
|
|
74
123
|
}
|
|
75
124
|
}
|
|
125
|
+
finally {
|
|
126
|
+
dbConn?.close();
|
|
127
|
+
}
|
|
76
128
|
return skills;
|
|
77
129
|
}
|
|
78
130
|
/**
|
|
@@ -80,12 +132,15 @@ export async function getSkillsFromDirectory(skillsDir) {
|
|
|
80
132
|
* local (.claude/skills) directories.
|
|
81
133
|
*
|
|
82
134
|
* SMI-1630: Local skills take precedence over global skills with the same name.
|
|
135
|
+
*
|
|
136
|
+
* @param dbPath Optional path to the Skillsmith SQLite database for update detection
|
|
83
137
|
*/
|
|
84
|
-
export async function getInstalledSkills() {
|
|
138
|
+
export async function getInstalledSkills(dbPath) {
|
|
139
|
+
const resolvedDbPath = dbPath ?? DEFAULT_DB_PATH;
|
|
85
140
|
// Get skills from both directories
|
|
86
141
|
const [globalSkills, localSkills] = await Promise.all([
|
|
87
|
-
getSkillsFromDirectory(GLOBAL_SKILLS_DIR),
|
|
88
|
-
getSkillsFromDirectory(getLocalSkillsDir()),
|
|
142
|
+
getSkillsFromDirectory(GLOBAL_SKILLS_DIR, resolvedDbPath),
|
|
143
|
+
getSkillsFromDirectory(getLocalSkillsDir(), resolvedDbPath),
|
|
89
144
|
]);
|
|
90
145
|
// Create a map for deduplication, local skills take precedence
|
|
91
146
|
const skillMap = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-directory.js","sourceRoot":"","sources":["../../../src/utils/skills-directory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"skills-directory.js","sourceRoot":"","sources":["../../../src/utils/skills-directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.test.d.ts","sourceRoot":"","sources":["../../tests/create.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|