@agenticros/core 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/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/discoverable-capabilities.d.ts +47 -0
- package/dist/discoverable-capabilities.d.ts.map +1 -0
- package/dist/discoverable-capabilities.js +127 -0
- package/dist/discoverable-capabilities.js.map +1 -0
- package/dist/external-capability.d.ts +5 -0
- package/dist/external-capability.d.ts.map +1 -1
- package/dist/external-capability.js +75 -28
- package/dist/external-capability.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mission.d.ts +34 -4
- package/dist/mission.d.ts.map +1 -1
- package/dist/mission.js +156 -32
- package/dist/mission.js.map +1 -1
- package/dist/skill-refs.d.ts +96 -0
- package/dist/skill-refs.d.ts.map +1 -0
- package/dist/skill-refs.js +431 -0
- package/dist/skill-refs.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skillRefs → ~/.agenticros/skills-cache resolver (marketplace auto-fetch).
|
|
3
|
+
*
|
|
4
|
+
* Declarative refs like `owner/skill`, `owner/skill@main`, or
|
|
5
|
+
* `@agenticros-skills/foo@^1.0.0` are resolved via the skills marketplace
|
|
6
|
+
* install API (or directly from npm), cached under ~/.agenticros/skills-cache,
|
|
7
|
+
* and returned as absolute skillPaths for capability reading / OpenClaw loading.
|
|
8
|
+
*
|
|
9
|
+
* Prefer npm when the install descriptor includes `npmPackage` (or the ref
|
|
10
|
+
* is already a scoped npm name). Fall back to git clone + build.
|
|
11
|
+
*
|
|
12
|
+
* Never auto-upgrades: if the cache dir for a pin already exists, reuse it
|
|
13
|
+
* (optional pull when AGENTICROS_SKILLS_CACHE_PULL=1 for git caches).
|
|
14
|
+
*/
|
|
15
|
+
import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
16
|
+
import { tmpdir, homedir } from "node:os";
|
|
17
|
+
import { basename, join } from "node:path";
|
|
18
|
+
import { execFileSync } from "node:child_process";
|
|
19
|
+
export const DEFAULT_SKILLS_API = "https://skills.agenticros.com/api";
|
|
20
|
+
export const DEFAULT_SKILLS_CACHE_DIR = join(homedir(), ".agenticros", "skills-cache");
|
|
21
|
+
/**
|
|
22
|
+
* Parse `owner/skill`, `owner/skill@branch`, or `@scope/name[@semver]`.
|
|
23
|
+
*/
|
|
24
|
+
export function parseSkillRef(raw) {
|
|
25
|
+
const trimmed = raw.trim();
|
|
26
|
+
if (!trimmed)
|
|
27
|
+
return null;
|
|
28
|
+
if (trimmed.startsWith("@")) {
|
|
29
|
+
// @scope/name or @scope/name@1.2.3 / @scope/name@^1.0.0
|
|
30
|
+
const withoutAt = trimmed.slice(1);
|
|
31
|
+
const slash = withoutAt.indexOf("/");
|
|
32
|
+
if (slash <= 0)
|
|
33
|
+
return null;
|
|
34
|
+
const scope = withoutAt.slice(0, slash);
|
|
35
|
+
const rest = withoutAt.slice(slash + 1);
|
|
36
|
+
if (!scope || !rest)
|
|
37
|
+
return null;
|
|
38
|
+
// Version pin is the last @ after the package name segment.
|
|
39
|
+
const at = rest.lastIndexOf("@");
|
|
40
|
+
let pkgName = rest;
|
|
41
|
+
let npmVersion;
|
|
42
|
+
if (at > 0) {
|
|
43
|
+
pkgName = rest.slice(0, at);
|
|
44
|
+
npmVersion = rest.slice(at + 1).trim() || undefined;
|
|
45
|
+
}
|
|
46
|
+
if (!pkgName || pkgName.includes("/"))
|
|
47
|
+
return null;
|
|
48
|
+
return {
|
|
49
|
+
kind: "npm",
|
|
50
|
+
npmPackage: `@${scope}/${pkgName}`,
|
|
51
|
+
npmVersion,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const at = trimmed.lastIndexOf("@");
|
|
55
|
+
let body = trimmed;
|
|
56
|
+
let gitRef = "main";
|
|
57
|
+
if (at > 0) {
|
|
58
|
+
body = trimmed.slice(0, at);
|
|
59
|
+
gitRef = trimmed.slice(at + 1).trim() || "main";
|
|
60
|
+
}
|
|
61
|
+
const parts = body.split("/").filter(Boolean);
|
|
62
|
+
if (parts.length < 2)
|
|
63
|
+
return null;
|
|
64
|
+
const owner = parts[0].toLowerCase();
|
|
65
|
+
const skill = parts.slice(1).join("/").toLowerCase();
|
|
66
|
+
if (!owner || !skill)
|
|
67
|
+
return null;
|
|
68
|
+
return {
|
|
69
|
+
kind: "marketplace",
|
|
70
|
+
marketplaceRef: `${owner}/${skill}`,
|
|
71
|
+
owner,
|
|
72
|
+
skill,
|
|
73
|
+
gitRef,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function skillsApiBase(override) {
|
|
77
|
+
return (override || process.env.AGENTICROS_SKILLS_API || DEFAULT_SKILLS_API).replace(/\/+$/, "");
|
|
78
|
+
}
|
|
79
|
+
export function skillsCacheDir(override) {
|
|
80
|
+
return override || process.env.AGENTICROS_SKILLS_CACHE || DEFAULT_SKILLS_CACHE_DIR;
|
|
81
|
+
}
|
|
82
|
+
function skillApiPath(apiBase, ref) {
|
|
83
|
+
const [owner, ...rest] = ref.split("/");
|
|
84
|
+
const skill = rest.join("/");
|
|
85
|
+
return `${apiBase}/skills/${encodeURIComponent(owner)}/${encodeURIComponent(skill)}`;
|
|
86
|
+
}
|
|
87
|
+
export async function fetchInstallDescriptor(marketplaceRef, apiBase) {
|
|
88
|
+
const base = skillsApiBase(apiBase);
|
|
89
|
+
const url = `${skillApiPath(base, marketplaceRef)}/install`;
|
|
90
|
+
const res = await fetch(url, { headers: { Accept: "application/json" } });
|
|
91
|
+
if (!res.ok) {
|
|
92
|
+
const body = await res.text().catch(() => "");
|
|
93
|
+
throw new Error(`Marketplace install ${res.status}: ${body.slice(0, 200)}`);
|
|
94
|
+
}
|
|
95
|
+
const desc = (await res.json());
|
|
96
|
+
if (!desc.githubUrl && !desc.npmPackage && !desc.packageName) {
|
|
97
|
+
throw new Error(`Install descriptor for ${marketplaceRef} has neither githubUrl nor npmPackage`);
|
|
98
|
+
}
|
|
99
|
+
return desc;
|
|
100
|
+
}
|
|
101
|
+
function cachePathForGit(cacheDir, owner, skill, gitRef) {
|
|
102
|
+
const safeRef = gitRef.replace(/[^a-zA-Z0-9._-]+/g, "_");
|
|
103
|
+
return join(cacheDir, owner, skill, safeRef);
|
|
104
|
+
}
|
|
105
|
+
function cachePathForNpm(cacheDir, npmPackage, version) {
|
|
106
|
+
const safeName = npmPackage.replace(/^@/, "").replace(/\//g, "__");
|
|
107
|
+
const safeVer = version.replace(/[^a-zA-Z0-9._+-]+/g, "_");
|
|
108
|
+
return join(cacheDir, "npm", safeName, safeVer);
|
|
109
|
+
}
|
|
110
|
+
function hasBuiltEntry(dir) {
|
|
111
|
+
try {
|
|
112
|
+
const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
113
|
+
const main = pkg.main ?? "dist/index.js";
|
|
114
|
+
return existsSync(join(dir, main));
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function run(cmd, args, cwd, log) {
|
|
121
|
+
log(`$ ${cmd} ${args.join(" ")} (in ${cwd})`);
|
|
122
|
+
execFileSync(cmd, args, { cwd, stdio: "inherit" });
|
|
123
|
+
}
|
|
124
|
+
function runCapture(cmd, args, cwd) {
|
|
125
|
+
return execFileSync(cmd, args, { cwd, encoding: "utf8" }).trim();
|
|
126
|
+
}
|
|
127
|
+
function hasBin(name) {
|
|
128
|
+
try {
|
|
129
|
+
execFileSync(name, ["--version"], { stdio: "ignore" });
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function safeNpmVersionPin(raw) {
|
|
137
|
+
if (!raw || !raw.trim())
|
|
138
|
+
return "latest";
|
|
139
|
+
return raw.trim();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Resolve the exact version npm would install for a package@range.
|
|
143
|
+
*/
|
|
144
|
+
function resolveNpmVersion(npmPackage, versionRange, log) {
|
|
145
|
+
const spec = versionRange === "latest" ? npmPackage : `${npmPackage}@${versionRange}`;
|
|
146
|
+
log(`Resolving npm version for ${spec}`);
|
|
147
|
+
const out = runCapture("npm", ["view", spec, "version"], process.cwd());
|
|
148
|
+
// npm view can return a single version or a JSON array for ranges — take last line.
|
|
149
|
+
const lines = out.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
150
|
+
const last = lines[lines.length - 1] ?? "";
|
|
151
|
+
// Strip quotes if JSON-ish
|
|
152
|
+
const cleaned = last.replace(/^"|"$/g, "");
|
|
153
|
+
if (!cleaned)
|
|
154
|
+
throw new Error(`Could not resolve npm version for ${spec}`);
|
|
155
|
+
return cleaned;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Pack an npm package into the skills cache and return the absolute dir.
|
|
159
|
+
*/
|
|
160
|
+
export async function ensureNpmPackageCached(npmPackage, versionRange, opts = {}) {
|
|
161
|
+
const log = opts.onLog ?? (() => undefined);
|
|
162
|
+
const cacheRoot = skillsCacheDir(opts.cacheDir);
|
|
163
|
+
const pin = safeNpmVersionPin(versionRange);
|
|
164
|
+
// Fast path: exact version already cached
|
|
165
|
+
if (pin !== "latest" && !pin.startsWith("^") && !pin.startsWith("~") && !pin.includes("*")) {
|
|
166
|
+
const exactDir = cachePathForNpm(cacheRoot, npmPackage, pin);
|
|
167
|
+
if (existsSync(join(exactDir, "package.json"))) {
|
|
168
|
+
if (!hasBuiltEntry(exactDir) && !opts.offline) {
|
|
169
|
+
await buildInPlace(exactDir, log);
|
|
170
|
+
}
|
|
171
|
+
return exactDir;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (opts.offline) {
|
|
175
|
+
// Best-effort: look for any cached version of this package
|
|
176
|
+
const safeName = npmPackage.replace(/^@/, "").replace(/\//g, "__");
|
|
177
|
+
const pkgRoot = join(cacheRoot, "npm", safeName);
|
|
178
|
+
if (existsSync(pkgRoot)) {
|
|
179
|
+
const versions = readdirSync(pkgRoot).filter((v) => existsSync(join(pkgRoot, v, "package.json")));
|
|
180
|
+
if (versions.length > 0) {
|
|
181
|
+
versions.sort();
|
|
182
|
+
return join(pkgRoot, versions[versions.length - 1]);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
throw new Error(`npm package ${npmPackage}@${pin} not in cache (offline)`);
|
|
186
|
+
}
|
|
187
|
+
const resolvedVersion = resolveNpmVersion(npmPackage, pin, log);
|
|
188
|
+
const dir = cachePathForNpm(cacheRoot, npmPackage, resolvedVersion);
|
|
189
|
+
if (existsSync(join(dir, "package.json"))) {
|
|
190
|
+
if (!hasBuiltEntry(dir)) {
|
|
191
|
+
await buildInPlace(dir, log);
|
|
192
|
+
}
|
|
193
|
+
return dir;
|
|
194
|
+
}
|
|
195
|
+
mkdirSync(join(cacheRoot, "npm", npmPackage.replace(/^@/, "").replace(/\//g, "__")), {
|
|
196
|
+
recursive: true,
|
|
197
|
+
});
|
|
198
|
+
const tmp = mkdtempSync(join(tmpdir(), "agenticros-skill-npm-"));
|
|
199
|
+
try {
|
|
200
|
+
const spec = `${npmPackage}@${resolvedVersion}`;
|
|
201
|
+
log(`npm pack ${spec} → ${tmp}`);
|
|
202
|
+
const tgzName = runCapture("npm", ["pack", spec, "--pack-destination", tmp], tmp);
|
|
203
|
+
const tgzPath = join(tmp, tgzName);
|
|
204
|
+
const extractDir = join(tmp, "extract");
|
|
205
|
+
mkdirSync(extractDir, { recursive: true });
|
|
206
|
+
run("tar", ["-xzf", tgzPath, "-C", extractDir], tmp, log);
|
|
207
|
+
const packedRoot = join(extractDir, "package");
|
|
208
|
+
if (!existsSync(join(packedRoot, "package.json"))) {
|
|
209
|
+
throw new Error(`npm pack for ${spec} did not produce package/package.json`);
|
|
210
|
+
}
|
|
211
|
+
mkdirSync(join(dir, ".."), { recursive: true });
|
|
212
|
+
if (existsSync(dir)) {
|
|
213
|
+
rmSync(dir, { recursive: true, force: true });
|
|
214
|
+
}
|
|
215
|
+
renameSync(packedRoot, dir);
|
|
216
|
+
writeFileSync(join(dir, ".agenticros-skill-ref.json"), JSON.stringify({
|
|
217
|
+
kind: "npm",
|
|
218
|
+
npmPackage,
|
|
219
|
+
npmVersion: resolvedVersion,
|
|
220
|
+
cachedAt: new Date().toISOString(),
|
|
221
|
+
}, null, 2));
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
try {
|
|
225
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
/* ignore */
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (!hasBuiltEntry(dir)) {
|
|
232
|
+
await buildInPlace(dir, log);
|
|
233
|
+
}
|
|
234
|
+
return dir;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Ensure one skillRef is present under the cache. Returns absolute path or throws.
|
|
238
|
+
*/
|
|
239
|
+
export async function ensureSkillRefCached(rawRef, opts = {}) {
|
|
240
|
+
const parsed = parseSkillRef(rawRef);
|
|
241
|
+
if (!parsed) {
|
|
242
|
+
throw new Error(`Invalid skillRef "${rawRef}" (expected owner/skill, owner/skill@ref, or @scope/name[@semver])`);
|
|
243
|
+
}
|
|
244
|
+
const log = opts.onLog ?? (() => undefined);
|
|
245
|
+
if (parsed.kind === "npm") {
|
|
246
|
+
return ensureNpmPackageCached(parsed.npmPackage, parsed.npmVersion, opts);
|
|
247
|
+
}
|
|
248
|
+
const cacheRoot = skillsCacheDir(opts.cacheDir);
|
|
249
|
+
const dir = cachePathForGit(cacheRoot, parsed.owner, parsed.skill, parsed.gitRef);
|
|
250
|
+
if (existsSync(join(dir, "package.json"))) {
|
|
251
|
+
if (opts.pullIfPresent || process.env.AGENTICROS_SKILLS_CACHE_PULL === "1") {
|
|
252
|
+
try {
|
|
253
|
+
run("git", ["pull", "--ff-only"], dir, log);
|
|
254
|
+
}
|
|
255
|
+
catch (e) {
|
|
256
|
+
log(`git pull failed (keeping cache): ${e instanceof Error ? e.message : String(e)}`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (!hasBuiltEntry(dir) && !opts.offline) {
|
|
260
|
+
await buildInPlace(dir, log);
|
|
261
|
+
}
|
|
262
|
+
return dir;
|
|
263
|
+
}
|
|
264
|
+
if (opts.offline) {
|
|
265
|
+
throw new Error(`skillRef ${parsed.marketplaceRef} not in cache (offline)`);
|
|
266
|
+
}
|
|
267
|
+
const descriptor = await fetchInstallDescriptor(parsed.marketplaceRef, opts.apiBase);
|
|
268
|
+
// Prefer npm when the marketplace advertises an npm package.
|
|
269
|
+
const npmPkg = descriptor.npmPackage || (descriptor.packageName?.startsWith("@") ? descriptor.packageName : undefined);
|
|
270
|
+
if (npmPkg) {
|
|
271
|
+
const version = parsed.gitRef && parsed.gitRef !== "main"
|
|
272
|
+
? parsed.gitRef
|
|
273
|
+
: descriptor.npmVersion;
|
|
274
|
+
log(`Install descriptor prefers npm: ${npmPkg}${version ? `@${version}` : ""}`);
|
|
275
|
+
return ensureNpmPackageCached(npmPkg, version, opts);
|
|
276
|
+
}
|
|
277
|
+
if (!descriptor.githubUrl) {
|
|
278
|
+
throw new Error(`Install descriptor for ${parsed.marketplaceRef} has no githubUrl or npmPackage`);
|
|
279
|
+
}
|
|
280
|
+
const gitRef = parsed.gitRef !== "main" ? parsed.gitRef : descriptor.ref || "main";
|
|
281
|
+
const repoUrl = descriptor.githubUrl.endsWith(".git")
|
|
282
|
+
? descriptor.githubUrl
|
|
283
|
+
: `${descriptor.githubUrl}.git`;
|
|
284
|
+
mkdirSync(join(cacheRoot, parsed.owner, parsed.skill), { recursive: true });
|
|
285
|
+
if (!existsSync(join(dir, ".git"))) {
|
|
286
|
+
log(`Cloning ${repoUrl} (${gitRef}) → ${dir}`);
|
|
287
|
+
try {
|
|
288
|
+
run("git", ["clone", "--branch", gitRef, "--single-branch", "--depth", "1", repoUrl, dir], join(cacheRoot, parsed.owner, parsed.skill), log);
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
run("git", ["clone", "--depth", "1", repoUrl, dir], join(cacheRoot, parsed.owner, parsed.skill), log);
|
|
292
|
+
try {
|
|
293
|
+
run("git", ["checkout", gitRef], dir, log);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
/* stay on default branch */
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
try {
|
|
301
|
+
writeFileSync(join(dir, ".agenticros-skill-ref.json"), JSON.stringify({
|
|
302
|
+
kind: "git",
|
|
303
|
+
marketplaceRef: parsed.marketplaceRef,
|
|
304
|
+
gitRef,
|
|
305
|
+
githubUrl: descriptor.githubUrl,
|
|
306
|
+
cachedAt: new Date().toISOString(),
|
|
307
|
+
}, null, 2));
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
/* ignore */
|
|
311
|
+
}
|
|
312
|
+
await buildInPlace(dir, log);
|
|
313
|
+
return dir;
|
|
314
|
+
}
|
|
315
|
+
async function buildInPlace(dir, log) {
|
|
316
|
+
if (hasBuiltEntry(dir))
|
|
317
|
+
return;
|
|
318
|
+
const useNpm = !hasBin("pnpm");
|
|
319
|
+
if (useNpm) {
|
|
320
|
+
run("npm", ["install"], dir, log);
|
|
321
|
+
run("npm", ["run", "build"], dir, log);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
run("pnpm", ["install"], dir, log);
|
|
325
|
+
run("pnpm", ["run", "build"], dir, log);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Resolve all config.skillRefs into absolute directories.
|
|
330
|
+
* Does not mutate config — caller merges into skillPaths.
|
|
331
|
+
*/
|
|
332
|
+
export async function resolveSkillRefs(refs, opts = {}) {
|
|
333
|
+
const paths = [];
|
|
334
|
+
const errors = [];
|
|
335
|
+
const seen = new Set();
|
|
336
|
+
for (const raw of refs) {
|
|
337
|
+
try {
|
|
338
|
+
const dir = await ensureSkillRefCached(raw, opts);
|
|
339
|
+
if (!seen.has(dir)) {
|
|
340
|
+
seen.add(dir);
|
|
341
|
+
paths.push(dir);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
catch (e) {
|
|
345
|
+
errors.push({
|
|
346
|
+
ref: raw,
|
|
347
|
+
error: e instanceof Error ? e.message : String(e),
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
return { paths, errors };
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Return a config copy with skillRefs resolved into skillPaths (deduped).
|
|
355
|
+
*/
|
|
356
|
+
export async function withResolvedSkillRefs(config, opts = {}) {
|
|
357
|
+
const refs = config.skillRefs ?? [];
|
|
358
|
+
if (refs.length === 0) {
|
|
359
|
+
return { config, errors: [] };
|
|
360
|
+
}
|
|
361
|
+
const { paths, errors } = await resolveSkillRefs(refs, opts);
|
|
362
|
+
const merged = [...(config.skillPaths ?? [])];
|
|
363
|
+
const have = new Set(merged.map((p) => p));
|
|
364
|
+
for (const p of paths) {
|
|
365
|
+
if (!have.has(p)) {
|
|
366
|
+
have.add(p);
|
|
367
|
+
merged.push(p);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return {
|
|
371
|
+
config: { ...config, skillPaths: merged },
|
|
372
|
+
errors,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Sync: merge skillRefs that are already present under the skills-cache
|
|
377
|
+
* into skillPaths. No network — use CLI install / ensureSkillRefCached to
|
|
378
|
+
* populate the cache first. Safe for OpenClaw's synchronous register().
|
|
379
|
+
*/
|
|
380
|
+
export function applyCachedSkillRefs(config) {
|
|
381
|
+
const refs = config.skillRefs ?? [];
|
|
382
|
+
if (refs.length === 0)
|
|
383
|
+
return config;
|
|
384
|
+
const cacheRoot = skillsCacheDir();
|
|
385
|
+
const merged = [...(config.skillPaths ?? [])];
|
|
386
|
+
const have = new Set(merged);
|
|
387
|
+
for (const raw of refs) {
|
|
388
|
+
const parsed = parseSkillRef(raw);
|
|
389
|
+
if (!parsed)
|
|
390
|
+
continue;
|
|
391
|
+
if (parsed.kind === "npm") {
|
|
392
|
+
const safeName = parsed.npmPackage.replace(/^@/, "").replace(/\//g, "__");
|
|
393
|
+
const pkgRoot = join(cacheRoot, "npm", safeName);
|
|
394
|
+
if (!existsSync(pkgRoot))
|
|
395
|
+
continue;
|
|
396
|
+
const pin = parsed.npmVersion;
|
|
397
|
+
if (pin && !pin.startsWith("^") && !pin.startsWith("~") && !pin.includes("*") && pin !== "latest") {
|
|
398
|
+
const dir = cachePathForNpm(cacheRoot, parsed.npmPackage, pin);
|
|
399
|
+
if (existsSync(join(dir, "package.json")) && !have.has(dir)) {
|
|
400
|
+
have.add(dir);
|
|
401
|
+
merged.push(dir);
|
|
402
|
+
}
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
// Any cached version — prefer highest lexical version dir
|
|
406
|
+
const versions = readdirSync(pkgRoot).filter((v) => existsSync(join(pkgRoot, v, "package.json")));
|
|
407
|
+
if (versions.length === 0)
|
|
408
|
+
continue;
|
|
409
|
+
versions.sort();
|
|
410
|
+
const dir = join(pkgRoot, versions[versions.length - 1]);
|
|
411
|
+
if (!have.has(dir)) {
|
|
412
|
+
have.add(dir);
|
|
413
|
+
merged.push(dir);
|
|
414
|
+
}
|
|
415
|
+
continue;
|
|
416
|
+
}
|
|
417
|
+
const dir = cachePathForGit(cacheRoot, parsed.owner, parsed.skill, parsed.gitRef);
|
|
418
|
+
if (existsSync(join(dir, "package.json")) && !have.has(dir)) {
|
|
419
|
+
have.add(dir);
|
|
420
|
+
merged.push(dir);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (merged.length === (config.skillPaths ?? []).length)
|
|
424
|
+
return config;
|
|
425
|
+
return { ...config, skillPaths: merged };
|
|
426
|
+
}
|
|
427
|
+
/** Repo name hint from github URL (for logging). */
|
|
428
|
+
export function githubRepoBasename(githubUrl) {
|
|
429
|
+
return basename(githubUrl.replace(/\.git$/, "").replace(/\/+$/, ""));
|
|
430
|
+
}
|
|
431
|
+
//# sourceMappingURL=skill-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-refs.js","sourceRoot":"","sources":["../src/skill-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AA8CvF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,wDAAwD;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACjC,4DAA4D;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,UAA8B,CAAC;QACnC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO;YACL,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,IAAI,KAAK,IAAI,OAAO,EAAE;YAClC,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACX,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,cAAc,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE;QACnC,KAAK;QACL,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,kBAAkB,CAAC,CAAC,OAAO,CAClF,MAAM,EACN,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,OAAO,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,wBAAwB,CAAC;AACrF,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,GAAW;IAChD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,OAAO,WAAW,kBAAkB,CAAC,KAAM,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,cAAsB,EACtB,OAAgB;IAEhB,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,0BAA0B,cAAc,uCAAuC,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CACtB,QAAgB,EAChB,KAAa,EACb,KAAa,EACb,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,UAAkB,EAAE,OAAe;IAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAErE,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW,EAAE,GAAwB;IAC7E,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAC/C,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW;IAC1D,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,IAAI,CAAC;QACH,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAuB;IAChD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACzC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAE,YAAoB,EAAE,GAAwB;IAC3F,MAAM,IAAI,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC;IACtF,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxE,oFAAoF;IACpF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB,EAClB,YAAgC,EAChC,OAAgC,EAAE;IAElC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE5C,0CAA0C;IAC1C,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3F,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,CAC7C,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,IAAI,GAAG,yBAAyB,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,eAAe,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE;QACnF,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,UAAU,IAAI,eAAe,EAAE,CAAC;QAChD,GAAG,CAAC,YAAY,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACxC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,uCAAuC,CAAC,CAAC;QAC/E,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5B,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,EACvC,IAAI,CAAC,SAAS,CACZ;YACE,IAAI,EAAE,KAAK;YACX,UAAU;YACV,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,OAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,qBAAqB,MAAM,oEAAoE,CAChG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,MAAM,CAAC,UAAW,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,MAAO,CAAC,CAAC;IAErF,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,GAAG,EAAE,CAAC;YAC3E,IAAI,CAAC;gBACH,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,GAAG,CAAC,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,cAAc,yBAAyB,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,cAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtF,6DAA6D;IAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvH,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GACX,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;YACvC,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAC5B,GAAG,CAAC,mCAAmC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,OAAO,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,cAAc,iCAAiC,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC;IACpF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,CAAC,CAAC,UAAU,CAAC,SAAS;QACtB,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,MAAM,CAAC;IAElC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,KAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,OAAO,KAAK,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,GAAG,CACD,KAAK,EACL,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAC9E,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,KAAM,CAAC,EAC7C,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,KAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YACxG,IAAI,CAAC;gBACH,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,EACvC,IAAI,CAAC,SAAS,CACZ;YACE,IAAI,EAAE,KAAK;YACX,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM;YACN,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,GAAwB;IAC/D,IAAI,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO;IAC/B,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAc,EACd,OAAgC,EAAE;IAElC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAwB,EACxB,OAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;QACzC,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAClG,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,UAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,CAC7C,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACpC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,MAAO,CAAC,CAAC;QACrF,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IACtE,OAAO,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
package/package.json
CHANGED