aifastdb 2.1.1 → 2.2.1

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.
Binary file
@@ -0,0 +1,425 @@
1
+ /**
2
+ * DevPlanStore — 通用开发计划管理系统
3
+ *
4
+ * 以 FEDERATED_DB_DEVELOPMENT_PLAN.md 的结构为蓝本,构建跨项目通用的
5
+ * "开发计划文档管理 + 分层任务管理" 标准化能力。
6
+ *
7
+ * 特性:
8
+ * - 11 种标准文档片段类型(overview, api_design, technical_notes 等)
9
+ * - 主任务 (MainTask) + 子任务 (SubTask) 两级任务层级
10
+ * - 子任务与 Cursor TodoList 一一对应
11
+ * - 完成任务时自动更新进度和关联文档
12
+ * - 基于 EnhancedDocumentStore 的 JSONL 持久化
13
+ *
14
+ * 使用方式:
15
+ * ```typescript
16
+ * import { DevPlanStore, createDevPlan } from 'aifastdb';
17
+ *
18
+ * const plan = createDevPlan('federation-db');
19
+ * plan.saveSection({ projectName: 'federation-db', section: 'overview', ... });
20
+ * plan.createMainTask({ projectName: 'federation-db', taskId: 'phase-7', ... });
21
+ * plan.addSubTask({ projectName: 'federation-db', taskId: 'T7.1', parentTaskId: 'phase-7', ... });
22
+ * plan.completeSubTask('T7.1'); // 自动更新进度
23
+ * ```
24
+ */
25
+ /**
26
+ * 标准文档片段类型 — 从 FEDERATED_DB_DEVELOPMENT_PLAN.md 抽象的通用模板
27
+ *
28
+ * 每个项目可选择使用全部或部分章节类型。
29
+ */
30
+ export type DevPlanSection = 'overview' | 'core_concepts' | 'api_design' | 'file_structure' | 'config' | 'examples' | 'technical_notes' | 'api_endpoints' | 'milestones' | 'changelog' | 'custom';
31
+ /**
32
+ * 任务状态
33
+ */
34
+ export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'cancelled';
35
+ /**
36
+ * 任务优先级
37
+ */
38
+ export type TaskPriority = 'P0' | 'P1' | 'P2';
39
+ /**
40
+ * 文档片段输入
41
+ */
42
+ export interface DevPlanDocInput {
43
+ /** 项目名称 */
44
+ projectName: string;
45
+ /** 文档片段类型 */
46
+ section: DevPlanSection;
47
+ /** 文档标题 */
48
+ title: string;
49
+ /** Markdown 内容 */
50
+ content: string;
51
+ /** 文档版本 */
52
+ version?: string;
53
+ /** 子分类(用于 technical_notes 等支持多子文档的类型) */
54
+ subSection?: string;
55
+ /** 关联的其他章节 */
56
+ relatedSections?: string[];
57
+ }
58
+ /**
59
+ * 存储的文档片段
60
+ */
61
+ export interface DevPlanDoc {
62
+ /** 文档 ID */
63
+ id: string;
64
+ /** 项目名称 */
65
+ projectName: string;
66
+ /** 文档片段类型 */
67
+ section: DevPlanSection;
68
+ /** 文档标题 */
69
+ title: string;
70
+ /** Markdown 内容 */
71
+ content: string;
72
+ /** 文档版本 */
73
+ version: string;
74
+ /** 子分类 */
75
+ subSection?: string;
76
+ /** 关联章节 */
77
+ relatedSections?: string[];
78
+ /** 创建时间 */
79
+ createdAt: number;
80
+ /** 更新时间 */
81
+ updatedAt: number;
82
+ }
83
+ /**
84
+ * 主任务输入 — 对应一个完整的开发阶段
85
+ */
86
+ export interface MainTaskInput {
87
+ /** 项目名称 */
88
+ projectName: string;
89
+ /** 主任务标识 (如 "phase-7", "phase-14B") */
90
+ taskId: string;
91
+ /** 任务标题 (如 "阶段七:Store Trait 与适配器") */
92
+ title: string;
93
+ /** 优先级 */
94
+ priority: TaskPriority;
95
+ /** 任务描述 */
96
+ description?: string;
97
+ /** 预计工时(小时) */
98
+ estimatedHours?: number;
99
+ /** 关联的文档章节 */
100
+ relatedSections?: string[];
101
+ }
102
+ /**
103
+ * 存储的主任务
104
+ */
105
+ export interface MainTask {
106
+ /** 文档 ID */
107
+ id: string;
108
+ /** 项目名称 */
109
+ projectName: string;
110
+ /** 主任务标识 */
111
+ taskId: string;
112
+ /** 任务标题 */
113
+ title: string;
114
+ /** 优先级 */
115
+ priority: TaskPriority;
116
+ /** 任务描述 */
117
+ description?: string;
118
+ /** 预计工时 */
119
+ estimatedHours?: number;
120
+ /** 关联文档章节 */
121
+ relatedSections?: string[];
122
+ /** 子任务总数 */
123
+ totalSubtasks: number;
124
+ /** 已完成子任务数 */
125
+ completedSubtasks: number;
126
+ /** 任务状态 */
127
+ status: TaskStatus;
128
+ /** 创建时间 */
129
+ createdAt: number;
130
+ /** 更新时间 */
131
+ updatedAt: number;
132
+ /** 完成时间 */
133
+ completedAt: number | null;
134
+ }
135
+ /**
136
+ * 子任务输入 — 与 Cursor TodoList 粒度一致
137
+ */
138
+ export interface SubTaskInput {
139
+ /** 项目名称 */
140
+ projectName: string;
141
+ /** 子任务标识 (如 "T7.2", "T14.8") */
142
+ taskId: string;
143
+ /** 父主任务标识 (如 "phase-7") */
144
+ parentTaskId: string;
145
+ /** 任务标题 (如 "定义 Store Trait 和统一类型") */
146
+ title: string;
147
+ /** 预计工时(小时) */
148
+ estimatedHours?: number;
149
+ /** 涉及的代码文件 */
150
+ relatedFiles?: string[];
151
+ /** 任务描述 */
152
+ description?: string;
153
+ }
154
+ /**
155
+ * 存储的子任务
156
+ */
157
+ export interface SubTask {
158
+ /** 文档 ID */
159
+ id: string;
160
+ /** 项目名称 */
161
+ projectName: string;
162
+ /** 子任务标识 */
163
+ taskId: string;
164
+ /** 父主任务标识 */
165
+ parentTaskId: string;
166
+ /** 任务标题 */
167
+ title: string;
168
+ /** 预计工时 */
169
+ estimatedHours?: number;
170
+ /** 涉及的代码文件 */
171
+ relatedFiles?: string[];
172
+ /** 任务描述 */
173
+ description?: string;
174
+ /** 任务状态 */
175
+ status: TaskStatus;
176
+ /** 创建时间 */
177
+ createdAt: number;
178
+ /** 更新时间 */
179
+ updatedAt: number;
180
+ /** 完成时间 */
181
+ completedAt: number | null;
182
+ }
183
+ /**
184
+ * 完成子任务的返回结果
185
+ */
186
+ export interface CompleteSubTaskResult {
187
+ /** 更新后的子任务 */
188
+ subTask: SubTask;
189
+ /** 自动更新计数后的主任务 */
190
+ mainTask: MainTask;
191
+ /** 主任务是否也全部完成了 */
192
+ mainTaskCompleted: boolean;
193
+ }
194
+ /**
195
+ * 单个主任务的进度
196
+ */
197
+ export interface MainTaskProgress {
198
+ /** 主任务标识 */
199
+ taskId: string;
200
+ /** 任务标题 */
201
+ title: string;
202
+ /** 优先级 */
203
+ priority: TaskPriority;
204
+ /** 状态 */
205
+ status: TaskStatus;
206
+ /** 总子任务数 */
207
+ total: number;
208
+ /** 已完成数 */
209
+ completed: number;
210
+ /** 进度百分比 (0-100) */
211
+ percent: number;
212
+ }
213
+ /**
214
+ * 项目整体进度
215
+ */
216
+ export interface ProjectProgress {
217
+ /** 项目名称 */
218
+ projectName: string;
219
+ /** 文档片段数 */
220
+ sectionCount: number;
221
+ /** 主任务总数 */
222
+ mainTaskCount: number;
223
+ /** 已完成主任务数 */
224
+ completedMainTasks: number;
225
+ /** 子任务总数 */
226
+ subTaskCount: number;
227
+ /** 已完成子任务数 */
228
+ completedSubTasks: number;
229
+ /** 总体进度百分比 (0-100) */
230
+ overallPercent: number;
231
+ /** 各主任务进度 */
232
+ tasks: MainTaskProgress[];
233
+ }
234
+ /**
235
+ * DevPlanStore 配置
236
+ */
237
+ export interface DevPlanStoreConfig {
238
+ /** 文档片段存储路径 */
239
+ documentPath: string;
240
+ /** 任务存储路径 */
241
+ taskPath: string;
242
+ }
243
+ /**
244
+ * 通用开发计划存储
245
+ *
246
+ * 管理项目的开发计划文档和任务,使用两个 EnhancedDocumentStore 实例:
247
+ * - docStore: 文档片段 (Markdown 内容)
248
+ * - taskStore: 任务 (主任务 + 子任务层级)
249
+ */
250
+ export declare class DevPlanStore {
251
+ private docStore;
252
+ private taskStore;
253
+ private projectName;
254
+ constructor(projectName: string, config: DevPlanStoreConfig);
255
+ /**
256
+ * 保存文档片段
257
+ *
258
+ * 如果同 section(+subSection)已存在,会覆盖旧版本。
259
+ */
260
+ saveSection(input: DevPlanDocInput): string;
261
+ /**
262
+ * 获取文档片段
263
+ */
264
+ getSection(section: DevPlanSection, subSection?: string): DevPlanDoc | null;
265
+ /**
266
+ * 列出项目的所有文档片段
267
+ *
268
+ * 对同一 section(+subSection) 的多个历史版本做去重,仅保留最新版。
269
+ */
270
+ listSections(): DevPlanDoc[];
271
+ /**
272
+ * 更新文档片段内容
273
+ */
274
+ updateSection(section: DevPlanSection, content: string, subSection?: string): string;
275
+ /**
276
+ * 搜索文档片段
277
+ *
278
+ * 先对历史版本去重(同 listSections),再做关键词过滤。
279
+ */
280
+ searchSections(query: string, limit?: number): DevPlanDoc[];
281
+ /**
282
+ * 删除文档片段
283
+ */
284
+ deleteSection(section: DevPlanSection, subSection?: string): boolean;
285
+ /**
286
+ * 创建主任务(开发阶段)
287
+ */
288
+ createMainTask(input: MainTaskInput): MainTask;
289
+ /**
290
+ * 获取主任务
291
+ *
292
+ * 由于 JSONL append-only 存储会保留历史版本,
293
+ * 需要按 created_at 降序取最新版本。
294
+ */
295
+ getMainTask(taskId: string): MainTask | null;
296
+ /**
297
+ * 列出主任务
298
+ *
299
+ * 对同一 taskId 的多个历史版本做去重,仅保留最新版。
300
+ */
301
+ listMainTasks(filter?: {
302
+ status?: TaskStatus;
303
+ priority?: TaskPriority;
304
+ }): MainTask[];
305
+ /**
306
+ * 更新主任务状态
307
+ */
308
+ updateMainTaskStatus(taskId: string, status: TaskStatus): MainTask | null;
309
+ /**
310
+ * 添加子任务
311
+ */
312
+ addSubTask(input: SubTaskInput): SubTask;
313
+ /**
314
+ * 获取子任务
315
+ *
316
+ * 取同一 taskId 的最新版本。
317
+ */
318
+ getSubTask(taskId: string): SubTask | null;
319
+ /**
320
+ * 列出某主任务下的所有子任务
321
+ *
322
+ * 对同一 taskId 的多个历史版本做去重,仅保留最新版。
323
+ */
324
+ listSubTasks(parentTaskId: string, filter?: {
325
+ status?: TaskStatus;
326
+ }): SubTask[];
327
+ /**
328
+ * 更新子任务状态
329
+ */
330
+ updateSubTaskStatus(taskId: string, status: TaskStatus): SubTask | null;
331
+ /**
332
+ * 完成子任务 — 核心自动化方法
333
+ *
334
+ * 自动处理:
335
+ * 1. 更新子任务状态为 completed,写入 completedAt 时间戳
336
+ * 2. 重新计算主任务的 completedSubtasks 计数
337
+ * 3. 如果全部子任务完成,自动标记主任务为 completed
338
+ * 4. 如果主任务完成,更新 milestones 文档
339
+ */
340
+ completeSubTask(taskId: string): CompleteSubTaskResult;
341
+ /**
342
+ * 手动完成主任务(跳过子任务检查)
343
+ */
344
+ completeMainTask(taskId: string): MainTask;
345
+ /**
346
+ * 获取项目整体进度
347
+ */
348
+ getProgress(): ProjectProgress;
349
+ /**
350
+ * 导出完整的 Markdown 文档
351
+ */
352
+ exportToMarkdown(): string;
353
+ /**
354
+ * 导出仅任务进度的简洁 Markdown
355
+ */
356
+ exportTaskSummary(): string;
357
+ /**
358
+ * 将存储的更改刷到磁盘
359
+ */
360
+ sync(): void;
361
+ /**
362
+ * 获取项目名称
363
+ */
364
+ getProjectName(): string;
365
+ /**
366
+ * 确保当前时间戳严格大于参考时间戳。
367
+ *
368
+ * EnhancedDocumentStore 使用 append-only JSONL 存储,保留所有历史版本。
369
+ * deduplicateByTaskId 通过 MemoryNode.created_at 选择最新版本。
370
+ * 如果 delete+put 发生在同一毫秒内,新旧版本的 created_at 相同,
371
+ * 会导致去重时可能选中旧版本(如 pending 状态),造成状态丢失。
372
+ *
373
+ * 本方法在 delete 之后、put 之前调用,自旋等待直到时间戳前进,
374
+ * 从而保证新版本的 created_at 一定大于旧版本。
375
+ */
376
+ private ensureTimestampAfter;
377
+ /**
378
+ * 删除文档并确保后续 put 的时间戳严格大于被删文档。
379
+ * 返回被删文档的 created_at,若文档不存在返回 0。
380
+ */
381
+ private deleteAndEnsureTimestampAdvance;
382
+ /**
383
+ * 对同一 taskId 的多个历史版本做去重,仅保留最新版(created_at 最大)。
384
+ *
385
+ * 由于 EnhancedDocumentStore 使用 append-only JSONL 存储,
386
+ * delete+put 操作会在文件中保留历史版本。重新加载时所有版本都会出现,
387
+ * 因此需要在查询层面进行去重。
388
+ */
389
+ private deduplicateByTaskId;
390
+ private docToDevPlanDoc;
391
+ private docToMainTask;
392
+ private docToSubTask;
393
+ /**
394
+ * 刷新主任务的子任务计数
395
+ */
396
+ private refreshMainTaskCounts;
397
+ /**
398
+ * 当主任务完成时自动更新 milestones 文档
399
+ */
400
+ private autoUpdateMilestones;
401
+ /**
402
+ * 生成文本进度条
403
+ */
404
+ private progressBar;
405
+ }
406
+ /**
407
+ * 为项目创建 DevPlanStore
408
+ *
409
+ * @param projectName - 项目名称
410
+ * @param basePath - 存储基础路径(默认 ~/.aifastdb/dev-plans/)
411
+ */
412
+ export declare function createDevPlan(projectName: string, basePath?: string): DevPlanStore;
413
+ /**
414
+ * 列出所有已有的 DevPlan 项目
415
+ */
416
+ export declare function listDevPlans(basePath?: string): string[];
417
+ /**
418
+ * 所有标准章节类型列表
419
+ */
420
+ export declare const ALL_SECTIONS: DevPlanSection[];
421
+ /**
422
+ * 标准章节说明
423
+ */
424
+ export declare const SECTION_DESCRIPTIONS: Record<DevPlanSection, string>;
425
+ //# sourceMappingURL=dev-plan-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-plan-store.d.ts","sourceRoot":"","sources":["../ts/dev-plan-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAYH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,WAAW,GACX,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa;IACb,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,aAAa;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,cAAc;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB;IAClB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS;IACT,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwCD;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAA6C;IAC7D,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB;IAgB3D;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAqC3C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAyB3E;;;;OAIG;IACH,YAAY,IAAI,UAAU,EAAE;IAoB5B;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM;IAmBT;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IA2B/D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAYpE;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ;IAsD9C;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAc5C;;;;OAIG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACzB,GAAG,QAAQ,EAAE;IAoBd;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;IAyDzE;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IA+DxC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAc1C;;;;OAIG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAC1C,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,GAAG,OAAO,EAAE;IAmBb;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI;IA2DvE;;;;;;;;OAQG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB;IAsCtD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAa1C;;OAEG;IACH,WAAW,IAAI,eAAe;IA4C9B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAkD1B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAuB3B;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,cAAc,IAAI,MAAM;IAQxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAUvC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2D7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,WAAW;CAMpB;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,CAMd;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYxD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,cAAc,EAIxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAY/D,CAAC"}