@dommaker/harness 1.8.1 → 1.9.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +22 -0
  4. package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
  5. package/dist/cli/commands/sync-docs/capabilities-syncer.js +113 -8
  6. package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
  7. package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
  8. package/dist/cli/commands/sync-docs/index.js +36 -4
  9. package/dist/cli/commands/sync-docs/index.js.map +1 -1
  10. package/dist/hooks/bootstrap.d.ts +9 -12
  11. package/dist/hooks/bootstrap.d.ts.map +1 -1
  12. package/dist/hooks/bootstrap.js +9 -31
  13. package/dist/hooks/bootstrap.js.map +1 -1
  14. package/dist/hooks/index.d.ts +5 -7
  15. package/dist/hooks/index.d.ts.map +1 -1
  16. package/dist/hooks/index.js +4 -10
  17. package/dist/hooks/index.js.map +1 -1
  18. package/dist/index.d.ts +2 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -7
  21. package/dist/index.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/CONTEXT.md +1 -1
  24. package/src/__tests__/public-exports.test.ts +30 -4
  25. package/src/__tests__/public-type-surface.test.ts +0 -8
  26. package/src/cli/commands/CONTEXT.md +3 -0
  27. package/src/cli/commands/__tests__/registry.test.ts +39 -3
  28. package/src/cli/commands/__tests__/sync-docs-table-layout.test.ts +259 -0
  29. package/src/cli/commands/sync-docs/capabilities-syncer.ts +139 -9
  30. package/src/cli/commands/sync-docs/index.ts +41 -4
  31. package/src/hooks/CONTEXT.md +12 -22
  32. package/src/hooks/__tests__/bootstrap.test.ts +21 -70
  33. package/src/hooks/bootstrap.ts +9 -48
  34. package/src/hooks/index.ts +5 -20
  35. package/src/index.ts +1 -13
  36. package/dist/hooks/config.d.ts +0 -30
  37. package/dist/hooks/config.d.ts.map +0 -1
  38. package/dist/hooks/config.js +0 -34
  39. package/dist/hooks/config.js.map +0 -1
  40. package/dist/hooks/pipeline.d.ts +0 -54
  41. package/dist/hooks/pipeline.d.ts.map +0 -1
  42. package/dist/hooks/pipeline.js +0 -173
  43. package/dist/hooks/pipeline.js.map +0 -1
  44. package/dist/hooks/registry.d.ts +0 -70
  45. package/dist/hooks/registry.d.ts.map +0 -1
  46. package/dist/hooks/registry.js +0 -141
  47. package/dist/hooks/registry.js.map +0 -1
  48. package/dist/hooks/types.d.ts +0 -113
  49. package/dist/hooks/types.d.ts.map +0 -1
  50. package/dist/hooks/types.js +0 -9
  51. package/dist/hooks/types.js.map +0 -1
  52. package/src/__tests__/hooks-pipeline.test.ts +0 -201
  53. package/src/hooks/__tests__/config.test.ts +0 -19
  54. package/src/hooks/__tests__/pipeline.test.ts +0 -195
  55. package/src/hooks/__tests__/registry.test.ts +0 -115
  56. package/src/hooks/config.ts +0 -33
  57. package/src/hooks/pipeline.ts +0 -202
  58. package/src/hooks/registry.ts +0 -166
  59. package/src/hooks/types.ts +0 -120
