grok-cli-hurry-mode 1.0.3 → 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 (83) hide show
  1. package/dist/agent/grok-agent.js.map +1 -1
  2. package/dist/hooks/use-input-handler.js +590 -2
  3. package/dist/hooks/use-input-handler.js.map +1 -1
  4. package/dist/mcp/client.js +6 -1
  5. package/dist/mcp/client.js.map +1 -1
  6. package/dist/subagents/subagent-framework.d.ts +66 -0
  7. package/dist/subagents/subagent-framework.js +349 -0
  8. package/dist/subagents/subagent-framework.js.map +1 -0
  9. package/dist/tools/documentation/agent-system-generator.d.ts +30 -0
  10. package/dist/tools/documentation/agent-system-generator.js +816 -0
  11. package/dist/tools/documentation/agent-system-generator.js.map +1 -0
  12. package/dist/tools/documentation/api-docs-generator.d.ts +89 -0
  13. package/dist/tools/documentation/api-docs-generator.js +344 -0
  14. package/dist/tools/documentation/api-docs-generator.js.map +1 -0
  15. package/dist/tools/documentation/auto-update-system.d.ts +47 -0
  16. package/dist/tools/documentation/auto-update-system.js +278 -0
  17. package/dist/tools/documentation/auto-update-system.js.map +1 -0
  18. package/dist/tools/documentation/changelog-generator.d.ts +39 -0
  19. package/dist/tools/documentation/changelog-generator.js +255 -0
  20. package/dist/tools/documentation/changelog-generator.js.map +1 -0
  21. package/dist/tools/documentation/claude-md-parser.d.ts +25 -0
  22. package/dist/tools/documentation/claude-md-parser.js +108 -0
  23. package/dist/tools/documentation/claude-md-parser.js.map +1 -0
  24. package/dist/tools/documentation/comments-generator.d.ts +55 -0
  25. package/dist/tools/documentation/comments-generator.js +238 -0
  26. package/dist/tools/documentation/comments-generator.js.map +1 -0
  27. package/dist/tools/documentation/docs-menu.d.ts +9 -0
  28. package/dist/tools/documentation/docs-menu.js +57 -0
  29. package/dist/tools/documentation/docs-menu.js.map +1 -0
  30. package/dist/tools/documentation/readme-generator.d.ts +31 -0
  31. package/dist/tools/documentation/readme-generator.js +244 -0
  32. package/dist/tools/documentation/readme-generator.js.map +1 -0
  33. package/dist/tools/documentation/self-healing-system.d.ts +66 -0
  34. package/dist/tools/documentation/self-healing-system.js +444 -0
  35. package/dist/tools/documentation/self-healing-system.js.map +1 -0
  36. package/dist/tools/documentation/smart-prd-assistant.d.ts +45 -0
  37. package/dist/tools/documentation/smart-prd-assistant.js +325 -0
  38. package/dist/tools/documentation/smart-prd-assistant.js.map +1 -0
  39. package/dist/tools/documentation/update-agent-docs.d.ts +37 -0
  40. package/dist/tools/documentation/update-agent-docs.js +275 -0
  41. package/dist/tools/documentation/update-agent-docs.js.map +1 -0
  42. package/dist/tools/intelligence/ast-parser.js +22 -4
  43. package/dist/tools/intelligence/ast-parser.js.map +1 -1
  44. package/dist/ui/app.d.ts +2 -1
  45. package/dist/ui/app.js +27 -6
  46. package/dist/ui/app.js.map +1 -1
  47. package/dist/ui/components/api-key-input.d.ts +2 -1
  48. package/dist/ui/components/api-key-input.js +18 -3
  49. package/dist/ui/components/api-key-input.js.map +1 -1
  50. package/dist/ui/components/chat-history.d.ts +2 -1
  51. package/dist/ui/components/chat-history.js +35 -13
  52. package/dist/ui/components/chat-history.js.map +1 -1
  53. package/dist/ui/components/chat-input.d.ts +2 -1
  54. package/dist/ui/components/chat-input.js +37 -16
  55. package/dist/ui/components/chat-input.js.map +1 -1
  56. package/dist/ui/components/chat-interface.d.ts +2 -1
  57. package/dist/ui/components/chat-interface.js +42 -8
  58. package/dist/ui/components/chat-interface.js.map +1 -1
  59. package/dist/ui/components/command-suggestions.d.ts +2 -1
  60. package/dist/ui/components/command-suggestions.js +8 -3
  61. package/dist/ui/components/command-suggestions.js.map +1 -1
  62. package/dist/ui/components/confirmation-dialog.d.ts +2 -1
  63. package/dist/ui/components/confirmation-dialog.js +39 -4
  64. package/dist/ui/components/confirmation-dialog.js.map +1 -1
  65. package/dist/ui/components/diff-renderer.js +66 -57
  66. package/dist/ui/components/diff-renderer.js.map +1 -1
  67. package/dist/ui/components/loading-spinner.d.ts +2 -1
  68. package/dist/ui/components/loading-spinner.js +13 -3
  69. package/dist/ui/components/loading-spinner.js.map +1 -1
  70. package/dist/ui/components/mcp-status.d.ts +2 -1
  71. package/dist/ui/components/mcp-status.js +6 -3
  72. package/dist/ui/components/mcp-status.js.map +1 -1
  73. package/dist/ui/components/model-selection.d.ts +2 -1
  74. package/dist/ui/components/model-selection.js +11 -2
  75. package/dist/ui/components/model-selection.js.map +1 -1
  76. package/dist/ui/shared/max-sized-box.js +2 -2
  77. package/dist/ui/shared/max-sized-box.js.map +1 -1
  78. package/dist/ui/utils/code-colorizer.js +2 -2
  79. package/dist/ui/utils/code-colorizer.js.map +1 -1
  80. package/dist/ui/utils/markdown-renderer.d.ts +2 -1
  81. package/dist/ui/utils/markdown-renderer.js +3 -3
  82. package/dist/ui/utils/markdown-renderer.js.map +1 -1
  83. package/package.json +21 -12
