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.
- package/dist/hooks/use-input-handler.js +588 -0
- package/dist/hooks/use-input-handler.js.map +1 -1
- package/dist/subagents/subagent-framework.d.ts +66 -0
- package/dist/subagents/subagent-framework.js +349 -0
- package/dist/subagents/subagent-framework.js.map +1 -0
- package/dist/tools/documentation/agent-system-generator.d.ts +30 -0
- package/dist/tools/documentation/agent-system-generator.js +816 -0
- package/dist/tools/documentation/agent-system-generator.js.map +1 -0
- package/dist/tools/documentation/api-docs-generator.d.ts +89 -0
- package/dist/tools/documentation/api-docs-generator.js +344 -0
- package/dist/tools/documentation/api-docs-generator.js.map +1 -0
- package/dist/tools/documentation/auto-update-system.d.ts +47 -0
- package/dist/tools/documentation/auto-update-system.js +278 -0
- package/dist/tools/documentation/auto-update-system.js.map +1 -0
- package/dist/tools/documentation/changelog-generator.d.ts +39 -0
- package/dist/tools/documentation/changelog-generator.js +255 -0
- package/dist/tools/documentation/changelog-generator.js.map +1 -0
- package/dist/tools/documentation/claude-md-parser.d.ts +25 -0
- package/dist/tools/documentation/claude-md-parser.js +108 -0
- package/dist/tools/documentation/claude-md-parser.js.map +1 -0
- package/dist/tools/documentation/comments-generator.d.ts +55 -0
- package/dist/tools/documentation/comments-generator.js +238 -0
- package/dist/tools/documentation/comments-generator.js.map +1 -0
- package/dist/tools/documentation/docs-menu.d.ts +9 -0
- package/dist/tools/documentation/docs-menu.js +57 -0
- package/dist/tools/documentation/docs-menu.js.map +1 -0
- package/dist/tools/documentation/readme-generator.d.ts +31 -0
- package/dist/tools/documentation/readme-generator.js +244 -0
- package/dist/tools/documentation/readme-generator.js.map +1 -0
- package/dist/tools/documentation/self-healing-system.d.ts +66 -0
- package/dist/tools/documentation/self-healing-system.js +444 -0
- package/dist/tools/documentation/self-healing-system.js.map +1 -0
- package/dist/tools/documentation/smart-prd-assistant.d.ts +45 -0
- package/dist/tools/documentation/smart-prd-assistant.js +325 -0
- package/dist/tools/documentation/smart-prd-assistant.js.map +1 -0
- package/dist/tools/documentation/update-agent-docs.d.ts +37 -0
- package/dist/tools/documentation/update-agent-docs.js +275 -0
- package/dist/tools/documentation/update-agent-docs.js.map +1 -0
- package/dist/tools/intelligence/ast-parser.js +22 -4
- package/dist/tools/intelligence/ast-parser.js.map +1 -1
- package/dist/ui/app.d.ts +2 -1
- package/dist/ui/app.js +27 -6
- package/dist/ui/app.js.map +1 -1
- package/dist/ui/components/api-key-input.d.ts +2 -1
- package/dist/ui/components/api-key-input.js +18 -3
- package/dist/ui/components/api-key-input.js.map +1 -1
- package/dist/ui/components/chat-history.d.ts +2 -1
- package/dist/ui/components/chat-history.js +35 -13
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.d.ts +2 -1
- package/dist/ui/components/chat-input.js +36 -15
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.d.ts +2 -1
- package/dist/ui/components/chat-interface.js +39 -5
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/command-suggestions.d.ts +2 -1
- package/dist/ui/components/command-suggestions.js +8 -3
- package/dist/ui/components/command-suggestions.js.map +1 -1
- package/dist/ui/components/confirmation-dialog.d.ts +2 -1
- package/dist/ui/components/confirmation-dialog.js +39 -4
- package/dist/ui/components/confirmation-dialog.js.map +1 -1
- package/dist/ui/components/diff-renderer.js +66 -57
- package/dist/ui/components/diff-renderer.js.map +1 -1
- package/dist/ui/components/loading-spinner.d.ts +2 -1
- package/dist/ui/components/loading-spinner.js +13 -3
- package/dist/ui/components/loading-spinner.js.map +1 -1
- package/dist/ui/components/mcp-status.d.ts +2 -1
- package/dist/ui/components/mcp-status.js +6 -3
- package/dist/ui/components/mcp-status.js.map +1 -1
- package/dist/ui/components/model-selection.d.ts +2 -1
- package/dist/ui/components/model-selection.js +11 -2
- package/dist/ui/components/model-selection.js.map +1 -1
- package/dist/ui/shared/max-sized-box.js +2 -2
- package/dist/ui/shared/max-sized-box.js.map +1 -1
- package/dist/ui/utils/code-colorizer.js +2 -2
- package/dist/ui/utils/code-colorizer.js.map +1 -1
- package/dist/ui/utils/markdown-renderer.d.ts +2 -1
- package/dist/ui/utils/markdown-renderer.js +3 -3
- package/dist/ui/utils/markdown-renderer.js.map +1 -1
- 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 += `\n`;
|
219
|
+
}
|
220
|
+
if (analysis.hasTypeScript) {
|
221
|
+
badges += `\n`;
|
222
|
+
}
|
223
|
+
if (analysis.hasReact) {
|
224
|
+
badges += `\n`;
|
225
|
+
}
|
226
|
+
if (analysis.packageJson?.license) {
|
227
|
+
badges += `\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
|
+
}
|