@theihtisham/agent-shadow-brain 1.0.0 → 1.1.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 +123 -52
- package/dist/brain/analyzer.d.ts.map +1 -1
- package/dist/brain/analyzer.js +212 -12
- package/dist/brain/analyzer.js.map +1 -1
- package/dist/brain/orchestrator.d.ts +1 -0
- package/dist/brain/orchestrator.d.ts.map +1 -1
- package/dist/brain/orchestrator.js +14 -0
- package/dist/brain/orchestrator.js.map +1 -1
- package/dist/brain/pattern-memory.d.ts +42 -0
- package/dist/brain/pattern-memory.d.ts.map +1 -0
- package/dist/brain/pattern-memory.js +234 -0
- package/dist/brain/pattern-memory.js.map +1 -0
- package/dist/cli.js +156 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
# Agent Shadow Brain
|
|
2
2
|
|
|
3
|
+
<div align="center">
|
|
4
|
+
<img src="docs/images/banner.svg" alt="Agent Shadow Brain Banner" width="100%" />
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<br/>
|
|
8
|
+
|
|
9
|
+
<div align="center">
|
|
10
|
+
|
|
3
11
|
[](https://www.npmjs.com/package/@theihtisham/agent-shadow-brain)
|
|
12
|
+
[](https://www.npmjs.com/package/@theihtisham/agent-shadow-brain)
|
|
4
13
|
[](https://github.com/theihtisham/agent-shadow-brain/blob/main/LICENSE)
|
|
5
14
|
[](https://www.npmjs.com/package/@theihtisham/agent-shadow-brain)
|
|
6
15
|
|
|
7
|
-
A shadow AI brain that runs alongside your coding agent — watching, reviewing, and injecting intelligence in real-time
|
|
16
|
+
**A shadow AI brain that runs alongside your coding agent — watching, reviewing, and injecting intelligence in real-time.**
|
|
17
|
+
|
|
18
|
+
Works with **Claude Code** · **Kilo Code** · **Cline** · **OpenCode** · **Codex CLI** · and more
|
|
19
|
+
|
|
20
|
+
[Quick Start](#install) · [How It Works](#how-it-works) · [CLI Reference](#cli-reference) · [Personalities](#brain-personalities) · [API](#programmatic-api)
|
|
21
|
+
|
|
22
|
+
</div>
|
|
8
23
|
|
|
9
|
-
|
|
24
|
+
---
|
|
10
25
|
|
|
11
26
|
## Install
|
|
12
27
|
|
|
@@ -14,41 +29,82 @@ Works with **Claude Code**, **Kilo Code**, **Cline**, **OpenCode**, **Codex CLI*
|
|
|
14
29
|
npm install -g @theihtisham/agent-shadow-brain
|
|
15
30
|
```
|
|
16
31
|
|
|
17
|
-
Or use directly:
|
|
32
|
+
Or use directly without installing:
|
|
18
33
|
|
|
19
34
|
```bash
|
|
20
35
|
npx @theihtisham/agent-shadow-brain start .
|
|
21
36
|
```
|
|
22
37
|
|
|
38
|
+
### First-time setup
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
shadow-brain setup
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Runs an interactive wizard to configure your LLM provider, personality, and review depth.
|
|
45
|
+
|
|
46
|
+
### Health check
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
shadow-brain doctor
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Verifies your configuration, tests provider connectivity, and detects running agents.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## How It Works
|
|
57
|
+
|
|
58
|
+
<div align="center">
|
|
59
|
+
<img src="docs/images/architecture.svg" alt="Architecture Diagram" width="100%" />
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
Shadow Brain watches your project files and git activity in real-time, reads what your coding agent is doing, and uses an LLM (with a smart rule-based fallback) to generate insights. It then injects those insights directly into the agent's memory files so the agent picks them up automatically.
|
|
63
|
+
|
|
64
|
+
**Pipeline:** `File/Git Watcher` → `Orchestrator (debounce)` → `Brain Analyzer (LLM + rules)` → `Personality Engine` → `Smart Injection into agent memory`
|
|
65
|
+
|
|
66
|
+
### Key Features
|
|
67
|
+
|
|
68
|
+
- **Real-time monitoring** — watches file changes and git activity as they happen
|
|
69
|
+
- **Multi-provider LLM** — supports Ollama (free/local), Anthropic, OpenAI, and OpenRouter
|
|
70
|
+
- **Smart fallback** — 20+ rule-based patterns work without any LLM (secrets detection, SQL injection, N+1 queries, and more)
|
|
71
|
+
- **6 brain personalities** — mentor, critic, architect, security, performance, or balanced
|
|
72
|
+
- **Auto-injection** — insights go directly into your agent's memory/rules files
|
|
73
|
+
- **5 agent adapters** — works with Claude Code, Kilo Code, Cline, OpenCode, and Codex
|
|
74
|
+
- **3 review depths** — quick (4K), standard (8K), deep (16K tokens)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
23
78
|
## CLI Reference
|
|
24
79
|
|
|
25
80
|
### `shadow-brain start [project-dir]`
|
|
26
81
|
|
|
27
|
-
Start watching a project
|
|
82
|
+
Start watching a project with a live terminal dashboard.
|
|
28
83
|
|
|
29
84
|
```bash
|
|
30
85
|
shadow-brain start . # Watch current directory
|
|
31
|
-
shadow-brain start . -p anthropic -k $API_KEY # Use Anthropic
|
|
32
|
-
shadow-brain start . --personality security # Security-focused
|
|
86
|
+
shadow-brain start . -p anthropic -k $API_KEY # Use Anthropic
|
|
87
|
+
shadow-brain start . --personality security # Security-focused
|
|
33
88
|
shadow-brain start . --depth deep # Deep analysis
|
|
34
89
|
shadow-brain start . --agents claude-code,codex # Watch specific agents
|
|
35
90
|
```
|
|
36
91
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
92
|
+
| Option | Description |
|
|
93
|
+
|--------|-------------|
|
|
94
|
+
| `-p, --provider` | LLM provider: `anthropic`, `openai`, `ollama`, `openrouter` |
|
|
95
|
+
| `-m, --model` | LLM model name |
|
|
96
|
+
| `-k, --api-key` | API key |
|
|
97
|
+
| `--personality` | Brain personality (see below) |
|
|
98
|
+
| `--depth` | Review depth: `quick`, `standard`, `deep` |
|
|
99
|
+
| `--agents` | Comma-separated agent list |
|
|
100
|
+
| `--no-inject` | Disable auto-injection |
|
|
45
101
|
|
|
46
102
|
### `shadow-brain review [project-dir]`
|
|
47
103
|
|
|
48
104
|
One-shot project analysis without watch mode.
|
|
49
105
|
|
|
50
106
|
```bash
|
|
51
|
-
shadow-brain review . # Text output
|
|
107
|
+
shadow-brain review . # Text output (default)
|
|
52
108
|
shadow-brain review . --output json # JSON output
|
|
53
109
|
shadow-brain review . --output markdown # Markdown output
|
|
54
110
|
shadow-brain review . --depth deep # Thorough analysis
|
|
@@ -80,6 +136,16 @@ shadow-brain config personality architect
|
|
|
80
136
|
shadow-brain config --reset
|
|
81
137
|
```
|
|
82
138
|
|
|
139
|
+
### `shadow-brain setup`
|
|
140
|
+
|
|
141
|
+
Interactive setup wizard for first-time configuration.
|
|
142
|
+
|
|
143
|
+
### `shadow-brain doctor`
|
|
144
|
+
|
|
145
|
+
Health check — verifies config, tests provider connectivity, detects agents.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
83
149
|
## Supported Agents
|
|
84
150
|
|
|
85
151
|
| Agent | Detection | Injection Target |
|
|
@@ -90,59 +156,54 @@ shadow-brain config --reset
|
|
|
90
156
|
| **OpenCode** | `.opencode/`, `opencode.json`, process | `.opencode/rules/`, `AGENTS.md` |
|
|
91
157
|
| **Codex CLI** | `.codex/`, `AGENTS.md`, process | `AGENTS.md` |
|
|
92
158
|
|
|
159
|
+
---
|
|
160
|
+
|
|
93
161
|
## Brain Personalities
|
|
94
162
|
|
|
163
|
+
<div align="center">
|
|
164
|
+
<img src="docs/images/personalities.svg" alt="Brain Personalities" width="100%" />
|
|
165
|
+
</div>
|
|
166
|
+
|
|
95
167
|
| Personality | Focus |
|
|
96
168
|
|------------|-------|
|
|
97
|
-
| `mentor` | Teaches and explains —
|
|
98
|
-
| `critic` | Thorough code reviews —
|
|
169
|
+
| `mentor` | Teaches and explains — code quality, best practices, learning tips |
|
|
170
|
+
| `critic` | Thorough code reviews — bugs, logic errors, edge cases, dead code |
|
|
99
171
|
| `architect` | Big-picture thinking — modularity, scalability, design patterns |
|
|
100
|
-
| `security` | Paranoid about vulnerabilities — OWASP top 10,
|
|
172
|
+
| `security` | Paranoid about vulnerabilities — OWASP top 10, injection attacks, secret leaks |
|
|
101
173
|
| `performance` | Optimization focused — N+1 queries, memory leaks, bundle size |
|
|
102
174
|
| `balanced` | Mix of all perspectives (default) |
|
|
103
175
|
|
|
104
|
-
|
|
176
|
+
---
|
|
105
177
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
│ └──────┬───────┘ │ │
|
|
116
|
-
│ ▼ │ │
|
|
117
|
-
│ ┌──────────────┐ │ │
|
|
118
|
-
│ │ Orchestrator │ │ │
|
|
119
|
-
│ │ (debounce) │ │ │
|
|
120
|
-
│ └──────┬───────┘ │ │
|
|
121
|
-
│ ▼ │ │
|
|
122
|
-
│ ┌──────────────┐ │ │
|
|
123
|
-
│ │ Analyzer │ │ │
|
|
124
|
-
│ │ (LLM + rules)│ │ │
|
|
125
|
-
│ └──────┬───────┘ │ │
|
|
126
|
-
│ │ Insights │ │
|
|
127
|
-
│ └──────────────────────┘ │
|
|
128
|
-
│ ▼ │
|
|
129
|
-
│ Inject into agent memory │
|
|
130
|
-
└─────────────────────────────────────────────────┘
|
|
131
|
-
```
|
|
178
|
+
## Rule-Based Detection Patterns
|
|
179
|
+
|
|
180
|
+
Even without an LLM configured, Shadow Brain detects **20+ code patterns**:
|
|
181
|
+
|
|
182
|
+
**Security:** hardcoded secrets, API keys, private keys, SQL injection, XSS (dangerouslySetInnerHTML), eval/Function usage, .env file changes, database credential exposure
|
|
183
|
+
|
|
184
|
+
**Code Quality:** large batch changes, deleted files, code changes without tests, missing .gitignore, missing tsconfig.json, framework mismatches, excessive console.log
|
|
185
|
+
|
|
186
|
+
**Performance:** N+1 query patterns, synchronous file I/O, async/await in loops
|
|
132
187
|
|
|
133
|
-
|
|
188
|
+
**Architecture:** multiple config file changes, database migrations, infrastructure/deployment files, API endpoint changes, lock file drift
|
|
189
|
+
|
|
190
|
+
---
|
|
134
191
|
|
|
135
192
|
## LLM Providers
|
|
136
193
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
194
|
+
| Provider | Setup | Cost |
|
|
195
|
+
|----------|-------|------|
|
|
196
|
+
| **Ollama** (default) | `ollama serve` + `ollama pull llama3` | Free, local |
|
|
197
|
+
| **Anthropic** | Set API key via `shadow-brain config apiKey sk-...` | Pay per token |
|
|
198
|
+
| **OpenAI** | Set provider + API key | Pay per token |
|
|
199
|
+
| **OpenRouter** | Set provider + API key | Pay per token |
|
|
200
|
+
|
|
201
|
+
---
|
|
141
202
|
|
|
142
203
|
## Programmatic API
|
|
143
204
|
|
|
144
205
|
```typescript
|
|
145
|
-
import { Orchestrator, createAdapter, LLMClient } from '@theihtisham/agent-shadow-brain';
|
|
206
|
+
import { Orchestrator, createAdapter, LLMClient, Analyzer, PromptBuilder } from '@theihtisham/agent-shadow-brain';
|
|
146
207
|
|
|
147
208
|
const orchestrator = new Orchestrator({
|
|
148
209
|
provider: 'ollama',
|
|
@@ -161,6 +222,16 @@ orchestrator.on('insights', ({ insights }) => {
|
|
|
161
222
|
await orchestrator.start();
|
|
162
223
|
```
|
|
163
224
|
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Contributing
|
|
228
|
+
|
|
229
|
+
1. Fork the repository
|
|
230
|
+
2. Create your feature branch: `git checkout -b feature/my-feature`
|
|
231
|
+
3. Commit your changes: `git commit -m 'Add my feature'`
|
|
232
|
+
4. Push to the branch: `git push origin feature/my-feature`
|
|
233
|
+
5. Open a Pull Request
|
|
234
|
+
|
|
164
235
|
## License
|
|
165
236
|
|
|
166
|
-
MIT
|
|
237
|
+
[MIT](LICENSE) © 2025 theihtisham
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/brain/analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAWrH,KAAK,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjD,UAAU,cAAc;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAc;gBAErB,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW;IAMnF,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqB9D,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/brain/analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAWrH,KAAK,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjD,UAAU,cAAc;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAc;gBAErB,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW;IAMnF,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqB9D,OAAO,CAAC,iBAAiB;CAoV1B;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IA4C/D,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;CA6D3E"}
|
package/dist/brain/analyzer.js
CHANGED
|
@@ -32,7 +32,9 @@ export class Analyzer {
|
|
|
32
32
|
ruleBasedAnalysis(changes, context) {
|
|
33
33
|
const insights = [];
|
|
34
34
|
const now = new Date();
|
|
35
|
-
|
|
35
|
+
const allContent = changes.map(c => c.content || c.diff || '').join('\n');
|
|
36
|
+
// === SECURITY RULES ===
|
|
37
|
+
// .env file changes
|
|
36
38
|
const envChanges = changes.filter(c => c.path.includes('.env') && !c.path.includes('.example'));
|
|
37
39
|
if (envChanges.length > 0) {
|
|
38
40
|
insights.push({
|
|
@@ -44,25 +46,114 @@ export class Analyzer {
|
|
|
44
46
|
timestamp: now,
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
|
-
//
|
|
48
|
-
const
|
|
49
|
+
// Hardcoded secrets detection
|
|
50
|
+
const secretPatterns = [
|
|
51
|
+
{ pattern: /(?:api[_-]?key|apikey)\s*[:=]\s*['"][^'"]{10,}/i, name: 'API key' },
|
|
52
|
+
{ pattern: /(?:password|passwd|pwd)\s*[:=]\s*['"][^'"]{6,}/i, name: 'password' },
|
|
53
|
+
{ pattern: /(?:secret|token)\s*[:=]\s*['"][^'"]{10,}/i, name: 'secret/token' },
|
|
54
|
+
{ pattern: /(?:AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}/, name: 'AWS access key' },
|
|
55
|
+
{ pattern: /sk-[a-zA-Z0-9]{32,}/, name: 'OpenAI/Anthropic API key' },
|
|
56
|
+
{ pattern: /ghp_[a-zA-Z0-9]{36}/, name: 'GitHub PAT' },
|
|
57
|
+
{ pattern: /-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/, name: 'private key' },
|
|
58
|
+
{ pattern: /mongodb(\+srv)?:\/\/[^:]+:[^@]+@/i, name: 'MongoDB connection string with credentials' },
|
|
59
|
+
{ pattern: /postgres(?:ql)?:\/\/[^:]+:[^@]+@/i, name: 'PostgreSQL connection string with credentials' },
|
|
60
|
+
{ pattern: /mysql:\/\/[^:]+:[^@]+@/i, name: 'MySQL connection string with credentials' },
|
|
61
|
+
];
|
|
62
|
+
for (const { pattern, name } of secretPatterns) {
|
|
63
|
+
if (pattern.test(allContent)) {
|
|
64
|
+
insights.push({
|
|
65
|
+
type: 'warning',
|
|
66
|
+
priority: 'critical',
|
|
67
|
+
title: `Possible ${name} exposed in code`,
|
|
68
|
+
content: `Detected what appears to be a hardcoded ${name}. Never commit secrets to version control. Use environment variables or a secrets manager instead.`,
|
|
69
|
+
timestamp: now,
|
|
70
|
+
});
|
|
71
|
+
break; // one secret warning is enough
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// SQL injection risk
|
|
75
|
+
const sqlInjectionPatterns = [
|
|
76
|
+
/query\s*\(\s*[`'"]\s*SELECT.*\$\{/,
|
|
77
|
+
/query\s*\(\s*[`'"]\s*INSERT.*\$\{/,
|
|
78
|
+
/query\s*\(\s*[`'"]\s*UPDATE.*\$\{/,
|
|
79
|
+
/query\s*\(\s*[`'"]\s*DELETE.*\$\{/,
|
|
80
|
+
/\.raw\s*\(\s*[`'"].*\+|string concatenation in SQL/,
|
|
81
|
+
/execute\s*\(\s*[`'"].*\$\{/,
|
|
82
|
+
];
|
|
83
|
+
if (sqlInjectionPatterns.some(p => p.test(allContent))) {
|
|
84
|
+
insights.push({
|
|
85
|
+
type: 'warning',
|
|
86
|
+
priority: 'critical',
|
|
87
|
+
title: 'Potential SQL injection vulnerability',
|
|
88
|
+
content: 'String interpolation or concatenation detected in SQL queries. Use parameterized queries instead. Example: `query("SELECT * FROM users WHERE id = $1", [userId])` instead of template literals.',
|
|
89
|
+
timestamp: now,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
// XSS risk — dangerouslySetInnerHTML or unescaped output
|
|
93
|
+
if (allContent.includes('dangerouslySetInnerHTML') || allContent.includes('v-html')) {
|
|
94
|
+
insights.push({
|
|
95
|
+
type: 'warning',
|
|
96
|
+
priority: 'high',
|
|
97
|
+
title: 'XSS risk: raw HTML injection',
|
|
98
|
+
content: 'Raw HTML injection detected (dangerouslySetInnerHTML/v-html). Ensure the content is sanitized before rendering to prevent cross-site scripting attacks. Use DOMPurify or similar.',
|
|
99
|
+
timestamp: now,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
// eval/Function usage
|
|
103
|
+
if (/\beval\s*\(|new\s+Function\s*\(/.test(allContent)) {
|
|
104
|
+
insights.push({
|
|
105
|
+
type: 'warning',
|
|
106
|
+
priority: 'critical',
|
|
107
|
+
title: 'Dangerous eval/Function usage',
|
|
108
|
+
content: 'eval() or new Function() detected. These allow arbitrary code execution and are a major security risk. Use safer alternatives like JSON.parse() for data parsing.',
|
|
109
|
+
timestamp: now,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
// === DEPENDENCY RULES ===
|
|
113
|
+
const pkgChanges = changes.filter(c => c.path.endsWith('package.json') || c.path.endsWith('requirements.txt') ||
|
|
114
|
+
c.path.endsWith('Cargo.toml') || c.path.endsWith('go.mod') ||
|
|
115
|
+
c.path.endsWith('pom.xml') || c.path.endsWith('build.gradle'));
|
|
49
116
|
if (pkgChanges.length > 0) {
|
|
50
117
|
insights.push({
|
|
51
118
|
type: 'suggestion',
|
|
52
119
|
priority: 'medium',
|
|
53
120
|
title: 'Dependencies updated — consider audit',
|
|
54
|
-
content: 'A dependency manifest was modified. Review
|
|
121
|
+
content: 'A dependency manifest was modified. Review for: version pinning, known vulnerabilities (run `npm audit` or equivalent), license compatibility, and unnecessary additions.',
|
|
55
122
|
files: pkgChanges.map(c => c.path),
|
|
56
123
|
timestamp: now,
|
|
57
124
|
});
|
|
58
125
|
}
|
|
126
|
+
// Lock file changes without manifest changes = potential version drift
|
|
127
|
+
const lockChanges = changes.filter(c => c.path.endsWith('package-lock.json') || c.path.endsWith('yarn.lock') ||
|
|
128
|
+
c.path.endsWith('pnpm-lock.yaml') || c.path.endsWith('Poetry.lock'));
|
|
129
|
+
if (lockChanges.length > 0 && pkgChanges.length === 0) {
|
|
130
|
+
insights.push({
|
|
131
|
+
type: 'review',
|
|
132
|
+
priority: 'medium',
|
|
133
|
+
title: 'Lock file changed without manifest update',
|
|
134
|
+
content: 'A lock file was modified but no dependency manifest changed. This could indicate version drift or an indirect dependency update. Verify this is intentional.',
|
|
135
|
+
files: lockChanges.map(c => c.path),
|
|
136
|
+
timestamp: now,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
// === CODE QUALITY RULES ===
|
|
59
140
|
// Large batch of changes
|
|
60
|
-
if (changes.length >
|
|
141
|
+
if (changes.length > 15) {
|
|
61
142
|
insights.push({
|
|
62
143
|
type: 'review',
|
|
63
144
|
priority: 'high',
|
|
64
|
-
title: '
|
|
65
|
-
content: `${changes.length} files changed at once. Consider splitting into smaller, focused
|
|
145
|
+
title: 'Very large batch of changes detected',
|
|
146
|
+
content: `${changes.length} files changed at once — high risk of introducing bugs. Consider splitting into smaller, focused PRs. Each PR should address one concern for easier review and rollback.`,
|
|
147
|
+
files: changes.slice(0, 5).map(c => c.path),
|
|
148
|
+
timestamp: now,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else if (changes.length > 8) {
|
|
152
|
+
insights.push({
|
|
153
|
+
type: 'review',
|
|
154
|
+
priority: 'medium',
|
|
155
|
+
title: 'Large batch of changes',
|
|
156
|
+
content: `${changes.length} files changed. Consider splitting into smaller, focused commits for easier review and rollback.`,
|
|
66
157
|
files: changes.slice(0, 5).map(c => c.path),
|
|
67
158
|
timestamp: now,
|
|
68
159
|
});
|
|
@@ -74,34 +165,93 @@ export class Analyzer {
|
|
|
74
165
|
type: 'warning',
|
|
75
166
|
priority: 'high',
|
|
76
167
|
title: 'Files deleted',
|
|
77
|
-
content: `Files were deleted: ${deletedFiles.map(f => f.path).join(', ')}. Verify these deletions are intentional and no other code depends on them.`,
|
|
168
|
+
content: `Files were deleted: ${deletedFiles.map(f => f.path).join(', ')}. Verify these deletions are intentional and no other code depends on them. Search for imports/references to these files.`,
|
|
78
169
|
files: deletedFiles.map(c => c.path),
|
|
79
170
|
timestamp: now,
|
|
80
171
|
});
|
|
81
172
|
}
|
|
82
|
-
// New test files — positive
|
|
83
|
-
const testFiles = changes.filter(c => c.type === 'add' && (c.path.includes('.test.') || c.path.includes('.spec.') || c.path.includes('_test.')));
|
|
173
|
+
// New test files — positive reinforcement
|
|
174
|
+
const testFiles = changes.filter(c => c.type === 'add' && (c.path.includes('.test.') || c.path.includes('.spec.') || c.path.includes('_test.') || c.path.includes('.test_')));
|
|
84
175
|
if (testFiles.length > 0) {
|
|
85
176
|
insights.push({
|
|
86
177
|
type: 'context',
|
|
87
178
|
priority: 'low',
|
|
88
179
|
title: 'New test files added',
|
|
89
|
-
content: `Test files created: ${testFiles.map(f => f.path).join(', ')}. Good practice — ensure tests cover edge cases and
|
|
180
|
+
content: `Test files created: ${testFiles.map(f => f.path).join(', ')}. Good practice — ensure tests cover edge cases, error paths, and boundary conditions.`,
|
|
90
181
|
files: testFiles.map(c => c.path),
|
|
91
182
|
timestamp: now,
|
|
92
183
|
});
|
|
93
184
|
}
|
|
185
|
+
// Code changes without corresponding tests
|
|
186
|
+
const srcFiles = changes.filter(c => c.type === 'modify' && !c.path.includes('.test.') && !c.path.includes('.spec.') &&
|
|
187
|
+
!c.path.includes('node_modules') && !c.path.includes('.d.ts') &&
|
|
188
|
+
/\.(ts|tsx|js|jsx|py|go|rs|java)$/.test(c.path));
|
|
189
|
+
if (srcFiles.length >= 3 && testFiles.length === 0) {
|
|
190
|
+
insights.push({
|
|
191
|
+
type: 'suggestion',
|
|
192
|
+
priority: 'medium',
|
|
193
|
+
title: 'Code changes without test updates',
|
|
194
|
+
content: `${srcFiles.length} source files modified but no test files were updated. Consider adding or updating tests to cover the changed behavior.`,
|
|
195
|
+
files: srcFiles.slice(0, 3).map(c => c.path),
|
|
196
|
+
timestamp: now,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
// === PERFORMANCE ANTI-PATTERNS ===
|
|
200
|
+
// N+1 query pattern (ORM loops)
|
|
201
|
+
if (/for\s*\(.*await.*find|\.map\s*\(.*await|forEach\s*\(.*await/.test(allContent)) {
|
|
202
|
+
insights.push({
|
|
203
|
+
type: 'suggestion',
|
|
204
|
+
priority: 'high',
|
|
205
|
+
title: 'Possible N+1 query pattern',
|
|
206
|
+
content: 'Async/await inside a loop detected. This is a common source of N+1 queries and performance issues. Consider batching queries, using Promise.all() for parallel operations, or eager loading.',
|
|
207
|
+
timestamp: now,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
// Synchronous file I/O
|
|
211
|
+
if (/\breadFileSync\b|\bwriteFileSync\b|\breaddirSync\b|\bstatSync\b/.test(allContent)) {
|
|
212
|
+
insights.push({
|
|
213
|
+
type: 'suggestion',
|
|
214
|
+
priority: 'medium',
|
|
215
|
+
title: 'Synchronous file I/O detected',
|
|
216
|
+
content: 'Synchronous fs methods (readFileSync, writeFileSync) block the event loop. In production code, use async equivalents (readFile, writeFile) or streams for better performance.',
|
|
217
|
+
timestamp: now,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
// Console.log left in production code
|
|
221
|
+
const consoleLogCount = (allContent.match(/console\.log\s*\(/g) || []).length;
|
|
222
|
+
if (consoleLogCount > 3) {
|
|
223
|
+
insights.push({
|
|
224
|
+
type: 'suggestion',
|
|
225
|
+
priority: 'low',
|
|
226
|
+
title: 'Excessive console.log statements',
|
|
227
|
+
content: `${consoleLogCount} console.log() calls detected. Consider using a proper logging library (winston, pino) with log levels, or remove debug logs before production.`,
|
|
228
|
+
timestamp: now,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
// === ARCHITECTURE RULES ===
|
|
94
232
|
// Missing .gitignore
|
|
95
233
|
if (!context.structure.some(f => f.includes('.gitignore'))) {
|
|
96
234
|
insights.push({
|
|
97
235
|
type: 'suggestion',
|
|
98
236
|
priority: 'medium',
|
|
99
237
|
title: 'No .gitignore found',
|
|
100
|
-
content: 'Project does not have a .gitignore file.
|
|
238
|
+
content: 'Project does not have a .gitignore file. Add one to prevent committing build artifacts, dependencies, and secrets.',
|
|
101
239
|
files: [],
|
|
102
240
|
timestamp: now,
|
|
103
241
|
});
|
|
104
242
|
}
|
|
243
|
+
// Missing TypeScript config when .ts files exist
|
|
244
|
+
if (changes.some(c => c.path.endsWith('.ts') || c.path.endsWith('.tsx'))) {
|
|
245
|
+
if (!context.structure.some(f => f.includes('tsconfig.json'))) {
|
|
246
|
+
insights.push({
|
|
247
|
+
type: 'suggestion',
|
|
248
|
+
priority: 'medium',
|
|
249
|
+
title: 'TypeScript files without tsconfig.json',
|
|
250
|
+
content: 'TypeScript files detected but no tsconfig.json found. Add one for proper compiler configuration and type checking.',
|
|
251
|
+
timestamp: now,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
105
255
|
// Language/framework mismatch
|
|
106
256
|
if (context.framework === 'Express' && changes.some(c => c.path.includes('pages/'))) {
|
|
107
257
|
insights.push({
|
|
@@ -113,6 +263,56 @@ export class Analyzer {
|
|
|
113
263
|
timestamp: now,
|
|
114
264
|
});
|
|
115
265
|
}
|
|
266
|
+
// Config file changes
|
|
267
|
+
const configChanges = changes.filter(c => /\.(json|yaml|yml|toml|ini|conf|config\.(ts|js))$/.test(c.path) &&
|
|
268
|
+
!c.path.includes('node_modules') && !c.path.includes('package-lock'));
|
|
269
|
+
if (configChanges.length > 2) {
|
|
270
|
+
insights.push({
|
|
271
|
+
type: 'review',
|
|
272
|
+
priority: 'medium',
|
|
273
|
+
title: 'Multiple config files changed',
|
|
274
|
+
content: `${configChanges.length} configuration files modified. Double-check values, especially for production environments. Config mistakes are hard to debug.`,
|
|
275
|
+
files: configChanges.map(c => c.path),
|
|
276
|
+
timestamp: now,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// Database migration files
|
|
280
|
+
const migrationFiles = changes.filter(c => /migration|schema\.sql|\.sql$/.test(c.path) && c.path.includes('migrate'));
|
|
281
|
+
if (migrationFiles.length > 0) {
|
|
282
|
+
insights.push({
|
|
283
|
+
type: 'warning',
|
|
284
|
+
priority: 'high',
|
|
285
|
+
title: 'Database migration changed',
|
|
286
|
+
content: 'Database migration files modified. Ensure migrations are backwards-compatible. Test on a copy of production data before deploying. Consider if a rollback migration is needed.',
|
|
287
|
+
files: migrationFiles.map(c => c.path),
|
|
288
|
+
timestamp: now,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
// Docker/deployment changes
|
|
292
|
+
const deployChanges = changes.filter(c => /Dockerfile|docker-compose|\.kube|\.tf$|\.terraform|serverless\./.test(c.path));
|
|
293
|
+
if (deployChanges.length > 0) {
|
|
294
|
+
insights.push({
|
|
295
|
+
type: 'review',
|
|
296
|
+
priority: 'high',
|
|
297
|
+
title: 'Infrastructure/deployment files changed',
|
|
298
|
+
content: 'Infrastructure configuration modified. Verify: exposed ports, environment variables, resource limits, health checks, and security groups are correct.',
|
|
299
|
+
files: deployChanges.map(c => c.path),
|
|
300
|
+
timestamp: now,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
// API endpoint changes
|
|
304
|
+
const apiFiles = changes.filter(c => /route|controller|api|endpoint|handler/.test(c.path.toLowerCase()) &&
|
|
305
|
+
/\.(ts|js|py|go|rs|java)$/.test(c.path));
|
|
306
|
+
if (apiFiles.length > 0) {
|
|
307
|
+
insights.push({
|
|
308
|
+
type: 'suggestion',
|
|
309
|
+
priority: 'medium',
|
|
310
|
+
title: 'API endpoint files changed',
|
|
311
|
+
content: 'API endpoint code was modified. Verify: input validation, authentication, rate limiting, proper error responses (no stack traces), and API documentation is updated.',
|
|
312
|
+
files: apiFiles.map(c => c.path),
|
|
313
|
+
timestamp: now,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
116
316
|
// Ensure at least one insight
|
|
117
317
|
if (insights.length === 0) {
|
|
118
318
|
insights.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/brain/analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/brain/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/brain/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/brain/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC,OAAO,EACL,WAAW,EAAE,YAAY,EAAE,YAAY,EACxC,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,SAAS,CAAK;gBAEV,MAAM,EAAE,WAAW;IAezB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA4C3C,UAAU,IAAI,YAAY,GAAG,IAAI;IAIjC,SAAS;;;;;;;;;;;;IAeT,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,gBAAgB;YAWV,WAAW;YAqEX,cAAc;YAgBd,aAAa;IAqB3B,OAAO,CAAC,SAAS;CA2BlB"}
|