agentmap 0.7.0 → 0.7.1
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/cli.js +13 -10
- package/dist/cli.js.map +1 -1
- package/dist/extract/markdown.d.ts.map +1 -1
- package/dist/extract/markdown.js +1 -25
- package/dist/extract/markdown.js.map +1 -1
- package/dist/extract/marker.d.ts +6 -1
- package/dist/extract/marker.d.ts.map +1 -1
- package/dist/extract/marker.js +22 -26
- package/dist/extract/marker.js.map +1 -1
- package/dist/extract/utils.d.ts +6 -0
- package/dist/extract/utils.d.ts.map +1 -0
- package/dist/extract/utils.js +28 -0
- package/dist/extract/utils.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/map/truncate.d.ts +12 -0
- package/dist/map/truncate.d.ts.map +1 -0
- package/dist/map/truncate.js +77 -0
- package/dist/map/truncate.js.map +1 -0
- package/dist/map/yaml.d.ts +1 -0
- package/dist/map/yaml.d.ts.map +1 -1
- package/dist/map/yaml.js +13 -5
- package/dist/map/yaml.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +27 -25
- package/dist/scanner.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { writeFile } from 'fs/promises';
|
|
4
4
|
import { resolve } from 'path';
|
|
5
5
|
import { cac } from 'cac';
|
|
6
|
-
import { generateMap,
|
|
6
|
+
import { generateMap, toYaml } from './index.js';
|
|
7
7
|
const cli = cac('agentmap');
|
|
8
8
|
const NO_FILES_MESSAGE = `No files found with header comments.
|
|
9
9
|
|
|
@@ -37,12 +37,7 @@ cli
|
|
|
37
37
|
console.error(NO_FILES_MESSAGE);
|
|
38
38
|
process.exit(0);
|
|
39
39
|
}
|
|
40
|
-
const yaml =
|
|
41
|
-
dir: targetDir,
|
|
42
|
-
ignore: options.ignore,
|
|
43
|
-
filter: options.filter,
|
|
44
|
-
diff: true,
|
|
45
|
-
});
|
|
40
|
+
const yaml = toYaml(map);
|
|
46
41
|
if (options.output) {
|
|
47
42
|
await writeFile(options.output, yaml, 'utf8');
|
|
48
43
|
console.error(`Wrote map to ${options.output}`);
|
|
@@ -96,9 +91,17 @@ After adding comments to all important files, run \`npx -y agentmap\` to verify
|
|
|
96
91
|
|
|
97
92
|
You can run this prompt again anytime to keep file descriptions up to date as the codebase evolves.
|
|
98
93
|
|
|
99
|
-
Finally,
|
|
94
|
+
Finally, add these instructions to the project's AGENTS.md or CLAUDE.md file (create it if it doesn't exist):
|
|
95
|
+
|
|
96
|
+
\`\`\`markdown
|
|
97
|
+
## Codebase Map
|
|
98
|
+
|
|
99
|
+
Run \`npx -y agentmap\` to see the repo structure with file descriptions, definitions, and git diff status.
|
|
100
|
+
|
|
101
|
+
When editing files with top-level description comments, keep them accurate and up-to-date with your changes.
|
|
102
|
+
\`\`\`
|
|
100
103
|
|
|
101
|
-
For OpenCode:
|
|
104
|
+
For OpenCode users, also set up the agentmap plugin so future sessions automatically get the codebase map:
|
|
102
105
|
1. Add "@agentmap/opencode" to the plugin array in ~/.config/opencode/config.json
|
|
103
106
|
- Create the file if it doesn't exist
|
|
104
107
|
- If a plugin array already exists, append to it
|
|
@@ -110,6 +113,6 @@ cli
|
|
|
110
113
|
console.log(PROMPT_TEXT);
|
|
111
114
|
});
|
|
112
115
|
cli.help();
|
|
113
|
-
cli.version('0.
|
|
116
|
+
cli.version('0.7.1');
|
|
114
117
|
cli.parse();
|
|
115
118
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA;AAE3B,MAAM,gBAAgB,GAAG;;;;;;;;;;CAUxB,CAAA;AAED,GAAG;KACA,OAAO,CAAC,OAAO,EAAE,qCAAqC,CAAC;KACvD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;KACvE,MAAM,CAAC,wBAAwB,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAClF,MAAM,CAAC,wBAAwB,EAAE,gEAAgE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAChH,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,OAAkE,EAAE,EAAE;IAC5G,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAA;IAErC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,8DAA8D;QAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAExB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YAC7C,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAuDyC,CAAA;AAE7D,GAAG;KACA,OAAO,CAAC,QAAQ,EAAE,2DAA2D,CAAC;KAC9E,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAA;AAEJ,GAAG,CAAC,IAAI,EAAE,CAAA;AACV,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAEpB,GAAG,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/extract/markdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/extract/markdown.ts"],"names":[],"mappings":"AAqKA;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8BzF"}
|
package/dist/extract/markdown.js
CHANGED
|
@@ -1,32 +1,8 @@
|
|
|
1
1
|
// Extract description from markdown files using marked AST.
|
|
2
|
-
import { open } from 'fs/promises';
|
|
3
2
|
import { Lexer } from 'marked';
|
|
3
|
+
import { readFirstLines } from './utils.js';
|
|
4
4
|
const MAX_LINES = 50;
|
|
5
5
|
const MAX_DESC_LINES = 25;
|
|
6
|
-
/**
|
|
7
|
-
* Read the first N lines of a file
|
|
8
|
-
* Returns null if file cannot be read (ENOENT, permission denied, etc.)
|
|
9
|
-
*/
|
|
10
|
-
async function readFirstLines(filepath, maxLines) {
|
|
11
|
-
let handle;
|
|
12
|
-
try {
|
|
13
|
-
handle = await open(filepath, 'r');
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
// File doesn't exist or can't be opened - skip silently
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
const buffer = Buffer.alloc(maxLines * 200);
|
|
21
|
-
const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
|
|
22
|
-
const content = buffer.toString('utf8', 0, bytesRead);
|
|
23
|
-
const lines = content.split('\n').slice(0, maxLines);
|
|
24
|
-
return lines.join('\n');
|
|
25
|
-
}
|
|
26
|
-
finally {
|
|
27
|
-
await handle.close();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
6
|
/**
|
|
31
7
|
* Truncate lines to MAX_DESC_LINES, adding indicator if truncated
|
|
32
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/extract/markdown.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/extract/markdown.ts"],"names":[],"mappings":"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"}
|
package/dist/extract/marker.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MarkerResult } from '../types.js';
|
|
1
|
+
import type { MarkerResult, Language } from '../types.js';
|
|
2
2
|
export { extractMarkdownDescription } from './markdown.js';
|
|
3
3
|
/**
|
|
4
4
|
* Extract header comment/docstring from a file.
|
|
@@ -12,4 +12,9 @@ export { extractMarkdownDescription } from './markdown.js';
|
|
|
12
12
|
* - //! inner doc comments (Rust)
|
|
13
13
|
*/
|
|
14
14
|
export declare function extractMarker(filepath: string): Promise<MarkerResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Extract header comment/docstring from code string.
|
|
17
|
+
* Use this when you already have the file content to avoid re-reading.
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractMarkerFromCode(code: string, language: Language): Promise<MarkerResult>;
|
|
15
20
|
//# sourceMappingURL=marker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAA;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AA8C1D;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAa3E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBnG"}
|
package/dist/extract/marker.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Extract file header comment/docstring using tree-sitter.
|
|
2
2
|
// Detects standard comment styles from existing projects.
|
|
3
3
|
// Automatically skips license headers (Copyright, SPDX, etc.).
|
|
4
|
-
import { open } from 'fs/promises';
|
|
5
4
|
import { parseCode, detectLanguage } from '../parser/index.js';
|
|
5
|
+
import { readFirstLines } from './utils.js';
|
|
6
6
|
export { extractMarkdownDescription } from './markdown.js';
|
|
7
7
|
const MAX_LINES = 50;
|
|
8
8
|
const MAX_DESC_LINES = 25;
|
|
@@ -42,31 +42,6 @@ function truncateDescription(lines) {
|
|
|
42
42
|
truncated.push(`... and ${remaining} more lines`);
|
|
43
43
|
return truncated.join('\n');
|
|
44
44
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Read the first N lines of a file
|
|
47
|
-
* Returns null if file cannot be read (ENOENT, permission denied, etc.)
|
|
48
|
-
*/
|
|
49
|
-
async function readFirstLines(filepath, maxLines) {
|
|
50
|
-
let handle;
|
|
51
|
-
try {
|
|
52
|
-
handle = await open(filepath, 'r');
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
// File doesn't exist or can't be opened - skip silently
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
try {
|
|
59
|
-
// Read enough bytes for ~50 lines (generous estimate)
|
|
60
|
-
const buffer = Buffer.alloc(maxLines * 200);
|
|
61
|
-
const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
|
|
62
|
-
const content = buffer.toString('utf8', 0, bytesRead);
|
|
63
|
-
const lines = content.split('\n').slice(0, maxLines);
|
|
64
|
-
return lines.join('\n');
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
await handle.close();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
45
|
/**
|
|
71
46
|
* Extract header comment/docstring from a file.
|
|
72
47
|
* Uses tree-sitter for clean AST-based extraction.
|
|
@@ -88,6 +63,16 @@ export async function extractMarker(filepath) {
|
|
|
88
63
|
// File couldn't be read - skip silently
|
|
89
64
|
return { found: false };
|
|
90
65
|
}
|
|
66
|
+
return extractMarkerFromCode(head, language);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Extract header comment/docstring from code string.
|
|
70
|
+
* Use this when you already have the file content to avoid re-reading.
|
|
71
|
+
*/
|
|
72
|
+
export async function extractMarkerFromCode(code, language) {
|
|
73
|
+
// Only parse first MAX_LINES worth of content for efficiency
|
|
74
|
+
const lines = code.split('\n').slice(0, MAX_LINES);
|
|
75
|
+
const head = lines.join('\n');
|
|
91
76
|
const tree = await parseCode(head, language);
|
|
92
77
|
const description = extractHeaderFromAST(tree.rootNode, language);
|
|
93
78
|
if (description === null) {
|
|
@@ -220,11 +205,22 @@ function extractConsecutiveComments(children, startIdx, language) {
|
|
|
220
205
|
}
|
|
221
206
|
return truncateDescription(lines);
|
|
222
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Check if comment is a TypeScript triple-slash reference directive
|
|
210
|
+
* These are compiler directives, not actual comments
|
|
211
|
+
*/
|
|
212
|
+
function isReferenceDirective(text) {
|
|
213
|
+
return /^\/\/\/\s*<reference\s/.test(text);
|
|
214
|
+
}
|
|
223
215
|
/**
|
|
224
216
|
* Extract text content from a comment node
|
|
225
217
|
*/
|
|
226
218
|
function extractCommentText(node, language) {
|
|
227
219
|
const text = node.text;
|
|
220
|
+
// Skip TypeScript triple-slash reference directives
|
|
221
|
+
if (isReferenceDirective(text)) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
228
224
|
// Rust: line_comment may have doc_comment child with actual content
|
|
229
225
|
if (language === 'rust' && node.type === 'line_comment') {
|
|
230
226
|
const docComment = findChild(node, 'doc_comment');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,0DAA0D;AAC1D,+DAA+D;AAE/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/extract/utils.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkB/F"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Shared utilities for file extraction.
|
|
2
|
+
import { open } from 'fs/promises';
|
|
3
|
+
/**
|
|
4
|
+
* Read the first N lines of a file.
|
|
5
|
+
* Returns null if file cannot be read (ENOENT, permission denied, etc.)
|
|
6
|
+
*/
|
|
7
|
+
export async function readFirstLines(filepath, maxLines) {
|
|
8
|
+
let handle;
|
|
9
|
+
try {
|
|
10
|
+
handle = await open(filepath, 'r');
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// File doesn't exist or can't be opened - skip silently
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
// Read enough bytes for ~maxLines lines (generous estimate)
|
|
18
|
+
const buffer = Buffer.alloc(maxLines * 200);
|
|
19
|
+
const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
|
|
20
|
+
const content = buffer.toString('utf8', 0, bytesRead);
|
|
21
|
+
const lines = content.split('\n').slice(0, maxLines);
|
|
22
|
+
return lines.join('\n');
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
await handle.close();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/extract/utils.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,QAAgB;IACrE,IAAI,MAAM,CAAA;IACV,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;QACxD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,4DAA4D;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACpE,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GenerateOptions, MapNode } from './types.js';
|
|
2
2
|
export { toYaml } from './map/yaml.js';
|
|
3
|
+
export { truncateMap, truncateDefs } from './map/truncate.js';
|
|
3
4
|
export type { DefEntry, Definition, DefinitionDiff, DefinitionStatus, DiffHunk, FileDiffStats, FileEntry, FileDiff, FileResult, GenerateOptions, Language, MapNode, MarkerResult, } from './types.js';
|
|
4
5
|
/**
|
|
5
6
|
* Check if directory is inside a git repository
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE7D,YAAY,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,SAAS,EACT,QAAQ,EACR,UAAU,EACV,eAAe,EACf,QAAQ,EACR,OAAO,EACP,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIpD;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAejF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpF"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,9 @@ import { resolve } from 'path';
|
|
|
5
5
|
import { scanDirectory } from './scanner.js';
|
|
6
6
|
import { buildMap, getRootName } from './map/builder.js';
|
|
7
7
|
import { toYaml } from './map/yaml.js';
|
|
8
|
+
import { truncateMap } from './map/truncate.js';
|
|
8
9
|
export { toYaml } from './map/yaml.js';
|
|
10
|
+
export { truncateMap, truncateDefs } from './map/truncate.js';
|
|
9
11
|
/**
|
|
10
12
|
* Check if directory is inside a git repository
|
|
11
13
|
*/
|
|
@@ -26,6 +28,7 @@ export function isHomeDirectory(dir) {
|
|
|
26
28
|
const resolved = resolve(dir);
|
|
27
29
|
return resolved === home;
|
|
28
30
|
}
|
|
31
|
+
const DEFAULT_MAX_DEFS = 25;
|
|
29
32
|
/**
|
|
30
33
|
* Generate a map object from a directory
|
|
31
34
|
* Returns empty map if not in a git repo or if directory is home
|
|
@@ -38,7 +41,10 @@ export async function generateMap(options = {}) {
|
|
|
38
41
|
return { [rootName]: {} };
|
|
39
42
|
}
|
|
40
43
|
const results = await scanDirectory({ ...options, dir });
|
|
41
|
-
|
|
44
|
+
const map = buildMap(results, rootName);
|
|
45
|
+
// Apply truncation (default 25)
|
|
46
|
+
const maxDefs = options.maxDefs ?? DEFAULT_MAX_DEFS;
|
|
47
|
+
return truncateMap(map, maxDefs);
|
|
42
48
|
}
|
|
43
49
|
/**
|
|
44
50
|
* Generate a YAML string map from a directory
|
|
@@ -56,6 +62,9 @@ export async function generateMapYaml(options = {}) {
|
|
|
56
62
|
}
|
|
57
63
|
const rootName = getRootName(dir);
|
|
58
64
|
const map = buildMap(results, rootName);
|
|
59
|
-
|
|
65
|
+
// Apply truncation (default 25)
|
|
66
|
+
const maxDefs = options.maxDefs ?? DEFAULT_MAX_DEFS;
|
|
67
|
+
const truncated = truncateMap(map, maxDefs);
|
|
68
|
+
return toYaml(truncated);
|
|
60
69
|
}
|
|
61
70
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FileEntry, MapNode } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Truncate definitions in a file entry to maxDefs
|
|
4
|
+
* If file has exported symbols, shows only exports field instead
|
|
5
|
+
* Otherwise uses current truncation behavior
|
|
6
|
+
*/
|
|
7
|
+
export declare function truncateDefs(entry: FileEntry, maxDefs?: number): FileEntry;
|
|
8
|
+
/**
|
|
9
|
+
* Recursively truncate defs in all files in the map
|
|
10
|
+
*/
|
|
11
|
+
export declare function truncateMap(node: MapNode, maxDefs?: number): MapNode;
|
|
12
|
+
//# sourceMappingURL=truncate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/map/truncate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAoB/D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAE,MAAyB,GAAG,SAAS,CA0C5F;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,MAAyB,GAAG,OAAO,CActF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Truncate definitions in map to limit context size.
|
|
2
|
+
const DEFAULT_MAX_DEFS = 25;
|
|
3
|
+
/**
|
|
4
|
+
* Check if a def value indicates exported or extern
|
|
5
|
+
*/
|
|
6
|
+
function isExportedDef(value) {
|
|
7
|
+
return value.includes('exported') || value.includes('extern');
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Check if a value is a FileEntry (has description or defs)
|
|
11
|
+
*/
|
|
12
|
+
function isFileEntry(value) {
|
|
13
|
+
if (!value || typeof value !== 'object')
|
|
14
|
+
return false;
|
|
15
|
+
const obj = value;
|
|
16
|
+
return 'description' in obj || 'defs' in obj;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Truncate definitions in a file entry to maxDefs
|
|
20
|
+
* If file has exported symbols, shows only exports field instead
|
|
21
|
+
* Otherwise uses current truncation behavior
|
|
22
|
+
*/
|
|
23
|
+
export function truncateDefs(entry, maxDefs = DEFAULT_MAX_DEFS) {
|
|
24
|
+
if (!entry.defs)
|
|
25
|
+
return entry;
|
|
26
|
+
const defNames = Object.keys(entry.defs);
|
|
27
|
+
if (defNames.length <= maxDefs)
|
|
28
|
+
return entry;
|
|
29
|
+
// Filter to only exported/extern definitions
|
|
30
|
+
const exportedNames = defNames.filter(name => isExportedDef(entry.defs[name]));
|
|
31
|
+
// If we have exports, use exports field instead of defs
|
|
32
|
+
if (exportedNames.length > 0) {
|
|
33
|
+
const exports = {};
|
|
34
|
+
const maxExports = Math.min(exportedNames.length, maxDefs);
|
|
35
|
+
for (let i = 0; i < maxExports; i++) {
|
|
36
|
+
const name = exportedNames[i];
|
|
37
|
+
exports[name] = entry.defs[name];
|
|
38
|
+
}
|
|
39
|
+
// Add marker if exports were also truncated
|
|
40
|
+
if (exportedNames.length > maxDefs) {
|
|
41
|
+
const remaining = exportedNames.length - maxDefs;
|
|
42
|
+
exports[`__more_${remaining}__`] = `${remaining} more exports`;
|
|
43
|
+
}
|
|
44
|
+
// Return with exports instead of defs
|
|
45
|
+
const { defs, ...rest } = entry;
|
|
46
|
+
return { ...rest, exports };
|
|
47
|
+
}
|
|
48
|
+
// No exports found - use current truncation behavior
|
|
49
|
+
const truncated = {};
|
|
50
|
+
for (let i = 0; i < maxDefs; i++) {
|
|
51
|
+
const name = defNames[i];
|
|
52
|
+
truncated[name] = entry.defs[name];
|
|
53
|
+
}
|
|
54
|
+
const remaining = defNames.length - maxDefs;
|
|
55
|
+
// Add marker that will be converted to comment
|
|
56
|
+
truncated[`__more_${remaining}__`] = `${remaining} more definitions`;
|
|
57
|
+
return { ...entry, defs: truncated };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Recursively truncate defs in all files in the map
|
|
61
|
+
*/
|
|
62
|
+
export function truncateMap(node, maxDefs = DEFAULT_MAX_DEFS) {
|
|
63
|
+
const result = {};
|
|
64
|
+
for (const [key, value] of Object.entries(node)) {
|
|
65
|
+
if (isFileEntry(value)) {
|
|
66
|
+
result[key] = truncateDefs(value, maxDefs);
|
|
67
|
+
}
|
|
68
|
+
else if (value && typeof value === 'object') {
|
|
69
|
+
result[key] = truncateMap(value, maxDefs);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
result[key] = value;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=truncate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/map/truncate.ts"],"names":[],"mappings":"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"}
|
package/dist/map/yaml.d.ts
CHANGED
package/dist/map/yaml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AA0C1C;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU3C"}
|
package/dist/map/yaml.js
CHANGED
|
@@ -8,7 +8,7 @@ function isReadme(key) {
|
|
|
8
8
|
return lower === 'readme.md' || lower === 'readme';
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* Custom key sorter: description first, then diff, then defs, then README files, then alphabetical
|
|
11
|
+
* Custom key sorter: description first, then diff, then defs/exports, then README files, then alphabetical
|
|
12
12
|
*/
|
|
13
13
|
function sortKeys(a, b) {
|
|
14
14
|
// description always first
|
|
@@ -21,10 +21,10 @@ function sortKeys(a, b) {
|
|
|
21
21
|
return -1;
|
|
22
22
|
if (b === 'diff')
|
|
23
23
|
return 1;
|
|
24
|
-
// defs third
|
|
25
|
-
if (a === 'defs')
|
|
24
|
+
// defs/exports third
|
|
25
|
+
if (a === 'defs' || a === 'exports')
|
|
26
26
|
return -1;
|
|
27
|
-
if (b === 'defs')
|
|
27
|
+
if (b === 'defs' || b === 'exports')
|
|
28
28
|
return 1;
|
|
29
29
|
// README files come before other files
|
|
30
30
|
const aIsReadme = isReadme(a);
|
|
@@ -36,11 +36,18 @@ function sortKeys(a, b) {
|
|
|
36
36
|
// alphabetical for everything else
|
|
37
37
|
return a.localeCompare(b);
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Convert __more_N__ markers to YAML comments
|
|
41
|
+
*/
|
|
42
|
+
function markersToComments(yamlStr) {
|
|
43
|
+
return yamlStr.replace(/^(\s*)__more_(\d+)__: (\d+ more (?:definitions|exports))$/gm, '$1# ... $3');
|
|
44
|
+
}
|
|
39
45
|
/**
|
|
40
46
|
* Convert map object to YAML string
|
|
47
|
+
* Automatically converts truncation markers to comments
|
|
41
48
|
*/
|
|
42
49
|
export function toYaml(map) {
|
|
43
|
-
|
|
50
|
+
const yamlStr = yaml.dump(map, {
|
|
44
51
|
indent: 2,
|
|
45
52
|
lineWidth: -1, // Don't wrap lines
|
|
46
53
|
noRefs: true, // Don't use YAML references
|
|
@@ -48,5 +55,6 @@ export function toYaml(map) {
|
|
|
48
55
|
quotingType: '"',
|
|
49
56
|
forceQuotes: false,
|
|
50
57
|
});
|
|
58
|
+
return markersToComments(yamlStr);
|
|
51
59
|
}
|
|
52
60
|
//# sourceMappingURL=yaml.js.map
|
package/dist/map/yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,2BAA2B;IAC3B,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAA;IACjC,cAAc;IACd,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAA;IAC1B,
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,2BAA2B;IAC3B,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAA;IACjC,cAAc;IACd,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAA;IAC1B,qBAAqB;IACrB,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAA;IAC7C,uCAAuC;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC,CAAA;IACtC,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAA;IACrC,mCAAmC;IACnC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,OAAO,CACpB,6DAA6D,EAC7D,YAAY,CACb,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC,CAAC,EAAG,mBAAmB;QACnC,MAAM,EAAE,IAAI,EAAI,4BAA4B;QAC5C,QAAQ,EAAQ,qCAAqC;QACrD,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IACF,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAA2B,MAAM,YAAY,CAAA;AAuDtF;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAsExF"}
|
package/dist/scanner.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Scan directory for files with header comments/docstrings.
|
|
2
2
|
import { execSync } from 'child_process';
|
|
3
|
+
import pLimit from 'p-limit';
|
|
3
4
|
import picomatch from 'picomatch';
|
|
4
5
|
import { readFile } from 'fs/promises';
|
|
5
6
|
import { join, normalize } from 'path';
|
|
6
|
-
import {
|
|
7
|
+
import { extractMarkerFromCode, extractMarkdownDescription } from './extract/marker.js';
|
|
7
8
|
import { extractDefinitions } from './extract/definitions.js';
|
|
8
9
|
import { getAllDiffData, applyDiffToDefinitions } from './extract/git-status.js';
|
|
9
10
|
import { parseCode, detectLanguage, LANGUAGE_EXTENSIONS } from './parser/index.js';
|
|
@@ -96,26 +97,27 @@ export async function scanDirectory(options = {}) {
|
|
|
96
97
|
fileDiffs = null;
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
// Process
|
|
100
|
-
const
|
|
101
|
-
|
|
100
|
+
// Process files in parallel with concurrency limit
|
|
101
|
+
const limit = pLimit(20);
|
|
102
|
+
const resultPromises = files.map(relativePath => {
|
|
102
103
|
const fullPath = join(dir, relativePath);
|
|
103
104
|
// Normalize path for lookup (handle Windows backslashes)
|
|
104
105
|
const normalizedPath = relativePath.replace(/\\/g, '/');
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
results.push(result);
|
|
106
|
+
const fileDiff = fileDiffs?.get(normalizedPath);
|
|
107
|
+
const stats = fileStats?.get(normalizedPath);
|
|
108
|
+
return limit(async () => {
|
|
109
|
+
try {
|
|
110
|
+
return await processFile(fullPath, relativePath, fileDiff, stats);
|
|
111
111
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
catch (err) {
|
|
113
|
+
// Skip files that fail to process
|
|
114
|
+
console.error(`Warning: Failed to process ${relativePath}:`, err);
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
const results = await Promise.all(resultPromises);
|
|
120
|
+
return results.filter((r) => r !== null);
|
|
119
121
|
}
|
|
120
122
|
/**
|
|
121
123
|
* Process a single file - check for marker and extract definitions
|
|
@@ -134,19 +136,19 @@ async function processFile(fullPath, relativePath, fileDiff, fileStats) {
|
|
|
134
136
|
diff: fileStats,
|
|
135
137
|
};
|
|
136
138
|
}
|
|
137
|
-
//
|
|
138
|
-
const marker = await extractMarker(fullPath);
|
|
139
|
-
if (!marker.found) {
|
|
140
|
-
return null;
|
|
141
|
-
}
|
|
142
|
-
// Detect language
|
|
139
|
+
// Detect language first
|
|
143
140
|
const language = detectLanguage(relativePath);
|
|
144
141
|
if (!language) {
|
|
145
142
|
return null;
|
|
146
143
|
}
|
|
147
|
-
// Read
|
|
144
|
+
// Read file once for both marker extraction and definition parsing
|
|
148
145
|
const code = await readFile(fullPath, 'utf8');
|
|
149
|
-
//
|
|
146
|
+
// Check for marker using the code we already read
|
|
147
|
+
const marker = await extractMarkerFromCode(code, language);
|
|
148
|
+
if (!marker.found) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
// Parse and extract definitions using the same code
|
|
150
152
|
const tree = await parseCode(code, language);
|
|
151
153
|
let definitions = extractDefinitions(tree.rootNode, language);
|
|
152
154
|
// Apply diff info if available (for definition-level stats)
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -89,6 +89,8 @@ export interface GenerateOptions {
|
|
|
89
89
|
diff?: boolean;
|
|
90
90
|
/** Git ref to diff against (default: HEAD for unstaged, --cached for staged) */
|
|
91
91
|
diffBase?: string;
|
|
92
|
+
/** Max definitions per file before truncation (default: 25) */
|
|
93
|
+
maxDefs?: number;
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
96
|
* A hunk from git diff output
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,KAAK,GACL,KAAK,CAAA;AAET;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,OAAO,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,WAAW,GACX,OAAO,GACP,MAAM,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,cAAc,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,KAAK,GACL,KAAK,CAAA;AAET;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,OAAO,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,WAAW,GACX,OAAO,GACP,MAAM,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,cAAc,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;AAC1C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentmap",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Generate a YAML map of your codebase for AI agent context",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"cac": "^6.7.14",
|
|
39
39
|
"js-yaml": "^4.1.0",
|
|
40
40
|
"marked": "^17.0.1",
|
|
41
|
+
"p-limit": "^7.2.0",
|
|
41
42
|
"picomatch": "^4.0.2",
|
|
42
43
|
"tree-sitter-cpp": "^0.23.4",
|
|
43
44
|
"tree-sitter-go": "^0.23.4",
|