vigiles 27.0.0 → 27.1.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.
|
@@ -160,6 +160,19 @@ export interface RunScriptsEnv {
|
|
|
160
160
|
readonly all: boolean;
|
|
161
161
|
/** `--yes` / `--no-interactive` — agent/CI mode: never prompt. */
|
|
162
162
|
readonly yes: boolean;
|
|
163
|
+
/**
|
|
164
|
+
* `--check` — VERIFY committed eval locks rather than measure. `decideLock`
|
|
165
|
+
* in check mode returns only `replay` (the recorded report, no model call) or
|
|
166
|
+
* `stale` (a failure), NEVER `run` — so this path cannot spend quota, and the
|
|
167
|
+
* quota consent below must not stand in its way.
|
|
168
|
+
*
|
|
169
|
+
* Measured 2026-09-09: the CI `eval-check` step had never once executed. With
|
|
170
|
+
* no lock committed anywhere, `eval --check` short-circuited on
|
|
171
|
+
* `anyLocksCommitted` and returned "skip"; the first repo to commit a lock got
|
|
172
|
+
* past that early return, reached this gate, and was refused exit 2. A gate
|
|
173
|
+
* that is green because it never runs is the failure this repo keeps naming.
|
|
174
|
+
*/
|
|
175
|
+
readonly lockCheck: boolean;
|
|
163
176
|
}
|
|
164
177
|
/**
|
|
165
178
|
* Consent gate for a bare (no-target) `vigiles eval`. `eval` runs the REAL model
|
|
@@ -346,6 +346,9 @@ function decideRunScripts(o) {
|
|
|
346
346
|
return { kind: "run" };
|
|
347
347
|
if (o.all || o.yes)
|
|
348
348
|
return { kind: "run" };
|
|
349
|
+
// Verifying a lock is not spending quota — see `lockCheck`.
|
|
350
|
+
if (o.lockCheck)
|
|
351
|
+
return { kind: "run" };
|
|
349
352
|
// A bounded no-target run (0 = no-op, 1 = a single obviously-intended eval) is
|
|
350
353
|
// not the footgun; the footgun is fanning out over the whole tree.
|
|
351
354
|
if (o.matchedCount <= 1)
|
package/dist/cli-main.js
CHANGED
|
@@ -4907,6 +4907,7 @@ async function handleRunScripts(kind, args, restArgs, excludes) {
|
|
|
4907
4907
|
isTTY: (process.stdin.isTTY ?? false) && (process.stdout.isTTY ?? false),
|
|
4908
4908
|
all: args.includes("--all"),
|
|
4909
4909
|
yes: args.includes("--yes") || args.includes("--no-interactive"),
|
|
4910
|
+
lockCheck: args.includes("--check"),
|
|
4910
4911
|
});
|
|
4911
4912
|
if (runDecision.kind === "refuse") {
|
|
4912
4913
|
console.error(`✗ vigiles eval: ${String(runDecision.count)} eval file(s) matched the whole tree, and each ` +
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vigiles",
|
|
3
|
-
"version": "27.
|
|
3
|
+
"version": "27.1.0",
|
|
4
4
|
"description": "Audit, test and measure the harness your AI agent runs on — grade your CLAUDE.md / AGENTS.md, skills, subagents and hooks, run them against a scripted model, and measure whether they actually fire.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|