indexer-cli 0.12.12 → 0.12.13

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
@@ -74,7 +74,7 @@ project root automatically. If a project has not been initialized yet, commands
74
74
  stop with a clear message telling you to run `idx init` first instead of creating data in the wrong directory.
75
75
 
76
76
  After `init`, the repo contains `.claude/skills/repo-discovery/SKILL.md`, so coding agents get one indexed discovery
77
- entry point that routes them toward `idx search`, `idx structure`, `idx architecture`, `idx explain`, and `idx deps`
77
+ entry point that routes them toward `idx search`, `idx structure`, `idx ast`, `idx architecture`, `idx explain`, and `idx deps`
78
78
  before they start burning tokens on broad filesystem scans.
79
79
 
80
80
  ## Why agents save tokens with this
@@ -100,6 +100,7 @@ That skill routes repository discovery flows such as:
100
100
  ```bash
101
101
  idx search "<query>"
102
102
  idx structure --path-prefix src/<area>
103
+ idx ast src/<large-file.ts>
103
104
  idx architecture
104
105
  ```
105
106
 
@@ -208,6 +209,32 @@ TRUNC hidden=49 cursor=5
208
209
  NEXT idx structure --path-prefix src --max-depth 2 --max-files 5 --cursor 5
209
210
  ```
210
211
 
212
+ ### `idx ast <file>`
213
+
214
+ Print a compact AST outline for one supported source file. Use this after `search` or `structure` has identified a large
215
+ file, but before reading it in chunks: the output gives syntax node names, line ranges, and short first-line snippets so
216
+ an agent can choose the smallest useful `Read` ranges.
217
+
218
+ | Option | Default | Description |
219
+ |--------------------------|---------|----------------------------------------------|
220
+ | `--max-depth <number>` | 5 | Limit AST traversal depth |
221
+ | `--max-nodes <number>` | 120 | Limit number of AST nodes shown |
222
+ | `--cursor <number>` | 0 | Continue from a previous `TRUNC` cursor |
223
+ | `--no-include-text` | — | Hide compact first-line snippets |
224
+
225
+ Example:
226
+
227
+ ```text
228
+ AST src/cli/commands/search.ts language=typescript nodes=75 maxDepth=2
229
+ SourceFile:1-295 — import path from "node:path";
230
+ ImportDeclaration:1 — import path from "node:path";
231
+ ImportClause:1 — path
232
+ StringLiteral:1 — "node:path"
233
+
234
+ TRUNC hidden=67 cursor=8
235
+ NEXT idx ast src/cli/commands/search.ts --max-depth 2 --max-nodes 8 --cursor 8
236
+ ```
237
+
211
238
  ### `idx architecture`
212
239
 
213
240
  Print an architecture snapshot for the current working directory: file statistics, detected entry points, a dependency
@@ -0,0 +1,2 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerAstCommand(program: Command): void;
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerAstCommand = registerAstCommand;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const typescript_js_1 = require("../../languages/typescript.js");
10
+ const python_js_1 = require("../../languages/python.js");
11
+ const csharp_js_1 = require("../../languages/csharp.js");
12
+ const gdscript_js_1 = require("../../languages/gdscript.js");
13
+ const ruby_js_1 = require("../../languages/ruby.js");
14
+ const project_root_js_1 = require("../project-root.js");
15
+ const DEFAULT_MAX_DEPTH = 5;
16
+ const DEFAULT_MAX_NODES = 120;
17
+ const MAX_TEXT_LENGTH = 90;
18
+ function parseNonNegativeInteger(value, optionName, fallback) {
19
+ if (!value) {
20
+ return fallback;
21
+ }
22
+ const parsed = Number.parseInt(value, 10);
23
+ if (!Number.isFinite(parsed) || parsed < 0) {
24
+ throw new Error(`${optionName} must be a non-negative integer`);
25
+ }
26
+ return parsed;
27
+ }
28
+ function parsePositiveInteger(value, optionName, fallback) {
29
+ if (!value) {
30
+ return fallback;
31
+ }
32
+ const parsed = Number.parseInt(value, 10);
33
+ if (!Number.isFinite(parsed) || parsed <= 0) {
34
+ throw new Error(`${optionName} must be a positive integer`);
35
+ }
36
+ return parsed;
37
+ }
38
+ function createLanguagePlugins() {
39
+ return [
40
+ new typescript_js_1.TypeScriptPlugin(),
41
+ new python_js_1.PythonPlugin(),
42
+ new csharp_js_1.CSharpPlugin(),
43
+ new gdscript_js_1.GDScriptPlugin(),
44
+ new ruby_js_1.RubyPlugin(),
45
+ ];
46
+ }
47
+ function findPlugin(filePath) {
48
+ const extension = node_path_1.default.extname(filePath).toLowerCase();
49
+ return createLanguagePlugins().find((plugin) => plugin.fileExtensions.includes(extension));
50
+ }
51
+ function isRecord(value) {
52
+ return typeof value === "object" && value !== null;
53
+ }
54
+ function isTsMorphNode(value) {
55
+ return (isRecord(value) &&
56
+ typeof value.getKindName === "function" &&
57
+ typeof value.getStartLineNumber === "function" &&
58
+ typeof value.getEndLineNumber === "function" &&
59
+ typeof value.getText === "function" &&
60
+ typeof value.forEachChild === "function");
61
+ }
62
+ function isTreeSitterAst(value) {
63
+ if (!isRecord(value) || typeof value.source !== "string") {
64
+ return false;
65
+ }
66
+ const tree = value.tree;
67
+ return isRecord(tree) && isRecord(tree.rootNode);
68
+ }
69
+ function compactText(text) {
70
+ const firstLine = text.trim().split(/\r?\n/, 1)[0]?.trim();
71
+ if (!firstLine) {
72
+ return undefined;
73
+ }
74
+ return firstLine.length > MAX_TEXT_LENGTH
75
+ ? `${firstLine.slice(0, MAX_TEXT_LENGTH - 1)}…`
76
+ : firstLine;
77
+ }
78
+ function tsMorphToView(node, depth) {
79
+ const children = [];
80
+ if (depth > 0) {
81
+ node.forEachChild((child) => {
82
+ children.push(tsMorphToView(child, depth - 1));
83
+ });
84
+ }
85
+ return {
86
+ kind: node.getKindName(),
87
+ startLine: node.getStartLineNumber(),
88
+ endLine: node.getEndLineNumber(),
89
+ text: compactText(node.getText()),
90
+ children,
91
+ };
92
+ }
93
+ function treeSitterNodeText(source, node) {
94
+ return compactText(source.slice(node.startIndex, node.endIndex));
95
+ }
96
+ function treeSitterToView(source, node, depth) {
97
+ const rawChildren = node.namedChildren ?? node.children ?? [];
98
+ const children = depth > 0
99
+ ? rawChildren.map((child) => treeSitterToView(source, child, depth - 1))
100
+ : [];
101
+ return {
102
+ kind: node.type,
103
+ startLine: node.startPosition.row + 1,
104
+ endLine: node.endPosition.row + 1,
105
+ text: treeSitterNodeText(source, node),
106
+ children,
107
+ };
108
+ }
109
+ function flattenTree(node) {
110
+ const result = [];
111
+ const visit = (current, depth) => {
112
+ result.push({ node: current, depth });
113
+ for (const child of current.children) {
114
+ visit(child, depth + 1);
115
+ }
116
+ };
117
+ visit(node, 0);
118
+ return result;
119
+ }
120
+ function formatNodeLine(entry, includeText) {
121
+ const indent = " ".repeat(entry.depth);
122
+ const range = entry.node.startLine === entry.node.endLine
123
+ ? `${entry.node.startLine}`
124
+ : `${entry.node.startLine}-${entry.node.endLine}`;
125
+ const suffix = includeText && entry.node.text ? ` — ${entry.node.text}` : "";
126
+ return `${indent}${entry.node.kind}:${range}${suffix}`;
127
+ }
128
+ function quotePathForNext(value) {
129
+ return /\s/.test(value) ? JSON.stringify(value) : value;
130
+ }
131
+ function registerAstCommand(program) {
132
+ program
133
+ .command("ast <file>")
134
+ .description("Print a compact AST outline for one source file")
135
+ .option("--max-depth <number>", "limit AST traversal depth", String(DEFAULT_MAX_DEPTH))
136
+ .option("--max-nodes <number>", "limit number of AST nodes shown", String(DEFAULT_MAX_NODES))
137
+ .option("--cursor <number>", "continue output from a previous TRUNC cursor")
138
+ .option("--no-include-text", "hide compact first-line snippets")
139
+ .action(async (file, options) => {
140
+ try {
141
+ const resolved = (0, project_root_js_1.resolveInitializedProjectRoot)();
142
+ if (resolved.notice) {
143
+ console.log(resolved.notice);
144
+ }
145
+ const projectRoot = resolved.projectRoot;
146
+ const requestedPath = file.replace(/\\/g, "/").replace(/^\.\//, "");
147
+ const absolutePath = node_path_1.default.isAbsolute(file)
148
+ ? file
149
+ : node_path_1.default.join(projectRoot, requestedPath);
150
+ const relativePath = node_path_1.default
151
+ .relative(projectRoot, absolutePath)
152
+ .replace(/\\/g, "/");
153
+ const plugin = findPlugin(relativePath);
154
+ if (!plugin) {
155
+ throw new Error(`No supported parser for '${relativePath}'.`);
156
+ }
157
+ const maxDepth = parseNonNegativeInteger(options?.maxDepth, "--max-depth", DEFAULT_MAX_DEPTH);
158
+ const maxNodes = parsePositiveInteger(options?.maxNodes, "--max-nodes", DEFAULT_MAX_NODES);
159
+ const cursor = parseNonNegativeInteger(options?.cursor, "--cursor", 0);
160
+ const content = node_fs_1.default.readFileSync(absolutePath, "utf8");
161
+ const parsed = plugin.parse({
162
+ path: relativePath,
163
+ content,
164
+ projectRoot,
165
+ });
166
+ let root;
167
+ if (isTsMorphNode(parsed.ast)) {
168
+ root = tsMorphToView(parsed.ast, maxDepth);
169
+ }
170
+ else if (isTreeSitterAst(parsed.ast)) {
171
+ root = treeSitterToView(parsed.ast.source, parsed.ast.tree.rootNode, maxDepth);
172
+ }
173
+ else {
174
+ throw new Error(`Parser for '${plugin.id}' does not expose a traversable AST.`);
175
+ }
176
+ const flattened = flattenTree(root);
177
+ const page = flattened.slice(cursor, cursor + maxNodes);
178
+ console.log(`AST ${relativePath} language=${plugin.id} nodes=${flattened.length} maxDepth=${maxDepth}`);
179
+ for (const entry of page) {
180
+ console.log(formatNodeLine(entry, options?.includeText !== false));
181
+ }
182
+ const nextCursor = cursor + page.length;
183
+ const hidden = Math.max(0, flattened.length - nextCursor);
184
+ if (hidden > 0) {
185
+ console.log(`\nTRUNC hidden=${hidden} cursor=${nextCursor}`);
186
+ const nextParts = [
187
+ "idx ast",
188
+ quotePathForNext(relativePath),
189
+ `--max-depth ${maxDepth}`,
190
+ `--max-nodes ${maxNodes}`,
191
+ `--cursor ${nextCursor}`,
192
+ ];
193
+ if (options?.includeText === false) {
194
+ nextParts.push("--no-include-text");
195
+ }
196
+ console.log(`NEXT ${nextParts.join(" ")}`);
197
+ }
198
+ }
199
+ catch (error) {
200
+ const message = error instanceof Error ? error.message : String(error);
201
+ console.error(`AST command failed: ${message}`);
202
+ process.exitCode = 1;
203
+ }
204
+ });
205
+ }
206
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/cli/commands/ast.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ exports.GENERATED_SKILLS = [
7
7
  directory: "repo-discovery",
8
8
  content: `---