package/CHANGELOG.md CHANGED
@@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.9.0] - 2026-09-20
10
+
11
+ ### BREAKING
12
+ 记账口径 = ADR-0022 追记(breaking 落 master 即记,避免下次发版无据);发布级别 = 下一个 **minor**(ADR-0027 决策 2,沿用 ADR-0022「breaking 内容按 minor 号发布」先例,不进 major):
13
+ - **#170**(ADR-0027):包根公开面删除 hooks 管线——值符号 `HookRegistry` / `HookPipeline` / `assertHookRegistryClosed` / `toErrorStrategy` 四个 + 类型 `HookDefinition` / `HookConfig` / `EffectiveHook` / `HookErrorStrategy` / `HookExecutionRecord` / `HookPhase` / `HookResult` / `PipelineResult` 八个;`HarnessBootstrap` 收缩 `hooks` / `pipeline` 两字段、`bootstrapHarness` / `bootstrapHarnessSync` 收缩 `hookDefinitions` / `hookConfigs` 两参数。迁移路径 = 删引用。保留面只有 `bootstrapHarness` / `bootstrapHarnessSync` / `HarnessBootstrap` 三符号。
14
+ ### Changes
15
+ - refactor(hooks)!: hooks 管线面整体删除——`src/hooks/{registry,pipeline,config,types}.ts` 四文件连同公共面 12 个符号一并退场,`src/hooks/` 只剩 bootstrap 组合根(#170,执行票;裁决 = #169 三项人类裁定 2026-09-17,记 ADR-0027:①范围整体删(只删 `runOne` 被否——会留下零消费者的注册闭环,日后还要再开一刀)②minor 同车 ③hooks 管线不算 harness 独立供给)——原委:#167 的 `runOne` 随 1.8.1 发布当日其唯一需求方消失,studio#562 裁决 studio hooks 层整体删除;双仓事实核查(ADR-0027)——harness 内部四符号仅在 `src/index.ts` 被 re-export,CLI/bin/其余 src 零调用方;studio 侧消费全部位于已删的 hooks 层(本票开工前实测:`packages`/`apps`/`scripts` 对 `HookRegistry` / `HookPipeline` / `assertHookRegistryClosed` / `toErrorStrategy` / `HookConfig` 零命中,studio-shared `runtime/bootstrap.ts` 只剩初始化)。落地:`src/hooks/index.ts` barrel 收为 bootstrap 三符号;`src/index.ts` 导出段(原「Hooks 管线」)随之收缩并改标为运行环境引导;`bootstrap.ts` 删 `HookRegistry` / `HookPipeline` 装配与 `registerInitialHooks`(含 #159「给定义不给 `HookConfig` 声明表即抛错」闸——声明表语义随管线面一同消失)、`HarnessBootstrap` 返回值由 6 字段减为 4。**消费方影响单列**:bootstrap 唯一生产调用方(studio,经 studio-shared)为**无参调用且不访问被删字段**,因此零迁移成本、编译不受影响(已核 `HarnessBootstrap` 在 studio-shared 仅作类型持有/转发);`./hooks` 从来不在 `package.json` 的 `exports` 内,除包根外无第二个入口需清。**对外行为变化**(**breaking**,定级细节见上「BREAKING」节):包根删 4 值符号 + 8 类型、`HarnessBootstrap` 形状变更、`bootstrapHarness*` 减两形参。测试:三道公共面冻结闸条目同步——`public-exports.test.ts` 摘 4 个值符号并新增两条 **barrel 源形状负钉**(钉 12 个已删符号名不再出现于 `src/hooks/index.ts` 与 `src/index.ts`;与两道全量清单闸的分工是「回灌时红名直接指到 barrel,不必从清单 diff 反推」,`export *` 已被 `sub-barrels-explicit.test.ts` 禁到 src 下全部目录 barrel,故 barrel 源形状即全可达面)、`public-type-surface.test.ts` 包根类型清单摘 8 项、`public-value-surface.test.ts` 零改动(hooks 不住子路径入口,实测改动前后均绿);`src/hooks/__tests__/{registry,pipeline,config}.test.ts` 与 `src/__tests__/hooks-pipeline.test.ts` 四文件随迁删除;`bootstrap.test.ts` 改写为新形状(返回值键集合逐字冻结 `['checker','mergedConstraints','projectPath','sessions']` + 已删 `hooks` / `pipeline` 两字段 `@ts-expect-error` 编译期钉,照 ADR-0022 对 AC-007 的双钉手法)。**先红后绿**:闸与测试先改、源码后删,改完测试即 4 项红(`public-type-surface` 清单多出 8 项、`public-exports` 运行时键集合与两条 barrel 钉、`bootstrap.test.ts` 套件 TS2578 不可运行),删码后复绿;`layering.test.ts` 的 `hooks` 下行许可集合按上界语义不动(bootstrap 组合根本就装配 context/core/monitoring,实际依赖面收窄不报)。文档:`src/hooks/CONTEXT.md` 改写为 bootstrap 单面口径(管线面四导出、闭环与映射约定、'ignore' 收敛史全部撤下,只留「要重开须先按 ADR-0022 判据重新裁决」的指路);`src/CONTEXT.md` 术语「插件」行摘掉 hook 一族;`CAPABILITIES.md` 的 `## Hooks` 段换为 `## Runtime Bootstrap`;`README.md` 核心能力表的「Hook 管线」行换为「运行环境引导」行(同一能力表的既有陈旧行「上下文/监控 = …会话压缩…」属 ADR-0022 那车漏改,本票未动);`CLAUDE.md` 架构表 `src/hooks/` 行与「Hook 声明与实现必须注册表闭环」约定条改写为删除裁决记录(后者属手写治理段,改动理由与出处随本条留痕);`docs/adr/0002-registry-closed-loop.md` 按该文件自己的先例(2026-09-15 门禁侧收缩时在状态行加「部分失效」注记 + 文末「后续变更」节)补 hook 侧同形状注记与「后续变更(2026-09-18)」节——**状态行与追加节是活文档,正文既有条目一字未改**。纯历史快照(`docs/public-exports-review.md`、`docs/2026-08-*` 研究报告、`.scratch/`、既有 ADR 正文)按 ADR-0022 决策 4「不回改历史快照」口径未动。验收:`npm test` 全量 **184 套件 / 2630 passed / 6 skipped**、`npx jest --coverage --no-cache` 全局 **95.53% stmts**(较 CHANGELOG 上一条记录的 95.4% 不降;branches 84.58、functions 82.65、lines 96.36)、`tsc --noEmit` 与 `eslint src` 零错、`npm run build` 绿且产物面实测——`require('./dist/index.js')` 对 12 个已删符号零命中、`bootstrapHarnessSync.length === 1`、`dist/index.d.ts` 零 `Hook*` 类型、`node bin/harness.js check` 通过(铁律 3/3、指导原则 3/3)、`sync-docs --check` 零内容漂移。
16
+ - fix(sync-docs): 撤下模块登记时整行删除 + 表格排版收拢正本(#171)——原缺陷:`capabilities-syncer.ts` 删幽灵行用 `content.replace(/^\|…$/gm, '')`,`m` 下 `^…$` 只框住行内容、**不含行尾换行**,删完在表格中间留一个空行;CommonMark 以空行断表,于是每撤一次登记就把一张能力表多切一刀(studio 存量实测 40 处表格内空行)。同函数末尾既有的 `\n{3,}→\n\n` 够不着——删一行只产两个换行。落地:① 删除改按行 split/filter/join,行尾随之消失(CRLF 由行内正则尾部 `\r?` 保持与旧 `m` 相同的匹配面);② 新增排版收拢正本 `normalizeCapabilitiesTableLayout(content)`(模块内导出,不进包公共面)——规则①删两侧都是表格行的空行段、规则②收掉无数据行的表头+分隔行,**表格外的段落空行不动**、**围栏代码块(``` / ~~~)内的行在收拢一侧整体豁免**(CAPABILITIES.md 是手写文档,块内「表头+分隔行」示例按②会被判空表并删掉正文:实测一块 8 行正文被收成 6 行,`--check` 还为此判红),且两条规则**跑到不动点**——规则互相制造触发点(①吃掉两张空表之间那个空行后,②在同一轮只收得掉后一张),不迭代就一次收不干净、`--check` 修完仍红(实测需两轮);③ 收拢排在增删**之后**(先收拢会误删「本轮要往空表里补新行」的表头),而既有的一处 `\n{3,}→\n\n` 折叠由「增删之后」移到**收拢之后**并删去增删分支内的重复折叠(收掉一张夹在两段散文之间的空表本身会新产 `\n\n\n`);④ 幽灵行删除一侧**刻意不认围栏**,与收拢一侧口径故意不同:登记条目由 `core/constraints/capabilities-parser` 全文扫描得出(ADR-0009),围栏内的行同样算登记项——只让删除豁免围栏,块内示例引用的已删文件会永远报成幽灵条目且 `--check` 修不掉(实测该半改法令收敛闸转红);两侧同认围栏属改 ADR-0009 登记面并连带影响 docs_freshness 判定,另票裁决。⑤ `--check` 与写模式共用同一正本,判定面 = 返回内容与入参是否不同,故 check 报得出、fix 必清得掉(ADR-0009「check/fix 同规则才收敛」口径,不重演 2026-08-04 studio PR #44 的永不收敛)。**对外行为变化 2 处**:① 写模式对含脏排版文件的产出由「保留空行」变为「收拢成连续表格行 + 收掉空表」(生成物排版);② `sync-docs --check` 判定面**收紧**——此前对表格排版脏行静默放过(issue 实测:手工清掉 39 处后 `--check` 仍 exit 0),现判红并在 reason 里点名空行数与空表张数;`--json` 加性新增 `summary.tableLayoutDirty` 与顶层 `tableLayout: {blankLines, emptyTables}`,命令语法、旗帜集合、退出码取值面、包公共导出面零变化。**定级待 ship 时人裁**:先例 = ADR-0025/#142 对 `sync-docs --check` 语义收紧标 `!`,本条同属该收紧面;差别在收紧后果一条命令即可自愈(写模式必清得掉,下游不必手改文档)。测试:`__tests__/sync-docs-table-layout.test.ts` 13 项——四种撤登形状(中间行/目录条目行/末行/CRLF)+ 存量脏行「check 判红 → 写模式收拢 → check 复绿」+ 空表连表头一起收掉 + 两张空表相邻一次收干净(不动点)+ 收拢后不留三连换行 + 围栏内示例行按幽灵行处理且 check 收敛(钉取舍的另一半)+ 四条反向闸(有新行不误删表头、表格外段落空行不动、代码块内空表不被收、代码块内表格样式行不被收拢)。**先红后绿**:上述四条新闸对 #171 的上一版实现(commit `16eaf2c`)逐条实测转红(两条代码块豁免闸分别报「空表 1 张」「表格内空行 1 处」),改码后复绿;收敛闸另经反证——把幽灵行删除改成认围栏即转红(块内示例成了永久幽灵条目),故还原为不豁免并留注释。**核实后判定不属本票的三项**:① 「`--check` 报了但写模式一次收不干净」与「收拢后残留三连换行」为 `16eaf2c` 实测真缺陷,本票修;② module 模式下整张表被收空后下一次写会走「无表格」分支自动补一整张目录表(与「目录条目需人工策划登记」冲突)——**非本票引入**:修复前的产物形状(幽灵行变空行、表头仍在)经 `parseCapabilitiesFiles` 同样解析为空集,实测两版行为一致,另票;③ 4 空格缩进代码块(无围栏标记)内的表格样式行仍会被收拢——缩进 ≥4 在 CommonMark 里与缩进表格本身歧义,现有豁免取保守侧(宁可不动),记录不修。端到端核实:临时 git 工程撤一个目录登记行 → `git diff` 为纯删行、表格内空行 0、复跑 `--check` exit 0;studio 真实 `CAPABILITIES.md` 过正本函数 → 40 处收为 0 处、幂等、非空行内容逐字保留,harness 自身 `CAPABILITIES.md` 判定不变(零误报);同类清空行写法全仓仅此一处站点(`--compact` 路径按下标 filter 删除,本就纯删行)。文档:`src/cli/commands/CONTEXT.md` 记 #171 条目(根因 + 判定与修复共用正本 + 代码块豁免理由)。验收:`npx jest` 全量 **185 套件 / 2643 passed / 6 skipped**、`tsc --noEmit` 与 `eslint src` 零错、`npm run build` 绿、`node bin/harness.js check` 铁律 3/3 + 指导原则 3/3、`sync-docs --check --agents` 零漂移;端到端另测「两张空表 + 一个待登记文件」形状一次 `sync-docs` 即收干净且复跑 `--check` exit 0(不动点前需两轮)。
17
+ - test(cli): `registry.test.ts` 的 knowledge 别名冒烟自带夹具库根——原缺陷:该用例 spawn 真实 bin 跑 `knowledge ls --json` 却**不隔离数据面**,读的是操作机的真实知识库(本机实测 221 条 / 1.35MB JSON),而 CI 全新 checkout 上该库为空——同一份断言两侧取数规模差三个数量级,只有大的一侧崩。2026-09-20 发版(1.9.0 前置 `env CI=true npm test`)即以此形状暴露:子进程 stdout 越过 `spawnSync` 缺省 1MB 缓冲后被 **ENOBUFS 杀掉**,`status` 变 `null`、stderr 一句解释都没有,报错看着像别名路由崩了。本仓 `sync-docs` 侧刚记过同族病(CONTEXT.md mtime 判定按 CI 关闭、trace 锚根在非 root 下 EACCES,1.8.0 那轮 CI 首跑红两处),这条是它的镜像面:那两处是 CI 看得见本地看不见,这一处是本地看不见 CI 看得见。落地:① 用例经 `resolveKnowledgeBaseDir` 的既有解析缝 `KNOWLEDGE_BASE_DIR` 指向临时夹具,夹具由 `FileKnowledgeStore.save()` 播一条条目(`--json` 出口因此仍有真实记录可数),三条断言逐字不变;② `runWithModuleProbe` 收可选 `extraEnv` 形参(其余冒烟用例不传、行为不变)并显式抬高 `maxBuffer` 到 32MB——抬高**不是**本用例的修复手段(夹具后正文只有几百字节),它管的是诊断信息:超限不该以「进程被杀、无原因」面目出现。**对外行为变化 0 处**:纯测试面,`src` 产品代码零改动、包公共面零变化、命令语法与退出码零变化。测试:该套件 16 项在改造前红 1 项(`status: null`)、改造后全绿,且断言不再随操作机知识库规模漂移;`npm run build` 绿、`eslint src` 零错。
18
+
9
19
  ## [1.8.1] - 2026-09-17
10
20
 
11
21
  ### Changes
package/README.md CHANGED
@@ -139,7 +139,7 @@ scenes: [] # 场景标签,命中场景专属 prompt 才进入生效集
139
139
  | 约束引擎 | check/prompt 二元约束 + 生效集合并(`getEffectiveConstraints`)+ 注入渲染/漂移校验 |
140
140
  | 知识引擎 | 约束退役 → KnowledgeStore 沉淀(规则原文 + 原因 + 历史统计),可检索、可追溯 |
141
141
  | 门禁系统 | 8 种门禁:测试/验收/性能/安全/契约/审查/命令/检查点 |
142
- | Hook 管线 | 通用 before/after/around hook:注册 排序 错误隔离 采样执行 |
142
+ | 运行环境引导 | `bootstrapHarness` / `bootstrapHarnessSync`:一次调用装配约束检查器 + trace 记录器 + 会话管理器(原「Hook 管线」面双仓零消费者,已随 ADR-0027 整体删除) |
143
143
  | 上下文/监控 | Token 预算 + 会话压缩 + Trace 收集/分析 |
144
144
 
145
145
  ### 代码结构
@@ -20,6 +20,28 @@ export declare function parseCapabilitiesFiles(capabilitiesPath: string): Promis
20
20
  * (目录条目需人工策划登记),幽灵行剔除与「最后更新」刷新保留。
21
21
  */
22
22
  export declare function updateCapabilitiesFile(capabilitiesPath: string, currentModules: ModuleInfo[], existingFiles: string[], result: SyncResult, mode?: CapabilitiesMode): Promise<void>;
23
+ export interface TableLayoutNormalization {
24
+ /** 收拢后的内容 */
25
+ content: string;
26
+ /** 被删掉的「表格内空行」行数 */
27
+ blankLines: number;
28
+ /** 被收掉的「空表」(表头+分隔行且无数据行)张数 */
29
+ emptyTables: number;
30
+ }
31
+ /**
32
+ * 收拢 CAPABILITIES.md 的表格排版(harness#171)
33
+ *
34
+ * 两条规则:① 删掉夹在两个表格行之间的空行(CommonMark 会在此切断表格);
35
+ * ② 收掉没有数据行的表头+分隔行。表格外的空行(段落分隔)不动;围栏代码块内的行整体豁免。
36
+ *
37
+ * 规则互相制造对方的触发点(①把两张空表之间的那个空行吃掉后,②一轮只收得掉后一张),
38
+ * 所以跑到不动点:**一次 `sync-docs` 必须把 `--check` 报出来的东西全清掉**,
39
+ * 否则下游 CI 修完还是红的。计数 = 各轮合计(每轮只删当轮存在的行,不会重计)。
40
+ *
41
+ * 幂等,且 `--check` 与写模式共用此正本——判定面就是「返回内容与入参是否不同」,
42
+ * 因此不存在「check 报了 fix 修不掉」的不收敛(ADR-0009 口径)。
43
+ */
44
+ export declare function normalizeCapabilitiesTableLayout(content: string): TableLayoutNormalization;
23
45
  /**
24
46
  * 将 CAPABILITIES.md 文件表格折叠为目录条目(--compact 一次性迁移)
25
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities-syncer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/capabilities-syncer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUxF;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,UAAU,EAAE,EAC5B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,gBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuDf;AAsDD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAqClE"}
1
+ {"version":3,"file":"capabilities-syncer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/capabilities-syncer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUxF;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,UAAU,EAAE,EAC5B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,gBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAoEf;AAWD,MAAM,WAAW,wBAAwB;IACvC,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAyED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CAa1F;AAsDD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAqClE"}
@@ -41,6 +41,7 @@ var __importStar = (this && this.__importStar) || (function () {
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.parseCapabilitiesFiles = parseCapabilitiesFiles;
43
43
  exports.updateCapabilitiesFile = updateCapabilitiesFile;
44
+ exports.normalizeCapabilitiesTableLayout = normalizeCapabilitiesTableLayout;
44
45
  exports.compactCapabilitiesContent = compactCapabilitiesContent;
45
46
  const fs = __importStar(require("fs/promises"));
46
47
  const path = __importStar(require("path"));
@@ -82,12 +83,22 @@ async function updateCapabilitiesFile(capabilitiesPath, currentModules, existing
82
83
  }
83
84
  // 如果有表格行,更新表格
84
85
  if (existingFiles.length > 0) {
85
- // 移除已删除文件的行
86
- for (const removed of result.removed) {
87
- const escapedFile = removed.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
88
- // 第二列存完整路径,basename 只在末尾出现,用 [^|]* 匹配路径前缀
89
- const rowRegex = new RegExp(`^\\|[^|]*\\|[^|]*\\b${escapedFile}\\s*\\|.*$`, 'gm');
90
- content = content.replace(rowRegex, '');
86
+ // 移除已删除文件的行(整行连行尾一起删——只清行内容会留一个空行,
87
+ // CommonMark 据此把一张表切成若干小表,harness#171)。
88
+ // 这里**不**豁免围栏代码块,与下方排版收拢刻意不同口径:登记条目由
89
+ // capabilities-parser 全文扫描得出(ADR-0009),围栏内的行同样算登记项;
90
+ // 只让删除认围栏而条目不认,块内示例行会一直被解析成幽灵条目,`--check`
91
+ // 从此每轮都报同一个已删文件且永远修不掉。豁免要生效得连登记面一起改。
92
+ if (result.removed.length > 0) {
93
+ const deadRowRegexes = result.removed.map((removed) => {
94
+ const escapedFile = removed.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
95
+ // 第二列存完整路径,basename 只在末尾出现,用 [^|]* 匹配路径前缀
96
+ return new RegExp(`^\\|[^|]*\\|[^|]*\\b${escapedFile}\\s*\\|.*\\r?$`);
97
+ });
98
+ content = content
99
+ .split('\n')
100
+ .filter((line) => !deadRowRegexes.some((rowRegex) => rowRegex.test(line)))
101
+ .join('\n');
91
102
  }
92
103
  // 添加新文件的行(在最后一个表格行之后);module 模式跳过
93
104
  if (mode !== 'module' && result.added.length > 0) {
@@ -104,18 +115,112 @@ async function updateCapabilitiesFile(capabilitiesPath, currentModules, existing
104
115
  content = content.replace(lastTableRow, lastTableRow + '\n' + newRows);
105
116
  }
106
117
  }
107
- // 清理多余空行
108
- content = content.replace(/\n{3,}/g, '\n\n');
109
118
  }
110
119
  else {
111
120
  // 没有表格,追加模块表格(module 模式按目录聚合)
112
121
  content += '\n\n' + (mode === 'module' ? generateDirTable(currentModules) : generateModuleTable(currentModules));
113
122
  }
123
+ // 表格排版收拢放在增删之后:有新行的表不会被误判为空表(#171)
124
+ content = normalizeCapabilitiesTableLayout(content).content;
125
+ // 多余空行的清理收在收拢之后一处:收拢本身会新产出连续空行
126
+ // (收掉一张夹在两段散文之间的空表就留下 `\n\n\n`,#171)
127
+ content = content.replace(/\n{3,}/g, '\n\n');
114
128
  // 更新最后更新时间
115
129
  const now = new Date().toISOString().split('T')[0];
116
130
  content = content.replace(/最后更新[::].*/, `最后更新: ${now}`);
117
131
  await fs.writeFile(capabilitiesPath, content, 'utf-8');
118
132
  }
