agentmap 0.4.2 → 0.6.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 (73) hide show
  1. package/dist/cli.js +7 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/extract/definitions.d.ts.map +1 -1
  4. package/dist/extract/definitions.js +195 -316
  5. package/dist/extract/definitions.js.map +1 -1
  6. package/dist/extract/definitions.test.js +749 -20
  7. package/dist/extract/definitions.test.js.map +1 -1
  8. package/dist/extract/markdown.d.ts +8 -0
  9. package/dist/extract/markdown.d.ts.map +1 -0
  10. package/dist/extract/markdown.js +191 -0
  11. package/dist/extract/markdown.js.map +1 -0
  12. package/dist/extract/markdown.test.d.ts +2 -0
  13. package/dist/extract/markdown.test.d.ts.map +1 -0
  14. package/dist/extract/markdown.test.js +148 -0
  15. package/dist/extract/markdown.test.js.map +1 -0
  16. package/dist/extract/marker.d.ts +1 -0
  17. package/dist/extract/marker.d.ts.map +1 -1
  18. package/dist/extract/marker.js +93 -13
  19. package/dist/extract/marker.js.map +1 -1
  20. package/dist/extract/marker.test.js +147 -7
  21. package/dist/extract/marker.test.js.map +1 -1
  22. package/dist/index.d.ts +10 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +33 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/languages/cpp.d.ts +30 -0
  27. package/dist/languages/cpp.d.ts.map +1 -0
  28. package/dist/languages/cpp.js +116 -0
  29. package/dist/languages/cpp.js.map +1 -0
  30. package/dist/languages/go.d.ts +26 -0
  31. package/dist/languages/go.d.ts.map +1 -0
  32. package/dist/languages/go.js +65 -0
  33. package/dist/languages/go.js.map +1 -0
  34. package/dist/languages/index.d.ts +90 -0
  35. package/dist/languages/index.d.ts.map +1 -0
  36. package/dist/languages/index.js +209 -0
  37. package/dist/languages/index.js.map +1 -0
  38. package/dist/languages/javascript.d.ts +18 -0
  39. package/dist/languages/javascript.d.ts.map +1 -0
  40. package/dist/languages/javascript.js +23 -0
  41. package/dist/languages/javascript.js.map +1 -0
  42. package/dist/languages/python.d.ts +23 -0
  43. package/dist/languages/python.d.ts.map +1 -0
  44. package/dist/languages/python.js +35 -0
  45. package/dist/languages/python.js.map +1 -0
  46. package/dist/languages/rust.d.ts +26 -0
  47. package/dist/languages/rust.d.ts.map +1 -0
  48. package/dist/languages/rust.js +65 -0
  49. package/dist/languages/rust.js.map +1 -0
  50. package/dist/languages/typescript.d.ts +30 -0
  51. package/dist/languages/typescript.d.ts.map +1 -0
  52. package/dist/languages/typescript.js +68 -0
  53. package/dist/languages/typescript.js.map +1 -0
  54. package/dist/languages/zig.d.ts +38 -0
  55. package/dist/languages/zig.d.ts.map +1 -0
  56. package/dist/languages/zig.js +104 -0
  57. package/dist/languages/zig.js.map +1 -0
  58. package/dist/map/builder.d.ts.map +1 -1
  59. package/dist/map/builder.js +4 -1
  60. package/dist/map/builder.js.map +1 -1
  61. package/dist/map/yaml.d.ts.map +1 -1
  62. package/dist/map/yaml.js +15 -1
  63. package/dist/map/yaml.js.map +1 -1
  64. package/dist/parser/languages.d.ts +2 -4
  65. package/dist/parser/languages.d.ts.map +1 -1
  66. package/dist/parser/languages.js +4 -29
  67. package/dist/parser/languages.js.map +1 -1
  68. package/dist/scanner.d.ts.map +1 -1
  69. package/dist/scanner.js +41 -49
  70. package/dist/scanner.js.map +1 -1
  71. package/dist/types.d.ts +4 -2
  72. package/dist/types.d.ts.map +1 -1
  73. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.test.js","sourceRoot":"","sources":["../../src/extract/definitions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.test.js","sourceRoot":"","sources":["../../src/extract/definitions.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extract description from a markdown file using marked lexer.
