agentmap 0.3.0 → 0.4.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 +39 -4
- package/dist/cli.js.map +1 -1
- package/dist/extract/definitions.d.ts.map +1 -1
- package/dist/extract/definitions.js +0 -1
- package/dist/extract/definitions.js.map +1 -1
- package/dist/extract/definitions.test.js +40 -40
- package/dist/extract/definitions.test.js.map +1 -1
- package/dist/extract/git-status.d.ts.map +1 -1
- package/dist/extract/git-status.js +0 -1
- package/dist/extract/git-status.js.map +1 -1
- package/dist/extract/marker.d.ts +9 -2
- package/dist/extract/marker.d.ts.map +1 -1
- package/dist/extract/marker.js +211 -103
- package/dist/extract/marker.js.map +1 -1
- package/dist/extract/marker.test.d.ts +2 -0
- package/dist/extract/marker.test.d.ts.map +1 -0
- package/dist/extract/marker.test.js +374 -0
- package/dist/extract/marker.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/map/builder.d.ts.map +1 -1
- package/dist/map/builder.js +2 -6
- package/dist/map/builder.js.map +1 -1
- package/dist/map/yaml.d.ts.map +1 -1
- package/dist/map/yaml.js +0 -1
- package/dist/map/yaml.js.map +1 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +0 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/languages.d.ts.map +1 -1
- package/dist/parser/languages.js +0 -1
- package/dist/parser/languages.js.map +1 -1
- package/dist/scanner.d.ts +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +2 -3
- package/dist/scanner.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/extract/marker.js
CHANGED
|
@@ -1,144 +1,252 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Extract file header comment/docstring using tree-sitter.
|
|
2
|
+
// Detects standard comment styles from existing projects.
|
|
3
3
|
import { open } from 'fs/promises';
|
|
4
|
-
|
|
5
|
-
const
|
|
4
|
+
import { parseCode, detectLanguage } from '../parser/index.js';
|
|
5
|
+
const MAX_LINES = 50;
|
|
6
|
+
const MAX_DESC_LINES = 20;
|
|
6
7
|
/**
|
|
7
|
-
* Read the first N
|
|
8
|
+
* Read the first N lines of a file
|
|
8
9
|
*/
|
|
9
|
-
async function
|
|
10
|
+
async function readFirstLines(filepath, maxLines) {
|
|
10
11
|
const handle = await open(filepath, 'r');
|
|
11
12
|
try {
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
// Read enough bytes for ~50 lines (generous estimate)
|
|
14
|
+
const buffer = Buffer.alloc(maxLines * 200);
|
|
15
|
+
const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
|
|
16
|
+
const content = buffer.toString('utf8', 0, bytesRead);
|
|
17
|
+
const lines = content.split('\n').slice(0, maxLines);
|
|
18
|
+
return lines.join('\n');
|
|
15
19
|
}
|
|
16
20
|
finally {
|
|
17
21
|
await handle.close();
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
25
|
+
* Extract header comment/docstring from a file.
|
|
26
|
+
* Uses tree-sitter for clean AST-based extraction.
|
|
27
|
+
*
|
|
28
|
+
* Supports:
|
|
29
|
+
* - // line comments (JS/TS/Go/Rust)
|
|
30
|
+
* - /* block comments (JS/TS/Go/Rust)
|
|
31
|
+
* - # line comments (Python)
|
|
32
|
+
* - """ docstrings (Python)
|
|
33
|
+
* - //! inner doc comments (Rust)
|
|
23
34
|
*/
|
|
24
35
|
export async function extractMarker(filepath) {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
let markerLineIndex = -1;
|
|
29
|
-
for (let i = 0; i < lines.length; i++) {
|
|
30
|
-
const line = lines[i].trim();
|
|
31
|
-
// Skip empty lines at start
|
|
32
|
-
if (line === '')
|
|
33
|
-
continue;
|
|
34
|
-
// Check if this line contains the marker
|
|
35
|
-
if (line.includes(MARKER)) {
|
|
36
|
-
markerLineIndex = i;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
// If we hit a non-comment, non-empty line before finding marker, stop
|
|
40
|
-
if (!isCommentLine(line)) {
|
|
41
|
-
return { found: false };
|
|
42
|
-
}
|
|
36
|
+
const language = detectLanguage(filepath);
|
|
37
|
+
if (!language) {
|
|
38
|
+
return { found: false };
|
|
43
39
|
}
|
|
44
|
-
|
|
40
|
+
const head = await readFirstLines(filepath, MAX_LINES);
|
|
41
|
+
const tree = await parseCode(head, language);
|
|
42
|
+
const description = extractHeaderFromAST(tree.rootNode, language);
|
|
43
|
+
if (description === null) {
|
|
45
44
|
return { found: false };
|
|
46
45
|
}
|
|
47
|
-
// Extract description from lines after marker
|
|
48
|
-
const description = extractDescription(lines, markerLineIndex);
|
|
49
46
|
return {
|
|
50
47
|
found: true,
|
|
51
48
|
description: description || undefined,
|
|
52
49
|
};
|
|
53
50
|
}
|
|
54
51
|
/**
|
|
55
|
-
* Check if a
|
|
52
|
+
* Check if a node is a JS/TS directive like "use strict" or "use client"
|
|
56
53
|
*/
|
|
57
|
-
function
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
trimmed.endsWith('"""') ||
|
|
67
|
-
trimmed.endsWith("'''"));
|
|
54
|
+
function isDirective(node) {
|
|
55
|
+
if (node.type !== 'expression_statement')
|
|
56
|
+
return false;
|
|
57
|
+
const str = node.child(0);
|
|
58
|
+
if (str?.type !== 'string')
|
|
59
|
+
return false;
|
|
60
|
+
const text = str.text;
|
|
61
|
+
// Check for known directives (with quotes)
|
|
62
|
+
return /^["']use (strict|client|server)["']$/.test(text);
|
|
68
63
|
}
|
|
69
64
|
/**
|
|
70
|
-
* Extract
|
|
65
|
+
* Extract header comment from AST root node
|
|
71
66
|
*/
|
|
72
|
-
function
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
67
|
+
function extractHeaderFromAST(root, language) {
|
|
68
|
+
const children = getChildren(root);
|
|
69
|
+
if (children.length === 0) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
let startIdx = 0;
|
|
73
|
+
// Skip shebang if present
|
|
74
|
+
// Python/shell: comment node starting with #!
|
|
75
|
+
// JS/TS: hash_bang_line node
|
|
76
|
+
const firstChild = children[0];
|
|
77
|
+
if (firstChild?.type === 'hash_bang_line' ||
|
|
78
|
+
(firstChild?.type === 'comment' && firstChild.text.startsWith('#!'))) {
|
|
79
|
+
startIdx = 1;
|
|
80
|
+
}
|
|
81
|
+
// Skip JS/TS directives like "use strict", "use client"
|
|
82
|
+
while (startIdx < children.length && isDirective(children[startIdx])) {
|
|
83
|
+
startIdx++;
|
|
84
|
+
}
|
|
85
|
+
if (startIdx >= children.length) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const first = children[startIdx];
|
|
89
|
+
// Python: check for module docstring (expression_statement containing string)
|
|
90
|
+
if (language === 'python' && first.type === 'expression_statement') {
|
|
91
|
+
const str = first.childForFieldName('expression') ?? first.child(0);
|
|
92
|
+
if (str?.type === 'string') {
|
|
93
|
+
return extractPythonDocstring(str);
|
|
98
94
|
}
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
}
|
|
96
|
+
// Collect consecutive comment nodes at the start
|
|
97
|
+
if (isCommentNode(first)) {
|
|
98
|
+
return extractConsecutiveComments(children, startIdx, language);
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if a node is a comment
|
|
104
|
+
*/
|
|
105
|
+
function isCommentNode(node) {
|
|
106
|
+
return (node.type === 'comment' ||
|
|
107
|
+
node.type === 'line_comment' ||
|
|
108
|
+
node.type === 'block_comment');
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Extract consecutive comment nodes and combine their text
|
|
112
|
+
*/
|
|
113
|
+
function extractConsecutiveComments(children, startIdx, language) {
|
|
114
|
+
const lines = [];
|
|
115
|
+
for (let i = startIdx; i < children.length; i++) {
|
|
116
|
+
const node = children[i];
|
|
117
|
+
if (!isCommentNode(node)) {
|
|
101
118
|
break;
|
|
102
119
|
}
|
|
103
|
-
|
|
104
|
-
if (
|
|
120
|
+
const text = extractCommentText(node, language);
|
|
121
|
+
if (text !== null) {
|
|
122
|
+
lines.push(...text.split('\n'));
|
|
123
|
+
}
|
|
124
|
+
// Limit description length
|
|
125
|
+
if (lines.length >= MAX_DESC_LINES) {
|
|
105
126
|
break;
|
|
106
127
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
128
|
+
}
|
|
129
|
+
return lines.slice(0, MAX_DESC_LINES).join('\n').trim();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Extract text content from a comment node
|
|
133
|
+
*/
|
|
134
|
+
function extractCommentText(node, language) {
|
|
135
|
+
const text = node.text;
|
|
136
|
+
// Rust: line_comment may have doc_comment child with actual content
|
|
137
|
+
if (language === 'rust' && node.type === 'line_comment') {
|
|
138
|
+
const docComment = findChild(node, 'doc_comment');
|
|
139
|
+
if (docComment) {
|
|
140
|
+
return docComment.text.trim();
|
|
141
|
+
}
|
|
142
|
+
// Regular // comment - strip prefix
|
|
143
|
+
return stripLinePrefix(text, '//');
|
|
144
|
+
}
|
|
145
|
+
// Block comment /* */ or /** */ (including Rust block_comment)
|
|
146
|
+
if (text.startsWith('/*') || node.type === 'block_comment') {
|
|
147
|
+
return extractBlockCommentText(text);
|
|
148
|
+
}
|
|
149
|
+
// Line comment // or #
|
|
150
|
+
if (text.startsWith('//')) {
|
|
151
|
+
return stripLinePrefix(text, '//');
|
|
152
|
+
}
|
|
153
|
+
if (text.startsWith('#')) {
|
|
154
|
+
return stripLinePrefix(text, '#');
|
|
155
|
+
}
|
|
156
|
+
return text.trim();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Strip comment prefix and optional following space
|
|
160
|
+
* Handles //!, ///, //, ##, #
|
|
161
|
+
*/
|
|
162
|
+
function stripLinePrefix(text, prefix) {
|
|
163
|
+
let content = text.slice(prefix.length);
|
|
164
|
+
// Strip optional ! or / after // (for //! and ///)
|
|
165
|
+
if (prefix === '//' && (content.startsWith('!') || content.startsWith('/'))) {
|
|
166
|
+
content = content.slice(1);
|
|
167
|
+
}
|
|
168
|
+
// Strip optional extra # after # (for ##)
|
|
169
|
+
if (prefix === '#' && content.startsWith('#')) {
|
|
170
|
+
content = content.slice(1);
|
|
171
|
+
}
|
|
172
|
+
// Strip optional leading space
|
|
173
|
+
if (content.startsWith(' ')) {
|
|
174
|
+
content = content.slice(1);
|
|
175
|
+
}
|
|
176
|
+
return content.trimEnd();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Extract text from block comment, stripping delimiters and * prefixes
|
|
180
|
+
*/
|
|
181
|
+
function extractBlockCommentText(text) {
|
|
182
|
+
// Remove /* and */
|
|
183
|
+
let content = text.slice(2);
|
|
184
|
+
if (content.endsWith('*/')) {
|
|
185
|
+
content = content.slice(0, -2);
|
|
186
|
+
}
|
|
187
|
+
// Remove leading * for JSDoc style
|
|
188
|
+
if (content.startsWith('*')) {
|
|
189
|
+
content = content.slice(1);
|
|
190
|
+
}
|
|
191
|
+
// Process lines, removing * prefixes
|
|
192
|
+
const lines = content.split('\n').map(line => {
|
|
193
|
+
const trimmed = line.trim();
|
|
194
|
+
if (trimmed.startsWith('* ')) {
|
|
195
|
+
return trimmed.slice(2);
|
|
111
196
|
}
|
|
197
|
+
if (trimmed === '*') {
|
|
198
|
+
return '';
|
|
199
|
+
}
|
|
200
|
+
if (trimmed.startsWith('*')) {
|
|
201
|
+
return trimmed.slice(1).trim();
|
|
202
|
+
}
|
|
203
|
+
return trimmed;
|
|
204
|
+
});
|
|
205
|
+
return lines.join('\n').trim();
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Extract Python docstring content from string node
|
|
209
|
+
*/
|
|
210
|
+
function extractPythonDocstring(node) {
|
|
211
|
+
// Find string_content child which has the actual text
|
|
212
|
+
const content = findChild(node, 'string_content');
|
|
213
|
+
if (content) {
|
|
214
|
+
const lines = content.text.trim().split('\n');
|
|
215
|
+
return lines.slice(0, MAX_DESC_LINES).join('\n').trim();
|
|
216
|
+
}
|
|
217
|
+
// Fallback: extract from full text
|
|
218
|
+
let text = node.text;
|
|
219
|
+
// Remove triple quotes
|
|
220
|
+
if (text.startsWith('"""') || text.startsWith("'''")) {
|
|
221
|
+
text = text.slice(3);
|
|
112
222
|
}
|
|
113
|
-
|
|
223
|
+
if (text.endsWith('"""') || text.endsWith("'''")) {
|
|
224
|
+
text = text.slice(0, -3);
|
|
225
|
+
}
|
|
226
|
+
const lines = text.trim().split('\n');
|
|
227
|
+
return lines.slice(0, MAX_DESC_LINES).join('\n').trim();
|
|
114
228
|
}
|
|
115
229
|
/**
|
|
116
|
-
*
|
|
230
|
+
* Get all children of a node as array
|
|
117
231
|
*/
|
|
118
|
-
function
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
232
|
+
function getChildren(node) {
|
|
233
|
+
const children = [];
|
|
234
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
235
|
+
const child = node.child(i);
|
|
236
|
+
if (child)
|
|
237
|
+
children.push(child);
|
|
238
|
+
}
|
|
239
|
+
return children;
|
|
124
240
|
}
|
|
125
241
|
/**
|
|
126
|
-
*
|
|
242
|
+
* Find first child of given type
|
|
127
243
|
*/
|
|
128
|
-
function
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return line.slice(2).trim();
|
|
136
|
-
if (line.startsWith('#'))
|
|
137
|
-
return line.slice(1).trim();
|
|
138
|
-
if (line.startsWith('*'))
|
|
139
|
-
return line.slice(1).trim();
|
|
140
|
-
if (line.startsWith('/*'))
|
|
141
|
-
return line.slice(2).trim();
|
|
142
|
-
return line;
|
|
244
|
+
function findChild(node, type) {
|
|
245
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
246
|
+
const child = node.child(i);
|
|
247
|
+
if (child?.type === type)
|
|
248
|
+
return child;
|
|
249
|
+
}
|
|
250
|
+
return null;
|
|
143
251
|
}
|
|
144
252
|
//# sourceMappingURL=marker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"AAAA,
|
|
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":"marker.test.d.ts","sourceRoot":"","sources":["../../src/extract/marker.test.ts"],"names":[],"mappings":""}
|