indexer-cli 0.10.5 → 0.10.6
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/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/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/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/package.json +1 -1
|
@@ -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":";;;;;AAiJA,wDA+TC;AAhdD,0DAA6B;AAE7B,oDAA8C;AAC9C,oDAAkD;AAClD,kDAAyD;AACzD,kEAIsC;AACtC,gDAA0D;AAC1D,uDAA8D;AAC9D,kDAA4D;AAC5D,wDAA4D;AAC5D,2DAAoD;AAepD,MAAM,kCAAkC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEvE,SAAS,cAAc,CAAC,IAUvB;IACA,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO;QAAE,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,SAAS;YACR,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;iBACnF,MAAM,GAAG,CAAC,CAAC;IACf,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5D,SAAS,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACzB,YAAsC,EACtC,OAA2B;IAO3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;IACF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;QACxD,OAAO;YACN,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,SAAS,EAAE,KAAK;SAChB,CAAC;IACH,CAAC;IAED,OAAO;QACN,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,SAAS,EAAE,IAAI;KACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAC1B,SAAiB,EACjB,mBAA2B;IAE3B,MAAM,mBAAmB,GAAG,mBAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACrD,CAAC,CAAC,mBAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEb,OAAO,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,OAA+B;IACtE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,OAAO,EAAE,OAAO;gBAC3B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,GAAG,CAAC,SAAS;oBACd,CAAC,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE;oBACvB,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAgB;IACtD,OAAO;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,wDAAwD,CAAC;SACrE,WAAW,CAAC,OAAO,EAAE,KAAK,wCAAyB,IAAI,CAAC;SACxD,MAAM,CACN,iBAAiB,EACjB,kEAAkE,EAClE,KAAK,CACL;SACA,MAAM,CACN,qBAAqB,EACrB,8CAA8C,EAC9C,IAAI,CACJ;SACA,MAAM,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;SACtE,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC;SAC7D,MAAM,CACN,KAAK,EAAE,OAMN,EAAE,EAAE;QACJ,MAAM,mBAAmB,GAAG,IAAA,wCAAsB,GAAE,CAAC;QACrD,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;QACtC,MAAM,gBAAgB,GAAG,cAAc,CAAC;QAExC,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;QACpB,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,QAAQ,GAAG,IAAI,+BAAmB,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC;YACJ,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAA,iCAAa,EAAC,QAAQ,EAAE,mBAAmB,EAAE;gBAClD,MAAM,EAAE,KAAK;aACb,CAAC,CAAC;YAEH,MAAM,QAAQ,GACb,MAAM,QAAQ,CAAC,0BAA0B,CAAC,6BAAkB,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,cAAc,GAAuB,IAAI,CAAC;YAC9C,IAAI,YAAgC,CAAC;YACrC,IAAI,oBAAwC,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,4BAAmB,EAAE,CAAC;gBACtC,MAAM,OAAO,GACZ,MAAM,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;gBACtD,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3D,QAAQ,CAAC,SAAS,CAAC,6BAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACnD,QAAQ,CAAC,WAAW,CAAC,6BAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACrD,QAAQ,CAAC,WAAW,CACnB,6BAAkB,EAClB,QAAQ,CAAC,EAAE,EACX,uBAAuB,EACvB,SAAS,CACT;aACD,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,YAAY;gBACnC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAA0B;gBAC7D,CAAC,CAAC,IAAI,CAAC;YACR,MAAM,YAAY,GAAG,eAAe;gBACnC,CAAC,CAAC,OAAO,EAAE,eAAe;oBACzB,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,IAAA,4CAA0B,EAC1B,eAAe,EACf,kBAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAC1B;gBACH,CAAC,CAAC,IAAI,CAAC;YAER,IAAI,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,kBAAkB,CACpC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACpC,mBAAmB,CACnB,CAAC;gBACF,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAEtD,+DAA+D;gBAC/D,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,OAAO,CACxC,6BAAkB,EAClB,QAAQ,CAAC,EAAE,EACX,oBAAoB,CACpB,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBAChB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC5C,QAAQ,CAAC,gBAAgB,CACxB,6BAAkB,EAClB,QAAQ,CAAC,EAAE,EACX,oBAAoB,CACpB;wBACD,QAAQ,CAAC,aAAa,CACrB,6BAAkB,EAClB,QAAQ,CAAC,EAAE,EACX,oBAAoB,CACpB;qBACD,CAAC,CAAC;oBAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBAC7D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBAC3B,IAAI,GAAG,CAAC,cAAc,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;4BACrD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC9B,CAAC;oBACF,CAAC;oBACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBAC3B,IAAI,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;4BACvC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAChC,CAAC;oBACF,CAAC;oBAED,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC3B,cAAc,GAAG,YAAY,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACP,cAAc,GAAG,YAAY,CAAC;oBAC/B,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,6DAA6D;oBAC7D,MAAM,qBAAqB,GAAG,GAAG,oBAAoB,GAAG,CAAC;oBACzD,MAAM,WAAW,GAAG,YAAY,EAAE,YAAY,IAAI,EAAE,CAAC;oBACrD,MAAM,aAAa,GAClB,YAAY,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC;oBAC9C,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,CACvB,eAAe,CAAC,IAAI,CACnB,CAAC,QAAQ,EAAE,EAAE,CACZ,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;wBACjD,oBAAoB,CACrB,CACF,EAAE,CAAC,CAAC,CAAC,CAAC;oBACP,MAAM,gBAAgB,GAAG,eAAe;wBACvC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;wBAC5B,CAAC,CAAC,IAAI,GAAG,CACP,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;6BACzB,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,CAC/B,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjC,kBAAkB,CACjB,QAAQ,EACR,mBAAmB,CACnB,CAAC,UAAU,CAAC,qBAAqB,CAAC,CACnC,CACD;6BACA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CACjC,CAAC;oBAEJ,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC/B,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;wBAC5D,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;4BAC1C,KAAK,MAAM,gBAAgB,IAAI,aAAa,CAAC,SAAS,CAAC;gCACtD,EAAE,EAAE,CAAC;gCACL,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;4BACzC,CAAC;wBACF,CAAC;wBACD,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CACnD,aAAa,CACb,EAAE,CAAC;4BACH,IACC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAC3D,CAAC;gCACF,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;4BACnC,CAAC;wBACF,CAAC;wBAED,cAAc,GAAG,IAAI,GAAG,CACvB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CACpC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAC3C,CACD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACP,YAAY,GAAG,8CAA8C,oBAAoB,8BAA8B,CAAC;wBAChH,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;oBAC5B,CAAC;gBACF,CAAC;YACF,CAAC;YAED,MAAM,WAAW,GAChB,cAAc,KAAK,IAAI;gBACtB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC,CAAC,KAAK,CAAC;YACV,MAAM,eAAe,GAAG;gBACvB,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC/D,GAAG,CAAC,OAAO,EAAE,YAAY;oBACxB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,kCAAkC,CAAC;aACtC,CAAC;YACF,MAAM,YAAY,GACjB,eAAe,CAAC,MAAM,KAAK,CAAC;gBAC3B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,WAAW,CAAC,MAAM,CAClB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,qCAAmB,EAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAC1D,CAAC;YACL,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEnE,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAChC,CAAC;YACF,IAAI,kBAA4C,CAAC;YACjD,MAAM,gBAAgB,GACrB,cAAc,KAAK,IAAI;gBACvB,cAAc,CAAC,IAAI,GAAG,CAAC;gBACvB,oBAAoB,KAAK,SAAS;gBAClC,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAE1C,IAAI,gBAAgB,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAC9C,6BAAkB,EAClB,QAAQ,CAAC,EAAE,CACX,CAAC;gBACF,MAAM,UAAU,GAAgC,EAAE,CAAC;gBACnD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC3B,IACC,GAAG,CAAC,cAAc,KAAK,UAAU;wBACjC,CAAC,GAAG,CAAC,MAAM;wBACX,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAC9B,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAC3B,CAAC;wBACF,SAAS;oBACV,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC/B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtC,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;gBACD,kBAAkB,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC1C,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBACpB,CAAC,CACF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,oBAAoB,GACzB,YAAY,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC;gBAC9C,MAAM,WAAW,GAAG,YAAY,EAAE,YAAY,IAAI,EAAE,CAAC;gBACrD,MAAM,gBAAgB,GACrB,cAAc,KAAK,IAAI;oBACtB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAI,GAAG,CACP,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;yBACzB,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,CAC/B,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CACzB,CACD;yBACA,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CACjC,CAAC;gBACL,kBAAkB;oBACjB,gBAAgB,KAAK,IAAI;wBACxB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,MAAM,CAAC,WAAW,CAClB,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAC1C,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAClD,CACD,CAAC;YACN,CAAC;YACD,MAAM,mBAAmB,GAAG,iBAAiB,CAC5C,kBAAkB,EAClB,OAAO,CACP,CAAC;YAEF,IAAI,mBAAmB,CAAC,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CACZ,WAAW,mBAAmB,CAAC,KAAK,OAAO,mBAAmB,CAAC,KAAK,4CAA4C,CAChH,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC/B,cAAc;iBACZ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACnC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAClC,CAAC;YAEF,MAAM,YAAY,GAAG,gBAAgB;gBACpC,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,WAAW,GAAgB;gBAChC,OAAO,EAAE,YAAY;qBACnB,MAAM,CACN,CAAC,IAAI,EAAE,EAAE,CACR,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAC9D;qBACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,OAAO,EAAE,cAAc;qBACrB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;qBACnC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE,MAAM,CAAC,QAAQ;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC3B,CAAC,CAAC;gBACJ,YAAY,EAAE,mBAAmB,CAAC,YAAY;aAC9C,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,WAAW,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;gBAAS,CAAC;YACV,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,CACD,CAAC;AACJ,CAAC"}
|
|
@@ -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`
|
|
@@ -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"}
|