@@ -0,0 +1,244 @@
1
+ import path from 'path';
2
+ import fs from 'fs/promises';
3
+ import { existsSync } from 'fs';
4
+ export class ReadmeGenerator {
5
+ constructor(config) {
6
+ this.config = config;
7
+ }
8
+ async generateReadme() {
9
+ try {
10
+ // Analyze project structure
11
+ const analysis = await this.analyzeProject();
12
+ // Check if README exists
13
+ const readmePath = path.join(this.config.rootPath, 'README.md');
14
+ const readmeExists = existsSync(readmePath);
15
+ if (readmeExists && !this.config.updateExisting) {
16
+ return {
17
+ success: false,
18
+ message: 'README.md already exists. Use --update flag to overwrite.'
19
+ };
20
+ }
21
+ // Generate content based on analysis
22
+ const content = this.generateReadmeContent(analysis);
23
+ // Write file
24
+ await fs.writeFile(readmePath, content);
25
+ return {
26
+ success: true,
27
+ message: readmeExists
28
+ ? '✅ Updated existing README.md with comprehensive documentation'
29
+ : '✅ Created new README.md with project documentation',
30
+ content
31
+ };
32
+ }
33
+ catch (error) {
34
+ return {
35
+ success: false,
36
+ message: `Failed to generate README: ${error.message}`
37
+ };
38
+ }
39
+ }
40
+ async analyzeProject() {
41
+ const analysis = {
42
+ hasTypeScript: false,
43
+ hasReact: false,
44
+ hasTests: false,
45
+ hasDocs: false,
46
+ buildScripts: [],
47
+ dependencies: [],
48
+ devDependencies: [],
49
+ mainFiles: []
50
+ };
51
+ try {
52
+ // Check package.json
53
+ const packagePath = path.join(this.config.rootPath, 'package.json');
54
+ if (existsSync(packagePath)) {
55
+ const packageContent = await fs.readFile(packagePath, 'utf-8');
56
+ analysis.packageJson = JSON.parse(packageContent);
57
+ // Extract dependencies
58
+ analysis.dependencies = Object.keys(analysis.packageJson.dependencies || {});
59
+ analysis.devDependencies = Object.keys(analysis.packageJson.devDependencies || {});
60
+ // Detect technologies
61
+ analysis.hasReact = analysis.dependencies.includes('react') || analysis.devDependencies.includes('react');
62
+ analysis.hasTypeScript = analysis.devDependencies.includes('typescript') || existsSync(path.join(this.config.rootPath, 'tsconfig.json'));
63
+ // Extract build scripts
64
+ const scripts = analysis.packageJson.scripts || {};
65
+ analysis.buildScripts = Object.keys(scripts).filter(script => ['build', 'dev', 'start', 'test', 'lint', 'typecheck'].includes(script));
66
+ // Detect framework
67
+ if (analysis.dependencies.includes('next'))
68
+ analysis.framework = 'Next.js';
69
+ else if (analysis.dependencies.includes('express'))
70
+ analysis.framework = 'Express.js';
71
+ else if (analysis.dependencies.includes('ink'))
72
+ analysis.framework = 'Ink (Terminal)';
73
+ else if (analysis.hasReact)
74
+ analysis.framework = 'React';
75
+ }
76
+ // Check for common files
77
+ const commonFiles = ['src/', 'lib/', 'docs/', 'test/', 'tests/', '__tests__/'];
78
+ for (const file of commonFiles) {
79
+ if (existsSync(path.join(this.config.rootPath, file))) {
80
+ if (file.includes('test'))
81
+ analysis.hasTests = true;
82
+ if (file.includes('docs'))
83
+ analysis.hasDocs = true;
84
+ analysis.mainFiles.push(file);
85
+ }
86
+ }
87
+ return analysis;
88
+ }
89
+ catch (error) {
90
+ return analysis;
91
+ }
92
+ }
93
+ generateReadmeContent(analysis) {
94
+ const pkg = analysis.packageJson;
95
+ const projectName = this.config.projectName || pkg?.name || 'Project';
96
+ let content = `# ${projectName}\n\n`;
97
+ // Description
98
+ if (pkg?.description) {
99
+ content += `${pkg.description}\n\n`;
100
+ }
101
+ else {
102
+ content += `A ${analysis.framework || 'JavaScript'} project.\n\n`;
103
+ }
104
+ // Badges (if package.json exists)
105
+ if (pkg) {
106
+ content += this.generateBadges(analysis);
107
+ }
108
+ // Table of Contents
109
+ content += `## 📋 Table of Contents\n\n`;
110
+ content += `- [Installation](#installation)\n`;
111
+ content += `- [Usage](#usage)\n`;
112
+ if (analysis.buildScripts.length > 0)
113
+ content += `- [Development](#development)\n`;
114
+ if (analysis.hasTests)
115
+ content += `- [Testing](#testing)\n`;
116
+ if (pkg?.scripts?.build)
117
+ content += `- [Building](#building)\n`;
118
+ content += `- [Configuration](#configuration)\n`;
119
+ content += `- [Contributing](#contributing)\n`;
120
+ content += `- [License](#license)\n\n`;
121
+ // Installation
122
+ content += `## 🚀 Installation\n\n`;
123
+ if (pkg?.bin) {
124
+ content += `### Global Installation\n\`\`\`bash\nnpm install -g ${pkg.name}\n\`\`\`\n\n`;
125
+ }
126
+ content += `### Local Installation\n\`\`\`bash\n`;
127
+ content += `# Clone the repository\ngit clone <repository-url>\n`;
128
+ content += `cd ${pkg?.name || projectName.toLowerCase()}\n\n`;
129
+ content += `# Install dependencies\nnpm install\n\`\`\`\n\n`;
130
+ // Usage
131
+ content += `## 💻 Usage\n\n`;
132
+ if (pkg?.bin) {
133
+ const binName = Object.keys(pkg.bin)[0];
134
+ content += `### Command Line\n\`\`\`bash\n${binName} [options]\n\`\`\`\n\n`;
135
+ }
136
+ if (analysis.framework === 'Express.js') {
137
+ content += `### API Server\n\`\`\`bash\nnpm start\n\`\`\`\n\nThe server will start on \`http://localhost:3000\`\n\n`;
138
+ }
139
+ else if (analysis.hasReact) {
140
+ content += `### Development Server\n\`\`\`bash\nnpm run dev\n\`\`\`\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n\n`;
141
+ }
142
+ // Development section
143
+ if (analysis.buildScripts.length > 0) {
144
+ content += `## 🛠️ Development\n\n`;
145
+ content += `### Available Scripts\n\n`;
146
+ analysis.buildScripts.forEach(script => {
147
+ const description = this.getScriptDescription(script);
148
+ content += `- \`npm run ${script}\` - ${description}\n`;
149
+ });
150
+ content += '\n';
151
+ }
152
+ // Testing
153
+ if (analysis.hasTests) {
154
+ content += `## 🧪 Testing\n\n`;
155
+ content += `\`\`\`bash\nnpm test\n\`\`\`\n\n`;
156
+ if (analysis.buildScripts.includes('test:watch')) {
157
+ content += `### Watch Mode\n\`\`\`bash\nnpm run test:watch\n\`\`\`\n\n`;
158
+ }
159
+ }
160
+ // Building
161
+ if (pkg?.scripts?.build) {
162
+ content += `## 📦 Building\n\n`;
163
+ content += `\`\`\`bash\nnpm run build\n\`\`\`\n\n`;
164
+ if (analysis.hasTypeScript) {
165
+ content += `This will compile TypeScript files and output to the \`dist/\` directory.\n\n`;
166
+ }
167
+ }
168
+ // Technology Stack
169
+ if (analysis.dependencies.length > 0) {
170
+ content += `## 🔧 Technology Stack\n\n`;
171
+ if (analysis.framework)
172
+ content += `- **Framework**: ${analysis.framework}\n`;
173
+ if (analysis.hasTypeScript)
174
+ content += `- **Language**: TypeScript\n`;
175
+ const keyDeps = analysis.dependencies.filter(dep => ['react', 'express', 'next', 'ink', 'commander', 'chalk'].includes(dep));
176
+ if (keyDeps.length > 0) {
177
+ content += `- **Key Dependencies**: ${keyDeps.join(', ')}\n`;
178
+ }
179
+ content += '\n';
180
+ }
181
+ // Configuration
182
+ content += `## ⚙️ Configuration\n\n`;
183
+ if (existsSync(path.join(this.config.rootPath, '.env.example'))) {
184
+ content += `Copy \`.env.example\` to \`.env\` and configure your environment variables:\n\n`;
185
+ content += `\`\`\`bash\ncp .env.example .env\n\`\`\`\n\n`;
186
+ }
187
+ if (analysis.hasTypeScript) {
188
+ content += `### TypeScript Configuration\nTypeScript is configured via \`tsconfig.json\`.\n\n`;
189
+ }
190
+ // API Documentation (if applicable)
191
+ if (analysis.framework === 'Express.js' || pkg?.main?.includes('api')) {
192
+ content += `## 📖 API Documentation\n\n`;
193
+ content += `API documentation is available at \`/docs\` when running the server.\n\n`;
194
+ }
195
+ // Contributing
196
+ content += `## 🤝 Contributing\n\n`;
197
+ content += `1. Fork the repository\n`;
198
+ content += `2. Create a feature branch (\`git checkout -b feature/amazing-feature\`)\n`;
199
+ content += `3. Commit your changes (\`git commit -m 'Add amazing feature'\`)\n`;
200
+ content += `4. Push to the branch (\`git push origin feature/amazing-feature\`)\n`;
201
+ content += `5. Open a Pull Request\n\n`;
202
+ // License
203
+ content += `## 📄 License\n\n`;
204
+ if (pkg?.license) {
205
+ content += `This project is licensed under the ${pkg.license} License.\n\n`;
206
+ }
207
+ else {
208
+ content += `This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n`;
209
+ }
210
+ // Generated footer
211
+ content += `---\n*Generated by Grok CLI Documentation System*\n`;
212
+ content += `*Last updated: ${new Date().toISOString().split('T')[0]}*`;
213
+ return content;
214
+ }
215
+ generateBadges(analysis) {
216
+ let badges = '';
217
+ if (analysis.packageJson?.version) {
218
+ badges += `![Version](https://img.shields.io/badge/version-${analysis.packageJson.version}-blue.svg)\n`;
219
+ }
220
+ if (analysis.hasTypeScript) {
221
+ badges += `![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)\n`;
222
+ }
223
+ if (analysis.hasReact) {
224
+ badges += `![React](https://img.shields.io/badge/React-20232A?logo=react&logoColor=61DAFB)\n`;
225
+ }
226
+ if (analysis.packageJson?.license) {
227
+ badges += `![License](https://img.shields.io/badge/license-${analysis.packageJson.license}-green.svg)\n`;
228
+ }
229
+ return badges ? badges + '\n' : '';
230
+ }
231
+ getScriptDescription(script) {
232
+ const descriptions = {
233
+ 'dev': 'Start development server',
234
+ 'build': 'Build for production',
235
+ 'start': 'Start production server',
236
+ 'test': 'Run test suite',
237
+ 'lint': 'Run linter',
238
+ 'typecheck': 'Run TypeScript type checking',
239
+ 'format': 'Format code with prettier'
240
+ };
241
+ return descriptions[script] || `Run ${script} script`;
242
+ }
243
+ }
244
+ //# sourceMappingURL=readme-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readme-generator.js","sourceRoot":"","sources":["../../../src/tools/documentation/readme-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ export interface IncidentInfo {
2
+ id: string;
3
+ title: string;
4
+ date: string;
5
+ trigger: string;
6
+ rootCause: string;
7
+ fix: string;
8
+ impact: 'low' | 'medium' | 'high';
9
+ recurrenceCount: number;
10
+ relatedFiles: string[];
11
+ guardrailCreated?: string;
12
+ }
13
+ export interface GuardrailRule {
14
+ id: string;
15
+ name: string;
16
+ description: string;
17
+ category: 'naming' | 'configuration' | 'architecture' | 'process';
18
+ severity: 'warning' | 'error';
19
+ pattern: string;
20
+ enabled: boolean;
21
+ createdFrom?: string;
22
+ lastTriggered?: string;
23
+ }
24
+ export interface SelfHealingConfig {
25
+ enabled: boolean;
26
+ onErrorPrompt: 'gentle' | 'persistent' | 'off';
27
+ enforceGuardrails: boolean;
28
+ simulateOnPlan: 'off' | 'smart' | 'always';
29
+ }
30
+ export declare class SelfHealingSystem {
31
+ private rootPath;
32
+ private agentPath;
33
+ private config;
34
+ constructor(rootPath: string, config?: Partial<SelfHealingConfig>);
35
+ captureIncident(error: any, context?: any): Promise<{
36
+ success: boolean;
37
+ incidentId?: string;
38
+ message: string;
39
+ }>;
40
+ private analyzeAndCreateIncident;
41
+ private extractErrorTitle;
42
+ private extractTrigger;
43
+ private analyzeRootCause;
44
+ private suggestFix;
45
+ private assessImpact;
46
+ private extractRelatedFiles;
47
+ private countPreviousOccurrences;
48
+ private generateIncidentContent;
49
+ private generateGuardrailFromIncident;
50
+ private determineGuardrailCategory;
51
+ private createGuardrailPattern;
52
+ private saveGuardrail;
53
+ private generateGuardrailContent;
54
+ checkGuardrails(operation: string, context?: any): Promise<{
55
+ violations: GuardrailRule[];
56
+ warnings: GuardrailRule[];
57
+ passed: boolean;
58
+ }>;
59
+ private loadAllGuardrails;
60
+ private parseGuardrailFromContent;
61
+ private checkGuardrailPattern;
62
+ private generateIncidentId;
63
+ listIncidents(): Promise<IncidentInfo[]>;
64
+ private parseIncidentFromContent;
65
+ getConfig(): SelfHealingConfig;
66
+ }