skill-preflight 0.1.0 → 0.1.2
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.js +1 -1
- package/dist/core/filesystem.d.ts +5 -0
- package/dist/core/filesystem.js +356 -8
- package/dist/core/filesystem.js.map +1 -1
- package/package.json +4 -2
package/dist/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ export async function runCli(argv) {
|
|
|
8
8
|
program
|
|
9
9
|
.name("skill-preflight")
|
|
10
10
|
.description("Pre-install safety, token, and maintainability scorecard for AI agent skills.")
|
|
11
|
-
.version("0.1.
|
|
11
|
+
.version("0.1.2");
|
|
12
12
|
program
|
|
13
13
|
.command("scan")
|
|
14
14
|
.argument("[target]", "Local skill path or GitHub repository URL")
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { ResolvedTarget, ScannedFile, TextFile } from "./types.js";
|
|
2
2
|
export declare function resolveTarget(target: string, keepTemp?: boolean): Promise<ResolvedTarget>;
|
|
3
3
|
export declare function isGitHubUrl(value: string): boolean;
|
|
4
|
+
export interface GitHubRepoRef {
|
|
5
|
+
owner: string;
|
|
6
|
+
repo: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function parseGitHubUrl(value: string): GitHubRepoRef | undefined;
|
|
4
9
|
export declare function discoverSkillRoots(rootPath: string): Promise<string[]>;
|
|
5
10
|
export declare function readSkillFiles(rootPath: string): Promise<{
|
|
6
11
|
files: ScannedFile[];
|
package/dist/core/filesystem.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { readdir, readFile, rm } from "node:fs/promises";
|
|
1
|
+
import { mkdir, readdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { execFile } from "node:child_process";
|
|
6
6
|
import { promisify } from "node:util";
|
|
7
|
+
import * as tar from "tar";
|
|
8
|
+
import { ProxyAgent } from "undici";
|
|
7
9
|
import { isProbablyText, pathExists, toPosixPath } from "./utils.js";
|
|
8
10
|
const execFileAsync = promisify(execFile);
|
|
9
11
|
const IGNORED_DIRS = new Set([
|
|
@@ -19,20 +21,56 @@ const IGNORED_DIRS = new Set([
|
|
|
19
21
|
"__pycache__"
|
|
20
22
|
]);
|
|
21
23
|
const MAX_TEXT_FILE_BYTES = 1024 * 1024;
|
|
24
|
+
const GITHUB_FETCH_TIMEOUT_MS = 30000;
|
|
25
|
+
const GITHUB_FILE_FETCH_TIMEOUT_MS = 15000;
|
|
26
|
+
const GITHUB_DOWNLOAD_CONCURRENCY = 8;
|
|
27
|
+
const GITHUB_SPARSE_MAX_FILES = 3000;
|
|
28
|
+
const GITHUB_SPARSE_MAX_BYTES = 20 * 1024 * 1024;
|
|
29
|
+
const GITHUB_SPARSE_MAX_SINGLE_FILE_BYTES = 1024 * 1024;
|
|
30
|
+
let proxyDispatcherPromise;
|
|
22
31
|
export async function resolveTarget(target, keepTemp = false) {
|
|
23
|
-
|
|
32
|
+
const githubRepo = parseGitHubUrl(target);
|
|
33
|
+
if (githubRepo) {
|
|
24
34
|
const tempRoot = path.join(os.tmpdir(), `skill-preflight-${randomUUID()}`);
|
|
25
|
-
await
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
await mkdir(tempRoot, { recursive: true });
|
|
36
|
+
const failures = [];
|
|
37
|
+
try {
|
|
38
|
+
await downloadGitHubSkillFiles(githubRepo, tempRoot);
|
|
39
|
+
}
|
|
40
|
+
catch (sparseError) {
|
|
41
|
+
failures.push(`GitHub API sparse download failed: ${formatToolError(sparseError)}`);
|
|
42
|
+
await removeTempPath(tempRoot);
|
|
43
|
+
await mkdir(tempRoot, { recursive: true });
|
|
44
|
+
try {
|
|
45
|
+
await downloadGitHubTarball(githubRepo, tempRoot);
|
|
46
|
+
}
|
|
47
|
+
catch (tarballError) {
|
|
48
|
+
failures.push(`Tarball download failed: ${formatToolError(tarballError)}`);
|
|
49
|
+
await removeTempPath(tempRoot);
|
|
50
|
+
try {
|
|
51
|
+
await execFileAsync("git", ["clone", "--depth", "1", target, tempRoot], {
|
|
52
|
+
timeout: 120000,
|
|
53
|
+
windowsHide: true
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (gitError) {
|
|
57
|
+
failures.push(`git clone fallback failed: ${formatToolError(gitError)}`);
|
|
58
|
+
await removeTempPath(tempRoot).catch(() => undefined);
|
|
59
|
+
throw new Error([
|
|
60
|
+
`Could not load GitHub repository: ${target}`,
|
|
61
|
+
...failures,
|
|
62
|
+
"Check the repository URL, GitHub access, network proxy settings, or try scanning a local checkout."
|
|
63
|
+
].join("\n"));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
29
67
|
return {
|
|
30
68
|
displayTarget: target,
|
|
31
69
|
localPath: tempRoot,
|
|
32
70
|
cleanup: keepTemp
|
|
33
71
|
? undefined
|
|
34
72
|
: async () => {
|
|
35
|
-
await
|
|
73
|
+
await removeTempPath(tempRoot).catch(() => undefined);
|
|
36
74
|
}
|
|
37
75
|
};
|
|
38
76
|
}
|
|
@@ -46,7 +84,27 @@ export async function resolveTarget(target, keepTemp = false) {
|
|
|
46
84
|
};
|
|
47
85
|
}
|
|
48
86
|
export function isGitHubUrl(value) {
|
|
49
|
-
return
|
|
87
|
+
return Boolean(parseGitHubUrl(value));
|
|
88
|
+
}
|
|
89
|
+
export function parseGitHubUrl(value) {
|
|
90
|
+
let url;
|
|
91
|
+
try {
|
|
92
|
+
url = new URL(value.trim());
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
if (url.protocol !== "https:" || url.hostname.toLowerCase() !== "github.com") {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
const [owner, rawRepo, extra] = url.pathname.split("/").filter(Boolean);
|
|
101
|
+
if (!owner || !rawRepo || extra) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
owner,
|
|
106
|
+
repo: rawRepo.replace(/\.git$/i, "")
|
|
107
|
+
};
|
|
50
108
|
}
|
|
51
109
|
export async function discoverSkillRoots(rootPath) {
|
|
52
110
|
const directSkill = path.join(rootPath, "SKILL.md");
|
|
@@ -112,4 +170,294 @@ export function commonInstalledSkillDirs() {
|
|
|
112
170
|
path.join(cwd, ".claude", "skills")
|
|
113
171
|
];
|
|
114
172
|
}
|
|
173
|
+
async function downloadGitHubSkillFiles(repoRef, destination) {
|
|
174
|
+
const treeUrl = `https://api.github.com/repos/${encodeURIComponent(repoRef.owner)}/${encodeURIComponent(repoRef.repo)}/git/trees/HEAD?recursive=1`;
|
|
175
|
+
const treeResponse = await fetchJson(treeUrl, GITHUB_FETCH_TIMEOUT_MS);
|
|
176
|
+
const entries = treeResponse.tree;
|
|
177
|
+
if (!Array.isArray(entries)) {
|
|
178
|
+
throw new Error("GitHub API response did not include a repository tree.");
|
|
179
|
+
}
|
|
180
|
+
const blobEntries = entries.filter((entry) => entry.type === "blob" && entry.path);
|
|
181
|
+
const skillRoots = new Set(blobEntries
|
|
182
|
+
.filter((entry) => basenamePosix(entry.path).toLowerCase() === "skill.md")
|
|
183
|
+
.map((entry) => dirnamePosix(entry.path)));
|
|
184
|
+
if (treeResponse.truncated && skillRoots.size === 0) {
|
|
185
|
+
throw new Error("GitHub API tree response was truncated before any SKILL.md files were found.");
|
|
186
|
+
}
|
|
187
|
+
if (skillRoots.size === 0) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const candidates = blobEntries
|
|
191
|
+
.map((entry) => ({
|
|
192
|
+
entry,
|
|
193
|
+
skillRoot: findContainingSkillRoot(entry.path, skillRoots)
|
|
194
|
+
}))
|
|
195
|
+
.filter((candidate) => Boolean(candidate.skillRoot))
|
|
196
|
+
.filter(({ entry }) => !hasIgnoredPathSegment(entry.path))
|
|
197
|
+
.sort((left, right) => downloadPriority(left.entry, left.skillRoot) - downloadPriority(right.entry, right.skillRoot));
|
|
198
|
+
const selected = [];
|
|
199
|
+
let selectedBytes = 0;
|
|
200
|
+
for (const { entry } of candidates) {
|
|
201
|
+
const isSkillFile = basenamePosix(entry.path).toLowerCase() === "skill.md";
|
|
202
|
+
const size = entry.size ?? 0;
|
|
203
|
+
if (!isSkillFile &&
|
|
204
|
+
(selected.length >= GITHUB_SPARSE_MAX_FILES ||
|
|
205
|
+
selectedBytes + size > GITHUB_SPARSE_MAX_BYTES ||
|
|
206
|
+
size > GITHUB_SPARSE_MAX_SINGLE_FILE_BYTES)) {
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
selected.push(entry);
|
|
210
|
+
selectedBytes += size;
|
|
211
|
+
}
|
|
212
|
+
const downloadedSkillFiles = new Set();
|
|
213
|
+
const skillFileFailures = [];
|
|
214
|
+
await runWithConcurrency(selected, GITHUB_DOWNLOAD_CONCURRENCY, async (entry) => {
|
|
215
|
+
const fileUrl = `https://raw.githubusercontent.com/${encodeURIComponent(repoRef.owner)}/${encodeURIComponent(repoRef.repo)}/HEAD/${encodePosixPath(entry.path)}`;
|
|
216
|
+
const isSkillFile = basenamePosix(entry.path).toLowerCase() === "skill.md";
|
|
217
|
+
try {
|
|
218
|
+
const content = await fetchBuffer(fileUrl, GITHUB_FILE_FETCH_TIMEOUT_MS);
|
|
219
|
+
const outputPath = resolveInside(destination, entry.path);
|
|
220
|
+
await mkdir(path.dirname(outputPath), { recursive: true });
|
|
221
|
+
await writeFile(outputPath, content);
|
|
222
|
+
if (isSkillFile) {
|
|
223
|
+
downloadedSkillFiles.add(entry.path);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
if (isSkillFile) {
|
|
228
|
+
skillFileFailures.push(`${entry.path}: ${formatToolError(error)}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
if (downloadedSkillFiles.size === 0) {
|
|
233
|
+
throw new Error([
|
|
234
|
+
"GitHub API found SKILL.md files, but none could be downloaded from raw.githubusercontent.com.",
|
|
235
|
+
...skillFileFailures.slice(0, 5)
|
|
236
|
+
].join("\n"));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
async function downloadGitHubTarball(repoRef, destination) {
|
|
240
|
+
const tarballUrl = `https://codeload.github.com/${encodeURIComponent(repoRef.owner)}/${encodeURIComponent(repoRef.repo)}/tar.gz/HEAD`;
|
|
241
|
+
const archivePath = path.join(os.tmpdir(), `skill-preflight-${randomUUID()}.tar.gz`);
|
|
242
|
+
try {
|
|
243
|
+
const archive = await fetchBuffer(tarballUrl, GITHUB_FETCH_TIMEOUT_MS);
|
|
244
|
+
await writeFile(archivePath, archive);
|
|
245
|
+
await tar.x({
|
|
246
|
+
file: archivePath,
|
|
247
|
+
cwd: destination,
|
|
248
|
+
strip: 1
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
finally {
|
|
252
|
+
await removeTempPath(archivePath).catch(() => undefined);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
async function fetchJson(url, timeoutMs) {
|
|
256
|
+
return fetchWithTimeout(url, timeoutMs, {
|
|
257
|
+
headers: {
|
|
258
|
+
Accept: "application/vnd.github+json",
|
|
259
|
+
"User-Agent": "skill-preflight"
|
|
260
|
+
}
|
|
261
|
+
}, async (response) => (await response.json()));
|
|
262
|
+
}
|
|
263
|
+
async function fetchBuffer(url, timeoutMs) {
|
|
264
|
+
return fetchWithTimeout(url, timeoutMs, {
|
|
265
|
+
headers: {
|
|
266
|
+
"User-Agent": "skill-preflight"
|
|
267
|
+
},
|
|
268
|
+
redirect: "follow"
|
|
269
|
+
}, async (response) => Buffer.from(await response.arrayBuffer()));
|
|
270
|
+
}
|
|
271
|
+
async function fetchWithTimeout(url, timeoutMs, init, consume) {
|
|
272
|
+
const controller = new AbortController();
|
|
273
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
274
|
+
const dispatcher = await getProxyDispatcher();
|
|
275
|
+
try {
|
|
276
|
+
const requestInit = {
|
|
277
|
+
...init,
|
|
278
|
+
signal: controller.signal
|
|
279
|
+
};
|
|
280
|
+
if (dispatcher) {
|
|
281
|
+
requestInit.dispatcher = dispatcher;
|
|
282
|
+
}
|
|
283
|
+
const response = await fetch(url, requestInit);
|
|
284
|
+
if (!response.ok) {
|
|
285
|
+
throw new Error(`HTTP ${response.status} ${response.statusText}`);
|
|
286
|
+
}
|
|
287
|
+
return await consume(response);
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
291
|
+
throw new Error(`Timed out after ${Math.round(timeoutMs / 1000)}s fetching ${url}`);
|
|
292
|
+
}
|
|
293
|
+
throw error;
|
|
294
|
+
}
|
|
295
|
+
finally {
|
|
296
|
+
clearTimeout(timeout);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
async function runWithConcurrency(items, limit, worker) {
|
|
300
|
+
let nextIndex = 0;
|
|
301
|
+
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
302
|
+
while (true) {
|
|
303
|
+
const index = nextIndex;
|
|
304
|
+
nextIndex += 1;
|
|
305
|
+
if (index >= items.length) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
await worker(items[index]);
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
await Promise.all(workers);
|
|
312
|
+
}
|
|
313
|
+
function findContainingSkillRoot(filePath, skillRoots) {
|
|
314
|
+
let current = dirnamePosix(filePath);
|
|
315
|
+
while (true) {
|
|
316
|
+
if (skillRoots.has(current)) {
|
|
317
|
+
return current || ".";
|
|
318
|
+
}
|
|
319
|
+
if (!current) {
|
|
320
|
+
return undefined;
|
|
321
|
+
}
|
|
322
|
+
current = dirnamePosix(current);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
function downloadPriority(entry, skillRoot) {
|
|
326
|
+
const relativePath = relativePosix(skillRoot === "." ? "" : skillRoot, entry.path);
|
|
327
|
+
const basename = basenamePosix(relativePath).toLowerCase();
|
|
328
|
+
if (basename === "skill.md")
|
|
329
|
+
return 0;
|
|
330
|
+
if (/^readme(\.[a-z0-9]+)?$/i.test(basename) || /^licen[cs]e(\.[a-z0-9]+)?$/i.test(basename))
|
|
331
|
+
return 1;
|
|
332
|
+
if (/^(package\.json|requirements\.txt|pyproject\.toml|cargo\.toml|go\.mod|gemfile|pipfile)$/i.test(basename)) {
|
|
333
|
+
return 2;
|
|
334
|
+
}
|
|
335
|
+
if (/^(references?|docs?|knowledge|examples?)\//i.test(relativePath))
|
|
336
|
+
return 3;
|
|
337
|
+
if (entry.size !== undefined && entry.size > GITHUB_SPARSE_MAX_SINGLE_FILE_BYTES)
|
|
338
|
+
return 10;
|
|
339
|
+
return 4;
|
|
340
|
+
}
|
|
341
|
+
function basenamePosix(value) {
|
|
342
|
+
return value.split("/").filter(Boolean).pop() ?? "";
|
|
343
|
+
}
|
|
344
|
+
function dirnamePosix(value) {
|
|
345
|
+
const parts = value.split("/").filter(Boolean);
|
|
346
|
+
parts.pop();
|
|
347
|
+
return parts.join("/");
|
|
348
|
+
}
|
|
349
|
+
function relativePosix(root, filePath) {
|
|
350
|
+
return root ? filePath.slice(root.length + 1) : filePath;
|
|
351
|
+
}
|
|
352
|
+
function hasIgnoredPathSegment(value) {
|
|
353
|
+
return value.split("/").some((segment) => IGNORED_DIRS.has(segment));
|
|
354
|
+
}
|
|
355
|
+
function encodePosixPath(value) {
|
|
356
|
+
return value.split("/").map(encodeURIComponent).join("/");
|
|
357
|
+
}
|
|
358
|
+
function resolveInside(rootPath, relativePath) {
|
|
359
|
+
const normalized = path.normalize(relativePath.replaceAll("/", path.sep));
|
|
360
|
+
if (path.isAbsolute(normalized) || normalized.startsWith("..")) {
|
|
361
|
+
throw new Error(`Unsafe path from GitHub archive: ${relativePath}`);
|
|
362
|
+
}
|
|
363
|
+
const resolved = path.resolve(rootPath, normalized);
|
|
364
|
+
const root = path.resolve(rootPath);
|
|
365
|
+
if (resolved !== root && !resolved.startsWith(`${root}${path.sep}`)) {
|
|
366
|
+
throw new Error(`Unsafe path from GitHub archive: ${relativePath}`);
|
|
367
|
+
}
|
|
368
|
+
return resolved;
|
|
369
|
+
}
|
|
370
|
+
async function removeTempPath(targetPath) {
|
|
371
|
+
await rm(targetPath, {
|
|
372
|
+
recursive: true,
|
|
373
|
+
force: true,
|
|
374
|
+
maxRetries: 5,
|
|
375
|
+
retryDelay: 200
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
function getProxyDispatcher() {
|
|
379
|
+
proxyDispatcherPromise ??= resolveProxyUrl()
|
|
380
|
+
.then((proxyUrl) => {
|
|
381
|
+
if (!proxyUrl) {
|
|
382
|
+
return undefined;
|
|
383
|
+
}
|
|
384
|
+
return new ProxyAgent(proxyUrl);
|
|
385
|
+
})
|
|
386
|
+
.catch(() => undefined);
|
|
387
|
+
return proxyDispatcherPromise;
|
|
388
|
+
}
|
|
389
|
+
async function resolveProxyUrl() {
|
|
390
|
+
const envProxy = process.env.HTTPS_PROXY || process.env.https_proxy || process.env.HTTP_PROXY || process.env.http_proxy;
|
|
391
|
+
if (envProxy) {
|
|
392
|
+
return normalizeProxyUrl(envProxy);
|
|
393
|
+
}
|
|
394
|
+
if (process.platform !== "win32") {
|
|
395
|
+
return undefined;
|
|
396
|
+
}
|
|
397
|
+
try {
|
|
398
|
+
const { stdout } = await execFileAsync("reg", ["query", "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"], {
|
|
399
|
+
timeout: 5000,
|
|
400
|
+
windowsHide: true
|
|
401
|
+
});
|
|
402
|
+
const proxyEnabled = /ProxyEnable\s+REG_DWORD\s+0x1/i.test(stdout);
|
|
403
|
+
const proxyServer = stdout.match(/ProxyServer\s+REG_SZ\s+(.+)/i)?.[1]?.trim();
|
|
404
|
+
if (!proxyEnabled || !proxyServer) {
|
|
405
|
+
return undefined;
|
|
406
|
+
}
|
|
407
|
+
return parseWindowsProxyServer(proxyServer);
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
return undefined;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
function parseWindowsProxyServer(value) {
|
|
414
|
+
const entries = value
|
|
415
|
+
.split(";")
|
|
416
|
+
.map((entry) => entry.trim())
|
|
417
|
+
.filter(Boolean);
|
|
418
|
+
if (entries.length === 0) {
|
|
419
|
+
return undefined;
|
|
420
|
+
}
|
|
421
|
+
const keyed = entries.map((entry) => {
|
|
422
|
+
const separator = entry.indexOf("=");
|
|
423
|
+
return separator >= 0
|
|
424
|
+
? {
|
|
425
|
+
key: entry.slice(0, separator).toLowerCase(),
|
|
426
|
+
value: entry.slice(separator + 1)
|
|
427
|
+
}
|
|
428
|
+
: {
|
|
429
|
+
key: "",
|
|
430
|
+
value: entry
|
|
431
|
+
};
|
|
432
|
+
});
|
|
433
|
+
const candidate = keyed.find((entry) => entry.key === "https")?.value ??
|
|
434
|
+
keyed.find((entry) => entry.key === "http")?.value ??
|
|
435
|
+
keyed.find((entry) => entry.key === "socks")?.value ??
|
|
436
|
+
keyed[0]?.value;
|
|
437
|
+
return candidate ? normalizeProxyUrl(candidate) : undefined;
|
|
438
|
+
}
|
|
439
|
+
function normalizeProxyUrl(value) {
|
|
440
|
+
const trimmed = value.trim();
|
|
441
|
+
if (!trimmed) {
|
|
442
|
+
return undefined;
|
|
443
|
+
}
|
|
444
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed)) {
|
|
445
|
+
return trimmed;
|
|
446
|
+
}
|
|
447
|
+
return `http://${trimmed}`;
|
|
448
|
+
}
|
|
449
|
+
function formatToolError(error) {
|
|
450
|
+
if (!(error instanceof Error)) {
|
|
451
|
+
return String(error);
|
|
452
|
+
}
|
|
453
|
+
const parts = [error.message];
|
|
454
|
+
const maybeError = error;
|
|
455
|
+
if (maybeError.stderr?.trim()) {
|
|
456
|
+
parts.push(maybeError.stderr.trim());
|
|
457
|
+
}
|
|
458
|
+
if (maybeError.stdout?.trim()) {
|
|
459
|
+
parts.push(maybeError.stdout.trim());
|
|
460
|
+
}
|
|
461
|
+
return parts.join(" | ");
|
|
462
|
+
}
|
|
115
463
|
//# sourceMappingURL=filesystem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/core/filesystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/core/filesystem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-preflight",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Pre-install safety, token, and maintainability scorecard for AI agent skills.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -47,7 +47,9 @@
|
|
|
47
47
|
"node": ">=20"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"commander": "^12.1.0"
|
|
50
|
+
"commander": "^12.1.0",
|
|
51
|
+
"tar": "^7.5.16",
|
|
52
|
+
"undici": "^6.26.0"
|
|
51
53
|
},
|
|
52
54
|
"devDependencies": {
|
|
53
55
|
"@types/node": "^20.19.0",
|