@omne-harness/repo-toolchain 0.0.10 → 0.0.12

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 (80) hide show
  1. package/README.md +41 -5
  2. package/README_ZH.md +70 -10
  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 +75 -0
  15. package/dist/arch/directions.d.ts.map +1 -0
  16. package/dist/arch/directions.js +197 -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/toolchain-config.d.ts +1 -1
  22. package/dist/core/toolchain-config.d.ts.map +1 -1
  23. package/dist/core/toolchain-config.js +7 -2
  24. package/dist/core/toolchain-config.js.map +1 -1
  25. package/dist/declarations/api-classify.d.ts +94 -0
  26. package/dist/declarations/api-classify.d.ts.map +1 -0
  27. package/dist/declarations/api-classify.js +208 -0
  28. package/dist/declarations/api-classify.js.map +1 -0
  29. package/dist/declarations/api-cli.d.ts +3 -0
  30. package/dist/declarations/api-cli.d.ts.map +1 -0
  31. package/dist/declarations/api-cli.js +92 -0
  32. package/dist/declarations/api-cli.js.map +1 -0
  33. package/dist/declarations/api-compare.d.ts +86 -0
  34. package/dist/declarations/api-compare.d.ts.map +1 -0
  35. package/dist/declarations/api-compare.js +616 -0
  36. package/dist/declarations/api-compare.js.map +1 -0
  37. package/dist/declarations/api-format.d.ts +47 -0
  38. package/dist/declarations/api-format.d.ts.map +1 -0
  39. package/dist/declarations/api-format.js +154 -0
  40. package/dist/declarations/api-format.js.map +1 -0
  41. package/dist/declarations/api-normalize.d.ts +20 -0
  42. package/dist/declarations/api-normalize.d.ts.map +1 -0
  43. package/dist/declarations/api-normalize.js +76 -0
  44. package/dist/declarations/api-normalize.js.map +1 -0
  45. package/dist/declarations/api-snapshot.d.ts +49 -0
  46. package/dist/declarations/api-snapshot.d.ts.map +1 -0
  47. package/dist/declarations/api-snapshot.js +282 -0
  48. package/dist/declarations/api-snapshot.js.map +1 -0
  49. package/dist/declarations/api-whitelist.d.ts +25 -0
  50. package/dist/declarations/api-whitelist.d.ts.map +1 -0
  51. package/dist/declarations/api-whitelist.js +415 -0
  52. package/dist/declarations/api-whitelist.js.map +1 -0
  53. package/dist/declarations/compat.d.ts +11 -0
  54. package/dist/declarations/compat.d.ts.map +1 -1
  55. package/dist/declarations/compat.js +9 -4
  56. package/dist/declarations/compat.js.map +1 -1
  57. package/dist/declarations/contract-api.d.ts +128 -0
  58. package/dist/declarations/contract-api.d.ts.map +1 -0
  59. package/dist/declarations/contract-api.js +420 -0
  60. package/dist/declarations/contract-api.js.map +1 -0
  61. package/dist/deps/cli.js +32 -7
  62. package/dist/deps/cli.js.map +1 -1
  63. package/dist/deps/graph.d.ts +22 -2
  64. package/dist/deps/graph.d.ts.map +1 -1
  65. package/dist/deps/graph.js +35 -14
  66. package/dist/deps/graph.js.map +1 -1
  67. package/dist/loop/hook-measure.d.ts.map +1 -1
  68. package/dist/loop/hook-measure.js +4 -3
  69. package/dist/loop/hook-measure.js.map +1 -1
  70. package/dist/loop/run.d.ts +3 -2
  71. package/dist/loop/run.d.ts.map +1 -1
  72. package/dist/loop/run.js +8 -7
  73. package/dist/loop/run.js.map +1 -1
  74. package/dist/loop/sensors/conformance.d.ts +6 -2
  75. package/dist/loop/sensors/conformance.d.ts.map +1 -1
  76. package/dist/loop/sensors/conformance.js +6 -3
  77. package/dist/loop/sensors/conformance.js.map +1 -1
  78. package/dist/metrics/cli.js +4 -1
  79. package/dist/metrics/cli.js.map +1 -1
  80. package/package.json +3 -2
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [中文说明](README_ZH.md)
4
4
 
