speccore 8.3.158 → 8.3.160

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.
Files changed (85) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/analyze.d.ts.map +1 -1
  3. package/dist/commands/analyze.js +88 -96
  4. package/dist/commands/analyze.js.map +1 -1
  5. package/dist/commands/ask.d.ts.map +1 -1
  6. package/dist/commands/ask.js +0 -13
  7. package/dist/commands/ask.js.map +1 -1
  8. package/dist/commands/execute.d.ts.map +1 -1
  9. package/dist/commands/execute.js +67 -6
  10. package/dist/commands/execute.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +71 -216
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/iteration/split.d.ts.map +1 -1
  15. package/dist/commands/iteration/split.js +73 -9
  16. package/dist/commands/iteration/split.js.map +1 -1
  17. package/dist/commands/migrate.d.ts.map +1 -1
  18. package/dist/commands/migrate.js +1 -2
  19. package/dist/commands/migrate.js.map +1 -1
  20. package/dist/commands/update.d.ts.map +1 -1
  21. package/dist/commands/update.js +1 -4
  22. package/dist/commands/update.js.map +1 -1
  23. package/dist/core/agent-adapter.d.ts +81 -0
  24. package/dist/core/agent-adapter.d.ts.map +1 -0
  25. package/dist/core/agent-adapter.js +425 -0
  26. package/dist/core/agent-adapter.js.map +1 -0
  27. package/dist/core/agents/defaults/_INDEX.md +15 -15
  28. package/dist/core/agents/defaults/code-reviewer.md +9 -0
  29. package/dist/core/agents/defaults/compiler.md +12 -3
  30. package/dist/core/agents/defaults/dependency-analyst.md +7 -0
  31. package/dist/core/agents/defaults/doc-sync-agent.md +7 -0
  32. package/dist/core/agents/defaults/impact-analyst.md +7 -0
  33. package/dist/core/agents/defaults/interaction-designer.md +17 -0
  34. package/dist/core/agents/defaults/performance-expert.md +9 -0
  35. package/dist/core/agents/defaults/regression-tester.md +7 -0
  36. package/dist/core/agents/defaults/security-reviewer.md +9 -0
  37. package/dist/core/agents/defaults/test-engineer.md +10 -0
  38. package/dist/core/agents/defaults/test-reviewer.md +10 -0
  39. package/dist/core/lock-manager.d.ts.map +1 -1
  40. package/dist/core/lock-manager.js +2 -0
  41. package/dist/core/lock-manager.js.map +1 -1
  42. package/dist/core/pipeline-engine.d.ts +49 -8
  43. package/dist/core/pipeline-engine.d.ts.map +1 -1
  44. package/dist/core/pipeline-engine.js +221 -34
  45. package/dist/core/pipeline-engine.js.map +1 -1
  46. package/dist/core/prompt-builder.d.ts +4 -0
  47. package/dist/core/prompt-builder.d.ts.map +1 -1
  48. package/dist/core/prompt-builder.js +83 -10
  49. package/dist/core/prompt-builder.js.map +1 -1
  50. package/dist/core/rules/defaults/ANALYSIS_QUALITY.md +73 -0
  51. package/dist/core/rules/defaults/EXECUTION.md +20 -0
  52. package/dist/core/rules/defaults/ITERATION_QUALITY.md +49 -0
  53. package/dist/core/rules/defaults/TASK_SPLIT.md +16 -0
  54. package/dist/core/spec-paths.d.ts.map +1 -1
  55. package/dist/core/spec-paths.js +2 -1
  56. package/dist/core/spec-paths.js.map +1 -1
  57. package/package.json +4 -6
  58. package/templates/api-design-example.md +0 -338
  59. package/templates/ci/github-actions.yml +0 -44
  60. package/templates/dashboard.html +0 -425
  61. package/templates/database-example.md +0 -223
  62. package/templates/deploy-docker/README.md +0 -284
  63. package/templates/deploy-docker/deploy-remote.sh +0 -79
  64. package/templates/deploy-docker/docker-compose.yml +0 -113
  65. package/templates/deploy-docker/frontend.Dockerfile +0 -43
  66. package/templates/deploy-docker/nginx.conf +0 -30
  67. package/templates/deploy-examples.yaml +0 -436
  68. package/templates/deploy-java/Dockerfile +0 -50
  69. package/templates/deploy-java/README.md +0 -212
  70. package/templates/deploy-java/deploy.sh +0 -120
  71. package/templates/deploy-java/spring-boot.service +0 -35
  72. package/templates/html/speccore-ask-explain.html +0 -10
  73. package/templates/html/speccore-ask-guide.html +0 -10
  74. package/templates/html/speccore-ask-match.html +0 -10
  75. package/templates/html/speccore-ask-pipeline.html +0 -1
  76. package/templates/html/speccore-ask-result.html +0 -10
  77. package/templates/html/speccore-demo.html +0 -449
  78. package/templates/html/speccore-dev.html +0 -202
  79. package/templates/html/speccore-help.html +0 -1
  80. package/templates/html/speccore-knowledge-graph.html +0 -656
  81. package/templates/html/speccore-retro-T-001.html +0 -1
  82. package/templates/html/speccore-setup-guide.html +0 -289
  83. package/templates/html/speccore-welcome.html +0 -1
  84. package/templates/security-example.md +0 -226
  85. package/templates/verify-spec-example.yaml +0 -982
