@optave/codegraph 3.0.4 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -53
- package/package.json +9 -9
- package/src/builder.js +274 -154
- package/src/cfg.js +11 -9
- package/src/cli.js +35 -0
- package/src/dataflow.js +11 -9
- package/src/db.js +7 -0
- package/src/flow.js +3 -70
- package/src/index.js +2 -1
- package/src/mcp.js +60 -0
- package/src/parser.js +58 -131
- package/src/queries.js +60 -21
- package/src/resolve.js +11 -2
- package/src/sequence.js +369 -0
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<a href="#-quick-start">Quick Start</a> ·
|
|
22
22
|
<a href="#-commands">Commands</a> ·
|
|
23
23
|
<a href="#-language-support">Languages</a> ·
|
|
24
|
-
<a href="#-ai-agent-integration">AI Integration</a> ·
|
|
24
|
+
<a href="#-ai-agent-integration-core">AI Integration</a> ·
|
|
25
25
|
<a href="#-how-it-works">How It Works</a> ·
|
|
26
26
|
<a href="#-recommended-practices">Practices</a> ·
|
|
27
27
|
<a href="#-roadmap">Roadmap</a>
|
|
@@ -31,28 +31,30 @@
|
|
|
31
31
|
|
|
32
32
|
## The Problem
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
AI agents are the primary interface to large codebases — and they're flying blind.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
An agent burns a great portion of its token budget on `grep`, `find`, `cat` — re-discovering the same structure every session. It modifies `parseConfig()` without knowing 9 files import it. It hallucinates a function signature because it never saw the real one. Multiply that by every session, every developer, every repo.
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Developers aren't much better off. They inherit projects and spend days grepping to understand what calls what. Architects draw boundary rules that erode within weeks because nothing enforces them. CI catches test failures but can't tell you _"this change silently affects 14 callers across 9 files."_
|
|
39
|
+
|
|
40
|
+
The information exists — it's in the code itself. But without a structured map, agents hallucinate, developers guess, and architecture degrades one unreviewed change at a time.
|
|
39
41
|
|
|
40
42
|
## What Codegraph Does
|
|
41
43
|
|
|
42
44
|
Codegraph builds a function-level dependency graph of your entire codebase — every function, every caller, every dependency — and keeps it current with sub-second incremental rebuilds.
|
|
43
45
|
|
|
44
|
-
It parses your code with [tree-sitter](https://tree-sitter.github.io/) (native Rust or WASM), stores the graph in SQLite, and
|
|
46
|
+
It parses your code with [tree-sitter](https://tree-sitter.github.io/) (native Rust or WASM), stores the graph in SQLite, and exposes it where it matters most:
|
|
45
47
|
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
48
|
+
- **MCP server** — AI agents query the graph directly through 30 tools — one call instead of 30 `grep`/`find`/`cat` invocations
|
|
49
|
+
- **CLI** — developers and agents explore, query, and audit code from the terminal
|
|
48
50
|
- **CI gates** — `check` and `manifesto` commands enforce quality thresholds with exit codes
|
|
49
51
|
- **Programmatic API** — embed codegraph in your own tools via `npm install`
|
|
50
52
|
|
|
51
|
-
Instead of 30 tool calls to maybe discover half your dependencies,
|
|
53
|
+
Instead of an agent burning 30 tool calls to maybe discover half your dependencies, it gets _"this function has 14 callers across 9 files"_ in one MCP call. Instead of hoping architecture rules are followed, you enforce them. Instead of finding breakage in production, `diff-impact --staged` catches it before you commit.
|
|
52
54
|
|
|
53
55
|
**Free. Open source. Fully local.** Zero network calls, zero telemetry. Your code stays on your machine. When you want deeper intelligence, bring your own LLM provider — your code only goes where you choose to send it.
|
|
54
56
|
|
|
55
|
-
**Three commands to
|
|
57
|
+
**Three commands to a queryable graph:**
|
|
56
58
|
|
|
57
59
|
```bash
|
|
58
60
|
npm install -g @optave/codegraph
|
|
@@ -60,7 +62,7 @@ cd your-project
|
|
|
60
62
|
codegraph build
|
|
61
63
|
```
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
No config files, no Docker, no JVM, no API keys, no accounts. Point your agent at the MCP server and it has full structural awareness of your codebase.
|
|
64
66
|
|
|
65
67
|
### Why it matters
|
|
66
68
|
|
|
@@ -68,9 +70,10 @@ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The gra
|
|
|
68
70
|
|---|---|---|
|
|
69
71
|
| **AI agents** | Spend 20+ tool calls per session re-discovering code structure | Get full dependency context in one MCP call |
|
|
70
72
|
| **AI agents** | Modify `parseConfig()` without knowing 9 files import it | `fn-impact parseConfig` shows every caller before the edit |
|
|
71
|
-
| **
|
|
72
|
-
| **Developers** | Rename a function, break 14 call sites silently | `diff-impact --staged` catches breakage before you commit |
|
|
73
|
+
| **AI agents** | Hallucinate function signatures and miss callers | `context <name> -T` returns source, deps, callers, and tests — no guessing |
|
|
73
74
|
| **CI pipelines** | Catch test failures but miss structural degradation | `check --staged` fails the build when blast radius or complexity thresholds are exceeded |
|
|
75
|
+
| **Developers** | Inherit a codebase and grep for hours to understand what calls what | `context handleAuth -T` gives the same structured view agents use |
|
|
76
|
+
| **Developers** | Rename a function, break 14 call sites silently | `diff-impact --staged` catches breakage before you commit |
|
|
74
77
|
| **Architects** | Draw boundary rules that erode within weeks | `manifesto` and `boundaries` enforce architecture rules on every commit |
|
|
75
78
|
|
|
76
79
|
### Feature comparison
|
|
@@ -79,6 +82,9 @@ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The gra
|
|
|
79
82
|
|
|
80
83
|
| 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) |
|
|
81
84
|
|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
85
|
+
| MCP / AI agent support | **Yes** | — | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
|
86
|
+
| Batch querying | **Yes** | — | — | — | — | — | — | — |
|
|
87
|
+
| Composite audit command | **Yes** | — | — | — | — | — | — | — |
|
|
82
88
|
| Function-level analysis | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
|
83
89
|
| Multi-language | **11** | **14** | **32** | **11** | **~10** | **12** | **12** | **3** |
|
|
84
90
|
| Semantic search | **Yes** | — | **Yes** | **Yes** | — | **Yes** | — | **Yes** |
|
|
@@ -86,10 +92,7 @@ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The gra
|
|
|
86
92
|
| CODEOWNERS integration | **Yes** | — | — | — | — | — | — | — |
|
|
87
93
|
| Architecture boundary rules | **Yes** | — | — | — | — | — | — | — |
|
|
88
94
|
| CI validation predicates | **Yes** | — | — | — | — | — | — | — |
|
|
89
|
-
| Composite audit command | **Yes** | — | — | — | — | — | — | — |
|
|
90
|
-
| Batch querying | **Yes** | — | — | — | — | — | — | — |
|
|
91
95
|
| Graph snapshots | **Yes** | — | — | — | — | — | — | — |
|
|
92
|
-
| MCP / AI agent support | **Yes** | — | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
|
|
93
96
|
| Git diff impact | **Yes** | — | — | — | — | **Yes** | **Yes** | **Yes** |
|
|
94
97
|
| Branch structural diff | **Yes** | — | — | — | — | — | — | **Yes** |
|
|
95
98
|
| Git co-change analysis | **Yes** | — | — | — | — | — | — | **Yes** |
|
|
@@ -113,46 +116,37 @@ That's it. No config files, no Docker, no JVM, no API keys, no accounts. The gra
|
|
|
113
116
|
|
|
114
117
|
| | Differentiator | In practice |
|
|
115
118
|
|---|---|---|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
119
|
+
| **🤖** | **AI-first architecture** | 30-tool [MCP server](https://modelcontextprotocol.io/) — agents query the graph directly instead of scraping the filesystem. One call replaces 20+ grep/find/cat invocations |
|
|
120
|
+
| **🏷️** | **Role classification** | Every symbol auto-tagged as `entry`/`core`/`utility`/`adapter`/`dead`/`leaf` — agents instantly know what they're looking at without reading the code |
|
|
118
121
|
| **🔬** | **Function-level, not just files** | Traces `handleAuth()` → `validateToken()` → `decryptJWT()` and shows 14 callers across 9 files break if `decryptJWT` changes |
|
|
119
|
-
|
|
|
120
|
-
| **🤖** | **Built for AI agents** | 30-tool [MCP server](https://modelcontextprotocol.io/) — AI assistants query your graph directly. Single-repo by default |
|
|
121
|
-
| **🌐** | **Multi-language, one CLI** | JS/TS + Python + Go + Rust + Java + C# + PHP + Ruby + HCL in a single graph |
|
|
122
|
+
| **⚡** | **Always-fresh graph** | Three-tier change detection: journal (O(changed)) → mtime+size (O(n) stats) → hash (O(changed) reads). Sub-second rebuilds — agents always work with current data |
|
|
122
123
|
| **💥** | **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 |
|
|
124
|
+
| **🌐** | **Multi-language, one graph** | JS/TS + Python + Go + Rust + Java + C# + PHP + Ruby + HCL in a single graph — agents don't need per-language tools |
|
|
123
125
|
| **🧠** | **Hybrid search** | BM25 keyword + semantic embeddings fused via RRF — `hybrid` (default), `semantic`, or `keyword` mode; multi-query via `"auth; token; JWT"` |
|
|
124
126
|
| **🔬** | **Dataflow + CFG** | Track how data flows through functions (`flows_to`, `returns`, `mutates`) and visualize intraprocedural control flow graphs for all 11 languages |
|
|
127
|
+
| **🔓** | **Fully local, zero cost** | No API keys, no accounts, no network calls. Optionally bring your own LLM provider — your code only goes where you choose |
|
|
125
128
|
|
|
126
129
|
---
|
|
127
130
|
|
|
128
131
|
## 🚀 Quick Start
|
|
129
132
|
|
|
130
133
|
```bash
|
|
131
|
-
# Install
|
|
132
134
|
npm install -g @optave/codegraph
|
|
133
|
-
|
|
134
|
-
# Build a graph for any project
|
|
135
135
|
cd your-project
|
|
136
136
|
codegraph build # → .codegraph/graph.db created
|
|
137
|
-
|
|
138
|
-
# Start exploring
|
|
139
|
-
codegraph map # see most-connected files
|
|
140
|
-
codegraph query myFunc # find any function, see callers & callees
|
|
141
|
-
codegraph deps src/index.ts # file-level import/export map
|
|
142
137
|
```
|
|
143
138
|
|
|
144
|
-
|
|
139
|
+
That's it. The graph is ready. Now connect your AI agent.
|
|
145
140
|
|
|
146
|
-
|
|
147
|
-
git clone https://github.com/optave/codegraph.git
|
|
148
|
-
cd codegraph && npm install && npm link
|
|
149
|
-
```
|
|
141
|
+
### For AI agents (primary use case)
|
|
150
142
|
|
|
151
|
-
|
|
143
|
+
Connect directly via MCP — your agent gets 30 tools to query the graph:
|
|
152
144
|
|
|
153
|
-
|
|
145
|
+
```bash
|
|
146
|
+
codegraph mcp # 30-tool MCP server — AI queries the graph directly
|
|
147
|
+
```
|
|
154
148
|
|
|
155
|
-
|
|
149
|
+
Or add codegraph to your agent's instructions (e.g. `CLAUDE.md`):
|
|
156
150
|
|
|
157
151
|
```markdown
|
|
158
152
|
Before modifying code, always:
|
|
@@ -164,13 +158,26 @@ After modifying code:
|
|
|
164
158
|
4. `codegraph diff-impact --staged -T` — verify impact before committing
|
|
165
159
|
```
|
|
166
160
|
|
|
167
|
-
|
|
161
|
+
Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) · [CLAUDE.md template](docs/guides/ai-agent-guide.md#claudemd-template)
|
|
162
|
+
|
|
163
|
+
### For developers
|
|
164
|
+
|
|
165
|
+
The same graph is available via CLI:
|
|
168
166
|
|
|
169
167
|
```bash
|
|
170
|
-
codegraph
|
|
168
|
+
codegraph map # see most-connected files
|
|
169
|
+
codegraph query myFunc # find any function, see callers & callees
|
|
170
|
+
codegraph deps src/index.ts # file-level import/export map
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
Or install from source:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
git clone https://github.com/optave/codegraph.git
|
|
177
|
+
cd codegraph && npm install && npm link
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
> **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.
|
|
174
181
|
|
|
175
182
|
---
|
|
176
183
|
|
|
@@ -178,22 +185,23 @@ Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) · [CLAU
|
|
|
178
185
|
|
|
179
186
|
| | Feature | Description |
|
|
180
187
|
|---|---|---|
|
|
181
|
-
|
|
|
182
|
-
|
|
|
188
|
+
| 🤖 | **MCP server** | 30-tool MCP server for AI assistants; single-repo by default, opt-in multi-repo |
|
|
189
|
+
| 🎯 | **Deep context** | `context` gives agents source, deps, callers, signature, and tests for a function in one call; `audit --quick` gives structural summaries |
|
|
190
|
+
| 🏷️ | **Node role classification** | Every symbol auto-tagged as `entry`/`core`/`utility`/`adapter`/`dead`/`leaf` based on connectivity — agents instantly know architectural role |
|
|
191
|
+
| 📦 | **Batch querying** | Accept a list of targets and return all results in one JSON payload — enables multi-agent parallel dispatch |
|
|
183
192
|
| 💥 | **Impact analysis** | Trace every file affected by a change (transitive) |
|
|
184
193
|
| 🧬 | **Function-level tracing** | Call chains, caller trees, function-level impact, and A→B pathfinding with qualified call resolution |
|
|
185
|
-
| 🎯 | **Deep context** | `context` gives AI agents source, deps, callers, signature, and tests for a function in one call; `audit --quick` gives structural summaries of files or functions |
|
|
186
194
|
| 📍 | **Fast lookup** | `where` shows exactly where a symbol is defined and used — minimal, fast |
|
|
195
|
+
| 🔍 | **Symbol search** | Find any function, class, or method by name — exact match priority, relevance scoring, `--file` and `--kind` filters |
|
|
196
|
+
| 📁 | **File dependencies** | See what a file imports and what imports it |
|
|
187
197
|
| 📊 | **Diff impact** | Parse `git diff`, find overlapping functions, trace their callers |
|
|
188
198
|
| 🔗 | **Co-change analysis** | Analyze git history for files that always change together — surfaces hidden coupling the static graph can't see; enriches `diff-impact` with historically coupled files |
|
|
189
199
|
| 🗺️ | **Module map** | Bird's-eye view of your most-connected files |
|
|
190
200
|
| 🏗️ | **Structure & hotspots** | Directory cohesion scores, fan-in/fan-out hotspot detection, module boundaries |
|
|
191
|
-
| 🏷️ | **Node role classification** | Every symbol auto-tagged as `entry`/`core`/`utility`/`adapter`/`dead`/`leaf` based on connectivity patterns — agents instantly know architectural role |
|
|
192
201
|
| 🔄 | **Cycle detection** | Find circular dependencies at file or function level |
|
|
193
202
|
| 📤 | **Export** | DOT, Mermaid, JSON, GraphML, GraphSON, and Neo4j CSV graph export |
|
|
194
203
|
| 🧠 | **Semantic search** | Embeddings-powered natural language search with multi-query RRF ranking |
|
|
195
204
|
| 👀 | **Watch mode** | Incrementally update the graph as files change |
|
|
196
|
-
| 🤖 | **MCP server** | 30-tool MCP server for AI assistants; single-repo by default, opt-in multi-repo |
|
|
197
205
|
| ⚡ | **Always fresh** | Three-tier incremental detection — sub-second rebuilds even on large codebases |
|
|
198
206
|
| 🔬 | **Data flow analysis** | Intraprocedural parameter tracking, return consumers, argument flows, and mutation detection — all 11 languages |
|
|
199
207
|
| 🧮 | **Complexity metrics** | Cognitive, cyclomatic, nesting depth, Halstead, and Maintainability Index per function |
|
|
@@ -208,7 +216,6 @@ Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) · [CLAU
|
|
|
208
216
|
| ✅ | **CI validation predicates** | `check` command with configurable gates: complexity, blast radius, cycles, boundary violations — exit code 0/1 for CI |
|
|
209
217
|
| 📋 | **Composite audit** | Single `audit` command combining explain + impact + health metrics per function — one call instead of 3-4 |
|
|
210
218
|
| 🚦 | **Triage queue** | `triage` merges connectivity, hotspots, roles, and complexity into a ranked audit priority queue |
|
|
211
|
-
| 📦 | **Batch querying** | Accept a list of targets and return all results in one JSON payload — enables multi-agent parallel dispatch |
|
|
212
219
|
| 🔬 | **Dataflow analysis** | Track how data moves through functions with `flows_to`, `returns`, and `mutates` edges — all 11 languages, included by default, skip with `--no-dataflow` |
|
|
213
220
|
| 🧩 | **Control flow graph** | Intraprocedural CFG construction for all 11 languages — `cfg` command with text/DOT/Mermaid output, included by default, skip with `--no-cfg` |
|
|
214
221
|
| 🔎 | **AST node querying** | Stored queryable AST nodes (calls, `new`, string, regex, throw, await) — `ast` command with SQL GLOB pattern matching |
|
|
@@ -248,7 +255,7 @@ codegraph exports src/queries.js # Per-symbol consumer analysis (who calls each
|
|
|
248
255
|
codegraph children <name> # List parameters, properties, constants of a symbol
|
|
249
256
|
```
|
|
250
257
|
|
|
251
|
-
### Deep Context (AI
|
|
258
|
+
### Deep Context (designed for AI agents)
|
|
252
259
|
|
|
253
260
|
```bash
|
|
254
261
|
codegraph context <name> # Full context: source, deps, callers, signature, tests
|
|
@@ -555,14 +562,14 @@ Self-measured on every release via CI ([build benchmarks](generated/benchmarks/B
|
|
|
555
562
|
|
|
556
563
|
| Metric | Latest |
|
|
557
564
|
|---|---|
|
|
558
|
-
| Build speed (native) | **
|
|
559
|
-
| Build speed (WASM) | **
|
|
565
|
+
| Build speed (native) | **6.2 ms/file** |
|
|
566
|
+
| Build speed (WASM) | **19 ms/file** |
|
|
560
567
|
| Query time | **3ms** |
|
|
561
|
-
| No-op rebuild (native) | **
|
|
562
|
-
| 1-file rebuild (native) | **
|
|
568
|
+
| No-op rebuild (native) | **329ms** |
|
|
569
|
+
| 1-file rebuild (native) | **335ms** |
|
|
563
570
|
| Query: fn-deps | **0.8ms** |
|
|
564
571
|
| Query: path | **0.8ms** |
|
|
565
|
-
| ~50,000 files (est.) | **~
|
|
572
|
+
| ~50,000 files (est.) | **~310.0s build** |
|
|
566
573
|
|
|
567
574
|
Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files.
|
|
568
575
|
|
|
@@ -580,11 +587,11 @@ Only **3 runtime dependencies** — everything else is optional or a devDependen
|
|
|
580
587
|
|
|
581
588
|
Optional: `@huggingface/transformers` (semantic search), `@modelcontextprotocol/sdk` (MCP server) — lazy-loaded only when needed.
|
|
582
589
|
|
|
583
|
-
## 🤖 AI Agent Integration
|
|
590
|
+
## 🤖 AI Agent Integration (Core)
|
|
584
591
|
|
|
585
592
|
### MCP Server
|
|
586
593
|
|
|
587
|
-
Codegraph
|
|
594
|
+
Codegraph is built around a [Model Context Protocol](https://modelcontextprotocol.io/) server with 30 tools (31 in multi-repo mode) — the primary way agents consume the graph:
|
|
588
595
|
|
|
589
596
|
```bash
|
|
590
597
|
codegraph mcp # Single-repo mode (default) — only local project
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optave/codegraph",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.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",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"better-sqlite3": "^12.6.2",
|
|
59
59
|
"commander": "^14.0.3",
|
|
60
|
-
"graphology": "^0.
|
|
60
|
+
"graphology": "^0.26.0",
|
|
61
61
|
"graphology-communities-louvain": "^2.0.2",
|
|
62
62
|
"web-tree-sitter": "^0.26.5"
|
|
63
63
|
},
|
|
@@ -71,13 +71,13 @@
|
|
|
71
71
|
},
|
|
72
72
|
"optionalDependencies": {
|
|
73
73
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
74
|
-
"@optave/codegraph-darwin-arm64": "3.0
|
|
75
|
-
"@optave/codegraph-darwin-x64": "3.0
|
|
76
|
-
"@optave/codegraph-linux-arm64-gnu": "3.0
|
|
77
|
-
"@optave/codegraph-linux-arm64-musl": "3.0
|
|
78
|
-
"@optave/codegraph-linux-x64-gnu": "3.0
|
|
79
|
-
"@optave/codegraph-linux-x64-musl": "3.0
|
|
80
|
-
"@optave/codegraph-win32-x64-msvc": "3.0
|
|
74
|
+
"@optave/codegraph-darwin-arm64": "3.1.0",
|
|
75
|
+
"@optave/codegraph-darwin-x64": "3.1.0",
|
|
76
|
+
"@optave/codegraph-linux-arm64-gnu": "3.1.0",
|
|
77
|
+
"@optave/codegraph-linux-arm64-musl": "3.1.0",
|
|
78
|
+
"@optave/codegraph-linux-x64-gnu": "3.1.0",
|
|
79
|
+
"@optave/codegraph-linux-x64-musl": "3.1.0",
|
|
80
|
+
"@optave/codegraph-win32-x64-msvc": "3.1.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@biomejs/biome": "^2.4.4",
|