grok-cli-hurry-mode 1.0.4 → 1.0.5

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 (80) hide show
  1. package/dist/hooks/use-input-handler.js +588 -0
  2. package/dist/hooks/use-input-handler.js.map +1 -1
  3. package/dist/subagents/subagent-framework.d.ts +66 -0
  4. package/dist/subagents/subagent-framework.js +349 -0
  5. package/dist/subagents/subagent-framework.js.map +1 -0
  6. package/dist/tools/documentation/agent-system-generator.d.ts +30 -0
  7. package/dist/tools/documentation/agent-system-generator.js +816 -0
  8. package/dist/tools/documentation/agent-system-generator.js.map +1 -0
  9. package/dist/tools/documentation/api-docs-generator.d.ts +89 -0
  10. package/dist/tools/documentation/api-docs-generator.js +344 -0
  11. package/dist/tools/documentation/api-docs-generator.js.map +1 -0
  12. package/dist/tools/documentation/auto-update-system.d.ts +47 -0
  13. package/dist/tools/documentation/auto-update-system.js +278 -0
  14. package/dist/tools/documentation/auto-update-system.js.map +1 -0
  15. package/dist/tools/documentation/changelog-generator.d.ts +39 -0
  16. package/dist/tools/documentation/changelog-generator.js +255 -0
  17. package/dist/tools/documentation/changelog-generator.js.map +1 -0
  18. package/dist/tools/documentation/claude-md-parser.d.ts +25 -0
  19. package/dist/tools/documentation/claude-md-parser.js +108 -0
  20. package/dist/tools/documentation/claude-md-parser.js.map +1 -0
  21. package/dist/tools/documentation/comments-generator.d.ts +55 -0
  22. package/dist/tools/documentation/comments-generator.js +238 -0
  23. package/dist/tools/documentation/comments-generator.js.map +1 -0
  24. package/dist/tools/documentation/docs-menu.d.ts +9 -0
  25. package/dist/tools/documentation/docs-menu.js +57 -0
  26. package/dist/tools/documentation/docs-menu.js.map +1 -0
  27. package/dist/tools/documentation/readme-generator.d.ts +31 -0
  28. package/dist/tools/documentation/readme-generator.js +244 -0
  29. package/dist/tools/documentation/readme-generator.js.map +1 -0
  30. package/dist/tools/documentation/self-healing-system.d.ts +66 -0
  31. package/dist/tools/documentation/self-healing-system.js +444 -0
  32. package/dist/tools/documentation/self-healing-system.js.map +1 -0
  33. package/dist/tools/documentation/smart-prd-assistant.d.ts +45 -0
  34. package/dist/tools/documentation/smart-prd-assistant.js +325 -0
  35. package/dist/tools/documentation/smart-prd-assistant.js.map +1 -0
  36. package/dist/tools/documentation/update-agent-docs.d.ts +37 -0
  37. package/dist/tools/documentation/update-agent-docs.js +275 -0
  38. package/dist/tools/documentation/update-agent-docs.js.map +1 -0
  39. package/dist/tools/intelligence/ast-parser.js +22 -4
  40. package/dist/tools/intelligence/ast-parser.js.map +1 -1
  41. package/dist/ui/app.d.ts +2 -1
  42. package/dist/ui/app.js +27 -6
  43. package/dist/ui/app.js.map +1 -1
  44. package/dist/ui/components/api-key-input.d.ts +2 -1
  45. package/dist/ui/components/api-key-input.js +18 -3
  46. package/dist/ui/components/api-key-input.js.map +1 -1
  47. package/dist/ui/components/chat-history.d.ts +2 -1
  48. package/dist/ui/components/chat-history.js +35 -13
  49. package/dist/ui/components/chat-history.js.map +1 -1
  50. package/dist/ui/components/chat-input.d.ts +2 -1
  51. package/dist/ui/components/chat-input.js +36 -15
  52. package/dist/ui/components/chat-input.js.map +1 -1
  53. package/dist/ui/components/chat-interface.d.ts +2 -1
  54. package/dist/ui/components/chat-interface.js +39 -5
  55. package/dist/ui/components/chat-interface.js.map +1 -1
  56. package/dist/ui/components/command-suggestions.d.ts +2 -1
  57. package/dist/ui/components/command-suggestions.js +8 -3
  58. package/dist/ui/components/command-suggestions.js.map +1 -1
  59. package/dist/ui/components/confirmation-dialog.d.ts +2 -1
  60. package/dist/ui/components/confirmation-dialog.js +39 -4
  61. package/dist/ui/components/confirmation-dialog.js.map +1 -1
  62. package/dist/ui/components/diff-renderer.js +66 -57
  63. package/dist/ui/components/diff-renderer.js.map +1 -1
  64. package/dist/ui/components/loading-spinner.d.ts +2 -1
  65. package/dist/ui/components/loading-spinner.js +13 -3
  66. package/dist/ui/components/loading-spinner.js.map +1 -1
  67. package/dist/ui/components/mcp-status.d.ts +2 -1
  68. package/dist/ui/components/mcp-status.js +6 -3
  69. package/dist/ui/components/mcp-status.js.map +1 -1
  70. package/dist/ui/components/model-selection.d.ts +2 -1
  71. package/dist/ui/components/model-selection.js +11 -2
  72. package/dist/ui/components/model-selection.js.map +1 -1
  73. package/dist/ui/shared/max-sized-box.js +2 -2
  74. package/dist/ui/shared/max-sized-box.js.map +1 -1
  75. package/dist/ui/utils/code-colorizer.js +2 -2
  76. package/dist/ui/utils/code-colorizer.js.map +1 -1
  77. package/dist/ui/utils/markdown-renderer.d.ts +2 -1
  78. package/dist/ui/utils/markdown-renderer.js +3 -3
  79. package/dist/ui/utils/markdown-renderer.js.map +1 -1
  80. package/package.json +21 -12
