@rulvar/cli 1.16.1 → 1.17.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,6 @@
1
1
  #!/usr/bin/env node
2
- import { r as runCli, t as processIo } from "./io-Bex4Du1t.js";
2
+ import { r as runCli, t as processIo } from "./io-Dp2LeOi7.js";
3
+ import { inspect } from "node:util";
3
4
  //#region src/cli.ts
4
5
  /**
5
6
  * The `rulvar` bin entry: thin wrapper over runCli with process io.
@@ -10,7 +11,7 @@ runCli(process.argv.slice(2), {
10
11
  }).then((code) => {
11
12
  process.exitCode = code;
12
13
  }, (thrown) => {
13
- process.stderr.write(`${thrown instanceof Error ? thrown.stack : String(thrown)}\n`);
14
+ process.stderr.write(`${inspect(thrown)}\n`);
14
15
  process.exitCode = 1;
15
16
  });
16
17
  //#endregion
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ interface CliIo {
16
16
  declare function processIo(): CliIo;
17
17
  //#endregion
18
18
  //#region src/cli-main.d.ts
19
- declare const HELP = "rulvar: durable multi-agent workflows (https://docs.rulvar.com)\n\n rulvar run <file|name> [--args JSON] [--store PATH] [--budget-usd N]\n rulvar resume <runId> [--store PATH]\n rulvar runs ls [--store PATH]\n rulvar inspect <runId> [--store PATH]\n rulvar plan \"<goal>\" [--dry-run]\n rulvar kb <list | inbox | gate | sweep>\n\nEngine assembly: adapters, defaults, and the workflow registry come from\nrulvar.config.mjs in the working directory (default export\n{ engineOptions?, workflows? }) or from the workflow module's named\nexports. --store selects the JsonlFileStore directory (default .rulvar).\nplan asks the planner model (role plan) to write a workflow script,\nlints and self-repairs it, then runs it in the worker sandbox; --dry-run\nprints the accepted script without running. Requires @rulvar/planner\ninstalled. kb list shows the per-project claim store\n(./rulvar.models.json) with full provenance. kb sweep runs the\nfalsification matrix from the kbSweep section of rulvar.config.mjs\n(fixed pool UNIONED with every model carrying an active negative claim\nplus the re-measure queue; optional canary probes flip drifted claims\nstale first; requires @rulvar/evals installed). kb inbox aggregates\nkb_propose proposals from finished runs (14 day TTL); kb gate turns one\ninbox proposal into a committed claim behind a human attestation\n(--approver and --ruled-out are mandatory). inbox and gate require\n@rulvar/plan installed.";
19
+ declare const HELP: string;
20
20
  declare function runCli(argv: string[], options: {
21
21
  cwd: string;
22
22
  io: CliIo;
@@ -76,6 +76,30 @@ interface KbSweepCliConfig {
76
76
  model: `${string}:${string}`;
77
77
  effort?: string;
78
78
  }) => unknown;
79
+ /**
80
+ * Immutable per-run ceilings and the aggregate debit-only envelope
81
+ * (v1.16.2 review P1-2). A sweep multiplies paid runs: pool members
82
+ * times cases for targets, one judge run per judge-grader call, one
83
+ * canary run per probe per member, and the falsification union can
84
+ * grow the pool past the configured models. Per-run ceilings alone do
85
+ * not bound that product, so maxTotalUsd is the hard aggregate ceiling
86
+ * every target, judge, and canary run authorizes against BEFORE it
87
+ * starts. Required unless allowUnbounded is set: a sweep is never
88
+ * silently unbounded.
89
+ */
90
+ budgets?: {
91
+ /** Immutable ceiling B0 of every eval target run. */targetUsd: number; /** Immutable ceiling of every judge run. */
92
+ judgeUsd: number; /** Immutable ceiling of every canary probe run. */
93
+ canaryUsd: number; /** The debit-only envelope over the WHOLE sweep (targets, judges, canary). */
94
+ maxTotalUsd: number;
95
+ };
96
+ /**
97
+ * Explicitly waive the ceilings and run every target, judge, and
98
+ * canary run unbounded (the pre-v1.16.2 behavior). A sweep with
99
+ * neither budgets nor this flag set fails loudly: an unbounded paid
100
+ * matrix is never the silent default.
101
+ */
102
+ allowUnbounded?: boolean;
79
103
  }
80
104
  /** Loads `rulvar.config.mjs`/`.js` from cwd; absent config is fine. */
81
105
  declare function loadCliConfig(cwd: string): Promise<CliConfig>;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as resumeCommand, c as driveRun, d as renderEventLine, f as DEFAULT_STORE_DIR, g as looksLikeFile, h as loadWorkflowModule, i as inspectCommand, l as reportOutcome, m as loadCliConfig, n as HELP, o as runCommand, p as assembleEngine, r as runCli, s as runsLsCommand, t as processIo, u as attachProgress } from "./io-Bex4Du1t.js";
1
+ import { a as resumeCommand, c as driveRun, d as renderEventLine, f as DEFAULT_STORE_DIR, g as looksLikeFile, h as loadWorkflowModule, i as inspectCommand, l as reportOutcome, m as loadCliConfig, n as HELP, o as runCommand, p as assembleEngine, r as runCli, s as runsLsCommand, t as processIo, u as attachProgress } from "./io-Dp2LeOi7.js";
2
2
  import { ConfigError, InvalidResolutionError, JournalCompatibilityError, LeaseHeldError, Replayer, RulvarError, buildDeriverRegistry, costReportFromJournal, maskSecrets, normalizeEntry, scanJournalCompatibility, validateSchemaSpec } from "@rulvar/core";
3
3
  //#region src/server.ts
4
4
  /**