specpilot 1.2.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +126 -378
- package/dist/cli.js +13 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/add-specs.d.ts.map +1 -1
- package/dist/commands/add-specs.js +6 -18
- package/dist/commands/add-specs.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +123 -48
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +26 -34
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +16 -11
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/specify.d.ts.map +1 -1
- package/dist/commands/specify.js +112 -20
- package/dist/commands/specify.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +35 -19
- package/dist/commands/validate.js.map +1 -1
- package/dist/utils/agentConfigGenerator.d.ts +15 -0
- package/dist/utils/agentConfigGenerator.d.ts.map +1 -0
- package/dist/utils/agentConfigGenerator.js +234 -0
- package/dist/utils/agentConfigGenerator.js.map +1 -0
- package/dist/utils/codeAnalyzer.js +10 -10
- package/dist/utils/codeAnalyzer.js.map +1 -1
- package/dist/utils/frameworks.d.ts +2 -0
- package/dist/utils/frameworks.d.ts.map +1 -0
- package/dist/utils/frameworks.js +11 -0
- package/dist/utils/frameworks.js.map +1 -0
- package/dist/utils/ideConfigGenerator.d.ts +20 -0
- package/dist/utils/ideConfigGenerator.d.ts.map +1 -0
- package/dist/utils/ideConfigGenerator.js +176 -0
- package/dist/utils/ideConfigGenerator.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +145 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/projectDetector.d.ts.map +1 -1
- package/dist/utils/projectDetector.js.map +1 -1
- package/dist/utils/projectMigrator.d.ts.map +1 -1
- package/dist/utils/projectMigrator.js +36 -33
- package/dist/utils/projectMigrator.js.map +1 -1
- package/dist/utils/specFileGenerator.d.ts +25 -0
- package/dist/utils/specFileGenerator.d.ts.map +1 -0
- package/dist/utils/specFileGenerator.js +677 -0
- package/dist/utils/specFileGenerator.js.map +1 -0
- package/dist/utils/specGenerator.d.ts +11 -14
- package/dist/utils/specGenerator.d.ts.map +1 -1
- package/dist/utils/specGenerator.js +24 -430
- package/dist/utils/specGenerator.js.map +1 -1
- package/dist/utils/specValidator.d.ts.map +1 -1
- package/dist/utils/specValidator.js +4 -6
- package/dist/utils/specValidator.js.map +1 -1
- package/dist/utils/templateEngine.d.ts +9 -3
- package/dist/utils/templateEngine.d.ts.map +1 -1
- package/dist/utils/templateEngine.js +36 -36
- package/dist/utils/templateEngine.js.map +1 -1
- package/package.json +8 -3
|
@@ -7,6 +7,14 @@ export interface SpecGeneratorOptions {
|
|
|
7
7
|
specsName: string;
|
|
8
8
|
author?: string;
|
|
9
9
|
description?: string;
|
|
10
|
+
ide?: string;
|
|
11
|
+
mode?: 'new' | 'existing';
|
|
12
|
+
projectContext?: {
|
|
13
|
+
whatItDoes: string;
|
|
14
|
+
targetUsers: string;
|
|
15
|
+
expectedScale: string;
|
|
16
|
+
constraints: string;
|
|
17
|
+
};
|
|
10
18
|
analysis?: {
|
|
11
19
|
todos: Array<{
|
|
12
20
|
file: string;
|
|
@@ -31,21 +39,10 @@ export interface SpecGeneratorOptions {
|
|
|
31
39
|
}
|
|
32
40
|
export declare class SpecGenerator {
|
|
33
41
|
private templateEngine;
|
|
42
|
+
private specFileGenerator;
|
|
43
|
+
private ideConfigGenerator;
|
|
44
|
+
private agentConfigGenerator;
|
|
34
45
|
constructor(templateEngine: TemplateEngine);
|
|
35
|
-
private SPECS_README_TEMPLATE;
|
|
36
|
-
private generateReadmeMd;
|
|
37
46
|
generateSpecs(options: SpecGeneratorOptions): Promise<void>;
|
|
38
|
-
private generateProjectYaml;
|
|
39
|
-
private generateArchitectureMd;
|
|
40
|
-
private generateRequirementsMd;
|
|
41
|
-
private generateApiYaml;
|
|
42
|
-
private generateTasksMd;
|
|
43
|
-
private generateRoadmapMd;
|
|
44
|
-
private generateDocsMd;
|
|
45
|
-
private generateContextMd;
|
|
46
|
-
private generateProjectPlanMd;
|
|
47
|
-
private generatePromptsMd;
|
|
48
|
-
private generateTestsMd;
|
|
49
|
-
private generateSpecUpdateTemplateMd;
|
|
50
47
|
}
|
|
51
48
|
//# sourceMappingURL=specGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"specGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AAKnE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAC1B,cAAc,CAAC,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzE,KAAK,EAAE;YACL,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,EAAE,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,OAAO,CAAC;YAChB,OAAO,EAAE,OAAO,CAAC;YACjB,cAAc,EAAE,OAAO,CAAC;SACzB,CAAC;QACF,YAAY,EAAE;YACZ,UAAU,EAAE,MAAM,EAAE,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACnC,CAAC;KACH,CAAC;CACH;AAID,qBAAa,aAAa;IAKZ,OAAO,CAAC,cAAc;IAJlC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;gBAE/B,cAAc,EAAE,cAAc;IAM5C,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BlE"}
|
|
@@ -3,58 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SpecGenerator = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
|
+
const specFileGenerator_1 = require("./specFileGenerator");
|
|
7
|
+
const ideConfigGenerator_1 = require("./ideConfigGenerator");
|
|
8
|
+
const agentConfigGenerator_1 = require("./agentConfigGenerator");
|
|
9
|
+
const AGENT_IDES = new Set(['cowork', 'codex']);
|
|
6
10
|
class SpecGenerator {
|
|
7
11
|
constructor(templateEngine) {
|
|
8
12
|
this.templateEngine = templateEngine;
|
|
9
|
-
|
|
10
|
-
this.
|
|
11
|
-
|
|
12
|
-
This folder contains structured documentation for your codebase.
|
|
13
|
-
|
|
14
|
-
## 🚀 Quick Start: Populate Your Specs
|
|
15
|
-
|
|
16
|
-
Your specs are generated but empty. Follow these steps to fill them with AI-assisted details:
|
|
17
|
-
|
|
18
|
-
### Step 1: Copy the Onboarding Prompt
|
|
19
|
-
1. Open [\`development/prompts.md\`](development/prompts.md).
|
|
20
|
-
2. Find the "First-Use Onboarding Prompt" section.
|
|
21
|
-
3. Copy the entire fenced code block (\`\`\`...\`\`\`).
|
|
22
|
-
|
|
23
|
-
### Step 2: Paste into Your AI Agent
|
|
24
|
-
1. In your IDE (VS Code, Cursor, etc.), open the AI chat.
|
|
25
|
-
2. Paste the prompt and run it.
|
|
26
|
-
3. The AI will analyze your codebase and populate all spec files.
|
|
27
|
-
|
|
28
|
-
### Step 3: Review & Iterate
|
|
29
|
-
- Check the generated content in each \`.specs\` file.
|
|
30
|
-
- Refine as needed (e.g., add missing details).
|
|
31
|
-
- Run \`specpilot validate\` to ensure consistency.
|
|
32
|
-
|
|
33
|
-
## 📁 File Structure
|
|
34
|
-
- \`project/\`: Metadata and requirements
|
|
35
|
-
- \`architecture/\`: Design and APIs
|
|
36
|
-
- \`planning/\`: Tasks and roadmap
|
|
37
|
-
- \`quality/\`: Testing
|
|
38
|
-
- \`development/\`: Docs and prompts
|
|
39
|
-
|
|
40
|
-
## 🛠️ Commands
|
|
41
|
-
\\\`\\\`\\\`bash
|
|
42
|
-
# Validate your specs
|
|
43
|
-
specpilot validate
|
|
44
|
-
|
|
45
|
-
# Update specs after code changes
|
|
46
|
-
specpilot add-specs
|
|
47
|
-
\\\`\\\`\\\`
|
|
48
|
-
|
|
49
|
-
For AI guidelines and prompt history, see [\`development/prompts.md\`](development/prompts.md).`;
|
|
50
|
-
}
|
|
51
|
-
async generateReadmeMd(specsDir, context) {
|
|
52
|
-
const rendered = this.templateEngine.renderFromString(this.SPECS_README_TEMPLATE, context);
|
|
53
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'README.md'), rendered);
|
|
13
|
+
this.specFileGenerator = new specFileGenerator_1.SpecFileGenerator(templateEngine);
|
|
14
|
+
this.ideConfigGenerator = new ideConfigGenerator_1.IdeConfigGenerator();
|
|
15
|
+
this.agentConfigGenerator = new agentConfigGenerator_1.AgentConfigGenerator(templateEngine);
|
|
54
16
|
}
|
|
55
17
|
async generateSpecs(options) {
|
|
56
18
|
const specsDir = (0, path_1.join)(options.targetDir, options.specsName);
|
|
57
|
-
// Create .specs and subfolders
|
|
58
19
|
(0, fs_1.mkdirSync)(specsDir, { recursive: true });
|
|
59
20
|
const subfolders = ['project', 'architecture', 'planning', 'quality', 'development'];
|
|
60
21
|
subfolders.forEach(sub => (0, fs_1.mkdirSync)((0, path_1.join)(specsDir, sub), { recursive: true }));
|
|
@@ -63,392 +24,25 @@ For AI guidelines and prompt history, see [\`development/prompts.md\`](developme
|
|
|
63
24
|
language: options.language,
|
|
64
25
|
framework: options.framework,
|
|
65
26
|
author: options.author || 'Your Name',
|
|
66
|
-
description: options.description ||
|
|
67
|
-
lastUpdated: '
|
|
27
|
+
description: options.description || ('A ' + options.language + ' project' + (options.framework ? ' using ' + options.framework : '')),
|
|
28
|
+
lastUpdated: new Date().toISOString().split('T')[0],
|
|
68
29
|
contributors: [options.author || 'Your Name'],
|
|
69
|
-
architecture: options.analysis
|
|
30
|
+
architecture: options.analysis && options.analysis.architecture,
|
|
31
|
+
ide: options.ide || 'vscode',
|
|
32
|
+
mode: options.mode || 'new',
|
|
33
|
+
projectContext: options.projectContext,
|
|
70
34
|
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
await this.
|
|
82
|
-
await this.generateProjectPlanMd((0, path_1.join)(specsDir, 'project'), context);
|
|
83
|
-
await this.generatePromptsMd((0, path_1.join)(specsDir, 'development'), context);
|
|
84
|
-
await this.generateTestsMd((0, path_1.join)(specsDir, 'quality'), context);
|
|
85
|
-
await this.generateSpecUpdateTemplateMd(specsDir, context);
|
|
86
|
-
}
|
|
87
|
-
async generateProjectYaml(specsDir, context) {
|
|
88
|
-
const template = this.templateEngine.getBuiltinTemplate(context.language, context.framework, 'project.yaml');
|
|
89
|
-
const content = this.templateEngine.renderFromString(template, context);
|
|
90
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'project.yaml'), content);
|
|
91
|
-
}
|
|
92
|
-
async generateArchitectureMd(specsDir, context) {
|
|
93
|
-
const template = this.templateEngine.getBuiltinTemplate(context.language, context.framework, 'architecture.md');
|
|
94
|
-
const content = this.templateEngine.renderFromString(template, context);
|
|
95
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'architecture.md'), content);
|
|
96
|
-
}
|
|
97
|
-
async generateRequirementsMd(specsDir, context) {
|
|
98
|
-
const content = `---
|
|
99
|
-
title: Requirements
|
|
100
|
-
project: {{projectName}}
|
|
101
|
-
language: {{language}}
|
|
102
|
-
framework: {{framework}}
|
|
103
|
-
lastUpdated: {{currentDate}}
|
|
104
|
-
sourceOfTruth: project/project.yaml
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
# {{projectName}} Requirements
|
|
108
|
-
|
|
109
|
-
## Project Overview
|
|
110
|
-
{{description}}
|
|
111
|
-
|
|
112
|
-
## Functional Requirements
|
|
113
|
-
[TODO: Add requirements with proper template]
|
|
114
|
-
|
|
115
|
-
## Cross-References
|
|
116
|
-
- Architecture: ../architecture/architecture.md
|
|
117
|
-
- API: ../architecture/api.yaml
|
|
118
|
-
- Project config: ../project/project.yaml
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
*Last updated: {{currentDate}}*`;
|
|
122
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
123
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'requirements.md'), rendered);
|
|
124
|
-
}
|
|
125
|
-
async generateApiYaml(specsDir, context) {
|
|
126
|
-
const content = `# {{projectName}} API Specification
|
|
127
|
-
# meta: project={{projectName}} language={{language}} framework={{framework}} updated={{currentDate}}
|
|
128
|
-
openapi: 3.0.3
|
|
129
|
-
info:
|
|
130
|
-
title: {{projectName}} API
|
|
131
|
-
description: {{description}}
|
|
132
|
-
version: 1.1.1
|
|
133
|
-
`;
|
|
134
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
135
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'api.yaml'), rendered);
|
|
136
|
-
}
|
|
137
|
-
async generateTasksMd(specsDir, context) {
|
|
138
|
-
const content = `---
|
|
139
|
-
title: Tasks
|
|
140
|
-
project: {{projectName}}
|
|
141
|
-
language: {{language}}
|
|
142
|
-
framework: {{framework}}
|
|
143
|
-
lastUpdated: {{currentDate}}
|
|
144
|
-
sourceOfTruth: project/project.yaml
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
# {{projectName}} Task Management
|
|
148
|
-
|
|
149
|
-
## Project Status: 🟡 In Progress
|
|
150
|
-
|
|
151
|
-
## Current Sprint
|
|
152
|
-
- [ ] Setup project foundation
|
|
153
|
-
- [ ] Implement core features
|
|
154
|
-
|
|
155
|
-
## Cross-References
|
|
156
|
-
- Roadmap: ./roadmap.md
|
|
157
|
-
- Requirements: ../project/requirements.md
|
|
158
|
-
- Project config: ../project/project.yaml
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
*Last updated: {{currentDate}}*`;
|
|
162
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
163
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'tasks.md'), rendered);
|
|
164
|
-
}
|
|
165
|
-
async generateRoadmapMd(specsDir, context) {
|
|
166
|
-
const content = `---
|
|
167
|
-
title: Roadmap
|
|
168
|
-
project: {{projectName}}
|
|
169
|
-
language: {{language}}
|
|
170
|
-
framework: {{framework}}
|
|
171
|
-
lastUpdated: {{currentDate}}
|
|
172
|
-
sourceOfTruth: project/project.yaml
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
# {{projectName}} Development Roadmap
|
|
176
|
-
|
|
177
|
-
## Project Phases
|
|
178
|
-
|
|
179
|
-
### Phase 1: Foundation
|
|
180
|
-
- [x] Project initialization
|
|
181
|
-
- [ ] Core development
|
|
182
|
-
|
|
183
|
-
## Cross-References
|
|
184
|
-
- Tasks: ./tasks.md
|
|
185
|
-
- Requirements: ../project/requirements.md
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
*Last updated: {{currentDate}}*`;
|
|
189
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
190
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'roadmap.md'), rendered);
|
|
191
|
-
}
|
|
192
|
-
async generateDocsMd(specsDir, context) {
|
|
193
|
-
const content = `---
|
|
194
|
-
title: Development Docs
|
|
195
|
-
project: {{projectName}}
|
|
196
|
-
language: {{language}}
|
|
197
|
-
framework: {{framework}}
|
|
198
|
-
lastUpdated: {{currentDate}}
|
|
199
|
-
sourceOfTruth: project/project.yaml
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
# {{projectName}} Development Documentation
|
|
203
|
-
|
|
204
|
-
## Getting Started
|
|
205
|
-
[TODO: Add development setup instructions]
|
|
206
|
-
|
|
207
|
-
## Cross-References
|
|
208
|
-
- Context: ./context.md
|
|
209
|
-
- Roadmap: ../planning/roadmap.md
|
|
210
|
-
- Tasks: ../planning/tasks.md
|
|
211
|
-
- Project config: ../project/project.yaml
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
*Last updated: {{currentDate}}*`;
|
|
215
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
216
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'docs.md'), rendered);
|
|
217
|
-
}
|
|
218
|
-
async generateContextMd(specsDir, context) {
|
|
219
|
-
const content = `---
|
|
220
|
-
title: Development Context
|
|
221
|
-
project: {{projectName}}
|
|
222
|
-
language: {{language}}
|
|
223
|
-
framework: {{framework}}
|
|
224
|
-
lastUpdated: {{currentDate}}
|
|
225
|
-
sourceOfTruth: project/project.yaml
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
# {{projectName}} Development Context
|
|
229
|
-
|
|
230
|
-
## Project Memory
|
|
231
|
-
[TODO: Add project context and decisions]
|
|
232
|
-
|
|
233
|
-
## Cross-References
|
|
234
|
-
- Docs: ./docs.md
|
|
235
|
-
- Roadmap: ../planning/roadmap.md
|
|
236
|
-
- Project config: ../project/project.yaml
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
*Last updated: {{currentDate}}*`;
|
|
240
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
241
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'context.md'), rendered);
|
|
242
|
-
}
|
|
243
|
-
async generateProjectPlanMd(specsDir, context) {
|
|
244
|
-
const content = `---
|
|
245
|
-
title: Project Plan
|
|
246
|
-
project: {{projectName}}
|
|
247
|
-
language: {{language}}
|
|
248
|
-
framework: {{framework}}
|
|
249
|
-
lastUpdated: {{currentDate}}
|
|
250
|
-
sourceOfTruth: project/project.yaml
|
|
251
|
-
---
|
|
252
|
-
|
|
253
|
-
# {{projectName}} Project Plan
|
|
254
|
-
|
|
255
|
-
## Project Overview
|
|
256
|
-
[TODO: Add project planning details]
|
|
257
|
-
|
|
258
|
-
## Cross-References
|
|
259
|
-
- Roadmap: ../planning/roadmap.md
|
|
260
|
-
- Tasks: ../planning/tasks.md
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
*Last updated: {{currentDate}}*`;
|
|
264
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
265
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'project-plan.md'), rendered);
|
|
266
|
-
}
|
|
267
|
-
async generatePromptsMd(specsDir, context) {
|
|
268
|
-
const content = `---
|
|
269
|
-
title: Prompts Log
|
|
270
|
-
project: {{projectName}}
|
|
271
|
-
language: {{language}}
|
|
272
|
-
framework: {{framework}}
|
|
273
|
-
lastUpdated: {{currentDate}}
|
|
274
|
-
sourceOfTruth: project/project.yaml
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
# Development Prompts Log
|
|
278
|
-
|
|
279
|
-
## Overview
|
|
280
|
-
This file (prompts.md) contains ALL AI interactions for {{projectName}}. Update .specs/prompts.md with every AI interaction.
|
|
281
|
-
|
|
282
|
-
**🚨 MANDATE**: Update with every AI interaction.
|
|
283
|
-
|
|
284
|
-
## First-Use Onboarding Prompt
|
|
285
|
-
|
|
286
|
-
After generating the \`.specs\` directory, use this prompt to have your AI agent populate all specification files with project-specific details while following established conventions:
|
|
287
|
-
|
|
288
|
-
~~~
|
|
289
|
-
You are onboarding as the specification co-pilot for this repository. We just initialized the .specs directory using SpecPilot SDD. Your task is to inspect the codebase and populate all .specs files following these strict conventions:
|
|
290
|
-
|
|
291
|
-
**Conventions & Rules:**
|
|
292
|
-
1. **IDs**: Use semantic prefixes (REQ-, TASK-, ARCH-, TEST-, etc.) with zero-padded numbers (e.g., REQ-001, TASK-042)
|
|
293
|
-
2. **Status values**: Must be one of: not-started, in-progress, completed, blocked, deprecated
|
|
294
|
-
3. **Priority values**: Must be: critical, high, medium, low
|
|
295
|
-
4. **Dates**: Use ISO 8601 format (YYYY-MM-DD)
|
|
296
|
-
5. **YAML**: Use proper indentation (2 spaces), include all required fields
|
|
297
|
-
6. **Markdown**: Use ATX headers (#), fenced code blocks, and consistent formatting
|
|
298
|
-
7. **Traceability**: Link requirements to tasks, tasks to tests, architecture to implementation
|
|
299
|
-
|
|
300
|
-
**File Structure Standards:**
|
|
301
|
-
|
|
302
|
-
- \`project/project.yaml\`: name, version, description, tech_stack[], dependencies[], metadata
|
|
303
|
-
- \`project/requirements.md\`: ## Functional/Non-Functional Requirements with REQ-XXX IDs, priority, status
|
|
304
|
-
- \`architecture/architecture.md\`: ## Overview, Components, Data Flow, Tech Stack, Decisions (ADR format)
|
|
305
|
-
- \`architecture/api.yaml\`: OpenAPI 3.0 spec or endpoints list with methods, paths, descriptions
|
|
306
|
-
- \`planning/tasks.md\`: ## Backlog/In Progress/Completed with TASK-XXX, assignee, priority, dependencies
|
|
307
|
-
- \`planning/roadmap.md\`: ## Milestones with versions, dates, features, status
|
|
308
|
-
- \`quality/tests.md\`: ## Test Strategy, Test Cases (TEST-XXX), Coverage Goals, CI/CD integration
|
|
309
|
-
- \`development/docs.md\`: ## Getting Started, Architecture, API, Deployment, Contributing
|
|
310
|
-
- \`development/context.md\`: ## Project Context, Key Decisions, Known Issues, Future Considerations
|
|
311
|
-
|
|
312
|
-
**Your Process:**
|
|
313
|
-
1. Analyze the codebase: language, framework, structure, existing tests, dependencies
|
|
314
|
-
2. For each .specs file, generate content that:
|
|
315
|
-
- Reflects the actual implementation state
|
|
316
|
-
- Follows the conventions above exactly
|
|
317
|
-
- Maintains internal consistency (cross-references work)
|
|
318
|
-
- Scales appropriately to project size (small projects = concise specs, large = comprehensive)
|
|
319
|
-
3. Identify gaps: missing tests, undocumented APIs, unclear requirements, architectural debt
|
|
320
|
-
4. Propose actionable next steps in planning/tasks.md
|
|
321
|
-
|
|
322
|
-
**Output Format:**
|
|
323
|
-
For each file, provide the complete content in a markdown code block:
|
|
324
|
-
\\\`\\\`\\\`markdown
|
|
325
|
-
// filepath: .specs/project/project.yaml
|
|
326
|
-
[full file content]
|
|
327
|
-
\\\`\\\`\\\`
|
|
328
|
-
|
|
329
|
-
**Constraints:**
|
|
330
|
-
- Maintain the exact file paths and names from the .specs structure
|
|
331
|
-
- Don't invent features that don't exist in the code
|
|
332
|
-
- Flag uncertainties with TODO comments
|
|
333
|
-
- Keep descriptions clear, concise, and technical
|
|
334
|
-
- Ensure all IDs are unique within their domain
|
|
335
|
-
|
|
336
|
-
After populating all files, provide a summary of:
|
|
337
|
-
- What was discovered about the project
|
|
338
|
-
- What's documented vs. what's implemented
|
|
339
|
-
- Critical gaps or risks
|
|
340
|
-
- Recommended immediate actions
|
|
341
|
-
|
|
342
|
-
Begin your analysis now.
|
|
343
|
-
~~~
|
|
344
|
-
|
|
345
|
-
## Prompt History
|
|
346
|
-
|
|
347
|
-
| Date | User | Prompt Summary | Context |
|
|
348
|
-
|------|------|----------------|---------|
|
|
349
|
-
| YYYY-MM-DD | @username | Example prompt | Brief context or outcome |
|
|
350
|
-
|
|
351
|
-
## Common Commands
|
|
352
|
-
|
|
353
|
-
\\\`\\\`\\\`bash
|
|
354
|
-
# Generate specs for new project
|
|
355
|
-
specpilot init
|
|
356
|
-
|
|
357
|
-
# Add specs to existing project
|
|
358
|
-
specpilot add-specs
|
|
359
|
-
|
|
360
|
-
# Validate spec files
|
|
361
|
-
specpilot validate
|
|
362
|
-
\\\`\\\`\\\`
|
|
363
|
-
|
|
364
|
-
## AI Agent Guidelines
|
|
365
|
-
|
|
366
|
-
When working with AI agents on this codebase:
|
|
367
|
-
- Always reference relevant .specs files for context
|
|
368
|
-
- Update specifications before/after significant changes
|
|
369
|
-
- Use the conventions defined in the onboarding prompt
|
|
370
|
-
- Link code changes to tasks (TASK-XXX) and requirements (REQ-XXX)
|
|
371
|
-
- Keep development/context.md current with architectural decisions
|
|
372
|
-
- **🚨 RELEASE MANDATE**: Never commit, push, create tags, publish releases, or publish to npm without explicit user consent and approval
|
|
373
|
-
|
|
374
|
-
## Cross-References
|
|
375
|
-
- Context: ./context.md
|
|
376
|
-
- Project config: ../project/project.yaml
|
|
377
|
-
|
|
378
|
-
---
|
|
379
|
-
*Last updated: {{currentDate}}*`;
|
|
380
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
381
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'prompts.md'), rendered);
|
|
382
|
-
}
|
|
383
|
-
async generateTestsMd(specsDir, context) {
|
|
384
|
-
const content = `---
|
|
385
|
-
title: Test Strategy
|
|
386
|
-
project: {{projectName}}
|
|
387
|
-
language: {{language}}
|
|
388
|
-
framework: {{framework}}
|
|
389
|
-
lastUpdated: {{currentDate}}
|
|
390
|
-
sourceOfTruth: project/project.yaml
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
# {{projectName}} Test Strategy
|
|
394
|
-
|
|
395
|
-
## Overview
|
|
396
|
-
[TODO: Add testing strategy and approach]
|
|
397
|
-
|
|
398
|
-
## Cross-References
|
|
399
|
-
- Requirements: ../project/requirements.md
|
|
400
|
-
- Project config: ../project/project.yaml
|
|
401
|
-
|
|
402
|
-
---
|
|
403
|
-
*Last updated: {{currentDate}}*`;
|
|
404
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
405
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'tests.md'), rendered);
|
|
406
|
-
}
|
|
407
|
-
async generateSpecUpdateTemplateMd(specsDir, context) {
|
|
408
|
-
const content = `---
|
|
409
|
-
fileID: spec-update-template
|
|
410
|
-
lastUpdated: {{currentDate}}
|
|
411
|
-
version: 1.1.1
|
|
412
|
-
contributors: ["SpecPilot"]
|
|
413
|
-
relatedFiles:
|
|
414
|
-
- "project/project.yaml"
|
|
415
|
-
- "development/prompts.md"
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
# Spec Update Template
|
|
419
|
-
|
|
420
|
-
## Purpose
|
|
421
|
-
This template provides a standardized format for updating specification files within the .specs folder structure.
|
|
422
|
-
|
|
423
|
-
## Instructions
|
|
424
|
-
|
|
425
|
-
### 1. Update Front-matter
|
|
426
|
-
- Update \`lastUpdated\` field with current timestamp
|
|
427
|
-
- Increment \`version\` following semantic versioning
|
|
428
|
-
- Add your name to \`contributors\` array
|
|
429
|
-
- Update \`relatedFiles\` if dependencies change
|
|
430
|
-
|
|
431
|
-
### 2. Document Changes
|
|
432
|
-
- Clearly describe what was modified and why
|
|
433
|
-
- Reference related tasks or issues
|
|
434
|
-
- Update cross-references to maintain consistency
|
|
435
|
-
|
|
436
|
-
### 3. Validation
|
|
437
|
-
- Ensure YAML front-matter is valid
|
|
438
|
-
- Verify all cross-references use correct subfolder paths
|
|
439
|
-
- Check that version numbers are consistent across related files
|
|
440
|
-
|
|
441
|
-
## Subfolder Structure
|
|
442
|
-
- \`project/\` - Core project configuration and requirements
|
|
443
|
-
- \`architecture/\` - System design and API specifications
|
|
444
|
-
- \`planning/\` - Development planning and roadmaps
|
|
445
|
-
- \`quality/\` - Testing strategies and quality assurance
|
|
446
|
-
- \`development/\` - Development logs and task tracking
|
|
447
|
-
|
|
448
|
-
---
|
|
449
|
-
*Generated by SpecPilot on {{currentDate}}*`;
|
|
450
|
-
const rendered = this.templateEngine.renderFromString(content, context);
|
|
451
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(specsDir, 'spec-update-template.md'), rendered);
|
|
35
|
+
await this.specFileGenerator.generateAll(specsDir, context);
|
|
36
|
+
const ide = (options.ide || 'vscode').toLowerCase();
|
|
37
|
+
if (AGENT_IDES.has(ide)) {
|
|
38
|
+
await this.agentConfigGenerator.generate(options.targetDir, context, ide);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
await this.ideConfigGenerator.generate(options.targetDir, context, ide);
|
|
42
|
+
}
|
|
43
|
+
// Always generate .github/copilot-instructions.md regardless of IDE choice —
|
|
44
|
+
// it is read automatically by Copilot, Cursor, and other AI tools on every request.
|
|
45
|
+
await this.ideConfigGenerator.generateCopilotInstructions(options.targetDir, context);
|
|
452
46
|
}
|
|
453
47
|
}
|
|
454
48
|
exports.SpecGenerator = SpecGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specGenerator.js","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"specGenerator.js","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,2BAA+B;AAE/B,2DAAwD;AACxD,6DAA0D;AAC1D,iEAA8D;AAoC9D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhD,MAAa,aAAa;IAKxB,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,oBAAoB,GAAG,IAAI,2CAAoB,CAAC,cAAc,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAA,cAAS,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACrF,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAoB;YAC/B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,WAAW;YACrC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrI,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,YAAY,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;YAC7C,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY;YAC/D,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;YAC3B,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;QACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;QACD,6EAA6E;QAC7E,oFAAoF;QACpF,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;CACF;AAxCD,sCAwCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specValidator.d.ts","sourceRoot":"","sources":["../../src/utils/specValidator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"specValidator.d.ts","sourceRoot":"","sources":["../../src/utils/specValidator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAUnB;IAEI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6CnF,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BvE,OAAO,CAAC,YAAY;YAaN,mBAAmB;IA+CjC,OAAO,CAAC,oBAAoB;YAQd,gBAAgB;YAiChB,sBAAsB;YAWtB,2BAA2B;YAwB3B,2BAA2B;YAuB3B,oBAAoB;YAuBpB,iBAAiB;YAgCjB,wBAAwB;YA8BxB,yBAAyB;YAMzB,4BAA4B;IAiC1C,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,wBAAwB;IAgDhC,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,sBAAsB;CAkB/B"}
|
|
@@ -48,8 +48,7 @@ class SpecValidator {
|
|
|
48
48
|
'planning/tasks.md',
|
|
49
49
|
'development/context.md',
|
|
50
50
|
'development/prompts.md',
|
|
51
|
-
'development/docs.md'
|
|
52
|
-
'project/project-plan.md'
|
|
51
|
+
'development/docs.md'
|
|
53
52
|
];
|
|
54
53
|
}
|
|
55
54
|
async validate(projectDir, options) {
|
|
@@ -112,7 +111,7 @@ class SpecValidator {
|
|
|
112
111
|
fixed.push(fix);
|
|
113
112
|
}
|
|
114
113
|
}
|
|
115
|
-
catch
|
|
114
|
+
catch {
|
|
116
115
|
// Skip fixes that fail
|
|
117
116
|
continue;
|
|
118
117
|
}
|
|
@@ -269,7 +268,7 @@ class SpecValidator {
|
|
|
269
268
|
}
|
|
270
269
|
async createMissingFile(specsDir, fileName) {
|
|
271
270
|
const filePath = (0, path_1.join)(specsDir, fileName);
|
|
272
|
-
let content
|
|
271
|
+
let content;
|
|
273
272
|
// Ensure directory exists
|
|
274
273
|
const dir = (0, path_1.dirname)(filePath);
|
|
275
274
|
if (!(0, fs_1.existsSync)(dir)) {
|
|
@@ -316,7 +315,7 @@ class SpecValidator {
|
|
|
316
315
|
(0, fs_1.writeFileSync)(projectYamlPath, updatedContent);
|
|
317
316
|
}
|
|
318
317
|
catch (error) {
|
|
319
|
-
throw new Error(`Failed to update project.yaml: ${error instanceof Error ? error.message : 'Unknown error'}
|
|
318
|
+
throw new Error(`Failed to update project.yaml: ${error instanceof Error ? error.message : 'Unknown error'}`, { cause: error });
|
|
320
319
|
}
|
|
321
320
|
}
|
|
322
321
|
async createInitialPromptsEntry(specsDir) {
|
|
@@ -331,7 +330,6 @@ class SpecValidator {
|
|
|
331
330
|
{ file: 'planning/roadmap.md', crossRefs: ['planning/tasks.md', 'project/requirements.md'] },
|
|
332
331
|
{ file: 'development/docs.md', crossRefs: ['development/context.md', 'planning/roadmap.md', 'planning/tasks.md', 'project/project.yaml'] },
|
|
333
332
|
{ file: 'development/context.md', crossRefs: ['development/docs.md', 'planning/roadmap.md', 'project/project.yaml'] },
|
|
334
|
-
{ file: 'project/project-plan.md', crossRefs: ['planning/roadmap.md', 'planning/tasks.md'] },
|
|
335
333
|
{ file: 'development/prompts.md', crossRefs: ['development/context.md', 'project/project.yaml'] },
|
|
336
334
|
{ file: 'quality/tests.md', crossRefs: ['project/requirements.md', 'project/project.yaml'] }
|
|
337
335
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specValidator.js","sourceRoot":"","sources":["../../src/utils/specValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"specValidator.js","sourceRoot":"","sources":["../../src/utils/specValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA6D;AAC7D,+BAAqC;AACrC,8CAAgC;AAgBhC,MAAa,aAAa;IAA1B;QACU,kBAAa,GAAG;YACtB,sBAAsB;YACtB,8BAA8B;YAC9B,yBAAyB;YACzB,uBAAuB;YACvB,kBAAkB;YAClB,mBAAmB;YACnB,wBAAwB;YACxB,wBAAwB;YACxB,qBAAqB;SACtB,CAAC;IAqdJ,CAAC;IAndC,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,OAA0B;QAC3D,MAAM,MAAM,GAAqB;YAC/B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;SACpB,CAAC;QAEF,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;gBACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QAEH,kCAAkC;QAClC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE/C,8BAA8B;QAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE9C,gCAAgC;QAChC,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvE,yCAAyC;QACzC,MAAM,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAiB;QACjD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC5C,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACjD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;qBAAM,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;oBAClC,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;oBAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;qBAAM,IAAI,GAAG,KAAK,sBAAsB,EAAE,CAAC;oBAC1C,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;gBACvB,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,UAAkB;QACrC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE1E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,MAAwB;QAC1E,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAElE,IAAI,CAAC,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,0CAA0C;QACpD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAQ,CAAC;YAE9C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,wBAAwB;YAC5B,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;oBACpE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACnE,CAAC;YAED,0BAA0B;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBAChF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAChH,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,KAAe;QAC1C,MAAM,oBAAoB,GAAG,iDAAiD,CAAC;QAE/E,OAAO;YACL,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,MAAwB;QACvE,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YACpF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAEnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;YAChH,CAAC;YAED,6CAA6C;YAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;YAC1G,CAAC;YAED,0CAA0C;YAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7G,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,QAAgB,EAAE,MAAwB,EAAE,OAAgB;QAC/F,yCAAyC;QACzC,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAElE,qCAAqC;QACrC,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAElE,qCAAqC;QACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,QAAgB,EAAE,MAAwB,EAAE,OAAgB;QACtG,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC;YAAE,OAAO;QAElC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEhD,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YACjF,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CACxD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;YAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,QAAgB,EAAE,MAAwB,EAAE,OAAgB;QACtG,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC;YAAE,OAAO;QAEjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE/C,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YAC3F,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBACtF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YACjG,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,MAAwB,EAAE,OAAgB;QAC/F,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEjD,mCAAmC;YACnC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzF,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEpF,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YAC3F,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC3H,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;QAChE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,OAAe,CAAC;QAEpB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACrB,sGAAsG;YACtG,wEAAwE;YACxE,OAAO;QACT,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,sBAAsB;gBACzB,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACvC,MAAM;YACR,KAAK,wBAAwB;gBAC3B,OAAO,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC1C,MAAM;YACR,KAAK,8BAA8B;gBACjC,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,yBAAyB;gBAC5B,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACxC,MAAM;YACR;gBACE,OAAO,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,gCAAgC,CAAC;QACtH,CAAC;QAED,IAAA,kBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,QAAgB;QACrD,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAQ,CAAC;YAE9C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACvB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;YACzB,CAAC;YAED,MAAM,QAAQ,GAAG;gBACf,+FAA+F;gBAC/F,sFAAsF;aACvF,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACnG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAA,kBAAa,EAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAEjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClI,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,QAAgB;QACtD,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChD,IAAA,kBAAa,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,4BAA4B,CAAC,QAAgB,EAAE,MAAwB;QACnF,MAAM,MAAM,GAAkD;YAC5D,EAAE,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC,8BAA8B,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,EAAE;YACjI,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,CAAC,EAAE;YACpH,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,EAAE;YAC5F,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,EAAE;YAC1I,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,EAAE;YACrH,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,EAAE;YACjG,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,EAAE;SAC7F,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAA,eAAU,EAAC,CAAC,CAAC;gBAAE,SAAS;YAC7B,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,yCAAyC,CAAC,CAAC;oBACrE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACzB,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;wBAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC,6BAA6B;wBACnE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,GAAG,EAAE,CAAC,CAAC;4BACtD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,OAAO;;;;;;;;;;;;;;;;;;;CAmBV,CAAC;IACA,CAAC;IAEO,wBAAwB;QAC9B,OAAO;;;;;;;;;qBASU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmC1C,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,CAAC;IAEO,sBAAsB;QAC5B,OAAO;;;;;;;;;;;;;;;;iBAgBM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,CAAC;IAEO,sBAAsB;QAC5B,OAAO;;;;;;;;;;;;;;;iBAeM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,CAAC;CACF;AAheD,sCAgeC"}
|