@@ -0,0 +1,108 @@
1
+ import path from 'path';
2
+ import fs from 'fs/promises';
3
+ import { existsSync } from 'fs';
4
+ export class ClaudeMdParserImpl {
5
+ async parseClaude(rootPath) {
6
+ const claudePath = path.join(rootPath, 'CLAUDE.md');
7
+ if (!existsSync(claudePath)) {
8
+ return {
9
+ exists: false,
10
+ content: '',
11
+ hasDocumentationSection: false
12
+ };
13
+ }
14
+ try {
15
+ const content = await fs.readFile(claudePath, 'utf-8');
16
+ const hasDocumentationSection = content.includes('Documentation System Workflow') ||
17
+ content.includes('.agent documentation system');
18
+ return {
19
+ exists: true,
20
+ content,
21
+ hasDocumentationSection
22
+ };
23
+ }
24
+ catch (error) {
25
+ return {
26
+ exists: false,
27
+ content: '',
28
+ hasDocumentationSection: false
29
+ };
30
+ }
31
+ }
32
+ async updateClaude(rootPath, documentationSection) {
33
+ const claudePath = path.join(rootPath, 'CLAUDE.md');
34
+ try {
35
+ const { exists, content, hasDocumentationSection } = await this.parseClaude(rootPath);
36
+ if (hasDocumentationSection) {
37
+ return {
38
+ success: true,
39
+ message: '✅ CLAUDE.md already contains documentation system instructions'
40
+ };
41
+ }
42
+ let newContent;
43
+ if (exists) {
44
+ // Append to existing CLAUDE.md
45
+ newContent = content + '\n\n' + documentationSection;
46
+ }
47
+ else {
48
+ // Create new CLAUDE.md with basic header
49
+ newContent = `# CLAUDE.md
50
+
51
+ This document provides context and instructions for Claude Code when working with this project.
52
+
53
+ ${documentationSection}`;
54
+ }
55
+ await fs.writeFile(claudePath, newContent);
56
+ return {
57
+ success: true,
58
+ message: exists
59
+ ? '✅ Updated existing CLAUDE.md with documentation system instructions'
60
+ : '✅ Created CLAUDE.md with documentation system instructions'
61
+ };
62
+ }
63
+ catch (error) {
64
+ return {
65
+ success: false,
66
+ message: `Failed to update CLAUDE.md: ${error.message}`
67
+ };
68
+ }
69
+ }
70
+ generateDocumentationSection() {
71
+ return `## 📚 Documentation System Workflow
72
+
73
+ ### Before Planning Features:
74
+ 1. **Read \`.agent/README.md\`** for project overview
75
+ 2. **Check \`.agent/system/\`** for architecture context
76
+ 3. **Review \`.agent/tasks/\`** for related work
77
+ 4. **Scan \`.agent/sop/\`** for established patterns
78
+
79
+ ### During Implementation:
80
+ - Store PRDs in \`.agent/tasks/\` before coding
81
+ - Reference architecture docs for consistency
82
+ - Follow established patterns from SOPs
83
+ - Use cross-references between .agent docs
84
+
85
+ ### After Implementation:
86
+ - Run \`/update-agent-docs\` to capture changes
87
+ - Update \`.agent/system/\` if architecture changed
88
+ - Add new SOPs for repeatable processes
89
+ - Link related tasks and documents
90
+
91
+ ### Documentation Rules:
92
+ - Keep system docs as single source of truth
93
+ - Use relative links between .agent documents
94
+ - Maintain concise, actionable content
95
+ - Update cross-references when adding new docs
96
+
97
+ ### Token Optimization:
98
+ - Read .agent docs hierarchically (README → critical-state → relevant docs)
99
+ - Expect ~600 tokens for full context vs 3000+ without system
100
+ - Use .agent structure to avoid redundant codebase scanning
101
+ - Reference existing documentation rather than recreating context
102
+
103
+ ---
104
+ *This section was added by the Grok CLI documentation system*`;
105
+ }
106
+ }
107
+ export const claudeMdParser = new ClaudeMdParserImpl();
108
+ //# sourceMappingURL=claude-md-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md-parser.js","sourceRoot":"","sources":["../../../src/tools/documentation/claude-md-parser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAQhC,MAAM,OAAO,kBAAkB;IAE7B,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE;gBACX,uBAAuB,EAAE,KAAK;aAC/B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBAClD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YAE/E,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO;gBACP,uBAAuB;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE;gBACX,uBAAuB,EAAE,KAAK;aAC/B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,oBAA4B;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtF,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,gEAAgE;iBAC1E,CAAC;YACJ,CAAC;YAED,IAAI,UAAkB,CAAC;YAEvB,IAAI,MAAM,EAAE,CAAC;gBACX,+BAA+B;gBAC/B,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,oBAAoB,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,yCAAyC;gBACzC,UAAU,GAAG;;;;EAInB,oBAAoB,EAAE,CAAC;YACnB,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE3C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM;oBACb,CAAC,CAAC,qEAAqE;oBACvE,CAAC,CAAC,4DAA4D;aACjE,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,+BAA+B,KAAK,CAAC,OAAO,EAAE;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;QAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DAiCmD,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ export interface CommentsConfig {
2
+ filePath: string;
3
+ commentType: 'functions' | 'classes' | 'all';
4
+ style: 'jsdoc' | 'inline' | 'auto';
5
+ }
6
+ export interface CodeAnalysis {
7
+ language: string;
8
+ functions: FunctionInfo[];
9
+ classes: ClassInfo[];
10
+ interfaces: InterfaceInfo[];
11
+ hasExistingComments: boolean;
12
+ }
13
+ export interface FunctionInfo {
14
+ name: string;
15
+ line: number;
16
+ parameters: string[];
17
+ returnType?: string;
18
+ isAsync: boolean;
19
+ isExported: boolean;
20
+ }
21
+ export interface ClassInfo {
22
+ name: string;
23
+ line: number;
24
+ methods: FunctionInfo[];
25
+ properties: PropertyInfo[];
26
+ isExported: boolean;
27
+ }
28
+ export interface InterfaceInfo {
29
+ name: string;
30
+ line: number;
31
+ properties: PropertyInfo[];
32
+ }
33
+ export interface PropertyInfo {
34
+ name: string;
35
+ type?: string;
36
+ optional: boolean;
37
+ }
38
+ export declare class CommentsGenerator {
39
+ private config;
40
+ constructor(config: CommentsConfig);
41
+ generateComments(): Promise<{
42
+ success: boolean;
43
+ message: string;
44
+ modifiedContent?: string;
45
+ }>;
46
+ private analyzeCode;
47
+ private detectLanguage;
48
+ private hasExtensiveComments;
49
+ private addComments;
50
+ private generateFunctionComment;
51
+ private generateClassComment;
52
+ private generateFunctionDescription;
53
+ private getIndentation;
54
+ private countAddedComments;
55
+ }
@@ -0,0 +1,238 @@
1
+ import path from 'path';
2
+ import fs from 'fs/promises';
3
+ import { existsSync } from 'fs';
4
+ export class CommentsGenerator {
5
+ constructor(config) {
6
+ this.config = config;
7
+ }
8
+ async generateComments() {
9
+ try {
10
+ if (!existsSync(this.config.filePath)) {
11
+ return {
12
+ success: false,
13
+ message: 'File not found'
14
+ };
15
+ }
16
+ const content = await fs.readFile(this.config.filePath, 'utf-8');
17
+ const analysis = this.analyzeCode(content);
18
+ if (analysis.hasExistingComments) {
19
+ return {
20
+ success: false,
21
+ message: 'File already has extensive comments. Use --force to override.'
22
+ };
23
+ }
24
+ const modifiedContent = this.addComments(content, analysis);
25
+ // Create backup
26
+ const backupPath = this.config.filePath + '.backup';
27
+ await fs.writeFile(backupPath, content);
28
+ // Write modified content
29
+ await fs.writeFile(this.config.filePath, modifiedContent);
30
+ const commentCount = this.countAddedComments(analysis);
31
+ return {
32
+ success: true,
33
+ message: `✅ Added ${commentCount} comments to ${path.basename(this.config.filePath)}\n📁 Backup created: ${path.basename(backupPath)}`,
34
+ modifiedContent
35
+ };
36
+ }
37
+ catch (error) {
38
+ return {
39
+ success: false,
40
+ message: `Failed to add comments: ${error.message}`
41
+ };
42
+ }
43
+ }
44
+ analyzeCode(content) {
45
+ const lines = content.split('\n');
46
+ const language = this.detectLanguage();
47
+ const analysis = {
48
+ language,
49
+ functions: [],
50
+ classes: [],
51
+ interfaces: [],
52
+ hasExistingComments: this.hasExtensiveComments(content)
53
+ };
54
+ // Simple regex-based parsing (could be enhanced with AST)
55
+ for (let i = 0; i < lines.length; i++) {
56
+ const line = lines[i].trim();
57
+ // Detect functions
58
+ const funcMatch = line.match(/(?:export\s+)?(?:async\s+)?function\s+(\w+)\s*\(([^)]*)\)/);
59
+ if (funcMatch) {
60
+ const [, name, params] = funcMatch;
61
+ analysis.functions.push({
62
+ name,
63
+ line: i + 1,
64
+ parameters: params.split(',').map(p => p.trim()).filter(Boolean),
65
+ isAsync: line.includes('async'),
66
+ isExported: line.includes('export')
67
+ });
68
+ }
69
+ // Detect arrow functions
70
+ const arrowMatch = line.match(/(?:export\s+)?(?:const|let|var)\s+(\w+)\s*=\s*(?:async\s+)?\([^)]*\)\s*=>/);
71
+ if (arrowMatch) {
72
+ const [, name] = arrowMatch;
73
+ analysis.functions.push({
74
+ name,
75
+ line: i + 1,
76
+ parameters: [],
77
+ isAsync: line.includes('async'),
78
+ isExported: line.includes('export')
79
+ });
80
+ }
81
+ // Detect classes
82
+ const classMatch = line.match(/(?:export\s+)?class\s+(\w+)/);
83
+ if (classMatch) {
84
+ const [, name] = classMatch;
85
+ analysis.classes.push({
86
+ name,
87
+ line: i + 1,
88
+ methods: [],
89
+ properties: [],
90
+ isExported: line.includes('export')
91
+ });
92
+ }
93
+ // Detect interfaces (TypeScript)
94
+ const interfaceMatch = line.match(/(?:export\s+)?interface\s+(\w+)/);
95
+ if (interfaceMatch) {
96
+ const [, name] = interfaceMatch;
97
+ analysis.interfaces.push({
98
+ name,
99
+ line: i + 1,
100
+ properties: []
101
+ });
102
+ }
103
+ }
104
+ return analysis;
105
+ }
106
+ detectLanguage() {
107
+ const ext = path.extname(this.config.filePath);
108
+ switch (ext) {
109
+ case '.ts':
110
+ case '.tsx': return 'typescript';
111
+ case '.js':
112
+ case '.jsx': return 'javascript';
113
+ case '.py': return 'python';
114
+ case '.java': return 'java';
115
+ case '.cpp':
116
+ case '.cc':
117
+ case '.cxx': return 'cpp';
118
+ default: return 'unknown';
119
+ }
120
+ }
121
+ hasExtensiveComments(content) {
122
+ const lines = content.split('\n');
123
+ const commentLines = lines.filter(line => {
124
+ const trimmed = line.trim();
125
+ return trimmed.startsWith('//') ||
126
+ trimmed.startsWith('/*') ||
127
+ trimmed.startsWith('*') ||
128
+ trimmed.startsWith('#') ||
129
+ trimmed.includes('/**');
130
+ });
131
+ // Consider "extensive" if more than 20% of lines are comments
132
+ return commentLines.length / lines.length > 0.2;
133
+ }
134
+ addComments(content, analysis) {
135
+ const lines = content.split('\n');
136
+ let modifiedLines = [...lines];
137
+ let insertOffset = 0;
138
+ // Add comments to functions
139
+ if (this.config.commentType === 'functions' || this.config.commentType === 'all') {
140
+ for (const func of analysis.functions) {
141
+ const commentLines = this.generateFunctionComment(func, analysis.language);
142
+ const insertIndex = func.line - 1 + insertOffset;
143
+ // Insert comment lines before function
144
+ modifiedLines.splice(insertIndex, 0, ...commentLines);
145
+ insertOffset += commentLines.length;
146
+ }
147
+ }
148
+ // Add comments to classes
149
+ if (this.config.commentType === 'classes' || this.config.commentType === 'all') {
150
+ for (const cls of analysis.classes) {
151
+ const commentLines = this.generateClassComment(cls, analysis.language);
152
+ const insertIndex = cls.line - 1 + insertOffset;
153
+ modifiedLines.splice(insertIndex, 0, ...commentLines);
154
+ insertOffset += commentLines.length;
155
+ }
156
+ }
157
+ return modifiedLines.join('\n');
158
+ }
159
+ generateFunctionComment(func, language) {
160
+ const indent = this.getIndentation(func.line);
161
+ if (language === 'typescript' || language === 'javascript') {
162
+ const lines = [
163
+ `${indent}/**`,
164
+ `${indent} * ${this.generateFunctionDescription(func)}`,
165
+ ];
166
+ if (func.parameters.length > 0) {
167
+ lines.push(`${indent} *`);
168
+ func.parameters.forEach(param => {
169
+ const cleanParam = param.split(':')[0].split('=')[0].trim();
170
+ lines.push(`${indent} * @param {any} ${cleanParam} - Parameter description`);
171
+ });
172
+ }
173
+ lines.push(`${indent} * @returns {${func.isAsync ? 'Promise<any>' : 'any'}} Return description`);
174
+ lines.push(`${indent} */`);
175
+ return lines;
176
+ }
177
+ return [`${indent}// ${this.generateFunctionDescription(func)}`];
178
+ }
179
+ generateClassComment(cls, language) {
180
+ const indent = this.getIndentation(cls.line);
181
+ if (language === 'typescript' || language === 'javascript') {
182
+ return [
183
+ `${indent}/**`,
184
+ `${indent} * ${cls.name} class`,
185
+ `${indent} * `,
186
+ `${indent} * @class ${cls.name}`,
187
+ `${indent} */`
188
+ ];
189
+ }
190
+ return [`${indent}// ${cls.name} class`];
191
+ }
192
+ generateFunctionDescription(func) {
193
+ if (func.name === 'constructor') {
194
+ return 'Creates an instance of the class';
195
+ }
196
+ // Generate smart descriptions based on function name
197
+ const name = func.name.toLowerCase();
198
+ if (name.startsWith('get')) {
199
+ return `Gets ${name.substring(3).replace(/([A-Z])/g, ' $1').toLowerCase()}`;
200
+ }
201
+ if (name.startsWith('set')) {
202
+ return `Sets ${name.substring(3).replace(/([A-Z])/g, ' $1').toLowerCase()}`;
203
+ }
204
+ if (name.startsWith('create')) {
205
+ return `Creates a new ${name.substring(6).replace(/([A-Z])/g, ' $1').toLowerCase()}`;
206
+ }
207
+ if (name.startsWith('delete') || name.startsWith('remove')) {
208
+ const target = name.startsWith('delete') ? name.substring(6) : name.substring(6);
209
+ return `Deletes ${target.replace(/([A-Z])/g, ' $1').toLowerCase()}`;
210
+ }
211
+ if (name.startsWith('update')) {
212
+ return `Updates ${name.substring(6).replace(/([A-Z])/g, ' $1').toLowerCase()}`;
213
+ }
214
+ if (name.startsWith('is') || name.startsWith('has')) {
215
+ return `Checks if ${name.substring(2).replace(/([A-Z])/g, ' $1').toLowerCase()}`;
216
+ }
217
+ if (name.includes('handle')) {
218
+ return `Handles ${name.replace('handle', '').replace(/([A-Z])/g, ' $1').toLowerCase()}`;
219
+ }
220
+ return `${func.name} function`;
221
+ }
222
+ getIndentation(lineNumber) {
223
+ // This would need access to the original line to detect indentation
224
+ // For now, return empty string - could be enhanced
225
+ return '';
226
+ }
227
+ countAddedComments(analysis) {
228
+ let count = 0;
229
+ if (this.config.commentType === 'functions' || this.config.commentType === 'all') {
230
+ count += analysis.functions.length;
231
+ }
232
+ if (this.config.commentType === 'classes' || this.config.commentType === 'all') {
233
+ count += analysis.classes.length;
234
+ }
235
+ return count;
236
+ }
237
+ }
238
+ //# sourceMappingURL=comments-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments-generator.js","sourceRoot":"","sources":["../../../src/tools/documentation/comments-generator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AA6ChC,MAAM,OAAO,iBAAiB;IAG5B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,gBAAgB;iBAC1B,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE3C,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,+DAA+D;iBACzE,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE5D,gBAAgB;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;YACpD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAExC,yBAAyB;YACzB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEvD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,WAAW,YAAY,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACtI,eAAe;aAChB,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;aACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEvC,MAAM,QAAQ,GAAiB;YAC7B,QAAQ;YACR,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;SACxD,CAAC;QAEF,0DAA0D;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAE7B,mBAAmB;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC1F,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;gBACnC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;oBACtB,IAAI;oBACJ,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAChE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC/B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC3G,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;gBAC5B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;oBACtB,IAAI;oBACJ,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,UAAU,EAAE,EAAE;oBACd,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC/B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,iBAAiB;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;gBAC5B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;oBACpB,IAAI;oBACJ,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,iCAAiC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrE,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC;gBAChC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;oBACvB,IAAI;oBACJ,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,KAAK,CAAC;YAAC,KAAK,MAAM,CAAC,CAAC,OAAO,YAAY,CAAC;YAC7C,KAAK,KAAK,CAAC;YAAC,KAAK,MAAM,CAAC,CAAC,OAAO,YAAY,CAAC;YAC7C,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;YAC5B,KAAK,MAAM,CAAC;YAAC,KAAK,KAAK,CAAC;YAAC,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC;YACnD,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,OAAe;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBACxB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBACxB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBACvB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,OAAO,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAClD,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,QAAsB;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,4BAA4B;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACjF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAEjD,uCAAuC;gBACvC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;gBACtD,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;YACtC,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC/E,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACvE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;gBAEhD,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;gBACtD,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,uBAAuB,CAAC,IAAkB,EAAE,QAAgB;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG;gBACZ,GAAG,MAAM,KAAK;gBACd,GAAG,MAAM,MAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;aACxD,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,UAAU,0BAA0B,CAAC,CAAC;gBAC/E,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC;YACjG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;YAE3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,MAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,oBAAoB,CAAC,GAAc,EAAE,QAAgB;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC3D,OAAO;gBACL,GAAG,MAAM,KAAK;gBACd,GAAG,MAAM,MAAM,GAAG,CAAC,IAAI,QAAQ;gBAC/B,GAAG,MAAM,KAAK;gBACd,GAAG,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;gBAChC,GAAG,MAAM,KAAK;aACf,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEO,2BAA2B,CAAC,IAAkB;QACpD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,OAAO,kCAAkC,CAAC;QAC5C,CAAC;QAED,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjF,OAAO,WAAW,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACjF,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1F,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC;IACjC,CAAC;IAEO,cAAc,CAAC,UAAkB;QACvC,oEAAoE;QACpE,mDAAmD;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,kBAAkB,CAAC,QAAsB;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACjF,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC/E,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export interface DocsMenuOption {
2
+ key: string;
3
+ title: string;
4
+ description: string;
5
+ command: string;
6
+ }
7
+ export declare const DOCS_MENU_OPTIONS: DocsMenuOption[];
8
+ export declare function generateDocsMenuText(): string;
9
+ export declare function findDocsMenuOption(input: string): DocsMenuOption | null;
@@ -0,0 +1,57 @@
1
+ export const DOCS_MENU_OPTIONS = [
2
+ {
3
+ key: "1",
4
+ title: "Generate README",
5
+ description: "Create comprehensive README.md from project structure",
6
+ command: "/readme"
7
+ },
8
+ {
9
+ key: "2",
10
+ title: "Generate API Documentation",
11
+ description: "Extract and document functions, classes, modules",
12
+ command: "/api-docs"
13
+ },
14
+ {
15
+ key: "3",
16
+ title: "Add Code Comments",
17
+ description: "Add intelligent comments to existing code",
18
+ command: "/comments"
19
+ },
20
+ {
21
+ key: "4",
22
+ title: "Generate Changelog",
23
+ description: "Generate CHANGELOG.md from git history",
24
+ command: "/changelog"
25
+ },
26
+ {
27
+ key: "5",
28
+ title: "Initialize .agent System",
29
+ description: "Set up AI-first documentation structure",
30
+ command: "/init-agent"
31
+ },
32
+ {
33
+ key: "6",
34
+ title: "Update .agent Documentation",
35
+ description: "Sync docs with recent code changes",
36
+ command: "/update-agent-docs"
37
+ }
38
+ ];
39
+ export function generateDocsMenuText() {
40
+ return `📚 **Documentation Menu**
41
+
42
+ Choose a documentation task:
43
+
44
+ ${DOCS_MENU_OPTIONS.map(option => `**${option.key}.** ${option.title}
45
+ ${option.description}
46
+ → \`${option.command}\`
47
+ `).join('\n')}
48
+
49
+ **0.** Exit Menu
50
+
51
+ Type a number to select an option, or type any command directly.`;
52
+ }
53
+ export function findDocsMenuOption(input) {
54
+ const trimmed = input.trim();
55
+ return DOCS_MENU_OPTIONS.find(option => option.key === trimmed) || null;
56
+ }
57
+ //# sourceMappingURL=docs-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-menu.js","sourceRoot":"","sources":["../../../src/tools/documentation/docs-menu.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,iBAAiB,GAAqB;IACjD;QACE,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,SAAS;KACnB;IACD;QACE,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,kDAAkD;QAC/D,OAAO,EAAE,WAAW;KACrB;IACD;QACE,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,WAAW;KACrB;IACD;QACE,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,YAAY;KACtB;IACD;QACE,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,aAAa;KACvB;IACD;QACE,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,oBAAoB;KAC9B;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;EAIP,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC/B,KAAK,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,KAAK;KAC/B,MAAM,CAAC,WAAW;SACd,MAAM,CAAC,OAAO;CACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;iEAIoD,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,31 @@
1
+ export interface ReadmeConfig {
2
+ projectName: string;
3
+ rootPath: string;
4
+ updateExisting: boolean;
5
+ template: 'default' | 'api' | 'cli' | 'library';
6
+ }
7
+ export interface ProjectAnalysis {
8
+ packageJson?: any;
9
+ hasTypeScript: boolean;
10
+ hasReact: boolean;
11
+ hasTests: boolean;
12
+ hasDocs: boolean;
13
+ buildScripts: string[];
14
+ dependencies: string[];
15
+ devDependencies: string[];
16
+ mainFiles: string[];
17
+ framework?: string;
18
+ }
19
+ export declare class ReadmeGenerator {
20
+ private config;
21
+ constructor(config: ReadmeConfig);
22
+ generateReadme(): Promise<{
23
+ success: boolean;
24
+ message: string;
25
+ content?: string;
26
+ }>;
27
+ private analyzeProject;
28
+ private generateReadmeContent;
29
+ private generateBadges;
30
+ private getScriptDescription;
31
+ }