@vibgrate/cli 2026.814.1 → 2026.817.1

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 (136) hide show
  1. package/DOCS.md +258 -22
  2. package/README.md +273 -11
  3. package/dist/agent-CUYQKC6S.js +26 -0
  4. package/dist/{agent-2ZISYEQF.js.map → agent-CUYQKC6S.js.map} +1 -1
  5. package/dist/{approvals-DOZ5RWJP.js → approvals-IPMUDEDV.js} +5 -5
  6. package/dist/{approvals-DOZ5RWJP.js.map → approvals-IPMUDEDV.js.map} +1 -1
  7. package/dist/baseline-NZFGLMER.js +9 -0
  8. package/dist/{baseline-AGX42TZM.js.map → baseline-NZFGLMER.js.map} +1 -1
  9. package/dist/{chunk-TFAXW7VM.js → chunk-2BURPMYA.js} +3 -3
  10. package/dist/{chunk-TFAXW7VM.js.map → chunk-2BURPMYA.js.map} +1 -1
  11. package/dist/{chunk-UJAOCFQQ.js → chunk-2GSMCOIC.js} +4 -4
  12. package/dist/{chunk-UJAOCFQQ.js.map → chunk-2GSMCOIC.js.map} +1 -1
  13. package/dist/{chunk-EBUTRJHX.js → chunk-2TJ5EY4I.js} +4 -4
  14. package/dist/{chunk-EBUTRJHX.js.map → chunk-2TJ5EY4I.js.map} +1 -1
  15. package/dist/{chunk-7CDW25VY.js → chunk-3GZSDY35.js} +4 -4
  16. package/dist/{chunk-7CDW25VY.js.map → chunk-3GZSDY35.js.map} +1 -1
  17. package/dist/{chunk-REIGWTTH.js → chunk-3HNPVXUK.js} +3 -3
  18. package/dist/{chunk-REIGWTTH.js.map → chunk-3HNPVXUK.js.map} +1 -1
  19. package/dist/{chunk-5KY5UCDJ.js → chunk-45AKSS4A.js} +4 -4
  20. package/dist/{chunk-5KY5UCDJ.js.map → chunk-45AKSS4A.js.map} +1 -1
  21. package/dist/{chunk-XEI7UU6G.js → chunk-4W5SYK2M.js} +11 -34
  22. package/dist/chunk-4W5SYK2M.js.map +1 -0
  23. package/dist/{chunk-UTNNGKKX.js → chunk-6NOGNOE4.js} +4 -4
  24. package/dist/chunk-6NOGNOE4.js.map +1 -0
  25. package/dist/{chunk-N3XFY3PX.js → chunk-74UBGF4P.js} +3 -3
  26. package/dist/{chunk-N3XFY3PX.js.map → chunk-74UBGF4P.js.map} +1 -1
  27. package/dist/{chunk-RNZP2XAL.js → chunk-A7EKFLAN.js} +8 -8
  28. package/dist/{chunk-RNZP2XAL.js.map → chunk-A7EKFLAN.js.map} +1 -1
  29. package/dist/{chunk-N6ZMZ5AI.js → chunk-ANYL7SUI.js} +349 -46
  30. package/dist/chunk-ANYL7SUI.js.map +1 -0
  31. package/dist/{chunk-K7MONYIM.js → chunk-ENFSSUNK.js} +7 -3
  32. package/dist/chunk-ENFSSUNK.js.map +1 -0
  33. package/dist/{chunk-3LSG7Z4I.js → chunk-EZ7UC5Y5.js} +25 -4
  34. package/dist/chunk-EZ7UC5Y5.js.map +1 -0
  35. package/dist/{chunk-BTYFZ3NM.js → chunk-FD2HPGX2.js} +8 -8
  36. package/dist/{chunk-BTYFZ3NM.js.map → chunk-FD2HPGX2.js.map} +1 -1
  37. package/dist/{chunk-OWSFZQOP.js → chunk-FJG5AXKZ.js} +3 -3
  38. package/dist/{chunk-OWSFZQOP.js.map → chunk-FJG5AXKZ.js.map} +1 -1
  39. package/dist/chunk-FMS6G67U.js +467 -0
  40. package/dist/chunk-FMS6G67U.js.map +1 -0
  41. package/dist/{chunk-WHJMS7XC.js → chunk-I5LP55B6.js} +3 -3
  42. package/dist/{chunk-WHJMS7XC.js.map → chunk-I5LP55B6.js.map} +1 -1
  43. package/dist/{chunk-6OP5U55G.js → chunk-JHLCKMKF.js} +16 -29
  44. package/dist/chunk-JHLCKMKF.js.map +1 -0
  45. package/dist/{chunk-QFCJY6FQ.js → chunk-K267DHCF.js} +6 -6
  46. package/dist/{chunk-QFCJY6FQ.js.map → chunk-K267DHCF.js.map} +1 -1
  47. package/dist/{chunk-BXPWVTGS.js → chunk-MIYXVY57.js} +7 -6
  48. package/dist/chunk-MIYXVY57.js.map +1 -0
  49. package/dist/chunk-MS6V5XKB.js +33 -0
  50. package/dist/chunk-MS6V5XKB.js.map +1 -0
  51. package/dist/{chunk-2HNPL4OB.js → chunk-NHB53JTV.js} +6 -6
  52. package/dist/{chunk-2HNPL4OB.js.map → chunk-NHB53JTV.js.map} +1 -1
  53. package/dist/{chunk-RBBP4SP7.js → chunk-NKRWKCME.js} +4 -4
  54. package/dist/{chunk-RBBP4SP7.js.map → chunk-NKRWKCME.js.map} +1 -1
  55. package/dist/{chunk-NXDYWBZB.js → chunk-NQUWC2IA.js} +13 -11
  56. package/dist/chunk-NQUWC2IA.js.map +1 -0
  57. package/dist/{chunk-2W3GBKSV.js → chunk-OWSXI3PJ.js} +8 -6
  58. package/dist/chunk-OWSXI3PJ.js.map +1 -0
  59. package/dist/chunk-OZ3IFXRD.js +22 -0
  60. package/dist/chunk-OZ3IFXRD.js.map +1 -0
  61. package/dist/chunk-PV76EO4G.js +6 -0
  62. package/dist/{chunk-QIUQH2ND.js.map → chunk-PV76EO4G.js.map} +1 -1
  63. package/dist/{chunk-JYY6G46J.js → chunk-QPXVTQ7O.js} +3 -3
  64. package/dist/{chunk-JYY6G46J.js.map → chunk-QPXVTQ7O.js.map} +1 -1
  65. package/dist/{chunk-J3IDTLF4.js → chunk-RJCRWQNS.js} +1855 -175
  66. package/dist/chunk-RJCRWQNS.js.map +1 -0
  67. package/dist/{chunk-HYC3A2AT.js → chunk-RQAKBRAV.js} +3 -3
  68. package/dist/{chunk-HYC3A2AT.js.map → chunk-RQAKBRAV.js.map} +1 -1
  69. package/dist/{chunk-VD6TVFGA.js → chunk-UBEVY5UT.js} +6 -6
  70. package/dist/{chunk-VD6TVFGA.js.map → chunk-UBEVY5UT.js.map} +1 -1
  71. package/dist/{chunk-WN2AAB5O.js → chunk-YL4OIUA5.js} +12 -12
  72. package/dist/{chunk-WN2AAB5O.js.map → chunk-YL4OIUA5.js.map} +1 -1
  73. package/dist/{chunk-A4F7ESUR.js → chunk-ZSECAGSU.js} +3 -3
  74. package/dist/{chunk-A4F7ESUR.js.map → chunk-ZSECAGSU.js.map} +1 -1
  75. package/dist/cli.js +417 -718
  76. package/dist/cli.js.map +1 -1
  77. package/dist/daemon-J2HX4GY3.js +25 -0
  78. package/dist/daemon-J2HX4GY3.js.map +1 -0
  79. package/dist/embed-worker-main.js +4 -4
  80. package/dist/ensure-map-5C6KG66X.js +32 -0
  81. package/dist/{ensure-map-EURJPSAK.js.map → ensure-map-5C6KG66X.js.map} +1 -1
  82. package/dist/graph-backend-HH5IIQ55.js +14 -0
  83. package/dist/{graph-backend-VUW2QWPI.js.map → graph-backend-HH5IIQ55.js.map} +1 -1
  84. package/dist/index.d.ts +9 -6
  85. package/dist/index.js +18 -16
  86. package/dist/index.js.map +1 -1
  87. package/dist/{interactive-WRA477OW.js → interactive-FXPAZAUJ.js} +33 -31
  88. package/dist/interactive-FXPAZAUJ.js.map +1 -0
  89. package/dist/load-OR2XVGAV.js +10 -0
  90. package/dist/{load-XZV5LEGA.js.map → load-OR2XVGAV.js.map} +1 -1
  91. package/dist/local-runtime-6SNWKSA7.js +6 -0
  92. package/dist/{local-runtime-2ED33KK6.js.map → local-runtime-6SNWKSA7.js.map} +1 -1
  93. package/dist/model-manager-SXHZ5VD4.js +10 -0
  94. package/dist/{model-manager-GJ2YSTSK.js.map → model-manager-SXHZ5VD4.js.map} +1 -1
  95. package/dist/parse-worker.d.ts +1 -1
  96. package/dist/parse-worker.js +1 -1
  97. package/dist/{run-outcome-X5KS6AUE.js → run-outcome-M4546HLJ.js} +6 -6
  98. package/dist/{run-outcome-X5KS6AUE.js.map → run-outcome-M4546HLJ.js.map} +1 -1
  99. package/dist/runtime-session-6KKMFS6Q.js +21 -0
  100. package/dist/{runtime-session-J7GDVRFU.js.map → runtime-session-6KKMFS6Q.js.map} +1 -1
  101. package/dist/session-HCFJUSKN.js +16 -0
  102. package/dist/{session-3R34WA5S.js.map → session-HCFJUSKN.js.map} +1 -1
  103. package/dist/{stream-json-LKVPDKXP.js → stream-json-4DL65D6U.js} +16 -16
  104. package/dist/{stream-json-LKVPDKXP.js.map → stream-json-4DL65D6U.js.map} +1 -1
  105. package/dist/{types-DLH-Ritr.d.ts → types-8SYlXhzm.d.ts} +57 -6
  106. package/dist/version-UPIC3F4P.js +4 -0
  107. package/dist/{version-55TOTJTF.js.map → version-UPIC3F4P.js.map} +1 -1
  108. package/dist/{vg-mcp-bridge-ZPJAHP7T.js → vg-mcp-bridge-FZGX6DYO.js} +10 -10
  109. package/dist/{vg-mcp-bridge-ZPJAHP7T.js.map → vg-mcp-bridge-FZGX6DYO.js.map} +1 -1
  110. package/dist/{vgd-UIFH5TTW.js → vgd-QR26FAZD.js} +9 -9
  111. package/dist/vgd-QR26FAZD.js.map +1 -0
  112. package/grammars/tree-sitter-hcl.wasm +0 -0
  113. package/package.json +3 -2
  114. package/dist/agent-2ZISYEQF.js +0 -26
  115. package/dist/baseline-AGX42TZM.js +0 -9
  116. package/dist/chunk-2W3GBKSV.js.map +0 -1
  117. package/dist/chunk-3LSG7Z4I.js.map +0 -1
  118. package/dist/chunk-6OP5U55G.js.map +0 -1
  119. package/dist/chunk-BXPWVTGS.js.map +0 -1
  120. package/dist/chunk-J3IDTLF4.js.map +0 -1
  121. package/dist/chunk-K7MONYIM.js.map +0 -1
  122. package/dist/chunk-N6ZMZ5AI.js.map +0 -1
  123. package/dist/chunk-NXDYWBZB.js.map +0 -1
  124. package/dist/chunk-QIUQH2ND.js +0 -6
  125. package/dist/chunk-UTNNGKKX.js.map +0 -1
  126. package/dist/chunk-XEI7UU6G.js.map +0 -1
  127. package/dist/ensure-map-EURJPSAK.js +0 -30
  128. package/dist/graph-backend-VUW2QWPI.js +0 -14
  129. package/dist/interactive-WRA477OW.js.map +0 -1
  130. package/dist/load-XZV5LEGA.js +0 -10
  131. package/dist/local-runtime-2ED33KK6.js +0 -6
  132. package/dist/model-manager-GJ2YSTSK.js +0 -10
  133. package/dist/runtime-session-J7GDVRFU.js +0 -21
  134. package/dist/session-3R34WA5S.js +0 -16
  135. package/dist/version-55TOTJTF.js +0 -4
  136. package/dist/vgd-UIFH5TTW.js.map +0 -1