3
+ * Parses first N lines, extracts plain text from AST nodes,
4
+ * ignoring HTML comments and images.
5
+ * Falls back to raw content if parsing fails.
6
+ */
7
+ export declare function extractMarkdownDescription(filepath: string): Promise<string | null>;
8
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/extract/markdown.ts"],"names":[],"mappings":"AAqLA;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BzF"}
@@ -0,0 +1,191 @@
1
+ // Extract description from markdown files using marked AST.
2
+ import { open } from 'fs/promises';
3
+ import { Lexer } from 'marked';
4
+ const MAX_LINES = 50;
5
+ const MAX_DESC_LINES = 25;
6
+ /**
7
+ * Read the first N lines of a file
8
+ */
9
+ async function readFirstLines(filepath, maxLines) {
10
+ const handle = await open(filepath, 'r');
11
+ try {
12
+ const buffer = Buffer.alloc(maxLines * 200);
13
+ const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
14
+ const content = buffer.toString('utf8', 0, bytesRead);
15
+ const lines = content.split('\n').slice(0, maxLines);
16
+ return lines.join('\n');
17
+ }
18
+ finally {
19
+ await handle.close();
20
+ }
21
+ }
22
+ /**
23
+ * Truncate lines to MAX_DESC_LINES, adding indicator if truncated
24
+ */
25
+ function truncateDescription(lines) {
26
+ const trimmed = lines.join('\n').trim();
27
+ const trimmedLines = trimmed.split('\n');
28
+ if (trimmedLines.length <= MAX_DESC_LINES) {
29
+ return trimmed;
30
+ }
31
+ const truncated = trimmedLines.slice(0, MAX_DESC_LINES);
32
+ const remaining = trimmedLines.length - MAX_DESC_LINES;
33
+ truncated.push(`... and ${remaining} more lines`);
34
+ return truncated.join('\n');
35
+ }
36
+ /**
37
+ * Extract plain text from inline tokens, skipping images.
38
+ */
39
+ function extractInlineText(tokens) {
40
+ if (!tokens)
41
+ return '';
42
+ const parts = [];
43
+ for (const token of tokens) {
44
+ // Skip images
45
+ if (token.type === 'image') {
46
+ continue;
47
+ }
48
+ // Handle text
49
+ if (token.type === 'text') {
50
+ const text = token;
51
+ if (text.text) {
52
+ parts.push(text.text);
53
+ }
54
+ continue;
55
+ }
56
+ // Handle links - extract the text content
57
+ if (token.type === 'link') {
58
+ const link = token;
59
+ if (link.text) {
60
+ parts.push(link.text);
61
+ }
62
+ continue;
63
+ }
64
+ // Handle strong/em - extract nested text
65
+ if (token.type === 'strong' || token.type === 'em') {
66
+ const styled = token;
67
+ const inner = extractInlineText(styled.tokens);
68
+ if (inner) {
69
+ parts.push(inner);
70
+ }
71
+ continue;
72
+ }
73
+ // Handle codespan (inline code)
74
+ if (token.type === 'codespan') {
75
+ const code = token;
76
+ if (code.text) {
77
+ parts.push('`' + code.text + '`');
78
+ }
79
+ continue;
80
+ }
81
+ }
82
+ return parts.join('');
83
+ }
84
+ /**
85
+ * Extract text content from markdown tokens recursively.
86
+ * Skips HTML, comments, and images. Returns plain text lines.
87
+ */
88
+ function extractTextFromTokens(tokens) {
89
+ const lines = [];
90
+ for (const token of tokens) {
91
+ // Skip HTML (includes comments)
92
+ if (token.type === 'html') {
93
+ continue;
94
+ }
95
+ // Skip spaces
96
+ if (token.type === 'space') {
97
+ continue;
98
+ }
99
+ // Handle headings - extract inline text
100
+ if (token.type === 'heading') {
101
+ const heading = token;
102
+ const text = extractInlineText(heading.tokens);
103
+ if (text) {
104
+ lines.push(text);
105
+ }
106
+ continue;
107
+ }
108
+ // Handle paragraphs - extract inline text (skips images)
109
+ if (token.type === 'paragraph') {
110
+ const para = token;
111
+ const text = extractInlineText(para.tokens);
112
+ if (text) {
113
+ lines.push(text);
114
+ }
115
+ continue;
116
+ }
117
+ // Handle lists - extract text from items
118
+ if (token.type === 'list') {
119
+ const list = token;
120
+ for (const item of list.items) {
121
+ const text = extractInlineText(item.tokens);
122
+ if (text) {
123
+ lines.push('- ' + text.split('\n')[0]);
124
+ }
125
+ }
126
+ continue;
127
+ }
128
+ // Handle blockquotes - extract nested tokens
129
+ if (token.type === 'blockquote') {
130
+ const quote = token;
131
+ if (quote.tokens) {
132
+ const nestedLines = extractTextFromTokens(quote.tokens);
133
+ lines.push(...nestedLines.map(l => '> ' + l));
134
+ }
135
+ continue;
136
+ }
137
+ // Handle code blocks - include with fence
138
+ if (token.type === 'code') {
139
+ const code = token;
140
+ if (code.lang) {
141
+ lines.push('```' + code.lang);
142
+ }
143
+ else {
144
+ lines.push('```');
145
+ }
146
+ lines.push(...code.text.split('\n'));
147
+ lines.push('```');
148
+ continue;
149
+ }
150
+ // Handle text tokens (inline)
151
+ if (token.type === 'text') {
152
+ const text = token;
153
+ if (text.text) {
154
+ lines.push(text.text);
155
+ }
156
+ continue;
157
+ }
158
+ }
159
+ return lines;
160
+ }
161
+ /**
162
+ * Extract description from a markdown file using marked lexer.
163
+ * Parses first N lines, extracts plain text from AST nodes,
164
+ * ignoring HTML comments and images.
165
+ * Falls back to raw content if parsing fails.
166
+ */
167
+ export async function extractMarkdownDescription(filepath) {
168
+ const head = await readFirstLines(filepath, MAX_LINES);
169
+ try {
170
+ // Parse markdown to tokens using marked lexer
171
+ const lexer = new Lexer();
172
+ const tokens = lexer.lex(head);
173
+ // Extract text from tokens
174
+ const lines = extractTextFromTokens(tokens);
175
+ // Filter empty lines
176
+ const contentLines = lines.filter(l => l.trim() !== '');
177
+ if (contentLines.length === 0) {
178
+ return null;
179
+ }
180
+ return truncateDescription(contentLines);
181
+ }
182
+ catch {
183
+ // Fallback: return raw content if parsing fails
184
+ const lines = head.split('\n').filter(l => l.trim() !== '');
185
+ if (lines.length === 0) {
186
+ return null;
187
+ }
188
+ return truncateDescription(lines);
189
+ }
190
+ }
191
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/extract/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=markdown.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.test.d.ts","sourceRoot":"","sources":["../../src/extract/markdown.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ // Tests for markdown description extraction.
2
+ import { describe, expect, test } from 'bun:test';
3
+ import { writeFile, unlink, mkdir } from 'fs/promises';
4
+ import { join } from 'path';
5
+ import { tmpdir } from 'os';
6
+ import { extractMarkdownDescription } from './markdown.js';
7
+ const TEST_DIR = join(tmpdir(), 'agentmap-markdown-test');
8
+ async function testMarkdown(content) {
9
+ await mkdir(TEST_DIR, { recursive: true });
10
+ const filepath = join(TEST_DIR, 'README.md');
11
+ await writeFile(filepath, content, 'utf8');
12
+ try {
13
+ return await extractMarkdownDescription(filepath);
14
+ }
15
+ finally {
16
+ await unlink(filepath).catch(() => { });
17
+ }
18
+ }
19
+ describe('Markdown extraction', () => {
20
+ test('simple heading and paragraph', async () => {
21
+ const desc = await testMarkdown(`# My Project
22
+
23
+ This is a description of my project.
24
+ It does amazing things.
25
+ `);
26
+ expect(desc).toMatchInlineSnapshot(`
27
+ "My Project
28
+ This is a description of my project.
29
+ It does amazing things."
30
+ `);
31
+ });
32
+ test('ignores HTML comments', async () => {
33
+ const desc = await testMarkdown(`<!-- This is a comment -->
34
+ # Title
35
+
36
+ Some content here.
37
+ `);
38
+ expect(desc).toMatchInlineSnapshot(`
39
+ "Title
40
+ Some content here."
41
+ `);
42
+ });
43
+ test('ignores badge images', async () => {
44
+ const desc = await testMarkdown(`![Build Status](https://shields.io/badge/build-passing)
45
+ ![Coverage](https://img.shields.io/coverage/80)
46
+
47
+ # My Library
48
+
49
+ A useful library.
50
+ `);
51
+ expect(desc).toMatchInlineSnapshot(`
52
+ "My Library
53
+ A useful library."
54
+ `);
55
+ });
56
+ test('handles lists', async () => {
57
+ const desc = await testMarkdown(`# Features
58
+
59
+ - Feature one
60
+ - Feature two
61
+ - Feature three
62
+ `);
63
+ expect(desc).toMatchInlineSnapshot(`
64
+ "Features
65
+ - Feature one
66
+ - Feature two
67
+ - Feature three"
68
+ `);
69
+ });
70
+ test('handles code blocks', async () => {
71
+ const desc = await testMarkdown(`# Usage
72
+
73
+ Install the package:
74
+
75
+ \`\`\`bash
76
+ npm install mypackage
77
+ \`\`\`
78
+ `);
79
+ expect(desc).toMatchInlineSnapshot(`
80
+ "Usage
81
+ Install the package:
82
+ \`\`\`bash
83
+ npm install mypackage
84
+ \`\`\`"
85
+ `);
86
+ });
87
+ test('handles blockquotes', async () => {
88
+ const desc = await testMarkdown(`# Quote Example
89
+
90
+ > This is a blockquote
91
+ > with multiple lines
92
+ `);
93
+ expect(desc).toMatchInlineSnapshot(`
94
+ "Quote Example
95
+ > This is a blockquote
96
+ with multiple lines"
97
+ `);
98
+ });
99
+ test('truncates long content with indicator', async () => {
100
+ // Create 40 lines without blank lines between (so all fit in first 50 lines read)
101
+ const lines = Array.from({ length: 40 }, (_, i) => `- Item ${i + 1}`).join('\n');
102
+ const desc = await testMarkdown(`# Title\n\n${lines}`);
103
+ const descLines = desc?.split('\n') ?? [];
104
+ // 25 content lines + 1 truncation indicator
105
+ expect(descLines.length).toBe(26);
106
+ expect(descLines[25]).toBe('... and 16 more lines');
107
+ });
108
+ test('returns null for empty markdown', async () => {
109
+ const desc = await testMarkdown(``);
110
+ expect(desc).toBeNull();
111
+ });
112
+ test('returns null for only HTML comments', async () => {
113
+ const desc = await testMarkdown(`<!-- Just a comment -->
114
+
115
+ <!-- Another comment -->
116
+ `);
117
+ expect(desc).toBeNull();
118
+ });
119
+ test('handles mixed content', async () => {
120
+ const desc = await testMarkdown(`<!-- Header comment -->
121
+ ![Badge](https://example.com/badge.svg)
122
+
123
+ # agentmap
124
+
125
+ A compact, YAML-based inventory of your codebase.
126
+
127
+ ## Features
128
+
129
+ - Fast scanning
130
+ - Tree-sitter parsing
131
+
132
+ \`\`\`bash
133
+ npm install agentmap
134
+ \`\`\`
135
+ `);
136
+ expect(desc).toMatchInlineSnapshot(`
137
+ "agentmap
138
+ A compact, YAML-based inventory of your codebase.
139
+ Features
140
+ - Fast scanning
141
+ - Tree-sitter parsing
142
+ \`\`\`bash
143
+ npm install agentmap
144
+ \`\`\`"
145
+ `);
146
+ });
147
+ });
148
+ //# sourceMappingURL=markdown.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../src/extract/markdown.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { MarkerResult } from '../types.js';
2
+ export { extractMarkdownDescription } from './markdown.js';
2
3
  /**
3
4
  * Extract header comment/docstring from a file.
4
5
  * Uses tree-sitter for clean AST-based extraction.
@@ -1 +1 @@
1
- {"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,aAAa,CAAA;AAsBrE;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkB3E"}
1
+ {"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../src/extract/marker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,aAAa,CAAA;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AA+D1D;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkB3E"}
@@ -1,9 +1,47 @@
1
1
  // Extract file header comment/docstring using tree-sitter.
2
2
  // Detects standard comment styles from existing projects.
3
+ // Automatically skips license headers (Copyright, SPDX, etc.).
3
4
  import { open } from 'fs/promises';
4
5
  import { parseCode, detectLanguage } from '../parser/index.js';
6
+ export { extractMarkdownDescription } from './markdown.js';
5
7
  const MAX_LINES = 50;
6
- const MAX_DESC_LINES = 20;
8
+ const MAX_DESC_LINES = 25;
9
+ /**
10
+ * Patterns that strongly indicate a license/copyright comment.
11
+ * These are checked against comment text.
12
+ */
13
+ const LICENSE_PATTERNS = [
14
+ /\bcopyright\s*(?:\(c\)|©|\d{4})/i, // "Copyright (c)", "Copyright ©", "Copyright 2024"
15
+ /\bspdx-license-identifier\s*:/i, // "SPDX-License-Identifier: MIT"
16
+ /\ball rights reserved\b/i, // Common in copyright notices
17
+ /\blicensed under\b/i, // "Licensed under the MIT License", "Licensed under Apache 2.0"
18
+ /\bpermission is hereby granted\b/i, // MIT license text
19
+ /\bredistribution and use\b/i, // BSD license text
20
+ /\bthis source code is licensed\b/i, // Meta/Facebook style
21
+ /\bwithout warranty\b/i, // Common in license text
22
+ /\bthe software is provided "as is"\b/i, // MIT license text
23
+ ];
24
+ /**
25
+ * Check if comment text looks like a license/copyright header.
26
+ * Uses patterns specific to actual license text to avoid false positives.
27
+ */
28
+ function isLicenseComment(text) {
29
+ return LICENSE_PATTERNS.some(pattern => pattern.test(text));
30
+ }
31
+ /**
32
+ * Truncate lines to MAX_DESC_LINES, adding indicator if truncated
33
+ */
34
+ function truncateDescription(lines) {
35
+ const trimmed = lines.join('\n').trim();
36
+ const trimmedLines = trimmed.split('\n');
37
+ if (trimmedLines.length <= MAX_DESC_LINES) {
38
+ return trimmed;
39
+ }
40
+ const truncated = trimmedLines.slice(0, MAX_DESC_LINES);
41
+ const remaining = trimmedLines.length - MAX_DESC_LINES;
42
+ truncated.push(`... and ${remaining} more lines`);
43
+ return truncated.join('\n');
44
+ }
7
45
  /**
8
46
  * Read the first N lines of a file
9
47
  */
