@dealdeploy/skl 0.1.6 → 0.1.8
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/.agents/skills/opentui/SKILL.md +198 -0
- package/.agents/skills/opentui/references/animation/REFERENCE.md +431 -0
- package/.agents/skills/opentui/references/components/REFERENCE.md +143 -0
- package/.agents/skills/opentui/references/components/code-diff.md +496 -0
- package/.agents/skills/opentui/references/components/containers.md +412 -0
- package/.agents/skills/opentui/references/components/inputs.md +531 -0
- package/.agents/skills/opentui/references/components/text-display.md +384 -0
- package/.agents/skills/opentui/references/core/REFERENCE.md +145 -0
- package/.agents/skills/opentui/references/core/api.md +506 -0
- package/.agents/skills/opentui/references/core/configuration.md +166 -0
- package/.agents/skills/opentui/references/core/gotchas.md +393 -0
- package/.agents/skills/opentui/references/core/patterns.md +448 -0
- package/.agents/skills/opentui/references/keyboard/REFERENCE.md +511 -0
- package/.agents/skills/opentui/references/layout/REFERENCE.md +337 -0
- package/.agents/skills/opentui/references/layout/patterns.md +444 -0
- package/.agents/skills/opentui/references/react/REFERENCE.md +174 -0
- package/.agents/skills/opentui/references/react/api.md +435 -0
- package/.agents/skills/opentui/references/react/configuration.md +301 -0
- package/.agents/skills/opentui/references/react/gotchas.md +443 -0
- package/.agents/skills/opentui/references/react/patterns.md +501 -0
- package/.agents/skills/opentui/references/solid/REFERENCE.md +201 -0
- package/.agents/skills/opentui/references/solid/api.md +543 -0
- package/.agents/skills/opentui/references/solid/configuration.md +315 -0
- package/.agents/skills/opentui/references/solid/gotchas.md +415 -0
- package/.agents/skills/opentui/references/solid/patterns.md +558 -0
- package/.agents/skills/opentui/references/testing/REFERENCE.md +614 -0
- package/.claude/settings.local.json +11 -0
- package/.claude/skills/opentui/SKILL.md +198 -0
- package/.claude/skills/opentui/references/animation/REFERENCE.md +431 -0
- package/.claude/skills/opentui/references/components/REFERENCE.md +143 -0
- package/.claude/skills/opentui/references/components/code-diff.md +496 -0
- package/.claude/skills/opentui/references/components/containers.md +412 -0
- package/.claude/skills/opentui/references/components/inputs.md +531 -0
- package/.claude/skills/opentui/references/components/text-display.md +384 -0
- package/.claude/skills/opentui/references/core/REFERENCE.md +145 -0
- package/.claude/skills/opentui/references/core/api.md +506 -0
- package/.claude/skills/opentui/references/core/configuration.md +166 -0
- package/.claude/skills/opentui/references/core/gotchas.md +393 -0
- package/.claude/skills/opentui/references/core/patterns.md +448 -0
- package/.claude/skills/opentui/references/keyboard/REFERENCE.md +511 -0
- package/.claude/skills/opentui/references/layout/REFERENCE.md +337 -0
- package/.claude/skills/opentui/references/layout/patterns.md +444 -0
- package/.claude/skills/opentui/references/react/REFERENCE.md +174 -0
- package/.claude/skills/opentui/references/react/api.md +435 -0
- package/.claude/skills/opentui/references/react/configuration.md +301 -0
- package/.claude/skills/opentui/references/react/gotchas.md +443 -0
- package/.claude/skills/opentui/references/react/patterns.md +501 -0
- package/.claude/skills/opentui/references/solid/REFERENCE.md +201 -0
- package/.claude/skills/opentui/references/solid/api.md +543 -0
- package/.claude/skills/opentui/references/solid/configuration.md +315 -0
- package/.claude/skills/opentui/references/solid/gotchas.md +415 -0
- package/.claude/skills/opentui/references/solid/patterns.md +558 -0
- package/.claude/skills/opentui/references/testing/REFERENCE.md +614 -0
- package/index.ts +429 -86
- package/package.json +2 -1
- package/update.ts +87 -0
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dealdeploy/skl",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "TUI skill manager for Claude Code agents",
|
|
5
5
|
"module": "index.ts",
|
|
6
6
|
"bin": {
|
|
7
7
|
"skl": "index.ts"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
+
"dev": "bun run index.ts",
|
|
10
11
|
"release": "npm version patch && git push && git push --tags",
|
|
11
12
|
"release:minor": "npm version minor && git push && git push --tags",
|
|
12
13
|
"release:major": "npm version major && git push && git push --tags"
|
package/update.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
import { readdirSync, existsSync, cpSync, rmSync, lstatSync, readlinkSync, readSync, unlinkSync } from "fs";
|
|
4
|
+
import { join, resolve } from "path";
|
|
5
|
+
import { homedir } from "os";
|
|
6
|
+
|
|
7
|
+
const LIBRARY = join(homedir(), "dotfiles/skills");
|
|
8
|
+
|
|
9
|
+
if (!existsSync(LIBRARY)) {
|
|
10
|
+
console.error(`skl: library not found at ${LIBRARY}`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const localDirs: [string, string][] = [];
|
|
15
|
+
const agentsDir = join(process.cwd(), ".agents/skills");
|
|
16
|
+
if (existsSync(agentsDir)) localDirs.push([agentsDir, ".agents/skills"]);
|
|
17
|
+
|
|
18
|
+
const claudeDir = join(process.cwd(), ".claude/skills");
|
|
19
|
+
if (existsSync(claudeDir)) localDirs.push([claudeDir, ".claude/skills"]);
|
|
20
|
+
|
|
21
|
+
if (localDirs.length === 0) {
|
|
22
|
+
console.log("No local skill directories found.");
|
|
23
|
+
process.exit(0);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type Entry = { dir: string; label: string; name: string; kind: "symlink" | "copy" };
|
|
27
|
+
|
|
28
|
+
const symlinks: Entry[] = [];
|
|
29
|
+
const copies: Entry[] = [];
|
|
30
|
+
let skipped = 0;
|
|
31
|
+
|
|
32
|
+
for (const [dir, label] of localDirs) {
|
|
33
|
+
for (const name of readdirSync(dir)) {
|
|
34
|
+
const localPath = join(dir, name);
|
|
35
|
+
const libPath = join(LIBRARY, name);
|
|
36
|
+
if (!existsSync(libPath)) {
|
|
37
|
+
skipped++;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const isSym = lstatSync(localPath).isSymbolicLink();
|
|
41
|
+
const entry: Entry = { dir, label, name, kind: isSym ? "symlink" : "copy" };
|
|
42
|
+
if (isSym) symlinks.push(entry);
|
|
43
|
+
else copies.push(entry);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Handle symlinks → copies (requires confirmation)
|
|
48
|
+
if (symlinks.length > 0) {
|
|
49
|
+
console.log("\nSymlinks to convert to local copies:");
|
|
50
|
+
for (const s of symlinks) {
|
|
51
|
+
console.log(` ${s.label}/${s.name} → ${readlinkSync(join(s.dir, s.name))}`);
|
|
52
|
+
}
|
|
53
|
+
process.stdout.write(`\nReplace ${symlinks.length} symlink(s) with copies from library? [y/N] `);
|
|
54
|
+
|
|
55
|
+
const buf = new Uint8Array(100);
|
|
56
|
+
const n = readSync(0, buf);
|
|
57
|
+
const answer = new TextDecoder().decode(buf.subarray(0, n)).trim().toLowerCase();
|
|
58
|
+
|
|
59
|
+
if (answer === "y" || answer === "yes") {
|
|
60
|
+
for (const s of symlinks) {
|
|
61
|
+
const localPath = join(s.dir, s.name);
|
|
62
|
+
unlinkSync(localPath);
|
|
63
|
+
cpSync(join(LIBRARY, s.name), localPath, { recursive: true });
|
|
64
|
+
console.log(` converted ${s.label}/${s.name}`);
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
console.log("Skipping symlink conversion.");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Update existing copies
|
|
72
|
+
if (copies.length > 0) {
|
|
73
|
+
console.log(`\nUpdating ${copies.length} local copies from library...`);
|
|
74
|
+
for (const c of copies) {
|
|
75
|
+
const localPath = join(c.dir, c.name);
|
|
76
|
+
rmSync(localPath, { recursive: true, force: true });
|
|
77
|
+
cpSync(join(LIBRARY, c.name), localPath, { recursive: true });
|
|
78
|
+
console.log(` updated ${c.label}/${c.name}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (symlinks.length === 0 && copies.length === 0) {
|
|
83
|
+
console.log("Nothing to update.");
|
|
84
|
+
}
|
|
85
|
+
if (skipped > 0) {
|
|
86
|
+
console.log(`${skipped} skipped (not in library)`);
|
|
87
|
+
}
|