@optave/codegraph 2.5.1 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -55,7 +55,7 @@ cd your-project
55
55
  codegraph build
56
56
  ```
57
57
 
58
- That's it. No config files, no Docker, no JVM, no API keys, no accounts. The graph is ready to query. Add `codegraph mcp` to your AI agent's config and it has full access to your dependency graph through 24 MCP tools (25 in multi-repo mode).
58
+ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The graph is ready to query. Add `codegraph mcp` to your AI agent's config and it has full access to your dependency graph through 30 MCP tools (31 in multi-repo mode).
59
59
 
60
60
  ### Why it matters
61
61
 
@@ -69,25 +69,33 @@ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The gra
69
69
 
70
70
  ### Feature comparison
71
71
 
72
- <sub>Comparison last verified: February 2026</sub>
72
+ <sub>Comparison last verified: March 2026. Full analysis: <a href="generated/COMPETITIVE_ANALYSIS.md">COMPETITIVE_ANALYSIS.md</a></sub>
73
73
 
74
74
  | Capability | codegraph | [joern](https://github.com/joernio/joern) | [narsil-mcp](https://github.com/postrv/narsil-mcp) | [code-graph-rag](https://github.com/vitali87/code-graph-rag) | [cpg](https://github.com/Fraunhofer-AISEC/cpg) | [GitNexus](https://github.com/abhigyanpatwari/GitNexus) | [CodeMCP](https://github.com/SimplyLiz/CodeMCP) | [axon](https://github.com/harshkedia177/axon) |
75
75
  |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
76
76
  | Function-level analysis | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
77
- | Multi-language | **11** | **14** | **32** | Multi | **~10** | **9** | SCIP langs | Few |
78
- | Semantic search | **Yes** | — | **Yes** | **Yes** | — | **Yes** | — | |
79
- | MCP / AI agent support | **Yes** | — | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | — |
80
- | Git diff impact | **Yes** | — | — | — | — | **Yes** | — | **Yes** |
81
- | Git co-change analysis | **Yes** | — | — | — | — | — | **Yes** | **Yes** |
82
- | Watch mode | **Yes** | — | **Yes** | — | — | — | — | — |
83
- | Dead code / role classification | **Yes** | — | **Yes** | — | — | — | — | **Yes** |
84
- | Cycle detection | **Yes** | — | **Yes** | — | — | — | — | **Yes** |
85
- | Incremental rebuilds | **O(changed)** | — | O(n) Merkle | — | — | — | — | — |
86
- | Zero config | **Yes** | — | **Yes** | | | | | |
77
+ | Multi-language | **11** | **14** | **32** | **11** | **~10** | **12** | **12** | **3** |
78
+ | Semantic search | **Yes** | — | **Yes** | **Yes** | — | **Yes** | — | **Yes** |
79
+ | Hybrid BM25 + semantic | **Yes** | — | | | | **Yes** | — | **Yes** |
80
+ | CODEOWNERS integration | **Yes** | — | — | — | — | | — | |
81
+ | Architecture boundary rules | **Yes** | — | — | — | — | — | | |
82
+ | CI validation predicates | **Yes** | — | | — | — | — | — | — |
83
+ | Composite audit command | **Yes** | — | | — | — | — | — | |
84
+ | Batch querying | **Yes** | — | | — | — | — | — | |
85
+ | Graph snapshots | **Yes** | — | | — | — | — | — | — |
86
+ | MCP / AI agent support | **Yes** | — | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
87
+ | Git diff impact | **Yes** | — | — | — | — | **Yes** | **Yes** | **Yes** |
88
+ | Branch structural diff | **Yes** | — | — | — | — | — | — | **Yes** |
89
+ | Git co-change analysis | **Yes** | — | — | — | — | — | — | **Yes** |
90
+ | Watch mode | **Yes** | — | **Yes** | **Yes** | — | — | **Yes** | **Yes** |
91
+ | Dead code / role classification | **Yes** | — | **Yes** | — | — | — | **Yes** | **Yes** |
92
+ | Cycle detection | **Yes** | — | — | — | — | — | — | — |
93
+ | Incremental rebuilds | **O(changed)** | — | O(n) Merkle | — | — | — | Go only | **Yes** |
94
+ | Zero config | **Yes** | — | **Yes** | — | — | **Yes** | — | **Yes** |
87
95
  | Embeddable JS library (`npm install`) | **Yes** | — | — | — | — | — | — | — |
88
- | LLM-optional (works without API keys) | **Yes** | **Yes** | **Yes** | | **Yes** | **Yes** | **Yes** | **Yes** |
89
- | Commercial use allowed | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | | | |
90
- | Open source | **Yes** | Yes | Yes | Yes | Yes | Yes | Custom | |
96
+ | LLM-optional (works without API keys) | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
97
+ | Commercial use allowed | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | No | Paid | **Yes** |
98
+ | Open source | **Yes** | Yes | Yes | Yes | Yes | No | No | Yes |
91
99
 
92
100
  ### What makes codegraph different
93
101
 
@@ -97,10 +105,10 @@ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The gra
97
105
  | **🔓** | **Zero-cost core, LLM-enhanced when you want** | Full graph analysis with no API keys, no accounts, no cost. Optionally bring your own LLM provider — your code only goes where you choose |
98
106
  | **🔬** | **Function-level, not just files** | Traces `handleAuth()` → `validateToken()` → `decryptJWT()` and shows 14 callers across 9 files break if `decryptJWT` changes |
99
107
  | **🏷️** | **Role classification** | Every symbol auto-tagged as `entry`/`core`/`utility`/`adapter`/`dead`/`leaf` — agents instantly know what they're looking at |
100
- | **🤖** | **Built for AI agents** | 24-tool [MCP server](https://modelcontextprotocol.io/) — AI assistants query your graph directly. Single-repo by default |
108
+ | **🤖** | **Built for AI agents** | 30-tool [MCP server](https://modelcontextprotocol.io/) — AI assistants query your graph directly. Single-repo by default |
101
109
  | **🌐** | **Multi-language, one CLI** | JS/TS + Python + Go + Rust + Java + C# + PHP + Ruby + HCL in a single graph |
102
110
  | **💥** | **Git diff impact** | `codegraph diff-impact` shows changed functions, their callers, and full blast radius — enriched with historically coupled files from git co-change analysis. Ships with a GitHub Actions workflow |
103
- | **🧠** | **Semantic search** | Local embeddings by default, LLM-powered when opted in multi-query with RRF ranking via `"auth; token; JWT"` |
111
+ | **🧠** | **Hybrid search** | BM25 keyword + semantic embeddings fused via RRF — `hybrid` (default), `semantic`, or `keyword` mode; multi-query via `"auth; token; JWT"` |
104
112
 
105
113
  ---
106
114
 
@@ -127,6 +135,8 @@ git clone https://github.com/optave/codegraph.git
127
135
  cd codegraph && npm install && npm link
128
136
  ```
