@cesarandreslopez/occ 0.10.0 → 0.12.0

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.
Files changed (154) hide show
  1. package/README.md +31 -8
  2. package/dist/src/cli.d.ts +16 -0
  3. package/dist/src/cli.js +46 -4
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/code/build.d.ts +22 -0
  6. package/dist/src/code/build.js +47 -13
  7. package/dist/src/code/build.js.map +1 -1
  8. package/dist/src/code/cache.js +30 -1
  9. package/dist/src/code/cache.js.map +1 -1
  10. package/dist/src/code/check.js +46 -6
  11. package/dist/src/code/check.js.map +1 -1
  12. package/dist/src/code/command.js +125 -69
  13. package/dist/src/code/command.js.map +1 -1
  14. package/dist/src/code/context.d.ts +54 -0
  15. package/dist/src/code/context.js +67 -0
  16. package/dist/src/code/context.js.map +1 -0
  17. package/dist/src/code/diff.d.ts +12 -2
  18. package/dist/src/code/diff.js +15 -3
  19. package/dist/src/code/diff.js.map +1 -1
  20. package/dist/src/code/discover.d.ts +2 -2
  21. package/dist/src/code/discover.js +8 -10
  22. package/dist/src/code/discover.js.map +1 -1
  23. package/dist/src/code/focus.js +34 -26
  24. package/dist/src/code/focus.js.map +1 -1
  25. package/dist/src/code/incremental.js +1 -1
  26. package/dist/src/code/incremental.js.map +1 -1
  27. package/dist/src/code/index-io.js +10 -2
  28. package/dist/src/code/index-io.js.map +1 -1
  29. package/dist/src/code/isolated-chunk-runner.js +17 -2
  30. package/dist/src/code/isolated-chunk-runner.js.map +1 -1
  31. package/dist/src/code/isolated-runner.js +17 -3
  32. package/dist/src/code/isolated-runner.js.map +1 -1
  33. package/dist/src/code/isolated.js +32 -6
  34. package/dist/src/code/isolated.js.map +1 -1
  35. package/dist/src/code/languages.js +23 -3
  36. package/dist/src/code/languages.js.map +1 -1
  37. package/dist/src/code/map.d.ts +47 -0
  38. package/dist/src/code/map.js +155 -12
  39. package/dist/src/code/map.js.map +1 -1
  40. package/dist/src/code/output.d.ts +3 -1
  41. package/dist/src/code/output.js +11 -0
  42. package/dist/src/code/output.js.map +1 -1
  43. package/dist/src/code/parsers.js +115 -36
  44. package/dist/src/code/parsers.js.map +1 -1
  45. package/dist/src/code/preview.js +24 -22
  46. package/dist/src/code/preview.js.map +1 -1
  47. package/dist/src/code/query.js +0 -0
  48. package/dist/src/code/query.js.map +1 -1
  49. package/dist/src/code/search.d.ts +39 -0
  50. package/dist/src/code/search.js +154 -0
  51. package/dist/src/code/search.js.map +1 -0
  52. package/dist/src/code/session.d.ts +9 -3
  53. package/dist/src/code/session.js +16 -4
  54. package/dist/src/code/session.js.map +1 -1
  55. package/dist/src/code/slim.d.ts +2 -0
  56. package/dist/src/code/slim.js +16 -1
  57. package/dist/src/code/slim.js.map +1 -1
  58. package/dist/src/code/store.d.ts +23 -0
  59. package/dist/src/code/store.js +61 -6
  60. package/dist/src/code/store.js.map +1 -1
  61. package/dist/src/code/tree-sitter.d.ts +1 -0
  62. package/dist/src/code/tree-sitter.js +11 -10
  63. package/dist/src/code/tree-sitter.js.map +1 -1
  64. package/dist/src/code/tree.d.ts +7 -0
  65. package/dist/src/code/tree.js +364 -0
  66. package/dist/src/code/tree.js.map +1 -0
  67. package/dist/src/code/types.d.ts +131 -0
  68. package/dist/src/code/types.js +47 -0
  69. package/dist/src/code/types.js.map +1 -1
  70. package/dist/src/doc/batch.d.ts +2 -0
  71. package/dist/src/doc/batch.js +3 -1
  72. package/dist/src/doc/batch.js.map +1 -1
  73. package/dist/src/doc/discover.js +2 -2
  74. package/dist/src/doc/discover.js.map +1 -1
  75. package/dist/src/doc/inspect-odt.js +3 -1
  76. package/dist/src/doc/inspect-odt.js.map +1 -1
  77. package/dist/src/doc/inspect-pdf.d.ts +6 -0
  78. package/dist/src/doc/inspect-pdf.js +11 -1
  79. package/dist/src/doc/inspect-pdf.js.map +1 -1
  80. package/dist/src/doc/inspect.js +2 -2
  81. package/dist/src/doc/inspect.js.map +1 -1
  82. package/dist/src/doc/types.d.ts +1 -0
  83. package/dist/src/doc/types.js +7 -0
  84. package/dist/src/doc/types.js.map +1 -1
  85. package/dist/src/git/api.d.ts +7 -1
  86. package/dist/src/git/api.js +32 -10
  87. package/dist/src/git/api.js.map +1 -1
  88. package/dist/src/git/client.js +5 -1
  89. package/dist/src/git/client.js.map +1 -1
  90. package/dist/src/git/command.js +22 -2
  91. package/dist/src/git/command.js.map +1 -1
  92. package/dist/src/git/output.d.ts +2 -1
  93. package/dist/src/git/output.js +7 -1
  94. package/dist/src/git/output.js.map +1 -1
  95. package/dist/src/git/parse.d.ts +2 -1
  96. package/dist/src/git/parse.js +222 -2
  97. package/dist/src/git/parse.js.map +1 -1
  98. package/dist/src/git/types.d.ts +49 -5
  99. package/dist/src/git/types.js +21 -0
  100. package/dist/src/git/types.js.map +1 -1
  101. package/dist/src/health.d.ts +8 -0
  102. package/dist/src/health.js +15 -0
  103. package/dist/src/health.js.map +1 -1
  104. package/dist/src/index.d.ts +23 -11
  105. package/dist/src/index.js +14 -5
  106. package/dist/src/index.js.map +1 -1
  107. package/dist/src/inspect/xlsx-cells.js +4 -2
  108. package/dist/src/inspect/xlsx-cells.js.map +1 -1
  109. package/dist/src/markdown/convert.d.ts +9 -0
  110. package/dist/src/markdown/convert.js +23 -1
  111. package/dist/src/markdown/convert.js.map +1 -1
  112. package/dist/src/output/tabular.js +33 -16
  113. package/dist/src/output/tabular.js.map +1 -1
  114. package/dist/src/parsers/odf.js +4 -2
  115. package/dist/src/parsers/odf.js.map +1 -1
  116. package/dist/src/scc.d.ts +3 -0
  117. package/dist/src/scc.js +2 -0
  118. package/dist/src/scc.js.map +1 -1
  119. package/dist/src/skills/command.d.ts +6 -0
  120. package/dist/src/skills/command.js +18 -3
  121. package/dist/src/skills/command.js.map +1 -1
  122. package/dist/src/slide/inspect-odp.js +3 -2
  123. package/dist/src/slide/inspect-odp.js.map +1 -1
  124. package/dist/src/slide/inspect-pptx.js +4 -3
  125. package/dist/src/slide/inspect-pptx.js.map +1 -1
  126. package/dist/src/stats.js +3 -1
  127. package/dist/src/stats.js.map +1 -1
  128. package/dist/src/structure/extract.js +16 -3
  129. package/dist/src/structure/extract.js.map +1 -1
  130. package/dist/src/utils.d.ts +7 -0
  131. package/dist/src/utils.js +19 -0
  132. package/dist/src/utils.js.map +1 -1
  133. package/dist/src/walker.js +15 -3
  134. package/dist/src/walker.js.map +1 -1
  135. package/dist/src/workspace/analyze.d.ts +3 -0
  136. package/dist/src/workspace/analyze.js +26 -15
  137. package/dist/src/workspace/analyze.js.map +1 -1
  138. package/dist/src/workspace/bundle.js +11 -3
  139. package/dist/src/workspace/bundle.js.map +1 -1
  140. package/dist/src/workspace/command.d.ts +6 -0
  141. package/dist/src/workspace/command.js +73 -44
  142. package/dist/src/workspace/command.js.map +1 -1
  143. package/dist/src/workspace/describe.js +22 -13
  144. package/dist/src/workspace/describe.js.map +1 -1
  145. package/dist/src/workspace/documents.d.ts +3 -0
  146. package/dist/src/workspace/documents.js +25 -14
  147. package/dist/src/workspace/documents.js.map +1 -1
  148. package/dist/src/workspace/prepare.js +3 -1
  149. package/dist/src/workspace/prepare.js.map +1 -1
  150. package/dist/src/workspace/types.d.ts +4 -0
  151. package/package.json +12 -11
  152. package/skills/occ/SKILL.md +27 -24
  153. package/skills/occ/reference/code.md +62 -1
  154. package/skills/occ/reference/git.md +17 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter.js","sourceRoot":"","sources":["../../../src/code/tree-sitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-sitter.js","sourceRoot":"","sources":["../../../src/code/tree-sitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CodebaseIndex, DirectoryTreeOptions, DirectoryTreeResult } from './types.js';
