@rulvar/cli 1.225.0 → 1.227.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-Cc-obcZx.js";
2
+ import { r as runCli, t as processIo } from "./io-BhEqrNZg.js";
3
3
  import { sanitizeTerminalText } from "@rulvar/core";
4
4
  import { inspect } from "node:util";
5
5
  //#region src/cli.ts
package/dist/index.d.ts CHANGED
@@ -245,12 +245,16 @@ declare function reportOutcome(outcome: RunOutcome<unknown>, io: CliIo): number;
245
245
  * semantic green while the claim judge saw 40 of 144 citing sentences.
246
246
  * So strict also reads the claim-coverage grade (RV1702) when the
247
247
  * outcome carries a claim-consistency meta: `'judge-failed'` (nothing
248
- * was judged) and `'critical-uncovered'` (declared claims went
249
- * unverified) exit nonzero, because both previously slipped through
250
- * strict as green; `'partial'` prints its counts to stderr and keeps
251
- * the exit, because the bounded pass is the documented default and
252
- * declaring critical anchors is the opt-in that makes the subset
253
- * enforceable.
248
+ * was judged), `'judge-declined'` (RV2508: the judge was refused
249
+ * admission and never dispatched, so nothing was judged either) and
250
+ * `'critical-uncovered'` (declared claims went unverified) exit
251
+ * nonzero, because all three previously slipped through strict as
252
+ * green; `'partial'` prints its counts to stderr and keeps the exit,
253
+ * because the bounded pass is the documented default and declaring
254
+ * critical anchors is the opt-in that makes the subset enforceable,
255
+ * and `'vacuous'` (RV2508: the draft cited nothing, so the configured
256
+ * pass verified nothing) prints and keeps the exit too, because
257
+ * citing nothing breaks no contract the pass declares.
254
258
  */
255
259
  declare function strictExitCode(outcome: RunOutcome<unknown>, base: number, io: CliIo): number;
256
260
  //#endregion
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-Cc-obcZx.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-BhEqrNZg.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
  /**
@@ -388,8 +388,10 @@ function reportOutcome(outcome, io) {
388
388
  /** The closed grade vocabulary strict accepts from a persisted meta. */
389
389
  const COVERAGE_GRADES = [
390
390
  "full",
391
+ "vacuous",
391
392
  "partial",
392
393
  "critical-uncovered",
394
+ "judge-declined",
393
395
  "judge-failed"
394
396
  ];
395
397
  /**
@@ -412,7 +414,8 @@ function coverageGradeOf(value) {
412
414
  coveredCitingSentences: record.coveredCitingSentences,
413
415
  ...typeof record.criticalUncoveredTotal === "number" ? { criticalUncoveredTotal: record.criticalUncoveredTotal } : {},
414
416
  ...record.runFactPairsTruncated === true ? { runFactPairsTruncated: true } : {},
415
- ...record.judgeFailed === true ? { judgeFailed: true } : {}
417
+ ...record.judgeFailed === true ? { judgeFailed: true } : {},
418
+ ...record.judgeDeclined === true ? { judgeDeclined: true } : {}
416
419
  });
417
420
  }
418
421
  /**
@@ -429,12 +432,16 @@ function coverageGradeOf(value) {
429
432
  * semantic green while the claim judge saw 40 of 144 citing sentences.
430
433
  * So strict also reads the claim-coverage grade (RV1702) when the
431
434
  * outcome carries a claim-consistency meta: `'judge-failed'` (nothing
432
- * was judged) and `'critical-uncovered'` (declared claims went
433
- * unverified) exit nonzero, because both previously slipped through
434
- * strict as green; `'partial'` prints its counts to stderr and keeps
435
- * the exit, because the bounded pass is the documented default and
436
- * declaring critical anchors is the opt-in that makes the subset
437
- * enforceable.
435
+ * was judged), `'judge-declined'` (RV2508: the judge was refused
436
+ * admission and never dispatched, so nothing was judged either) and
437
+ * `'critical-uncovered'` (declared claims went unverified) exit
438
+ * nonzero, because all three previously slipped through strict as
439
+ * green; `'partial'` prints its counts to stderr and keeps the exit,
440
+ * because the bounded pass is the documented default and declaring
441
+ * critical anchors is the opt-in that makes the subset enforceable,
442
+ * and `'vacuous'` (RV2508: the draft cited nothing, so the configured
443
+ * pass verified nothing) prints and keeps the exit too, because
444
+ * citing nothing breaks no contract the pass declares.
438
445
  */
439
446
  function strictExitCode(outcome, base, io) {
440
447
  if (base !== 0 || outcome.status !== "ok") return base;
@@ -447,8 +454,8 @@ function strictExitCode(outcome, base, io) {
447
454
  return 1;
448
455
  }
449
456
  const grade = coverageGradeOf(value);
450
- if (grade === "judge-failed" || grade === "critical-uncovered") {
451
- io.err(`strict: claim coverage '${grade}': ` + (grade === "judge-failed" ? "the claim-consistency judge did not settle ok, so nothing was judged" : "declared critical anchors got no judged pair"));
457
+ if (grade === "judge-failed" || grade === "judge-declined" || grade === "critical-uncovered") {
458
+ io.err(`strict: claim coverage '${grade}': ` + (grade === "judge-failed" ? "the claim-consistency judge did not settle ok, so nothing was judged" : grade === "judge-declined" ? "the claim-consistency judge was refused admission and never dispatched, so nothing was judged" : "declared critical anchors got no judged pair"));
452
459
  return 1;
453
460
  }
454
461
  const low = lowCoverageOf(value);
@@ -457,6 +464,7 @@ function strictExitCode(outcome, base, io) {
457
464
  return 1;
458
465
  }
459
466
  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");
467
+ if (grade === "vacuous") io.err("strict: claim coverage 'vacuous': the draft carried no citing sentence, so the configured claim-consistency pass verified nothing");
460
468
  return base;
461
469
  }
462
470
  /** The stamped below-floor block of an outcome's claim meta, when present (RV1809). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulvar/cli",
3
- "version": "1.225.0",
3
+ "version": "1.227.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.225.0"
25
+ "@rulvar/core": "1.227.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/store-sqlite": "1.225.0",
32
- "@rulvar/testing": "1.225.0",
33
- "@rulvar/planner": "1.225.0",
34
- "@rulvar/plan": "1.225.0",
35
- "@rulvar/evals": "1.225.0"
31
+ "@rulvar/testing": "1.227.0",
32
+ "@rulvar/store-sqlite": "1.227.0",
33
+ "@rulvar/planner": "1.227.0",
34
+ "@rulvar/plan": "1.227.0",
35
+ "@rulvar/evals": "1.227.0"
36
36
  },
37
37
  "bin": {
38
38
  "rulvar": "./dist/cli.js"