@vibe-agent-toolkit/cli 0.2.0-rc.8 → 0.2.0-rc.9

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 (114) hide show
  1. package/dist/commands/audit/provenance.d.ts.map +1 -1
  2. package/dist/commands/audit/provenance.js +4 -3
  3. package/dist/commands/audit/provenance.js.map +1 -1
  4. package/dist/commands/build.d.ts.map +1 -1
  5. package/dist/commands/build.js +2 -1
  6. package/dist/commands/build.js.map +1 -1
  7. package/dist/commands/cache/clear.d.ts +17 -3
  8. package/dist/commands/cache/clear.d.ts.map +1 -1
  9. package/dist/commands/cache/clear.js +17 -3
  10. package/dist/commands/cache/clear.js.map +1 -1
  11. package/dist/commands/cache/index.d.ts.map +1 -1
  12. package/dist/commands/cache/index.js +19 -10
  13. package/dist/commands/cache/index.js.map +1 -1
  14. package/dist/commands/claude/context.d.ts +2 -2
  15. package/dist/commands/claude/context.js +4 -4
  16. package/dist/commands/claude/context.js.map +1 -1
  17. package/dist/commands/claude/index.d.ts +12 -11
  18. package/dist/commands/claude/index.d.ts.map +1 -1
  19. package/dist/commands/claude/index.js +14 -16
  20. package/dist/commands/claude/index.js.map +1 -1
  21. package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
  22. package/dist/commands/claude/marketplace/git-publish.js +19 -10
  23. package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
  24. package/dist/commands/claude/marketplace/validate.js +2 -2
  25. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  26. package/dist/commands/claude/org/skills.js +8 -8
  27. package/dist/commands/claude/org/skills.js.map +1 -1
  28. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  29. package/dist/commands/claude/plugin/build.js +11 -21
  30. package/dist/commands/claude/plugin/build.js.map +1 -1
  31. package/dist/commands/claude/plugin/plugin-files.js +3 -3
  32. package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
  33. package/dist/commands/consistency-check.d.ts +11 -5
  34. package/dist/commands/consistency-check.d.ts.map +1 -1
  35. package/dist/commands/consistency-check.js +113 -78
  36. package/dist/commands/consistency-check.js.map +1 -1
  37. package/dist/commands/resources/check-progress.d.ts +6 -0
  38. package/dist/commands/resources/check-progress.d.ts.map +1 -1
  39. package/dist/commands/resources/check-progress.js +10 -2
  40. package/dist/commands/resources/check-progress.js.map +1 -1
  41. package/dist/commands/resources/check.d.ts +182 -203
  42. package/dist/commands/resources/check.d.ts.map +1 -1
  43. package/dist/commands/resources/check.js +272 -248
  44. package/dist/commands/resources/check.js.map +1 -1
  45. package/dist/commands/resources/index.d.ts.map +1 -1
  46. package/dist/commands/resources/index.js +140 -23
  47. package/dist/commands/resources/index.js.map +1 -1
  48. package/dist/commands/resources/query.d.ts +2 -2
  49. package/dist/commands/resources/query.d.ts.map +1 -1
  50. package/dist/commands/resources/query.js +20 -10
  51. package/dist/commands/resources/query.js.map +1 -1
  52. package/dist/commands/skill/test/run.js +3 -3
  53. package/dist/commands/skill/test/run.js.map +1 -1
  54. package/dist/commands/skills/build.d.ts +34 -21
  55. package/dist/commands/skills/build.d.ts.map +1 -1
  56. package/dist/commands/skills/build.js +99 -50
  57. package/dist/commands/skills/build.js.map +1 -1
  58. package/dist/commands/skills/skill-discovery.d.ts +15 -13
  59. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  60. package/dist/commands/skills/skill-discovery.js +23 -4
  61. package/dist/commands/skills/skill-discovery.js.map +1 -1
  62. package/dist/commands/validate.d.ts.map +1 -1
  63. package/dist/commands/validate.js +31 -8
  64. package/dist/commands/validate.js.map +1 -1
  65. package/dist/commands/verify.d.ts +10 -4
  66. package/dist/commands/verify.d.ts.map +1 -1
  67. package/dist/commands/verify.js +92 -65
  68. package/dist/commands/verify.js.map +1 -1
  69. package/dist/report-schemas.d.ts.map +1 -1
  70. package/dist/report-schemas.js +0 -2
  71. package/dist/report-schemas.js.map +1 -1
  72. package/dist/skill-resolution/classify.js +2 -2
  73. package/dist/skill-resolution/classify.js.map +1 -1
  74. package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
  75. package/dist/skill-resolution/resolve-skill-reference.js +48 -52
  76. package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
  77. package/dist/utils/claude-context-lens.d.ts +34 -0
  78. package/dist/utils/claude-context-lens.d.ts.map +1 -0
  79. package/dist/utils/claude-context-lens.js +39 -0
  80. package/dist/utils/claude-context-lens.js.map +1 -0
  81. package/dist/utils/projection-lenses.d.ts +98 -0
  82. package/dist/utils/projection-lenses.d.ts.map +1 -0
  83. package/dist/utils/projection-lenses.js +203 -0
  84. package/dist/utils/projection-lenses.js.map +1 -0
  85. package/dist/utils/projection-query.d.ts +38 -14
  86. package/dist/utils/projection-query.d.ts.map +1 -1
  87. package/dist/utils/projection-query.js +78 -17
  88. package/dist/utils/projection-query.js.map +1 -1
  89. package/dist/utils/projection-store.d.ts +61 -42
  90. package/dist/utils/projection-store.d.ts.map +1 -1
  91. package/dist/utils/projection-store.js +155 -59
  92. package/dist/utils/projection-store.js.map +1 -1
  93. package/dist/utils/relation-limits.d.ts +50 -0
  94. package/dist/utils/relation-limits.d.ts.map +1 -0
  95. package/dist/utils/relation-limits.js +50 -0
  96. package/dist/utils/relation-limits.js.map +1 -0
  97. package/dist/utils/skill-discovery.d.ts.map +1 -1
  98. package/dist/utils/skill-discovery.js +2 -1
  99. package/dist/utils/skill-discovery.js.map +1 -1
  100. package/dist/utils/skill-packaging-config.d.ts +38 -3
  101. package/dist/utils/skill-packaging-config.d.ts.map +1 -1
  102. package/dist/utils/skill-packaging-config.js +28 -3
  103. package/dist/utils/skill-packaging-config.js.map +1 -1
  104. package/package.json +16 -16
  105. package/schemas/resources-check.json +43 -0
  106. package/dist/commands/claude/budget.d.ts +0 -269
  107. package/dist/commands/claude/budget.d.ts.map +0 -1
  108. package/dist/commands/claude/budget.js +0 -507
  109. package/dist/commands/claude/budget.js.map +0 -1
  110. package/dist/utils/context-budget-issues.d.ts +0 -108
  111. package/dist/utils/context-budget-issues.d.ts.map +0 -1
  112. package/dist/utils/context-budget-issues.js +0 -280
  113. package/dist/utils/context-budget-issues.js.map +0 -1
  114. package/schemas/claude-budget.json +0 -197