9
9
  name: repo-discovery
10
- description: FIRST choice for repository discovery and code understanding. Use this to choose the cheapest indexed path for architecture, structure, behavior, symbol, or dependency questions before broad file reads or grep.
11
- allowed-tools: Bash(idx architecture:*), Bash(idx structure:*), Bash(idx search:*), Bash(idx explain:*), Bash(idx deps:*)
10
+ description: FIRST choice for repository discovery and code understanding. Use this to choose the cheapest indexed path for architecture, structure, behavior, symbol, AST, or dependency questions before broad file reads or grep.
11
+ allowed-tools: Bash(idx architecture:*), Bash(idx structure:*), Bash(idx ast:*), Bash(idx search:*), Bash(idx explain:*), Bash(idx deps:*)
12
12
  ---
13
13
 
14
14
  # Use repo-discovery as the indexed entry point
@@ -21,6 +21,7 @@ Pick the single cheapest command that answers the question, run it, and stop whe
21
21
 
22
22
  - \`idx architecture\` — repo shape, entry points, module boundaries, cycle causes, unresolved dependency classes
23
23
  - \`idx structure\` — file trees, exported symbols with line ranges, contents of a directory/module
24
+ - \`idx ast <file>\` — compact syntax tree for one large file when symbol ranges are too coarse
24
25
  - \`idx search\` — conceptual behavior questions like "how does X work?"; returns ranked file ranges plus \`why=\` reason codes
25
26
  - \`idx explain\` — a known symbol when you want indexed explanation
26
27
  - \`idx deps\` — imported-by/imports or impact for a known path/module
@@ -32,6 +33,8 @@ Pick the single cheapest command that answers the question, run it, and stop whe
32
33
  - Use \`--path-prefix\` whenever the subsystem is known, e.g. \`src/api/\`, \`src/auth/\`.
33
34
  - For \`idx structure\`, also narrow with \`--kind\` when possible.
34
35
  - If \`idx structure\` prints \`TRUNC\`/\`NEXT\`, run the \`NEXT\` command only when the hidden page is still relevant.
36
+ - Use \`idx ast <file>\` only after you know the file is relevant and need a map of a large file before reading ranges.
37
+ - If \`idx ast\` prints \`TRUNC\`/\`NEXT\`, run \`NEXT\` only when the hidden nodes are still relevant.
35
38
  - For \`idx deps\`, start with \`--depth 1\`; increase only if first-hop impact is insufficient.
36
39
  - For \`idx explain\`, prefer \`file::symbol\` when the name may be ambiguous.
37
40
  - \`--include-content\` is expensive. Use it only when you need implementation detail *without* planning to \`Read\`; if you'll read files anyway, skip it.
@@ -46,7 +49,8 @@ idx is **semantic** search: use it when you do **not** know the exact name and n
46
49
 
47
50
  Use \`grep\`/LSP when the target is already concrete:
48
51
  - exact identifier name → \`grep\`, \`lsp_symbols\`, or references/definition tools
49
- - exact file path → \`Read\`
52
+ - exact small file path → \`Read\`
53
+ - exact large file path + unknown internal layout → \`idx ast <file>\`, then read the smallest ranges
50
54
  - known file + known symbol → \`idx explain file::symbol\` or LSP if exact lookup is enough
51
55
 
52
56
  Rule of thumb: if you can write an exact search pattern, use \`grep\`/LSP. Use idx for exploration, not lookup.
@@ -79,6 +83,9 @@ idx search "payment processor interface" --chunk-types api --mode hybrid
79
83
  # Good: continue a capped structure page only if more files are needed
80
84
  idx structure --path-prefix src --max-depth 2 --max-files 20 --cursor 20
81
85
 
86
+ # Good: map one large file before choosing exact Read ranges
87
+ idx ast src/api/client.ts --max-depth 4 --max-nodes 80
88
+
82
89
  # Good: explain a known symbol, scoped to a file
83
90
  idx explain src/api/client.ts::createClient
84
91
 
@@ -106,6 +113,7 @@ grep "MyType" src/models/
106
113
 
107
114
  - Architecture: \`idx architecture [--path-prefix <area>] [--include-fixtures]\`
108
115
  - 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]\`
116
+ - AST: \`idx ast <file> [--max-depth <n>] [--max-nodes <n>] [--cursor <n>] [--no-include-text]\`
109
117
  - 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
118
  - Explain: \`idx explain <symbol|file::symbol> [--path-prefix <area>] [--include-fixtures] [--include-body] [--body-lines <n>] [--signature-only]\`
111
119
  - Deps: \`idx deps <path> [--direction callers|callees|both] [--depth <n>] [--show-edges] [--tests]\`
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHV;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"}
package/dist/cli/entry.js CHANGED
@@ -12,6 +12,7 @@ const setup_js_1 = require("./commands/setup.js");
12
12
  const explain_js_1 = require("./commands/explain.js");
13
13
  const deps_js_1 = require("./commands/deps.js");
14
14
  const update_js_1 = require("./commands/update.js");
15
+ const ast_js_1 = require("./commands/ast.js");
15
16
  const version_js_1 = require("../core/version.js");
16
17
  const skills_version_js_1 = require("../core/skills-version.js");
17
18
  const version_check_js_1 = require("../core/version-check.js");
@@ -113,6 +114,7 @@ commander_1.program
113
114
  (0, architecture_js_1.registerArchitectureCommand)(commander_1.program);
114
115
  (0, explain_js_1.registerExplainCommand)(commander_1.program);
115
116
  (0, deps_js_1.registerDepsCommand)(commander_1.program);
117
+ (0, ast_js_1.registerAstCommand)(commander_1.program);
116
118
  (0, update_js_1.registerUpdateCommand)(commander_1.program);
117
119
  (0, uninstall_js_1.registerUninstallCommand)(commander_1.program);
118
120
  (0, doctor_js_1.registerDoctorCommand)(commander_1.program);
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/cli/entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/cli/entry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const SKILLS_VERSION = 3343903283;
1
+ export declare const SKILLS_VERSION = 3355244366;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SKILLS_VERSION = void 0;
4
- exports.SKILLS_VERSION = 3343903283;
4
+ exports.SKILLS_VERSION = 3355244366;
5
5
  //# sourceMappingURL=skills-version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "indexer-cli",
3
- "version": "0.12.12",
3
+ "version": "0.12.13",
4
4
  "description": "Lightweight CLI project indexer with semantic search via Ollama",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",