superskill 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,592 +1,14 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-or-later OR Commercial
2
- import { readFile } from "fs/promises";
3
- import { CATALOG, DOMAINS, DOMAIN_PRIORITY, detectCollisions, searchCatalog, getProfile, BUILT_IN_PROFILES, } from "./catalog.js";
4
- import { searchGitHubForSkills, formatDiscoveryResults } from "./web-discovery.js";
5
- // ── Commands ─────────────────────────────────────────
6
- export async function catalogCommand(options) {
7
- const filtered = searchCatalog({
8
- domain: options.domain,
9
- repo: options.repo,
10
- text: options.search,
11
- });
12
- const repoCount = new Map();
13
- const domainSkills = new Map();
14
- for (const skill of filtered) {
15
- repoCount.set(skill.repo, (repoCount.get(skill.repo) ?? 0) + 1);
16
- for (const d of skill.domains) {
17
- const set = domainSkills.get(d) ?? new Set();
18
- set.add(skill.id);
19
- domainSkills.set(d, set);
20
- }
21
- }
22
- return {
23
- total: filtered.length,
24
- repos: Array.from(repoCount.entries())
25
- .map(([repo, count]) => ({ repo, count }))
26
- .sort((a, b) => b.count - a.count),
27
- domains: Array.from(domainSkills.entries())
28
- .map(([id, skills]) => ({
29
- id,
30
- name: DOMAINS.find((d) => d.id === id)?.name ?? id,
31
- skill_count: skills.size,
32
- }))
33
- .sort((a, b) => b.skill_count - a.skill_count),
34
- skills: filtered,
35
- };
36
- }
37
- export async function collisionsCommand() {
38
- const collisions = detectCollisions();
39
- const affected = new Set();
40
- const mapped = collisions.map((c) => {
41
- const skills = c.skills.map((s) => {
42
- affected.add(s.id);
43
- return { id: s.id, name: s.name, repo: s.repo, description: s.description };
44
- });
45
- return {
46
- domain_id: c.domain.id,
47
- domain_name: c.domain.name,
48
- skills,
49
- };
50
- });
51
- return {
52
- collisions: mapped,
53
- total_collision_domains: mapped.length,
54
- total_affected_skills: affected.size,
55
- };
56
- }
57
- export async function resolveCommand(options) {
58
- const profileName = options.profile ?? "ecc-first";
59
- const profile = getProfile(profileName);
60
- if (!profile) {
61
- const available = BUILT_IN_PROFILES.map((p) => p.name).join(", ");
62
- return {
63
- success: false,
64
- profile_name: profileName,
65
- resolutions: [],
66
- active_skills: [],
67
- error: `Unknown profile: "${profileName}". Available: ${available}`,
68
- };
69
- }
70
- const collisions = detectCollisions();
71
- const collisionDomainIds = new Set(collisions.map((c) => c.domain.id));
72
- // Build resolution report
73
- const resolutions = profile.resolutions.map((r) => {
74
- const collision = collisions.find((c) => c.domain.id === r.domain_id);
75
- return {
76
- domain: r.domain_id,
77
- chosen: r.chosen_skill_id,
78
- alternatives: collision
79
- ? collision.skills.filter((s) => s.id !== r.chosen_skill_id).map((s) => s.id)
80
- : [],
81
- };
82
- });
83
- // Collect active skill IDs: chosen winners + all non-colliding skills
84
- const activeSkillIds = new Set();
85
- // Add collision winners
86
- for (const r of profile.resolutions) {
87
- activeSkillIds.add(r.chosen_skill_id);
88
- }
89
- // Add non-colliding skills (domains with only one repo)
90
- for (const skill of CATALOG) {
91
- const allDomainsNonColliding = skill.domains.every((d) => !collisionDomainIds.has(d));
92
- if (allDomainsNonColliding) {
93
- activeSkillIds.add(skill.id);
94
- }
95
- }
96
- return {
97
- success: true,
98
- profile_name: profileName,
99
- resolutions,
100
- active_skills: [...activeSkillIds].sort(),
101
- };
102
- }
103
- async function fetchAllSkills(skillIds, concurrency) {
104
- const results = new Map();
105
- // Split into chunks to bound concurrency
106
- const chunks = [];
107
- for (let i = 0; i < skillIds.length; i += concurrency) {
108
- chunks.push(skillIds.slice(i, i + concurrency));
109
- }
110
- for (const chunk of chunks) {
111
- const settled = await Promise.allSettled(chunk.map(async (id) => {
112
- const entry = CATALOG.find((s) => s.id === id);
113
- if (!entry)
114
- return { id, error: "not in catalog" };
115
- const content = await fetchSkillContent(entry.source);
116
- return { id, content };
117
- }));
118
- for (let i = 0; i < settled.length; i++) {
119
- const id = chunk[i];
120
- const r = settled[i];
121
- if (r.status === "fulfilled") {
122
- const val = r.value;
123
- if ("error" in val) {
124
- results.set(id, { error: val.error });
125
- }
126
- else {
127
- results.set(id, { content: val.content });
128
- }
129
- }
130
- else {
131
- results.set(id, { error: String(r.reason) });
132
- }
133
- }
134
- }
135
- return results;
136
- }
137
- function classifySkill(skillId, collisionWinnerIds) {
138
- // Collision winners always go to core
139
- if (collisionWinnerIds.has(skillId))
140
- return 'core';
141
- const entry = CATALOG.find((s) => s.id === skillId);
142
- if (!entry)
143
- return 'reference';
144
- // Use highest-priority domain
145
- let best = 'reference';
146
- for (const domain of entry.domains) {
147
- const priority = DOMAIN_PRIORITY[domain];
148
- if (priority === 'core')
149
- return 'core';
150
- if (priority === 'extended')
151
- best = 'extended';
152
- }
153
- return best;
154
- }
155
- // ── Generate Command ──────────────────────────────────
156
- export async function generateCommand(vaultFs, _vaultPath, options) {
157
- const CONCURRENCY = 8;
158
- // 1. Resolve
159
- const resolution = await resolveCommand({ profile: options.profile });
160
- if (!resolution.success) {
161
- return { success: false, error: resolution.error };
162
- }
163
- // 2. Determine active skills
164
- let activeSkillIds;
165
- if (options.includeNonColliding === false) {
166
- activeSkillIds = resolution.resolutions.map((r) => r.chosen);
167
- }
168
- else {
169
- activeSkillIds = resolution.active_skills;
170
- }
171
- // 2b. Domain filter: only keep skills whose domains overlap with relevantDomains
172
- let filteredOut = 0;
173
- if (options.relevantDomains && options.relevantDomains.length > 0) {
174
- const relevantSet = new Set(options.relevantDomains);
175
- const before = activeSkillIds.length;
176
- activeSkillIds = activeSkillIds.filter((id) => {
177
- const entry = CATALOG.find((s) => s.id === id);
178
- if (!entry)
179
- return true; // keep unknowns, they'll fail at fetch
180
- return entry.domains.some((d) => relevantSet.has(d));
181
- });
182
- filteredOut = before - activeSkillIds.length;
183
- }
184
- // Track which skill IDs are collision winners (always core)
185
- const collisionWinnerIds = new Set(resolution.resolutions.map((r) => r.chosen));
186
- // 3. Parallel fetch
187
- const fetchResults = await fetchAllSkills(activeSkillIds, CONCURRENCY);
188
- const fetchErrors = [];
189
- const buckets = {
190
- core: [],
191
- extended: [],
192
- reference: [],
193
- };
194
- for (const skillId of activeSkillIds) {
195
- const result = fetchResults.get(skillId);
196
- if (!result) {
197
- fetchErrors.push(`${skillId}: fetch result missing`);
198
- continue;
199
- }
200
- if ("error" in result) {
201
- fetchErrors.push(`${skillId}: ${result.error}`);
202
- continue;
203
- }
204
- const entry = CATALOG.find((s) => s.id === skillId);
205
- if (!entry) {
206
- fetchErrors.push(`${skillId}: not found in catalog`);
207
- continue;
208
- }
209
- const layer = classifySkill(skillId, collisionWinnerIds);
210
- buckets[layer].push({
211
- skill: entry,
212
- section: formatSection(entry, result.content),
213
- });
214
- }
215
- const totalFetched = buckets.core.length + buckets.extended.length + buckets.reference.length;
216
- if (totalFetched === 0) {
217
- return {
218
- success: false,
219
- error: "No skills could be fetched",
220
- fetch_errors: fetchErrors,
221
- };
222
- }
223
- // 4. Assemble each layer
224
- const profileName = resolution.profile_name;
225
- function assembleLayer(layer) {
226
- const items = buckets[layer];
227
- const sections = items.map((i) => i.section);
228
- const domainsCovered = new Set(items.flatMap((i) => i.skill.domains));
229
- return assembleSuperSkill({
230
- layer,
231
- profileName,
232
- sections,
233
- skillCount: sections.length,
234
- domainCount: domainsCovered.size,
235
- fetchErrors: layer === 'core' ? fetchErrors : [],
236
- });
237
- }
238
- const coreContent = assembleLayer('core');
239
- const extContent = assembleLayer('extended');
240
- const refContent = assembleLayer('reference');
241
- // 5. Pipe mode — write to stdout, skip vault
242
- if (options.pipe) {
243
- const pipeLayer = options.pipeLayer ?? 'core';
244
- let content;
245
- if (pipeLayer === 'all') {
246
- content = [coreContent, extContent, refContent].join('\n\n');
247
- }
248
- else if (pipeLayer === 'extended') {
249
- content = extContent;
250
- }
251
- else if (pipeLayer === 'reference') {
252
- content = refContent;
253
- }
254
- else {
255
- content = coreContent;
256
- }
257
- return {
258
- success: true,
259
- pipe_content: content,
260
- total_skills: totalFetched,
261
- fetch_errors: fetchErrors.length > 0 ? fetchErrors : undefined,
262
- filtered_out: filteredOut > 0 ? filteredOut : undefined,
263
- };
264
- }
265
- // 6. Write three files
266
- const corePath = "skills/super-skill/SKILL.md";
267
- const extPath = "skills/super-skill/SKILL-extended.md";
268
- const refPath = "skills/super-skill/SKILL-reference.md";
269
- await vaultFs.write(corePath, coreContent);
270
- await vaultFs.write(extPath, extContent);
271
- await vaultFs.write(refPath, refContent);
272
- const estimateTokens = (s) => Math.ceil(s.length / 4);
273
- return {
274
- success: true,
275
- layers: {
276
- core: {
277
- path: corePath,
278
- skill_count: buckets.core.length,
279
- estimated_tokens: estimateTokens(coreContent),
280
- },
281
- extended: {
282
- path: extPath,
283
- skill_count: buckets.extended.length,
284
- estimated_tokens: estimateTokens(extContent),
285
- },
286
- reference: {
287
- path: refPath,
288
- skill_count: buckets.reference.length,
289
- estimated_tokens: estimateTokens(refContent),
290
- },
291
- },
292
- total_skills: totalFetched,
293
- fetch_errors: fetchErrors.length > 0 ? fetchErrors : undefined,
294
- filtered_out: filteredOut > 0 ? filteredOut : undefined,
295
- };
296
- }
297
- // ── Manifest Command ──────────────────────────────────
298
- export async function generateManifest(options) {
299
- const resolution = await resolveCommand({ profile: options.profile });
300
- if (!resolution.success) {
301
- return { success: false, error: resolution.error };
302
- }
303
- const collisionWinnerIds = new Set(resolution.resolutions.map((r) => r.chosen));
304
- const manifest = [];
305
- for (const skillId of resolution.active_skills) {
306
- const entry = CATALOG.find((s) => s.id === skillId);
307
- if (!entry)
308
- continue;
309
- const layer = classifySkill(skillId, collisionWinnerIds);
310
- manifest.push({
311
- id: entry.id,
312
- name: entry.name,
313
- domains: entry.domains,
314
- layer,
315
- description: entry.description,
316
- estimated_tokens: 2000,
317
- });
318
- }
319
- const total_estimated_tokens = manifest.reduce((sum, e) => sum + e.estimated_tokens, 0);
320
- return {
321
- success: true,
322
- manifest,
323
- total_skills: manifest.length,
324
- total_estimated_tokens,
325
- };
326
- }
327
- // ── Load Skill Content ────────────────────────────────
328
- export async function loadSkillContent(skillId) {
329
- const entry = CATALOG.find((s) => s.id === skillId);
330
- // If not in catalog, check if it's a GitHub URL (web-discovered skill)
331
- if (!entry) {
332
- if (skillId.startsWith("https://github.com/") || skillId.startsWith("https://raw.githubusercontent.com/")) {
333
- const { fetchDiscoveredSkill } = await import("./web-discovery.js");
334
- const result = await fetchDiscoveredSkill(skillId);
335
- if (!result.success) {
336
- return { success: false, error: result.error };
337
- }
338
- const name = skillId.split("/").filter(Boolean).slice(-2, -1)[0]?.replace(/-/g, " ").replace(/\b\w/g, c => c.toUpperCase()) ?? "Community Skill";
339
- const content = `## ${name}\n<!-- source: community | url: ${skillId} -->\n<!-- ⚠️ Unverified community skill -->\n\n${result.content}`;
340
- return {
341
- success: true,
342
- content,
343
- skill_name: name,
344
- estimated_tokens: Math.ceil(content.length / 4),
345
- };
346
- }
347
- return { success: false, error: `Skill not found in catalog: ${skillId}` };
348
- }
349
- try {
350
- const rawContent = await fetchSkillContent(entry.source);
351
- const content = formatSection(entry, rawContent);
352
- return {
353
- success: true,
354
- content,
355
- skill_name: entry.name,
356
- estimated_tokens: Math.ceil(content.length / 4),
357
- };
358
- }
359
- catch (e) {
360
- const msg = e instanceof Error ? e.message : String(e);
361
- return { success: false, error: `Failed to fetch skill content: ${msg}` };
362
- }
363
- }
364
- // ── Smart Skill Activator ─────────────────────────────
365
- const TASK_DOMAIN_MAP = [
366
- // Core workflow domains
367
- { patterns: [/brainstorm/i, /ideate/i, /explore ideas/i, /think through/i, /what if/i], domains: ["brainstorming"] },
368
- { patterns: [/test/i, /tdd/i, /spec/i, /coverage/i, /unit test/i, /assert/i], domains: ["tdd"] },
369
- { patterns: [/review/i, /code review/i, /pr review/i, /pull request/i, /feedback/i], domains: ["code-review"] },
370
- { patterns: [/plan/i, /architect/i, /design.*system/i, /implementation plan/i, /roadmap/i], domains: ["planning"] },
371
- { patterns: [/debug/i, /investigate/i, /fix.*bug/i, /troubleshoot/i, /error/i, /broken/i], domains: ["debugging"] },
372
- { patterns: [/secur/i, /vulnerab/i, /owasp/i, /auth.*review/i, /pentest/i, /hardening/i], domains: ["security"] },
373
- { patterns: [/deploy/i, /\bship\b/i, /release/i, /ci.?cd/i, /rollback/i, /production/i], domains: ["shipping"] },
374
- { patterns: [/verify/i, /validate/i, /check.*build/i, /lint/i, /type.?check/i], domains: ["verification"] },
375
- { patterns: [/frontend/i, /ui\b/i, /ux\b/i, /component/i, /design.*page/i, /css/i, /tailwind/i, /layout/i], domains: ["frontend-design"] },
376
- { patterns: [/agent/i, /orchestrat/i, /subagent/i, /parallel.*agent/i, /multi.*agent/i], domains: ["agent-orchestration"] },
377
- { patterns: [/database/i, /sql\b/i, /schema/i, /migration/i, /postgres/i, /mysql/i, /supabase/i, /sql.*query/i, /db.*query/i], domains: ["database"] },
378
- // Language and framework domains
379
- { patterns: [/golang/i, /go test/i, /goroutine/i, /go mod/i, /go func/i, /go package/i], domains: ["go"] },
380
- { patterns: [/python/i, /pytest/i, /pip/i, /django/i, /flask/i, /fastapi/i], domains: ["python"] },
381
- { patterns: [/django/i, /drf\b/i, /django rest/i], domains: ["django"] },
382
- { patterns: [/spring/i, /spring boot/i, /java\b/i, /jpa\b/i, /hibernate/i, /maven/i, /gradle/i], domains: ["spring-boot", "java"] },
383
- { patterns: [/swift/i, /swiftui/i, /ios\b/i, /xcode/i, /uikit/i], domains: ["swift"] },
384
- { patterns: [/\bc\+\+/i, /cpp\b/i, /cmake/i, /clang/i], domains: ["cpp"] },
385
- { patterns: [/docker/i, /container/i, /compose/i, /dockerfile/i, /k8s/i, /kubernetes/i], domains: ["docker"] },
386
- // API and patterns
387
- { patterns: [/api design/i, /rest api/i, /endpoint/i, /pagination/i, /rate limit/i], domains: ["api-design"] },
388
- { patterns: [/react/i, /next\.?js/i, /state management/i, /hooks/i, /redux/i], domains: ["frontend-patterns"] },
389
- { patterns: [/express/i, /node\.?js/i, /server.*pattern/i, /middleware/i, /backend/i], domains: ["backend-patterns"] },
390
- { patterns: [/coding standard/i, /style guide/i, /convention/i, /best practice/i], domains: ["coding-standards"] },
391
- { patterns: [/git/i, /branch/i, /worktree/i, /merge/i, /rebase/i], domains: ["git-workflow"] },
392
- // Content and business
393
- { patterns: [/write.*article/i, /blog.*post/i, /content/i, /newsletter/i, /copywriting/i], domains: ["content-business"] },
394
- { patterns: [/market.*research/i, /competitor/i, /competitive/i, /due diligence/i, /market siz/i], domains: ["content-business"] },
395
- { patterns: [/investor/i, /pitch.*deck/i, /fundrais/i, /outreach/i, /cold email/i], domains: ["content-business"] },
396
- { patterns: [/linkedin/i, /twitter/i, /social media/i, /marketing/i, /launch post/i], domains: ["content-business"] },
397
- // 3D and animation
398
- { patterns: [/three\.?js/i, /webgl/i, /3d\b/i, /animation/i, /gsap/i, /framer/i], domains: ["3d-animation"] },
399
- // Agent engineering
400
- { patterns: [/agent.*harness/i, /agent.*eval/i, /cost.*optim/i, /agent.*loop/i, /agent.*engineer/i, /eval.*pipeline/i], domains: ["agent-engineering"] },
401
- // Meta / tooling
402
- { patterns: [/skill.*manage/i, /compaction/i, /skill.*install/i, /learning.*capture/i], domains: ["meta"] },
403
- ];
404
- export function matchTaskToDomains(task) {
405
- const matched = new Set();
406
- for (const entry of TASK_DOMAIN_MAP) {
407
- for (const pattern of entry.patterns) {
408
- if (pattern.test(task)) {
409
- for (const d of entry.domains)
410
- matched.add(d);
411
- }
412
- }
413
- }
414
- return [...matched];
415
- }
416
- export async function activateSkills(options) {
417
- // Direct skill load by ID
418
- if (options.skill_id) {
419
- const result = await loadSkillContent(options.skill_id);
420
- if (!result.success) {
421
- return { success: false, skills_loaded: [], content: "", matched_domains: [], total_tokens: 0, error: result.error };
422
- }
423
- const entry = CATALOG.find((s) => s.id === options.skill_id);
424
- return {
425
- success: true,
426
- skills_loaded: [{ id: options.skill_id, name: entry?.name ?? options.skill_id, domains: entry?.domains ?? [] }],
427
- content: result.content,
428
- matched_domains: entry?.domains ?? [],
429
- total_tokens: result.estimated_tokens ?? 0,
430
- };
431
- }
432
- // Route 1: LLM passed domain directly (preferred — LLM understands intent best)
433
- // Route 2: Keyword fallback from task description
434
- let matchedDomains;
435
- if (options.domain) {
436
- // LLM picked the domain(s) — trust it. Support comma-separated.
437
- matchedDomains = options.domain.split(",").map((d) => d.trim()).filter((d) => DOMAINS.some((dom) => dom.id === d));
438
- }
439
- else {
440
- matchedDomains = matchTaskToDomains(options.task);
441
- }
442
- if (matchedDomains.length === 0) {
443
- // Web discovery fallback — search GitHub for community skills
444
- const discovery = await searchGitHubForSkills(options.task);
445
- const content = formatDiscoveryResults(options.task, discovery.results);
446
- return {
447
- success: true,
448
- skills_loaded: [],
449
- content,
450
- matched_domains: [],
451
- total_tokens: 0,
452
- };
453
- }
454
- // Resolve which skill wins per domain
455
- const resolution = await resolveCommand({ profile: options.profile });
456
- const winnerMap = new Map();
457
- for (const r of resolution.resolutions) {
458
- winnerMap.set(r.domain, r.chosen);
459
- }
460
- // For each matched domain, load collision winner + up to 2 alternatives (max 3 per domain)
461
- const MAX_SKILLS_PER_DOMAIN = 3;
462
- const skillsToLoad = [];
463
- const seenIds = new Set();
464
- for (const domain of matchedDomains) {
465
- let domainCount = 0;
466
- // Collision winner goes first if present
467
- const winnerId = winnerMap.get(domain);
468
- if (winnerId && !seenIds.has(winnerId)) {
469
- const entry = CATALOG.find((s) => s.id === winnerId);
470
- if (entry) {
471
- skillsToLoad.push(entry);
472
- seenIds.add(winnerId);
473
- domainCount++;
474
- }
475
- }
476
- // Then other skills in this domain, up to the cap
477
- for (const skill of CATALOG) {
478
- if (domainCount >= MAX_SKILLS_PER_DOMAIN)
479
- break;
480
- if (skill.domains.includes(domain) && !seenIds.has(skill.id)) {
481
- skillsToLoad.push(skill);
482
- seenIds.add(skill.id);
483
- domainCount++;
484
- }
485
- }
486
- }
487
- if (skillsToLoad.length === 0) {
488
- return { success: true, skills_loaded: [], content: "No skills available for matched domains: " + matchedDomains.join(", "), matched_domains: matchedDomains, total_tokens: 0 };
489
- }
490
- // Fetch all matched skills in parallel
491
- const fetchResults = await Promise.allSettled(skillsToLoad.map(async (entry) => {
492
- const raw = await fetchSkillContent(entry.source);
493
- return { entry, content: formatSection(entry, raw) };
494
- }));
495
- const sections = [];
496
- const loaded = [];
497
- for (const result of fetchResults) {
498
- if (result.status === "fulfilled") {
499
- sections.push(result.value.content);
500
- loaded.push({
501
- id: result.value.entry.id,
502
- name: result.value.entry.name,
503
- domains: result.value.entry.domains,
504
- });
505
- }
506
- }
507
- const content = sections.join("\n\n---\n\n");
508
- return {
509
- success: true,
510
- skills_loaded: loaded,
511
- content,
512
- matched_domains: matchedDomains,
513
- total_tokens: Math.ceil(content.length / 4),
514
- };
515
- }
516
- // ── Skill Awareness (for resume/context injection) ────
517
- export function getSkillAwarenessBlock() {
518
- return [
519
- "",
520
- "## SuperSkill — Expert Methodologies",
521
- "",
522
- "You have **superskill** — your skill package manager. Call it whenever you're about to:",
523
- "",
524
- "- Write, review, test, or debug code",
525
- "- Plan, architect, or design something",
526
- "- Ship, deploy, or secure a system",
527
- "- Research, write content, or prepare materials",
528
- "",
529
- "Just describe the task: `superskill({task: \"write tests for my Go API\"})`",
530
- "SuperSkill finds the right methodology from " + CATALOG.length + "+ skills across " + new Set(CATALOG.map(s => s.repo)).size + " repos.",
531
- "",
532
- ].join("\n");
533
- }
534
- // ── Helpers ──────────────────────────────────────────
535
- async function fetchSkillContent(source) {
536
- if (source.startsWith("http://") || source.startsWith("https://")) {
537
- const res = await fetch(source);
538
- if (!res.ok)
539
- throw new Error(`HTTP ${res.status} ${res.statusText}`);
540
- return res.text();
541
- }
542
- return readFile(source, "utf-8");
543
- }
544
- function stripFrontmatter(content) {
545
- return content.replace(/^---[\s\S]*?---\n*/, "").trim();
546
- }
547
- function formatSection(skill, rawContent) {
548
- const body = stripFrontmatter(rawContent);
549
- return [
550
- `## ${skill.name}`,
551
- `<!-- source: ${skill.repo} | domains: ${skill.domains.join(", ")} | id: ${skill.id} -->`,
552
- "",
553
- body,
554
- ].join("\n");
555
- }
556
- function assembleSuperSkill(opts) {
557
- const now = new Date().toISOString();
558
- const layerLabel = {
559
- core: "Core — always loaded",
560
- extended: "Extended — medium+ context models",
561
- reference: "Reference — large context models only",
562
- };
563
- const estimatedTokens = Math.ceil(opts.sections.join("").length / 4);
564
- const lines = [
565
- "---",
566
- "name: super-skill",
567
- `layer: ${opts.layer}`,
568
- `description: ${layerLabel[opts.layer]} — ${opts.skillCount} skills across ${opts.domainCount} domains`,
569
- `version: ${now.slice(0, 10)}`,
570
- `estimated_tokens: ${estimatedTokens}`,
571
- "---",
572
- "",
573
- `# Super Skill — ${opts.layer.charAt(0).toUpperCase() + opts.layer.slice(1)}`,
574
- "",
575
- `> Generated by **superskill** skill marketplace`,
576
- `> Profile: **${opts.profileName}** | Layer: **${opts.layer}** | Skills: **${opts.skillCount}** | Domains: **${opts.domainCount}** | Generated: ${now}`,
577
- "",
578
- ];
579
- if (opts.fetchErrors.length > 0) {
580
- lines.push("## Fetch Errors", "");
581
- for (const err of opts.fetchErrors) {
582
- lines.push(`- ${err}`);
583
- }
584
- lines.push("");
585
- }
586
- if (opts.sections.length > 0) {
587
- lines.push(opts.sections.join("\n\n---\n\n"));
588
- lines.push("");
589
- }
590
- return lines.join("\n");
591
- }
2
+ //
3
+ // Barrel re-export this file preserves backward compatibility.
4
+ // All logic has been split into focused modules:
5
+ // activate.ts — activateSkills, matchTaskToDomains, TASK_DOMAIN_MAP, ActivateResult
6
+ // resolve.ts — resolveCommand, collisionsCommand, catalogCommand + result types
7
+ // generate.ts — generateCommand, LayerInfo, GenerateResult
8
+ // manifest.ts — generateManifest, loadSkillContent, getSkillAwarenessBlock + types
9
+ // helpers.ts — shared helpers (fetchSkillContent, formatSection, etc.)
10
+ export { catalogCommand, collisionsCommand, resolveCommand } from "./resolve.js";
11
+ export { generateCommand } from "./generate.js";
12
+ export { generateManifest, loadSkillContent, getSkillAwarenessBlock } from "./manifest.js";
13
+ export { activateSkills, matchTaskToDomains, TASK_DOMAIN_MAP } from "./activate.js";
592
14
  //# sourceMappingURL=marketplace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/commands/skill/marketplace.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,OAAO,EACP,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAuEnF,wDAAwD;AAExD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAIpC;IACC,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,MAAM;KACrB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACpC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE;YAClD,WAAW,EAAE,MAAM,CAAC,IAAI;SACzB,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QAChD,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;YACtB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YAC1B,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,EAAE,MAAM;QAClB,uBAAuB,EAAE,MAAM,CAAC,MAAM;QACtC,qBAAqB,EAAE,QAAQ,CAAC,IAAI;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAEpC;IACC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,EAAE;YACjB,KAAK,EAAE,qBAAqB,WAAW,iBAAiB,SAAS,EAAE;SACpE,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,0BAA0B;IAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,SAAS;YACnB,MAAM,EAAE,CAAC,CAAC,eAAe;YACzB,YAAY,EAAE,SAAS;gBACrB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,wBAAwB;IACxB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED,wDAAwD;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,sBAAsB,EAAE,CAAC;YAC3B,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,WAAW;QACzB,WAAW;QACX,aAAa,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE;KAC1C,CAAC;AACJ,CAAC;AAMD,KAAK,UAAU,cAAc,CAC3B,QAAkB,EAClB,WAAmB;IAEnB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE/C,yCAAyC;IACzC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAA4E,EAAE;YAC/F,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC,CACH,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;gBACpB,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAMD,SAAS,aAAa,CAAC,OAAe,EAAE,kBAA+B;IACrE,sCAAsC;IACtC,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IAE/B,8BAA8B;IAC9B,IAAI,IAAI,GAAc,WAAW,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACvC,IAAI,QAAQ,KAAK,UAAU;YAAE,IAAI,GAAG,UAAU,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yDAAyD;AAEzD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,UAAkB,EAClB,OAOC;IAED,MAAM,WAAW,GAAG,CAAC,CAAC;IAEtB,aAAa;IACb,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED,6BAA6B;IAC7B,IAAI,cAAwB,CAAC;IAC7B,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;QAC1C,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC;IAC5C,CAAC;IAED,iFAAiF;IACjF,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;YAChE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhF,oBAAoB;IACpB,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,OAAO,GAAuE;QAClF,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;KACd,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YAClB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IAC9F,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B;YACnC,YAAY,EAAE,WAAW;SAC1B,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;IAE5C,SAAS,aAAa,CAAC,KAAgB;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtE,OAAO,kBAAkB,CAAC;YACxB,KAAK;YACL,WAAW;YACX,QAAQ;YACR,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,WAAW,EAAE,cAAc,CAAC,IAAI;YAChC,WAAW,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAE9C,6CAA6C;IAC7C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;QAC9C,IAAI,OAAe,CAAC;QACpB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,WAAW,CAAC;QACxB,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,OAAO;YACrB,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC9D,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,6BAA6B,CAAC;IAC/C,MAAM,OAAO,GAAG,sCAAsC,CAAC;IACvD,MAAM,OAAO,GAAG,uCAAuC,CAAC;IAExD,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;gBAChC,gBAAgB,EAAE,cAAc,CAAC,WAAW,CAAC;aAC9C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBACpC,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAAC;aAC7C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;gBACrC,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAAC;aAC7C;SACF;QACD,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC9D,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC;AACJ,CAAC;AAED,yDAAyD;AAEzD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAEtC;IACC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhF,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAExF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ;QACR,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAED,yDAAyD;AAEzD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IAOpD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAEpD,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,oCAAoC,CAAC,EAAE,CAAC;YAC1G,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACjD,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,iBAAiB,CAAC;YACjJ,MAAM,OAAO,GAAG,MAAM,IAAI,mCAAmC,OAAO,mDAAmD,MAAM,CAAC,OAAO,EAAE,CAAC;YACxI,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;aAChD,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,OAAO,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO;YACP,UAAU,EAAE,KAAK,CAAC,IAAI;YACtB,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SAChD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,GAAG,EAAE,EAAE,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,yDAAyD;AAEzD,MAAM,eAAe,GAAqD;IACxE,wBAAwB;IACxB,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE;IACpH,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAChG,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE;IAC/G,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;IACnH,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;IACnH,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;IACjH,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;IAChH,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE;IAC3G,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC1I,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE;IAC3H,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;IACtJ,iCAAiC;IACjC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;IAC1G,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IAClG,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IACxE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE;IACnI,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE;IACtF,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;IAC1E,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IAC9G,mBAAmB;IACnB,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE;IAC9G,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE;IAC/G,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;IACtH,EAAE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;IAClH,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE;IAC9F,uBAAuB;IACvB,EAAE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;IAC1H,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;IAClI,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;IACnH,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;IACrH,mBAAmB;IACnB,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE;IAC7G,oBAAoB;IACpB,EAAE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE;IACxJ,iBAAiB;IACjB,EAAE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;CAC5G,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAKpC;IACC,0BAA0B;IAC1B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACvH,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YAC/G,OAAO,EAAE,MAAM,CAAC,OAAQ;YACxB,eAAe,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE;YACrC,YAAY,EAAE,MAAM,CAAC,gBAAgB,IAAI,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,kDAAkD;IAClD,IAAI,cAAwB,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,gEAAgE;QAChE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CACpC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,8DAA8D;QAC9D,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,EAAE;YACjB,OAAO;YACP,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,CAAC;SAChB,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QACvC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,2FAA2F;IAC3F,MAAM,qBAAqB,GAAG,CAAC,CAAC;IAChC,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,yCAAyC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACrD,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,kDAAkD;QAClD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,WAAW,IAAI,qBAAqB;gBAAE,MAAM;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7D,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtB,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAClL,CAAC;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAC3C,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACvD,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAoC,EAAE,CAAC;IAEnD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE7C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,MAAM;QACrB,OAAO;QACP,eAAe,EAAE,cAAc;QAC/B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,yDAAyD;AAEzD,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,EAAE;QACF,sCAAsC;QACtC,EAAE;QACF,yFAAyF;QACzF,EAAE;QACF,sCAAsC;QACtC,wCAAwC;QACxC,oCAAoC;QACpC,iDAAiD;QACjD,EAAE;QACF,6EAA6E;QAC7E,8CAA8C,GAAG,OAAO,CAAC,MAAM,GAAG,kBAAkB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS;QACzI,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,wDAAwD;AAExD,KAAK,UAAU,iBAAiB,CAAC,MAAc;IAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB,EAAE,UAAkB;IAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO;QACL,MAAM,KAAK,CAAC,IAAI,EAAE;QAClB,gBAAgB,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,MAAM;QACzF,EAAE;QACF,IAAI;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,IAO3B;IACC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,mCAAmC;QAC7C,SAAS,EAAE,uCAAuC;KACnD,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErE,MAAM,KAAK,GAAa;QACtB,KAAK;QACL,mBAAmB;QACnB,UAAU,IAAI,CAAC,KAAK,EAAE;QACtB,gBAAgB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,WAAW,UAAU;QACvG,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QAC9B,qBAAqB,eAAe,EAAE;QACtC,KAAK;QACL,EAAE;QACF,mBAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC7E,EAAE;QACF,iDAAiD;QACjD,gBAAgB,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,KAAK,kBAAkB,IAAI,CAAC,UAAU,mBAAmB,IAAI,CAAC,WAAW,mBAAmB,GAAG,EAAE;QACvJ,EAAE;KACH,CAAC;IAEF,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/commands/skill/marketplace.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,iEAAiE;AACjE,iDAAiD;AACjD,uFAAuF;AACvF,oFAAoF;AACpF,8DAA8D;AAC9D,sFAAsF;AACtF,2EAA2E;AAE3E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGjF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}