@omne-harness/repo-toolchain 0.0.11 → 0.0.13

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 (44) hide show
  1. package/README.md +15 -3
  2. package/README_ZH.md +22 -8
  3. package/dist/arch/conformance-model.d.ts +12 -2
  4. package/dist/arch/conformance-model.d.ts.map +1 -1
  5. package/dist/arch/conformance-model.js.map +1 -1
  6. package/dist/arch/conformance.d.ts +9 -3
  7. package/dist/arch/conformance.d.ts.map +1 -1
  8. package/dist/arch/conformance.js +26 -13
  9. package/dist/arch/conformance.js.map +1 -1
  10. package/dist/arch/constraints.d.ts +20 -1
  11. package/dist/arch/constraints.d.ts.map +1 -1
  12. package/dist/arch/constraints.js +156 -53
  13. package/dist/arch/constraints.js.map +1 -1
  14. package/dist/arch/directions.d.ts +81 -0
  15. package/dist/arch/directions.d.ts.map +1 -0
  16. package/dist/arch/directions.js +221 -0
  17. package/dist/arch/directions.js.map +1 -0
  18. package/dist/arch/report.d.ts.map +1 -1
  19. package/dist/arch/report.js +5 -6
  20. package/dist/arch/report.js.map +1 -1
  21. package/dist/core/version-files.d.ts +11 -0
  22. package/dist/core/version-files.d.ts.map +1 -0
  23. package/dist/core/version-files.js +115 -0
  24. package/dist/core/version-files.js.map +1 -0
  25. package/dist/deps/cli.js +32 -7
  26. package/dist/deps/cli.js.map +1 -1
  27. package/dist/deps/graph.d.ts +30 -2
  28. package/dist/deps/graph.d.ts.map +1 -1
  29. package/dist/deps/graph.js +38 -14
  30. package/dist/deps/graph.js.map +1 -1
  31. package/dist/loop/hook-measure.d.ts.map +1 -1
  32. package/dist/loop/hook-measure.js +4 -3
  33. package/dist/loop/hook-measure.js.map +1 -1
  34. package/dist/loop/run.d.ts +3 -2
  35. package/dist/loop/run.d.ts.map +1 -1
  36. package/dist/loop/run.js +8 -7
  37. package/dist/loop/run.js.map +1 -1
  38. package/dist/loop/sensors/conformance.d.ts +6 -2
  39. package/dist/loop/sensors/conformance.d.ts.map +1 -1
  40. package/dist/loop/sensors/conformance.js +6 -3
  41. package/dist/loop/sensors/conformance.js.map +1 -1
  42. package/dist/metrics/cli.js +4 -1
  43. package/dist/metrics/cli.js.map +1 -1
  44. package/package.json +1 -1
package/README.md CHANGED
@@ -13,7 +13,7 @@ Three unpublished tool members import this package through its subpaths. This pa
13
13
  ## Repository roots and configuration
14
14
 
15
15
  - The checked repository is `OMNE_SUBJECT_ROOT`. When it is not set, it is the Git root of the current directory.