129
137
 
138
+ > **Dev builds:** Pre-release tarballs are attached to [GitHub Releases](https://github.com/optave/codegraph/releases). Install with `npm install -g <path-to-tarball>`. Note that `npm install -g <tarball-url>` does not work because npm cannot resolve optional platform-specific dependencies from a URL — download the `.tgz` first, then install from the local file.
139
+
130
140
  ### For AI agents
131
141
 
132
142
  Add codegraph to your agent's instructions (e.g. `CLAUDE.md`):
@@ -144,7 +154,7 @@ After modifying code:
144
154
  Or connect directly via MCP:
145
155
 
146
156
  ```bash
147
- codegraph mcp # 24-tool MCP server — AI queries the graph directly
157
+ codegraph mcp # 30-tool MCP server — AI queries the graph directly
148
158
  ```
149
159
 
150
160
  Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) &middot; [CLAUDE.md template](docs/guides/ai-agent-guide.md#claudemd-template)
@@ -170,11 +180,21 @@ Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) &middot; [CLAU
170
180
  | 📤 | **Export** | DOT (Graphviz), Mermaid, and JSON graph export |
171
181
  | 🧠 | **Semantic search** | Embeddings-powered natural language search with multi-query RRF ranking |
172
182
  | 👀 | **Watch mode** | Incrementally update the graph as files change |
173
- | 🤖 | **MCP server** | 24-tool MCP server for AI assistants; single-repo by default, opt-in multi-repo |
183
+ | 🤖 | **MCP server** | 30-tool MCP server for AI assistants; single-repo by default, opt-in multi-repo |
174
184
  | ⚡ | **Always fresh** | Three-tier incremental detection — sub-second rebuilds even on large codebases |
175
185
  | 🧮 | **Complexity metrics** | Cognitive, cyclomatic, nesting depth, Halstead, and Maintainability Index per function |
176
186
  | 🏘️ | **Community detection** | Louvain clustering to discover natural module boundaries and architectural drift |
177
187
  | 📜 | **Manifesto rule engine** | Configurable pass/fail rules with warn/fail thresholds for CI gates (exit code 1 on fail) |
188
+ | 👥 | **CODEOWNERS integration** | Map graph nodes to CODEOWNERS entries — see who owns each function, ownership boundaries in `diff-impact` |
189
+ | 💾 | **Graph snapshots** | `snapshot save`/`restore` for instant DB backup and rollback — checkpoint before refactoring, restore without rebuilding |
190
+ | 🔎 | **Hybrid BM25 + semantic search** | FTS5 keyword search + embedding-based semantic search fused via Reciprocal Rank Fusion — `hybrid`, `semantic`, or `keyword` modes |
191
+ | 📄 | **Pagination & NDJSON streaming** | Universal `--limit`/`--offset` pagination on all MCP tools and CLI commands; `--ndjson` for newline-delimited JSON streaming |
192
+ | 🔀 | **Branch structural diff** | Compare code structure between two git refs — added/removed/changed symbols with transitive caller impact |
193
+ | 🛡️ | **Architecture boundaries** | User-defined dependency rules between modules with onion architecture preset — violations flagged in manifesto and CI |
194
+ | ✅ | **CI validation predicates** | `check` command with configurable gates: complexity, blast radius, cycles, boundary violations — exit code 0/1 for CI |
195
+ | 📋 | **Composite audit** | Single `audit` command combining explain + impact + health metrics per function — one call instead of 3-4 |
196
+ | 🚦 | **Triage queue** | `triage` merges connectivity, hotspots, roles, and complexity into a ranked audit priority queue |
197
+ | 📦 | **Batch querying** | Accept a list of targets and return all results in one JSON payload — enables multi-agent parallel dispatch |
178
198
 
179
199
  See [docs/examples](docs/examples) for real-world CLI and MCP usage examples.
180
200
 
@@ -227,6 +247,10 @@ codegraph diff-impact # Impact of unstaged git changes
227
247
  codegraph diff-impact --staged # Impact of staged changes
228
248
  codegraph diff-impact HEAD~3 # Impact vs a specific ref
229
249
  codegraph diff-impact main --format mermaid -T # Mermaid flowchart of blast radius
250
+ codegraph branch-compare main feature-branch # Structural diff between two refs
251
+ codegraph branch-compare main HEAD --no-tests # Symbols added/removed/changed vs main
252
+ codegraph branch-compare v2.4.0 v2.5.0 --json # JSON output for programmatic use
253
+ codegraph branch-compare main HEAD --format mermaid # Mermaid diagram of structural changes
230
254
  ```
231
255
 
232
256
  ### Co-Change Analysis
@@ -267,6 +291,56 @@ codegraph manifesto # Pass/fail rule engine (exit code 1 on fail)
267
291
  codegraph manifesto -T # Exclude test files from rule evaluation
268
292
  ```
269
293
 
294
+ ### Audit, Triage & Batch
295
+
296
+ Composite commands for risk-driven workflows and multi-agent dispatch.
297
+
298
+ ```bash
299
+ codegraph audit <file-or-function> # Combined explain + impact + health in one report
300
+ codegraph audit src/queries.js -T # Audit all functions in a file
301
+ codegraph triage # Ranked audit priority queue (connectivity + hotspots + roles)
302
+ codegraph triage -T --limit 20 # Top 20 riskiest functions, excluding tests
303
+ codegraph batch target1 target2 ... # Batch query multiple targets in one call
304
+ codegraph batch --json targets.json # Batch from a JSON file
305
+ ```
306
+
307
+ ### CI Validation
308
+
309
+ `codegraph check` provides configurable pass/fail predicates for CI gates and state machines. Exit code 0 = pass, 1 = fail.
310
+
311
+ ```bash
312
+ codegraph check --staged # Check staged changes
313
+ codegraph check --no-new-cycles # Fail if staged changes introduce cycles
314
+ codegraph check --max-complexity 30 # Fail if any function exceeds complexity threshold
315
+ codegraph check --max-blast-radius 50 # Fail if blast radius exceeds limit
316
+ codegraph check --no-boundary-violations # Fail on architecture boundary violations
317
+ codegraph check main # Check current branch vs main
318
+ ```
319
+
320
+ ### CODEOWNERS
321
+
322
+ Map graph symbols to CODEOWNERS entries. Shows who owns each function and surfaces ownership boundaries.
323
+
324
+ ```bash
325
+ codegraph owners # Show ownership for all symbols
326
+ codegraph owners src/queries.js # Ownership for symbols in a specific file
327
+ codegraph owners --boundary # Show ownership boundaries between modules
328
+ codegraph owners --owner @backend # Filter by owner
329
+ ```
330
+
331
+ Ownership data also enriches `diff-impact` — affected owners and suggested reviewers appear alongside the static dependency analysis.
332
+
333
+ ### Snapshots
334
+
335
+ Lightweight SQLite DB backup and restore — checkpoint before refactoring, instantly rollback without rebuilding.
336
+
337
+ ```bash
338
+ codegraph snapshot save before-refactor # Save a named snapshot
339
+ codegraph snapshot list # List all snapshots
340
+ codegraph snapshot restore before-refactor # Restore a snapshot
341
+ codegraph snapshot delete before-refactor # Delete a snapshot
342
+ ```
343
+
270
344
  ### Export & Visualization
271
345
 
272
346
  ```bash
@@ -287,6 +361,9 @@ codegraph embed # Build embeddings (default: nomic-v1.5)
287
361
  codegraph embed --model nomic # Use a different model
288
362
  codegraph search "handle authentication"
289
363
  codegraph search "parse config" --min-score 0.4 -n 10
364
+ codegraph search "parseConfig" --mode keyword # BM25 keyword-only (exact names)
365
+ codegraph search "auth flow" --mode semantic # Embedding-only (conceptual)
366
+ codegraph search "auth flow" --mode hybrid # BM25 + semantic RRF fusion (default)
290
367
  codegraph models # List available models
291
368
  ```
292
369
 
@@ -336,13 +413,17 @@ codegraph registry remove <name> # Unregister
336
413
  | Flag | Description |
337
414
  |---|---|
338
415
  | `-d, --db <path>` | Custom path to `graph.db` |
339
- | `-T, --no-tests` | Exclude `.test.`, `.spec.`, `__test__` files (available on `fn`, `fn-impact`, `path`, `context`, `explain`, `where`, `diff-impact`, `search`, `map`, `hotspots`, `roles`, `co-change`, `deps`, `impact`, `complexity`, `communities`, `manifesto`) |
416
+ | `-T, --no-tests` | Exclude `.test.`, `.spec.`, `__test__` files (available on `fn`, `fn-impact`, `path`, `context`, `explain`, `where`, `diff-impact`, `search`, `map`, `hotspots`, `roles`, `co-change`, `deps`, `impact`, `complexity`, `communities`, `manifesto`, `branch-compare`, `audit`, `triage`, `check`) |
340
417
  | `--depth <n>` | Transitive trace depth (default varies by command) |
341
418
  | `-j, --json` | Output as JSON |
342
419
  | `-v, --verbose` | Enable debug output |
343
420
  | `--engine <engine>` | Parser engine: `native`, `wasm`, or `auto` (default: `auto`) |
344
421
  | `-k, --kind <kind>` | Filter by kind: `function`, `method`, `class`, `struct`, `enum`, `trait`, `record`, `module` (`fn`, `context`, `search`) |
345
422
  | `-f, --file <path>` | Scope to a specific file (`fn`, `context`, `where`) |
423
+ | `--mode <mode>` | Search mode: `hybrid` (default), `semantic`, or `keyword` (`search`) |
424
+ | `--ndjson` | Output as newline-delimited JSON (one object per line) |
425
+ | `--limit <n>` | Limit number of results |
426
+ | `--offset <n>` | Skip first N results (pagination) |
346
427
  | `--rrf-k <n>` | RRF smoothing constant for multi-query search (default 60) |
347
428
 
348
429
  ## 🌐 Language Support
@@ -419,18 +500,18 @@ Codegraph also extracts symbols from common callback patterns: Commander `.comma
419
500
 
420
501
  ## 📊 Performance
421
502
 
422
- Self-measured on every release via CI ([build benchmarks](generated/BUILD-BENCHMARKS.md) | [embedding benchmarks](generated/EMBEDDING-BENCHMARKS.md)):
503
+ Self-measured on every release via CI ([build benchmarks](generated/benchmarks/BUILD-BENCHMARKS.md) | [embedding benchmarks](generated/benchmarks/EMBEDDING-BENCHMARKS.md)):
423
504
 
424
505
  | Metric | Latest |
425
506
  |---|---|
426
- | Build speed (native) | **2 ms/file** |
427
- | Build speed (WASM) | **8.4 ms/file** |
507
+ | Build speed (native) | **1.9 ms/file** |
508
+ | Build speed (WASM) | **7.8 ms/file** |
428
509
  | Query time | **2ms** |
429
- | No-op rebuild (native) | **4ms** |
430
- | 1-file rebuild (native) | **97ms** |
431
- | Query: fn-deps | **2.1ms** |
432
- | Query: path | **1.2ms** |
433
- | ~50,000 files (est.) | **~100.0s build** |
510
+ | No-op rebuild (native) | **3ms** |
511
+ | 1-file rebuild (native) | **93ms** |
512
+ | Query: fn-deps | **1.8ms** |
513
+ | Query: path | **1ms** |
514
+ | ~50,000 files (est.) | **~95.0s build** |
434
515
 
435
516
  Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files.
436
517
 
@@ -452,7 +533,7 @@ Optional: `@huggingface/transformers` (semantic search), `@modelcontextprotocol/
452
533
 
453
534
  ### MCP Server
454
535
 
455
- Codegraph includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server with 24 tools (25 in multi-repo mode), so AI assistants can query your dependency graph directly:
536
+ Codegraph includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server with 30 tools (31 in multi-repo mode), so AI assistants can query your dependency graph directly:
456
537
 
457
538
  ```bash
458
539
  codegraph mcp # Single-repo mode (default) — only local project
@@ -494,7 +575,15 @@ This project uses codegraph. The database is at `.codegraph/graph.db`.
494
575
  - `codegraph complexity -T` — per-function complexity metrics (cognitive, cyclomatic, MI)
495
576
  - `codegraph communities --drift -T` — module boundary drift analysis
496
577
  - `codegraph manifesto -T` — pass/fail rule check (CI gate, exit code 1 on fail)
497
- - `codegraph search "<query>"` — semantic search (requires `codegraph embed`)
578
+ - `codegraph audit <target> -T` — combined explain + impact + health in one report
579
+ - `codegraph triage -T` — ranked audit priority queue
580
+ - `codegraph check --staged` — CI validation predicates (exit code 0/1)
581
+ - `codegraph batch target1 target2` — batch query multiple targets at once
582
+ - `codegraph owners [target]` — CODEOWNERS mapping for symbols
583
+ - `codegraph snapshot save <name>` — checkpoint the graph DB before refactoring
584
+ - `codegraph branch-compare main HEAD -T` — structural diff between two refs (added/removed/changed symbols)
585
+ - `codegraph search "<query>"` — hybrid search (requires `codegraph embed`)
586
+ - `codegraph search "<query>" --mode keyword` — BM25 keyword search
498
587
  - `codegraph cycles` — check for circular dependencies
499
588
 
500
589
  ### Flags
@@ -660,25 +749,6 @@ const { results: fused } = await multiSearchData(
660
749
  - **Dynamic calls are best-effort** — complex computed property access and `eval` patterns are not resolved
661
750
  - **Python imports** — resolves relative imports but doesn't follow `sys.path` or virtual environment packages
662
751
 
663
- ## 🔍 How Codegraph Compares
664
-
665
- <sub>Last verified: February 2026. Full analysis: <a href="generated/COMPETITIVE_ANALYSIS.md">COMPETITIVE_ANALYSIS.md</a></sub>
666
-
667
- | Capability | codegraph | [joern](https://github.com/joernio/joern) | [narsil-mcp](https://github.com/postrv/narsil-mcp) | [code-graph-rag](https://github.com/vitali87/code-graph-rag) | [cpg](https://github.com/Fraunhofer-AISEC/cpg) | [GitNexus](https://github.com/abhigyanpatwari/GitNexus) |
668
- |---|:---:|:---:|:---:|:---:|:---:|:---:|
669
- | Function-level analysis | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
670
- | Multi-language | **11** | **14** | **32** | Multi | **~10** | **9** |
671
- | Incremental rebuilds | **O(changed)** | — | O(n) Merkle | — | — | — |
672
- | MCP / AI agent support | **Yes** | — | **Yes** | **Yes** | **Yes** | **Yes** |
673
- | Git diff impact | **Yes** | — | — | — | — | **Yes** |
674
- | Git co-change analysis | **Yes** | — | — | — | — | — |
675
- | Dead code / role classification | **Yes** | — | **Yes** | — | — | — |
676
- | Semantic search | **Yes** | — | **Yes** | **Yes** | — | **Yes** |
677
- | Watch mode | **Yes** | — | **Yes** | — | — | — |
678
- | Zero config, no Docker/JVM | **Yes** | — | **Yes** | — | — | — |
679
- | Works without API keys | **Yes** | **Yes** | **Yes** | — | **Yes** | **Yes** |
680
- | Commercial use (Apache/MIT) | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | — |
681
-
682
752
  ## 🗺️ Roadmap
683
753
 
684
754
  See **[ROADMAP.md](docs/roadmap/ROADMAP.md)** for the full development roadmap and **[STABILITY.md](STABILITY.md)** for the stability policy and versioning guarantees. Current plan:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optave/codegraph",
3
- "version": "2.5.1",
3
+ "version": "2.6.0",
4
4
  "description": "Local code graph CLI — parse codebases with tree-sitter, build dependency graphs, query them",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -71,15 +71,16 @@
71
71
  },
72
72
  "optionalDependencies": {
73
73
  "@modelcontextprotocol/sdk": "^1.0.0",
74
- "@optave/codegraph-darwin-arm64": "2.5.1",
75
- "@optave/codegraph-darwin-x64": "2.5.1",
76
- "@optave/codegraph-linux-x64-gnu": "2.5.1",
77
- "@optave/codegraph-win32-x64-msvc": "2.5.1"
74
+ "@optave/codegraph-darwin-arm64": "2.6.0",
75
+ "@optave/codegraph-darwin-x64": "2.6.0",
76
+ "@optave/codegraph-linux-x64-gnu": "2.6.0",
77
+ "@optave/codegraph-win32-x64-msvc": "2.6.0"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@biomejs/biome": "^2.4.4",
81
- "@commitlint/cli": "^19.8",
82
- "@commitlint/config-conventional": "^19.8",
81
+ "@commitlint/cli": "^20.4",
82
+ "@commitlint/config-conventional": "^20.0",
83
+ "@huggingface/transformers": "^3.8.1",
83
84
  "@tree-sitter-grammars/tree-sitter-hcl": "^1.2.0",
84
85
  "@vitest/coverage-v8": "^4.0.18",
85
86
  "commit-and-tag-version": "^12.5",