@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.
Files changed (124) hide show
  1. package/README.md +1 -1
  2. package/dist/assemble/evidenceReconciliationFromSources.d.ts +8 -15
  3. package/dist/assemble/evidenceReconciliationFromSources.d.ts.map +1 -1
  4. package/dist/assemble/evidenceReconciliationFromSources.js +21 -24
  5. package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
  6. package/dist/domain/checkCharacteristics.d.ts +24 -15
  7. package/dist/domain/checkCharacteristics.d.ts.map +1 -1
  8. package/dist/domain/checkCharacteristics.js +24 -15
  9. package/dist/domain/checkCharacteristics.js.map +1 -1
  10. package/dist/domain/evidenceReconciliation.d.ts +26 -2
  11. package/dist/domain/evidenceReconciliation.d.ts.map +1 -1
  12. package/dist/domain/evidenceReconciliation.js +164 -61
  13. package/dist/domain/evidenceReconciliation.js.map +1 -1
  14. package/dist/domain/fitnessChecks.d.ts +24 -35
  15. package/dist/domain/fitnessChecks.d.ts.map +1 -1
  16. package/dist/domain/fitnessChecks.js +3 -30
  17. package/dist/domain/fitnessChecks.js.map +1 -1
  18. package/dist/domain/journal.d.ts +13 -103
  19. package/dist/domain/journal.d.ts.map +1 -1
  20. package/dist/domain/journal.js +6 -19
  21. package/dist/domain/journal.js.map +1 -1
  22. package/dist/domain/ledger.d.ts.map +1 -1
  23. package/dist/domain/ledger.js +45 -34
  24. package/dist/domain/ledger.js.map +1 -1
  25. package/dist/domain/posting.d.ts.map +1 -1
  26. package/dist/domain/posting.js +4 -7
  27. package/dist/domain/posting.js.map +1 -1
  28. package/dist/domain/qualityCheckFaultMessages.d.ts +7 -2
  29. package/dist/domain/qualityCheckFaultMessages.d.ts.map +1 -1
  30. package/dist/domain/qualityCheckFaultMessages.js +7 -2
  31. package/dist/domain/qualityCheckFaultMessages.js.map +1 -1
  32. package/dist/domain/qualityCheckReconciliation.d.ts +23 -2
  33. package/dist/domain/qualityCheckReconciliation.d.ts.map +1 -1
  34. package/dist/domain/qualityCheckReconciliation.js +40 -105
  35. package/dist/domain/qualityCheckReconciliation.js.map +1 -1
  36. package/dist/domain/qualityCheckReconciliationFault.d.ts +3 -1
  37. package/dist/domain/qualityCheckReconciliationFault.d.ts.map +1 -1
  38. package/dist/domain/qualityCheckReconciliationFault.js +3 -1
  39. package/dist/domain/qualityCheckReconciliationFault.js.map +1 -1
  40. package/dist/index.d.ts +17 -17
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +19 -19
  43. package/dist/index.js.map +1 -1
  44. package/dist/internal.d.ts +8 -15
  45. package/dist/internal.d.ts.map +1 -1
  46. package/dist/internal.js +37 -84
  47. package/dist/internal.js.map +1 -1
  48. package/dist/model.d.ts +3 -2
  49. package/dist/model.d.ts.map +1 -1
  50. package/dist/model.js +3 -2
  51. package/dist/model.js.map +1 -1
  52. package/dist/parse/checkScriptsRunInCI.d.ts +8 -7
  53. package/dist/parse/checkScriptsRunInCI.d.ts.map +1 -1
  54. package/dist/parse/checkScriptsRunInCI.js +7 -6
  55. package/dist/parse/checkScriptsRunInCI.js.map +1 -1
  56. package/dist/parse/ciStepRecord.d.ts +5 -17
  57. package/dist/parse/ciStepRecord.d.ts.map +1 -1
  58. package/dist/parse/ciStepRecord.js +7 -27
  59. package/dist/parse/ciStepRecord.js.map +1 -1
  60. package/dist/parse/corpusCodeFaults.d.ts +4 -4
  61. package/dist/parse/corpusCodeFaults.js +4 -4
  62. package/dist/parse/corpusFaults.d.ts +26 -37
  63. package/dist/parse/corpusFaults.d.ts.map +1 -1
  64. package/dist/parse/corpusFaults.js +18 -33
  65. package/dist/parse/corpusFaults.js.map +1 -1
  66. package/dist/parse/corpusGrammarFaults.d.ts +11 -73
  67. package/dist/parse/corpusGrammarFaults.d.ts.map +1 -1
  68. package/dist/parse/corpusGrammarFaults.js +27 -58
  69. package/dist/parse/corpusGrammarFaults.js.map +1 -1
  70. package/dist/parse/runningStaticChecks.d.ts +3 -2
  71. package/dist/parse/runningStaticChecks.d.ts.map +1 -1
  72. package/dist/parse/runningStaticChecks.js +3 -2
  73. package/dist/parse/runningStaticChecks.js.map +1 -1
  74. package/dist/parse/scenarios.d.ts +28 -13
  75. package/dist/parse/scenarios.d.ts.map +1 -1
  76. package/dist/parse/scenarios.js +48 -86
  77. package/dist/parse/scenarios.js.map +1 -1
  78. package/dist/parse/targetCorpus.d.ts +21 -11
  79. package/dist/parse/targetCorpus.d.ts.map +1 -1
  80. package/dist/parse/targetCorpus.js +16 -19
  81. package/dist/parse/targetCorpus.js.map +1 -1
  82. package/dist/parse/targetManifest.d.ts +12 -86
  83. package/dist/parse/targetManifest.d.ts.map +1 -1
  84. package/dist/parse/targetManifest.js +49 -138
  85. package/dist/parse/targetManifest.js.map +1 -1
  86. package/dist/provenance/provenance.d.ts +8 -11
  87. package/dist/provenance/provenance.d.ts.map +1 -1
  88. package/dist/provenance/provenance.js +2 -3
  89. package/dist/provenance/provenance.js.map +1 -1
  90. package/dist/render/evidenceGrid.d.ts +45 -0
  91. package/dist/render/evidenceGrid.d.ts.map +1 -0
  92. package/dist/render/evidenceGrid.js +145 -0
  93. package/dist/render/evidenceGrid.js.map +1 -0
  94. package/dist/render/markdown.d.ts.map +1 -1
  95. package/dist/render/markdown.js +85 -190
  96. package/dist/render/markdown.js.map +1 -1
  97. package/dist/render/runVerdict.d.ts +3 -2
  98. package/dist/render/runVerdict.d.ts.map +1 -1
  99. package/dist/render/runVerdict.js +11 -4
  100. package/dist/render/runVerdict.js.map +1 -1
  101. package/dist/render/staticChecks.d.ts.map +1 -1
  102. package/dist/render/staticChecks.js +10 -1
  103. package/dist/render/staticChecks.js.map +1 -1
  104. package/package.json +1 -6
  105. package/dist/domain/thresholds.d.ts +0 -123
  106. package/dist/domain/thresholds.d.ts.map +0 -1
  107. package/dist/domain/thresholds.js +0 -185
  108. package/dist/domain/thresholds.js.map +0 -1
  109. package/dist/parse/checkStaticEvidenceObligations.d.ts +0 -32
  110. package/dist/parse/checkStaticEvidenceObligations.d.ts.map +0 -1
  111. package/dist/parse/checkStaticEvidenceObligations.js +0 -78
  112. package/dist/parse/checkStaticEvidenceObligations.js.map +0 -1
  113. package/dist/parse/corpusClaimFaults.d.ts +0 -104
  114. package/dist/parse/corpusClaimFaults.d.ts.map +0 -1
  115. package/dist/parse/corpusClaimFaults.js +0 -128
  116. package/dist/parse/corpusClaimFaults.js.map +0 -1
  117. package/dist/parse/measurements.d.ts +0 -47
  118. package/dist/parse/measurements.d.ts.map +0 -1
  119. package/dist/parse/measurements.js +0 -65
  120. package/dist/parse/measurements.js.map +0 -1
  121. package/dist/render/measuredItem.d.ts +0 -30
  122. package/dist/render/measuredItem.d.ts.map +0 -1
  123. package/dist/render/measuredItem.js +0 -43
  124. package/dist/render/measuredItem.js.map +0 -1
