indexer-cli 0.12.2 → 0.12.4

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.
@@ -13,6 +13,7 @@ const searcher_js_1 = require("../../engine/searcher.js");
13
13
  const sqlite_js_1 = require("../../storage/sqlite.js");
14
14
  const vectors_js_1 = require("../../storage/vectors.js");
15
15
  const ensure_indexed_js_1 = require("./ensure-indexed.js");
16
+ const compact_js_1 = require("../format/compact.js");
16
17
  const path_prefix_js_1 = require("./path-prefix.js");
17
18
  const project_root_js_1 = require("../project-root.js");
18
19
  function parseMinScore(input, fallback = 0.55) {
@@ -20,11 +21,62 @@ function parseMinScore(input, fallback = 0.55) {
20
21
  return fallback;
21
22
  }
22
23
  const minScore = Number.parseFloat(input);
23
- if (!Number.isFinite(minScore) || minScore < 0 || minScore > 1) {
24
- throw new Error("--min-score must be a number between 0 and 1.");
24
+ if (!Number.isFinite(minScore) || minScore < 0) {
25
+ throw new Error("--min-score must be a non-negative number.");
25
26
  }
26
27
  return minScore;
27
28
  }
29
+ function parseSearchMode(input) {
30
+ if (!input)
31
+ return "hybrid";
32
+ if (input === "hybrid" ||
33
+ input === "semantic" ||
34
+ input === "lexical" ||
35
+ input === "symbol") {
36
+ return input;
37
+ }
38
+ throw new Error("--mode must be one of: hybrid, semantic, lexical, symbol.");
39
+ }
40
+ const CHUNK_TYPE_ALIASES = {
41
+ api: ["types", "declaration", "module_section"],
42
+ impl: ["impl"],
43
+ imports: ["imports", "preamble"],
44
+ tests: ["impl", "types", "full_file"],
45
+ };
46
+ function parseChunkTypes(input) {
47
+ const rawValues = input
48
+ ?.split(",")
49
+ .map((value) => value.trim())
50
+ .filter(Boolean);
51
+ if (!rawValues || rawValues.length === 0) {
52
+ return undefined;
53
+ }
54
+ const chunkTypes = new Set();
55
+ for (const value of rawValues) {
56
+ const aliasValues = CHUNK_TYPE_ALIASES[value];
57
+ if (aliasValues) {
58
+ for (const aliasValue of aliasValues) {
59
+ chunkTypes.add(aliasValue);
60
+ }
61
+ continue;
62
+ }
63
+ chunkTypes.add(value);
64
+ }
65
+ return Array.from(chunkTypes);
66
+ }
67
+ function isLikelyBroadQuery(query) {
68
+ return query
69
+ .trim()
70
+ .split(/\s+/)
71
+ .filter(Boolean).length <= 2;
72
+ }
73
+ function formatNoResultsWarning(minScore) {
74
+ if (typeof minScore === "number" && minScore > 0.55) {
75
+ const suggestedMinScore = Math.max(0.1, Math.min(0.55, minScore - 0.2));
76
+ return `WARN no-results min-score=${minScore.toFixed(2)} suggestion='try --min-score ${suggestedMinScore.toFixed(2)}'`;
77
+ }
78
+ return "WARN no-results suggestion='try broader query or lower --min-score'";
79
+ }
28
80
  function registerSearchCommand(program) {
29
81
  program
30
82
  .command("search <query>")
@@ -32,9 +84,15 @@ function registerSearchCommand(program) {
32
84
  .option("--max-files <number>", "number of results to return", "3")
33
85
  .option("--path-prefix <string>", "limit search to files under a path prefix")
34
86
  .option("--chunk-types <string>", "comma-separated chunk types to include")
87
+ .option("--mode <mode>", "ranking mode: hybrid, semantic, lexical, or symbol", "hybrid")
35
88
  .option("--include-imports", "include imports/preamble chunks (excluded by default)")
36
- .option("--min-score <number>", "filter out results with score below the given value (0..1, default: from config)")
89
+ .option("--min-score <number>", "filter out results below the final ranking score (semantic is usually 0..1; hybrid may exceed 1; default: from config)")
37
90
  .option("--include-content", "include matched code content in output (omitted by default to save tokens)")
91
+ .option("--dedupe-file", "return at most one result per file")
92
+ .option("--dedupe-symbol", "return at most one result per file/symbol pair")
93
+ .option("--cluster", "group nearby similar chunks and show one representative")
94
+ .option("--exclude-tests", "exclude test files from results")
95
+ .option("--include-tests", "include test files without the default test penalty")
38
96
  .action(async (query, options) => {
39
97
  let resolvedProjectPath;
40
98
  try {
@@ -63,9 +121,14 @@ function registerSearchCommand(program) {
63
121
  const searchEngine = new searcher_js_1.SearchEngine(metadata, vectors, embedder, resolvedProjectPath);
64
122
  try {
65
123
  await metadata.initialize();
66
- await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
124
+ const indexResult = await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
67
125
  silent: !process.stderr.isTTY,
68
126
  });
127
+ console.log((0, compact_js_1.formatAutoIndexResult)(indexResult));
128
+ if (indexResult.status === "failed") {
129
+ process.exitCode = 1;
130
+ return;
131
+ }
69
132
  await Promise.all([vectors.initialize(), embedder.initialize()]);
70
133
  const snapshot = await metadata.getLatestCompletedSnapshot(types_js_1.DEFAULT_PROJECT_ID);
71
134
  if (!snapshot) {
@@ -73,43 +136,58 @@ function registerSearchCommand(program) {
73
136
  }
74
137
  const maxFiles = Number.parseInt(options?.maxFiles ?? "3", 10);
75
138
  const minScore = parseMinScore(options?.minScore, config_js_1.config.get("searchMinScore"));
76
- const chunkTypes = options?.chunkTypes
77
- ?.split(",")
78
- .map((value) => value.trim())
79
- .filter(Boolean);
139
+ const mode = parseSearchMode(options?.mode);
140
+ const chunkTypes = parseChunkTypes(options?.chunkTypes);
80
141
  let effectivePathPrefix = (0, path_prefix_js_1.normalizePathPrefix)(options?.pathPrefix);
81
142
  if (effectivePathPrefix) {
82
143
  const prefixFiles = await metadata.listFiles(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, { pathPrefix: effectivePathPrefix });
83
144
  if (prefixFiles.length === 0) {
84
- console.log(`Path '${effectivePathPrefix}' not found in indexed files. Showing results for the entire project instead.`);
145
+ console.log(`WARN path-prefix-missing prefix=${effectivePathPrefix} fallback=project`);
85
146
  effectivePathPrefix = undefined;
86
147
  }
87
148
  }
88
149
  const results = await searchEngine.search(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, query, {
89
150
  topK: Number.isFinite(maxFiles) && maxFiles > 0 ? maxFiles : 3,
151
+ mode,
90
152
  pathPrefix: effectivePathPrefix,
91
153
  chunkTypes,
92
154
  includeContent: options?.includeContent ?? false,
155
+ includeReasonCodes: true,
93
156
  minScore,
94
157
  includeImportChunks: options?.includeImports,
158
+ dedupeFile: options?.dedupeFile,
159
+ dedupeSymbol: options?.dedupeSymbol,
160
+ cluster: options?.cluster,
161
+ excludeTests: options?.excludeTests,
162
+ includeTests: options?.includeTests,
95
163
  });
96
164
  if (results.length === 0) {
97
- console.log("No results found.");
165
+ console.log(formatNoResultsWarning(minScore));
98
166
  return;
99
167
  }
168
+ if (isLikelyBroadQuery(query)) {
169
+ const lowConfidenceCount = results.filter((result) => result.score < 0.6).length;
170
+ if (lowConfidenceCount === results.length) {
171
+ console.log(`WARN broad-query terms=${query.trim().split(/\s+/).filter(Boolean).length} results-low-confidence suggestion='add symbol or path-prefix'`);
172
+ }
173
+ }
100
174
  for (let i = 0; i < results.length; i++) {
101
175
  const result = results[i];
102
176
  const symbolPart = result.primarySymbol
103
177
  ? `, function: ${result.primarySymbol}`
104
178
  : "";
105
- if (i > 0) {
106
- console.log("");
107
- }
108
- console.log(`${result.filePath}:${result.startLine}-${result.endLine} (score: ${result.score.toFixed(2)}${symbolPart})`);
179
+ const reasonPart = `, why=${result.reasonCode ?? mode}`;
180
+ console.log(`${result.filePath}:${result.startLine}-${result.endLine} (score: ${result.score.toFixed(2)}, rank=${mode}${symbolPart}${reasonPart})`);
109
181
  if (options?.includeContent) {
110
182
  console.log(result.content || "(content unavailable)");
111
183
  }
112
184
  }
185
+ const nextReads = results
186
+ .slice(0, 3)
187
+ .map((result) => `${result.filePath}:${result.startLine}-${result.endLine}`);
188
+ if (nextReads.length > 0) {
189
+ console.log(`Read next: ${nextReads.join(", ")}`);
190
+ }
113
191
  }
114
192
  catch (error) {
115
193
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"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"}
@@ -19,11 +19,11 @@ Pick the single cheapest command that answers the question, run it, and stop whe
19
19
 
20
20
  ## Route to one command
21
21
 
22
- - \`idx architecture\` — repo shape, entry points, module boundaries
23
- - \`idx structure\` — file trees, exported symbols, contents of a directory/module
24
- - \`idx search\` — conceptual behavior questions like "how does X work?"
22
+ - \`idx architecture\` — repo shape, entry points, module boundaries, cycle causes, unresolved dependency classes
23
+ - \`idx structure\` — file trees, exported symbols with line ranges, contents of a directory/module
24
+ - \`idx search\` — conceptual behavior questions like "how does X work?"; returns ranked file ranges plus \`why=\` reason codes
25
25
  - \`idx explain\` — a known symbol when you want indexed explanation
26
- - \`idx deps\` — callers, callees, or impact for a known path/module
26
+ - \`idx deps\` — imported-by/imports or impact for a known path/module
27
27
 
28
28
  ## Operating rules
29
29
 
@@ -31,10 +31,12 @@ Pick the single cheapest command that answers the question, run it, and stop whe
31
31
  - Prefer the cheapest route that fits the question. Only run a second idx command if the first clearly failed or left a specific gap.
32
32
  - Use \`--path-prefix\` whenever the subsystem is known, e.g. \`src/api/\`, \`src/auth/\`.
33
33
  - For \`idx structure\`, also narrow with \`--kind\` when possible.
34
+ - If \`idx structure\` prints \`TRUNC\`/\`NEXT\`, run the \`NEXT\` command only when the hidden page is still relevant.
34
35
  - For \`idx deps\`, start with \`--depth 1\`; increase only if first-hop impact is insufficient.
35
36
  - For \`idx explain\`, prefer \`file::symbol\` when the name may be ambiguous.
36
37
  - \`--include-content\` is expensive. Use it only when you need implementation detail *without* planning to \`Read\`; if you'll read files anyway, skip it.
37
38
  - After \`idx search\`, read the returned files/ranges. Do **not** follow search with \`idx explain\` on the same results.
39
+ - Use \`Read next:\` from \`idx search\` as the default next file/range selection unless you have a better reason.
38
40
  - Do **not** run \`idx explain\` as a prelude to reading a file you already know you need.
39
41
  - Do **not** chain discovery steps mechanically (\`search → explain\`, \`explain → Read\`) when direct reading is cheaper.
40
42
 
@@ -68,12 +70,24 @@ idx structure --path-prefix src/api/ --kind function
68
70
  # Good: semantic discovery for unknown behavior
69
71
  idx search "how request retries are scheduled" --path-prefix src/jobs/ --max-files 5
70
72
 
73
+ # Good: reduce noisy search output before choosing files to read
74
+ idx search "auth session token validation" --dedupe-file --exclude-tests --max-files 5
75
+
76
+ # Good: focus search on public API/type chunks
77
+ idx search "payment processor interface" --chunk-types api --mode hybrid
78
+
79
+ # Good: continue a capped structure page only if more files are needed
80
+ idx structure --path-prefix src --max-depth 2 --max-files 20 --cursor 20
81
+
71
82
  # Good: explain a known symbol, scoped to a file
72
83
  idx explain src/api/client.ts::createClient
73
84
 
74
- # Good: first-hop impact from a known module
85
+ # Good: first-hop import impact from a known module
75
86
  idx deps src/api/client.ts --direction callers --depth 1
76
87
 
88
+ # Good: inspect the import specifier behind dependency edges
89
+ idx deps src/api/client.ts --show-edges
90
+
77
91
  # Bad: semantic search for an exact identifier
78
92
  idx search "MyType" --path-prefix src/models/
79
93
 
@@ -91,10 +105,10 @@ grep "MyType" src/models/
91
105
  ## CLI reference
92
106
 
93
107
  - Architecture: \`idx architecture [--path-prefix <area>] [--include-fixtures]\`
94
- - Structure: \`idx structure [--path-prefix <area>] [--kind <kind>] [--max-depth <n>] [--max-files <n>] [--include-internal] [--include-fixtures] [--no-tests]\`
95
- - Search: \`idx search <query> [--max-files <n>] [--path-prefix <area>] [--chunk-types <types>] [--min-score <score>] [--include-content] [--include-imports]\`
96
- - Explain: \`idx explain <symbol|file::symbol> [--path-prefix <area>] [--include-fixtures]\`
97
- - Deps: \`idx deps <path> [--direction callers|callees|both] [--depth <n>]\`
108
+ - Structure: \`idx structure [--path-prefix <area>] [--kind <kind>] [--max-depth <n>] [--max-files <n>] [--cursor <n>] [--include-internal] [--include-fixtures] [--no-tests] [--include-tests-summary]\`
109
+ - Search: \`idx search <query> [--max-files <n>] [--path-prefix <area>] [--chunk-types <types|api|impl|tests|imports>] [--mode hybrid|semantic|lexical|symbol] [--min-score <score>] [--include-content] [--include-imports] [--dedupe-file] [--dedupe-symbol] [--cluster] [--exclude-tests] [--include-tests]\`
110
+ - Explain: \`idx explain <symbol|file::symbol> [--path-prefix <area>] [--include-fixtures] [--include-body] [--body-lines <n>] [--signature-only]\`
111
+ - Deps: \`idx deps <path> [--direction callers|callees|both] [--depth <n>] [--show-edges] [--tests]\`
98
112
  `,
99
113
  },
100
114
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":";;;AAMa,QAAA,gBAAgB,GAAqB;IACjD;QACC,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FV;KACC;CACD,CAAC;AAEW,QAAA,4BAA4B,GAAG;IAC3C,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;CAClB,CAAC;AAEW,QAAA,2BAA2B,GAAG,wBAAgB,CAAC,GAAG,CAC9D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAC1B,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/commands/skills.ts"],"names":[],"mappings":";;;AAMa,QAAA,gBAAgB,GAAqB;IACjD;QACC,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGV;KACC;CACD,CAAC;AAEW,QAAA,4BAA4B,GAAG;IAC3C,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;CAClB,CAAC;AAEW,QAAA,2BAA2B,GAAG,wBAAgB,CAAC,GAAG,CAC9D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAC1B,CAAC"}
@@ -12,6 +12,8 @@ const architecture_js_1 = require("../../engine/architecture.js");
12
12
  const searcher_js_1 = require("../../engine/searcher.js");
13
13
  const sqlite_js_1 = require("../../storage/sqlite.js");
14
14
  const ensure_indexed_js_1 = require("./ensure-indexed.js");
15
+ const compact_js_1 = require("../format/compact.js");
16
+ const test_hints_js_1 = require("../test-hints.js");
15
17
  const path_prefix_js_1 = require("./path-prefix.js");
16
18
  const project_root_js_1 = require("../project-root.js");
17
19
  const SYMBOL_KIND_ORDER = [
@@ -45,6 +47,16 @@ function parseMaxFiles(value) {
45
47
  }
46
48
  return parsed;
47
49
  }
50
+ function parseCursor(value) {
51
+ if (!value) {
52
+ return 0;
53
+ }
54
+ const parsed = Number.parseInt(value, 10);
55
+ if (!Number.isFinite(parsed) || parsed < 0) {
56
+ throw new Error("--cursor must be a non-negative integer");
57
+ }
58
+ return parsed;
59
+ }
48
60
  function createNode() {
49
61
  return { files: new Set(), directories: new Map() };
50
62
  }
@@ -89,6 +101,14 @@ function sortSymbols(symbols) {
89
101
  return a.name.localeCompare(b.name);
90
102
  });
91
103
  }
104
+ function formatSymbolName(symbol) {
105
+ const startLine = symbol.range.start.line;
106
+ const endLine = symbol.range.end.line;
107
+ const range = Number.isFinite(startLine) && Number.isFinite(endLine)
108
+ ? `:${startLine}-${endLine}`
109
+ : "";
110
+ return `${symbol.name}${range}`;
111
+ }
92
112
  function formatSymbols(symbols, includeInternal) {
93
113
  if (symbols.length === 0) {
94
114
  return undefined;
@@ -100,10 +120,10 @@ function formatSymbols(symbols, includeInternal) {
100
120
  const key = `${symbol.kind}:${isInternal ? "internal" : "exported"}`;
101
121
  const group = groups.get(key);
102
122
  if (group) {
103
- group.names.push(symbol.name);
123
+ group.names.push(formatSymbolName(symbol));
104
124
  continue;
105
125
  }
106
- groups.set(key, { label, names: [symbol.name] });
126
+ groups.set(key, { label, names: [formatSymbolName(symbol)] });
107
127
  }
108
128
  return Array.from(groups.values())
109
129
  .map((group) => `${group.label}: ${group.names.join(", ")}`)
@@ -193,9 +213,11 @@ function registerStructureCommand(program) {
193
213
  .option("--kind <string>", "filter symbols by kind")
194
214
  .option("--max-depth <number>", "limit directory traversal depth in the rendered tree")
195
215
  .option("--max-files <number>", "limit number of files shown in output")
216
+ .option("--cursor <number>", "continue output from a previous TRUNC cursor")
196
217
  .option("--include-fixtures", "include fixture/vendor paths in output")
197
218
  .option("--include-internal", "include non-exported symbols (methods, private members)")
198
219
  .option("--no-tests", "exclude test files from output")
220
+ .option("--include-tests-summary", "show nearest tests for listed source files")
199
221
  .action(async (options) => {
200
222
  let resolvedProjectPath;
201
223
  try {
@@ -219,11 +241,16 @@ function registerStructureCommand(program) {
219
241
  try {
220
242
  let maxDepth = parseMaxDepth(options?.maxDepth);
221
243
  const maxFiles = parseMaxFiles(options?.maxFiles);
222
- const fileCounter = maxFiles !== undefined ? { printed: 0, hidden: 0 } : undefined;
244
+ const cursor = parseCursor(options?.cursor);
223
245
  await metadata.initialize();
224
- await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
246
+ const indexResult = await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
225
247
  silent: !process.stderr.isTTY,
226
248
  });
249
+ console.log((0, compact_js_1.formatAutoIndexResult)(indexResult));
250
+ if (indexResult.status === "failed") {
251
+ process.exitCode = 1;
252
+ return;
253
+ }
227
254
  const snapshot = await metadata.getLatestCompletedSnapshot(types_js_1.DEFAULT_PROJECT_ID);
228
255
  if (!snapshot) {
229
256
  throw new Error("Auto-indexing did not produce a completed snapshot.");
@@ -249,7 +276,11 @@ function registerStructureCommand(program) {
249
276
  const filteredFiles = options?.tests === false
250
277
  ? visibleFiles.filter((file) => !(0, searcher_js_1.isTestFile)(file.path))
251
278
  : visibleFiles;
252
- const visibleFilePaths = new Set(filteredFiles.map((file) => file.path));
279
+ const sortedFilteredFiles = [...filteredFiles].sort((a, b) => a.path.localeCompare(b.path));
280
+ const pageFiles = maxFiles === undefined
281
+ ? sortedFilteredFiles.slice(cursor)
282
+ : sortedFilteredFiles.slice(cursor, cursor + maxFiles);
283
+ const visibleFilePaths = new Set(pageFiles.map((file) => file.path));
253
284
  const allSymbols = await metadata.listSymbols(types_js_1.DEFAULT_PROJECT_ID, snapshot.id);
254
285
  const symbolsByFile = new Map();
255
286
  for (const symbol of allSymbols) {
@@ -270,23 +301,80 @@ function registerStructureCommand(program) {
270
301
  current.push(symbol);
271
302
  symbolsByFile.set(symbol.filePath, current);
272
303
  }
273
- if (filteredFiles.length === 0) {
304
+ if (sortedFilteredFiles.length === 0) {
274
305
  console.log("No indexed files found for the requested filters.");
275
306
  return;
276
307
  }
308
+ if (pageFiles.length === 0) {
309
+ console.log(`No indexed files found at cursor=${cursor} for ${sortedFilteredFiles.length} matching files.`);
310
+ return;
311
+ }
277
312
  const root = createNode();
278
313
  const stripPrefix = effectivePathPrefix
279
314
  ? effectivePathPrefix.replace(/\/+$/, "") + "/"
280
315
  : "";
281
- for (const file of filteredFiles) {
316
+ for (const file of pageFiles) {
282
317
  const relativePath = stripPrefix
283
318
  ? file.path.slice(stripPrefix.length)
284
319
  : file.path;
285
320
  insertPath(root, relativePath);
286
321
  }
287
- printTree(root, "", stripPrefix.replace(/\/$/, ""), symbolsByFile, 0, maxDepth, fileCounter, maxFiles, options?.includeInternal);
288
- if (fileCounter && fileCounter.hidden > 0) {
289
- console.log(`\n... and ${fileCounter.hidden} more files (use --max-files to see more)`);
322
+ printTree(root, "", stripPrefix.replace(/\/$/, ""), symbolsByFile, 0, maxDepth, undefined, undefined, options?.includeInternal);
323
+ const nextCursor = cursor + pageFiles.length;
324
+ const hidden = Math.max(0, sortedFilteredFiles.length - nextCursor);
325
+ if (hidden > 0) {
326
+ const nextParts = ["idx structure"];
327
+ if (effectivePathPrefix) {
328
+ nextParts.push(`--path-prefix ${effectivePathPrefix}`);
329
+ }
330
+ if (maxDepth !== undefined) {
331
+ nextParts.push(`--max-depth ${maxDepth}`);
332
+ }
333
+ if (maxFiles !== undefined) {
334
+ nextParts.push(`--max-files ${maxFiles}`);
335
+ }
336
+ if (options?.kind) {
337
+ nextParts.push(`--kind ${options.kind}`);
338
+ }
339
+ if (options?.includeInternal) {
340
+ nextParts.push("--include-internal");
341
+ }
342
+ if (options?.includeFixtures) {
343
+ nextParts.push("--include-fixtures");
344
+ }
345
+ if (options?.tests === false) {
346
+ nextParts.push("--no-tests");
347
+ }
348
+ nextParts.push(`--cursor ${nextCursor}`);
349
+ console.log(`\nTRUNC hidden=${hidden} cursor=${nextCursor}`);
350
+ console.log(`NEXT ${nextParts.join(" ")}`);
351
+ }
352
+ if (options?.includeTestsSummary) {
353
+ const [allFiles, allDependencies] = await Promise.all([
354
+ metadata.listFiles(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, {}),
355
+ metadata.listDependencies(types_js_1.DEFAULT_PROJECT_ID, snapshot.id),
356
+ ]);
357
+ const printedPaths = pageFiles
358
+ .map((file) => file.path)
359
+ .filter((filePath) => !(0, searcher_js_1.isTestFile)(filePath))
360
+ .sort((a, b) => a.localeCompare(b));
361
+ const targetPaths = maxFiles === undefined ? printedPaths : printedPaths.slice(0, maxFiles);
362
+ const testHints = (0, test_hints_js_1.findNearestTests)({
363
+ targetPaths,
364
+ files: allFiles,
365
+ dependencies: allDependencies,
366
+ maxTests: 5,
367
+ });
368
+ const testLines = (0, test_hints_js_1.formatTestHints)(testHints);
369
+ if (testLines.length > 0) {
370
+ console.log("");
371
+ for (const line of testLines) {
372
+ console.log(line);
373
+ }
374
+ }
375
+ else {
376
+ console.log("\nTests: none");
377
+ }
290
378
  }
291
379
  }
292
380
  catch (error) {
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ import type { AutoIndexResult } from "../commands/ensure-indexed.js";
2
+ export declare function formatAutoIndexResult(result: AutoIndexResult): string;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatAutoIndexResult = formatAutoIndexResult;
4
+ function sanitizeValue(value) {
5
+ const compact = value.trim().replace(/\s+/g, "-");
6
+ return compact.length > 0 ? compact : "unknown";
7
+ }
8
+ function formatAutoIndexResult(result) {
9
+ const parts = [`IDX ${result.status}`];
10
+ if (result.status === "updated") {
11
+ if (result.files !== undefined) {
12
+ parts.push(`files=${result.files}`);
13
+ }
14
+ if (result.removed !== undefined) {
15
+ parts.push(`removed=${result.removed}`);
16
+ }
17
+ if (result.errors !== undefined && result.errors > 0) {
18
+ parts.push(`errors=${result.errors}`);
19
+ }
20
+ }
21
+ if (result.status === "failed") {
22
+ parts.push(`reason=${sanitizeValue(result.reason)}`);
23
+ if (result.action) {
24
+ parts.push(`action=${sanitizeValue(result.action)}`);
25
+ }
26
+ }
27
+ if (result.ms !== undefined) {
28
+ parts.push(`ms=${result.ms}`);
29
+ }
30
+ return parts.join(" ");
31
+ }
32
+ //# sourceMappingURL=compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/cli/format/compact.ts"],"names":[],"mappings":";;AAOA,sDA2BC;AAhCD,SAAS,aAAa,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAuB;IAC5D,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { DependencyRecord, FileRecord } from "../core/types.js";
2
+ export type TestHintReason = "direct" | "related-name" | "related-path";
3
+ export type TestHintConfidence = "high" | "medium" | "low";
4
+ export interface TestHint {
5
+ testPath: string;
6
+ targetPath: string;
7
+ reason: TestHintReason;
8
+ confidence: TestHintConfidence;
9
+ score: number;
10
+ }
11
+ export interface FindNearestTestsOptions {
12
+ targetPaths: string[];
13
+ files: FileRecord[];
14
+ dependencies?: DependencyRecord[];
15
+ maxTests?: number;
16
+ }
17
+ export declare function findNearestTests(options: FindNearestTestsOptions): TestHint[];
18
+ export declare function formatTestHints(hints: TestHint[]): string[];
19
+ export declare function formatSuggestedVerification(hints: TestHint[]): string | undefined;