2
+ export interface BuildDirectoryTreeOptions extends DirectoryTreeOptions {
3
+ countTokens?: (text: string) => number;
4
+ }
5
+ export declare function directoryTreeHeader(result: Pick<DirectoryTreeResult, 'root' | 'mode' | 'totalFiles'>): string;
6
+ export declare function directoryTreeFooter(result: Pick<DirectoryTreeResult, 'truncated' | 'truncatedPaths'>): string | null;
7
+ export declare function buildDirectoryTree(index: CodebaseIndex, options?: BuildDirectoryTreeOptions): DirectoryTreeResult;
@@ -0,0 +1,364 @@
1
+ import { estimateTokenCount } from '../tokens.js';
2
+ import { rankNodesCached } from './rank.js';
3
+ import { toNormalizedSymbolKind } from './types.js';
4
+ const DEFAULT_TREE_MODE = 'compact';
5
+ const DEFAULT_MAX_DEPTH = 6;
6
+ const DEFAULT_MAX_ENTRIES_PER_DIR = 50;
7
+ const DEFAULT_TOKEN_BUDGET = 4096;
8
+ const DEFAULT_SYMBOLS_PER_DIRECTORY = 3;
9
+ function normalizeTreePath(value) {
10
+ return value.replace(/\\/g, '/').replace(/^\.\//, '').replace(/\/+/g, '/').replace(/\/$/, '');
11
+ }
12
+ function normalizeFocusPath(value) {
13
+ if (!value)
14
+ return undefined;
15
+ const normalized = normalizeTreePath(value.trim());
16
+ if (!normalized || normalized === '.')
17
+ return undefined;
18
+ return normalized;
19
+ }
20
+ function createDirectory(name, path) {
21
+ return {
22
+ name,
23
+ path,
24
+ directories: new Map(),
25
+ files: [],
26
+ fileCount: 0,
27
+ };
28
+ }
29
+ function isInFocus(relativePath, focusPath) {
30
+ if (!focusPath)
31
+ return true;
32
+ return relativePath === focusPath || relativePath.startsWith(`${focusPath}/`);
33
+ }
34
+ function pathWithinFocus(relativePath, focusPath) {
35
+ if (!focusPath)
36
+ return relativePath;
37
+ if (relativePath === focusPath)
38
+ return relativePath.split('/').at(-1) ?? relativePath;
39
+ return relativePath.slice(focusPath.length + 1);
40
+ }
41
+ function joinTreePath(base, segment) {
42
+ if (!base || base === '.')
43
+ return segment;
44
+ return `${base}/${segment}`;
45
+ }
46
+ function insertFile(root, file, focusPath) {
47
+ const relativePath = normalizeTreePath(file.relativePath);
48
+ const localPath = pathWithinFocus(relativePath, focusPath);
49
+ const parts = localPath.split('/').filter(Boolean);
50
+ if (parts.length === 0)
51
+ return;
52
+ root.fileCount++;
53
+ let current = root;
54
+ let currentPath = focusPath ?? '';
55
+ for (const directoryName of parts.slice(0, -1)) {
56
+ currentPath = joinTreePath(currentPath, directoryName);
57
+ let child = current.directories.get(directoryName);
58
+ if (!child) {
59
+ child = createDirectory(directoryName, currentPath);
60
+ current.directories.set(directoryName, child);
61
+ }
62
+ child.fileCount++;
63
+ current = child;
64
+ }
65
+ current.files.push(file);
66
+ }
67
+ function symbolIdentity(parts) {
68
+ return [parts.type, parts.name, parts.line ?? '', parts.containerName ?? ''].join('|');
69
+ }
70
+ function symbolsForFile(file, rankedNodes) {
71
+ const byKey = new Map();
72
+ for (const symbol of file.symbols) {
73
+ byKey.set(symbolIdentity({ type: symbol.type, name: symbol.name, line: symbol.line, containerName: symbol.containerName }), symbol);
74
+ }
75
+ const symbols = [];
76
+ const seen = new Set();
77
+ for (const ranked of rankedNodes) {
78
+ const key = symbolIdentity({
79
+ type: ranked.type,
80
+ name: ranked.name,
81
+ line: ranked.line,
82
+ containerName: ranked.containerName,
83
+ });
84
+ if (seen.has(key))
85
+ continue;
86
+ const parsed = byKey.get(key);
87
+ if (!parsed)
88
+ continue;
89
+ seen.add(key);
90
+ symbols.push({
91
+ nodeId: parsed.nodeId,
92
+ name: parsed.name,
93
+ kind: toNormalizedSymbolKind(parsed.type, parsed.containerName),
94
+ signature: parsed.fullSignature ?? parsed.signature ?? parsed.name,
95
+ line: parsed.line,
96
+ relativePath: file.relativePath,
97
+ });
98
+ }
99
+ return symbols;
100
+ }
101
+ function computeBestFiles(directory, fileScoresByPath) {
102
+ let bestScore;
103
+ let bestFile;
104
+ for (const file of directory.files) {
105
+ const score = fileScoresByPath.get(file.path);
106
+ if (!score)
107
+ continue;
108
+ if (!bestScore ||
109
+ score.score > bestScore.score ||
110
+ (score.score === bestScore.score && file.relativePath.localeCompare(bestScore.relativePath) < 0)) {
111
+ bestScore = score;
112
+ bestFile = file;
113
+ }
114
+ }
115
+ for (const child of directory.directories.values()) {
116
+ const childScore = computeBestFiles(child, fileScoresByPath);
117
+ if (!childScore || !child.bestFile)
118
+ continue;
119
+ if (!bestScore ||
120
+ childScore.score > bestScore.score ||
121
+ (childScore.score === bestScore.score && child.bestFile.relativePath.localeCompare(bestScore.relativePath) < 0)) {
122
+ bestScore = childScore;
123
+ bestFile = child.bestFile;
124
+ }
125
+ }
126
+ directory.bestFile = bestFile;
127
+ directory.bestFileScore = bestScore;
128
+ return bestScore;
129
+ }
130
+ function sortedDirectories(directory) {
131
+ return [...directory.directories.values()].sort((a, b) => a.name.localeCompare(b.name));
132
+ }
133
+ function sortedFiles(directory) {
134
+ return [...directory.files].sort((a, b) => a.relativePath.localeCompare(b.relativePath));
135
+ }
136
+ function collapseDirectory(directory, mode) {
137
+ if (mode === 'verbose')
138
+ return directory;
139
+ let current = directory;
140
+ while (current.files.length === 0 && current.directories.size === 1) {
141
+ const child = [...current.directories.values()][0];
142
+ if (!child)
143
+ break;
144
+ current = child;
145
+ }
146
+ return current;
147
+ }
148
+ function displayNameForDirectory(directory, focusPath) {
149
+ if (!focusPath)
150
+ return directory.path;
151
+ if (directory.path === focusPath)
152
+ return directory.name;
153
+ return directory.path.startsWith(`${focusPath}/`) ? directory.path.slice(focusPath.length + 1) : directory.path;
154
+ }
155
+ function directoryEntry(directory, depth, mode, focusPath, rankedSymbolsByPath) {
156
+ const entry = {
157
+ kind: 'directory',
158
+ path: directory.path,
159
+ name: displayNameForDirectory(directory, focusPath),
160
+ depth,
161
+ fileCount: directory.fileCount,
162
+ };
163
+ if (mode === 'map' && directory.bestFile && directory.bestFileScore) {
164
+ entry.score = directory.bestFileScore.score;
165
+ entry.normalizedScore = directory.bestFileScore.normalizedScore;
166
+ const symbols = symbolsForFile(directory.bestFile, rankedSymbolsByPath.get(directory.bestFile.path) ?? []).slice(0, DEFAULT_SYMBOLS_PER_DIRECTORY);
167
+ if (symbols.length > 0)
168
+ entry.symbols = symbols;
169
+ }
170
+ return entry;
171
+ }
172
+ function fileEntry(file, depth, fileScoresByPath) {
173
+ const score = fileScoresByPath.get(file.path);
174
+ const entry = {
175
+ kind: 'file',
176
+ path: file.relativePath,
177
+ name: file.relativePath.split('/').at(-1) ?? file.relativePath,
178
+ depth,
179
+ language: file.language,
180
+ };
181
+ if (score) {
182
+ entry.score = score.score;
183
+ entry.normalizedScore = score.normalizedScore;
184
+ }
185
+ return entry;
186
+ }
187
+ function renderEntryLines(entry) {
188
+ const indent = ' '.repeat(entry.depth);
189
+ if (entry.kind === 'file') {
190
+ const language = entry.language ? ` [${entry.language}]` : '';
191
+ return [`${indent}- ${entry.name}${language}`];
192
+ }
193
+ const count = entry.fileCount === 1 ? '1 file' : `${entry.fileCount ?? 0} files`;
194
+ const lines = [`${indent}+ ${entry.name}/ (${count})`];
195
+ for (const symbol of entry.symbols ?? []) {
196
+ const location = symbol.line ? `${symbol.relativePath}:${symbol.line}` : symbol.relativePath;
197
+ lines.push(`${indent} - ${location} ${symbol.signature}`);
198
+ }
199
+ return lines;
200
+ }
201
+ function addTruncatedPath(paths, treePath) {
202
+ if (treePath.length > 0)
203
+ paths.add(treePath);
204
+ }
205
+ function collectDisplayEntries(directory, options, depth = 0) {
206
+ const displays = [];
207
+ const directoryItems = sortedDirectories(directory).map(child => ({
208
+ kind: 'directory',
209
+ directory: collapseDirectory(child, options.mode),
210
+ sortPath: child.path,
211
+ }));
212
+ const fileItems = sortedFiles(directory).map(file => ({
213
+ kind: 'file',
214
+ file,
215
+ sortPath: file.relativePath,
216
+ }));
217
+ const children = [...directoryItems, ...fileItems].sort((a, b) => {
218
+ if (a.kind !== b.kind)
219
+ return a.kind === 'directory' ? -1 : 1;
220
+ return a.sortPath.localeCompare(b.sortPath);
221
+ });
222
+ const admitted = children.slice(0, options.maxEntriesPerDir);
223
+ for (const omitted of children.slice(options.maxEntriesPerDir)) {
224
+ addTruncatedPath(options.truncatedPaths, omitted.sortPath);
225
+ }
226
+ for (const child of admitted) {
227
+ if (depth > options.maxDepth) {
228
+ addTruncatedPath(options.truncatedPaths, child.sortPath);
229
+ continue;
230
+ }
231
+ if (child.kind === 'file') {
232
+ const entry = fileEntry(child.file, depth, options.fileScoresByPath);
233
+ displays.push({ entry, lines: renderEntryLines(entry) });
234
+ continue;
235
+ }
236
+ const target = child.directory;
237
+ const entry = directoryEntry(target, depth, options.mode, options.focusPath, options.rankedSymbolsByPath);
238
+ displays.push({ entry, lines: renderEntryLines(entry) });
239
+ if (depth === options.maxDepth) {
240
+ if (target.fileCount > 0)
241
+ addTruncatedPath(options.truncatedPaths, target.path);
242
+ continue;
243
+ }
244
+ displays.push(...collectDisplayEntries(target, options, depth + 1));
245
+ }
246
+ return displays;
247
+ }
248
+ export function directoryTreeHeader(result) {
249
+ return `Directory Tree: ${result.root} (${result.mode}, ${result.totalFiles} files)`;
250
+ }
251
+ export function directoryTreeFooter(result) {
252
+ if (!result.truncated)
253
+ return null;
254
+ return `truncated: ${result.truncatedPaths.length} path(s)`;
255
+ }
256
+ function fixedBudgetReserve(root, mode, totalFiles, countTokens) {
257
+ const headerTokens = countTokens(directoryTreeHeader({ root, mode, totalFiles }));
258
+ const footerTokens = countTokens('truncated: 000 path(s)');
259
+ const newlineTokens = countTokens('\n\n');
260
+ return headerTokens + footerTokens + newlineTokens;
261
+ }
262
+ function enforceBudgets(candidates, truncatedPaths, options) {
263
+ const entries = [];
264
+ const lines = [];
265
+ const tokenBudget = options.tokenBudget;
266
+ const byteBudget = options.byteBudget;
267
+ const tokenReserve = tokenBudget == null ? 0 : fixedBudgetReserve(options.root, options.mode, options.totalFiles, options.countTokens);
268
+ const byteReserve = byteBudget == null
269
+ ? 0
270
+ : Buffer.byteLength(`${directoryTreeHeader({ root: options.root, mode: options.mode, totalFiles: options.totalFiles })}\ntruncated: 000 path(s)\n`, 'utf8');
271
+ let tokensUsed = tokenReserve;
272
+ let bytesUsed = byteReserve;
273
+ for (const candidate of candidates) {
274
+ const text = candidate.lines.join('\n');
275
+ const tokenCost = options.countTokens(`${text}\n`);
276
+ const byteCost = Buffer.byteLength(`${text}\n`, 'utf8');
277
+ const exceedsTokens = tokenBudget != null && tokensUsed + tokenCost > tokenBudget;
278
+ const exceedsBytes = byteBudget != null && bytesUsed + byteCost > byteBudget;
279
+ if (exceedsTokens || exceedsBytes) {
280
+ addTruncatedPath(truncatedPaths, candidate.entry.path);
281
+ continue;
282
+ }
283
+ entries.push(candidate.entry);
284
+ lines.push(...candidate.lines);
285
+ tokensUsed += tokenCost;
286
+ bytesUsed += byteCost;
287
+ }
288
+ if (tokenBudget == null)
289
+ tokensUsed = options.countTokens(lines.join('\n'));
290
+ if (byteBudget == null)
291
+ bytesUsed = Buffer.byteLength(lines.join('\n'), 'utf8');
292
+ return { entries, lines, tokensUsed, bytesUsed };
293
+ }
294
+ export function buildDirectoryTree(index, options = {}) {
295
+ const mode = options.mode ?? DEFAULT_TREE_MODE;
296
+ const maxDepth = options.maxDepth ?? DEFAULT_MAX_DEPTH;
297
+ const maxEntriesPerDir = options.maxEntriesPerDir ?? DEFAULT_MAX_ENTRIES_PER_DIR;
298
+ const tokenBudget = options.tokenBudget ?? DEFAULT_TOKEN_BUDGET;
299
+ const byteBudget = options.byteBudget;
300
+ const countTokens = options.countTokens ?? estimateTokenCount;
301
+ const focusPath = normalizeFocusPath(options.focusPath);
302
+ const root = createDirectory(focusPath ?? '.', focusPath ?? '.');
303
+ for (const file of [...index.files].sort((a, b) => a.relativePath.localeCompare(b.relativePath))) {
304
+ const relativePath = normalizeTreePath(file.relativePath);
305
+ if (!isInFocus(relativePath, focusPath))
306
+ continue;
307
+ insertFile(root, file, focusPath);
308
+ }
309
+ const ranking = rankNodesCached(index);
310
+ const fileScoresByPath = new Map(ranking.fileScores.map(score => [score.path, score]));
311
+ const rankedSymbolsByPath = new Map();
312
+ for (const node of ranking.nodes) {
313
+ if (node.type === 'file' || node.type === 'module')
314
+ continue;
315
+ const list = rankedSymbolsByPath.get(node.path);
316
+ if (list)
317
+ list.push(node);
318
+ else
319
+ rankedSymbolsByPath.set(node.path, [node]);
320
+ }
321
+ computeBestFiles(root, fileScoresByPath);
322
+ const truncated = new Set();
323
+ const candidates = collectDisplayEntries(root, {
324
+ mode,
325
+ focusPath,
326
+ maxDepth,
327
+ maxEntriesPerDir,
328
+ fileScoresByPath,
329
+ rankedSymbolsByPath,
330
+ truncatedPaths: truncated,
331
+ });
332
+ const budgeted = enforceBudgets(candidates, truncated, {
333
+ root: root.path,
334
+ mode,
335
+ totalFiles: root.fileCount,
336
+ tokenBudget,
337
+ byteBudget,
338
+ countTokens,
339
+ });
340
+ return {
341
+ root: root.path,
342
+ focusPath,
343
+ mode,
344
+ maxDepth,
345
+ maxEntriesPerDir,
346
+ tokenBudget,
347
+ tokensUsed: budgeted.tokensUsed,
348
+ byteBudget,
349
+ bytesUsed: budgeted.bytesUsed,
350
+ totalFiles: root.fileCount,
351
+ totalDirectories: countDirectories(root),
352
+ entries: budgeted.entries,
353
+ lines: budgeted.lines,
354
+ truncated: truncated.size > 0,
355
+ truncatedPaths: [...truncated].sort((a, b) => a.localeCompare(b)),
356
+ };
357
+ }
358
+ function countDirectories(directory) {
359
+ let count = directory.path === '.' ? 0 : 1;
360
+ for (const child of directory.directories.values())
361
+ count += countDirectories(child);
362
+ return count;
363
+ }
364
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/code/tree.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,7 @@ export declare const ParsedSymbolSchema: z.ZodObject<{
102
102
  variable: "variable";
103
103
  }>;
104
104
  name: z.ZodString;
105
+ nodeId: z.ZodOptional<z.ZodString>;
105
106
  line: z.ZodNumber;
106
107
  endLine: z.ZodOptional<z.ZodNumber>;
107
108
  startColumn: z.ZodOptional<z.ZodNumber>;
@@ -171,6 +172,7 @@ export declare const ParsedFileSchema: z.ZodObject<{
171
172
  variable: "variable";
172
173
  }>;
173
174
  name: z.ZodString;
175
+ nodeId: z.ZodOptional<z.ZodString>;
174
176
  line: z.ZodNumber;
175
177
  endLine: z.ZodOptional<z.ZodNumber>;
176
178
  startColumn: z.ZodOptional<z.ZodNumber>;
@@ -333,6 +335,7 @@ export declare const CodebaseIndexSchema: z.ZodObject<{
333
335
  variable: "variable";
334
336
  }>;
335
337
  name: z.ZodString;
338
+ nodeId: z.ZodOptional<z.ZodString>;
336
339
  line: z.ZodNumber;
337
340
  endLine: z.ZodOptional<z.ZodNumber>;
338
341
  startColumn: z.ZodOptional<z.ZodNumber>;
@@ -475,6 +478,134 @@ export declare const CodebaseIndexSchema: z.ZodObject<{
475
478
  }, z.core.$strip>>;
476
479
  }, z.core.$strip>;
