@3f-consulting/spec-controller-core 0.1.0-alpha.3 → 0.1.0-alpha.5
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 +1 -1
- package/dist/assemble/evidenceReconciliationFromSources.d.ts +8 -15
- package/dist/assemble/evidenceReconciliationFromSources.d.ts.map +1 -1
- package/dist/assemble/evidenceReconciliationFromSources.js +21 -24
- package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
- package/dist/domain/checkCharacteristics.d.ts +24 -15
- package/dist/domain/checkCharacteristics.d.ts.map +1 -1
- package/dist/domain/checkCharacteristics.js +24 -15
- package/dist/domain/checkCharacteristics.js.map +1 -1
- package/dist/domain/evidenceReconciliation.d.ts +26 -2
- package/dist/domain/evidenceReconciliation.d.ts.map +1 -1
- package/dist/domain/evidenceReconciliation.js +164 -61
- package/dist/domain/evidenceReconciliation.js.map +1 -1
- package/dist/domain/fitnessChecks.d.ts +24 -35
- package/dist/domain/fitnessChecks.d.ts.map +1 -1
- package/dist/domain/fitnessChecks.js +3 -30
- package/dist/domain/fitnessChecks.js.map +1 -1
- package/dist/domain/journal.d.ts +13 -103
- package/dist/domain/journal.d.ts.map +1 -1
- package/dist/domain/journal.js +6 -19
- package/dist/domain/journal.js.map +1 -1
- package/dist/domain/ledger.d.ts.map +1 -1
- package/dist/domain/ledger.js +45 -34
- package/dist/domain/ledger.js.map +1 -1
- package/dist/domain/posting.d.ts.map +1 -1
- package/dist/domain/posting.js +4 -7
- package/dist/domain/posting.js.map +1 -1
- package/dist/domain/qualityCheckFaultMessages.d.ts +7 -2
- package/dist/domain/qualityCheckFaultMessages.d.ts.map +1 -1
- package/dist/domain/qualityCheckFaultMessages.js +7 -2
- package/dist/domain/qualityCheckFaultMessages.js.map +1 -1
- package/dist/domain/qualityCheckReconciliation.d.ts +23 -2
- package/dist/domain/qualityCheckReconciliation.d.ts.map +1 -1
- package/dist/domain/qualityCheckReconciliation.js +40 -105
- package/dist/domain/qualityCheckReconciliation.js.map +1 -1
- package/dist/domain/qualityCheckReconciliationFault.d.ts +3 -1
- package/dist/domain/qualityCheckReconciliationFault.d.ts.map +1 -1
- package/dist/domain/qualityCheckReconciliationFault.js +3 -1
- package/dist/domain/qualityCheckReconciliationFault.js.map +1 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -19
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +8 -15
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +37 -84
- package/dist/internal.js.map +1 -1
- package/dist/model.d.ts +3 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +3 -2
- package/dist/model.js.map +1 -1
- package/dist/parse/checkScriptsRunInCI.d.ts +8 -7
- package/dist/parse/checkScriptsRunInCI.d.ts.map +1 -1
- package/dist/parse/checkScriptsRunInCI.js +7 -6
- package/dist/parse/checkScriptsRunInCI.js.map +1 -1
- package/dist/parse/ciStepRecord.d.ts +5 -17
- package/dist/parse/ciStepRecord.d.ts.map +1 -1
- package/dist/parse/ciStepRecord.js +7 -27
- package/dist/parse/ciStepRecord.js.map +1 -1
- package/dist/parse/corpusCodeFaults.d.ts +4 -4
- package/dist/parse/corpusCodeFaults.js +4 -4
- package/dist/parse/corpusFaults.d.ts +26 -37
- package/dist/parse/corpusFaults.d.ts.map +1 -1
- package/dist/parse/corpusFaults.js +18 -33
- package/dist/parse/corpusFaults.js.map +1 -1
- package/dist/parse/corpusGrammarFaults.d.ts +11 -73
- package/dist/parse/corpusGrammarFaults.d.ts.map +1 -1
- package/dist/parse/corpusGrammarFaults.js +27 -58
- package/dist/parse/corpusGrammarFaults.js.map +1 -1
- package/dist/parse/runningStaticChecks.d.ts +3 -2
- package/dist/parse/runningStaticChecks.d.ts.map +1 -1
- package/dist/parse/runningStaticChecks.js +3 -2
- package/dist/parse/runningStaticChecks.js.map +1 -1
- package/dist/parse/scenarios.d.ts +28 -13
- package/dist/parse/scenarios.d.ts.map +1 -1
- package/dist/parse/scenarios.js +48 -86
- package/dist/parse/scenarios.js.map +1 -1
- package/dist/parse/targetCorpus.d.ts +21 -11
- package/dist/parse/targetCorpus.d.ts.map +1 -1
- package/dist/parse/targetCorpus.js +16 -19
- package/dist/parse/targetCorpus.js.map +1 -1
- package/dist/parse/targetManifest.d.ts +12 -86
- package/dist/parse/targetManifest.d.ts.map +1 -1
- package/dist/parse/targetManifest.js +49 -138
- package/dist/parse/targetManifest.js.map +1 -1
- package/dist/provenance/provenance.d.ts +8 -11
- package/dist/provenance/provenance.d.ts.map +1 -1
- package/dist/provenance/provenance.js +2 -3
- package/dist/provenance/provenance.js.map +1 -1
- package/dist/render/evidenceGrid.d.ts +45 -0
- package/dist/render/evidenceGrid.d.ts.map +1 -0
- package/dist/render/evidenceGrid.js +145 -0
- package/dist/render/evidenceGrid.js.map +1 -0
- package/dist/render/markdown.d.ts.map +1 -1
- package/dist/render/markdown.js +85 -190
- package/dist/render/markdown.js.map +1 -1
- package/dist/render/runVerdict.d.ts +3 -2
- package/dist/render/runVerdict.d.ts.map +1 -1
- package/dist/render/runVerdict.js +11 -4
- package/dist/render/runVerdict.js.map +1 -1
- package/dist/render/staticChecks.d.ts.map +1 -1
- package/dist/render/staticChecks.js +10 -1
- package/dist/render/staticChecks.js.map +1 -1
- package/package.json +1 -6
- package/dist/domain/thresholds.d.ts +0 -123
- package/dist/domain/thresholds.d.ts.map +0 -1
- package/dist/domain/thresholds.js +0 -185
- package/dist/domain/thresholds.js.map +0 -1
- package/dist/parse/checkStaticEvidenceObligations.d.ts +0 -32
- package/dist/parse/checkStaticEvidenceObligations.d.ts.map +0 -1
- package/dist/parse/checkStaticEvidenceObligations.js +0 -78
- package/dist/parse/checkStaticEvidenceObligations.js.map +0 -1
- package/dist/parse/corpusClaimFaults.d.ts +0 -104
- package/dist/parse/corpusClaimFaults.d.ts.map +0 -1
- package/dist/parse/corpusClaimFaults.js +0 -128
- package/dist/parse/corpusClaimFaults.js.map +0 -1
- package/dist/parse/measurements.d.ts +0 -47
- package/dist/parse/measurements.d.ts.map +0 -1
- package/dist/parse/measurements.js +0 -65
- package/dist/parse/measurements.js.map +0 -1
- package/dist/render/measuredItem.d.ts +0 -30
- package/dist/render/measuredItem.d.ts.map +0 -1
- package/dist/render/measuredItem.js +0 -43
- package/dist/render/measuredItem.js.map +0 -1
package/dist/internal.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* — reached by the sibling `spec-controller` app via the package's `/internal`
|
|
4
4
|
* subpath export (`@3f-consulting/spec-controller-core/internal`).
|
|
5
5
|
*
|
|
6
|
-
* NOT THE PUBLIC v1 CONTRACT. The
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* NOT THE PUBLIC v1 CONTRACT. The v1 surface is the `.` barrel (`index.ts`)
|
|
7
|
+
* alone, and this entry is deliberately outside it. Do NOT put public API here:
|
|
8
|
+
* a symbol an external consumer should depend on belongs on the `.` barrel, and
|
|
9
|
+
* putting it there is a contract decision NOTHING CHECKS — the drift guard that
|
|
10
|
+
* reconciled that barrel against a written-down enumeration, in both directions,
|
|
11
|
+
* left at 3F-3449 and has no replacement before 1.0.
|
|
11
12
|
* This file exists solely so in-repo consumers get a SANCTIONED seam for a
|
|
12
13
|
* core-internal helper instead of reaching into `core/src` by a deep relative
|
|
13
14
|
* path.
|
|
@@ -27,12 +28,10 @@ export { parseScnCitation, parseScnCitations } from "./lib/scnCitation.js";
|
|
|
27
28
|
// only a LEADING @ is a sigil. Shared because it was hand-copied seven times and the copies carried
|
|
28
29
|
// the same anchored-strip-before-trim ordering, so a term a target typed with a stray space in
|
|
29
30
|
// front of its @ was stored still carrying the @ and no bare lookup ever found it again — silently,
|
|
30
|
-
// since an absent key is a legitimate reading everywhere it is asked for (3F-2976).
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
// a comment saying it must be. Internal, not public — the sigil convention is spec-controller's own
|
|
35
|
-
// reading of a term, not a v1 contract, and @SCN-API-001 freezes that barrel exactly.
|
|
31
|
+
// since an absent key is a legitimate reading everywhere it is asked for (3F-2976). A caller outside
|
|
32
|
+
// the engine reaches it here rather than re-deriving it, which is what keeps its reading of a term
|
|
33
|
+
// the engine's by construction instead of by a comment saying it must be. Internal, not public — the sigil convention is spec-controller's own
|
|
34
|
+
// reading of a term, not a v1 contract, and the `.` barrel is where a v1 contract goes.
|
|
36
35
|
export { bareTerm } from "./lib/bareTerm.js";
|
|
37
36
|
// `parseTaggedScenarios` — the corpus read BEFORE any obligation rule is applied, and the input
|
|
38
37
|
// the corpus hop above takes. Shared rather than re-derived at the edge: it is the single
|
|
@@ -41,51 +40,32 @@ export { bareTerm } from "./lib/bareTerm.js";
|
|
|
41
40
|
// silently. Internal, not public — `parseScenarios` remains the v1 corpus surface.
|
|
42
41
|
export { parseTaggedScenarios } from "./parse/scenarios.js";
|
|
43
42
|
// `FITNESS_AXIS_TAG` — the ONE spelling of the word a CONVERTED check's scenario carries
|
|
44
|
-
// (`parse/scenarios`, @SCN-LNT-018). Shared because the corpus check's grammar
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
// this one: a converted check has no runnable script handle and no authored ceiling, only a
|
|
43
|
+
// (`parse/scenarios`, @SCN-LNT-018). Shared because the corpus check's grammar rule (@SCN-STG-005)
|
|
44
|
+
// must admit exactly the scenarios the obligation rule raises against, and this word is the one
|
|
45
|
+
// source left of what names a check on a corpus — the registry retired (3F-3161) and the measured
|
|
46
|
+
// axis's ceilings with it (3F-3516); a converted check has no runnable script handle, only a
|
|
49
47
|
// configured row. A second spelling in `tests/checks/` would be a word the floor admitted while
|
|
50
48
|
// the engine raised nothing for it, or the reverse — the seam 3F-3126 spent a slice closing.
|
|
51
49
|
// A LITERAL RATHER THAN A RESOLVED SET, and deliberately: which words name a CHECK is the
|
|
52
50
|
// target's answer, which AXIS a scenario is on is the model's, exactly as `unit` is. Internal,
|
|
53
|
-
// not public —
|
|
51
|
+
// not public — the `.` barrel carries the v1 contract and this is not one.
|
|
54
52
|
export { FITNESS_AXIS_TAG } from "./parse/scenarios.js";
|
|
55
|
-
// `
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
// second reader deciding independently which words name a measured check — the tier-tag floor
|
|
61
|
-
// being the next one to need it (3F-2236) — would admit a tag the engine raises nothing for, or
|
|
62
|
-
// refuse one it does. Internal, not public — where this configuration is AUTHORED moves with the
|
|
63
|
-
// registry-home question.
|
|
64
|
-
export { thresholdsOf, measuredCheckTags, thresholdFor } from "./domain/thresholds.js";
|
|
65
|
-
// `parseMeasuredEvidenceObservations` — the measurement artefact read into citing Evidence
|
|
66
|
-
// Observations (`parse/measurements`, @SCN-CIP-003). Shared because the balance command is the edge
|
|
67
|
-
// that reads a target's files, and this is one of them. Internal, not public — where a measurement
|
|
68
|
-
// artefact is AUTHORED is as open as the registry-home question the two entries above are parked
|
|
69
|
-
// on, and the frozen v1 surface is not the place to settle it (@SCN-API-001 freezes that barrel
|
|
70
|
-
// exactly, both directions).
|
|
71
|
-
export { parseMeasuredEvidenceObservations } from "./parse/measurements.js";
|
|
72
|
-
// `isMeasuredObservation` / `isStaticCheckObservation` — the sub-discriminators within the `lint`
|
|
73
|
-
// axis (@SCN-CIP-003). Shared because `qualityCheck === "lint"` stopped narrowing to one interface
|
|
74
|
-
// when the measured member joined the union, and every in-repo reader that wants a static check's
|
|
75
|
-
// OWN fields — its runnable handle, its `exists`, its `enforcedOverRealSource` — now has to say
|
|
76
|
-
// which of the two it means. A caller re-spelling the discriminator inline would be free to spell
|
|
77
|
-
// it differently. Internal, not public — the union's third member is not on the frozen v1 surface.
|
|
78
|
-
export { isMeasuredObservation, isStaticCheckObservation } from "./domain/journal.js";
|
|
53
|
+
// `isStaticCheckObservation` — the predicate every in-repo reader that wants a static check's OWN
|
|
54
|
+
// fields — its runnable handle, its `exists`, its `enforcedOverRealSource` — asks. The measured
|
|
55
|
+
// member it once told apart from left with the measured axis (3F-3516); it stays shared because a
|
|
56
|
+
// caller re-spelling the test inline would be free to spell it differently. Internal, not public.
|
|
57
|
+
export { isStaticCheckObservation } from "./domain/journal.js";
|
|
79
58
|
// `ciRunSteps` / `CiRunStep` — the CI walk `ciRunCommands` projects, carrying each `run:` step's
|
|
80
|
-
// `id:` and whether its red would abort the job. Shared
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
// `runningStaticChecks` reads the same walk in-engine for the `id:`
|
|
59
|
+
// `id:` and whether its red would abort the job. Shared so that no caller opens a second YAML walk
|
|
60
|
+
// to see `continue-on-error`: that key is on the same step mapping this walk already visits, and a
|
|
61
|
+
// second reader would be free to disagree with the first about which steps a workflow even runs —
|
|
62
|
+
// which is the silent disagreement the one-place rule exists to prevent (3F-3042). Its consumer
|
|
63
|
+
// OUTSIDE the engine is `tests/steps/lintReconciliation.steps.ts`, at twelve call sites, one of
|
|
64
|
+
// which reads `abortsJob`; `runningStaticChecks` reads the same walk in-engine for the `id:`
|
|
65
|
+
// (3F-3261). The local-ladder derivation was the other outside consumer until 3F-3475. Internal, not
|
|
86
66
|
// public — `ciRunCommands` remains
|
|
87
|
-
// the v1 contract for anyone outside, and putting this on the
|
|
88
|
-
//
|
|
67
|
+
// the v1 contract for anyone outside, and putting this on the `.` barrel would widen the v1
|
|
68
|
+
// contract to buy nothing.
|
|
89
69
|
export { ciRunSteps } from "./parse/checkScriptsRunInCI.js";
|
|
90
70
|
// `ciWorkflowSteps` / `CiWorkflowStep` / `CiStepAction` — the SAME walk read whole: `uses:` steps
|
|
91
71
|
// as well as `run:` ones, each with the identity GitHub displays for it and the job it belongs to
|
|
@@ -93,53 +73,26 @@ export { ciRunSteps } from "./parse/checkScriptsRunInCI.js";
|
|
|
93
73
|
// workflow runs — the third time that one-walk rule has held here, and for the reason it held the
|
|
94
74
|
// first two. Internal, not public, on the same footing as `ciRunSteps`: `ciRunCommands` remains
|
|
95
75
|
// the v1 contract for anyone outside, and the shape of a whole-pipeline step is a reading the
|
|
96
|
-
// discovery inversion (3F-3343) is still settling, so
|
|
97
|
-
//
|
|
76
|
+
// discovery inversion (3F-3343) is still settling, so putting it on the v1 contract now would
|
|
77
|
+
// widen it for a surface no consumer has yet asked for.
|
|
98
78
|
export { ciWorkflowSteps } from "./parse/checkScriptsRunInCI.js";
|
|
99
|
-
// The `resolve*` family — a target's `specController.*` configuration read into the rows
|
|
100
|
-
//
|
|
79
|
+
// The `resolve*` family — a target's `specController.*` configuration read into the rows and
|
|
80
|
+
// mints the reconciler takes (`parse/targetManifest`). Shared because they moved INTO the
|
|
101
81
|
// engine and the tree's own gates still read a target's config through them: the corpus check
|
|
102
|
-
// (@SCN-STG-005) and the characteristic roster resolve the same rows
|
|
82
|
+
// (@SCN-STG-005) and the characteristic roster resolve the same rows and mints the
|
|
103
83
|
// reconciler does, and a second reader deciding independently which words a manifest names would
|
|
104
84
|
// admit a tag the engine raises nothing for. They sat at the app's ingest edge until 3F-3087,
|
|
105
85
|
// where they were the reason a PUBLISHED module imported this unpublished subpath — the fault
|
|
106
|
-
// 3F-3086 repairs. Internal, not public: where a target's rows
|
|
86
|
+
// 3F-3086 repairs. Internal, not public: where a target's rows and mints are AUTHORED
|
|
107
87
|
// is the registry-home question (increment D), so the shape of what these read is not a v1
|
|
108
|
-
// contract yet
|
|
88
|
+
// contract yet. Nothing under `tests/checks/`
|
|
109
89
|
// travels in a tarball (`tsconfig.build.json` emits `src` alone), so reaching them here is the
|
|
110
90
|
// seam working as 3F-2837 intended.
|
|
111
|
-
export { resolveDeferralTags, resolveFitnessChecks,
|
|
91
|
+
export { resolveDeferralTags, resolveFitnessChecks, } from "./parse/targetManifest.js";
|
|
112
92
|
// `readTargetCorpus` HAS LEFT THIS SEAM (3F-3089), and the removal is the point rather than tidying.
|
|
113
93
|
// It was shared here for exactly one consumer — the app's ingest edge, which composed the
|
|
114
94
|
// reconciliation itself — and the composition moved into the engine
|
|
115
95
|
// (`assemble/evidenceReconciliationFromSources`), which is what takes the last crossing off the
|
|
116
96
|
// published path. Nothing in this workspace reaches the corpus read any more, and this file
|
|
117
97
|
// re-exports only what the app genuinely shares.
|
|
118
|
-
// `fitnessChecksOf` / `FitnessCheck` / `FitnessCheckIndex` — the ONE reading of a target's
|
|
119
|
-
// CONVERTED rows (`domain/fitnessChecks`, @SCN-LNT-018). Shared because a measured row's own
|
|
120
|
-
// COMMAND must cite the characteristic its row names when it writes the number down
|
|
121
|
-
// (@SCN-LNT-024), and that word is the same word the obligation side raises the Evidence
|
|
122
|
-
// Obligation against. A second reader in `tests/checks/` deciding independently what
|
|
123
|
-
// characteristic a row names would post a credit under one spelling while the debit was raised
|
|
124
|
-
// under another — an obligation with no credit and a credit with no obligation, from one row, and
|
|
125
|
-
// loud nowhere. The pass reads only `characteristic` here; the BAR stays the ledger's
|
|
126
|
-
// (@SCN-LNT-019, 3F-2509) and nothing on the command side reaches for it. Internal, not public —
|
|
127
|
-
// where these rows are AUTHORED moves with the registry-home question the entries above are
|
|
128
|
-
// parked on.
|
|
129
|
-
//
|
|
130
|
-
// `carriesBar` IS THE SHAPE QUESTION AND NEVER THE VALUE, and the two are not the same crossing
|
|
131
|
-
// (3F-3164). The bar's NUMBER stays the ledger's, as above; whether a row carries one at all is
|
|
132
|
-
// what says which KIND of check it is — the static sentence asserts an exit code, the measured one
|
|
133
|
-
// asserts that a number arrived. THE CONSUMER THAT MADE THIS CROSSING WAS A GENERATOR AND IS GONE
|
|
134
|
-
// (3F-3244): the corpus is authored now, so nothing derives a scenario's sentence from this answer
|
|
135
|
-
// and the two sides can disagree, which is what makes the disagreement reportable. It is shared for
|
|
136
|
-
// the reason `fitnessChecksOf` is — a second reader answering "is this row measured" its own way
|
|
137
|
-
// would put the credit side and the obligation rule at odds about which evidence one row produces.
|
|
138
|
-
// The header on `carriesBar` states the one-spelling rule this export serves.
|
|
139
|
-
//
|
|
140
|
-
// AND NOTHING THROWS ON THIS PATH, WHICH IS DELIBERATE. `fitnessChecksOf` is what `balance` reads a
|
|
141
|
-
// CONSUMER'S manifest through, and a throw there turns one bad character in a stranger's
|
|
142
|
-
// `package.json` into a run with no verdict at all — loud nowhere. A malformed row is dropped and
|
|
143
|
-
// the obligation it would have raised is simply not raised, which the ledger reports.
|
|
144
|
-
export { carriesBar, fitnessChecksOf, } from "./domain/fitnessChecks.js";
|
|
145
98
|
//# sourceMappingURL=internal.js.map
|
package/dist/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,0FAA0F;AAC1F,4FAA4F;AAC5F,4FAA4F;AAC5F,4FAA4F;AAC5F,6FAA6F;AAC7F,wFAAwF;AACxF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE3E,mGAAmG;AACnG,oGAAoG;AACpG,+FAA+F;AAC/F,oGAAoG;AACpG,qGAAqG;AACrG,mGAAmG;AACnG,+IAA+I;AAC/I,wFAAwF;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C,gGAAgG;AAChG,0FAA0F;AAC1F,gGAAgG;AAChG,2FAA2F;AAC3F,mFAAmF;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM5D,yFAAyF;AACzF,mGAAmG;AACnG,gGAAgG;AAChG,kGAAkG;AAClG,6FAA6F;AAC7F,gGAAgG;AAChG,6FAA6F;AAC7F,0FAA0F;AAC1F,+FAA+F;AAC/F,2EAA2E;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,kGAAkG;AAClG,gGAAgG;AAChG,kGAAkG;AAClG,kGAAkG;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,iGAAiG;AACjG,mGAAmG;AACnG,mGAAmG;AACnG,kGAAkG;AAClG,gGAAgG;AAChG,gGAAgG;AAChG,6FAA6F;AAC7F,qGAAqG;AACrG,mCAAmC;AACnC,4FAA4F;AAC5F,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,kGAAkG;AAClG,kGAAkG;AAClG,6FAA6F;AAC7F,kGAAkG;AAClG,gGAAgG;AAChG,8FAA8F;AAC9F,8FAA8F;AAC9F,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,6FAA6F;AAC7F,0FAA0F;AAC1F,8FAA8F;AAC9F,mFAAmF;AACnF,iGAAiG;AACjG,8FAA8F;AAC9F,8FAA8F;AAC9F,sFAAsF;AACtF,2FAA2F;AAC3F,8CAA8C;AAC9C,+FAA+F;AAC/F,oCAAoC;AACpC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,qGAAqG;AACrG,0FAA0F;AAC1F,oEAAoE;AACpE,gGAAgG;AAChG,4FAA4F;AAC5F,iDAAiD"}
|
package/dist/model.d.ts
CHANGED
|
@@ -16,9 +16,10 @@
|
|
|
16
16
|
* - `domain/ledger.ts` — the Ledger + the whole-run predicates.
|
|
17
17
|
*
|
|
18
18
|
* This module stays as the stable internal aggregation point (`../model.js`) so the many
|
|
19
|
-
* in-core importers and the
|
|
19
|
+
* in-core importers and the public v1 barrel (`index.ts`) see the SAME surface —
|
|
20
20
|
* only the concepts' HOME moved. It is NOT a `domain/**` module itself (it re-exports across the
|
|
21
|
-
* concept modules,
|
|
21
|
+
* concept modules, and it sits OUTSIDE `packages/core/src/domain/`, which is what `lint:boundaries`'s
|
|
22
|
+
* `domain-imports-adapter` rule is scoped to — the domain-purity guard's population until 3F-3438).
|
|
22
23
|
*/
|
|
23
24
|
export * from "./domain/journal.js";
|
|
24
25
|
export * from "./domain/qualityCheckReconciliation.js";
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC"}
|
package/dist/model.js
CHANGED
|
@@ -16,9 +16,10 @@
|
|
|
16
16
|
* - `domain/ledger.ts` — the Ledger + the whole-run predicates.
|
|
17
17
|
*
|
|
18
18
|
* This module stays as the stable internal aggregation point (`../model.js`) so the many
|
|
19
|
-
* in-core importers and the
|
|
19
|
+
* in-core importers and the public v1 barrel (`index.ts`) see the SAME surface —
|
|
20
20
|
* only the concepts' HOME moved. It is NOT a `domain/**` module itself (it re-exports across the
|
|
21
|
-
* concept modules,
|
|
21
|
+
* concept modules, and it sits OUTSIDE `packages/core/src/domain/`, which is what `lint:boundaries`'s
|
|
22
|
+
* `domain-imports-adapter` rule is scoped to — the domain-purity guard's population until 3F-3438).
|
|
22
23
|
*/
|
|
23
24
|
export * from "./domain/journal.js";
|
|
24
25
|
export * from "./domain/qualityCheckReconciliation.js";
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC"}
|
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
* observers import: walk the CI config STRUCTURALLY to its steps (`ciWorkflowSteps`, of which
|
|
4
4
|
* `ciRunSteps` is the projection to the `run:` ones and `ciRunCommands` the projection to their
|
|
5
5
|
* command strings), and test whether a command invokes
|
|
6
|
-
* a given npm script by an EXACT package-manager invocation (`commandInvokesScript`).
|
|
7
|
-
* `runningStaticChecks` (the running-check observer
|
|
8
|
-
* enforcement off these, so the watermelon-critical parse lives in ONE
|
|
9
|
-
* itself HIDE a watermelon (read a
|
|
6
|
+
* a given npm script by an EXACT package-manager invocation (`commandInvokesScript`).
|
|
7
|
+
* `runningStaticChecks` (the running-check observer, and since 3F-3410 the only static-check
|
|
8
|
+
* observer) reads a check's enforcement off these, so the watermelon-critical parse lives in ONE
|
|
9
|
+
* place — a mis-read could itself HIDE a watermelon (read a severed static check as enforced, or
|
|
10
|
+
* the reverse).
|
|
10
11
|
*
|
|
11
12
|
* The CI config is parsed with the reputable `yaml` parser (jobs → steps → run, including
|
|
12
13
|
* block-scalar `run:` and `if:`/matrix steps) — never line-scanned. The step mapping is read
|
|
13
14
|
* for its `continue-on-error` and its `id:` as well as its `run:`, because a step whose red the job
|
|
14
|
-
* would swallow is a check that reports without enforcing (3F-3042, @SCN-
|
|
15
|
+
* would swallow is a check that reports without enforcing (3F-3042, @SCN-LNT-032) and a step's
|
|
15
16
|
* `id:` is where a consumer writes the `@SCN` its check cites (3F-3261). A static check's
|
|
16
17
|
* command counts as enforced only on an EXACT
|
|
17
18
|
* package-manager invocation of its script name (`pnpm <script>` / `pnpm run <script>` /
|
|
@@ -37,7 +38,7 @@ export interface PackageJsonScripts {
|
|
|
37
38
|
* null` for the reason the observation's own `scnId` is (`domain/journal.ts`) — an absent citation
|
|
38
39
|
* carries no key at all.
|
|
39
40
|
*
|
|
40
|
-
* @SCN-
|
|
41
|
+
* @SCN-LNT-032 — features/fitness-reconciliation.feature.
|
|
41
42
|
*/
|
|
42
43
|
export type CiRunStep = {
|
|
43
44
|
readonly command: string;
|
|
@@ -151,7 +152,7 @@ export declare function ciRunCommands(ciSources: readonly string[]): string[];
|
|
|
151
152
|
* command stays in the step. Reading it here is what lets the derivation say WHICH row a wired
|
|
152
153
|
* check answers, rather than only that it is wired.
|
|
153
154
|
*
|
|
154
|
-
* @SCN-
|
|
155
|
+
* @SCN-LNT-032 — features/fitness-reconciliation.feature.
|
|
155
156
|
*/
|
|
156
157
|
export declare function ciRunSteps(ciSources: readonly string[]): CiRunStep[];
|
|
157
158
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkScriptsRunInCI.d.ts","sourceRoot":"","sources":["../../src/parse/checkScriptsRunInCI.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"checkScriptsRunInCI.d.ts","sourceRoot":"","sources":["../../src/parse/checkScriptsRunInCI.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAUD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC;AAE3F;;;;;;;GAOG;AACH,KAAK,aAAa,GACd;IAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CAAE,GAC5B;IACE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3F,CAAC;AAEN;;;;;GAKG;AACH,MAAM,MAAM,YAAY;AACtB,kDAAkD;AAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC3B,6DAA6D;GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9B;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,GAAG,YAAY,GACd,aAAa,CAAC;AA0IhB;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAEpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,CAEpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,EAAE,CAE9E;AAwBD,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5E"}
|
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
* observers import: walk the CI config STRUCTURALLY to its steps (`ciWorkflowSteps`, of which
|
|
4
4
|
* `ciRunSteps` is the projection to the `run:` ones and `ciRunCommands` the projection to their
|
|
5
5
|
* command strings), and test whether a command invokes
|
|
6
|
-
* a given npm script by an EXACT package-manager invocation (`commandInvokesScript`).
|
|
7
|
-
* `runningStaticChecks` (the running-check observer
|
|
8
|
-
* enforcement off these, so the watermelon-critical parse lives in ONE
|
|
9
|
-
* itself HIDE a watermelon (read a
|
|
6
|
+
* a given npm script by an EXACT package-manager invocation (`commandInvokesScript`).
|
|
7
|
+
* `runningStaticChecks` (the running-check observer, and since 3F-3410 the only static-check
|
|
8
|
+
* observer) reads a check's enforcement off these, so the watermelon-critical parse lives in ONE
|
|
9
|
+
* place — a mis-read could itself HIDE a watermelon (read a severed static check as enforced, or
|
|
10
|
+
* the reverse).
|
|
10
11
|
*
|
|
11
12
|
* The CI config is parsed with the reputable `yaml` parser (jobs → steps → run, including
|
|
12
13
|
* block-scalar `run:` and `if:`/matrix steps) — never line-scanned. The step mapping is read
|
|
13
14
|
* for its `continue-on-error` and its `id:` as well as its `run:`, because a step whose red the job
|
|
14
|
-
* would swallow is a check that reports without enforcing (3F-3042, @SCN-
|
|
15
|
+
* would swallow is a check that reports without enforcing (3F-3042, @SCN-LNT-032) and a step's
|
|
15
16
|
* `id:` is where a consumer writes the `@SCN` its check cites (3F-3261). A static check's
|
|
16
17
|
* command counts as enforced only on an EXACT
|
|
17
18
|
* package-manager invocation of its script name (`pnpm <script>` / `pnpm run <script>` /
|
|
@@ -199,7 +200,7 @@ export function ciRunCommands(ciSources) {
|
|
|
199
200
|
* command stays in the step. Reading it here is what lets the derivation say WHICH row a wired
|
|
200
201
|
* check answers, rather than only that it is wired.
|
|
201
202
|
*
|
|
202
|
-
* @SCN-
|
|
203
|
+
* @SCN-LNT-032 — features/fitness-reconciliation.feature.
|
|
203
204
|
*/
|
|
204
205
|
export function ciRunSteps(ciSources) {
|
|
205
206
|
return ciWorkflowSteps(ciSources).flatMap((step) => ("runs" in step ? [runStepOf(step)] : []));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkScriptsRunInCI.js","sourceRoot":"","sources":["../../src/parse/checkScriptsRunInCI.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"checkScriptsRunInCI.js","sourceRoot":"","sources":["../../src/parse/checkScriptsRunInCI.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAO7B,qEAAqE;AACrE,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,oGAAoG;AACpG,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AA4F9C;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,QAAQ,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QACpF,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,IAAI,CAAC,KAAc;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACxB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,+DAA+D;AAC/D,SAAS,WAAW,CAAC,QAAiB,EAAE,QAAiB;IACvD,yFAAyF;IACzF,6FAA6F;IAC7F,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAC/F,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,IAA6B;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,IAAa,EAAE,MAAoB;IACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACvE,IAAI,MAAM,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,GAAY,EAAE,WAAmB;IAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC;YACR,WAAW;YACX,KAAK;YACL,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAC1C,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,2FAA2F;YAC3F,gFAAgF;YAChF,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,MAAM;YACT,GAAG,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,QAAgB,EAAE,WAAmB;IACpD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,mGAAmG;AACnG,SAAS,SAAS,CAAC,IAAgD;IACjE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,OAAO,IAAI,CAAC,SAAS;QACnB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;QAC9B,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,SAA4B;IACxD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,UAAU,CAAC,SAA4B;IACrD,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAAC,SAA4B;IAC1D,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK;gBAAE,CAAC,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;QACvC,CAAC;QACD,IAAI,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,KAAa;IACjE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* PURE AND INJECTED, like every reader on this axis: the record arrives as data, parsed at the app
|
|
39
39
|
* edge from the target's own evidence, and the rows arrive from the target's own manifest.
|
|
40
40
|
*/
|
|
41
|
-
import {
|
|
41
|
+
import type { FitnessCheckIndex } from "../domain/fitnessChecks.js";
|
|
42
42
|
import type { GuardEvidenceObservation } from "../model.js";
|
|
43
43
|
/**
|
|
44
44
|
* ONE STEP'S ENTRY in the record, as the dump wrote it.
|
|
@@ -77,7 +77,7 @@ export interface CiStepRecordEntry {
|
|
|
77
77
|
*/
|
|
78
78
|
export type CiStepRecord = Readonly<Record<string, CiStepRecordEntry>>;
|
|
79
79
|
/**
|
|
80
|
-
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured
|
|
80
|
+
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured row, carrying
|
|
81
81
|
* WHAT ITS STEP DID: `satisfied` off a step that succeeded (@SCN-LNT-021) and `failing` off one
|
|
82
82
|
* that failed (@SCN-LNT-028). There is no third answer: a step the record says was skipped is
|
|
83
83
|
* broken evidence, whatever its row says (3F-3252).
|
|
@@ -112,24 +112,12 @@ export type CiStepRecord = Readonly<Record<string, CiStepRecordEntry>>;
|
|
|
112
112
|
* own checkout, over the target's own tree. Neither is the manifest-mentions-a-name reading the
|
|
113
113
|
* discovered route takes.
|
|
114
114
|
*
|
|
115
|
-
* A MEASURED ROW RAISES NOTHING HERE, AND THAT IS THIS READER'S OWN CLAIM (@SCN-LNT-022): its
|
|
116
|
-
* credit is its NUMBER, which arrives on the measurement stream already citing, and a credit
|
|
117
|
-
* raised beside it would be a second credit answering one Evidence Obligation — quietly, because
|
|
118
|
-
* the row does name that characteristic. A step's outcome is an exit code and an exit code is not
|
|
119
|
-
* a measurement, so there was never a reading of this document that could have answered such a
|
|
120
|
-
* row anyway.
|
|
121
|
-
*
|
|
122
115
|
* AN ENTRY NO CONFIGURED ROW ANSWERS IS NOT THIS READER'S BUSINESS. `checkout`, `setup-node` and
|
|
123
116
|
* the dump step itself are steps and not checks, and silence about them is the correct report.
|
|
124
117
|
*
|
|
125
|
-
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* second reading exactly as a static one is: its number is its credit and its own step is still
|
|
129
|
-
* what says it ran — the step whose command wrote that number down (@SCN-LNT-024) — and a number
|
|
130
|
-
* arriving for a row the run recorded no step for is a number from a route that enumerates nothing.
|
|
131
|
-
* The rows are the denominator, and a check quietly lifted out of a pipeline goes dark on the side
|
|
132
|
-
* the pipeline cannot reach.
|
|
118
|
+
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT (@SCN-LNT-027), which is why this
|
|
119
|
+
* walks the ROWS as well as the record. The rows are the denominator, and a check quietly lifted
|
|
120
|
+
* out of a pipeline goes dark on the side the pipeline cannot reach.
|
|
133
121
|
*/
|
|
134
122
|
export declare function ciStepRecordCredits(record: CiStepRecord | undefined, fitnessChecks: FitnessCheckIndex): GuardEvidenceObservation[];
|
|
135
123
|
//# sourceMappingURL=ciStepRecord.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciStepRecord.d.ts","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"ciStepRecord.d.ts","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAyLvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,aAAa,EAAE,iBAAiB,GAC/B,wBAAwB,EAAE,CAqB5B"}
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
* PURE AND INJECTED, like every reader on this axis: the record arrives as data, parsed at the app
|
|
39
39
|
* edge from the target's own evidence, and the rows arrive from the target's own manifest.
|
|
40
40
|
*/
|
|
41
|
-
import { carriesBar, } from "../domain/fitnessChecks.js";
|
|
42
41
|
/** The provider's own two words for a step that RAN, spelled once each. */
|
|
43
42
|
const SUCCESS = "success";
|
|
44
43
|
const FAILURE = "failure";
|
|
@@ -196,7 +195,7 @@ function rowHasNoEntryMessage(scnId) {
|
|
|
196
195
|
"`specController.fitnessChecks` — so the check did not run.");
|
|
197
196
|
}
|
|
198
197
|
/**
|
|
199
|
-
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured
|
|
198
|
+
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured row, carrying
|
|
200
199
|
* WHAT ITS STEP DID: `satisfied` off a step that succeeded (@SCN-LNT-021) and `failing` off one
|
|
201
200
|
* that failed (@SCN-LNT-028). There is no third answer: a step the record says was skipped is
|
|
202
201
|
* broken evidence, whatever its row says (3F-3252).
|
|
@@ -231,24 +230,12 @@ function rowHasNoEntryMessage(scnId) {
|
|
|
231
230
|
* own checkout, over the target's own tree. Neither is the manifest-mentions-a-name reading the
|
|
232
231
|
* discovered route takes.
|
|
233
232
|
*
|
|
234
|
-
* A MEASURED ROW RAISES NOTHING HERE, AND THAT IS THIS READER'S OWN CLAIM (@SCN-LNT-022): its
|
|
235
|
-
* credit is its NUMBER, which arrives on the measurement stream already citing, and a credit
|
|
236
|
-
* raised beside it would be a second credit answering one Evidence Obligation — quietly, because
|
|
237
|
-
* the row does name that characteristic. A step's outcome is an exit code and an exit code is not
|
|
238
|
-
* a measurement, so there was never a reading of this document that could have answered such a
|
|
239
|
-
* row anyway.
|
|
240
|
-
*
|
|
241
233
|
* AN ENTRY NO CONFIGURED ROW ANSWERS IS NOT THIS READER'S BUSINESS. `checkout`, `setup-node` and
|
|
242
234
|
* the dump step itself are steps and not checks, and silence about them is the correct report.
|
|
243
235
|
*
|
|
244
|
-
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
* second reading exactly as a static one is: its number is its credit and its own step is still
|
|
248
|
-
* what says it ran — the step whose command wrote that number down (@SCN-LNT-024) — and a number
|
|
249
|
-
* arriving for a row the run recorded no step for is a number from a route that enumerates nothing.
|
|
250
|
-
* The rows are the denominator, and a check quietly lifted out of a pipeline goes dark on the side
|
|
251
|
-
* the pipeline cannot reach.
|
|
236
|
+
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT (@SCN-LNT-027), which is why this
|
|
237
|
+
* walks the ROWS as well as the record. The rows are the denominator, and a check quietly lifted
|
|
238
|
+
* out of a pipeline goes dark on the side the pipeline cannot reach.
|
|
252
239
|
*/
|
|
253
240
|
export function ciStepRecordCredits(record, fitnessChecks) {
|
|
254
241
|
if (record === undefined)
|
|
@@ -259,22 +246,15 @@ export function ciStepRecordCredits(record, fitnessChecks) {
|
|
|
259
246
|
const row = fitnessChecks.get(citedScn);
|
|
260
247
|
if (row === undefined)
|
|
261
248
|
continue;
|
|
262
|
-
// RECORDED BEFORE THE BAR IS ASKED ABOUT, and the order is the rule rather than a convenience.
|
|
263
|
-
// A measured row's CREDIT is skipped here (@SCN-LNT-022) and its ENUMERATION never was: its
|
|
264
|
-
// step appearing in the record is the step whose command wrote its number down (@SCN-LNT-024),
|
|
265
|
-
// and that is what says its check ran, exactly as for a static row. Asking `carriesBar` first
|
|
266
|
-
// would leave every measured row looking unrecorded on a record that carried it.
|
|
267
249
|
recorded.add(citedScn);
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
// NO `continue` ON A READING THIS READER HAS NONE FOR (@SCN-LNT-026). Every configured static
|
|
271
|
-
// row the record holds an entry for raises something; which of the two shapes it raises is the
|
|
250
|
+
// NO `continue` ON A READING THIS READER HAS NONE FOR (@SCN-LNT-026). Every configured row the
|
|
251
|
+
// record holds an entry for raises something; which of the two shapes it raises is the
|
|
272
252
|
// credit builder's answer, and the fall-through reaches the loud one rather than the exit.
|
|
273
253
|
credits.push(creditOf(citedScn, row, readingOf(step.outcome), step.outcome));
|
|
274
254
|
}
|
|
275
255
|
// AND THE ROWS ARE WALKED TOO, NOT ONLY THE RECORD (@SCN-LNT-027). The rows come from the
|
|
276
256
|
// target's manifest and the enumeration from the run's own record, so a row the record held no
|
|
277
|
-
// entry for is a check that did not run — broken evidence naming that row
|
|
257
|
+
// entry for is a check that did not run — broken evidence naming that row.
|
|
278
258
|
for (const [scnId, row] of fitnessChecks) {
|
|
279
259
|
if (recorded.has(scnId))
|
|
280
260
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciStepRecord.js","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;
|
|
1
|
+
{"version":3,"file":"ciStepRecord.js","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THE CODE RULES of `spec-controller tags` — everything about a feature CODE binding to a feature
|
|
3
|
-
* FILE. Its
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* FILE. Its sibling holds the other question: `corpusGrammarFaults.ts` whether a tag on a scenario
|
|
4
|
+
* means anything. `corpusFaults.ts` composes the two and is the only entry point either of them
|
|
5
|
+
* has.
|
|
6
6
|
*
|
|
7
7
|
* WHY THE MODULE IS SPLIT AT ALL, AND WHY ON THIS SEAM. The rules were authored in one module and
|
|
8
8
|
* that module reached the 400-line `max-lines` ceiling with four more grammar clauses still to
|
|
9
9
|
* land. The ceiling is not negotiable and an exception entry would have bought silence rather than
|
|
10
|
-
* a smaller module (@SCN-
|
|
10
|
+
* a smaller module (@SCN-FIT-001), so the split is the answer canon already named. The seam is the
|
|
11
11
|
* one the rules themselves have: a code rule asks *does this code name exactly one file, and is
|
|
12
12
|
* this scenario written in the file its own code names* — questions answered from the corpus's
|
|
13
13
|
* SHAPE, needing nothing about the target. A grammar rule asks *does this word mean anything
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THE CODE RULES of `spec-controller tags` — everything about a feature CODE binding to a feature
|
|
3
|
-
* FILE. Its
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* FILE. Its sibling holds the other question: `corpusGrammarFaults.ts` whether a tag on a scenario
|
|
4
|
+
* means anything. `corpusFaults.ts` composes the two and is the only entry point either of them
|
|
5
|
+
* has.
|
|
6
6
|
*
|
|
7
7
|
* WHY THE MODULE IS SPLIT AT ALL, AND WHY ON THIS SEAM. The rules were authored in one module and
|
|
8
8
|
* that module reached the 400-line `max-lines` ceiling with four more grammar clauses still to
|
|
9
9
|
* land. The ceiling is not negotiable and an exception entry would have bought silence rather than
|
|
10
|
-
* a smaller module (@SCN-
|
|
10
|
+
* a smaller module (@SCN-FIT-001), so the split is the answer canon already named. The seam is the
|
|
11
11
|
* one the rules themselves have: a code rule asks *does this code name exactly one file, and is
|
|
12
12
|
* this scenario written in the file its own code names* — questions answered from the corpus's
|
|
13
13
|
* SHAPE, needing nothing about the target. A grammar rule asks *does this word mean anything
|