package/README.md CHANGED
@@ -13,15 +13,17 @@
13
13
  <a href="https://www.npmjs.com/package/@vibgrate/cli"><img src="https://img.shields.io/npm/dm/@vibgrate/cli?color=green" alt="npm downloads" /></a>
14
14
  <a href="https://dash.vibgrate.com/badges/driftscore/vibgrate/cli"><img src="https://badges.vibgrate.com/vibgrate/cli" alt="Vibgrate DriftScore" /></a>
15
15
  <a href="https://vibgrate.com/cli"><img src="https://img.shields.io/badge/live%20demo-vibgrate.com%2Fcli-3FB0A4" alt="live demo" /></a>
16
+ <a href="https://vibgrate.com/vgcode"><img src="https://img.shields.io/badge/VG%20Code-local%20or%20hosted-F59E0B" alt="VG Code — a coding agent grounded in the code graph" /></a>
16
17
  <a href="https://vibgrate.com/mcp"><img src="https://img.shields.io/badge/Vibgrate%20Cloud%20MCP-vibgrate.com%2Fmcp-8B5CF6" alt="Vibgrate Cloud MCP" /></a>
17
18
  <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="Apache 2.0" /></a>
18
19
  <img src="https://img.shields.io/badge/node-%3E%3D22-brightgreen" alt="node 22+" />
