token-pilot 0.2.3 → 0.3.1
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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +40 -0
- package/README.md +14 -8
- package/dist/ast-index/client.d.ts +48 -1
- package/dist/ast-index/client.d.ts.map +1 -1
- package/dist/ast-index/client.js +240 -38
- package/dist/ast-index/client.js.map +1 -1
- package/dist/ast-index/types.d.ts +77 -0
- package/dist/ast-index/types.d.ts.map +1 -1
- package/dist/core/symbol-resolver.d.ts +13 -1
- package/dist/core/symbol-resolver.d.ts.map +1 -1
- package/dist/core/symbol-resolver.js +92 -13
- package/dist/core/symbol-resolver.js.map +1 -1
- package/dist/core/validation.d.ts +13 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +33 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/formatters/structure.js +1 -1
- package/dist/formatters/structure.js.map +1 -1
- package/dist/handlers/changed-symbols.d.ts +11 -0
- package/dist/handlers/changed-symbols.d.ts.map +1 -0
- package/dist/handlers/changed-symbols.js +44 -0
- package/dist/handlers/changed-symbols.js.map +1 -0
- package/dist/handlers/export-ast-index.d.ts +3 -0
- package/dist/handlers/export-ast-index.d.ts.map +1 -1
- package/dist/handlers/export-ast-index.js +69 -1
- package/dist/handlers/export-ast-index.js.map +1 -1
- package/dist/handlers/find-callers.d.ts +12 -0
- package/dist/handlers/find-callers.d.ts.map +1 -0
- package/dist/handlers/find-callers.js +54 -0
- package/dist/handlers/find-callers.js.map +1 -0
- package/dist/handlers/find-unused.d.ts +13 -0
- package/dist/handlers/find-unused.d.ts.map +1 -0
- package/dist/handlers/find-unused.js +38 -0
- package/dist/handlers/find-unused.js.map +1 -0
- package/dist/handlers/find-usages.d.ts +8 -0
- package/dist/handlers/find-usages.d.ts.map +1 -1
- package/dist/handlers/find-usages.js +79 -12
- package/dist/handlers/find-usages.js.map +1 -1
- package/dist/handlers/non-code.js +90 -11
- package/dist/handlers/non-code.js.map +1 -1
- package/dist/handlers/project-overview.d.ts.map +1 -1
- package/dist/handlers/project-overview.js +62 -57
- package/dist/handlers/project-overview.js.map +1 -1
- package/dist/handlers/search-code.js +1 -1
- package/dist/handlers/search-code.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +66 -3
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,46 @@ All notable changes to Token Pilot will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.1] - 2026-03-01
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **find_usages**: combine `refs` + `search` with exact word boundary filtering — 0% result loss vs grep (was 40% loss with refs-only)
|
|
12
|
+
- **read_symbol**: fix `Class.method` qualified names for flat outlines (ast-index lists methods as siblings, not children)
|
|
13
|
+
- **read_symbol**: filter ast-index leaf name fallback by requested file (was returning symbols from wrong files)
|
|
14
|
+
- **YAML smart_read**: 3-level nested parser with scalar values, array counts (was only showing top-level keys)
|
|
15
|
+
- Removed all "Use Grep as fallback" hints — token-pilot gives complete results on its own
|
|
16
|
+
|
|
17
|
+
## [0.3.0] - 2026-03-01
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- **find_callers** tool — find all callers of a function, with optional call hierarchy tree (depth parameter)
|
|
21
|
+
- **changed_symbols** tool — show symbol-level git changes (added/modified/removed) vs a base branch
|
|
22
|
+
- **find_unused** tool — detect potentially unused/dead symbols in the project
|
|
23
|
+
- 8 new ast-index client methods: `refs`, `map`, `conventions`, `callers`, `callTree`, `changed`, `unusedSymbols`, `fileImports`
|
|
24
|
+
- Incremental index updates via `ast-index update` (fast) instead of full rebuild
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- **find_usages**: rewritten to use `ast-index refs` — returns definitions + imports + usages in one call (was losing ~66% of results)
|
|
28
|
+
- **project_overview**: rewritten to use `ast-index map` + `conventions` — shows architecture, frameworks, naming patterns, directory map with symbol kinds
|
|
29
|
+
- **search_code**: deduplication of results (removes duplicate file:line entries)
|
|
30
|
+
- **read_symbol**: structure-first lookup for `Class.method` qualified names with ast-index leaf fallback
|
|
31
|
+
- **export_ast_index**: `all_indexed=true` option exports all files from ast-index, not just cached ones
|
|
32
|
+
- **YAML smart_read**: expand one level of nesting (shows nested keys under top-level sections)
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- Total MCP tools: 14 → 17
|
|
36
|
+
- ast-index commands used: 8 → 16
|
|
37
|
+
- Index updates are now incremental by default (falls back to full rebuild only when needed)
|
|
38
|
+
|
|
39
|
+
## [0.2.4] - 2026-03-01
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
- **search_code**: filter out garbage entries with empty file paths or `:undefined` lines
|
|
43
|
+
- **read_symbol**: support `Class.method` and `Class::method` qualified names (structure-first lookup, ast-index leaf fallback)
|
|
44
|
+
- **export_ast_index**: `all_indexed=true` option exports all files from ast-index, not just cached ones
|
|
45
|
+
- **YAML smart_read**: expand one level of nesting (shows service names, nested keys under top-level sections)
|
|
46
|
+
- Improved empty-cache message in export_ast_index with hint about `all_indexed`
|
|
47
|
+
|
|
8
48
|
## [0.2.3] - 2026-03-01
|
|
9
49
|
|
|
10
50
|
### Fixed
|
package/README.md
CHANGED
|
@@ -103,7 +103,7 @@ npx token-pilot install-hook # Current project
|
|
|
103
103
|
npx token-pilot uninstall-hook # Remove
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
## MCP Tools (
|
|
106
|
+
## MCP Tools (17)
|
|
107
107
|
|
|
108
108
|
### Core Reading
|
|
109
109
|
|
|
@@ -120,10 +120,13 @@ npx token-pilot uninstall-hook # Remove
|
|
|
120
120
|
| Tool | Description |
|
|
121
121
|
|------|-------------|
|
|
122
122
|
| `search_code` | Indexed structural code search via ast-index. Faster than grep for symbols. |
|
|
123
|
-
| `find_usages` | Find all usages of a symbol across the project (definitions,
|
|
123
|
+
| `find_usages` | Find all usages of a symbol across the project (definitions, imports, usages via `ast-index refs`). |
|
|
124
124
|
| `find_implementations` | Find all implementations of an interface/abstract class/trait. |
|
|
125
125
|
| `class_hierarchy` | Show class/interface inheritance hierarchy tree. |
|
|
126
|
-
| `project_overview` | Compact project overview: type,
|
|
126
|
+
| `project_overview` | Compact project overview: type, architecture, frameworks, naming patterns, directory map. |
|
|
127
|
+
| `find_callers` | Find all callers of a function with optional call hierarchy tree. |
|
|
128
|
+
| `changed_symbols` | Show symbol-level git changes (added/modified/removed) vs a base branch. |
|
|
129
|
+
| `find_unused` | Detect potentially unused/dead symbols in the project. |
|
|
127
130
|
|
|
128
131
|
### Integration & Analytics
|
|
129
132
|
|
|
@@ -230,7 +233,7 @@ Plus structural summaries for non-code files: JSON, YAML, Markdown, TOML, XML, C
|
|
|
230
233
|
### Verify installation
|
|
231
234
|
|
|
232
235
|
```bash
|
|
233
|
-
npx token-pilot --help # Should print CLI help with
|
|
236
|
+
npx token-pilot --help # Should print CLI help with 17 tools
|
|
234
237
|
npx token-pilot --version # Should print current version
|
|
235
238
|
npx token-pilot doctor # Run diagnostics (checks ast-index, config, etc.)
|
|
236
239
|
```
|
|
@@ -260,7 +263,7 @@ Token Pilot also checks for updates on startup and logs a notice to stderr if a
|
|
|
260
263
|
```bash
|
|
261
264
|
npm install # Install dependencies
|
|
262
265
|
npm run build # Compile TypeScript
|
|
263
|
-
npm test # Run tests
|
|
266
|
+
npm test # Run tests
|
|
264
267
|
npm run test:watch # Run tests in watch mode
|
|
265
268
|
npm run dev # TypeScript watch mode
|
|
266
269
|
```
|
|
@@ -270,7 +273,7 @@ npm run dev # TypeScript watch mode
|
|
|
270
273
|
```
|
|
271
274
|
src/
|
|
272
275
|
index.ts — CLI entry point (6 commands)
|
|
273
|
-
server.ts — MCP server (
|
|
276
|
+
server.ts — MCP server (17 tools)
|
|
274
277
|
types.ts — Core domain types
|
|
275
278
|
ast-index/
|
|
276
279
|
client.ts — ast-index CLI wrapper
|
|
@@ -297,10 +300,13 @@ src/
|
|
|
297
300
|
read-diff.ts — read_diff handler (O(n) diff)
|
|
298
301
|
smart-read-many.ts — Batch smart_read
|
|
299
302
|
search-code.ts — search_code handler
|
|
300
|
-
find-usages.ts — find_usages handler
|
|
303
|
+
find-usages.ts — find_usages handler (via ast-index refs)
|
|
304
|
+
find-callers.ts — find_callers handler
|
|
305
|
+
changed-symbols.ts — changed_symbols handler
|
|
306
|
+
find-unused.ts — find_unused handler
|
|
301
307
|
find-implementations.ts
|
|
302
308
|
class-hierarchy.ts
|
|
303
|
-
project-overview.ts
|
|
309
|
+
project-overview.ts — project_overview (via ast-index map + conventions)
|
|
304
310
|
non-code.ts — JSON/YAML/MD/TOML structural summaries
|
|
305
311
|
export-ast-index.ts — AST export for context-mode BM25
|
|
306
312
|
git/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FileStructure } from '../types.js';
|
|
2
|
-
import type { AstIndexSymbolDetail, AstIndexSearchResult, AstIndexUsageResult, AstIndexImplementation, AstIndexHierarchyNode } from './types.js';
|
|
2
|
+
import type { AstIndexSymbolDetail, AstIndexSearchResult, AstIndexUsageResult, AstIndexImplementation, AstIndexHierarchyNode, AstIndexRefsResponse, AstIndexMapResponse, AstIndexConventionsResponse, AstIndexCallerEntry, AstIndexCallTreeNode, AstIndexChangedEntry, AstIndexUnusedSymbol, AstIndexImportEntry } from './types.js';
|
|
3
3
|
export declare class AstIndexClient {
|
|
4
4
|
private binaryPath;
|
|
5
5
|
private projectRoot;
|
|
@@ -36,6 +36,53 @@ export declare class AstIndexClient {
|
|
|
36
36
|
private parseImplementationsText;
|
|
37
37
|
private parseHierarchyText;
|
|
38
38
|
stats(): Promise<string | null>;
|
|
39
|
+
/**
|
|
40
|
+
* List all files known to the ast-index.
|
|
41
|
+
* Parses the `files` command output which lists one file per line.
|
|
42
|
+
*/
|
|
43
|
+
listFiles(): Promise<string[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Cross-references: definitions + imports + usages in one call.
|
|
46
|
+
* Replaces separate symbol() + usages() calls.
|
|
47
|
+
*/
|
|
48
|
+
refs(symbolName: string, limit?: number): Promise<AstIndexRefsResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Project map: directory structure with file counts and symbol kinds.
|
|
51
|
+
*/
|
|
52
|
+
map(options?: {
|
|
53
|
+
module?: string;
|
|
54
|
+
limit?: number;
|
|
55
|
+
}): Promise<AstIndexMapResponse | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Detect project conventions: architecture, frameworks, naming patterns.
|
|
58
|
+
*/
|
|
59
|
+
conventions(): Promise<AstIndexConventionsResponse | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Find callers of a function.
|
|
62
|
+
*/
|
|
63
|
+
callers(functionName: string, limit?: number): Promise<AstIndexCallerEntry[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Show call hierarchy tree (callers tree up).
|
|
66
|
+
*/
|
|
67
|
+
callTree(functionName: string, depth?: number): Promise<AstIndexCallTreeNode | null>;
|
|
68
|
+
/**
|
|
69
|
+
* Show changed symbols since base branch (git diff).
|
|
70
|
+
*/
|
|
71
|
+
changed(base?: string): Promise<AstIndexChangedEntry[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Find potentially unused symbols.
|
|
74
|
+
*/
|
|
75
|
+
unusedSymbols(options?: {
|
|
76
|
+
module?: string;
|
|
77
|
+
exportOnly?: boolean;
|
|
78
|
+
limit?: number;
|
|
79
|
+
}): Promise<AstIndexUnusedSymbol[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Get imports for a specific file.
|
|
82
|
+
* Parses text output: " { X, Y } from 'source';"
|
|
83
|
+
*/
|
|
84
|
+
fileImports(filePath: string): Promise<AstIndexImportEntry[]>;
|
|
85
|
+
private parseImportsText;
|
|
39
86
|
isAvailable(): boolean;
|
|
40
87
|
private exec;
|
|
41
88
|
private buildFileStructure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ast-index/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAGV,oBAAoB,EAEpB,oBAAoB,EAEpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ast-index/client.ts"],"names":[],"mappings":"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"}
|
package/dist/ast-index/client.js
CHANGED
|
@@ -45,56 +45,62 @@ export class AstIndexClient {
|
|
|
45
45
|
async ensureIndex() {
|
|
46
46
|
if (this.indexed)
|
|
47
47
|
return;
|
|
48
|
-
|
|
48
|
+
// Check if index already exists and has files
|
|
49
|
+
let existingFileCount = 0;
|
|
49
50
|
try {
|
|
50
51
|
const stats = await this.exec(['stats']);
|
|
51
|
-
// Parse "Files: N" from stats output
|
|
52
52
|
const filesMatch = stats.match(/Files:\s*(\d+)/);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
existingFileCount = filesMatch ? parseInt(filesMatch[1], 10) : 0;
|
|
54
|
+
}
|
|
55
|
+
catch { /* no index yet */ }
|
|
56
|
+
if (existingFileCount > 0) {
|
|
57
|
+
// Index exists — use incremental update (fast)
|
|
58
|
+
console.error(`[token-pilot] ast-index: updating index (${existingFileCount} files)...`);
|
|
59
|
+
try {
|
|
60
|
+
await this.exec(['update'], 30000);
|
|
61
|
+
// Re-check count after update
|
|
62
|
+
try {
|
|
63
|
+
const statsText = await this.exec(['stats']);
|
|
64
|
+
const filesMatch = statsText.match(/Files:\s*(\d+)/);
|
|
65
|
+
existingFileCount = filesMatch ? parseInt(filesMatch[1], 10) : existingFileCount;
|
|
66
|
+
}
|
|
67
|
+
catch { /* keep previous count */ }
|
|
59
68
|
this.indexed = true;
|
|
60
|
-
console.error(`[token-pilot] ast-index: index ready (${
|
|
69
|
+
console.error(`[token-pilot] ast-index: index ready (${existingFileCount} files)`);
|
|
61
70
|
return;
|
|
62
71
|
}
|
|
72
|
+
catch (updateErr) {
|
|
73
|
+
console.error(`[token-pilot] ast-index: update failed, falling back to rebuild — ${updateErr instanceof Error ? updateErr.message : updateErr}`);
|
|
74
|
+
}
|
|
63
75
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
76
|
+
// No index or update failed — full rebuild
|
|
77
|
+
console.error('[token-pilot] ast-index: building index (this may take a moment)...');
|
|
78
|
+
try {
|
|
79
|
+
await this.exec(['rebuild'], 60000);
|
|
80
|
+
let fileCount = 0;
|
|
69
81
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
82
|
+
const statsText = await this.exec(['stats']);
|
|
83
|
+
const filesMatch = statsText.match(/Files:\s*(\d+)/);
|
|
84
|
+
fileCount = filesMatch ? parseInt(filesMatch[1], 10) : 0;
|
|
85
|
+
}
|
|
86
|
+
catch { /* stats unavailable */ }
|
|
87
|
+
// If very few files, retry with --sub-projects (workspace-style monorepos)
|
|
88
|
+
if (fileCount < 5) {
|
|
89
|
+
console.error(`[token-pilot] ast-index: only ${fileCount} files — retrying with --sub-projects...`);
|
|
90
|
+
await this.exec(['rebuild', '--sub-projects'], 60000);
|
|
74
91
|
try {
|
|
75
92
|
const statsText = await this.exec(['stats']);
|
|
76
93
|
const filesMatch = statsText.match(/Files:\s*(\d+)/);
|
|
77
94
|
fileCount = filesMatch ? parseInt(filesMatch[1], 10) : 0;
|
|
78
95
|
}
|
|
79
96
|
catch { /* stats unavailable */ }
|
|
80
|
-
// If very few files, retry with --sub-projects (for workspace-style monorepos)
|
|
81
|
-
if (fileCount < 5) {
|
|
82
|
-
console.error(`[token-pilot] ast-index: only ${fileCount} files — retrying with --sub-projects...`);
|
|
83
|
-
await this.exec(['rebuild', '--sub-projects'], 60000);
|
|
84
|
-
try {
|
|
85
|
-
const statsText = await this.exec(['stats']);
|
|
86
|
-
const filesMatch = statsText.match(/Files:\s*(\d+)/);
|
|
87
|
-
fileCount = filesMatch ? parseInt(filesMatch[1], 10) : 0;
|
|
88
|
-
}
|
|
89
|
-
catch { /* stats unavailable */ }
|
|
90
|
-
}
|
|
91
|
-
this.indexed = true;
|
|
92
|
-
console.error(`[token-pilot] ast-index: index built (${fileCount} files)`);
|
|
93
|
-
}
|
|
94
|
-
catch (buildErr) {
|
|
95
|
-
console.error(`[token-pilot] ast-index: rebuild failed — ${buildErr instanceof Error ? buildErr.message : buildErr}`);
|
|
96
|
-
throw buildErr;
|
|
97
97
|
}
|
|
98
|
+
this.indexed = true;
|
|
99
|
+
console.error(`[token-pilot] ast-index: index built (${fileCount} files)`);
|
|
100
|
+
}
|
|
101
|
+
catch (buildErr) {
|
|
102
|
+
console.error(`[token-pilot] ast-index: rebuild failed — ${buildErr instanceof Error ? buildErr.message : buildErr}`);
|
|
103
|
+
throw buildErr;
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
async outline(filePath) {
|
|
@@ -227,11 +233,22 @@ export class AstIndexClient {
|
|
|
227
233
|
];
|
|
228
234
|
// Fallback: if parsed is an array directly
|
|
229
235
|
const matches = all.length > 0 ? all : (Array.isArray(parsed) ? parsed : []);
|
|
230
|
-
|
|
236
|
+
const mapped = matches
|
|
237
|
+
.map((m) => ({
|
|
231
238
|
file: m.path ?? m.file ?? '',
|
|
232
|
-
line: m.line,
|
|
239
|
+
line: typeof m.line === 'number' ? m.line : 0,
|
|
233
240
|
text: m.content ?? m.text ?? m.signature ?? '',
|
|
234
|
-
}))
|
|
241
|
+
}))
|
|
242
|
+
.filter(r => r.file !== '' && r.text !== '');
|
|
243
|
+
// Deduplicate by file:line (merge of 4 categories creates dupes)
|
|
244
|
+
const seen = new Set();
|
|
245
|
+
return mapped.filter(r => {
|
|
246
|
+
const key = `${r.file}:${r.line}`;
|
|
247
|
+
if (seen.has(key))
|
|
248
|
+
return false;
|
|
249
|
+
seen.add(key);
|
|
250
|
+
return true;
|
|
251
|
+
});
|
|
235
252
|
}
|
|
236
253
|
catch (err) {
|
|
237
254
|
console.error(`[token-pilot] ast-index search failed: ${err instanceof Error ? err.message : err}`);
|
|
@@ -355,6 +372,191 @@ export class AstIndexClient {
|
|
|
355
372
|
return null;
|
|
356
373
|
}
|
|
357
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* List all files known to the ast-index.
|
|
377
|
+
* Parses the `files` command output which lists one file per line.
|
|
378
|
+
*/
|
|
379
|
+
async listFiles() {
|
|
380
|
+
try {
|
|
381
|
+
await this.ensureIndex();
|
|
382
|
+
const result = await this.exec(['files'], 15000);
|
|
383
|
+
return result.split('\n').map(l => l.trim()).filter(l => l.length > 0);
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
console.error(`[token-pilot] ast-index files failed: ${err instanceof Error ? err.message : err}`);
|
|
387
|
+
return [];
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Cross-references: definitions + imports + usages in one call.
|
|
392
|
+
* Replaces separate symbol() + usages() calls.
|
|
393
|
+
*/
|
|
394
|
+
async refs(symbolName, limit = 20) {
|
|
395
|
+
await this.ensureIndex();
|
|
396
|
+
try {
|
|
397
|
+
const result = await this.exec(['refs', symbolName, '--limit', String(limit), '--format', 'json']);
|
|
398
|
+
return JSON.parse(result);
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
console.error(`[token-pilot] ast-index refs failed: ${err instanceof Error ? err.message : err}`);
|
|
402
|
+
return { definitions: [], imports: [], usages: [] };
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Project map: directory structure with file counts and symbol kinds.
|
|
407
|
+
*/
|
|
408
|
+
async map(options) {
|
|
409
|
+
await this.ensureIndex();
|
|
410
|
+
try {
|
|
411
|
+
const args = ['map', '--format', 'json'];
|
|
412
|
+
if (options?.module)
|
|
413
|
+
args.push('--module', options.module);
|
|
414
|
+
if (options?.limit)
|
|
415
|
+
args.push('--limit', String(options.limit));
|
|
416
|
+
const result = await this.exec(args, 15000);
|
|
417
|
+
return JSON.parse(result);
|
|
418
|
+
}
|
|
419
|
+
catch (err) {
|
|
420
|
+
console.error(`[token-pilot] ast-index map failed: ${err instanceof Error ? err.message : err}`);
|
|
421
|
+
return null;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Detect project conventions: architecture, frameworks, naming patterns.
|
|
426
|
+
*/
|
|
427
|
+
async conventions() {
|
|
428
|
+
await this.ensureIndex();
|
|
429
|
+
try {
|
|
430
|
+
const result = await this.exec(['conventions', '--format', 'json']);
|
|
431
|
+
return JSON.parse(result);
|
|
432
|
+
}
|
|
433
|
+
catch (err) {
|
|
434
|
+
console.error(`[token-pilot] ast-index conventions failed: ${err instanceof Error ? err.message : err}`);
|
|
435
|
+
return null;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Find callers of a function.
|
|
440
|
+
*/
|
|
441
|
+
async callers(functionName, limit = 50) {
|
|
442
|
+
await this.ensureIndex();
|
|
443
|
+
try {
|
|
444
|
+
const result = await this.exec(['callers', functionName, '--limit', String(limit), '--format', 'json']);
|
|
445
|
+
const parsed = JSON.parse(result);
|
|
446
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
447
|
+
}
|
|
448
|
+
catch (err) {
|
|
449
|
+
console.error(`[token-pilot] ast-index callers failed: ${err instanceof Error ? err.message : err}`);
|
|
450
|
+
return [];
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Show call hierarchy tree (callers tree up).
|
|
455
|
+
*/
|
|
456
|
+
async callTree(functionName, depth = 3) {
|
|
457
|
+
await this.ensureIndex();
|
|
458
|
+
try {
|
|
459
|
+
const result = await this.exec(['call-tree', functionName, '--depth', String(depth), '--format', 'json']);
|
|
460
|
+
return JSON.parse(result);
|
|
461
|
+
}
|
|
462
|
+
catch (err) {
|
|
463
|
+
console.error(`[token-pilot] ast-index call-tree failed: ${err instanceof Error ? err.message : err}`);
|
|
464
|
+
return null;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Show changed symbols since base branch (git diff).
|
|
469
|
+
*/
|
|
470
|
+
async changed(base) {
|
|
471
|
+
await this.ensureIndex();
|
|
472
|
+
try {
|
|
473
|
+
const args = ['changed', '--format', 'json'];
|
|
474
|
+
if (base)
|
|
475
|
+
args.push('--base', base);
|
|
476
|
+
const result = await this.exec(args, 15000);
|
|
477
|
+
const parsed = JSON.parse(result);
|
|
478
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
479
|
+
}
|
|
480
|
+
catch (err) {
|
|
481
|
+
console.error(`[token-pilot] ast-index changed failed: ${err instanceof Error ? err.message : err}`);
|
|
482
|
+
return [];
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Find potentially unused symbols.
|
|
487
|
+
*/
|
|
488
|
+
async unusedSymbols(options) {
|
|
489
|
+
await this.ensureIndex();
|
|
490
|
+
try {
|
|
491
|
+
const args = ['unused-symbols', '--format', 'json'];
|
|
492
|
+
if (options?.module)
|
|
493
|
+
args.push('--module', options.module);
|
|
494
|
+
if (options?.exportOnly)
|
|
495
|
+
args.push('--export-only');
|
|
496
|
+
if (options?.limit)
|
|
497
|
+
args.push('--limit', String(options.limit));
|
|
498
|
+
const result = await this.exec(args, 15000);
|
|
499
|
+
const parsed = JSON.parse(result);
|
|
500
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
501
|
+
}
|
|
502
|
+
catch (err) {
|
|
503
|
+
console.error(`[token-pilot] ast-index unused-symbols failed: ${err instanceof Error ? err.message : err}`);
|
|
504
|
+
return [];
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Get imports for a specific file.
|
|
509
|
+
* Parses text output: " { X, Y } from 'source';"
|
|
510
|
+
*/
|
|
511
|
+
async fileImports(filePath) {
|
|
512
|
+
await this.ensureIndex();
|
|
513
|
+
try {
|
|
514
|
+
const result = await this.exec(['imports', filePath]);
|
|
515
|
+
return this.parseImportsText(result);
|
|
516
|
+
}
|
|
517
|
+
catch (err) {
|
|
518
|
+
console.error(`[token-pilot] ast-index imports failed: ${err instanceof Error ? err.message : err}`);
|
|
519
|
+
return [];
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
parseImportsText(text) {
|
|
523
|
+
const entries = [];
|
|
524
|
+
for (const line of text.split('\n')) {
|
|
525
|
+
const trimmed = line.trim();
|
|
526
|
+
if (!trimmed || trimmed.startsWith('Imports in') || trimmed.startsWith('Total:'))
|
|
527
|
+
continue;
|
|
528
|
+
// Match: { X, Y } from 'source'
|
|
529
|
+
const braceMatch = trimmed.match(/^\{\s*(.+?)\s*\}\s+from\s+['"](.+?)['"]/);
|
|
530
|
+
if (braceMatch) {
|
|
531
|
+
entries.push({
|
|
532
|
+
specifiers: braceMatch[1].split(',').map(s => s.trim()),
|
|
533
|
+
source: braceMatch[2],
|
|
534
|
+
});
|
|
535
|
+
continue;
|
|
536
|
+
}
|
|
537
|
+
// Match: * as X from 'source'
|
|
538
|
+
const nsMatch = trimmed.match(/^\*\s+as\s+(\S+)\s+from\s+['"](.+?)['"]/);
|
|
539
|
+
if (nsMatch) {
|
|
540
|
+
entries.push({
|
|
541
|
+
specifiers: [nsMatch[1]],
|
|
542
|
+
source: nsMatch[2],
|
|
543
|
+
isNamespace: true,
|
|
544
|
+
});
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
547
|
+
// Match: X from 'source' (default import)
|
|
548
|
+
const defaultMatch = trimmed.match(/^(\w+)\s+from\s+['"](.+?)['"]/);
|
|
549
|
+
if (defaultMatch) {
|
|
550
|
+
entries.push({
|
|
551
|
+
specifiers: [defaultMatch[1]],
|
|
552
|
+
source: defaultMatch[2],
|
|
553
|
+
isDefault: true,
|
|
554
|
+
});
|
|
555
|
+
continue;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
return entries;
|
|
559
|
+
}
|
|
358
560
|
isAvailable() {
|
|
359
561
|
return this.binaryPath !== null;
|
|
360
562
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ast-index/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ast-index/client.ts"],"names":[],"mappings":"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"}
|