16
- - The runner repository is `OMNE_RUNNER_ROOT`. When it is not set, it is the checked repository. Dependency rules (`.dependency-cruiser.cjs`, `tsconfig.base.json`) and configuration come only from the runner repository, so a checked tree cannot change them.
16
+ - The runner repository is `OMNE_RUNNER_ROOT`. When it is not set, it is the checked repository. Dependency rules (`.dependency-cruiser.cjs`, `tsconfig.base.json`), the direction rows of `docs/architecture/constraints.json` (schema 3, see the [conformance contract](src/arch/CONFORMANCE.md#方向行) and [Dependency directions](#dependency-directions)) and configuration come only from the runner repository, so a checked tree cannot change them.
17
17
  - Configuration is in [`repo-toolchain.config.json`](../../repo-toolchain.config.json) at the repository root, in the sections `loop`, `metrics`, `acceptanceLock` and `contractApi`. Each command reads only its own section. A missing file, a missing section that a command reads, or an unknown section is an error. No defaults apply. Version 0.0.10 is the first version that accepts the `contractApi` section. Earlier versions reject it.
18
18
  - dependency-cruiser needs TypeScript to parse `.ts` files. With pnpm, add `typescript` to dependency-cruiser under `packageExtensions` in `pnpm-workspace.yaml`. If TypeScript is not found, the dependency check exits with an error. It does not pass with the `.ts` files left out.
19
19
 
@@ -39,7 +39,7 @@ The commands (`bin`) point at `dist`. Run them from the installed package:
39
39
 
40
40
  | Command | Source entry | Purpose |
41
41
  | --- | --- | --- |
42
- | `omne-deps` | `src/deps/cli.ts` | Dependency rules, and cycles between members and groups |
42
+ | `omne-deps` | `src/deps/cli.ts` | Dependency rules, the direction rows of `constraints.json`, and cycles between members and groups |
43
43
  | `omne-declarations` | `src/declarations/cli.ts` | Reads member `dist` declarations with TypeScript 6 |
44
44
  | `omne-contract-api` | `src/declarations/api-cli.ts` | Contract API snapshots: write, check, and a coarse class of the change against a base |
45
45
  | `omne-metrics` | `src/metrics/cli.ts` | Structure metrics and the review page |
@@ -52,6 +52,17 @@ The actual architecture extraction reads only the files of one revision. A packa
52
52
 
53
53
  `pnpm run check:design` checks current design sources, domain objects, and generated inputs. `pnpm run loop:health` reports trends, test timings, and Git history.
54
54
 
55
+ ## Dependency directions
56
+
57
+ Version 0.0.12 is the first version in which `omne-deps` checks the direction rows of `constraints.json`. The rows and the roles come only from the runner repository. `--root` changes only the checked tree.
58
+
59
+ - A hit is a resolved import whose file matches the `paths` of a `from` role of a row (the match uses `paths` only, not the most precise role; validation already rejects a referenced role whose `paths` equal or contain the `paths` of another role) and whose resolved target file is in the member of a `to` role. Type imports, `export … from` (including `export *` and `export { x } from`), dynamic `import()`, package subpaths, tsconfig aliases and relative paths are judged by the resolved target. A target in `src/`, `dist/` or a declaration file is the same member. An unresolved import is not a hit; `no-unresolvable` reports it.
60
+ - Each hit is one `direction-rule` finding with the row id, the source file, the target file, the source role, the target role, the cited source and the import line. When a `from` role or a `to` role of a row matches no file in the checked tree, the command reports one `direction-unknown` finding that names the row, the side and the role. A renamed or moved source member or target member does not pass with zero hits.
61
+ - Any `direction-rule` or `direction-unknown` finding exits 1. The other findings and exit codes keep their meaning.
62
+ - The summary line prints the number of rows, member pairs and hits, and the number of roles without files when there are any.
63
+ - No direction rows: when the runner has no `constraints.json`, the command prints that it did not check directions, and the exit code comes from the other findings. A schema 1 or 2 file, or a schema 3 file without `directions`, prints that there are no direction rows.
64
+ - Exit 2: `constraints.json` does not parse, fails validation, fails the check of its cited sources, or `docs/architecture/constraints.json` and `.meta_harness/design/architecture/constraints.json` both exist. The command reads the file before it runs dependency-cruiser.
65
+
55
66
  ## Contract API snapshots
56
67
 
57
68
  `omne-contract-api` keeps one API snapshot file for each contract member. The contract members are the `contracts` entries of `docs/engineering/delivery-lines.json`. The behavior contract is in the [SPEC](src/declarations/SPEC.md).
@@ -91,10 +102,11 @@ That explicit base does not change the automatic hook's base. The internal 40-se
91
102
  The clean loop reads complete current and BASE sources through `sensors.architecture`.
92
103
  Global expectations belong to `docs/architecture/constraints.json`.
93
104
  Each version discovers its own current or historical input. Duplicate owners and invalid source references fail.
94
- Schema 2 source paths start at repository root. Referenced files and Markdown anchors are read at the same version.
105
+ Schema 2 and 3 source paths start at repository root. Referenced files and Markdown anchors are read at the same version.
95
106
  IC-1 and IC-5 use adopted roles and actual public exports. Directory names grant no exception.
96
107
  A missing current or BASE input remains unknown or no-data. Current deletion still reports its semantic change.
97
108
  Changes to cited Markdown also trigger the hook. See the [conformance contract](src/arch/CONFORMANCE.md).
109
+ The conformance report has [direction rows](src/arch/CONFORMANCE.md#方向行). The rows and the roles come from the runner repository's `constraints.json`, the same file that `omne-deps` reads. The dependency facts come from the dependency graph of the reported version. When no role that the direction rows reference has a file in that version, the report does not take the graph, and each row is unknown with the same text as with the graph. The [conformance contract](src/arch/CONFORMANCE.md#方向行) gives the rule. When the graph is taken but is not available, the rows are unknown. When the graph of the baseline is not available, the report does not mark deviations as new or stock, and each row gives the reason. A direction deviation is reported in the loop. It is not a hard line.
98
110
  It reports static conformance separately from added, removed and changed assembly facts.
99
111
  Fact counts are neutral. They have no thresholds or trend comparison.
100
112
 
package/README_ZH.md CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  | 命令 | 源码入口 | 作用 |
31
31
  | --- | --- | --- |
32
- | `omne-deps` | `src/deps/cli.ts` | 依赖规则与成员、组之间的环 |
32
+ | `omne-deps` | `src/deps/cli.ts` | 依赖规则、`constraints.json` 的方向行,与成员、组之间的环 |
33
33
  | `omne-declarations` | `src/declarations/cli.ts` | 用 TypeScript 6 读成员 dist 里的声明 |
34
34
  | `omne-contract-api` | `src/declarations/api-cli.ts` | 契约成员的 API 快照:写、核对与相对基线的粗分类 |
35
35
  | `omne-metrics` | `src/metrics/cli.ts` | 结构度量与审讯页 |
@@ -68,13 +68,26 @@ pnpm --filter @omne-harness/repo-toolchain test
68
68
  仓库只有一张依赖图,由 dependency-cruiser 按根 `.dependency-cruiser.cjs` 生成,入口在 `src/deps/graph.ts`。`pnpm run lint:deps`(`src/deps/cli.ts`)、[回路状态](#回路状态)的硬线与新增跨成员依赖、[结构度量](#结构度量)和[实际架构](#全局实际架构视图)的报告都读它,本包不再自写导入解析或层位表。
69
69
 
70
70
  - 规则:无法解析的导入、文件级运行时循环、legacy 引用,以及按[产品包组织](../../docs/package-organization.md#依赖方向与cordis集成)与[系统分层](../../docs/architecture/layers-and-dependencies.md#依赖关系与禁止方向)写成成员路径的方向规则(SDK 与 server-entry 互不导入、公开契约不依赖两端实现、业务不依赖 SDK 与装配入口、common 与 util 不依赖领域成员、产品包不依赖应用与工具)。每条规则的 `comment` 指回出处。要按角色判断的规则(契约不依赖提供者等)还没有机读的角色,没有写。
71
- - 成员边:产品源码(不含测试)解析到另一个成员的依赖,类型导入也算。成员与组之间的环由这些边算出。导入处的行号按说明符在文件里第一次出现的位置找。
71
+ - 方向行:`docs/architecture/constraints.json` schema 3 的 `directions`,格式与校验见[符合性契约](src/arch/CONFORMANCE.md#方向行);`omne-deps` 怎样用它见下面[依赖方向](#依赖方向)一节。
72
+ - 成员边:产品源码(不含测试)解析到另一个成员的依赖,类型导入也算。成员与组之间的环由这些边算出。导入处的行号按说明符在文件里第一次出现的位置找。图里另保留成员里 dependency-cruiser 走到的模块清单(`modules`)与跨成员的文件级依赖事实(`dependencies`,含测试与 `src` 下的 testing 入口,不含 Node 内建模块),方向行的判定与架构符合性报告的方向行都只从这两项判断,不另解析导入。
72
73
  - 工作树的图不含被 Git 忽略且未跟踪的目录里的模块与它们的违规(本地产物,理由同[实际架构](#全局实际架构视图)的成员规则);不在 Git 仓库里的目录没有忽略规则,照常出图。
73
74
  - 规则与解析选项(`tsconfig.base.json` 的 `source` 条件)只从运行检查器的仓库读,被检查的检出改不了。
74
- - 基线图:把那个提交的源码导出到 git 公共目录下的临时树,按成员包名补上 `node_modules/@omne-harness/*` 链接后跑;结果按提交与规则文件摘要缓存在 `<git-common-dir>/omne-dep-graph/`,同一基线只算一次,不写工作树。
75
+ - 基线图:把那个提交的源码导出到 git 公共目录下的临时树,按成员包名补上 `node_modules/@omne-harness/*` 链接后跑;结果按提交、规则文件摘要与图的格式版本缓存在 `<git-common-dir>/omne-dep-graph/`,同一基线只算一次,不写工作树。
75
76
  - 耗时:本机全仓一次约 3 秒,基线命中缓存约 10 毫秒。
77
+ - 回路状态的硬线是依赖违规与环;方向命中只让 `lint:deps` 退出 1,回路里只报告。
76
78
 
77
- 自测:`tests/deps-graph.spec.ts`;回路金丝雀种了一处 `shared-stays-pure` 违规与一对成环的成员。
79
+ 自测:`tests/deps-graph.spec.ts`、`tests/direction-rules.spec.ts`(runner 与被检树分开的临时仓库);回路金丝雀种了一处 `shared-stays-pure` 违规与一对成环的成员。
80
+
81
+ ### 依赖方向
82
+
83
+ `omne-deps` 从 0.0.12 起按 `constraints.json` 的方向行检查依赖方向。方向行与角色只从运行检查器的仓库读,`--root` 只改变被检查的树;被检查的树改动或删除自己的 `constraints.json` 与预设都不改变结果。
84
+
85
+ - 命中:一处已解析的导入,所在文件落在某条方向行某个 `from` 角色的 `paths` 里(按 `paths` 匹配,不取最精确的角色;方向行引用的角色的 `paths` 在校验时已保证不与别的角色相同或互相包含),并且解析后的目标文件所在的成员等于某个 `to` 角色的成员。类型导入、`export … from`(含 `export *` 与 `export { x } from`)、动态 `import()`、按包名或公开子路径导入、tsconfig 别名、跨成员相对路径都按解析后的目标判断;目标在 `src/`、`dist/` 或声明文件里都算同一成员。解析失败的导入不是方向命中,仍由 `no-unresolvable` 报出;别名只有运行检查器的 `tsconfig.base.json` 声明了 `paths` 才解析得到。
86
+ - 发现:每处命中一条 `direction-rule`,写 `[<方向行 id>] <源文件> 依赖了 <目标文件>(<源角色> → <目标角色>):<出处>`,后面是导入处的路径与行号;一处导入同时命中几条方向行就报几条。某条方向行的某个源角色或目标角色在被检树里匹配不到任何文件时,报一条 `direction-unknown`,写明方向行、源或目标与角色:源成员或目标成员改名、迁走后,方向检查都不以「命中 0 处」通过。
87
+ - 退出码:有任何 `direction-rule` 或 `direction-unknown` 退出 1,原有发现与退出码的含义不变。
88
+ - 汇总行:`依赖方向:检查了 <n> 条方向行、<m> 个成员对,命中 <k> 处`,有角色没有文件时再写几处。
89
+ - 没有方向行:运行检查器的仓库没有 `constraints.json` 时不检查方向,写「runner 没有 docs/architecture/constraints.json,未检查」,退出码只由其他发现决定;文件是 schema 1、2,或 schema 3 缺省 `directions`,写「没有方向行」。
90
+ - 退出 2:`constraints.json` 解析失败、校验失败、来源核对失败,或 `docs/architecture/constraints.json` 与 `.meta_harness/design/architecture/constraints.json` 两份并存。先读它再运行 dependency-cruiser,所以文件坏了不出依赖图。
78
91
 
79
92
  ## 提交署名
80
93
 
@@ -236,7 +249,7 @@ architecture 报告的函数变化和关系变化都用精确 BASE;metrics 报
236
249
  `pnpm run metrics` 是本包的第二入口(`src/metrics/`)。它**只报告、不判失败**,不在 `pnpm run check` 里;能让检查失败的只有上面的方向规则与提交署名。
237
250
 
238
251
  ```sh
239
- pnpm run metrics # 全仓:实际架构、圈复杂度、依赖图、方向与环
252
+ pnpm run metrics # 全仓:实际架构、圈复杂度、依赖图、依赖方向与环
240
253
  pnpm run metrics --base <基线提交或分支> # 另标出基线以来变更的成员、函数、导入与提交形状
241
254
  omne-metrics --plan <计划文件> --coverage # 再对计划里要跑测试的成员逐个跑测试,取覆盖率并合成 CRAP(先构建)
242
255
  ```
@@ -324,7 +337,7 @@ CLI 的范围只有 `all` 和 `engineering`,默认 `all`;工程范围必须
324
337
  只有当前与全部基线的两类计数均为零,duplication、assertions 启用但无数据时才列入 `hardLines.sensors.notApplicable`,原因码为 `engineering-without-product-inputs`。
325
338
  `status.json` 的 `scope.evidence` 保存当前计数和各基线的精确提交、计数。原始 `sensors` 仍是 no-data;终端与 Markdown 点名工程范围不适用。关闭项仍列 `off`,其他启用的无数据项仍列 `silent` 并失败。
326
339
  最后一个输入被删除或迁入 legacy 时,历史输入仍阻止豁免。无效 context、无效基线、缺对象、读取错误及无法分类的历史链接或子模块按工具错误失败。输入范围沿现有扫描器,包括 legacy、构建产物、测试和声明文件规则。
327
- 普通本地 `pnpm run check`、默认 strict、方向与环、验收锁和趋势只读边界保持。工程范围不证明产品质量通过,也不证明跳过的测试通过。
340
+ 普通本地 `pnpm run check`、默认 strict、依赖方向与环、验收锁和趋势只读边界保持。工程范围不证明产品质量通过,也不证明跳过的测试通过。
328
341
 
329
342
  适用性与编排回归位于 `tests/loop-product-inputs.spec.ts`、`tests/loop-status.spec.ts`、`tests/loop-strict.spec.ts`、`tests/formatting-boundaries.spec.ts` 和 dev-flow 的 `tests/integration-boundaries.spec.ts`。真实 Git 与 shell fixture、受控命令替身、真实工程入口分别提供证据。
330
343
 
@@ -374,8 +387,9 @@ CLI 的范围只有 `all` 和 `engineering`,默认 `all`;工程范围必须
374
387
 
375
388
  `src/arch/` 按完整版本源码抽取实际关系,回路经 `sensors.architecture` 读取。
376
389
  全局预期归 `docs/architecture/constraints.json`。
377
- 当前及历史版本分别发现唯一源,同版双源或坏依据拒绝。schema 2依据路径从仓库根解析,文件和Markdown锚点在相同版本校验。IC-1与IC-5沿采用责任及真实公开入口判断,目录名不构成许可。
390
+ 当前及历史版本分别发现唯一源,同版双源或坏依据拒绝。schema 2 与 3 的依据路径从仓库根解析,文件和Markdown锚点在相同版本校验。IC-1与IC-5沿采用责任及真实公开入口判断,目录名不构成许可。
378
391
  缺当前或BASE输入保留unknown或no-data,删除变化仍可见。只修改依据Markdown也触发收工测量。精确输入、范围和不能证明的性质见[符合性契约](src/arch/CONFORMANCE.md)。
392
+ 符合性报告带[方向行](src/arch/CONFORMANCE.md#方向行):方向行与角色读运行检查器仓库的 `constraints.json`(与 `omne-deps` 同一份),依赖事实读本版的依赖图,方向行引用的角色在本版里都匹配不到文件时不取图,每一行都是 unknown,文字与取图时相同,规则见[符合性契约](src/arch/CONFORMANCE.md#方向行);取了图但图不可得时这些行是 unknown;基线的图不可得时偏离行不判新旧,每一行写明原因;方向偏离在回路里只报告,不是硬线。
379
393
  集成约定归 [Cordis 集成约定](../../docs/architecture/cordis-integration-conventions.md)。
380
394
  工具不反写预期,也不从目录存在性或手写绑定推断实现状态。
381
395
 
@@ -405,7 +419,7 @@ contract、owner、layer、定义形式、提供形式和表达形状独立参
405
419
  实际增减与全局预期改动分别进入 explain/钩子,均不称“新增偏离”。
406
420
  新增架构偏离仍对完整 BASE 预期比较,修改 HEAD 预期不能抹掉它。
407
421
  IC-5 例外仅放行 BASE 点名的精确导出符号,namespace 通配符和新增符号仍不放行。
408
- 例外记录共同存储与出处,不据此证明同提交;方向和环硬线保持独立。
422
+ 例外记录共同存储与出处,不据此证明同提交;依赖方向和环硬线保持独立。
409
423
 
410
424
  当前或BASE全局预期缺失时,architecture是no-data,严格模式点名失败;已有 BASE 的预期删除差分仍可见。
411
425
  有效预期与完整实际源码都已读取时,空事实集是真实空结果,不能和 no-data 混淆。
@@ -19,9 +19,18 @@ export interface ArchitectureImportException {
19
19
  readonly sharedStorage: string;
20
20
  readonly source: string;
21
21
  }
22
+ /** schema 3 的方向行:`from` 角色的源码不得依赖 `to` 角色所在的成员。角色按 id 绑定,与 status 无关。 */
23
+ export interface ArchitectureDirection {
24
+ readonly id: string;
25
+ readonly from: readonly [string, ...string[]];
26
+ readonly to: readonly [string, ...string[]];
27
+ readonly source: string;
28
+ }
22
29
  export interface ArchitectureConstraints {
23
- readonly schemaVersion: 1 | 2;
30
+ readonly schemaVersion: 1 | 2 | 3;
24
31
  readonly importExceptions?: readonly ArchitectureImportException[];
32
+ /** 只有 schema 3 可以声明;schema 1、2 的文档没有这个字段。 */
33
+ readonly directions?: readonly ArchitectureDirection[];
25
34
  readonly domains: readonly {
26
35
  readonly id: string;
27
36
  readonly label: string;
@@ -53,7 +62,8 @@ export interface ConstraintChange {
53
62
  }
54
63
  export interface ConformanceRow {
55
64
  readonly id: string;
56
- readonly rule: RuleId | 'ROLE' | 'INPUT';
65
+ /** `DIRECTION` 是方向行(schema 3 的 `directions`)按成员对展开的一行;`key` 带方向行 id。 */
66
+ readonly rule: RuleId | 'ROLE' | 'INPUT' | 'DIRECTION';
57
67
  readonly state: 'converged' | 'deviation' | 'unknown';
58
68
  readonly age: 'new' | 'stock' | 'unjudged';
59
69
  readonly member: string;
@@ -1 +1 @@
1
- {"version":3,"file":"conformance-model.d.ts","sourceRoot":"","sources":["../../src/arch/conformance-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance-model.d.ts","sourceRoot":"","sources":["../../src/arch/conformance-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conformance-model.js","sourceRoot":"","sources":["../../src/arch/conformance-model.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,aAAa;IACb,WAAW;IACX,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAA;AA6CV,MAAM,UAAU,WAAW,CAAC,KAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"conformance-model.js","sourceRoot":"","sources":["../../src/arch/conformance-model.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,aAAa;IACb,WAAW;IACX,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAA;AAsDV,MAAM,UAAU,WAAW,CAAC,KAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACvE,CAAC"}
@@ -1,16 +1,22 @@
1
1
  import { type ArchitectureSource } from './source.ts';
2
2
  import type { ActualExtraction } from './actual-model.ts';
3
3
  import type { ActualArchitectureInput } from './actual.ts';
4
+ import type { DependencyGraph } from '../deps/graph.ts';
4
5
  import type { Conformance } from './conformance-model.ts';
5
- export declare function conformanceOf(root: string, current: ArchitectureSource, baseline?: ArchitectureSource): Conformance;
6
- /** One extraction per source version for constraints and actual assembly observations. */
7
- export declare function analyzeConformance(root: string, current: ArchitectureSource, baseline?: ArchitectureSource): {
6
+ export declare function conformanceOf(root: string, current: ArchitectureSource, baseline?: ArchitectureSource, graph?: DependencyGraph): Conformance;
7
+ /**
8
+ * One extraction per source version for constraints and actual assembly observations.
9
+ * 方向行一节另从可信 runner 读(arch/directions.ts);调用方已经算过当前版本的依赖图时传进来,
10
+ * 免得再跑一次 dependency-cruiser;没传就按版本自己取,而且只在 runner 有方向行时才取。
11
+ */
12
+ export declare function analyzeConformance(root: string, current: ArchitectureSource, baseline?: ArchitectureSource, graph?: DependencyGraph): {
8
13
  conformance: Conformance;
9
14
  headActual: ActualExtraction;
10
15
  baseActual: ActualExtraction | undefined;
11
16
  };
12
17
  export declare function readConformance(input: ActualArchitectureInput & {
13
18
  readonly member?: string;
19
+ readonly graph?: DependencyGraph;
14
20
  }): Conformance;
15
21
  export declare function projectConformance(result: Conformance, member: string, members: readonly string[]): Conformance;
16
22
  //# sourceMappingURL=conformance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/arch/conformance.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAQ7E,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAG1D,OAAO,KAAK,EAEV,WAAW,EAKZ,MAAM,wBAAwB,CAAA;AAwd/B,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,WAAW,CAEb;AACD,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,kBAAkB;;;;EA0E9B;AACD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,uBAAuB,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,WAAW,CAWb;AACD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,WAAW,CAMb"}
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/arch/conformance.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAQ7E,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAI1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAEV,WAAW,EAKZ,MAAM,wBAAwB,CAAA;AA8d/B,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,KAAK,CAAC,EAAE,eAAe,GACtB,WAAW,CAEb;AACD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,KAAK,CAAC,EAAE,eAAe;;;;EA6ExB;AACD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,uBAAuB,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,GAC9F,WAAW,CAWb;AACD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,WAAW,CAMb"}
@@ -3,6 +3,7 @@ import { readArchitectureSource } from './source.js';
3
3
  import { readBaselineConstraints, readConstraints, roleAt, semanticConstraints, } from './constraints.js';
4
4
  import { activeRoles } from './conformance-model.js';
5
5
  import { publicEntries, StaticResolver } from './resolve.js';
6
+ import { directionConformance } from './directions.js';
6
7
  const coverage = [
7
8
  ...['LAYER-ENTRY', 'LAYER-DIP', 'IC-1', 'IC-2', 'IC-3', 'IC-4', 'IC-5'].map(id => ({
8
9
  id,
@@ -30,6 +31,11 @@ const coverage = [
30
31
  scope: '插件树加载器已交付;本静态规则尚未覆盖最终配置,须核对真实组合证据',
31
32
  })),
32
33
  { id: 'IC-17', evidence: 'undecided', scope: '会话作用域机制待设计;图框不证明隔离' },
34
+ {
35
+ id: 'DIRECTION',
36
+ evidence: 'static-subset',
37
+ scope: '只覆盖 dependency-cruiser 已解析的源码导入(schema 3 的方向行);converged 不表示整体符合',
38
+ },
33
39
  ];
34
40
  const limitations = [
35
41
  '完整两版解析后筛选;新增偏离对 BASE 预期比较。',
@@ -327,11 +333,15 @@ function checkRoots(extraction, add, entries, snapshot) {
327
333
  }
328
334
  }
329
335
  }
330
- export function conformanceOf(root, current, baseline) {
331
- return analyzeConformance(root, current, baseline).conformance;
336
+ export function conformanceOf(root, current, baseline, graph) {
337
+ return analyzeConformance(root, current, baseline, graph).conformance;
332
338
  }
333
- /** One extraction per source version for constraints and actual assembly observations. */
334
- export function analyzeConformance(root, current, baseline) {
339
+ /**
340
+ * One extraction per source version for constraints and actual assembly observations.
341
+ * 方向行一节另从可信 runner 读(arch/directions.ts);调用方已经算过当前版本的依赖图时传进来,
342
+ * 免得再跑一次 dependency-cruiser;没传就按版本自己取,而且只在 runner 有方向行时才取。
343
+ */
344
+ export function analyzeConformance(root, current, baseline, graph) {
335
345
  const head = readConstraints(root, current.source), base = baseline === undefined ? undefined : readBaselineConstraints(root, baseline);
336
346
  const headActual = extractArchitecture(current.snapshot), baseActual = baseline === undefined ? undefined : extractArchitecture(baseline.snapshot);
337
347
  const rows = rowsOf(headActual, base ?? head, current.snapshot);
@@ -382,14 +392,17 @@ export function analyzeConformance(root, current, baseline) {
382
392
  current: head,
383
393
  ...(base === undefined ? {} : { baseline: base }),
384
394
  comparedWith: base === undefined ? 'current' : 'baseline',
385
- rows: rows.map(row => ({
386
- ...row,
387
- age: row.state !== 'deviation' || baseline === undefined
388
- ? 'unjudged'
389
- : stock.has(row.id)
390
- ? 'stock'
391
- : 'new',
392
- })),
395
+ rows: [
396
+ ...rows.map((row) => ({
397
+ ...row,
398
+ age: row.state !== 'deviation' || baseline === undefined
399
+ ? 'unjudged'
400
+ : stock.has(row.id)
401
+ ? 'stock'
402
+ : 'new',
403
+ })),
404
+ ...directionConformance({ root, current: current.source, baseline: baseline?.source, graph }),
405
+ ],
393
406
  changes,
394
407
  sourceChanges,
395
408
  changeState: base === undefined ? 'no-baseline' : 'compared',
@@ -400,7 +413,7 @@ export function analyzeConformance(root, current, baseline) {
400
413
  }
401
414
  export function readConformance(input) {
402
415
  const current = readArchitectureSource(input.root, input.revision), baseline = input.base === undefined ? undefined : readArchitectureSource(input.root, input.base);
403
- const result = conformanceOf(input.root, current, baseline);
416
+ const result = conformanceOf(input.root, current, baseline, input.graph);
404
417
  return input.member === undefined
405
418
  ? result
406
419
  : projectConformance(result, input.member, [...current.members, ...(baseline?.members ?? [])].map(member => member.path));
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/arch/conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/arch/conformance.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,30 @@ export declare const CONSTRAINT_PATH = "docs/architecture/constraints.json";
4
4
  export declare const LEGACY_CONSTRAINT_PATH = ".meta_harness/design/architecture/constraints.json";
5
5
  export declare const CONSTRAINT_PATHS: readonly ["docs/architecture/constraints.json", ".meta_harness/design/architecture/constraints.json"];
6
6
  export declare function safePath(path: string): string;
7
+ /**
8
+ * 角色所在的成员目录,按 deps/graph.ts 的 `memberOf` 算(`packages/<组>/<成员>` 或 `apps/<成员>`)。方向行按成员判目标,
9
+ * 所以它引用的角色的每条 `paths` 都必须落在同一个成员里;`examples/` 不是方向行可引用的成员。
10
+ */
11
+ export declare function roleMember(role: ArchitectureRole): string;
7
12
  export declare function parseConstraints(text: string): ArchitectureConstraints;
8
13
  export declare function readConstraints(root: string, source: SourceCoordinates): ConstraintInput;
9
14
  export declare function readBaselineConstraints(root: string, baseline: ArchitectureSource): ConstraintInput;
15
+ export declare const matchesRolePath: (path: string, pattern: string) => boolean;
16
+ export type RunnerConstraints = {
17
+ readonly kind: 'missing';
18
+ readonly path: string;
19
+ } | {
20
+ readonly kind: 'present';
21
+ readonly path: string;
22
+ readonly value: ArchitectureConstraints;
23
+ };
24
+ /**
25
+ * 运行检查器的仓库的 `constraints.json`(与 `cruiseConfig()` 同一个根)。`omne-deps` 的方向行只从这里读,
26
+ * 被检查的检出改不了它。文件缺失返回 missing;存在但解析、校验或来源核对失败则抛错。
27
+ */
28
+ export declare function readRunnerConstraints(root?: string): RunnerConstraints;
10
29
  export declare function constraintDependencies(root: string, revision?: string): readonly string[];
11
- export declare function constraintSourcePath(path: string, schemaVersion: 1 | 2, reference: string): string;
30
+ export declare function constraintSourcePath(path: string, schemaVersion: ArchitectureConstraints['schemaVersion'], reference: string): string;
12
31
  export declare function semanticConstraints(value: ArchitectureConstraints | null): string | null;
13
32
  export declare function roleAt(path: string, roles: readonly ArchitectureRole[]): ArchitectureRole | undefined;
14
33
  //# sourceMappingURL=constraints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/arch/constraints.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,uBAAuB,EAE5B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAA;AAEpB,eAAO,MAAM,eAAe,uCAAuC,CAAA;AACnE,eAAO,MAAM,sBAAsB,uDAAuD,CAAA;AAC1F,eAAO,MAAM,gBAAgB,uGAAqD,CAAA;AA6BlF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW7C;AAgCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAmEtE;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAGxF;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kBAAkB,GAC3B,eAAe,CAOjB;AAmDD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOzF;AA6BD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,CAAC,GAAG,CAAC,EACpB,SAAS,EAAE,MAAM,GAChB,MAAM,CAiBR;AA8ED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CA0BxF;AACD,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACjC,gBAAgB,GAAG,SAAS,CAkB9B"}
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/arch/constraints.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,uBAAuB,EAG5B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAA;AAEpB,eAAO,MAAM,eAAe,uCAAuC,CAAA;AACnE,eAAO,MAAM,sBAAsB,uDAAuD,CAAA;AAC1F,eAAO,MAAM,gBAAgB,uGAAqD,CAAA;AA+BlF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW7C;AAgCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAWzD;AAsGD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CA8BtE;AAUD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAGxF;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kBAAkB,GAC3B,eAAe,CASjB;AAGD,eAAO,MAAM,eAAe,SAAU,MAAM,WAAW,MAAM,KAAG,OACoB,CAAA;AAEpF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAChG;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,MAAqB,GAAG,iBAAiB,CAKpF;AAiDD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOzF;AA6BD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,EACvD,SAAS,EAAE,MAAM,GAChB,MAAM,CAiBR;AA+FD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAyBxF;AACD,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACjC,gBAAgB,GAAG,SAAS,CAkB9B"}