19
20
  </p>
20
21
 
21
- `vg` answers two questions for any repo:
22
+ `vg` answers three questions for any repo:
22
23
 
23
24
  1. **What is this codebase?** — A deterministic [code graph](https://vibgrate.com/graph): call trees, import paths, impact surfaces, dependency facts.
24
- 2. **How far behind is it?** — A ranked **[DriftScore](https://vibgrate.com/driftscore)** (0–100) with runtime/framework lag, dependency age and EOL proximity, and a prioritised fix list. Exposure is scored separately as a **[RiskScore](https://vibgrate.com/riskscore)**; the two together are the **[DriftRisk Index](https://vibgrate.com/driftrisk)**. The full methodology — formulas, sources, and limitations — is published as a [whitepaper](https://vibgrate.com/whitepapers/software-risk-and-drift-scoring-methodology) under CC BY 4.0 (DOI [10.5281/zenodo.21336304](https://doi.org/10.5281/zenodo.21336304)).
25
+ 2. **How far behind is it?** — A ranked **[DriftScore](https://vibgrate.com/driftscore)** (0–100) with runtime/framework lag, dependency age and EOL proximity, and a prioritized fix list. Exposure is scored separately as a **[RiskScore](https://vibgrate.com/riskscore)**; the two together are the **[DriftRisk Index](https://vibgrate.com/driftrisk)**. The full methodology — formulas, sources, and limitations — is published as a [whitepaper](https://vibgrate.com/whitepapers/software-risk-and-drift-scoring-methodology) under CC BY 4.0 (DOI [10.5281/zenodo.21336304](https://doi.org/10.5281/zenodo.21336304)).
26
+ 3. **Can we fix it here?** — [**VG Code**](#vg-code--write-the-change-not-just-the-report), a coding agent whose search tool is the code graph, not a grep — in your terminal as `vg code` and as the VG Code panel in [Vibgrate for VS Code](https://vibgrate.com/vscode) — plus `vg fix`, ranked upgrade plans it can apply.
25
27
 
26
28
  Everything runs **on your machine**. No API key, no network call, no data leaving your repo unless you explicitly push. The `vibgrate` command is an alias for `vg` — they are interchangeable.
27
29
 
@@ -54,6 +56,7 @@ No install, no signup:
54
56
  npx @vibgrate/cli scan # drift score + upgrade priorities
55
57
  npx @vibgrate/cli build # build the code graph
56
58
  npx @vibgrate/cli ask "what does AuthService do?"
59
+ npx @vibgrate/cli code # a coding agent — it asks before every edit
57
60
  ```
58
61
 
59
62
  Install for repeat runs:
@@ -141,6 +144,166 @@ vg serve # start Vibgrate AI Context (local-first MCP: co
141
144
 
142
145
  ---
143
146
 
147
+ ## VG Code — write the change, not just the report
148
+
149
+ **VG Code** is the coding agent inside Vibgrate CLI. Its search tool is the deterministic code graph — **not a grep, not embeddings over chunks** — and it runs on a local model or a hosted one, your choice.
150
+
151
+ ```bash
152
+ vg code # guided: pick a model, then describe tasks
153
+ vg code "add a --timeout flag to the scan command"
154
+ ```
155
+
156
+ **Does it write to your disk?** Yes — through steps you approve, and only those. Read-only steps (search, read, list, impact) run without prompting; every edit and every command asks first. `--auto` runs the same loop with no prompts for CI. Without a terminal and without `--auto`, `vg code` refuses to start rather than writing unattended.
157
+
158
+ **Two surfaces, one agent.** `vg code` is the terminal surface. The **VG Code panel** in [Vibgrate for VS Code](https://vibgrate.com/vscode) is the graphical one, and for most people it will be the one they live in: warm sessions between tasks, chat history, inline Approve / Reject cards with diffs, checkpoints, and @-mentions. The extension does not re-implement the agent — it runs the one shipped with this CLI over `--stream-json` and relays your decisions to it, so terminal, editor, and CI behave the same way.
159
+
160
+ ### Why an agent here, and not another chat window?
161
+
162
+ - **Search is the graph.** `search_code` resolves symbols, callers, and callees from the map `vg build` produced — so the model gets the three functions that matter, not forty files that mention the word.
163
+ - **Blast radius before the edit.** `graph_impact` tells the model what depends on a symbol *before* it changes it, and `vg tests` knows which tests to run after.
164
+ - **Version-correct library docs.** `library_docs` pins to the version in your lockfile, so the model writes against the API you actually have.
165
+ - **Invented identifiers are blocked, not flagged.** Before an edit is written, its replacement body is scanned against the graph's identifier trie. A symbol the graph does not know — and that is not already local to the target file — stops the write.
166
+ - **Local models are first-class, hosted models are one flag away.** With a pulled model there is no account and no key, and Code Modes fit the model to the machine. When a task needs more, [Vibgrate Relay](https://vibgrate.com/relay) supplies hosted models on your Vibgrate account — no per-provider API keys — and falls back to your local model if it is unreachable.
167
+ - **It adopts the MCP servers you already have.** `.mcp.json` (Claude Code), `.cursor/mcp.json`, and `.vscode/mcp.json` are read and merged with `.vibgrate/code.json`, which wins on a name clash.
168
+ - **Cost is visible.** A token/$ meter after each task and on `/cost`; `vg savings` reports graph-backed calls per model.
169
+
170
+ **Trade-off:** no model ships with the CLI, and VG Code is only as good as the model you point it at. A 7B local model is not a frontier model — it buys you privacy, offline inference, and no per-token cost. Relay buys you capacity at a per-token price. Pick the tier that matches the task; the graph grounding is the same either way.
171
+
172
+ ### A session, end to end
173
+
174
+ ```text
175
+ VG Code · graph-grounded coding · v2026.x
176
+
177
+ ✔ Code map built
178
+ ✔ Model catalog loaded
179
+ ◆ Ready — ollama/qwen2.5-coder:7b · graph 48213. Describe a task, or /help.
180
+
181
+ code › add a --timeout flag to the scan command and use it
182
+
183
+ → search_code(query: --timeout flag scan command)
184
+ scanCommand (function) src/commands/scan.ts:12
185
+ → graph_impact(symbol: runScan)
186
+ 3 symbol(s) depend on runScan: …
187
+ → edit_file(path: src/commands/scan.ts, …)
188
+ ? Apply edit to src/commands/scan.ts? [Y/n] y
189
+ ✔ edited src/commands/scan.ts
190
+ → run_command(command: npm test -- scan)
191
+ ? Run `npm test -- scan`? [y/N] y
192
+ ✔ exit 0 … 12 passing
193
+
194
+ ✔ added a --timeout flag to scan and covered it with tests
195
+ +6 -1 across 1 file(s) · via ollama/qwen2.5-coder:7b
196
+ ```
197
+
198
+ What happened, step by step:
199
+
200
+ 1. The code map is built or refreshed incrementally — only changed files re-parse.
201
+ 2. The model catalog loads and you pick a local model or a hosted provider. Before pulling a local model, a memory pre-flight compares its estimated footprint against available RAM/VRAM and refuses a model this machine cannot run.
202
+ 3. Vibgrate Graph (`vg serve`) starts as a child process for the life of the session and stops when you exit. Every graph call is attributed to VG Code and the model in use.
203
+ 4. The agent loops: search → read → assess impact → edit → run.
204
+ 5. You approve each mutating step, or it runs unattended under `--auto`.
205
+ 6. Edits land through a deterministic merge, so the change goes exactly where it was meant to.
206
+
207
+ ### Approval modes
208
+
209
+ | Mode | Behavior |
210
+ | --- | --- |
211
+ | **Interactive** (default) | Read-only steps run freely. Every edit and every command asks first. |
212
+ | **`--auto`** | No prompts. A denylist blocks catastrophic commands — filesystem wipes, `curl … \| sh`, force-push, `sudo`. For CI and scripted runs. |
213
+ | **`--single`** | One-shot: propose a diff and stop. No tool loop, no commands. Dry-run unless you pass `--apply --yes`. |
214
+
215
+ `--max-steps <n>` caps the loop (default 24). `--worktree` runs the whole session in an isolated git worktree so nothing touches your main tree until you apply it.
216
+
217
+ ### Which model — local, or hosted through Relay
218
+
219
+ **Code Modes** pick a local model that actually fits this machine, checked against your real RAM, VRAM, and disk before anything downloads:
220
+
221
+ | Mode | Intent |
222
+ | --- | --- |
223
+ | **Spark** | Fast, small footprint — quick edits and tight memory |
224
+ | **Flow** | Balanced default for day-to-day coding |
225
+ | **Forge** | Heavier pack when you have headroom and want more capacity |
226
+
227
+ ```bash
228
+ vg models # what's set, and what fits this machine
229
+ vg models install flow # install the pack (--dry-run to preview)
230
+ vg models pull qwen2.5-coder:7b
231
+ ```
232
+
233
+ **[Vibgrate Relay](https://vibgrate.com/relay)** is the hosted tier that supplements those local models when a task needs more capacity than the machine has. One Vibgrate account and endpoint, a curated catalog of hosted models, per-token metering against prepaid credit — and no per-provider API keys to manage:
234
+
235
+ ```bash
236
+ export VIBGRATE_RELAY_TOKEN=… # Relay is then preferred, with local fallback
237
+ vg code --provider vibgrate-relay --model <slug>
238
+ ```
239
+
240
+ You are not locked to it. `--provider` also takes `ollama`, `lmstudio`, `foundry-local`, `llama-cpp`, `openrouter`, `litellm`, `openai`, and `together`; those API keys are read from the environment only (`OPENROUTER_API_KEY` and friends), never passed as flags. With no `--provider`, `vg code` uses what you have already configured — Relay first if its token is set, then another hosted key, then a local model — and never dials an endpoint you did not set up. `--local` keeps it on-device.
241
+
242
+ ### Tools the agent has
243
+
244
+ | Tool | What it does | Approval |
245
+ | --- | --- | --- |
246
+ | `search_code` | Search the code graph — symbols and relations, plus a literal sweep for exact phrases | free |
247
+ | `read_file` / `list_files` | Read a file or line range; list files in the map | free |
248
+ | `graph_impact` | Blast radius of changing a symbol | free |
249
+ | `library_docs` | Version-correct docs for a dependency you actually have installed | free |
250
+ | `edit_file` / `create_file` / `delete_file` / `apply_patch` | Change the working tree | **approved** |
251
+ | `run_command` | Run tests, builds, anything else | **approved** |
252
+ | `web_fetch` / `web_search` | Fetch or search the public web — untrusted, secret-redacted, size-capped | **approved** |
253
+ | `browser_*` / `read_notebook` / `spawn_subagent` | Drive a browser, work in Jupyter notebooks, delegate a sub-task | **approved** |
254
+ | `mcp__<server>__<tool>` | Tools from your configured MCP servers | free if read-only, else **approved** |
255
+
256
+ ### In-session commands
257
+
258
+ | Command | What it does |
259
+ | --- | --- |
260
+ | `/undo` | Revert the files changed by the last task |
261
+ | `/diff` | Show the last change |
262
+ | `/model` | Switch model without leaving the session |
263
+ | `/cost` | Running token and dollar cost (local models are free) |
264
+ | `/compact` | Condense the session so far into one checkpoint recap |
265
+ | `/help` / `/exit` | List commands / quit |
266
+
267
+ ### Where state lives
268
+
269
+ | On disk | In the session |
270
+ | --- | --- |
271
+ | The code map (`.vibgrate/`), gitignored | Conversation and step history |
272
+ | Your config (`.vibgrate/code.json`) | The `/undo` stack |
273
+ | The edits themselves — local and git-reversible | The token/$ meter |
274
+ | Session store, so `--continue` can resume | The `vg serve` child process |
275
+
276
+ `--continue` resumes your most recent session: it recaps what was already done for the model and restores `/undo`.
277
+
278
+ ### Configure once
279
+
280
+ `.vibgrate/code.json` — flags still override:
281
+
282
+ ```json
283
+ {
284
+ "provider": "ollama",
285
+ "model": "qwen2.5-coder:7b",
286
+ "testCommand": "npm test",
287
+ "auto": false,
288
+ "denyCommands": ["deploy", "kubectl\\s+delete"],
289
+ "maxSteps": 24,
290
+ "mcpServers": {
291
+ "playwright": { "command": "npx", "args": ["-y", "@playwright/mcp"] }
292
+ }
293
+ }
294
+ ```
295
+
296
+ Full key reference — including `securityTier`, `capsule`, and `modelProfile` — is in [DOCS.md](./DOCS.md#vg-code).
297
+
298
+ ### Safety
299
+
300
+ - Secrets files (`.env`, `.npmrc`, `.netrc`, key material) are never read into a prompt, and credential shapes are redacted from any file the agent does read.
301
+ - Under `--auto`, a denylist blocks catastrophic commands. Interactively you see and approve every command yourself.
302
+ - Every change is local and git-reversible. `/undo` reverts the last task; `--worktree` keeps the whole session off your main tree.
303
+ - Web and browser results are treated as untrusted content, never as instructions.
304
+
305
+ ---
306
+
144
307
  ## Measure and manage upgrade drift
145
308
 
146
309
  ```bash
@@ -170,7 +333,9 @@ vg scan --vulns # drift score + known vulnerabilities
170
333
  vg scan --full # drift + vulnerabilities + a banned-dependency report
171
334
  ```
172
335
 
173
- In a git repository, every finding is attributed from history: who introduced the vulnerable version, in which commit, and how long you have been exposed. Those exposure windows roll up into remediation metrics framed around the [EU Cyber Resilience Act (CRA)](https://vibgrate.com/cra) — and feed [Vibgrate Evidence](https://vibgrate.com/evidence), which freezes shipped-release manifests so "which shipped products contain this vulnerability?" has a signed, offline-verifiable answer — per-severity time-exposed and SLA breaches — so "are we fixing things fast enough?" has a number.
336
+ In a git repository, every finding is attributed from history: who introduced the vulnerable version, in which commit, and how long you have been exposed. Those exposure windows roll up into per-severity time-exposed and SLA-breach metrics, framed around the [EU Cyber Resilience Act (CRA)](https://vibgrate.com/cra) — so "are we fixing things fast enough?" has a number.
337
+
338
+ That answers the question about *this checkout*. For the question a regulator asks — which **shipped** products contain it — see [Vibgrate Evidence](#vibgrate-evidence--answer-which-shipped-products-contain-this) below.
174
339
 
175
340
  ```bash
176
341
  vg why lodash # who added a dependency, every version since, and any open vulnerabilities
@@ -183,6 +348,59 @@ Your AI assistant sees this too: `vg serve` exposes `list_vulnerabilities`, `vul
183
348
 
184
349
  ---
185
350
 
351
+ ## Vibgrate Evidence — answer "which shipped products contain this?"
352
+
353
+ A scanner tells you about the code in front of you. A regulator asks about the code you **shipped** — eighteen months ago, at version 3.2.1, into Germany and France, still in its support window. **[Vibgrate Evidence](https://vibgrate.com/evidence)** answers that question as a signed artifact a third party can verify offline, with no account and no network.
354
+
355
+ It produces **evidence, not a verdict.** It will not tell you that you are compliant, and it is not legal advice. It gives you a defensible, reproducible answer and the audit trail behind it; the determination and the filing stay yours.
356
+
357
+ ```bash
358
+ vg evidence init --regime cra # who files, and to which coordinator
359
+ vg evidence product add "Acme Gateway" --markets DE,FR --in-scope
360
+ vg evidence release acme-gateway 3.2.1 --from sbom.cdx.json --ship-date 2025-02-14
361
+ vg evidence exposure CVE-2025-12345 --bundle ./ev # signed answer, exit code for CI
362
+ ```
363
+
364
+ ### Why freeze a manifest instead of scanning again?
365
+
366
+ - **Ships are immutable; your tree is not.** `exposure` matches against the manifest **frozen at ship time**, not `HEAD`. Re-scanning today tells you what you would ship now, which is not the question asked.
367
+ - **It refuses to guess.** A product bound to a release with no frozen manifest comes back `undetermined` **with a reason**, never a confident-looking `not affected`. That distinction is the whole value of the artifact.
368
+ - **Jurisdiction-neutral by design.** Reporting duties are modeled as **regimes**: the EU CRA (`--regime cra`, applies from **11 September 2026**) and DORA incident reporting (`--regime dora-incident`) ship today. A new jurisdiction is a regime profile, not a new command or a new tool.
369
+ - **No model touches a figure.** Nothing in the evidence path is generated by a language model. Every number is computed from frozen manifests and advisory data.
370
+ - **Offline end to end.** `--offline` with a local advisory file needs no network, and `vg evidence verify` works on a machine that has never heard of Vibgrate.
371
+
372
+ **Trade-off:** the answer is only as good as the manifests you froze. Evidence cannot reconstruct what you shipped before you started recording it — a release you never froze is `undetermined`, permanently. The value compounds from the day you start, which is the argument for starting now rather than in September.
373
+
374
+ ### The lifecycle
375
+
376
+ | Step | Command | What it does |
377
+ | --- | --- | --- |
378
+ | 1. Set up | `vg evidence init` | Org, coordinator CSIRT, and the person with filing authority |
379
+ | 2. Register | `vg evidence product add` | A product with digital elements — markets, classification, scope rationale |
380
+ | 3. Freeze | `vg evidence release` | Pin a shipped version to an immutable component manifest, from an SBOM or scan |
381
+ | 4. Ask | `vg evidence exposure <vuln>` | Which shipped products contain it, at which versions, in which markets, still in support |
382
+ | 5. Prove | `vg evidence verify <bundle>` | Re-check the signed answer offline, on any machine |
383
+
384
+ Between those: `vg evidence readiness` is a deterministic gap report against the regime's obligations, `vg evidence regimes` lists the regimes and their clocks, `vg evidence drill` runs a timed rehearsal against a simulated advisory, `vg evidence watch` joins the CISA KEV catalog to your frozen manifests, `vg evidence pack` builds the submission pack a human pastes into the reporting platform, and `vg evidence export` writes an air-gapped bundle of everything.
385
+
386
+ ### What is in a bundle, and what "verified" means
387
+
388
+ `--bundle <dir>` writes `result.json`, a DSSE/Ed25519 in-toto attestation over it (`evidence.intoto.jsonl`), a `VERIFY.md` a third party can follow, and — with `--tsa <url>` — an RFC 3161 trusted-timestamp token (`timestamp.tsr`).
389
+
390
+ `vg evidence verify` reports one of three honest states, and the middle one matters:
391
+
392
+ | State | Meaning |
393
+ | --- | --- |
394
+ | `verified` | Signature checks, the signer is pinned to a trust root you supplied with `--pub`, **and** the result digest still matches |
395
+ | `unverified` | Cryptographically intact and unmodified, but the signer is not pinned — real, and not yet trusted by you |
396
+ | `failed` | Bad signature, or a `result.json` that no longer matches what was signed |
397
+
398
+ Exit codes make it a CI gate: **0** no exposure · **2** exposure found · **3** undetermined, needs manual review · **1** operational error.
399
+
400
+ Evidence state lives in `.vibgrate/evidence/`. The Ed25519 signing key is minted on first use at `.vibgrate/attest-key.pem` (mode `0600`, with a `.pub` beside it) unless you point at your own with `VG_ATTEST_KEY` — back it up, and never commit it.
401
+
402
+ ---
403
+
186
404
  ## Track drift over time → create a free workspace
187
405
 
188
406
  The CLI is fully useful offline. When you want **trends across runs and repos** — so drift becomes a metric you manage, not a surprise you discover — push scans to a [Vibgrate Cloud](https://vibgrate.com/cloud) workspace:
@@ -264,6 +482,9 @@ vg vex # generate an OpenVEX document for attestation
264
482
  - Works without login and without any SaaS dependency.
265
483
  - `--offline` disables registry/network lookups; `--package-manifest <file>` feeds drift scoring a local version bundle.
266
484
  - `--max-privacy` suppresses local artifact writes and high-context scanners; `--no-local-artifacts` skips writing `.vibgrate/*.json` to disk.
485
+ - `vg code --local` keeps model inference on-device: a local model, the local graph, no hosted call and no model-catalog fetch. The agent's own web tools stay available and, like every network step, are approved by you before they run.
486
+ - `vg code` never reads a secrets file into a prompt, and redacts credential shapes from files it does read.
487
+ - `vg evidence` runs locally: `--offline` with a local advisory file needs no network, and `vg evidence verify` checks a bundle on a machine with no account and no connection. Nothing reaches Vibgrate Cloud until you run `vg evidence push`.
267
488
 
268
489
  ```bash
269
490
  vg scan --offline --package-manifest ./package-versions.zip --max-privacy --format json --out scan.json
@@ -305,7 +526,7 @@ Under each set, commands are listed A–Z. A short **typical path** (usual order
305
526
  | `vg ask "<question>"` | Query the map in natural language |
306
527
  | `vg build [path]` | Build / update the code map (incremental, deterministic) |
307
528
  | `vg bundle` | Build an air-gapped bundle (grammars + graph + library catalog) |
308
- | `vg code "<instruction>"` | Propose a graph-grounded code edit (dry-run by default; `--apply --yes` to write) |
529
+ | `vg code ["<instruction>"]` | Graph-grounded coding agent — local or hosted model, every edit and command approved (`--auto` for CI, `--single` for a one-shot diff) |
309
530
  | `vg embed` | Precompute the semantic index for instant `vg ask` |
310
531
  | `vg export` | Export the map (json / ndjson / graphml / dot / cypher / md / html / SBOM) |
311
532
  | `vg facts <file>` | Deterministic facts for a node (contracts, invariants) |
@@ -315,6 +536,7 @@ Under each set, commands are listed A–Z. A short **typical path** (usual order
315
536
  | `vg lib <package>` | Version-correct, drift-annotated library docs |
316
537
  | `vg map` / `vg hubs` / `vg areas` / `vg oddities` | Map insights: overview, most-depended-on code, natural groupings, cross-area smells |
317
538
  | `vg models` | Code Modes (Spark / Flow / Forge) + local fleet (Ollama / LM Studio / gguf); `install` / `pull` by default (`--dry-run` to preview) |
539
+ | `vg module` | Manage optional local modules (`relevance`, `hcs`): `status`, `install`, `remove` |
318
540
  | `vg path <from> <to>` | How A connects to B (shortest path) |
319
541
  | `vg savings` | Local report of tokens/$ saved vs a grep baseline (estimates) |
320
542
  | `vg watch` | Rebuild the map when files change |
@@ -326,6 +548,22 @@ Under each set, commands are listed A–Z. A short **typical path** (usual order
326
548
  | `vg tree <file>` | Call tree rooted at a node |
327
549
  | `vg unknowns` | What the graph cannot resolve, ranked by blast radius |
328
550
 
551
+ ### Holistic Code Specification (`vg hcs`)
552
+
553
+ Deterministic code facts for **Rust, Ruby, PHP, Dart, Swift, Scala, C++, COBOL, and VB6** — one NDJSON line per fact, reproducible on any machine, so a fact stream is something you can commit, diff, and gate CI on. Extraction is incremental by default: re-running over an existing stream costs only the delta.
554
+
555
+ All HCS computation runs in an optional, separately-licensed engine module that executes in a local WASM sandbox — no network calls, no process spawns. It is fetched on first use, or ahead of time with `vg module install hcs`. When it is unavailable, every `vg hcs` command exits `6` — never `2`, so a CI gate can't mistake "engine missing" for a verdict.
556
+
557
+ **Typical path:** `vg hcs extract` → `vg hcs digest` / `vg hcs map` / `vg hcs gate`
558
+
559
+ | Command | Description |
560
+ | --- | --- |
561
+ | `vg hcs extract [dir]` | Extract facts into an NDJSON stream (incremental by default; `--full` to re-extract) |
562
+ | `vg hcs digest` | Render a fact stream as a readable specification (`md` / `json` / `html`) |
563
+ | `vg hcs gate` | Governance gate: diff two streams, fail (exit `2`) on material structural regressions |
564
+ | `vg hcs map` | Build the System Map from a fact stream (`json` / `md` / `mermaid`) |
565
+ | `vg hcs validate <file>` | Validate a stream against the HCS spec (Appendix-I conformance code) |
566
+
329
567
  ### Diagnostics, IDE & runtime
330
568
 
331
569
  **Typical path:** `vg doctor` → `vg lsp` → `vg daemon`
@@ -334,6 +572,7 @@ Under each set, commands are listed A–Z. A short **typical path** (usual order
334
572
  | --- | --- |
335
573
  | `vg daemon` | Local workspace daemon for multi-root graph sessions (IDE / agents): `status`, `ensure`, `publish`, `query`, `impact`, … |
336
574
  | `vg doctor` | Read-only diagnosis: config, credentials (redacted), map freshness, hosted reachability, MCP launch |
575
+ | `vg llm-host` | Isolated local inference host process (`serve`, `status`) for enterprise process isolation |
337
576
  | `vg lsp` | Language server (stdio) — engine behind Vibgrate for VS Code and other thin IDE clients |
338
577
  | `vg policy` | Show production context-policy pin; `vg policy verify <file>` for signed learning patches |
339
578
 
@@ -346,7 +585,7 @@ Under each set, commands are listed A–Z. A short **typical path** (usual order
346
585
  | `vg baseline [path]` | Create a drift baseline |
347
586
  | `vg bisect <package> <constraint>` | The commit where a dependency crossed a version line (`--assert` to gate CI) |
348
587
  | `vg drift` | What is outdated across dependencies (offline; `--online` for currency) |
349
- | `vg evidence` | Signed, reproducible regulatory evidence (regime-neutral; CRA first) |
588
+ | `vg evidence` | Signed, reproducible regulatory evidence — jurisdiction-neutral regimes (EU CRA first, DORA incident reporting too): `init`, `product`, `release`, `exposure`, `readiness`, `drill`, `watch`, `pack`, `verify`, `push`, `export` |
350
589
  | `vg fix` | Ranked, risk-tiered upgrade plans from the hosted planner — then apply the one you choose |
351
590
  | `vg init [path]` | Initialise config and `.vibgrate/` |
352
591
  | `vg report` | Generate a report from a scan artifact |
@@ -376,7 +615,7 @@ vg scan [path] [--vulns] [--full] [--format text|json|sarif|md] [--out <file>] [
376
615
  [--drift-budget <score>] [--drift-worsening <percent>] [--baseline <file>]
377
616
  ```
378
617
 
379
- Full flag and configuration reference: **[DOCS.md](./DOCS.md)** · **[vibgrate.com/cli](https://vibgrate.com/cli)** · [help centre](https://vibgrate.com/help) · [glossary](https://vibgrate.com/glossary).
618
+ Full flag and configuration reference: **[DOCS.md](./DOCS.md)** · **[vibgrate.com/cli](https://vibgrate.com/cli)** · [help center](https://vibgrate.com/help) · [glossary](https://vibgrate.com/glossary).
380
619
 
381
620
  ---
382
621
 
@@ -389,8 +628,25 @@ Most systems don't fail all at once — they accumulate upgrade debt and archite
389
628
  | **One-off scan** | Fast snapshot of drift score, lag, and findings | Audits, due diligence, migration planning |
390
629
  | **CI-integrated scan** | Continuous drift signal, SARIF annotations, regression guardrails | Keeping upgrade debt under control long-term |
391
630
  | **MCP + graph** | AI assistant with real-time, offline codebase context | Day-to-day development, code review, refactoring |
631
+ | **VG Code** | A coding agent grounded in the graph — terminal or VS Code panel, local model or Relay, governed edit by edit | Making the change, not just planning it |
632
+
633
+ Recommended rollout: `vg build` + `vg install` now, add `vg scan` to CI this week, try `vg code` on one small task.
392
634
 
393
- Recommended rollout: `vg build` + `vg install` now, add `vg scan` to CI this week.
635
+ ---
636
+
637
+ ## Known limits
638
+
639
+ - **Drift and risk scores are estimates**, computed from manifests, lockfiles, and public advisory data. They are a prioritization signal, not a compliance determination or a certification.
640
+ - **VG Code quality tracks the model you choose.** No model ships with the CLI. A small local model handles mechanical edits well and struggles with cross-cutting design changes; `vg models` tells you what fits this machine, not what will do the job. Reach for Relay or another hosted model when the task is bigger than the machine.
641
+ - **Guided `vg code` needs a terminal.** In CI, pass an instruction plus `--auto` (or `--mock`) — the interactive picker never appears, and the agent refuses to run unattended without it.
642
+ - **The map is the ceiling.** Anything the resolver could not tie to a definition is invisible to `search_code` and `graph_impact`. Run `vg unknowns` to see what the graph is missing, ranked by blast radius.
643
+ - **`--auto` is a denylist, not a sandbox.** It blocks known-catastrophic commands; it does not confine the agent. Run untrusted instructions in a container, or under `--worktree` with `--security-tier L1`.
644
+ - **`--verify` re-runs your tests; it does not prove correctness.** Failures are fed back for a repair attempt. Passing tests mean passing tests.
645
+ - **Vulnerability data is only as current as its source.** `--vulns` reports what OSV knows at scan time; offline runs report what is in the bundle you supplied.
646
+ - **Vibgrate Evidence produces evidence, not a compliance determination.** It supports your obligations under a regime; it does not decide that you meet them, does not certify anything, and is not legal advice. The filing is yours.
647
+ - **Evidence cannot look backwards.** Exposure is answered from manifests frozen at ship time. A release you never froze stays `undetermined` — there is no way to reconstruct it after the fact.
648
+ - **`vg evidence watch` surfaces a KEV listing, not a determination.** Whether a vulnerability is "actively exploited" for the purposes of a filing is your call, not the tool's.
649
+ - **`vg evidence verify` does not re-verify the TSA certificate chain.** It confirms the RFC 3161 token's imprint binds to `result.json` and surfaces the trusted time. For the full chain, use `openssl ts -verify -in timestamp.tsr -data result.json -CAfile <tsa-ca.pem>`.
394
650
 
395
651
  ---
396
652
 
@@ -398,12 +654,13 @@ Recommended rollout: `vg build` + `vg install` now, add `vg scan` to CI this wee
398
654
 
399
655
  - Node.js **22+**
400
656
  - macOS, Linux, Windows
657
+ - VG Code additionally needs a model: a local runtime (a Code Mode pack, Ollama, LM Studio, or a GGUF on disk), a [Vibgrate Relay](https://vibgrate.com/relay) token, or an API key for another hosted provider. Run `vg models` to see what fits this machine.
401
658
 
402
659
  ## Command name conflicts
403
660
 
404
661
  `vg` is short and occasionally conflicts with other tools (`virtualgo`, `vugu`, the oh-my-zsh `git verify-commit` alias, custom shell aliases, etc.).
405
662
 
406
- **`vibgrate` is an identical alias** — same binary, same flags, same behaviour. If `vg` is taken on your system, use `vibgrate` everywhere instead:
663
+ **`vibgrate` is an identical alias** — same binary, same flags, same behavior. If `vg` is taken on your system, use `vibgrate` everywhere instead:
407
664
 
408
665
  ```bash
409
666
  vibgrate scan # same as: vg scan
@@ -420,22 +677,27 @@ When `@vibgrate/cli` is installed, it registers **both** bin entries uncondition
420
677
  | | |
421
678
  |---|---|
422
679
  | [**Vibgrate CLI**](https://vibgrate.com/cli) | This package — scan, score, and map any repository. [Live demo](https://vibgrate.com/cli) · [benchmarks](https://vibgrate.com/cli/benchmarks) · [token savings](https://vibgrate.com/cli/benchmarks/token-savings) |
423
- | [**Vibgrate for VS Code**](https://vibgrate.com/vscode) | The same score in your editor, plus VG Code. [Marketplace](https://marketplace.visualstudio.com/items?itemName=vibgrate.vibgrate-vscode) · [Open VSX](https://open-vsx.org/extension/vibgrate/vibgrate-vscode) |
680
+ | [**Vibgrate for VS Code**](https://vibgrate.com/vscode) | The same score in your editor, plus the **[VG Code](https://vibgrate.com/vgcode)** panel — the graphical surface for `vg code`, running this same agent. [Marketplace](https://marketplace.visualstudio.com/items?itemName=vibgrate.vibgrate-vscode) · [Open VSX](https://open-vsx.org/extension/vibgrate/vibgrate-vscode) |
681
+ | [**Vibgrate Relay**](https://vibgrate.com/relay) | Hosted models for VG Code on one Vibgrate account — no per-provider API keys, prepaid per-token credit, local models still the offline path |
424
682
  | [**Vibgrate Graph**](https://vibgrate.com/graph) | The deterministic local code map behind `vg map`, `vg impact` and `vg show` |
425
683
  | [**Vibgrate AI Context**](https://vibgrate.com/library) | `vg serve` — version-correct library docs, your code map, and offline drift, served to any assistant. [Supported assistants](https://vibgrate.com/skills) · [on mcp.so](https://mcp.so/servers/cli-a2b26f) |
426
684
  | [**Vibgrate Cloud MCP**](https://vibgrate.com/mcp) | The hosted MCP server over your workspace data (OAuth 2.1) |
427
685
  | [**Vibgrate Cloud**](https://vibgrate.com/cloud) | History, trends, and team rollups. [Create a workspace](https://dash.vibgrate.com) · [pricing](https://vibgrate.com/pricing) |
428
- | [**Vibgrate Evidence**](https://vibgrate.com/evidence) | Signed, reproducible release evidence including for the [EU CRA](https://vibgrate.com/cra) |
686
+ | [**Vibgrate Evidence**](https://vibgrate.com/evidence) | `vg evidence` — freeze shipped releases, then answer "which shipped products contain this vulnerability?" as signed, offline-verifiable evidence. Jurisdiction-neutral regimes, [EU CRA](https://vibgrate.com/cra) first |
429
687
 
430
688
  **How the scores work:** [DriftScore](https://vibgrate.com/driftscore) · [RiskScore](https://vibgrate.com/riskscore) · [DriftRisk Index](https://vibgrate.com/driftrisk) · [published methodology](https://vibgrate.com/whitepapers/software-risk-and-drift-scoring-methodology) · [public index of real scans](https://vibgrate.com/driftrisk/index) · [README badges](https://vibgrate.com/badges)
431
689
 
432
- **Reference:** [package registry](https://vibgrate.com/packages) · [integrations marketplace](https://vibgrate.com/marketplace) · [glossary](https://vibgrate.com/glossary) · [help centre](https://vibgrate.com/help) · [security](https://vibgrate.com/security) · [mission](https://vibgrate.com/mission)
690
+ **Reference:** [package registry](https://vibgrate.com/packages) · [integrations marketplace](https://vibgrate.com/marketplace) · [glossary](https://vibgrate.com/glossary) · [help center](https://vibgrate.com/help) · [security](https://vibgrate.com/security) · [mission](https://vibgrate.com/mission)
433
691
 
434
692
  <p align="center">
435
693
  <a href="https://dash.vibgrate.com"><strong>Create a free workspace →</strong></a>
436
694
  &nbsp;·&nbsp;
437
695
  <a href="https://vibgrate.com/cli">Try the live demo</a>
438
696
  &nbsp;·&nbsp;
697
+ <a href="https://vibgrate.com/vgcode">VG Code</a>
698
+ &nbsp;·&nbsp;
699
+ <a href="https://vibgrate.com/evidence">Evidence</a>
700
+ &nbsp;·&nbsp;
439
701
  <a href="./DOCS.md">Full docs</a>
440
702
  </p>
441
703
 
@@ -0,0 +1,26 @@
1
+ export { CONTEXT_POLICY_VERSION, DISCOVERY_TOOLS, MUTATION_TOOLS, compact, compactWithModel, runAgent } from './chunk-YL4OIUA5.js';
2
+ import './chunk-543E6WDJ.js';
3
+ import './chunk-ZSECAGSU.js';
4
+ import './chunk-RQAKBRAV.js';
5
+ import './chunk-RBIRXQR6.js';
6
+ import './chunk-5HYCB55P.js';
7
+ import './chunk-74UBGF4P.js';
8
+ import './chunk-3HNPVXUK.js';
9
+ import './chunk-VIWZ4QT7.js';
10
+ import './chunk-NQUWC2IA.js';
11
+ import './chunk-J7LKEB2R.js';
12
+ export { summarizeCapsule } from './chunk-NKRWKCME.js';
13
+ import './chunk-2TJ5EY4I.js';
14
+ import './chunk-EZ7UC5Y5.js';
15
+ import './chunk-6NOGNOE4.js';
16
+ import './chunk-RXP66R2E.js';
17
+ import './chunk-2GSMCOIC.js';
18
+ import './chunk-QPXVTQ7O.js';
19
+ import './chunk-ENFSSUNK.js';
20
+ import './chunk-PV76EO4G.js';
21
+ import './chunk-BWPBB45M.js';
22
+ import './chunk-JFGYT6BI.js';
23
+ import './chunk-BPF3YX2U.js';
24
+ import './chunk-Z6ZWNWWR.js';
25
+ //# sourceMappingURL=agent-CUYQKC6S.js.map
26
+ //# sourceMappingURL=agent-CUYQKC6S.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"agent-2ZISYEQF.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"agent-CUYQKC6S.js"}
@@ -1,9 +1,9 @@
1
- export { addApprovalRule, approvalsPath, findMatchingRule, globMatch, loadApprovalRules, normalizeCommandPrefix, removeApprovalRule, ruleForAction, ruleKey, ruleLabel, saveApprovalRules } from './chunk-A4F7ESUR.js';
2
- import './chunk-K7MONYIM.js';
3
- import './chunk-QIUQH2ND.js';
1
+ export { addApprovalRule, approvalsPath, findMatchingRule, globMatch, loadApprovalRules, normalizeCommandPrefix, removeApprovalRule, ruleForAction, ruleKey, ruleLabel, saveApprovalRules } from './chunk-ZSECAGSU.js';
2
+ import './chunk-ENFSSUNK.js';
3
+ import './chunk-PV76EO4G.js';
4
4
  import './chunk-BWPBB45M.js';
5
5
  import './chunk-JFGYT6BI.js';
6
6
  import './chunk-BPF3YX2U.js';
7
7
  import './chunk-Z6ZWNWWR.js';
8
- //# sourceMappingURL=approvals-DOZ5RWJP.js.map
9
- //# sourceMappingURL=approvals-DOZ5RWJP.js.map
8
+ //# sourceMappingURL=approvals-IPMUDEDV.js.map
9
+ //# sourceMappingURL=approvals-IPMUDEDV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"approvals-DOZ5RWJP.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"approvals-IPMUDEDV.js"}
@@ -0,0 +1,9 @@
1
+ export { baselineCommand, runBaseline } from './chunk-2BURPMYA.js';
2
+ import './chunk-ANYL7SUI.js';
3
+ import './chunk-DT4KIVRI.js';
4
+ import './chunk-CRAMOEBE.js';
5
+ import './chunk-RXP66R2E.js';
6
+ import './chunk-PV76EO4G.js';
7
+ import './chunk-Z6ZWNWWR.js';
8
+ //# sourceMappingURL=baseline-NZFGLMER.js.map
9
+ //# sourceMappingURL=baseline-NZFGLMER.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"baseline-AGX42TZM.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"baseline-NZFGLMER.js"}
@@ -1,4 +1,4 @@
1
- import { runCoreScan, compactUiPurpose } from './chunk-N6ZMZ5AI.js';
1
+ import { runCoreScan, compactUiPurpose } from './chunk-ANYL7SUI.js';
2
2
  import { findPackageJsonFiles, readJsonFile, findFiles, readTextFile, pathExists, isSkippedDirName } from './chunk-DT4KIVRI.js';
3
3
  import { writeJsonFile } from './chunk-CRAMOEBE.js';
4
4
  import * as path3 from 'path';
@@ -4664,5 +4664,5 @@ var baselineCommand = new Command("baseline").description("Create a drift baseli
4664
4664
  });
4665
4665
 
4666
4666
  export { baselineCommand, loadAdvancedScanHook, runBaseline };
4667
- //# sourceMappingURL=chunk-TFAXW7VM.js.map
4668
- //# sourceMappingURL=chunk-TFAXW7VM.js.map
4667
+ //# sourceMappingURL=chunk-2BURPMYA.js.map
4668
+ //# sourceMappingURL=chunk-2BURPMYA.js.map