477
480
  export type CodebaseIndex = z.infer<typeof CodebaseIndexSchema>;
481
+ export declare const DirectoryTreeModeSchema: z.ZodEnum<{
482
+ map: "map";
483
+ compact: "compact";
484
+ verbose: "verbose";
485
+ }>;
486
+ export type DirectoryTreeMode = z.infer<typeof DirectoryTreeModeSchema>;
487
+ export declare const DirectoryTreeOptionsSchema: z.ZodObject<{
488
+ mode: z.ZodOptional<z.ZodEnum<{
489
+ map: "map";
490
+ compact: "compact";
491
+ verbose: "verbose";
492
+ }>>;
493
+ maxDepth: z.ZodOptional<z.ZodNumber>;
494
+ maxEntriesPerDir: z.ZodOptional<z.ZodNumber>;
495
+ tokenBudget: z.ZodOptional<z.ZodNumber>;
496
+ byteBudget: z.ZodOptional<z.ZodNumber>;
497
+ focusPath: z.ZodOptional<z.ZodString>;
498
+ }, z.core.$strip>;
499
+ export type DirectoryTreeOptions = z.infer<typeof DirectoryTreeOptionsSchema>;
500
+ export declare const DirectoryTreeSymbolSchema: z.ZodObject<{
501
+ nodeId: z.ZodOptional<z.ZodString>;
502
+ name: z.ZodString;
503
+ kind: z.ZodEnum<{
504
+ function: "function";
505
+ file: "file";
506
+ enum: "enum";
507
+ type: "type";
508
+ module: "module";
509
+ class: "class";
510
+ interface: "interface";
511
+ variable: "variable";
512
+ parameter: "parameter";
513
+ method: "method";
514
+ other: "other";
515
+ }>;
516
+ signature: z.ZodString;
517
+ line: z.ZodOptional<z.ZodNumber>;
518
+ relativePath: z.ZodString;
519
+ }, z.core.$strip>;
520
+ export type DirectoryTreeSymbol = z.infer<typeof DirectoryTreeSymbolSchema>;
521
+ export declare const DirectoryTreeEntrySchema: z.ZodObject<{
522
+ kind: z.ZodEnum<{
523
+ file: "file";
524
+ directory: "directory";
525
+ }>;
526
+ path: z.ZodString;
527
+ name: z.ZodString;
528
+ depth: z.ZodNumber;
529
+ fileCount: z.ZodOptional<z.ZodNumber>;
530
+ language: z.ZodOptional<z.ZodString>;
531
+ score: z.ZodOptional<z.ZodNumber>;
532
+ normalizedScore: z.ZodOptional<z.ZodNumber>;
533
+ symbols: z.ZodOptional<z.ZodArray<z.ZodObject<{
534
+ nodeId: z.ZodOptional<z.ZodString>;
535
+ name: z.ZodString;
536
+ kind: z.ZodEnum<{
537
+ function: "function";
538
+ file: "file";
539
+ enum: "enum";
540
+ type: "type";
541
+ module: "module";
542
+ class: "class";
543
+ interface: "interface";
544
+ variable: "variable";
545
+ parameter: "parameter";
546
+ method: "method";
547
+ other: "other";
548
+ }>;
549
+ signature: z.ZodString;
550
+ line: z.ZodOptional<z.ZodNumber>;
551
+ relativePath: z.ZodString;
552
+ }, z.core.$strip>>>;
553
+ }, z.core.$strip>;
554
+ export type DirectoryTreeEntry = z.infer<typeof DirectoryTreeEntrySchema>;
555
+ export declare const DirectoryTreeResultSchema: z.ZodObject<{
556
+ root: z.ZodString;
557
+ focusPath: z.ZodOptional<z.ZodString>;
558
+ mode: z.ZodEnum<{
559
+ map: "map";
560
+ compact: "compact";
561
+ verbose: "verbose";
562
+ }>;
563
+ maxDepth: z.ZodNumber;
564
+ maxEntriesPerDir: z.ZodNumber;
565
+ tokenBudget: z.ZodOptional<z.ZodNumber>;
566
+ tokensUsed: z.ZodNumber;
567
+ byteBudget: z.ZodOptional<z.ZodNumber>;
568
+ bytesUsed: z.ZodNumber;
569
+ totalFiles: z.ZodNumber;
570
+ totalDirectories: z.ZodNumber;
571
+ entries: z.ZodArray<z.ZodObject<{
572
+ kind: z.ZodEnum<{
573
+ file: "file";
574
+ directory: "directory";
575
+ }>;
576
+ path: z.ZodString;
577
+ name: z.ZodString;
578
+ depth: z.ZodNumber;
579
+ fileCount: z.ZodOptional<z.ZodNumber>;
580
+ language: z.ZodOptional<z.ZodString>;
581
+ score: z.ZodOptional<z.ZodNumber>;
582
+ normalizedScore: z.ZodOptional<z.ZodNumber>;
583
+ symbols: z.ZodOptional<z.ZodArray<z.ZodObject<{
584
+ nodeId: z.ZodOptional<z.ZodString>;
585
+ name: z.ZodString;
586
+ kind: z.ZodEnum<{
587
+ function: "function";
588
+ file: "file";
589
+ enum: "enum";
590
+ type: "type";
591
+ module: "module";
592
+ class: "class";
593
+ interface: "interface";
594
+ variable: "variable";
595
+ parameter: "parameter";
596
+ method: "method";
597
+ other: "other";
598
+ }>;
599
+ signature: z.ZodString;
600
+ line: z.ZodOptional<z.ZodNumber>;
601
+ relativePath: z.ZodString;
602
+ }, z.core.$strip>>>;
603
+ }, z.core.$strip>>;
604
+ lines: z.ZodArray<z.ZodString>;
605
+ truncated: z.ZodBoolean;
606
+ truncatedPaths: z.ZodArray<z.ZodString>;
607
+ }, z.core.$strip>;
608
+ export type DirectoryTreeResult = z.infer<typeof DirectoryTreeResultSchema>;
478
609
  export declare const CodeSearchResultSchema: z.ZodObject<{
479
610
  node: z.ZodObject<{
480
611
  id: z.ZodString;
@@ -80,6 +80,8 @@ export const ParsedImportSchema = z.object({
80
80
  export const ParsedSymbolSchema = z.object({
81
81
  type: z.enum(['function', 'class', 'interface', 'type-alias', 'enum', 'variable']),
82
82
  name: z.string(),
83
+ /** Id of this symbol's graph node; stamped during index assembly. */
84
+ nodeId: z.string().optional(),
83
85
  line: z.number(),
84
86
  endLine: z.number().optional(),
85
87
  startColumn: z.number().optional(),
@@ -185,6 +187,51 @@ export const CodebaseIndexSchema = z.object({
185
187
  skippedFiles: z.array(CodeSkippedFileSchema),
186
188
  truncated: IndexTruncationSchema.optional(),
187
189
  });
190
+ export const DirectoryTreeModeSchema = z.enum(['compact', 'verbose', 'map']);
191
+ export const DirectoryTreeOptionsSchema = z.object({
192
+ mode: DirectoryTreeModeSchema.optional(),
193
+ maxDepth: z.number().int().nonnegative().optional(),
194
+ maxEntriesPerDir: z.number().int().positive().optional(),
195
+ tokenBudget: z.number().int().positive().optional(),
196
+ byteBudget: z.number().int().positive().optional(),
197
+ focusPath: z.string().optional(),
198
+ });
199
+ export const DirectoryTreeSymbolSchema = z.object({
200
+ nodeId: z.string().optional(),
201
+ name: z.string(),
202
+ kind: NormalizedSymbolKindSchema,
203
+ signature: z.string(),
204
+ line: z.number().optional(),
205
+ relativePath: z.string(),
206
+ });
207
+ export const DirectoryTreeEntrySchema = z.object({
208
+ kind: z.enum(['directory', 'file']),
209
+ path: z.string(),
210
+ name: z.string(),
211
+ depth: z.number(),
212
+ fileCount: z.number().optional(),
213
+ language: z.string().optional(),
214
+ score: z.number().optional(),
215
+ normalizedScore: z.number().optional(),
216
+ symbols: z.array(DirectoryTreeSymbolSchema).optional(),
217
+ });
218
+ export const DirectoryTreeResultSchema = z.object({
219
+ root: z.string(),
220
+ focusPath: z.string().optional(),
221
+ mode: DirectoryTreeModeSchema,
222
+ maxDepth: z.number(),
223
+ maxEntriesPerDir: z.number(),
224
+ tokenBudget: z.number().optional(),
225
+ tokensUsed: z.number(),
226
+ byteBudget: z.number().optional(),
227
+ bytesUsed: z.number(),
228
+ totalFiles: z.number(),
229
+ totalDirectories: z.number(),
230
+ entries: z.array(DirectoryTreeEntrySchema),
231
+ lines: z.array(z.string()),
232
+ truncated: z.boolean(),
233
+ truncatedPaths: z.array(z.string()),
234
+ });
188
235
  export const CodeSearchResultSchema = z.object({
189
236
  node: CodeNodeSchema,
190
237
  resolution: ResolutionStatusSchema.optional(),