depwire-cli 0.9.28 → 0.9.30

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
@@ -1,183 +1,93 @@
1
1
  # Depwire
2
2
 
3
+ <div align="center">
4
+
3
5
  [![npm version](https://img.shields.io/npm/v/depwire-cli.svg?style=flat-square)](https://www.npmjs.com/package/depwire-cli)
4
6
  [![npm downloads](https://img.shields.io/npm/dm/depwire-cli.svg?style=flat-square)](https://www.npmjs.com/package/depwire-cli)
5
- [![depwire MCP server](https://glama.ai/mcp/servers/depwire/depwire/badges/score.svg)](https://glama.ai/mcp/servers/depwire/depwire)
6
- [![License](https://img.shields.io/badge/license-BUSL--1.1-blue.svg?style=flat-square)](LICENSE)
7
+ [![MCP Registry](https://img.shields.io/badge/MCP-registry-blue?style=flat-square)](https://registry.modelcontextprotocol.io/servers/io.github.atef-ataya/depwire)
8
+ [![Glama](https://glama.ai/mcp/servers/depwire/depwire/badges/score.svg)](https://glama.ai/mcp/servers/depwire/depwire)
9
+ [![License](https://img.shields.io/badge/license-BUSL--1.1-orange.svg?style=flat-square)](LICENSE)
7
10
  [![GitHub stars](https://img.shields.io/github/stars/depwire/depwire.svg?style=flat-square)](https://github.com/depwire/depwire/stargazers)
8
- [![GitHub forks](https://img.shields.io/github/forks/depwire/depwire.svg?style=flat-square)](https://github.com/depwire/depwire/network/members)
9
-
10
- ![Depwire - Arc diagram visualization of the Hono framework](./assets/depwire-hero.png)
11
-
12
- **The missing context layer for AI coding assistants.**
13
-
14
- Deterministic dependency graph. 17 MCP tools. Architecture health. What If simulation. Security scanner.
15
-
16
- The context layer that turns vibe coding into software engineering.
17
-
18
- ⭐ **If Depwire helps you, please [star the repo](https://github.com/depwire/depwire)** — it helps this open-source project grow into an enterprise tool.
19
11
 
20
- Depwire analyzes codebases to build a cross-reference graph showing how every file, function, and import connects. It provides:
21
-
22
- - 🎨 **Beautiful arc diagram visualization** — Interactive Harrison Bible-style graphic
23
- - 🤖 **MCP server for AI tools** — Cursor, Claude Desktop get full dependency context
24
- - 📊 **Dependency health score** — 0-100 score across 6 dimensions (coupling, cohesion, circular deps, god files, orphans & dead code, depth)
25
- - 📄 **Auto-generated documentation** — 13 comprehensive documents: architecture, conventions, dependencies, onboarding, file catalog, API surface, error patterns, test coverage, git history, full snapshot, TODO/FIXME inventory, health report, and dead code analysis
26
- - 🔍 **Impact analysis** — "What breaks if I rename this function?" answered precisely
27
- - 🧹 **Dead code detection** — Find symbols that are defined but never referenced, categorized by confidence level
28
- - 👀 **Live updates** — Graph stays current as you edit code
29
- - 🌍 **Multi-language** — TypeScript, JavaScript, Python, Go, Rust, and C
30
-
31
- ## Installation
32
-
33
- ![Installation](./assets/installation.gif)
34
-
35
- ```bash
36
- npm install -g depwire-cli
37
- ```
12
+ </div>
38
13
 
39
- Or use directly with `npx`:
40
- ```bash
41
- npx depwire-cli --help
42
- ```
14
+ **Your AI doesn't know your architecture. Depwire does.**
43
15
 
44
- ## Telemetry
16
+ Depwire is the infrastructure layer between your AI coding assistant and your codebase. Before your AI touches a single file, Depwire has already mapped every connection, scored every risk, and simulated every change.
45
17
 
46
- Depwire collects **anonymous usage data** to help prioritize development.
18
+ ![Depwire CLI demo on honojs/hono](./assets/depwire-demo-cli.gif)
47
19
 
48
- **What we collect:** Command name, Depwire version, OS, Node.js version
20
+ If Depwire saves you from a broken build, [star the repo](https://github.com/depwire/depwire) — it helps this project grow.
49
21
 
50
- **What we never collect:** File paths, code content, repo names, usernames, emails, or any personal data.
22
+ ---
51
23
 
52
- **To opt out:**
53
- ```bash
54
- export DEPWIRE_NO_TELEMETRY=1
55
- ```
24
+ ## The problem
56
25
 
57
- We also respect `DO_NOT_TRACK=1`. [Privacy Policy](https://depwire.dev/privacy)
26
+ AI coding tools are getting smarter. But they still have a fundamental blind spot: they don't know your architecture before they touch it.
58
27
 
59
- ## Quick Start
28
+ You ask Claude to delete a utility file. It deletes it cleanly. Confident. No warnings.
60
29
 
61
- ### CLI Usage
30
+ Then you run the build. 30 files broken.
62
31
 
63
- ```bash
64
- # Auto-detects project root from current directory
65
- depwire viz
66
- depwire parse
67
- depwire docs
68
- depwire health
69
- depwire dead-code
70
- depwire temporal
71
- depwire whatif
72
- depwire security
32
+ Claude had no idea. It saw one file. It didn't see the 30 downstream consumers.
73
33
 
74
- # Or specify a directory explicitly
75
- npx depwire-cli viz ./my-project
76
- npx depwire-cli parse ./my-project
77
- npx depwire-cli dead-code ./my-project
78
- npx depwire-cli temporal ./my-project
34
+ This isn't a model problem. It's a context problem. The AI is flying blind.
79
35
 
80
- # Temporal visualization options
81
- npx depwire-cli temporal --commits 20 --strategy monthly --verbose --stats
36
+ ---
82
37
 
83
- # Exclude test files and node_modules
84
- npx depwire-cli parse --exclude "**/*.test.*" "**/node_modules/**"
38
+ ## The infrastructure layer
85
39
 
86
- # Show detailed parsing progress
87
- npx depwire-cli parse --verbose
40
+ ![Depwire architecture](./assets/architecture.svg)
88
41
 
89
- # Export with pretty-printed JSON and statistics
90
- npx depwire-cli parse --pretty --stats
42
+ Depwire sits between your AI and your codebase. It builds a complete dependency graph using tree-sitter deterministic, not probabilistic — and serves it to your AI through 17 MCP tools.
91
43
 
92
- # Generate codebase documentation
93
- npx depwire-cli docs --verbose --stats
44
+ Four guarantees:
94
45
 
95
- # Custom output file
96
- npx depwire-cli parse -o my-graph.json
97
- ```
46
+ - **Local** everything runs on your machine. No cloud parsing. No data sent anywhere.
47
+ - **Secure** your code never leaves your machine. The security scanner requires no API key.
48
+ - **Token-efficient** — Depwire serves pre-computed graph data. Your AI gets surgical answers, not file dumps. 40% fewer tool calls. 56% fewer file reads.
49
+ - **Deterministic** — tree-sitter parses your code the same way every time. 100% accurate. Not a guess.
98
50
 
99
- ### Claude Desktop
51
+ ---
100
52
 
101
- Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
53
+ ## Start here
102
54
 
103
- ```json
104
- {
105
- "mcpServers": {
106
- "depwire": {
107
- "command": "npx",
108
- "args": ["-y", "depwire-cli", "mcp"]
109
- }
110
- }
111
- }
55
+ ```bash
56
+ npm install -g depwire-cli
112
57
  ```
113
58
 
114
- **Depwire auto-detects your project root. No path configuration needed.**
59
+ Three commands to understand any codebase:
115
60
 
116
- Then in chat:
117
- ```
118
- Show me the architecture.
61
+ ```bash
62
+ depwire viz # open interactive arc diagram in browser
63
+ depwire whatif # simulate changes before touching code
64
+ depwire security # scan for vulnerabilities
119
65
  ```
120
66
 
121
- ### Cursor
122
-
123
- Settings → Features → Experimental → Enable MCP → Add Server:
124
- - Command: `npx`
125
- - Args: `-y depwire-cli mcp`
126
-
127
- **Depwire auto-detects your project root from the current working directory.**
67
+ ---
128
68
 
129
- ## Available MCP Tools
69
+ ## What If simulation
130
70
 
131
- | Tool | What It Does |
132
- |------|-------------|
133
- | `connect_repo` | Connect to any local project or GitHub repo |
134
- | `impact_analysis` | What breaks if you change a symbol? |
135
- | `get_file_context` | Full context — imports, exports, dependents |
136
- | `get_dependencies` | What does a symbol depend on? |
137
- | `get_dependents` | What depends on this symbol? |
138
- | `search_symbols` | Find symbols by name |
139
- | `get_architecture_summary` | High-level project overview |
140
- | `list_files` | List all files with stats |
141
- | `get_symbol_info` | Look up any symbol's details |
142
- | `visualize_graph` | Generate interactive arc diagram visualization |
143
- | `get_project_docs` | Retrieve auto-generated codebase documentation |
144
- | `update_project_docs` | Regenerate documentation on demand |
145
- | `get_health_score` | Get 0-100 dependency health score with recommendations |
146
- | `find_dead_code` | Find dead code — symbols defined but never referenced |
147
- | `get_temporal_graph` | Show how the graph evolved over git history |
148
- | `simulate_change` | Simulate a move/delete/rename/split/merge before touching code. Returns health score delta, broken imports, and affected nodes. Zero file I/O. |
149
- | `security_scan` | Scan for security vulnerabilities with graph-aware severity elevation. No API key required. |
150
-
151
- ## SDK
152
-
153
- depwire-cli exposes a public SDK for programmatic use:
71
+ Know the blast radius before you touch anything.
154
72
 
155
73
  ```bash
156
- npm install depwire-cli
74
+ depwire whatif . --simulate delete --target src/utils/encode.ts
157
75
  ```
158
76
 
159
- ```typescript
160
- import {
161
- parseProject,
162
- buildGraph,
163
- calculateHealthScore,
164
- analyzeDeadCode,
165
- generateDocs,
166
- scanSecurity,
167
- SimulationEngine,
168
- searchSymbols,
169
- getImpact,
170
- getArchitectureSummary,
171
- DepwireSDKVersion
172
- } from 'depwire-cli/sdk';
173
- ```
77
+ Real output on [honojs/hono](https://github.com/honojs/hono) — 352 files, 6,245 symbols:
174
78
 
175
- The SDK is the stable public API surface. All cloud and tooling integrations
176
- should import from `depwire-cli/sdk` — never from internal paths.
79
+ Health Score: 41 41 (+0 unchanged)
80
+ Affected Nodes: 29
81
+ Broken Imports: 30
82
+ • src/utils/jwt/jwt.ts imports decodeBase64Url
83
+ • src/adapter/aws-lambda/handler.ts imports encodeBase64
84
+ • src/utils/basic-auth.ts imports decodeBase64
85
+ [27 more...]
86
+ Removed Edges: 32
177
87
 
178
- ## What If Simulation
88
+ Before touching a single file. Zero file I/O. Pure in-memory simulation.
179
89
 
180
- Simulate architectural changes before touching any code:
90
+ Five operations:
181
91
 
182
92
  ```bash
183
93
  depwire whatif . --simulate delete --target src/utils/encode.ts
@@ -187,633 +97,280 @@ depwire whatif . --simulate split --target src/services/auth.ts --symbols "valid
187
97
  depwire whatif . --simulate merge --target src/utils/helpers.ts --merge-target src/utils/formatters.ts
188
98
  ```
189
99
 
190
- Returns: health score delta, broken imports, affected nodes, circular deps introduced/resolved.
191
- Also available as MCP tool `simulate_change` for AI coding assistants.
100
+ Run without `--simulate` to open the browser UI side-by-side arc diagrams showing current vs simulated state.
101
+
102
+ ---
192
103
 
193
- ## Security Scanner
104
+ ## Security scanner
194
105
 
195
- Scan your codebase for security vulnerabilities before AI-generated code ships to production:
106
+ AI-generated code ships vulnerabilities. Depwire catches them before they reach production.
196
107
 
197
108
  ```bash
198
- depwire security . # Full repo scan
199
- depwire security . --target src/auth.ts # Single file
200
- depwire security . --format sarif # GitHub Security tab
201
- depwire security . --fail-on high # CI gate — exit 1 if HIGH+
202
- depwire security . --class injection # Specific check only
109
+ depwire security . # full repo scan
110
+ depwire security . --target src/auth.ts # single file
111
+ depwire security . --format sarif # GitHub Security tab integration
112
+ depwire security . --fail-on high # CI gate — exit 1 if HIGH or above
113
+ depwire security . --class injection # specific check only
203
114
  ```
204
115
 
205
- 10 vulnerability categories:
206
- - Dependency CVEs (npm/pip/cargo/go audit)
207
- - Shell injection + code injection
208
- - Hardcoded secrets (API keys, passwords, private keys)
209
- - Path traversal
210
- - Auth bypass patterns
211
- - Input validation gaps
212
- - Information disclosure
213
- - Cryptography weaknesses
214
- - Frontend XSS (dangerouslySetInnerHTML, localStorage tokens)
215
- - Architecture-level risks (graph-powered severity elevation)
216
-
217
- Graph-aware severity: vulnerabilities reachable from MCP tools or HTTP routes are automatically elevated. Available as MCP tool `security_scan` and via `depwire-cli/sdk`.
116
+ Real output on honojs/hono:
218
117
 
219
- ## Why Depwire
118
+ 6 Critical 19 High 14 Medium 1 Low
220
119
 
221
- | Feature | Depwire | Standard RAG (Fuzzy Search) | LLM Native Scanning |
222
- |---------|---------|----------------------------|---------------------|
223
- | Logic | Deterministic Graph | Probabilistic Match | Brute Force Reading |
224
- | Precision | 100% (Tree-sitter AST) | ~70% (Embedding match) | Varies — hallucination prone |
225
- | Refactor Safety | High — traces full call chains | Low — misses indirect refs | Zero — blind edits |
226
- | Token Cost | Ultra-low — surgical reads | High — context stuffing | Extreme — scans everything |
227
- | Circular Detection | Built-in | Not possible | Occasional |
228
- | What If Simulation | Before touching code | Not possible | Not possible |
229
- | Architecture Health Score | 0-100 with dimensions | Not possible | Not possible |
230
-
231
- ## GitHub Action — PR Impact Analysis
232
-
233
- Depwire integrates directly into your CI/CD pipeline via the [depwire-action](https://github.com/depwire/depwire-action) GitHub Action.
234
-
235
- On every pull request, it automatically:
236
- - Analyzes which symbols and files are affected by the changes
237
- - Posts a dependency impact report as a PR comment
238
- - Shows added, removed, and changed dependencies
239
- - Helps reviewers understand the architectural blast radius before merging
240
-
241
- ### Usage
242
-
243
- Add this to `.github/workflows/depwire.yml`:
244
- ```yaml
245
- name: Depwire PR Impact
246
- on:
247
- pull_request:
248
- branches: [main]
249
-
250
- jobs:
251
- impact:
252
- runs-on: ubuntu-latest
253
- steps:
254
- - uses: actions/checkout@v4
255
- with:
256
- fetch-depth: 0
257
- - uses: depwire/depwire-action@v1
258
- with:
259
- github-token: ${{ secrets.GITHUB_TOKEN }}
260
- ```
120
+ 10 check categories dependency CVEs, shell injection, hardcoded secrets, path traversal, auth bypass, input validation, information disclosure, cryptography weaknesses, frontend XSS, and architecture-level risks.
261
121
 
262
- ### Links
263
- - [GitHub Marketplace](https://github.com/marketplace/actions/depwire-pr-impact)
264
- - [depwire-action repository](https://github.com/depwire/depwire-action)
122
+ Graph-aware severity: a medium shell injection reachable from an MCP tool or HTTP route is automatically elevated to critical. This is what no generic SAST tool can replicate — Depwire knows your architecture, so it knows what's actually reachable.
265
123
 
266
- ## Supported Languages
124
+ Available as MCP tool `security_scan` and via `depwire-cli/sdk`.
267
125
 
268
- | Language | Extensions | Features |
269
- |----------|-----------|----------|
270
- | TypeScript | `.ts`, `.tsx` | Full support — imports, classes, interfaces, types |
271
- | JavaScript | `.js`, `.jsx`, `.mjs`, `.cjs` | ES modules, CommonJS require(), JSX components |
272
- | Python | `.py` | Imports, classes, decorators, inheritance |
273
- | Go | `.go` | go.mod resolution, structs, interfaces, methods |
274
- | Rust | `.rs` | Functions, structs, enums, traits, impl blocks, use declarations |
275
- | C | `.c`, `.h` | Functions, structs, enums, typedefs, macros, #include directives |
126
+ ---
276
127
 
277
128
  ## Visualization
278
129
 
279
- ![Depwire CLI](./assets/viz-command.gif)
280
-
281
- ![Interactive Arc Diagram](./assets/graph.gif)
130
+ ![Depwire arc diagram visualization](./assets/depwire-demo-viz.gif)
282
131
 
283
132
  ```bash
284
- # Auto-detects project root (run from anywhere in your project)
285
133
  depwire viz
286
-
287
- # Or specify a directory explicitly
288
- depwire viz ./my-project
289
-
290
- # Custom port
291
- depwire viz --port 8080
292
-
293
- # Exclude test files from visualization
294
- depwire viz --exclude "**/*.test.*"
295
-
296
- # Verbose mode with detailed parsing logs
297
- depwire viz --verbose
298
-
299
- # Don't auto-open browser
300
- depwire viz --no-open
301
134
  ```
302
135
 
303
- Opens an interactive arc diagram in your browser:
304
- - Rainbow-colored arcs showing cross-file dependencies
305
- - Hover to explore connections
306
- - Click to filter by file
307
- - Search by filename
308
- - **Live refresh when files change** — Edit code and see the graph update in real-time
309
- - Export as SVG or PNG
310
- - **Port collision handling** — Automatically finds an available port if default is in use
136
+ Interactive arc diagram of your entire codebase. Every file, every connection, every dependency visible at once. Hover to inspect. Click to filter. Export as PNG or SVG.
311
137
 
312
- ## Temporal Graph
138
+ ---
313
139
 
314
- Visualize how your codebase architecture evolved over git history. Scrub through time with an interactive timeline slider.
140
+ ## Temporal graph
315
141
 
316
- ![Depwire Temporal Graph](assets/depwire-temporal-hono.gif)
142
+ ![Depwire temporal graph on honojs/hono](./assets/depwire-temporal-hono.gif)
317
143
 
318
144
  ```bash
319
- # Auto-detects project root
320
145
  depwire temporal
321
-
322
- # Sample 20 commits with monthly snapshots
323
- depwire temporal --commits 20 --strategy monthly
324
-
325
- # Verbose mode with detailed progress
326
- depwire temporal --verbose --stats
327
-
328
- # Custom port
329
- depwire temporal --port 3335
330
- ```
331
-
332
- **Options:**
333
- - `--commits <number>` — Number of commits to sample (default: 20)
334
- - `--strategy <type>` — Sampling strategy: `even`, `weekly`, `monthly` (default: `even`)
335
- - `-p, --port <number>` — Server port (default: 3334)
336
- - `--output <path>` — Save snapshots to custom path (default: `.depwire/temporal/`)
337
- - `--verbose` — Show progress for each commit being parsed
338
- - `--stats` — Show summary statistics at end
339
-
340
- Opens an interactive temporal visualization in your browser:
341
- - Timeline slider showing all sampled commits
342
- - Arc diagram morphing between snapshots
343
- - Play/pause animation with speed controls (0.5×, 1×, 2×)
344
- - Statistics panel with growth deltas
345
- - Evolution chart tracking files/symbols/edges over time
346
- - Auto-zoom to fit all arcs on snapshot change
347
- - Search to highlight specific files across time
348
-
349
- ## 🪦 Dead Code Detection
350
-
351
- Find unused symbols across your codebase before they become technical debt.
352
-
353
- - Detects symbols with zero incoming references (never called, never imported)
354
- - Confidence scoring: **high** (definitely dead), **medium** (probably dead), **low** (might be dead)
355
- - Smart exclusion rules — ignores entry points, test files, barrel files, and config files to reduce false positives
356
- - Filter by confidence level, export as JSON for CI pipelines
357
- - Integrated into the health score (orphans dimension)
358
- - New MCP tool: `find_dead_code` — AI assistants can query dead code directly
359
- - New document generator: `DEAD_CODE.md` — auto-generated dead code report
360
-
361
- ```bash
362
- depwire dead-code
363
- depwire dead-code --confidence high
364
- depwire dead-code --stats
365
- depwire dead-code --json
366
- ```
367
-
368
- **Confidence Levels:**
369
- - 🔴 **High confidence (definitely dead)**: Not exported with zero references, or exported but never used
370
- - 🟡 **Medium confidence (probably dead)**: Exported from barrel files with zero dependents, or only used in test files
371
- - ⚪ **Low confidence (might be dead)**: Exported from package entry points, types with zero dependents, or in dynamic-use directories (routes, middleware, etc.)
372
-
373
- The dead code detector automatically excludes:
374
- - Entry point files (index.ts, main.ts, server.ts, etc.)
375
- - Test files (*.test.*, *.spec.*, __tests__/)
376
- - Config files (*.config.*)
377
- - Type declarations (*.d.ts)
378
- - Framework auto-loaded directories (pages/, routes/, middleware/, commands/)
379
-
380
- ## How It Works
381
-
382
- 1. **Parser** — tree-sitter extracts every symbol and reference
383
- 2. **Graph** — graphology builds an in-memory dependency graph
384
- 3. **MCP** — AI tools query the graph for context-aware answers
385
- 4. **Viz** — D3.js renders the graph as an interactive arc diagram
386
-
387
- ## CLI Reference
388
-
389
- ### `depwire parse [directory]`
390
-
391
- Parse a project and export the dependency graph as JSON.
392
-
393
- **Directory argument is optional** — Depwire auto-detects your project root by looking for `package.json`, `tsconfig.json`, `go.mod`, `pyproject.toml`, `setup.py`, or `.git`.
394
-
395
- **Options:**
396
- - `-o, --output <path>` — Output file path (default: `depwire-output.json`)
397
- - `--exclude <patterns...>` — Glob patterns to exclude (e.g., `"**/*.test.*" "dist/**"`)
398
- - `--verbose` — Show detailed parsing progress (logs each file as it's parsed)
399
- - `--pretty` — Pretty-print JSON output with indentation
400
- - `--stats` — Print summary statistics (file count, symbol count, edges, timing)
401
-
402
- **Examples:**
403
- ```bash
404
- # Auto-detect project root
405
- depwire parse
406
-
407
- # Explicit directory
408
- depwire parse ./src
409
-
410
- # Exclude test files and build outputs
411
- depwire parse --exclude "**/*.test.*" "**/*.spec.*" "dist/**" "build/**"
412
-
413
- # Full verbosity with stats
414
- depwire parse --verbose --stats --pretty -o graph.json
415
146
  ```
416
147
 
417
- ### `depwire viz [directory]`
418
-
419
- Start visualization server and open arc diagram in browser.
420
-
421
- **Directory argument is optional** — Auto-detects project root.
148
+ Watch your architecture evolve over git history. Timeline slider scrubs through commits — the arc diagram morphs as your codebase grew, coupled, and refactored. Nobody else does this.
422
149
 
423
- **Options:**
424
- - `--port <number>` — Port number (default: 3456, auto-increments if in use)
425
- - `--exclude <patterns...>` — Glob patterns to exclude
426
- - `--verbose` — Show detailed parsing progress
427
- - `--no-open` — Don't automatically open browser
428
-
429
- **Examples:**
430
- ```bash
431
- # Auto-detect and visualize
432
- depwire viz
150
+ ---
433
151
 
434
- # Explicit directory
435
- depwire viz ./src
152
+ ## All commands
436
153
 
437
- # Custom port without auto-open
438
- depwire viz --port 8080 --no-open
154
+ | Command | Description |
155
+ |---------|-------------|
156
+ | `depwire viz` | Interactive arc diagram in browser |
157
+ | `depwire whatif` | Simulate changes before touching code |
158
+ | `depwire security` | Scan for vulnerabilities — graph-aware severity |
159
+ | `depwire health` | 0-100 architecture health score across 6 dimensions |
160
+ | `depwire dead-code` | Find unused symbols with confidence scoring |
161
+ | `depwire docs` | Generate 13 architecture documents |
162
+ | `depwire temporal` | Visualize architecture evolution over git history |
163
+ | `depwire parse` | Parse and export dependency graph as JSON |
164
+ | `depwire mcp` | Start MCP server for AI coding assistants |
439
165
 
440
- # Exclude test files with verbose logging
441
- depwire viz --exclude "**/*.test.*" --verbose
442
- ```
166
+ All commands auto-detect your project root. No path configuration needed.
443
167
 
444
- ### `depwire mcp [directory]`
168
+ ---
445
169
 
446
- Start MCP server for AI tool integration (Cursor, Claude Desktop).
170
+ ## MCP server AI integration
447
171
 
448
- **Directory argument is optional** — Auto-detects project root and connects automatically.
172
+ Connect Depwire to any MCP-compatible AI tool. Your AI gets 17 tools it can call autonomously.
449
173
 
450
- **Examples:**
451
- ```bash
452
- # Auto-detect and connect (recommended)
453
- depwire mcp
174
+ **Claude Desktop** — add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
454
175
 
455
- # Explicit directory
456
- depwire mcp /path/to/project
176
+ ```json
177
+ {
178
+ "mcpServers": {
179
+ "depwire": {
180
+ "command": "npx",
181
+ "args": ["-y", "depwire-cli", "mcp"]
182
+ }
183
+ }
184
+ }
457
185
  ```
458
186
 
459
- ### `depwire docs [directory]`
460
-
461
- Generate comprehensive codebase documentation from your dependency graph.
462
-
463
- **Directory argument is optional** — Auto-detects project root.
464
-
465
- **Options:**
466
- - `--output <path>` — Output directory (default: `.depwire/` inside project)
467
- - `--format <type>` — Output format: `markdown` or `json` (default: `markdown`)
468
- - `--include <docs...>` — Comma-separated list of docs to generate (default: `all`)
469
- - Values: `architecture`, `conventions`, `dependencies`, `onboarding`, `files`, `api_surface`, `errors`, `tests`, `history`, `current`, `status`, `health`, `all`
470
- - `--update` — Regenerate existing documentation
471
- - `--only <docs...>` — Used with `--update`, regenerate only specific docs
472
- - `--verbose` — Show generation progress
473
- - `--stats` — Show generation statistics
474
- - `--gitignore` — Add `.depwire/` to `.gitignore` automatically
475
- - `--no-gitignore` — Don't modify `.gitignore`
476
-
477
- **Examples:**
478
- ```bash
479
- # Auto-detect and generate all docs
480
- depwire docs
481
-
482
- # Explicit directory
483
- depwire docs ./my-project
484
-
485
- # Show generation progress and stats
486
- depwire docs --verbose --stats
487
-
488
- # Regenerate existing docs
489
- depwire docs --update
490
-
491
- # Generate specific docs only
492
- depwire docs --include architecture,dependencies
493
-
494
- # Custom output directory
495
- depwire docs --output ./docs
496
-
497
- # Regenerate only conventions doc
498
- depwire docs --update --only conventions
499
- ```
187
+ **Cursor** Settings → Features → Experimental → Enable MCP → Add Server:
188
+ - Command: `npx`
189
+ - Args: `-y depwire-cli mcp`
500
190
 
501
- **Generated Documents (13 total):**
502
-
503
- | Document | What It Contains |
504
- |----------|------------------|
505
- | `ARCHITECTURE.md` | Module structure, entry points, hub files, layer analysis, circular dependencies |
506
- | `CONVENTIONS.md` | Naming patterns, import/export style, detected design patterns |
507
- | `DEPENDENCIES.md` | Module dependency matrix, high-impact symbols, longest dependency chains |
508
- | `ONBOARDING.md` | Reading order (Foundation/Core/Entry Points), module map, key concepts, high-impact file warnings |
509
- | `FILES.md` | Complete file catalog with stats, orphan files, hub files |
510
- | `API_SURFACE.md` | All exported symbols (public API), most-used exports, unused exports |
511
- | `ERRORS.md` | Error handling patterns, error-prone files, custom error classes |
512
- | `TESTS.md` | Test file inventory, test-to-source mapping, untested files |
513
- | `HISTORY.md` | Git history + graph analysis, file churn, feature timeline |
514
- | `CURRENT.md` | Complete codebase snapshot (every file, symbol, connection) |
515
- | `STATUS.md` | TODO/FIXME/HACK inventory with priority matrix |
516
- | `HEALTH.md` | Dependency health score (0-100) across 6 dimensions with recommendations |
517
- | `DEAD_CODE.md` | Unused symbols by confidence level (high/medium/low) with smart exclusions |
518
-
519
- Documents are stored in `.depwire/` with `metadata.json` tracking generation timestamps for staleness detection.
520
-
521
- ### `depwire health [directory]`
522
-
523
- Analyze dependency architecture health and get a 0-100 score across 6 quality dimensions.
524
-
525
- **Directory argument is optional** — Auto-detects project root.
526
-
527
- **Options:**
528
- - `--json` — Output as JSON (for CI/automation)
529
- - `--verbose` — Show detailed per-dimension breakdown
530
-
531
- **Dimensions Measured:**
532
- 1. **Coupling (25%)** — How tightly connected are modules? Lower coupling = easier changes
533
- 2. **Cohesion (20%)** — Do files in the same directory relate? Higher cohesion = better organization
534
- 3. **Circular Dependencies (20%)** — Files depending on each other in cycles
535
- 4. **God Files (15%)** — Files with abnormally high connection counts
536
- 5. **Orphan Files (10%)** — Files with zero connections (dead code?)
537
- 6. **Dependency Depth (10%)** — How deep are the dependency chains?
538
-
539
- **Examples:**
540
- ```bash
541
- # Auto-detect and analyze
542
- depwire health
191
+ ![Claude Desktop with Depwire MCP](./assets/claude.gif)
543
192
 
544
- # Explicit directory
545
- depwire health ./my-project
193
+ ### 17 MCP tools
546
194
 
547
- # Detailed breakdown
548
- depwire health --verbose
195
+ | Tool | Description |
196
+ |------|-------------|
197
+ | `connect_repo` | Connect to any local project or GitHub repo |
198
+ | `get_architecture_summary` | High-level project overview |
199
+ | `get_file_context` | Full context — imports, exports, dependents. Includes cross-language connections. |
200
+ | `get_dependencies` | What does a symbol depend on? |
201
+ | `get_dependents` | What depends on this symbol? |
202
+ | `get_symbol_info` | Look up any symbol's details |
203
+ | `search_symbols` | Find symbols by name across the codebase |
204
+ | `list_files` | List all files with stats |
205
+ | `impact_analysis` | What breaks if you change a symbol? Cross-language edges included. |
206
+ | `visualize_graph` | Generate interactive arc diagram |
207
+ | `get_health_score` | 0-100 health score with recommendations |
208
+ | `find_dead_code` | Symbols defined but never referenced |
209
+ | `get_project_docs` | Retrieve auto-generated codebase documentation |
210
+ | `update_project_docs` | Regenerate documentation on demand |
211
+ | `get_temporal_graph` | Architecture evolution over git history |
212
+ | `simulate_change` | Simulate move/delete/rename/split/merge before touching code. Returns health delta, broken imports, affected nodes. Cross-language edges included. |
213
+ | `security_scan` | Scan for vulnerabilities with graph-aware severity elevation. No API key required. |
549
214
 
550
- # JSON output for CI
551
- depwire health --json
552
- ```
215
+ ---
553
216
 
554
- **Output:**
555
- - Overall score (0-100) with letter grade (A-F)
556
- - Per-dimension scores and grades
557
- - Actionable recommendations
558
- - Trend indicator (↑/↓ from last check)
217
+ ## Cross-language edge detection
559
218
 
560
- Health history is stored in `.depwire/health-history.json` (last 50 checks).
219
+ Depwire detects connections between files written in different languages.
561
220
 
562
- ### `depwire dead-code [directory]`
221
+ A TypeScript `fetch('/api/users')` call matched to a Python `@app.get('/api/users')` route definition — that's a cross-language edge. Delete the Python route and Depwire shows the TypeScript callers as broken.
563
222
 
564
- Detect unused symbols across your codebase with confidence-based classification.
223
+ Supported patterns:
224
+ - REST API edges — fetch/axios calls matched to Express, FastAPI, Flask, Gin route definitions
225
+ - Subprocess edges — execSync/subprocess.run calls matched to target files in the graph
565
226
 
566
- **Directory argument is optional** Auto-detects project root.
227
+ These edges flow through every existing feature: What If simulation, impact analysis, security scanner, and arc diagram visualization.
567
228
 
568
- **Options:**
569
- - `--confidence <level>` — Minimum confidence level to show: `high`, `medium`, `low` (default: `medium`)
570
- - `--include-low` — Shortcut for `--confidence low`
571
- - `--verbose` — Show detailed info for each dead symbol (file, line, kind, reason)
572
- - `--stats` — Show summary statistics
573
- - `--include-tests` — Include test files in analysis (excluded by default)
574
- - `--json` — Output as JSON for CI/automation
229
+ ---
575
230
 
576
- **Confidence Levels:**
577
- - 🔴 **High confidence (definitely dead)**: Not exported with zero references, or exported but never used
578
- - 🟡 **Medium confidence (probably dead)**: Exported from barrel files with zero dependents, or only used in test files
579
- - ⚪ **Low confidence (might be dead)**: Exported from package entry points, types with zero dependents, or in dynamic-use directories (routes, middleware, etc.)
231
+ ## Architecture health score
580
232
 
581
- **Examples:**
582
233
  ```bash
583
- # Analyze dead code (default: medium confidence and above)
584
- depwire dead-code
585
-
586
- # Show only high-confidence dead code
587
- depwire dead-code --confidence high
588
-
589
- # Show all potential dead code (including low confidence)
590
- depwire dead-code --confidence low
591
- # Or use shortcut
592
- depwire dead-code --include-low
593
-
594
- # Detailed analysis with reasons and statistics
595
- depwire dead-code --verbose --stats
596
-
597
- # Include test files in analysis (excluded by default)
598
- depwire dead-code --include-tests
599
-
600
- # JSON output for CI/automation
601
- depwire dead-code --json
234
+ depwire health .
602
235
  ```
603
236
 
604
- **Automatic Exclusions:**
605
- The dead code detector automatically excludes:
606
- - Entry point files (index.ts, main.ts, server.ts, etc.)
607
- - Test files (*.test.*, *.spec.*, __tests__/)
608
- - Config files (*.config.*)
609
- - Type declarations (*.d.ts)
610
- - Framework auto-loaded directories (pages/, routes/, middleware/, commands/)
237
+ Overall: 68/100 (Grade: D)
238
+ Coupling 70 C
239
+ Cohesion 80 B
240
+ Circular Dependencies 100 A
241
+ God Files 40 F
242
+ Orphans & Dead Code 20 F
243
+ Dependency Depth 60 D
611
244
 
612
- ### `depwire temporal [directory]`
245
+ 6 dimensions. Letter grades. Actionable recommendations. Trend tracking across runs.
613
246
 
614
- Visualize how the dependency graph evolved over git history.
247
+ ---
615
248
 
616
- **Directory argument is optional** — Auto-detects project root.
249
+ ## SDK
617
250
 
618
- **Options:**
619
- - `--commits <number>` — Number of commits to sample (default: 20)
620
- - `--strategy <type>` — Sampling strategy: `even` (every Nth), `weekly`, `monthly` (default: `even`)
621
- - `-p, --port <number>` — Server port (default: 3334)
622
- - `--output <path>` — Save snapshots to custom path (default: `.depwire/temporal/`)
623
- - `--verbose` — Show progress for each commit being parsed
624
- - `--stats` — Show summary statistics at end
251
+ Depwire exposes a stable public API for programmatic use and CI pipelines:
625
252
 
626
- **Examples:**
627
253
  ```bash
628
- # Auto-detect and analyze 20 commits
629
- depwire temporal
630
-
631
- # Sample 50 commits with monthly snapshots
632
- depwire temporal --commits 50 --strategy monthly
633
-
634
- # Verbose mode with stats
635
- depwire temporal --verbose --stats
636
-
637
- # Custom output directory
638
- depwire temporal --output ./temp-snapshots
254
+ npm install depwire-cli
639
255
  ```
640
256
 
641
- **Output:**
642
- - Interactive browser visualization at `http://127.0.0.1:3334`
643
- - Timeline slider to scrub through git history
644
- - Arc diagram morphing between snapshots
645
- - Growth statistics showing files/symbols/edges evolution
646
- - Auto-zoom to fit full diagram on each snapshot change
647
-
648
- Snapshots are cached in `.depwire/temporal/` for fast re-rendering.
649
-
650
- ### `depwire whatif [directory]`
651
-
652
- Simulate architectural changes before touching code.
653
-
654
- **Directory argument is optional** — Auto-detects project root.
655
-
656
- **Options:**
657
- - `--simulate <action>` — Action to simulate: `move`, `delete`, `rename`, `split`, `merge`
658
- - `--target <file>` — File to apply the action to
659
- - `--destination <file>` — Destination path (for move action)
660
- - `--new-name <name>` — New name (for rename action)
661
- - `--source <file>` — Source file (for merge action)
662
- - `--new-file <file>` — New file path (for split action)
663
- - `--symbols <symbols>` — Comma-separated symbol names (for split action)
664
-
665
- **Examples:**
666
- ```bash
667
- # What breaks if I delete this file?
668
- depwire whatif --simulate delete --target src/auth/service.ts
669
-
670
- # What happens if I move this module?
671
- depwire whatif --simulate move --target src/utils.ts --destination src/core/utils.ts
672
-
673
- # Rename a file
674
- depwire whatif --simulate rename --target src/router.ts --new-name routes.ts
675
-
676
- # Split symbols into a new file
677
- depwire whatif --simulate split --target src/utils.ts --new-file src/helpers.ts --symbols "formatDate,parseUrl"
678
-
679
- # Merge two files
680
- depwire whatif --simulate merge --target src/auth.ts --source src/login.ts
257
+ ```typescript
258
+ import {
259
+ parseProject,
260
+ buildGraph,
261
+ calculateHealthScore,
262
+ analyzeDeadCode,
263
+ generateDocs,
264
+ scanSecurity,
265
+ SimulationEngine,
266
+ detectCrossLanguageEdges,
267
+ searchSymbols,
268
+ getImpact,
269
+ getArchitectureSummary,
270
+ DepwireSDKVersion
271
+ } from 'depwire-cli/sdk';
681
272
  ```
682
273
 
683
- **Output:**
684
- - Health score delta (before/after with improvement indicator)
685
- - Broken imports with file and symbol details
686
- - Affected nodes count
687
- - Circular dependencies introduced or resolved
688
- - Added and removed edge counts
689
-
690
- ### Error Handling
274
+ The SDK is the stable public API surface. All integrations should import from `depwire-cli/sdk` — never from internal paths.
691
275
 
692
- Depwire gracefully handles parse errors:
693
- - **Malformed files** — Skipped with warning, parsing continues
694
- - **Large files** — Files over 1MB are automatically skipped
695
- - **Port collisions** — Auto-increments to next available port (3456 → 3457 → 3458...)
696
- - **Protected paths** — Blocks access to sensitive directories (.ssh, .aws, /etc)
276
+ ---
697
277
 
278
+ ## Why Depwire
698
279
 
699
- ## Example Workflows
280
+ | | Depwire | RAG-based tools | LLM scanning |
281
+ |--|---------|-----------------|--------------|
282
+ | Approach | Deterministic graph | Probabilistic match | Brute force |
283
+ | Accuracy | 100% — tree-sitter AST | ~70% — embedding match | Varies |
284
+ | Refactor safety | Full call chain tracing | Misses indirect refs | Blind edits |
285
+ | Token cost | Ultra-low — surgical reads | High — context stuffing | Extreme |
286
+ | Cross-language | REST + subprocess edges | None | None |
287
+ | Security scanner | Graph-aware severity | None | None |
288
+ | What If simulation | Before touching code | None | None |
289
+ | Runs locally | Always | Varies | Never |
700
290
 
701
- ### Refactoring with AI
291
+ ---
702
292
 
703
- ![Claude Desktop with Depwire MCP](./assets/claude.gif)
293
+ ## Language support
704
294
 
705
- ```
706
- # In Claude Desktop or Cursor with Depwire MCP:
295
+ TypeScript, JavaScript, Python, Go, Rust, C — with cross-language edge detection between all supported languages.
707
296
 
708
- "Analyze the impact of renaming UserService to UserRepository"
297
+ C# / .NET support coming in v1.1.
709
298
 
710
- # Depwire responds with:
711
- # - All files that import UserService
712
- # - All call sites
713
- # - All type references
714
- # - Suggested find-and-replace strategy
715
- ```
299
+ ---
716
300
 
717
- ### Understanding a New Codebase
301
+ ## Cloud dashboard
718
302
 
719
- ```
720
- "Show me the architecture summary"
303
+ [app.depwire.dev](https://app.depwire.dev) — full dependency graph, health score, dead code report, and AI codebase chat in the browser. No local setup required.
721
304
 
722
- # Depwire responds with:
723
- # - Language breakdown
724
- # - Module/package structure
725
- # - Most-connected files (architectural hubs)
726
- # - Entry points
727
- ```
305
+ - Free for public repos
306
+ - Pro ($19/month) — unlimited repos, private repo support, AI codebase chat
728
307
 
729
- ### Pre-Commit Impact Check
308
+ ---
730
309
 
731
- ```bash
732
- # Check what your changes affect before committing
733
- depwire viz
734
- # Review the arc diagram — red arcs show files you touched
735
- ```
736
-
737
- ## Security
738
-
739
- Depwire is **read-only** — it never writes to, modifies, or executes your code.
310
+ ## Roadmap
740
311
 
741
- - Parses source files with tree-sitter (the same parser used by VS Code and Zed)
312
+ **Shipped**
313
+ - Arc diagram visualization
314
+ - 17 MCP tools
315
+ - Multi-language support (TypeScript, JavaScript, Python, Go, Rust, C)
316
+ - Architecture health score
317
+ - Dead code detection
318
+ - Temporal graph
319
+ - What If simulation — CLI + browser UI
320
+ - Security scanner — graph-aware severity elevation
321
+ - Cross-language edge detection — REST API + subprocess
322
+ - Public SDK — `depwire-cli/sdk`
323
+ - Cloud dashboard — app.depwire.dev
324
+ - PR Impact GitHub Action
325
+
326
+ **Coming next**
327
+ - C# / .NET language support
328
+ - AI-suggested refactors
329
+ - VSCode extension
330
+ - Natural language architecture queries
331
+
332
+ ---
333
+
334
+ ## Security posture
335
+
336
+ Depwire is read-only. It never writes to, modifies, or executes your code.
337
+
338
+ - Parses with tree-sitter — the same parser used by VS Code and Zed
742
339
  - Visualization server binds to localhost only
743
- - No data leaves your machine — everything runs locally
744
- - Blocks access to sensitive system directories (.ssh, .aws, /etc)
340
+ - No data leaves your machine
341
+ - Blocks access to sensitive system directories
745
342
  - npm packages published with provenance verification
746
343
 
747
344
  See [SECURITY.md](SECURITY.md) for full details.
748
345
 
749
- ## Roadmap
750
-
751
- ### ✅ Shipped
752
- - [x] Arc diagram visualization
753
- - [x] MCP server (17 tools)
754
- - [x] Multi-language support (TypeScript, JavaScript, Python, Go, Rust, C)
755
- - [x] File watching + live refresh
756
- - [x] Auto-generated documentation (13 documents)
757
- - [x] Dependency health score (0-100)
758
- - [x] Dead code detection with confidence scoring
759
- - [x] Temporal graph — watch your architecture evolve over git history
760
- - [x] PR Impact GitHub Action (depwire-action v1.0.0)
761
- - [x] Auto-detect project root (no path needed)
762
- - [x] WASM migration (Windows support)
763
- - [x] Cloud dashboard — [app.depwire.dev](https://app.depwire.dev)
764
- - [x] What If simulation — simulate refactors before touching code
765
- - [x] Security scanner — deterministic vulnerability detection with graph-aware severity
766
-
767
- ### Coming Next
768
- - [ ] New language support (Java, C++, Ruby — community requested)
769
- - [ ] Cross-language edge detection (API routes ↔ frontend calls)
770
- - [ ] AI-suggested refactors
771
- - [ ] Natural language architecture queries
772
- - [ ] VSCode extension
773
-
774
- ## Cloud Dashboard
775
-
776
- Prefer a browser interface? [app.depwire.dev](https://app.depwire.dev) gives you the full dependency graph, health score, dead code report, and AI codebase chat — without any local setup. Free tier available.
777
-
778
- - **Free** for public repos
779
- - **Pro** ($19/month) — unlimited repos + private repo support
346
+ ---
780
347
 
781
348
  ## Contributing
782
349
 
783
- Contributions welcome! Please note:
784
-
785
350
  1. Fork the repository
786
351
  2. Create a feature branch
787
352
  3. Add tests for new functionality
788
353
  4. Submit a pull request
789
354
  5. Sign the CLA (handled automatically on your first PR)
790
355
 
791
- All contributors must sign the Contributor License Agreement before their PR can be merged.
356
+ ---
792
357
 
793
358
  ## Author
794
359
 
795
360
  **Atef Ataya** — AI architect, author, and creator of Depwire.
796
361
 
797
- - 🎥 [YouTube](https://www.youtube.com/@atefataya) — 600K+ subscribers covering AI agents, MCP, and LLMs
798
- - 📖 [The Architect's Playbook: 5 Pillars](https://www.amazon.com/dp/B0GCHNW2W8) — Best practices for AI agent architecture
799
- - 💼 [LinkedIn](https://www.linkedin.com/in/atefataya/)
362
+ - [YouTube](https://www.youtube.com/@atefataya) — 600K+ subscribers covering AI agents, MCP, and LLMs
363
+ - [The Architect's Playbook: 5 Pillars](https://www.amazon.com/dp/B0GCHNW2W8)
364
+ - [LinkedIn](https://www.linkedin.com/in/atefataya/)
800
365
 
801
- ## License
366
+ ---
802
367
 
803
- Depwire is licensed under the [Business Source License 1.1](LICENSE).
804
-
805
- - **Use it freely** for personal projects, internal company use, and development
806
- - **Cannot** be offered as a hosted/managed service to third parties
807
- - **Converts** to Apache 2.0 on February 25, 2029
368
+ ## License
808
369
 
809
- For commercial licensing inquiries: atef@depwire.dev
370
+ [Business Source License 1.1](LICENSE) — free for personal and internal company use. Converts to Apache 2.0 on February 25, 2029.
810
371
 
811
- ## Credits
372
+ Commercial licensing: atef@depwire.dev
812
373
 
813
- Built by [ATEF ATAYA LLC](https://depwire.dev)
374
+ ---
814
375
 
815
- Powered by:
816
- - [tree-sitter](https://tree-sitter.github.io/tree-sitter/) — Fast, reliable parsing
817
- - [graphology](https://graphology.github.io/) — Powerful graph data structure
818
- - [D3.js](https://d3js.org/) — Data visualization
819
- - [Model Context Protocol](https://modelcontextprotocol.io/) — AI tool integration
376
+ Built with [tree-sitter](https://tree-sitter.github.io/tree-sitter/), [graphology](https://graphology.github.io/), [D3.js](https://d3js.org/), and the [Model Context Protocol](https://modelcontextprotocol.io/).
@@ -16,7 +16,7 @@ import {
16
16
  parseTypeScriptFile,
17
17
  scanSecurity,
18
18
  searchSymbols
19
- } from "./chunk-ITEGMPF7.js";
19
+ } from "./chunk-WUSXCZXA.js";
20
20
 
21
21
  // src/viz/data.ts
22
22
  import { basename } from "path";
@@ -1,5 +1,5 @@
1
1
  // src/utils/files.ts
2
- import { readdirSync, statSync, existsSync, lstatSync } from "fs";
2
+ import { readdirSync, statSync, existsSync, lstatSync, realpathSync } from "fs";
3
3
  import { join, relative } from "path";
4
4
  import os from "os";
5
5
  function scanDirectory(rootDir, baseDir = rootDir) {
@@ -50,6 +50,7 @@ function fileExists(filePath) {
50
50
  }
51
51
  }
52
52
  function findProjectRoot(startDir = process.cwd()) {
53
+ startDir = realpathSync(startDir);
53
54
  const projectMarkers = [
54
55
  "package.json",
55
56
  // Node.js
@@ -79,9 +80,6 @@ function findProjectRoot(startDir = process.cwd()) {
79
80
  let depth = 0;
80
81
  const home = os.homedir();
81
82
  while (currentDir !== rootDir && depth < maxDepth) {
82
- if (currentDir === home || !currentDir.startsWith(home)) {
83
- break;
84
- }
85
83
  const dirName = currentDir.split("/").pop();
86
84
  if (dirName && blocklist.includes(dirName)) {
87
85
  console.warn(`\u26A0\uFE0F Skipping blocked directory: ${dirName}`);
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  stashChanges,
18
18
  updateFileInGraph,
19
19
  watchProject
20
- } from "./chunk-VJLBOFCD.js";
20
+ } from "./chunk-FUIZQCYB.js";
21
21
  import {
22
22
  SimulationEngine,
23
23
  analyzeDeadCode,
@@ -31,7 +31,7 @@ import {
31
31
  parseProject,
32
32
  scanSecurity,
33
33
  searchSymbols
34
- } from "./chunk-ITEGMPF7.js";
34
+ } from "./chunk-WUSXCZXA.js";
35
35
 
36
36
  // src/index.ts
37
37
  import { Command } from "commander";
@@ -4,11 +4,11 @@ import {
4
4
  startMcpServer,
5
5
  updateFileInGraph,
6
6
  watchProject
7
- } from "./chunk-VJLBOFCD.js";
7
+ } from "./chunk-FUIZQCYB.js";
8
8
  import {
9
9
  buildGraph,
10
10
  parseProject
11
- } from "./chunk-ITEGMPF7.js";
11
+ } from "./chunk-WUSXCZXA.js";
12
12
 
13
13
  // src/mcpb-entry.ts
14
14
  import { resolve } from "path";
package/dist/sdk.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  parseProject,
11
11
  scanSecurity,
12
12
  searchSymbols
13
- } from "./chunk-ITEGMPF7.js";
13
+ } from "./chunk-WUSXCZXA.js";
14
14
 
15
15
  // src/sdk.ts
16
16
  import { readFileSync } from "fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "depwire-cli",
3
- "version": "0.9.28",
3
+ "version": "0.9.30",
4
4
  "description": "Dependency graph + 17 MCP tools for AI coding assistants. Impact analysis, health scoring, security scanner.",
5
5
  "type": "module",
6
6
  "bin": {