@@ -70,12 +108,14 @@ function extractHeaderFromAST(root, language) {
70
108
  return null;
71
109
  }
72
110
  let startIdx = 0;
73
- // Skip shebang if present
111
+ let shebang = null;
112
+ // Capture shebang if present
74
113
  // Python/shell: comment node starting with #!
75
114
  // JS/TS: hash_bang_line node
76
115
  const firstChild = children[0];
77
116
  if (firstChild?.type === 'hash_bang_line' ||
78
117
  (firstChild?.type === 'comment' && firstChild.text.startsWith('#!'))) {
118
+ shebang = firstChild.text.trim();
79
119
  startIdx = 1;
80
120
  }
81
121
  // Skip JS/TS directives like "use strict", "use client"
@@ -83,19 +123,63 @@ function extractHeaderFromAST(root, language) {
83
123
  startIdx++;
84
124
  }
85
125
  if (startIdx >= children.length) {
86
- return null;
126
+ // Only shebang, no description
127
+ return shebang;
87
128
  }
88
129
  const first = children[startIdx];
130
+ // Helper to prepend shebang to description
131
+ const withShebang = (desc) => {
132
+ if (!desc)
133
+ return shebang;
134
+ if (!shebang)
135
+ return desc;
136
+ return `${shebang}\n${desc}`;
137
+ };
89
138
  // Python: check for module docstring (expression_statement containing string)
