@anarchitects/governance-core 0.0.1

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 (43) hide show
  1. package/README.md +239 -0
  2. package/dist/core/adapter.d.ts +65 -0
  3. package/dist/core/adapter.d.ts.map +1 -0
  4. package/dist/core/ai.d.ts +21 -0
  5. package/dist/core/ai.d.ts.map +1 -0
  6. package/dist/core/assessment.d.ts +23 -0
  7. package/dist/core/assessment.d.ts.map +1 -0
  8. package/dist/core/built-in-rule-pack.d.ts +5 -0
  9. package/dist/core/built-in-rule-pack.d.ts.map +1 -0
  10. package/dist/core/built-in-rules.d.ts +16 -0
  11. package/dist/core/built-in-rules.d.ts.map +1 -0
  12. package/dist/core/drift.d.ts +5 -0
  13. package/dist/core/drift.d.ts.map +1 -0
  14. package/dist/core/exceptions.d.ts +34 -0
  15. package/dist/core/exceptions.d.ts.map +1 -0
  16. package/dist/core/index.d.ts +14 -0
  17. package/dist/core/index.d.ts.map +1 -0
  18. package/dist/core/models.d.ts +371 -0
  19. package/dist/core/models.d.ts.map +1 -0
  20. package/dist/core/profile.d.ts +105 -0
  21. package/dist/core/profile.d.ts.map +1 -0
  22. package/dist/core/rule-engine.d.ts +4 -0
  23. package/dist/core/rule-engine.d.ts.map +1 -0
  24. package/dist/core/rules.d.ts +37 -0
  25. package/dist/core/rules.d.ts.map +1 -0
  26. package/dist/core/signals.d.ts +21 -0
  27. package/dist/core/signals.d.ts.map +1 -0
  28. package/dist/core/snapshots.d.ts +12 -0
  29. package/dist/core/snapshots.d.ts.map +1 -0
  30. package/dist/extensions/capabilities.d.ts +15 -0
  31. package/dist/extensions/capabilities.d.ts.map +1 -0
  32. package/dist/extensions/contracts.d.ts +50 -0
  33. package/dist/extensions/contracts.d.ts.map +1 -0
  34. package/dist/extensions/diagnostics.d.ts +12 -0
  35. package/dist/extensions/diagnostics.d.ts.map +1 -0
  36. package/dist/extensions/index.d.ts +5 -0
  37. package/dist/extensions/index.d.ts.map +1 -0
  38. package/dist/extensions/runtime.d.ts +50 -0
  39. package/dist/extensions/runtime.d.ts.map +1 -0
  40. package/dist/index.d.ts +3 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +1587 -0
  43. package/package.json +52 -0