133
+ /** 表格行:以 `|` 起始(表头、分隔行、数据行都算) */
134
+ const TABLE_ROW_REGEX = /^\s*\|/;
135
+ /** 表格分隔行(|------|------|) */
136
+ const TABLE_SEPARATOR_REGEX = /^\s*\|[\s:|-]+\|\s*$/;
137
+ /** 围栏代码块的起止行(``` / ~~~,允许缩进与信息串) */
138
+ const FENCE_LINE_REGEX = /^\s*(?:```|~~~)/;
139
+ /**
140
+ * 按行切开并标出围栏代码块(``` / ~~~)内的行
141
+ *
142
+ * 只服务排版收拢:CAPABILITIES.md 是手写文档,块内长得像表格的示例行不是排版脏行,
143
+ * 收它就是删用户正文(harness#171)。登记条目面不在此列——见 `updateCapabilitiesFile`
144
+ * 里「幽灵行删除不豁免围栏」的取舍注释。
145
+ */
146
+ function parseLayoutLines(content) {
147
+ const parsed = [];
148
+ let inFence = false;
149
+ for (const text of content.split('\n')) {
150
+ if (FENCE_LINE_REGEX.test(text)) {
151
+ parsed.push({ text, fenced: true });
152
+ inFence = !inFence;
153
+ continue;
154
+ }
155
+ parsed.push({ text, fenced: inFence });
156
+ }
157
+ return parsed;
158
+ }
159
+ const isTableRow = (line) => line !== undefined && !line.fenced && TABLE_ROW_REGEX.test(line.text);
160
+ const isTableSeparator = (line) => line !== undefined && !line.fenced && TABLE_SEPARATOR_REGEX.test(line.text);
161
+ /** 走一遍两条收拢规则(不迭代) */
162
+ function collapseTableLayoutOnce(content) {
163
+ const parsed = parseLayoutLines(content);
164
+ // ① 收拢表格内空行:一段连续空行,两侧最近非空行都是表格行 → 整段丢弃
165
+ const kept = [];
166
+ let blankLines = 0;
167
+ for (let i = 0; i < parsed.length;) {
168
+ if (parsed[i].text.trim() !== '') {
169
+ kept.push(parsed[i]);
170
+ i++;
171
+ continue;
172
+ }
173
+ let end = i;
174
+ while (end < parsed.length && parsed[end].text.trim() === '')
175
+ end++;
176
+ if (isTableRow(kept[kept.length - 1]) && isTableRow(parsed[end])) {
177
+ blankLines += end - i;
178
+ }
179
+ else {
180
+ kept.push(...parsed.slice(i, end));
181
+ }
182
+ i = end;
183
+ }
184
+ // ② 收掉空表:表头 + 分隔行后面没有数据行
185
+ const out = [];
186
+ let emptyTables = 0;
187
+ for (let i = 0; i < kept.length; i++) {
188
+ if (isTableRow(kept[i]) && isTableSeparator(kept[i + 1]) && !isTableRow(kept[i + 2])) {
189
+ emptyTables++;
190
+ i++;
191
+ continue;
192
+ }
193
+ out.push(kept[i].text);
194
+ }
195
+ return { content: out.join('\n'), blankLines, emptyTables };
196
+ }
197
+ /**
198
+ * 收拢 CAPABILITIES.md 的表格排版(harness#171)
199
+ *
200
+ * 两条规则:① 删掉夹在两个表格行之间的空行(CommonMark 会在此切断表格);
201
+ * ② 收掉没有数据行的表头+分隔行。表格外的空行(段落分隔)不动;围栏代码块内的行整体豁免。
202
+ *
203
+ * 规则互相制造对方的触发点(①把两张空表之间的那个空行吃掉后,②一轮只收得掉后一张),
204
+ * 所以跑到不动点:**一次 `sync-docs` 必须把 `--check` 报出来的东西全清掉**,
205
+ * 否则下游 CI 修完还是红的。计数 = 各轮合计(每轮只删当轮存在的行,不会重计)。
206
+ *
207
+ * 幂等,且 `--check` 与写模式共用此正本——判定面就是「返回内容与入参是否不同」,
208
+ * 因此不存在「check 报了 fix 修不掉」的不收敛(ADR-0009 口径)。
209
+ */
210
+ function normalizeCapabilitiesTableLayout(content) {
211
+ let current = content;
212
+ let blankLines = 0;
213
+ let emptyTables = 0;
214
+ for (;;) {
215
+ const pass = collapseTableLayoutOnce(current);
216
+ if (pass.blankLines === 0 && pass.emptyTables === 0) {
217
+ return { content: current, blankLines, emptyTables };
218
+ }
219
+ blankLines += pass.blankLines;
220
+ emptyTables += pass.emptyTables;
221
+ current = pass.content;
222
+ }
223
+ }
119
224
  /**
120
225
  * 生成 CAPABILITIES.md 内容
121
226
  */
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities-syncer.js","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/capabilities-syncer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,wDAUC;AAQD,wDA6DC;AA8DD,gEAqCC;AA9LD,gDAAkC;AAClC,2CAA6B;AAC7B,uFAAwF;AAIxF;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAAC,gBAAwB;IACnE,sDAAsD;IACtD,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAA,6CAAuB,EAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAC1C,gBAAwB,EACxB,cAA4B,EAC5B,aAAuB,EACvB,MAAkB,EAClB,OAAyB,MAAM;IAE/B,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;QAClC,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,cAAc;IACd,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,YAAY;QACZ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACnE,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,uBAAuB,WAAW,YAAY,EAAE,IAAI,CAAC,CAAC;YAClF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,kCAAkC;QAClC,IAAI,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;YAC5D,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjG,MAAM,aAAa,GAAG,kCAAkC,CAAC;YACzD,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtD,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACnC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,IAAI,CAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,SAAS;QACT,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,8BAA8B;QAC9B,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,WAAW;IACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,YAAY,EACZ,SAAS,GAAG,EAAE,CACf,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAAC,OAAqB,EAAE,OAAyB,MAAM;IACzF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO;;UAEC,GAAG;;;;EAIX,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;CAC7E,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAqB;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC3B,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,IAAI,CAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,6CAA6C,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAqB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QACpD,OAAO,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACxC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,6CAA6C,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CAAC,OAAe;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,cAAc,GAAG,sBAAsB,CAAC;IAC9C,MAAM,QAAQ,GAAG,8BAA8B,CAAC;IAQhD,sCAAsC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,GAAG;YAAE,SAAS;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"capabilities-syncer.js","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/capabilities-syncer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiCH,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAaD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,EAAE,GAAE,SAAqB,GACxB,OAAO,CAAC,aAAa,CAAC,CAkZxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkCH,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAaD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,EAAE,GAAE,SAAqB,GACxB,OAAO,CAAC,aAAa,CAAC,CAsbxB"}
@@ -265,7 +265,14 @@ async function syncDocs(options, io = command_contract_1.processIO) {
265
265
  agentsMdStale = existing !== agentsMdExpected;
266
266
  }