@@ -1,167 +1,34 @@
1
1
  /**
2
- * `vat resources check` — run the project's own SQL assertions over its
3
- * resource projection.
4
- *
5
- * ## Why this verb exists when `vat resources query` already runs SQL
6
- *
7
- * A query answers a question once. A question worth asking twice is a rule, and
8
- * a rule that lives in someone's shell history is not enforced — it decays into
9
- * a comment. This verb runs the statements a project wrote into
10
- * `resources.checks`, turns each violating row into an ordinary validation
11
- * finding, and exits non-zero when any of them is an error. That is the whole
12
- * difference, and it is the difference between a tool and a gate.
13
- *
14
- * ## 🔑 A broken check is an ERROR, never a skip
15
- *
16
- * VAT ships no schema version, so a renamed column simply breaks a check's SQL.
17
- * The tempting handling — log it and carry on — is the one thing this must never
18
- * do: a check that stopped running looks exactly like a check that passed, and
19
- * the project keeps reporting green over an assertion nobody is making any more.
20
- * So a statement that will not run is reported as a finding at **error**
21
- * severity, with the columns the projection actually has, and it fails the run.
22
- *
23
- * That report carries its OWN code (`RESOURCE_CHECK_BROKEN`), which no
24
- * `validation.severity` entry can reach. A check's severity override is about how
25
- * bad a VIOLATION is; while the two shared the code `CUSTOM:<name>`, the
26
- * documented way to stand down an inherited check also silenced the news that it
27
- * had stopped checking. See the `catch` in `runChecks`.
28
- *
29
- * ## 🔑 An empty CORPUS is a refusal too, not a pass
30
- *
31
- * The same class one level further out, and the one that shipped. `checksRun` is
32
- * the denominator of RULES; nothing counted the ROWS, so a repository whose
33
- * enumeration came back empty — a broad `.gitignore`, a shallow or sparse CI
34
- * checkout, a root that resolved somewhere else — ran every declared check over
35
- * nothing and reported `status: success` on exit 0 with empty stderr. Population
36
- * declines ignored members rather than flagging them, so the tables held no
37
- * trace of it either.
38
- *
39
- * So the population's size is published (`membersEnumerated`), and a run whose
40
- * checks executed over zero members is an ERROR under the same non-overridable
41
- * code as a broken statement — see {@link emptyCorpusFinding}. A gate that
42
- * asserts nothing over nothing has not passed.
43
- *
44
- * ## 🔑 An unknown `--check` name is a refusal, not an empty pass
45
- *
46
- * The same failure class one flag over: a filter that matched nothing ran nothing
47
- * and exited 0. `requireDeclaredCheck` refuses it before the crawl, naming the
48
- * declared set. A gate that cannot fail is worse than no gate.
49
- *
50
- * ## 🔑 NO checks at all is the same refusal, and the one that shipped longest
51
- *
52
- * A project with a valid config and no `checks:` block reported `status:
53
- * success`, `checksRun: 0`, exit 0 — so DELETING the `checks:` block silently
54
- * deleted the gate and nothing anywhere said so. A gate that checked nothing is
55
- * indistinguishable from a gate that was removed, and the entire argument for
56
- * having these gates is that you never let those two look alike. It is now a
57
- * `RESOURCE_CHECK_BROKEN` error like the other three — see
58
- * {@link noCheckRanFinding}, and `RUN_INTEGRITY_CODE` for why one code
59
- * covers all four. Declaring no checks is a legitimate CHOICE; running a gate
60
- * that can only pass is not, so the remedy is to take the command out of the
61
- * pipeline.
62
- *
63
- * ## 🔑 SQL is the surface a user OPTED IN to, so no BUILT-IN check may be SQL
64
- *
65
- * Every check this verb runs is adopter-declared: {@link checkCommand} reads
66
- * `config?.resources?.checks` and nothing else, and warns loudly when a project
67
- * declares none. There are no built-ins, and the one way to end that quietly is
68
- * to author the first one as SQL. A default-on rule written as a statement makes
69
- * the engine, the projection and the population mandatory for everyone who
70
- * inherits it, without anybody deciding that. So: **built-ins are TypeScript
71
- * predicates over the projection's row model.** SQL stays the two places a user
72
- * asked for it — this verb's declared checks, and `vat resources query`.
73
- *
74
- * ⚠️ The engine today is `node:sqlite`, built into Node, so the thing at stake is
75
- * not an install — it is the POPULATION. On an ~11,700-member adopter tree
76
- * building the projection is **>99.9%** of a check run (16.5 s cold, ~1.3 s from
77
- * the store) against **0.0008–0.004 s** for the statements themselves; see
78
- * `vat-knowledge-resources.md`, which carries that measurement. That is exactly
79
- * the cost "What this does NOT do" below refuses to put on every adopter's
80
- * pre-commit path, and a default-on SQL check would put it there without the
81
- * decision. The INSTALL cost is deferred rather than gone: the open question
82
- * about a columnar engine is a 108 MB platform binding on a published toolkit,
83
- * and this invariant is what keeps that question still answerable either way.
84
- *
85
- * ## 🔑 The DEFAULT check set belongs to the pipeline, not to the config file
86
- *
87
- * A directory with no `vibe-agent-toolkit.config.yaml` must run exactly the same
88
- * default-on checks as one with a config; config only ADDS to that set or
89
- * OVERRIDES a severity in it. This is load-bearing rather than a convenience:
90
- * *"'default-on error' is meaningless as a category if being default-on requires
91
- * a config file to say so."*
92
- *
93
- * It is therefore a constraint on WHERE the defaults live in code, not only on
94
- * what they are. They cannot be defaulted into the parsed config object, because
95
- * an absent config is `undefined` and every default would vanish with it — for
96
- * the project that never wrote one, which is the population the category exists
97
- * for. The rest of VAT already behaves this way and is the shape to match:
98
- * `vat audit` completes its entire scan first and reads config only to apply
99
- * severity overrides, warning and CONTINUING when the file cannot be read; and
100
- * `loadResourcesWithConfig` hands `vat resources validate` a registry whose
101
- * built-in validators run whether `loadConfig` returned a config or nothing.
102
- * This verb has no defaults yet, so the invariant is a rule for the first one —
103
- * and the day it is written is the easiest day to break it.
104
- *
105
- * ## Keeping a TypeScript check and its SQL twin: two good reasons, one trap
106
- *
107
- * The proposal was "write the predicate twice, in TypeScript and in SQL, and run
108
- * whichever is faster". Two thirds of it are worth having.
109
- *
110
- * ✅ **As documentation.** An SQL twin is executable documentation of the row
111
- * model, and strictly better than prose about it: prose can describe a column
112
- * that no longer exists and never say so, while a statement stops compiling —
113
- * which this verb reports as `RESOURCE_CHECK_BROKEN` rather than as a skip.
114
- *
115
- * ✅ **As a differential oracle.** Run both over the frozen corpus and assert
116
- * IDENTICAL findings. That is the only thing which makes a dual implementation
117
- * better than a single one rather than worse: two implementations with no
118
- * mandatory differential test are simply two places for one rule to be wrong.
119
- * Apply it selectively, to genuinely relational checks — done by default, every
120
- * new rule costs three artifacts instead of one.
121
- *
122
- * ⛔ **As a runtime optimizer — rejected, on two INDEPENDENT grounds.** It would
123
- * essentially never choose SQL: `buildResourceProjection` hands the rows back in
124
- * memory before the ephemeral database exists at all, so the TypeScript arm is a
125
- * for-loop over data already in hand, and the SQL arm's whole measured share of a
126
- * run is the 0.0008–0.004 s above. A scheduler would be choosing between two
127
- * arms of the 0.1%. And it reintroduces the dependency through the back door: an
128
- * optimizer that MAY choose SQL means SQL MAY be needed at check time, which for
129
- * anyone shipping the thing is the same as needed. **Optionality is not a
130
- * property you can keep while also letting a scheduler reach for the optional
131
- * thing.**
132
- *
133
- * ## 🔑 Adopter SQL runs UNSANDBOXED on purpose — and contributed SQL is not adopter SQL
134
- *
135
- * What a statement may BE is gated hard, and documented where it is enforced:
136
- * `assertIsQuery` and `detachForeignSchemas` in
137
- * `packages/projection-sqlite/src/store.ts` refuse `ATTACH` and `PRAGMA`, with
138
- * the measured cross-repository leak that motivated both, and CHANGELOG.md's
139
- * `--budget` entry carries why nothing inside this process can interrupt a
140
- * runaway statement. Read those; do not restate them here.
141
- *
142
- * What is written down nowhere else is that everything PAST those gates is
143
- * unsandboxed deliberately. A `.sql` file the adopter points their own config at
144
- * is adopter code, at the same trust boundary as their eslint config: they wrote
145
- * it or they chose to inherit it, and VAT is not the thing standing between a
146
- * project and its own repository.
147
- *
148
- * 🚨 That reasoning covers exactly ONE trust domain, and the rule scoping it is
149
- * the other half: **contributed SQL is a reviewed EXAMPLE, never an
150
- * auto-executed check.** A contribution channel is third-party text, and a
151
- * statement arriving through one has none of the "they chose it" the paragraph
152
- * above rests on. Ship it as documentation an adopter copies into their own
153
- * `resources.checks` deliberately. One paragraph must not be stretched to cover
154
- * both domains.
155
- *
156
- * ## What this does NOT do
157
- *
158
- * It does not fold into `vat resources validate`. That command is on every
159
- * adopter's pre-commit path, and adding a store-backed population to it is a
160
- * cost and a risk that deserves its own decision with its own evidence. Wiring
161
- * this into CI is one line in a workflow; making it unavoidable is not this
162
- * change's call to make.
2
+ * `vat resources check` — run the project's own assertions over its resource
3
+ * projection, as a gate.
4
+ *
5
+ * The invariants this file implements are written down once, in
6
+ * `docs/architecture/cli.md` under "`vat resources check [path]`". Read that
7
+ * before changing anything here; the headlines, so a reader knows when to:
8
+ *
9
+ * - 🔑 **Four ways to check nothing are all refusals**, at error severity under
10
+ * the non-overridable `RESOURCE_CHECK_BROKEN`: a statement that will not run
11
+ * (the `catch` in `runUnits`), a corpus that enumerated empty
12
+ * ({@link emptyCorpusFinding}), a `--check` name nothing declares
13
+ * (`requireKnownCheck`), and not one check executed at all
14
+ * ({@link noCheckRanFinding}, derived in {@link buildCheckOutputData} so an
15
+ * emptied `BUILTIN_CHECKS` cannot publish a clean document).
16
+ * - ⚠️ That last one does NOT make the step always able to fail: the only
17
+ * built-in ships at `info`. Do not invent a second refusal for it — that
18
+ * would refuse the no-config run the default set exists to serve.
19
+ * - 🔑 **No built-in check may be SQL.** {@link checkCommand} reads
20
+ * `config?.resources?.checks` and nothing else for statements; built-ins are
21
+ * TypeScript predicates over the row model, and a built-in's `sqlTwin` is
22
+ * documentation an adopter copies, never executed here.
23
+ * - 🔑 **The default set belongs to the pipeline, not the config file.**
24
+ * `BUILTIN_CHECKS` reaches {@link runProjectChecks} as a REQUIRED `builtins`
25
+ * argument via {@link runOutcome}; nothing on that path reads `config`.
26
+ * - 🚨 **Adopter SQL runs unsandboxed on purpose, and contributed SQL is not
27
+ * adopter SQL** — a contributed statement ships as a reviewed example.
28
+ * - ⛔ A TypeScript/SQL twin is documentation and a differential oracle, never
29
+ * a runtime optimizer to schedule between.
163
30
  */