@@ -0,0 +1,371 @@
1
+ import { GovernanceSignalCategory, GovernanceSignalSeverity, GovernanceSignalSource, GovernanceSignalType } from './signals.js';
2
+ export interface GovernanceWorkspace {
3
+ id: string;
4
+ name: string;
5
+ root: string;
6
+ projects: GovernanceProject[];
7
+ dependencies: GovernanceDependency[];
8
+ }
9
+ export interface GovernanceProject {
10
+ id: string;
11
+ name: string;
12
+ root: string;
13
+ type: 'application' | 'library' | 'tool' | 'unknown';
14
+ tags: string[];
15
+ domain?: string;
16
+ layer?: string;
17
+ ownership?: Ownership;
18
+ metadata: Record<string, unknown>;
19
+ }
20
+ export interface GovernanceDependency {
21
+ source: string;
22
+ target: string;
23
+ type: 'static' | 'dynamic' | 'implicit' | 'unknown';
24
+ sourceFile?: string;
25
+ }
26
+ export interface Ownership {
27
+ team?: string;
28
+ contacts?: string[];
29
+ source: 'project-metadata' | 'codeowners' | 'merged' | 'none';
30
+ }
31
+ export interface Violation {
32
+ id: string;
33
+ ruleId: string;
34
+ project: string;
35
+ severity: 'error' | 'warning' | 'info';
36
+ category: GovernanceSignalCategory | 'architecture' | 'documentation' | 'convention' | 'metadata';
37
+ message: string;
38
+ details?: Record<string, unknown>;
39
+ recommendation?: string;
40
+ sourcePluginId?: string;
41
+ }
42
+ export type KnownGovernanceMetricFamily = 'architecture' | 'boundaries' | 'ownership' | 'documentation';
43
+ export type GovernanceMetricFamily = KnownGovernanceMetricFamily | (string & {});
44
+ export interface Measurement {
45
+ id: string;
46
+ name: string;
47
+ family: GovernanceMetricFamily;
48
+ value: number;
49
+ score: number;
50
+ maxScore: number;
51
+ unit: 'ratio' | 'count' | 'score';
52
+ sourcePluginId?: string;
53
+ }
54
+ export interface Recommendation {
55
+ id: string;
56
+ title: string;
57
+ priority: 'high' | 'medium' | 'low';
58
+ reason: string;
59
+ }
60
+ export type HealthStatus = 'good' | 'warning' | 'critical';
61
+ export interface HealthStatusThresholds {
62
+ goodMinScore: number;
63
+ warningMinScore: number;
64
+ }
65
+ export interface HealthMetricHotspot {
66
+ id: Measurement['id'];
67
+ name: string;
68
+ score: number;
69
+ }
70
+ export interface HealthProjectHotspot {
71
+ project: string;
72
+ count: number;
73
+ dominantIssueTypes: GovernanceSignalType[];
74
+ }
75
+ export interface HealthExplainability {
76
+ summary: string;
77
+ statusReason: string;
78
+ weakestMetrics: HealthMetricHotspot[];
79
+ dominantIssues: GovernanceTopIssue[];
80
+ }
81
+ export interface HealthScore {
82
+ score: number;
83
+ status: HealthStatus;
84
+ grade: 'A' | 'B' | 'C' | 'D' | 'F';
85
+ hotspots: string[];
86
+ metricHotspots: HealthMetricHotspot[];
87
+ projectHotspots: HealthProjectHotspot[];
88
+ explainability: HealthExplainability;
89
+ }
90
+ export interface SignalBreakdownEntry {
91
+ source: GovernanceSignalSource;
92
+ count: number;
93
+ }
94
+ export interface SignalTypeBreakdownEntry {
95
+ type: GovernanceSignalType;
96
+ count: number;
97
+ }
98
+ export interface SignalSeverityBreakdownEntry {
99
+ severity: GovernanceSignalSeverity;
100
+ count: number;
101
+ }
102
+ export interface SignalBreakdown {
103
+ total: number;
104
+ bySource: SignalBreakdownEntry[];
105
+ byType: SignalTypeBreakdownEntry[];
106
+ bySeverity: SignalSeverityBreakdownEntry[];
107
+ }
108
+ export interface MetricBreakdownMeasurement {
109
+ id: Measurement['id'];
110
+ name: string;
111
+ score: number;
112
+ }
113
+ export interface MetricBreakdownFamily {
114
+ family: GovernanceMetricFamily;
115
+ score: number;
116
+ measurements: MetricBreakdownMeasurement[];
117
+ }
118
+ export interface MetricBreakdown {
119
+ families: MetricBreakdownFamily[];
120
+ }
121
+ export interface GovernanceTopIssue {
122
+ type: GovernanceSignalType;
123
+ source: GovernanceSignalSource;
124
+ severity: GovernanceSignalSeverity;
125
+ count: number;
126
+ projects: string[];
127
+ ruleId?: string;
128
+ message: string;
129
+ sourcePluginId?: string;
130
+ }
131
+ export interface GovernanceExceptionSummary {
132
+ declaredCount: number;
133
+ matchedCount: number;
134
+ suppressedPolicyViolationCount: number;
135
+ suppressedConformanceFindingCount: number;
136
+ unusedExceptionCount: number;
137
+ activeExceptionCount: number;
138
+ staleExceptionCount: number;
139
+ expiredExceptionCount: number;
140
+ reactivatedPolicyViolationCount: number;
141
+ reactivatedConformanceFindingCount: number;
142
+ }
143
+ export type GovernanceExceptionStatus = 'active' | 'stale' | 'expired';
144
+ export interface GovernanceExceptionUsage {
145
+ id: string;
146
+ source: 'policy' | 'conformance';
147
+ status: GovernanceExceptionStatus;
148
+ reason: string;
149
+ owner: string;
150
+ review: import('./exceptions.js').GovernanceExceptionReview;
151
+ matchCount: number;
152
+ }
153
+ export interface GovernanceExceptionFinding {
154
+ kind: 'policy-violation' | 'conformance-finding';
155
+ exceptionId: string;
156
+ source: 'policy' | 'conformance';
157
+ status: GovernanceExceptionStatus;
158
+ ruleId?: string;
159
+ category: GovernanceSignalCategory | 'architecture' | 'documentation' | 'convention' | 'metadata';
160
+ severity: GovernanceSignalSeverity;
161
+ projectId?: string;
162
+ targetProjectId?: string;
163
+ relatedProjectIds: string[];
164
+ message: string;
165
+ sourcePluginId?: string;
166
+ }
167
+ export interface GovernanceExceptionReport {
168
+ summary: GovernanceExceptionSummary;
169
+ used: GovernanceExceptionUsage[];
170
+ unused: GovernanceExceptionUsage[];
171
+ suppressedFindings: GovernanceExceptionFinding[];
172
+ reactivatedFindings: GovernanceExceptionFinding[];
173
+ }
174
+ export interface GovernanceAssessment {
175
+ workspace: GovernanceWorkspace;
176
+ profile: string;
177
+ warnings: string[];
178
+ exceptions: GovernanceExceptionReport;
179
+ violations: Violation[];
180
+ measurements: Measurement[];
181
+ signalBreakdown: SignalBreakdown;
182
+ metricBreakdown: MetricBreakdown;
183
+ topIssues: GovernanceTopIssue[];
184
+ health: HealthScore;
185
+ recommendations: Recommendation[];
186
+ }
187
+ export interface SnapshotViolation {
188
+ type: string;
189
+ source: string;
190
+ target?: string;
191
+ ruleId?: string;
192
+ severity?: Violation['severity'];
193
+ message?: string;
194
+ }
195
+ export interface SnapshotHealth {
196
+ score: HealthScore['score'];
197
+ status: HealthScore['status'];
198
+ grade: HealthScore['grade'];
199
+ }
200
+ export interface SnapshotDeliveryImpactIndex {
201
+ id: string;
202
+ score: number;
203
+ risk: 'low' | 'medium' | 'high';
204
+ }
205
+ export interface SnapshotDeliveryImpactDriver {
206
+ id: string;
207
+ label: string;
208
+ value?: number | string;
209
+ score?: number;
210
+ unit?: 'ratio' | 'count' | 'score';
211
+ trend?: 'improving' | 'stable' | 'worsening';
212
+ }
213
+ export interface SnapshotDeliveryImpactSummary {
214
+ indices: SnapshotDeliveryImpactIndex[];
215
+ topDrivers: SnapshotDeliveryImpactDriver[];
216
+ }
217
+ export interface MetricSnapshot {
218
+ timestamp: string;
219
+ repo: string;
220
+ branch: string;
221
+ commitSha: string;
222
+ pluginVersion: string;
223
+ metricSchemaVersion: string;
224
+ metrics: Record<string, number>;
225
+ scores: Record<string, number>;
226
+ violations: SnapshotViolation[];
227
+ health?: SnapshotHealth;
228
+ signalBreakdown?: SignalBreakdown;
229
+ metricBreakdown?: MetricBreakdown;
230
+ topIssues?: GovernanceTopIssue[];
231
+ deliveryImpact?: SnapshotDeliveryImpactSummary;
232
+ }
233
+ export interface SnapshotMetricDelta {
234
+ id: string;
235
+ baseline: number;
236
+ current: number;
237
+ delta: number;
238
+ }
239
+ export interface SnapshotHealthDelta {
240
+ baselineScore: number;
241
+ currentScore: number;
242
+ scoreDelta: number;
243
+ baselineStatus: HealthStatus;
244
+ currentStatus: HealthStatus;
245
+ baselineGrade: HealthScore['grade'];
246
+ currentGrade: HealthScore['grade'];
247
+ }
248
+ export interface SnapshotSignalSourceDelta {
249
+ source: GovernanceSignalSource;
250
+ baseline: number;
251
+ current: number;
252
+ delta: number;
253
+ }
254
+ export interface SnapshotSignalTypeDelta {
255
+ type: GovernanceSignalType;
256
+ baseline: number;
257
+ current: number;
258
+ delta: number;
259
+ }
260
+ export interface SnapshotSignalSeverityDelta {
261
+ severity: GovernanceSignalSeverity;
262
+ baseline: number;
263
+ current: number;
264
+ delta: number;
265
+ }
266
+ export interface SnapshotSignalDeltas {
267
+ bySource: SnapshotSignalSourceDelta[];
268
+ byType: SnapshotSignalTypeDelta[];
269
+ bySeverity: SnapshotSignalSeverityDelta[];
270
+ }
271
+ export interface SnapshotMetricFamilyDelta {
272
+ family: GovernanceMetricFamily;
273
+ baseline: number;
274
+ current: number;
275
+ delta: number;
276
+ }
277
+ export interface SnapshotTopIssueDelta {
278
+ type: GovernanceSignalType;
279
+ source: GovernanceSignalSource;
280
+ severity: GovernanceSignalSeverity;
281
+ ruleId?: string;
282
+ message: string;
283
+ baselineCount: number;
284
+ currentCount: number;
285
+ delta: number;
286
+ projects: string[];
287
+ }
288
+ export interface SnapshotDeliveryImpactIndexDelta {
289
+ id: string;
290
+ baselineScore: number;
291
+ currentScore: number;
292
+ scoreDelta: number;
293
+ baselineRisk: SnapshotDeliveryImpactIndex['risk'];
294
+ currentRisk: SnapshotDeliveryImpactIndex['risk'];
295
+ }
296
+ export interface SnapshotComparison {
297
+ baseline: MetricSnapshot;
298
+ current: MetricSnapshot;
299
+ metricDeltas: SnapshotMetricDelta[];
300
+ scoreDeltas: SnapshotMetricDelta[];
301
+ newViolations: SnapshotViolation[];
302
+ resolvedViolations: SnapshotViolation[];
303
+ healthDelta?: SnapshotHealthDelta;
304
+ signalDeltas?: SnapshotSignalDeltas;
305
+ metricFamilyDeltas?: SnapshotMetricFamilyDelta[];
306
+ topIssueDeltas?: SnapshotTopIssueDelta[];
307
+ deliveryImpactIndexDeltas?: SnapshotDeliveryImpactIndexDelta[];
308
+ }
309
+ export type DriftSignalKind = 'workspace-health' | 'metric-score' | 'metric-family' | 'signal-source' | 'signal-type' | 'signal-severity' | 'top-issue' | 'violation-footprint';
310
+ export interface DriftSignal {
311
+ id: string;
312
+ kind: DriftSignalKind;
313
+ label: string;
314
+ status: 'worsening' | 'stable' | 'improving';
315
+ magnitude: number;
316
+ baseline: number;
317
+ current: number;
318
+ delta: number;
319
+ details?: Record<string, unknown>;
320
+ }
321
+ export interface DriftSummary {
322
+ overallTrend: DriftSignal['status'];
323
+ worseningCount: number;
324
+ improvingCount: number;
325
+ stableCount: number;
326
+ topWorsening: DriftSignal[];
327
+ topImproving: DriftSignal[];
328
+ }
329
+ export interface CognitiveLoadSignal {
330
+ id: string;
331
+ name: string;
332
+ value: number;
333
+ score: number;
334
+ weight: number;
335
+ unit: 'ratio' | 'count' | 'score';
336
+ details?: Record<string, unknown>;
337
+ }
338
+ export interface CognitiveLoadAssessment {
339
+ overallScore: number;
340
+ risk: 'low' | 'medium' | 'high';
341
+ signals: CognitiveLoadSignal[];
342
+ hotspots: string[];
343
+ }
344
+ export interface AiAnalysisRequest {
345
+ kind: 'root-cause' | 'drift' | 'pr-impact' | 'scorecard' | 'management-insights' | 'cognitive-load' | 'onboarding' | 'recommendations' | 'smell-clusters' | 'refactoring-suggestions';
346
+ generatedAt: string;
347
+ profile: string;
348
+ inputs: {
349
+ snapshot?: MetricSnapshot;
350
+ comparison?: SnapshotComparison;
351
+ topViolations?: SnapshotViolation[];
352
+ dependencies?: GovernanceDependency[];
353
+ affectedProjects?: string[];
354
+ metadata?: Record<string, unknown>;
355
+ };
356
+ }
357
+ export interface AiAnalysisFinding {
358
+ id: string;
359
+ title: string;
360
+ detail: string;
361
+ signals: string[];
362
+ confidence?: number;
363
+ }
364
+ export interface AiAnalysisResult {
365
+ kind: AiAnalysisRequest['kind'];
366
+ summary: string;
367
+ findings: AiAnalysisFinding[];
368
+ recommendations: Recommendation[];
369
+ metadata?: Record<string, unknown>;
370
+ }
371
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/core/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { GovernanceException } from './exceptions.js';
2
+ import { HealthStatusThresholds, Measurement, Violation } from './models.js';
3
+ export declare const DEFAULT_HEALTH_STATUS_THRESHOLDS: HealthStatusThresholds;
4
+ export type AllowedLayerDependencies = Record<string, string[]>;
5
+ export interface GovernanceProjectOverride {
6
+ domain?: string;
7
+ layer?: string;
8
+ ownershipTeam?: string;
9
+ documentation?: boolean;
10
+ }
11
+ export interface GovernanceProfile {
12
+ name: string;
13
+ description?: string;
14
+ boundaryPolicySource: 'profile' | 'eslint';
15
+ layers: string[];
16
+ rules?: Record<string, GovernanceRuleConfig>;
17
+ allowedLayerDependencies?: AllowedLayerDependencies;
18
+ allowedDomainDependencies: Record<string, string[]>;
19
+ ownership: {
20
+ required: boolean;
21
+ metadataField: string;
22
+ };
23
+ health: {
24
+ statusThresholds: HealthStatusThresholds;
25
+ };
26
+ metrics: Record<Measurement['id'], number>;
27
+ }
28
+ export interface GovernanceRuleConfig<TOptions = unknown> {
29
+ enabled?: boolean;
30
+ severity?: Violation['severity'];
31
+ options?: TOptions;
32
+ }
33
+ export interface GovernanceDomainBoundaryRuleOptions {
34
+ allowedDependencies: Record<string, string[]>;
35
+ }
36
+ export interface GovernanceLayerBoundaryRuleOptions {
37
+ allowedDependencies: AllowedLayerDependencies;
38
+ layers: string[];
39
+ usesExplicitDependencies: boolean;
40
+ }
41
+ export interface GovernanceOwnershipPresenceRuleOptions {
42
+ required: boolean;
43
+ metadataField: string;
44
+ }
45
+ export interface GovernanceScoringProfile {
46
+ statusThresholds: HealthStatusThresholds;
47
+ metricWeights: Record<Measurement['id'], number>;
48
+ }
49
+ export interface GovernanceProfileCompatibility {
50
+ boundaryPolicySource: GovernanceProfile['boundaryPolicySource'];
51
+ }
52
+ export interface ProjectNameConventionOptions {
53
+ pattern: string;
54
+ message?: string;
55
+ }
56
+ export interface ProjectRootConventionOptions {
57
+ patterns: string[];
58
+ message?: string;
59
+ requireRoot?: boolean;
60
+ }
61
+ export interface TagConventionOptions {
62
+ requiredPrefixes?: string[];
63
+ allowedPrefixes?: string[];
64
+ valuePattern?: string;
65
+ prefixSeparator?: string;
66
+ }
67
+ export interface DocumentationPresenceOptions {
68
+ metadataKeys?: string[];
69
+ requireAny?: boolean;
70
+ }
71
+ export interface MissingDomainOptions {
72
+ required?: boolean;
73
+ }
74
+ export interface MissingLayerOptions {
75
+ required?: boolean;
76
+ }
77
+ export interface ForbiddenDependencyTypeOptions {
78
+ allowedTypes?: string[];
79
+ }
80
+ export interface NormalizedGovernanceProfile {
81
+ name: string;
82
+ description?: string;
83
+ rules: Record<string, GovernanceRuleConfig>;
84
+ scoring: GovernanceScoringProfile;
85
+ exceptions: GovernanceException[];
86
+ projectOverrides: Record<string, GovernanceProjectOverride>;
87
+ compatibility: GovernanceProfileCompatibility;
88
+ }
89
+ export interface ProfileOverrides {
90
+ boundaryPolicySource?: GovernanceProfile['boundaryPolicySource'];
91
+ layers?: string[];
92
+ rules?: Record<string, GovernanceRuleConfig>;
93
+ allowedLayerDependencies?: AllowedLayerDependencies;
94
+ allowedDomainDependencies?: Record<string, string[]>;
95
+ ownership?: Partial<GovernanceProfile['ownership']>;
96
+ health?: {
97
+ statusThresholds?: Partial<HealthStatusThresholds>;
98
+ };
99
+ metrics?: Partial<Record<string, number>>;
100
+ exceptions?: GovernanceException[];
101
+ projectOverrides: Record<string, GovernanceProjectOverride>;
102
+ }
103
+ export declare function deriveAllowedLayerDependenciesFromLayerOrder(layers: string[]): AllowedLayerDependencies;
104
+ export declare function normalizeGovernanceProfile(profile: GovernanceProfile, options?: Partial<Pick<ProfileOverrides, 'exceptions' | 'projectOverrides'>>): NormalizedGovernanceProfile;
105
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/core/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { GovernanceRule, GovernanceRuleContext, GovernanceRuleExecutionResult, GovernanceRulePack } from './rules.js';
2
+ export declare function evaluateRules<TOptions = unknown>(rules: GovernanceRule<TOptions>[], context: GovernanceRuleContext<TOptions>): Promise<GovernanceRuleExecutionResult>;
3
+ export declare function evaluateRulePack<TOptions = unknown>(rulePack: GovernanceRulePack<TOptions>, context: GovernanceRuleContext<TOptions>): Promise<GovernanceRuleExecutionResult>;
4
+ //# sourceMappingURL=rule-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/core/rule-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,6BAA6B,EAC7B,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,aAAa,CAAC,QAAQ,GAAG,OAAO,EACpD,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,EACjC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,6BAA6B,CAAC,CAYxC;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EACvD,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACtC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,6BAA6B,CAAC,CAExC"}
@@ -0,0 +1,37 @@
1
+ import { GovernanceCapability, GovernanceDiagnostic } from './adapter.js';
2
+ import { Measurement, Violation, GovernanceWorkspace } from './models.js';
3
+ import { GovernanceProfile } from './profile.js';
4
+ import { GovernanceSignal } from './signals.js';
5
+ export type GovernanceRuleSeverity = Violation['severity'];
6
+ export type GovernanceRuleCategory = Violation['category'] | 'convention' | 'metadata' | 'structure' | 'snapshot' | 'drift' | 'ai' | (string & {});
7
+ export interface GovernanceRuleContext<TOptions = unknown> {
8
+ workspace: GovernanceWorkspace;
9
+ profile?: GovernanceProfile;
10
+ options?: TOptions;
11
+ capabilities?: GovernanceCapability[];
12
+ diagnostics?: GovernanceDiagnostic[];
13
+ }
14
+ export interface GovernanceRuleResult {
15
+ violations?: Violation[];
16
+ signals?: GovernanceSignal[];
17
+ measurements?: Measurement[];
18
+ }
19
+ export interface GovernanceRuleExecutionResult {
20
+ violations: Violation[];
21
+ signals: GovernanceSignal[];
22
+ measurements: Measurement[];
23
+ }
24
+ export interface GovernanceRule<TOptions = unknown> {
25
+ id: string;
26
+ name: string;
27
+ description?: string;
28
+ category: GovernanceRuleCategory;
29
+ defaultSeverity: GovernanceRuleSeverity;
30
+ evaluate(context: GovernanceRuleContext<TOptions>): GovernanceRuleResult | Promise<GovernanceRuleResult>;
31
+ }
32
+ export interface GovernanceRulePack<TOptions = unknown> {
33
+ id: string;
34
+ name: string;
35
+ rules: GovernanceRule<TOptions>[];
36
+ }
37
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAE3D,MAAM,MAAM,sBAAsB,GAC9B,SAAS,CAAC,UAAU,CAAC,GACrB,YAAY,GACZ,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,IAAI,GACJ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,qBAAqB,CAAC,QAAQ,GAAG,OAAO;IACvD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc,CAAC,QAAQ,GAAG,OAAO;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,eAAe,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CACN,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACvC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ,GAAG,OAAO;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;CACnC"}
@@ -0,0 +1,21 @@
1
+ export type GovernanceConformanceCategory = 'boundary' | 'ownership' | 'dependency' | 'compliance' | 'unknown';
2
+ export type GovernanceSignalType = KnownGovernanceSignalType | (string & {});
3
+ export type KnownGovernanceSignalType = 'structural-dependency' | 'cross-domain-dependency' | 'missing-domain-context' | 'circular-dependency' | 'conformance-violation' | 'domain-boundary-violation' | 'layer-boundary-violation' | 'ownership-gap';
4
+ export type GovernanceSignalSeverity = 'info' | 'warning' | 'error';
5
+ export type GovernanceSignalCategory = GovernanceConformanceCategory | 'structure';
6
+ export type GovernanceSignalSource = 'graph' | 'conformance' | 'policy' | 'extension';
7
+ export interface GovernanceSignal {
8
+ id: string;
9
+ type: GovernanceSignalType;
10
+ sourceProjectId?: string;
11
+ targetProjectId?: string;
12
+ relatedProjectIds: string[];
13
+ severity: GovernanceSignalSeverity;
14
+ category: GovernanceSignalCategory;
15
+ message: string;
16
+ metadata?: Record<string, unknown>;
17
+ source: GovernanceSignalSource;
18
+ sourcePluginId?: string;
19
+ createdAt: string;
20
+ }
21
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/core/signals.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GACrC,UAAU,GACV,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE7E,MAAM,MAAM,yBAAyB,GACjC,uBAAuB,GACvB,yBAAyB,GACzB,wBAAwB,GACxB,qBAAqB,GACrB,uBAAuB,GACvB,2BAA2B,GAC3B,0BAA0B,GAC1B,eAAe,CAAC;AAEpB,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpE,MAAM,MAAM,wBAAwB,GAChC,6BAA6B,GAC7B,WAAW,CAAC;AAEhB,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,aAAa,GACb,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,12 @@
1
+ import { GovernanceAssessment, MetricSnapshot, SnapshotDeliveryImpactSummary } from './models.js';
2
+ export interface GovernanceSnapshotMetadata {
3
+ timestamp: string;
4
+ repo: string;
5
+ branch: string;
6
+ commitSha: string;
7
+ pluginVersion: string;
8
+ metricSchemaVersion: string;
9
+ deliveryImpact?: SnapshotDeliveryImpactSummary;
10
+ }
11
+ export declare function buildMetricSnapshot(assessment: GovernanceAssessment, metadata: GovernanceSnapshotMetadata): MetricSnapshot;
12
+ //# sourceMappingURL=snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/core/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,6BAA6B,EAE9B,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,6BAA6B,CAAC;CAChD;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,0BAA0B,GACnC,cAAc,CA2ChB"}
@@ -0,0 +1,15 @@
1
+ import { GovernanceCapability } from '../core/index.js';
2
+ export interface GovernanceCapabilityRegistry {
3
+ has(id: string): boolean;
4
+ get<TData = unknown>(id: string): GovernanceCapability<TData> | undefined;
5
+ list(): GovernanceCapability[];
6
+ }
7
+ export declare class DefaultGovernanceCapabilityRegistry implements GovernanceCapabilityRegistry {
8
+ private readonly capabilitiesById;
9
+ private readonly capabilities;
10
+ constructor(capabilities: readonly GovernanceCapability[]);
11
+ has(id: string): boolean;
12
+ get<TData = unknown>(id: string): GovernanceCapability<TData> | undefined;
13
+ list(): GovernanceCapability[];
14
+ }
15
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/extensions/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC1E,IAAI,IAAI,oBAAoB,EAAE,CAAC;CAChC;AAED,qBAAa,mCACX,YAAW,4BAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2C;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAEnD,YAAY,EAAE,SAAS,oBAAoB,EAAE;IAkBzD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS;IAMzE,IAAI,IAAI,oBAAoB,EAAE;CAG/B"}