token-pilot 0.5.1 → 0.5.2
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 +8 -0
- package/README.md +3 -5
- package/dist/handlers/find-unused.d.ts.map +1 -1
- package/dist/handlers/find-unused.js +60 -6
- package/dist/handlers/find-unused.js.map +1 -1
- package/dist/handlers/project-overview.js +1 -1
- package/dist/handlers/project-overview.js.map +1 -1
- package/dist/handlers/related-files.d.ts.map +1 -1
- package/dist/handlers/related-files.js +19 -15
- package/dist/handlers/related-files.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ 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.5.2] - 2026-03-02
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **`project_overview`** — HINT no longer references deleted `search_code()`, now suggests `find_usages()` and `outline()`
|
|
12
|
+
- **`related_files` imported_by** — now searches both `imports` AND `usages` from refs (not just imports), with increased limit (30). Cross-language filtering preserves same-family matches while removing false positives.
|
|
13
|
+
- **`find_unused`** — excludes framework-implicit symbols: constructors (`constructor`, `__init__`), lifecycle hooks (`onModuleInit`, `ngOnInit`, `componentDidMount`, `mounted`), DI patterns, Python dunder methods. Reduces false positives significantly.
|
|
14
|
+
- **README** — updated handler file list (removed deleted handlers, added new ones)
|
|
15
|
+
|
|
8
16
|
## [0.5.1] - 2026-03-02
|
|
9
17
|
|
|
10
18
|
### Fixed
|
package/README.md
CHANGED
|
@@ -328,13 +328,11 @@ src/
|
|
|
328
328
|
read-range.ts — read_range handler
|
|
329
329
|
read-diff.ts — read_diff handler (O(n) diff)
|
|
330
330
|
smart-read-many.ts — Batch smart_read
|
|
331
|
-
search-code.ts — search_code handler
|
|
332
331
|
find-usages.ts — find_usages handler (via ast-index refs)
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
read-for-edit.ts — read_for_edit handler (minimal edit context)
|
|
333
|
+
related-files.ts — related_files handler (import graph)
|
|
334
|
+
outline.ts — outline handler (directory overview)
|
|
335
335
|
find-unused.ts — find_unused handler
|
|
336
|
-
find-implementations.ts
|
|
337
|
-
class-hierarchy.ts
|
|
338
336
|
project-overview.ts — project_overview (via ast-index map + conventions)
|
|
339
337
|
non-code.ts — JSON/YAML/MD/TOML structural summaries
|
|
340
338
|
export-ast-index.ts — AST export for context-mode BM25
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-unused.d.ts","sourceRoot":"","sources":["../../src/handlers/find-unused.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"find-unused.d.ts","sourceRoot":"","sources":["../../src/handlers/find-unused.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsDD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA+C7D"}
|
|
@@ -1,26 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Names that are never "unused" — constructors, lifecycle hooks, DI patterns.
|
|
3
|
+
* Frameworks call these implicitly, so ast-index refs won't find callers.
|
|
4
|
+
*/
|
|
5
|
+
const FRAMEWORK_IMPLICIT_NAMES = new Set([
|
|
6
|
+
// Constructors
|
|
7
|
+
'constructor', '__init__', '__new__', '__del__',
|
|
8
|
+
// Python dunder methods
|
|
9
|
+
'__str__', '__repr__', '__eq__', '__hash__', '__len__', '__iter__',
|
|
10
|
+
'__next__', '__enter__', '__exit__', '__getitem__', '__setitem__',
|
|
11
|
+
'__contains__', '__call__', '__bool__', '__lt__', '__gt__', '__le__',
|
|
12
|
+
'__ge__', '__ne__', '__add__', '__sub__', '__mul__',
|
|
13
|
+
// NestJS / Angular lifecycle hooks
|
|
14
|
+
'onModuleInit', 'onModuleDestroy', 'onApplicationBootstrap',
|
|
15
|
+
'onApplicationShutdown', 'beforeApplicationShutdown',
|
|
16
|
+
// Angular component lifecycle
|
|
17
|
+
'ngOnInit', 'ngOnDestroy', 'ngOnChanges', 'ngAfterViewInit',
|
|
18
|
+
'ngAfterContentInit', 'ngDoCheck',
|
|
19
|
+
// React lifecycle
|
|
20
|
+
'componentDidMount', 'componentWillUnmount', 'componentDidUpdate',
|
|
21
|
+
'shouldComponentUpdate', 'getDerivedStateFromProps', 'getSnapshotBeforeUpdate',
|
|
22
|
+
// Vue lifecycle
|
|
23
|
+
'mounted', 'created', 'beforeMount', 'beforeDestroy', 'destroyed',
|
|
24
|
+
'beforeCreate', 'updated', 'beforeUpdate', 'setup',
|
|
25
|
+
// Java / Spring
|
|
26
|
+
'init', 'destroy', 'afterPropertiesSet',
|
|
27
|
+
// Go interfaces (common)
|
|
28
|
+
'ServeHTTP', 'String', 'Error', 'Close', 'Read', 'Write',
|
|
29
|
+
// Rust traits (common)
|
|
30
|
+
'new', 'default', 'fmt', 'from', 'into', 'drop',
|
|
31
|
+
]);
|
|
32
|
+
/**
|
|
33
|
+
* Patterns for names that are likely framework-invoked.
|
|
34
|
+
*/
|
|
35
|
+
const FRAMEWORK_IMPLICIT_PATTERNS = [
|
|
36
|
+
/^on[A-Z]/, // onInit, onChange, onSubmit, onRequest...
|
|
37
|
+
/^handle[A-Z]/, // handleRequest, handleError...
|
|
38
|
+
/^before[A-Z]/, // beforeEach, beforeAll, beforeInsert...
|
|
39
|
+
/^after[A-Z]/, // afterEach, afterAll, afterInsert...
|
|
40
|
+
/^__\w+__$/, // Python dunder methods
|
|
41
|
+
/^test[A-Z_]/, // test methods (JUnit, pytest)
|
|
42
|
+
/^Test[A-Z]/, // Go test functions
|
|
43
|
+
/^setup$/i, // setup/teardown
|
|
44
|
+
/^teardown$/i,
|
|
45
|
+
];
|
|
46
|
+
function isFrameworkImplicit(name) {
|
|
47
|
+
if (FRAMEWORK_IMPLICIT_NAMES.has(name))
|
|
48
|
+
return true;
|
|
49
|
+
return FRAMEWORK_IMPLICIT_PATTERNS.some(p => p.test(name));
|
|
50
|
+
}
|
|
1
51
|
export async function handleFindUnused(args, astIndex) {
|
|
2
52
|
const unused = await astIndex.unusedSymbols({
|
|
3
53
|
module: args.module,
|
|
4
54
|
exportOnly: args.export_only,
|
|
5
|
-
limit: args.limit ?? 30,
|
|
55
|
+
limit: (args.limit ?? 30) + 20, // request extra to compensate for filtering
|
|
6
56
|
});
|
|
7
|
-
|
|
57
|
+
// Filter out framework-implicit symbols (constructors, lifecycle hooks, DI)
|
|
58
|
+
const filtered = unused.filter(sym => !isFrameworkImplicit(sym.name));
|
|
59
|
+
const trimmed = filtered.slice(0, args.limit ?? 30);
|
|
60
|
+
const excludedCount = unused.length - filtered.length;
|
|
61
|
+
if (trimmed.length === 0) {
|
|
8
62
|
return {
|
|
9
63
|
content: [{
|
|
10
64
|
type: 'text',
|
|
11
65
|
text: args.module
|
|
12
|
-
? `No unused symbols found in module "${args.module}"
|
|
13
|
-
:
|
|
66
|
+
? `No unused symbols found in module "${args.module}".${excludedCount > 0 ? ` (${excludedCount} framework-implicit symbols excluded)` : ''}`
|
|
67
|
+
: `No unused symbols found in the project.${excludedCount > 0 ? ` (${excludedCount} framework-implicit symbols excluded)` : ''}`,
|
|
14
68
|
}],
|
|
15
69
|
};
|
|
16
70
|
}
|
|
17
71
|
const lines = [
|
|
18
|
-
`UNUSED SYMBOLS: ${
|
|
72
|
+
`UNUSED SYMBOLS: ${trimmed.length} potentially unused${excludedCount > 0 ? ` (${excludedCount} framework-implicit excluded)` : ''}`,
|
|
19
73
|
'',
|
|
20
74
|
];
|
|
21
75
|
// Group by file
|
|
22
76
|
const byFile = new Map();
|
|
23
|
-
for (const sym of
|
|
77
|
+
for (const sym of trimmed) {
|
|
24
78
|
const existing = byFile.get(sym.path) ?? [];
|
|
25
79
|
existing.push(sym);
|
|
26
80
|
byFile.set(sym.path, existing);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-unused.js","sourceRoot":"","sources":["../../src/handlers/find-unused.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAoB,EACpB,QAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;QAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"find-unused.js","sourceRoot":"","sources":["../../src/handlers/find-unused.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ export async function handleProjectOverview(projectRoot, astIndex) {
|
|
|
73
73
|
catch { /* ignore */ }
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
lines.push('HINT: Use smart_read() on files,
|
|
76
|
+
lines.push('HINT: Use smart_read() on files, find_usages() for symbol references, outline() for directory overview.');
|
|
77
77
|
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
78
78
|
}
|
|
79
79
|
async function detectProjectInfo(projectRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-overview.js","sourceRoot":"","sources":["../../src/handlers/project-overview.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-overview.js","sourceRoot":"","sources":["../../src/handlers/project-overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"related-files.d.ts","sourceRoot":"","sources":["../../src/handlers/related-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA4B7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAWD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"related-files.d.ts","sourceRoot":"","sources":["../../src/handlers/related-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA4B7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAWD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2H7D"}
|
|
@@ -69,27 +69,31 @@ export async function handleRelatedFiles(args, projectRoot, astIndex) {
|
|
|
69
69
|
if (!exportNames.includes(fileBase)) {
|
|
70
70
|
exportNames.push(fileBase);
|
|
71
71
|
}
|
|
72
|
-
// Search refs for each exported symbol
|
|
72
|
+
// Search refs for each exported symbol (check imports + usages)
|
|
73
73
|
const seenFiles = new Set();
|
|
74
74
|
seenFiles.add(absPath);
|
|
75
75
|
for (const name of exportNames) {
|
|
76
76
|
try {
|
|
77
|
-
const refs = await astIndex.refs(name,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
const refs = await astIndex.refs(name, 30);
|
|
78
|
+
// Check both imports and usages — imports catch direct `import X from`,
|
|
79
|
+
// usages catch re-exports, function calls, type references from other files
|
|
80
|
+
const refEntries = [
|
|
81
|
+
...(refs?.imports ?? []),
|
|
82
|
+
...(refs?.usages ?? []),
|
|
83
|
+
];
|
|
84
|
+
for (const ref of refEntries) {
|
|
85
|
+
const refPath = ref.path;
|
|
86
|
+
if (!refPath || seenFiles.has(refPath))
|
|
87
|
+
continue;
|
|
88
|
+
// Filter cross-language false positives:
|
|
89
|
+
// only include files from the same language family
|
|
90
|
+
if (sourceLang) {
|
|
91
|
+
const refLang = getLangFamily(refPath);
|
|
92
|
+
if (refLang && refLang !== sourceLang)
|
|
82
93
|
continue;
|
|
83
|
-
// Filter cross-language false positives:
|
|
84
|
-
// only include files from the same language family
|
|
85
|
-
if (sourceLang) {
|
|
86
|
-
const refLang = getLangFamily(refPath);
|
|
87
|
-
if (refLang && refLang !== sourceLang)
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
seenFiles.add(refPath);
|
|
91
|
-
importedBy.push(refPath);
|
|
92
94
|
}
|
|
95
|
+
seenFiles.add(refPath);
|
|
96
|
+
importedBy.push(refPath);
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"related-files.js","sourceRoot":"","sources":["../../src/handlers/related-files.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"related-files.js","sourceRoot":"","sources":["../../src/handlers/related-files.ts"],"names":[],"mappings":"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"}
|