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 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, and a
180
- dependency graph.
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 callers (who imports this) and callees (what this imports) for a module or symbol. Useful for tracing impact
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 | Default | Description |
208
- |---------------------|---------|---------------------------------|
209
- | `--direction <dir>` | both | `callers`, `callees`, or `both` |
210
- | `--depth <n>` | 1 | Traversal depth |
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 internalDependencies = architecture.dependency_map?.internal ?? {};
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.sort((a, b) => a.localeCompare(b))) {
196
- console.log(` ${cycle}`);
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
- printDependencySection("Unresolved dependencies", unresolvedEntries);
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
- formatPlain(visibleArchitecture);
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 callers and callees for a module or symbol")
18
- .option("--direction <dir>", "callers (who imports this), callees (what this imports), or both", "both")
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
- callers: [],
61
- callees: [],
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.callers.push(dep.fromPath);
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.callers = [...new Set(result.callers)].sort();
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
- if (dep.dependencyType === "internal" && dep.toPath) {
97
- if (!visited.has(dep.toPath)) {
98
- result.callees.push(dep.toPath);
99
- next.push(dep.toPath);
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.callees = [...new Set(result.callees)].sort();
173
+ result.imports.sort((a, b) => a.path.localeCompare(b.path));
107
174
  }
108
- console.log(`Module: ${result.path}`);
175
+ console.log(`M ${result.path} mode=module-imports`);
109
176
  if (direction === "callers" || direction === "both") {
110
- if (result.callers.length === 0) {
111
- console.log("\nCallers: none");
177
+ if (result.importedBy.length === 0) {
178
+ console.log("\nimported-by (Callers): none");
112
179
  }
113
180
  else {
114
- console.log(`\nCallers (${result.callers.length}):`);
115
- for (const caller of result.callers) {
116
- console.log(` ${caller}`);
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.callees.length === 0) {
122
- console.log("\nCallees: none");
188
+ if (result.imports.length === 0) {
189
+ console.log("\nimports (Callees): none");
123
190
  }
124
191
  else {
125
- console.log(`\nCallees (${result.callees.length}):`);
126
- for (const callee of result.callees) {
127
- console.log(` ${callee}`);
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":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../../src/cli/commands/deps.ts"],"names":[],"mappings":"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"}