skillstore 0.1.3 → 0.1.4
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/cli/index.js +11 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/add.d.ts +41 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +374 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/check.d.ts +12 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +133 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/generate-lock.d.ts +17 -0
- package/dist/commands/generate-lock.d.ts.map +1 -0
- package/dist/commands/generate-lock.js +134 -0
- package/dist/commands/generate-lock.js.map +1 -0
- package/dist/commands/list.d.ts +12 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +97 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/update.d.ts +22 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +203 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/lib/agents.d.ts +38 -0
- package/dist/lib/agents.d.ts.map +1 -0
- package/dist/lib/agents.js +223 -0
- package/dist/lib/agents.js.map +1 -0
- package/dist/lib/installer.d.ts +82 -0
- package/dist/lib/installer.d.ts.map +1 -0
- package/dist/lib/installer.js +226 -0
- package/dist/lib/installer.js.map +1 -0
- package/dist/lib/skill-lock.d.ts +64 -0
- package/dist/lib/skill-lock.d.ts.map +1 -0
- package/dist/lib/skill-lock.js +101 -0
- package/dist/lib/skill-lock.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
import { LOCK_FILE_PATH } from './agents.js';
|
|
4
|
+
/**
|
|
5
|
+
* Skill Lock File Management
|
|
6
|
+
*
|
|
7
|
+
* Tracks installed skills with version and hash information
|
|
8
|
+
* for update detection and management.
|
|
9
|
+
*/
|
|
10
|
+
/** Lock file version - increment when schema changes */
|
|
11
|
+
export const LOCK_VERSION = 1;
|
|
12
|
+
/** Create empty lock file */
|
|
13
|
+
function createEmptyLock() {
|
|
14
|
+
return {
|
|
15
|
+
version: LOCK_VERSION,
|
|
16
|
+
skills: {},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Read skill lock file
|
|
21
|
+
* Returns empty lock if file doesn't exist or is invalid
|
|
22
|
+
*/
|
|
23
|
+
export async function readSkillLock() {
|
|
24
|
+
try {
|
|
25
|
+
const content = await readFile(LOCK_FILE_PATH, 'utf-8');
|
|
26
|
+
const lock = JSON.parse(content);
|
|
27
|
+
// Check version - wipe if outdated
|
|
28
|
+
if (lock.version !== LOCK_VERSION) {
|
|
29
|
+
return createEmptyLock();
|
|
30
|
+
}
|
|
31
|
+
return lock;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// File doesn't exist or invalid JSON
|
|
35
|
+
return createEmptyLock();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Write skill lock file
|
|
40
|
+
*/
|
|
41
|
+
export async function writeSkillLock(lock) {
|
|
42
|
+
// Ensure directory exists
|
|
43
|
+
await mkdir(dirname(LOCK_FILE_PATH), { recursive: true });
|
|
44
|
+
// Write with pretty formatting
|
|
45
|
+
await writeFile(LOCK_FILE_PATH, JSON.stringify(lock, null, 2), 'utf-8');
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Add or update a skill in the lock file
|
|
49
|
+
*/
|
|
50
|
+
export async function addToLock(entry) {
|
|
51
|
+
const lock = await readSkillLock();
|
|
52
|
+
const now = new Date().toISOString();
|
|
53
|
+
const existing = lock.skills[entry.slug];
|
|
54
|
+
lock.skills[entry.slug] = {
|
|
55
|
+
...entry,
|
|
56
|
+
installedAt: existing?.installedAt || entry.installedAt,
|
|
57
|
+
updatedAt: now,
|
|
58
|
+
};
|
|
59
|
+
await writeSkillLock(lock);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Remove a skill from the lock file
|
|
63
|
+
*/
|
|
64
|
+
export async function removeFromLock(slug) {
|
|
65
|
+
const lock = await readSkillLock();
|
|
66
|
+
if (!(slug in lock.skills)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
delete lock.skills[slug];
|
|
70
|
+
await writeSkillLock(lock);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get a single lock entry
|
|
75
|
+
*/
|
|
76
|
+
export async function getLockEntry(slug) {
|
|
77
|
+
const lock = await readSkillLock();
|
|
78
|
+
return lock.skills[slug];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get all locked skills
|
|
82
|
+
*/
|
|
83
|
+
export async function getAllLockedSkills() {
|
|
84
|
+
const lock = await readSkillLock();
|
|
85
|
+
return Object.values(lock.skills);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check if a skill is in the lock file
|
|
89
|
+
*/
|
|
90
|
+
export async function isSkillLocked(slug) {
|
|
91
|
+
const lock = await readSkillLock();
|
|
92
|
+
return slug in lock.skills;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get count of locked skills
|
|
96
|
+
*/
|
|
97
|
+
export async function getLockedSkillCount() {
|
|
98
|
+
const lock = await readSkillLock();
|
|
99
|
+
return Object.keys(lock.skills).length;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=skill-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-lock.js","sourceRoot":"","sources":["../../src/lib/skill-lock.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillstore",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Skillstore CLI - AI Skills marketplace for Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -41,6 +41,11 @@
|
|
|
41
41
|
],
|
|
42
42
|
"author": "",
|
|
43
43
|
"license": "MIT",
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/aiskillstore/marketplace",
|
|
47
|
+
"directory": "packages/skillstore"
|
|
48
|
+
},
|
|
44
49
|
"dependencies": {
|
|
45
50
|
"citty": "^0.1.6",
|
|
46
51
|
"consola": "^3.2.3",
|