indexer-cli 0.12.2 → 0.12.3
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 +29 -9
- package/dist/cli/commands/architecture.js +143 -21
- package/dist/cli/commands/architecture.js.map +1 -1
- package/dist/cli/commands/deps.js +120 -25
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/ensure-indexed.d.ts +16 -1
- package/dist/cli/commands/ensure-indexed.js +28 -3
- package/dist/cli/commands/ensure-indexed.js.map +1 -1
- package/dist/cli/commands/explain.js +81 -2
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/search.js +89 -11
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/skills.js +16 -7
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/structure.js +36 -1
- package/dist/cli/commands/structure.js.map +1 -1
- package/dist/cli/format/compact.d.ts +2 -0
- package/dist/cli/format/compact.js +32 -0
- package/dist/cli/format/compact.js.map +1 -0
- package/dist/cli/test-hints.d.ts +17 -0
- package/dist/cli/test-hints.js +132 -0
- package/dist/cli/test-hints.js.map +1 -0
- package/dist/core/skills-version.d.ts +1 -1
- package/dist/core/skills-version.js +1 -1
- package/dist/engine/searcher.d.ts +8 -0
- package/dist/engine/searcher.js +125 -7
- package/dist/engine/searcher.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -156,10 +156,19 @@ project root. If no `.indexer-cli/` data exists yet, it stops and tells you to r
|
|
|
156
156
|
|--------------------------|---------|--------------------------------------------------------------------------------------------------------------|
|
|
157
157
|
| `--max-files <number>` | 3 | Number of results to return |
|
|
158
158
|
| `--path-prefix <string>` | — | Limit results to files under this path |
|
|
159
|
-
| `--chunk-types <string>` | — | Comma-separated filter: `full_file`, `imports`, `preamble`, `declaration`, `module_section`, `impl`, `types` |
|
|
159
|
+
| `--chunk-types <string>` | — | Comma-separated filter. Types: `full_file`, `imports`, `preamble`, `declaration`, `module_section`, `impl`, `types`; aliases: `api`, `impl`, `tests`, `imports` |
|
|
160
|
+
| `--mode <mode>` | hybrid | Ranking mode: `hybrid`, `semantic`, `lexical`, or `symbol` |
|
|
160
161
|
| `--include-imports` | — | Include `imports`/`preamble` chunks (excluded by default) |
|
|
161
162
|
| `--min-score <number>` | 0.45 | Filter out results below this score (0..1) |
|
|
162
163
|
| `--include-content` | — | Include matched code content in output (omitted by default to save tokens) |
|
|
164
|
+
| `--dedupe-file` | — | Return at most one result per file |
|
|
165
|
+
| `--dedupe-symbol` | — | Return at most one result per file/symbol pair |
|
|
166
|
+
| `--cluster` | — | Group nearby similar chunks and show one representative |
|
|
167
|
+
| `--exclude-tests` | — | Exclude test files from search results |
|
|
168
|
+
| `--include-tests` | — | Include test files without the default test penalty |
|
|
169
|
+
|
|
170
|
+
`idx search` prints compact diagnostics when a query is likely too broad, a path prefix is missing, or a high
|
|
171
|
+
`--min-score` filters every result. Example: `WARN no-results min-score=0.99 suggestion='try --min-score 0.55'`.
|
|
163
172
|
|
|
164
173
|
### `idx structure`
|
|
165
174
|
|
|
@@ -173,11 +182,12 @@ files if needed.
|
|
|
173
182
|
| `--max-depth <number>` | Limit directory traversal depth in the rendered tree |
|
|
174
183
|
| `--max-files <number>` | Limit number of files shown in output |
|
|
175
184
|
| `--no-tests` | Exclude test files from output |
|
|
185
|
+
| `--include-tests-summary` | Show nearest tests for listed source files |
|
|
176
186
|
|
|
177
187
|
### `idx architecture`
|
|
178
188
|
|
|
179
|
-
Print an architecture snapshot for the current working directory: file statistics, detected entry points,
|
|
180
|
-
|
|
189
|
+
Print an architecture snapshot for the current working directory: file statistics, detected entry points, a dependency
|
|
190
|
+
graph, actionable cycle causes, classified unresolved dependencies, and up to three suggested actions.
|
|
181
191
|
|
|
182
192
|
| Option | Description |
|
|
183
193
|
|--------------------------|----------------------------------------|
|
|
@@ -197,17 +207,27 @@ specific function, class, or type does and how it is used.
|
|
|
197
207
|
When auto-root detection is used, symbol paths such as `src/payments/processor.ts::PaymentProcessor` are still resolved
|
|
198
208
|
relative to the project root, not the subdirectory where you ran the command.
|
|
199
209
|
|
|
210
|
+
| Option | Default | Description |
|
|
211
|
+
|--------------------------|---------|----------------------------------------------|
|
|
212
|
+
| `--path-prefix <string>` | — | Limit symbol lookup to files under this path |
|
|
213
|
+
| `--include-fixtures` | — | Include fixture/vendor paths in lookup |
|
|
214
|
+
| `--include-body` | — | Include a compact body preview |
|
|
215
|
+
| `--body-lines <number>` | 40 | Number of body preview lines, from 1 to 200 |
|
|
216
|
+
| `--signature-only` | — | Omit dependency context, tests, and body hints |
|
|
217
|
+
|
|
200
218
|
### `idx deps <path>`
|
|
201
219
|
|
|
202
|
-
Show
|
|
203
|
-
of changes and understanding dependency chains.
|
|
220
|
+
Show module import dependencies for a path. The default text output labels imported-by/imports first and keeps
|
|
221
|
+
`Callers`/`Callees` aliases for compatibility. Useful for tracing impact of changes and understanding dependency chains.
|
|
204
222
|
|
|
205
223
|
Path arguments stay project-root-relative even when you invoke the command from a nested subdirectory.
|
|
206
224
|
|
|
207
|
-
| Option
|
|
208
|
-
|
|
209
|
-
| `--direction <dir>` | both
|
|
210
|
-
| `--depth <n>`
|
|
225
|
+
| Option | Default | Description |
|
|
226
|
+
|------------------|---------|------------------------------------------------------------|
|
|
227
|
+
| `--direction <dir>` | both | `callers`/imported-by, `callees`/imports, or `both` |
|
|
228
|
+
| `--depth <n>` | 1 | Traversal depth, with transitive edges marked as `d=<n>` |
|
|
229
|
+
| `--show-edges` | — | Show the import specifier/kind that created each edge |
|
|
230
|
+
| `--tests` | — | Show nearest/impacted tests and a suggested verification command |
|
|
211
231
|
|
|
212
232
|
### `idx uninstall`
|
|
213
233
|
|
|
@@ -11,6 +11,7 @@ const types_js_1 = require("../../core/types.js");
|
|
|
11
11
|
const architecture_js_1 = require("../../engine/architecture.js");
|
|
12
12
|
const sqlite_js_1 = require("../../storage/sqlite.js");
|
|
13
13
|
const ensure_indexed_js_1 = require("./ensure-indexed.js");
|
|
14
|
+
const compact_js_1 = require("../format/compact.js");
|
|
14
15
|
const path_prefix_js_1 = require("./path-prefix.js");
|
|
15
16
|
const project_root_js_1 = require("../project-root.js");
|
|
16
17
|
function summarizeExternalDependencies(values) {
|
|
@@ -133,6 +134,116 @@ function renderDependencyEdge(key, values, localPrefix) {
|
|
|
133
134
|
const rhs = values.map((v) => relativePath(v, localPrefix));
|
|
134
135
|
return `${relativePath(key, localPrefix)} -> ${rhs.join(", ")}`;
|
|
135
136
|
}
|
|
137
|
+
function normalizeFilePath(value) {
|
|
138
|
+
return value.replace(/\\/g, "/");
|
|
139
|
+
}
|
|
140
|
+
function getModuleKey(filePath) {
|
|
141
|
+
const parts = normalizeFilePath(filePath).split("/");
|
|
142
|
+
if (parts.length === 1)
|
|
143
|
+
return "root";
|
|
144
|
+
const rootGroup = parts[0];
|
|
145
|
+
if (["packages", "services", "apps", "libs", "modules"].includes(rootGroup) &&
|
|
146
|
+
parts[1]) {
|
|
147
|
+
return `${rootGroup}/${parts[1]}`;
|
|
148
|
+
}
|
|
149
|
+
if (parts.length >= 2)
|
|
150
|
+
return `${parts[0]}/${parts[1]}`;
|
|
151
|
+
return rootGroup;
|
|
152
|
+
}
|
|
153
|
+
function classifyUnresolvedDependency(specifier) {
|
|
154
|
+
const spec = specifier.trim();
|
|
155
|
+
const normalized = normalizeFilePath(spec);
|
|
156
|
+
const lower = normalized.toLowerCase();
|
|
157
|
+
if (/\b(dist|build|out|target|bin)\b/.test(lower)) {
|
|
158
|
+
return { kind: "build-output", severity: "low" };
|
|
159
|
+
}
|
|
160
|
+
if (/\b(generated|gen|proto)\b/.test(lower)) {
|
|
161
|
+
return { kind: "generated-file", severity: "low" };
|
|
162
|
+
}
|
|
163
|
+
if (/^[@a-zA-Z0-9_-]+(?:\/[^./][^/]*)?$/.test(spec)) {
|
|
164
|
+
return { kind: "external-package", severity: "low" };
|
|
165
|
+
}
|
|
166
|
+
if (spec.startsWith("@") || spec.startsWith("~") || spec.startsWith("#")) {
|
|
167
|
+
return { kind: "path-alias", severity: "med" };
|
|
168
|
+
}
|
|
169
|
+
if (/^\.\.?\//.test(spec) && /\.(js|jsx|mjs|cjs)$/.test(lower)) {
|
|
170
|
+
return { kind: "generated-output-missing", severity: "med" };
|
|
171
|
+
}
|
|
172
|
+
if (/^\.\.?\//.test(spec)) {
|
|
173
|
+
return { kind: "missing-source", severity: "med" };
|
|
174
|
+
}
|
|
175
|
+
return { kind: "false-positive-possible", severity: "low" };
|
|
176
|
+
}
|
|
177
|
+
function buildInternalEdgeIndex(dependencies) {
|
|
178
|
+
const edges = new Map();
|
|
179
|
+
for (const dependency of dependencies) {
|
|
180
|
+
if (dependency.dependencyType !== "internal" || !dependency.toPath)
|
|
181
|
+
continue;
|
|
182
|
+
const fromModule = getModuleKey(dependency.fromPath);
|
|
183
|
+
const toModule = getModuleKey(dependency.toPath);
|
|
184
|
+
const key = `${fromModule}\0${toModule}`;
|
|
185
|
+
if (!edges.has(key))
|
|
186
|
+
edges.set(key, dependency);
|
|
187
|
+
}
|
|
188
|
+
return edges;
|
|
189
|
+
}
|
|
190
|
+
function severityForCycle(from, to) {
|
|
191
|
+
const pair = `${from} ${to}`;
|
|
192
|
+
if (/src\/core|src\/storage|core|storage/.test(pair))
|
|
193
|
+
return "high";
|
|
194
|
+
return "med";
|
|
195
|
+
}
|
|
196
|
+
function suggestedCycleFix(from, to) {
|
|
197
|
+
return `move shared helpers/types between ${from} and ${to} into a lower-level module`;
|
|
198
|
+
}
|
|
199
|
+
function findCycleDetails(architecture, dependencies = []) {
|
|
200
|
+
const internalDependencies = architecture.dependency_map?.internal ?? {};
|
|
201
|
+
const edgeIndex = buildInternalEdgeIndex(dependencies);
|
|
202
|
+
const cycles = [];
|
|
203
|
+
const seenCycles = new Set();
|
|
204
|
+
for (const [from, tos] of Object.entries(internalDependencies)) {
|
|
205
|
+
for (const to of tos) {
|
|
206
|
+
const pair = [from, to].sort().join(" <-> ");
|
|
207
|
+
if (seenCycles.has(pair))
|
|
208
|
+
continue;
|
|
209
|
+
if (!internalDependencies[to]?.includes(from))
|
|
210
|
+
continue;
|
|
211
|
+
cycles.push({
|
|
212
|
+
from,
|
|
213
|
+
to,
|
|
214
|
+
severity: severityForCycle(from, to),
|
|
215
|
+
forward: edgeIndex.get(`${from}\0${to}`),
|
|
216
|
+
backward: edgeIndex.get(`${to}\0${from}`),
|
|
217
|
+
fix: suggestedCycleFix(from, to),
|
|
218
|
+
});
|
|
219
|
+
seenCycles.add(pair);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return cycles.sort((a, b) => `${a.from} ${a.to}`.localeCompare(`${b.from} ${b.to}`));
|
|
223
|
+
}
|
|
224
|
+
function formatCycleEdge(edge, from, to) {
|
|
225
|
+
if (!edge?.toPath)
|
|
226
|
+
return ` ${from} -> ${to}`;
|
|
227
|
+
return ` ${edge.fromPath} -> ${edge.toPath} via=${edge.toSpecifier}`;
|
|
228
|
+
}
|
|
229
|
+
function collectArchitectureActions(cycles, unresolvedEntries) {
|
|
230
|
+
const actions = [];
|
|
231
|
+
const highCycle = cycles.find((cycle) => cycle.severity === "high") ?? cycles[0];
|
|
232
|
+
if (highCycle) {
|
|
233
|
+
actions.push(`Break ${highCycle.from} <-> ${highCycle.to}: ${highCycle.fix}.`);
|
|
234
|
+
}
|
|
235
|
+
const firstUnresolved = unresolvedEntries.find(([, values]) => values.length > 0);
|
|
236
|
+
if (firstUnresolved) {
|
|
237
|
+
const [from, values] = firstUnresolved;
|
|
238
|
+
const first = values[0];
|
|
239
|
+
const classified = classifyUnresolvedDependency(first);
|
|
240
|
+
actions.push(`Verify unresolved ${from} -> ${first} kind=${classified.kind}.`);
|
|
241
|
+
}
|
|
242
|
+
if (cycles.length > 0) {
|
|
243
|
+
actions.push("Add architecture rules for intended one-way module boundaries.");
|
|
244
|
+
}
|
|
245
|
+
return actions.slice(0, 3);
|
|
246
|
+
}
|
|
136
247
|
function renderExternalCount(key, values, localPrefix) {
|
|
137
248
|
const count = values[0];
|
|
138
249
|
const label = relativePath(key, localPrefix);
|
|
@@ -152,7 +263,7 @@ function printExternalSection(label, entries) {
|
|
|
152
263
|
console.log(line);
|
|
153
264
|
}
|
|
154
265
|
}
|
|
155
|
-
function formatPlain(architecture) {
|
|
266
|
+
function formatPlain(architecture, dependencies = []) {
|
|
156
267
|
console.log("File stats by language");
|
|
157
268
|
const fileEntries = Object.entries(architecture.file_stats ?? {}).sort((a, b) => a[0].localeCompare(b[0]));
|
|
158
269
|
if (fileEntries.length === 0) {
|
|
@@ -175,32 +286,37 @@ function formatPlain(architecture) {
|
|
|
175
286
|
}
|
|
176
287
|
const internalEntries = Object.entries(architecture.dependency_map?.internal ?? {}).sort((a, b) => a[0].localeCompare(b[0]));
|
|
177
288
|
printDependencySection("Module dependency graph", internalEntries);
|
|
178
|
-
const
|
|
179
|
-
const cycles = [];
|
|
180
|
-
const seenCycles = new Set();
|
|
181
|
-
for (const [from, tos] of Object.entries(internalDependencies)) {
|
|
182
|
-
for (const to of tos) {
|
|
183
|
-
const pair = [from, to].sort().join(" <-> ");
|
|
184
|
-
if (seenCycles.has(pair)) {
|
|
185
|
-
continue;
|
|
186
|
-
}
|
|
187
|
-
if (internalDependencies[to]?.includes(from)) {
|
|
188
|
-
cycles.push(pair);
|
|
189
|
-
seenCycles.add(pair);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
289
|
+
const cycles = findCycleDetails(architecture, dependencies);
|
|
193
290
|
if (cycles.length > 0) {
|
|
194
291
|
console.log("\n⚠ Cyclic dependencies detected:");
|
|
195
|
-
for (const cycle of cycles
|
|
196
|
-
console.log(`
|
|
292
|
+
for (const cycle of cycles) {
|
|
293
|
+
console.log(`CYCLE sev=${cycle.severity} ${cycle.from} <-> ${cycle.to}`);
|
|
294
|
+
console.log(formatCycleEdge(cycle.forward, cycle.from, cycle.to));
|
|
295
|
+
console.log(formatCycleEdge(cycle.backward, cycle.to, cycle.from));
|
|
296
|
+
console.log(` fix=${cycle.fix}`);
|
|
197
297
|
}
|
|
198
298
|
}
|
|
199
299
|
const externalSummary = summarizeExternalDependencies(architecture.dependency_map?.external ?? {});
|
|
200
300
|
const extEntries = Object.entries(externalSummary).sort((a, b) => a[0].localeCompare(b[0]));
|
|
201
301
|
printExternalSection("External dependencies summary", extEntries);
|
|
202
302
|
const unresolvedEntries = Object.entries(architecture.dependency_map?.unresolved ?? {}).sort((a, b) => a[0].localeCompare(b[0]));
|
|
203
|
-
|
|
303
|
+
console.log("Unresolved dependencies");
|
|
304
|
+
if (unresolvedEntries.length === 0) {
|
|
305
|
+
console.log(" none");
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
for (const [from, values] of unresolvedEntries) {
|
|
309
|
+
for (const value of values) {
|
|
310
|
+
const classified = classifyUnresolvedDependency(value);
|
|
311
|
+
console.log(`UNRESOLVED sev=${classified.severity} ${from} -> ${value} kind=${classified.kind}`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
const actions = collectArchitectureActions(cycles, unresolvedEntries);
|
|
316
|
+
if (actions.length > 0) {
|
|
317
|
+
console.log("\nActions:");
|
|
318
|
+
actions.forEach((action, index) => console.log(`${index + 1}. ${action}`));
|
|
319
|
+
}
|
|
204
320
|
}
|
|
205
321
|
function registerArchitectureCommand(program) {
|
|
206
322
|
program
|
|
@@ -230,9 +346,14 @@ function registerArchitectureCommand(program) {
|
|
|
230
346
|
const metadata = new sqlite_js_1.SqliteMetadataStore(dbPath);
|
|
231
347
|
try {
|
|
232
348
|
await metadata.initialize();
|
|
233
|
-
await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
|
|
349
|
+
const indexResult = await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
|
|
234
350
|
silent: !process.stderr.isTTY,
|
|
235
351
|
});
|
|
352
|
+
console.log((0, compact_js_1.formatAutoIndexResult)(indexResult));
|
|
353
|
+
if (indexResult.status === "failed") {
|
|
354
|
+
process.exitCode = 1;
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
236
357
|
const snapshot = await metadata.getLatestCompletedSnapshot(types_js_1.DEFAULT_PROJECT_ID);
|
|
237
358
|
if (!snapshot) {
|
|
238
359
|
throw new Error("Auto-indexing did not produce a completed snapshot.");
|
|
@@ -287,7 +408,8 @@ function registerArchitectureCommand(program) {
|
|
|
287
408
|
};
|
|
288
409
|
}
|
|
289
410
|
}
|
|
290
|
-
|
|
411
|
+
const dependencies = await metadata.listDependencies(types_js_1.DEFAULT_PROJECT_ID, snapshot.id);
|
|
412
|
+
formatPlain(visibleArchitecture, dependencies);
|
|
291
413
|
}
|
|
292
414
|
catch (error) {
|
|
293
415
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../../src/cli/commands/architecture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../../src/cli/commands/architecture.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,72 @@ 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 ensure_indexed_js_1 = require("./ensure-indexed.js");
|
|
13
|
+
const compact_js_1 = require("../format/compact.js");
|
|
14
|
+
const test_hints_js_1 = require("../test-hints.js");
|
|
13
15
|
const project_root_js_1 = require("../project-root.js");
|
|
16
|
+
function normalizeDirection(value) {
|
|
17
|
+
if (value === "callers" || value === "callees" || value === "both") {
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`Invalid --direction "${value}". Expected callers, callees, or both.`);
|
|
21
|
+
}
|
|
22
|
+
function compactSpecifier(value) {
|
|
23
|
+
return value.replace(/\s+/g, " ").trim();
|
|
24
|
+
}
|
|
25
|
+
function formatImportEdge(edge, prefix, showEdges) {
|
|
26
|
+
const depth = edge.depth > 1 ? ` d=${edge.depth}` : "";
|
|
27
|
+
if (!showEdges || !edge.via)
|
|
28
|
+
return `${prefix} ${edge.path}${depth}`;
|
|
29
|
+
const via = compactSpecifier(edge.via);
|
|
30
|
+
const kind = edge.kind ? ` kind=${edge.kind}` : "";
|
|
31
|
+
return `${prefix} ${edge.path}${depth} via=${via}${kind}`;
|
|
32
|
+
}
|
|
33
|
+
function sectionCountLabel(edges, depth) {
|
|
34
|
+
if (depth <= 1)
|
|
35
|
+
return `direct=${edges.length}`;
|
|
36
|
+
const direct = edges.filter((edge) => edge.depth === 1).length;
|
|
37
|
+
return `direct=${direct} total=${edges.length}`;
|
|
38
|
+
}
|
|
39
|
+
function riskLevel(importedBy, imports) {
|
|
40
|
+
if (importedBy >= 5 || imports >= 12)
|
|
41
|
+
return "high";
|
|
42
|
+
if (importedBy >= 2 || imports >= 6)
|
|
43
|
+
return "med";
|
|
44
|
+
return "low";
|
|
45
|
+
}
|
|
46
|
+
function appendUniqueEdge(edges, seen, edge) {
|
|
47
|
+
const key = `${edge.path}\0${edge.depth}`;
|
|
48
|
+
if (seen.has(key))
|
|
49
|
+
return;
|
|
50
|
+
seen.add(key);
|
|
51
|
+
edges.push(edge);
|
|
52
|
+
}
|
|
53
|
+
function toImportedByEdge(dep, depth) {
|
|
54
|
+
return {
|
|
55
|
+
path: dep.fromPath,
|
|
56
|
+
via: dep.toSpecifier,
|
|
57
|
+
kind: dep.kind,
|
|
58
|
+
depth,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function toImportsEdge(dep, depth) {
|
|
62
|
+
if (dep.dependencyType !== "internal" || !dep.toPath)
|
|
63
|
+
return null;
|
|
64
|
+
return {
|
|
65
|
+
path: dep.toPath,
|
|
66
|
+
via: dep.toSpecifier,
|
|
67
|
+
kind: dep.kind,
|
|
68
|
+
depth,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
14
71
|
function registerDepsCommand(program) {
|
|
15
72
|
program
|
|
16
73
|
.command("deps <path>")
|
|
17
|
-
.description("Show
|
|
18
|
-
.option("--direction <dir>", "callers
|
|
74
|
+
.description("Show module import dependencies for a path")
|
|
75
|
+
.option("--direction <dir>", "callers/imported-by, callees/imports, or both", "both")
|
|
19
76
|
.option("--depth <n>", "traversal depth (default: 1)", "1")
|
|
77
|
+
.option("--show-edges", "show import specifier reasons for dependency edges")
|
|
78
|
+
.option("--tests", "show nearest/impacted tests and suggested verification")
|
|
20
79
|
.action(async (targetPath, options) => {
|
|
21
80
|
let resolvedProjectPath;
|
|
22
81
|
try {
|
|
@@ -39,15 +98,22 @@ function registerDepsCommand(program) {
|
|
|
39
98
|
const metadata = new sqlite_js_1.SqliteMetadataStore(dbPath);
|
|
40
99
|
try {
|
|
41
100
|
await metadata.initialize();
|
|
42
|
-
await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
|
|
101
|
+
const indexResult = await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
|
|
43
102
|
silent: !process.stderr.isTTY,
|
|
44
103
|
});
|
|
104
|
+
console.log((0, compact_js_1.formatAutoIndexResult)(indexResult));
|
|
105
|
+
if (indexResult.status === "failed") {
|
|
106
|
+
process.exitCode = 1;
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
45
109
|
const snapshot = await metadata.getLatestCompletedSnapshot(types_js_1.DEFAULT_PROJECT_ID);
|
|
46
110
|
if (!snapshot) {
|
|
47
111
|
throw new Error("No completed snapshot found.");
|
|
48
112
|
}
|
|
49
|
-
const direction = options?.direction ?? "both";
|
|
113
|
+
const direction = normalizeDirection(options?.direction ?? "both");
|
|
50
114
|
const depth = Math.max(1, Math.min(5, parseInt(options?.depth ?? "1", 10)));
|
|
115
|
+
const showEdges = options?.showEdges === true;
|
|
116
|
+
const includeTests = options?.tests === true;
|
|
51
117
|
// Normalize path (strip leading ./)
|
|
52
118
|
const normalizedPath = targetPath.replace(/^\.\//, "");
|
|
53
119
|
const matchedFiles = await metadata.listFiles(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, { pathPrefix: normalizedPath });
|
|
@@ -57,13 +123,14 @@ function registerDepsCommand(program) {
|
|
|
57
123
|
const seedPaths = matchedFiles.map((file) => file.path);
|
|
58
124
|
const result = {
|
|
59
125
|
path: normalizedPath,
|
|
60
|
-
|
|
61
|
-
|
|
126
|
+
importedBy: [],
|
|
127
|
+
imports: [],
|
|
62
128
|
};
|
|
63
129
|
// BFS traversal
|
|
64
130
|
if (direction === "callers" || direction === "both") {
|
|
65
131
|
const visited = new Set();
|
|
66
132
|
const queue = [...seedPaths];
|
|
133
|
+
const seenEdges = new Set();
|
|
67
134
|
for (let d = 0; d < depth && queue.length > 0; d++) {
|
|
68
135
|
const next = [];
|
|
69
136
|
for (const p of queue) {
|
|
@@ -73,18 +140,19 @@ function registerDepsCommand(program) {
|
|
|
73
140
|
const dependents = await metadata.getDependents(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, p);
|
|
74
141
|
for (const dep of dependents) {
|
|
75
142
|
if (!visited.has(dep.fromPath)) {
|
|
76
|
-
result.
|
|
143
|
+
appendUniqueEdge(result.importedBy, seenEdges, toImportedByEdge(dep, d + 1));
|
|
77
144
|
next.push(dep.fromPath);
|
|
78
145
|
}
|
|
79
146
|
}
|
|
80
147
|
}
|
|
81
148
|
queue.splice(0, queue.length, ...next);
|
|
82
149
|
}
|
|
83
|
-
result.
|
|
150
|
+
result.importedBy.sort((a, b) => a.path.localeCompare(b.path));
|
|
84
151
|
}
|
|
85
152
|
if (direction === "callees" || direction === "both") {
|
|
86
153
|
const visited = new Set();
|
|
87
154
|
const queue = [...seedPaths];
|
|
155
|
+
const seenEdges = new Set();
|
|
88
156
|
for (let d = 0; d < depth && queue.length > 0; d++) {
|
|
89
157
|
const next = [];
|
|
90
158
|
for (const p of queue) {
|
|
@@ -93,41 +161,68 @@ function registerDepsCommand(program) {
|
|
|
93
161
|
visited.add(p);
|
|
94
162
|
const deps = await metadata.listDependencies(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, p);
|
|
95
163
|
for (const dep of deps) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
164
|
+
const edge = toImportsEdge(dep, d + 1);
|
|
165
|
+
if (edge && !visited.has(edge.path)) {
|
|
166
|
+
appendUniqueEdge(result.imports, seenEdges, edge);
|
|
167
|
+
next.push(edge.path);
|
|
101
168
|
}
|
|
102
169
|
}
|
|
103
170
|
}
|
|
104
171
|
queue.splice(0, queue.length, ...next);
|
|
105
172
|
}
|
|
106
|
-
result.
|
|
173
|
+
result.imports.sort((a, b) => a.path.localeCompare(b.path));
|
|
107
174
|
}
|
|
108
|
-
console.log(`
|
|
175
|
+
console.log(`M ${result.path} mode=module-imports`);
|
|
109
176
|
if (direction === "callers" || direction === "both") {
|
|
110
|
-
if (result.
|
|
111
|
-
console.log("\
|
|
177
|
+
if (result.importedBy.length === 0) {
|
|
178
|
+
console.log("\nimported-by (Callers): none");
|
|
112
179
|
}
|
|
113
180
|
else {
|
|
114
|
-
console.log(`\
|
|
115
|
-
for (const caller of result.
|
|
116
|
-
console.log(
|
|
181
|
+
console.log(`\nimported-by (Callers) ${sectionCountLabel(result.importedBy, depth)}:`);
|
|
182
|
+
for (const caller of result.importedBy) {
|
|
183
|
+
console.log(formatImportEdge(caller, "<-", showEdges));
|
|
117
184
|
}
|
|
118
185
|
}
|
|
119
186
|
}
|
|
120
187
|
if (direction === "callees" || direction === "both") {
|
|
121
|
-
if (result.
|
|
122
|
-
console.log("\
|
|
188
|
+
if (result.imports.length === 0) {
|
|
189
|
+
console.log("\nimports (Callees): none");
|
|
123
190
|
}
|
|
124
191
|
else {
|
|
125
|
-
console.log(`\
|
|
126
|
-
for (const callee of result.
|
|
127
|
-
console.log(
|
|
192
|
+
console.log(`\nimports (Callees) ${sectionCountLabel(result.imports, depth)}:`);
|
|
193
|
+
for (const callee of result.imports) {
|
|
194
|
+
console.log(formatImportEdge(callee, "->", showEdges));
|
|
128
195
|
}
|
|
129
196
|
}
|
|
130
197
|
}
|
|
198
|
+
const risk = riskLevel(result.importedBy.length, result.imports.length);
|
|
199
|
+
console.log(`\nRisk: ${risk} imported-by=${result.importedBy.length} imports=${result.imports.length} mode=module-imports`);
|
|
200
|
+
if (includeTests) {
|
|
201
|
+
const [allFiles, allDependencies] = await Promise.all([
|
|
202
|
+
metadata.listFiles(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, {}),
|
|
203
|
+
metadata.listDependencies(types_js_1.DEFAULT_PROJECT_ID, snapshot.id),
|
|
204
|
+
]);
|
|
205
|
+
const testHints = (0, test_hints_js_1.findNearestTests)({
|
|
206
|
+
targetPaths: seedPaths,
|
|
207
|
+
files: allFiles,
|
|
208
|
+
dependencies: allDependencies,
|
|
209
|
+
maxTests: 3,
|
|
210
|
+
});
|
|
211
|
+
const testLines = (0, test_hints_js_1.formatTestHints)(testHints);
|
|
212
|
+
if (testLines.length > 0) {
|
|
213
|
+
console.log("");
|
|
214
|
+
for (const line of testLines) {
|
|
215
|
+
console.log(line);
|
|
216
|
+
}
|
|
217
|
+
const verify = (0, test_hints_js_1.formatSuggestedVerification)(testHints);
|
|
218
|
+
if (verify)
|
|
219
|
+
console.log(verify);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
console.log("\nTests: none");
|
|
223
|
+
console.log("Verify: inspect package scripts");
|
|
224
|
+
}
|
|
225
|
+
}
|
|
131
226
|
}
|
|
132
227
|
catch (error) {
|
|
133
228
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":"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"}
|