weavatrix 1.9.2 → 1.10.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,5 +1,7 @@
1
1
  # Weavatrix — native MCP repository intelligence
2
2
 
3
+ <img src="https://raw.githubusercontent.com/Weavatrix/weavatrix/main/plugins/weavatrix/assets/logo.svg" alt="Weavatrix logo" width="88" align="right">
4
+
3
5
  [![CI](https://github.com/Weavatrix/weavatrix/actions/workflows/ci.yml/badge.svg)](https://github.com/Weavatrix/weavatrix/actions/workflows/ci.yml)
4
6
  [![npm](https://img.shields.io/npm/v/weavatrix.svg)](https://www.npmjs.com/package/weavatrix)
5
7
  [![engine](https://img.shields.io/crates/v/weavatrix-rust.svg?label=engine)](https://crates.io/crates/weavatrix-rust)
@@ -8,7 +10,7 @@
8
10
  **Give your coding agent repository evidence before it starts guessing.**
9
11
 
10
12
  Weavatrix is the native MCP product for repository intelligence. It gives
11
- Codex, Claude Code, and other coding agents 43 read-only operations over one
13
+ Codex, Claude Code, and other coding agents 44 read-only operations over one
12
14
  revision-bound evidence graph: impact, architecture, APIs, Git history,
13
15
  duplicates, dead code, search, semantic links, and temporal memory.
14
16
 
@@ -91,9 +93,83 @@ Which dependency violates .weavatrix/architecture.json?
91
93
  Find every GraphQL, gRPC, Kafka, RabbitMQ, NATS, JMS, SQS, or SNS
92
94
  contract affected by this branch.
93
95
  Build the smallest source bundle needed to edit this symbol safely.
96
+ Show me this file as it was two commits ago, without a checkout.
97
+ ```
98
+
99
+ ## See it answer
100
+
101
+ Real answers from Weavatrix analyzing its own repository at commit
102
+ `ec8bf30`, abridged (`…`) and with the local root shortened. Reproduce any of
103
+ them with `weavatrix tool <name> . '<arguments>'`.
104
+
105
+ **Orient in one call** — and know exactly which repository and revision
106
+ answered:
107
+
108
+ ```json
109
+ {"name": "graph_stats", "arguments": {}}
94
110
  ```
95
111
 
96
- ## The 43 read-only operations
112
+ ```json
113
+ {
114
+ "nodes": 1294,
115
+ "edges": 2771,
116
+ "freshness": {"state": "CURRENT", "source_revision": "sha256:dd3d96d3…"},
117
+ "relations": {"calls": 651, "contains": 1271, "imports": 419, "references": 314, "…": "…"},
118
+ "repository_context": {
119
+ "root": "…/weavatrix",
120
+ "git_head": "ec8bf3041588623f23ec5e7ebbaff3a333da9ca7",
121
+ "scan_revision": "sha256:dd3d96d3…",
122
+ "graph_age_seconds": 0
123
+ }
124
+ }
125
+ ```
126
+
127
+ Every answer carries that `repository_context` block. Add
128
+ `"expected_repository": "weavatrix"` to any call and a server that was
129
+ retargeted elsewhere fails loudly instead of answering about the wrong
130
+ repository.
131
+
132
+ **Blast radius before you edit:**
133
+
134
+ ```json
135
+ {"name": "get_dependents", "arguments": {"label": "file:src/mcp/server/mod.rs", "max_nodes": 6}}
136
+ ```
137
+
138
+ ```json
139
+ {
140
+ "dependents": [
141
+ {"distance": 1, "node": {"id": "file:src/main.rs", "language": "rust"}},
142
+ {"distance": 1, "node": {"id": "file:src/mcp/mod.rs"}},
143
+ {"distance": 1, "node": {"id": "file:src/mcp/server/tests/catalog.rs"}},
144
+ {"…": "…"}
145
+ ]
146
+ }
147
+ ```
148
+
149
+ **The file as it was — no checkout** (`git_read_blob`):
150
+
151
+ ```json
152
+ {"name": "git_read_blob", "arguments": {"path": "Cargo.toml", "revision": "HEAD~3", "max_bytes": 400}}
153
+ ```
154
+
155
+ ```json
156
+ {
157
+ "path": "Cargo.toml",
158
+ "revision": "70b5bc788a10ec89ab28b9ecbc005e3b9c7f9829",
159
+ "oid": "f5f54bac00a4feb6e965c0d87c5c6d4d25782e91",
160
+ "kind": "utf8-text",
161
+ "lines": ["[package]", "name = \"weavatrix\"", "version = \"1.9.2\"", "…"],
162
+ "size_bytes": 1224,
163
+ "returned_bytes": 400,
164
+ "truncated": true
165
+ }
166
+ ```
167
+
168
+ Three commits before `ec8bf30` this package was 1.9.2; the agent reads that
169
+ follow-up to a diff without touching the worktree. Binary blobs fail closed
170
+ instead of being decoded into garbage.
171
+
172
+ ## The 44 read-only operations
97
173
 
98
174
  | Workflow | Operations |
99
175
  | --- | --- |
@@ -103,7 +179,7 @@ Build the smallest source bundle needed to edit this symbol safely.
103
179
  | Health and quality | `find_duplicates`, `find_dead_code`, `run_audit`, `coverage_map`, `hot_path_review` |
104
180
  | APIs and transports | `list_endpoints`, `trace_endpoint`, `trace_api_contract` |
105
181
  | Architecture | `get_architecture_contract`, `verify_architecture`, `verify_capabilities`, `explain_architecture_violation`, `propose_architecture_exception` |
106
- | Git and repositories | `git_history`, `cross_repo_git`, `open_repo`, `list_known_repos`, `rebuild_graph` |
182
+ | Git and repositories | `git_history`, `git_read_blob`, `cross_repo_git`, `open_repo`, `list_known_repos`, `rebuild_graph` |
107
183
  | Native extensions | `vector_search`, `semantic_link`, `seo_link_suggestions`, `memory_context` |
108
184
 
109
185
  Every operation is read-only with respect to the analyzed repository.
@@ -129,12 +205,12 @@ coding agent
129
205
  |
130
206
  | MCP over stdio
131
207
  v
132
- weavatrix 1.9.2
208
+ weavatrix 1.10.0
133
209
  profile catalog · refresh · watcher · MCP framing
134
210
  |
135
211
  v
136
- weavatrix-rust 2.7.3
137
- typed graph · analysis · 43 read-only operations
212
+ weavatrix-rust 2.9.0
213
+ typed graph · analysis · 44 read-only operations
138
214
  ```
139
215
 
140
216
  This npm product owns MCP transport and native distribution. The
@@ -143,13 +219,27 @@ the reusable protocol-independent engine; it is not an MCP server.
143
219
  Its standalone diagnostic therefore reports `weavatrix-rust <engine-version>`,
144
220
  while this MCP product reports both its product and embedded-engine identities.
145
221
 
146
- Engine 2.2.1 makes three reports carry only what their evidence supports:
147
- `find_duplicates` reports the lines a clone covers completely and the byte
148
- range to check them by, `run_audit` runtime findings land on the line they
149
- matched, and `token_budget` is refused by the operations that cannot apply it
150
- rather than accepted and ignored. `find_duplicates` also gains
151
- `include_strings`, which compares the payloads of multi-line literals - inline
152
- SQL, embedded templates - that the code pass sees as a single token.
222
+ ### You do not need the server to use the engines
223
+
224
+ The layers underneath are separately released npm packages with their own
225
+ repositories, licenses, and TypeScript types. Each one is a native library you
226
+ can `require` directly, with no MCP server, no agent, and no dependency on any
227
+ other Weavatrix package:
228
+
229
+ | Package | What it does on its own |
230
+ | --- | --- |
231
+ | [`weavatrix-scan`](https://www.npmjs.com/package/weavatrix-scan) | Deterministic repository manifests: normalized paths, sizes, hashes, one revision, typed skip evidence. |
232
+ | [`weavatrix-parse`](https://www.npmjs.com/package/weavatrix-parse) | Lossless tokenization and structural facts for 25 languages, with exact spans. |
233
+ | [`weavatrix-graph`](https://www.npmjs.com/package/weavatrix-graph) | A directed graph with provenance on every edge, plus BFS, SCC, topological sort, and PageRank. |
234
+ | [`weavatrix-memory`](https://www.npmjs.com/package/weavatrix-memory) | Bitemporal, evidence-carrying agent memory with a hard token budget and an audit receipt. |
235
+ | [`weavatrix-search`](https://www.npmjs.com/package/weavatrix-search) | Bounded ignore-aware content search, plus a persistent index updated from watcher events. |
236
+ | [`weavatrix-search-vector`](https://www.npmjs.com/package/weavatrix-search-vector) | Persistent, mutable vector search with metadata filters and an exact oracle. |
237
+ | [`weavatrix-clone`](https://www.npmjs.com/package/weavatrix-clone) | Type-1/2/3 clone detection with per-pair evidence and JSON, SARIF, and BigCloneEval output. |
238
+
239
+ Their Node and Bun benchmarks against the JavaScript library each would
240
+ otherwise replace live in one place, with the rules written down and the
241
+ losing rows kept:
242
+ [weavatrix-benchmarks](https://github.com/Weavatrix/weavatrix-benchmarks).
153
243
 
154
244
  ## Release evidence
155
245
 
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "weavatrix",
3
- "version": "1.9.2",
4
- "weavatrixEngineVersion": "2.7.3",
5
- "description": "Native repository intelligence for coding agents: 43 read-only MCP operations backed by typed evidence graphs, impact, architecture, APIs, Git, search, semantics, and memory.",
3
+ "version": "1.10.0",
4
+ "weavatrixEngineVersion": "2.9.0",
5
+ "description": "Native repository intelligence for coding agents: 44 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",
package/server.json CHANGED
@@ -2,19 +2,19 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.Weavatrix/weavatrix",
4
4
  "title": "Weavatrix",
5
- "description": "Native Weavatrix MCP: 43 read-only repository tools across 24 code and configuration surfaces.",
5
+ "description": "Native Weavatrix MCP: 44 read-only repository tools across 24 code and configuration surfaces.",
6
6
  "repository": {
7
7
  "url": "https://github.com/Weavatrix/weavatrix",
8
8
  "source": "github"
9
9
  },
10
- "version": "1.9.2",
10
+ "version": "1.10.0",
11
11
  "websiteUrl": "https://weavatrix.com",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "weavatrix",
17
- "version": "1.9.2",
17
+ "version": "1.10.0",
18
18
  "runtimeHint": "npx",
19
19
  "transport": {
20
20
  "type": "stdio"
@@ -2,7 +2,9 @@
2
2
 
3
3
  Open only the card for the method you are about to call. Each card explains
4
4
  when to use the method, its exact published inputs, and a minimal compact call.
5
- The live MCP `tools/list` schema is authoritative.
5
+ The live MCP `tools/list` schema is authoritative. Every answer carries
6
+ `repository_context` (root, scan revision, Git HEAD, graph age); pass
7
+ `expected_repository` to fail fast when the active repository differs.
6
8
 
7
9
  ## Graph, source, and orientation
8
10
 
@@ -12,9 +14,9 @@ The live MCP `tools/list` schema is authoritative.
12
14
  - [`query_graph`](tools/query_graph.md) — Bounded BFS or DFS around exact or textual seeds.
13
15
  - [`god_nodes`](tools/god_nodes.md) — Rank high-connectivity production nodes.
14
16
  - [`shortest_path`](tools/shortest_path.md) — Shortest typed dependency path between two nodes.
15
- - [`get_community`](tools/get_community.md) — Return one weak graph component.
16
- - [`list_communities`](tools/list_communities.md) — List deterministic weak graph components.
17
- - [`module_map`](tools/module_map.md) — Production folder and dependency map.
17
+ - [`get_community`](tools/get_community.md) — Return one coupling community (containment and package edges excluded).
18
+ - [`list_communities`](tools/list_communities.md) — List deterministic coupling communities (containment and package edges excluded).
19
+ - [`module_map`](tools/module_map.md) — Production folder map at a requested directory depth.
18
20
  - [`build_graph`](tools/build_graph.md) — Workspace, target and runner topology from manifest evidence.
19
21
  - [`search_code`](tools/search_code.md) — Literal or Rust-regex repository search without ripgrep.
20
22
  - [`read_source`](tools/read_source.md) — Bounded source context by node or repository path.
@@ -28,7 +30,8 @@ The live MCP `tools/list` schema is authoritative.
28
30
  - [`change_impact`](tools/change_impact.md) — Read-only Git change impact with graph evidence.
29
31
  - [`select_tests`](tools/select_tests.md) — Select the test suites a change most plausibly needs to run.
30
32
  - [`git_history`](tools/git_history.md) — Bounded direct Git history without launching git.
31
- - [`cross_repo_git`](tools/cross_repo_git.md) — Parallel histories, shared commits, or diffs across local repositories.
33
+ - [`git_read_blob`](tools/git_read_blob.md) — Bounded UTF-8 file content at an immutable Git revision or blob OID; binary blobs are refused.
34
+ - [`cross_repo_git`](tools/cross_repo_git.md) — Parallel histories, shared commits, or diffs across named local repositories.
32
35
  - [`verified_change`](tools/verified_change.md) — Composite pre-commit evidence and conservative verdict.
33
36
  - [`graph_diff`](tools/graph_diff.md) — Compare the current snapshot with an immutable Git revision.
34
37
 
@@ -38,7 +41,7 @@ The live MCP `tools/list` schema is authoritative.
38
41
  - [`find_dead_code`](tools/find_dead_code.md) — Conservative unreferenced-symbol review queue.
39
42
  - [`run_audit`](tools/run_audit.md) — Repository structure and evidence completeness audit.
40
43
  - [`coverage_map`](tools/coverage_map.md) — Measured coverage discovery or explicit static reachability.
41
- - [`hot_path_review`](tools/hot_path_review.md) — Rank high-connectivity and large source symbols.
44
+ - [`hot_path_review`](tools/hot_path_review.md) — Rank functions by static complexity times resolved call fan-in.
42
45
  - [`get_architecture_contract`](tools/get_architecture_contract.md) — Read or preview the local target-architecture contract.
43
46
  - [`prepare_change`](tools/prepare_change.md) — Select architecture rules for intended changed files.
44
47
  - [`verify_architecture`](tools/verify_architecture.md) — Verify graph dependencies against the active contract.
@@ -48,14 +51,14 @@ The live MCP `tools/list` schema is authoritative.
48
51
 
49
52
  ## APIs and transports
50
53
 
51
- - [`list_endpoints`](tools/list_endpoints.md) — Inventory statically extracted HTTP endpoints.
54
+ - [`list_endpoints`](tools/list_endpoints.md) — Inventory statically extracted HTTP endpoints, including hand-rolled req.method/pathname conditions.
52
55
  - [`trace_endpoint`](tools/trace_endpoint.md) — Resolve an endpoint and its bounded call neighborhood.
53
- - [`trace_api_contract`](tools/trace_api_contract.md) — Cross-repository HTTP, GraphQL, gRPC and event-transport contract evidence.
56
+ - [`trace_api_contract`](tools/trace_api_contract.md) — Cross-repository HTTP, GraphQL, gRPC and event-transport contract evidence for named backend and client roots.
54
57
 
55
58
  ## Repositories and refresh
56
59
 
57
- - [`open_repo`](tools/open_repo.md) — Retarget to another local repository.
58
- - [`list_known_repos`](tools/list_known_repos.md) — List repositories opened by this server process.
60
+ - [`open_repo`](tools/open_repo.md) — Retarget to another local repository. Graphs unused for 20 minutes unload; asking for one again rescans that folder.
61
+ - [`list_known_repos`](tools/list_known_repos.md) — List repositories with an in-process graph.
59
62
  - [`rebuild_graph`](tools/rebuild_graph.md) — Rebuild the derived in-memory graph without source writes.
60
63
 
61
64
  ## Optional supplied-data analysis
@@ -0,0 +1,33 @@
1
+ # `git_read_blob`
2
+
3
+ Bounded UTF-8 file content at an immutable Git revision or blob OID; binary blobs are refused.
4
+
5
+ ## When to use
6
+
7
+ After `graph_diff` or `git_history`, read a file "as it was" at a revision - or the exact blob an OID names - without checking anything out.
8
+
9
+ ## Inputs
10
+
11
+ - `max_bytes` (integer, min 1) — cap on returned content bytes (default 262144); the true size and a truncation flag are always reported.
12
+ - `oid` (string) — blob object id; mutually exclusive with `path`.
13
+ - `output_format` ("text" | "json" | "structured", default "json") — text returns the concise text block only; json returns structured output and mirrors it into text for clients that read only content; structured drops that mirror, which is the larger copy, and is safe only where the client reads structuredContent.
14
+ - `path` (string) — repository-relative file path looked up in the revision's tree.
15
+ - `revision` (string) — any resolvable revision, `~N` first-parent steps supported; default `HEAD`.
16
+ - `token_budget` (integer, min 1) — Approximate output ceiling in tokens (serialized bytes / 4); result arrays are trimmed from the tail to fit and the report states what was dropped.
17
+
18
+ ## Minimal call
19
+
20
+ ```json
21
+ {
22
+ "name": "git_read_blob",
23
+ "arguments": {
24
+ "path": "src/app.js",
25
+ "revision": "HEAD~1",
26
+ "output_format": "text"
27
+ }
28
+ }
29
+ ```
30
+
31
+ Binary content fails closed with the blob's true size; the answer never
32
+ fabricates text from bytes. The live MCP `tools/list` schema remains
33
+ authoritative for this installed version.
@@ -1,10 +1,10 @@
1
1
  # `list_known_repos`
2
2
 
3
- List repositories opened by this server process.
3
+ List repositories with an in-process graph.
4
4
 
5
5
  ## When to use
6
6
 
7
- List repositories previously opened by this server process.
7
+ See which roots this process has already opened.
8
8
 
9
9
  ## Inputs
10
10