skillspace 0.7.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/LICENSE +22 -0
- package/README.md +57 -0
- package/bin/skillspace.js +2 -0
- package/dist/browserAuth.d.ts +20 -0
- package/dist/browserAuth.js +156 -0
- package/dist/browserAuth.js.map +1 -0
- package/dist/cli/authToken.d.ts +2 -0
- package/dist/cli/authToken.js +13 -0
- package/dist/cli/authToken.js.map +1 -0
- package/dist/cli/buildInfo.d.ts +3 -0
- package/dist/cli/buildInfo.js +103 -0
- package/dist/cli/buildInfo.js.map +1 -0
- package/dist/cli/clawdbotConfig.d.ts +6 -0
- package/dist/cli/clawdbotConfig.js +156 -0
- package/dist/cli/clawdbotConfig.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +9 -0
- package/dist/cli/commands/auth.js +74 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/delete.d.ts +28 -0
- package/dist/cli/commands/delete.js +94 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/inspect.d.ts +12 -0
- package/dist/cli/commands/inspect.js +281 -0
- package/dist/cli/commands/inspect.js.map +1 -0
- package/dist/cli/commands/moderation.d.ts +19 -0
- package/dist/cli/commands/moderation.js +161 -0
- package/dist/cli/commands/moderation.js.map +1 -0
- package/dist/cli/commands/publish.d.ts +9 -0
- package/dist/cli/commands/publish.js +85 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +26 -0
- package/dist/cli/commands/skills.js +387 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/star.d.ts +8 -0
- package/dist/cli/commands/star.js +31 -0
- package/dist/cli/commands/star.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +3 -0
- package/dist/cli/commands/sync.js +157 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/syncHelpers.d.ts +76 -0
- package/dist/cli/commands/syncHelpers.js +369 -0
- package/dist/cli/commands/syncHelpers.js.map +1 -0
- package/dist/cli/commands/syncTypes.d.ts +24 -0
- package/dist/cli/commands/syncTypes.js +2 -0
- package/dist/cli/commands/syncTypes.js.map +1 -0
- package/dist/cli/commands/transfer.d.ts +50 -0
- package/dist/cli/commands/transfer.js +133 -0
- package/dist/cli/commands/transfer.js.map +1 -0
- package/dist/cli/commands/unstar.d.ts +8 -0
- package/dist/cli/commands/unstar.js +31 -0
- package/dist/cli/commands/unstar.js.map +1 -0
- package/dist/cli/helpStyle.d.ts +13 -0
- package/dist/cli/helpStyle.js +38 -0
- package/dist/cli/helpStyle.js.map +1 -0
- package/dist/cli/registry.d.ts +7 -0
- package/dist/cli/registry.js +31 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/scanSkills.d.ts +7 -0
- package/dist/cli/scanSkills.js +84 -0
- package/dist/cli/scanSkills.js.map +1 -0
- package/dist/cli/slug.d.ts +2 -0
- package/dist/cli/slug.js +16 -0
- package/dist/cli/slug.js.map +1 -0
- package/dist/cli/types.d.ts +15 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/ui.d.ts +7 -0
- package/dist/cli/ui.js +82 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +384 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/discovery.d.ts +5 -0
- package/dist/discovery.js +25 -0
- package/dist/discovery.js.map +1 -0
- package/dist/homedir.d.ts +7 -0
- package/dist/homedir.js +29 -0
- package/dist/homedir.js.map +1 -0
- package/dist/http.d.ts +43 -0
- package/dist/http.js +501 -0
- package/dist/http.js.map +1 -0
- package/dist/schema/ark.d.ts +4 -0
- package/dist/schema/ark.js +26 -0
- package/dist/schema/ark.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/routes.d.ts +24 -0
- package/dist/schema/routes.js +25 -0
- package/dist/schema/routes.js.map +1 -0
- package/dist/schema/schemas.d.ts +343 -0
- package/dist/schema/schemas.js +308 -0
- package/dist/schema/schemas.js.map +1 -0
- package/dist/schema/textFiles.d.ts +5 -0
- package/dist/schema/textFiles.js +66 -0
- package/dist/schema/textFiles.js.map +1 -0
- package/dist/skills.d.ts +43 -0
- package/dist/skills.js +166 -0
- package/dist/skills.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const RAW_TEXT_FILE_EXTENSIONS = [
|
|
2
|
+
"md",
|
|
3
|
+
"mdx",
|
|
4
|
+
"txt",
|
|
5
|
+
"json",
|
|
6
|
+
"json5",
|
|
7
|
+
"yaml",
|
|
8
|
+
"yml",
|
|
9
|
+
"toml",
|
|
10
|
+
"js",
|
|
11
|
+
"cjs",
|
|
12
|
+
"mjs",
|
|
13
|
+
"ts",
|
|
14
|
+
"tsx",
|
|
15
|
+
"jsx",
|
|
16
|
+
"py",
|
|
17
|
+
"sh",
|
|
18
|
+
"rb",
|
|
19
|
+
"go",
|
|
20
|
+
"rs",
|
|
21
|
+
"swift",
|
|
22
|
+
"kt",
|
|
23
|
+
"java",
|
|
24
|
+
"cs",
|
|
25
|
+
"cpp",
|
|
26
|
+
"c",
|
|
27
|
+
"h",
|
|
28
|
+
"hpp",
|
|
29
|
+
"sql",
|
|
30
|
+
"csv",
|
|
31
|
+
"ini",
|
|
32
|
+
"cfg",
|
|
33
|
+
"env",
|
|
34
|
+
"xml",
|
|
35
|
+
"html",
|
|
36
|
+
"css",
|
|
37
|
+
"scss",
|
|
38
|
+
"sass",
|
|
39
|
+
"svg",
|
|
40
|
+
];
|
|
41
|
+
export const TEXT_FILE_EXTENSIONS = RAW_TEXT_FILE_EXTENSIONS;
|
|
42
|
+
export const TEXT_FILE_EXTENSION_SET = new Set(TEXT_FILE_EXTENSIONS);
|
|
43
|
+
const RAW_TEXT_CONTENT_TYPES = [
|
|
44
|
+
"application/json",
|
|
45
|
+
"application/xml",
|
|
46
|
+
"application/yaml",
|
|
47
|
+
"application/x-yaml",
|
|
48
|
+
"application/toml",
|
|
49
|
+
"application/javascript",
|
|
50
|
+
"application/typescript",
|
|
51
|
+
"application/markdown",
|
|
52
|
+
"image/svg+xml",
|
|
53
|
+
];
|
|
54
|
+
export const TEXT_CONTENT_TYPES = RAW_TEXT_CONTENT_TYPES;
|
|
55
|
+
export const TEXT_CONTENT_TYPE_SET = new Set(TEXT_CONTENT_TYPES);
|
|
56
|
+
export function isTextContentType(contentType) {
|
|
57
|
+
if (!contentType)
|
|
58
|
+
return false;
|
|
59
|
+
const normalized = contentType.split(";", 1)[0]?.trim().toLowerCase() ?? "";
|
|
60
|
+
if (!normalized)
|
|
61
|
+
return false;
|
|
62
|
+
if (normalized.startsWith("text/"))
|
|
63
|
+
return true;
|
|
64
|
+
return TEXT_CONTENT_TYPE_SET.has(normalized);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=textFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textFiles.js","sourceRoot":"","sources":["../../src/schema/textFiles.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG;IAC/B,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,KAAK;IACL,GAAG;IACH,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;CACG,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS,oBAAoB,CAAC,CAAC;AAE7E,MAAM,sBAAsB,GAAG;IAC7B,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,wBAAwB;IACxB,sBAAsB;IACtB,eAAe;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,kBAAkB,CAAC,CAAC;AAEzE,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5E,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/skills.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type Lockfile } from "./schema/index.js";
|
|
2
|
+
export type SkillOrigin = {
|
|
3
|
+
version: 1;
|
|
4
|
+
registry: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
installedVersion: string;
|
|
7
|
+
installedAt: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function extractZipToDir(zipBytes: Uint8Array, targetDir: string): Promise<void>;
|
|
10
|
+
export declare function listTextFiles(root: string): Promise<{
|
|
11
|
+
relPath: string;
|
|
12
|
+
bytes: Uint8Array;
|
|
13
|
+
contentType?: string;
|
|
14
|
+
}[]>;
|
|
15
|
+
export type SkillFileHash = {
|
|
16
|
+
path: string;
|
|
17
|
+
sha256: string;
|
|
18
|
+
size: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function sha256Hex(bytes: Uint8Array): string;
|
|
21
|
+
export declare function buildSkillFingerprint(files: Array<{
|
|
22
|
+
path: string;
|
|
23
|
+
sha256: string;
|
|
24
|
+
}>): string;
|
|
25
|
+
export declare function hashSkillFiles(files: Array<{
|
|
26
|
+
relPath: string;
|
|
27
|
+
bytes: Uint8Array;
|
|
28
|
+
}>): {
|
|
29
|
+
files: {
|
|
30
|
+
path: string;
|
|
31
|
+
sha256: string;
|
|
32
|
+
size: number;
|
|
33
|
+
}[];
|
|
34
|
+
fingerprint: string;
|
|
35
|
+
};
|
|
36
|
+
export declare function hashSkillZip(zipBytes: Uint8Array): {
|
|
37
|
+
files: SkillFileHash[];
|
|
38
|
+
fingerprint: string;
|
|
39
|
+
};
|
|
40
|
+
export declare function readLockfile(workdir: string): Promise<Lockfile>;
|
|
41
|
+
export declare function writeLockfile(workdir: string, lock: Lockfile): Promise<void>;
|
|
42
|
+
export declare function readSkillOrigin(skillFolder: string): Promise<SkillOrigin | null>;
|
|
43
|
+
export declare function writeSkillOrigin(skillFolder: string, origin: SkillOrigin): Promise<void>;
|
package/dist/skills.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { unzipSync } from "fflate";
|
|
2
|
+
import ignore from "ignore";
|
|
3
|
+
import mime from "mime";
|
|
4
|
+
import { createHash } from "node:crypto";
|
|
5
|
+
import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
6
|
+
import { dirname, join, relative, resolve, sep } from "node:path";
|
|
7
|
+
import { LockfileSchema, parseArk, TEXT_FILE_EXTENSION_SET, } from "./schema/index.js";
|
|
8
|
+
const DOT_DIR = ".skillspace";
|
|
9
|
+
const DOT_IGNORE = ".skillspaceignore";
|
|
10
|
+
export async function extractZipToDir(zipBytes, targetDir) {
|
|
11
|
+
const entries = unzipSync(zipBytes);
|
|
12
|
+
await mkdir(targetDir, { recursive: true });
|
|
13
|
+
for (const [rawPath, data] of Object.entries(entries)) {
|
|
14
|
+
const safePath = sanitizeRelPath(rawPath);
|
|
15
|
+
if (!safePath)
|
|
16
|
+
continue;
|
|
17
|
+
const outPath = join(targetDir, safePath);
|
|
18
|
+
await mkdir(dirname(outPath), { recursive: true });
|
|
19
|
+
await writeFile(outPath, data);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function listTextFiles(root) {
|
|
23
|
+
const files = [];
|
|
24
|
+
const absRoot = resolve(root);
|
|
25
|
+
const ig = ignore();
|
|
26
|
+
ig.add([".git/", "node_modules/", `${DOT_DIR}/`]);
|
|
27
|
+
await addIgnoreFile(ig, join(absRoot, ".gitignore"));
|
|
28
|
+
await addIgnoreFile(ig, join(absRoot, DOT_IGNORE));
|
|
29
|
+
await walk(absRoot, async (absPath) => {
|
|
30
|
+
const relPath = normalizePath(relative(absRoot, absPath));
|
|
31
|
+
if (!relPath)
|
|
32
|
+
return;
|
|
33
|
+
if (ig.ignores(relPath))
|
|
34
|
+
return;
|
|
35
|
+
const ext = relPath.split(".").at(-1)?.toLowerCase() ?? "";
|
|
36
|
+
if (!ext || !TEXT_FILE_EXTENSION_SET.has(ext))
|
|
37
|
+
return;
|
|
38
|
+
const buffer = await readFile(absPath);
|
|
39
|
+
const contentType = mime.getType(relPath) ?? "text/plain";
|
|
40
|
+
files.push({ relPath, bytes: new Uint8Array(buffer), contentType });
|
|
41
|
+
});
|
|
42
|
+
return files;
|
|
43
|
+
}
|
|
44
|
+
export function sha256Hex(bytes) {
|
|
45
|
+
return createHash("sha256").update(bytes).digest("hex");
|
|
46
|
+
}
|
|
47
|
+
export function buildSkillFingerprint(files) {
|
|
48
|
+
const normalized = files
|
|
49
|
+
.filter((file) => Boolean(file.path) && Boolean(file.sha256))
|
|
50
|
+
.map((file) => ({ path: file.path, sha256: file.sha256 }))
|
|
51
|
+
.sort((a, b) => a.path.localeCompare(b.path));
|
|
52
|
+
const payload = normalized.map((file) => `${file.path}:${file.sha256}`).join("\n");
|
|
53
|
+
return createHash("sha256").update(payload).digest("hex");
|
|
54
|
+
}
|
|
55
|
+
export function hashSkillFiles(files) {
|
|
56
|
+
const hashed = files.map((file) => ({
|
|
57
|
+
path: file.relPath,
|
|
58
|
+
sha256: sha256Hex(file.bytes),
|
|
59
|
+
size: file.bytes.byteLength,
|
|
60
|
+
}));
|
|
61
|
+
return { files: hashed, fingerprint: buildSkillFingerprint(hashed) };
|
|
62
|
+
}
|
|
63
|
+
export function hashSkillZip(zipBytes) {
|
|
64
|
+
const entries = unzipSync(zipBytes);
|
|
65
|
+
const hashed = Object.entries(entries)
|
|
66
|
+
.map(([rawPath, bytes]) => {
|
|
67
|
+
const safePath = sanitizeZipPath(rawPath);
|
|
68
|
+
if (!safePath)
|
|
69
|
+
return null;
|
|
70
|
+
const ext = safePath.split(".").at(-1)?.toLowerCase() ?? "";
|
|
71
|
+
if (!ext || !TEXT_FILE_EXTENSION_SET.has(ext))
|
|
72
|
+
return null;
|
|
73
|
+
return { path: safePath, sha256: sha256Hex(bytes), size: bytes.byteLength };
|
|
74
|
+
})
|
|
75
|
+
.filter(Boolean);
|
|
76
|
+
return { files: hashed, fingerprint: buildSkillFingerprint(hashed) };
|
|
77
|
+
}
|
|
78
|
+
export async function readLockfile(workdir) {
|
|
79
|
+
const path = join(workdir, DOT_DIR, "lock.json");
|
|
80
|
+
try {
|
|
81
|
+
const raw = await readFile(path, "utf8");
|
|
82
|
+
const parsed = JSON.parse(raw);
|
|
83
|
+
return parseArk(LockfileSchema, parsed, "Lockfile");
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return { version: 1, skills: {} };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export async function writeLockfile(workdir, lock) {
|
|
90
|
+
const path = join(workdir, DOT_DIR, "lock.json");
|
|
91
|
+
await mkdir(dirname(path), { recursive: true });
|
|
92
|
+
await writeFile(path, `${JSON.stringify(lock, null, 2)}\n`, "utf8");
|
|
93
|
+
}
|
|
94
|
+
export async function readSkillOrigin(skillFolder) {
|
|
95
|
+
const path = join(skillFolder, DOT_DIR, "origin.json");
|
|
96
|
+
try {
|
|
97
|
+
const raw = await readFile(path, "utf8");
|
|
98
|
+
const parsed = JSON.parse(raw);
|
|
99
|
+
if (parsed.version !== 1)
|
|
100
|
+
return null;
|
|
101
|
+
if (!parsed.registry || !parsed.slug || !parsed.installedVersion)
|
|
102
|
+
return null;
|
|
103
|
+
if (typeof parsed.installedAt !== "number" || !Number.isFinite(parsed.installedAt)) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
version: 1,
|
|
108
|
+
registry: String(parsed.registry),
|
|
109
|
+
slug: String(parsed.slug),
|
|
110
|
+
installedVersion: String(parsed.installedVersion),
|
|
111
|
+
installedAt: parsed.installedAt,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export async function writeSkillOrigin(skillFolder, origin) {
|
|
119
|
+
const path = join(skillFolder, DOT_DIR, "origin.json");
|
|
120
|
+
await mkdir(dirname(path), { recursive: true });
|
|
121
|
+
await writeFile(path, `${JSON.stringify(origin, null, 2)}\n`, "utf8");
|
|
122
|
+
}
|
|
123
|
+
function normalizePath(path) {
|
|
124
|
+
return path
|
|
125
|
+
.split(sep)
|
|
126
|
+
.join("/")
|
|
127
|
+
.replace(/^\.\/+/, "");
|
|
128
|
+
}
|
|
129
|
+
function sanitizeRelPath(path) {
|
|
130
|
+
const normalized = path.replace(/^\.\/+/, "").replace(/^\/+/, "");
|
|
131
|
+
if (!normalized || normalized.endsWith("/"))
|
|
132
|
+
return null;
|
|
133
|
+
if (normalized.includes("..") || normalized.includes("\\"))
|
|
134
|
+
return null;
|
|
135
|
+
return normalized;
|
|
136
|
+
}
|
|
137
|
+
function sanitizeZipPath(path) {
|
|
138
|
+
return sanitizeRelPath(path);
|
|
139
|
+
}
|
|
140
|
+
async function walk(dir, onFile) {
|
|
141
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
142
|
+
for (const entry of entries) {
|
|
143
|
+
if (entry.name.startsWith("."))
|
|
144
|
+
continue;
|
|
145
|
+
if (entry.name === "node_modules")
|
|
146
|
+
continue;
|
|
147
|
+
const full = join(dir, entry.name);
|
|
148
|
+
if (entry.isDirectory()) {
|
|
149
|
+
await walk(full, onFile);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (!entry.isFile())
|
|
153
|
+
continue;
|
|
154
|
+
await onFile(full);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function addIgnoreFile(ig, path) {
|
|
158
|
+
try {
|
|
159
|
+
const raw = await readFile(path, "utf8");
|
|
160
|
+
ig.add(raw.split(/\r?\n/));
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
// optional
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "skillspace",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "SkillSpace CLI \\u2014 install, update, search, and publish agent skills.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"bin": {
|
|
7
|
+
"skillspace": "bin/skillspace.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin",
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"dev": "node --enable-source-maps dist/cli.js",
|
|
19
|
+
"prepublishOnly": "npm run build"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@clack/prompts": "^0.11.0",
|
|
23
|
+
"arktype": "^2.1.29",
|
|
24
|
+
"commander": "^14.0.2",
|
|
25
|
+
"fflate": "^0.8.2",
|
|
26
|
+
"ignore": "^7.0.5",
|
|
27
|
+
"json5": "^2.2.3",
|
|
28
|
+
"mime": "^4.1.0",
|
|
29
|
+
"ora": "^9.0.0",
|
|
30
|
+
"p-retry": "^7.1.1",
|
|
31
|
+
"semver": "^7.7.3",
|
|
32
|
+
"undici": "^7.16.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "^25.0.9",
|
|
36
|
+
"typescript": "^5.9.3"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=20"
|
|
40
|
+
}
|
|
41
|
+
}
|