@transitrix/diagrams 1.0.0 → 1.1.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.
- package/LICENSE +21 -21
- package/README.md +47 -47
- package/dist/__tests__/edge-path.test.js +8 -0
- package/dist/activities/cpm.js +11 -2
- package/dist/activities/gantt.js +6 -3
- package/dist/activities/types.d.ts +1 -0
- package/dist/activities/validate.js +3 -3
- package/dist/activity-card/__tests__/example.test.js +20 -1
- package/dist/activity-card/__tests__/layout.test.js +102 -11
- package/dist/activity-card/__tests__/resolver.test.js +161 -7
- package/dist/activity-card/index.d.ts +1 -1
- package/dist/activity-card/layout.d.ts +1 -1
- package/dist/activity-card/layout.js +220 -103
- package/dist/activity-card/resolver.js +115 -28
- package/dist/activity-card/types.d.ts +150 -27
- package/dist/activity-card/validate.js +3 -0
- package/dist/actor/__tests__/validate.test.js +63 -31
- package/dist/actor/index.d.ts +1 -1
- package/dist/actor/index.js +1 -1
- package/dist/actor/types.d.ts +7 -3
- package/dist/actor/types.js +17 -3
- package/dist/actor/validate.js +55 -26
- package/dist/assertion/types.d.ts +3 -1
- package/dist/assertion/types.js +1 -1
- package/dist/change/__tests__/validate.test.js +40 -34
- package/dist/change/index.d.ts +1 -0
- package/dist/change/types.d.ts +1 -1
- package/dist/change/types.js +2 -2
- package/dist/change/validate.d.ts +6 -1
- package/dist/change/validate.js +68 -41
- package/dist/compliance/__tests__/classify.test.js +34 -0
- package/dist/compliance/__tests__/coverage-metric.test.js +146 -46
- package/dist/compliance/__tests__/html.test.js +2 -2
- package/dist/compliance/__tests__/impact.test.js +509 -6
- package/dist/compliance/classify.d.ts +6 -0
- package/dist/compliance/classify.js +9 -1
- package/dist/compliance/coverage-metric.d.ts +31 -11
- package/dist/compliance/coverage-metric.js +149 -39
- package/dist/compliance/html.js +78 -81
- package/dist/compliance/impact.d.ts +100 -16
- package/dist/compliance/impact.js +272 -28
- package/dist/compliance/index.d.ts +2 -2
- package/dist/compliance/index.js +1 -1
- package/dist/compliance/markdown.js +1 -0
- package/dist/compliance/types.d.ts +25 -6
- package/dist/edge-path.d.ts +8 -4
- package/dist/edge-path.js +11 -6
- package/dist/factor/__tests__/validate.test.js +75 -46
- package/dist/factor/index.d.ts +3 -2
- package/dist/factor/index.js +1 -1
- package/dist/factor/types.d.ts +5 -8
- package/dist/factor/types.js +10 -5
- package/dist/factor/validate.d.ts +6 -1
- package/dist/factor/validate.js +68 -50
- package/dist/fgca/__tests__/chain-table.test.js +2 -2
- package/dist/fgca/__tests__/layout.test.js +11 -11
- package/dist/fgca/__tests__/preview-layout.test.js +7 -7
- package/dist/fgca/__tests__/resolver.test.js +185 -0
- package/dist/fgca/chain-table.d.ts +1 -1
- package/dist/fgca/chain-table.js +4 -4
- package/dist/fgca/index.d.ts +4 -2
- package/dist/fgca/index.js +2 -1
- package/dist/fgca/layout.d.ts +2 -2
- package/dist/fgca/layout.js +9 -9
- package/dist/fgca/nodeTypes.d.ts +1 -1
- package/dist/fgca/nodeTypes.js +2 -2
- package/dist/fgca/nodes/FGCAFactorNode.d.ts +3 -3
- package/dist/fgca/nodes/FGCAFactorNode.js +5 -5
- package/dist/fgca/parse-canonical.js +15 -10
- package/dist/fgca/preview-layout.d.ts +1 -1
- package/dist/fgca/preview-layout.js +4 -4
- package/dist/fgca/resolver.d.ts +49 -0
- package/dist/fgca/resolver.js +126 -0
- package/dist/fgca/types.d.ts +11 -11
- package/dist/fgca/types.js +2 -2
- package/dist/fgca/validate.d.ts +2 -2
- package/dist/fgca/validate.js +17 -14
- package/dist/goals/index.d.ts +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/process-blueprint/__tests__/layout.test.js +37 -0
- package/dist/process-blueprint/index.d.ts +1 -1
- package/dist/process-blueprint/layout.js +66 -35
- package/dist/process-blueprint/types.d.ts +36 -1
- package/dist/scenarios/index.d.ts +1 -1
- package/dist/scenarios/types.d.ts +4 -4
- package/dist/stakeholder/__tests__/validate.test.js +49 -47
- package/dist/stakeholder/index.d.ts +1 -0
- package/dist/stakeholder/types.d.ts +3 -4
- package/dist/stakeholder/types.js +2 -3
- package/dist/stakeholder/validate.d.ts +6 -1
- package/dist/stakeholder/validate.js +71 -50
- package/dist/target-state/__tests__/validate.test.js +43 -27
- package/dist/target-state/index.d.ts +2 -0
- package/dist/target-state/index.js +1 -0
- package/dist/target-state/types.d.ts +6 -1
- package/dist/target-state/types.js +8 -7
- package/dist/target-state/validate.d.ts +6 -1
- package/dist/target-state/validate.js +69 -45
- package/dist/theme/themes.js +71 -69
- package/dist/theme/tokens.d.ts +7 -1
- package/dist/theme/tokens.js +3 -1
- package/dist/webview/__tests__/entry-notations.test.js +2 -0
- package/dist/webview/__tests__/entry.test.js +11 -11
- package/dist/webview/__tests__/render-process.test.js +463 -0
- package/dist/webview/__tests__/render-util.test.d.ts +1 -0
- package/dist/webview/__tests__/render-util.test.js +54 -0
- package/dist/webview/entry.d.ts +1 -1
- package/dist/webview/entry.js +9 -5
- package/dist/webview/render-activities.d.ts +24 -2
- package/dist/webview/render-activities.js +92 -57
- package/dist/webview/render-activity-card.d.ts +11 -1
- package/dist/webview/render-activity-card.js +115 -79
- package/dist/webview/render-blocks.d.ts +24 -1
- package/dist/webview/render-blocks.js +58 -24
- package/dist/webview/render-fgca.d.ts +31 -0
- package/dist/webview/render-fgca.js +30 -19
- package/dist/webview/render-goals.d.ts +27 -1
- package/dist/webview/render-goals.js +42 -32
- package/dist/webview/render-process-blueprint.d.ts +11 -1
- package/dist/webview/render-process-blueprint.js +118 -53
- package/dist/webview/render-process.d.ts +95 -0
- package/dist/webview/render-process.js +392 -0
- package/dist/webview/render-scenarios.js +2 -2
- package/dist/webview/render-util.d.ts +19 -6
- package/dist/webview/render-util.js +23 -15
- package/package.json +54 -40
- package/src/__tests__/edge-path.test.ts +58 -46
- package/src/__tests__/scope.test.ts +27 -27
- package/src/__tests__/yaml-normalize.test.ts +158 -158
- package/src/activities/__tests__/cpm.test.ts +164 -164
- package/src/activities/__tests__/gantt.test.ts +245 -245
- package/src/activities/__tests__/layout.test.ts +112 -112
- package/src/activities/__tests__/validate.test.ts +409 -409
- package/src/activities/cpm.ts +107 -95
- package/src/activities/gantt.ts +277 -276
- package/src/activities/index.ts +28 -28
- package/src/activities/layout.ts +112 -112
- package/src/activities/types.ts +149 -148
- package/src/activities/validate.ts +357 -357
- package/src/activity-card/__tests__/example.test.ts +85 -66
- package/src/activity-card/__tests__/layout.test.ts +169 -63
- package/src/activity-card/__tests__/resolver.test.ts +330 -161
- package/src/activity-card/__tests__/validate.test.ts +131 -131
- package/src/activity-card/index.ts +38 -32
- package/src/activity-card/layout.ts +324 -194
- package/src/activity-card/resolver.ts +422 -337
- package/src/activity-card/types.ts +376 -237
- package/src/activity-card/validate.ts +162 -158
- package/src/actor/__tests__/validate.test.ts +70 -31
- package/src/actor/index.ts +1 -1
- package/src/actor/types.ts +21 -7
- package/src/actor/validate.ts +59 -27
- package/src/applications/__tests__/validate.test.ts +256 -256
- package/src/applications/index.ts +11 -11
- package/src/applications/types.ts +43 -43
- package/src/applications/validate.ts +131 -131
- package/src/assertion/__tests__/example.test.ts +37 -37
- package/src/assertion/__tests__/validate.test.ts +142 -142
- package/src/assertion/index.ts +12 -12
- package/src/assertion/types.ts +60 -58
- package/src/assertion/validate.ts +145 -145
- package/src/blocks/__tests__/layout.test.ts +169 -169
- package/src/blocks/__tests__/validate.test.ts +260 -260
- package/src/blocks/index.ts +17 -17
- package/src/blocks/layout.ts +186 -186
- package/src/blocks/types.ts +62 -62
- package/src/blocks/validate.ts +206 -206
- package/src/capability-map/__tests__/validate.test.ts +238 -238
- package/src/capability-map/index.ts +8 -8
- package/src/capability-map/types.ts +29 -29
- package/src/capability-map/validate.ts +127 -127
- package/src/change/__tests__/validate.test.ts +43 -34
- package/src/change/index.ts +1 -0
- package/src/change/types.ts +5 -3
- package/src/change/validate.ts +75 -43
- package/src/compliance/__tests__/classify.test.ts +64 -27
- package/src/compliance/__tests__/confidence.test.ts +98 -98
- package/src/compliance/__tests__/coverage-metric.test.ts +300 -188
- package/src/compliance/__tests__/demo-scenario.test.ts +273 -273
- package/src/compliance/__tests__/example.test.ts +57 -57
- package/src/compliance/__tests__/gap-report.test.ts +128 -128
- package/src/compliance/__tests__/html.test.ts +141 -141
- package/src/compliance/__tests__/impact.test.ts +1059 -481
- package/src/compliance/__tests__/markdown.test.ts +94 -94
- package/src/compliance/__tests__/views.test.ts +64 -64
- package/src/compliance/classify.ts +100 -84
- package/src/compliance/confidence.ts +69 -69
- package/src/compliance/coverage-metric.ts +404 -263
- package/src/compliance/gap-report.ts +94 -94
- package/src/compliance/html.ts +291 -295
- package/src/compliance/impact.ts +979 -677
- package/src/compliance/index.ts +57 -56
- package/src/compliance/markdown.ts +136 -135
- package/src/compliance/reverse-index.ts +33 -33
- package/src/compliance/types.ts +136 -120
- package/src/compliance/views.ts +46 -46
- package/src/compliance-matrix/__tests__/build.test.ts +200 -200
- package/src/compliance-matrix/__tests__/example.test.ts +57 -57
- package/src/compliance-matrix/index.ts +11 -11
- package/src/compliance-matrix/types.ts +102 -102
- package/src/edge-path.ts +50 -44
- package/src/factor/__tests__/validate.test.ts +81 -46
- package/src/factor/index.ts +3 -7
- package/src/factor/types.ts +15 -19
- package/src/factor/validate.ts +77 -51
- package/src/fgca/__tests__/chain-table.test.ts +172 -172
- package/src/fgca/__tests__/layout.test.ts +179 -179
- package/src/fgca/__tests__/parse-canonical.test.ts +248 -248
- package/src/fgca/__tests__/preview-layout.test.ts +124 -124
- package/src/fgca/__tests__/resolver.test.ts +209 -0
- package/src/fgca/__tests__/validate.test.ts +142 -142
- package/src/fgca/chain-table.ts +225 -225
- package/src/fgca/index.ts +47 -45
- package/src/fgca/layout.ts +204 -204
- package/src/fgca/nodeTypes.ts +11 -11
- package/src/fgca/nodes/FGCAActivityNode.tsx +65 -65
- package/src/fgca/nodes/FGCAChangeNode.tsx +64 -64
- package/src/fgca/nodes/FGCAFactorNode.tsx +64 -64
- package/src/fgca/nodes/FGCAGoalNode.tsx +72 -72
- package/src/fgca/parse-canonical.ts +405 -400
- package/src/fgca/preview-layout.ts +217 -217
- package/src/fgca/resolver.ts +159 -0
- package/src/fgca/types.ts +50 -50
- package/src/fgca/validate.ts +129 -126
- package/src/geometry.ts +9 -9
- package/src/goals/__tests__/layout.test.ts +175 -175
- package/src/goals/__tests__/mutations.test.ts +111 -111
- package/src/goals/__tests__/parse-canonical.test.ts +145 -145
- package/src/goals/__tests__/validate.test.ts +202 -202
- package/src/goals/index.ts +20 -21
- package/src/goals/layout.ts +172 -172
- package/src/goals/mutations.ts +123 -123
- package/src/goals/parse-canonical.ts +286 -286
- package/src/goals/types.ts +85 -85
- package/src/goals/validate.ts +136 -136
- package/src/index.ts +28 -23
- package/src/process-blueprint/__tests__/compliance-lane.test.ts +320 -320
- package/src/process-blueprint/__tests__/layout.test.ts +240 -195
- package/src/process-blueprint/__tests__/validate.test.ts +310 -310
- package/src/process-blueprint/index.ts +32 -31
- package/src/process-blueprint/layout.ts +564 -531
- package/src/process-blueprint/types.ts +278 -242
- package/src/process-blueprint/validate.ts +181 -181
- package/src/process-map/__tests__/validate.test.ts +223 -223
- package/src/process-map/index.ts +10 -10
- package/src/process-map/types.ts +36 -36
- package/src/process-map/validate.ts +135 -135
- package/src/products/__tests__/validate.test.ts +239 -239
- package/src/products/index.ts +9 -9
- package/src/products/types.ts +31 -31
- package/src/products/validate.ts +112 -112
- package/src/repo-validate/__tests__/validate-repo.test.ts +149 -149
- package/src/repo-validate/index.ts +2 -2
- package/src/repo-validate/types.ts +50 -50
- package/src/repo-validate/validate-repo.ts +196 -196
- package/src/requirement/__tests__/example.test.ts +24 -24
- package/src/requirement/__tests__/validate.test.ts +96 -96
- package/src/requirement/index.ts +4 -4
- package/src/requirement/types.ts +35 -35
- package/src/requirement/validate.ts +92 -92
- package/src/scenarios/__tests__/validate.test.ts +209 -209
- package/src/scenarios/index.ts +15 -15
- package/src/scenarios/types.ts +37 -37
- package/src/scenarios/validate.ts +122 -122
- package/src/schema-version.ts +16 -16
- package/src/scope.ts +46 -46
- package/src/stakeholder/__tests__/validate.test.ts +51 -47
- package/src/stakeholder/index.ts +1 -0
- package/src/stakeholder/types.ts +7 -7
- package/src/stakeholder/validate.ts +79 -52
- package/src/target-state/__tests__/validate.test.ts +48 -27
- package/src/target-state/index.ts +2 -0
- package/src/target-state/types.ts +11 -7
- package/src/target-state/validate.ts +76 -46
- package/src/theme/index.ts +4 -4
- package/src/theme/themes.ts +239 -237
- package/src/theme/tokens.ts +135 -133
- package/src/typed-id.ts +56 -56
- package/src/validation-types.ts +36 -36
- package/src/webview/__tests__/entry-notations.test.ts +79 -77
- package/src/webview/__tests__/entry.test.ts +64 -64
- package/src/webview/__tests__/render-goals.test.ts +72 -72
- package/src/webview/__tests__/render-process.test.ts +538 -0
- package/src/webview/__tests__/render-util.test.ts +66 -0
- package/src/webview/entry.ts +298 -292
- package/src/webview/render-activities.ts +111 -69
- package/src/webview/render-activity-card.ts +275 -234
- package/src/webview/render-blocks.ts +78 -28
- package/src/webview/render-fgca.ts +53 -28
- package/src/webview/render-goals.ts +133 -110
- package/src/webview/render-process-blueprint.ts +281 -207
- package/src/webview/render-process.ts +507 -0
- package/src/webview/render-scenarios.ts +3 -3
- package/src/webview/render-util.ts +27 -14
- package/src/webview/styles.css +322 -323
- package/src/yaml-normalize.ts +56 -56
- package/dist/element-envelope.d.ts +0 -15
- package/dist/element-envelope.js +0 -55
- package/dist/issues/__tests__/layout.test.js +0 -62
- package/dist/issues/__tests__/validate.test.js +0 -82
- package/dist/issues/index.d.ts +0 -4
- package/dist/issues/index.js +0 -2
- package/dist/issues/layout.d.ts +0 -10
- package/dist/issues/layout.js +0 -82
- package/dist/issues/types.d.ts +0 -61
- package/dist/issues/types.js +0 -6
- package/dist/issues/validate.d.ts +0 -3
- package/dist/issues/validate.js +0 -143
- package/dist/webview/transitrix-render.css +0 -323
- package/dist/webview/transitrix-render.js +0 -6452
- package/dist/webview/transitrix-render.js.map +0 -7
- package/src/element-envelope.ts +0 -76
- /package/dist/{issues/__tests__/layout.test.d.ts → fgca/__tests__/resolver.test.d.ts} +0 -0
- /package/dist/{issues/__tests__/validate.test.d.ts → webview/__tests__/render-process.test.d.ts} +0 -0
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
// Confidence bridge for the compliance views (vkgeorgia/strategy#162 — DQ-2).
|
|
2
|
-
// Maps the compliance index projections (IndexRequirement / IndexAssertion) onto
|
|
3
|
-
// the DQ-1 ScoringElement shape, scores the view, and renders the §11.6 header
|
|
4
|
-
// line. Lives in @transitrix/diagrams so Studio and DSM share one bridge and
|
|
5
|
-
// the headline reads the same on both surfaces.
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
formatConfidenceHeader,
|
|
9
|
-
scoreView,
|
|
10
|
-
} from '../confidence/index.js';
|
|
11
|
-
import type {
|
|
12
|
-
ConfidenceDecayConfig,
|
|
13
|
-
ScoringElement,
|
|
14
|
-
ViewScore,
|
|
15
|
-
} from '../confidence/index.js';
|
|
16
|
-
import type { IndexAssertion, IndexRequirement } from './types.js';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Lifts a compliance projection (requirement / assertion) to the DQ-1
|
|
20
|
-
* ScoringElement shape. `sources` is intentionally left undefined here:
|
|
21
|
-
* resolving a canon element's `derived_from` to the source_quality of the
|
|
22
|
-
* cited field artefacts (§11.4) needs the field-zone provenance model
|
|
23
|
-
* that Studio's compliance scan does not yet ingest (the DSM equivalent
|
|
24
|
-
* is escalated as DQ-3/DQ-4/DQ-5 on the strategy hub). Until then the
|
|
25
|
-
* scorer treats every element as unsourced — counted separately per §11.5
|
|
26
|
-
* — so the headline honestly reports `0% sourced` rather than guessing a
|
|
27
|
-
* trust label. The freshness signal is fully wired and remains useful.
|
|
28
|
-
*/
|
|
29
|
-
export function requirementToScoringElement(r: IndexRequirement): ScoringElement {
|
|
30
|
-
return { type: 'REQUIREMENT', admitted_at: r.admitted_at };
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function assertionToScoringElement(a: IndexAssertion): ScoringElement {
|
|
34
|
-
return { type: 'ASSERTION', admitted_at: a.admitted_at };
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Scores a compliance view composed of the given requirements + assertions.
|
|
39
|
-
* Pure / derived per §11.6 — recomputed on read, never stored.
|
|
40
|
-
*/
|
|
41
|
-
export function scoreComplianceView(
|
|
42
|
-
requirements: IndexRequirement[],
|
|
43
|
-
assertions: IndexAssertion[],
|
|
44
|
-
today: string | Date,
|
|
45
|
-
config?: ConfidenceDecayConfig,
|
|
46
|
-
): ViewScore {
|
|
47
|
-
const elements: ScoringElement[] = [
|
|
48
|
-
...requirements.map(requirementToScoringElement),
|
|
49
|
-
...assertions.map(assertionToScoringElement),
|
|
50
|
-
];
|
|
51
|
-
return scoreView(elements, today, config);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Convenience wrapper — scores the view and formats the §11.6 header line.
|
|
56
|
-
* Returns an empty string for an empty element set so the caller can suppress
|
|
57
|
-
* the header (e.g. a single-law tree with no requirements). Re-exports
|
|
58
|
-
* {@link formatConfidenceHeader} for callers that already hold a `ViewScore`.
|
|
59
|
-
*/
|
|
60
|
-
export function complianceConfidenceHeader(
|
|
61
|
-
requirements: IndexRequirement[],
|
|
62
|
-
assertions: IndexAssertion[],
|
|
63
|
-
today: string | Date,
|
|
64
|
-
config?: ConfidenceDecayConfig,
|
|
65
|
-
): string {
|
|
66
|
-
return formatConfidenceHeader(
|
|
67
|
-
scoreComplianceView(requirements, assertions, today, config),
|
|
68
|
-
);
|
|
69
|
-
}
|
|
1
|
+
// Confidence bridge for the compliance views (vkgeorgia/strategy#162 — DQ-2).
|
|
2
|
+
// Maps the compliance index projections (IndexRequirement / IndexAssertion) onto
|
|
3
|
+
// the DQ-1 ScoringElement shape, scores the view, and renders the §11.6 header
|
|
4
|
+
// line. Lives in @transitrix/diagrams so Studio and DSM share one bridge and
|
|
5
|
+
// the headline reads the same on both surfaces.
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
formatConfidenceHeader,
|
|
9
|
+
scoreView,
|
|
10
|
+
} from '../confidence/index.js';
|
|
11
|
+
import type {
|
|
12
|
+
ConfidenceDecayConfig,
|
|
13
|
+
ScoringElement,
|
|
14
|
+
ViewScore,
|
|
15
|
+
} from '../confidence/index.js';
|
|
16
|
+
import type { IndexAssertion, IndexRequirement } from './types.js';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Lifts a compliance projection (requirement / assertion) to the DQ-1
|
|
20
|
+
* ScoringElement shape. `sources` is intentionally left undefined here:
|
|
21
|
+
* resolving a canon element's `derived_from` to the source_quality of the
|
|
22
|
+
* cited field artefacts (§11.4) needs the field-zone provenance model
|
|
23
|
+
* that Studio's compliance scan does not yet ingest (the DSM equivalent
|
|
24
|
+
* is escalated as DQ-3/DQ-4/DQ-5 on the strategy hub). Until then the
|
|
25
|
+
* scorer treats every element as unsourced — counted separately per §11.5
|
|
26
|
+
* — so the headline honestly reports `0% sourced` rather than guessing a
|
|
27
|
+
* trust label. The freshness signal is fully wired and remains useful.
|
|
28
|
+
*/
|
|
29
|
+
export function requirementToScoringElement(r: IndexRequirement): ScoringElement {
|
|
30
|
+
return { type: 'REQUIREMENT', admitted_at: r.admitted_at };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function assertionToScoringElement(a: IndexAssertion): ScoringElement {
|
|
34
|
+
return { type: 'ASSERTION', admitted_at: a.admitted_at };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Scores a compliance view composed of the given requirements + assertions.
|
|
39
|
+
* Pure / derived per §11.6 — recomputed on read, never stored.
|
|
40
|
+
*/
|
|
41
|
+
export function scoreComplianceView(
|
|
42
|
+
requirements: IndexRequirement[],
|
|
43
|
+
assertions: IndexAssertion[],
|
|
44
|
+
today: string | Date,
|
|
45
|
+
config?: ConfidenceDecayConfig,
|
|
46
|
+
): ViewScore {
|
|
47
|
+
const elements: ScoringElement[] = [
|
|
48
|
+
...requirements.map(requirementToScoringElement),
|
|
49
|
+
...assertions.map(assertionToScoringElement),
|
|
50
|
+
];
|
|
51
|
+
return scoreView(elements, today, config);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Convenience wrapper — scores the view and formats the §11.6 header line.
|
|
56
|
+
* Returns an empty string for an empty element set so the caller can suppress
|
|
57
|
+
* the header (e.g. a single-law tree with no requirements). Re-exports
|
|
58
|
+
* {@link formatConfidenceHeader} for callers that already hold a `ViewScore`.
|
|
59
|
+
*/
|
|
60
|
+
export function complianceConfidenceHeader(
|
|
61
|
+
requirements: IndexRequirement[],
|
|
62
|
+
assertions: IndexAssertion[],
|
|
63
|
+
today: string | Date,
|
|
64
|
+
config?: ConfidenceDecayConfig,
|
|
65
|
+
): string {
|
|
66
|
+
return formatConfidenceHeader(
|
|
67
|
+
scoreComplianceView(requirements, assertions, today, config),
|
|
68
|
+
);
|
|
69
|
+
}
|