eval-quality 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +355 -0
  3. package/corpus/dev/README.md +36 -0
  4. package/corpus/dev/compile-seal-example/brief.json +1 -0
  5. package/corpus/dev/compile-seal-example/contract.json +1 -0
  6. package/corpus/dev/contracts/absent-collection-locations.json +1 -0
  7. package/corpus/dev/contracts/absent-sibling-groups.json +1 -0
  8. package/corpus/dev/contracts/absent-success-indicator.json +1 -0
  9. package/corpus/dev/contracts/empty-channel-roles.json +1 -0
  10. package/corpus/dev/contracts/empty-collection-locations.json +1 -0
  11. package/corpus/dev/contracts/empty-request-shapes.json +1 -0
  12. package/corpus/dev/contracts/empty-sibling-groups.json +1 -0
  13. package/corpus/dev/contracts/no-collection-quantifier.json +1 -0
  14. package/corpus/dev/contracts/no-operation-inventory.json +1 -0
  15. package/corpus/dev/contracts/no-read-back-relation.json +1 -0
  16. package/corpus/dev/contracts/no-state-change-marker.json +1 -0
  17. package/corpus/dev/contracts/no-type-violating-step.json +1 -0
  18. package/corpus/dev/contracts/per-key-split-oracles.json +1 -0
  19. package/corpus/dev/contracts/satisfied-declarations.json +1 -0
  20. package/corpus/dev/contracts/single-required-response-key.json +1 -0
  21. package/corpus/dev/contracts/split-indicator-oracle.json +1 -0
  22. package/corpus/dev/contracts/unaddressed-parameter-sibling.json +1 -0
  23. package/corpus/dev/contracts/unnamed-reference-set.json +1 -0
  24. package/corpus/dev/contracts/wrong-cardinality-form.json +1 -0
  25. package/corpus/dev/index.json +1 -0
  26. package/dist/adapters/index.d.ts +12 -0
  27. package/dist/adapters/index.js +3 -0
  28. package/dist/adapters/local-corpus-adapter.d.ts +7 -0
  29. package/dist/adapters/local-corpus-adapter.js +78 -0
  30. package/dist/adapters/node-file-system-adapter.d.ts +7 -0
  31. package/dist/adapters/node-file-system-adapter.js +39 -0
  32. package/dist/adapters/port-boundary.d.ts +18 -0
  33. package/dist/adapters/port-boundary.js +83 -0
  34. package/dist/adapters/system-clock-adapter.d.ts +10 -0
  35. package/dist/adapters/system-clock-adapter.js +18 -0
  36. package/dist/application/compile.d.ts +4 -0
  37. package/dist/application/compile.js +24 -0
  38. package/dist/application/diagnostics.d.ts +22 -0
  39. package/dist/application/diagnostics.js +18 -0
  40. package/dist/application/index.d.ts +23 -0
  41. package/dist/application/index.js +17 -0
  42. package/dist/application/invoke-port.d.ts +2 -0
  43. package/dist/application/invoke-port.js +45 -0
  44. package/dist/application/preflight.d.ts +27 -0
  45. package/dist/application/preflight.js +131 -0
  46. package/dist/application/seal.d.ts +4 -0
  47. package/dist/application/seal.js +28 -0
  48. package/dist/application/serialize.d.ts +6 -0
  49. package/dist/application/serialize.js +9 -0
  50. package/dist/cli/arguments.d.ts +28 -0
  51. package/dist/cli/arguments.js +167 -0
  52. package/dist/cli/exit-codes.d.ts +36 -0
  53. package/dist/cli/exit-codes.js +39 -0
  54. package/dist/cli/main.d.ts +2 -0
  55. package/dist/cli/main.js +143 -0
  56. package/dist/cli/render.d.ts +26 -0
  57. package/dist/cli/render.js +53 -0
  58. package/dist/cli/run.d.ts +41 -0
  59. package/dist/cli/run.js +203 -0
  60. package/dist/core/canonical/canonicalize.d.ts +1 -0
  61. package/dist/core/canonical/canonicalize.js +113 -0
  62. package/dist/core/canonical/digest.d.ts +7 -0
  63. package/dist/core/canonical/digest.js +81 -0
  64. package/dist/core/canonical/scan-json.d.ts +1 -0
  65. package/dist/core/canonical/scan-json.js +298 -0
  66. package/dist/core/canonical/value-domain.d.ts +4 -0
  67. package/dist/core/canonical/value-domain.js +113 -0
  68. package/dist/core/compile/compile.d.ts +24 -0
  69. package/dist/core/compile/compile.js +67 -0
  70. package/dist/core/compile/declarations.d.ts +5 -0
  71. package/dist/core/compile/declarations.js +22 -0
  72. package/dist/core/compile/expression-legality.d.ts +14 -0
  73. package/dist/core/compile/expression-legality.js +346 -0
  74. package/dist/core/compile/forbidden-inputs.d.ts +5 -0
  75. package/dist/core/compile/forbidden-inputs.js +19 -0
  76. package/dist/core/compile/interface-inventory.d.ts +10 -0
  77. package/dist/core/compile/interface-inventory.js +55 -0
  78. package/dist/core/compile/oracle-alignment.d.ts +14 -0
  79. package/dist/core/compile/oracle-alignment.js +93 -0
  80. package/dist/core/compile/reachability.d.ts +17 -0
  81. package/dist/core/compile/reachability.js +177 -0
  82. package/dist/core/compile/rubrics.d.ts +55 -0
  83. package/dist/core/compile/rubrics.js +198 -0
  84. package/dist/core/compile/scripting-bound.d.ts +5 -0
  85. package/dist/core/compile/scripting-bound.js +151 -0
  86. package/dist/core/compile/sensitivity-witness.d.ts +73 -0
  87. package/dist/core/compile/sensitivity-witness.js +232 -0
  88. package/dist/core/compile/waivers.d.ts +3 -0
  89. package/dist/core/compile/waivers.js +21 -0
  90. package/dist/core/coverage/coverage.d.ts +18 -0
  91. package/dist/core/coverage/coverage.js +47 -0
  92. package/dist/core/coverage/relevance.d.ts +75 -0
  93. package/dist/core/coverage/relevance.js +186 -0
  94. package/dist/core/coverage/rules.d.ts +7 -0
  95. package/dist/core/coverage/rules.js +18 -0
  96. package/dist/core/coverage/satisfaction.d.ts +107 -0
  97. package/dist/core/coverage/satisfaction.js +415 -0
  98. package/dist/core/coverage/table.d.ts +26 -0
  99. package/dist/core/coverage/table.js +222 -0
  100. package/dist/core/declared-inputs.d.ts +16 -0
  101. package/dist/core/declared-inputs.js +18 -0
  102. package/dist/core/evaluate/evidence-resolution.d.ts +54 -0
  103. package/dist/core/evaluate/evidence-resolution.js +153 -0
  104. package/dist/core/evaluate/operators.d.ts +87 -0
  105. package/dist/core/evaluate/operators.js +350 -0
  106. package/dist/core/evaluate/resolution.d.ts +40 -0
  107. package/dist/core/evaluate/resolution.js +336 -0
  108. package/dist/core/evaluate/resolved-value.d.ts +9 -0
  109. package/dist/core/evaluate/resolved-value.js +6 -0
  110. package/dist/core/failure-codes.d.ts +18 -0
  111. package/dist/core/failure-codes.js +50 -0
  112. package/dist/core/lineage/chain.d.ts +49 -0
  113. package/dist/core/lineage/chain.js +210 -0
  114. package/dist/core/lineage/freeze.d.ts +12 -0
  115. package/dist/core/lineage/freeze.js +35 -0
  116. package/dist/core/lineage/stage-table.d.ts +43 -0
  117. package/dist/core/lineage/stage-table.js +106 -0
  118. package/dist/core/preflight/plan.d.ts +67 -0
  119. package/dist/core/preflight/plan.js +313 -0
  120. package/dist/core/preflight/projection.d.ts +40 -0
  121. package/dist/core/preflight/projection.js +96 -0
  122. package/dist/core/preflight/reduce.d.ts +8 -0
  123. package/dist/core/preflight/reduce.js +180 -0
  124. package/dist/core/preflight/witness-evidence.d.ts +42 -0
  125. package/dist/core/preflight/witness-evidence.js +88 -0
  126. package/dist/core/probe/target-policy.d.ts +63 -0
  127. package/dist/core/probe/target-policy.js +328 -0
  128. package/dist/core/schemas/artifact-reference.d.ts +19 -0
  129. package/dist/core/schemas/artifact-reference.js +30 -0
  130. package/dist/core/schemas/artifact.d.ts +1153 -0
  131. package/dist/core/schemas/artifact.js +84 -0
  132. package/dist/core/schemas/constraint-ledger.d.ts +57 -0
  133. package/dist/core/schemas/constraint-ledger.js +143 -0
  134. package/dist/core/schemas/eval-contract.d.ts +402 -0
  135. package/dist/core/schemas/eval-contract.js +147 -0
  136. package/dist/core/schemas/evaluator-configuration.d.ts +37 -0
  137. package/dist/core/schemas/evaluator-configuration.js +43 -0
  138. package/dist/core/schemas/evidence-artifact.d.ts +471 -0
  139. package/dist/core/schemas/evidence-artifact.js +232 -0
  140. package/dist/core/schemas/expression.d.ts +197 -0
  141. package/dist/core/schemas/expression.js +284 -0
  142. package/dist/core/schemas/faults.d.ts +9 -0
  143. package/dist/core/schemas/faults.js +32 -0
  144. package/dist/core/schemas/interface.d.ts +417 -0
  145. package/dist/core/schemas/interface.js +115 -0
  146. package/dist/core/schemas/isolation-manifest.d.ts +136 -0
  147. package/dist/core/schemas/isolation-manifest.js +92 -0
  148. package/dist/core/schemas/lineage.d.ts +21 -0
  149. package/dist/core/schemas/lineage.js +28 -0
  150. package/dist/core/schemas/oracle.d.ts +72 -0
  151. package/dist/core/schemas/oracle.js +35 -0
  152. package/dist/core/schemas/plan.d.ts +115 -0
  153. package/dist/core/schemas/plan.js +58 -0
  154. package/dist/core/schemas/pointer.d.ts +63 -0
  155. package/dist/core/schemas/pointer.js +94 -0
  156. package/dist/core/schemas/port-messages.d.ts +103 -0
  157. package/dist/core/schemas/port-messages.js +90 -0
  158. package/dist/core/schemas/preflight-verdict.d.ts +60 -0
  159. package/dist/core/schemas/preflight-verdict.js +38 -0
  160. package/dist/core/schemas/primitives.d.ts +78 -0
  161. package/dist/core/schemas/primitives.js +121 -0
  162. package/dist/core/schemas/private-artifact-manifest.d.ts +56 -0
  163. package/dist/core/schemas/private-artifact-manifest.js +46 -0
  164. package/dist/core/schemas/probe-body.d.ts +25 -0
  165. package/dist/core/schemas/probe-body.js +23 -0
  166. package/dist/core/schemas/probe-policy.d.ts +76 -0
  167. package/dist/core/schemas/probe-policy.js +33 -0
  168. package/dist/core/schemas/probe.d.ts +189 -0
  169. package/dist/core/schemas/probe.js +82 -0
  170. package/dist/core/schemas/publish.d.ts +30 -0
  171. package/dist/core/schemas/publish.js +135 -0
  172. package/dist/core/schemas/reference-set.d.ts +18 -0
  173. package/dist/core/schemas/reference-set.js +27 -0
  174. package/dist/core/schemas/rubric.d.ts +62 -0
  175. package/dist/core/schemas/rubric.js +68 -0
  176. package/dist/core/schemas/scoring-policy.d.ts +28 -0
  177. package/dist/core/schemas/scoring-policy.js +51 -0
  178. package/dist/core/schemas/sealed-evaluator-brief.d.ts +80 -0
  179. package/dist/core/schemas/sealed-evaluator-brief.js +59 -0
  180. package/dist/core/schemas/sealed-run-record.d.ts +382 -0
  181. package/dist/core/schemas/sealed-run-record.js +215 -0
  182. package/dist/core/schemas/sensitivity-witness.d.ts +138 -0
  183. package/dist/core/schemas/sensitivity-witness.js +86 -0
  184. package/dist/core/schemas/verdict.d.ts +25 -0
  185. package/dist/core/schemas/verdict.js +20 -0
  186. package/dist/core/schemas/waiver.d.ts +17 -0
  187. package/dist/core/schemas/waiver.js +24 -0
  188. package/dist/core/seal/derived-reference.d.ts +36 -0
  189. package/dist/core/seal/derived-reference.js +383 -0
  190. package/dist/core/seal/direction-prose.d.ts +13 -0
  191. package/dist/core/seal/direction-prose.js +120 -0
  192. package/dist/core/seal/plan-index.d.ts +63 -0
  193. package/dist/core/seal/plan-index.js +155 -0
  194. package/dist/core/seal/scripting-audit.d.ts +15 -0
  195. package/dist/core/seal/scripting-audit.js +51 -0
  196. package/dist/core/seal/seal.d.ts +18 -0
  197. package/dist/core/seal/seal.js +155 -0
  198. package/dist/core/stage-contracts.d.ts +30 -0
  199. package/dist/core/stage-contracts.js +1 -0
  200. package/dist/index.d.ts +15 -0
  201. package/dist/index.js +22 -0
  202. package/dist/ports/clock-port.d.ts +13 -0
  203. package/dist/ports/clock-port.js +7 -0
  204. package/dist/ports/corpus-port.d.ts +16 -0
  205. package/dist/ports/corpus-port.js +7 -0
  206. package/dist/ports/environment-probe-port.d.ts +76 -0
  207. package/dist/ports/environment-probe-port.js +32 -0
  208. package/dist/ports/file-system-port.d.ts +27 -0
  209. package/dist/ports/file-system-port.js +11 -0
  210. package/dist/ports/port.d.ts +33 -0
  211. package/dist/ports/port.js +14 -0
  212. package/dist/testing/conformance.d.ts +88 -0
  213. package/dist/testing/conformance.js +281 -0
  214. package/dist/testing/index.d.ts +26 -0
  215. package/dist/testing/index.js +18 -0
  216. package/dist/testing/probe-conformance.d.ts +45 -0
  217. package/dist/testing/probe-conformance.js +186 -0
  218. package/package.json +130 -0
  219. package/schemas/artifact-reference.schema.json +64 -0
  220. package/schemas/eval-contract.schema.json +2145 -0
  221. package/schemas/evaluator-configuration.schema.json +199 -0
  222. package/schemas/evidence-artifact.schema.json +1229 -0
  223. package/schemas/isolation-manifest.schema.json +394 -0
  224. package/schemas/preflight-verdict.schema.json +114 -0
  225. package/schemas/private-artifact-manifest.schema.json +103 -0
  226. package/schemas/probe.schema.json +1151 -0
  227. package/schemas/rubric.schema.json +148 -0
  228. package/schemas/scoring-policy.schema.json +90 -0
  229. package/schemas/sealed-evaluator-brief.schema.json +268 -0
  230. package/schemas/sealed-run-record.schema.json +875 -0
