indexer-cli 0.5.1 → 0.7.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/README.md +3 -18
- package/dist/cli/commands/architecture.js +3 -16
- package/dist/cli/commands/architecture.js.map +1 -1
- package/dist/cli/commands/context.js +64 -78
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/deps.js +2 -14
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/ensure-indexed.js +22 -15
- package/dist/cli/commands/ensure-indexed.js.map +1 -1
- package/dist/cli/commands/explain.js +43 -24
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/index.js +1 -33
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.js +3 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/search.js +10 -131
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/skills.js +159 -55
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/structure.js +19 -120
- package/dist/cli/commands/structure.js.map +1 -1
- package/dist/cli/entry.js +0 -2
- package/dist/cli/entry.js.map +1 -1
- package/dist/core/version-check.js +1 -1
- package/dist/core/version-check.js.map +1 -1
- package/package.json +2 -1
|
@@ -31,74 +31,173 @@ const SKILL_DEFINITIONS = [
|
|
|
31
31
|
{
|
|
32
32
|
name: "semantic-search",
|
|
33
33
|
directory: "semantic-search",
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
34
|
+
rawContent: `---
|
|
35
|
+
name: semantic-search
|
|
36
|
+
description:
|
|
37
|
+
FIRST choice for CONCEPT and BEHAVIOR questions — "how is scoring calculated", "what happens on order cancel", "what if a user stops paying", "how does the system handle expired subscriptions", "lifecycle of a payment", "flow when X fails". Use BEFORE spawning explore agents for these questions — it traces cross-module behavior that grep misses. Do NOT use for keyword/identifier lookups (use grep/ast-grep instead). If the search term is a code identifier (class name, variable name, function name), this is the WRONG tool — use symbol-explain or grep instead.
|
|
38
|
+
allowed-tools: Bash(npx indexer-cli search:*)
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
# Use semantic-search for implementation hunting
|
|
42
|
+
|
|
43
|
+
Use when semantic search is already the right tool.
|
|
44
|
+
Keep the query short and centered on one code concept.
|
|
45
|
+
|
|
46
|
+
## Mandatory rules
|
|
47
|
+
|
|
48
|
+
### 1) Search count
|
|
49
|
+
|
|
50
|
+
- 1 search per question
|
|
51
|
+
- Max 2 only if the second is a truly different angle
|
|
52
|
+
- If search 1 answers the question: STOP
|
|
53
|
+
|
|
54
|
+
Never run 3+ overlapping searches.
|
|
55
|
+
|
|
56
|
+
### 2) Query shape
|
|
57
|
+
|
|
58
|
+
Use 1-3 domain-specific words. No synonyms.
|
|
59
|
+
|
|
60
|
+
Pick the single best concept word. Add words only to narrow scope.
|
|
61
|
+
|
|
62
|
+
- ✅ \`prize\`
|
|
63
|
+
- ✅ \`password reset\`
|
|
64
|
+
- ✅ \`rate limiting\`
|
|
65
|
+
- ❌ \`prize reward award\`
|
|
66
|
+
- ❌ \`chapter pass percent quiz result score\`
|
|
67
|
+
- ❌ \`order cancel payment failure refund\`
|
|
68
|
+
|
|
69
|
+
### 3) Two-phase retrieval — ALWAYS
|
|
70
|
+
|
|
71
|
+
#### Phase 1: Discover
|
|
72
|
+
|
|
73
|
+
Search without \`--include-content\`.
|
|
74
|
+
|
|
75
|
+
\`\`\`bash
|
|
76
|
+
npx indexer-cli search "prize"
|
|
77
|
+
\`\`\`
|
|
78
|
+
|
|
79
|
+
#### Phase 2: Read
|
|
80
|
+
|
|
81
|
+
Use the Read tool on the exact files and line ranges from Phase 1.
|
|
82
|
+
|
|
83
|
+
Do NOT:
|
|
84
|
+
|
|
85
|
+
- run another semantic search for the same concept
|
|
86
|
+
- grep the same concept
|
|
87
|
+
- grep terms revealed by Phase 1
|
|
88
|
+
- replace reading with \`--include-content\`
|
|
89
|
+
|
|
90
|
+
### Hard stop after Phase 1
|
|
91
|
+
|
|
92
|
+
If Phase 1 returned useful file paths and ranges, read them.
|
|
93
|
+
|
|
94
|
+
Only if Phase 1 returns nothing useful, do one fallback:
|
|
95
|
+
|
|
96
|
+
- one alternative semantic query, or
|
|
97
|
+
- grep
|
|
98
|
+
|
|
99
|
+
### 4) \`--include-content\` is rare
|
|
100
|
+
|
|
101
|
+
Use it only for a quick scan when you expect fewer than 5 results.
|
|
102
|
+
|
|
103
|
+
### 5) Narrow early with \`--path-prefix\`
|
|
104
|
+
|
|
105
|
+
If you know the subsystem, add \`--path-prefix\`.
|
|
106
|
+
|
|
107
|
+
\`\`\`bash
|
|
108
|
+
npx indexer-cli search "password reset" --path-prefix src/auth
|
|
109
|
+
\`\`\`
|
|
110
|
+
|
|
111
|
+
## Skip when
|
|
112
|
+
|
|
113
|
+
- you need a file tree or symbol inventory
|
|
114
|
+
- you already know the exact file and line range
|
|
115
|
+
- the query is an identifier; use grep/LSP/symbol-explain instead
|
|
116
|
+
|
|
117
|
+
## Command patterns
|
|
118
|
+
|
|
119
|
+
\`\`\`bash
|
|
120
|
+
# Phase 1: discover
|
|
121
|
+
npx indexer-cli search "rate limiting"
|
|
122
|
+
npx indexer-cli search "password reset" --path-prefix src/auth
|
|
123
|
+
|
|
124
|
+
# Phase 2: Read returned files/lines with Read tool
|
|
125
|
+
|
|
126
|
+
# Rare exception: inline content when expecting <5 hits
|
|
127
|
+
npx indexer-cli search "input validation" --include-content --max-files 3
|
|
128
|
+
\`\`\`
|
|
129
|
+
|
|
130
|
+
## CLI reference
|
|
131
|
+
|
|
132
|
+
- Positional args: \`<query>\`
|
|
133
|
+
- Options: \`--max-files\`, \`--path-prefix\`, \`--chunk-types\`, \`--min-score\`, \`--include-content\`,
|
|
134
|
+
\`--include-imports\`
|
|
135
|
+
|
|
136
|
+
### Allowed \`--chunk-types\`
|
|
137
|
+
|
|
138
|
+
\`full_file\`, \`imports\`, \`preamble\`, \`declaration\`, \`module_section\`, \`impl\`, \`types\`
|
|
139
|
+
|
|
140
|
+
Imports and preamble are excluded by default. Use \`--include-imports\` to include them.
|
|
141
|
+
|
|
142
|
+
## Anti-patterns
|
|
143
|
+
|
|
144
|
+
- ❌ 3+ overlapping searches
|
|
145
|
+
- ❌ broad searches with \`--include-content\`
|
|
146
|
+
- ❌ long synonym-heavy queries
|
|
147
|
+
- ❌ re-searching after Phase 1 already found the locations
|
|
148
|
+
- ❌ grepping the same concept after semantic search already found it
|
|
149
|
+
- ❌ loading this skill via \`skill\` when you already know the \`indexer-cli\` command
|
|
150
|
+
`,
|
|
151
|
+
description: "",
|
|
152
|
+
heading: "",
|
|
153
|
+
useWhen: "",
|
|
154
|
+
allowedTools: [],
|
|
155
|
+
rules: [],
|
|
156
|
+
commandSamples: [],
|
|
61
157
|
},
|
|
62
158
|
{
|
|
63
159
|
name: "repo-structure",
|
|
64
160
|
directory: "repo-structure",
|
|
65
|
-
description: `FIRST choice when you need to see what's inside a package/directory — all files, classes, functions, exports in a tree. Produces a symbol-level map of any path prefix. Use BEFORE opening multiple files to understand layout. Triggers: "show me the structure of X", "what's in this module", "list the symbols".`,
|
|
161
|
+
description: `FIRST choice when you need to see what's inside a package/directory — all files, classes, functions, exports in a tree. Produces a symbol-level map of any path prefix. Use BEFORE opening multiple files to understand layout. Triggers: "show me the structure of X", "what's in this module", "list the symbols". ALWAYS narrow with --path-prefix or --kind; unfiltered output can exceed 2500 tokens.`,
|
|
66
162
|
heading: "Use repo-structure for tree and symbol-map questions",
|
|
67
163
|
useWhen: "Use this when the agent needs to see how files and symbols are organized in an area of the repo before reading implementation details.",
|
|
68
164
|
focusHint: "Keep the request centered on one repo area or one symbol kind so the tree stays readable.",
|
|
69
165
|
allowedTools: ["Bash(npx indexer-cli structure:*)"],
|
|
70
166
|
rules: [
|
|
71
167
|
"Prefer structure when layout matters more than implementation snippets.",
|
|
72
|
-
"
|
|
73
|
-
"
|
|
168
|
+
"ALWAYS use --path-prefix or --kind to keep output focused — unfiltered output can exceed 2500 tokens.",
|
|
169
|
+
"Combine --path-prefix with --kind for the tightest result (e.g. --path-prefix src/engine --kind class).",
|
|
170
|
+
"By default only exported symbols are shown (classes, exported functions, interfaces, types). Use --include-internal to see private methods and non-exported helpers.",
|
|
74
171
|
],
|
|
75
172
|
skipWhen: [
|
|
76
173
|
"You need dependency relationships rather than physical structure",
|
|
77
174
|
"You need semantic search results rather than a tree",
|
|
78
175
|
],
|
|
79
176
|
commandSamples: [
|
|
80
|
-
"npx indexer-cli structure",
|
|
81
177
|
"npx indexer-cli structure --path-prefix src/<area>",
|
|
178
|
+
"npx indexer-cli structure --path-prefix src/<area> --kind class",
|
|
82
179
|
"npx indexer-cli structure --kind function",
|
|
180
|
+
"npx indexer-cli structure --path-prefix src/<area> --include-internal",
|
|
83
181
|
],
|
|
84
182
|
cliReference: [
|
|
85
|
-
"
|
|
86
|
-
"Options: --path-prefix <string>, --kind <string>, --max-depth <number>, --max-files <number>, --txt.",
|
|
183
|
+
"Options: --path-prefix <string>, --kind <string>, --max-depth <number>, --max-files <number>, --include-internal.",
|
|
87
184
|
"Allowed --kind values: function, class, method, interface, type, variable, module, signal.",
|
|
185
|
+
"By default shows only exported symbols. Add --include-internal to show all symbols (methods, private members).",
|
|
88
186
|
],
|
|
89
187
|
},
|
|
90
188
|
{
|
|
91
189
|
name: "repo-architecture",
|
|
92
190
|
directory: "repo-architecture",
|
|
93
|
-
description: `FIRST choice when user asks "what is this project", "explain the codebase", "how is this organized". Produces a full dependency graph, entry points, and module breakdown — everything needed to understand a repo without reading individual files. Use BEFORE reading package.json or exploring directories manually.`,
|
|
191
|
+
description: `FIRST choice when user asks "what is this project", "explain the codebase", "how is this organized". Produces a full dependency graph, entry points, and module breakdown — everything needed to understand a repo without reading individual files. Use BEFORE reading package.json or exploring directories manually. Also the best starting point for onboarding: run this first, then drill into specific modules with deps or explain.`,
|
|
94
192
|
heading: "Use repo-architecture for dependency-graph questions",
|
|
95
|
-
useWhen: "Use this when the agent needs a high-level snapshot of modules, entry points, and dependency shape before going deeper.",
|
|
193
|
+
useWhen: "Use this when the agent needs a high-level snapshot of modules, entry points, and dependency shape before going deeper. This is the cheapest way to orient in an unfamiliar codebase (~140 tokens for a typical project).",
|
|
96
194
|
focusHint: "Keep the scope to the subsystem that matters so the graph highlights the right boundaries.",
|
|
97
195
|
allowedTools: ["Bash(npx indexer-cli architecture:*)"],
|
|
98
196
|
rules: [
|
|
99
197
|
"Use architecture when the question is about system shape, not a single symbol.",
|
|
100
198
|
"Filter by path prefix when only one subsystem matters.",
|
|
101
|
-
"
|
|
199
|
+
"Pay attention to cyclic dependencies — they indicate tight coupling that may affect where you make changes.",
|
|
200
|
+
"Follow up with `deps <hot-path>` to drill into specific module relationships, or `explain <symbol>` to understand a key class.",
|
|
102
201
|
],
|
|
103
202
|
skipWhen: [
|
|
104
203
|
"You need callers/callees for one specific file or symbol",
|
|
@@ -108,51 +207,55 @@ const SKILL_DEFINITIONS = [
|
|
|
108
207
|
"npx indexer-cli architecture",
|
|
109
208
|
"npx indexer-cli architecture --path-prefix src/<area>",
|
|
110
209
|
],
|
|
111
|
-
cliReference: [
|
|
112
|
-
"Output: JSON by default; use --txt for human-readable text.",
|
|
113
|
-
"Options: --path-prefix <string>, --include-fixtures, --txt.",
|
|
114
|
-
],
|
|
210
|
+
cliReference: ["Options: --path-prefix <string>, --include-fixtures."],
|
|
115
211
|
},
|
|
116
212
|
{
|
|
117
213
|
name: "repo-context",
|
|
118
214
|
directory: "repo-context",
|
|
119
|
-
description: "FIRST choice for changed-area and subsystem summaries. Load this before opening many files when you need whole-repo orientation, changed-scope context, or a dependency-neighborhood snapshot without exact implementation snippets.",
|
|
215
|
+
description: "FIRST choice for changed-area and subsystem summaries. Load this before opening many files when you need whole-repo orientation, changed-scope context, or a dependency-neighborhood snapshot without exact implementation snippets. ALWAYS pass --scope; without it the output can exceed 5000 tokens.",
|
|
120
216
|
heading: "Use repo-context for dense summaries",
|
|
121
217
|
useWhen: "Use this when the agent wants a compressed view of a subsystem, changed area, or dependency neighborhood without opening many files.",
|
|
122
218
|
focusHint: "Keep the scope explicit so the summary stays dense instead of drifting across the repo.",
|
|
123
219
|
allowedTools: ["Bash(npx indexer-cli context:*)"],
|
|
124
220
|
rules: [
|
|
125
221
|
"Prefer context when you want breadth over exact source snippets.",
|
|
126
|
-
"
|
|
222
|
+
"ALWAYS use --scope — default `--scope all` outputs every symbol in the repo. Use --scope relevant-to:<path> for a focused neighborhood or --scope changed for uncommitted changes.",
|
|
223
|
+
"Use --compact to omit symbol signatures and show only file::name (kind) — saves ~50% tokens.",
|
|
127
224
|
"Lower --max-deps when you need a tighter prompt budget.",
|
|
225
|
+
"Tests are excluded by default. Add --include-tests to see test files and symbols.",
|
|
128
226
|
],
|
|
129
227
|
skipWhen: [
|
|
130
228
|
"You need exact implementation locations or ranked chunks",
|
|
131
229
|
"You need a file tree or architecture graph instead of a summary",
|
|
132
230
|
],
|
|
133
231
|
commandSamples: [
|
|
134
|
-
"npx indexer-cli context",
|
|
135
|
-
"npx indexer-cli context --scope changed",
|
|
136
232
|
"npx indexer-cli context --scope relevant-to:src/<area>",
|
|
233
|
+
"npx indexer-cli context --scope changed",
|
|
234
|
+
"npx indexer-cli context --scope relevant-to:src/<area> --max-deps 10 --compact",
|
|
235
|
+
"npx indexer-cli context --scope relevant-to:src --compact",
|
|
137
236
|
],
|
|
138
237
|
cliReference: [
|
|
139
|
-
"
|
|
140
|
-
"Options: --scope <scope>, --max-deps <number>, --include-fixtures, --txt.",
|
|
238
|
+
"Options: --scope <scope>, --max-deps <number>, --include-fixtures, --include-tests, --compact.",
|
|
141
239
|
"Allowed --scope values: all, changed, relevant-to:<path>.",
|
|
240
|
+
"--compact omits symbol signatures for token savings. --include-tests includes test files.",
|
|
142
241
|
],
|
|
143
242
|
},
|
|
144
243
|
{
|
|
145
244
|
name: "symbol-explain",
|
|
146
245
|
directory: "symbol-explain",
|
|
147
|
-
description: "FIRST choice once the symbol name is known. Load this before manual caller/signature tracing to get one symbol's signature, module context, and callers fast.",
|
|
246
|
+
description: "FIRST choice once the symbol name is known. Load this before manual caller/signature tracing to get one symbol's signature, module context, and callers fast. Output is ~80 tokens — the cheapest way to understand a single symbol.",
|
|
148
247
|
heading: "Use symbol-explain for one symbol at a time",
|
|
149
248
|
useWhen: "Use this when the task centers on one function, class, type, or symbol and the agent needs signature, usage, and containing module context fast.",
|
|
150
249
|
focusHint: "Keep the request centered on one symbol name for the cleanest caller and signature output.",
|
|
151
250
|
allowedTools: ["Bash(npx indexer-cli explain:*)"],
|
|
152
251
|
rules: [
|
|
153
252
|
"Use explain only when the symbol name is already known.",
|
|
154
|
-
"
|
|
253
|
+
"Use <file>::<symbol> syntax when the same symbol name exists in multiple files (e.g. `explain src/engine/indexer.ts::IndexerEngine`).",
|
|
254
|
+
"Use bare <symbol> when the name is unique in the codebase.",
|
|
155
255
|
"Keep the prompt centered on a single symbol for the cleanest output.",
|
|
256
|
+
"Use --path-prefix to limit results to files under a specific path (e.g. --path-prefix src/).",
|
|
257
|
+
"Tests and fixtures are excluded by default. Add --include-fixtures to include them.",
|
|
258
|
+
"Exact name matches take priority; fuzzy matches only appear when no exact match exists.",
|
|
156
259
|
],
|
|
157
260
|
skipWhen: [
|
|
158
261
|
"You need to discover candidate symbols first",
|
|
@@ -161,17 +264,18 @@ const SKILL_DEFINITIONS = [
|
|
|
161
264
|
commandSamples: [
|
|
162
265
|
"npx indexer-cli explain <symbol>",
|
|
163
266
|
"npx indexer-cli explain <file>::<symbol>",
|
|
267
|
+
"npx indexer-cli explain <symbol> --path-prefix src/",
|
|
164
268
|
],
|
|
165
269
|
cliReference: [
|
|
166
270
|
"Positional args: <symbol> or <file>::<symbol>.",
|
|
167
|
-
"
|
|
168
|
-
"
|
|
271
|
+
"Options: --path-prefix <string>, --include-fixtures.",
|
|
272
|
+
"Tests/fixtures excluded by default. Exact matches prioritized over fuzzy matches.",
|
|
169
273
|
],
|
|
170
274
|
},
|
|
171
275
|
{
|
|
172
276
|
name: "dependency-trace",
|
|
173
277
|
directory: "dependency-trace",
|
|
174
|
-
description: "FIRST choice once the file or module is known and impact matters. Load this before manual import tracing to see callers, callees, and likely change impact.",
|
|
278
|
+
description: "FIRST choice once the file or module is known and impact matters. Load this before manual import tracing to see callers, callees, and likely change impact. Output is ~140 tokens per depth level.",
|
|
175
279
|
heading: "Use dependency-trace for impact analysis",
|
|
176
280
|
useWhen: "Use this when the agent needs to know who imports a module, what it imports, or how far change impact may spread.",
|
|
177
281
|
focusHint: "Start with a single path or module and keep depth low until the first-hop trace stops being enough.",
|
|
@@ -179,7 +283,7 @@ const SKILL_DEFINITIONS = [
|
|
|
179
283
|
rules: [
|
|
180
284
|
"Use deps when the question is about relationships, not source snippets.",
|
|
181
285
|
"Set --direction callers or --direction callees when only one side matters.",
|
|
182
|
-
"Increase depth only when the first hop is not enough.",
|
|
286
|
+
"Start at depth 1 (default). Increase to --depth 2 only when the first hop is not enough — each depth level adds more callers/callees.",
|
|
183
287
|
],
|
|
184
288
|
skipWhen: [
|
|
185
289
|
"You need a repo-wide architecture snapshot rather than one trace",
|
|
@@ -189,11 +293,11 @@ const SKILL_DEFINITIONS = [
|
|
|
189
293
|
"npx indexer-cli deps <path>",
|
|
190
294
|
"npx indexer-cli deps <path> --direction callers",
|
|
191
295
|
"npx indexer-cli deps <path> --direction callees",
|
|
296
|
+
"npx indexer-cli deps <path> --depth 2",
|
|
192
297
|
],
|
|
193
298
|
cliReference: [
|
|
194
299
|
"Positional args: <path>.",
|
|
195
|
-
"
|
|
196
|
-
"Options: --direction <dir>, --depth <n>, --txt.",
|
|
300
|
+
"Options: --direction <dir>, --depth <n>.",
|
|
197
301
|
"Allowed --direction values: callers, callees, both.",
|
|
198
302
|
"Behavior: --depth is effectively clamped to the range 1..5.",
|
|
199
303
|
],
|
|
@@ -202,7 +306,7 @@ const SKILL_DEFINITIONS = [
|
|
|
202
306
|
exports.GENERATED_SKILLS = SKILL_DEFINITIONS.map((definition) => ({
|
|
203
307
|
name: definition.name,
|
|
204
308
|
directory: definition.directory,
|
|
205
|
-
content: renderSkill(definition),
|
|
309
|
+
content: definition.rawContent ?? renderSkill(definition),
|
|
206
310
|
}));
|
|
207
311
|
exports.DEPRECATED_SKILL_DIRECTORIES = ["context-pack"];
|
|
208
312
|
exports.GENERATED_SKILL_DIRECTORIES = exports.GENERATED_SKILLS.map((skill) => skill.directory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ const logger_js_1 = require("../../core/logger.js");
|
|
|
10
10
|
const types_js_1 = require("../../core/types.js");
|
|
11
11
|
const sqlite_js_1 = require("../../storage/sqlite.js");
|
|
12
12
|
const help_text_js_1 = require("../help-text.js");
|
|
13
|
-
const output_mode_js_1 = require("../output-mode.js");
|
|
14
13
|
const ensure_indexed_js_1 = require("./ensure-indexed.js");
|
|
15
14
|
function parseMaxDepth(value) {
|
|
16
15
|
if (!value) {
|
|
@@ -94,7 +93,12 @@ function collectDescendantFiles(node, prefix, symbolsByFile, fileCounter, maxFil
|
|
|
94
93
|
}
|
|
95
94
|
return entries;
|
|
96
95
|
}
|
|
97
|
-
|
|
96
|
+
const NO_SYMBOLS_EXPORTED_ONLY = "(no exported symbols)";
|
|
97
|
+
const NO_SYMBOLS_ALL = "(no symbols)";
|
|
98
|
+
function printTree(node, indent, prefix, symbolsByFile, depth, maxDepth, fileCounter, maxFiles, includeInternal) {
|
|
99
|
+
const noSymbolsText = includeInternal
|
|
100
|
+
? NO_SYMBOLS_ALL
|
|
101
|
+
: NO_SYMBOLS_EXPORTED_ONLY;
|
|
98
102
|
if (maxDepth !== undefined && depth >= maxDepth) {
|
|
99
103
|
if (node.files.size > 0) {
|
|
100
104
|
const summary = summarizeHiddenChildren(node);
|
|
@@ -110,7 +114,7 @@ function printTree(node, indent, prefix, symbolsByFile, depth, maxDepth, fileCou
|
|
|
110
114
|
console.log(`${indent} ${symbol.name} (${symbol.kind}${exported})`);
|
|
111
115
|
}
|
|
112
116
|
if (file.symbols.length === 0) {
|
|
113
|
-
console.log(`${indent}
|
|
117
|
+
console.log(`${indent} ${noSymbolsText}`);
|
|
114
118
|
}
|
|
115
119
|
}
|
|
116
120
|
return;
|
|
@@ -126,7 +130,7 @@ function printTree(node, indent, prefix, symbolsByFile, depth, maxDepth, fileCou
|
|
|
126
130
|
}
|
|
127
131
|
const nextPrefix = prefix ? `${prefix}/${directoryName}` : directoryName;
|
|
128
132
|
console.log(`${indent}${directoryName}/`);
|
|
129
|
-
printTree(childNode, `${indent} `, nextPrefix, symbolsByFile, depth + 1, maxDepth, fileCounter, maxFiles);
|
|
133
|
+
printTree(childNode, `${indent} `, nextPrefix, symbolsByFile, depth + 1, maxDepth, fileCounter, maxFiles, includeInternal);
|
|
130
134
|
}
|
|
131
135
|
for (const fileName of fileEntries) {
|
|
132
136
|
if (maxFiles !== undefined &&
|
|
@@ -148,97 +152,10 @@ function printTree(node, indent, prefix, symbolsByFile, depth, maxDepth, fileCou
|
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
154
|
else {
|
|
151
|
-
console.log(`${indent}
|
|
155
|
+
console.log(`${indent} ${noSymbolsText}`);
|
|
152
156
|
}
|
|
153
157
|
}
|
|
154
158
|
}
|
|
155
|
-
function treeToJson(node, prefix, symbolsByFile, depth, maxDepth, fileCounter, maxFiles) {
|
|
156
|
-
if (maxDepth !== undefined && depth >= maxDepth) {
|
|
157
|
-
if (node.files.size > 0) {
|
|
158
|
-
const summary = summarizeHiddenChildren(node);
|
|
159
|
-
return summary === "... (0 children)"
|
|
160
|
-
? []
|
|
161
|
-
: [{ type: "summary", name: summary }];
|
|
162
|
-
}
|
|
163
|
-
return collectDescendantFiles(node, prefix, symbolsByFile, fileCounter, maxFiles).map((file) => ({
|
|
164
|
-
type: "file",
|
|
165
|
-
name: file.name,
|
|
166
|
-
path: file.path,
|
|
167
|
-
symbols: file.symbols,
|
|
168
|
-
}));
|
|
169
|
-
}
|
|
170
|
-
const entries = [];
|
|
171
|
-
const directoryEntries = Array.from(node.directories.entries()).sort((a, b) => a[0].localeCompare(b[0]));
|
|
172
|
-
const fileEntries = Array.from(node.files).sort((a, b) => a.localeCompare(b));
|
|
173
|
-
for (const [directoryName, childNode] of directoryEntries) {
|
|
174
|
-
if (maxFiles !== undefined &&
|
|
175
|
-
fileCounter &&
|
|
176
|
-
fileCounter.printed >= maxFiles) {
|
|
177
|
-
fileCounter.hidden += countFiles(childNode);
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
|
-
const childPrefix = prefix ? `${prefix}/${directoryName}` : directoryName;
|
|
181
|
-
const children = treeToJson(childNode, childPrefix, symbolsByFile, depth + 1, maxDepth, fileCounter, maxFiles);
|
|
182
|
-
if (maxFiles !== undefined && children.length === 0) {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
entries.push({
|
|
186
|
-
type: "directory",
|
|
187
|
-
name: directoryName,
|
|
188
|
-
children,
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
for (const fileName of fileEntries) {
|
|
192
|
-
if (maxFiles !== undefined &&
|
|
193
|
-
fileCounter &&
|
|
194
|
-
fileCounter.printed >= maxFiles) {
|
|
195
|
-
fileCounter.hidden += 1;
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
const filePath = prefix ? `${prefix}/${fileName}` : fileName;
|
|
199
|
-
const symbols = (symbolsByFile.get(filePath) ?? []).map((s) => ({
|
|
200
|
-
name: s.name,
|
|
201
|
-
kind: s.kind,
|
|
202
|
-
exported: s.exported,
|
|
203
|
-
}));
|
|
204
|
-
if (fileCounter) {
|
|
205
|
-
fileCounter.printed += 1;
|
|
206
|
-
}
|
|
207
|
-
entries.push({ type: "file", name: fileName, path: filePath, symbols });
|
|
208
|
-
}
|
|
209
|
-
return entries;
|
|
210
|
-
}
|
|
211
|
-
function narrowJsonTreeToPathPrefix(entries, pathPrefix) {
|
|
212
|
-
if (!pathPrefix) {
|
|
213
|
-
return entries;
|
|
214
|
-
}
|
|
215
|
-
const parts = pathPrefix.split("/").filter(Boolean);
|
|
216
|
-
let current = entries;
|
|
217
|
-
for (let index = 0; index < parts.length; index += 1) {
|
|
218
|
-
const part = parts[index];
|
|
219
|
-
const file = current.find((entry) => typeof entry === "object" &&
|
|
220
|
-
entry !== null &&
|
|
221
|
-
"type" in entry &&
|
|
222
|
-
"name" in entry &&
|
|
223
|
-
"path" in entry &&
|
|
224
|
-
entry.type === "file" &&
|
|
225
|
-
entry.name === part);
|
|
226
|
-
if (file) {
|
|
227
|
-
return index === parts.length - 1 ? [file] : [];
|
|
228
|
-
}
|
|
229
|
-
const dir = current.find((entry) => typeof entry === "object" &&
|
|
230
|
-
entry !== null &&
|
|
231
|
-
"type" in entry &&
|
|
232
|
-
"name" in entry &&
|
|
233
|
-
entry.type === "directory" &&
|
|
234
|
-
entry.name === part);
|
|
235
|
-
if (!dir) {
|
|
236
|
-
return [];
|
|
237
|
-
}
|
|
238
|
-
current = dir.children ?? [];
|
|
239
|
-
}
|
|
240
|
-
return current;
|
|
241
|
-
}
|
|
242
159
|
function registerStructureCommand(program) {
|
|
243
160
|
program
|
|
244
161
|
.command("structure")
|
|
@@ -248,12 +165,11 @@ function registerStructureCommand(program) {
|
|
|
248
165
|
.option("--kind <string>", "filter symbols by kind")
|
|
249
166
|
.option("--max-depth <number>", "limit directory traversal depth in the rendered tree")
|
|
250
167
|
.option("--max-files <number>", "limit number of files shown in output")
|
|
251
|
-
.option("--
|
|
168
|
+
.option("--include-internal", "include non-exported symbols (methods, private members)")
|
|
252
169
|
.action(async (options) => {
|
|
253
170
|
const resolvedProjectPath = process.cwd();
|
|
254
171
|
const dataDir = node_path_1.default.join(resolvedProjectPath, ".indexer-cli");
|
|
255
172
|
const dbPath = node_path_1.default.join(dataDir, "db.sqlite");
|
|
256
|
-
const isJson = (0, output_mode_js_1.isJsonOutput)(options);
|
|
257
173
|
(0, logger_js_1.initLogger)(dataDir);
|
|
258
174
|
config_js_1.config.load(dataDir);
|
|
259
175
|
const metadata = new sqlite_js_1.SqliteMetadataStore(dbPath);
|
|
@@ -263,7 +179,7 @@ function registerStructureCommand(program) {
|
|
|
263
179
|
const fileCounter = maxFiles !== undefined ? { printed: 0, hidden: 0 } : undefined;
|
|
264
180
|
await metadata.initialize();
|
|
265
181
|
await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
|
|
266
|
-
silent:
|
|
182
|
+
silent: false,
|
|
267
183
|
});
|
|
268
184
|
const snapshot = await metadata.getLatestCompletedSnapshot(types_js_1.DEFAULT_PROJECT_ID);
|
|
269
185
|
if (!snapshot) {
|
|
@@ -282,46 +198,29 @@ function registerStructureCommand(program) {
|
|
|
282
198
|
!symbol.filePath.startsWith(options.pathPrefix)) {
|
|
283
199
|
continue;
|
|
284
200
|
}
|
|
201
|
+
if (!options?.includeInternal && !symbol.exported) {
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
285
204
|
const current = symbolsByFile.get(symbol.filePath) ?? [];
|
|
286
205
|
current.push(symbol);
|
|
287
206
|
symbolsByFile.set(symbol.filePath, current);
|
|
288
207
|
}
|
|
289
208
|
if (files.length === 0) {
|
|
290
|
-
|
|
291
|
-
console.log("[]");
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
console.log("No indexed files found for the requested filters.");
|
|
295
|
-
}
|
|
209
|
+
console.log("No indexed files found for the requested filters.");
|
|
296
210
|
return;
|
|
297
211
|
}
|
|
298
212
|
const root = createNode();
|
|
299
213
|
for (const file of files) {
|
|
300
214
|
insertPath(root, file.path);
|
|
301
215
|
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
if (fileCounter && fileCounter.hidden > 0) {
|
|
306
|
-
tree.push({ type: "truncated", hiddenFiles: fileCounter.hidden });
|
|
307
|
-
}
|
|
308
|
-
console.log(JSON.stringify(tree, null, 2));
|
|
309
|
-
}
|
|
310
|
-
else {
|
|
311
|
-
printTree(root, "", "", symbolsByFile, 0, maxDepth, fileCounter, maxFiles);
|
|
312
|
-
if (fileCounter && fileCounter.hidden > 0) {
|
|
313
|
-
console.log(`\n... and ${fileCounter.hidden} more files (use --max-files to see more)`);
|
|
314
|
-
}
|
|
216
|
+
printTree(root, "", "", symbolsByFile, 0, maxDepth, fileCounter, maxFiles, options?.includeInternal);
|
|
217
|
+
if (fileCounter && fileCounter.hidden > 0) {
|
|
218
|
+
console.log(`\n... and ${fileCounter.hidden} more files (use --max-files to see more)`);
|
|
315
219
|
}
|
|
316
220
|
}
|
|
317
221
|
catch (error) {
|
|
318
222
|
const message = error instanceof Error ? error.message : String(error);
|
|
319
|
-
|
|
320
|
-
console.error(JSON.stringify({ error: message }, null, 2));
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
323
|
-
console.error(`Structure command failed: ${message}`);
|
|
324
|
-
}
|
|
223
|
+
console.error(`Structure command failed: ${message}`);
|
|
325
224
|
process.exitCode = 1;
|
|
326
225
|
}
|
|
327
226
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../src/cli/commands/structure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../src/cli/commands/structure.ts"],"names":[],"mappings":"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"}
|