speccore 7.5.0 → 8.0.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.
@@ -1,7 +1,8 @@
1
1
  /** 迭代综合文档子目录名(v6.78.0+ 从 'global' 改为 'overview') */
2
2
  export declare const GLOBAL_SPECS_DIR = "overview";
3
- /** 迭代综合文档文件名列表(仅纯综合文档,不含可分端的文档)
4
- * v6.48.0+:TECH/RISK/REVIEW/MONITOR 支持按端分目录,不再强制写入 overview/
3
+ /** 迭代综合文档文件名列表(用于散落文件归位、路径解析等)
4
+ * v7.5.1+:TECH/RISK/REVIEW/MONITOR 重新纳入,确保 sanitizeSpecDirectories 能将根目录散落文件归位到 overview/
5
+ * 这些文件在 Phase 1 写入 overview/,Phase 2 可生成各端专属版本写入 {端}/
5
6
  */
6
7
  export declare const GLOBAL_SPEC_FILES: string[];
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"spec-paths.d.ts","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"AAUA,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAG7B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASrG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAyED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA+E3D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyDvE;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiF1E;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxF"}
1
+ {"version":3,"file":"spec-paths.d.ts","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"AAUA,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAI7B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASrG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAyED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA+E3D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyDvE;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiF1E;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxF"}
@@ -18,11 +18,13 @@ const path_1 = require("path");
18
18
  const fs_extra_1 = require("fs-extra");
19
19
  /** 迭代综合文档子目录名(v6.78.0+ 从 'global' 改为 'overview') */
20
20
  exports.GLOBAL_SPECS_DIR = 'overview';
21
- /** 迭代综合文档文件名列表(仅纯综合文档,不含可分端的文档)
22
- * v6.48.0+:TECH/RISK/REVIEW/MONITOR 支持按端分目录,不再强制写入 overview/
21
+ /** 迭代综合文档文件名列表(用于散落文件归位、路径解析等)
22
+ * v7.5.1+:TECH/RISK/REVIEW/MONITOR 重新纳入,确保 sanitizeSpecDirectories 能将根目录散落文件归位到 overview/
23
+ * 这些文件在 Phase 1 写入 overview/,Phase 2 可生成各端专属版本写入 {端}/
23
24
  */
24
25
  exports.GLOBAL_SPEC_FILES = [
25
- 'REQUIREMENT.md', 'ANALYSIS.md', 'DEPS.md',
26
+ 'REQUIREMENT.md', 'ANALYSIS.md', 'TECH.md', 'RISK.md',
27
+ 'DEPS.md', 'REVIEW.md', 'MONITOR.md',
26
28
  'FUNCTION_MAP.md', 'INTERACTION_MAP.md', 'API_CONTRACT.yaml',
27
29
  ];
28
30
  /**
@@ -183,31 +185,32 @@ async function parsePlatformList() {
183
185
  }
184
186
  if (platforms.size > 0)
185
187
  return [...platforms];
186
- // 2. 回退:解析「对应需求端」/「对应端」列(旧版格式)
188
+ // 2. 回退:解析「工程标识」列(第一列)—— v7.5.1+ 修复
189
+ // 旧版读「对应需求端」列返回中文值(如"后台管理端"),但目录名用的是工程标识(如 admin-web)
190
+ // 现在改为读「工程标识」列,确保返回值与目录名一致
187
191
  let headerIdx = -1;
188
192
  for (let i = 0; i < lines.length; i++) {
189
- if (lines[i].includes('对应需求端') || lines[i].includes('对应端')) {
193
+ if (lines[i].includes('工程标识') || lines[i].includes('工程ID')) {
190
194
  headerIdx = i;
191
195
  break;
192
196
  }
193
197
  }
194
198
  if (headerIdx >= 0) {
195
199
  const headers = lines[headerIdx].split('|').map(h => h.trim()).filter(Boolean);
196
- const colIdx = headers.findIndex(h => h.includes('对应需求端') || h.includes('对应端'));
197
- if (colIdx >= 0) {
198
- for (let i = headerIdx + 1; i < lines.length; i++) {
199
- const line = lines[i].trim();
200
- if (!line.startsWith('|') || line.match(/^\|\s*[-:]/))
201
- continue;
202
- const cells = line.split('|').map(c => c.trim()).filter(Boolean);
203
- if (cells[colIdx]) {
204
- cells[colIdx].split(',').forEach((p) => {
205
- const trimmed = p.trim();
206
- // v7.4.3+: 合法性校验
207
- if (trimmed && !trimmed.startsWith('>') && isValidPlatformName(trimmed, validIdentifiers)) {
208
- platforms.add(trimmed);
209
- }
210
- });
200
+ // 优先找「工程标识」列,回退到第一列
201
+ let colIdx = headers.findIndex(h => h.includes('工程标识') || h.includes('工程ID'));
202
+ if (colIdx < 0)
203
+ colIdx = 0;
204
+ for (let i = headerIdx + 1; i < lines.length; i++) {
205
+ const line = lines[i].trim();
206
+ if (!line.startsWith('|') || line.match(/^\|\s*[-:]/))
207
+ continue;
208
+ const cells = line.split('|').map(c => c.trim()).filter(Boolean);
209
+ if (cells[colIdx]) {
210
+ const trimmed = cells[colIdx].trim();
211
+ // v7.4.3+: 合法性校验
212
+ if (trimmed && !trimmed.startsWith('>') && isValidPlatformName(trimmed, validIdentifiers)) {
213
+ platforms.add(trimmed);
211
214
  }
212
215
  }
213
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spec-paths.js","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-paths.js","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /** 骨架标记 — 用于检测文件是否仍为占位状态 */
2
+ export declare const SKELETON_MARKER = "<!-- SPEC-SKELETON -->";
3
+ export interface SpecFileEntry {
4
+ /** 相对 020-specs/ 的路径,如 "overview/ANALYSIS.md" */
5
+ relPath: string;
6
+ /** 分类:overview(全局)或 platform(端专属) */
7
+ category: 'overview' | 'platform';
8
+ /** 端名(仅 platform 类) */
9
+ platform?: string;
10
+ /** 文件名 */
11
+ docName: string;
12
+ /** 占位内容(含写作指引) */
13
+ placeholder: string;
14
+ }
15
+ export interface SkeletonResult {
16
+ /** 新创建的骨架文件 */
17
+ created: string[];
18
+ /** 已存在(保留原内容) */
19
+ skipped: string[];
20
+ }
21
+ export interface ProgressResult {
22
+ /** 已填充(非骨架) */
23
+ filled: string[];
24
+ /** 仍为骨架 */
25
+ unfilled: string[];
26
+ /** 下一个需要生成的 entry */
27
+ nextUnfilled: SpecFileEntry | null;
28
+ /** 已填充数 */
29
+ filledCount: number;
30
+ /** 总数 */
31
+ totalCount: number;
32
+ }
33
+ /**
34
+ * 计算 analyze 命令的文件清单
35
+ * @param platforms 端列表
36
+ * @param phase '1' = Phase 1 (overview), '2' = Phase 2 (各端), undefined = 全部
37
+ * @param iteration 迭代名(用于占位内容)
38
+ */
39
+ export declare function computeAnalyzeManifest(platforms: string[], phase?: '1' | '2', iteration?: string): SpecFileEntry[];
40
+ /**
41
+ * 计算 split 命令的任务文件清单
42
+ * @param taskName 任务名(如 Task-001-xxx)
43
+ * @param platforms 涉及的端列表
44
+ */
45
+ export declare function computeTaskManifest(taskName: string, platforms: string[]): SpecFileEntry[];
46
+ /**
47
+ * 预创建文件骨架
48
+ * - 文件不存在 → 创建目录 + 写入占位内容
49
+ * - 文件已存在且非骨架 → 跳过(保留已有内容,不覆盖)
50
+ * - 文件已存在且仍为骨架 → 跳过(等 AI 覆盖)
51
+ */
52
+ export declare function generateSkeleton(specDir: string, entries: SpecFileEntry[]): Promise<SkeletonResult>;
53
+ /**
54
+ * 检测哪些骨架文件已被 AI 填充
55
+ * - 存在且不含 SKELETON_MARKER → filled
56
+ * - 不存在或仍含 SKELETON_MARKER → unfilled
57
+ */
58
+ export declare function validateFilled(specDir: string, entries: SpecFileEntry[]): Promise<{
59
+ filled: string[];
60
+ unfilled: string[];
61
+ }>;
62
+ /**
63
+ * 检测骨架填充进度,返回下一个需要生成的文件
64
+ * 用于逐文档链式推进模式
65
+ */
66
+ export declare function detectSkeletonProgress(specDir: string, entries: SpecFileEntry[]): Promise<ProgressResult>;
67
+ /**
68
+ * 生成注入 prompt 的骨架文件列表
69
+ * 用于告诉 AI 哪些文件需要覆盖
70
+ */
71
+ export declare function buildSkeletonFileList(entries: SpecFileEntry[], specDir: string): string;
72
+ //# sourceMappingURL=spec-skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-skeleton.d.ts","sourceRoot":"","sources":["../../src/core/spec-skeleton.ts"],"names":[],"mappings":"AAkBA,4BAA4B;AAC5B,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAMxD,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qBAAqB;IACrB,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS;IACT,UAAU,EAAE,MAAM,CAAC;CACpB;AA6OD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,EACjB,SAAS,GAAE,MAAW,GACrB,aAAa,EAAE,CA+BjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,GAClB,aAAa,EAAE,CAgBjB;AAMD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAMD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EAAE,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqBnD;AAMD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,EAAE,MAAM,GACd,MAAM,CAoCR"}
@@ -0,0 +1,427 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SKELETON_MARKER = void 0;
4
+ exports.computeAnalyzeManifest = computeAnalyzeManifest;
5
+ exports.computeTaskManifest = computeTaskManifest;
6
+ exports.generateSkeleton = generateSkeleton;
7
+ exports.validateFilled = validateFilled;
8
+ exports.detectSkeletonProgress = detectSkeletonProgress;
9
+ exports.buildSkeletonFileList = buildSkeletonFileList;
10
+ /**
11
+ * spec-skeleton — 骨架优先架构核心模块 (v8.0.0+)
12
+ *
13
+ * 设计原则:CLI 预创建所有文件骨架(含占位内容),AI 只覆盖内容,不决定路径。
14
+ * 从根本上消除"AI 写错文件位置"的问题。
15
+ *
16
+ * 对比旧架构:
17
+ * 旧: CLI → prompt → AI 决定内容+路径 → sanitize 事后清理(永远不完整)
18
+ * 新: CLI → 预创建骨架 → AI 覆盖内容 → 文件已在正确位置(不需要清理)
19
+ */
20
+ const path_1 = require("path");
21
+ const fs_extra_1 = require("fs-extra");
22
+ const spec_paths_1 = require("./spec-paths");
23
+ // ================================================================
24
+ // 常量
25
+ // ================================================================
26
+ /** 骨架标记 — 用于检测文件是否仍为占位状态 */
27
+ exports.SKELETON_MARKER = '<!-- SPEC-SKELETON -->';
28
+ // ================================================================
29
+ // Phase 1 文档清单(overview/ 全局文档)
30
+ // ================================================================
31
+ const PHASE1_DOCS = [
32
+ {
33
+ name: 'REQUIREMENT.md',
34
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
35
+ # 需求规格
36
+
37
+ > 迭代: ${iter} | 生成: 待填充
38
+
39
+ ## 写作要求
40
+ 基于 010-requirements/ 下的需求文档,整理本迭代的功能模块清单。
41
+ - 每个功能模块必须标注「涉及端」
42
+ - 列出验收标准
43
+ - 标注优先级(P0/P1/P2)
44
+ `,
45
+ },
46
+ {
47
+ name: 'ANALYSIS.md',
48
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
49
+ # 需求分析
50
+
51
+ > 迭代: ${iter} | 生成: 待填充
52
+
53
+ ## 写作要求
54
+ 基于需求文档和源码审计,分析本迭代的功能点清单。
55
+ - 按优先级分节(P0 必修 / P1 应修 / P2 建议)
56
+ - 每个功能点标注编号(F-01, F-02...)和涉及端
57
+ - 列出接口变更和数据库变更
58
+ `,
59
+ },
60
+ {
61
+ name: 'TECH.md',
62
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
63
+ # 技术架构(跨端全局)
64
+
65
+ > 迭代: ${iter} | 生成: 待填充
66
+
67
+ ## 写作要求
68
+ 基于源码和依赖分析,描述本迭代的整体技术架构。
69
+ - 整体架构图
70
+ - 跨端交互(调用方 → 被调方、协议)
71
+ - 中间件选型
72
+ - 数据库设计(表/字段/索引)
73
+ `,
74
+ },
75
+ {
76
+ name: 'DEPS.md',
77
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
78
+ # 依赖清单
79
+
80
+ > 迭代: ${iter} | 生成: 待填充
81
+
82
+ ## 写作要求
83
+ 列出本迭代涉及的内部服务依赖和外部第三方依赖。
84
+ `,
85
+ },
86
+ {
87
+ name: 'RISK.md',
88
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
89
+ # 风险评估
90
+
91
+ > 迭代: ${iter} | 生成: 待填充
92
+
93
+ ## 写作要求
94
+ | 风险 | 可能性 | 影响 | 缓解措施 |
95
+ |:---|:---|:---|:---|
96
+ | | | | |
97
+
98
+ ## 回滚方案
99
+ 1. 触发条件: _待定_
100
+ 2. 回滚步骤: _待定_
101
+ `,
102
+ },
103
+ {
104
+ name: 'REVIEW.md',
105
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
106
+ # Code Review 清单
107
+
108
+ > 迭代: ${iter} | 生成: 待填充
109
+
110
+ ## 检查项
111
+ - [ ] 参数校验完整性
112
+ - [ ] 幂等性处理
113
+ - [ ] 索引覆盖
114
+ - [ ] 迁移脚本可回滚
115
+ - [ ] 鉴权配置
116
+ - [ ] 日志规范
117
+ `,
118
+ },
119
+ {
120
+ name: 'MONITOR.md',
121
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
122
+ # 监控指标
123
+
124
+ > 迭代: ${iter} | 生成: 待填充
125
+
126
+ ## 业务指标
127
+ | 指标 | 阈值 | 级别 |
128
+ |:---|:---|:---|
129
+ | 成功率 | <99.9% | P1 |
130
+ | P99延迟 | >1000ms | P2 |
131
+
132
+ ## 告警规则
133
+ | 规则 | 条件 | 通知 |
134
+ |:---|:---|:---|
135
+ | | | |
136
+ `,
137
+ },
138
+ {
139
+ name: 'FUNCTION_MAP.md',
140
+ buildPlaceholder: (iter) => `${exports.SKELETON_MARKER}
141
+ # 功能模块清单
142
+
143
+ > 迭代: ${iter} | 生成: 待填充
144
+
145
+ ## 写作要求
146
+ 列出本迭代所有功能模块及其涉及端,供 split 命令读取。
147
+
148
+ | 功能模块 | 涉及端 | 优先级 | 来源 |
149
+ |:---|:---|:---|:---|
150
+ | | | | |
151
+ `,
152
+ },
153
+ ];
154
+ // ================================================================
155
+ // Phase 2 文档清单(各端专属文档)
156
+ // ================================================================
157
+ const PHASE2_DOCS = [
158
+ {
159
+ name: 'TECH.md',
160
+ buildPlaceholder: (iter, platform) => `${exports.SKELETON_MARKER}
161
+ # ${platform} 技术架构
162
+
163
+ > 迭代: ${iter} | 端: ${platform} | 生成: 待填充
164
+
165
+ ## 写作要求
166
+ 基于 overview/TECH.md 的整体架构,细化本端的技术方案:
167
+ - 接口定义(路径/参数/响应)
168
+ - 数据模型(Entity/DTO/VO)
169
+ - 核心业务逻辑
170
+ - 与 overview/TECH.md 保持一致
171
+ `,
172
+ },
173
+ {
174
+ name: 'TEST.md',
175
+ buildPlaceholder: (iter, platform) => `${exports.SKELETON_MARKER}
176
+ # ${platform} 测试计划
177
+
178
+ > 迭代: ${iter} | 端: ${platform} | 生成: 待填充
179
+
180
+ ## 写作要求
181
+ - 单元测试覆盖
182
+ - API 端到端测试
183
+ - 边界测试(异常参数、超时、并发)
184
+ - 性能测试方案
185
+ `,
186
+ },
187
+ {
188
+ name: 'UI_SPEC.md',
189
+ buildPlaceholder: (iter, platform) => `${exports.SKELETON_MARKER}
190
+ # ${platform} UI 规格
191
+
192
+ > 迭代: ${iter} | 端: ${platform} | 生成: 待填充
193
+
194
+ ## 写作要求
195
+ - 页面清单与路由
196
+ - 组件拆分
197
+ - 交互流程
198
+ - 状态管理
199
+ `,
200
+ },
201
+ ];
202
+ // ================================================================
203
+ // 任务级文档清单(split 用)
204
+ // ================================================================
205
+ const TASK_DOCS = [
206
+ {
207
+ name: 'REQ.md',
208
+ buildPlaceholder: (taskName, platform) => `${exports.SKELETON_MARKER}
209
+ # 本任务需求规格
210
+
211
+ > ${taskName} | 端: ${platform} | 生成: 待填充
212
+
213
+ ## 写作要求
214
+ 根据 split 产出的需求切片,结合全局上下文,重新组织本任务的需求规格:
215
+ - 明确本任务的验收标准(可测试的、具体的)
216
+ - 细化业务规则和边界条件
217
+ - 列出异常场景和处理方式
218
+ - 标注与其他 Task 的依赖关系
219
+ `,
220
+ },
221
+ {
222
+ name: 'TECH.md',
223
+ buildPlaceholder: (taskName, platform) => `${exports.SKELETON_MARKER}
224
+ # 本任务技术方案
225
+
226
+ > ${taskName} | 端: ${platform} | 生成: 待填充
227
+
228
+ ## 写作要求
229
+ 基于 overview/TECH.md 的整体架构,细化到函数/接口级别:
230
+ - 具体的接口定义(路径/参数/响应)
231
+ - 数据模型设计(Entity/DTO/VO 字段映射)
232
+ - 核心业务逻辑的伪代码或流程描述
233
+ - 前端组件拆分和状态设计
234
+ - 必须与 overview/TECH.md 的整体架构保持一致
235
+ `,
236
+ },
237
+ {
238
+ name: 'TASK.md',
239
+ buildPlaceholder: (taskName, platform) => `${exports.SKELETON_MARKER}
240
+ # 实施计划
241
+
242
+ > ${taskName} | 端: ${platform} | 生成: 待填充
243
+
244
+ ## 写作要求
245
+ 根据本任务的需求和技术方案,制定具体实施步骤:
246
+ - 按开发顺序列出具体步骤
247
+ - 每个步骤有明确的完成标准
248
+ - 标注步骤间的依赖关系
249
+ - 估算每步的工作量
250
+ `,
251
+ },
252
+ ];
253
+ // ================================================================
254
+ // Manifest 计算函数
255
+ // ================================================================
256
+ /**
257
+ * 计算 analyze 命令的文件清单
258
+ * @param platforms 端列表
259
+ * @param phase '1' = Phase 1 (overview), '2' = Phase 2 (各端), undefined = 全部
260
+ * @param iteration 迭代名(用于占位内容)
261
+ */
262
+ function computeAnalyzeManifest(platforms, phase, iteration = '') {
263
+ const entries = [];
264
+ // Phase 1: overview/ 全局文档
265
+ if (!phase || phase === '1') {
266
+ for (const doc of PHASE1_DOCS) {
267
+ entries.push({
268
+ relPath: (0, path_1.join)(spec_paths_1.GLOBAL_SPECS_DIR, doc.name),
269
+ category: 'overview',
270
+ docName: doc.name,
271
+ placeholder: doc.buildPlaceholder(iteration),
272
+ });
273
+ }
274
+ }
275
+ // Phase 2: 各端专属文档
276
+ if (!phase || phase === '2') {
277
+ for (const platform of platforms) {
278
+ for (const doc of PHASE2_DOCS) {
279
+ entries.push({
280
+ relPath: (0, path_1.join)(platform, doc.name),
281
+ category: 'platform',
282
+ platform,
283
+ docName: doc.name,
284
+ placeholder: doc.buildPlaceholder(iteration, platform),
285
+ });
286
+ }
287
+ }
288
+ }
289
+ return entries;
290
+ }
291
+ /**
292
+ * 计算 split 命令的任务文件清单
293
+ * @param taskName 任务名(如 Task-001-xxx)
294
+ * @param platforms 涉及的端列表
295
+ */
296
+ function computeTaskManifest(taskName, platforms) {
297
+ const entries = [];
298
+ for (const platform of platforms) {
299
+ for (const doc of TASK_DOCS) {
300
+ entries.push({
301
+ relPath: (0, path_1.join)(platform, doc.name),
302
+ category: 'platform',
303
+ platform,
304
+ docName: doc.name,
305
+ placeholder: doc.buildPlaceholder(taskName, platform),
306
+ });
307
+ }
308
+ }
309
+ return entries;
310
+ }
311
+ // ================================================================
312
+ // 骨架生成器
313
+ // ================================================================
314
+ /**
315
+ * 预创建文件骨架
316
+ * - 文件不存在 → 创建目录 + 写入占位内容
317
+ * - 文件已存在且非骨架 → 跳过(保留已有内容,不覆盖)
318
+ * - 文件已存在且仍为骨架 → 跳过(等 AI 覆盖)
319
+ */
320
+ async function generateSkeleton(specDir, entries) {
321
+ const result = { created: [], skipped: [] };
322
+ for (const entry of entries) {
323
+ const fullPath = (0, path_1.join)(specDir, entry.relPath);
324
+ if (await (0, fs_extra_1.pathExists)(fullPath)) {
325
+ // 文件已存在 → 跳过(无论是否为骨架,都不覆盖)
326
+ result.skipped.push(entry.relPath);
327
+ continue;
328
+ }
329
+ // 文件不存在 → 创建骨架
330
+ await (0, fs_extra_1.ensureDir)((0, path_1.dirname)(fullPath));
331
+ await (0, fs_extra_1.writeFile)(fullPath, entry.placeholder, 'utf-8');
332
+ result.created.push(entry.relPath);
333
+ }
334
+ return result;
335
+ }
336
+ // ================================================================
337
+ // 内容验证器
338
+ // ================================================================
339
+ /**
340
+ * 检测哪些骨架文件已被 AI 填充
341
+ * - 存在且不含 SKELETON_MARKER → filled
342
+ * - 不存在或仍含 SKELETON_MARKER → unfilled
343
+ */
344
+ async function validateFilled(specDir, entries) {
345
+ const filled = [];
346
+ const unfilled = [];
347
+ for (const entry of entries) {
348
+ const fullPath = (0, path_1.join)(specDir, entry.relPath);
349
+ if (!(await (0, fs_extra_1.pathExists)(fullPath))) {
350
+ unfilled.push(entry.relPath);
351
+ continue;
352
+ }
353
+ const content = await (0, fs_extra_1.readFile)(fullPath, 'utf-8');
354
+ if (content.includes(exports.SKELETON_MARKER)) {
355
+ unfilled.push(entry.relPath);
356
+ }
357
+ else {
358
+ filled.push(entry.relPath);
359
+ }
360
+ }
361
+ return { filled, unfilled };
362
+ }
363
+ // ================================================================
364
+ // 进度检测(替代 detectIterationDocsStatus)
365
+ // ================================================================
366
+ /**
367
+ * 检测骨架填充进度,返回下一个需要生成的文件
368
+ * 用于逐文档链式推进模式
369
+ */
370
+ async function detectSkeletonProgress(specDir, entries) {
371
+ const { filled, unfilled } = await validateFilled(specDir, entries);
372
+ // 找到第一个未填充的 entry
373
+ let nextUnfilled = null;
374
+ for (const entry of entries) {
375
+ if (unfilled.includes(entry.relPath)) {
376
+ nextUnfilled = entry;
377
+ break;
378
+ }
379
+ }
380
+ return {
381
+ filled,
382
+ unfilled,
383
+ nextUnfilled,
384
+ filledCount: filled.length,
385
+ totalCount: entries.length,
386
+ };
387
+ }
388
+ // ================================================================
389
+ // Prompt 辅助:生成骨架文件列表文本
390
+ // ================================================================
391
+ /**
392
+ * 生成注入 prompt 的骨架文件列表
393
+ * 用于告诉 AI 哪些文件需要覆盖
394
+ */
395
+ function buildSkeletonFileList(entries, specDir) {
396
+ const overviewEntries = entries.filter(e => e.category === 'overview');
397
+ const platformEntries = entries.filter(e => e.category === 'platform');
398
+ let text = `## 文件清单(CLI 已预创建骨架,请逐个覆盖内容)\n\n`;
399
+ if (overviewEntries.length > 0) {
400
+ text += `### 全局文档(overview/)\n`;
401
+ for (const e of overviewEntries) {
402
+ text += `- \`${e.relPath}\`\n`;
403
+ }
404
+ text += `\n`;
405
+ }
406
+ // 按端分组
407
+ const platformGroups = new Map();
408
+ for (const e of platformEntries) {
409
+ const p = e.platform || 'unknown';
410
+ if (!platformGroups.has(p))
411
+ platformGroups.set(p, []);
412
+ platformGroups.get(p).push(e);
413
+ }
414
+ if (platformGroups.size > 0) {
415
+ text += `### 各端专属文档\n`;
416
+ for (const [platform, platformEntries] of platformGroups) {
417
+ text += `\n**${platform}/**\n`;
418
+ for (const e of platformEntries) {
419
+ text += `- \`${e.relPath}\`\n`;
420
+ }
421
+ }
422
+ }
423
+ text += `\n> 完整路径前缀: \`${specDir}/\`\n`;
424
+ text += `> 写入方式: 用 Write 工具直接覆盖上述路径的文件,不要创建新文件\n`;
425
+ return text;
426
+ }
427
+ //# sourceMappingURL=spec-skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-skeleton.js","sourceRoot":"","sources":["../../src/core/spec-skeleton.ts"],"names":[],"mappings":";;;AA2SA,wDAmCC;AAOD,kDAmBC;AAYD,4CAsBC;AAWD,wCAwBC;AAUD,wDAsBC;AAUD,sDAuCC;AA9fD;;;;;;;;;GASG;AACH,+BAAqC;AACrC,uCAAsE;AACtE,6CAAgD;AAEhD,mEAAmE;AACnE,KAAK;AACL,mEAAmE;AAEnE,4BAA4B;AACf,QAAA,eAAe,GAAG,wBAAwB,CAAC;AAuCxD,mEAAmE;AACnE,+BAA+B;AAC/B,mEAAmE;AAEnE,MAAM,WAAW,GAAmE;IAClF;QACE,IAAI,EAAE,gBAAgB;QACtB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;CAOX;KACE;IACD;QACE,IAAI,EAAE,aAAa;QACnB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;CAOX;KACE;IACD;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;;CAQX;KACE;IACD;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;CAIX;KACE;IACD;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;;;;CAUX;KACE;IACD;QACE,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;;;CASX;KACE;IACD;QACE,IAAI,EAAE,YAAY;QAClB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;;;;;;CAYX;KACE;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAe;;;QAG1C,IAAI;;;;;;;;CAQX;KACE;CACF,CAAC;AAEF,mEAAmE;AACnE,uBAAuB;AACvB,mEAAmE;AAEnE,MAAM,WAAW,GAAqF;IACpG;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,uBAAe;IACxD,QAAQ;;QAEJ,IAAI,SAAS,QAAQ;;;;;;;;CAQ5B;KACE;IACD;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,uBAAe;IACxD,QAAQ;;QAEJ,IAAI,SAAS,QAAQ;;;;;;;CAO5B;KACE;IACD;QACE,IAAI,EAAE,YAAY;QAClB,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,uBAAe;IACxD,QAAQ;;QAEJ,IAAI,SAAS,QAAQ;;;;;;;CAO5B;KACE;CACF,CAAC;AAEF,mEAAmE;AACnE,mBAAmB;AACnB,mEAAmE;AAEnE,MAAM,SAAS,GAAyF;IACtG;QACE,IAAI,EAAE,QAAQ;QACd,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,uBAAe;;;IAG5D,QAAQ,SAAS,QAAQ;;;;;;;;CAQ5B;KACE;IACD;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,uBAAe;;;IAG5D,QAAQ,SAAS,QAAQ;;;;;;;;;CAS5B;KACE;IACD;QACE,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,uBAAe;;;IAG5D,QAAQ,SAAS,QAAQ;;;;;;;;CAQ5B;KACE;CACF,CAAC;AAEF,mEAAmE;AACnE,gBAAgB;AAChB,mEAAmE;AAEnE;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,SAAmB,EACnB,KAAiB,EACjB,YAAoB,EAAE;IAEtB,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,0BAA0B;IAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,IAAA,WAAI,EAAC,6BAAgB,EAAE,GAAG,CAAC,IAAI,CAAC;gBACzC,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,GAAG,CAAC,IAAI;gBACjB,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,IAAA,WAAI,EAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;oBACjC,QAAQ,EAAE,UAAU;oBACpB,QAAQ;oBACR,OAAO,EAAE,GAAG,CAAC,IAAI;oBACjB,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,QAAgB,EAChB,SAAmB;IAEnB,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,IAAA,WAAI,EAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;gBACjC,QAAQ,EAAE,UAAU;gBACpB,QAAQ;gBACR,OAAO,EAAE,GAAG,CAAC,IAAI;gBACjB,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,QAAQ;AACR,mEAAmE;AAEnE;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAmB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,MAAM,IAAA,qBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,2BAA2B;YAC3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,eAAe;QACf,MAAM,IAAA,oBAAS,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,QAAQ;AACR,mEAAmE;AAEnE;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAe,CAAC,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,mEAAmE;AACnE,qCAAqC;AACrC,mEAAmE;AAEnE;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEpE,kBAAkB;IAClB,IAAI,YAAY,GAAyB,IAAI,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,YAAY,GAAG,KAAK,CAAC;YACrB,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,UAAU,EAAE,OAAO,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,uBAAuB;AACvB,mEAAmE;AAEnE;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,OAAwB,EACxB,OAAe;IAEf,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAEvE,IAAI,IAAI,GAAG,iCAAiC,CAAC;IAE7C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,IAAI,uBAAuB,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,IAAI,CAAC;IACf,CAAC;IAED,OAAO;IACP,MAAM,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC1D,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,IAAI,cAAc,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,cAAc,EAAE,CAAC;YACzD,IAAI,IAAI,OAAO,QAAQ,OAAO,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;gBAChC,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,iBAAiB,OAAO,OAAO,CAAC;IACxC,IAAI,IAAI,yCAAyC,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC"}