267
267
  const hasAgentsIssues = options.agents === true && agentsMdStale;
268
- const hasTableIssues = result.added.length > 0 || result.removed.length > 0;
268
+ // 表格排版脏行(#171):撤登记时残留的空行会把 CAPABILITIES.md 的表格切断。
269
+ // 判定与修复共用 normalizeCapabilitiesTableLayout 正本——同一份规则,check 报的 fix 必清得掉。
270
+ const tableLayout = capsIsCapabilityListing
271
+ ? { blankLines: 0, emptyTables: 0 }
272
+ : (0, capabilities_syncer_1.normalizeCapabilitiesTableLayout)(capsContent);
273
+ const hasTableLayoutIssues = tableLayout.blankLines > 0 || tableLayout.emptyTables > 0;
274
+ const hasTableEntryIssues = result.added.length > 0 || result.removed.length > 0;
275
+ const hasTableIssues = hasTableEntryIssues || hasTableLayoutIssues;
269
276
  const hasCapIssues = capCountMismatches.length > 0;
270
277
  // mtime 只作提示,不参与判定(harness#142):判定面是内容漂移与缺失
271
278
  const hasContextIssues = result.contextMissing.length > 0 || result.contextContentDrift.length > 0;
@@ -286,6 +293,7 @@ async function syncDocs(options, io = command_contract_1.processIO) {
286
293
  contextMissing: result.contextMissing.length,
287
294
  contextStale: result.contextStale.length,
288
295
  contextContentDrift: result.contextContentDrift.length,
296
+ tableLayoutDirty: hasTableLayoutIssues,
289
297
  },
