mycontext-cli 0.4.20 ā 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -11
- package/dist/agents/implementations/BackendDevAgent.d.ts +39 -0
- package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -0
- package/dist/agents/implementations/BackendDevAgent.js +821 -0
- package/dist/agents/implementations/BackendDevAgent.js.map +1 -0
- package/dist/agents/implementations/CodeGenSubAgent.d.ts +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +47 -22
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.d.ts +7 -0
- package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.js +20 -11
- package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.js +17 -12
- package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
- package/dist/cli.js +210 -39
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +52 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +740 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/auth.d.ts +19 -26
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +187 -180
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/build-app.d.ts +33 -0
- package/dist/commands/build-app.d.ts.map +1 -0
- package/dist/commands/build-app.js +507 -0
- package/dist/commands/build-app.js.map +1 -0
- package/dist/commands/generate-components.d.ts +2 -0
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +96 -49
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate-todos.d.ts +25 -0
- package/dist/commands/generate-todos.d.ts.map +1 -0
- package/dist/commands/generate-todos.js +249 -0
- package/dist/commands/generate-todos.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +251 -93
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +86 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +10 -7
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/migrate.d.ts +29 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +485 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/model.d.ts +13 -16
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js +89 -320
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/playbooks.d.ts +33 -0
- package/dist/commands/playbooks.d.ts.map +1 -0
- package/dist/commands/playbooks.js +662 -0
- package/dist/commands/playbooks.js.map +1 -0
- package/dist/commands/pricing.d.ts +15 -0
- package/dist/commands/pricing.d.ts.map +1 -0
- package/dist/commands/pricing.js +129 -0
- package/dist/commands/pricing.js.map +1 -0
- package/dist/commands/promote.d.ts +22 -0
- package/dist/commands/promote.d.ts.map +1 -0
- package/dist/commands/promote.js +204 -0
- package/dist/commands/promote.js.map +1 -0
- package/dist/commands/setup.d.ts +5 -18
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +180 -340
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/ai-providers.json +81 -40
- package/dist/config/api.d.ts +9 -0
- package/dist/config/api.d.ts.map +1 -0
- package/dist/config/api.js +25 -0
- package/dist/config/api.js.map +1 -0
- package/dist/config/api.ts +29 -0
- package/dist/config/pricing.json +55 -0
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/apiKeyManager.d.ts.map +1 -1
- package/dist/utils/apiKeyManager.js +7 -0
- package/dist/utils/apiKeyManager.js.map +1 -1
- package/dist/utils/fileSystem.d.ts.map +1 -1
- package/dist/utils/fileSystem.js +3 -1
- package/dist/utils/fileSystem.js.map +1 -1
- package/dist/utils/geminiClient.d.ts +61 -0
- package/dist/utils/geminiClient.d.ts.map +1 -0
- package/dist/utils/geminiClient.js +173 -0
- package/dist/utils/geminiClient.js.map +1 -0
- package/dist/utils/hostedApiClient.d.ts +32 -0
- package/dist/utils/hostedApiClient.d.ts.map +1 -0
- package/dist/utils/hostedApiClient.js +231 -0
- package/dist/utils/hostedApiClient.js.map +1 -0
- package/dist/utils/hybridAIClient.d.ts +14 -3
- package/dist/utils/hybridAIClient.d.ts.map +1 -1
- package/dist/utils/hybridAIClient.js +190 -65
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/dist/utils/qwenClient.d.ts +22 -0
- package/dist/utils/qwenClient.d.ts.map +1 -0
- package/dist/utils/qwenClient.js +185 -0
- package/dist/utils/qwenClient.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GenerateTodosCommand = void 0;
|
|
7
|
+
const hybridAIClient_1 = require("../utils/hybridAIClient");
|
|
8
|
+
const hostedApiClient_1 = require("../utils/hostedApiClient");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
class GenerateTodosCommand {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.aiClient = new hybridAIClient_1.HybridAIClient();
|
|
15
|
+
this.hostedApiClient = new hostedApiClient_1.HostedApiClient();
|
|
16
|
+
}
|
|
17
|
+
register(program) {
|
|
18
|
+
program
|
|
19
|
+
.command("generate-todos")
|
|
20
|
+
.description("Generate contextual todos from project context")
|
|
21
|
+
.option("-c, --count <number>", "Number of todos to generate", "10")
|
|
22
|
+
.option("-f, --focus <string>", "Focus area for todo generation")
|
|
23
|
+
.option("-e, --energy <level>", "Energy level (low, medium, high)", "medium")
|
|
24
|
+
.option("-x, --complexity <level>", "Complexity level (simple, moderate, complex)", "moderate")
|
|
25
|
+
.option("-p, --project <id>", "Project ID for context")
|
|
26
|
+
.action(async (options) => {
|
|
27
|
+
await this.generateTodos(options);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async generateTodos(options) {
|
|
31
|
+
try {
|
|
32
|
+
console.log(chalk_1.default.blue("šÆ Generating contextual todos...\n"));
|
|
33
|
+
// Check if we have local AI keys
|
|
34
|
+
if (this.hasLocalAIKeys()) {
|
|
35
|
+
console.log(chalk_1.default.yellow("Using local AI providers..."));
|
|
36
|
+
await this.generateWithLocalAI(options);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log(chalk_1.default.yellow("Using hosted MyContext AI..."));
|
|
40
|
+
await this.generateWithHostedAI(options);
|
|
41
|
+
}
|
|
42
|
+
console.log(chalk_1.default.green("\nā
Todo generation completed!"));
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error(chalk_1.default.red("ā Error generating todos:"), error);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
hasLocalAIKeys() {
|
|
50
|
+
return !!(process.env.MYCONTEXT_GITHUB_TOKEN ||
|
|
51
|
+
process.env.MYCONTEXT_QWEN_API_KEY ||
|
|
52
|
+
process.env.MYCONTEXT_GEMINI_API_KEY ||
|
|
53
|
+
process.env.OPENAI_API_KEY ||
|
|
54
|
+
process.env.ANTHROPIC_API_KEY ||
|
|
55
|
+
process.env.HUGGINGFACE_API_KEY);
|
|
56
|
+
}
|
|
57
|
+
async generateWithLocalAI(options) {
|
|
58
|
+
const context = await this.loadProjectContext();
|
|
59
|
+
const count = parseInt(String(options.count || "10"));
|
|
60
|
+
const focus = options.focus || "general development tasks";
|
|
61
|
+
const energyLevel = options.energyLevel || "medium";
|
|
62
|
+
const complexity = options.complexity || "moderate";
|
|
63
|
+
const prompt = this.buildTodoGenerationPrompt(context, {
|
|
64
|
+
count,
|
|
65
|
+
focus,
|
|
66
|
+
energyLevel,
|
|
67
|
+
complexity,
|
|
68
|
+
});
|
|
69
|
+
try {
|
|
70
|
+
const response = await this.aiClient.generateText(prompt, {
|
|
71
|
+
temperature: 0.3,
|
|
72
|
+
maxTokens: 4000,
|
|
73
|
+
});
|
|
74
|
+
const parsedTodos = this.parseTodosFromResponse(response.text);
|
|
75
|
+
await this.saveTodos(parsedTodos, options.projectId);
|
|
76
|
+
console.log(chalk_1.default.green(`Generated ${parsedTodos.length} contextual todos`));
|
|
77
|
+
this.displayTodos(parsedTodos);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error(chalk_1.default.red("Error with local AI generation:"), error);
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async generateWithHostedAI(options) {
|
|
85
|
+
const context = await this.loadProjectContext();
|
|
86
|
+
const count = parseInt(String(options.count || "10"));
|
|
87
|
+
const focus = options.focus || "general development tasks";
|
|
88
|
+
const energyLevel = options.energyLevel || "medium";
|
|
89
|
+
const complexity = options.complexity || "moderate";
|
|
90
|
+
try {
|
|
91
|
+
const response = await this.hostedApiClient.generateText(`Generate ${count} contextual todos for a ${complexity} complexity project focused on ${focus} with ${energyLevel} energy level.`, {
|
|
92
|
+
context: JSON.stringify(context),
|
|
93
|
+
temperature: 0.3,
|
|
94
|
+
maxTokens: 4000,
|
|
95
|
+
});
|
|
96
|
+
const parsedTodos = this.parseTodosFromResponse(response.data?.message || response);
|
|
97
|
+
await this.saveTodos(parsedTodos, options.projectId);
|
|
98
|
+
console.log(chalk_1.default.green(`Generated ${parsedTodos.length} contextual todos`));
|
|
99
|
+
this.displayTodos(parsedTodos);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error(chalk_1.default.red("Error with hosted AI generation:"), error);
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async loadProjectContext() {
|
|
107
|
+
const contextPath = path_1.default.join(process.cwd(), ".mycontext");
|
|
108
|
+
if (!fs_1.default.existsSync(contextPath)) {
|
|
109
|
+
throw new Error("No .mycontext directory found. Run 'mycontext init' first.");
|
|
110
|
+
}
|
|
111
|
+
const context = {};
|
|
112
|
+
// Load PRD
|
|
113
|
+
const prdPath = path_1.default.join(contextPath, "01-prd.md");
|
|
114
|
+
if (fs_1.default.existsSync(prdPath)) {
|
|
115
|
+
context.prd = fs_1.default.readFileSync(prdPath, "utf8");
|
|
116
|
+
}
|
|
117
|
+
// Load types
|
|
118
|
+
const typesPath = path_1.default.join(contextPath, "02-types.ts");
|
|
119
|
+
if (fs_1.default.existsSync(typesPath)) {
|
|
120
|
+
context.types = fs_1.default.readFileSync(typesPath, "utf8");
|
|
121
|
+
}
|
|
122
|
+
// Load component list
|
|
123
|
+
const componentsPath = path_1.default.join(contextPath, "03-component-list.json");
|
|
124
|
+
if (fs_1.default.existsSync(componentsPath)) {
|
|
125
|
+
context.components = JSON.parse(fs_1.default.readFileSync(componentsPath, "utf8"));
|
|
126
|
+
}
|
|
127
|
+
// Load branding
|
|
128
|
+
const brandingPath = path_1.default.join(contextPath, "04-branding.md");
|
|
129
|
+
if (fs_1.default.existsSync(brandingPath)) {
|
|
130
|
+
context.branding = fs_1.default.readFileSync(brandingPath, "utf8");
|
|
131
|
+
}
|
|
132
|
+
return context;
|
|
133
|
+
}
|
|
134
|
+
buildTodoGenerationPrompt(context, options) {
|
|
135
|
+
return `You are a project management AI assistant. Generate ${options.count} contextual todos for a ${options.complexity} complexity project.
|
|
136
|
+
|
|
137
|
+
Project Context:
|
|
138
|
+
${JSON.stringify(context, null, 2)}
|
|
139
|
+
|
|
140
|
+
Focus Area: ${options.focus}
|
|
141
|
+
Energy Level: ${options.energyLevel}
|
|
142
|
+
Complexity: ${options.complexity}
|
|
143
|
+
|
|
144
|
+
For each todo, provide:
|
|
145
|
+
1. A clear, actionable title (max 60 characters)
|
|
146
|
+
2. A detailed description with full project context
|
|
147
|
+
3. Priority level (low, medium, high, urgent)
|
|
148
|
+
4. Estimated time in minutes
|
|
149
|
+
5. Relevant considerations based on project context
|
|
150
|
+
6. Tags for categorization
|
|
151
|
+
7. Dependencies (if any)
|
|
152
|
+
|
|
153
|
+
Format the response as a JSON array with this structure:
|
|
154
|
+
[
|
|
155
|
+
{
|
|
156
|
+
"title": "Todo title",
|
|
157
|
+
"description": "Detailed description with project context",
|
|
158
|
+
"priority": "medium",
|
|
159
|
+
"estimatedTime": 120,
|
|
160
|
+
"considerations": ["Consideration 1", "Consideration 2"],
|
|
161
|
+
"tags": ["tag1", "tag2"],
|
|
162
|
+
"dependencies": ["todo-id-1", "todo-id-2"]
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
|
|
166
|
+
Make sure each todo is:
|
|
167
|
+
- Specific and actionable
|
|
168
|
+
- Contextually relevant to the project
|
|
169
|
+
- Appropriate for the specified energy level and complexity
|
|
170
|
+
- Includes all necessary context for understanding
|
|
171
|
+
- Realistic in terms of time estimation
|
|
172
|
+
- Properly categorized with relevant tags`;
|
|
173
|
+
}
|
|
174
|
+
parseTodosFromResponse(response) {
|
|
175
|
+
try {
|
|
176
|
+
// Try to extract JSON from the response
|
|
177
|
+
const jsonMatch = response.match(/\[[\s\S]*\]/);
|
|
178
|
+
if (jsonMatch) {
|
|
179
|
+
return JSON.parse(jsonMatch[0]);
|
|
180
|
+
}
|
|
181
|
+
// Fallback: create basic todos from text
|
|
182
|
+
const lines = response.split("\n").filter((line) => line.trim());
|
|
183
|
+
const todos = [];
|
|
184
|
+
for (let i = 0; i < Math.min(lines.length, 10); i++) {
|
|
185
|
+
const line = lines[i].trim();
|
|
186
|
+
if (line && !line.startsWith("#") && !line.startsWith("*")) {
|
|
187
|
+
todos.push({
|
|
188
|
+
title: line.substring(0, 60),
|
|
189
|
+
description: line,
|
|
190
|
+
priority: "medium",
|
|
191
|
+
estimatedTime: 60,
|
|
192
|
+
considerations: ["Generated from project context"],
|
|
193
|
+
tags: ["generated"],
|
|
194
|
+
dependencies: [],
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return todos;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.error("Error parsing todos from response:", error);
|
|
202
|
+
return [];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async saveTodos(todos, projectId) {
|
|
206
|
+
const todosPath = path_1.default.join(process.cwd(), ".mycontext", "todos.json");
|
|
207
|
+
// Load existing todos
|
|
208
|
+
let existingTodos = [];
|
|
209
|
+
if (fs_1.default.existsSync(todosPath)) {
|
|
210
|
+
try {
|
|
211
|
+
existingTodos = JSON.parse(fs_1.default.readFileSync(todosPath, "utf8"));
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
console.warn("Could not load existing todos, starting fresh");
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Add new todos with IDs
|
|
218
|
+
const newTodos = todos.map((todo, index) => ({
|
|
219
|
+
id: `todo-${Date.now()}-${index}`,
|
|
220
|
+
...todo,
|
|
221
|
+
status: "todo",
|
|
222
|
+
createdAt: new Date().toISOString(),
|
|
223
|
+
updatedAt: new Date().toISOString(),
|
|
224
|
+
projectId: projectId || "default",
|
|
225
|
+
}));
|
|
226
|
+
const allTodos = [...existingTodos, ...newTodos];
|
|
227
|
+
// Ensure .mycontext directory exists
|
|
228
|
+
const contextDir = path_1.default.dirname(todosPath);
|
|
229
|
+
if (!fs_1.default.existsSync(contextDir)) {
|
|
230
|
+
fs_1.default.mkdirSync(contextDir, { recursive: true });
|
|
231
|
+
}
|
|
232
|
+
fs_1.default.writeFileSync(todosPath, JSON.stringify(allTodos, null, 2));
|
|
233
|
+
}
|
|
234
|
+
displayTodos(todos) {
|
|
235
|
+
console.log(chalk_1.default.blue("\nš Generated Todos:\n"));
|
|
236
|
+
todos.forEach((todo, index) => {
|
|
237
|
+
console.log(chalk_1.default.cyan(`${index + 1}. ${todo.title}`));
|
|
238
|
+
console.log(chalk_1.default.gray(` Priority: ${todo.priority} | Time: ${todo.estimatedTime}min`));
|
|
239
|
+
console.log(chalk_1.default.gray(` Tags: ${todo.tags.join(", ")}`));
|
|
240
|
+
console.log(chalk_1.default.white(` ${todo.description}`));
|
|
241
|
+
if (todo.considerations && todo.considerations.length > 0) {
|
|
242
|
+
console.log(chalk_1.default.yellow(` Considerations: ${todo.considerations.join(", ")}`));
|
|
243
|
+
}
|
|
244
|
+
console.log();
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
exports.GenerateTodosCommand = GenerateTodosCommand;
|
|
249
|
+
//# sourceMappingURL=generate-todos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-todos.js","sourceRoot":"","sources":["../../src/commands/generate-todos.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,11 @@ export declare class GenerateCommand {
|
|
|
12
12
|
private fs;
|
|
13
13
|
private spinner;
|
|
14
14
|
private ai;
|
|
15
|
+
private hostedApi;
|
|
15
16
|
constructor();
|
|
16
17
|
execute(options: GenerateOptions): Promise<void>;
|
|
17
18
|
getProjectContext(): Promise<any>;
|
|
19
|
+
private getActivePlaybook;
|
|
18
20
|
private resolveInputContext;
|
|
19
21
|
generateContext(projectContext: any, options: GenerateOptions): Promise<GenerationResult>;
|
|
20
22
|
generateTypes(projectContext: any, options: GenerateOptions): Promise<GenerationResult>;
|
|
@@ -51,6 +53,7 @@ export declare class GenerateCommand {
|
|
|
51
53
|
private buildProjectStructurePrompt;
|
|
52
54
|
private buildFallbackProjectStructure;
|
|
53
55
|
private printNextStepsAfterGenerate;
|
|
56
|
+
private hasLocalAIKeys;
|
|
54
57
|
private getModelCandidates;
|
|
55
58
|
}
|
|
56
59
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAqB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA2F/E,UAAU,eAAgB,SAAQ,cAAc;IAC9C,IAAI,CAAC,EACD,SAAS,GACT,OAAO,GACP,OAAO,GACP,iBAAiB,GACjB,mBAAmB,GACnB,KAAK,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACrC;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,SAAS,CAAkB;;IAQ7B,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAsVhD,iBAAiB;YAYT,iBAAiB;YAgBjB,mBAAmB;IA8F3B,eAAe,CACnB,cAAc,EAAE,GAAG,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAmLtB,aAAa,CACjB,cAAc,EAAE,GAAG,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAoI5B,OAAO,CAAC,sBAAsB;IAyF9B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,qBAAqB;IAiD7B,OAAO,CAAC,kBAAkB;IAsE1B,OAAO,CAAC,eAAe;IAgGvB,OAAO,CAAC,kBAAkB;IAwH1B,OAAO,CAAC,wBAAwB;IA4B1B,aAAa,CACjB,cAAc,EAAE,GAAG,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAmKtB,wBAAwB,CAC5B,cAAc,EAAE,GAAG,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAyEtB,qBAAqB,CACzB,cAAc,EAAE,GAAG,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAuM5B,OAAO,CAAC,0BAA0B;YAqCpB,aAAa;YAiBb,oBAAoB;IAqIlC,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,gBAAgB;IAmWxB,OAAO,CAAC,kBAAkB;IAqK1B,OAAO,CAAC,mBAAmB;IAoG3B,OAAO,CAAC,uBAAuB;IA2I/B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;IAwEvB,OAAO,CAAC,aAAa;YAwBP,oBAAoB;YAwBpB,sBAAsB;IAcpC,OAAO,CAAC,WAAW;YAoCL,oBAAoB;YAsDpB,eAAe;IAsC7B,OAAO,CAAC,sBAAsB;IAqD9B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,2BAA2B;IAqDnC,OAAO,CAAC,6BAA6B;IAyDrC,OAAO,CAAC,2BAA2B;IAiDnC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,kBAAkB;CA6C3B"}
|