sieveai 0.2.5 → 1.0.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.
- package/README.md +273 -82
- package/dist/cache/database.d.ts.map +1 -1
- package/dist/cache/database.js +7 -2
- package/dist/cache/database.js.map +1 -1
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +18 -3
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/llm/client.d.ts.map +1 -1
- package/dist/llm/client.js +4 -3
- package/dist/llm/client.js.map +1 -1
- package/dist/llm/prompts.d.ts.map +1 -1
- package/dist/llm/prompts.js +67 -27
- package/dist/llm/prompts.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +10 -0
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/reporters/tui-reporter-old.d.ts +6 -0
- package/dist/reporters/tui-reporter-old.d.ts.map +1 -0
- package/dist/reporters/tui-reporter-old.js +101 -0
- package/dist/reporters/tui-reporter-old.js.map +1 -0
- package/dist/reporters/tui-reporter.d.ts +6 -0
- package/dist/reporters/tui-reporter.d.ts.map +1 -0
- package/dist/reporters/tui-reporter.js +132 -0
- package/dist/reporters/tui-reporter.js.map +1 -0
- package/dist/static/spell-checker.d.ts +3 -0
- package/dist/static/spell-checker.d.ts.map +1 -0
- package/dist/static/spell-checker.js +322 -0
- package/dist/static/spell-checker.js.map +1 -0
- package/dist/static/syntax-checker.d.ts +3 -0
- package/dist/static/syntax-checker.d.ts.map +1 -0
- package/dist/static/syntax-checker.js +488 -0
- package/dist/static/syntax-checker.js.map +1 -0
- package/dist/static/whitespace-analyzer.d.ts +13 -0
- package/dist/static/whitespace-analyzer.d.ts.map +1 -0
- package/dist/static/whitespace-analyzer.js +246 -0
- package/dist/static/whitespace-analyzer.js.map +1 -0
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -8,157 +8,348 @@
|
|
|
8
8
|

|
|
9
9
|