5
- `@omne-harness/repo-toolchain` is this repository's checker package. It is published on npm. It provides the rule engine, commit attribution, the dependency graph, declaration compatibility, structure metrics, actual architecture extraction, the review page and the clean loop. The repository pins its exact version in the catalog of `pnpm-workspace.yaml`. The root checks and the three tool members run that version from npm, not the sources in this directory. After a change here, publish a new version first, then open a PR that changes the pin. See the [development guide](../../docs/development.md#仓库工具链的版本).
5
+ `@omne-harness/repo-toolchain` is this repository's checker package. It is published on npm. It provides the rule engine, commit attribution, the dependency graph, declaration compatibility, contract API snapshots, structure metrics, actual architecture extraction, the review page and the clean loop. The repository pins its exact version in the catalog of `pnpm-workspace.yaml`. The root checks and the three tool members run that version from npm, not the sources in this directory. After a change here, publish a new version first, then open a PR that changes the pin. See the [development guide](../../docs/development.md#仓库工具链的版本).
6
6
 
7
7
  Three unpublished tool members import this package through its subpaths. This package does not import them:
8
8
 
@@ -13,8 +13,8 @@ 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.
17
- - Configuration is in [`repo-toolchain.config.json`](../../repo-toolchain.config.json) at the repository root, in the sections `loop`, `metrics` and `acceptanceLock`. A missing file, a missing section or an unknown section is an error. No defaults apply.
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
+ - 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
 
20
20
  ## Default baseline
@@ -39,8 +39,9 @@ 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
+ | `omne-contract-api` | `src/declarations/api-cli.ts` | Contract API snapshots: write, check, and a coarse class of the change against a base |
44
45
  | `omne-metrics` | `src/metrics/cli.ts` | Structure metrics and the review page |
45
46
  | `omne-loop-status` | `src/loop/cli.ts` | Clean loop status |
46
47
  | `omne-loop-health` | `src/loop/health-cli.ts` | Process health page |
@@ -51,6 +52,40 @@ The actual architecture extraction reads only the files of one revision. A packa
51
52
 
52
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.
53
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
+
66
+ ## Contract API snapshots
67
+
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).
69
+
70
+ - `--write` writes the snapshots from `dist`. It does not write a member that has no `dist`, incomplete declarations or compile diagnostics.
71
+ - `--check` compares each snapshot file with a snapshot that it makes from `dist` now, and reports each difference. With `--json`, it gives the SHA-256 of each snapshot file. The snapshot digest is this SHA-256 of the file bytes.
72
+ - `--diff <base>` compares the snapshot files at a base commit with the snapshot files in the working tree. It gives `none`, `additive` or `review` for each member and reports which side a change breaks. It reads only the snapshot files, not `dist`, so run `--check` first. The member list is the union of the contract lists at the base and now. A member without a snapshot at the base counts as `additive`. To decide whether a change is additive, give the milestone baseline commit.
73
+ - `--check` and `--diff` only report and exit 0. `--write` exits 1 when it cannot write a member. Errors exit 2.
74
+
75
+ A snapshot has two parts: the names that each entry exports, and every declaration file of the member's `dist`, normalized by the TypeScript printer. The declaration files keep their imports, exports and module augmentations, so a snapshot can be restored to declarations that compile.
76
+
77
+ The class is a whitelist gate. Differences fall into two buckets. Any difference in global scope makes the whole member `review` without running the checker: a `declare global` block or a `declare module` block for an external module that is added, removed or changed; a script file (a `.d.ts` without imports or exports) that is added, removed, changed or switched to a module; any triple-slash directive difference; an added or removed import or `export … from` edge (bound, type-only, empty and side-effect imports all count); an added, removed or renamed `export as namespace`. A consumer's program has one global scope, so the checker cannot prove that such a change leaves existing exports untouched. In module scope a change is `additive` only with two pieces of positive evidence. First, every difference is in the whitelist. The whitelist has two kinds of change: a new export that introduces a name the old side does not know (a declaration that merges with an existing one, such as a new overload, does not count; nor does a name that an entry already exports or that resolves to an existing symbol in the file's scope, such as a local `Error` shadowing the lib's), and a new optional property (property syntax) in a module-scope interface or type literal (a change inside an augmentation of the member's own module does not count). Second, the TypeScript checker proves assignability in two directions for each export that the change touches. New to old shows that existing readers still accept the new value. Old to new shows that existing writers (providers, doubles and implementers) still produce an accepted value. Everything else is `review`, and the report names the rule: a global-scope change, a change outside the whitelist, no comparison covers the export, a direction fails, the checker did not finish, too many instance combinations, or compile diagnostics. The tool uses `@typescript/typescript6`, which repo-toolchain already depends on. It adds no new dependency.
78
+
79
+ The tool does not use API Extractor, because API Extractor does not analyze ambient declarations. It drops every `declare module` and `declare global` augmentation, and the public surface of 8 of the 27 contract members contains such augmentations.
80
+
81
+ The `contractApi` configuration section has two keys. `members` is the path of the line table. `snapshot` is the snapshot path template. It ends with `.md` and contains `{member}` or `{package}`. Any other key, a missing key or a bad value is an error.
82
+
83
+ `review` means that a person must decide. It includes changes that break the writer, the reader or both. It also includes changes that the additive-change table allows but that are outside the whitelist. Examples are a new member of a union that the contract declares open, and a new default for a type parameter. `review` is not a level for the "契约变化" section of a PR. A person decides that level (none, additive or breaking) from the additive-change table in `docs/engineering/integration.md`.
84
+
85
+ The tool reads only the shape of the declarations. It does not read behavior, documentation or runtime validation. It reports which side breaks, but it does not decide whether that break is acceptable. The gate fails closed: when the evidence is not complete, the result is `review`. So `review` results are more frequent than with the checker alone. This is a deliberate trade-off for the report-only stage. A snapshot that matches `dist` shows only that the snapshot is current. It does not show that a change is additive. See the SPEC for the known limits, including the recursion heuristic that puts additive changes to types like `ToolBindings` into `review`.
86
+
87
+ A card that changes the public surface of a contract member runs `--write` in the same PR. When the snapshot format version changes, all snapshots must be made again. See the Chinese README section "契约 API 快照" for the operating rules.
88
+
54
89
  ## Stop-hook revision reads