@@ -10,6 +10,12 @@ activations:
10
10
 
11
11
  # 角色:性能专家 (Performance Expert)
12
12
 
13
+ ## 执行前准备
14
+
15
+ 1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
16
+ 2. **识别技术栈性能特征**:不同技术栈的瓶颈点不同(如 React 的重渲染、Java 的 GC、数据库的 N+1 等)。
17
+ 3. **叠加检查项**:将 RULES 中的技术栈专属性能要求合并到下方检查清单。
18
+
13
19
  ## 职责
14
20
 
15
21
  - 检查代码性能瓶颈
@@ -30,6 +36,9 @@ activations:
30
36
  - [ ] 是否避免大对象内联
31
37
  - [ ] 是否使用虚拟滚动(长列表)
32
38
 
39
+ ### 技术栈专属检查(根据 RULES/ 叠加)
40
+ - [ ] 在此处补充从 RULES/ 中读取的匹配技术栈的性能检查项(如框架特有的优化策略、缓存机制等)
41
+
33
42
  ## 输出
34
43
 
35
44
  | 位置 | 问题 | 影响 | 建议优化 |
@@ -7,6 +7,12 @@ activations:
7
7
 
8
8
  # 角色:回归测试专家 (Regression Tester)
9
9
 
10
+ ## 执行前准备
11
+
12
+ 1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
13
+ 2. **确定测试能力边界**:不同技术栈的自动化测试能力和工具链不同(如 E2E 测试框架、性能测试工具等)。
14
+ 3. **叠加测试策略**:将 RULES 中的技术栈专属测试要求合并到下方回归测试策略。
15
+
10
16
  ## 职责
11
17
 
12
18
  - 评估变更对现有功能的影响
@@ -19,6 +25,7 @@ activations:
19
25
  2. **间接回归**:调用该模块的其他功能验证
20
26
  3. **集成回归**:端到端流程验证
21
27
  4. **数据回归**:历史数据兼容性验证
28
+ 5. **技术栈特有回归**:框架升级、依赖变更、构建流程等是否需要专项验证
22
29
 
23
30
  ## 输出格式
24
31
 
@@ -13,6 +13,12 @@ activations:
13
13
 
14
14
  # 角色:安全审查员 (Security Reviewer)
15
15
 
16
+ ## 执行前准备
17
+
18
+ 1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
19
+ 2. **识别技术栈攻击面**:不同技术栈的安全风险不同(如 React 的 XSS、Java 的反序列化、移动端的本地存储安全等)。
20
+ 3. **叠加检查项**:将 RULES 中的技术栈专属安全要求合并到下方检查清单。
21
+
16
22
  ## 职责
17
23
 
18
24
  - 识别需求/代码中的安全风险
@@ -37,6 +43,9 @@ activations:
37
43
  - [ ] 日志中是否泄露敏感信息
38
44
  - [ ] 接口响应是否包含不必要的敏感字段
39
45
 
46
+ ### 技术栈专属检查(根据 RULES/ 叠加)
47
+ - [ ] 在此处补充从 RULES/ 中读取的匹配技术栈的安全检查项(如框架特有的安全配置、依赖漏洞等)
48
+
40
49
  ## 输出
41
50
 
42
51
  对每个发现的安全问题,输出:
@@ -13,13 +13,23 @@ activations:
13
13
  - 检查测试覆盖率
14
14
  - 确保新增代码有配套测试
15
15
 
16
+ ## 执行前准备
17
+
18
+ 1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
19
+ 2. **确定测试框架**:根据技术栈确定测试命令和工具(如 Jest、JUnit、pytest、XCTest 等)。
20
+ 3. **叠加检查项**:将 RULES 中的技术栈专属测试要求合并到下方检查清单。
21
+
16
22
  ## 检查项
