@descryy/core 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/budget/reply.d.ts +11 -46
- package/dist/budget/reply.d.ts.map +1 -1
- package/dist/budget/reply.js +10 -39
- package/dist/budget/reply.js.map +1 -1
- package/dist/budget/size.d.ts +2 -21
- package/dist/budget/size.d.ts.map +1 -1
- package/dist/budget/size.js +3 -24
- package/dist/budget/size.js.map +1 -1
- package/dist/capabilities/preconditions.d.ts +7 -68
- package/dist/capabilities/preconditions.d.ts.map +1 -1
- package/dist/capabilities/preconditions.js +6 -57
- package/dist/capabilities/preconditions.js.map +1 -1
- package/dist/contracts/engine.d.ts +26 -12
- package/dist/contracts/engine.d.ts.map +1 -1
- package/dist/contracts/engine.js +28 -11
- package/dist/contracts/engine.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/orphans.d.ts +28 -77
- package/dist/contracts/orphans.d.ts.map +1 -1
- package/dist/contracts/orphans.js +124 -94
- package/dist/contracts/orphans.js.map +1 -1
- package/dist/contracts/paths.d.ts +4 -114
- package/dist/contracts/paths.d.ts.map +1 -1
- package/dist/contracts/paths.js +7 -140
- package/dist/contracts/paths.js.map +1 -1
- package/dist/contracts/shapes.d.ts +13 -66
- package/dist/contracts/shapes.d.ts.map +1 -1
- package/dist/contracts/shapes.js +20 -91
- package/dist/contracts/shapes.js.map +1 -1
- package/dist/governance/budget.d.ts +12 -48
- package/dist/governance/budget.d.ts.map +1 -1
- package/dist/governance/budget.js +12 -48
- package/dist/governance/budget.js.map +1 -1
- package/dist/governance/candidate-boundary.d.ts +4 -32
- package/dist/governance/candidate-boundary.d.ts.map +1 -1
- package/dist/governance/candidate-boundary.js +4 -32
- package/dist/governance/candidate-boundary.js.map +1 -1
- package/dist/governance/escalation.d.ts +7 -45
- package/dist/governance/escalation.d.ts.map +1 -1
- package/dist/governance/escalation.js +7 -45
- package/dist/governance/escalation.js.map +1 -1
- package/dist/governance/fact-boundary.d.ts +7 -49
- package/dist/governance/fact-boundary.d.ts.map +1 -1
- package/dist/governance/fact-boundary.js +5 -43
- package/dist/governance/fact-boundary.js.map +1 -1
- package/dist/governance/finding-funnel.d.ts +11 -72
- package/dist/governance/finding-funnel.d.ts.map +1 -1
- package/dist/governance/finding-funnel.js +9 -68
- package/dist/governance/finding-funnel.js.map +1 -1
- package/dist/graph/build.d.ts +13 -75
- package/dist/graph/build.d.ts.map +1 -1
- package/dist/graph/build.js +0 -0
- package/dist/graph/build.js.map +1 -1
- package/dist/graph/cross-language.d.ts +4 -43
- package/dist/graph/cross-language.d.ts.map +1 -1
- package/dist/graph/cross-language.js +9 -77
- package/dist/graph/cross-language.js.map +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/merge.d.ts +8 -76
- package/dist/graph/merge.d.ts.map +1 -1
- package/dist/graph/merge.js +27 -77
- package/dist/graph/merge.js.map +1 -1
- package/dist/graph/observed-tests.d.ts +7 -68
- package/dist/graph/observed-tests.d.ts.map +1 -1
- package/dist/graph/observed-tests.js +5 -60
- package/dist/graph/observed-tests.js.map +1 -1
- package/dist/graph/persist.d.ts +2 -25
- package/dist/graph/persist.d.ts.map +1 -1
- package/dist/graph/persist.js +2 -25
- package/dist/graph/persist.js.map +1 -1
- package/dist/graph/runtime-confirmation.d.ts +14 -91
- package/dist/graph/runtime-confirmation.d.ts.map +1 -1
- package/dist/graph/runtime-confirmation.js +19 -103
- package/dist/graph/runtime-confirmation.js.map +1 -1
- package/dist/ledger/mint.d.ts +9 -43
- package/dist/ledger/mint.d.ts.map +1 -1
- package/dist/ledger/mint.js +15 -65
- package/dist/ledger/mint.js.map +1 -1
- package/dist/ledger/resolve.d.ts +13 -81
- package/dist/ledger/resolve.d.ts.map +1 -1
- package/dist/ledger/resolve.js +13 -76
- package/dist/ledger/resolve.js.map +1 -1
- package/dist/multipr/fingerprint.d.ts +5 -46
- package/dist/multipr/fingerprint.d.ts.map +1 -1
- package/dist/multipr/fingerprint.js +22 -74
- package/dist/multipr/fingerprint.js.map +1 -1
- package/dist/multipr/hidden-dependency.d.ts +13 -73
- package/dist/multipr/hidden-dependency.d.ts.map +1 -1
- package/dist/multipr/hidden-dependency.js +12 -63
- package/dist/multipr/hidden-dependency.js.map +1 -1
- package/dist/multipr/mechanical.d.ts +25 -160
- package/dist/multipr/mechanical.d.ts.map +1 -1
- package/dist/multipr/mechanical.js +21 -137
- package/dist/multipr/mechanical.js.map +1 -1
- package/dist/multipr/migration-heads.d.ts +18 -105
- package/dist/multipr/migration-heads.d.ts.map +1 -1
- package/dist/multipr/migration-heads.js +15 -84
- package/dist/multipr/migration-heads.js.map +1 -1
- package/dist/multipr/overlap.d.ts +16 -94
- package/dist/multipr/overlap.d.ts.map +1 -1
- package/dist/multipr/overlap.js +25 -105
- package/dist/multipr/overlap.js.map +1 -1
- package/dist/multipr/scope-store.d.ts +15 -80
- package/dist/multipr/scope-store.d.ts.map +1 -1
- package/dist/multipr/scope-store.js +17 -87
- package/dist/multipr/scope-store.js.map +1 -1
- package/dist/multipr/superseded.d.ts +10 -95
- package/dist/multipr/superseded.d.ts.map +1 -1
- package/dist/multipr/superseded.js +7 -60
- package/dist/multipr/superseded.js.map +1 -1
- package/dist/query/confirmed-facts.d.ts +12 -58
- package/dist/query/confirmed-facts.d.ts.map +1 -1
- package/dist/query/confirmed-facts.js +8 -47
- package/dist/query/confirmed-facts.js.map +1 -1
- package/dist/query/declared-value-closure.d.ts +13 -104
- package/dist/query/declared-value-closure.d.ts.map +1 -1
- package/dist/query/declared-value-closure.js +15 -104
- package/dist/query/declared-value-closure.js.map +1 -1
- package/dist/query/memory.d.ts +5 -9
- package/dist/query/memory.d.ts.map +1 -1
- package/dist/query/memory.js +31 -15
- package/dist/query/memory.js.map +1 -1
- package/dist/query/prominence.d.ts +6 -55
- package/dist/query/prominence.d.ts.map +1 -1
- package/dist/query/prominence.js +6 -55
- package/dist/query/prominence.js.map +1 -1
- package/dist/query/provider.d.ts +28 -81
- package/dist/query/provider.d.ts.map +1 -1
- package/dist/query/provider.js +8 -29
- package/dist/query/provider.js.map +1 -1
- package/dist/query/queries.d.ts +15 -65
- package/dist/query/queries.d.ts.map +1 -1
- package/dist/query/queries.js +43 -100
- package/dist/query/queries.js.map +1 -1
- package/dist/query/refusal-fetch.d.ts +8 -85
- package/dist/query/refusal-fetch.d.ts.map +1 -1
- package/dist/query/refusal-fetch.js +11 -93
- package/dist/query/refusal-fetch.js.map +1 -1
- package/dist/query/refusal-questions.d.ts +17 -92
- package/dist/query/refusal-questions.d.ts.map +1 -1
- package/dist/query/refusal-questions.js +14 -78
- package/dist/query/refusal-questions.js.map +1 -1
- package/dist/query/resolution-floor.d.ts +3 -23
- package/dist/query/resolution-floor.d.ts.map +1 -1
- package/dist/query/resolution-floor.js +3 -23
- package/dist/query/resolution-floor.js.map +1 -1
- package/dist/query/root-cause-score.d.ts +11 -161
- package/dist/query/root-cause-score.d.ts.map +1 -1
- package/dist/query/root-cause-score.js +6 -137
- package/dist/query/root-cause-score.js.map +1 -1
- package/dist/query/row-closure-picture.d.ts +5 -67
- package/dist/query/row-closure-picture.d.ts.map +1 -1
- package/dist/query/row-closure-picture.js +6 -67
- package/dist/query/row-closure-picture.js.map +1 -1
- package/dist/query/similar-incidents.d.ts +6 -41
- package/dist/query/similar-incidents.d.ts.map +1 -1
- package/dist/query/similar-incidents.js +15 -69
- package/dist/query/similar-incidents.js.map +1 -1
- package/dist/query/sqlite.d.ts +3 -7
- package/dist/query/sqlite.d.ts.map +1 -1
- package/dist/query/sqlite.js +13 -16
- package/dist/query/sqlite.js.map +1 -1
- package/dist/query/test-coverage.d.ts +5 -45
- package/dist/query/test-coverage.d.ts.map +1 -1
- package/dist/query/test-coverage.js +10 -53
- package/dist/query/test-coverage.js.map +1 -1
- package/dist/query/traverse.d.ts +22 -126
- package/dist/query/traverse.d.ts.map +1 -1
- package/dist/query/traverse.js +0 -0
- package/dist/query/traverse.js.map +1 -1
- package/dist/query/unresolved.d.ts +19 -164
- package/dist/query/unresolved.d.ts.map +1 -1
- package/dist/query/unresolved.js +11 -138
- package/dist/query/unresolved.js.map +1 -1
- package/dist/query/verification-status.d.ts +12 -109
- package/dist/query/verification-status.d.ts.map +1 -1
- package/dist/query/verification-status.js +9 -99
- package/dist/query/verification-status.js.map +1 -1
- package/dist/recording/migrate.d.ts +4 -10
- package/dist/recording/migrate.d.ts.map +1 -1
- package/dist/recording/migrate.js +4 -10
- package/dist/recording/migrate.js.map +1 -1
- package/dist/recording/reader.d.ts +2 -7
- package/dist/recording/reader.d.ts.map +1 -1
- package/dist/recording/reader.js +2 -7
- package/dist/recording/reader.js.map +1 -1
- package/dist/recording/redact.d.ts +6 -57
- package/dist/recording/redact.d.ts.map +1 -1
- package/dist/recording/redact.js +8 -64
- package/dist/recording/redact.js.map +1 -1
- package/dist/recording/schema.d.ts +3 -38
- package/dist/recording/schema.d.ts.map +1 -1
- package/dist/recording/schema.js +3 -38
- package/dist/recording/schema.js.map +1 -1
- package/dist/recording/writer.d.ts +11 -74
- package/dist/recording/writer.d.ts.map +1 -1
- package/dist/recording/writer.js +3 -43
- package/dist/recording/writer.js.map +1 -1
- package/dist/scoping/fanout.d.ts +6 -68
- package/dist/scoping/fanout.d.ts.map +1 -1
- package/dist/scoping/fanout.js +6 -68
- package/dist/scoping/fanout.js.map +1 -1
- package/dist/scoping/score.d.ts +20 -70
- package/dist/scoping/score.d.ts.map +1 -1
- package/dist/scoping/score.js +20 -70
- package/dist/scoping/score.js.map +1 -1
- package/dist/scoping/tiers.d.ts +4 -16
- package/dist/scoping/tiers.d.ts.map +1 -1
- package/dist/scoping/tiers.js +4 -16
- package/dist/scoping/tiers.js.map +1 -1
- package/dist/scoping/traverse.d.ts +3 -25
- package/dist/scoping/traverse.d.ts.map +1 -1
- package/dist/scoping/traverse.js +14 -49
- package/dist/scoping/traverse.js.map +1 -1
- package/dist/scoping/weights.d.ts +10 -74
- package/dist/scoping/weights.d.ts.map +1 -1
- package/dist/scoping/weights.js +14 -86
- package/dist/scoping/weights.js.map +1 -1
- package/dist/sources/confirmed/incidents.d.ts +5 -35
- package/dist/sources/confirmed/incidents.d.ts.map +1 -1
- package/dist/sources/confirmed/incidents.js +14 -48
- package/dist/sources/confirmed/incidents.js.map +1 -1
- package/dist/sources/git/diff.d.ts +71 -65
- package/dist/sources/git/diff.d.ts.map +1 -1
- package/dist/sources/git/diff.js +136 -83
- package/dist/sources/git/diff.js.map +1 -1
- package/dist/sources/git/env.d.ts +7 -0
- package/dist/sources/git/env.d.ts.map +1 -1
- package/dist/sources/git/env.js +10 -11
- package/dist/sources/git/env.js.map +1 -1
- package/dist/sources/git/history.d.ts +64 -84
- package/dist/sources/git/history.d.ts.map +1 -1
- package/dist/sources/git/history.js +141 -112
- package/dist/sources/git/history.js.map +1 -1
- package/dist/sources/git/incidents.d.ts +13 -75
- package/dist/sources/git/incidents.d.ts.map +1 -1
- package/dist/sources/git/incidents.js +21 -91
- package/dist/sources/git/incidents.js.map +1 -1
- package/dist/sources/git/index.d.ts +5 -3
- package/dist/sources/git/index.d.ts.map +1 -1
- package/dist/sources/git/index.js +3 -2
- package/dist/sources/git/index.js.map +1 -1
- package/dist/sources/git/source.d.ts +9 -79
- package/dist/sources/git/source.d.ts.map +1 -1
- package/dist/sources/git/source.js +0 -0
- package/dist/sources/git/source.js.map +1 -1
- package/dist/sources/migrations/across-change.d.ts +94 -0
- package/dist/sources/migrations/across-change.d.ts.map +1 -0
- package/dist/sources/migrations/across-change.js +278 -0
- package/dist/sources/migrations/across-change.js.map +1 -0
- package/dist/sources/migrations/dialects.d.ts +20 -36
- package/dist/sources/migrations/dialects.d.ts.map +1 -1
- package/dist/sources/migrations/dialects.js +11 -36
- package/dist/sources/migrations/dialects.js.map +1 -1
- package/dist/sources/migrations/index.d.ts +3 -1
- package/dist/sources/migrations/index.d.ts.map +1 -1
- package/dist/sources/migrations/index.js +2 -1
- package/dist/sources/migrations/index.js.map +1 -1
- package/dist/sources/migrations/read.d.ts +14 -79
- package/dist/sources/migrations/read.d.ts.map +1 -1
- package/dist/sources/migrations/read.js +14 -89
- package/dist/sources/migrations/read.js.map +1 -1
- package/dist/sources/workspace/workspace.d.ts +6 -42
- package/dist/sources/workspace/workspace.d.ts.map +1 -1
- package/dist/sources/workspace/workspace.js +10 -53
- package/dist/sources/workspace/workspace.js.map +1 -1
- package/dist/store/driver/driver.d.ts +9 -38
- package/dist/store/driver/driver.d.ts.map +1 -1
- package/dist/store/driver/driver.js +4 -22
- package/dist/store/driver/driver.js.map +1 -1
- package/dist/store/driver/node-sqlite.d.ts +3 -12
- package/dist/store/driver/node-sqlite.d.ts.map +1 -1
- package/dist/store/driver/node-sqlite.js +4 -18
- package/dist/store/driver/node-sqlite.js.map +1 -1
- package/dist/store/index.d.ts +2 -7
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +4 -10
- package/dist/store/index.js.map +1 -1
- package/dist/store/migrate.d.ts +14 -50
- package/dist/store/migrate.d.ts.map +1 -1
- package/dist/store/migrate.js +15 -52
- package/dist/store/migrate.js.map +1 -1
- package/dist/store/reader.d.ts +19 -84
- package/dist/store/reader.d.ts.map +1 -1
- package/dist/store/reader.js +25 -92
- package/dist/store/reader.js.map +1 -1
- package/dist/store/schema.d.ts +14 -76
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +14 -76
- package/dist/store/schema.js.map +1 -1
- package/dist/store/writer.d.ts +14 -88
- package/dist/store/writer.d.ts.map +1 -1
- package/dist/store/writer.js +29 -123
- package/dist/store/writer.js.map +1 -1
- package/dist/tiers/certify.d.ts +46 -281
- package/dist/tiers/certify.d.ts.map +1 -1
- package/dist/tiers/certify.js +46 -226
- package/dist/tiers/certify.js.map +1 -1
- package/dist/tiers/ladder.d.ts +7 -51
- package/dist/tiers/ladder.d.ts.map +1 -1
- package/dist/tiers/ladder.js +13 -89
- package/dist/tiers/ladder.js.map +1 -1
- package/dist/validation/attributes.d.ts +47 -0
- package/dist/validation/attributes.d.ts.map +1 -0
- package/dist/validation/attributes.js +130 -0
- package/dist/validation/attributes.js.map +1 -0
- package/dist/validation/config-graph.d.ts +7 -56
- package/dist/validation/config-graph.d.ts.map +1 -1
- package/dist/validation/config-graph.js +15 -61
- package/dist/validation/config-graph.js.map +1 -1
- package/dist/validation/env.d.ts +53 -2
- package/dist/validation/env.d.ts.map +1 -1
- package/dist/validation/env.js +99 -4
- package/dist/validation/env.js.map +1 -1
- package/dist/validation/index.d.ts +5 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +3 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/join-substitution.d.ts +22 -120
- package/dist/validation/join-substitution.d.ts.map +1 -1
- package/dist/validation/join-substitution.js +13 -90
- package/dist/validation/join-substitution.js.map +1 -1
- package/dist/validation/migration-integrity.d.ts +72 -0
- package/dist/validation/migration-integrity.d.ts.map +1 -0
- package/dist/validation/migration-integrity.js +238 -0
- package/dist/validation/migration-integrity.js.map +1 -0
- package/dist/validation/migrations.d.ts +23 -88
- package/dist/validation/migrations.d.ts.map +1 -1
- package/dist/validation/migrations.js +20 -79
- package/dist/validation/migrations.js.map +1 -1
- package/dist/validation/nodes.d.ts +3 -1
- package/dist/validation/nodes.d.ts.map +1 -1
- package/dist/validation/nodes.js +3 -1
- package/dist/validation/nodes.js.map +1 -1
- package/dist/validation/rollback.d.ts +10 -73
- package/dist/validation/rollback.d.ts.map +1 -1
- package/dist/validation/rollback.js +23 -81
- package/dist/validation/rollback.js.map +1 -1
- package/dist/validation/route-drift.d.ts +9 -62
- package/dist/validation/route-drift.d.ts.map +1 -1
- package/dist/validation/route-drift.js +7 -52
- package/dist/validation/route-drift.js.map +1 -1
- package/dist/validation/sources.d.ts +16 -94
- package/dist/validation/sources.d.ts.map +1 -1
- package/dist/validation/sources.js +51 -147
- package/dist/validation/sources.js.map +1 -1
- package/dist/worker/pool.d.ts +6 -45
- package/dist/worker/pool.d.ts.map +1 -1
- package/dist/worker/pool.js +5 -42
- package/dist/worker/pool.js.map +1 -1
- package/dist/worker/protocol.d.ts +7 -20
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/protocol.js +3 -10
- package/dist/worker/protocol.js.map +1 -1
- package/dist/worker/traversal.worker.d.ts +2 -21
- package/dist/worker/traversal.worker.d.ts.map +1 -1
- package/dist/worker/traversal.worker.js +4 -23
- package/dist/worker/traversal.worker.js.map +1 -1
- package/package.json +11 -2
package/dist/tiers/certify.js
CHANGED
|
@@ -1,61 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* > be published for a language only when the corpus passes at the resolution
|
|
6
|
-
* > the tier claims, a ≥200-edge precision draw passes on at least two
|
|
7
|
-
* > repositories the adapter's author did not choose, and `capabilities()`
|
|
8
|
-
* > declares exactly the node and edge types the adapter emitted."*
|
|
9
|
-
*
|
|
10
|
-
* ## The design point: this thing exists to say no
|
|
11
|
-
*
|
|
12
|
-
* A generator that awards a tier to everything it is shown is a rubber stamp
|
|
13
|
-
* with a build step. The output that matters is **the row that failed**, which
|
|
14
|
-
* is why `unmet` is a list of requirements with their statements rather than a
|
|
15
|
-
* boolean, and why `certify` never returns a bare tier without also returning
|
|
16
|
-
* what the next tier up is missing.
|
|
17
|
-
*
|
|
18
|
-
* Two rules follow from that, and both are the opposite of what is convenient:
|
|
19
|
-
*
|
|
20
|
-
* 1. **Absent evidence is not a pass.** No precision draw recorded means the
|
|
21
|
-
* attested requirement is unmet, exactly as if a recorded draw had failed.
|
|
22
|
-
* The alternative — treating silence as satisfaction — is how every unearned
|
|
23
|
-
* claim in this repository would have been generated.
|
|
24
|
-
* 2. **An attested requirement is labelled attested, in the output, always.**
|
|
25
|
-
* A machine can check "≥200 edges" and "two repositories". It cannot check
|
|
26
|
-
* *"the author did not choose them"*, because that is a fact about a person's
|
|
27
|
-
* intent. Marking it as declared-by-a-human is what stops this function
|
|
28
|
-
* laundering a judgement into a computed result. `certify` therefore reports
|
|
29
|
-
* `attestedBy` alongside the tier, and a consumer that prints the tier
|
|
30
|
-
* without it has dropped the only part that says who is responsible.
|
|
31
|
-
*
|
|
32
|
-
* ## What it does not do
|
|
33
|
-
*
|
|
34
|
-
* It does not run the conformance harness or the precision benches. It is given
|
|
35
|
-
* their results. That keeps it pure and testable, and it keeps the awkward fact
|
|
36
|
-
* visible: the precision evidence is **recorded by hand today**, because the
|
|
37
|
-
* benches are throwaway scripts that print to a terminal. `GateEvidence` is
|
|
38
|
-
* where that hand-recording is written down and dated, rather than living in a
|
|
39
|
-
* decision document that nothing reads.
|
|
2
|
+
* Capability-tier generator (DEC-075 §6): computed from `capabilities()`, never prose. Requires a
|
|
3
|
+
* ≥200-edge precision draw on two repos the author didn't choose; absent evidence fails, never passes.
|
|
4
|
+
* Given harness/bench results, doesn't run them itself; `attestedBy` names who recorded the human call.
|
|
40
5
|
*/
|
|
41
6
|
import { LADDER, TIERS, requirementsFor } from "./ladder.js";
|
|
42
|
-
// ---------------------------------------------------------------------------
|
|
43
|
-
// Checking one requirement
|
|
44
|
-
// ---------------------------------------------------------------------------
|
|
45
7
|
const MIN_DRAW = 200;
|
|
46
8
|
const MIN_PRECISION = 0.98;
|
|
47
9
|
const MAX_CONTROL = 0.02;
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* edge type's own precision figure within a draw ("every type with >= 20
|
|
52
|
-
* samples >= 95%"). `bench/` cannot be imported from `packages/core` — the
|
|
53
|
-
* dependency runs the other way — so the value is restated here, under the
|
|
54
|
-
* same name, rather than a second number with no name tying it to the first.
|
|
55
|
-
* User-ruled (2026-08-17): a capability that moves a language's tier needs
|
|
56
|
-
* this many decided rows of its OWN edge type in the draws, not just an
|
|
57
|
-
* aggregate pass — see `checkCapability`'s use of `PrecisionDraw.perEdgeType`.
|
|
58
|
-
*/
|
|
10
|
+
/** Mirrors `bench/lib/stats.mjs`'s TYPE_FLOOR (>=20 samples >=95% per type) — restated because
|
|
11
|
+
* bench/ can't be imported from packages/core. User-ruled: a capability that moves a tier needs
|
|
12
|
+
* this many decided rows of its OWN edge type, not just an aggregate pass. */
|
|
59
13
|
const TYPE_FLOOR = 20;
|
|
60
14
|
const REPOSITORIES_REQUIRED = 2;
|
|
61
15
|
function missing(wanted, have) {
|
|
@@ -64,41 +18,9 @@ function missing(wanted, have) {
|
|
|
64
18
|
const present = new Set(have);
|
|
65
19
|
return wanted.filter((w) => !present.has(w));
|
|
66
20
|
}
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* **The distinction this exists to make, and the defect it fixes.** The
|
|
72
|
-
* type-floor check originally read `perEdgeType` and nothing else. That reads
|
|
73
|
-
* a *mixed* draw correctly and a **dedicated** one — a draw whose own
|
|
74
|
-
* `edgeType` field names a single type — as silence, when a dedicated draw is
|
|
75
|
-
* the strongest per-type evidence this project produces: it is the stratified
|
|
76
|
-
* instrument built precisely because a uniform mixed draw under-samples a rare
|
|
77
|
-
* type. Python is the live instance: `bench/routes-py-precision.mjs` drew
|
|
78
|
-
* `SERVES_API` twice (`dispatch` 200/200, `sherpa-backend` 48/48, both
|
|
79
|
-
* re-verified live) and the generator printed `SERVES_API 0/20 decided rows`,
|
|
80
|
-
* which reads as "never measured" about a capability measured twice at 100%.
|
|
81
|
-
*
|
|
82
|
-
* A whole-draw figure is only usable this way because `edgeType` makes the
|
|
83
|
-
* composition a fact rather than an inference: every row in a draw declared
|
|
84
|
-
* `SERVES_API` is a `SERVES_API` row. `"mixed"` never qualifies — a mixed
|
|
85
|
-
* draw's composition is exactly what `perEdgeType` is for, and guessing at it
|
|
86
|
-
* from the header is how a type gets credited with rows that were never drawn.
|
|
87
|
-
*
|
|
88
|
-
* Three orderings matter, and each is a way this could have gone wrong:
|
|
89
|
-
*
|
|
90
|
-
* 1. **A recorded breakdown wins outright**, including over the draw's own
|
|
91
|
-
* header. `directus` is recorded both ways at once; adding them would
|
|
92
|
-
* report 225 decided rows out of a 200-row draw.
|
|
93
|
-
* 2. **Within a recorded breakdown, an absent key is still zero** — the
|
|
94
|
-
* existing rule, unchanged. Kotlin and Swift write their zeros explicitly
|
|
95
|
-
* for a human reading the JSON; the code treats written and absent alike.
|
|
96
|
-
* 3. **A dedicated draw of zero rows contributes zero, not `undefined`.**
|
|
97
|
-
* Python's `USES_API` is exactly this: a draw that honestly ran and found
|
|
98
|
-
* an empty population. "We looked and there was nothing" must keep failing
|
|
99
|
-
* the floor — turning it into `undefined` would only change which refusal
|
|
100
|
-
* message prints, but turning it into a pass would defeat the check.
|
|
101
|
-
*/
|
|
21
|
+
/** Decided rows of one edge type in a draw, or undefined if the draw says nothing about it.
|
|
22
|
+
* Fixes a defect where a dedicated single-type draw read as silence — Python's SERVES_API drew
|
|
23
|
+
* 200/200 and 48/48 (re-verified) but printed "0/20 decided". A dedicated zero-row draw counts as 0. */
|
|
102
24
|
function decidedRowsOfType(draw, type) {
|
|
103
25
|
if (draw.perEdgeType !== undefined)
|
|
104
26
|
return draw.perEdgeType[type]?.decided ?? 0;
|
|
@@ -116,8 +38,7 @@ function checkCapability(requirement, evidence) {
|
|
|
116
38
|
const edgeGap = missing(requirement.edgeTypes, caps.edgeTypes);
|
|
117
39
|
if (edgeGap.length > 0)
|
|
118
40
|
gaps.push(`capabilities() declares no ${edgeGap.join(", ")}`);
|
|
119
|
-
// Declared
|
|
120
|
-
// these `unpublishable`; a tier is exactly the publication they are unfit for.
|
|
41
|
+
// Declared but unexercised by any corpus pattern — checkManifest calls this "unpublishable".
|
|
121
42
|
const untested = [...(requirement.nodeTypes ?? []), ...(requirement.edgeTypes ?? [])].filter((t) => unexercised.has(t));
|
|
122
43
|
if (untested.length > 0) {
|
|
123
44
|
gaps.push(`${untested.join(", ")} is declared but no corpus pattern exercises it`);
|
|
@@ -125,40 +46,9 @@ function checkCapability(requirement, evidence) {
|
|
|
125
46
|
if (requirement.minResolution !== undefined && caps.maxResolution < requirement.minResolution) {
|
|
126
47
|
gaps.push(`maxResolution is R${caps.maxResolution}, below R${requirement.minResolution}`);
|
|
127
48
|
}
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
// declares — Kotlin's `A.callers` passed on one decided `USES_API` row
|
|
132
|
-
// before this existed. The first version of this check no-opped when no
|
|
133
|
-
// draw carried `perEdgeType` at all, reasoning it should not newly fail a
|
|
134
|
-
// capability it had no evidence about. **That reasoning was itself the
|
|
135
|
-
// bug**: Swift's `A.callers` slipped through exactly that no-op the
|
|
136
|
-
// moment its `capabilities()` gained `USES_API` from a concurrent commit,
|
|
137
|
-
// because absence of per-type evidence read as satisfaction rather than
|
|
138
|
-
// as an open question. Absence of evidence is not evidence of validation,
|
|
139
|
-
// for a capability requirement any more than it was for `checkPrecisionDraws`'s
|
|
140
|
-
// staleness flag or the four hardcoded-path scripts this same pass found —
|
|
141
|
-
// the same defect class, four more times.
|
|
142
|
-
//
|
|
143
|
-
// So: a declared type with NO `perEdgeType` recorded anywhere for this
|
|
144
|
-
// language is now a FAIL, not a no-op — "declared, no per-type evidence
|
|
145
|
-
// recorded". A declared type WITH some `perEdgeType` recorded is checked
|
|
146
|
-
// against `TYPE_FLOOR`, reading an absent key within a recorded breakdown
|
|
147
|
-
// as zero (Kotlin's SERVES_API/USES_API and Swift's own zeros, both
|
|
148
|
-
// written explicitly rather than left as an absent key, for a human
|
|
149
|
-
// reading the JSON directly — but the code treats the two identically).
|
|
150
|
-
//
|
|
151
|
-
// Scoped to requirements that MOVE a language up a tier (id prefix "A."
|
|
152
|
-
// or higher — "S." today), never to "B."/"C.". Checked empirically before
|
|
153
|
-
// being kept, not assumed: applying this unscoped collapsed every tier in
|
|
154
|
-
// `tiers.test.ts` to C, including "a complete adapter with two qualifying
|
|
155
|
-
// draws reaches Tier S" — B.declarations (CALLS, IMPORTS) and B.tests
|
|
156
|
-
// (TESTS) are baseline requirements every real adapter clears via
|
|
157
|
-
// conformance and B.r2, not a capability claimed to "move" anything, and
|
|
158
|
-
// no adapter in this fleet (nor any test fixture) has ever recorded a
|
|
159
|
-
// per-type breakdown for them. Applying the stricter rule there is not
|
|
160
|
-
// "the same defect class" — it is asking a floor requirement to answer a
|
|
161
|
-
// question only a promotion requirement was ever meant to ask.
|
|
49
|
+
// A declared edge type with no `perEdgeType` recorded ANYWHERE is now a FAIL, not a no-op — the
|
|
50
|
+
// no-op read absence of evidence as validation and let Swift's A.callers slip through silently.
|
|
51
|
+
// Scoped to promotion requirements (id "A."/"S.") only — unscoped, this collapses every tier to C.
|
|
162
52
|
const isPromotionRequirement = requirement.id.startsWith("A.") || requirement.id.startsWith("S.");
|
|
163
53
|
for (const type of requirement.edgeTypes ?? []) {
|
|
164
54
|
if (!caps.edgeTypes.includes(type))
|
|
@@ -183,9 +73,8 @@ function checkCapability(requirement, evidence) {
|
|
|
183
73
|
}
|
|
184
74
|
function checkConformance(requirement, evidence) {
|
|
185
75
|
const wanted = requirement.minResolution ?? 0;
|
|
186
|
-
// A run at
|
|
187
|
-
//
|
|
188
|
-
// every level has its own verdict; take the one asked for.
|
|
76
|
+
// A run at one resolution doesn't stand in for another — the sweep gives every level its
|
|
77
|
+
// own verdict; take the one asked for.
|
|
189
78
|
const run = evidence.conformance.find((c) => c.resolution === wanted);
|
|
190
79
|
if (run === undefined) {
|
|
191
80
|
return { requirement, because: `no conformance run recorded at R${wanted}` };
|
|
@@ -197,13 +86,8 @@ function checkConformance(requirement, evidence) {
|
|
|
197
86
|
}
|
|
198
87
|
return null;
|
|
199
88
|
}
|
|
200
|
-
/**
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
* Checked here: the draw size, the precision, the negative control, and that
|
|
204
|
-
* **two distinct repositories** qualify. Declared, not checked: that the author
|
|
205
|
-
* did not choose them.
|
|
206
|
-
*/
|
|
89
|
+
/** DEC-075 §6.2 — the one requirement a machine can't finish alone. Checks draw size, precision,
|
|
90
|
+
* negative control, and two distinct qualifying repositories; author-choice is declared, not checked. */
|
|
207
91
|
function checkPrecisionDraws(requirement, evidence) {
|
|
208
92
|
const draws = evidence.precisionDraws;
|
|
209
93
|
if (draws.length === 0) {
|
|
@@ -219,8 +103,7 @@ function checkPrecisionDraws(requirement, evidence) {
|
|
|
219
103
|
return false;
|
|
220
104
|
}
|
|
221
105
|
if (d.drawn < MIN_DRAW) {
|
|
222
|
-
// A population of zero is not a short sample
|
|
223
|
-
// tells a reader to measure harder, when nothing exists to measure.
|
|
106
|
+
// A population of zero is not a short sample — "below 200" wrongly tells a reader to measure harder.
|
|
224
107
|
const drawable = drawableFrom(d);
|
|
225
108
|
reasons.push(drawable === undefined
|
|
226
109
|
? `${d.repository}: ${d.drawn} edges drawn, below ${MIN_DRAW} ` +
|
|
@@ -245,12 +128,8 @@ function checkPrecisionDraws(requirement, evidence) {
|
|
|
245
128
|
` — measured and short, and the gap is the adapter's`);
|
|
246
129
|
return false;
|
|
247
130
|
}
|
|
248
|
-
// Precision
|
|
249
|
-
//
|
|
250
|
-
// fact as one that judged it wrong, and folding the two into one
|
|
251
|
-
// denominator punishes the honest refusal exactly as hard as the wrong
|
|
252
|
-
// answer. Coverage (decided/drawn) is reported separately, never here —
|
|
253
|
-
// see `PrecisionDraw.decided`'s own comment.
|
|
131
|
+
// Precision = correct/DECIDED, never /drawn — folding an honest refusal-to-judge into the
|
|
132
|
+
// denominator punishes it exactly like a wrong answer. Coverage is reported separately.
|
|
254
133
|
const decided = d.decided ?? d.drawn;
|
|
255
134
|
if (d.correct / decided < MIN_PRECISION) {
|
|
256
135
|
reasons.push(`${d.repository}: precision ${d.correct}/${decided}` +
|
|
@@ -278,24 +157,14 @@ function checkPrecisionDraws(requirement, evidence) {
|
|
|
278
157
|
}
|
|
279
158
|
return null;
|
|
280
159
|
}
|
|
281
|
-
/**
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
* The abuse this guards against is the easy one: labelling an unbuilt
|
|
285
|
-
* capability "structural" to collect the tier. It cannot be checked mechanically
|
|
286
|
-
* — whether a language *can* have a failing accessor is a fact about the
|
|
287
|
-
* language — so the defence is that the claim is attributable and printed.
|
|
288
|
-
*/
|
|
160
|
+
/** Admissible only with id, reason, and declaredBy all present. Guards against labelling an
|
|
161
|
+
* unbuilt capability "structural" to collect the tier — unmechanically checkable, so the
|
|
162
|
+
* defence is that the claim is attributable and printed. */
|
|
289
163
|
function admissibleLimits(evidence) {
|
|
290
164
|
return (evidence.structuralLimits ?? []).filter((l) => l.id.trim() !== "" && l.reason.trim() !== "" && l.declaredBy.trim() !== "");
|
|
291
165
|
}
|
|
292
|
-
/**
|
|
293
|
-
*
|
|
294
|
-
* **what would lift it**, and who declared it. The `pendingOn` requirement is the
|
|
295
|
-
* one doing real work: without it a cap can never be discharged and would sit on
|
|
296
|
-
* the certificate indefinitely, reading as caution rather than as a scheduled
|
|
297
|
-
* reconsideration.
|
|
298
|
-
*/
|
|
166
|
+
/** Admissible only with claimable, claimed, pendingOn, and declaredBy all present. `pendingOn`
|
|
167
|
+
* does the real work — without it a cap can never be discharged and sits forever as false caution. */
|
|
299
168
|
function admissibleCaps(evidence) {
|
|
300
169
|
return (evidence.policyCaps ?? []).filter((c) => c.id.trim() !== "" &&
|
|
301
170
|
c.claimable.trim() !== "" &&
|
|
@@ -303,13 +172,8 @@ function admissibleCaps(evidence) {
|
|
|
303
172
|
c.pendingOn.trim() !== "" &&
|
|
304
173
|
c.declaredBy.trim() !== "");
|
|
305
174
|
}
|
|
306
|
-
/**
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
* `null` means **not computable**, which is neither zero nor a number: the
|
|
310
|
-
* census classified against no known internal hosts, so every absolute target
|
|
311
|
-
* counted as out of scope and the subtraction would flatter the adapter.
|
|
312
|
-
*/
|
|
175
|
+
/** How many candidates could ever have become edges here. `null` means not computable — the
|
|
176
|
+
* census ran with no known internal hosts, so subtracting would flatter the adapter, not measure it. */
|
|
313
177
|
function drawableFrom(d) {
|
|
314
178
|
if (d.population === undefined)
|
|
315
179
|
return undefined;
|
|
@@ -329,18 +193,9 @@ function checkRequirement(requirement, evidence) {
|
|
|
329
193
|
return checkPrecisionDraws(requirement, evidence);
|
|
330
194
|
}
|
|
331
195
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Does `capabilities()` declare exactly what was emitted?
|
|
337
|
-
*
|
|
338
|
-
* Returns `"unknown"` when no run was supplied, which is **not** the same as
|
|
339
|
-
* `true` and is reported as its own value for that reason. Over-declaring is
|
|
340
|
-
* the failure that matters here: an adapter claiming `MODEL` it never emits
|
|
341
|
-
* would be handed Tier S by the ladder above on the strength of a declaration.
|
|
342
|
-
* Under-declaring is DEC-070's `thin` verdict and is caught there.
|
|
343
|
-
*/
|
|
196
|
+
/** Does `capabilities()` declare exactly what was emitted? "unknown" (no run supplied) is not
|
|
197
|
+
* `true`. Over-declaring is the failure here — a claimed-but-unemitted type would earn Tier S
|
|
198
|
+
* on the declaration alone. Under-declaring is DEC-070's `thin` verdict, caught elsewhere. */
|
|
344
199
|
function capabilitiesHonest(evidence) {
|
|
345
200
|
if (evidence.emittedNodeTypes === undefined || evidence.emittedEdgeTypes === undefined) {
|
|
346
201
|
return "unknown";
|
|
@@ -349,18 +204,14 @@ function capabilitiesHonest(evidence) {
|
|
|
349
204
|
const overEdges = missing(evidence.capabilities.edgeTypes, evidence.emittedEdgeTypes);
|
|
350
205
|
return overNodes.length === 0 && overEdges.length === 0;
|
|
351
206
|
}
|
|
352
|
-
// ---------------------------------------------------------------------------
|
|
353
|
-
// The generator
|
|
354
|
-
// ---------------------------------------------------------------------------
|
|
355
207
|
export function certify(evidence) {
|
|
356
208
|
const byTier = { S: [], A: [], B: [], C: [] };
|
|
357
209
|
const limits = admissibleLimits(evidence);
|
|
358
210
|
const limitedIds = new Set(limits.map((l) => l.id));
|
|
359
211
|
for (const definition of LADDER) {
|
|
360
212
|
byTier[definition.tier] = requirementsFor(definition.tier)
|
|
361
|
-
// A requirement this language
|
|
362
|
-
//
|
|
363
|
-
// published limitation, which is the whole point of the third verdict.
|
|
213
|
+
// A requirement this language can't satisfy is NOT-APPLICABLE — doesn't block the tier, and
|
|
214
|
+
// reappears below as a published limitation.
|
|
364
215
|
.filter((r) => !limitedIds.has(r.id))
|
|
365
216
|
.map((r) => checkRequirement(r, evidence))
|
|
366
217
|
.filter((u) => u !== null);
|
|
@@ -372,28 +223,9 @@ export function certify(evidence) {
|
|
|
372
223
|
const attestedBy = restsOnAttestation
|
|
373
224
|
? [...new Set(evidence.precisionDraws.filter((d) => !d.authorChose).map((d) => d.recordedBy))]
|
|
374
225
|
: [];
|
|
375
|
-
/**
|
|
376
|
-
*
|
|
377
|
-
*
|
|
378
|
-
* `checkPrecisionDraws` has no edge-type filter — a draw of any type that
|
|
379
|
-
* clears the bar counts toward DEC-075 §6.2's "two repositories", because
|
|
380
|
-
* the requirement DEC-075 §6 states is "a ≥200-edge precision draw", not
|
|
381
|
-
* "a draw of the edge type this tier's own capability rows named". That is
|
|
382
|
-
* correct rather than a gap: `USES_API` is the one edge type that cannot
|
|
383
|
-
* carry a negative control at all (DEC-164 §2), so requiring the draw be
|
|
384
|
-
* `USES_API`-specific would make Tier A permanently unreachable in every
|
|
385
|
-
* language, on every adapter, forever — a bar that cannot be measured is
|
|
386
|
-
* not a stricter gate, it is a broken one.
|
|
387
|
-
*
|
|
388
|
-
* But a tier resting on, say, an `IMPORTS`-only draw has not had its
|
|
389
|
-
* `USES_API` capability's precision independently sampled — `A.callers`
|
|
390
|
-
* checked that the edge type is *declared*, not that it is *precise*. That
|
|
391
|
-
* gap is real and belongs on the certificate, not silently absorbed into
|
|
392
|
-
* "Tier A". Printed rather than designed around, the same move as
|
|
393
|
-
* `unreachableHere`: the limit is disclosed, and a reader who wants to know
|
|
394
|
-
* whether the caller half specifically was adjudicated can see it named
|
|
395
|
-
* here instead of assuming "Tier A" answers a question it does not.
|
|
396
|
-
*/
|
|
226
|
+
/** Edge types the qualifying draws covered. Any type counts toward DEC-075 §6.2's two repos —
|
|
227
|
+
* USES_API can't carry a negative control (DEC-164 §2), so requiring it specifically would make
|
|
228
|
+
* Tier A unreachable everywhere. An IMPORTS-only draw hasn't sampled USES_API itself; disclosed here. */
|
|
397
229
|
const attestedEdgeTypes = restsOnAttestation
|
|
398
230
|
? [...new Set(evidence.precisionDraws.filter((d) => !d.authorChose).map((d) => d.edgeType))].sort()
|
|
399
231
|
: [];
|
|
@@ -407,28 +239,19 @@ export function certify(evidence) {
|
|
|
407
239
|
attestedBy,
|
|
408
240
|
attestedEdgeTypes,
|
|
409
241
|
limitations: limits,
|
|
410
|
-
// Derived
|
|
411
|
-
//
|
|
412
|
-
//
|
|
413
|
-
// out of scope is as unreachable as one with no population at all, and both
|
|
414
|
-
// are facts about the corpus rather than about the adapter.
|
|
242
|
+
// Derived, not declared — a measured zero needs no attribution, unlike a StructuralLimit.
|
|
243
|
+
// Drawable zero (not just population zero) is checked: a wholly out-of-scope population is
|
|
244
|
+
// as unreachable as an empty one, and both are facts about the corpus, not the adapter.
|
|
415
245
|
unreachableHere: evidence.precisionDraws
|
|
416
246
|
.filter((d) => drawableFrom(d) === 0)
|
|
417
247
|
.map((d) => ({ repository: d.repository, edgeType: d.edgeType })),
|
|
418
|
-
//
|
|
419
|
-
// a cap that could skip a requirement would be the cheapest route to a tier.
|
|
248
|
+
// Not folded into `limitedIds` — a cap waives nothing, and if it could skip a requirement that'd be the cheapest route to a tier.
|
|
420
249
|
policyCaps: admissibleCaps(evidence),
|
|
421
250
|
capabilitiesHonest: capabilitiesHonest(evidence),
|
|
422
251
|
};
|
|
423
252
|
}
|
|
424
|
-
/**
|
|
425
|
-
*
|
|
426
|
-
* reason it is not higher.
|
|
427
|
-
*
|
|
428
|
-
* The failing rows are not an appendix. A support matrix that prints "B" and
|
|
429
|
-
* stops teaches a reader that B is the ceiling; printing what A is missing
|
|
430
|
-
* turns the same fact into a work item.
|
|
431
|
-
*/
|
|
253
|
+
/** Tier first, then immediately why it isn't higher. Printing "B" alone teaches a reader B is
|
|
254
|
+
* the ceiling; printing what A is missing turns it into a work item instead. */
|
|
432
255
|
export function formatCertificate(certificate) {
|
|
433
256
|
const lines = [];
|
|
434
257
|
const tier = certificate.tier ?? "none";
|
|
@@ -437,18 +260,15 @@ export function formatCertificate(certificate) {
|
|
|
437
260
|
lines.push(` rests on a declaration by: ${certificate.attestedBy.join(", ")}`);
|
|
438
261
|
lines.push(` precision draw edge type(s) actually sampled: ${certificate.attestedEdgeTypes.join(", ")}`);
|
|
439
262
|
}
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
// this is the line that keeps them apart at the tier layer.
|
|
263
|
+
// "We found nothing" and "we can't check this here" are different sentences (§20.2) — this
|
|
264
|
+
// keeps them apart at the tier layer, not as a footnote.
|
|
443
265
|
for (const limit of certificate.limitations) {
|
|
444
266
|
lines.push(` NOT AVAILABLE in this language — ${limit.id}: ${limit.reason}`);
|
|
445
267
|
lines.push(` declared by ${limit.declaredBy}; this is a language boundary, not an unbuilt feature`);
|
|
446
268
|
}
|
|
447
|
-
// A deliberate under-claim,
|
|
448
|
-
//
|
|
449
|
-
//
|
|
450
|
-
// Beside the limitations, not among the unmet rows: "nothing to measure" and
|
|
451
|
-
// "measured and short" send a reader to different places.
|
|
269
|
+
// A deliberate under-claim, worded so it can't be read as a limit — "we cannot" and "we could
|
|
270
|
+
// and aren't, yet" are different sentences; publishing the second as the first understates
|
|
271
|
+
// the adapter. Kept beside limitations, not among unmet rows.
|
|
452
272
|
for (const empty of certificate.unreachableHere) {
|
|
453
273
|
lines.push(` NOT REACHABLE IN THIS REFERENCE SET — ${empty.edgeType} on ${empty.repository}: population 0`);
|
|
454
274
|
lines.push(" Nothing here to sample. The remedy is other repositories, not more measurement");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certify.js","sourceRoot":"","sources":["../../src/tiers/certify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH,OAAO,EAAE,MAAM,EAA+B,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgV1F,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,SAAS,OAAO,CAAI,MAAgC,EAAE,IAAkB;IACtE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAS,iBAAiB,CAAC,IAAmB,EAAE,IAAY;IAC1D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;IAChF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,WAAwB,EAAE,QAAsB;IACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IACnC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtF,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtF,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAC1F,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAC1B,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,aAAa,YAAY,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,mEAAmE;IACnE,uEAAuE;IACvE,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,oEAAoE;IACpE,0EAA0E;IAC1E,wEAAwE;IACxE,0EAA0E;IAC1E,gFAAgF;IAChF,2EAA2E;IAC3E,0CAA0C;IAC1C,EAAE;IACF,uEAAuE;IACvE,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,oEAAoE;IACpE,oEAAoE;IACpE,wEAAwE;IACxE,EAAE;IACF,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,kEAAkE;IAClE,yEAAyE;IACzE,sEAAsE;IACtE,uEAAuE;IACvE,yEAAyE;IACzE,+DAA+D;IAC/D,MAAM,sBAAsB,GAAG,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClG,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,iCAAiC;QAC/E,IAAI,CAAC,sBAAsB;YAAE,SAAS;QACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAC/C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CACP,GAAG,IAAI,6FAA6F;gBAClG,wDAAwD,CAC3D,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CACP,GAAG,IAAI,IAAI,OAAO,IAAI,UAAU,gEAAgE;gBAC9F,iFAAiF,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAwB,EAAE,QAAsB;IACxE,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC;IAC9C,+EAA+E;IAC/E,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;IACtE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,mCAAmC,MAAM,EAAE,EAAE,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,MAAM,EAAE,EAAE,CAAC;IAC3F,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,MAAM,8CAA8C,EAAE,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,WAAwB,EAAE,QAAsB;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,WAAW;YACX,OAAO,EAAE,+DAA+D;SACzE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,yEAAyE,CAAC,CAAC;YACvG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;YACvB,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,uBAAuB,QAAQ,GAAG;oBAC7D,qEAAqE;gBACvE,CAAC,CAAC,QAAQ,KAAK,IAAI;oBACjB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,OAAO,QAAQ,iBAAiB,CAAC,CAAC,UAAU,4BAA4B;wBACnG,uGAAuG;wBACvG,sGAAsG;wBACtG,qDAAqD;oBACvD,CAAC,CAAC,QAAQ,KAAK,CAAC;wBACd,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,UAAU,QAAQ,cAAc;4BAC/C,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC;gCACjB,CAAC,CAAC,iCAAiC,CAAC,CAAC,QAAQ,8BAA8B;gCAC3E,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,+EAA+E;oCAClG,qBAAqB,CAAC;4BAC1B,8FAA8F;4BAC9F,sBAAsB;wBACxB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,uBAAuB,QAAQ,QAAQ,QAAQ,WAAW;4BACrF,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC,CAAC,UAAU;gCACpD,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,UAAU,CAAC,CAAC,UAAU,GAAG,QAAQ,gBAAgB;gCACpE,CAAC,CAAC,EAAE,CAAC;4BACP,qDAAqD,CAC9D,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,wEAAwE;QACxE,wEAAwE;QACxE,iEAAiE;QACjE,uEAAuE;QACvE,wEAAwE;QACxE,6CAA6C;QAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,aAAa,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;gBAClD,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,WAAW,OAAO,WAAW,CAAC;gBACzE,WAAW,aAAa,GAAG,GAAG,GAAG,CACpC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,YAAY,GAAG,WAAW,EAAE,CAAC;YAC1E,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,sBAAsB,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,YAAY,WAAW,WAAW,GAAG,GAAG,GAAG,CACvG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,qEAAqE,CAAC,CAAC;YACnG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,IAAI,YAAY,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,YAAY,CAAC,IAAI,OAAO,qBAAqB,0BAA0B,CAAC;QACxF,OAAO;YACL,WAAW;YACX,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SACvE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,QAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAClF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;QAClB,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;QACzB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QACvB,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;QACzB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAC7B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,UAAU,CAAC;IAClD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAwB,EAAE,QAAsB;IACxE,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,YAAY;YACf,OAAO,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChD,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjD,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,QAAsB;IAChD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACvF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtF,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,UAAU,OAAO,CAAC,QAAsB;IAC5C,MAAM,MAAM,GAA8C,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAEzF,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpD,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YACxD,wEAAwE;YACxE,wEAAwE;YACxE,uEAAuE;aACtE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,qDAAqD;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IAElE,MAAM,KAAK,GACT,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAE9F,MAAM,kBAAkB,GAAG,OAAO,KAAK,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAE3G,MAAM,UAAU,GAAG,kBAAkB;QACnC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,EAAE,CAAC;IAEP;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,iBAAiB,GAAG,kBAAkB;QAC1C,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACnG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACjD,MAAM;QACN,UAAU;QACV,iBAAiB;QACjB,WAAW,EAAE,MAAM;QACnB,2EAA2E;QAC3E,4DAA4D;QAC5D,6EAA6E;QAC7E,4EAA4E;QAC5E,4DAA4D;QAC5D,eAAe,EAAE,QAAQ,CAAC,cAAc;aACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,6EAA6E;QAC7E,6EAA6E;QAC7E,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;QACpC,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA4B;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,WAAW,IAAI,OAAO,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;IAEhF,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,gCAAgC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,qDAAqD,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,yEAAyE;IACzE,2EAA2E;IAC3E,4DAA4D;IAC5D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,UAAU,uDAAuD,CAAC,CAAC;IACzG,CAAC;IACD,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,0DAA0D;IAC1D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,2CAA2C,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,UAAU,gBAAgB,CAAC,CAAC;QAC7G,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,OAAO,uBAAuB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,SAAS,iBAAiB,GAAG,CAAC,UAAU,0CAA0C,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,WAAW,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC9F,CAAC;SAAM,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,QAAQ,YAAY,CAAC,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"certify.js","sourceRoot":"","sources":["../../src/tiers/certify.ts"],"names":[],"mappings":"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"}
|
package/dist/tiers/ladder.d.ts
CHANGED
|
@@ -1,48 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Nine adapters state a tier in a doc comment. **DEC-075 §6 says a tier is
|
|
8
|
-
* generated from `capabilities()` and the gate results, never written in
|
|
9
|
-
* prose**, and until now nothing implemented that, so the only tier claims in
|
|
10
|
-
* the repository were the ones a human typed. That is the single piece of
|
|
11
|
-
* standing dishonesty in the codebase: a claim about what works for a language,
|
|
12
|
-
* made by the person who wanted it to be true, in a comment nothing checks.
|
|
13
|
-
*
|
|
14
|
-
* ## The ladder, from §11A.11
|
|
15
|
-
*
|
|
16
|
-
* | tier | what works | what it costs |
|
|
17
|
-
* | --- | --- | --- |
|
|
18
|
-
* | **S — Full** | contract *shape* matching, data propagation, oracle-derived tests | R3 + router extractor + ORM extractor |
|
|
19
|
-
* | **A — Contract** | endpoint matching, path-level orphans, migration DAG | R2/R3 + router extractor |
|
|
20
|
-
* | **B — Graph** | blast radius, impact scoring, test discovery, in-language root cause | R2 adapter |
|
|
21
|
-
* | **C — Signal** | env/config, rollback readiness, hidden dependency, file-level blast radius | R0, one grammar and one query set |
|
|
22
|
-
*
|
|
23
|
-
* A tier is **cumulative**: S implies A implies B implies C. So a language is
|
|
24
|
-
* awarded the highest tier whose requirements are *all* met, and the
|
|
25
|
-
* requirements of every tier below it are re-checked rather than assumed —
|
|
26
|
-
* because an adapter can reach R3 and still not emit a `FUNCTION`, and a ladder
|
|
27
|
-
* that assumed monotonicity would hand it an A on the strength of its routes.
|
|
28
|
-
*
|
|
29
|
-
* ## What a requirement may be
|
|
30
|
-
*
|
|
31
|
-
* Three kinds, and the split is the honest part:
|
|
32
|
-
*
|
|
33
|
-
* - **`capability`** — read straight off `capabilities()`. Machine-checked, no
|
|
34
|
-
* judgement. `capabilities()` is itself machine-checked against what the
|
|
35
|
-
* adapter actually emitted (DEC-070), so this is evidence, not a promise.
|
|
36
|
-
* - **`conformance`** — the corpus passes at the resolution the tier claims.
|
|
37
|
-
* Machine-checked by running the harness.
|
|
38
|
-
* - **`attested`** — a fact no machine in this repository can establish, so it
|
|
39
|
-
* is *declared* with its evidence and marked as declared. There is exactly
|
|
40
|
-
* one, and it is DEC-075's second condition: a ≥200-edge precision draw on
|
|
41
|
-
* two repositories **the adapter's author did not choose**. A machine can
|
|
42
|
-
* check the 200 and the two; it cannot check "did not choose", which is a
|
|
43
|
-
* fact about a person's intent. Recording it as attested is what stops the
|
|
44
|
-
* generator laundering a human judgement into a computed result.
|
|
45
|
-
*/
|
|
1
|
+
/** §11A.11's tiers (S/A/B/C, cumulative) as machine-checkable requirements —
|
|
2
|
+
* DEC-075 §6: a tier is generated from `capabilities()` + gate results,
|
|
3
|
+
* never written in prose. Requirements re-checked per tier (not assumed
|
|
4
|
+
* monotonic). Three kinds: `capability`/`conformance` (machine-checked),
|
|
5
|
+
* `attested` (DEC-075's one human-judgment fact, declared with evidence). */
|
|
46
6
|
import type { EdgeType, NodeType, ResolutionLevel } from "@descryy/ir";
|
|
47
7
|
export type Tier = "S" | "A" | "B" | "C";
|
|
48
8
|
/** Highest first. The order the generator walks, and the only place it lives. */
|
|
@@ -63,11 +23,7 @@ export interface TierDefinition {
|
|
|
63
23
|
readonly requires: readonly Requirement[];
|
|
64
24
|
}
|
|
65
25
|
export declare const LADDER: readonly TierDefinition[];
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* Cumulative and re-checked rather than assumed — see the header. `C` is the
|
|
70
|
-
* floor, so `requirementsFor("C")` is C's own list.
|
|
71
|
-
*/
|
|
26
|
+
/** Every requirement a tier needs, including tiers beneath it — cumulative,
|
|
27
|
+
* re-checked not assumed. `C` is the floor. */
|
|
72
28
|
export declare function requirementsFor(tier: Tier): readonly Requirement[];
|
|
73
29
|
//# sourceMappingURL=ladder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ladder.d.ts","sourceRoot":"","sources":["../../src/tiers/ladder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ladder.d.ts","sourceRoot":"","sources":["../../src/tiers/ladder.ts"],"names":[],"mappings":"AAAA;;;;8EAI8E;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,iFAAiF;AACjF,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAAyB,CAAC;AAE3D,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C;AAwGD,eAAO,MAAM,MAAM,EAAE,SAAS,cAAc,EAK3C,CAAC;AAEF;gDACgD;AAChD,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,WAAW,EAAE,CAOlE"}
|