weavatrix 1.0.0 → 1.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 CHANGED
@@ -1,32 +1,24 @@
1
- # Weavatrix
1
+ # Weavatrix — native MCP repository intelligence
2
2
 
3
3
  [![CI](https://github.com/sergii-ziborov/weavatrix/actions/workflows/ci.yml/badge.svg)](https://github.com/sergii-ziborov/weavatrix/actions/workflows/ci.yml)
4
4
  [![npm](https://img.shields.io/npm/v/weavatrix.svg)](https://www.npmjs.com/package/weavatrix)
5
- [![crates.io](https://img.shields.io/crates/v/weavatrix-rust.svg)](https://crates.io/crates/weavatrix-rust)
6
- [![docs.rs](https://docs.rs/weavatrix-rust/badge.svg)](https://docs.rs/weavatrix-rust)
7
- [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sergii-ziborov/weavatrix/blob/main/LICENSE)
8
-
9
- **Give your coding agent the map of the repository before it starts guessing.**
10
-
11
- Weavatrix is a native Rust repository-intelligence engine and MCP server for
12
- Codex, Claude Code, and other coding agents. It turns source, Git history,
13
- coverage, endpoints, infrastructure, clones, search, vectors, semantic links,
14
- and temporal memory into one always-fresh evidence graph.
15
-
16
- Ask what breaks, where an API is used, why a cycle exists, which code is truly
17
- dead, or whether a change preserved the architecture. Weavatrix answers from
18
- bounded graph evidence with file, line, extractor, confidence, and revision
19
- provenance—not from a wider grep and not from a fabricated certainty score.
20
-
21
- | Release proof | Result |
22
- | --- | ---: |
23
- | Read-only MCP tools | **39** |
24
- | Installed-package cold speed vs `weavatrix-js` | **30.34x** |
25
- | Warm tool-call speed vs `weavatrix-js` | **156.10x** |
26
- | Shared JS call targets missing or wrong | **0 / 0** |
27
- | Shared imports, methods, and re-exports covered | **100%** |
28
- | Rust line coverage release gate | **87.18%** |
29
- | Runtime downloads, install scripts, external executables | **0** |
5
+ [![engine](https://img.shields.io/crates/v/weavatrix-rust.svg?label=engine)](https://crates.io/crates/weavatrix-rust)
6
+ [![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sergii-ziborov/weavatrix/blob/main/LICENSE)
7
+
8
+ **Give your coding agent repository evidence before it starts guessing.**
9
+
10
+ Weavatrix is the native MCP product for repository intelligence. It gives
11
+ Codex, Claude Code, and other coding agents 39 read-only operations over one
12
+ revision-bound evidence graph: impact, architecture, APIs, Git history,
13
+ duplicates, dead code, search, semantic links, and temporal memory.
14
+
15
+ It does not answer from a larger grep or an invented confidence score. Every
16
+ bounded result can carry the repository revision, file, line, extractor,
17
+ evidence kind, and confidence that produced it.
18
+
19
+ This npm package is the convenient prebuilt distribution of the same native
20
+ product published on crates.io as `weavatrix`. It is not a separate
21
+ JavaScript engine; both registry packages run the same Rust adapter and engine.
30
22
 
31
23
  ## Install in 30 seconds
32
24
 
@@ -34,17 +26,16 @@ provenance—not from a wider grep and not from a fabricated certainty score.
34
26
  npx -y weavatrix mcp .
35
27
  ```
36
28
 
37
- Or install the Rust binary directly:
29
+ Or install the same native MCP product through Cargo:
38
30
 
39
31
  ```sh
40
- cargo install weavatrix-rust
41
- weavatrix mcp . --profile=all
32
+ cargo install weavatrix
33
+ weavatrix mcp .
42
34
  ```
43
35
 
44
36
  ### Codex
45
37
 
46
38
  ```toml
47
- # ~/.codex/config.toml
48
39
  [mcp_servers.weavatrix]
49
40
  command = "npx"
50
41
  args = ["-y", "weavatrix", "mcp", "."]
@@ -56,210 +47,119 @@ args = ["-y", "weavatrix", "mcp", "."]
56
47
  claude mcp add weavatrix -- npx -y weavatrix mcp .
57
48
  ```
58
49
 
59
- The npm package contains prebuilt binaries for Windows x64/arm64, macOS
60
- x64/arm64, and glibc-based Linux x64/arm64. It has no install script and does
61
- not download a binary after installation.
50
+ Profiles expose bounded views of the same engine:
62
51
 
63
- ## What your agent can ask
52
+ ```sh
53
+ npx -y weavatrix mcp . --profile=all
54
+ npx -y weavatrix mcp . --profile=code
55
+ npx -y weavatrix mcp . --profile=seo
56
+ ```
57
+
58
+ The package contains native binaries for Windows x64/arm64, macOS x64/arm64,
59
+ and glibc Linux x64/arm64. It has no install script and performs no runtime
60
+ download.
61
+
62
+ ## What an agent can ask
64
63
 
65
64
  ```text
66
65
  What breaks if I change src/auth/middleware.ts?
67
- Trace POST /api/orders through the backend and its clients.
68
- Which production symbols are dead, and what evidence says so?
66
+ Trace POST /api/orders through this backend and its clients.
67
+ Which production symbols are dead, and what evidence proves it?
69
68
  Show duplicate implementations but suppress router boilerplate.
70
- Which service violates the intended architecture, and why?
71
- Find every HTTP, GraphQL, gRPC, Kafka, RabbitMQ, NATS, JMS,
72
- SQS or SNS contract affected by this branch.
73
- Build the smallest context bundle needed to edit this symbol safely.
74
- Suggest internal links between these pages without mixing inferred SEO
75
- relationships into the deterministic code graph.
69
+ Which dependency violates .weavatrix/architecture.json?
70
+ Find every GraphQL, gRPC, Kafka, RabbitMQ, NATS, JMS, SQS, or SNS
71
+ contract affected by this branch.
72
+ Build the smallest source bundle needed to edit this symbol safely.
76
73
  ```
77
74
 
78
- Weavatrix builds the graph once and projects the same revision into small,
79
- task-specific answers. A health result, endpoint trace, blast radius, clone
80
- family, architecture violation, and context bundle therefore agree about
81
- repository identity and evidence.
82
-
83
- ## The 39-tool surface
75
+ ## The 39 read-only operations
84
76
 
85
- | Workflow | Tools |
77
+ | Workflow | Operations |
86
78
  | --- | --- |
87
79
  | Graph orientation | `graph_stats`, `get_node`, `get_neighbors`, `query_graph`, `god_nodes`, `shortest_path`, `get_community`, `list_communities`, `module_map` |
88
- | Change impact and proof | `get_dependents`, `change_impact`, `verified_change`, `prepare_change`, `graph_diff` |
80
+ | Change impact | `get_dependents`, `change_impact`, `verified_change`, `prepare_change`, `graph_diff` |
89
81
  | Exact source context | `search_code`, `read_source`, `inspect_symbol`, `context_bundle` |
90
82
  | Health and quality | `find_duplicates`, `find_dead_code`, `run_audit`, `coverage_map`, `hot_path_review` |
91
83
  | APIs and transports | `list_endpoints`, `trace_endpoint`, `trace_api_contract` |
92
84
  | Architecture | `get_architecture_contract`, `verify_architecture`, `explain_architecture_violation`, `propose_architecture_exception` |
93
85
  | Git and repositories | `git_history`, `cross_repo_git`, `open_repo`, `list_known_repos`, `rebuild_graph` |
94
- | Native Rust extensions | `vector_search`, `semantic_link`, `seo_link_suggestions`, `memory_context` |
95
-
96
- Three profiles expose bounded views of the same read-only engine:
97
-
98
- ```sh
99
- weavatrix mcp . --profile=all # all 39 tools
100
- weavatrix mcp . --profile=code # code and architecture
101
- weavatrix mcp . --profile=seo # content and semantic linking
102
- ```
103
-
104
- Optional Cargo features remove capabilities from `tools/list`; disabled
105
- features are never advertised as unavailable stubs.
106
-
107
- ## More than a code graph
108
-
109
- ### Languages and repository surfaces
110
-
111
- - Rust AST extraction plus JavaScript, TypeScript, Python, Go, Java, C#, C,
112
- C++, Bash, SQL, Solidity, Swift, HTML, CSS-family, Terraform, XML,
113
- Markdown-family, GraphQL, Protobuf, YAML, and Kubernetes structures;
114
- - HTTP routes, GraphQL operations, gRPC services and streaming modes;
115
- - Kafka, RabbitMQ/AMQP, JMS, NATS, SQS, SNS, and MongoDB evidence;
116
- - package manifests, lockfiles, JSON configuration, architecture contracts,
117
- and measured coverage artifacts.
118
-
119
- ### Lossless parsing
120
-
121
- The first-party
122
- [`weavatrix-parse`](https://github.com/sergii-ziborov/weavatrix-parse)
123
- tokenizer preserves every input byte. Structural extraction is fast, but the
124
- original source remains recoverable for diagnostics, exact spans, future
125
- compiler work, and source-to-source transformations.
126
-
127
- The parser is not a regex fallback hidden behind a Rust binary. Its release
128
- suite checks byte-for-byte round trips, exact facts, GraphQL/Protobuf fixtures,
129
- and import agreement against tree-sitter on real repositories.
130
-
131
- ### Direct Git and local-only operation
86
+ | Native extensions | `vector_search`, `semantic_link`, `seo_link_suggestions`, `memory_context` |
132
87
 
133
- Weavatrix reads Git objects through
134
- [`weavatrix-git`](https://github.com/sergii-ziborov/weavatrix-git); it does not
135
- spawn `git`. Search does not spawn `rg`. The MCP server does not launch Node,
136
- Python, a language server, or code from the analyzed repository.
88
+ Every operation is read-only with respect to the analyzed repository.
89
+ Pagination and explicit limits bound large neighborhoods, histories, searches,
90
+ and contract inventories.
137
91
 
138
- Production code has no network or source-write path. Derived in-memory state
139
- can refresh after files change, but Weavatrix does not edit application source
140
- or create commits.
92
+ ## 24 repository surfaces
141
93
 
142
- ### Evidence instead of overclaiming
143
-
144
- Every relationship records its extractor, evidence class, confidence, and
145
- optional source span. Static reachability is never reported as measured test
146
- coverage. Dynamic or ambiguous JavaScript and Python behavior remains bounded
147
- evidence for the agent instead of being silently connected to a same-named
148
- symbol.
149
-
150
- ## Speed measured at the package boundary
151
-
152
- The release benchmark does not compare a Rust library function with a full
153
- JavaScript process. It packs and installs both npm packages into isolated
154
- roots, starts fresh MCP processes with empty caches, validates package and
155
- protocol identity, calls the same tools, and checks clean shutdown.
156
-
157
- On 2026-07-29, `weavatrix` 1.0.0 with Rust engine 1.0.1 was compared with
158
- `weavatrix-js` 0.3.15 using three paired fresh processes per tool and five warm
159
- calls per process:
160
-
161
- | Tool | Rust cold median | JavaScript cold median | Speedup |
162
- | --- | ---: | ---: | ---: |
163
- | `graph_stats` | 249.87 ms | 7,561.94 ms | **30.73x** |
164
- | `list_endpoints` | 321.07 ms | 7,400.17 ms | **26.15x** |
165
- | `find_dead_code` | 310.45 ms | 9,298.27 ms | **31.81x** |
166
- | `run_audit` | 378.47 ms | 11,583.83 ms | **35.62x** |
167
-
168
- The median of all 12 paired cold ratios is **30.34x**. Warm-call medians are
169
- 3.17 ms for Rust and 494.83 ms for JavaScript, a **156.10x** speedup. Every
170
- selected tool was faster; the gate requires at least 24x cold overall, at
171
- least 30x warm, valid MCP responses, matching package identity, and no leaked
172
- child process.
173
-
174
- Raw report:
175
- [`npm-mcp-boundary-mcport-0.3.0-vs-js-0.3.15.json`](https://github.com/sergii-ziborov/weavatrix-rust/blob/main/benchmark-results/npm-mcp-boundary-mcport-0.3.0-vs-js-0.3.15.json)
176
- (SHA-256
177
- `8224CACEA4F10B6B09BB525FCC1E4FFA0A7AF1292CD1C4EC63515A2CF99D7F5A`).
178
-
179
- The full methodology, historical same-revision repository measurements,
180
- component competitors, limitations, and reproduction commands are in the
181
- [benchmark report](https://github.com/sergii-ziborov/weavatrix-rust/blob/main/docs/benchmarks.md).
182
-
183
- ## Quality measured against the JavaScript engine
184
-
185
- Both engines analyzed an immutable 502-file `weavatrix-js` 0.3.14 checkout.
186
- Paths, symbols, and relation identities were normalized before comparison.
187
-
188
- | Relation | Rust | JavaScript | JavaScript evidence covered |
189
- | --- | ---: | ---: | ---: |
190
- | imports | 2,320 | 1,126 | **100%** |
191
- | methods | 63 | 4 | **100%** |
192
- | re-exports | 80 | 75 | **100%** |
193
- | calls | 3,403 | 2,323 | **100% of targets** |
194
-
195
- For calls, 2,024 edges matched exactly. The remaining 299 reached the same
196
- source-line target while Rust also attached the containing symbol as owner.
197
- There were **zero missing targets and zero wrong targets**. Rust-only edges are
198
- retained as evidence, not automatically declared correct merely because there
199
- are more of them.
200
-
201
- Raw parity reports:
202
-
203
- - [`graph-parity-rust-1.0.0-vs-js-0.3.14.json`](https://github.com/sergii-ziborov/weavatrix-rust/blob/main/benchmark-results/graph-parity-rust-1.0.0-vs-js-0.3.14.json)
204
- - [`call-audit-rust-1.0.0-vs-js-0.3.14.json`](https://github.com/sergii-ziborov/weavatrix-rust/blob/main/benchmark-results/call-audit-rust-1.0.0-vs-js-0.3.14.json)
94
+ | Group | Surfaces |
95
+ | --- | --- |
96
+ | Code | Rust; JavaScript/JSX; TypeScript/TSX; Python; Go; Java; C#; C; C++; SQL; Bash/Zsh; Swift; Solidity |
97
+ | Contracts and configuration | GraphQL; Protobuf/gRPC; JSON/JSONC; YAML/Kubernetes; Terraform/HCL; XML |
98
+ | Documents and UI | HTML/Vue/Svelte; CSS/SCSS/Sass/Less; Markdown/MDX; reStructuredText; AsciiDoc |
205
99
 
206
- The release also dogfoods all 39 tools against Weavatrix itself. The verified
207
- self-run returned `PASS` with zero health findings, zero clone families, zero
208
- dead-code candidates after correct `#[cfg(test)]` inheritance, and no
209
- architecture cycles or dependency findings.
100
+ Cross-surface analysis connects HTTP, GraphQL, gRPC, Kafka, RabbitMQ/AMQP,
101
+ JMS, NATS, SQS, and SNS evidence. Dynamic dispatch that cannot be proved stays
102
+ unresolved; static reachability is never presented as measured coverage.
210
103
 
211
- ## Library and standalone CLI
212
-
213
- The MCP transport is optional. A minimal build keeps the Rust library and
214
- standalone `analyze`, `list-tools`, and `tool` commands without `mcport`:
104
+ ## Product and engine are separate
215
105
 
216
- ```toml
217
- [dependencies]
218
- weavatrix-rust = { version = "1", default-features = false }
106
+ ```text
107
+ coding agent
108
+ |
109
+ | MCP over stdio
110
+ v
111
+ weavatrix 1.1
112
+ profile catalog · refresh · watcher · MCP framing
113
+ |
114
+ v
115
+ weavatrix-rust 2.0
116
+ typed graph · analysis · 39 read-only operations
219
117
  ```
220
118
 
221
- ```sh
222
- cargo build --no-default-features
223
- weavatrix analyze . --pretty
224
- weavatrix list-tools
225
- weavatrix tool graph_stats .
226
- ```
119
+ This npm product owns MCP transport and native distribution. The
120
+ [`weavatrix-rust`](https://github.com/sergii-ziborov/weavatrix-rust) crate is
121
+ the reusable protocol-independent engine; it is not an MCP server.
122
+
123
+ ## Release evidence
227
124
 
228
- Enable `mcp` only when embedding the stdio server. The default full build also
229
- connects the first-party scan, graph, Git, search, clone, vector, semantic, and
230
- memory crates.
125
+ The installed-package benchmark packs both products, installs them into
126
+ isolated npm roots, starts fresh MCP processes with empty caches, and validates
127
+ identity, advertised operations, results, and cleanup.
231
128
 
232
- ## Safety and package integrity
129
+ The packaged 1.1.0 release candidate (`weavatrix-rust` 2.0.0) passed the
130
+ bounded native gate on 2026-07-30: 39 tools; cold initialize **343.248 ms**;
131
+ `tools/list` **1.059 ms**; first `graph_stats` **46.600 ms**; and 1,000 hot
132
+ `graph_stats` calls at **172.97 calls/s** with **0 failures**, p50 **4.337 ms**,
133
+ p95 **11.201 ms**, and p99 **14.056 ms**.
233
134
 
234
- - read-only repository analysis;
235
- - no install scripts or runtime downloads;
236
- - no application-source writes or commit creation;
237
- - no execution of analyzed repository code;
238
- - bounded MCP results with pagination for large neighborhoods and communities;
239
- - source-free, credential-free evidence by default;
240
- - npm provenance and immutable GitHub release assets;
241
- - forbidden unsafe Rust in the engine.
135
+ The last published baseline (`weavatrix` 1.0.0 versus `weavatrix-js` 0.3.15)
136
+ measured a **30.34x** median cold-boundary ratio and **156.10x** warm-call
137
+ ratio. Those comparison numbers remain historical; the bounded 1.1.0 gate is
138
+ not presented as a fresh competitor benchmark.
242
139
 
243
- ## Why the JavaScript version moved
140
+ Full evidence and methodology:
141
+ [benchmarks](https://github.com/sergii-ziborov/weavatrix/blob/main/docs/benchmarks.md).
244
142
 
245
- The canonical npm package moved to the native Rust engine after the Rust
246
- implementation covered the complete shared tool contract, found all measured
247
- JavaScript relation targets, added five native workflows, removed external
248
- runtime executables, preserved lossless parser input, and passed the installed
249
- package speed gate.
143
+ ## Safety
250
144
 
251
- The maintained JavaScript line remains available as
252
- [`weavatrix-js`](https://github.com/sergii-ziborov/weavatrix-js) for extensions
253
- and compatibility. `weavatrix@0.3.14` is the last JavaScript release under the
254
- canonical package name.
145
+ - read-only MCP surface;
146
+ - no repository-code execution or source writes;
147
+ - no network path in analysis;
148
+ - no npm install script or runtime binary download;
149
+ - bounded inputs, outputs, histories, and pagination;
150
+ - stable ordering and revision provenance;
151
+ - `unsafe` Rust forbidden in first-party engine crates;
152
+ - MIT licensed.
255
153
 
256
- Build lineage:
154
+ ## Links
257
155
 
258
- - [`weavatrix`](https://github.com/sergii-ziborov/weavatrix) — canonical npm package;
259
- - [`weavatrix-rust`](https://github.com/sergii-ziborov/weavatrix-rust) — native engine and crates.io source;
260
- - [`weavatrix-parse`](https://github.com/sergii-ziborov/weavatrix-parse) — lossless parser;
261
- - [`mcport`](https://github.com/sergii-ziborov/mcport) — dependency-light MCP stdio runtime.
156
+ - [Source and issues](https://github.com/sergii-ziborov/weavatrix)
157
+ - [Engine API](https://github.com/sergii-ziborov/weavatrix-rust)
158
+ - [Tool reference](https://github.com/sergii-ziborov/weavatrix/blob/main/docs/tool-reference.md)
159
+ - [Language support](https://github.com/sergii-ziborov/weavatrix/blob/main/docs/language-support.md)
160
+ - [Architecture](https://github.com/sergii-ziborov/weavatrix/blob/main/docs/architecture.md)
161
+ - [Benchmarks](https://github.com/sergii-ziborov/weavatrix/blob/main/docs/benchmarks.md)
262
162
 
263
163
  ## License
264
164
 
265
- MIT. Third-party crates retain their own licenses.
165
+ MIT.
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -30,7 +30,7 @@ export function resolveBinary() {
30
30
  if (!entry) {
31
31
  fail(`Unsupported platform: ${key}.`,
32
32
  'Prebuilt binaries cover win32/darwin/linux on x64 and arm64.',
33
- 'On other platforms install from source: cargo install weavatrix-rust')
33
+ 'On other platforms build the canonical weavatrix repository from source.')
34
34
  }
35
35
  const bundled = locateBundled(key)
36
36
  if (bundled) return bundled
@@ -39,7 +39,7 @@ export function resolveBinary() {
39
39
  if (binary) return binary
40
40
  fail(`The bundled native executable for ${key} is missing.`,
41
41
  'The installed package is incomplete; reinstall weavatrix,',
42
- 'or: cargo install weavatrix-rust')
42
+ 'or build the canonical weavatrix repository from source')
43
43
  return null
44
44
  }
45
45
 
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "weavatrix",
3
- "version": "1.0.0",
4
- "weavatrixEngineVersion": "1.0.2",
5
- "description": "Native Rust repository intelligence for coding agents: 39 read-only MCP tools for graphs, impact, APIs, architecture, health, search, semantics, and memory.",
3
+ "version": "1.1.0",
4
+ "weavatrixEngineVersion": "2.0.0",
5
+ "description": "Native repository intelligence for coding agents: 39 read-only MCP operations backed by typed evidence graphs, impact, architecture, APIs, Git, search, semantics, and memory.",
6
6
  "author": "Sergii Ziborov <sergii.ziborov@gmail.com>",
7
7
  "license": "MIT",
8
8
  "homepage": "https://weavatrix.com",
@@ -26,7 +26,8 @@
26
26
  "bin",
27
27
  "skill",
28
28
  "README.md",
29
- "LICENSE"
29
+ "LICENSE",
30
+ "server.json"
30
31
  ],
31
32
  "keywords": [
32
33
  "mcp",
package/server.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.sergii-ziborov/weavatrix",
4
+ "title": "Weavatrix",
5
+ "description": "Native Weavatrix MCP: 39 read-only repository tools across 24 code and configuration surfaces.",
6
+ "repository": {
7
+ "url": "https://github.com/sergii-ziborov/weavatrix",
8
+ "source": "github"
9
+ },
10
+ "version": "1.1.0",
11
+ "websiteUrl": "https://weavatrix.com",
12
+ "packages": [
13
+ {
14
+ "registryType": "npm",
15
+ "registryBaseUrl": "https://registry.npmjs.org",
16
+ "identifier": "weavatrix",
17
+ "version": "1.1.0",
18
+ "runtimeHint": "npx",
19
+ "transport": {
20
+ "type": "stdio"
21
+ },
22
+ "packageArguments": [
23
+ {
24
+ "type": "positional",
25
+ "value": "mcp"
26
+ },
27
+ {
28
+ "type": "positional",
29
+ "valueHint": "repoRoot",
30
+ "description": "Absolute path to the initial local repository; defaults to the current directory",
31
+ "format": "filepath",
32
+ "default": ".",
33
+ "isRequired": false
34
+ }
35
+ ]
36
+ }
37
+ ]
38
+ }