@@ -0,0 +1,471 @@
1
+ /** the scored output `emit` owns: outcomes, strength, and one verdict. */
2
+ import { z } from 'zod';
3
+ /**
4
+ * AD-6's closed twelve. Exported so a later reader can walk the list
5
+ * directly, and asserted at twelve by a test: AD-6 says the set "stays closed
6
+ * at twelve", so adding a thirteenth member means amending that AD first.
7
+ */
8
+ export declare const OUTCOME_STATES: readonly ['caught', 'confirmed', 'missed', 'passed-clean-control', 'false-positive', 'abstained', 'bypassed', 'unreached', 'oracle-error', 'judge-error', 'infrastructure-error', 'not-applicable'];
9
+ export declare const OutcomeState: z.ZodEnum<{
10
+ abstained: "abstained";
11
+ bypassed: "bypassed";
12
+ caught: "caught";
13
+ confirmed: "confirmed";
14
+ "false-positive": "false-positive";
15
+ "infrastructure-error": "infrastructure-error";
16
+ "judge-error": "judge-error";
17
+ missed: "missed";
18
+ "not-applicable": "not-applicable";
19
+ "oracle-error": "oracle-error";
20
+ "passed-clean-control": "passed-clean-control";
21
+ unreached: "unreached";
22
+ }>;
23
+ /** AD-33's closed three. */
24
+ export declare const CORROBORATION_VALUES: readonly ['agrees', 'disagrees', 'not-evaluable'];
25
+ export declare const Corroboration: z.ZodEnum<{
26
+ agrees: "agrees";
27
+ disagrees: "disagrees";
28
+ "not-evaluable": "not-evaluable";
29
+ }>;
30
+ export type CheckResolutionValue = {
31
+ resolution: 'true' | 'false' | 'insufficient-evidence';
32
+ introductionCondition: 'empty-collection' | null;
33
+ children: CheckResolutionValue[];
34
+ };
35
+ /**
36
+ * AD-4 requires that "each node's resolution and, where it is
37
+ * `insufficient-evidence`, the introduction condition that fired, are recorded
38
+ * in the evidence". A single verdict per oracle would erase that distinction,
39
+ * so the record mirrors the oracle's own `check` tree. Self-referential, so
40
+ * it carries `.meta({ id })`; without it the tree exports as a positional
41
+ * `__schema0` that the published-schema drift check would pin.
42
+ * `core/evaluate/resolution.ts` populates it.
43
+ */
44
+ export declare const CheckResolution: z.ZodType<CheckResolutionValue>;
45
+ /**
46
+ * AD-11's five named inputs, transcribed so a reader can recompute the
47
+ * digest and see what was compared (AD-8's "by digest and opaque reference,
48
+ * never by content or path"). Named object rather than a concatenated tuple:
49
+ * revision 1 let two conforming scorers compute different versions from
50
+ * identical inputs if they hashed a different ordering. The scorer computes
51
+ * the scoring version over this shape.
52
+ */
53
+ export declare const SCORING_VERSION_INPUT_NAMES: readonly ['contractSchemaVersion', 'corpusDigest', 'fixtureDigest', 'evaluatorConfigurationDigest', 'scoringPolicyDigest'];
54
+ export declare const ScoringVersionInputName: z.ZodEnum<{
55
+ contractSchemaVersion: "contractSchemaVersion";
56
+ corpusDigest: "corpusDigest";
57
+ evaluatorConfigurationDigest: "evaluatorConfigurationDigest";
58
+ fixtureDigest: "fixtureDigest";
59
+ scoringPolicyDigest: "scoringPolicyDigest";
60
+ }>;
61
+ export declare const ScoringVersionInputs: z.ZodObject<{
62
+ contractSchemaVersion: z.ZodInt;
63
+ corpusDigest: z.ZodString;
64
+ fixtureDigest: z.ZodString;
65
+ evaluatorConfigurationDigest: z.ZodString;
66
+ scoringPolicyDigest: z.ZodString;
67
+ }, z.core.$strict>;
68
+ export declare const InvalidatedAttempt: z.ZodObject<{
69
+ attempt: z.ZodInt;
70
+ reason: z.ZodString;
71
+ }, z.core.$strict>;
72
+ /**
73
+ * AD-6: "Every artifact records its trial count, its invalidated attempts, and
74
+ * each attempt's reason, including on a PASS." None of the three is nullable,
75
+ * because "including on a PASS" is exactly the case a nullable field would let
76
+ * a producer skip.
77
+ */
78
+ export declare const Trials: z.ZodObject<{
79
+ declaredMinimum: z.ZodInt;
80
+ completed: z.ZodInt;
81
+ invalidatedAttempts: z.ZodArray<z.ZodObject<{
82
+ attempt: z.ZodInt;
83
+ reason: z.ZodString;
84
+ }, z.core.$strict>>;
85
+ }, z.core.$strict>;
86
+ export declare const Outcome: z.ZodObject<{
87
+ oracleId: z.ZodString;
88
+ probeId: z.ZodNullable<z.ZodString>;
89
+ state: z.ZodEnum<{
90
+ abstained: "abstained";
91
+ bypassed: "bypassed";
92
+ caught: "caught";
93
+ confirmed: "confirmed";
94
+ "false-positive": "false-positive";
95
+ "infrastructure-error": "infrastructure-error";
96
+ "judge-error": "judge-error";
97
+ missed: "missed";
98
+ "not-applicable": "not-applicable";
99
+ "oracle-error": "oracle-error";
100
+ "passed-clean-control": "passed-clean-control";
101
+ unreached: "unreached";
102
+ }>;
103
+ severity: z.ZodEnum<{
104
+ critical: "critical";
105
+ low: "low";
106
+ material: "material";
107
+ }>;
108
+ disposition: z.ZodEnum<{
109
+ held: "held";
110
+ "not-attempted": "not-attempted";
111
+ violated: "violated";
112
+ }>;
113
+ resolvedFrom: z.ZodNullable<z.ZodString>;
114
+ corroboration: z.ZodEnum<{
115
+ agrees: "agrees";
116
+ disagrees: "disagrees";
117
+ "not-evaluable": "not-evaluable";
118
+ }>;
119
+ selectedObservationIds: z.ZodArray<z.ZodString>;
120
+ checkResolution: z.ZodNullable<z.ZodType<CheckResolutionValue, unknown, z.core.$ZodTypeInternals<CheckResolutionValue, unknown>>>;
121
+ }, z.core.$strict>;
122
+ export declare const CoverageGap: z.ZodObject<{
123
+ rule: z.ZodString;
124
+ relevancePredicate: z.ZodString;
125
+ satisfactionPredicate: z.ZodString;
126
+ satisfied: z.ZodBoolean;
127
+ severity: z.ZodEnum<{
128
+ critical: "critical";
129
+ low: "low";
130
+ material: "material";
131
+ }>;
132
+ }, z.core.$strict>;
133
+ /** the record as a type, so `core/coverage/` names it without importing Zod. */
134
+ export type CoverageGap = z.infer<typeof CoverageGap>;
135
+ export declare const ClassStrength: z.ZodObject<{
136
+ caught: z.ZodInt;
137
+ exercised: z.ZodInt;
138
+ rate: z.ZodNullable<z.ZodNumber>;
139
+ }, z.core.$strict>;
140
+ /**
141
+ * A fixed three-key object instead of a map keyed by probe class. AD-7 is
142
+ * explicit that "canary probes and clean controls never enter the vector", so
143
+ * the fourth class has no key here at all and its absence is structural.
144
+ */
145
+ export declare const StrengthVector: z.ZodObject<{
146
+ defect: z.ZodNullable<z.ZodObject<{
147
+ caught: z.ZodInt;
148
+ exercised: z.ZodInt;
149
+ rate: z.ZodNullable<z.ZodNumber>;
150
+ }, z.core.$strict>>;
151
+ gameability: z.ZodNullable<z.ZodObject<{
152
+ caught: z.ZodInt;
153
+ exercised: z.ZodInt;
154
+ rate: z.ZodNullable<z.ZodNumber>;
155
+ }, z.core.$strict>>;
156
+ 'zero-action': z.ZodNullable<z.ZodObject<{
157
+ caught: z.ZodInt;
158
+ exercised: z.ZodInt;
159
+ rate: z.ZodNullable<z.ZodNumber>;
160
+ }, z.core.$strict>>;
161
+ }, z.core.$strict>;
162
+ export declare const Strength: z.ZodObject<{
163
+ denominator: z.ZodString;
164
+ basis: z.ZodEnum<{
165
+ measured: "measured";
166
+ reconstructed: "reconstructed";
167
+ }>;
168
+ vector: z.ZodObject<{
169
+ defect: z.ZodNullable<z.ZodObject<{
170
+ caught: z.ZodInt;
171
+ exercised: z.ZodInt;
172
+ rate: z.ZodNullable<z.ZodNumber>;
173
+ }, z.core.$strict>>;
174
+ gameability: z.ZodNullable<z.ZodObject<{
175
+ caught: z.ZodInt;
176
+ exercised: z.ZodInt;
177
+ rate: z.ZodNullable<z.ZodNumber>;
178
+ }, z.core.$strict>>;
179
+ 'zero-action': z.ZodNullable<z.ZodObject<{
180
+ caught: z.ZodInt;
181
+ exercised: z.ZodInt;
182
+ rate: z.ZodNullable<z.ZodNumber>;
183
+ }, z.core.$strict>>;
184
+ }, z.core.$strict>;
185
+ comparable: z.ZodBoolean;
186
+ note: z.ZodNullable<z.ZodString>;
187
+ }, z.core.$strict>;
188
+ /**
189
+ * AD-12's three named checks, transcribed from the same sentence the field
190
+ * comes from: the package "validates a caller-presented lineage chain (length
191
+ * consistent with the declared revision, no repeated digest, no gap) and
192
+ * emits evidence of compliance." A single boolean would tell a reader a chain
193
+ * failed without saying which of three ways, on an artifact whose purpose is
194
+ * to be read. AD-21's FAIL rung reads the conjunction.
195
+ */
196
+ export declare const LineageChain: z.ZodObject<{
197
+ lengthConsistent: z.ZodBoolean;
198
+ noRepeatedDigest: z.ZodBoolean;
199
+ noGap: z.ZodBoolean;
200
+ }, z.core.$strict>;
201
+ /** Exported for `core/lineage/chain.ts`, which computes these three. */
202
+ export type LineageChain = z.infer<typeof LineageChain>;
203
+ export declare const Remediation: z.ZodObject<{
204
+ revisionCount: z.ZodInt;
205
+ cap: z.ZodInt;
206
+ capSource: z.ZodLiteral<"caller-attested">;
207
+ lineageChain: z.ZodObject<{
208
+ lengthConsistent: z.ZodBoolean;
209
+ noRepeatedDigest: z.ZodBoolean;
210
+ noGap: z.ZodBoolean;
211
+ }, z.core.$strict>;
212
+ }, z.core.$strict>;
213
+ /**
214
+ * A discriminated union, because AD-21 requires that no shape hold a
215
+ * production verdict and a contract verdict at once, with neither mode able
216
+ * to read a field as the other's.
217
+ */
218
+ export declare const EvidenceArtifact: z.ZodDiscriminatedUnion<[z.ZodObject<{
219
+ schemaVersion: z.ZodInt;
220
+ parentDigest: z.ZodNullable<z.ZodString>;
221
+ revisionCount: z.ZodInt;
222
+ runId: z.ZodString;
223
+ scoringVersion: z.ZodString;
224
+ scoringVersionInputs: z.ZodObject<{
225
+ contractSchemaVersion: z.ZodInt;
226
+ corpusDigest: z.ZodString;
227
+ fixtureDigest: z.ZodString;
228
+ evaluatorConfigurationDigest: z.ZodString;
229
+ scoringPolicyDigest: z.ZodString;
230
+ }, z.core.$strict>;
231
+ comparabilityKey: z.ZodString;
232
+ excludedProbeIds: z.ZodArray<z.ZodString>;
233
+ exitCode: z.ZodInt;
234
+ verdictBasis: z.ZodArray<z.ZodString>;
235
+ callerAttestedInputs: z.ZodArray<z.ZodEnum<{
236
+ contractSchemaVersion: "contractSchemaVersion";
237
+ corpusDigest: "corpusDigest";
238
+ evaluatorConfigurationDigest: "evaluatorConfigurationDigest";
239
+ fixtureDigest: "fixtureDigest";
240
+ scoringPolicyDigest: "scoringPolicyDigest";
241
+ }>>;
242
+ trials: z.ZodObject<{
243
+ declaredMinimum: z.ZodInt;
244
+ completed: z.ZodInt;
245
+ invalidatedAttempts: z.ZodArray<z.ZodObject<{
246
+ attempt: z.ZodInt;
247
+ reason: z.ZodString;
248
+ }, z.core.$strict>>;
249
+ }, z.core.$strict>;
250
+ outcomes: z.ZodArray<z.ZodObject<{
251
+ oracleId: z.ZodString;
252
+ probeId: z.ZodNullable<z.ZodString>;
253
+ state: z.ZodEnum<{
254
+ abstained: "abstained";
255
+ bypassed: "bypassed";
256
+ caught: "caught";
257
+ confirmed: "confirmed";
258
+ "false-positive": "false-positive";
259
+ "infrastructure-error": "infrastructure-error";
260
+ "judge-error": "judge-error";
261
+ missed: "missed";
262
+ "not-applicable": "not-applicable";
263
+ "oracle-error": "oracle-error";
264
+ "passed-clean-control": "passed-clean-control";
265
+ unreached: "unreached";
266
+ }>;
267
+ severity: z.ZodEnum<{
268
+ critical: "critical";
269
+ low: "low";
270
+ material: "material";
271
+ }>;
272
+ disposition: z.ZodEnum<{
273
+ held: "held";
274
+ "not-attempted": "not-attempted";
275
+ violated: "violated";
276
+ }>;
277
+ resolvedFrom: z.ZodNullable<z.ZodString>;
278
+ corroboration: z.ZodEnum<{
279
+ agrees: "agrees";
280
+ disagrees: "disagrees";
281
+ "not-evaluable": "not-evaluable";
282
+ }>;
283
+ selectedObservationIds: z.ZodArray<z.ZodString>;
284
+ checkResolution: z.ZodNullable<z.ZodType<CheckResolutionValue, unknown, z.core.$ZodTypeInternals<CheckResolutionValue, unknown>>>;
285
+ }, z.core.$strict>>;
286
+ uncitedFindings: z.ZodArray<z.ZodString>;
287
+ coverageGaps: z.ZodArray<z.ZodObject<{
288
+ rule: z.ZodString;
289
+ relevancePredicate: z.ZodString;
290
+ satisfactionPredicate: z.ZodString;
291
+ satisfied: z.ZodBoolean;
292
+ severity: z.ZodEnum<{
293
+ critical: "critical";
294
+ low: "low";
295
+ material: "material";
296
+ }>;
297
+ }, z.core.$strict>>;
298
+ strength: z.ZodObject<{
299
+ denominator: z.ZodString;
300
+ basis: z.ZodEnum<{
301
+ measured: "measured";
302
+ reconstructed: "reconstructed";
303
+ }>;
304
+ vector: z.ZodObject<{
305
+ defect: z.ZodNullable<z.ZodObject<{
306
+ caught: z.ZodInt;
307
+ exercised: z.ZodInt;
308
+ rate: z.ZodNullable<z.ZodNumber>;
309
+ }, z.core.$strict>>;
310
+ gameability: z.ZodNullable<z.ZodObject<{
311
+ caught: z.ZodInt;
312
+ exercised: z.ZodInt;
313
+ rate: z.ZodNullable<z.ZodNumber>;
314
+ }, z.core.$strict>>;
315
+ 'zero-action': z.ZodNullable<z.ZodObject<{
316
+ caught: z.ZodInt;
317
+ exercised: z.ZodInt;
318
+ rate: z.ZodNullable<z.ZodNumber>;
319
+ }, z.core.$strict>>;
320
+ }, z.core.$strict>;
321
+ comparable: z.ZodBoolean;
322
+ note: z.ZodNullable<z.ZodString>;
323
+ }, z.core.$strict>;
324
+ remediation: z.ZodObject<{
325
+ revisionCount: z.ZodInt;
326
+ cap: z.ZodInt;
327
+ capSource: z.ZodLiteral<"caller-attested">;
328
+ lineageChain: z.ZodObject<{
329
+ lengthConsistent: z.ZodBoolean;
330
+ noRepeatedDigest: z.ZodBoolean;
331
+ noGap: z.ZodBoolean;
332
+ }, z.core.$strict>;
333
+ }, z.core.$strict>;
334
+ mode: z.ZodLiteral<"production">;
335
+ productionVerdict: z.ZodEnum<{
336
+ CONCERNS: "CONCERNS";
337
+ FAIL: "FAIL";
338
+ PASS: "PASS";
339
+ WAIVED: "WAIVED";
340
+ }>;
341
+ }, z.core.$strict>, z.ZodObject<{
342
+ schemaVersion: z.ZodInt;
343
+ parentDigest: z.ZodNullable<z.ZodString>;
344
+ revisionCount: z.ZodInt;
345
+ runId: z.ZodString;
346
+ scoringVersion: z.ZodString;
347
+ scoringVersionInputs: z.ZodObject<{
348
+ contractSchemaVersion: z.ZodInt;
349
+ corpusDigest: z.ZodString;
350
+ fixtureDigest: z.ZodString;
351
+ evaluatorConfigurationDigest: z.ZodString;
352
+ scoringPolicyDigest: z.ZodString;
353
+ }, z.core.$strict>;
354
+ comparabilityKey: z.ZodString;
355
+ excludedProbeIds: z.ZodArray<z.ZodString>;
356
+ exitCode: z.ZodInt;
357
+ verdictBasis: z.ZodArray<z.ZodString>;
358
+ callerAttestedInputs: z.ZodArray<z.ZodEnum<{
359
+ contractSchemaVersion: "contractSchemaVersion";
360
+ corpusDigest: "corpusDigest";
361
+ evaluatorConfigurationDigest: "evaluatorConfigurationDigest";
362
+ fixtureDigest: "fixtureDigest";
363
+ scoringPolicyDigest: "scoringPolicyDigest";
364
+ }>>;
365
+ trials: z.ZodObject<{
366
+ declaredMinimum: z.ZodInt;
367
+ completed: z.ZodInt;
368
+ invalidatedAttempts: z.ZodArray<z.ZodObject<{
369
+ attempt: z.ZodInt;
370
+ reason: z.ZodString;
371
+ }, z.core.$strict>>;
372
+ }, z.core.$strict>;
373
+ outcomes: z.ZodArray<z.ZodObject<{
374
+ oracleId: z.ZodString;
375
+ probeId: z.ZodNullable<z.ZodString>;
376
+ state: z.ZodEnum<{
377
+ abstained: "abstained";
378
+ bypassed: "bypassed";
379
+ caught: "caught";
380
+ confirmed: "confirmed";
381
+ "false-positive": "false-positive";
382
+ "infrastructure-error": "infrastructure-error";
383
+ "judge-error": "judge-error";
384
+ missed: "missed";
385
+ "not-applicable": "not-applicable";
386
+ "oracle-error": "oracle-error";
387
+ "passed-clean-control": "passed-clean-control";
388
+ unreached: "unreached";
389
+ }>;
390
+ severity: z.ZodEnum<{
391
+ critical: "critical";
392
+ low: "low";
393
+ material: "material";
394
+ }>;
395
+ disposition: z.ZodEnum<{
396
+ held: "held";
397
+ "not-attempted": "not-attempted";
398
+ violated: "violated";
399
+ }>;
400
+ resolvedFrom: z.ZodNullable<z.ZodString>;
401
+ corroboration: z.ZodEnum<{
402
+ agrees: "agrees";
403
+ disagrees: "disagrees";
404
+ "not-evaluable": "not-evaluable";
405
+ }>;
406
+ selectedObservationIds: z.ZodArray<z.ZodString>;
407
+ checkResolution: z.ZodNullable<z.ZodType<CheckResolutionValue, unknown, z.core.$ZodTypeInternals<CheckResolutionValue, unknown>>>;
408
+ }, z.core.$strict>>;
409
+ uncitedFindings: z.ZodArray<z.ZodString>;
410
+ coverageGaps: z.ZodArray<z.ZodObject<{
411
+ rule: z.ZodString;
412
+ relevancePredicate: z.ZodString;
413
+ satisfactionPredicate: z.ZodString;
414
+ satisfied: z.ZodBoolean;
415
+ severity: z.ZodEnum<{
416
+ critical: "critical";
417
+ low: "low";
418
+ material: "material";
419
+ }>;
420
+ }, z.core.$strict>>;
421
+ strength: z.ZodObject<{
422
+ denominator: z.ZodString;
423
+ basis: z.ZodEnum<{
424
+ measured: "measured";
425
+ reconstructed: "reconstructed";
426
+ }>;
427
+ vector: z.ZodObject<{
428
+ defect: z.ZodNullable<z.ZodObject<{
429
+ caught: z.ZodInt;
430
+ exercised: z.ZodInt;
431
+ rate: z.ZodNullable<z.ZodNumber>;
432
+ }, z.core.$strict>>;
433
+ gameability: z.ZodNullable<z.ZodObject<{
434
+ caught: z.ZodInt;
435
+ exercised: z.ZodInt;
436
+ rate: z.ZodNullable<z.ZodNumber>;
437
+ }, z.core.$strict>>;
438
+ 'zero-action': z.ZodNullable<z.ZodObject<{
439
+ caught: z.ZodInt;
440
+ exercised: z.ZodInt;
441
+ rate: z.ZodNullable<z.ZodNumber>;
442
+ }, z.core.$strict>>;
443
+ }, z.core.$strict>;
444
+ comparable: z.ZodBoolean;
445
+ note: z.ZodNullable<z.ZodString>;
446
+ }, z.core.$strict>;
447
+ remediation: z.ZodObject<{
448
+ revisionCount: z.ZodInt;
449
+ cap: z.ZodInt;
450
+ capSource: z.ZodLiteral<"caller-attested">;
451
+ lineageChain: z.ZodObject<{
452
+ lengthConsistent: z.ZodBoolean;
453
+ noRepeatedDigest: z.ZodBoolean;
454
+ noGap: z.ZodBoolean;
455
+ }, z.core.$strict>;
456
+ }, z.core.$strict>;
457
+ mode: z.ZodLiteral<"contract-scoring">;
458
+ contractVerdict: z.ZodEnum<{
459
+ CONCERNS: "CONCERNS";
460
+ FAIL: "FAIL";
461
+ PASS: "PASS";
462
+ WAIVED: "WAIVED";
463
+ }>;
464
+ systemRecommendationRecorded: z.ZodEnum<{
465
+ CONCERNS: "CONCERNS";
466
+ FAIL: "FAIL";
467
+ PASS: "PASS";
468
+ }>;
469
+ systemRecommendationNote: z.ZodNullable<z.ZodString>;
470
+ }, z.core.$strict>], "mode">;
471
+ export type EvidenceArtifact = z.infer<typeof EvidenceArtifact>;