164
- import { type ResourceCheck } from '@vibe-agent-toolkit/resources';
31
+ import { type BoundBuiltinCheck, type ResourceCheck } from '@vibe-agent-toolkit/resources';
165
32
  import { type Report, type ValidationIssue } from '@vibe-agent-toolkit/schema';
166
33
  import { z } from 'zod';
167
34
  import { type SeverityOverrides } from '../../utils/issue-severity.js';
@@ -199,33 +66,27 @@ interface CheckOptions {
199
66
  /**
200
67
  * What one declared check cost, and what it found.
201
68
  *
202
- * ## 🚨 The population is charged to NOBODY, and that is deliberate
203
- *
204
- * {@link durationMs} is the STATEMENT alone. The git tracker, the projection
205
- * build and the load into the ephemeral database happen ONCE and serve every
206
- * check in the run, so folding that shared setup into each rule would make N
207
- * cheap rules look expensive and make the per-rule numbers sum to N times a cost
208
- * paid once. It is published separately instead — `populationSecs` beside
209
- * `population` in the document — so a reader can reconcile the parts against
210
- * `durationSecs` rather than inferring the remainder and attributing it to
211
- * whichever rule they happen to be reading.
212
- *
213
- * 🪤 This repo has already shipped the opposite mistake once, in another
214
- * instrument: `parse ab` reported a pooled arm BACKWARDS because its estimate
215
- * was thread-summed, and the report surfaced no caveat that would have told the
216
- * reader. A shared cost silently attributed to one participant is the same
217
- * defect wearing different clothes. If you ever want the population inside these
218
- * numbers, divide it out explicitly and say so in the field name.
69
+ * 🚨 **The population is charged to NOBODY, and that is deliberate.**
70
+ * {@link durationMs} is the STATEMENT alone; the shared setup is published as
71
+ * `populationSecs`. Why, and the pooled-arm defect this avoids:
72
+ * `docs/architecture/cli.md`, "The population is charged to NOBODY".
219
73
  */
220
74
  export interface CheckCost {
221
- /** The check's key in `resources.checks`. */
75
+ /** The check's key in `resources.checks`, or a built-in's name. */
222
76
  readonly name: string;
223
- /** Wall time of this check's statement, and of nothing it shares with others. */
77
+ /** Wall time of this check's selection, and of nothing it shares with others. */
224
78
  readonly durationMs: number;
225
- /** Rows the statement returned — the violations it selected. Absent when the statement did not run. */
79
+ /** Rows the selection returned — the violations it found. Absent when it did not run. */
226
80
  readonly rows?: number;
227
- /** Set when the statement threw. A statement that did not complete has no row count. */
81
+ /** Set when the check threw. One that did not complete has no row count. */
228
82
  readonly broken?: true;
83
+ /**
84
+ * Set when VAT supplied this check rather than the project. 🔑 Without it a
85
+ * reader whose config declares nothing finds a rule they never wrote in
86
+ * `checks[]` with no way to tell a default from a stale declaration — or, when
87
+ * a project declares a check of the same name, to tell the two entries apart.
88
+ */
89
+ readonly builtin?: true;
229
90
  }
230
91
  /** What one run of the checks produced. */
231
92
  interface CheckOutcome extends ProjectionProvenance, PopulationExtent {
@@ -260,8 +121,40 @@ export declare const CheckDataSchema: z.ZodObject<{
260
121
  population: z.ZodEnum<["derived", "store"]>;
261
122
  /** What the population cost — charged to no check, see `CheckCost`. */
262
123
  populationSecs: z.ZodNumber;
263
- /** What evaluating the lens cost, paid before the first statement ran. */
124
+ /** What evaluating the lenses cost, paid before the first statement ran. */
264
125
  lensSecs: z.ZodNumber;
126
+ /**
127
+ * Which lenses that covers — the derived relations this run's checks could
128
+ * actually read. 🔑 An empty list says "no check asked for a derived relation"
129
+ * rather than "a lens stopped running"; without it `lensSecs: 0` is the same
130
+ * document either way, and a gate whose rules silently read empty relations is
131
+ * a gate that cannot fail.
132
+ */
133
+ lensesEvaluated: z.ZodArray<z.ZodString, "many">;
134
+ /**
135
+ * The prose frame {@link CheckDataSchema.limits} is read under. Present
136
+ * exactly when a lens with stated bounds was evaluated.
137
+ */
138
+ boundsStatement: z.ZodOptional<z.ZodString>;
139
+ /**
140
+ * What the derived rows this run could read do NOT settle — signed and
141
+ * directional, the same list `vat claude context` publishes beside its own
142
+ * answer. Absent when no bounded lens ran: an empty list would claim nothing
143
+ * bounds the answer, which is stronger than "the answer holds no such row".
144
+ */
145
+ limits: z.ZodOptional<z.ZodArray<z.ZodObject<{
146
+ id: z.ZodString;
147
+ direction: z.ZodEnum<["over-report", "under-report", "scope", "assumption"]>;
148
+ statement: z.ZodString;
149
+ }, "strict", z.ZodTypeAny, {
150
+ id: string;
151
+ direction: "scope" | "over-report" | "under-report" | "assumption";
152
+ statement: string;
153
+ }, {
154
+ id: string;
155
+ direction: "scope" | "over-report" | "under-report" | "assumption";
156
+ statement: string;
157
+ }>, "many">>;
265
158
  /** The number of rules that EXECUTED. Derived from `checks`, never carried beside it. */
266
159
  checksRun: z.ZodNumber;
267
160
  /** What each rule cost, directly under the denominator it is the breakdown of. */
@@ -272,20 +165,25 @@ export declare const CheckDataSchema: z.ZodObject<{
272
165
  /** Rows the statement returned. ABSENT, never 0, when the statement did not complete. */
273
166
  rows: z.ZodOptional<z.ZodNumber>;
274
167
  broken: z.ZodOptional<z.ZodLiteral<true>>;
168
+ /** Present and `true` only for a rule VAT supplied — see {@link CheckCost.builtin}. */
169
+ builtin: z.ZodOptional<z.ZodLiteral<true>>;
275
170
  }, "strict", z.ZodTypeAny, {
276
171
  name: string;
277
172
  durationSecs: number;
278
173
  rows?: number | undefined;
279
174
  broken?: true | undefined;
175
+ builtin?: true | undefined;
280
176
  }, {
281
177
  name: string;
282
178
  durationSecs: number;
283
179
  rows?: number | undefined;
284
180
  broken?: true | undefined;
181
+ builtin?: true | undefined;
285
182
  }>, "many">;
286
183
  }, "strict", z.ZodTypeAny, {
287
184
  root: string;
288
185
  population: "derived" | "store";
186
+ lensesEvaluated: string[];
289
187
  populationSecs: number;
290
188
  lensSecs: number;
291
189
  checksRun: number;
@@ -294,10 +192,18 @@ export declare const CheckDataSchema: z.ZodObject<{
294
192
  durationSecs: number;
295
193
  rows?: number | undefined;
296
194
  broken?: true | undefined;
195
+ builtin?: true | undefined;
297
196
  }[];
197
+ boundsStatement?: string | undefined;
198
+ limits?: {
199
+ id: string;
200
+ direction: "scope" | "over-report" | "under-report" | "assumption";
201
+ statement: string;
202
+ }[] | undefined;
298
203
  }, {
299
204
  root: string;
300
205
  population: "derived" | "store";
206
+ lensesEvaluated: string[];
301
207
  populationSecs: number;
302
208
  lensSecs: number;
303
209
  checksRun: number;
@@ -306,7 +212,14 @@ export declare const CheckDataSchema: z.ZodObject<{
306
212
  durationSecs: number;
307
213
  rows?: number | undefined;
308
214
  broken?: true | undefined;
215
+ builtin?: true | undefined;
309
216
  }[];
217
+ boundsStatement?: string | undefined;
218
+ limits?: {
219
+ id: string;
220
+ direction: "scope" | "over-report" | "under-report" | "assumption";
221
+ statement: string;
222
+ }[] | undefined;
310
223
  }>;
311
224
  export type CheckData = z.infer<typeof CheckDataSchema>;
312
225
  /** The document this command publishes. */
@@ -316,8 +229,40 @@ export declare const CHECK_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").R
316
229
  population: z.ZodEnum<["derived", "store"]>;
317
230
  /** What the population cost — charged to no check, see `CheckCost`. */
318
231
  populationSecs: z.ZodNumber;
319
- /** What evaluating the lens cost, paid before the first statement ran. */
232
+ /** What evaluating the lenses cost, paid before the first statement ran. */
320
233
  lensSecs: z.ZodNumber;
234
+ /**
235
+ * Which lenses that covers — the derived relations this run's checks could
236
+ * actually read. 🔑 An empty list says "no check asked for a derived relation"
237
+ * rather than "a lens stopped running"; without it `lensSecs: 0` is the same
238
+ * document either way, and a gate whose rules silently read empty relations is
239
+ * a gate that cannot fail.
240
+ */
241
+ lensesEvaluated: z.ZodArray<z.ZodString, "many">;
242
+ /**
243
+ * The prose frame {@link CheckDataSchema.limits} is read under. Present
244
+ * exactly when a lens with stated bounds was evaluated.
245
+ */
246
+ boundsStatement: z.ZodOptional<z.ZodString>;
247
+ /**
248
+ * What the derived rows this run could read do NOT settle — signed and
249
+ * directional, the same list `vat claude context` publishes beside its own
250
+ * answer. Absent when no bounded lens ran: an empty list would claim nothing
251
+ * bounds the answer, which is stronger than "the answer holds no such row".
252
+ */
253
+ limits: z.ZodOptional<z.ZodArray<z.ZodObject<{
254
+ id: z.ZodString;
255
+ direction: z.ZodEnum<["over-report", "under-report", "scope", "assumption"]>;
256
+ statement: z.ZodString;
257
+ }, "strict", z.ZodTypeAny, {
258
+ id: string;
259
+ direction: "scope" | "over-report" | "under-report" | "assumption";
260
+ statement: string;
261
+ }, {
262
+ id: string;
263
+ direction: "scope" | "over-report" | "under-report" | "assumption";
264
+ statement: string;
265
+ }>, "many">>;
321
266
  /** The number of rules that EXECUTED. Derived from `checks`, never carried beside it. */
322
267
  checksRun: z.ZodNumber;
323
268
  /** What each rule cost, directly under the denominator it is the breakdown of. */
@@ -328,20 +273,25 @@ export declare const CHECK_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").R
328
273
  /** Rows the statement returned. ABSENT, never 0, when the statement did not complete. */
329
274
  rows: z.ZodOptional<z.ZodNumber>;
330
275
  broken: z.ZodOptional<z.ZodLiteral<true>>;
276
+ /** Present and `true` only for a rule VAT supplied — see {@link CheckCost.builtin}. */
277
+ builtin: z.ZodOptional<z.ZodLiteral<true>>;
331
278
  }, "strict", z.ZodTypeAny, {
332
279
  name: string;
333
280
  durationSecs: number;
334
281
  rows?: number | undefined;
335
282
  broken?: true | undefined;
283
+ builtin?: true | undefined;
336
284
  }, {
337
285
  name: string;
338
286
  durationSecs: number;
339
287
  rows?: number | undefined;
340
288
  broken?: true | undefined;
289
+ builtin?: true | undefined;
341
290
  }>, "many">;
342
291
  }, "strict", z.ZodTypeAny, {
343
292
  root: string;
344
293
  population: "derived" | "store";
294
+ lensesEvaluated: string[];
345
295
  populationSecs: number;
346
296
  lensSecs: number;
347
297
  checksRun: number;
@@ -350,10 +300,18 @@ export declare const CHECK_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").R
350
300
  durationSecs: number;
351
301
  rows?: number | undefined;
352
302
  broken?: true | undefined;
303
+ builtin?: true | undefined;
353
304
  }[];
