@rulvar/evals 1.241.0 → 1.242.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 (2) hide show
  1. package/dist/index.js +44 -0
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -3774,6 +3774,50 @@ const SCENARIOS = [
3774
3774
  };
3775
3775
  }
3776
3776
  },
3777
+ {
3778
+ name: "repair-round-verdict-reserve",
3779
+ doctrine: "the repair round pays for its verdict up front (RV3701): the money of the round second judge pass (the declared judge estCost first, else the run own observed post draft judge price) is held from the moment the round is admitted, a round the budget can only start refuses through the honest pre dispatch class before any of its wires with the held convergence reserve named in the refusal arithmetic, and exactly one composition is ever paid for",
3780
+ async run() {
3781
+ const { engine, store } = tailEngine(tailAdapter({
3782
+ judge: () => TAIL_FINDS,
3783
+ finals: [TAIL_FINAL_INVERTED]
3784
+ }));
3785
+ const outcome = await engine.run(makeOrchestratorWorkflow("audit the executor", {
3786
+ ...TAIL_OPTS,
3787
+ synthesis: {
3788
+ limits: { maxTurns: 3 },
3789
+ estCost: .2
3790
+ },
3791
+ budget: {
3792
+ capUsd: .3,
3793
+ capFraction: 1
3794
+ },
3795
+ claimConsistency: {
3796
+ stage: "final",
3797
+ onFound: "repair",
3798
+ judge: { estCost: .2 }
3799
+ }
3800
+ }), void 0, {
3801
+ runId: "fault-repair-verdict-reserve",
3802
+ budgetUsd: 10
3803
+ }).result;
3804
+ const data = outcome.error?.data ?? {};
3805
+ const entries = await store.load("fault-repair-verdict-reserve");
3806
+ const { compositions, judges } = tailSpans(entries);
3807
+ const message = outcome.error?.message ?? "";
3808
+ const holdNamed = message.includes("held convergence reserve 0.2000");
3809
+ return {
3810
+ observation: {
3811
+ matched: outcome.status === "error" && message.includes("could not dispatch") && holdNamed && data.source === "orchestrator_claim_consistency" && data.roundDispatched === false && data.repairsUsed === 0 && data.claimConsistencyMeta?.findings === 1 && compositions.length === 1 && judges.length === 1,
3812
+ detail: `run '${outcome.status}': roundDispatched=${String(data.roundDispatched)}, repairsUsed=${String(data.repairsUsed)}, held convergence reserve named=${String(holdNamed)}; ${String(compositions.length)} composition(s) paid, ${String(judges.length)} final judge pass(es)`
3813
+ },
3814
+ artifacts: [jsonArtifact("outcome.json", {
3815
+ status: outcome.status,
3816
+ error: outcome.error ?? null
3817
+ }), jsonArtifact("journal.json", entries)]
3818
+ };
3819
+ }
3820
+ },
3777
3821
  {
3778
3822
  name: "claim-judge-dead-armed-refusal",
3779
3823
  doctrine: "a final stage judge that dies on the wire under an armed posture fails the run typed for both 'fail' and 'repair' (RV3307), each message naming its armed posture, with exactly one composition paid and no repair round dispatched, never a silent settle over findings nobody ruled on",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulvar/evals",
3
- "version": "1.241.0",
3
+ "version": "1.242.0",
4
4
  "description": "Rulvar evals: eval cases, golden outputs, rubric and judge graders, matrix sweeps, canary fingerprint.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -22,11 +22,11 @@
22
22
  "access": "public"
23
23
  },
24
24
  "dependencies": {
25
- "@rulvar/anthropic": "1.241.0",
26
- "@rulvar/plan": "1.241.0",
27
- "@rulvar/core": "1.241.0",
28
- "@rulvar/testing": "1.241.0",
29
- "@rulvar/openai": "1.241.0"
25
+ "@rulvar/anthropic": "1.242.0",
26
+ "@rulvar/core": "1.242.0",
27
+ "@rulvar/openai": "1.242.0",
28
+ "@rulvar/plan": "1.242.0",
29
+ "@rulvar/testing": "1.242.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^22.20.1",