clast-ai 0.2.4 → 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.
@@ -8,7 +8,7 @@
8
8
  {
9
9
  "name": "clast",
10
10
  "source": "./",
11
- "description": "Code index MCP server (symbol search, call graph, hierarchy, impact, dead code, counts) plus /clast:deadcode, /clast:impact, /clast:audit and /clast:status."
11
+ "description": "Code index MCP server (symbol search, call graph, hierarchy, impact, dead code, counts) plus /clast:use, /clast:deadcode, /clast:impact, /clast:audit and /clast:status. Off in a project until /clast:use."
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clast",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "Code index for coding agents: symbol search, exact symbol source, type-aware call graph, references, type hierarchy, change impact, dead code and exact counts for any repository. TypeScript, JavaScript, Python, Java, C#, Go, Rust, C, C++, Ruby, PHP, Swift and Dart.",
5
5
  "author": {
6
6
  "name": "Thomas"
package/CHANGELOG.md CHANGED
@@ -1,11 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0
4
+
5
+ - Opt-in per project. The server process still starts in every project, but it indexes and offers
6
+ its tools only where a `.clast` folder exists in the project root. Elsewhere it is dormant: one
7
+ small tool (`clast_enable`), no index, no watcher, nothing written. `/clast:use` (or the tool, or
8
+ `mkdir .clast`) turns it on, also in a running session; deleting the folder turns it off.
9
+ Projects indexed before already have the folder and stay on. `CLAST_ALWAYS=1` restores the old
10
+ behaviour.
11
+ - Benchmark tables show tokens in and out instead of price.
12
+
13
+ ## 0.2.5
14
+
15
+ - Search: a common name plus context words ("write socket", "reset viterbi decoder") ranks the
16
+ definitions of that name by what surrounds each one: its container, signature and doc comment,
17
+ the calls and receivers in its body, its path. On kafka, "write socket channel" now puts
18
+ `PlaintextTransportLayer.write` first of 77 definitions called `write` (it was fourth). On OnAir
19
+ such questions take 1.0 call against 3.6 with grep.
20
+
3
21
  ## 0.2.4
4
22
 
5
23
  - The server instructions and the usage skill tell the agent not to use clast for a rename or a
6
24
  signature change of a distinctive name (one grep finds every site). In the refactor benchmark the
7
25
  clast sessions had made about three extra calls on such tasks; after the change they make none
8
26
  (8.3 calls against 8.3 for plain grep on OnAir).
27
+ - The usage skills are rewritten as rules only, about 40% smaller.
28
+ - Start-up in a very large folder (a home or temp directory): the directory walk blocked the server,
29
+ so the client got no answer to its first request and gave up after 30 seconds. The walk now yields
30
+ every few milliseconds (the server answers in half a second) and stops at 150,000 directories with
31
+ a warning in `clast_status`.
9
32
 
10
33
  ## 0.2.3
11
34
 
package/README.md CHANGED
@@ -27,18 +27,24 @@ directly, with exact `file:line` locations. The index follows every edit, so ans
27
27
  /plugin install clast@clast
28
28
  ```
29
29
 
30
+ **Then turn it on in each project that wants it.** Type `/clast:use` once in the project. Clast does
31
+ nothing in a project until you do: no index, no tools in the prompt, so a notes folder or a project
32
+ where you do not want it costs nothing. `/clast:use` creates a `.clast` folder in the project root,
33
+ which holds the index and is the on switch. Delete the folder to turn clast off again.
34
+
30
35
  The plugin brings the index server, a short skill that teaches Claude which tool answers which
31
- question, and four slash commands:
36
+ question, and five slash commands:
32
37
 
33
38
  | Command | What it does |
34
39
  | --- | --- |
40
+ | `/clast:use` | Turns clast on for this project |
35
41
  | `/clast:deadcode [path]` | Finds unused functions, methods and types, verifies them, and removes the ones you confirm |
36
42
  | `/clast:impact <symbol>` | What must change with a symbol, every caller, and the tests to run |
37
43
  | `/clast:audit [path]` | Inventory for due diligence or onboarding: size, structure, endpoints, database access, dependencies, dead code |
38
44
  | `/clast:status` | State of the index |
39
45
 
40
- Requires **Node.js 22.22 or newer**. The first start indexes the project in the background (seconds;
41
- about half a minute for 15,000 files). Later starts are ready immediately.
46
+ Requires **Node.js 22.22 or newer**. Turning clast on indexes the project in the background (seconds;
47
+ about half a minute for 15,000 files). Later sessions are ready immediately.
42
48
 
43
49
  **Codex, Gemini CLI and other agents.** Clast is a standard MCP server, so any agent that speaks MCP
44
50
  can use it:
@@ -50,6 +56,10 @@ codex mcp add clast -- clast-ai # Codex
50
56
  gemini mcp add -s user clast clast-ai # Gemini CLI
51
57
  ```
52
58
 
59
+ Turn it on per project by creating the folder (`mkdir .clast`), or ask the agent to "use clast": a
60
+ dormant server offers one tool, `clast_enable`, that does it. `CLAST_ALWAYS=1` in the server's
61
+ environment turns it on everywhere.
62
+
53
63
  Then give the agent the usage guide the Claude plugin ships as a skill:
54
64
 
55
65
  ```sh
@@ -70,7 +80,8 @@ The first session after that cleans up in the background, once per plugin versio
70
80
  - entries the old VS Code extension wrote into `.claude/settings.local.json` are removed,
71
81
  - the v0.1 index file `.clast/clast.db` is deleted (the new index is rebuilt by itself).
72
82
 
73
- Restart Claude Code once more and `/mcp` shows a single `clast` server.
83
+ Restart Claude Code once more and `/mcp` shows a single `clast` server. Projects that were indexed
84
+ before already have a `.clast` folder and stay on; any other project is off until `/clast:use`.
74
85
 
75
86
  One case is left to you: a project whose `.mcp.json` lists clast. That file is shared with a team, so
76
87
  it is never changed, and in that project the server stays listed twice until the entry is removed
@@ -183,15 +194,16 @@ are found with it. Code used only by tests and names that still appear in a stri
183
194
  config file are listed separately, because those need a look before they go.
184
195
 
185
196
  ```
186
- > clast_unused path: app (a C++ application)
187
-
188
- unused code: 80 symbols, 415 lines in 51 files - the name is never referenced outside
189
- its own definition, or only from other unused code (10594 symbols judged under app)
190
- app/panels/agc_ui.cpp (6 symbols, 109 lines)
191
- function reasonText :12-23 (used only by unused agcGear)
192
- function ampNow :42-49 (used only by unused agcStep)
193
- function agcStep :79-111 exported
194
- function agcGear :126-169 exported
197
+ > clast_unused path: streams/.../state/internals (kafka)
198
+
199
+ unused code: 8 symbols, 197 lines in 1 file - the name is never referenced outside
200
+ its own definition, or only from other unused code (3818 symbols judged)
201
+ streams/.../state/internals/Murmur3.java (8 symbols, 197 lines)
202
+ method Murmur3.hash64 :201-203 exported
203
+ class Murmur3.IncrementalHash32 :453-543 exported
204
+ method Murmur3.orBytes :545-547 (used only by unused IncrementalHash32)
205
+ ...
206
+ used only by tests (6, 56 lines):
195
207
  ...
196
208
  ```
197
209
 
@@ -220,6 +232,11 @@ callers (2 resolved; depth 2):
220
232
  No name to search for? Describe the behaviour. Search covers names, signatures, doc comments and
221
233
  what function bodies mention, and copes with partial names, abbreviations and typos.
222
234
 
235
+ A name that is everywhere is no problem either. A large code base can have a thousand methods called
236
+ `reset` or `write`, and grep returns them all. Ask for "write socket" and clast puts the right one
237
+ first: it takes every definition with that name and lets the other words choose, by the class it
238
+ sits in, its comment, and what its body calls.
239
+
223
240
  ```
224
241
  > clast_search "client ip from forwarded headers" (gin)
225
242
 
@@ -253,17 +270,22 @@ there is nothing to compile.
253
270
  ## Measured, not promised
254
271
 
255
272
  Every figure comes from real headless Claude Code sessions: the same question asked once with clast
256
- and once with only grep and file reads. The rows below are from OnAir (C++, 7.5k files, 1.6M lines);
257
- the vscode results (TypeScript, 15.7k files) are in the full tables.
258
-
259
- | Kind of work | Tool calls (clast / grep) | Time | Cost |
260
- | --- | ---: | ---: | ---: |
261
- | Find dead code in a directory | 2 / 16 | 20 s / 124 s | $0.15 / $1.89 |
262
- | Multi-hop questions (call chains, subclasses, impact) | 1.2 / 5.9 | 12.5 s / 25.8 s | $0.056 / $0.212 |
263
- | Code described by behaviour, in a repo the model has not seen | 1.8 / 4.2 | 12.0 s / 20.5 s | $0.068 / $0.197 |
264
- | Counting ("how many receiver classes") | 1.0 / 3.3 | 11 s / 34 s | about $0.02 / $0.29 |
265
- | Simple lookups (where is X, who calls X) | 1.7 / 1.7 | 12.7 s / 14.3 s | $0.063 / $0.096 |
266
- | Cross-cutting refactors (rename a method, add a parameter everywhere) | 8.3 / 8.3 | 27 s / 26 s | $0.26 / $0.25 |
273
+ and once with only grep and file reads. The rows below are from a 1.6-million-line C++ application
274
+ that the model had never seen; results on vscode are in the full tables.
275
+
276
+ | Kind of work | Tool calls (clast / grep) | Time | Tokens in | Tokens out |
277
+ | --- | ---: | ---: | ---: | ---: |
278
+ | Find dead code in a directory | 2 / 16 | 20 s / 124 s | 82k / 928k | 0.6k / 9.5k |
279
+ | Multi-hop questions (call chains, subclasses, impact) | 1.2 / 5.9 | 12.5 s / 25.8 s | 50k / 118k | 0.5k / 1.2k |
280
+ | Code described by behaviour | 1.8 / 4.2 | 12.0 s / 20.5 s | 69k / 100k | 0.3k / 0.8k |
281
+ | One of many same-named methods ("which of a thousand `reset` methods is the decoder's") | 1.0 / 3.6 | 11.2 s / 17.4 s | 53k / 68k | 0.2k / 0.6k |
282
+ | Counting ("how many classes of this kind") | 1.0 / 3.3 | 11 s / 34 s | 52k / 91k | 0.3k / 2.5k |
283
+ | Simple lookups (where is X, who calls X) | 1.7 / 1.7 | 12.7 s / 14.3 s | 62k / 50k | 0.4k / 0.5k |
284
+ | Cross-cutting refactors (rename a method, add a parameter everywhere) | 8.3 / 8.3 | 27 s / 26 s | 104k / 81k | 1.7k / 1.7k |
285
+
286
+ "Tokens in" is everything sent to the model over the session. The fixed prompt goes out again on
287
+ every turn, and clast's tool definitions add about 5k to it, which is why clast reads more on the
288
+ two ties. Fewer turns is what brings the total down everywhere else.
267
289
 
268
290
  Both sides answered correctly almost everywhere; the difference is how much searching it took.
269
291
 
@@ -276,7 +298,7 @@ Full tables, method, answer-quality audits and index speed: [docs/benchmarks.md]
276
298
 
277
299
  ## Your first minute
278
300
 
279
- Open a project in Claude Code with the plugin installed, then try these:
301
+ Open a project in Claude Code with the plugin installed, type `/clast:use`, then try these:
280
302
 
281
303
  1. **Get the lie of the land:** "Give me an overview of this repository."
282
304
  2. **Trace something:** "Who ends up calling `saveOrder`, two levels up?"
@@ -284,7 +306,8 @@ Open a project in Claude Code with the plugin installed, then try these:
284
306
  4. **Clean up:** `/clast:deadcode src/billing`
285
307
  5. **Take stock:** `/clast:audit`
286
308
 
287
- **Not sure it is running?** `/clast:status` shows the index, and `/mcp` lists the server with 15 tools.
309
+ **Not sure it is running?** `/clast:status` shows the index, and `/mcp` lists the server with 15 tools
310
+ (one tool, `clast_enable`, while clast is off for the project).
288
311
 
289
312
  ## Reference
290
313
 
@@ -381,7 +404,7 @@ Optional. Create `clast.config.json` (or `.claude/clast.config.json`) in the pro
381
404
  | `watch.debounceMs` | `200` | Debounce for file change events |
382
405
  | `llm.*` | disabled | OpenAI-compatible endpoint for `clast_comment` (Ollama, LM Studio, vLLM, OpenAI, OpenRouter) |
383
406
 
384
- Environment: `CLAST_PROJECT_DIR` (project root), `CLAST_DB_PATH` (index location), `CLAST_GRAMMARS_DIR`
407
+ Environment: `CLAST_ALWAYS=1` (on in every project, no `.clast` folder needed), `CLAST_PROJECT_DIR` (project root), `CLAST_DB_PATH` (index location), `CLAST_GRAMMARS_DIR`
385
408
  (alternative grammar directory), `CLAST_NO_MIGRATE=1` (no automatic clean-up), `CLAST_DEBUG=1` (timings).
386
409
 
387
410
  | Language | id | Extensions |
@@ -450,7 +473,7 @@ under 50 ms.
450
473
  always the function.
451
474
  - **Not indexed**: Kotlin, Scala and other languages without a bundled grammar. `clast_grep` still
452
475
  searches those files as text.
453
- - **Prompt cost**: the tool definitions add about 5k tokens to every session.
476
+ - **Prompt size**: the tool definitions add about 5k tokens to every turn.
454
477
 
455
478
  More detail and examples: [docs/v0.2-summary.md](docs/v0.2-summary.md).
456
479
 
@@ -0,0 +1,22 @@
1
+ [
2
+ {
3
+ "id": "reset-viterbi",
4
+ "q": "This code base has more than a thousand methods called reset. Which reset belongs to the Viterbi decoder of the PSK modes? Name the class and the source file that defines the method.",
5
+ "expect": ["Viterbi", "psk_varicode.cpp"]
6
+ },
7
+ {
8
+ "id": "push-resampler",
9
+ "q": "There are hundreds of methods called push. Which push feeds samples into the root-raised-cosine resampler of the DTMB receiver? Name the class and the source file with the method body.",
10
+ "expect": ["SrrcResampler", "dtmb_front.cpp"]
11
+ },
12
+ {
13
+ "id": "decode-reed-solomon",
14
+ "q": "Many classes have a decode method. Which decode does the Reed-Solomon error correction for the mode builder? Name the class and the source file with the method body.",
15
+ "expect": ["ReedSolomon", "fec.cpp"]
16
+ },
17
+ {
18
+ "id": "start-hackrf-usb",
19
+ "q": "Many sources have a start method. Which start belongs to the HackRF source that talks to the device directly over USB? Name the class and the source file with the method body.",
20
+ "expect": ["UsbHackrf", "hackrf_usb.cpp"]
21
+ }
22
+ ]
@@ -105,6 +105,24 @@ function bodyMatches(db, terms) {
105
105
  out.sort((a, b) => b.score - a.score);
106
106
  return out.slice(0, 80);
107
107
  }
108
+ /** Words of what each symbol's body calls and the receivers it calls them on (`socketChannel.write` -> socket, channel, write). */
109
+ function bodyWords(db, syms) {
110
+ const out = new Map();
111
+ for (let i = 0; i < syms.length; i += 400) {
112
+ const ids = syms.slice(i, i + 400).map(s => s.id);
113
+ const rows = db.all(`SELECT c.caller_id AS id, n.name AS name, c.receiver AS receiver, c.rtype AS rtype
114
+ FROM calls c JOIN names n ON n.id = c.name_id WHERE c.caller_id IN (${ids.map(() => '?').join(',')})`, ...ids);
115
+ for (const r of rows) {
116
+ let words = out.get(r.id);
117
+ if (!words)
118
+ out.set(r.id, (words = []));
119
+ if (words.length > 400)
120
+ continue;
121
+ words.push(...splitIdentifier(`${r.name} ${r.receiver ?? ''} ${r.rtype ?? ''}`));
122
+ }
123
+ }
124
+ return out;
125
+ }
108
126
  /**
109
127
  * Ranked symbol search. Accepts an identifier (`parseAndStore`), a partial or
110
128
  * abbreviated name (`parseSt`, `pas`), a qualified name (`Indexer.indexAll`),
@@ -252,6 +270,35 @@ export function searchSymbols(db, query, opts = {}) {
252
270
  }
253
271
  }
254
272
  }
273
+ // 3a. A common name plus context: "write socket" means the `write` that has to do with sockets.
274
+ // Every definition with exactly that name is a candidate, and the other words choose among them by
275
+ // what surrounds each one: its container, what its body calls and on which receivers, its signature
276
+ // and doc comment, its path. Grep cannot do this: it returns every line that says "write".
277
+ if (isMultiWord && terms.length >= 2) {
278
+ for (const t of terms) {
279
+ const context = terms.filter(o => o !== t);
280
+ const named = db.all(`${select} WHERE s.name_lc = ? LIMIT 3000`, t).filter(accept);
281
+ if (named.length === 0)
282
+ continue;
283
+ const bodies = bodyWords(db, named);
284
+ const hit = (words, term) => words.some(w => wordMatches(w, term));
285
+ add(named, 0, 'context', s => {
286
+ const container = splitIdentifier(s.qname.slice(0, Math.max(0, s.qname.length - s.name.length)));
287
+ const text = splitIdentifier(s.signature + ' ' + s.doc).filter(w => w !== t);
288
+ const path = splitIdentifier(s.path);
289
+ const body = bodies.get(s.id) ?? [];
290
+ let sum = 0;
291
+ for (const c of context) {
292
+ sum += hit(container, c) ? 1 : hit(text, c) ? 0.8 : hit(body, c) || hit(path, c) ? 0.5 : 0;
293
+ }
294
+ // No context word anywhere near it: not this one (scored below every other kind of match).
295
+ return sum === 0 ? -1000 : 52 + (sum / context.length) * 30;
296
+ });
297
+ }
298
+ for (const [id, h] of found)
299
+ if (h.score < 0)
300
+ found.delete(id);
301
+ }
255
302
  // 3b. Bodies: a description often names what a function *uses* rather than what it is called
256
303
  // ("where is the csrf token verified" -> a method whose body compares tokens). Find the
257
304
  // functions whose code mentions most of the query's words.
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/query/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/query/search.ts"],"names":[],"mappings":"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"}