indexer-cli 0.10.5 → 0.10.9
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 +1 -1
- package/dist/_temp_test.d.ts +1 -0
- package/dist/_temp_test.js +4 -0
- package/dist/_temp_test.js.map +1 -0
- package/dist/cli/commands/context.d.ts +2 -0
- package/dist/cli/commands/context.js +299 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/enrich.d.ts +2 -0
- package/dist/cli/commands/reinit.js +19 -11
- package/dist/cli/commands/reinit.js.map +1 -1
- package/dist/cli/commands/search.js +3 -0
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/skill-template.d.ts +6 -0
- package/dist/cli/commands/skill-template.js +15 -0
- package/dist/cli/commands/skill-template.js.map +1 -0
- package/dist/cli/commands/skill-template.md +73 -0
- package/dist/cli/commands/skills.js +61 -35
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/entry.js +1 -0
- package/dist/cli/entry.js.map +1 -1
- package/dist/cli/output-mode.d.ts +4 -0
- package/dist/cli/output-mode.js +7 -0
- package/dist/cli/output-mode.js.map +1 -0
- package/dist/cli/project-path.d.ts +3 -0
- package/dist/cli/project-path.js +39 -0
- package/dist/cli/project-path.js.map +1 -0
- package/dist/cli/version.d.ts +1 -0
- package/dist/cli/version.js +9 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/core/idx-binary.js +1 -1
- package/dist/core/skills-version.d.ts +1 -1
- package/dist/core/skills-version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -207,7 +207,7 @@ and performs a full uninstall + init for each. Useful for batch-updating project
|
|
|
207
207
|
|
|
208
208
|
| Option | Description |
|
|
209
209
|
|---------------------|--------------------------------------------------|
|
|
210
|
-
| `--
|
|
210
|
+
| `--skills-only` | Only refresh skills without full reinstall |
|
|
211
211
|
| `-f, --force` | Skip confirmation prompt |
|
|
212
212
|
|
|
213
213
|
## License
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_temp_test.js","sourceRoot":"","sources":["../src/_temp_test.ts"],"names":[],"mappings":";;AAAA,OAAO"}
|
|
@@ -0,0 +1,299 @@
|
|
|
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.registerContextCommand = registerContextCommand;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const config_js_1 = require("../../core/config.js");
|
|
9
|
+
const logger_js_1 = require("../../core/logger.js");
|
|
10
|
+
const types_js_1 = require("../../core/types.js");
|
|
11
|
+
const architecture_js_1 = require("../../engine/architecture.js");
|
|
12
|
+
const git_js_1 = require("../../engine/git.js");
|
|
13
|
+
const sqlite_js_1 = require("../../storage/sqlite.js");
|
|
14
|
+
const help_text_js_1 = require("../help-text.js");
|
|
15
|
+
const project_path_js_1 = require("../project-path.js");
|
|
16
|
+
const ensure_indexed_js_1 = require("./ensure-indexed.js");
|
|
17
|
+
const DEFAULT_TEST_EXCLUDE_PATH_PATTERNS = ["tests/**", "**/tests/**"];
|
|
18
|
+
function estimateTokens(data) {
|
|
19
|
+
let charCount = 0;
|
|
20
|
+
if (data.architecture) {
|
|
21
|
+
charCount += Object.entries(data.architecture.fileStats)
|
|
22
|
+
.map(([k, v]) => `${k}: ${v}`)
|
|
23
|
+
.join(", ").length;
|
|
24
|
+
charCount += data.architecture.entrypoints.join(", ").length;
|
|
25
|
+
}
|
|
26
|
+
for (const mod of data.modules)
|
|
27
|
+
charCount += mod.path.length + 1;
|
|
28
|
+
for (const sym of data.symbols) {
|
|
29
|
+
charCount +=
|
|
30
|
+
`${sym.file}::${sym.name} (${sym.kind})${sym.signature ? ` — ${sym.signature}` : ""}`
|
|
31
|
+
.length + 1;
|
|
32
|
+
}
|
|
33
|
+
for (const [from, to] of Object.entries(data.dependencies)) {
|
|
34
|
+
charCount += `${from} -> ${to.join(", ")}`.length + 1;
|
|
35
|
+
}
|
|
36
|
+
return Math.ceil(charCount / 4);
|
|
37
|
+
}
|
|
38
|
+
function parseMaxDeps(input) {
|
|
39
|
+
if (!input) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const parsed = Number.parseInt(input, 10);
|
|
43
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
44
|
+
throw new Error("--max-deps must be a positive integer.");
|
|
45
|
+
}
|
|
46
|
+
return parsed;
|
|
47
|
+
}
|
|
48
|
+
function limitDependencies(dependencies, maxDeps) {
|
|
49
|
+
const entries = Object.entries(dependencies).sort((a, b) => a[0].localeCompare(b[0]));
|
|
50
|
+
if (maxDeps === undefined || entries.length <= maxDeps) {
|
|
51
|
+
return {
|
|
52
|
+
dependencies: Object.fromEntries(entries),
|
|
53
|
+
shown: entries.length,
|
|
54
|
+
total: entries.length,
|
|
55
|
+
truncated: false,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
dependencies: Object.fromEntries(entries.slice(0, maxDeps)),
|
|
60
|
+
shown: maxDeps,
|
|
61
|
+
total: entries.length,
|
|
62
|
+
truncated: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function normalizeScopePath(inputPath, resolvedProjectPath) {
|
|
66
|
+
const projectRelativePath = node_path_1.default.isAbsolute(inputPath)
|
|
67
|
+
? node_path_1.default.relative(resolvedProjectPath, inputPath)
|
|
68
|
+
: inputPath;
|
|
69
|
+
return projectRelativePath.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
70
|
+
}
|
|
71
|
+
function formatPlain(data, options) {
|
|
72
|
+
if (data.modules.length > 0) {
|
|
73
|
+
console.log("## Modules\n");
|
|
74
|
+
for (const mod of data.modules) {
|
|
75
|
+
console.log(mod.path);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (data.symbols.length > 0) {
|
|
79
|
+
console.log("\n## Key Symbols\n");
|
|
80
|
+
for (const sym of data.symbols) {
|
|
81
|
+
const sig = options?.compact
|
|
82
|
+
? ""
|
|
83
|
+
: sym.signature
|
|
84
|
+
? ` — ${sym.signature}`
|
|
85
|
+
: "";
|
|
86
|
+
console.log(`${sym.file}::${sym.name} (${sym.kind})${sig}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const depEntries = Object.entries(data.dependencies).sort((a, b) => a[0].localeCompare(b[0]));
|
|
90
|
+
if (depEntries.length > 0) {
|
|
91
|
+
console.log("\n## Module Dependencies\n");
|
|
92
|
+
for (const [from, to] of depEntries) {
|
|
93
|
+
console.log(`${from} -> ${to.join(", ")}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function registerContextCommand(program) {
|
|
98
|
+
program
|
|
99
|
+
.command("context")
|
|
100
|
+
.description("Output dense project context aggregated from the index")
|
|
101
|
+
.addHelpText("after", `\n${help_text_js_1.PROJECT_ROOT_COMMAND_HELP}\n`)
|
|
102
|
+
.option("--scope <scope>", "scope: all, changed (uncommitted changes), or relevant-to:<path>", "all")
|
|
103
|
+
.option("--max-deps <number>", "maximum number of dependency edges to output", "30")
|
|
104
|
+
.option("--include-fixtures", "include fixture/vendor paths in output")
|
|
105
|
+
.option("--include-tests", "include test paths in output")
|
|
106
|
+
.option("--compact", "use compact one-line-per-symbol output")
|
|
107
|
+
.action(async (options) => {
|
|
108
|
+
const resolvedProjectPath = (0, project_path_js_1.getResolvedProjectPath)();
|
|
109
|
+
const dataDir = node_path_1.default.join(resolvedProjectPath, ".indexer-cli");
|
|
110
|
+
const dbPath = node_path_1.default.join(dataDir, "db.sqlite");
|
|
111
|
+
const maxDeps = parseMaxDeps(options?.maxDeps);
|
|
112
|
+
const scope = options?.scope ?? "all";
|
|
113
|
+
const relevantToPrefix = "relevant-to:";
|
|
114
|
+
(0, logger_js_1.initLogger)(dataDir);
|
|
115
|
+
config_js_1.config.load(dataDir);
|
|
116
|
+
const metadata = new sqlite_js_1.SqliteMetadataStore(dbPath);
|
|
117
|
+
try {
|
|
118
|
+
await metadata.initialize();
|
|
119
|
+
await (0, ensure_indexed_js_1.ensureIndexed)(metadata, resolvedProjectPath, {
|
|
120
|
+
silent: false,
|
|
121
|
+
});
|
|
122
|
+
const snapshot = await metadata.getLatestCompletedSnapshot(types_js_1.DEFAULT_PROJECT_ID);
|
|
123
|
+
if (!snapshot) {
|
|
124
|
+
throw new Error("No completed snapshot found.");
|
|
125
|
+
}
|
|
126
|
+
let scopeFilePaths = null;
|
|
127
|
+
let scopeWarning;
|
|
128
|
+
let normalizedTargetPath;
|
|
129
|
+
if (scope === "changed") {
|
|
130
|
+
const git = new git_js_1.SimpleGitOperations();
|
|
131
|
+
const changes = await git.getWorkingTreeChanges(resolvedProjectPath);
|
|
132
|
+
scopeFilePaths = new Set([...changes.added, ...changes.modified]);
|
|
133
|
+
}
|
|
134
|
+
const [files, allSymbols, archArtifact] = await Promise.all([
|
|
135
|
+
metadata.listFiles(types_js_1.DEFAULT_PROJECT_ID, snapshot.id),
|
|
136
|
+
metadata.listSymbols(types_js_1.DEFAULT_PROJECT_ID, snapshot.id),
|
|
137
|
+
metadata.getArtifact(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, "architecture_snapshot", "project"),
|
|
138
|
+
]);
|
|
139
|
+
const rawArchitecture = archArtifact
|
|
140
|
+
? JSON.parse(archArtifact.dataJson)
|
|
141
|
+
: null;
|
|
142
|
+
const architecture = rawArchitecture
|
|
143
|
+
? options?.includeFixtures
|
|
144
|
+
? rawArchitecture
|
|
145
|
+
: (0, architecture_js_1.filterArchitectureSnapshot)(rawArchitecture, config_js_1.config.get("excludePaths"))
|
|
146
|
+
: null;
|
|
147
|
+
if (scope.startsWith(relevantToPrefix)) {
|
|
148
|
+
const targetPath = normalizeScopePath(scope.slice(relevantToPrefix.length), resolvedProjectPath);
|
|
149
|
+
normalizedTargetPath = targetPath.replace(/\/+$/, "");
|
|
150
|
+
// Strategy 1: exact file match → file-level 1-hop neighborhood
|
|
151
|
+
const targetFile = await metadata.getFile(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, normalizedTargetPath);
|
|
152
|
+
if (targetFile) {
|
|
153
|
+
const [callees, callers] = await Promise.all([
|
|
154
|
+
metadata.listDependencies(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, normalizedTargetPath),
|
|
155
|
+
metadata.getDependents(types_js_1.DEFAULT_PROJECT_ID, snapshot.id, normalizedTargetPath),
|
|
156
|
+
]);
|
|
157
|
+
const neighborhood = new Set([normalizedTargetPath]);
|
|
158
|
+
for (const dep of callees) {
|
|
159
|
+
if (dep.dependencyType === "internal" && dep.toPath) {
|
|
160
|
+
neighborhood.add(dep.toPath);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
for (const dep of callers) {
|
|
164
|
+
if (dep.dependencyType === "internal") {
|
|
165
|
+
neighborhood.add(dep.fromPath);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (neighborhood.size > 1) {
|
|
169
|
+
scopeFilePaths = neighborhood;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
scopeFilePaths = neighborhood;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Strategy 2: directory/module path → module-level expansion
|
|
177
|
+
const targetDirectoryPrefix = `${normalizedTargetPath}/`;
|
|
178
|
+
const moduleFiles = architecture?.module_files ?? {};
|
|
179
|
+
const dependencyMap = architecture?.dependency_map?.internal ?? {};
|
|
180
|
+
const targetModuleKey = Object.entries(moduleFiles).find(([, moduleFilePaths]) => moduleFilePaths.some((filePath) => normalizeScopePath(filePath, resolvedProjectPath) ===
|
|
181
|
+
normalizedTargetPath))?.[0];
|
|
182
|
+
const targetModuleKeys = targetModuleKey
|
|
183
|
+
? new Set([targetModuleKey])
|
|
184
|
+
: new Set(Object.entries(moduleFiles)
|
|
185
|
+
.filter(([, moduleFilePaths]) => moduleFilePaths.some((filePath) => normalizeScopePath(filePath, resolvedProjectPath).startsWith(targetDirectoryPrefix)))
|
|
186
|
+
.map(([moduleKey]) => moduleKey));
|
|
187
|
+
if (targetModuleKeys.size > 0) {
|
|
188
|
+
const relatedModuleKeys = new Set(targetModuleKeys);
|
|
189
|
+
for (const moduleKey of targetModuleKeys) {
|
|
190
|
+
for (const dependencyModule of dependencyMap[moduleKey] ??
|
|
191
|
+
[]) {
|
|
192
|
+
relatedModuleKeys.add(dependencyModule);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
for (const [fromModule, toModules] of Object.entries(dependencyMap)) {
|
|
196
|
+
if (toModules.some((toModule) => targetModuleKeys.has(toModule))) {
|
|
197
|
+
relatedModuleKeys.add(fromModule);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
scopeFilePaths = new Set(Array.from(relatedModuleKeys).flatMap((moduleKey) => moduleFiles[moduleKey] ?? []));
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
scopeWarning = `No indexed file or module found for path \"${normalizedTargetPath}\". Returning empty context.`;
|
|
204
|
+
scopeFilePaths = new Set();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const scopedFiles = scopeFilePaths !== null
|
|
209
|
+
? files.filter((file) => scopeFilePaths.has(file.path))
|
|
210
|
+
: files;
|
|
211
|
+
const excludePatterns = [
|
|
212
|
+
...(options?.includeFixtures ? [] : config_js_1.config.get("excludePaths")),
|
|
213
|
+
...(options?.includeTests
|
|
214
|
+
? []
|
|
215
|
+
: DEFAULT_TEST_EXCLUDE_PATH_PATTERNS),
|
|
216
|
+
];
|
|
217
|
+
const visibleFiles = excludePatterns.length === 0
|
|
218
|
+
? scopedFiles
|
|
219
|
+
: scopedFiles.filter((file) => !(0, architecture_js_1.matchesPathPatterns)(file.path, excludePatterns));
|
|
220
|
+
const filePathSet = new Set(visibleFiles.map((file) => file.path));
|
|
221
|
+
const visibleSymbols = allSymbols.filter((symbol) => filePathSet.has(symbol.filePath));
|
|
222
|
+
let scopedDependencies;
|
|
223
|
+
const isFileLevelScope = scopeFilePaths !== null &&
|
|
224
|
+
scopeFilePaths.size > 0 &&
|
|
225
|
+
normalizedTargetPath !== undefined &&
|
|
226
|
+
scopeFilePaths.has(normalizedTargetPath);
|
|
227
|
+
if (isFileLevelScope) {
|
|
228
|
+
const allDeps = await metadata.listDependencies(types_js_1.DEFAULT_PROJECT_ID, snapshot.id);
|
|
229
|
+
const fileDepMap = {};
|
|
230
|
+
for (const dep of allDeps) {
|
|
231
|
+
if (dep.dependencyType !== "internal" ||
|
|
232
|
+
!dep.toPath ||
|
|
233
|
+
!filePathSet.has(dep.fromPath) ||
|
|
234
|
+
!filePathSet.has(dep.toPath)) {
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
if (!fileDepMap[dep.fromPath]) {
|
|
238
|
+
fileDepMap[dep.fromPath] = new Set();
|
|
239
|
+
}
|
|
240
|
+
fileDepMap[dep.fromPath].add(dep.toPath);
|
|
241
|
+
}
|
|
242
|
+
scopedDependencies = Object.fromEntries(Object.entries(fileDepMap).map(([k, v]) => [
|
|
243
|
+
k,
|
|
244
|
+
Array.from(v).sort(),
|
|
245
|
+
]));
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
const dependencyCandidates = architecture?.dependency_map?.internal ?? {};
|
|
249
|
+
const moduleFiles = architecture?.module_files ?? {};
|
|
250
|
+
const scopedModuleKeys = scopeFilePaths === null
|
|
251
|
+
? null
|
|
252
|
+
: new Set(Object.entries(moduleFiles)
|
|
253
|
+
.filter(([, moduleFilePaths]) => moduleFilePaths.some((filePath) => filePathSet.has(filePath)))
|
|
254
|
+
.map(([moduleKey]) => moduleKey));
|
|
255
|
+
scopedDependencies =
|
|
256
|
+
scopedModuleKeys === null
|
|
257
|
+
? dependencyCandidates
|
|
258
|
+
: Object.fromEntries(Object.entries(dependencyCandidates).filter(([fromModule]) => scopedModuleKeys.has(fromModule)));
|
|
259
|
+
}
|
|
260
|
+
const limitedDependencies = limitDependencies(scopedDependencies, maxDeps);
|
|
261
|
+
if (limitedDependencies.truncated) {
|
|
262
|
+
console.error(`Showing ${limitedDependencies.shown} of ${limitedDependencies.total} dependencies. Use --max-deps to see more.`);
|
|
263
|
+
}
|
|
264
|
+
const filesWithExports = new Set(visibleSymbols
|
|
265
|
+
.filter((symbol) => symbol.exported)
|
|
266
|
+
.map((symbol) => symbol.filePath));
|
|
267
|
+
const seedFilePath = isFileLevelScope
|
|
268
|
+
? normalizedTargetPath
|
|
269
|
+
: undefined;
|
|
270
|
+
const contextData = {
|
|
271
|
+
modules: visibleFiles
|
|
272
|
+
.filter((file) => filesWithExports.has(file.path) || file.path === seedFilePath)
|
|
273
|
+
.map((file) => ({ path: file.path })),
|
|
274
|
+
symbols: visibleSymbols
|
|
275
|
+
.filter((symbol) => symbol.exported)
|
|
276
|
+
.map((symbol) => ({
|
|
277
|
+
file: symbol.filePath,
|
|
278
|
+
name: symbol.name,
|
|
279
|
+
kind: symbol.kind,
|
|
280
|
+
signature: symbol.signature,
|
|
281
|
+
})),
|
|
282
|
+
dependencies: limitedDependencies.dependencies,
|
|
283
|
+
};
|
|
284
|
+
if (scopeWarning) {
|
|
285
|
+
console.warn(`Warning: ${scopeWarning}`);
|
|
286
|
+
}
|
|
287
|
+
formatPlain(contextData, { compact: options?.compact });
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
291
|
+
console.error(`Context command failed: ${message}`);
|
|
292
|
+
process.exitCode = 1;
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
await metadata.close().catch(() => undefined);
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ function registerReinitCommand(program) {
|
|
|
26
26
|
.command("reinit")
|
|
27
27
|
.description("Reinitialize indexer in all projects within a directory (uninstall + init)")
|
|
28
28
|
.argument("<dir>", "path to workspace directory containing projects")
|
|
29
|
-
.option("--
|
|
29
|
+
.option("--skills-only", "only refresh skills without full reinstall")
|
|
30
30
|
.option("-f, --force", "skip confirmation prompt")
|
|
31
31
|
.addHelpText("after", `\n${help_text_js_1.PROJECT_ROOT_COMMAND_HELP}\n`)
|
|
32
32
|
.action(async (dir, options) => {
|
|
@@ -69,15 +69,18 @@ function registerReinitCommand(program) {
|
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
if (!options.force) {
|
|
72
|
-
|
|
72
|
+
const action = options.skillsOnly
|
|
73
|
+
? "have skills refreshed"
|
|
74
|
+
: "be reinitialized";
|
|
75
|
+
console.error(`The following projects will ${action}:`);
|
|
73
76
|
for (const projectPath of projectPaths) {
|
|
74
77
|
console.error(`- ${projectPath}`);
|
|
75
78
|
}
|
|
76
79
|
const rl = (0, promises_2.createInterface)({ input: node_process_1.stdin, output: node_process_1.stdout });
|
|
77
80
|
try {
|
|
78
|
-
const answer = await rl.question("Proceed
|
|
81
|
+
const answer = await rl.question("Proceed? [y/N] ");
|
|
79
82
|
if (!/^y(es)?$/i.test(answer.trim())) {
|
|
80
|
-
console.log("
|
|
83
|
+
console.log("Cancelled.");
|
|
81
84
|
return;
|
|
82
85
|
}
|
|
83
86
|
}
|
|
@@ -88,22 +91,27 @@ function registerReinitCommand(program) {
|
|
|
88
91
|
let reinitializedCount = 0;
|
|
89
92
|
for (const projectPath of projectPaths) {
|
|
90
93
|
const projectName = node_path_1.default.basename(projectPath);
|
|
91
|
-
console.log(
|
|
94
|
+
console.log(`${options.skillsOnly ? "Refreshing skills" : "Reinitializing"}: ${projectName}`);
|
|
92
95
|
try {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
if (options.skillsOnly) {
|
|
97
|
+
await (0, init_js_1.refreshClaudeSkills)(projectPath);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
await (0, uninstall_js_1.performUninstall)(projectPath);
|
|
101
|
+
await (0, init_js_1.performInit)(projectPath);
|
|
102
|
+
}
|
|
97
103
|
console.log(`Done: ${projectName}`);
|
|
98
104
|
reinitializedCount += 1;
|
|
99
105
|
}
|
|
100
106
|
catch (error) {
|
|
101
107
|
const message = error instanceof Error ? error.message : String(error);
|
|
102
|
-
console.error(`Failed to reinitialize ${projectName}: ${message}`);
|
|
108
|
+
console.error(`Failed to ${options.skillsOnly ? "refresh skills in" : "reinitialize"} ${projectName}: ${message}`);
|
|
103
109
|
process.exitCode = 1;
|
|
104
110
|
}
|
|
105
111
|
}
|
|
106
|
-
console.log(
|
|
112
|
+
console.log(options.skillsOnly
|
|
113
|
+
? `Refreshed skills in ${reinitializedCount} of ${projectPaths.length} projects`
|
|
114
|
+
: `Reinitialized ${reinitializedCount} of ${projectPaths.length} projects`);
|
|
107
115
|
});
|
|
108
116
|
}
|
|
109
117
|
//# sourceMappingURL=reinit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reinit.js","sourceRoot":"","sources":["../../../src/cli/commands/reinit.ts"],"names":[],"mappings":";;;;;AAmBA,
|
|
1
|
+
{"version":3,"file":"reinit.js","sourceRoot":"","sources":["../../../src/cli/commands/reinit.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,6 +103,9 @@ function registerSearchCommand(program) {
|
|
|
103
103
|
const symbolPart = result.primarySymbol
|
|
104
104
|
? `, function: ${result.primarySymbol}`
|
|
105
105
|
: "";
|
|
106
|
+
if (i > 0) {
|
|
107
|
+
console.log("");
|
|
108
|
+
}
|
|
106
109
|
console.log(`${result.filePath}:${result.startLine}-${result.endLine} (score: ${result.score.toFixed(2)}${symbolPart})`);
|
|
107
110
|
if (options?.includeContent) {
|
|
108
111
|
console.log(result.content || "(content unavailable)");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":";;;;;AA6BA,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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.SKILL_MD = void 0;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
/**
|
|
10
|
+
* SKILL.md template for Claude Code integration.
|
|
11
|
+
*
|
|
12
|
+
* Written to `.claude/skills/repo-discovery/SKILL.md` during `indexer-cli init`.
|
|
13
|
+
*/
|
|
14
|
+
exports.SKILL_MD = (0, node_fs_1.readFileSync)(node_path_1.default.join(__dirname, "skill-template.md"), "utf8");
|
|
15
|
+
//# sourceMappingURL=skill-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../../../src/cli/commands/skill-template.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAuC;AACvC,0DAA6B;AAE7B;;;;GAIG;AACU,QAAA,QAAQ,GAAG,IAAA,sBAAY,EACnC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,MAAM,CACN,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: repo-discovery
|
|
3
|
+
description: REQUIRED: use indexer-cli first for repo discovery in this repository, before grep/glob/find or broad file reads when finding implementations, tracing symbols or behavior, mapping structure, or exploring unfamiliar code.
|
|
4
|
+
allowed-tools: Bash(npx indexer-cli:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# MANDATORY: use indexer-cli first for repo discovery
|
|
8
|
+
|
|
9
|
+
Use this skill for discovery work in this repo.
|
|
10
|
+
Auto-load it for requests to find, trace, inspect, understand, or map code here.
|
|
11
|
+
|
|
12
|
+
## Auto-load when
|
|
13
|
+
|
|
14
|
+
- Find where something is implemented in this repo
|
|
15
|
+
- Trace a symbol, handler, feature, or behavior through the codebase
|
|
16
|
+
- Understand how some part of this repository works
|
|
17
|
+
- Inspect an unfamiliar module, directory, or subsystem
|
|
18
|
+
- Map entry points, dependencies, callers, or imports
|
|
19
|
+
- Explore the codebase when the right file is not known yet
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Start with `indexer-cli`.
|
|
24
|
+
- Do not start with `grep`, `glob`, `find`, or repeated full-file reads.
|
|
25
|
+
- Use literal search only after `indexer-cli` narrows the area or when the exact file is already known.
|
|
26
|
+
|
|
27
|
+
## Skip when
|
|
28
|
+
|
|
29
|
+
- The exact file is already known and the task stays inside it
|
|
30
|
+
- You only need an exact literal text match
|
|
31
|
+
- The task is outside this repository
|
|
32
|
+
|
|
33
|
+
## First commands
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx indexer-cli search "<query>"
|
|
37
|
+
npx indexer-cli search "<query>" --path-prefix src/<area>
|
|
38
|
+
npx indexer-cli search "<query>" --chunk-types impl,types
|
|
39
|
+
npx indexer-cli structure --path-prefix src/<area>
|
|
40
|
+
npx indexer-cli structure --kind class
|
|
41
|
+
npx indexer-cli architecture
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Reading results
|
|
45
|
+
|
|
46
|
+
`npx indexer-cli search` returns ranked code chunks as JSON by default, not whole files.
|
|
47
|
+
Default fields: `filePath`, `startLine`, `endLine`, `score`, `primarySymbol`.
|
|
48
|
+
Add `--include-content` only when needed.
|
|
49
|
+
|
|
50
|
+
- Prefer default JSON output for agent workflows.
|
|
51
|
+
- Do not pipe `--txt` output through `head`, `tail`, or shell filtering unless a human explicitly needs text output.
|
|
52
|
+
|
|
53
|
+
- Use `score` to prefer the most relevant chunks first and filter obvious low-relevance noise.
|
|
54
|
+
- Use `primarySymbol` to see which function/class/type the chunk belongs to before opening the file.
|
|
55
|
+
- Treat `content` as supporting context, but rank and filter with `score` + `primarySymbol` instead of raw text alone.
|
|
56
|
+
|
|
57
|
+
## Command map
|
|
58
|
+
|
|
59
|
+
Discovery: `npx indexer-cli search "<query>"`, `npx indexer-cli structure`, `npx indexer-cli architecture`,
|
|
60
|
+
`npx indexer-cli context`, `npx indexer-cli explain <symbol>`, `npx indexer-cli deps <path>`
|
|
61
|
+
|
|
62
|
+
Narrow when needed with: `--path-prefix`, `--chunk-types`, `--fields`, `--min-score`, `--kind`, `--max-depth`,
|
|
63
|
+
`--max-files`, `--scope`, `--max-deps`, `--direction`, `--include-fixtures`, `--omit-content`, `--include-content`
|
|
64
|
+
|
|
65
|
+
## Type Reference
|
|
66
|
+
|
|
67
|
+
### Chunk types (--chunk-types)
|
|
68
|
+
|
|
69
|
+
`full_file`, `imports`, `preamble`, `declaration`, `module_section`, `impl`, `types`
|
|
70
|
+
|
|
71
|
+
### Symbol kinds (--kind)
|
|
72
|
+
|
|
73
|
+
`function`, `class`, `method`, `interface`, `type`, `variable`, `module`, `signal`
|
|
@@ -11,57 +11,83 @@ description: FIRST choice for repository discovery and code understanding. Use t
|
|
|
11
11
|
allowed-tools: Bash(idx architecture:*), Bash(idx structure:*), Bash(idx search:*), Bash(idx explain:*), Bash(idx deps:*)
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
# Use repo-discovery as the
|
|
14
|
+
# Use repo-discovery as the indexed entry point
|
|
15
15
|
|
|
16
|
-
Use this skill first
|
|
16
|
+
Use this skill first for unfamiliar codebases, high-level exploration, behavior tracing, symbol discovery, or impact analysis.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Pick the single cheapest command that answers the question, run it, and stop when you have enough context.
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Route to one command
|
|
21
21
|
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
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?"
|
|
25
|
+
- \`idx explain\` — a known symbol when you want indexed explanation
|
|
26
|
+
- \`idx deps\` — callers, callees, or impact for a known path/module
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## Operating rules
|
|
29
29
|
|
|
30
|
-
- Start with exactly
|
|
31
|
-
- Prefer the cheapest
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
- For \`idx
|
|
36
|
-
-
|
|
37
|
-
-
|
|
30
|
+
- Start with exactly **ONE** idx command. Each idx result is large; parallel or overlapping discovery burns tokens on duplicate context.
|
|
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
|
+
- Use \`--path-prefix\` whenever the subsystem is known, e.g. \`src/api/\`, \`src/auth/\`.
|
|
33
|
+
- For \`idx structure\`, also narrow with \`--kind\` when possible.
|
|
34
|
+
- For \`idx deps\`, start with \`--depth 1\`; increase only if first-hop impact is insufficient.
|
|
35
|
+
- For \`idx explain\`, prefer \`file::symbol\` when the name may be ambiguous.
|
|
36
|
+
- \`--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
|
+
- After \`idx search\`, read the returned files/ranges. Do **not** follow search with \`idx explain\` on the same results.
|
|
38
|
+
- Do **not** run \`idx explain\` as a prelude to reading a file you already know you need.
|
|
39
|
+
- Do **not** chain discovery steps mechanically (\`search → explain\`, \`explain → Read\`) when direct reading is cheaper.
|
|
38
40
|
|
|
39
|
-
##
|
|
41
|
+
## Use idx vs grep/LSP
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
- structure → explain
|
|
43
|
-
- search → Read tool on returned files
|
|
44
|
-
- explain → deps
|
|
45
|
-
- deps → architecture only if broader system context is still missing
|
|
43
|
+
idx is **semantic** search: use it when you do **not** know the exact name and need to find code by meaning.
|
|
46
44
|
|
|
47
|
-
|
|
45
|
+
Use \`grep\`/LSP when the target is already concrete:
|
|
46
|
+
- exact identifier name → \`grep\`, \`lsp_symbols\`, or references/definition tools
|
|
47
|
+
- exact file path → \`Read\`
|
|
48
|
+
- known file + known symbol → \`idx explain file::symbol\` or LSP if exact lookup is enough
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
- the task is an exact identifier lookup better handled by grep/LSP
|
|
51
|
-
- you are no longer in discovery mode and are already editing code
|
|
50
|
+
Rule of thumb: if you can write an exact search pattern, use \`grep\`/LSP. Use idx for exploration, not lookup.
|
|
52
51
|
|
|
53
|
-
##
|
|
52
|
+
## Query guidance
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
- Good \`idx search\` queries are specific concepts, not generic phrases.
|
|
55
|
+
- Broad natural-language queries produce noise across unrelated files.
|
|
56
|
+
- Prefer domain-specific wording over vague phrases like \`"validate data"\` or \`"send notification"\`.
|
|
57
|
+
- Pair broad concepts with \`--path-prefix\` and cap output with \`--max-files\` when exploring large areas.
|
|
58
|
+
|
|
59
|
+
## Examples
|
|
56
60
|
|
|
57
61
|
\`\`\`bash
|
|
58
|
-
|
|
59
|
-
idx
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
idx
|
|
62
|
+
# Good: high-level repo shape
|
|
63
|
+
idx architecture --path-prefix src/
|
|
64
|
+
|
|
65
|
+
# Good: inspect one subsystem
|
|
66
|
+
idx structure --path-prefix src/api/ --kind function
|
|
67
|
+
|
|
68
|
+
# Good: semantic discovery for unknown behavior
|
|
69
|
+
idx search "how request retries are scheduled" --path-prefix src/jobs/ --max-files 5
|
|
70
|
+
|
|
71
|
+
# Good: explain a known symbol, scoped to a file
|
|
72
|
+
idx explain src/api/client.ts::createClient
|
|
73
|
+
|
|
74
|
+
# Good: first-hop impact from a known module
|
|
75
|
+
idx deps src/api/client.ts --direction callers --depth 1
|
|
76
|
+
|
|
77
|
+
# Bad: semantic search for an exact identifier
|
|
78
|
+
idx search "MyType" --path-prefix src/models/
|
|
79
|
+
|
|
80
|
+
# Better: exact lookup is cheaper
|
|
81
|
+
grep "MyType" src/models/
|
|
63
82
|
\`\`\`
|
|
64
83
|
|
|
84
|
+
## Skip idx when
|
|
85
|
+
|
|
86
|
+
- you already know the exact file to read
|
|
87
|
+
- you need an exact identifier lookup
|
|
88
|
+
- you already know the file and want document-local symbols/usages
|
|
89
|
+
- you are done discovering and are now editing or validating code
|
|
90
|
+
|
|
65
91
|
## CLI reference
|
|
66
92
|
|
|
67
93
|
- Architecture: \`idx architecture [--path-prefix <area>] [--include-fixtures]\`
|
|
@@ -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
|
|
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"}
|
package/dist/cli/entry.js
CHANGED
package/dist/cli/entry.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-mode.js","sourceRoot":"","sources":["../../src/cli/output-mode.ts"],"names":[],"mappings":";;AAIA,oCAEC;AAFD,SAAgB,YAAY,CAAC,OAA2B;IACvD,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.setResolvedProjectPath = setResolvedProjectPath;
|
|
7
|
+
exports.getResolvedProjectPath = getResolvedProjectPath;
|
|
8
|
+
exports.resolveAndValidateProjectPath = resolveAndValidateProjectPath;
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
let resolvedProjectPath;
|
|
12
|
+
function setResolvedProjectPath(p) {
|
|
13
|
+
resolvedProjectPath = p;
|
|
14
|
+
}
|
|
15
|
+
function getResolvedProjectPath() {
|
|
16
|
+
return resolvedProjectPath ?? process.cwd();
|
|
17
|
+
}
|
|
18
|
+
function resolveAndValidateProjectPath(projectFlag) {
|
|
19
|
+
if (!projectFlag) {
|
|
20
|
+
const cwd = process.cwd();
|
|
21
|
+
setResolvedProjectPath(cwd);
|
|
22
|
+
return cwd;
|
|
23
|
+
}
|
|
24
|
+
const resolved = node_path_1.default.resolve(projectFlag);
|
|
25
|
+
if (!(0, node_fs_1.existsSync)(resolved)) {
|
|
26
|
+
console.error(`Error: Project path does not exist: ${resolved}`);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const dbPath = node_path_1.default.join(resolved, ".indexer-cli", "db.sqlite");
|
|
30
|
+
if (!(0, node_fs_1.existsSync)(dbPath)) {
|
|
31
|
+
console.error(`Error: Project at ${resolved} is not indexed.`);
|
|
32
|
+
console.error(`No database found at ${dbPath}.`);
|
|
33
|
+
console.error(`Run 'indexer-cli init' in that directory first.`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
setResolvedProjectPath(resolved);
|
|
37
|
+
return resolved;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=project-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-path.js","sourceRoot":"","sources":["../../src/cli/project-path.ts"],"names":[],"mappings":";;;;;AAKA,wDAEC;AAED,wDAEC;AAED,sEA0BC;AAvCD,0DAA6B;AAC7B,qCAAqC;AAErC,IAAI,mBAAuC,CAAC;AAE5C,SAAgB,sBAAsB,CAAC,CAAS;IAC/C,mBAAmB,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,sBAAsB;IACrC,OAAO,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC;AAED,SAAgB,6BAA6B,CAC5C,WAA+B;IAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAChE,IAAI,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,kBAAkB,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION: string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VERSION = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const packageJsonPath = (0, node_path_1.resolve)(__dirname, "..", "..", "package.json");
|
|
7
|
+
const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, "utf-8"));
|
|
8
|
+
exports.VERSION = packageJson.version;
|
|
9
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,yCAAoC;AAEpC,MAAM,eAAe,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1D,QAAA,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC"}
|
package/dist/core/idx-binary.js
CHANGED
|
@@ -8,7 +8,7 @@ const node_fs_1 = require("node:fs");
|
|
|
8
8
|
const node_os_1 = __importDefault(require("node:os"));
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const SCRIPT_CONTENT = `#!/bin/sh
|
|
11
|
-
exec npm exec --yes --prefix "\${TMPDIR:-/tmp}" --package=indexer-cli@latest -- indexer-cli "$@"
|
|
11
|
+
exec npm exec --yes --loglevel=silent --prefix "\${TMPDIR:-/tmp}" --package=indexer-cli@latest -- indexer-cli "$@"
|
|
12
12
|
`;
|
|
13
13
|
/**
|
|
14
14
|
* Ensure ~/.local/bin/idx exists and is executable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SKILLS_VERSION =
|
|
1
|
+
export declare const SKILLS_VERSION = 1077015671;
|