|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**Advanced AI-Powered Code Review Tool with hybrid static + Active AI analysis**
|
|
12
12
|
|
|
13
|
-
SieveAi is an
|
|
13
|
+
SieveAi is an intelligent code review tool that combines static analysis with AI-powered insights to help maintain code quality, security, and performance. It supports 15+ programming languages and provides deep analysis including const correctness, security vulnerabilities, logic errors, and architectural improvements.
|
|
14
14
|
|
|
15
15
|
## Features
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
|
|
23
|
-
-
|
|
17
|
+
### AI-Powered Analysis
|
|
18
|
+
- **Logic & Bug Detection**: Identifies complex logic errors, race conditions, memory leaks
|
|
19
|
+
- **Security Analysis**: Detects injection vulnerabilities, authentication issues, unsafe patterns
|
|
20
|
+
- **Performance Optimization**: Suggests const correctness, inline functions, algorithmic improvements
|
|
21
|
+
- **Architecture Review**: SOLID principles, encapsulation, design patterns
|
|
22
|
+
|
|
23
|
+
### Multi-Language Support
|
|
24
|
+
- **Systems Languages**: C++, C, Rust, Go
|
|
25
|
+
- **JVM Languages**: Java, Kotlin, Scala
|
|
26
|
+
- **Web Technologies**: JavaScript, TypeScript, HTML, CSS
|
|
27
|
+
- **Scripting**: Python, Ruby, Shell, PHP
|
|
28
|
+
- **Data Formats**: JSON, YAML, Markdown
|
|
29
|
+
- **And more**: Automatic language detection
|
|
30
|
+
|
|
31
|
+
### Comprehensive Analysis
|
|
32
|
+
- **Static Analysis**: Syntax checking, secret scanning, dependency analysis
|
|
33
|
+
- **Whitespace Analysis**: Formatting consistency, unnecessary diff noise detection
|
|
34
|
+
- **Security Scanning**: Built-in secret detection, vulnerability patterns
|
|
35
|
+
- **Performance Insights**: Optimization opportunities, algorithmic improvements
|
|
36
|
+
|
|
37
|
+
### Professional Output
|
|
38
|
+
- **Clean TUI Interface**: Professional bordered output with severity indicators
|
|
39
|
+
- **Multiple Formats**: TUI, JSON, plain text
|
|
40
|
+
- **Detailed Reports**: Confidence scores, rationale, fix suggestions
|
|
41
|
+
- **Git Integration**: Works with diffs, staged changes, commits
|
|
24
42
|
|
|
25
43
|
## Quick Start
|
|
26
44
|
|
|
27
|
-
### Prerequisites
|
|
28
|
-
|
|
29
|
-
1. **Node.js 20+**
|
|
30
|
-
2. **Ollama** (for local LLM)
|
|
31
|
-
```bash
|
|
32
|
-
# Install Ollama: https://ollama.ai
|
|
33
|
-
# Pull default model
|
|
34
|
-
ollama pull glm-4.7
|
|
35
|
-
```
|
|
36
|
-
|
|
37
45
|
### Installation
|
|
38
46
|
|
|
39
47
|
```bash
|
|
40
|
-
|
|
48
|
+
# Clone the repository
|
|
49
|
+
git clone https://github.com/Jayesh-Dev21/SieveAi.git
|
|
50
|
+
cd SieveAi
|
|
51
|
+
|
|
52
|
+
# Install dependencies
|
|
53
|
+
npm install
|
|
54
|
+
|
|
55
|
+
# Build the project
|
|
56
|
+
npm run build
|
|
57
|
+
|
|
58
|
+
# Make globally available (optional)
|
|
59
|
+
npm link
|
|
41
60
|
```
|
|
42
61
|
|
|
43
|
-
###
|
|
62
|
+
### Setup LLM Backend
|
|
63
|
+
|
|
64
|
+
SieveAi requires an LLM for AI-powered analysis. Currently supports Ollama:
|
|
44
65
|
|
|
45
66
|
```bash
|
|
46
|
-
#
|
|
47
|
-
|
|
67
|
+
# Install Ollama (https://ollama.ai)
|
|
68
|
+
curl -fsSL https://ollama.ai/install.sh | sh
|
|
69
|
+
|
|
70
|
+
# Pull a supported model
|
|
71
|
+
ollama pull gemma3:latest
|
|
72
|
+
# or
|
|
73
|
+
ollama pull llama3.2:latest
|
|
74
|
+
# or
|
|
75
|
+
ollama pull deepseek-coder:latest
|
|
76
|
+
```
|
|
48
77
|
|
|
49
|
-
|
|
50
|
-
|
|
78
|
+
### Basic Usage
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Run code review on current git changes
|
|
82
|
+
npx tsx src/cli/index.ts check
|
|
83
|
+
# or if globally installed:
|
|
51
84
|
sieveai check
|
|
52
85
|
|
|
53
|
-
#
|
|
54
|
-
sieveai check --
|
|
86
|
+
# Run with verbose output
|
|
87
|
+
sieveai check --verbose
|
|
55
88
|
|
|
56
|
-
#
|
|
89
|
+
# Run with specific format
|
|
57
90
|
sieveai check --format json
|
|
58
91
|
|
|
59
|
-
#
|
|
60
|
-
sieveai check --model ollama:
|
|
61
|
-
|
|
62
|
-
# Adjust confidence threshold
|
|
63
|
-
sieveai check --min-confidence 85
|
|
92
|
+
# Run with custom model
|
|
93
|
+
sieveai check --model ollama:deepseek-coder:latest
|
|
64
94
|
```
|
|
65
95
|
|
|
66
96
|
## Configuration
|
|
67
97
|
|
|
68
|
-
Create `.sieveai.config.json` in your project root:
|
|
98
|
+
Create a `.sieveai.config.json` file in your project root:
|
|
69
99
|
|
|
70
100
|
```json
|
|
71
101
|
{
|
|
72
|
-
"model": "ollama:
|
|
102
|
+
"model": "ollama:gemma3:latest",
|
|
103
|
+
"temperature": 0.7,
|
|
104
|
+
"maxTokens": 2048,
|
|
73
105
|
"minConfidence": 78,
|
|
74
106
|
"enableCache": true,
|
|
75
|
-
"enableSecretScanning": true,
|
|
76
107
|
"parallel": true,
|
|
77
|
-
"
|
|
108
|
+
"maxConcurrency": 3,
|
|
109
|
+
"enableSecretScanning": true,
|
|
110
|
+
"format": "tui",
|
|
78
111
|
"verbose": false,
|
|
79
112
|
"showRationale": true
|
|
80
113
|
}
|
|
81
114
|
```
|
|
82
115
|
|
|
83
|
-
|
|
116
|
+
### Configuration Options
|
|
117
|
+
|
|
118
|
+
| Option | Type | Default | Description |
|
|
119
|
+
|--------|------|---------|-------------|
|
|
120
|
+
| `model` | string | `"ollama:gemma3:latest"` | LLM model (provider:model:tag) |
|
|
121
|
+
| `temperature` | number | `0.7` | AI creativity (0.0-1.0) |
|
|
122
|
+
| `maxTokens` | number | `2048` | Maximum response length |
|
|
123
|
+
| `minConfidence` | number | `78` | Minimum confidence for findings (0-100) |
|
|
124
|
+
| `enableCache` | boolean | `true` | Enable result caching |
|
|
125
|
+
| `parallel` | boolean | `true` | Run agents in parallel |
|
|
126
|
+
| `maxConcurrency` | number | `3` | Max parallel agent execution |
|
|
127
|
+
| `enableSecretScanning` | boolean | `true` | Scan for leaked secrets |
|
|
128
|
+
| `format` | string | `"tui"` | Output format: `"tui"`, `"json"`, `"text"` |
|
|
129
|
+
| `verbose` | boolean | `false` | Enable detailed logging |
|
|
130
|
+
| `showRationale` | boolean | `true` | Show reasoning for findings |
|
|
131
|
+
|
|
132
|
+
## Usage Examples
|
|
133
|
+
|
|
134
|
+
### Example 1: C++ Code Review
|
|
135
|
+
|
|
136
|
+
```cpp
|
|
137
|
+
// ProcessingUnit.cpp
|
|
138
|
+
class ProcessingUnit {
|
|
139
|
+
public:
|
|
140
|
+
void execute(std::vector<int> data) { // ❌ Missing const, pass by value
|
|
141
|
+
if (data.size() > 0) { // ❌ Use !data.empty()
|
|
142
|
+
process(data[0]);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
private:
|
|
146
|
+
std::string secret_key = "hardcoded_key"; // ❌ Security issue
|
|
147
|
+
};
|
|
148
|
+
```
|
|
84
149
|
|
|
150
|
+
**SieveAi Analysis:**
|
|
85
151
|
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
152
|
+
● HIGH | PERFORMANCE | ProcessingUnit.cpp:3
|
|
153
|
+
Function parameter should be const reference
|
|
154
|
+
Fix: Change to `const std::vector<int>& data` for better performance
|
|
155
|
+
|
|
156
|
+
● MEDIUM | STYLE | ProcessingUnit.cpp:4
|
|
157
|
+
Use container.empty() instead of size() comparison
|
|
158
|
+
Fix: Replace `data.size() > 0` with `!data.empty()`
|
|
159
|
+
|
|
160
|
+
● CRITICAL | SECURITY | ProcessingUnit.cpp:8
|
|
161
|
+
Hardcoded secret detected in source code
|
|
162
|
+
Fix: Move sensitive data to environment variables or config files
|
|
90
163
|
```
|
|
91
164
|
|
|
92
|
-
|
|
165
|
+
### Example 2: JavaScript Security Analysis
|
|
166
|
+
|
|
167
|
+
```javascript
|
|
168
|
+
// server.js
|
|
169
|
+
app.get('/user/:id', (req, res) => {
|
|
170
|
+
const query = `SELECT * FROM users WHERE id = ${req.params.id}`; // ❌ SQL injection
|
|
171
|
+
db.query(query, (err, results) => {
|
|
172
|
+
res.json(results); // ❌ No error handling
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**SieveAi Analysis:**
|
|
178
|
+
```
|
|
179
|
+
● CRITICAL | SECURITY | server.js:2
|
|
180
|
+
SQL injection vulnerability detected
|
|
181
|
+
Fix: Use parameterized queries: `SELECT * FROM users WHERE id = ?`
|
|
182
|
+
|
|
183
|
+
● HIGH | BUG | server.js:3
|
|
184
|
+
Unhandled database error could crash application
|
|
185
|
+
Fix: Add proper error handling for database operations
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Advanced Features
|
|
189
|
+
|
|
190
|
+
### Custom Analysis Depth
|
|
93
191
|
|
|
94
192
|
```bash
|
|
95
|
-
#
|
|
96
|
-
|
|
97
|
-
cd sieveai
|
|
193
|
+
# High confidence only (fewer, higher-quality findings)
|
|
194
|
+
sieveai check --min-confidence 90
|
|
98
195
|
|
|
99
|
-
#
|
|
196
|
+
# Lower confidence (more findings, some potential false positives)
|
|
197
|
+
sieveai check --min-confidence 50
|
|
198
|
+
|
|
199
|
+
# Performance-focused analysis
|
|
200
|
+
sieveai check --model ollama:deepseek-coder:latest --temperature 0.3
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Git Integration
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Review specific commit range
|
|
207
|
+
sieveai check --base main --target feature-branch
|
|
208
|
+
|
|
209
|
+
# Review staged changes only
|
|
210
|
+
git add . && sieveai check --staged
|
|
211
|
+
|
|
212
|
+
# Review specific files
|
|
213
|
+
git diff path/to/file.cpp | sieveai check
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Output Formats
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# Beautiful TUI output (default)
|
|
220
|
+
sieveai check --format tui
|
|
221
|
+
|
|
222
|
+
# JSON for automation
|
|
223
|
+
sieveai check --format json | jq '.findings[] | select(.severity == "critical")'
|
|
224
|
+
|
|
225
|
+
# Plain text for logging
|
|
226
|
+
sieveai check --format text >> code-review.log
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Development
|
|
230
|
+
|
|
231
|
+
### Building from Source
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Development setup
|
|
235
|
+
git clone https://github.com/Jayesh-Dev21/SieveAi.git
|
|
236
|
+
cd SieveAi
|
|
100
237
|
npm install
|
|
101
238
|
|
|
102
|
-
#
|
|
103
|
-
npm run
|
|
239
|
+
# Development build with watch
|
|
240
|
+
npm run dev
|
|
104
241
|
|
|
105
|
-
#
|
|
106
|
-
|
|
242
|
+
# Production build
|
|
243
|
+
npm run build
|
|
107
244
|
|
|
108
245
|
# Run tests
|
|
109
246
|
npm test
|
|
110
|
-
|
|
111
|
-
# Lint/format
|
|
112
|
-
npm run lint:fix
|
|
113
|
-
npm run format
|
|
114
247
|
```
|
|
115
248
|
|
|
116
|
-
|
|
249
|
+
### Available Scripts
|
|
117
250
|
|
|
118
|
-
|
|
251
|
+
```bash
|
|
252
|
+
# Core scripts
|
|
253
|
+
npm run build # Build TypeScript to dist/
|
|
254
|
+
npm run dev # Watch mode for development
|
|
255
|
+
npm test # Run test suite
|
|
256
|
+
npm run lint # Lint code with ESLint
|
|
257
|
+
npm run format # Format code with Prettier
|
|
258
|
+
|
|
259
|
+
# Quick usage
|
|
260
|
+
npm run check # Run code review
|
|
261
|
+
npm run check:verbose # Run with verbose output
|
|
262
|
+
npm run check:json # Get JSON output
|
|
263
|
+
npm run setup # One-command setup
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Project Structure
|
|
119
267
|
|
|
120
268
|
```
|
|
121
269
|
src/
|
|
122
|
-
├── agents/ # AI
|
|
123
|
-
├── cache/ #
|
|
270
|
+
├── agents/ # AI analysis agents (bug, security, style)
|
|
271
|
+
├── cache/ # Result caching system
|
|
124
272
|
├── cli/ # Command-line interface
|
|
125
|
-
├── config/ # Configuration
|
|
126
|
-
├── git/ # Git
|
|
127
|
-
├── llm/ # LLM client
|
|
128
|
-
├── orchestrator/ #
|
|
129
|
-
├── reporters/ # Output
|
|
130
|
-
├── static/ # Static
|
|
273
|
+
├── config/ # Configuration management
|
|
274
|
+
├── git/ # Git integration and diff parsing
|
|
275
|
+
├── llm/ # LLM client and prompts
|
|
276
|
+
├── orchestrator/ # Main review coordination
|
|
277
|
+
├── reporters/ # Output formatting (TUI, JSON, text)
|
|
278
|
+
├── static/ # Static analyzers (syntax, secrets, whitespace)
|
|
131
279
|
├── types/ # TypeScript type definitions
|
|
132
|
-
└── utils/ #
|
|
280
|
+
└── utils/ # Shared utilities
|
|
281
|
+
|
|
282
|
+
docs/ # Documentation
|
|
283
|
+
examples/ # Usage examples
|
|
284
|
+
web/ # Web interface (Vite + React)
|
|
285
|
+
dist/ # Compiled output
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Troubleshooting
|
|
289
|
+
|
|
290
|
+
### Common Issues
|
|
291
|
+
|
|
292
|
+
**LLM Not Available**
|
|
293
|
+
```bash
|
|
294
|
+
# Check if Ollama is running
|
|
295
|
+
ollama list
|
|
296
|
+
|
|
297
|
+
# Restart Ollama service
|
|
298
|
+
systemctl restart ollama # Linux
|
|
299
|
+
brew services restart ollama # macOS
|
|
133
300
|
```
|
|
134
301
|
|
|
135
|
-
|
|
302
|
+
**Model Not Found**
|
|
303
|
+
```bash
|
|
304
|
+
# Pull the model explicitly
|
|
305
|
+
ollama pull gemma3:latest
|
|
136
306
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
**Phase 4**: VS Code extension, custom agent plugins
|
|
307
|
+
# Check available models
|
|
308
|
+
ollama list
|
|
309
|
+
```
|
|
141
310
|
|
|
142
|
-
|
|
311
|
+
**Slow Analysis**
|
|
312
|
+
```bash
|
|
313
|
+
# Reduce model size
|
|
314
|
+
sieveai check --model ollama:gemma3:2b
|
|
143
315
|
|
|
144
|
-
|
|
316
|
+
# Disable caching temporarily
|
|
317
|
+
sieveai check --no-cache
|
|
318
|
+
|
|
319
|
+
# Reduce concurrency
|
|
320
|
+
sieveai check --max-concurrency 1
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**High Memory Usage**
|
|
324
|
+
```bash
|
|
325
|
+
# Use smaller model
|
|
326
|
+
ollama pull gemma3:2b
|
|
327
|
+
|
|
328
|
+
# Reduce token limit
|
|
329
|
+
echo '{"maxTokens": 1024}' > .sieveai.config.json
|
|
330
|
+
```
|
|
145
331
|
|
|
146
|
-
|
|
332
|
+
## 🤝 Contributing
|
|
147
333
|
|
|
148
|
-
|
|
334
|
+
We welcome contributions! Please see [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
|
|
149
335
|
|
|
150
|
-
|
|
336
|
+
### Areas for Contribution
|
|
337
|
+
- **New Language Support**: Add syntax checkers for additional languages
|
|
338
|
+
- **AI Agents**: Enhance existing agents or create specialized ones
|
|
339
|
+
- **LLM Providers**: Add support for OpenAI, Anthropic, etc.
|
|
340
|
+
- **Static Analyzers**: Improve existing or add new static analysis tools
|
|
341
|
+
- **Documentation**: Help improve documentation and examples
|
|
151
342
|
|
|
152
343
|
## License
|
|
153
344
|
|
|
154
|
-
MIT License - see [LICENSE](LICENSE) for details.
|
|
345
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
155
346
|
|
|
156
|
-
## Acknowledgments
|
|
347
|
+
## 🙏 Acknowledgments
|
|
157
348
|
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
349
|
+
- [Ollama](https://ollama.ai) for local LLM inference
|
|
350
|
+
- [Google Gemma](https://ai.google.dev/gemma) for the base AI model
|
|
351
|
+
- All contributors and the open source community
|
|
161
352
|
|
|
162
353
|
---
|
|
163
354
|
|
|
164
|
-
**Made
|
|
355
|
+
**Made with ❤️ for better code quality**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/cache/database.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/cache/database.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AA4B7E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;gBAElB,OAAO,EAAE,oBAAoB;IAsCzC,OAAO,CAAC,UAAU;IAYlB,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;IA2CrC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAiC5B,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAiB9B,KAAK,IAAI,MAAM;IAcf,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;KACnB;IAgCD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAetC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWvC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAc7C,KAAK,IAAI,IAAI;IAYb,MAAM,IAAI,IAAI;CAQf"}
|
package/dist/cache/database.js
CHANGED
|
@@ -13,10 +13,11 @@ CREATE TABLE IF NOT EXISTS cache_entries (
|
|
|
13
13
|
content_hash TEXT NOT NULL,
|
|
14
14
|
findings TEXT NOT NULL,
|
|
15
15
|
agent_version TEXT NOT NULL,
|
|
16
|
-
created_at INTEGER NOT NULL
|
|
17
|
-
INDEX idx_commit_file ON cache_entries(commit_sha, file_path)
|
|
16
|
+
created_at INTEGER NOT NULL
|
|
18
17
|
);
|
|
19
18
|
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_commit_file ON cache_entries(commit_sha, file_path);
|
|
20
|
+
|
|
20
21
|
CREATE TABLE IF NOT EXISTS metadata (
|
|
21
22
|
key TEXT PRIMARY KEY,
|
|
22
23
|
value TEXT NOT NULL
|
|
@@ -32,19 +33,23 @@ export class CacheDatabase {
|
|
|
32
33
|
}
|
|
33
34
|
catch (error) {
|
|
34
35
|
}
|
|
36
|
+
logger.debug('Creating database:', options.path);
|
|
35
37
|
this.db = new Database(options.path, {
|
|
36
38
|
readonly: options.readonly ?? false,
|
|
37
39
|
fileMustExist: false,
|
|
38
40
|
});
|
|
41
|
+
logger.debug('Setting pragmas...');
|
|
39
42
|
this.db.pragma('journal_mode = WAL');
|
|
40
43
|
this.db.pragma('synchronous = NORMAL');
|
|
41
44
|
this.db.pragma('cache_size = -64000');
|
|
42
45
|
if (!options.readonly) {
|
|
46
|
+
logger.debug('Initializing schema...');
|
|
43
47
|
this.initSchema();
|
|
44
48
|
}
|
|
45
49
|
logger.debug('Cache database initialized:', options.path);
|
|
46
50
|
}
|
|
47
51
|
catch (error) {
|
|
52
|
+
logger.error('Database initialization error:', error);
|
|
48
53
|
throw new CacheError('Failed to initialize cache database', { error });
|
|
49
54
|
}
|
|
50
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/cache/database.ts"],"names":[],"mappings":"AAKA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAExC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/cache/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAYA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGvE"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { createLogger } from '../../utils/logger.js';
|
|
2
1
|
import { loadConfig } from '../../config/loader.js';
|
|
3
2
|
import { createGitRepository } from '../../git/repository.js';
|
|
4
3
|
import { ReviewOrchestrator } from '../../orchestrator/orchestrator.js';
|
|
5
4
|
import { formatTextReport } from '../../reporters/text-reporter.js';
|
|
6
5
|
import { formatJsonReport } from '../../reporters/json-reporter.js';
|
|
6
|
+
import { renderTUIReport } from '../../reporters/tui-reporter.js';
|
|
7
7
|
import ora from 'ora';
|
|
8
|
-
const logger = createLogger('cli:check');
|
|
9
8
|
export async function checkCommand(options) {
|
|
10
9
|
const spinner = ora('Initializing...').start();
|
|
11
10
|
try {
|
|
@@ -52,6 +51,12 @@ export async function checkCommand(options) {
|
|
|
52
51
|
if (config.format === 'json') {
|
|
53
52
|
console.log(formatJsonReport(report));
|
|
54
53
|
}
|
|
54
|
+
else if (config.format === 'tui') {
|
|
55
|
+
renderTUIReport(report, {
|
|
56
|
+
verbose: config.verbose,
|
|
57
|
+
showRationale: config.showRationale,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
55
60
|
else {
|
|
56
61
|
console.log(formatTextReport(report, {
|
|
57
62
|
verbose: config.verbose,
|
|
@@ -66,7 +71,17 @@ export async function checkCommand(options) {
|
|
|
66
71
|
}
|
|
67
72
|
catch (error) {
|
|
68
73
|
spinner.fail('Review failed');
|
|
69
|
-
|
|
74
|
+
console.error('✖ Error:');
|
|
75
|
+
if (error instanceof Error) {
|
|
76
|
+
console.error(error.message);
|
|
77
|
+
if (error.stack) {
|
|
78
|
+
console.error('\nStack trace:');
|
|
79
|
+
console.error(error.stack);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.error(error);
|
|
84
|
+
}
|
|
70
85
|
process.exit(1);
|
|
71
86
|
}
|
|
72
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -11,7 +11,7 @@ program
|
|
|
11
11
|
.description('Run code review on git diff')
|
|
12
12
|
.option('--model <model>', 'LLM model to use (format: provider:model)', 'ollama:glm-4.7')
|
|
13
13
|
.option('--min-confidence <number>', 'Minimum confidence threshold (0-100)', '78')
|
|
14
|
-
.option('--format <format>', 'Output format (text, json
|
|
14
|
+
.option('--format <format>', 'Output format (tui, text, json)', 'tui')
|
|
15
15
|
.option('--no-cache', 'Disable caching')
|
|
16
16
|
.option('--no-parallel', 'Disable parallel agent execution')
|
|
17
17
|
.option('--verbose', 'Enable verbose logging')
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAC;AAGpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,EAAE,gBAAgB,CAAC;KACxF,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,EAAE,IAAI,CAAC;KACjF,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAC;AAGpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,EAAE,gBAAgB,CAAC;KACxF,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,EAAE,IAAI,CAAC;KACjF,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,KAAK,CAAC;KACrE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC;KACvC,MAAM,CAAC,eAAe,EAAE,kCAAkC,CAAC;KAC3D,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC;KAC7C,MAAM,CAAC,cAAc,EAAE,iCAAiC,CAAC;KACzD,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,YAAY,CAAC,CAAC;AAGxB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const DEFAULT_CONFIG = {
|
|
2
|
-
model: 'ollama:
|
|
2
|
+
model: 'ollama:gemma3:latest',
|
|
3
3
|
temperature: 0.7,
|
|
4
4
|
maxTokens: 2048,
|
|
5
5
|
minConfidence: 78,
|
|
@@ -8,7 +8,7 @@ export const DEFAULT_CONFIG = {
|
|
|
8
8
|
maxConcurrency: 3,
|
|
9
9
|
enableSecretScanning: true,
|
|
10
10
|
enableSemgrep: false,
|
|
11
|
-
format: '
|
|
11
|
+
format: 'tui',
|
|
12
12
|
verbose: false,
|
|
13
13
|
showRationale: true,
|
|
14
14
|
enableMemory: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;CAC1B,CAAC"}
|
package/dist/config/schema.js
CHANGED
|
@@ -23,7 +23,7 @@ export const ReviewConfigSchema = z.object({
|
|
|
23
23
|
enableSecretScanning: z.boolean().default(true),
|
|
24
24
|
enableSemgrep: z.boolean().default(false),
|
|
25
25
|
semgrepRules: z.array(z.string()).optional(),
|
|
26
|
-
format: FormatSchema.default('
|
|
26
|
+
format: FormatSchema.default('tui'),
|
|
27
27
|
verbose: z.boolean().default(false),
|
|
28
28
|
showRationale: z.boolean().default(true),
|
|
29
29
|
enableMemory: z.boolean().default(true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,KAAK;IACL,UAAU;IACV,aAAa;IACb,OAAO;IACP,iBAAiB;IACjB,SAAS;IACT,eAAe;CAChB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAEzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAG3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAClD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAGlD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAG3D,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAG5C,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,KAAK;IACL,UAAU;IACV,aAAa;IACb,OAAO;IACP,iBAAiB;IACjB,SAAS;IACT,eAAe;CAChB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAEzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAG3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAClD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAGlD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAG3D,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAG5C,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAGxC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAGjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;CAC9C,CAAC,CAAC"}
|
package/dist/llm/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,UAAU,EACV,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,gBAAgB;IAmBrC,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,UAAU,EACV,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,gBAAgB;IAmBrC,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,cAAc;IAahB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAO/B,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC5D,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzE,YAAY,IAAI;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB;CAQF;AAKD,wBAAgB,eAAe,CAC7B,KAAK,SAAmB,EACxB,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACtC,SAAS,CAKX"}
|