@jeger-ai/opengantry 2.7.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +132 -328
  2. package/dist/cli/commands/arch.d.ts +1 -0
  3. package/dist/cli/commands/arch.d.ts.map +1 -1
  4. package/dist/cli/commands/arch.js +17 -6
  5. package/dist/cli/commands/arch.js.map +1 -1
  6. package/dist/cli/commands/blueprint.d.ts +7 -0
  7. package/dist/cli/commands/blueprint.d.ts.map +1 -0
  8. package/dist/cli/commands/blueprint.js +69 -0
  9. package/dist/cli/commands/blueprint.js.map +1 -0
  10. package/dist/cli/commands/init.d.ts +3 -0
  11. package/dist/cli/commands/init.d.ts.map +1 -1
  12. package/dist/cli/commands/init.js +12 -0
  13. package/dist/cli/commands/init.js.map +1 -1
  14. package/dist/cli/lib/architecture-drift-doctor.d.ts +4 -0
  15. package/dist/cli/lib/architecture-drift-doctor.d.ts.map +1 -0
  16. package/dist/cli/lib/architecture-drift-doctor.js +58 -0
  17. package/dist/cli/lib/architecture-drift-doctor.js.map +1 -0
  18. package/dist/cli/lib/blueprint-engine.d.ts +22 -0
  19. package/dist/cli/lib/blueprint-engine.d.ts.map +1 -0
  20. package/dist/cli/lib/blueprint-engine.js +127 -0
  21. package/dist/cli/lib/blueprint-engine.js.map +1 -0
  22. package/dist/cli/lib/discovery-proposal.d.ts +19 -0
  23. package/dist/cli/lib/discovery-proposal.d.ts.map +1 -0
  24. package/dist/cli/lib/discovery-proposal.js +110 -0
  25. package/dist/cli/lib/discovery-proposal.js.map +1 -0
  26. package/dist/cli/lib/discovery-scanner.d.ts +47 -0
  27. package/dist/cli/lib/discovery-scanner.d.ts.map +1 -0
  28. package/dist/cli/lib/discovery-scanner.js +81 -0
  29. package/dist/cli/lib/discovery-scanner.js.map +1 -0
  30. package/dist/cli/lib/doctor-core.d.ts.map +1 -1
  31. package/dist/cli/lib/doctor-core.js +2 -0
  32. package/dist/cli/lib/doctor-core.js.map +1 -1
  33. package/dist/cli/lib/domains/domain-adapter.d.ts +38 -0
  34. package/dist/cli/lib/domains/domain-adapter.d.ts.map +1 -0
  35. package/dist/cli/lib/domains/domain-adapter.js +20 -0
  36. package/dist/cli/lib/domains/domain-adapter.js.map +1 -0
  37. package/dist/cli/lib/domains/domain-code.d.ts +3 -0
  38. package/dist/cli/lib/domains/domain-code.d.ts.map +1 -0
  39. package/dist/cli/lib/domains/domain-code.js +171 -0
  40. package/dist/cli/lib/domains/domain-code.js.map +1 -0
  41. package/dist/cli/lib/domains/domain-content.d.ts +3 -0
  42. package/dist/cli/lib/domains/domain-content.d.ts.map +1 -0
  43. package/dist/cli/lib/domains/domain-content.js +190 -0
  44. package/dist/cli/lib/domains/domain-content.js.map +1 -0
  45. package/dist/cli/lib/domains/index.d.ts +5 -0
  46. package/dist/cli/lib/domains/index.d.ts.map +1 -0
  47. package/dist/cli/lib/domains/index.js +5 -0
  48. package/dist/cli/lib/domains/index.js.map +1 -0
  49. package/dist/cli/lib/errors.d.ts +0 -6
  50. package/dist/cli/lib/errors.d.ts.map +1 -1
  51. package/dist/cli/lib/errors.js +0 -4
  52. package/dist/cli/lib/errors.js.map +1 -1
  53. package/dist/cli/lib/gxt-error-codes.d.ts +0 -2
  54. package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
  55. package/dist/cli/lib/gxt-error-codes.js +0 -2
  56. package/dist/cli/lib/gxt-error-codes.js.map +1 -1
  57. package/dist/cli/lib/init-discover.d.ts +14 -0
  58. package/dist/cli/lib/init-discover.d.ts.map +1 -0
  59. package/dist/cli/lib/init-discover.js +45 -0
  60. package/dist/cli/lib/init-discover.js.map +1 -0
  61. package/dist/cli/lib/target-architecture.d.ts +12 -3
  62. package/dist/cli/lib/target-architecture.d.ts.map +1 -1
  63. package/dist/cli/lib/target-architecture.js +108 -8
  64. package/dist/cli/lib/target-architecture.js.map +1 -1
  65. package/dist/cli/lib/verification-plan.d.ts +22 -0
  66. package/dist/cli/lib/verification-plan.d.ts.map +1 -0
  67. package/dist/cli/lib/verification-plan.js +26 -0
  68. package/dist/cli/lib/verification-plan.js.map +1 -0
  69. package/dist/cli/lib/verify-export.d.ts.map +1 -1
  70. package/dist/cli/lib/verify-export.js +27 -17
  71. package/dist/cli/lib/verify-export.js.map +1 -1
  72. package/dist/cli/lib/verify-failure-normalize.d.ts +2 -1
  73. package/dist/cli/lib/verify-failure-normalize.d.ts.map +1 -1
  74. package/dist/cli/lib/verify-failure-normalize.js +37 -1
  75. package/dist/cli/lib/verify-failure-normalize.js.map +1 -1
  76. package/dist/cli/lib/verify-finding.d.ts +16 -0
  77. package/dist/cli/lib/verify-finding.d.ts.map +1 -0
  78. package/dist/cli/lib/verify-finding.js +11 -0
  79. package/dist/cli/lib/verify-finding.js.map +1 -0
  80. package/dist/cli/lib/verify-payload.d.ts +4 -0
  81. package/dist/cli/lib/verify-payload.d.ts.map +1 -1
  82. package/dist/cli/lib/verify-payload.js +1 -1
  83. package/dist/cli/lib/verify-payload.js.map +1 -1
  84. package/dist/cli/lib/version.gen.d.ts +1 -1
  85. package/dist/cli/lib/version.gen.js +1 -1
  86. package/dist/cli/program-blueprint.d.ts +3 -0
  87. package/dist/cli/program-blueprint.d.ts.map +1 -0
  88. package/dist/cli/program-blueprint.js +12 -0
  89. package/dist/cli/program-blueprint.js.map +1 -0
  90. package/dist/cli/program-core.d.ts.map +1 -1
  91. package/dist/cli/program-core.js +5 -1
  92. package/dist/cli/program-core.js.map +1 -1
  93. package/dist/cli/program-workflow.d.ts.map +1 -1
  94. package/dist/cli/program-workflow.js +19 -1
  95. package/dist/cli/program-workflow.js.map +1 -1
  96. package/dist/cli/program.d.ts.map +1 -1
  97. package/dist/cli/program.js +2 -0
  98. package/dist/cli/program.js.map +1 -1
  99. package/package.json +1 -1
  100. package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