17
23
 
24
+ ### 通用检查
18
25
  1. **测试执行**:所有测试通过
19
26
  2. **覆盖率**:行覆盖 ≥ 80%,分支覆盖 ≥ 70%
20
27
  3. **新代码覆盖**:新增代码必须有测试覆盖
21
28
  4. **测试质量**:测试用例有效、独立、可维护
22
29
 
30
+ ### 技术栈专属检查(根据 RULES/ 叠加)
31
+ - 在此处补充从 RULES/ 中读取的匹配规则中的测试要求(如 Mock 策略、测试结构、并发测试等)
32
+
23
33
  ## 输出
24
34
 
25
35
  | 模块 | 测试数 | 通过 | 失败 | 覆盖率 |
@@ -13,6 +13,12 @@ activations:
13
13
  - 检查测试覆盖率
14
14
  - 识别未覆盖的边界条件
15
15
 
16
+ ## 执行前准备
17
+
18
+ 1. **读取技术栈规则**:读取 `.speccore/RULES/` 中 `appliesTo` 匹配当前项目技术栈的规则文件。
19
+ 2. **确定测试规范**:根据技术栈确定测试框架的审查重点(如 Jest 的 Mock 策略、JUnit 的断言风格等)。
20
+ 3. **叠加检查项**:将 RULES 中的技术栈专属测试要求合并到下方审查清单。
21
+
16
22
  ## 审查清单
17
23
 
18
24
  ### 测试完整性
@@ -32,6 +38,10 @@ activations:
32
38
  - [ ] 分支覆盖率 ≥ 70%
33
39
  - [ ] 关键路径是否覆盖
34
40
 
41
+ ### 技术栈专属检查(根据 RULES/ 叠加)
42
+ - [ ] 测试框架专属最佳实践(如 React Testing Library 的查询方式、Mockito 的验证模式等)
43
+ - [ ] 技术栈特有的测试边界(如前端组件测试 vs 后端集成测试的差异)
44
+
35
45
  ## 输出格式
36
46
 
