@nrafinia/csmesh 0.2.8 → 0.3.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.
Files changed (2) hide show
  1. package/README.md +15 -5
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -81,7 +81,8 @@ In layered, enterprise .NET applications, **lexical text search (`grep`, `ripgre
81
81
  1. **Dependency Injection Bindings** (`AddScoped<IService, Service>()`)
82
82
  2. **CQRS / MediatR Handler Dispatches** (`_mediator.Send(cmd)`)
83
83
  3. **Interface Implementation Ranking** (distinguishing production services from mock fakes)
84
- 4. **Attribute-based Endpoint Routing** (`[HttpGet]`, `[HttpPost]`, `[Route]`)
84
+ 4. **Attribute-based & Blazor Endpoint Routing** (`[HttpGet]`, `[HttpPost]`, `@page "/..."`)
85
+ 5. **Razor & Blazor Components** (types, `@code` methods, and parameter bindings compiled via Roslyn source generators)
85
86
 
86
87
  **`csmesh` solves this in a single shell command.** It parses your codebase's AST and semantic model via Roslyn into a pre-compiled, frozen symbol graph that returns exact answers in milliseconds.
87
88
 
@@ -174,10 +175,12 @@ The evaluation measured four critical dimensions:
174
175
  ## ✨ Key Features
175
176
 
176
177
  - **🚀 Native AOT & .NET 10 Ready:** Instantaneous sub-millisecond execution, zero JIT warm-up, and zero-allocation queries via `System.Collections.Frozen`.
178
+ - **🎨 Blazor & Razor Component Intelligence:** Indexes Blazor components, `@code` methods, component parameters, and Razor Pages / MVC views. Automatically discovers `@page "/..."` routes as HTTP entrypoints and accurately maps line numbers back to `.razor` and `.cshtml` source files via Roslyn `#line` directives.
177
179
  - **🛡️ Token-Budget Enforcement (`--budget N`):** Hard limits on output tokens. Prevents agent context exhaustion by exiting with actionable tips when a query is too broad.
178
180
  - **💉 DI & IoC Container Intelligence:** Reads service registrations in every form they take — two-argument, `typeof` pairs, keyed, factory lambdas, and alias registrations such as `sp => sp.GetRequiredService<Concrete>()` — and ranks the class the container actually returns ahead of the ones nobody registered.
179
181
  - **📨 MediatR & CQRS Linking:** Resolves `_mediator.Send(...)` and `Publish(...)` calls to their concrete request handlers across decoupled project boundaries.
180
182
  - **💥 Blast Radius & Impact Analysis:** Computes the reverse call graph to surface all direct/indirect callers, affected controllers, and background consumers before modifying a symbol.
183
+ - **🧩 Nested Type & Member Resolution:** Resolves members declared inside nested types seamlessly (e.g. `Container.Compute` automatically resolves `Container.Inner.Compute`), avoiding lookup misses without shadowing direct matches.
181
184
  - **🌐 Universal AI Agent Integration:** Installs native prompt rules and skills for **12+ AI tools** (Claude Code, Cursor, Antigravity, OpenCode, Windsurf, Cline, Copilot, MiMo Code, etc.) with both local and `--global` machine-wide support.
182
185
  - **🔄 Incremental Re-indexing:** Node identity is a compiler symbol key, not an array position, so an edit re-binds only the files that moved and every edge into them survives. Rows from files the index has not caught up with are tagged `[STALE]`; `--heal` re-binds them before answering. Falls back to a full pass when an edit touches something that binds across files.
183
186
  - **🧭 Entry by Description, Not by Name:** `csmesh where <term>` searches names, namespaces, file paths and route templates, then ranks by how many entrypoints reach each hit — so the handler outranks the DTO that shares its name.
@@ -214,7 +217,7 @@ dotnet tool install --global --add-source ./src/CsMesh/bin/Release CsMesh
214
217
  dotnet tool update --global CsMesh
215
218
  ```
216
219
 
217
- <!-- ### 2. Via npm / npx
220
+ ### 2. Via npm / npx
218
221
  ```bash
219
222
  Bash
220
223
  # Run directly without global installation
@@ -223,8 +226,8 @@ npx @nrafinia/csmesh --help
223
226
  # Or install globally across Windows, macOS, and Linux
224
227
  npm install -g @nrafinia/csmesh
225
228
  ```
226
- -->
227
- ### 2. As a Standalone Native AOT Binary (Zero Runtime Dependency)
229
+
230
+ ### 3. As a Standalone Native AOT Binary (Zero Runtime Dependency)
228
231
 
229
232
  You can compile a single, standalone binary with zero dependencies on the .NET SDK:
230
233
 
@@ -253,6 +256,13 @@ csmesh index
253
256
  # indexed 28 files -> 161 nodes, 380 edges in 0.1s
254
257
  ```
255
258
 
259
+ > [!TIP]
260
+ > **For Blazor & Razor projects:** Run your build with compiler-generated files enabled once, so Roslyn outputs component sources for `csmesh` to discover:
261
+ > ```bash
262
+ > dotnet build --no-incremental -p:EmitCompilerGeneratedFiles=true
263
+ > csmesh index
264
+ > ```
265
+
256
266
  ### 2. Configure Your AI Coding Assistants
257
267
  ```bash
258
268
  # Install skill and rule files in the current repository:
@@ -378,7 +388,7 @@ csmesh blast PaymentService.Process --depth 2
378
388
  ```
379
389
 
380
390
  #### `csmesh entrypoints [filter]`
381
- Finds HTTP endpoints (`[HttpGet]`, `[HttpPost]`), message handlers, consumers, and background services.
391
+ Finds HTTP endpoints (`[HttpGet]`, `[HttpPost]`, Blazor `@page`), message handlers, consumers, and background services.
382
392
  ```bash
383
393
  csmesh entrypoints
384
394
  csmesh entrypoints payments
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nrafinia/csmesh",
3
- "version": "0.2.8",
3
+ "version": "0.3.0",
4
4
  "description": "Structural code intelligence & call-graph engine for C# and .NET — built for AI coding agents under hard token budgets",
5
5
  "bin": {
6
6
  "csmesh": "./bin/run.js"