@@ -0,0 +1,190 @@
1
+ import { registerDomainAdapter, } from "./domain-adapter.js";
2
+ const BOILERPLATE_MIN_LINES = 2;
3
+ const BOILERPLATE_MAX_LINES = 12;
4
+ /** Extract verbatim multi-line blocks (≥2 lines, trimmed) for exact-match boilerplate detection. */
5
+ function extractVerbatimBlocks(body) {
6
+ const lines = body.split(/\r?\n/);
7
+ const blocks = [];
8
+ for (let start = 0; start < lines.length; start++) {
9
+ for (let len = BOILERPLATE_MIN_LINES; len <= BOILERPLATE_MAX_LINES && start + len <= lines.length; len++) {
10
+ const slice = lines.slice(start, start + len);
11
+ const trimmed = slice.map((l) => l.trimEnd()).join("\n").trim();
12
+ if (trimmed.length < 20)
13
+ continue;
14
+ if (!/[a-zA-Z]/.test(trimmed))
15
+ continue;
16
+ blocks.push({ block: trimmed, line: start + 1 });
17
+ }
18
+ }
19
+ return blocks;
20
+ }
21
+ function extractFrontmatterKeys(body) {
22
+ if (!body.startsWith("---"))
23
+ return [];
24
+ const end = body.indexOf("\n---", 3);
25
+ if (end === -1)
26
+ return [];
27
+ const fm = body.slice(3, end);
28
+ const keys = [];
29
+ for (const line of fm.split(/\r?\n/)) {
30
+ const m = /^([a-zA-Z0-9_-]+):/.exec(line.trim());
31
+ if (m)
32
+ keys.push(m[1]);
33
+ }
34
+ return keys.sort();
35
+ }
36
+ function extractContentEvidence(files) {
37
+ const blockOccurrences = new Map();
38
+ for (const file of files) {
39
+ for (const { block, line } of extractVerbatimBlocks(file.body)) {
40
+ const entry = blockOccurrences.get(block) ?? { files: new Set(), evidence: [] };
41
+ entry.files.add(file.rel);
42
+ if (entry.evidence.length < 3) {
43
+ entry.evidence.push({
44
+ file: file.rel,
45
+ line,
46
+ snippet: block.split("\n")[0].slice(0, 120),
47
+ });
48
+ }
49
+ blockOccurrences.set(block, entry);
50
+ }
51
+ }
52
+ const conventions = [];
53
+ const anomalies = [];
54
+ let convIdx = 0;
55
+ let anomIdx = 0;
56
+ const sharedBlocks = [...blockOccurrences.entries()]
57
+ .filter(([, v]) => v.files.size >= 2)
58
+ .sort((a, b) => a[0].localeCompare(b[0]));
59
+ for (const [block, meta] of sharedBlocks.slice(0, 10)) {
60
+ convIdx += 1;
61
+ const fileList = [...meta.files].sort();
62
+ conventions.push({
63
+ id: `conv-${convIdx}`,
64
+ description: `Verbatim boilerplate in ${fileList.length} files: "${block.split("\n")[0].slice(0, 60)}…"`,
65
+ coverage_pct: Math.round((fileList.length / files.length) * 100),
66
+ evidence: meta.evidence,
67
+ });
68
+ for (const file of files) {
69
+ if (meta.files.has(file.rel))
70
+ continue;
71
+ if (!file.body.includes(block)) {
72
+ anomIdx += 1;
73
+ anomalies.push({
74
+ id: `anom-${anomIdx}`,
75
+ description: `${file.rel} missing verbatim boilerplate present in ${fileList.length} sibling file(s)`,
76
+ coverage_pct: 0,
77
+ evidence: [
78
+ {
79
+ file: file.rel,
80
+ line: 1,
81
+ snippet: `(missing block starting: ${block.split("\n")[0].slice(0, 80)})`,
82
+ },
83
+ ],
84
+ });
85
+ if (anomIdx >= 5)
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ const fmKeyCounts = new Map();
91
+ for (const file of files) {
92
+ for (const key of extractFrontmatterKeys(file.body)) {
93
+ fmKeyCounts.set(key, (fmKeyCounts.get(key) ?? 0) + 1);
94
+ }
95
+ }
96
+ for (const [key, count] of [...fmKeyCounts.entries()].sort((a, b) => a[0].localeCompare(b[0]))) {
97
+ if (count < 2)
98
+ continue;
99
+ convIdx += 1;
100
+ conventions.push({
101
+ id: `conv-fm-${convIdx}`,
102
+ description: `YAML frontmatter key "${key}" in ${count}/${files.length} files`,
103
+ coverage_pct: Math.round((count / files.length) * 100),
104
+ evidence: files
105
+ .filter((f) => extractFrontmatterKeys(f.body).includes(key))
106
+ .slice(0, 2)
107
+ .map((f) => ({ file: f.rel, line: 1, snippet: `${key}:` })),
108
+ });
109
+ }
110
+ return {
111
+ conventions: conventions.sort((a, b) => a.id.localeCompare(b.id)),
112
+ anomalies: anomalies.sort((a, b) => a.id.localeCompare(b.id)),
113
+ dependency_edges: [],
114
+ };
115
+ }
116
+ function escapeRegexLiteral(s) {
117
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
118
+ }
119
+ function buildContentBlueprintQuestions(conventions, anomalies) {
120
+ const questions = [];
121
+ for (const [i, anomaly] of anomalies.entries()) {
122
+ const ev = anomaly.evidence[0];
123
+ questions.push({
124
+ id: `q-${i + 1}`,
125
+ message: `${anomaly.description} — evidence at ${ev.file}:${ev.line}. Require this boilerplate in all files?`,
126
+ evidence: { file: ev.file, line: ev.line },
127
+ ruleId: `rule-${i + 1}`,
128
+ evidenceSnippet: ev.snippet,
129
+ });
130
+ }
131
+ for (const [i, conv] of conventions.entries()) {
132
+ if (questions.length >= 5)
133
+ break;
134
+ const ev = conv.evidence[0];
135
+ if (!ev)
136
+ continue;
137
+ questions.push({
138
+ id: `q-conv-${i + 1}`,
139
+ message: `${conv.description}. Enforce via require_pattern at ${ev.file}:${ev.line}?`,
140
+ evidence: { file: ev.file, line: ev.line },
141
+ ruleId: `rule-conv-${i + 1}`,
142
+ evidenceSnippet: ev.snippet,
143
+ });
144
+ }
145
+ return questions.slice(0, Math.max(3, questions.length));
146
+ }
147
+ function buildContentRule(question, choice, evidence) {
148
+ if (choice === "legacy")
149
+ return null;
150
+ const snippet = question.evidenceSnippet ?? evidence.snippet;
151
+ if (snippet.startsWith("(missing block")) {
152
+ const inner = /starting: (.+)\)/.exec(snippet)?.[1];
153
+ if (!inner || choice !== "enforce")
154
+ return null;
155
+ return {
156
+ id: question.ruleId,
157
+ from_layer: "content",
158
+ applies_to: ["content/**"],
159
+ require_pattern: escapeRegexLiteral(inner.trim()),
160
+ };
161
+ }
162
+ if (snippet.includes("…") || snippet.length < 8) {
163
+ return {
164
+ id: question.ruleId,
165
+ from_layer: "content",
166
+ applies_to: ["content/**"],
167
+ require_pattern: escapeRegexLiteral(snippet.replace(/…$/, "").trim()),
168
+ };
169
+ }
170
+ if (choice === "enforce") {
171
+ return {
172
+ id: question.ruleId,
173
+ from_layer: "content",
174
+ applies_to: ["content/**"],
175
+ require_pattern: escapeRegexLiteral(snippet.trim()),
176
+ };
177
+ }
178
+ return null;
179
+ }
180
+ export const contentDomainAdapter = {
181
+ key: "content",
182
+ label: "Brand/compliance content (markdown, HTML, text)",
183
+ fileExtensions: [".md", ".html", ".htm", ".txt", ".json"],
184
+ defaultScanGlobs: ["content/**"],
185
+ extractEvidence: (_repoRoot, files) => extractContentEvidence(files),
186
+ buildBlueprintQuestions: buildContentBlueprintQuestions,
187
+ buildRuleFromAnswer: (q, choice, ev) => buildContentRule(q, choice, ev),
188
+ };
189
+ registerDomainAdapter(contentDomainAdapter);
190
+ //# sourceMappingURL=domain-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-content.js","sourceRoot":"","sources":["../../../../src/cli/lib/domains/domain-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Side-effect imports register built-in domain adapters. */
2
+ import "./domain-code.js";
3
+ import "./domain-content.js";
4
+ export { getDomainAdapter, listDomainKeys, isDomainFile, registerDomainAdapter, type DomainAdapter, type DomainKey, type DomainBlueprintQuestion, type DomainEnforcementChoice, type DomainFileRecord, type DomainEvidenceResult, } from "./domain-adapter.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/domains/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Side-effect imports register built-in domain adapters. */
2
+ import "./domain-code.js";
3
+ import "./domain-content.js";
4
+ export { getDomainAdapter, listDomainKeys, isDomainFile, registerDomainAdapter, } from "./domain-adapter.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/lib/domains/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,qBAAqB,GAOtB,MAAM,qBAAqB,CAAC"}
@@ -11,12 +11,6 @@ export declare class GantryUserError extends Error {
11
11
  get gxtCode(): string;
12
12
  }
13
13
  export declare function isGantryUserError(e: unknown): e is GantryUserError;
14
- /** @deprecated Use {@link GantryUserError}; alias kept for one release (v2.7.0). */
15
- export declare const GapmanUserError: typeof GantryUserError;
16
- /** @deprecated Use {@link GantryUserError}; alias kept for one release (v2.7.0). */
17
- export type GapmanUserError = GantryUserError;
18
- /** @deprecated Use {@link isGantryUserError}; alias kept for one release (v2.7.0). */
19
- export declare const isGapmanUserError: typeof isGantryUserError;
20
14
  /** User-facing failure reporter: message + optional Fix: hint, no stack by default. */
21
15
  export declare function reportUserFacingError(e: unknown): void;
22
16
  export interface UserFacingErrorJson {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ;gBAHR,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,SAAI;IAMvB,oDAAoD;IACpD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AAED,oFAAoF;AACpF,eAAO,MAAM,eAAe,wBAAkB,CAAC;AAC/C,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAE9C,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,0BAAoB,CAAC;AAUnD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBtD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAWrE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAsCD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAmBnB"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,sFAAsF;AACtF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ;gBAHR,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,SAAI;IAMvB,oDAAoD;IACpD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AASD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBtD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAWrE;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,CAAC;IACL,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAsCD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAmBnB"}
@@ -25,10 +25,6 @@ export class GantryUserError extends Error {
25
25
  export function isGantryUserError(e) {
26
26
  return e instanceof GantryUserError;
27
27
  }
28
- /** @deprecated Use {@link GantryUserError}; alias kept for one release (v2.7.0). */
29
- export const GapmanUserError = GantryUserError;
30
- /** @deprecated Use {@link isGantryUserError}; alias kept for one release (v2.7.0). */
31
- export const isGapmanUserError = isGantryUserError;
32
28
  function logUnexpectedError(error) {
33
29
  if (readEnvWithLegacy("DEBUG") === "1") {
34
30
  logError(error.stack ?? error.message);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/lib/errors.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,4 @@ export declare function mapGitProofCodeToGxt(code: string): GxtErrorCode;
32
32
  export declare function gxtCodeFromGantryUserError(code: string): GxtErrorCode;
33
33
  /** @internal Test helper — returns undefined when code would fall through to VERIFY_FAILED unexpectedly. */
34
34
  export declare function isKnownGantryUserErrorCode(code: string): boolean;
35
- /** @deprecated Use {@link gxtCodeFromGantryUserError}; alias kept for one release (v2.7.0). */
36
- export declare const gxtCodeFromGapmanUserError: typeof gxtCodeFromGantryUserError;
37
35
  //# sourceMappingURL=gxt-error-codes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AA6BtE,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMrE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,mCAA6B,CAAC"}
1
+ {"version":3,"file":"gxt-error-codes.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AA6BtE,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAMrE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE"}
@@ -76,6 +76,4 @@ export function gxtCodeFromGantryUserError(code) {
76
76
  export function isKnownGantryUserErrorCode(code) {
77
77
  return code.startsWith("GXT_") || code in GIT_PROOF_TO_GXT || code in GANTRY_USER_ERROR_TO_GXT;
78
78
  }
79
- /** @deprecated Use {@link gxtCodeFromGantryUserError}; alias kept for one release (v2.7.0). */
80
- export const gxtCodeFromGapmanUserError = gxtCodeFromGantryUserError;
81
79
  //# sourceMappingURL=gxt-error-codes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gxt-error-codes.js","sourceRoot":"","sources":["../../../src/cli/lib/gxt-error-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type DiscoveryApplyResult } from "./discovery-proposal.js";
2
+ import type { DiscoveryProposal } from "./discovery-scanner.js";
3
+ export interface InitDiscoverOptions {
4
+ yes?: boolean;
5
+ stdout?: boolean;
6
+ domain?: string;
7
+ onProgress?: (filesScanned: number) => void;
8
+ }
9
+ /** Run gantry init --discover: emit proposal, optionally apply after confirmation. */
10
+ export declare function runInitDiscoverFlow(repoRoot: string, options?: InitDiscoverOptions): Promise<{
11
+ proposal: DiscoveryProposal;
12
+ applied: DiscoveryApplyResult | null;
13
+ }>;
14
+ //# sourceMappingURL=init-discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-discover.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/init-discover.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAWD,sFAAsF;AACtF,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;CAAE,CAAC,CAwChF"}
@@ -0,0 +1,45 @@
1
+ import { CLI_NAME } from "./constants.js";
2
+ import { logInfo } from "./cli-io.js";
3
+ import { applyDiscoveryProposal, emitDiscoveryProposal, } from "./discovery-proposal.js";
4
+ async function promptConfirmApply() {
5
+ const { confirm, isCancel } = await import("@clack/prompts");
6
+ const answer = await confirm({
7
+ message: "Apply discovery proposal to TARGET_ARCHITECTURE.yaml and MANIFEST.json?",
8
+ });
9
+ if (isCancel(answer) || answer !== true)
10
+ return false;
11
+ return true;
12
+ }
13
+ /** Run gantry init --discover: emit proposal, optionally apply after confirmation. */
14
+ export async function runInitDiscoverFlow(repoRoot, options = {}) {
15
+ const started = Date.now();
16
+ let progressLogged = false;
17
+ const { proposal, proposalPath } = emitDiscoveryProposal(repoRoot, {
18
+ domain: options.domain,
19
+ onProgress: (n) => {
20
+ if (!progressLogged && Date.now() - started > 1000) {
21
+ logInfo(`${CLI_NAME} discover: scanning… (${n} files so far)`);
22
+ progressLogged = true;
23
+ }
24
+ options.onProgress?.(n);
25
+ },
26
+ });
27
+ if (options.stdout) {
28
+ process.stdout.write(`${JSON.stringify(proposal, null, 2)}\n`);
29
+ }
30
+ else {
31
+ logInfo(`${CLI_NAME} discover: wrote ${proposalPath} (${proposal.scan_stats.files_scanned} files, ${proposal.scan_stats.duration_ms}ms)`);
32
+ logInfo(`${CLI_NAME} discover: ${proposal.conventions.length} convention(s), ${proposal.anomalies.length} anomaly(ies)`);
33
+ }
34
+ if (proposal.conventions.length === 0 && proposal.anomalies.length === 0) {
35
+ logInfo(`${CLI_NAME} discover: no conventions detected — refine scan roots or add source files`);
36
+ }
37
+ const shouldApply = options.yes === true || (options.stdout !== true && (await promptConfirmApply()));
38
+ if (!shouldApply) {
39
+ return { proposal, applied: null };
40
+ }
41
+ const applied = applyDiscoveryProposal(repoRoot, proposal);
42
+ logInfo(`${CLI_NAME} discover: applied ${applied.targetArchitecturePath} and ${applied.manifestPath}`);
43
+ return { proposal, applied };
44
+ }
45
+ //# sourceMappingURL=init-discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-discover.js","sourceRoot":"","sources":["../../../src/cli/lib/init-discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAUjC,KAAK,UAAU,kBAAkB;IAC/B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,OAAO,EAAE,yEAAyE;KACnF,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,UAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC,QAAQ,EAAE;QACjE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,QAAQ,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CACL,GAAG,QAAQ,oBAAoB,YAAY,KAAK,QAAQ,CAAC,UAAU,CAAC,aAAa,WAAW,QAAQ,CAAC,UAAU,CAAC,WAAW,KAAK,CACjI,CAAC;QACF,OAAO,CACL,GAAG,QAAQ,cAAc,QAAQ,CAAC,WAAW,CAAC,MAAM,mBAAmB,QAAQ,CAAC,SAAS,CAAC,MAAM,eAAe,CAChH,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,QAAQ,4EAA4E,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,OAAO,CACL,GAAG,QAAQ,sBAAsB,OAAO,CAAC,sBAAsB,QAAQ,OAAO,CAAC,YAAY,EAAE,CAC9F,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,7 +1,8 @@
1
1
  export declare const TARGET_ARCHITECTURE_FILENAME: "TARGET_ARCHITECTURE.yaml";
2
- export declare const TARGET_ARCHITECTURE_SCHEMA_VERSION: "0.2.0";
3
2
  export declare const TARGET_ARCHITECTURE_LEGACY_SCHEMA_VERSION: "0.1.0";
4
- export declare const SUPPORTED_TARGET_ARCHITECTURE_SCHEMA_VERSIONS: readonly ["0.1.0", "0.2.0"];
3
+ export declare const TARGET_ARCHITECTURE_SCHEMA_VERSION: "0.2.0";
4
+ export declare const TARGET_ARCHITECTURE_V3_SCHEMA_VERSION: "0.3.0";
5
+ export declare const SUPPORTED_TARGET_ARCHITECTURE_SCHEMA_VERSIONS: readonly ["0.1.0", "0.2.0", "0.3.0"];
5
6
  export type TargetArchitectureSchemaVersion = (typeof SUPPORTED_TARGET_ARCHITECTURE_SCHEMA_VERSIONS)[number];
6
7
  export interface ArchLayerSpec {
7
8
  id: string;
@@ -13,9 +14,15 @@ export interface ArchRuleSpec {
13
14
  forbid_import_layer?: string;
14
15
  forbid_specifier_substring?: string;
15
16
  forbid_resolved_path_substring?: string;
17
+ /** Schema 0.3.0: glob(s) for pattern rules (content domain). */
18
+ applies_to?: string[];
19
+ forbid_pattern?: string;
20
+ require_pattern?: string;
16
21
  }
17
22
  export interface TargetArchitectureSpec {
18
23
  schema_version: TargetArchitectureSchemaVersion;
24
+ /** Schema 0.3.0: domain adapter key (code | content). */
25
+ domain?: string;
19
26
  /** Explicit scan roots (schema 0.2.0+). When absent, derived from layer globs. */
20
27
  scan_roots?: string[];
21
28
  /** Supported languages for boundary checks (default: typescript). */
@@ -48,5 +55,7 @@ export declare function checkArchBoundariesForFiles(spec: TargetArchitectureSpec
48
55
  export declare function runArchCheck(repoRoot: string, files: readonly string[], options?: {
49
56
  manifestTmvcRoots?: readonly string[];
50
57
  }): ArchCheckResult;
51
- export declare function formatArchCheckHuman(result: ArchCheckResult): string;
58
+ export declare function formatArchCheckHuman(result: ArchCheckResult, label?: "arch" | "perimeter"): string;
59
+ /** Walk all files under scan_roots for the spec's domain. */
60
+ export declare function walkPerimeterFiles(repoRoot: string, spec: TargetArchitectureSpec): string[];
52
61
  //# sourceMappingURL=target-architecture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"target-architecture.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/target-architecture.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,4BAA4B,EAAG,0BAAmC,CAAC;AAChF,eAAO,MAAM,kCAAkC,EAAG,OAAgB,CAAC;AACnE,eAAO,MAAM,yCAAyC,EAAG,OAAgB,CAAC;AAC1E,eAAO,MAAM,6CAA6C,6BAGhD,CAAC;AAEX,MAAM,MAAM,+BAA+B,GACzC,CAAC,OAAO,6CAA6C,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,+BAA+B,CAAC;IAChD,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAgBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlF;AAgDD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,sBAAsB,EAC5B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GACpC,MAAM,EAAE,CAaV;AAkBD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAyD/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAO/E;AAcD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACtD,eAAe,CAwCjB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACtD,eAAe,CAMjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAQpE"}
1
+ {"version":3,"file":"target-architecture.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/target-architecture.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,4BAA4B,EAAG,0BAAmC,CAAC;AAChF,eAAO,MAAM,yCAAyC,EAAG,OAAgB,CAAC;AAC1E,eAAO,MAAM,kCAAkC,EAAG,OAAgB,CAAC;AACnE,eAAO,MAAM,qCAAqC,EAAG,OAAgB,CAAC;AACtE,eAAO,MAAM,6CAA6C,sCAIhD,CAAC;AAEX,MAAM,MAAM,+BAA+B,GACzC,CAAC,OAAO,6CAA6C,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,+BAA+B,CAAC;IAChD,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAgBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlF;AAgDD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,sBAAsB,EAC5B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GACpC,MAAM,EAAE,CAiBV;AA+FD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAgE/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAO/E;AAcD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACtD,eAAe,CA+CjB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACtD,eAAe,CAMjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,GAAE,MAAM,GAAG,WAAoB,GAAG,MAAM,CAQ1G;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAS3F"}
@@ -5,12 +5,16 @@ import { CLI_NAME } from "./constants.js";
5
5
  import { toPosixRel } from "./cli-io.js";
6
6
  import { normalizeRepoRelativePath } from "./tmvc-path.js";
7
7
  import { extractBindingsFromSnippet, extractImportsWithMeta, } from "./import-scanner.js";
8
+ import { walkDomainFiles } from "./discovery-scanner.js";
9
+ import { getDomainAdapter } from "./domains/index.js";
8
10
  export const TARGET_ARCHITECTURE_FILENAME = "TARGET_ARCHITECTURE.yaml";
9
- export const TARGET_ARCHITECTURE_SCHEMA_VERSION = "0.2.0";
10
11
  export const TARGET_ARCHITECTURE_LEGACY_SCHEMA_VERSION = "0.1.0";
12
+ export const TARGET_ARCHITECTURE_SCHEMA_VERSION = "0.2.0";
13
+ export const TARGET_ARCHITECTURE_V3_SCHEMA_VERSION = "0.3.0";
11
14
  export const SUPPORTED_TARGET_ARCHITECTURE_SCHEMA_VERSIONS = [
12
15
  TARGET_ARCHITECTURE_LEGACY_SCHEMA_VERSION,
13
16
  TARGET_ARCHITECTURE_SCHEMA_VERSION,
17
+ TARGET_ARCHITECTURE_V3_SCHEMA_VERSION,
14
18
  ];
15
19
  function globMatches(repoRel, glob) {
16
20
  const norm = normalizeRepoRelativePath(repoRel);
@@ -83,7 +87,12 @@ export function targetArchitectureMigrationHint(version) {
83
87
  /** Derive scan roots from spec layers or optional manifest TMVC fallback. */
84
88
  export function resolveArchScanRoots(spec, manifestTmvcRoots) {
85
89
  if (spec.scan_roots && spec.scan_roots.length > 0) {
86
- return spec.scan_roots.map(normalizeRepoRelativePath);
90
+ return spec.scan_roots.map((root) => {
91
+ const norm = normalizeRepoRelativePath(root);
92
+ if (norm.includes("*"))
93
+ return norm;
94
+ return `${norm.replace(/\/$/, "")}/**`;
95
+ });
87
96
  }
88
97
  const fromLayers = spec.layers.flatMap((layer) => layer.globs.map(normalizeRepoRelativePath));
89
98
  if (fromLayers.length > 0)
@@ -105,8 +114,75 @@ function fileMatchesScanRoots(repoRel, scanRoots) {
105
114
  const norm = normalizeRepoRelativePath(repoRel);
106
115
  return scanRoots.some((root) => globMatches(norm, root));
107
116
  }
108
- function fileMatchesLanguage(repoRel, languages) {
117
+ function fileMatchesAppliesTo(repoRel, appliesTo, scanRoots) {
118
+ if (appliesTo && appliesTo.length > 0) {
119
+ return appliesTo.some((g) => globMatches(repoRel, g));
120
+ }
121
+ return fileMatchesScanRoots(repoRel, scanRoots);
122
+ }
123
+ function isImportRule(rule) {
124
+ return (rule.forbid_import_layer != null ||
125
+ rule.forbid_specifier_substring != null ||
126
+ rule.forbid_resolved_path_substring != null);
127
+ }
128
+ function isPatternRule(rule) {
129
+ return rule.forbid_pattern != null || rule.require_pattern != null;
130
+ }
131
+ function shouldEvaluateImportRules(spec) {
132
+ const domain = spec.domain?.toLowerCase();
133
+ return domain == null || domain === "" || domain === "code";
134
+ }
135
+ function compilePerimeterPattern(pattern) {
136
+ try {
137
+ if (pattern.startsWith("(?i)")) {
138
+ return new RegExp(pattern.slice(4), "im");
139
+ }
140
+ return new RegExp(pattern, "m");
141
+ }
142
+ catch {
143
+ return null;
144
+ }
145
+ }
146
+ function findPatternMatchLine(body, pattern) {
147
+ const re = compilePerimeterPattern(pattern);
148
+ if (!re)
149
+ return null;
150
+ const m = re.exec(body);
151
+ if (!m || m.index == null)
152
+ return null;
153
+ const before = body.slice(0, m.index);
154
+ const line = before.split(/\r?\n/).length;
155
+ const lastNl = before.lastIndexOf("\n");
156
+ const column = m.index - (lastNl === -1 ? 0 : lastNl + 1) + 1;
157
+ return { line, column, match: m[0] ?? "" };
158
+ }
159
+ function checkPatternRulesForFile(violations, repoRel, body, rules, scanRoots) {
160
+ for (const rule of rules) {
161
+ if (!isPatternRule(rule))
162
+ continue;
163
+ if (!fileMatchesAppliesTo(repoRel, rule.applies_to, scanRoots))
164
+ continue;
165
+ if (rule.forbid_pattern) {
166
+ const hit = findPatternMatchLine(body, rule.forbid_pattern);
167
+ if (hit) {
168
+ recordViolation(violations, repoRel, rule.id, hit.match, [], hit.line, hit.column);
169
+ }
170
+ }
171
+ if (rule.require_pattern) {
172
+ const hit = findPatternMatchLine(body, rule.require_pattern);
173
+ if (!hit) {
174
+ recordViolation(violations, repoRel, rule.id, `(missing: ${rule.require_pattern})`, [], 1, 1);
175
+ }
176
+ }
177
+ }
178
+ }
179
+ function fileMatchesLanguage(repoRel, languages, domain) {
109
180
  const norm = normalizeRepoRelativePath(repoRel).toLowerCase();
181
+ if (domain === "content") {
182
+ return /\.(md|html|htm|txt|json)$/i.test(norm);
183
+ }
184
+ if (languages.includes("typescript") && /\.tsx?$/i.test(norm))
185
+ return true;
110
186
  if (languages.includes("typescript") && norm.endsWith(".ts"))
111
187
  return true;
112
188
  return false;
@@ -125,6 +201,7 @@ export function validateTargetArchitecture(raw) {
125
201
  }
126
202
  const scan_roots = parseStringArrayField(o.scan_roots, "scan_roots");
127
203
  const languages = parseStringArrayField(o.languages, "languages");
204
+ const domain = typeof o.domain === "string" ? o.domain.trim() : undefined;
128
205
  const layers = o.layers.map((layer, i) => {
129
206
  if (layer == null || typeof layer !== "object") {
130
207
  throw new Error(`TARGET_ARCHITECTURE.yaml: layers[${String(i)}] invalid`);
@@ -159,10 +236,16 @@ export function validateTargetArchitecture(raw) {
159
236
  ...(r.forbid_resolved_path_substring != null
160
237
  ? { forbid_resolved_path_substring: String(r.forbid_resolved_path_substring) }
161
238
  : {}),
239
+ ...(parseStringArrayField(r.applies_to, "applies_to")
240
+ ? { applies_to: parseStringArrayField(r.applies_to, "applies_to") }
241
+ : {}),
242
+ ...(r.forbid_pattern != null ? { forbid_pattern: String(r.forbid_pattern) } : {}),
243
+ ...(r.require_pattern != null ? { require_pattern: String(r.require_pattern) } : {}),
162
244
  };
163
245
  });
164
246
  return {
165
247
  schema_version,
248
+ ...(domain ? { domain } : {}),
166
249
  ...(scan_roots ? { scan_roots } : {}),
167
250
  ...(languages ? { languages } : {}),
168
251
  layers,
@@ -185,23 +268,29 @@ export function checkArchBoundariesForFiles(spec, repoRoot, files, options = {})
185
268
  const root = path.resolve(repoRoot);
186
269
  const scanRoots = resolveArchScanRoots(spec, options.manifestTmvcRoots);
187
270
  const languages = resolveArchLanguages(spec);
271
+ const evaluateImports = shouldEvaluateImportRules(spec);
188
272
  for (const file of files) {
189
273
  const abs = path.isAbsolute(file) ? path.resolve(file) : path.join(root, file);
190
274
  const repoRel = toPosixRel(root, abs);
191
275
  if (!fileMatchesScanRoots(repoRel, scanRoots))
192
276
  continue;
193
- if (!fileMatchesLanguage(repoRel, languages))
277
+ if (!fileMatchesLanguage(repoRel, languages, spec.domain))
194
278
  continue;
195
279
  if (!fs.existsSync(abs))
196
280
  continue;
197
- const fromLayer = layerForFile(spec, repoRel);
198
281
  const src = fs.readFileSync(abs, "utf8");
282
+ checkPatternRulesForFile(violations, repoRel, src, spec.rules, scanRoots);
283
+ if (!evaluateImports)
284
+ continue;
285
+ const fromLayer = layerForFile(spec, repoRel);
199
286
  const imports = extractImportsWithMeta(src, true);
200
287
  for (const imp of imports) {
201
288
  const bindings = extractBindingsFromSnippet(imp.snippet);
202
289
  const resolved = resolveImportPath(repoRel, imp.spec);
203
290
  const targetLayer = resolved ? layerForFile(spec, resolved) : "other";
204
291
  for (const rule of spec.rules) {
292
+ if (!isImportRule(rule))
293
+ continue;
205
294
  if (rule.from_layer !== fromLayer)
206
295
  continue;
207
296
  if (rule.forbid_import_layer && targetLayer === rule.forbid_import_layer) {
@@ -224,10 +313,21 @@ export function runArchCheck(repoRoot, files, options = {}) {
224
313
  const absFiles = files.map((f) => path.isAbsolute(f) ? f : path.join(repoRoot, f.replace(/\\/g, path.sep)));
225
314
  return checkArchBoundariesForFiles(spec, repoRoot, absFiles, options);
226
315
  }
227
- export function formatArchCheckHuman(result) {
316
+ export function formatArchCheckHuman(result, label = "arch") {
228
317
  if (result.ok)
229
- return `${CLI_NAME} arch check: OK`;
318
+ return `${CLI_NAME} ${label} check: OK`;
230
319
  const lines = result.violations.map((v) => `${v.file}:${String(v.line)}:${String(v.column)} ${v.rule_id} ${v.module_specifier}`);
231
- return [`${CLI_NAME} arch check: ${String(result.violations.length)} violation(s)`, ...lines].join("\n");
320
+ return [`${CLI_NAME} ${label} check: ${String(result.violations.length)} violation(s)`, ...lines].join("\n");
321
+ }
322
+ /** Walk all files under scan_roots for the spec's domain. */
323
+ export function walkPerimeterFiles(repoRoot, spec) {
324
+ const domain = spec.domain?.toLowerCase() ?? "code";
325
+ const adapter = getDomainAdapter(domain);
326
+ const scanRoots = resolveArchScanRoots(spec);
327
+ const all = walkDomainFiles(repoRoot, adapter.fileExtensions);
328
+ return all.filter((abs) => {
329
+ const rel = toPosixRel(repoRoot, abs);
330
+ return fileMatchesScanRoots(rel, scanRoots);
331
+ });
232
332
  }
233
333
  //# sourceMappingURL=target-architecture.js.map