@rulvar/cli 1.235.0 → 1.236.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/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { r as runCli, t as processIo } from "./io-4IaL5lyp.js";
2
+ import { r as runCli, t as processIo } from "./io-MXclAAIv.js";
3
3
  import { sanitizeTerminalText } from "@rulvar/core";
4
4
  import { inspect } from "node:util";
5
5
  //#region src/cli.ts
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as assembleEngine, a as inspectCommand, b as looksLikeFile, c as resumeCommand, d as driveRun, f as reportOutcome, g as DEFAULT_STORE_DIR, h as renderEventLine, i as costAuditCommand, l as runCommand, m as attachProgress, n as HELP, o as invoiceCommand, p as strictExitCode, r as runCli, s as preflightCommand, t as processIo, u as runsLsCommand, v as loadCliConfig, y as loadWorkflowModule } from "./io-4IaL5lyp.js";
1
+ import { _ as assembleEngine, a as inspectCommand, b as looksLikeFile, c as resumeCommand, d as driveRun, f as reportOutcome, g as DEFAULT_STORE_DIR, h as renderEventLine, i as costAuditCommand, l as runCommand, m as attachProgress, n as HELP, o as invoiceCommand, p as strictExitCode, r as runCli, s as preflightCommand, t as processIo, u as runsLsCommand, v as loadCliConfig, y as loadWorkflowModule } from "./io-MXclAAIv.js";
2
2
  import { ConfigError, JournalCompatibilityError, LeaseHeldError, Replayer, RulvarError, buildDeriverRegistry, compileSecretMasker, costReportFromJournal, journalPricingSnapshot, maskSecrets, normalizeEntry, persistedTerminalEnvelope, readRunMeta, scanJournalCompatibility, validateDetachedResolution } from "@rulvar/core";
3
3
  //#region src/server.ts
4
4
  /**
@@ -512,10 +512,28 @@ function strictExitCode(outcome, base, io) {
512
512
  io.err("strict: claim coverage below the declared floor" + (typeof low.coverageRatio === "number" ? `: coverage ${low.coverageRatio.toFixed(3)}` + (typeof low.coverageFloor === "number" ? ` under floor ${String(low.coverageFloor)}` : "") : "") + (typeof low.runFactRatio === "number" ? `; run facts ${low.runFactRatio.toFixed(3)}` + (typeof low.runFactFloor === "number" ? ` under floor ${String(low.runFactFloor)}` : "") : ""));
513
513
  return 1;
514
514
  }
515
+ if (draftRewrittenUnjudged(value)) {
516
+ io.err("strict: the claim-coverage verdict was rendered over judgedStage 'draft', and draftToFinal.rewritten reports the synthesis rewrote that draft: nothing semantically judged the artifact this run settled on. Configure claimConsistency.stage 'final' (or 'both') to grade the shipped document");
517
+ return 1;
518
+ }
515
519
  if (grade === "partial") io.err("strict: claim coverage 'partial': the judge saw a bounded subset of the citing sentences; declare critical anchors (or raise the pair bound) to make the subset enforceable");
516
520
  if (grade === "vacuous") io.err("strict: claim coverage 'vacuous': the draft carried no citing sentence, so the configured claim-consistency pass verified nothing");
517
521
  return base;
518
522
  }
523
+ /**
524
+ * True exactly when the semantic verdict describes a draft the
525
+ * synthesis then replaced (RV3207): `claimConsistencyMeta.judgedStage`
526
+ * is 'draft' AND `draftToFinal.rewritten` is true. Either field absent
527
+ * answers false: no meta means nothing judged anything, no bridge
528
+ * means no synthesis was configured, and both are honest non-failures.
529
+ */
530
+ function draftRewrittenUnjudged(value) {
531
+ if (typeof value !== "object" || value === null) return false;
532
+ const meta = value.claimConsistencyMeta;
533
+ const bridge = value.draftToFinal;
534
+ if (typeof meta !== "object" || meta === null || typeof bridge !== "object" || bridge === null) return false;
535
+ return meta.judgedStage === "draft" && bridge.rewritten === true;
536
+ }
519
537
  /** The stamped below-floor block of an outcome's claim meta, when present (RV1809). */
520
538
  function lowCoverageOf(value) {
521
539
  if (typeof value !== "object" || value === null) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulvar/cli",
3
- "version": "1.235.0",
3
+ "version": "1.236.0",
4
4
  "description": "Rulvar shell: run/resume/runs/inspect/plan/kb commands, TUI progress, createServer, createWorker, OTel exporter.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -22,17 +22,17 @@
22
22
  "access": "public"
23
23
  },
24
24
  "dependencies": {
25
- "@rulvar/core": "1.235.0"
25
+ "@rulvar/core": "1.236.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.20.1",
29
29
  "tsdown": "^0.22.14",
30
30
  "typescript": "~6.0.3",
31
- "@rulvar/planner": "1.235.0",
32
- "@rulvar/store-sqlite": "1.235.0",
33
- "@rulvar/plan": "1.235.0",
34
- "@rulvar/testing": "1.235.0",
35
- "@rulvar/evals": "1.235.0"
31
+ "@rulvar/testing": "1.236.0",
32
+ "@rulvar/planner": "1.236.0",
33
+ "@rulvar/store-sqlite": "1.236.0",
34
+ "@rulvar/plan": "1.236.0",
35
+ "@rulvar/evals": "1.236.0"
36
36
  },
37
37
  "bin": {
38
38
  "rulvar": "./dist/cli.js"