90
139
  if (language === 'python' && first.type === 'expression_statement') {
91
140
  const str = first.childForFieldName('expression') ?? first.child(0);
92
141
  if (str?.type === 'string') {
93
- return extractPythonDocstring(str);
142
+ const docstring = extractPythonDocstring(str);
143
+ // Skip if it looks like a license
144
+ if (docstring && isLicenseComment(docstring)) {
145
+ // Try to find next comment after this docstring
146
+ return withShebang(extractConsecutiveComments(children, startIdx + 1, language));
147
+ }
148
+ return withShebang(docstring);
94
149
  }
95
150
  }
96
- // Collect consecutive comment nodes at the start
151
+ // Collect consecutive comment nodes at the start, skipping license comments
97
152
  if (isCommentNode(first)) {
98
- return extractConsecutiveComments(children, startIdx, language);
153
+ return withShebang(extractConsecutiveCommentsSkipLicense(children, startIdx, language));
154
+ }
155
+ return shebang;
156
+ }
157
+ /**
158
+ * Extract consecutive comments, skipping leading license comments
159
+ */
160
+ function extractConsecutiveCommentsSkipLicense(children, startIdx, language) {
161
+ let idx = startIdx;
162
+ while (idx < children.length) {
163
+ const node = children[idx];
164
+ // Skip non-comment nodes (might be blank lines, etc.)
165
+ if (!isCommentNode(node)) {
166
+ idx++;
167
+ continue;
168
+ }
169
+ const text = extractCommentText(node, language);
170
+ if (text === null) {
171
+ idx++;
172
+ continue;
173
+ }
174
+ // Check if this comment is a license
175
+ if (isLicenseComment(text)) {
176
+ // Skip this license comment
177
+ idx++;
178
+ // Continue to skip any consecutive license comments
179
+ continue;
180
+ }
181
+ // Found a non-license comment - extract from here
182
+ return extractConsecutiveComments(children, idx, language);
99
183
  }
100
184
  return null;
101
185
  }