305
+ boundsStatement?: string | undefined;
306
+ limits?: {
307
+ id: string;
308
+ direction: "scope" | "over-report" | "under-report" | "assumption";
309
+ statement: string;
310
+ }[] | undefined;
354
311
  }, {
355
312
  root: string;
356
313
  population: "derived" | "store";
314
+ lensesEvaluated: string[];
357
315
  populationSecs: number;
358
316
  lensSecs: number;
359
317
  checksRun: number;
@@ -362,7 +320,14 @@ export declare const CHECK_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").R
362
320
  durationSecs: number;
363
321
  rows?: number | undefined;
364
322
  broken?: true | undefined;
323
+ builtin?: true | undefined;
365
324
  }[];
325
+ boundsStatement?: string | undefined;
326
+ limits?: {
327
+ id: string;
328
+ direction: "scope" | "over-report" | "under-report" | "assumption";
329
+ statement: string;
330
+ }[] | undefined;
366
331
  }>>;
367
332
  export type CheckReport = Report<CheckData>;
368
333
  /**
@@ -404,34 +369,38 @@ export type CheckReport = Report<CheckData>;
404
369
  */
405
370
  export declare function buildCheckOutputData(input: CheckPayloadInput): CheckReport;
406
371
  /**
407
- * Refuse a `--check` name the project does not declare.
408
- *
409
- * 🔑 **An unknown name used to be a silent green.** The filter was a bare
410
- * `if (only !== undefined && name !== only) continue;` and nothing compared the
411
- * flag against the declared keys, so `--check nope` filtered every check away,
412
- * ran none, and exited 0 with `checksRun: 0` and `issues: []` on empty stderr.
413
- * The loud "no checks are declared" warning never fired, because it asks whether
414
- * the `checks` MAP is empty, never whether the FILTER matched anything.
372
+ * Refuse a `--check` name that names neither a built-in nor a declared check.
415
373
  *
416
- * That is not a hypothetical typo: `vat resources check --check orphan-skills`
417
- * is the example in this command's own help text. Rename or delete that check
418
- * and the CI step keeps passing forever while asserting nothing.
374
+ * 🔑 **An unknown name is otherwise a silent green.** With nothing comparing the
375
+ * flag against the known names, `--check nope` filters every check away, runs
376
+ * none, and exits 0 with `checksRun: 0` and `issues: []` on empty stderr — and
377
+ * the "no checks are declared" warning does not fire, because it asks whether
378
+ * the `checks` MAP is empty, never whether the FILTER matched anything. Not a
379
+ * hypothetical typo: rename or delete a check and the CI step keeps passing
380
+ * forever while asserting nothing.
419
381
  *
420
382
  * Thrown rather than reported as a finding, because it is an OPERATOR error and
421
383
  * not a content violation — the two have different exit codes in this command's
422
384
  * contract (2 versus 1) and different audiences. Thrown before the projection is
423
385
  * populated, so a mistyped flag costs no crawl.
424
386
  *
387
+ * 🔑 **A built-in is nameable here exactly like a declared one.** A guard that
388
+ * only knew the config would refuse the very rules that run when there is no
389
+ * config at all. The refusal names both sets.
390
+ *
391
+ * @param builtinNames - The default set's names — {@link BUILTIN_CHECK_NAMES} in
392
+ * production, and passed in rather than imported here so a test can prove the
393
+ * guard rather than restate the constant
425
394
  * @param checks - The project's `resources.checks`
426
395
  * @param only - The `--check` value, or undefined
427
- * @throws When `only` names no declared check
396
+ * @throws When `only` names no check this run would attempt
428
397
  */