@@ -26,8 +26,7 @@
26
26
  * Parent: @SCN-LDG-001.
27
27
  */
28
28
  import type { Scenario, QualityCheck } from "../model.js";
29
- import { type ThresholdIndex } from "../domain/thresholds.js";
30
- import { type FitnessCheckIndex } from "../domain/fitnessChecks.js";
29
+ import type { FitnessCheckIndex, UnspecifiedFitnessRow } from "../domain/fitnessChecks.js";
31
30
  /**
32
31
  * Recognise a `<quality-check>pending` tag (evidence-manifesto §11B) — return its deferred
33
32
  * quality-check, or `null` when the bare tag is not one of the five recognised `<qc>pending`
@@ -123,6 +122,28 @@ export declare const FITNESS_AXIS_TAG = "fitness";
123
122
  * half-converted checks where there is one.
124
123
  */
125
124
  export declare function unconfiguredFitnessScenarios(scenarios: readonly TaggedScenario[], fitnessChecks: FitnessCheckIndex): string[];
125
+ /**
126
+ * THE CONFIGURED ROWS THE CORPUS CARRIES NO SCENARIO FOR (3F-3472, @SCN-LNT-027) — the mirror of
127
+ * `unconfiguredFitnessScenarios` directly above, in MANIFEST order.
128
+ *
129
+ * THE RUN DOES NOT ALREADY RED ON IT, WHICH IS THE WHOLE DIFFERENCE BETWEEN THE TWO. Its mirror
130
+ * adds only a sentence, because a scenario no row names already reconciles to zero rows on both
131
+ * sides and is out of balance through the degenerate item. A row no scenario names raised NOTHING:
132
+ * the obligations travel with the scenarios, so a row with no scenario contributed a characteristic
133
+ * nobody asked for and the run read balanced over a check that was declared and never specified.
134
+ * `double-entry-manifesto.md` names that shape exactly — a ledger catches a credit that never
135
+ * arrived and is blind to a debit that was never raised.
136
+ *
137
+ * IT READS THE WALK IT IS HANDED, for its mirror's reason: a second walk would be free to disagree
138
+ * about which scenarios the corpus holds, and a row raised against a corpus the obligations were
139
+ * not taken from is the phantom-row fault (@SCN-LNT-009) reached from the manifest side.
140
+ *
141
+ * EVERY `@SCN`-CARRYING SCENARIO COUNTS, NOT THE `@fitness` ONES ALONE. The claim is that the
142
+ * corpus carries no scenario for the row — so a scenario carrying the row's code and saying nothing
143
+ * about the fitness axis is still a scenario somebody wrote under that code, and minting a debit
144
+ * beside it would report a check nobody has specified where one has been started.
145
+ */
146
+ export declare function unspecifiedFitnessRows(scenarios: readonly TaggedScenario[], fitnessChecks: FitnessCheckIndex): UnspecifiedFitnessRow[];
126
147
  /**
127
148
  * One `@SCN`-carrying scenario as the corpus READS it, before any obligation rule is applied:
128
149
  * its id and its EFFECTIVE tag set (its own tags, then everything it inherits from its `Rule:`
@@ -205,20 +226,14 @@ export declare function parseTaggedScenarios(source: string): TaggedScenario[];
205
226
  * unparseable source still THROWS from the walk rather than yielding an empty corpus.
206
227
  *
207
228
  * `checkTags` — the registry's bare check tags (@SCN-LNT-006) — is ADDITIVE and defaults to none, so
208
- * `parseScenarios` keeps its place on the frozen v1 barrel (@SCN-API-001) and every existing caller
229
+ * `parseScenarios` keeps its place on the v1 barrel and every existing caller
209
230
  * reads exactly the corpus it read before. A target that has registered nothing raises no fitness
210
231
  * obligations, which is what lets the bare-tag reading land ahead of the corpus sweep that uses it.
211
232
  *
212
- * `thresholds` — the target's authored ceilings (@SCN-CIP-001) — is trailing and optional for the
213
- * same reason, and carries the scenario's own `scnId` into the obligation rule: a measured check's
214
- * ceiling is keyed by the row it is owed on, so the rule cannot be applied to a tag set alone.
215
- * Empty by default, so a target that has authored no ceiling raises no measured obligation and the
216
- * axis is dormant.
217
- *
218
233
  * `fitnessChecks` — the target's CONFIGURED ROWS (@SCN-LNT-018) — is trailing and optional for the
219
- * third time, and carries the scenario's own `scnId` for the threshold index's reason: a
220
- * converted check's characteristic is keyed by the row it is owed on. Empty by default, so a
221
- * target that has converted nothing raises nothing on this route.
234
+ * same reason, and carries the scenario's own `scnId` into the obligation rule: a converted check's
235
+ * characteristic is keyed by the row it is owed on, so the rule cannot be applied to a tag set
236
+ * alone. Empty by default, so a target that has converted nothing raises nothing on this route.
222
237
  */
