@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.
- package/README.md +239 -0
- package/dist/core/adapter.d.ts +65 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/ai.d.ts +21 -0
- package/dist/core/ai.d.ts.map +1 -0
- package/dist/core/assessment.d.ts +23 -0
- package/dist/core/assessment.d.ts.map +1 -0
- package/dist/core/built-in-rule-pack.d.ts +5 -0
- package/dist/core/built-in-rule-pack.d.ts.map +1 -0
- package/dist/core/built-in-rules.d.ts +16 -0
- package/dist/core/built-in-rules.d.ts.map +1 -0
- package/dist/core/drift.d.ts +5 -0
- package/dist/core/drift.d.ts.map +1 -0
- package/dist/core/exceptions.d.ts +34 -0
- package/dist/core/exceptions.d.ts.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/models.d.ts +371 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/profile.d.ts +105 -0
- package/dist/core/profile.d.ts.map +1 -0
- package/dist/core/rule-engine.d.ts +4 -0
- package/dist/core/rule-engine.d.ts.map +1 -0
- package/dist/core/rules.d.ts +37 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/signals.d.ts +21 -0
- package/dist/core/signals.d.ts.map +1 -0
- package/dist/core/snapshots.d.ts +12 -0
- package/dist/core/snapshots.d.ts.map +1 -0
- package/dist/extensions/capabilities.d.ts +15 -0
- package/dist/extensions/capabilities.d.ts.map +1 -0
- package/dist/extensions/contracts.d.ts +50 -0
- package/dist/extensions/contracts.d.ts.map +1 -0
- package/dist/extensions/diagnostics.d.ts +12 -0
- package/dist/extensions/diagnostics.d.ts.map +1 -0
- package/dist/extensions/index.d.ts +5 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/runtime.d.ts +50 -0
- package/dist/extensions/runtime.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1587 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# `@anarchitects/governance-core`
|
|
2
|
+
|
|
3
|
+
Canonical Governance contracts, deterministic evaluation logic, and portable extension APIs.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`@anarchitects/governance-core` is the package that defines the Governance model layer for the Community-owned Governance package family. It owns the public contracts that adapters, hosts, and extensions normalize into, plus the deterministic logic that evaluates those contracts.
|
|
8
|
+
|
|
9
|
+
Use this package when you need:
|
|
10
|
+
|
|
11
|
+
- canonical workspace, project, dependency, ownership, violation, measurement, health, assessment, snapshot, drift, signal, and AI-analysis contracts
|
|
12
|
+
- deterministic rule evaluation and assessment assembly
|
|
13
|
+
- built-in Governance rule packs
|
|
14
|
+
- portable adapter input contracts
|
|
15
|
+
- portable extension contracts, capability contracts, diagnostics, and runtime registration helpers
|
|
16
|
+
|
|
17
|
+
## Responsibilities
|
|
18
|
+
|
|
19
|
+
This package is responsible for:
|
|
20
|
+
|
|
21
|
+
- defining the canonical `GovernanceWorkspace` model and related result shapes
|
|
22
|
+
- defining adapter-facing input contracts such as `GovernanceProjectInput`, `GovernanceDependencyInput`, and `GovernanceWorkspaceAdapterResult`
|
|
23
|
+
- defining profile, rule, signal, exception, measurement, health, assessment, snapshot, and drift contracts
|
|
24
|
+
- providing deterministic helpers such as profile normalization, rule evaluation, assessment assembly, snapshot comparison, and AI handoff payload builders
|
|
25
|
+
- providing portable extension contracts and runtime helpers that stay independent from Nx
|
|
26
|
+
|
|
27
|
+
This package is not responsible for:
|
|
28
|
+
|
|
29
|
+
- concrete adapter implementations
|
|
30
|
+
- CLI command behavior or argument parsing
|
|
31
|
+
- Nx runtime behavior
|
|
32
|
+
- Nx graph loading or metadata extraction
|
|
33
|
+
- Nx executors or generators
|
|
34
|
+
- plugin runtime behavior
|
|
35
|
+
|
|
36
|
+
## Public API
|
|
37
|
+
|
|
38
|
+
The package has a single public entrypoint:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import {
|
|
42
|
+
buildGovernanceAssessment,
|
|
43
|
+
buildGovernanceWorkspace,
|
|
44
|
+
buildMetricSnapshot,
|
|
45
|
+
compareSnapshots,
|
|
46
|
+
coreBuiltInRulePack,
|
|
47
|
+
evaluateRulePack,
|
|
48
|
+
normalizeGovernanceException,
|
|
49
|
+
normalizeGovernanceProfile,
|
|
50
|
+
registerLoadedGovernanceExtensions,
|
|
51
|
+
type GovernanceWorkspaceAdapter,
|
|
52
|
+
type GovernanceWorkspace,
|
|
53
|
+
type GovernanceWorkspaceAdapterResult,
|
|
54
|
+
} from '@anarchitects/governance-core';
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The root export currently re-exports these API groups:
|
|
58
|
+
|
|
59
|
+
- `adapter`
|
|
60
|
+
- `assessment`
|
|
61
|
+
- `ai`
|
|
62
|
+
- `built-in-rule-pack`
|
|
63
|
+
- `built-in-rules`
|
|
64
|
+
- `drift`
|
|
65
|
+
- `models`
|
|
66
|
+
- `exceptions`
|
|
67
|
+
- `profile`
|
|
68
|
+
- `rule-engine`
|
|
69
|
+
- `rules`
|
|
70
|
+
- `signals`
|
|
71
|
+
- `snapshots`
|
|
72
|
+
- `extensions`
|
|
73
|
+
|
|
74
|
+
### Core contracts
|
|
75
|
+
|
|
76
|
+
Core contracts include:
|
|
77
|
+
|
|
78
|
+
- workspace, project, dependency, and ownership models
|
|
79
|
+
- violations, measurements, recommendations, health scores, and top issues
|
|
80
|
+
- Governance profiles and rule configuration
|
|
81
|
+
- Governance exceptions and exception reports
|
|
82
|
+
- signal contracts and signal breakdowns
|
|
83
|
+
- snapshot and drift contracts
|
|
84
|
+
- adapter input/result contracts for hosts and adapters
|
|
85
|
+
- adapter contract, probe, and normalization helpers such as `GovernanceWorkspaceAdapter`, `GovernanceWorkspaceAdapterProbeResult`, and `buildGovernanceWorkspace(...)`
|
|
86
|
+
- AI analysis and handoff payload contracts
|
|
87
|
+
|
|
88
|
+
### Deterministic logic
|
|
89
|
+
|
|
90
|
+
Deterministic helpers include:
|
|
91
|
+
|
|
92
|
+
- `buildGovernanceAssessment(...)`
|
|
93
|
+
- `evaluateRules(...)` and `evaluateRulePack(...)`
|
|
94
|
+
- `normalizeGovernanceProfile(...)`
|
|
95
|
+
- `normalizeGovernanceException(...)`
|
|
96
|
+
- `buildMetricSnapshot(...)`
|
|
97
|
+
- `compareSnapshots(...)`, `summarizeDrift(...)`, and `buildDriftSummary(...)`
|
|
98
|
+
- `buildAiHandoffPayload(...)` and the specialized AI handoff helpers
|
|
99
|
+
|
|
100
|
+
### Built-in rule content
|
|
101
|
+
|
|
102
|
+
Built-in Governance rule content includes:
|
|
103
|
+
|
|
104
|
+
- `coreBuiltInRulePack`
|
|
105
|
+
- `coreBuiltInRulePacks`
|
|
106
|
+
- `coreBuiltInPolicyRules`
|
|
107
|
+
- `evaluateCoreBuiltInPolicyViolations(...)`
|
|
108
|
+
|
|
109
|
+
### Extension APIs
|
|
110
|
+
|
|
111
|
+
Portable extension APIs include:
|
|
112
|
+
|
|
113
|
+
- extension contracts in `contracts`
|
|
114
|
+
- capability registry contracts in `capabilities`
|
|
115
|
+
- extension diagnostics in `diagnostics`
|
|
116
|
+
- runtime registration and execution helpers in `runtime`
|
|
117
|
+
|
|
118
|
+
Notable extension exports include:
|
|
119
|
+
|
|
120
|
+
- `DefaultGovernanceCapabilityRegistry`
|
|
121
|
+
- `GovernanceExtensionHostContext`
|
|
122
|
+
- `GovernanceExtensionDefinition`
|
|
123
|
+
- `GovernanceWorkspaceEnricher`
|
|
124
|
+
- `GovernanceExtensionRulePack`
|
|
125
|
+
- `GovernanceSignalProvider`
|
|
126
|
+
- `GovernanceMetricProvider`
|
|
127
|
+
- `GovernanceExtensionDiagnostic`
|
|
128
|
+
- `registerLoadedGovernanceExtensions(...)`
|
|
129
|
+
- `applyGovernanceEnrichers(...)`
|
|
130
|
+
- `evaluateGovernanceRulePacks(...)`
|
|
131
|
+
- `collectGovernanceSignals(...)`
|
|
132
|
+
- `collectGovernanceMeasurements(...)`
|
|
133
|
+
|
|
134
|
+
## Usage
|
|
135
|
+
|
|
136
|
+
The package is designed to sit between concrete adapters and higher-level hosts:
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
import {
|
|
140
|
+
buildGovernanceAssessment,
|
|
141
|
+
coreBuiltInRulePack,
|
|
142
|
+
evaluateRulePack,
|
|
143
|
+
normalizeGovernanceProfile,
|
|
144
|
+
type GovernanceWorkspace,
|
|
145
|
+
} from '@anarchitects/governance-core';
|
|
146
|
+
|
|
147
|
+
const workspace: GovernanceWorkspace = {
|
|
148
|
+
id: 'demo',
|
|
149
|
+
name: 'demo',
|
|
150
|
+
root: '.',
|
|
151
|
+
projects: [],
|
|
152
|
+
dependencies: [],
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
const profile = normalizeGovernanceProfile({
|
|
156
|
+
name: 'default',
|
|
157
|
+
boundaryPolicySource: 'governance',
|
|
158
|
+
layers: ['app', 'domain', 'data'],
|
|
159
|
+
allowedDomainDependencies: {},
|
|
160
|
+
ownership: { required: false, metadataField: 'team' },
|
|
161
|
+
health: {
|
|
162
|
+
statusThresholds: {
|
|
163
|
+
goodMinScore: 80,
|
|
164
|
+
warningMinScore: 60,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
metrics: {},
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
const ruleResult = await evaluateRulePack(coreBuiltInRulePack, {
|
|
171
|
+
workspace,
|
|
172
|
+
profile,
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const assessment = buildGovernanceAssessment({
|
|
176
|
+
workspace,
|
|
177
|
+
profile: profile.name,
|
|
178
|
+
violations: ruleResult.violations,
|
|
179
|
+
measurements: [],
|
|
180
|
+
signals: [],
|
|
181
|
+
warnings: [],
|
|
182
|
+
exceptions: {
|
|
183
|
+
summary: {
|
|
184
|
+
declaredCount: 0,
|
|
185
|
+
matchedCount: 0,
|
|
186
|
+
suppressedPolicyViolationCount: 0,
|
|
187
|
+
suppressedConformanceFindingCount: 0,
|
|
188
|
+
unusedExceptionCount: 0,
|
|
189
|
+
activeExceptionCount: 0,
|
|
190
|
+
staleExceptionCount: 0,
|
|
191
|
+
expiredExceptionCount: 0,
|
|
192
|
+
reactivatedPolicyViolationCount: 0,
|
|
193
|
+
reactivatedConformanceFindingCount: 0,
|
|
194
|
+
},
|
|
195
|
+
used: [],
|
|
196
|
+
unused: [],
|
|
197
|
+
suppressedFindings: [],
|
|
198
|
+
reactivatedFindings: [],
|
|
199
|
+
},
|
|
200
|
+
health: {
|
|
201
|
+
score: 100,
|
|
202
|
+
status: 'good',
|
|
203
|
+
grade: 'A',
|
|
204
|
+
reasons: [],
|
|
205
|
+
hotspots: {
|
|
206
|
+
metrics: [],
|
|
207
|
+
projects: [],
|
|
208
|
+
},
|
|
209
|
+
explainability: {
|
|
210
|
+
topIssues: [],
|
|
211
|
+
metrics: [],
|
|
212
|
+
projects: [],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
recommendations: [],
|
|
216
|
+
});
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Package Boundaries
|
|
220
|
+
|
|
221
|
+
`@anarchitects/governance-core` is platform-independent.
|
|
222
|
+
|
|
223
|
+
That means:
|
|
224
|
+
|
|
225
|
+
- no Nx runtime assumptions
|
|
226
|
+
- no dependency on concrete adapters
|
|
227
|
+
- no dependency on CLI runtime concerns
|
|
228
|
+
- no dependency on executor, generator, or plugin infrastructure
|
|
229
|
+
|
|
230
|
+
Concrete adapters should emit canonical Core-owned contracts. Hosts and CLIs should orchestrate Core APIs without moving canonical model ownership out of this package.
|
|
231
|
+
|
|
232
|
+
For detailed package-boundary rules and allowed dependency direction, see
|
|
233
|
+
[ADR 0001: Governance Package Boundaries for Core, CLI, Adapters, and Extensions](../../../docs/adr/0001-governance-package-boundaries.md).
|
|
234
|
+
|
|
235
|
+
## Related Packages
|
|
236
|
+
|
|
237
|
+
- `@anarchitects/governance-adapter-typescript` discovers TypeScript workspaces and maps them into Core-owned contracts
|
|
238
|
+
- `@anarchitects/governance-cli` provides a standalone host/runtime surface over Core APIs
|
|
239
|
+
- `@anarchitects/governance-extension-*` packages should plug into Core-owned extension contracts
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { GovernanceWorkspace } from './models.js';
|
|
2
|
+
import { ProfileOverrides } from './profile.js';
|
|
3
|
+
export interface GovernanceWorkspaceAdapterResult {
|
|
4
|
+
workspace?: GovernanceWorkspace;
|
|
5
|
+
workspaceId?: string;
|
|
6
|
+
workspaceName?: string;
|
|
7
|
+
workspaceRoot?: string;
|
|
8
|
+
projects?: GovernanceProjectInput[];
|
|
9
|
+
dependencies?: GovernanceDependencyInput[];
|
|
10
|
+
capabilities?: GovernanceCapability[];
|
|
11
|
+
diagnostics?: GovernanceDiagnostic[];
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export type GovernanceWorkspaceAdapterProbeConfidence = 'none' | 'low' | 'medium' | 'high';
|
|
15
|
+
export interface GovernanceWorkspaceAdapterProbeResult {
|
|
16
|
+
supported: boolean;
|
|
17
|
+
confidence?: GovernanceWorkspaceAdapterProbeConfidence;
|
|
18
|
+
reasons?: string[];
|
|
19
|
+
diagnostics?: GovernanceDiagnostic[];
|
|
20
|
+
capabilities?: GovernanceCapability[];
|
|
21
|
+
metadata?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
export interface GovernanceWorkspaceAdapter<TInput = unknown> {
|
|
24
|
+
id: string;
|
|
25
|
+
probe?(input: TInput): GovernanceWorkspaceAdapterProbeResult;
|
|
26
|
+
loadWorkspace(input: TInput): GovernanceWorkspaceAdapterResult;
|
|
27
|
+
}
|
|
28
|
+
export interface GovernanceProjectInput {
|
|
29
|
+
id: string;
|
|
30
|
+
name?: string;
|
|
31
|
+
root?: string;
|
|
32
|
+
type?: string;
|
|
33
|
+
domain?: string;
|
|
34
|
+
layer?: string;
|
|
35
|
+
scope?: string;
|
|
36
|
+
tags?: string[];
|
|
37
|
+
ownership?: GovernanceOwnershipInput;
|
|
38
|
+
metadata?: Record<string, unknown>;
|
|
39
|
+
}
|
|
40
|
+
export interface GovernanceDependencyInput {
|
|
41
|
+
sourceProjectId: string;
|
|
42
|
+
targetProjectId: string;
|
|
43
|
+
type?: string;
|
|
44
|
+
sourceFile?: string;
|
|
45
|
+
metadata?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
export interface GovernanceOwnershipInput {
|
|
48
|
+
team?: string;
|
|
49
|
+
contacts?: string[];
|
|
50
|
+
source?: string;
|
|
51
|
+
metadata?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
export interface GovernanceCapability<TData = unknown> {
|
|
54
|
+
id: string;
|
|
55
|
+
version?: string;
|
|
56
|
+
data?: TData;
|
|
57
|
+
}
|
|
58
|
+
export interface GovernanceDiagnostic {
|
|
59
|
+
code: string;
|
|
60
|
+
message: string;
|
|
61
|
+
source?: string;
|
|
62
|
+
details?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
export declare function buildGovernanceWorkspace(adapterResult: GovernanceWorkspaceAdapterResult, overrides?: ProfileOverrides): GovernanceWorkspace;
|
|
65
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AiAnalysisRequest, AiAnalysisResult } from './models.js';
|
|
2
|
+
export type AiHandoffUseCase = Extract<AiAnalysisRequest['kind'], 'root-cause' | 'drift' | 'pr-impact' | 'scorecard' | 'management-insights'>;
|
|
3
|
+
export interface GovernanceAiHandoffPayload<TRequest = Record<string, unknown>, TAnalysis = AiAnalysisResult> {
|
|
4
|
+
useCase: AiHandoffUseCase;
|
|
5
|
+
request: TRequest;
|
|
6
|
+
analysis: TAnalysis;
|
|
7
|
+
payloadScope?: Record<string, unknown>;
|
|
8
|
+
metadata?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export declare function buildAiHandoffPayload<TRequest, TAnalysis = AiAnalysisResult>(useCase: AiHandoffUseCase, params: {
|
|
11
|
+
request: TRequest;
|
|
12
|
+
analysis: TAnalysis;
|
|
13
|
+
payloadScope?: Record<string, unknown>;
|
|
14
|
+
metadata?: Record<string, unknown>;
|
|
15
|
+
}): GovernanceAiHandoffPayload<TRequest, TAnalysis>;
|
|
16
|
+
export declare function buildAiRootCauseHandoffPayload<TRequest>(params: Parameters<typeof buildAiHandoffPayload<TRequest>>[1]): GovernanceAiHandoffPayload<TRequest>;
|
|
17
|
+
export declare function buildAiPrImpactHandoffPayload<TRequest>(params: Parameters<typeof buildAiHandoffPayload<TRequest>>[1]): GovernanceAiHandoffPayload<TRequest>;
|
|
18
|
+
export declare function buildAiDriftHandoffPayload<TRequest>(params: Parameters<typeof buildAiHandoffPayload<TRequest>>[1]): GovernanceAiHandoffPayload<TRequest>;
|
|
19
|
+
export declare function buildAiScorecardHandoffPayload<TRequest>(params: Parameters<typeof buildAiHandoffPayload<TRequest>>[1]): GovernanceAiHandoffPayload<TRequest>;
|
|
20
|
+
export declare function buildAiManagementInsightsHandoffPayload<TRequest>(params: Parameters<typeof buildAiHandoffPayload<TRequest>>[1]): GovernanceAiHandoffPayload<TRequest>;
|
|
21
|
+
//# sourceMappingURL=ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/core/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC,iBAAiB,CAAC,MAAM,CAAC,EACzB,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,qBAAqB,CAC3E,CAAC;AAEF,MAAM,WAAW,0BAA0B,CACzC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,GAAG,gBAAgB;IAE5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,GAAG,gBAAgB,EAC1E,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IACN,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GACA,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAQjD;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EACrD,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,0BAA0B,CAAC,QAAQ,CAAC,CAEtC;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EACpD,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,0BAA0B,CAAC,QAAQ,CAAC,CAEtC;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EACjD,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,0BAA0B,CAAC,QAAQ,CAAC,CAEtC;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EACrD,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,0BAA0B,CAAC,QAAQ,CAAC,CAEtC;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAC9D,MAAM,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,0BAA0B,CAAC,QAAQ,CAAC,CAEtC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { GovernanceAssessment, GovernanceExceptionReport, GovernanceTopIssue, Measurement, MetricBreakdown, Recommendation, SignalBreakdown, Violation, GovernanceWorkspace, HealthScore } from './models.js';
|
|
2
|
+
import { GovernanceSignal } from './signals.js';
|
|
3
|
+
export type GovernanceAssessmentReportType = 'health' | 'boundaries' | 'ownership' | 'architecture';
|
|
4
|
+
export interface GovernanceAssessmentInput {
|
|
5
|
+
workspace: GovernanceWorkspace;
|
|
6
|
+
profile: string;
|
|
7
|
+
warnings?: string[];
|
|
8
|
+
exceptions: GovernanceExceptionReport;
|
|
9
|
+
violations: Violation[];
|
|
10
|
+
signals: GovernanceSignal[];
|
|
11
|
+
measurements: Measurement[];
|
|
12
|
+
health: HealthScore;
|
|
13
|
+
recommendations?: Recommendation[];
|
|
14
|
+
reportType?: GovernanceAssessmentReportType;
|
|
15
|
+
}
|
|
16
|
+
export declare function buildGovernanceAssessment(input: GovernanceAssessmentInput): GovernanceAssessment;
|
|
17
|
+
export declare function filterViolationsForReportType(violations: Violation[], reportType: GovernanceAssessmentReportType | undefined): Violation[];
|
|
18
|
+
export declare function filterMeasurementsForReportType(measurements: Measurement[], reportType: GovernanceAssessmentReportType | undefined): Measurement[];
|
|
19
|
+
export declare function filterSignalsForReportType(signals: GovernanceSignal[], reportType: GovernanceAssessmentReportType | undefined): GovernanceSignal[];
|
|
20
|
+
export declare function buildSignalBreakdown(signals: GovernanceSignal[]): SignalBreakdown;
|
|
21
|
+
export declare function buildMetricBreakdown(measurements: Measurement[]): MetricBreakdown;
|
|
22
|
+
export declare function buildTopIssues(signals: GovernanceSignal[]): GovernanceTopIssue[];
|
|
23
|
+
//# sourceMappingURL=assessment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment.d.ts","sourceRoot":"","sources":["../../src/core/assessment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAEzB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,8BAA8B,GACtC,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,yBAAyB,CAAC;IACtC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,8BAA8B,CAAC;CAC7C;AA6DD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,yBAAyB,GAC/B,oBAAoB,CA2BtB;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,SAAS,EAAE,EACvB,UAAU,EAAE,8BAA8B,GAAG,SAAS,GACrD,SAAS,EAAE,CAcb;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,WAAW,EAAE,EAC3B,UAAU,EAAE,8BAA8B,GAAG,SAAS,GACrD,WAAW,EAAE,CAsBf;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,UAAU,EAAE,8BAA8B,GAAG,SAAS,GACrD,gBAAgB,EAAE,CAcpB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EAAE,GAC1B,eAAe,CA4CjB;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,WAAW,EAAE,GAC1B,eAAe,CA4CjB;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EAAE,GAC1B,kBAAkB,EAAE,CAoCtB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GovernanceRulePack } from './rules.js';
|
|
2
|
+
export declare const CORE_BUILT_IN_RULE_PACK_ID = "core";
|
|
3
|
+
export declare const coreBuiltInRulePack: GovernanceRulePack;
|
|
4
|
+
export declare const coreBuiltInRulePacks: GovernanceRulePack[];
|
|
5
|
+
//# sourceMappingURL=built-in-rule-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built-in-rule-pack.d.ts","sourceRoot":"","sources":["../../src/core/built-in-rule-pack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,eAAO,MAAM,0BAA0B,SAAS,CAAC;AAEjD,eAAO,MAAM,mBAAmB,EAAE,kBAIjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,EAA0B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Violation } from './models.js';
|
|
2
|
+
import { GovernanceRule, GovernanceRuleContext, GovernanceRuleResult } from './rules.js';
|
|
3
|
+
type SynchronousGovernanceRule<TOptions = unknown> = GovernanceRule<TOptions> & {
|
|
4
|
+
evaluate(context: GovernanceRuleContext<TOptions>): GovernanceRuleResult;
|
|
5
|
+
};
|
|
6
|
+
export declare const domainBoundaryRule: SynchronousGovernanceRule;
|
|
7
|
+
export declare const layerBoundaryRule: SynchronousGovernanceRule;
|
|
8
|
+
export declare const ownershipPresenceRule: SynchronousGovernanceRule;
|
|
9
|
+
export declare const projectNameConventionRule: SynchronousGovernanceRule;
|
|
10
|
+
export declare const tagConventionRule: SynchronousGovernanceRule;
|
|
11
|
+
export declare const missingDomainRule: SynchronousGovernanceRule;
|
|
12
|
+
export declare const missingLayerRule: SynchronousGovernanceRule;
|
|
13
|
+
export declare const coreBuiltInPolicyRules: GovernanceRule[];
|
|
14
|
+
export declare function evaluateCoreBuiltInPolicyViolations(context: GovernanceRuleContext): Violation[];
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=built-in-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built-in-rules.d.ts","sourceRoot":"","sources":["../../src/core/built-in-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,aAAa,CAAC;AAYhE,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,KAAK,yBAAyB,CAAC,QAAQ,GAAG,OAAO,IAC/C,cAAc,CAAC,QAAQ,CAAC,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;CAC1E,CAAC;AAEJ,eAAO,MAAM,kBAAkB,EAAE,yBAuChC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,yBA+C/B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,yBAqCnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,yBAgCvC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,yBAmC/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,yBA2B/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,yBA2B9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAQlD,CAAC;AAEF,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,qBAAqB,GAC7B,SAAS,EAAE,CAwFb"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DriftSignal, DriftSummary, MetricSnapshot, SnapshotComparison } from './models.js';
|
|
2
|
+
export declare function compareSnapshots(baseline: MetricSnapshot, current: MetricSnapshot): SnapshotComparison;
|
|
3
|
+
export declare function summarizeDrift(comparison: SnapshotComparison, threshold?: number): DriftSignal[];
|
|
4
|
+
export declare function buildDriftSummary(signals: DriftSignal[]): DriftSummary;
|
|
5
|
+
//# sourceMappingURL=drift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../src/core/drift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,cAAc,EACd,kBAAkB,EAWnB,MAAM,aAAa,CAAC;AA8BrB,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,GACtB,kBAAkB,CAkBpB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,kBAAkB,EAC9B,SAAS,SAAO,GACf,WAAW,EAAE,CAoIf;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,YAAY,CAwBtE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GovernanceConformanceCategory } from './signals.js';
|
|
2
|
+
export type GovernanceExceptionSource = 'policy' | 'conformance';
|
|
3
|
+
export interface GovernanceExceptionReview {
|
|
4
|
+
createdAt?: string;
|
|
5
|
+
reviewBy?: string;
|
|
6
|
+
expiresAt?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface GovernancePolicyExceptionScope {
|
|
9
|
+
source: 'policy';
|
|
10
|
+
ruleId: string;
|
|
11
|
+
projectId: string;
|
|
12
|
+
targetProjectId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface GovernanceConformanceExceptionScope {
|
|
15
|
+
source: 'conformance';
|
|
16
|
+
ruleId?: string;
|
|
17
|
+
category?: GovernanceConformanceCategory;
|
|
18
|
+
projectId?: string;
|
|
19
|
+
relatedProjectIds?: string[];
|
|
20
|
+
}
|
|
21
|
+
export type GovernanceExceptionScope = GovernancePolicyExceptionScope | GovernanceConformanceExceptionScope;
|
|
22
|
+
export interface GovernanceException {
|
|
23
|
+
id: string;
|
|
24
|
+
source: GovernanceExceptionSource;
|
|
25
|
+
scope: GovernanceExceptionScope;
|
|
26
|
+
reason: string;
|
|
27
|
+
owner: string;
|
|
28
|
+
review: GovernanceExceptionReview;
|
|
29
|
+
}
|
|
30
|
+
export declare function normalizeGovernanceException(exception: GovernanceException): GovernanceException;
|
|
31
|
+
export declare function buildGovernanceExceptionScopeKey(scope: GovernanceExceptionScope): string;
|
|
32
|
+
export declare function isPolicyExceptionScope(scope: GovernanceExceptionScope): scope is GovernancePolicyExceptionScope;
|
|
33
|
+
export declare function isConformanceExceptionScope(scope: GovernanceExceptionScope): scope is GovernanceConformanceExceptionScope;
|
|
34
|
+
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/core/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,6BAA6B,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,wBAAwB,GAChC,8BAA8B,GAC9B,mCAAmC,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,yBAAyB,CAAC;IAClC,KAAK,EAAE,wBAAwB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,mBAAmB,GAC7B,mBAAmB,CAsBrB;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAmBR;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,wBAAwB,GAC9B,KAAK,IAAI,8BAA8B,CAEzC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,GAC9B,KAAK,IAAI,mCAAmC,CAE9C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './adapter.js';
|
|
2
|
+
export * from './assessment.js';
|
|
3
|
+
export * from './ai.js';
|
|
4
|
+
export * from './built-in-rule-pack.js';
|
|
5
|
+
export * from './built-in-rules.js';
|
|
6
|
+
export * from './drift.js';
|
|
7
|
+
export * from './models.js';
|
|
8
|
+
export * from './exceptions.js';
|
|
9
|
+
export * from './profile.js';
|
|
10
|
+
export * from './rule-engine.js';
|
|
11
|
+
export * from './rules.js';
|
|
12
|
+
export * from './signals.js';
|
|
13
|
+
export * from './snapshots.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|