55
90
 
56
91
  The Stop hook recalculates its baseline on each invocation. With a task context it uses `taskBase`. Without one it uses the nearest merge base among `primaryBranch` and the active tracks in `integration-policy.json`. See the Chinese README section "收工钩子" for the exact rules.
@@ -67,10 +102,11 @@ That explicit base does not change the automatic hook's base. The internal 40-se
67
102
  The clean loop reads complete current and BASE sources through `sensors.architecture`.
68
103
  Global expectations belong to `docs/architecture/constraints.json`.
69
104
  Each version discovers its own current or historical input. Duplicate owners and invalid source references fail.
70
- 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.
71
106
  IC-1 and IC-5 use adopted roles and actual public exports. Directory names grant no exception.
72
107
  A missing current or BASE input remains unknown or no-data. Current deletion still reports its semantic change.
73
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 that graph 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.
74
110
  It reports static conformance separately from added, removed and changed assembly facts.
75
111
  Fact counts are neutral. They have no thresholds or trend comparison.
76
112
 
package/README_ZH.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md)
4
4
 
5
- `@omne-harness/repo-toolchain` 是本仓库的检查器包,发布在 npm。它提供规则引擎、提交署名、依赖图、声明兼容、结构度量、实际架构抽取、审讯页与 clean loop。仓库在 `pnpm-workspace.yaml` 的 catalog 里钉它的精确版本,根目录的检查与三个工具成员都运行 npm 上的那个版本,不运行本目录的源码。改了本目录,要先发新版本,再开改钉子的 PR,见[开发指南](../../docs/development.md#仓库工具链的版本)。
5
+ `@omne-harness/repo-toolchain` 是本仓库的检查器包,发布在 npm。它提供规则引擎、提交署名、依赖图、声明兼容、契约 API 快照、结构度量、实际架构抽取、审讯页与 clean loop。仓库在 `pnpm-workspace.yaml` 的 catalog 里钉它的精确版本,根目录的检查与三个工具成员都运行 npm 上的那个版本,不运行本目录的源码。改了本目录,要先发新版本,再开改钉子的 PR,见[开发指南](../../docs/development.md#仓库工具链的版本)。
6
6
 
7
7
  三个不发布的工具成员经本包的子路径导入它,本包不引用它们:
8
8
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  - 被检查的仓库取 `OMNE_SUBJECT_ROOT`,未设置时取当前目录所在 Git 仓库的根。
16
16
  - 运行检查器的仓库取 `OMNE_RUNNER_ROOT`,未设置时与被检查的仓库相同。依赖规则(`.dependency-cruiser.cjs`、`tsconfig.base.json`)与配置只从这个仓库读,被检查的检出改不了它们。
17
- - 配置在仓库根的 [`repo-toolchain.config.json`](../../repo-toolchain.config.json),分 `loop`、`metrics`、`acceptanceLock` 三节。缺文件、缺节或有认不出的节时报错,不使用默认值。
17
+ - 配置在仓库根的 [`repo-toolchain.config.json`](../../repo-toolchain.config.json),可有 `loop`、`metrics`、`acceptanceLock`、`contractApi` 四节,每个命令只读自己的那一节。缺文件、缺所读的节或有认不出的节时报错,不使用默认值。`contractApi` 一节从 0.0.10 起认得,更早的版本见到它会报错。
18
18
  - dependency-cruiser 需要 TypeScript 才能解析 `.ts`。用 pnpm 安装时,在 `pnpm-workspace.yaml` 的 `packageExtensions` 里给 dependency-cruiser 加上 `typescript`。找不到 TypeScript 时,依赖图检查报错退出,不会在漏掉 `.ts` 的情况下通过。
19
19
 
20
20
  ## 包内分层
@@ -29,8 +29,9 @@
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
+ | `omne-contract-api` | `src/declarations/api-cli.ts` | 契约成员的 API 快照:写、核对与相对基线的粗分类 |
34
35
  | `omne-metrics` | `src/metrics/cli.ts` | 结构度量与审讯页 |
35
36
  | `omne-loop-status` | `src/loop/cli.ts` | 回路状态 |
36
37
  | `omne-loop-health` | `src/loop/health-cli.ts` | 流程体检页 |
@@ -67,13 +68,26 @@ pnpm --filter @omne-harness/repo-toolchain test
67
68
  仓库只有一张依赖图,由 dependency-cruiser 按根 `.dependency-cruiser.cjs` 生成,入口在 `src/deps/graph.ts`。`pnpm run lint:deps`(`src/deps/cli.ts`)、[回路状态](#回路状态)的硬线与新增跨成员依赖、[结构度量](#结构度量)和[实际架构](#全局实际架构视图)的报告都读它,本包不再自写导入解析或层位表。
68
69
 
69
70
  - 规则:无法解析的导入、文件级运行时循环、legacy 引用,以及按[产品包组织](../../docs/package-organization.md#依赖方向与cordis集成)与[系统分层](../../docs/architecture/layers-and-dependencies.md#依赖关系与禁止方向)写成成员路径的方向规则(SDK 与 server-entry 互不导入、公开契约不依赖两端实现、业务不依赖 SDK 与装配入口、common 与 util 不依赖领域成员、产品包不依赖应用与工具)。每条规则的 `comment` 指回出处。要按角色判断的规则(契约不依赖提供者等)还没有机读的角色,没有写。
70
- - 成员边:产品源码(不含测试)解析到另一个成员的依赖,类型导入也算。成员与组之间的环由这些边算出。导入处的行号按说明符在文件里第一次出现的位置找。
71
+ - 方向行:`docs/architecture/constraints.json` schema 3 的 `directions`,格式与校验见[符合性契约](src/arch/CONFORMANCE.md#方向行);`omne-deps` 怎样用它见下面[依赖方向](#依赖方向)一节。
72
+ - 成员边:产品源码(不含测试)解析到另一个成员的依赖,类型导入也算。成员与组之间的环由这些边算出。导入处的行号按说明符在文件里第一次出现的位置找。图里另保留成员里 dependency-cruiser 走到的模块清单(`modules`)与跨成员的文件级依赖事实(`dependencies`,含测试与 `src` 下的 testing 入口,不含 Node 内建模块),方向行的判定与架构符合性报告的方向行都只从这两项判断,不另解析导入。
71
73
  - 工作树的图不含被 Git 忽略且未跟踪的目录里的模块与它们的违规(本地产物,理由同[实际架构](#全局实际架构视图)的成员规则);不在 Git 仓库里的目录没有忽略规则,照常出图。
72
74
  - 规则与解析选项(`tsconfig.base.json` 的 `source` 条件)只从运行检查器的仓库读,被检查的检出改不了。
73
- - 基线图:把那个提交的源码导出到 git 公共目录下的临时树,按成员包名补上 `node_modules/@omne-harness/*` 链接后跑;结果按提交与规则文件摘要缓存在 `<git-common-dir>/omne-dep-graph/`,同一基线只算一次,不写工作树。
75
+ - 基线图:把那个提交的源码导出到 git 公共目录下的临时树,按成员包名补上 `node_modules/@omne-harness/*` 链接后跑;结果按提交、规则文件摘要与图的格式版本缓存在 `<git-common-dir>/omne-dep-graph/`,同一基线只算一次,不写工作树。
74
76
  - 耗时:本机全仓一次约 3 秒,基线命中缓存约 10 毫秒。
77
+ - 回路状态的硬线是依赖违规与环;方向命中只让 `lint:deps` 退出 1,回路里只报告。
75
78
 
76
- 自测:`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,所以文件坏了不出依赖图。
77
91
 
78
92
  ## 提交署名
79
93
 
@@ -235,7 +249,7 @@ architecture 报告的函数变化和关系变化都用精确 BASE;metrics 报
235
249
  `pnpm run metrics` 是本包的第二入口(`src/metrics/`)。它**只报告、不判失败**,不在 `pnpm run check` 里;能让检查失败的只有上面的方向规则与提交署名。
236
250
 
237
251
  ```sh
238
- pnpm run metrics # 全仓:实际架构、圈复杂度、依赖图、方向与环
252
+ pnpm run metrics # 全仓:实际架构、圈复杂度、依赖图、依赖方向与环
239
253
  pnpm run metrics --base <基线提交或分支> # 另标出基线以来变更的成员、函数、导入与提交形状
240
254
  omne-metrics --plan <计划文件> --coverage # 再对计划里要跑测试的成员逐个跑测试,取覆盖率并合成 CRAP(先构建)
241
255
  ```
@@ -323,7 +337,7 @@ CLI 的范围只有 `all` 和 `engineering`,默认 `all`;工程范围必须
323
337
  只有当前与全部基线的两类计数均为零,duplication、assertions 启用但无数据时才列入 `hardLines.sensors.notApplicable`,原因码为 `engineering-without-product-inputs`。
324
338
  `status.json` 的 `scope.evidence` 保存当前计数和各基线的精确提交、计数。原始 `sensors` 仍是 no-data;终端与 Markdown 点名工程范围不适用。关闭项仍列 `off`,其他启用的无数据项仍列 `silent` 并失败。
325
339
  最后一个输入被删除或迁入 legacy 时,历史输入仍阻止豁免。无效 context、无效基线、缺对象、读取错误及无法分类的历史链接或子模块按工具错误失败。输入范围沿现有扫描器,包括 legacy、构建产物、测试和声明文件规则。
326
- 普通本地 `pnpm run check`、默认 strict、方向与环、验收锁和趋势只读边界保持。工程范围不证明产品质量通过,也不证明跳过的测试通过。
340
+ 普通本地 `pnpm run check`、默认 strict、依赖方向与环、验收锁和趋势只读边界保持。工程范围不证明产品质量通过,也不证明跳过的测试通过。
327
341
 
328
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、受控命令替身、真实工程入口分别提供证据。
329
343
 
@@ -373,8 +387,9 @@ CLI 的范围只有 `all` 和 `engineering`,默认 `all`;工程范围必须
373
387
 
374
388
  `src/arch/` 按完整版本源码抽取实际关系,回路经 `sensors.architecture` 读取。
375
389
  全局预期归 `docs/architecture/constraints.json`。
376
- 当前及历史版本分别发现唯一源,同版双源或坏依据拒绝。schema 2依据路径从仓库根解析,文件和Markdown锚点在相同版本校验。IC-1与IC-5沿采用责任及真实公开入口判断,目录名不构成许可。
390
+ 当前及历史版本分别发现唯一源,同版双源或坏依据拒绝。schema 2 与 3 的依据路径从仓库根解析,文件和Markdown锚点在相同版本校验。IC-1与IC-5沿采用责任及真实公开入口判断,目录名不构成许可。
377
391
  缺当前或BASE输入保留unknown或no-data,删除变化仍可见。只修改依据Markdown也触发收工测量。精确输入、范围和不能证明的性质见[符合性契约](src/arch/CONFORMANCE.md)。
392
+ 符合性报告带[方向行](src/arch/CONFORMANCE.md#方向行):方向行与角色读运行检查器仓库的 `constraints.json`(与 `omne-deps` 同一份),依赖事实读本版的依赖图,图不可得时这些行是 unknown;基线的图不可得时偏离行不判新旧,每一行写明原因;方向偏离在回路里只报告,不是硬线。
378
393
  集成约定归 [Cordis 集成约定](../../docs/architecture/cordis-integration-conventions.md)。
379
394
  工具不反写预期,也不从目录存在性或手写绑定推断实现状态。
380
395
 
@@ -404,7 +419,7 @@ contract、owner、layer、定义形式、提供形式和表达形状独立参
404
419
  实际增减与全局预期改动分别进入 explain/钩子,均不称“新增偏离”。
405
420
  新增架构偏离仍对完整 BASE 预期比较,修改 HEAD 预期不能抹掉它。
406
421
  IC-5 例外仅放行 BASE 点名的精确导出符号,namespace 通配符和新增符号仍不放行。
407
- 例外记录共同存储与出处,不据此证明同提交;方向和环硬线保持独立。
422
+ 例外记录共同存储与出处,不据此证明同提交;依赖方向和环硬线保持独立。
408
423
 
409
424
  当前或BASE全局预期缺失时,architecture是no-data,严格模式点名失败;已有 BASE 的预期删除差分仍可见。
410
425
  有效预期与完整实际源码都已读取时,空事实集是真实空结果,不能和 no-data 混淆。
@@ -605,3 +620,48 @@ pnpm run loop:health # --out 可改产物目录
605
620
  `pnpm run check` 在构建一步之后常驻跑它。
606
621
 
607
622
  本工具调用 `createProgram`、`createSourceFile` 等旧编程接口的模块都从 `@typescript/typescript6` 导入,行为与 TypeScript 6 相同。
623
+
624
+ ## 契约 API 快照
625
+
626
+ 契约成员是[线归属表](../../docs/engineering/delivery-lines.json)各线 `contracts` 列出的成员。线内的卡对它们只做可加改动,规则见[可加改动](../../docs/engineering/integration.md#可加改动)。本命令给每个契约成员一份入库的 API 快照,并把两份快照之间的差异粗分为三类:`none` 表示没有变化;`additive` 表示改动对已有的读方与写方都不破坏;`review` 表示其余一切改动,需要人判断。它只报告,不拦截。行为契约(输入、快照内容、确定性、分类规则、已知限制、退出码与配置校验)见 [SPEC](src/declarations/SPEC.md)。
627
+
628
+ ```sh
629
+ omne-contract-api --write # 从 dist 重写快照(先构建)
630
+ omne-contract-api --check # 拿 dist 现场生成的快照与快照文件比
631
+ omne-contract-api --diff <基线提交或分支> # 基线提交上的快照对工作树的快照,逐成员粗分类
632
+ ```
633
+
634
+ 三个动作都可加 `--json`,把结果按 JSON 写到标准输出。`--root <检出目录>` 指定被检查的检出。
635
+
636
+ 配置在 `repo-toolchain.config.json` 的 `contractApi` 一节,有两个键:
637
+
638
+ - `members`:线归属表的路径。
639
+ - `snapshot`:快照路径模板,以 `.md` 结尾,至少含 `{member}`(成员目录)或 `{package}`(不带 scope 的包名)之一。
640
+
641
+ 这一节有别的键、缺键或值不合条件时,命令报错退出。两个成员算出同一个快照路径时,命令也报错退出。
642
+
643
+ 读法与[声明兼容](#声明兼容)用同一套 TypeScript 6 选项,另建一个程序,按消费者视角读 dist。成员 dist 有编译诊断时,不生成它的快照。
644
+
645
+ 快照分两部分:每个入口导出的名字(写明声明在哪个文件或哪个外部包),以及成员 dist 里经打印器规范化的全部声明文件。声明文件保留导入、导出与模块扩充,所以快照能还原成一组能编译的声明。
646
+
647
+ 分类是白名单门:只有正证据成立才是 `additive`。差异分两桶。全局作用域的任何差异整份 `review`,不跑检查器:`declare global` 与对外部模块的 `declare module` 块的增删改、脚本文件的增删改或与模块之间切换、三斜线指令的变化、导入或 `export … from` 的模块边增删(带绑定、仅类型、空导入、无绑定导入都算)、`export as namespace` 的增删改。消费者程序里全局作用域只有一份,检查器证明不了「这处改动没有影响已有导出」。模块作用域的正证据有两条。第一,每一处差异都在白名单里,白名单只有两类:新增一个旧侧不知道的名字的导出(与已有同名声明合并的不算,例如新增重载;与入口已有的导出名或该文件作用域里已有符号重名的也不算,例如遮住 `export *` 导出的名字或 lib 的 `Error`),以及在模块作用域的接口或类型字面量里新增可选属性(属性写法;对本成员模块的扩充块内的改动不算)。第二,TypeScript 检查器对涉及的每个导出证明两个方向都可赋值:新 → 旧成立表示读方不破坏,旧 → 新成立表示写方(提供者、替身、实现者)不破坏。其余一律 `review`,报告写明命中哪一条:全局作用域变了、白名单外改动、没有比较覆盖、方向不成立、检查器未完成、实例组合超限、编译诊断。它用的是 repo-toolchain 已有的 `@typescript/typescript6`,不加新依赖。规则、白名单与归一化见 [SPEC](src/declarations/SPEC.md#分类)。
648
+
649
+ 不用 API Extractor 的理由:它不分析 ambient 声明,`declare module` 与 `declare global` 的扩充在它的报告里全部缺失,而 27 个契约成员里有 8 个的公开面含这类扩充。探路与复核的结论记在卡 #645 的评论里。
650
+
651
+ 操作要求:
652
+
653
+ - 改了契约成员公开面的卡,在同一个 PR 里构建并运行 `--write`,把快照的变化一起提交。`--check` 报不一致时,先判断改动是否有意。
654
+ - 本工具改了快照格式(格式版本变了)时,全部快照要重新生成。
655
+ - 谁写首份快照、格式变化时谁重新生成,规则见[里程碑内的规则](../../docs/engineering/integration.md#里程碑内的规则)。
656
+
657
+ `--diff` 的前提:
658
+
659
+ - 它只比快照文件,不读 dist。先用 `--check` 确认工作树的快照与 dist 一致,或先运行 `--write`。
660
+ - 成员取基线与当前两份线归属表的并集,每侧的快照路径按那一侧的包名算。基线上没有快照的成员整份算 `additive`。
661
+ - 判断改动是否可加时,传里程碑登记的基线提交。
662
+
663
+ 快照摘要是快照文件字节的 SHA-256。`--check --json` 对每个有快照文件的成员给出 `sha256`。
664
+
665
+ `review` 不是 PR「契约变化」一节的级别。它包括两方都破坏的改动、只破坏一方的改动,也包括按「可加改动」表不破坏、但不在白名单里的改动(例如契约声明开放的联合加成员、给类型参数加默认值)。PR 的 none、additive 或 breaking 由人按「可加改动」表判定。
666
+
667
+ 它**不能声称**的:它报出读方与写方两个方向,但不判定哪个方向的破坏可以接受。白名单门失败关闭,拿不准时给 `review`,所以 `review` 会比只用检查器时多。这是 P1 只报告阶段的有意取舍。它只看声明的形状,不看行为、文档或运行时校验。转导出的别的包的声明变化归那个包的快照。快照与 dist 一致只说明快照是最新的,不说明改动可加。其余限制(例如 `ToolBindings` 一类的递归启发式误报)见 [SPEC](src/declarations/SPEC.md#已知限制)。
@@ -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":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,eAAO,MAAM,QAAQ,YACnB,aAAa,EACb,WAAW,EACX,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,CACE,CAAA;AACV,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,KAAK,GACb,aAAa,GACb,QAAQ,GACR,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAA;AACb,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AACD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AACD,yEAAyE;AACzE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAA;IAClE,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KACxB,EAAE,CAAA;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC5E;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/E,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5C;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,gBAAgB,EAAE,CAG/E;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAA;IACtD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,GAAG,UAAU,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAClC;AACD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IAC5E,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC7C,QAAQ,CAAC,aAAa,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACnD,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,aAAa,CAAA;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAA;QAC3F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACvB,EAAE,CAAA;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC"}
@@ -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"}