mycontext-cli 2.0.3 â 2.0.4
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/README.md +426 -103
- package/dist/README.md +426 -103
- package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +1 -1
- package/dist/agents/implementations/ClaudeAgentWorkflow.js +75 -4
- package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +1 -1
- package/dist/agents/interfaces/SubAgent.d.ts +2 -0
- package/dist/agents/interfaces/SubAgent.d.ts.map +1 -1
- package/dist/cli.js +2 -38
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate-components.d.ts +0 -5
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +0 -101
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/config/build-strategies.json +173 -22
- package/dist/package.json +2 -2
- package/dist/utils/agentDefinitions.d.ts +5 -0
- package/dist/utils/agentDefinitions.d.ts.map +1 -1
- package/dist/utils/agentDefinitions.js +99 -1
- package/dist/utils/agentDefinitions.js.map +1 -1
- package/dist/utils/mcpTools.d.ts +189 -0
- package/dist/utils/mcpTools.d.ts.map +1 -1
- package/dist/utils/mcpTools.js +462 -1
- package/dist/utils/mcpTools.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/core.d.ts +0 -24
- package/dist/commands/core.d.ts.map +0 -1
- package/dist/commands/core.js +0 -410
- package/dist/commands/core.js.map +0 -1
package/dist/commands/core.js
DELETED
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.CoreCommand = void 0;
|
|
40
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
-
const fs = __importStar(require("fs-extra"));
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
const prompts_1 = __importDefault(require("prompts"));
|
|
44
|
-
const spinner_1 = require("../utils/spinner");
|
|
45
|
-
const hybridAIClient_1 = require("../utils/hybridAIClient");
|
|
46
|
-
const SubAgentOrchestrator_1 = require("../agents/orchestrator/SubAgentOrchestrator");
|
|
47
|
-
class CoreCommand {
|
|
48
|
-
constructor() {
|
|
49
|
-
this.statePath = path.join(process.cwd(), ".mycontext", "core.json");
|
|
50
|
-
}
|
|
51
|
-
async execute(options) {
|
|
52
|
-
const flags = options || {};
|
|
53
|
-
if (flags.status)
|
|
54
|
-
return this.status();
|
|
55
|
-
if (flags.ready)
|
|
56
|
-
return this.ready();
|
|
57
|
-
if (flags.refine)
|
|
58
|
-
return this.refine(flags.desc);
|
|
59
|
-
if (flags.set)
|
|
60
|
-
return this.setCore(flags.set, flags.group || "core");
|
|
61
|
-
// default to generate if specified
|
|
62
|
-
return this.generate(flags.group || "core", flags.generate);
|
|
63
|
-
}
|
|
64
|
-
async status() {
|
|
65
|
-
const st = await this.readState();
|
|
66
|
-
console.log(chalk_1.default.blue("Core status:"));
|
|
67
|
-
console.log(chalk_1.default.gray(JSON.stringify(st, null, 2)));
|
|
68
|
-
}
|
|
69
|
-
async ready() {
|
|
70
|
-
const st = await this.readState();
|
|
71
|
-
st.ready = true;
|
|
72
|
-
st.updatedAt = new Date().toISOString();
|
|
73
|
-
await this.writeState(st);
|
|
74
|
-
console.log(chalk_1.default.green("â
Core marked as ready."));
|
|
75
|
-
}
|
|
76
|
-
async refine(desc) {
|
|
77
|
-
const st = await this.readState();
|
|
78
|
-
// If no description provided, perform AI-assisted refine using PRD/types/brand as context
|
|
79
|
-
if (!desc) {
|
|
80
|
-
const result = await this.aiRefineBrandComp();
|
|
81
|
-
if (!result)
|
|
82
|
-
return;
|
|
83
|
-
st.refinements = st.refinements || [];
|
|
84
|
-
st.refinements.push({
|
|
85
|
-
desc: "AI refine",
|
|
86
|
-
at: new Date().toISOString(),
|
|
87
|
-
ai: true,
|
|
88
|
-
});
|
|
89
|
-
st.ready = false;
|
|
90
|
-
st.updatedAt = new Date().toISOString();
|
|
91
|
-
await this.writeState(st);
|
|
92
|
-
console.log(chalk_1.default.green("⨠BrandComp refined with AI. Review changes, then run 'mycontext core ready'."));
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const input = desc || (await this.ask("Describe the refinement"));
|
|
96
|
-
if (!input) {
|
|
97
|
-
console.log(chalk_1.default.yellow("No refinement description provided."));
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
st.refinements = st.refinements || [];
|
|
101
|
-
st.refinements.push({
|
|
102
|
-
desc: input,
|
|
103
|
-
at: new Date().toISOString(),
|
|
104
|
-
});
|
|
105
|
-
st.ready = false; // any new refinement unsets readiness until user marks ready
|
|
106
|
-
await this.writeState(st);
|
|
107
|
-
console.log(chalk_1.default.green("đ Refinement recorded. Edit BrandComp and rerun 'mycontext core ready' when satisfied."));
|
|
108
|
-
}
|
|
109
|
-
async generate(group, maybeName) {
|
|
110
|
-
const spinner = new spinner_1.EnhancedSpinner("Generating core component...");
|
|
111
|
-
try {
|
|
112
|
-
// Load components list and force selection from it
|
|
113
|
-
const list = await this.loadComponentList();
|
|
114
|
-
if (!list || list.length === 0) {
|
|
115
|
-
console.log(chalk_1.default.yellow("No components found in .mycontext/04-component-list.json. Run 'mycontext generate components-list' first."));
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
// Validate or prompt selection
|
|
119
|
-
let selectedName = typeof maybeName === "string" ? maybeName : "";
|
|
120
|
-
let selected = selectedName
|
|
121
|
-
? list.find((c) => c.name === selectedName)
|
|
122
|
-
: undefined;
|
|
123
|
-
if (!selected) {
|
|
124
|
-
const preferred = list.filter((c) => /core|canvas|layout|board/i.test(c.name) ||
|
|
125
|
-
(Array.isArray(c.tags) &&
|
|
126
|
-
c.tags.some((t) => /core|canvas/i.test(String(t)))));
|
|
127
|
-
const choices = (preferred.length ? preferred : list).map((c) => ({
|
|
128
|
-
title: `${c.group} / ${c.name}`,
|
|
129
|
-
value: `${c.group}::${c.name}`,
|
|
130
|
-
}));
|
|
131
|
-
const ans = await (0, prompts_1.default)({
|
|
132
|
-
type: "select",
|
|
133
|
-
name: "pick",
|
|
134
|
-
message: "Select the core component from your components list",
|
|
135
|
-
choices,
|
|
136
|
-
});
|
|
137
|
-
if (!ans?.pick)
|
|
138
|
-
return;
|
|
139
|
-
const [g, n] = String(ans.pick).split("::");
|
|
140
|
-
group = g || group;
|
|
141
|
-
selectedName = n;
|
|
142
|
-
selected =
|
|
143
|
-
list.find((c) => c.name === selectedName && c.group === group) ||
|
|
144
|
-
list.find((c) => c.name === selectedName);
|
|
145
|
-
}
|
|
146
|
-
if (!selected) {
|
|
147
|
-
console.log(chalk_1.default.yellow("Selected component not found."));
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
// Generate via sub-agent using PRD/types context
|
|
151
|
-
const ctx = await this.readContext();
|
|
152
|
-
spinner.updateText(`Generating core from list: ${selected.name}...`);
|
|
153
|
-
const codeResult = (await SubAgentOrchestrator_1.orchestrator.executeAgent("CodeGenSubAgent", {
|
|
154
|
-
component: {
|
|
155
|
-
name: selected.name,
|
|
156
|
-
description: selected.description || "",
|
|
157
|
-
type: "layout",
|
|
158
|
-
userStories: [],
|
|
159
|
-
actionFunctions: [],
|
|
160
|
-
dependencies: ["react"],
|
|
161
|
-
tags: selected.tags || [],
|
|
162
|
-
},
|
|
163
|
-
group: { name: group },
|
|
164
|
-
options: { context: { prd: ctx.prd, types: ctx.types } },
|
|
165
|
-
}));
|
|
166
|
-
const componentsDir = path.join("components", ".mycontext");
|
|
167
|
-
const coreDir = path.join(componentsDir, group || "core");
|
|
168
|
-
await fs.ensureDir(coreDir);
|
|
169
|
-
await fs.writeFile(path.join(coreDir, `${selected.name}.tsx`), codeResult.code);
|
|
170
|
-
const st = await this.readState();
|
|
171
|
-
st.name = selected.name;
|
|
172
|
-
st.group = group || "core";
|
|
173
|
-
st.ready = false;
|
|
174
|
-
st.updatedAt = new Date().toISOString();
|
|
175
|
-
await this.writeState(st);
|
|
176
|
-
console.log(chalk_1.default.blue(`\nCore generated at components/.mycontext/${st.group}/${st.name}.tsx`));
|
|
177
|
-
console.log(chalk_1.default.gray('Refine it manually or run: mycontext core refine --desc "Tweak spacing/colors"'));
|
|
178
|
-
}
|
|
179
|
-
catch (e) {
|
|
180
|
-
spinner.error({ text: "Core generation failed" });
|
|
181
|
-
throw e;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
async readState() {
|
|
185
|
-
try {
|
|
186
|
-
if (await fs.pathExists(this.statePath)) {
|
|
187
|
-
return await fs.readJson(this.statePath);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
catch { }
|
|
191
|
-
return { ready: false, refinements: [] };
|
|
192
|
-
}
|
|
193
|
-
async writeState(st) {
|
|
194
|
-
const dir = path.dirname(this.statePath);
|
|
195
|
-
await fs.ensureDir(dir);
|
|
196
|
-
await fs.writeJson(this.statePath, st, { spaces: 2 });
|
|
197
|
-
}
|
|
198
|
-
async ask(message) {
|
|
199
|
-
const ans = await (0, prompts_1.default)({ type: "text", name: "t", message });
|
|
200
|
-
return ans?.t ? String(ans.t).trim() : null;
|
|
201
|
-
}
|
|
202
|
-
async setCore(name, group) {
|
|
203
|
-
if (!name) {
|
|
204
|
-
console.log(chalk_1.default.yellow("Provide a core component name, e.g., mycontext core set BrandComp"));
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
const st = await this.readState();
|
|
208
|
-
st.name = name;
|
|
209
|
-
st.group = group || st.group || "core";
|
|
210
|
-
st.ready = false;
|
|
211
|
-
st.updatedAt = new Date().toISOString();
|
|
212
|
-
await this.writeState(st);
|
|
213
|
-
console.log(chalk_1.default.green(`â
Core set to ${name} (group: ${st.group}).`));
|
|
214
|
-
console.log(chalk_1.default.gray("Generate/re-generate it with: mycontext core --group core generate"));
|
|
215
|
-
}
|
|
216
|
-
async aiRefineBrandComp() {
|
|
217
|
-
try {
|
|
218
|
-
const projectRoot = process.cwd();
|
|
219
|
-
const st = await this.readState();
|
|
220
|
-
const coreDir = path.join(projectRoot, "components", ".mycontext", st.group || "core");
|
|
221
|
-
const coreName = st.name || "BrandComp";
|
|
222
|
-
const brandCompPath = path.join(coreDir, `${coreName}.tsx`);
|
|
223
|
-
if (!(await fs.pathExists(brandCompPath))) {
|
|
224
|
-
console.log(chalk_1.default.yellow("Core component not found. Run 'mycontext core --group core generate' first."));
|
|
225
|
-
return false;
|
|
226
|
-
}
|
|
227
|
-
const prdPath = path.join(projectRoot, ".mycontext", "01-prd.md");
|
|
228
|
-
const typesPath = path.join(projectRoot, ".mycontext", "02-types.ts");
|
|
229
|
-
const brandPath = path.join(projectRoot, ".mycontext", "03-branding.md");
|
|
230
|
-
const [prd, types, brand, current] = await Promise.all([
|
|
231
|
-
fs
|
|
232
|
-
.pathExists(prdPath)
|
|
233
|
-
.then((x) => (x ? fs.readFile(prdPath, "utf8") : "")),
|
|
234
|
-
fs
|
|
235
|
-
.pathExists(typesPath)
|
|
236
|
-
.then((x) => (x ? fs.readFile(typesPath, "utf8") : "")),
|
|
237
|
-
fs
|
|
238
|
-
.pathExists(brandPath)
|
|
239
|
-
.then((x) => (x ? fs.readFile(brandPath, "utf8") : "")),
|
|
240
|
-
fs.readFile(brandCompPath, "utf8"),
|
|
241
|
-
]);
|
|
242
|
-
const ai = new hybridAIClient_1.HybridAIClient();
|
|
243
|
-
const prompt = [
|
|
244
|
-
"[mycontext] Plan: plan â generate â QA â docs â preview (â checks)",
|
|
245
|
-
`You are refining a core Next.js client component (${coreName}) for a design system.`,
|
|
246
|
-
"Goals:",
|
|
247
|
-
"- Apply brand tokens (colors, typography, spacing) coherently.",
|
|
248
|
-
"- Improve structure, readability, and accessibility (Radix patterns).",
|
|
249
|
-
"- Keep the component API stable unless obviously unsafe; small prop improvements allowed.",
|
|
250
|
-
"- Use shadcn/ui imports from '@/components/ui/*'.",
|
|
251
|
-
"- Return only the rewritten TSX; no prose.",
|
|
252
|
-
"",
|
|
253
|
-
"Context (PRD excerpt):\n" + prd.split("\n").slice(0, 40).join("\n"),
|
|
254
|
-
"",
|
|
255
|
-
"Types excerpt:\n" + types.split("\n").slice(0, 60).join("\n"),
|
|
256
|
-
"",
|
|
257
|
-
"Brand excerpt:\n" + brand.split("\n").slice(0, 40).join("\n"),
|
|
258
|
-
"",
|
|
259
|
-
`Current ${coreName}.tsx:\n\`\`\`tsx\n${current}\n\`\`\``,
|
|
260
|
-
"",
|
|
261
|
-
"Rewrite the component with the improvements.",
|
|
262
|
-
].join("\n");
|
|
263
|
-
// Add timeout and retry logic to prevent infinite loops
|
|
264
|
-
const maxRetries = 2;
|
|
265
|
-
let lastError = null;
|
|
266
|
-
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
267
|
-
try {
|
|
268
|
-
console.log(chalk_1.default.blue(`đ¤ Attempting AI refinement (${attempt}/${maxRetries})...`));
|
|
269
|
-
const { text } = await Promise.race([
|
|
270
|
-
ai.generateText(prompt),
|
|
271
|
-
new Promise((_, reject) => setTimeout(() => reject(new Error("AI generation timed out after 30 seconds")), 30000)),
|
|
272
|
-
]);
|
|
273
|
-
if (!text || !text.trim()) {
|
|
274
|
-
console.log(chalk_1.default.yellow("AI refine produced empty output; no changes made."));
|
|
275
|
-
return false;
|
|
276
|
-
}
|
|
277
|
-
// extract code block if present
|
|
278
|
-
const m = text.match(/```tsx\n([\s\S]*?)```/i) ||
|
|
279
|
-
text.match(/```\n([\s\S]*?)```/i);
|
|
280
|
-
const rewritten = (m ? m[1] : text).trim();
|
|
281
|
-
if (!rewritten) {
|
|
282
|
-
console.log(chalk_1.default.yellow("AI refine returned no code; no changes made."));
|
|
283
|
-
return false;
|
|
284
|
-
}
|
|
285
|
-
// backup and write
|
|
286
|
-
const backupPath = brandCompPath + ".bak";
|
|
287
|
-
await fs.writeFile(backupPath, current);
|
|
288
|
-
await fs.writeFile(brandCompPath, rewritten);
|
|
289
|
-
console.log(chalk_1.default.green(`Saved refined ${coreName}.tsx (backup created).`));
|
|
290
|
-
return true;
|
|
291
|
-
}
|
|
292
|
-
catch (error) {
|
|
293
|
-
lastError = error;
|
|
294
|
-
console.log(chalk_1.default.yellow(`â ī¸ AI refinement attempt ${attempt} failed: ${error.message}`));
|
|
295
|
-
if (attempt < maxRetries) {
|
|
296
|
-
console.log(chalk_1.default.gray("Retrying in 2 seconds..."));
|
|
297
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
// All attempts failed - skip refinement but don't fail
|
|
302
|
-
console.log(chalk_1.default.yellow("đ All AI attempts failed, skipping refinement..."));
|
|
303
|
-
console.log(chalk_1.default.blue("âšī¸ Core component will be marked as ready without AI refinement"));
|
|
304
|
-
return true;
|
|
305
|
-
}
|
|
306
|
-
catch (e) {
|
|
307
|
-
console.log(chalk_1.default.yellow(`AI refine failed: ${e instanceof Error ? e.message : String(e)}`));
|
|
308
|
-
return false;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
async loadComponentList() {
|
|
312
|
-
try {
|
|
313
|
-
const cwd = process.cwd();
|
|
314
|
-
const candidates = [
|
|
315
|
-
path.join(cwd, ".mycontext", "04-component-list.json"),
|
|
316
|
-
path.join(cwd, ".mycontext", "component-list.json"),
|
|
317
|
-
path.join(cwd, "context", "component-list.json"),
|
|
318
|
-
];
|
|
319
|
-
let raw = "";
|
|
320
|
-
for (const p of candidates) {
|
|
321
|
-
if (await fs.pathExists(p)) {
|
|
322
|
-
raw = await fs.readFile(p, "utf8");
|
|
323
|
-
break;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
if (!raw)
|
|
327
|
-
return [];
|
|
328
|
-
const json = JSON.parse(raw);
|
|
329
|
-
// Handle both old flat format and new hierarchical format
|
|
330
|
-
if (Array.isArray(json.groups)) {
|
|
331
|
-
// Old format
|
|
332
|
-
const groups = json.groups;
|
|
333
|
-
const out = [];
|
|
334
|
-
for (const g of groups) {
|
|
335
|
-
for (const c of g.components || []) {
|
|
336
|
-
out.push({
|
|
337
|
-
name: c.name,
|
|
338
|
-
group: g.name,
|
|
339
|
-
description: c.description,
|
|
340
|
-
tags: c.tags,
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
return out;
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
// New hierarchical format - flatten to get all components
|
|
348
|
-
return this.flattenHierarchicalComponents(json);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
catch {
|
|
352
|
-
return [];
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Flatten hierarchical component structure to get all components
|
|
357
|
-
*/
|
|
358
|
-
flattenHierarchicalComponents(json) {
|
|
359
|
-
const components = [];
|
|
360
|
-
const rootKey = Object.keys(json).find((key) => key !== "metadata");
|
|
361
|
-
if (!rootKey)
|
|
362
|
-
return components;
|
|
363
|
-
const rootComponent = json[rootKey];
|
|
364
|
-
if (!rootComponent.children)
|
|
365
|
-
return components;
|
|
366
|
-
// Process each top-level group
|
|
367
|
-
Object.entries(rootComponent.children).forEach(([groupName, groupData]) => {
|
|
368
|
-
this.flattenGroupComponents(groupData, groupName, components);
|
|
369
|
-
});
|
|
370
|
-
return components;
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Recursively flatten components from a group
|
|
374
|
-
*/
|
|
375
|
-
flattenGroupComponents(node, groupName, components, path = "") {
|
|
376
|
-
if (!node.children) {
|
|
377
|
-
// Leaf component
|
|
378
|
-
if (node.type) {
|
|
379
|
-
components.push({
|
|
380
|
-
name: path || "Component",
|
|
381
|
-
group: groupName,
|
|
382
|
-
description: node.description,
|
|
383
|
-
tags: [groupName.toLowerCase(), node.type],
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
return;
|
|
387
|
-
}
|
|
388
|
-
// Process children
|
|
389
|
-
Object.entries(node.children).forEach(([childName, childData]) => {
|
|
390
|
-
const childPath = path ? `${path}.${childName}` : childName;
|
|
391
|
-
this.flattenGroupComponents(childData, groupName, components, childPath);
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
async readContext() {
|
|
395
|
-
const projectRoot = process.cwd();
|
|
396
|
-
const prdPath = path.join(projectRoot, ".mycontext", "01-prd.md");
|
|
397
|
-
const typesPath = path.join(projectRoot, ".mycontext", "02-types.ts");
|
|
398
|
-
const [prd, types] = await Promise.all([
|
|
399
|
-
fs
|
|
400
|
-
.pathExists(prdPath)
|
|
401
|
-
.then((x) => (x ? fs.readFile(prdPath, "utf8") : "")),
|
|
402
|
-
fs
|
|
403
|
-
.pathExists(typesPath)
|
|
404
|
-
.then((x) => (x ? fs.readFile(typesPath, "utf8") : "")),
|
|
405
|
-
]);
|
|
406
|
-
return { prd, types };
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
exports.CoreCommand = CoreCommand;
|
|
410
|
-
//# sourceMappingURL=core.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/commands/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,6CAA+B;AAC/B,2CAA6B;AAC7B,sDAA8B;AAC9B,8CAAmD;AACnD,4DAAyD;AAEzD,sFAA2E;AAE3E,MAAa,WAAW;IAAxB;QACU,cAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAgf1E,CAAC;IA9eC,KAAK,CAAC,OAAO,CAAC,OAAY;QACxB,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,GAAG;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAa,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;QAClE,mCAAmC;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,IAAa;QAChC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,0FAA0F;QAC1F,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC;YACtC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YACjB,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,+EAA+E,CAChF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC;QACtC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC7B,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,6DAA6D;QAC/E,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,yFAAyF,CAC1F,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,KAAa,EACb,SAA4B;QAE5B,MAAM,OAAO,GAAG,IAAI,yBAAe,CAAC,8BAA8B,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,2GAA2G,CAC5G,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,+BAA+B;YAC/B,IAAI,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,QAAQ,GAAG,YAAY;gBACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;gBAC3C,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CACJ,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBACxC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;wBACpB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;gBACF,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE;oBAC/B,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE;iBAC/B,CAAC,CAAC,CAAC;gBACJ,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAO,EAAC;oBACxB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,qDAAqD;oBAC9D,OAAO;iBACR,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,EAAE,IAAI;oBAAE,OAAO;gBACvB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC;gBACnB,YAAY,GAAG,CAAC,CAAC;gBACjB,QAAQ;oBACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;wBAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,iDAAiD;YACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,CAAC,8BAA8B,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,CAAC,MAAM,mCAAY,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBACrE,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;oBACvC,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,EAAE;oBACf,eAAe,EAAE,EAAE;oBACnB,YAAY,EAAE,CAAC,OAAO,CAAC;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;iBAC1B;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBACtB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE;aACzD,CAAC,CAAqB,CAAC;YAExB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC;YAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,CAAC,EAC1C,UAAU,CAAC,IAAI,CAChB,CAAC;YAEF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YACxB,EAAE,CAAC,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC;YAC3B,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YACjB,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,6CAA6C,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,MAAM,CACvE,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,gFAAgF,CACjF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,EAAO;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,OAAe;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,KAAa;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,mEAAmE,CACpE,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;QACf,EAAE,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,MAAM,CAAC;QACvC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;QACjB,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,YAAY,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,EAAE,CAAC,KAAK,IAAI,MAAM,CACnB,CAAC;YACF,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,CAAC;YACxC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,6EAA6E,CAC9E,CACF,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACzE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrD,EAAE;qBACC,UAAU,CAAC,OAAO,CAAC;qBACnB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvD,EAAE;qBACC,UAAU,CAAC,SAAS,CAAC;qBACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzD,EAAE;qBACC,UAAU,CAAC,SAAS,CAAC;qBACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzD,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;aACnC,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,IAAI,+BAAc,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG;gBACb,oEAAoE;gBACpE,qDAAqD,QAAQ,wBAAwB;gBACrF,QAAQ;gBACR,gEAAgE;gBAChE,uEAAuE;gBACvE,2FAA2F;gBAC3F,mDAAmD;gBACnD,4CAA4C;gBAC5C,EAAE;gBACF,0BAA0B,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpE,EAAE;gBACF,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9D,EAAE;gBACF,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9D,EAAE;gBACF,WAAW,QAAQ,qBAAqB,OAAO,UAAU;gBACzD,EAAE;gBACF,8CAA8C;aAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,wDAAwD;YACxD,MAAM,UAAU,GAAG,CAAC,CAAC;YACrB,IAAI,SAAS,GAAiB,IAAI,CAAC;YAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,gCAAgC,OAAO,IAAI,UAAU,MAAM,CAC5D,CACF,CAAC;oBAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;wBAClC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;wBACvB,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CACR,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,EAC/D,KAAK,CACN,CACF;qBACF,CAAC,CAAC;oBAEH,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC1B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAClE,CAAC;wBACF,OAAO,KAAK,CAAC;oBACf,CAAC;oBAED,gCAAgC;oBAChC,MAAM,CAAC,GACL,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;wBACpC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBACpC,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAC7D,CAAC;wBACF,OAAO,KAAK,CAAC;oBACf,CAAC;oBAED,mBAAmB;oBACnB,MAAM,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;oBAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACxC,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;oBAC7C,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,iBAAiB,QAAQ,wBAAwB,CAAC,CAC/D,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,SAAS,GAAG,KAAK,CAAC;oBAClB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,6BAA6B,OAAO,YAAY,KAAK,CAAC,OAAO,EAAE,CAChE,CACF,CAAC;oBAEF,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;wBACpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,uDAAuD;YACvD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAClE,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,kEAAkE,CACnE,CACF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,qBAAqB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAClE,CACF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAQ7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,wBAAwB,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,qBAAqB,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,qBAAqB,CAAC;aACjD,CAAC;YACF,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBACnC,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE7B,0DAA0D;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,aAAa;gBACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,MAAM,GAAG,GAKJ,EAAE,CAAC;gBACR,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;wBACnC,GAAG,CAAC,IAAI,CAAC;4BACP,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,KAAK,EAAE,CAAC,CAAC,IAAI;4BACb,WAAW,EAAE,CAAC,CAAC,WAAW;4BAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;yBACb,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,0DAA0D;gBAC1D,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,6BAA6B,CAAC,IAAS;QAM7C,MAAM,UAAU,GAKX,EAAE,CAAC;QAER,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC;QAEhC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QAE/C,+BAA+B;QAC/B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAC5C,CAAC,CAAC,SAAS,EAAE,SAAS,CAAgB,EAAE,EAAE;YACxC,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC,CACF,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,IAAS,EACT,SAAiB,EACjB,UAKE,EACF,OAAe,EAAE;QAEjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,iBAAiB;YACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,IAAI,WAAW;oBACzB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,IAAI,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CACnC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAgB,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,IAAI,CAAC,sBAAsB,CACzB,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,CACV,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QACtE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrC,EAAE;iBACC,UAAU,CAAC,OAAO,CAAC;iBACnB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,EAAE;iBACC,UAAU,CAAC,SAAS,CAAC;iBACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1D,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAjfD,kCAifC"}
|