superskill 0.2.6 → 0.2.7

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.
@@ -0,0 +1,150 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later OR Commercial
2
+ /**
3
+ * Skill cache — local disk cache for fetched skill content.
4
+ * Skills are cached at ~/.superskill/cache/{source}/{name}@{version}.md
5
+ * Prefetched skills are downloaded on install for offline availability.
6
+ */
7
+ import { readFile, writeFile, mkdir, rename, readdir } from "fs/promises";
8
+ import { resolve, dirname, join } from "path";
9
+ import { homedir, tmpdir } from "os";
10
+ import { randomBytes } from "crypto";
11
+ import { CATALOG } from "../commands/skill/catalog.js";
12
+ // ── Configuration ────────────────────────────────────
13
+ const CACHE_DIR = resolve(homedir(), ".superskill", "cache");
14
+ /** The 8 core skills that are prefetched on install */
15
+ export const PREFETCH_SKILL_IDS = [
16
+ "superpowers/brainstorming",
17
+ "ecc/plan",
18
+ "ecc/tdd-workflow",
19
+ "ecc/go-review",
20
+ "superpowers/systematic-debugging",
21
+ "ecc/security-review",
22
+ "ecc/verification-loop",
23
+ "ecc/deployment-patterns",
24
+ ];
25
+ // Allow tests to override the cache dir
26
+ let cacheDir = CACHE_DIR;
27
+ export function setCacheDir(dir) { cacheDir = dir; }
28
+ export function getCacheDir() { return cacheDir; }
29
+ // ── Cache Operations ─────────────────────────────────
30
+ /**
31
+ * Get cached skill content. Returns null if not cached.
32
+ */
33
+ export async function getCachedSkill(skillId) {
34
+ try {
35
+ const path = skillCachePath(skillId);
36
+ return await readFile(path, "utf-8");
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ }
42
+ /**
43
+ * Write skill content to cache. Uses atomic write (temp + rename).
44
+ */
45
+ export async function cacheSkill(skillId, content) {
46
+ try {
47
+ const path = skillCachePath(skillId);
48
+ await mkdir(dirname(path), { recursive: true });
49
+ const tmp = join(tmpdir(), `superskill-cache-${randomBytes(8).toString("hex")}`);
50
+ await writeFile(tmp, content, "utf-8");
51
+ await rename(tmp, path);
52
+ }
53
+ catch {
54
+ // Cache write failure is non-fatal
55
+ }
56
+ }
57
+ /**
58
+ * Check if a skill is cached.
59
+ */
60
+ export async function isSkillCached(skillId) {
61
+ try {
62
+ await readFile(skillCachePath(skillId), "utf-8");
63
+ return true;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ /**
70
+ * Prefetch core skills from their source repos.
71
+ * Called during postinstall. Non-fatal — warns on failure, never blocks install.
72
+ * Returns count of successfully cached skills.
73
+ */
74
+ export async function prefetchCoreSkills(options) {
75
+ const concurrency = options?.concurrency ?? 4;
76
+ const onProgress = options?.onProgress;
77
+ const results = { fetched: 0, cached: 0, failed: 0, errors: [] };
78
+ // Resolve skill IDs to catalog entries
79
+ const skills = PREFETCH_SKILL_IDS
80
+ .map((id) => CATALOG.find((s) => s.id === id))
81
+ .filter((s) => s !== undefined);
82
+ // Process in batches for bounded concurrency
83
+ for (let i = 0; i < skills.length; i += concurrency) {
84
+ const batch = skills.slice(i, i + concurrency);
85
+ const batchResults = await Promise.allSettled(batch.map(async (skill) => {
86
+ // Check if already cached
87
+ if (await isSkillCached(skill.id)) {
88
+ onProgress?.(skill.id, "cached");
89
+ results.cached++;
90
+ return;
91
+ }
92
+ // Fetch from source
93
+ const content = await fetchSkillFromSource(skill.source);
94
+ await cacheSkill(skill.id, content);
95
+ onProgress?.(skill.id, "fetched");
96
+ results.fetched++;
97
+ }));
98
+ for (let j = 0; j < batchResults.length; j++) {
99
+ const result = batchResults[j];
100
+ if (result.status === "rejected") {
101
+ const skillId = batch[j].id;
102
+ const error = result.reason instanceof Error ? result.reason.message : String(result.reason);
103
+ results.errors.push(`${skillId}: ${error}`);
104
+ results.failed++;
105
+ onProgress?.(skillId, "failed");
106
+ }
107
+ }
108
+ }
109
+ return results;
110
+ }
111
+ /**
112
+ * List all cached skills.
113
+ */
114
+ export async function listCachedSkills() {
115
+ try {
116
+ const cached = [];
117
+ const repos = await readdir(cacheDir).catch(() => []);
118
+ for (const repo of repos) {
119
+ const repoDir = join(cacheDir, repo);
120
+ const files = await readdir(repoDir).catch(() => []);
121
+ for (const file of files) {
122
+ if (file.endsWith(".md")) {
123
+ const name = file.replace(".md", "");
124
+ cached.push(`${repo}/${name}`);
125
+ }
126
+ }
127
+ }
128
+ return cached;
129
+ }
130
+ catch {
131
+ return [];
132
+ }
133
+ }
134
+ // ── Helpers ──────────────────────────────────────────
135
+ function skillCachePath(skillId) {
136
+ // "ecc/tdd-workflow" → ~/.superskill/cache/ecc/tdd-workflow.md
137
+ const [repo, ...rest] = skillId.split("/");
138
+ const name = rest.join("/");
139
+ return resolve(cacheDir, repo, `${name}.md`);
140
+ }
141
+ async function fetchSkillFromSource(source) {
142
+ if (source.startsWith("http://") || source.startsWith("https://")) {
143
+ const res = await fetch(source);
144
+ if (!res.ok)
145
+ throw new Error(`HTTP ${res.status} ${res.statusText}`);
146
+ return res.text();
147
+ }
148
+ return readFile(source, "utf-8");
149
+ }
150
+ //# sourceMappingURL=skill-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-cache.js","sourceRoot":"","sources":["../../src/lib/skill-cache.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: AGPL-3.0-or-later OR Commercial
3
3
  try {
4
4
  const { detectClients } = await import("./detect.js");
5
+ const { prefetchCoreSkills, PREFETCH_SKILL_IDS } = await import("../lib/skill-cache.js");
5
6
  if (!process.stdout.isTTY)
6
7
  process.exit(0);
7
8
  const detected = detectClients();
@@ -14,8 +15,28 @@ try {
14
15
  console.log(" No AI clients detected.");
15
16
  }
16
17
  console.log(' Run "superskill-cli setup --all" to configure all 8 supported clients.\n');
18
+ // Prefetch core skills for offline availability
19
+ console.log(` Prefetching ${PREFETCH_SKILL_IDS.length} core skills...`);
20
+ const result = await prefetchCoreSkills({
21
+ onProgress: (skill, status) => {
22
+ const icon = status === "fetched" ? "+" : status === "cached" ? "=" : "x";
23
+ console.log(` [${icon}] ${skill}`);
24
+ },
25
+ });
26
+ const parts = [];
27
+ if (result.fetched > 0)
28
+ parts.push(`${result.fetched} fetched`);
29
+ if (result.cached > 0)
30
+ parts.push(`${result.cached} already cached`);
31
+ if (result.failed > 0)
32
+ parts.push(`${result.failed} failed`);
33
+ console.log(` Done: ${parts.join(", ")}.\n`);
34
+ if (result.failed > 0) {
35
+ console.log(" Some skills could not be prefetched. They will be fetched on first use.\n");
36
+ }
17
37
  }
18
38
  catch {
39
+ // Postinstall must never fail the install
19
40
  process.exit(0);
20
41
  }
21
42
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../../src/setup/postinstall.ts"],"names":[],"mappings":";AACA,2DAA2D;AAC3D,IAAI,CAAC;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAEtD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;AAC5F,CAAC;AAAC,MAAM,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../../src/setup/postinstall.ts"],"names":[],"mappings":";AACA,2DAA2D;AAC3D,IAAI,CAAC;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEzF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAE1F,gDAAgD;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,kBAAkB,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACtC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,0CAA0C;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superskill",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "Universal agentic knowledge base + context optimizer + skill marketplace for AI tools",
5
5
  "type": "module",
6
6
  "main": "dist/mcp-server.js",