@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.
- package/dist/commands/audit/provenance.d.ts.map +1 -1
- package/dist/commands/audit/provenance.js +4 -3
- package/dist/commands/audit/provenance.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +2 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cache/clear.d.ts +17 -3
- package/dist/commands/cache/clear.d.ts.map +1 -1
- package/dist/commands/cache/clear.js +17 -3
- package/dist/commands/cache/clear.js.map +1 -1
- package/dist/commands/cache/index.d.ts.map +1 -1
- package/dist/commands/cache/index.js +19 -10
- package/dist/commands/cache/index.js.map +1 -1
- package/dist/commands/claude/context.d.ts +2 -2
- package/dist/commands/claude/context.js +4 -4
- package/dist/commands/claude/context.js.map +1 -1
- package/dist/commands/claude/index.d.ts +12 -11
- package/dist/commands/claude/index.d.ts.map +1 -1
- package/dist/commands/claude/index.js +14 -16
- package/dist/commands/claude/index.js.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.js +19 -10
- package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +2 -2
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/org/skills.js +8 -8
- package/dist/commands/claude/org/skills.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +11 -21
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.js +3 -3
- package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
- package/dist/commands/consistency-check.d.ts +11 -5
- package/dist/commands/consistency-check.d.ts.map +1 -1
- package/dist/commands/consistency-check.js +113 -78
- package/dist/commands/consistency-check.js.map +1 -1
- package/dist/commands/resources/check-progress.d.ts +6 -0
- package/dist/commands/resources/check-progress.d.ts.map +1 -1
- package/dist/commands/resources/check-progress.js +10 -2
- package/dist/commands/resources/check-progress.js.map +1 -1
- package/dist/commands/resources/check.d.ts +182 -203
- package/dist/commands/resources/check.d.ts.map +1 -1
- package/dist/commands/resources/check.js +272 -248
- package/dist/commands/resources/check.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +140 -23
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/query.d.ts +2 -2
- package/dist/commands/resources/query.d.ts.map +1 -1
- package/dist/commands/resources/query.js +20 -10
- package/dist/commands/resources/query.js.map +1 -1
- package/dist/commands/skill/test/run.js +3 -3
- package/dist/commands/skill/test/run.js.map +1 -1
- package/dist/commands/skills/build.d.ts +34 -21
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +99 -50
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts +15 -13
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +23 -4
- package/dist/commands/skills/skill-discovery.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +31 -8
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +10 -4
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +92 -65
- package/dist/commands/verify.js.map +1 -1
- package/dist/report-schemas.d.ts.map +1 -1
- package/dist/report-schemas.js +0 -2
- package/dist/report-schemas.js.map +1 -1
- package/dist/skill-resolution/classify.js +2 -2
- package/dist/skill-resolution/classify.js.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.js +48 -52
- package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
- package/dist/utils/claude-context-lens.d.ts +34 -0
- package/dist/utils/claude-context-lens.d.ts.map +1 -0
- package/dist/utils/claude-context-lens.js +39 -0
- package/dist/utils/claude-context-lens.js.map +1 -0
- package/dist/utils/projection-lenses.d.ts +98 -0
- package/dist/utils/projection-lenses.d.ts.map +1 -0
- package/dist/utils/projection-lenses.js +203 -0
- package/dist/utils/projection-lenses.js.map +1 -0
- package/dist/utils/projection-query.d.ts +38 -14
- package/dist/utils/projection-query.d.ts.map +1 -1
- package/dist/utils/projection-query.js +78 -17
- package/dist/utils/projection-query.js.map +1 -1
- package/dist/utils/projection-store.d.ts +61 -42
- package/dist/utils/projection-store.d.ts.map +1 -1
- package/dist/utils/projection-store.js +155 -59
- package/dist/utils/projection-store.js.map +1 -1
- package/dist/utils/relation-limits.d.ts +50 -0
- package/dist/utils/relation-limits.d.ts.map +1 -0
- package/dist/utils/relation-limits.js +50 -0
- package/dist/utils/relation-limits.js.map +1 -0
- package/dist/utils/skill-discovery.d.ts.map +1 -1
- package/dist/utils/skill-discovery.js +2 -1
- package/dist/utils/skill-discovery.js.map +1 -1
- package/dist/utils/skill-packaging-config.d.ts +38 -3
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +28 -3
- package/dist/utils/skill-packaging-config.js.map +1 -1
- package/package.json +16 -16
- package/schemas/resources-check.json +43 -0
- package/dist/commands/claude/budget.d.ts +0 -269
- package/dist/commands/claude/budget.d.ts.map +0 -1
- package/dist/commands/claude/budget.js +0 -507
- package/dist/commands/claude/budget.js.map +0 -1
- package/dist/utils/context-budget-issues.d.ts +0 -108
- package/dist/utils/context-budget-issues.d.ts.map +0 -1
- package/dist/utils/context-budget-issues.js +0 -280
- package/dist/utils/context-budget-issues.js.map +0 -1
- package/schemas/claude-budget.json +0 -197
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-agent-toolkit/cli",
|
|
3
|
-
"version": "0.2.0-rc.
|
|
3
|
+
"version": "0.2.0-rc.9",
|
|
4
4
|
"description": "Command-line interface for vibe-agent-toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -48,16 +48,16 @@
|
|
|
48
48
|
"//dependencies-note": "DO NOT add example agent packages or adopter packages here. Adopter packages (like vat-development-agents) depend on the CLI binary at build time — declaring them as deps creates a circular build dependency. They are built in a second turbo pass via package#task overrides in turbo.json.",
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@anthropic-ai/sdk": "^0.71.2",
|
|
51
|
-
"@vibe-agent-toolkit/agent-config": "0.2.0-rc.
|
|
52
|
-
"@vibe-agent-toolkit/agent-skills": "0.2.0-rc.
|
|
53
|
-
"@vibe-agent-toolkit/claude-marketplace": "0.2.0-rc.
|
|
54
|
-
"@vibe-agent-toolkit/discovery": "0.2.0-rc.
|
|
55
|
-
"@vibe-agent-toolkit/gateway-mcp": "0.2.0-rc.
|
|
56
|
-
"@vibe-agent-toolkit/projection-sqlite": "0.2.0-rc.
|
|
57
|
-
"@vibe-agent-toolkit/resources": "0.2.0-rc.
|
|
58
|
-
"@vibe-agent-toolkit/schema": "0.2.0-rc.
|
|
59
|
-
"@vibe-agent-toolkit/utils": "0.2.0-rc.
|
|
60
|
-
"adm-zip": "^0.6.
|
|
51
|
+
"@vibe-agent-toolkit/agent-config": "0.2.0-rc.9",
|
|
52
|
+
"@vibe-agent-toolkit/agent-skills": "0.2.0-rc.9",
|
|
53
|
+
"@vibe-agent-toolkit/claude-marketplace": "0.2.0-rc.9",
|
|
54
|
+
"@vibe-agent-toolkit/discovery": "0.2.0-rc.9",
|
|
55
|
+
"@vibe-agent-toolkit/gateway-mcp": "0.2.0-rc.9",
|
|
56
|
+
"@vibe-agent-toolkit/projection-sqlite": "0.2.0-rc.9",
|
|
57
|
+
"@vibe-agent-toolkit/resources": "0.2.0-rc.9",
|
|
58
|
+
"@vibe-agent-toolkit/schema": "0.2.0-rc.9",
|
|
59
|
+
"@vibe-agent-toolkit/utils": "0.2.0-rc.9",
|
|
60
|
+
"adm-zip": "^0.6.1",
|
|
61
61
|
"commander": "^12.1.0",
|
|
62
62
|
"picomatch": "^4.0.3",
|
|
63
63
|
"semver": "^7.8.5",
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@types/tar": "^6.1.13",
|
|
70
|
-
"@vibe-agent-toolkit/dev-tools": "0.2.0-rc.
|
|
71
|
-
"@vibe-agent-toolkit/rag": "0.2.0-rc.
|
|
72
|
-
"@vibe-agent-toolkit/rag-lancedb": "0.2.0-rc.
|
|
70
|
+
"@vibe-agent-toolkit/dev-tools": "0.2.0-rc.9",
|
|
71
|
+
"@vibe-agent-toolkit/rag": "0.2.0-rc.9",
|
|
72
|
+
"@vibe-agent-toolkit/rag-lancedb": "0.2.0-rc.9"
|
|
73
73
|
},
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public"
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
},
|
|
81
81
|
"//peerDependencies-note": "The RAG backends are OPTIONAL PEERS, never optionalDependencies. `optionalDependencies` are INSTALLED BY DEFAULT by npm and pnpm alike - 'optional' there means the install may fail without failing the build, not that it is skipped - so declaring them that way shipped ~287 MB unpacked (onnxruntime-web 137.5 MB, a LanceDB platform binary 97.8 MB, gpt-tokenizer 42.2 MB, apache-arrow 5.3 MB, protobufjs 3.0 MB; measured on darwin-arm64 against this release's pins, and the platform binary is larger on win32-x64) to every adopter, contradicting the seam in src/utils/optional-backend.ts that exists precisely to keep them out. Optional peers are NOT auto-installed, so the manifest now says what that module already says: these ship separately, and an absent one is a legible error naming the package to install. projection-sqlite is deliberately NOT in this group: it has zero third-party dependencies (only node:sqlite, which is built into Node) and a 152 KB dist, so the platform-binary argument that justifies the seam is simply false for it. It is also what `vat resources query` builds its ephemeral in-memory store from, and a query surface that works only where a backend was separately installed is the capability gate the projection design forbids.",
|
|
82
82
|
"peerDependencies": {
|
|
83
|
-
"@vibe-agent-toolkit/rag": "0.2.0-rc.
|
|
84
|
-
"@vibe-agent-toolkit/rag-lancedb": "0.2.0-rc.
|
|
83
|
+
"@vibe-agent-toolkit/rag": "0.2.0-rc.9",
|
|
84
|
+
"@vibe-agent-toolkit/rag-lancedb": "0.2.0-rc.9"
|
|
85
85
|
},
|
|
86
86
|
"peerDependenciesMeta": {
|
|
87
87
|
"@vibe-agent-toolkit/rag": {
|
|
@@ -123,6 +123,44 @@
|
|
|
123
123
|
"type": "number",
|
|
124
124
|
"minimum": 0
|
|
125
125
|
},
|
|
126
|
+
"lensesEvaluated": {
|
|
127
|
+
"type": "array",
|
|
128
|
+
"items": {
|
|
129
|
+
"type": "string"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"boundsStatement": {
|
|
133
|
+
"type": "string"
|
|
134
|
+
},
|
|
135
|
+
"limits": {
|
|
136
|
+
"type": "array",
|
|
137
|
+
"items": {
|
|
138
|
+
"type": "object",
|
|
139
|
+
"properties": {
|
|
140
|
+
"id": {
|
|
141
|
+
"type": "string"
|
|
142
|
+
},
|
|
143
|
+
"direction": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"enum": [
|
|
146
|
+
"over-report",
|
|
147
|
+
"under-report",
|
|
148
|
+
"scope",
|
|
149
|
+
"assumption"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"statement": {
|
|
153
|
+
"type": "string"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"required": [
|
|
157
|
+
"id",
|
|
158
|
+
"direction",
|
|
159
|
+
"statement"
|
|
160
|
+
],
|
|
161
|
+
"additionalProperties": false
|
|
162
|
+
}
|
|
163
|
+
},
|
|
126
164
|
"checksRun": {
|
|
127
165
|
"type": "integer",
|
|
128
166
|
"minimum": 0
|
|
@@ -146,6 +184,10 @@
|
|
|
146
184
|
"broken": {
|
|
147
185
|
"type": "boolean",
|
|
148
186
|
"const": true
|
|
187
|
+
},
|
|
188
|
+
"builtin": {
|
|
189
|
+
"type": "boolean",
|
|
190
|
+
"const": true
|
|
149
191
|
}
|
|
150
192
|
},
|
|
151
193
|
"required": [
|
|
@@ -161,6 +203,7 @@
|
|
|
161
203
|
"population",
|
|
162
204
|
"populationSecs",
|
|
163
205
|
"lensSecs",
|
|
206
|
+
"lensesEvaluated",
|
|
164
207
|
"checksRun",
|
|
165
208
|
"checks"
|
|
166
209
|
],
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `vat claude budget [paths...]` — is the always-loaded context at a working
|
|
3
|
-
* location over its budget?
|
|
4
|
-
*
|
|
5
|
-
* ## Why this is a command and not a check inside `vat resources validate`
|
|
6
|
-
*
|
|
7
|
-
* It used to be one: default-on, with a `--no-context-budget` opt-out. That is
|
|
8
|
-
* gone, in both directions — `vat resources validate` has no knowledge of the
|
|
9
|
-
* budget at all any more, not a flag, not a default. The ruling behind the move
|
|
10
|
-
* is short: *a validation run must not emit findings nobody asked for.* An
|
|
11
|
-
* `info` finding attached to a lane people run for link and anchor errors is a
|
|
12
|
-
* finding they scroll past, and a check people scroll past is a check they
|
|
13
|
-
* eventually silence.
|
|
14
|
-
*
|
|
15
|
-
* ## The sibling split: `context` QUERIES, `budget` CHECKS
|
|
16
|
-
*
|
|
17
|
-
* `vat claude context` answers a question and
|
|
18
|
-
* never gates — totals, admissions, the declared limits, no verdict, always
|
|
19
|
-
* exit 0. This command is the other half of that pair: it applies a THRESHOLD,
|
|
20
|
-
* produces findings with severities an adopter can configure, and lets an
|
|
21
|
-
* adopter who promotes the code to `error` fail their build with it. Two verbs
|
|
22
|
-
* because they are two acts, and folding a verdict into the query would make
|
|
23
|
-
* the query's number a number people learn to stop reading.
|
|
24
|
-
*
|
|
25
|
-
* ## Everything below is orchestration — deliberately
|
|
26
|
-
*
|
|
27
|
-
* Which directories exist, what each pays, and whether that is over budget are
|
|
28
|
-
* all decided in `@vibe-agent-toolkit/resources` (`buildClaudeContextPopulation`
|
|
29
|
-
* and `sweepAlwaysLoadedBudgets`); the wording and grouping of the findings in
|
|
30
|
-
* `utils/context-budget-issues.ts`; severity resolution in the two shared
|
|
31
|
-
* filters every other lane runs. This module populates one tree, calls them in
|
|
32
|
-
* order, and renders. It decides nothing about context loading of its own,
|
|
33
|
-
* which is the CLI-stays-dumb rule applied to the lane where the temptation is
|
|
34
|
-
* strongest.
|
|
35
|
-
*
|
|
36
|
-
* ⛔ The threshold is never re-spelled here. It is a MEASURED quantity that
|
|
37
|
-
* lives beside the detector (`DEFAULT_ALWAYS_LOADED_CONTEXT_TOKENS`), and a
|
|
38
|
-
* literal in this package would be a second source of truth that nothing
|
|
39
|
-
* compares.
|
|
40
|
-
*
|
|
41
|
-
* ## The stated bounds ride ONCE on the REPORT, in every format
|
|
42
|
-
*
|
|
43
|
-
* The sibling query publishes 23 stated limits; this command applies a threshold
|
|
44
|
-
* to the same measurement, so it publishes {@link ALWAYS_LOADED_BUDGET_LIMITS}
|
|
45
|
-
* and {@link CLAUDE_CONTEXT_BOUNDS_STATEMENT} beside its verdict — the half that
|
|
46
|
-
* GATES is the half whose bounds a reader most needs. Both are imported, never
|
|
47
|
-
* restated: the sentence is domain content owned beside the list it frames.
|
|
48
|
-
*
|
|
49
|
-
* ⛔ They belong to the REPORT, never to a finding. A per-finding copy is the
|
|
50
|
-
* defect this lane already shipped once on the query side, and it is invisible to
|
|
51
|
-
* any assertion that checks presence rather than counting occurrences.
|
|
52
|
-
*/
|
|
53
|
-
import { type BudgetSweep } from '@vibe-agent-toolkit/resources';
|
|
54
|
-
import { type Report, type ValidationIssue } from '@vibe-agent-toolkit/schema';
|
|
55
|
-
import { Command } from 'commander';
|
|
56
|
-
import { z } from 'zod';
|
|
57
|
-
/** How the report is rendered. `text` is for a person; the other two are for a program. */
|
|
58
|
-
export type BudgetOutputFormat = 'text' | 'yaml' | 'json';
|
|
59
|
-
/** Flags `vat claude budget` accepts. */
|
|
60
|
-
export interface ClaudeBudgetOptions {
|
|
61
|
-
format?: BudgetOutputFormat;
|
|
62
|
-
debug?: boolean;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* What one run reports beyond its findings.
|
|
66
|
-
*
|
|
67
|
-
* The sweep counters describe the WHOLE tree, not the scope: a scope narrows
|
|
68
|
-
* what is reported, never what was measured. The envelope's `examined` is the
|
|
69
|
-
* working-location count for the same reason — "9 chains checked, none over
|
|
70
|
-
* budget" and "nothing was checked" are different answers and must not render
|
|
71
|
-
* identically.
|
|
72
|
-
*/
|
|
73
|
-
export declare const BudgetDataSchema: z.ZodObject<{
|
|
74
|
-
root: z.ZodString;
|
|
75
|
-
/** The budget every chain was measured against, in tokens. */
|
|
76
|
-
threshold: z.ZodNumber;
|
|
77
|
-
/** The root-relative directories asked about. `''` is the whole tree. */
|
|
78
|
-
scope: z.ZodArray<z.ZodString, "many">;
|
|
79
|
-
/** Requested paths that named no working location — see `scopeSweepToPaths`. */
|
|
80
|
-
unmatchedScope: z.ZodArray<z.ZodString, "many">;
|
|
81
|
-
/** Distinct instruction chains among the working locations — the queries the sweep really issued. */
|
|
82
|
-
distinctChains: z.ZodNumber;
|
|
83
|
-
/** Locations whose representative the projection never realized. Counted, never zeroed. */
|
|
84
|
-
skippedUnknownLocations: z.ZodNumber;
|
|
85
|
-
/**
|
|
86
|
-
* What this verdict does not settle, in either direction. Stated ONCE.
|
|
87
|
-
*
|
|
88
|
-
* ⛔ On the report beside `threshold`, never on a finding. These bound the
|
|
89
|
-
* MEASUREMENT METHOD, not any one chain — a finding carrying its own copy
|
|
90
|
-
* reads as though that chain had caveats of its own, and repeated across a
|
|
91
|
-
* sweep it is pure byte-identical duplication.
|
|
92
|
-
*/
|
|
93
|
-
boundsStatement: z.ZodString;
|
|
94
|
-
/** The signed over/under-report bounds on the method. Stated ONCE. */
|
|
95
|
-
limits: z.ZodArray<z.ZodObject<{
|
|
96
|
-
id: z.ZodString;
|
|
97
|
-
direction: z.ZodEnum<["over-report", "under-report", "scope", "assumption"]>;
|
|
98
|
-
statement: z.ZodString;
|
|
99
|
-
}, "strict", z.ZodTypeAny, {
|
|
100
|
-
id: string;
|
|
101
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
102
|
-
statement: string;
|
|
103
|
-
}, {
|
|
104
|
-
id: string;
|
|
105
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
106
|
-
statement: string;
|
|
107
|
-
}>, "many">;
|
|
108
|
-
}, "strict", z.ZodTypeAny, {
|
|
109
|
-
root: string;
|
|
110
|
-
scope: string[];
|
|
111
|
-
threshold: number;
|
|
112
|
-
unmatchedScope: string[];
|
|
113
|
-
distinctChains: number;
|
|
114
|
-
skippedUnknownLocations: number;
|
|
115
|
-
boundsStatement: string;
|
|
116
|
-
limits: {
|
|
117
|
-
id: string;
|
|
118
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
119
|
-
statement: string;
|
|
120
|
-
}[];
|
|
121
|
-
}, {
|
|
122
|
-
root: string;
|
|
123
|
-
scope: string[];
|
|
124
|
-
threshold: number;
|
|
125
|
-
unmatchedScope: string[];
|
|
126
|
-
distinctChains: number;
|
|
127
|
-
skippedUnknownLocations: number;
|
|
128
|
-
boundsStatement: string;
|
|
129
|
-
limits: {
|
|
130
|
-
id: string;
|
|
131
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
132
|
-
statement: string;
|
|
133
|
-
}[];
|
|
134
|
-
}>;
|
|
135
|
-
export type BudgetData = z.infer<typeof BudgetDataSchema>;
|
|
136
|
-
/** The document this command publishes. */
|
|
137
|
-
export declare const BUDGET_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").ReportZodSchema<z.ZodObject<{
|
|
138
|
-
root: z.ZodString;
|
|
139
|
-
/** The budget every chain was measured against, in tokens. */
|
|
140
|
-
threshold: z.ZodNumber;
|
|
141
|
-
/** The root-relative directories asked about. `''` is the whole tree. */
|
|
142
|
-
scope: z.ZodArray<z.ZodString, "many">;
|
|
143
|
-
/** Requested paths that named no working location — see `scopeSweepToPaths`. */
|
|
144
|
-
unmatchedScope: z.ZodArray<z.ZodString, "many">;
|
|
145
|
-
/** Distinct instruction chains among the working locations — the queries the sweep really issued. */
|
|
146
|
-
distinctChains: z.ZodNumber;
|
|
147
|
-
/** Locations whose representative the projection never realized. Counted, never zeroed. */
|
|
148
|
-
skippedUnknownLocations: z.ZodNumber;
|
|
149
|
-
/**
|
|
150
|
-
* What this verdict does not settle, in either direction. Stated ONCE.
|
|
151
|
-
*
|
|
152
|
-
* ⛔ On the report beside `threshold`, never on a finding. These bound the
|
|
153
|
-
* MEASUREMENT METHOD, not any one chain — a finding carrying its own copy
|
|
154
|
-
* reads as though that chain had caveats of its own, and repeated across a
|
|
155
|
-
* sweep it is pure byte-identical duplication.
|
|
156
|
-
*/
|
|
157
|
-
boundsStatement: z.ZodString;
|
|
158
|
-
/** The signed over/under-report bounds on the method. Stated ONCE. */
|
|
159
|
-
limits: z.ZodArray<z.ZodObject<{
|
|
160
|
-
id: z.ZodString;
|
|
161
|
-
direction: z.ZodEnum<["over-report", "under-report", "scope", "assumption"]>;
|
|
162
|
-
statement: z.ZodString;
|
|
163
|
-
}, "strict", z.ZodTypeAny, {
|
|
164
|
-
id: string;
|
|
165
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
166
|
-
statement: string;
|
|
167
|
-
}, {
|
|
168
|
-
id: string;
|
|
169
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
170
|
-
statement: string;
|
|
171
|
-
}>, "many">;
|
|
172
|
-
}, "strict", z.ZodTypeAny, {
|
|
173
|
-
root: string;
|
|
174
|
-
scope: string[];
|
|
175
|
-
threshold: number;
|
|
176
|
-
unmatchedScope: string[];
|
|
177
|
-
distinctChains: number;
|
|
178
|
-
skippedUnknownLocations: number;
|
|
179
|
-
boundsStatement: string;
|
|
180
|
-
limits: {
|
|
181
|
-
id: string;
|
|
182
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
183
|
-
statement: string;
|
|
184
|
-
}[];
|
|
185
|
-
}, {
|
|
186
|
-
root: string;
|
|
187
|
-
scope: string[];
|
|
188
|
-
threshold: number;
|
|
189
|
-
unmatchedScope: string[];
|
|
190
|
-
distinctChains: number;
|
|
191
|
-
skippedUnknownLocations: number;
|
|
192
|
-
boundsStatement: string;
|
|
193
|
-
limits: {
|
|
194
|
-
id: string;
|
|
195
|
-
direction: "scope" | "over-report" | "under-report" | "assumption";
|
|
196
|
-
statement: string;
|
|
197
|
-
}[];
|
|
198
|
-
}>>;
|
|
199
|
-
/**
|
|
200
|
-
* The report one run emits: one finding per over-budget chain — plus, ahead of
|
|
201
|
-
* them, the run-integrity refusal when part of what was asked about was never
|
|
202
|
-
* measured. See {@link buildReport}: the second kind is DERIVED there rather
|
|
203
|
-
* than passed in, so no report can carry an unmatched path and a clean status.
|
|
204
|
-
*/
|
|
205
|
-
export type BudgetReport = Report<BudgetData>;
|
|
206
|
-
/**
|
|
207
|
-
* Create the `vat claude budget [paths...]` command.
|
|
208
|
-
*
|
|
209
|
-
* @returns The configured Commander command
|
|
210
|
-
*/
|
|
211
|
-
export declare function createBudgetCommand(): Command;
|
|
212
|
-
/**
|
|
213
|
-
* Action handler for `vat claude budget [paths...]`.
|
|
214
|
-
*
|
|
215
|
-
* @param pathArgs - Directories to check; empty means the whole tree
|
|
216
|
-
* @param options - The command's flags
|
|
217
|
-
*/
|
|
218
|
-
export declare function claudeBudgetCommand(pathArgs: readonly string[], options: ClaudeBudgetOptions): Promise<void>;
|
|
219
|
-
/** Everything {@link buildReport} needs, bundled past the lint gate's parameter ceiling. */
|
|
220
|
-
export interface ReportInput {
|
|
221
|
-
readonly root: string;
|
|
222
|
-
readonly threshold: number;
|
|
223
|
-
readonly scope: readonly string[];
|
|
224
|
-
readonly sweep: BudgetSweep;
|
|
225
|
-
readonly scoped: {
|
|
226
|
-
readonly unmatchedScope: readonly string[];
|
|
227
|
-
};
|
|
228
|
-
/** The BUDGET findings only. The run-integrity refusal is derived, not passed. */
|
|
229
|
-
readonly findings: readonly ValidationIssue[];
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Assemble the report from the run's parts.
|
|
233
|
-
*
|
|
234
|
-
* ⛔ The counters come from the UNSCOPED sweep. They answer "what was measured",
|
|
235
|
-
* and a scope changes only what is reported — sourcing them from the narrowed
|
|
236
|
-
* view would let `vat claude budget docs` claim the tree has one chain.
|
|
237
|
-
*
|
|
238
|
-
* ⛔ This is the ONE place the stated bounds enter the machine-readable output,
|
|
239
|
-
* and keeping it a single assignment is what makes "stated once" structural
|
|
240
|
-
* rather than a habit: there is no per-finding site left where a copy could be
|
|
241
|
-
* reintroduced. They are attached unconditionally — a run that flagged nothing
|
|
242
|
-
* used the same method, and a reader acting on "within budget" needs them most.
|
|
243
|
-
*
|
|
244
|
-
* ⛔ Exported so it can be TESTED. What has to be pinned is a COUNT — that the
|
|
245
|
-
* block appears exactly once across a MULTI-finding report — and a presence
|
|
246
|
-
* check passes identically with a copy per finding.
|
|
247
|
-
*
|
|
248
|
-
* ⛔ The run-integrity refusal is DERIVED here from `scoped.unmatchedScope`
|
|
249
|
-
* rather than assembled by the caller, which is what makes "a run that checked
|
|
250
|
-
* nothing never reports success" unrepresentable instead of merely observed:
|
|
251
|
-
* there is no pipeline step left in which a later edit could drop it. See
|
|
252
|
-
* {@link nothingCheckedFindings}.
|
|
253
|
-
*
|
|
254
|
-
* @param input - The run's parts
|
|
255
|
-
* @returns The report, ready to serialize
|
|
256
|
-
*/
|
|
257
|
-
export declare function buildReport(input: ReportInput): BudgetReport;
|
|
258
|
-
/**
|
|
259
|
-
* Render the report for a person.
|
|
260
|
-
*
|
|
261
|
-
* ⛔ Exported so the "stated once" property can be pinned in TEXT as well as in
|
|
262
|
-
* json. The two renderings are separate code paths and this lane has already
|
|
263
|
-
* shipped a defect where they disagreed while each looked right alone.
|
|
264
|
-
*
|
|
265
|
-
* @param report - The report
|
|
266
|
-
* @returns The text rendering, newline-terminated
|
|
267
|
-
*/
|
|
268
|
-
export declare function renderReportText(report: BudgetReport): string;
|
|
269
|
-
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../../src/commands/claude/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAKL,KAAK,MAAM,EAGX,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,2FAA2F;AAC3F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;IAE3B,8DAA8D;;IAE9D,yEAAyE;;IAEzE,gFAAgF;;IAEhF,qGAAqG;;IAErG,2FAA2F;;IAE3F;;;;;;;OAOG;;IAEH,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7D,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB;;IA1B/B,8DAA8D;;IAE9D,yEAAyE;;IAEzE,gFAAgF;;IAEhF,qGAAqG;;IAErG,2FAA2F;;IAE3F;;;;;;;OAOG;;IAEH,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAON,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAwE7C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAmB5D;AAsID;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAY7D"}
|