290
298
  contextMissing: result.contextMissing.map(d => ({
291
299
  dir: d,
@@ -311,7 +319,7 @@ async function syncDocs(options, io = command_contract_1.processIO) {
311
319
  details: 'CAPABILITIES.md 计数与代码不一致,运行 harness sync-docs 自动更新',
312
320
  });
313
321
  }
314
- if (!capsIsCapabilityListing && hasTableIssues) {
322
+ if (!capsIsCapabilityListing && hasTableEntryIssues) {
315
323
  if (capsMode === 'module') {
316
324
  // module 模式:added 为聚合后的未覆盖目录,需人工登记目录条目
317
325
  jsonOutput.added = result.added.map(d => ({ dir: d }));
@@ -337,6 +345,17 @@ async function syncDocs(options, io = command_contract_1.processIO) {
337
345
  });
338
346
  }
339
347
  }
348
+ if (hasTableLayoutIssues) {
349
+ jsonOutput.tableLayout = {
350
+ blankLines: tableLayout.blankLines,
351
+ emptyTables: tableLayout.emptyTables,
352
+ };
353
+ jsonOutput.resolution.push({
354
+ action: 'sync-capabilities-table-layout',
355
+ command: 'harness sync-docs',
356
+ details: 'CAPABILITIES.md 的表格被空行切断、或残留无数据行的空表头,运行 harness sync-docs 收拢',
357
+ });
358
+ }
340
359
  if (hasContextIssues) {
341
360
  jsonOutput.resolution.push(...(result.contextMissing.length > 0
342
361
  ? [{ action: 'create-context-md', command: 'harness sync-docs', dirs: result.contextMissing }]
@@ -384,6 +403,15 @@ async function syncDocs(options, io = command_contract_1.processIO) {
384
403
  (0, command_contract_1.log)(io, chalk_1.default.yellow(`\n📄 CAPABILITIES.md 包含已删除的模块:`));
385
404
  result.removed.forEach(f => (0, command_contract_1.log)(io, chalk_1.default.gray(` - ${f}`)));
386
405
  }
406
+ if (hasTableLayoutIssues) {
407
+ (0, command_contract_1.log)(io, chalk_1.default.yellow(`\n🧹 CAPABILITIES.md 表格排版待收拢:`));
408
+ if (tableLayout.blankLines > 0) {
409
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` - 表格内空行 ${tableLayout.blankLines} 处(CommonMark 会在此把表格切断)`));
410
+ }
411
+ if (tableLayout.emptyTables > 0) {
412
+ (0, command_contract_1.log)(io, chalk_1.default.gray(` - 无数据行的空表 ${tableLayout.emptyTables} 张(连表头/分隔行一起收掉)`));
413
+ }
414
+ }
387
415
  if (result.contextMissing.length > 0) {
388
416
  (0, command_contract_1.log)(io, chalk_1.default.yellow(`\n📋 缺少 CONTEXT.md:`));
389
417
  result.contextMissing.forEach(d => (0, command_contract_1.log)(io, chalk_1.default.gray(` - ${d}/CONTEXT.md`)));
@@ -422,9 +450,13 @@ async function syncDocs(options, io = command_contract_1.processIO) {
422
450
  if (isCheck) {
423
451
  (0, command_contract_1.log)(io, chalk_1.default.red('\n❌ 文档不是最新的,请运行 harness sync-docs 更新'));
424
452
  // reason 必须可定位(harness#142):CI 判红时要直接拿到文件与符号,不靠翻 stdout
453
+ const tableLayoutReason = hasTableLayoutIssues
454
+ ? `;CAPABILITIES.md 表格排版待收拢(表格内空行 ${tableLayout.blankLines} 处、`
455
+ + `空表 ${tableLayout.emptyTables} 张)`
456
+ : '';
425
457
  return drift(contextDriftReason
426
- ? `文档不是最新的(CONTEXT.md 与实现漂移:${contextDriftReason})`
427
- : '文档不是最新的,请运行 harness sync-docs 更新');
458
+ ? `文档不是最新的(CONTEXT.md 与实现漂移:${contextDriftReason})${tableLayoutReason}`
459
+ : `文档不是最新的,请运行 harness sync-docs 更新${tableLayoutReason}`);
428
460
  }
429
461
  // 8. 写入模式:更新文档
430
462
  if (capsIsCapabilityListing && hasCapIssues) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/sync-docs/index.ts"],"names":[],"mappings":"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"}
@@ -8,18 +8,19 @@
8
8
  * Consumer 用法:
9
9
  * ```typescript
10
10
  * const harness = await bootstrapHarness('/path/to/project');
11
- * // harness.checker, harness.config, harness.hooks, harness.sessions
11
+ * // harness.checker, harness.sessions, harness.mergedConstraints
12
12
  * ```
13
13
  *
14
14
  * checker 的 trace 记录器在此接线(harness#88:core 不上行依赖 monitoring),
15
15
  * 且锚在本函数收到的 projectPath 上(#139:落点跟根走,不落调用方 cwd)。
16
+ *
17
+ * ADR-0027(#170):hooks 管线面(registry/pipeline/config/types)双仓零生产消费者,
18
+ * 整体删除;本层的 `hookDefinitions` / `hookConfigs` 两参数与 `hooks` / `pipeline`
19
+ * 两字段随之消失——生产唯一调用方本就无参调用、不访问被删字段。
16
20
  */
17
21
  import { ConstraintChecker } from '../core/constraints/checker';
18
22
  import { SessionManager } from '../context/session-manager';
19
- import { HookRegistry } from './registry';
20
- import { HookPipeline } from './pipeline';
21
23
  import type { MergedConstraintsConfig } from '../types/project-config';
22
- import type { HookConfig, HookDefinition } from './types';
23
24
  /**
24
25
  * Bootstrap 结果
25
26
  */
@@ -28,10 +29,6 @@ export interface HarnessBootstrap {
28
29
  checker: ConstraintChecker;
29
30
  /** 会话管理器 */
30
31
  sessions: SessionManager;
31
- /** Hook 注册表 */
32
- hooks: HookRegistry;
33
- /** Hook 管线 */
34
- pipeline: HookPipeline;
35
32
  /** 项目路径 */
36
33
  projectPath: string;
37
34
  /** 合并后的约束配置 */
@@ -41,14 +38,14 @@ export interface HarnessBootstrap {
41
38
  * 初始化 harness 运行环境(异步,不阻塞事件循环)
42
39
  *
43
40
  * @param projectPath 项目根路径
44
- * @param hookDefinitions 可选,初始化时注册的 hook
45
- * @param hookConfigs 可选,与 hookDefinitions 配对的配置声明表(注册定义时必填)
46
41
  */
47
- export declare function bootstrapHarness(projectPath?: string, hookDefinitions?: HookDefinition[], hookConfigs?: HookConfig[]): Promise<HarnessBootstrap>;
42
+ export declare function bootstrapHarness(projectPath?: string): Promise<HarnessBootstrap>;
48
43
  /**
49
44
  * 同步 bootstrap(兼容不支持 top-level await 的环境)
50
45
  *
51
46
  * 配置加载仍为同步(readFileSync),其他组件初始化同上。
47
+ *
48
+ * @param projectPath 项目根路径
52
49
  */
53
- export declare function bootstrapHarnessSync(projectPath?: string, hookDefinitions?: HookDefinition[], hookConfigs?: HookConfig[]): HarnessBootstrap;
50
+ export declare function bootstrapHarnessSync(projectPath?: string): HarnessBootstrap;
54
51
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/hooks/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAoB1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY;IACZ,OAAO,EAAE,iBAAiB,CAAC;IAC3B,YAAY;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,cAAc;IACd,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,iBAAiB,EAAE,uBAAuB,CAAC;CAC5C;AAqBD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,cAAc,EAAE,EAClC,WAAW,CAAC,EAAE,UAAU,EAAE,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,cAAc,EAAE,EAClC,WAAW,CAAC,EAAE,UAAU,EAAE,GACzB,gBAAgB,CAuBlB"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/hooks/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAoBvE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY;IACZ,OAAO,EAAE,iBAAiB,CAAC;IAC3B,YAAY;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,iBAAiB,EAAE,uBAAuB,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,CAAC,EAAE,MAAM,GACnB,gBAAgB,CAiBlB"}
@@ -9,11 +9,15 @@
9
9
  * Consumer 用法:
10
10
  * ```typescript
11
11
  * const harness = await bootstrapHarness('/path/to/project');
12
- * // harness.checker, harness.config, harness.hooks, harness.sessions
12
+ * // harness.checker, harness.sessions, harness.mergedConstraints
13
13
  * ```
14
14
  *
15
15
  * checker 的 trace 记录器在此接线(harness#88:core 不上行依赖 monitoring),
16
16
  * 且锚在本函数收到的 projectPath 上(#139:落点跟根走,不落调用方 cwd)。
17
+ *
18
+ * ADR-0027(#170):hooks 管线面(registry/pipeline/config/types)双仓零生产消费者,
19
+ * 整体删除;本层的 `hookDefinitions` / `hookConfigs` 两参数与 `hooks` / `pipeline`
20
+ * 两字段随之消失——生产唯一调用方本就无参调用、不访问被删字段。
17
21
  */
18
22
  Object.defineProperty(exports, "__esModule", { value: true });
19
23
  exports.bootstrapHarness = bootstrapHarness;
@@ -22,8 +26,6 @@ const checker_1 = require("../core/constraints/checker");
22
26
  const session_manager_1 = require("../context/session-manager");
23
27
  const project_config_loader_1 = require("../core/project-config-loader");
24
28
  const traces_1 = require("../monitoring/traces");
25
- const registry_1 = require("./registry");
26
- const pipeline_1 = require("./pipeline");
27
29
  /**
28
30
  * 异步加载项目配置(S9:异步 I/O)
29
31
  */
@@ -37,27 +39,12 @@ async function loadConfigAsync(projectPath) {
37
39
  mergedConstraints: loader.mergeConstraints(),
38
40
  };
39
41
  }
40
- /**
41
- * 注册初始 hook(定义必须配对配置声明表——#159 起 HookConfig 是
42
- * enabled / errorStrategy 的唯一声明点,缺表即抛错)
43
- */
44
- function registerInitialHooks(hooks, hookDefinitions, hookConfigs) {
45
- if (!hookDefinitions || hookDefinitions.length === 0)
46
- return;
47
- if (!hookConfigs) {
48
- throw new Error('[harness] bootstrap 失败:注册 hook 定义必须同时提供 HookConfig 声明表' +
49
- '(enabled / errorStrategy 的唯一声明点)。');
50
- }
51
- hooks.registerAll(hookDefinitions, hookConfigs);
52
- }
53
42
  /**
54
43
  * 初始化 harness 运行环境(异步,不阻塞事件循环)
55
44
  *
56
45
  * @param projectPath 项目根路径
57
- * @param hookDefinitions 可选,初始化时注册的 hook
58
- * @param hookConfigs 可选,与 hookDefinitions 配对的配置声明表(注册定义时必填)
59
46
  */
60
- async function bootstrapHarness(projectPath, hookDefinitions, hookConfigs) {
47
+ async function bootstrapHarness(projectPath) {
61
48
  const resolvedPath = projectPath || process.cwd();
62
49
  // 1. 异步加载配置(S9 fix)
63
50
  const { mergedConstraints } = await loadConfigAsync(resolvedPath);
@@ -65,15 +52,9 @@ async function bootstrapHarness(projectPath, hookDefinitions, hookConfigs) {
65
52
  // trace 记录器锚根构造(#139):本函数本就收 projectPath,落点必须跟着根走
66
53
  const checker = new checker_1.ConstraintChecker(new traces_1.TraceCollector({ projectPath: resolvedPath }));
67
54
  const sessions = new session_manager_1.SessionManager(resolvedPath);
68
- const hooks = new registry_1.HookRegistry();
69
- const pipeline = new pipeline_1.HookPipeline(hooks);
70
- // 3. 注册初始 hook
71
- registerInitialHooks(hooks, hookDefinitions, hookConfigs);
72
55
  return {
73
56
  checker,
74
57
  sessions,
75
- hooks,
76
- pipeline,
77
58
  projectPath: resolvedPath,
78
59
  mergedConstraints,
79
60
  };
@@ -82,22 +63,19 @@ async function bootstrapHarness(projectPath, hookDefinitions, hookConfigs) {
82
63
  * 同步 bootstrap(兼容不支持 top-level await 的环境)
83
64
  *
84
65
  * 配置加载仍为同步(readFileSync),其他组件初始化同上。
66
+ *
67
+ * @param projectPath 项目根路径
85
68
  */
86
- function bootstrapHarnessSync(projectPath, hookDefinitions, hookConfigs) {
69
+ function bootstrapHarnessSync(projectPath) {
87
70
  const resolvedPath = projectPath || process.cwd();
88
71
  const loader = new project_config_loader_1.ProjectConfigLoader(resolvedPath);
89
72
  loader.load();
90
73
  const mergedConstraints = loader.mergeConstraints();
91
74
  const checker = new checker_1.ConstraintChecker(new traces_1.TraceCollector({ projectPath: resolvedPath }));
92
75
  const sessions = new session_manager_1.SessionManager(resolvedPath);
93
- const hooks = new registry_1.HookRegistry();
94
- const pipeline = new pipeline_1.HookPipeline(hooks);
95
- registerInitialHooks(hooks, hookDefinitions, hookConfigs);
96
76
  return {
97
77
  checker,
98
78
  sessions,
99
- hooks,
100
- pipeline,
101
79
  projectPath: resolvedPath,
102
80
  mergedConstraints,
103
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/hooks/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAyEH,4CA6BC;AAOD,oDA2BC;AAtID,yDAAgE;AAChE,gEAA4D;AAC5D,yEAAoE;AACpE,iDAAsD;AACtD,yCAA0C;AAC1C,yCAA0C;AAI1C;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB;IAIhD,iEAAiE;IACjE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,CAAC;IAEd,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE;QAC1B,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE;KAC7C,CAAC;AACJ,CAAC;AAoBD;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,KAAmB,EACnB,eAA6C,EAC7C,WAAqC;IAErC,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,wDAAwD;YACxD,mCAAmC,CACpC,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,WAAoB,EACpB,eAAkC,EAClC,WAA0B;IAE1B,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,oBAAoB;IACpB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAElE,aAAa;IACb,kDAAkD;IAClD,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,IAAI,uBAAc,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,uBAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC;IAEzC,eAAe;IACf,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,WAAW,EAAE,YAAY;QACzB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,WAAoB,EACpB,eAAkC,EAClC,WAA0B;IAE1B,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,IAAI,uBAAc,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,uBAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC;IAEzC,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,WAAW,EAAE,YAAY;QACzB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/hooks/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;AA6CH,4CAoBC;AASD,oDAmBC;AA3FD,yDAAgE;AAChE,gEAA4D;AAC5D,yEAAoE;AACpE,iDAAsD;AAGtD;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB;IAIhD,iEAAiE;IACjE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,CAAC;IAEd,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE;QAC1B,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE;KAC7C,CAAC;AACJ,CAAC;AAgBD;;;;GAIG;AACI,KAAK,UAAU,gBAAgB,CACpC,WAAoB;IAEpB,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,oBAAoB;IACpB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAElE,aAAa;IACb,kDAAkD;IAClD,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,IAAI,uBAAc,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,YAAY,CAAC,CAAC;IAElD,OAAO;QACL,OAAO;QACP,QAAQ;QACR,WAAW,EAAE,YAAY;QACzB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,WAAoB;IAEpB,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC,IAAI,uBAAc,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,YAAY,CAAC,CAAC;IAElD,OAAO;QACL,OAAO;QACP,QAAQ;QACR,WAAW,EAAE,YAAY;QACzB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}