223
- export declare function parseScenarios(source: string, deferralTags?: readonly string[], checkTags?: readonly string[], thresholds?: ThresholdIndex, fitnessChecks?: FitnessCheckIndex): Scenario[];
238
+ export declare function parseScenarios(source: string, deferralTags?: readonly string[], checkTags?: readonly string[], fitnessChecks?: FitnessCheckIndex): Scenario[];
224
239
  //# sourceMappingURL=scenarios.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAsB,YAAY,EAAuB,MAAM,aAAa,CAAC;AACnG,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAoBhF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAEpE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAC;AASF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAAsC,CAAC;AAiB/F;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAe1D;AAYD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB/D;AAiGD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAkE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,aAAa,EAAE,iBAAiB,GAC/B,MAAM,EAAE,CAQV;AAuED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;CACjB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CA0CrE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,SAAS,MAAM,EAAO,EACpC,SAAS,GAAE,SAAS,MAAM,EAAO,EACjC,UAAU,GAAE,cAA0B,EACtC,aAAa,GAAE,iBAA6B,GAC3C,QAAQ,EAAE,CAYZ"}
1
+ {"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAsB,YAAY,EAAuB,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAoB3F;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAEpE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAC;AASF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAAsC,CAAC;AAiB/F;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAe1D;AAYD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB/D;AA6DD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAwC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,aAAa,EAAE,iBAAiB,GAC/B,MAAM,EAAE,CAQV;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,aAAa,EAAE,iBAAiB,GAC/B,qBAAqB,EAAE,CAQzB;AAsED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;CACjB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CA0CrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,SAAS,MAAM,EAAO,EACpC,SAAS,GAAE,SAAS,MAAM,EAAO,EACjC,aAAa,GAAE,iBAA6B,GAC3C,QAAQ,EAAE,CAWZ"}
@@ -28,8 +28,6 @@
28
28
  import { AstBuilder, GherkinClassicTokenMatcher, Parser } from "@cucumber/gherkin";
29
29
  import { IdGenerator } from "@cucumber/messages";
30
30
  import { bareTerm } from "../lib/bareTerm.js";
31
- import { measuredCheckTags, thresholdFor } from "../domain/thresholds.js";
32
- import { carriesBar } from "../domain/fitnessChecks.js";
33
31
  const SCN_CODE = /^SCN-[A-Z0-9]+-\d+$/;
34
32
  /**
35
33
  * The recognised `<quality-check>pending` lexicon (evidence-manifesto §11B) — a bare tag
@@ -198,9 +196,10 @@ export function parseUntaggedScenarios(source) {
198
196
  * `stepless` boolean on after the rule stopped reading it, kept by a reason that was wrong twice
199
197
  * (3F-3134): it named `parse/scnTags.ts` as the surviving reader, which is not a path in this
200
198
  * repository, and the corpus check it meant computed its own steplessness off its own line parser
201
- * and never read this one. Both rules that reason named read the registered tag now (@SCN-STG-005,
202
- * @SCN-STG-007, 3F-3126). So nothing asked the walk for a scenario's SHAPE, and the walk stopped
203
- * answering: steplessness is derived nowhere in this tree, and a scenario's axis is its tag.
199
+ * and never read this one. Both rules that reason named read the tag instead (@SCN-STG-005, and
200
+ * the one-check rule until it left with the measured axis; 3F-3126, 3F-3516). So nothing asked
201
+ * the walk for a scenario's SHAPE, and the walk stopped answering: steplessness is derived
202
+ * nowhere in this tree, and a scenario's axis is its tag.
204
203
  *
205
204
  * SUPPLIED, NOT INFERRED. `checkTags` is the caller's set of recognised check tags, taken as
206
205
  * data. Without it every unrecognised tag would be a candidate check and `@smoke` would owe one;
@@ -212,50 +211,15 @@ export function parseUntaggedScenarios(source) {
212
211
  * its own plus its `Rule:`'s and its `Feature:`'s (@SCN-LDG-020), so one check can reach one
213
212
  * scenario twice and is owed once. Two obligations for one check would leave the second `missing`
214
213
  * for ever — one run is one credit and can cite one `@SCN`.
215
- *
216
- * MEASURED CHECKS JOIN THROUGH THE SAME ARM (@SCN-CIP-001), because they are the same rule: a bare
217
- * tag on a scenario, owed once. What differs is what the obligation HOLDS. A measured check
218
- * is assessed by running the suite and measuring it, so its evidence is a number and its obligation
219
- * carries the CEILING that number is held against — read for THIS scenario, since canon's own shape
220
- * for the axis is several stepless scenarios sharing one characteristic with ceilings of their own.
221
- *
222
- * A MEASURED TAG IS RECOGNISED BY THE THRESHOLD INDEX. A measured check has no runnable script
223
- * handle — nothing invokes `ci-run-time` — so a set built from discovered handles alone cannot
224
- * name it, and a rule reading that alone would raise nothing for it: silent, which is worse than
225
- * wrong.
226
- *
227
- * `measured: true` IS SET WHETHER OR NOT A CEILING WAS FOUND, and that is the point. The flag routes
228
- * the obligation to the comparison arm; the missing ceiling is what that arm then reports
229
- * (@SCN-CIP-002). Marking it measured only when a ceiling exists would send an un-authored one down
230
- * the static route, to be reported as a check nobody wrote — the wrong cure for the actual fault.
231
214
  */
