eval-quality 1.4.0 → 1.4.1

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.
@@ -231,7 +231,7 @@ const evidenceCommonFields = {
231
231
  runId: z.string().min(1),
232
232
  scoringVersion: Digest.describe('AD-11: computed by the scorer over the six named inputs below and never caller-supplied.'),
233
233
  scoringVersionInputs: ScoringVersionInputs,
234
- comparabilityKey: Digest.describe("AD-7's declared key: the scoring policy digest plus the corpus digest restricted to the probes both results cover. Deliberately weaker than the scoring version, so adding a probe narrows a comparison rather than voiding every prior result."),
234
+ comparabilityKey: Digest.describe("AD-7's declared key, computed by `emit` over the scoring policy digest and the sorted list of admitted probe identifiers. AD-7 words it as the scoring policy digest plus the corpus digest restricted to the probes both results cover, and that identifier list is what the restriction resolves to: the corpus digest bytes are not an input, so two results over one scoring policy and one admitted set share a key whatever corpus each was attested against. Deliberately weaker than the scoring version, so adding a probe narrows a comparison rather than voiding every prior result."),
235
235
  excludedProbeIds: z
236
236
  .array(ProbeId)
237
237
  .describe('The probes a narrowed comparison excluded, per AD-7. Empty is the ordinary case.'),
@@ -56,13 +56,16 @@ export type CommandWitnessInputs = z.infer<typeof CommandWitnessInputs>;
56
56
  * interface declaring it lives in another subtree, so no discriminator is
57
57
  * available to the schema and the agreement is a compile-time check.
58
58
  *
59
- * Only the sensitivity leg takes the union. `ManifestationWitness` and
60
- * `FixtureReset` keep the transport spelling, which keeps the probe artifact
61
- * byte-identical and keeps this shape's widening inside the eval contract's own
62
- * version bump. That is truthful rather than merely convenient: both of those
63
- * legs are issued through the environment-probe port, whose `ProbeRequest`
64
- * carries a method, a path template, and the four transport channels, and
65
- * pre-flight rejects a non-api interface for exactly that reason.
59
+ * All three leg shapes take it: `SensitivityWitnessLeg.inputs`,
60
+ * `ManifestationWitness.inputs`, and `FixtureReset.inputs`. The sensitivity leg
61
+ * took it from 0.3.0 and the other two followed in 1.3.0, since the transport
62
+ * spelling left a seeded defect against a command-line system under test
63
+ * unrepresentable. The reach is the port's: all three legs are issued through
64
+ * the environment-probe port, whose `ProbeRequest` is itself a union of
65
+ * `ApiProbeRequest` and `CommandProbeRequest`, and `preflight/plan.ts` admits
66
+ * `api` and `cli`, rejecting `web` and `mcp` under `unsupported-interface-kind`.
67
+ * A leg shape narrower than the port it feeds leaves a kind the adapter can run
68
+ * with no way to declare a leg for it.
66
69
  */
67
70
  export declare const WitnessInputs: z.ZodUnion<readonly [z.ZodObject<{
68
71
  path: z.ZodType<import("./primitives.ts").JsonObject, unknown, z.core.$ZodTypeInternals<import("./primitives.ts").JsonObject, unknown>>;
@@ -55,13 +55,16 @@ export const CommandWitnessInputs = z.strictObject({
55
55
  * interface declaring it lives in another subtree, so no discriminator is
56
56
  * available to the schema and the agreement is a compile-time check.
57
57
  *
58
- * Only the sensitivity leg takes the union. `ManifestationWitness` and
59
- * `FixtureReset` keep the transport spelling, which keeps the probe artifact
60
- * byte-identical and keeps this shape's widening inside the eval contract's own
61
- * version bump. That is truthful rather than merely convenient: both of those
62
- * legs are issued through the environment-probe port, whose `ProbeRequest`
63
- * carries a method, a path template, and the four transport channels, and
64
- * pre-flight rejects a non-api interface for exactly that reason.
58
+ * All three leg shapes take it: `SensitivityWitnessLeg.inputs`,
59
+ * `ManifestationWitness.inputs`, and `FixtureReset.inputs`. The sensitivity leg
60
+ * took it from 0.3.0 and the other two followed in 1.3.0, since the transport
61
+ * spelling left a seeded defect against a command-line system under test
62
+ * unrepresentable. The reach is the port's: all three legs are issued through
63
+ * the environment-probe port, whose `ProbeRequest` is itself a union of
64
+ * `ApiProbeRequest` and `CommandProbeRequest`, and `preflight/plan.ts` admits
65
+ * `api` and `cli`, rejecting `web` and `mcp` under `unsupported-interface-kind`.
66
+ * A leg shape narrower than the port it feeds leaves a kind the adapter can run
67
+ * with no way to declare a leg for it.
65
68
  */
66
69
  export const WitnessInputs = z.union([ApiWitnessInputs, CommandWitnessInputs]);
67
70
  /**
package/dist/index.d.ts CHANGED
@@ -12,4 +12,4 @@ export type { ScoringPolicy } from './core/schemas/scoring-policy.ts';
12
12
  export type { SealedEvaluatorBrief } from './core/schemas/sealed-evaluator-brief.ts';
13
13
  export type { SealedRunRecord } from './core/schemas/sealed-run-record.ts';
14
14
  export type { FixtureReset, ManifestationWitness, SensitivityWitness, SensitivityWitnessLeg, WitnessChannel, WitnessInputs, } from './core/schemas/sensitivity-witness.ts';
15
- export declare const VERSION = "1.4.0";
15
+ export declare const VERSION = "1.4.1";
package/dist/index.js CHANGED
@@ -19,4 +19,4 @@
19
19
  // subpath, where AD-37 puts the conformance definition an adapter author
20
20
  // reads; the reference adapters stay at `eval-quality/adapters`.
21
21
  export * from './application/index.js';
22
- export const VERSION = '1.4.0';
22
+ export const VERSION = '1.4.1';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eval-quality",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Compile disciplined Behavioral Evaluation Contracts and score their ability to catch known defects.",
5
5
  "author": "Murat Ozcan",
6
6
  "license": "Apache-2.0",
@@ -86,7 +86,7 @@
86
86
  "comparabilityKey": {
87
87
  "type": "string",
88
88
  "pattern": "^sha256:[0-9a-f]{64}$",
89
- "description": "AD-7's declared key: the scoring policy digest plus the corpus digest restricted to the probes both results cover. Deliberately weaker than the scoring version, so adding a probe narrows a comparison rather than voiding every prior result."
89
+ "description": "AD-7's declared key, computed by `emit` over the scoring policy digest and the sorted list of admitted probe identifiers. AD-7 words it as the scoring policy digest plus the corpus digest restricted to the probes both results cover, and that identifier list is what the restriction resolves to: the corpus digest bytes are not an input, so two results over one scoring policy and one admitted set share a key whatever corpus each was attested against. Deliberately weaker than the scoring version, so adding a probe narrows a comparison rather than voiding every prior result."
90
90
  },
91
91
  "excludedProbeIds": {
92
92
  "type": "array",
@@ -666,7 +666,7 @@
666
666
  "comparabilityKey": {
667
667
  "type": "string",
668
668
  "pattern": "^sha256:[0-9a-f]{64}$",
669
- "description": "AD-7's declared key: the scoring policy digest plus the corpus digest restricted to the probes both results cover. Deliberately weaker than the scoring version, so adding a probe narrows a comparison rather than voiding every prior result."
669
+ "description": "AD-7's declared key, computed by `emit` over the scoring policy digest and the sorted list of admitted probe identifiers. AD-7 words it as the scoring policy digest plus the corpus digest restricted to the probes both results cover, and that identifier list is what the restriction resolves to: the corpus digest bytes are not an input, so two results over one scoring policy and one admitted set share a key whatever corpus each was attested against. Deliberately weaker than the scoring version, so adding a probe narrows a comparison rather than voiding every prior result."
670
670
  },
671
671
  "excludedProbeIds": {
672
672
  "type": "array",