429
- export declare function requireDeclaredCheck(checks: Readonly<Record<string, ResourceCheck>>, only: string | undefined): void;
398
+ export declare function requireKnownCheck(builtinNames: readonly string[], checks: Readonly<Record<string, ResourceCheck>>, only: string | undefined): void;
430
399
  /**
431
400
  * Name every `CUSTOM:` severity override that overrides nothing.
432
401
  *
433
402
  * 🔑 **The same silent-green shape as an unknown `--check` name, one surface
434
- * over.** {@link requireDeclaredCheck} refuses `--check nope` because a filter
403
+ * over.** {@link requireKnownCheck} refuses `--check nope` because a filter
435
404
  * that matched nothing ran nothing and exited 0. A `validation.severity` entry
436
405
  * keyed `CUSTOM:<name>` for a check that is not declared is the mirror image: it
437
406
  * parses (the schema validates the KEY's shape and cannot see
@@ -534,8 +503,14 @@ export declare function buildInterruptedCheckInput(options: {
534
503
  durationMs: number;
535
504
  }): CheckPayloadInput;
536
505
  /**
537
- * Run the declared checks and resolve their severities — the whole of this
538
- * verb's logic, with the database taken out.
506
+ * Run this project's checks — VAT's default set plus whatever the project
507
+ * declared — and resolve their severities: the whole of this verb's logic, with
508
+ * the database taken out.
509
+ *
510
+ * 🔑 **`builtins` is a required argument beside `checks`, never a default inside
511
+ * this function.** That is what makes "the default set belongs to the pipeline,
512
+ * not to the config file" a property of the signature — nobody can get the
513
+ * defaults by omitting an argument or lose them by supplying no config.
539
514
  *
540
515
  * Exported and pure so the loop is provable without a spawn. It was not: every
541
516
  * spawned case declared ONE check (the `--check` case declares two and filters
@@ -548,8 +523,11 @@ export declare function buildInterruptedCheckInput(options: {
548
523
  * trust.
549
524
  *
550
525
  * @param options - The run
526
+ * @param options.builtins - The default set, already bound to this run's
527
+ * projection. Required, and `[]` is a deliberate statement rather than an
528
+ * omission
551
529
  * @param options.checks - The declared checks
552
- * @param options.only - A single check key, or undefined for all
530
+ * @param options.only - A single check name, or undefined for all
553
531
  * @param options.ask - Runs one statement against the populated projection
554
532
  * @param options.validation - The project's severity overrides, or undefined
555
533
  * @param options.membersEnumerated - How many members the population enumerated.
@@ -564,7 +542,8 @@ export declare function buildInterruptedCheckInput(options: {
564
542
  * unit case run with nobody watching
565
543
  * @returns The resolved findings, and one cost record per check that ran
566
544
  */