232
- function fitnessObligationsOf(tags, checkTags, seen, scnId, thresholds) {
215
+ function fitnessObligationsOf(tags, checkTags, seen) {
233
216
  const registered = new Set(checkTags);
234
- const measured = new Set(measuredCheckTags(thresholds));
235
217
  const raised = [];
236
218
  for (const tag of tags) {
237
- if ((!registered.has(tag) && !measured.has(tag)) || seen.has(tag))
219
+ if (!registered.has(tag) || seen.has(tag))
238
220
  continue;
239
221
  seen.add(tag);
240
- if (!measured.has(tag)) {
241
- raised.push({ qualityCheck: "lint", staticCheck: tag });
242
- continue;
243
- }
244
- const bar = thresholdFor(thresholds, scnId, tag);
245
- raised.push({
246
- qualityCheck: "lint",
247
- staticCheck: tag,
248
- measured: true,
249
- // Spread rather than `threshold: bar?.threshold ?? undefined`, so an obligation with no
250
- // authored bar carries no key at all — the absence is a fact about the manifest, and a row
251
- // serialising `"threshold": null` would read as a bar somebody wrote.
252
- //
253
- // THE WHOLE BAR IS SPREAD, not its number picked out (@SCN-MUT-001). The bar and the
254
- // obligation hold the comparison in the same sparse terms, so a bare-number entry lands
255
- // exactly the keys it landed before the comparison existed, and the direction cannot be
256
- // dropped in transit by a reader that only knew to copy the number.
257
- ...(bar !== null ? bar : {}),
258
- });
222
+ raised.push({ qualityCheck: "lint", staticCheck: tag });
259
223
  }
260
224
  return raised;
261
225
  }
@@ -270,7 +234,7 @@ function fitnessObligationsOf(tags, checkTags, seen, scnId, thresholds) {
270
234
  export const FITNESS_AXIS_TAG = "fitness";
271
235
  /**
272
236
  * The obligation a CONVERTED check's scenario raises (@SCN-LNT-018) — the characteristic its
273
- * CONFIGURED ROW names, once, in the shape that row's own shape asks for (@SCN-LNT-019).
237
+ * CONFIGURED ROW names, once.
274
238
  *
275
239
  * THE TAG NAMES THE AXIS AND THE ROW NAMES THE SUBJECT. A bare characteristic tag answered both at
276
240
  * once; the tier tags answer only the first, and nobody mints `@unit-parser`. So a converted
@@ -282,19 +246,6 @@ export const FITNESS_AXIS_TAG = "fitness";
282
246
  * pair key, the reconciler's static arm and the roll-up are untouched: only where the word came
283
247
  * from changed.
284
248
  *
285
- * THE ROW'S SHAPE SAYS WHICH OF THE TWO OBLIGATION SHAPES IT IS (@SCN-LNT-019) — no type field, no
286
- * second tag, no roster of measured characteristics. A row carrying a bar is measured and one
287
- * carrying none is static, which is the discrimination `thresholdsOf` has always made: a check with
288
- * no entry there is already the static case. `carriesBar` is the ONE spelling of that question, and
289
- * the credit side asks it too — a measured row's credit is its NUMBER, so its step's outcome raises
290
- * none beside it, and two readers of one fact would eventually differ about the row whose bar
291
- * nothing can read.
292
- *
293
- * `measured: true` IS SET WHETHER OR NOT A BAR COULD BE READ, exactly as the registered-tag arm
294
- * sets it. The flag routes the obligation to the comparison arm and the bar nobody wrote is what
295
- * that arm then reports (@SCN-CIP-002); marking a row measured only where a readable bar was found
296
- * would send an un-authored one down the static route, to be reported as a check nobody wrote.
297
- *
298
249
  * NO REGISTRY HOP, and that is what conversion retires. An unconverted static check is discovered
299
250
  * as a script handle, and a handle does not know what it is for — hence the (now-retired)
300
251
  * registry, and hence the corpus lookup behind it. This route reads the citation off the row
@@ -313,21 +264,7 @@ function convertedFitnessObligationsOf(tags, fitnessChecks, seen, scnId) {
313
264
  if (row === undefined || seen.has(row.characteristic))
314
265
  return [];
315
266
  seen.add(row.characteristic);
316
- if (!carriesBar(row))
317
- return [{ qualityCheck: "lint", staticCheck: row.characteristic }];
318
- const bar = row.bar ?? null;
319
- return [
320
- {
321
- qualityCheck: "lint",
322
- staticCheck: row.characteristic,
323
- measured: true,
324
- // THE WHOLE BAR IS SPREAD, not its number picked out (@SCN-MUT-001) — the direction is half
325
- // of the bar, and a reader that only knew to copy the number would drop it in transit. Spread
326
- // rather than assigned, so a measured row whose bar nothing could read carries no key at all:
327
- // `"threshold": null` would serialise as a bar somebody wrote.
328
- ...(bar !== null ? bar : {}),
329
- },
330
- ];
267
+ return [{ qualityCheck: "lint", staticCheck: row.characteristic }];
331
268
  }
332
269
  /**
333
270
  * The scenarios ON the fitness axis that no configured row NAMES (@SCN-LNT-020) — a corpus that has
@@ -372,12 +309,43 @@ export function unconfiguredFitnessScenarios(scenarios, fitnessChecks) {
372
309
  }
373
310
  return unconfigured;
374
311
  }
312
+ /**
313
+ * THE CONFIGURED ROWS THE CORPUS CARRIES NO SCENARIO FOR (3F-3472, @SCN-LNT-027) — the mirror of
314
+ * `unconfiguredFitnessScenarios` directly above, in MANIFEST order.
315
+ *
316
+ * THE RUN DOES NOT ALREADY RED ON IT, WHICH IS THE WHOLE DIFFERENCE BETWEEN THE TWO. Its mirror
317
+ * adds only a sentence, because a scenario no row names already reconciles to zero rows on both
318
+ * sides and is out of balance through the degenerate item. A row no scenario names raised NOTHING:
319
+ * the obligations travel with the scenarios, so a row with no scenario contributed a characteristic
320
+ * nobody asked for and the run read balanced over a check that was declared and never specified.
321
+ * `double-entry-manifesto.md` names that shape exactly — a ledger catches a credit that never
322
+ * arrived and is blind to a debit that was never raised.
323
+ *
324
+ * IT READS THE WALK IT IS HANDED, for its mirror's reason: a second walk would be free to disagree
325
+ * about which scenarios the corpus holds, and a row raised against a corpus the obligations were
326
+ * not taken from is the phantom-row fault (@SCN-LNT-009) reached from the manifest side.
327
+ *
328
+ * EVERY `@SCN`-CARRYING SCENARIO COUNTS, NOT THE `@fitness` ONES ALONE. The claim is that the
329
+ * corpus carries no scenario for the row — so a scenario carrying the row's code and saying nothing
330
+ * about the fitness axis is still a scenario somebody wrote under that code, and minting a debit
331
+ * beside it would report a check nobody has specified where one has been started.
332
+ */
333
+ export function unspecifiedFitnessRows(scenarios, fitnessChecks) {
334
+ const carried = new Set(scenarios.map((scenario) => scenario.scnId));
335
+ const unspecified = [];
336
+ for (const [scnId, row] of fitnessChecks) {
337
+ if (carried.has(scnId))
338
+ continue;
339
+ unspecified.push({ scnId, characteristic: row.characteristic });
340
+ }
341
+ return unspecified;
342
+ }
375
343
  /**
376
344
  * Derive a scenario's evidence obligations from its EFFECTIVE tags — its own PLUS everything it
377
345
  * inherits from its `Feature:` and any enclosing `Rule:` (@SCN-LDG-020). Unchanged in substance
378
346
  * from the tag-block reading it replaces; what changed is WHICH tags reach it.
379
347
  */
380
- function obligationsFromTags(tags, deferralTags, checkTags, scnId, thresholds, fitnessChecks) {
348
+ function obligationsFromTags(tags, deferralTags, checkTags, scnId, fitnessChecks) {
381
349
  const evidenceObligations = [];
382
350
  const seenQualityChecks = new Set();
383
351
  const seenPending = new Set();
@@ -404,7 +372,7 @@ function obligationsFromTags(tags, deferralTags, checkTags, scnId, thresholds, f
404
372
  // below, so a deferred fitness scenario defers like any other rather than escaping through a later
405
373
  // arm. `seenChecks` keeps a check from being owed twice however many of a scenario's effective
406
374
  // tags name it.
407
- evidenceObligations.push(...fitnessObligationsOf(tags, checkTags, seenChecks, scnId, thresholds),
375
+ evidenceObligations.push(...fitnessObligationsOf(tags, checkTags, seenChecks),
408
376
  // The CONVERTED route (@SCN-LNT-018), on the same `seen` set and after the registered-tag arm:
409
377
  // a characteristic is owed once whichever of the two named it.
410
378
  ...convertedFitnessObligationsOf(tags, fitnessChecks, seenChecks, scnId));
@@ -580,25 +548,19 @@ export function parseTaggedScenarios(source) {
580
548
  * unparseable source still THROWS from the walk rather than yielding an empty corpus.
581
549
  *
582
550
  * `checkTags` — the registry's bare check tags (@SCN-LNT-006) — is ADDITIVE and defaults to none, so
583
- * `parseScenarios` keeps its place on the frozen v1 barrel (@SCN-API-001) and every existing caller
551
+ * `parseScenarios` keeps its place on the v1 barrel and every existing caller
584
552
  * reads exactly the corpus it read before. A target that has registered nothing raises no fitness
585
553
  * obligations, which is what lets the bare-tag reading land ahead of the corpus sweep that uses it.
586
554
  *
587
- * `thresholds` — the target's authored ceilings (@SCN-CIP-001) — is trailing and optional for the
588
- * same reason, and carries the scenario's own `scnId` into the obligation rule: a measured check's
589
- * ceiling is keyed by the row it is owed on, so the rule cannot be applied to a tag set alone.
590
- * Empty by default, so a target that has authored no ceiling raises no measured obligation and the
591
- * axis is dormant.
592
- *
593
555
  * `fitnessChecks` — the target's CONFIGURED ROWS (@SCN-LNT-018) — is trailing and optional for the
594
- * third time, and carries the scenario's own `scnId` for the threshold index's reason: a
595
- * converted check's characteristic is keyed by the row it is owed on. Empty by default, so a
596
- * target that has converted nothing raises nothing on this route.
556
+ * same reason, and carries the scenario's own `scnId` into the obligation rule: a converted check's
557
+ * characteristic is keyed by the row it is owed on, so the rule cannot be applied to a tag set
558
+ * alone. Empty by default, so a target that has converted nothing raises nothing on this route.
597
559
  */
598
- export function parseScenarios(source, deferralTags = [], checkTags = [], thresholds = new Map(), fitnessChecks = new Map()) {
560
+ export function parseScenarios(source, deferralTags = [], checkTags = [], fitnessChecks = new Map()) {
599
561
  return parseTaggedScenarios(source).map((scenario) => ({
600
562
  scnId: scenario.scnId,
601
- evidenceObligations: obligationsFromTags(scenario.tags, deferralTags, checkTags, scenario.scnId, thresholds, fitnessChecks),
563
+ evidenceObligations: obligationsFromTags(scenario.tags, deferralTags, checkTags, scenario.scnId, fitnessChecks),
602
564
  }));
603
565
  }
604
566
  //# sourceMappingURL=scenarios.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,WAAW,EAA2C,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,4BAA4B,GAAiC;IACjE,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,kBAAkB,EAAE,aAAa;IACjC,UAAU,EAAE,KAAK;IACjB,kBAAkB,EAAE,aAAa;CAClC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,4BAA4B,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB,MAAM,CAAC,IAAI,CACtE,4BAA4B,CAC7B,CAAC;AAEF,MAAM,oBAAoB,GAAwC;IAChE,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAE/F,qFAAqF;AACrF,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,OAAiB;IAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,MAAM,CAAC,IAAI,IAAI;oBAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GACnB,mEAAmE,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,0FAA0F;QAC1F,SAAS,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,SAAS,oBAAoB,CAC3B,IAAuB,EACvB,SAA4B,EAC5B,IAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,6BAA6B,CACpC,IAAuB,EACvB,aAAgC,EAChC,IAAiB,EACjB,KAAa;IAEb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAAoC,EACpC,aAAgC;IAEhC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,SAAS;QACxD,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAChD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAoC,EACpC,aAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACjC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,IAAuB,EACvB,YAA+B,EAC/B,SAA4B,EAC5B,KAAa,EACb,aAAgC;IAEhC,MAAM,mBAAmB,GAAyB,EAAE,CAAC;IACrD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,0EAA0E;QAC1E,0FAA0F;QAC1F,iFAAiF;QACjF,sFAAsF;QACtF,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9B,mBAAmB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,YAAY,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACpC,mBAAmB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;IACH,CAAC;IACD,kGAAkG;IAClG,mGAAmG;IACnG,+FAA+F;IAC/F,gBAAgB;IAChB,mBAAmB,CAAC,IAAI,CACtB,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;IACpD,+FAA+F;IAC/F,+DAA+D;IAC/D,GAAG,6BAA6B,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CACzE,CAAC;IACF,iFAAiF;IACjF,oFAAoF;IACpF,uFAAuF;IACvF,sFAAsF;IACtF,6BAA6B;IAC7B,yFAAyF;IACzF,+EAA+E;IAC/E,8BAA8B;IAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,mFAAmF;YACnF,oFAAoF;YACpF,gGAAgG;YAChG,oFAAoF;YACpF,sFAAsF;YACtF,kEAAkE;YAClE,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,UAAU,IAAI,mBAAmB;gBAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AA6CD;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAChG,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CACb,sFAAsF;YACpF,oFAAoF;YACpF,gCAAgC,OAAO,EAAE,CAC5C,CAAC;IACJ,CAAC;AACH,CAAC;AAQD,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEzC;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAmB;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,QAAiC,EAAE,MAAgB;IAC7E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,QAA0B,EAAE,MAAM,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,QAAyB;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAmB,EAAE,MAAM,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,KAAa,EAAE,MAAyB,EAAE,KAAwB;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;IACzD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/E,OAAO,GAAG,GAAG,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAAE,GAAG,IAAI,CAAC,CAAC;IAC5E,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,+FAA+F;IAC/F,2FAA2F;IAC3F,MAAM,IAAI,GAAG,CAAC,IAAiC,EAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhG,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,CAAC,QAAiC,EAAE,SAAmB,EAAQ,EAAE;QAC/E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,0FAA0F;gBAC1F,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAA0B,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzF,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,SAAS;YAE9B,4FAA4F;YAC5F,yFAAyF;YACzF,oFAAoF;YACpF,yFAAyF;YACzF,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YAEnC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,SAAS;gBACf,SAAS;gBACT,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAmB,EAAE,WAAW,CAAC,CAAC;IAE3E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,eAAkC,EAAE,EACpC,YAA+B,EAAE,EACjC,gBAAmC,IAAI,GAAG,EAAE;IAE5C,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,mBAAmB,EAAE,mBAAmB,CACtC,QAAQ,CAAC,IAAI,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,CAAC,KAAK,EACd,aAAa,CACd;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,12 +1,11 @@
1
1
  /**
2
- * The TARGET's feature corpus read into the two readings one reconciliation needs — moved here
3
- * from the app's ingest edge (3F-3088).
2
+ * The TARGET's feature corpus read into the readings one reconciliation needs — moved here from
3
+ * the app's ingest edge (3F-3088).
4
4
  *
5
5
  * WHY IT LIVES IN THE ENGINE. Every line of it is a pure function of sources somebody else already
6
- * read off disk: the obligation rule and the measured-tag union are `parseScenarios` and
7
- * `measuredCheckTags`, both core's own. Sitting at the app edge it was the reason a PUBLISHED
8
- * module imported core's unpublished `/internal` subpath for five symbols — the fault 3F-3086
9
- * repairs. One line made it impure and it was the only one: the feature discovery, which now
6
+ * read off disk: the obligation rule is `parseScenarios`, core's own. Sitting at the app edge it
7
+ * was the reason a PUBLISHED module imported core's unpublished `/internal` subpath for five
8
+ * symbols — the fault 3F-3086 repairs. One line made it impure and it was the only one: the feature discovery, which now
10
9
  * happens at the edge and arrives as `sources`.
11
10
  *
12
11
  * THE REGISTRY-KEYED READING THIS FILE ONCE ALSO PRODUCED — `checkHandles` and `citedScn`, the
@@ -15,14 +14,13 @@
15
14
  * (`citedRow`, below) or is a converted `@fitness` row read through `domain/fitnessChecks`
16
15
  * directly; there is no second discovery left to key a handle set off.
17
16
  */
18
- import type { FitnessCheckIndex } from "../domain/fitnessChecks.js";
19
- import { type ThresholdIndex } from "../domain/thresholds.js";
17
+ import type { FitnessCheckIndex, UnspecifiedFitnessRow } from "../domain/fitnessChecks.js";
20
18
  import { type ScriptCitation } from "./fitnessCitations.js";
21
19
  import type { Scenario } from "../model.js";
22
20
  /**
23
21
  * The target's feature corpus as ONE run reads it — the obligations it raises, the `@SCN` a run
24
- * whose CI step states a code cites, and the scenarios on the fitness axis no configured row
25
- * names.
22
+ * whose CI step states a code cites, the scenarios on the fitness axis no configured row names,
23
+ * and the configured rows the corpus carries no scenario for.
26
24
  *
27
25
  * THE READINGS ARE ONE, which is why they are produced together. All are derived from the same
28
26
  * bytes and the same configured rows, and the fault they exist to foreclose is precisely their
@@ -55,6 +53,18 @@ export interface TargetCorpus {
55
53
  * different reads — the same guarantee `citedRow` is composed here for.
56
54
  */
57
55
  unconfiguredFitnessScenarios: readonly string[];
56
+ /**
57
+ * The CONFIGURED ROWS the corpus carries no scenario for (@SCN-LNT-027, 3F-3472) — the other
58
+ * direction of the same disagreement, in manifest order, each with the characteristic its debit
59
+ * is owed at.
60
+ *
61
+ * IT IS HERE FOR THE MIRROR'S REASON AND NOT A WEAKER ONE. The corpus walk and the configured
62
+ * rows are both in hand exactly once, so the rows this names and the obligations `scenarios`
63
+ * raises are taken from ONE read of each side. Computed at the composition from `corpus.scenarios`
64
+ * it would be a second walk, free to disagree with the walk the obligations came from — which is
65
+ * the fault this whole reading exists to foreclose.
66
+ */
67
+ unspecifiedFitnessRows: readonly UnspecifiedFitnessRow[];
58
68
  }
59
69
  /**
60
70
  * THE SOURCES ARRIVE READ, AND THAT IS THE WHOLE OF WHAT MOVED. The edge discovers the target's
@@ -64,7 +74,7 @@ export interface TargetCorpus {
64
74
  * preserves that guarantee where a features directory would have re-opened the question inside the
65
75
  * engine.
66
76
  */
67
- export declare function readTargetCorpus(sources: readonly string[], deferralTags: readonly string[], thresholds: ThresholdIndex,
77
+ export declare function readTargetCorpus(sources: readonly string[], deferralTags: readonly string[],
68
78
  /**
69
79
  * The target's CONFIGURED ROWS (@SCN-LNT-018) — the CONVERTED route's half of the debit side. It
70
80
  * reaches `parseScenarios`, which raises the Evidence Obligations, and `citedRow`, which reads a
@@ -1 +1 @@
1
- {"version":3,"file":"targetCorpus.d.ts","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,GAAG,IAAI,CAAC;IAClE;;;;;;;;OAQG;IACH,4BAA4B,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,UAAU,EAAE,cAAc;AAC1B;;;;;GAKG;AACH,aAAa,EAAE,iBAAiB,GAC/B,YAAY,CAmBd"}
1
+ {"version":3,"file":"targetCorpus.d.ts","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,GAAG,IAAI,CAAC;IAClE;;;;;;;;OAQG;IACH,4BAA4B,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD;;;;;;;;;;OAUG;IACH,sBAAsB,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC1D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,YAAY,EAAE,SAAS,MAAM,EAAE;AAC/B;;;;;GAKG;AACH,aAAa,EAAE,iBAAiB,GAC/B,YAAY,CAkBd"}
@@ -1,12 +1,11 @@
1
1
  /**
2
- * The TARGET's feature corpus read into the two readings one reconciliation needs — moved here
3
- * from the app's ingest edge (3F-3088).
2
+ * The TARGET's feature corpus read into the readings one reconciliation needs — moved here from
3
+ * the app's ingest edge (3F-3088).
4
4
  *
5
5
  * WHY IT LIVES IN THE ENGINE. Every line of it is a pure function of sources somebody else already
6
- * read off disk: the obligation rule and the measured-tag union are `parseScenarios` and
7
- * `measuredCheckTags`, both core's own. Sitting at the app edge it was the reason a PUBLISHED
8
- * module imported core's unpublished `/internal` subpath for five symbols — the fault 3F-3086
9
- * repairs. One line made it impure and it was the only one: the feature discovery, which now
6
+ * read off disk: the obligation rule is `parseScenarios`, core's own. Sitting at the app edge it
7
+ * was the reason a PUBLISHED module imported core's unpublished `/internal` subpath for five
8
+ * symbols — the fault 3F-3086 repairs. One line made it impure and it was the only one: the feature discovery, which now
10
9
  * happens at the edge and arrives as `sources`.
11
10
  *
12
11
  * THE REGISTRY-KEYED READING THIS FILE ONCE ALSO PRODUCED — `checkHandles` and `citedScn`, the
@@ -15,9 +14,8 @@
15
14
  * (`citedRow`, below) or is a converted `@fitness` row read through `domain/fitnessChecks`
16
15
  * directly; there is no second discovery left to key a handle set off.
17
16
  */
18
- import { measuredCheckTags } from "../domain/thresholds.js";
19
17
  import { citationOfCitedRow } from "./fitnessCitations.js";
20
- import { parseScenarios, parseTaggedScenarios, unconfiguredFitnessScenarios } from "./scenarios.js";
18
+ import { parseScenarios, parseTaggedScenarios, unconfiguredFitnessScenarios, unspecifiedFitnessRows, } from "./scenarios.js";
21
19
  /**
22
20
  * THE SOURCES ARRIVE READ, AND THAT IS THE WHOLE OF WHAT MOVED. The edge discovers the target's
23
21
  * feature files and reads them ONCE, so the reading a citing run needs is still taken from the same
@@ -26,7 +24,7 @@ import { parseScenarios, parseTaggedScenarios, unconfiguredFitnessScenarios } fr
26
24
  * preserves that guarantee where a features directory would have re-opened the question inside the
27
25
  * engine.
28
26
  */
29
- export function readTargetCorpus(sources, deferralTags, thresholds,
27
+ export function readTargetCorpus(sources, deferralTags,
30
28
  /**
31
29
  * The target's CONFIGURED ROWS (@SCN-LNT-018) — the CONVERTED route's half of the debit side. It
32
30
  * reaches `parseScenarios`, which raises the Evidence Obligations, and `citedRow`, which reads a
@@ -34,21 +32,20 @@ export function readTargetCorpus(sources, deferralTags, thresholds,
34
32
  * which is the whole reason this reading is composed here.
35
33
  */
36
34
  fitnessChecks) {
37
- // THE OBLIGATION-RAISING TAG SET IS THE MEASURED HALF ALONE NOW (@SCN-CIP-001). The registered
38
- // half of the union retired with the registry (3F-3161): every bare check tag a stepless
39
- // scenario could carry against a registered handle is gone, and what is left is the measured
40
- // axis's own tags — a measured check has no runnable script handle, so it can never be
41
- // registered, and a corpus read against nothing else would raise nothing for it.
42
- const obligationTags = measuredCheckTags(thresholds);
43
- const scenarios = sources.flatMap((source) => parseScenarios(source, deferralTags, obligationTags, thresholds, fitnessChecks));
44
- // THE UNCONFIGURED-SCENARIO READING'S OWN WALK. Kept as its own pass over the sources — the
45
- // citation hop that once shared it retired with the registry, so there is only the one reader
46
- // left to hand it to.
35
+ // NO BARE CHECK TAG RAISES AN OBLIGATION ON A TARGET'S CORPUS. The registered half of the
36
+ // union retired with the registry (3F-3161) and the measured half with the measured axis
37
+ // (3F-3516), so the bare-tag set handed to `parseScenarios` is empty: a fitness obligation is
38
+ // raised by the axis word and a configured row, and by nothing else.
39
+ const scenarios = sources.flatMap((source) => parseScenarios(source, deferralTags, [], fitnessChecks));
40
+ // THE TAGGED WALK THE TWO CORPUS-VS-MANIFEST READINGS SHARE. Kept as its own pass over the
41
+ // sources, and handed to BOTH of them — the disagreement each names is the other's direction, so
42
+ // taking them from one walk is what stops one reading seeing a scenario the other does not.
47
43
  const tagged = sources.flatMap((source) => parseTaggedScenarios(source));
48
44
  return {
49
45
  scenarios,
50
46
  citedRow: (citedScn) => citationOfCitedRow(citedScn, fitnessChecks),
51
47
  unconfiguredFitnessScenarios: unconfiguredFitnessScenarios(tagged, fitnessChecks),
48
+ unspecifiedFitnessRows: unspecifiedFitnessRows(tagged, fitnessChecks),
52
49
  };
53
50
  }
54
51
  //# sourceMappingURL=targetCorpus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"targetCorpus.js","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,iBAAiB,EAAuB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAyCpG;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA0B,EAC1B,YAA+B,EAC/B,UAA0B;AAC1B;;;;;GAKG;AACH,aAAgC;IAEhC,+FAA+F;IAC/F,yFAAyF;IACzF,6FAA6F;IAC7F,uFAAuF;IACvF,iFAAiF;IACjF,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC,CAChF,CAAC;IACF,4FAA4F;IAC5F,8FAA8F;IAC9F,sBAAsB;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,SAAS;QACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;QACnE,4BAA4B,EAAE,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC;KAClF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"targetCorpus.js","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAqDxB;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA0B,EAC1B,YAA+B;AAC/B;;;;;GAKG;AACH,aAAgC;IAEhC,0FAA0F;IAC1F,yFAAyF;IACzF,8FAA8F;IAC9F,qEAAqE;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,CAAC,CACxD,CAAC;IACF,2FAA2F;IAC3F,iGAAiG;IACjG,4FAA4F;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,SAAS;QACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;QACnE,4BAA4B,EAAE,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC;QACjF,sBAAsB,EAAE,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;KACtE,CAAC;AACJ,CAAC"}