37
47
  ```markdown
@@ -1 +1 @@
1
- {"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,UAAU,CAAC,CAgDrB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASvF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAchE"}
1
+ {"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,UAAU,CAAC,CAkDrB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASvF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAchE"}
@@ -96,6 +96,8 @@ async function acquireLock(cwd, lockName, options = {}) {
96
96
  iteration: options.iteration,
97
97
  pid: process.pid,
98
98
  };
99
+ // 确保锁目录存在(execute 路径未经过 init/update 的 ensureDir,否则 writeFile 会 ENOENT)
100
+ await (0, fs_extra_1.ensureDir)((0, path_1.join)(cwd, LOCKS_DIR));
99
101
  await (0, fs_extra_1.writeFile)(lockPath, JSON.stringify(info, null, 2));
100
102
  return { success: true, message: '锁获取成功' };
101
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lock-manager.js","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock-manager.js","sourceRoot":"","sources":["../../src/core/lock-manager.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,32 @@
10
10
  * init → phase1-prompt → (AI --apply) → phase1-done
11
11
  * → 检测多端 → phase2-prompt → (AI --apply) → done
12
12
  *
13
- * AI 侧流程:
13
+ * AI 侧流程 (v8.3.160+ 步骤隔离模式):
14
14
  * 1. 收到 Phase 1 prompt → 生成全局文档 → --apply
15
- * 2. CLI 写入文件 → 自动推进 → 输出 [SPECCORE_PIPELINE_NEXT] + Phase 2 prompt
16
- * 3. AI 看到标记 → 自动执行下一个命令 → 生成各端文档 → --apply
15
+ * 2. CLI 写入文件 → 自动推进 → 输出 [SPECCORE_STEP_DONE] + [SPECCORE_NEXT_STEP] + Phase 2 prompt
16
+ * 3. AI 在新会话中执行提示的命令 → 生成各端文档 → --apply
17
17
  * 4. CLI 写入文件 → 标记完成 → Pipeline 结束
18
18
  *
19
19
  * @since v6.68.0
20
20
  */
21
+ export interface ContextSnapshot {
22
+ /** 核心约束摘要(从 CONSTITUTION.md 提取) */
23
+ keyConstraints: string[];
24
+ /** 已完成步骤的产出文件路径 */
25
+ completedOutputs: string[];
26
+ /** 技术栈摘要 */
27
+ techStackSummary?: string;
28
+ /** 当前任务/迭代 */
29
+ currentTask?: string;
30
+ /** 当前迭代 */
31
+ iteration: string;
32
+ /** 已完成的步骤 ID 列表 */
33
+ completedSteps: string[];
34
+ /** 下一步骤 ID */
35
+ nextStep?: string;
36
+ /** 生成时间 */
37
+ generatedAt: string;
38
+ }
21
39
  export interface PipelineState {
22
40
  /** 当前步骤 */
23
41
  currentStep: string;
@@ -31,11 +49,28 @@ export interface PipelineState {
31
49
  name: string;
32
50
  /** 端列表(analyze 专用) */
33
51
  platforms?: string[];
52
+ /** v8.3.160+: 上下文快照(步骤隔离模式) */
53
+ contextSnapshot?: ContextSnapshot;
34
54
  /** 创建时间 */
35
55
  createdAt: string;
36
56
  /** 最后更新时间 */
37
57
  updatedAt: string;
38
58
  }
59
+ export interface StepResult {
60
+ nextStepId: string | null;
61
+ nextStepName: string | null;
62
+ isComplete: boolean;
63
+ /** v8.3.160+: 是否需要新会话(步骤隔离模式) */
64
+ requiresNewSession: boolean;
65
+ /** v8.3.160+: 上下文快照(供新会话恢复) */
66
+ contextSnapshot?: ContextSnapshot;
67
+ /** v8.3.160+: 推荐的 Subagent */
68
+ subagent?: string;
69
+ /** v8.3.160+: 上下文 Token 预算 */
70
+ contextBudget?: number;
71
+ /** v8.3.160+: 上下文加载类型 */
72
+ contextType?: 'full' | 'incremental' | 'platform-only' | 'contract-only';
73
+ }
39
74
  export interface PipelineStepDef {
40
75
  /** 步骤 ID */
41
76
  id: string;
@@ -45,6 +80,12 @@ export interface PipelineStepDef {
45
80
  next: string | null;
46
81
  /** 条件判断:返回 true 才执行此步骤,否则跳到 next */
47
82
  condition?: () => Promise<boolean> | boolean;
83
+ /** v8.3.160+: 该步骤使用的 Subagent 名称 */
84
+ subagent?: string;
85
+ /** v8.3.160+: 该步骤的上下文 Token 预算(默认 12000) */
86
+ contextBudget?: number;
87
+ /** v8.3.160+: 该步骤需要加载的上下文类型 */
88
+ contextType?: 'full' | 'incremental' | 'platform-only' | 'contract-only';
48
89
  }
49
90
  export interface PipelineEngineOptions {
50
91
  /** 迭代名称 */
@@ -64,11 +105,11 @@ export declare class PipelineEngine {
64
105
  constructor(options: PipelineEngineOptions);
65
106
  defineSteps(stepDefs: PipelineStepDef[]): void;
66
107
  init(firstStepId: string, extra?: Record<string, any>): Promise<void>;
67
- advance(): Promise<{
68
- nextStepId: string | null;
69
- nextStepName: string | null;
70
- isComplete: boolean;
71
- }>;
108
+ advance(): Promise<StepResult>;
109
+ private buildSnapshot;
110
+ private saveSnapshot;
111
+ static loadSnapshot(cwd: string, iteration: string): Promise<ContextSnapshot | null>;
112
+ updateSnapshotConstraints(constraints: string[]): Promise<void>;
72
113
  getCurrentStep(): string | null;
73
114
  getCurrentStepDef(): PipelineStepDef | null;
74
115
  isActive(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY;IACZ,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;CAC1E;AAGD,MAAM,WAAW,eAAe;IAC9B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7C,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;CAC1E;AAGD,MAAM,WAAW,qBAAqB;IACpC,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAS;gBAElB,OAAO,EAAE,qBAAqB;IAQ1C,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;IAQxC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;YAoEtB,aAAa;YAsBb,YAAY;WAOb,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYpF,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,cAAc,IAAI,MAAM,GAAG,IAAI;IAK/B,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAMrC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAO5B,QAAQ,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;WAKlC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAanE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAYvF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAad,SAAS;YAQT,SAAS;CAWxB;AAMD,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,oBAAoB;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC;IACT,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC,CAkKD;AAGD,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClF,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC,CA2ED;AAGD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnG,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC,CAsED;AAGD,wBAAsB,2BAA2B,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC,CA4DD"}