@@ -121,12 +205,8 @@ function extractConsecutiveComments(children, startIdx, language) {
121
205
  if (text !== null) {
122
206
  lines.push(...text.split('\n'));
123
207
  }
124
- // Limit description length
125
- if (lines.length >= MAX_DESC_LINES) {
126
- break;
127
- }
128
208
  }
129
- return lines.slice(0, MAX_DESC_LINES).join('\n').trim();
209
+ return truncateDescription(lines);
130
210
  }
131
211
  /**
132
212
  * Extract text content from a comment node
@@ -212,7 +292,7 @@ function extractPythonDocstring(node) {
212
292
  const content = findChild(node, 'string_content');
213
293
  if (content) {
214
294
  const lines = content.text.trim().split('\n');
215
- return lines.slice(0, MAX_DESC_LINES).join('\n').trim();
295
+ return truncateDescription(lines);
216
296
  }
217
297
  // Fallback: extract from full text
218
298
  let text = node.text;
@@ -224,7 +304,7 @@ function extractPythonDocstring(node) {
224
304
  text = text.slice(0, -3);
225
305
  }
226
306
  const lines = text.trim().split('\n');
227
- return lines.slice(0, MAX_DESC_LINES).join('\n').trim();
307
+ return truncateDescription(lines);
228
308
  }
229
309
  /**
230
310
  * Get all children of a node as array