567
- export declare function runDeclaredChecks(options: {
545
+ export declare function runProjectChecks(options: {
546
+ builtins: readonly BoundBuiltinCheck[];
568
547
  checks: Readonly<Record<string, ResourceCheck>>;
569
548
  only: string | undefined;
570
549
  ask: AskProjection;
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/resources/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkKG;AAIH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAE1D,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uGAAuG;IACvG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB;AAED,2CAA2C;AAC3C,UAAU,YAAa,SAAQ,oBAAoB,EAAE,gBAAgB;IACnE,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC;;;;;;;;;OASG;IACH,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;IAE1B,0EAA0E;;IAE1E,uEAAuE;;IAEvE,0EAA0E;;IAE1E,yFAAyF;;IAEzF,kFAAkF;;;QAzBlF,wHAAwH;;QAExH,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBhF,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB;;IAf9B,0EAA0E;;IAE1E,uEAAuE;;IAEvE,0EAA0E;;IAE1E,yFAAyF;;IAEzF,kFAAkF;;;QAzBlF,wHAAwH;;QAExH,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8B3B,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAyD5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW,CA2C1E;AA8KD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAC/C,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,IAAI,CAcN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAC/C,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,MAAM,EAAE,MAAM,GACb,IAAI,CAoBN;AAuDD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAuJjE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAuL9C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,iBAAiB,CAyBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAChD,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAOnB,UAAU,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACvC,GAAG;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,CAmCpD;AAyGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAyFf"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/resources/check.ts"],"names":[],"mappings":"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"}