@skrun-dev/schema 0.6.0 → 0.8.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/dist/capability.d.ts +28 -0
- package/dist/capability.d.ts.map +1 -0
- package/dist/capability.js +209 -0
- package/dist/capability.js.map +1 -0
- package/dist/generators/index.d.ts +2 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +1 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/outputs-to-zod.d.ts +24 -0
- package/dist/generators/outputs-to-zod.d.ts.map +1 -0
- package/dist/generators/outputs-to-zod.js +43 -0
- package/dist/generators/outputs-to-zod.js.map +1 -0
- package/dist/generators/skill-importer.d.ts.map +1 -1
- package/dist/generators/skill-importer.js +3 -1
- package/dist/generators/skill-importer.js.map +1 -1
- package/dist/index.d.ts +17 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/manifests.d.ts +41 -0
- package/dist/manifests.d.ts.map +1 -0
- package/dist/manifests.js +407 -0
- package/dist/manifests.js.map +1 -0
- package/dist/parsers/index.d.ts +3 -3
- package/dist/parsers/index.d.ts.map +1 -1
- package/dist/parsers/index.js +2 -2
- package/dist/parsers/index.js.map +1 -1
- package/dist/schemas/agent-config.d.ts +95 -289
- package/dist/schemas/agent-config.d.ts.map +1 -1
- package/dist/schemas/agent-config.js +7 -4
- package/dist/schemas/agent-config.js.map +1 -1
- package/dist/schemas/environment-config.d.ts +15 -34
- package/dist/schemas/environment-config.d.ts.map +1 -1
- package/dist/schemas/environment-config.js +1 -1
- package/dist/schemas/environment-config.js.map +1 -1
- package/dist/schemas/file-input.d.ts +40 -0
- package/dist/schemas/file-input.d.ts.map +1 -0
- package/dist/schemas/file-input.js +50 -0
- package/dist/schemas/file-input.js.map +1 -0
- package/dist/schemas/index.d.ts +10 -9
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +5 -4
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/inputs-outputs.d.ts +44 -25
- package/dist/schemas/inputs-outputs.d.ts.map +1 -1
- package/dist/schemas/inputs-outputs.js +9 -4
- package/dist/schemas/inputs-outputs.js.map +1 -1
- package/dist/schemas/mcp-server.d.ts +13 -33
- package/dist/schemas/mcp-server.d.ts.map +1 -1
- package/dist/schemas/model-config.d.ts +39 -37
- package/dist/schemas/model-config.d.ts.map +1 -1
- package/dist/schemas/model-config.js +1 -1
- package/dist/schemas/model-config.js.map +1 -1
- package/dist/schemas/skill-frontmatter.d.ts +2 -16
- package/dist/schemas/skill-frontmatter.d.ts.map +1 -1
- package/dist/schemas/state-config.d.ts +5 -8
- package/dist/schemas/state-config.d.ts.map +1 -1
- package/dist/schemas/test-case.d.ts +1 -9
- package/dist/schemas/test-case.d.ts.map +1 -1
- package/dist/schemas/tool-config.d.ts +6 -47
- package/dist/schemas/tool-config.d.ts.map +1 -1
- package/dist/schemas/tool-config.js +1 -0
- package/dist/schemas/tool-config.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/validators/combined.d.ts +1 -1
- package/dist/validators/combined.d.ts.map +1 -1
- package/dist/validators/combined.js +55 -8
- package/dist/validators/combined.js.map +1 -1
- package/dist/validators/index.d.ts +1 -1
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js.map +1 -1
- package/package.json +12 -12
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
// Filesystem-based manifest detection for agent script dependencies.
|
|
2
|
+
//
|
|
3
|
+
// Detects standard language manifests at the bundle root and returns their
|
|
4
|
+
// CONTENT (no absolute paths — paths break cross-host hash determinism).
|
|
5
|
+
// The runtime hashes the content to drive a content-addressable cache at
|
|
6
|
+
// `~/.skrun/deps/<hash>/`.
|
|
7
|
+
//
|
|
8
|
+
// Precedence:
|
|
9
|
+
// - Node manifest: package.json
|
|
10
|
+
// - Node lockfile: pnpm-lock.yaml > yarn.lock > package-lock.json
|
|
11
|
+
// - Python manifest: pyproject.toml > requirements.txt
|
|
12
|
+
// - Python lockfile: uv.lock > poetry.lock
|
|
13
|
+
//
|
|
14
|
+
// If both Python manifests are present, pyproject.toml wins.
|
|
15
|
+
// If no manifest is found, returns { ecosystem: "none" }.
|
|
16
|
+
//
|
|
17
|
+
// All detection is best-effort and side-effect-free: missing files do not
|
|
18
|
+
// throw — they simply produce a narrower result.
|
|
19
|
+
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
20
|
+
import { extname, join } from "node:path";
|
|
21
|
+
// Lockfile precedence: pnpm > yarn > npm.
|
|
22
|
+
const NODE_LOCKFILES = [
|
|
23
|
+
{ kind: "pnpm", filename: "pnpm-lock.yaml" },
|
|
24
|
+
{ kind: "yarn", filename: "yarn.lock" },
|
|
25
|
+
{ kind: "npm", filename: "package-lock.json" },
|
|
26
|
+
];
|
|
27
|
+
// Lockfile precedence: uv > poetry.
|
|
28
|
+
const PYTHON_LOCKFILES = [
|
|
29
|
+
{ kind: "uv", filename: "uv.lock" },
|
|
30
|
+
{ kind: "poetry", filename: "poetry.lock" },
|
|
31
|
+
];
|
|
32
|
+
function readFileIfExists(filePath) {
|
|
33
|
+
if (!existsSync(filePath))
|
|
34
|
+
return undefined;
|
|
35
|
+
try {
|
|
36
|
+
return readFileSync(filePath, "utf-8");
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function findFirstExisting(bundleRoot, candidates) {
|
|
43
|
+
for (const candidate of candidates) {
|
|
44
|
+
const content = readFileIfExists(join(bundleRoot, candidate.filename));
|
|
45
|
+
if (content !== undefined) {
|
|
46
|
+
return { match: candidate, content };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
// Best-effort extraction of `[project] name = "..."` from a pyproject.toml
|
|
52
|
+
// content. Only the project name is needed downstream (for non-editable pip
|
|
53
|
+
// install identification). Falls back to undefined on any parse failure.
|
|
54
|
+
function extractPyprojectName(pyprojectContent) {
|
|
55
|
+
const projectSectionMatch = pyprojectContent.match(/^\s*\[project\]\s*$/m);
|
|
56
|
+
if (!projectSectionMatch || projectSectionMatch.index === undefined)
|
|
57
|
+
return undefined;
|
|
58
|
+
const after = pyprojectContent.slice(projectSectionMatch.index + projectSectionMatch[0].length);
|
|
59
|
+
// Stop at the next section header.
|
|
60
|
+
const nextSectionIdx = after.search(/^\s*\[[^\]]+\]\s*$/m);
|
|
61
|
+
const projectBlock = nextSectionIdx === -1 ? after : after.slice(0, nextSectionIdx);
|
|
62
|
+
const nameMatch = projectBlock.match(/^\s*name\s*=\s*["']([^"']+)["']/m);
|
|
63
|
+
return nameMatch?.[1];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Detect a script-dependency manifest at the bundle root.
|
|
67
|
+
*
|
|
68
|
+
* Pure function except for filesystem reads. Never throws on missing files.
|
|
69
|
+
*
|
|
70
|
+
* @param bundleRoot Absolute path to the bundle root directory.
|
|
71
|
+
* @returns A discriminated union describing the manifest content (or `none`).
|
|
72
|
+
*/
|
|
73
|
+
export function detectManifest(bundleRoot) {
|
|
74
|
+
// Node detection — package.json is the entry signal.
|
|
75
|
+
const nodeManifest = readFileIfExists(join(bundleRoot, "package.json"));
|
|
76
|
+
if (nodeManifest !== undefined) {
|
|
77
|
+
const lockfile = findFirstExisting(bundleRoot, NODE_LOCKFILES);
|
|
78
|
+
return {
|
|
79
|
+
ecosystem: "node",
|
|
80
|
+
manifestContent: nodeManifest,
|
|
81
|
+
...(lockfile && {
|
|
82
|
+
lockfileKind: lockfile.match.kind,
|
|
83
|
+
lockfileContent: lockfile.content,
|
|
84
|
+
}),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
// Python detection — pyproject.toml wins over requirements.txt when both
|
|
88
|
+
// are present.
|
|
89
|
+
const pyproject = readFileIfExists(join(bundleRoot, "pyproject.toml"));
|
|
90
|
+
if (pyproject !== undefined) {
|
|
91
|
+
const lockfile = findFirstExisting(bundleRoot, PYTHON_LOCKFILES);
|
|
92
|
+
const projectName = extractPyprojectName(pyproject);
|
|
93
|
+
return {
|
|
94
|
+
ecosystem: "python",
|
|
95
|
+
manifestKind: "pyproject",
|
|
96
|
+
manifestContent: pyproject,
|
|
97
|
+
...(lockfile && {
|
|
98
|
+
lockfileKind: lockfile.match.kind,
|
|
99
|
+
lockfileContent: lockfile.content,
|
|
100
|
+
}),
|
|
101
|
+
...(projectName && { pythonProjectName: projectName }),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const requirements = readFileIfExists(join(bundleRoot, "requirements.txt"));
|
|
105
|
+
if (requirements !== undefined) {
|
|
106
|
+
// requirements.txt does not have an associated lockfile in this design
|
|
107
|
+
// (pinned versions in requirements.txt itself act as the lock).
|
|
108
|
+
return {
|
|
109
|
+
ecosystem: "python",
|
|
110
|
+
manifestKind: "requirements",
|
|
111
|
+
manifestContent: requirements,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return { ecosystem: "none" };
|
|
115
|
+
}
|
|
116
|
+
// Best-effort stdlib sets used to flag scripts that import third-party
|
|
117
|
+
// packages without declaring them. Coverage is intentionally generous to
|
|
118
|
+
// MINIMIZE FALSE POSITIVES (warning when no manifest is needed) over false
|
|
119
|
+
// negatives (missing a warning when one is needed). The `[NEEDS
|
|
120
|
+
// CLARIFICATION]` cost of a missed warning is "build succeeds, runtime fails
|
|
121
|
+
// later"; the cost of a false positive is "noisy build output". Tilt toward
|
|
122
|
+
// silence.
|
|
123
|
+
// Python standard library top-level module names (Python 3.11+, common subset).
|
|
124
|
+
const PYTHON_STDLIB = new Set([
|
|
125
|
+
"abc",
|
|
126
|
+
"argparse",
|
|
127
|
+
"array",
|
|
128
|
+
"ast",
|
|
129
|
+
"asynchat",
|
|
130
|
+
"asyncio",
|
|
131
|
+
"asyncore",
|
|
132
|
+
"base64",
|
|
133
|
+
"binascii",
|
|
134
|
+
"bisect",
|
|
135
|
+
"builtins",
|
|
136
|
+
"calendar",
|
|
137
|
+
"collections",
|
|
138
|
+
"colorsys",
|
|
139
|
+
"concurrent",
|
|
140
|
+
"configparser",
|
|
141
|
+
"contextlib",
|
|
142
|
+
"contextvars",
|
|
143
|
+
"copy",
|
|
144
|
+
"copyreg",
|
|
145
|
+
"csv",
|
|
146
|
+
"ctypes",
|
|
147
|
+
"curses",
|
|
148
|
+
"dataclasses",
|
|
149
|
+
"datetime",
|
|
150
|
+
"decimal",
|
|
151
|
+
"difflib",
|
|
152
|
+
"dis",
|
|
153
|
+
"doctest",
|
|
154
|
+
"email",
|
|
155
|
+
"enum",
|
|
156
|
+
"errno",
|
|
157
|
+
"faulthandler",
|
|
158
|
+
"fcntl",
|
|
159
|
+
"filecmp",
|
|
160
|
+
"fileinput",
|
|
161
|
+
"fnmatch",
|
|
162
|
+
"fractions",
|
|
163
|
+
"ftplib",
|
|
164
|
+
"functools",
|
|
165
|
+
"gc",
|
|
166
|
+
"getopt",
|
|
167
|
+
"getpass",
|
|
168
|
+
"gettext",
|
|
169
|
+
"glob",
|
|
170
|
+
"gzip",
|
|
171
|
+
"hashlib",
|
|
172
|
+
"heapq",
|
|
173
|
+
"hmac",
|
|
174
|
+
"html",
|
|
175
|
+
"http",
|
|
176
|
+
"imaplib",
|
|
177
|
+
"imp",
|
|
178
|
+
"importlib",
|
|
179
|
+
"inspect",
|
|
180
|
+
"io",
|
|
181
|
+
"ipaddress",
|
|
182
|
+
"itertools",
|
|
183
|
+
"json",
|
|
184
|
+
"keyword",
|
|
185
|
+
"linecache",
|
|
186
|
+
"locale",
|
|
187
|
+
"logging",
|
|
188
|
+
"lzma",
|
|
189
|
+
"mailbox",
|
|
190
|
+
"math",
|
|
191
|
+
"mimetypes",
|
|
192
|
+
"multiprocessing",
|
|
193
|
+
"netrc",
|
|
194
|
+
"numbers",
|
|
195
|
+
"operator",
|
|
196
|
+
"os",
|
|
197
|
+
"pathlib",
|
|
198
|
+
"pickle",
|
|
199
|
+
"pickletools",
|
|
200
|
+
"pkgutil",
|
|
201
|
+
"platform",
|
|
202
|
+
"plistlib",
|
|
203
|
+
"poplib",
|
|
204
|
+
"pprint",
|
|
205
|
+
"queue",
|
|
206
|
+
"quopri",
|
|
207
|
+
"random",
|
|
208
|
+
"re",
|
|
209
|
+
"readline",
|
|
210
|
+
"reprlib",
|
|
211
|
+
"resource",
|
|
212
|
+
"secrets",
|
|
213
|
+
"select",
|
|
214
|
+
"selectors",
|
|
215
|
+
"shelve",
|
|
216
|
+
"shlex",
|
|
217
|
+
"shutil",
|
|
218
|
+
"signal",
|
|
219
|
+
"site",
|
|
220
|
+
"smtpd",
|
|
221
|
+
"smtplib",
|
|
222
|
+
"sndhdr",
|
|
223
|
+
"socket",
|
|
224
|
+
"socketserver",
|
|
225
|
+
"sqlite3",
|
|
226
|
+
"ssl",
|
|
227
|
+
"stat",
|
|
228
|
+
"statistics",
|
|
229
|
+
"string",
|
|
230
|
+
"stringprep",
|
|
231
|
+
"struct",
|
|
232
|
+
"subprocess",
|
|
233
|
+
"symtable",
|
|
234
|
+
"sys",
|
|
235
|
+
"sysconfig",
|
|
236
|
+
"tabnanny",
|
|
237
|
+
"tarfile",
|
|
238
|
+
"telnetlib",
|
|
239
|
+
"tempfile",
|
|
240
|
+
"termios",
|
|
241
|
+
"test",
|
|
242
|
+
"textwrap",
|
|
243
|
+
"threading",
|
|
244
|
+
"time",
|
|
245
|
+
"timeit",
|
|
246
|
+
"tkinter",
|
|
247
|
+
"token",
|
|
248
|
+
"tokenize",
|
|
249
|
+
"tomllib",
|
|
250
|
+
"trace",
|
|
251
|
+
"traceback",
|
|
252
|
+
"tracemalloc",
|
|
253
|
+
"tty",
|
|
254
|
+
"turtle",
|
|
255
|
+
"types",
|
|
256
|
+
"typing",
|
|
257
|
+
"unicodedata",
|
|
258
|
+
"unittest",
|
|
259
|
+
"urllib",
|
|
260
|
+
"uu",
|
|
261
|
+
"uuid",
|
|
262
|
+
"venv",
|
|
263
|
+
"warnings",
|
|
264
|
+
"wave",
|
|
265
|
+
"weakref",
|
|
266
|
+
"webbrowser",
|
|
267
|
+
"wsgiref",
|
|
268
|
+
"xdrlib",
|
|
269
|
+
"xml",
|
|
270
|
+
"xmlrpc",
|
|
271
|
+
"zipapp",
|
|
272
|
+
"zipfile",
|
|
273
|
+
"zipimport",
|
|
274
|
+
"zlib",
|
|
275
|
+
"zoneinfo",
|
|
276
|
+
]);
|
|
277
|
+
// Node.js built-in module names (Node 20+). Both bare (`fs`) and prefixed
|
|
278
|
+
// (`node:fs`) forms are accepted by the import scanner via prefix-stripping.
|
|
279
|
+
const NODE_STDLIB = new Set([
|
|
280
|
+
"assert",
|
|
281
|
+
"async_hooks",
|
|
282
|
+
"buffer",
|
|
283
|
+
"child_process",
|
|
284
|
+
"cluster",
|
|
285
|
+
"console",
|
|
286
|
+
"constants",
|
|
287
|
+
"crypto",
|
|
288
|
+
"dgram",
|
|
289
|
+
"diagnostics_channel",
|
|
290
|
+
"dns",
|
|
291
|
+
"domain",
|
|
292
|
+
"events",
|
|
293
|
+
"fs",
|
|
294
|
+
"http",
|
|
295
|
+
"http2",
|
|
296
|
+
"https",
|
|
297
|
+
"inspector",
|
|
298
|
+
"module",
|
|
299
|
+
"net",
|
|
300
|
+
"os",
|
|
301
|
+
"path",
|
|
302
|
+
"perf_hooks",
|
|
303
|
+
"process",
|
|
304
|
+
"punycode",
|
|
305
|
+
"querystring",
|
|
306
|
+
"readline",
|
|
307
|
+
"repl",
|
|
308
|
+
"stream",
|
|
309
|
+
"string_decoder",
|
|
310
|
+
"sys",
|
|
311
|
+
"test",
|
|
312
|
+
"timers",
|
|
313
|
+
"tls",
|
|
314
|
+
"trace_events",
|
|
315
|
+
"tty",
|
|
316
|
+
"url",
|
|
317
|
+
"util",
|
|
318
|
+
"v8",
|
|
319
|
+
"vm",
|
|
320
|
+
"worker_threads",
|
|
321
|
+
"zlib",
|
|
322
|
+
]);
|
|
323
|
+
const PYTHON_IMPORT_RE = /^[ \t]*(?:import|from)[ \t]+([A-Za-z_][A-Za-z0-9_]*)/gm;
|
|
324
|
+
// Matches `require('pkg')`, `require("pkg")`, `import 'pkg'`, `import "pkg"`,
|
|
325
|
+
// `import x from 'pkg'`, etc. Captures the package specifier head.
|
|
326
|
+
const NODE_IMPORT_RE = /(?:require\s*\(\s*|import\s+(?:[^"'\n]*\s+from\s+)?)["']([^"'\n]+)["']/g;
|
|
327
|
+
function rootPackageOf(spec, ecosystem) {
|
|
328
|
+
let s = spec;
|
|
329
|
+
if (ecosystem === "node") {
|
|
330
|
+
if (s.startsWith("node:"))
|
|
331
|
+
s = s.slice(5);
|
|
332
|
+
// Skip relative imports — these target the bundle itself, not deps.
|
|
333
|
+
if (s.startsWith(".") || s.startsWith("/"))
|
|
334
|
+
return "";
|
|
335
|
+
// Scoped npm package: keep `@scope/name` as a single unit, but match
|
|
336
|
+
// stdlib only on first segment for non-scoped.
|
|
337
|
+
if (s.startsWith("@")) {
|
|
338
|
+
const slash = s.indexOf("/");
|
|
339
|
+
return slash === -1 ? s : s.slice(0, slash + 1) + s.slice(slash + 1).split("/")[0];
|
|
340
|
+
}
|
|
341
|
+
return s.split("/")[0];
|
|
342
|
+
}
|
|
343
|
+
// Python: top-level package only.
|
|
344
|
+
return s.split(".")[0];
|
|
345
|
+
}
|
|
346
|
+
function listPythonScripts(scriptsDir) {
|
|
347
|
+
if (!existsSync(scriptsDir) || !statSync(scriptsDir).isDirectory())
|
|
348
|
+
return [];
|
|
349
|
+
return readdirSync(scriptsDir, { withFileTypes: true })
|
|
350
|
+
.filter((entry) => entry.isFile() && extname(entry.name) === ".py")
|
|
351
|
+
.map((entry) => join(scriptsDir, entry.name));
|
|
352
|
+
}
|
|
353
|
+
function listNodeScripts(scriptsDir) {
|
|
354
|
+
if (!existsSync(scriptsDir) || !statSync(scriptsDir).isDirectory())
|
|
355
|
+
return [];
|
|
356
|
+
return readdirSync(scriptsDir, { withFileTypes: true })
|
|
357
|
+
.filter((entry) => {
|
|
358
|
+
if (!entry.isFile())
|
|
359
|
+
return false;
|
|
360
|
+
const ext = extname(entry.name);
|
|
361
|
+
return ext === ".js" || ext === ".mjs" || ext === ".cjs" || ext === ".ts";
|
|
362
|
+
})
|
|
363
|
+
.map((entry) => join(scriptsDir, entry.name));
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Best-effort scan of a `scripts/` directory to detect imports of packages
|
|
367
|
+
* outside the language's standard library. Used to warn agent authors when
|
|
368
|
+
* `scripts/` is non-empty and non-trivial but no manifest declares the
|
|
369
|
+
* dependencies.
|
|
370
|
+
*
|
|
371
|
+
* Returns false on any I/O error or if the directory does not exist.
|
|
372
|
+
*
|
|
373
|
+
* @param scriptsDir Absolute path to the bundle's `scripts/` directory.
|
|
374
|
+
* @param ecosystem Which language's stdlib to compare imports against.
|
|
375
|
+
*/
|
|
376
|
+
export function hasNonStdlibImports(scriptsDir, ecosystem) {
|
|
377
|
+
const scripts = ecosystem === "python" ? listPythonScripts(scriptsDir) : listNodeScripts(scriptsDir);
|
|
378
|
+
if (scripts.length === 0)
|
|
379
|
+
return false;
|
|
380
|
+
const stdlib = ecosystem === "python" ? PYTHON_STDLIB : NODE_STDLIB;
|
|
381
|
+
const importRe = ecosystem === "python" ? PYTHON_IMPORT_RE : NODE_IMPORT_RE;
|
|
382
|
+
for (const scriptPath of scripts) {
|
|
383
|
+
let content;
|
|
384
|
+
try {
|
|
385
|
+
content = readFileSync(scriptPath, "utf-8");
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
importRe.lastIndex = 0;
|
|
391
|
+
let match;
|
|
392
|
+
// biome-ignore lint/suspicious/noAssignInExpressions: standard regex exec loop
|
|
393
|
+
while ((match = importRe.exec(content)) !== null) {
|
|
394
|
+
const root = rootPackageOf(match[1] ?? "", ecosystem);
|
|
395
|
+
if (!root)
|
|
396
|
+
continue;
|
|
397
|
+
// For Node scoped packages, stdlib check on the bare segment is enough
|
|
398
|
+
// since no Node stdlib uses `@scope/...` syntax.
|
|
399
|
+
const stdlibKey = ecosystem === "node" && root.startsWith("@") ? root : root;
|
|
400
|
+
if (!stdlib.has(stdlibKey)) {
|
|
401
|
+
return true;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return false;
|
|
406
|
+
}
|
|
407
|
+
//# sourceMappingURL=manifests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifests.js","sourceRoot":"","sources":["../src/manifests.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,yEAAyE;AACzE,2BAA2B;AAC3B,EAAE;AACF,cAAc;AACd,oCAAoC;AACpC,sEAAsE;AACtE,yDAAyD;AACzD,6CAA6C;AAC7C,EAAE;AACF,6DAA6D;AAC7D,0DAA0D;AAC1D,EAAE;AACF,0EAA0E;AAC1E,iDAAiD;AAEjD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA8B1C,0CAA0C;AAC1C,MAAM,cAAc,GAAiC;IACnD,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;IACvC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE;CAC/C,CAAC;AAOF,oCAAoC;AACpC,MAAM,gBAAgB,GAAmC;IACvD,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;IACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE;CAC5C,CAAC;AAEF,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,UAAwB;IAExB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,SAAS,oBAAoB,CAAC,gBAAwB;IACpD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC3E,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtF,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChG,mCAAmC;IACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACzE,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,qDAAqD;IACrD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IACxE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC/D,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,eAAe,EAAE,YAAY;YAC7B,GAAG,CAAC,QAAQ,IAAI;gBACd,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;gBACjC,eAAe,EAAE,QAAQ,CAAC,OAAO;aAClC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,eAAe;IACf,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACvE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,WAAW;YACzB,eAAe,EAAE,SAAS;YAC1B,GAAG,CAAC,QAAQ,IAAI;gBACd,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;gBACjC,eAAe,EAAE,QAAQ,CAAC,OAAO;aAClC,CAAC;YACF,GAAG,CAAC,WAAW,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;SACvD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,uEAAuE;QACvE,gEAAgE;QAChE,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,YAAY;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED,uEAAuE;AACvE,yEAAyE;AACzE,2EAA2E;AAC3E,gEAAgE;AAChE,6EAA6E;AAC7E,4EAA4E;AAC5E,WAAW;AAEX,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS;IACpC,KAAK;IACL,UAAU;IACV,OAAO;IACP,KAAK;IACL,UAAU;IACV,SAAS;IACT,UAAU;IACV,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,aAAa;IACb,MAAM;IACN,SAAS;IACT,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,UAAU;IACV,SAAS;IACT,SAAS;IACT,KAAK;IACL,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,cAAc;IACd,OAAO;IACP,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,QAAQ;IACR,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,SAAS;IACT,SAAS;IACT,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,WAAW;IACX,SAAS;IACT,IAAI;IACJ,WAAW;IACX,WAAW;IACX,MAAM;IACN,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,MAAM;IACN,SAAS;IACT,MAAM;IACN,WAAW;IACX,iBAAiB;IACjB,OAAO;IACP,SAAS;IACT,UAAU;IACV,IAAI;IACJ,SAAS;IACT,QAAQ;IACR,aAAa;IACb,SAAS;IACT,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,SAAS;IACT,KAAK;IACL,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,KAAK;IACL,WAAW;IACX,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,SAAS;IACT,OAAO;IACP,WAAW;IACX,aAAa;IACb,KAAK;IACL,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,UAAU;IACV,MAAM;IACN,SAAS;IACT,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,MAAM;IACN,UAAU;CACX,CAAC,CAAC;AAEH,0EAA0E;AAC1E,6EAA6E;AAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAClC,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,eAAe;IACf,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,OAAO;IACP,qBAAqB;IACrB,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,KAAK;IACL,IAAI;IACJ,MAAM;IACN,YAAY;IACZ,SAAS;IACT,UAAU;IACV,aAAa;IACb,UAAU;IACV,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,KAAK;IACL,MAAM;IACN,QAAQ;IACR,KAAK;IACL,cAAc;IACd,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,gBAAgB;IAChB,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,wDAAwD,CAAC;AAClF,8EAA8E;AAC9E,mEAAmE;AACnE,MAAM,cAAc,GAAG,yEAAyE,CAAC;AAEjG,SAAS,aAAa,CAAC,IAAY,EAAE,SAA4B;IAC/D,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,oEAAoE;QACpE,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACtD,qEAAqE;QACrE,+CAA+C;QAC/C,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,kCAAkC;IAClC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9E,OAAO,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;SAClE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9E,OAAO,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,OAAO,KAAK,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC;IAC5E,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,SAA4B;IAClF,MAAM,OAAO,GACX,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,MAAM,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IACpE,MAAM,QAAQ,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC;IAE5E,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,IAAI,KAA6B,CAAC;QAClC,+EAA+E;QAC/E,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,uEAAuE;YACvE,iDAAiD;YACjD,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/parsers/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { parseAgentsMd, parseAgentsMdFile
|
|
3
|
-
export {
|
|
1
|
+
export { type ParsedAgentYaml, parseAgentYaml, parseAgentYamlFile } from "./agent-yaml.js";
|
|
2
|
+
export { type ParsedAgentsMd, parseAgentsMd, parseAgentsMdFile } from "./agents-md.js";
|
|
3
|
+
export { type ParsedSkill, parseSkillMd, parseSkillMdFile } from "./skill-md.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/parsers/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { parseSkillMd, parseSkillMdFile } from "./skill-md.js";
|
|
2
|
-
export { parseAgentsMd, parseAgentsMdFile } from "./agents-md.js";
|
|
3
1
|
export { parseAgentYaml, parseAgentYamlFile } from "./agent-yaml.js";
|
|
2
|
+
export { parseAgentsMd, parseAgentsMdFile } from "./agents-md.js";
|
|
3
|
+
export { parseSkillMd, parseSkillMdFile } from "./skill-md.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAuB,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAoB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|