@jigyasudham/veto 1.2.6 → 1.2.9
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 +473 -393
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +18 -9
- package/dist/adapters/index.js.map +1 -1
- package/dist/cli.js +191 -85
- package/dist/cli.js.map +1 -1
- package/dist/council/product-manager.js +1 -1
- package/dist/council/security.js +1 -1
- package/dist/council/ux-designer.js +2 -2
- package/dist/discover.d.ts +24 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.js +143 -0
- package/dist/discover.js.map +1 -0
- package/dist/server.js +133 -3
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,393 +1,473 @@
|
|
|
1
|
-
# veto
|
|
2
|
-
|
|
3
|
-
> **50 agents.
|
|
4
|
-
|
|
5
|
-
An MCP server that runs locally on your machine, plugs into Claude Code, Codex CLI, and Gemini CLI using your existing subscriptions — giving every AI a council of specialist agents, persistent cross-platform memory, a self-learning router, live usage tracking, CI/CD pipeline gates, live documentation fetching, auto session save, and the ability to say no to bad decisions.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Prerequisites
|
|
10
|
-
|
|
11
|
-
| Requirement | Version | Notes |
|
|
12
|
-
|---|---|---|
|
|
13
|
-
| **Node.js** | 22.5.0 or higher | Required — uses the built-in `node:sqlite` module (no native compilation). Download at [nodejs.org](https://nodejs.org). |
|
|
14
|
-
| **At least one AI CLI** | Latest | Claude Code, Gemini CLI, or Codex CLI — whichever you use. Veto works with all three. |
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
node --version # must be v22.5.0 or higher
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Quick Start
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npx @jigyasudham/veto@latest init
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`init` auto-detects every AI tool installed on your machine, configures them all, and builds a project map from your current directory — no manual steps.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
**
|
|
67
|
-
|
|
68
|
-
**
|
|
69
|
-
|
|
70
|
-
**
|
|
71
|
-
|
|
72
|
-
**
|
|
73
|
-
|
|
74
|
-
**
|
|
75
|
-
|
|
76
|
-
**
|
|
77
|
-
|
|
78
|
-
**
|
|
79
|
-
|
|
80
|
-
**
|
|
81
|
-
|
|
82
|
-
**
|
|
83
|
-
|
|
84
|
-
**
|
|
85
|
-
|
|
86
|
-
**
|
|
87
|
-
|
|
88
|
-
**
|
|
89
|
-
|
|
90
|
-
**
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
|
124
|
-
|
|
125
|
-
| **
|
|
126
|
-
| **
|
|
127
|
-
| **
|
|
128
|
-
| **
|
|
129
|
-
| **
|
|
130
|
-
| **
|
|
131
|
-
| **
|
|
132
|
-
| **
|
|
133
|
-
| **
|
|
134
|
-
| **
|
|
135
|
-
| **
|
|
136
|
-
| **
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
|
144
|
-
|
|
145
|
-
| `veto://
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
|
153
|
-
|
|
154
|
-
| `
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
veto
|
|
169
|
-
veto
|
|
170
|
-
veto
|
|
171
|
-
|
|
172
|
-
#
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
1
|
+
# veto
|
|
2
|
+
|
|
3
|
+
> **50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.**
|
|
4
|
+
|
|
5
|
+
An MCP server that runs locally on your machine, plugs into Claude Code, Codex CLI, and Gemini CLI using your existing subscriptions — giving every AI a council of specialist agents, persistent cross-platform memory, a self-learning router, live usage tracking, CI/CD pipeline gates, workspace discovery, live documentation fetching, auto session save, and the ability to say no to bad decisions.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
| Requirement | Version | Notes |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| **Node.js** | 22.5.0 or higher | Required — uses the built-in `node:sqlite` module (no native compilation). Download at [nodejs.org](https://nodejs.org). |
|
|
14
|
+
| **At least one AI CLI** | Latest | Claude Code, Gemini CLI, or Codex CLI — whichever you use. Veto works with all three. |
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node --version # must be v22.5.0 or higher
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx @jigyasudham/veto@latest init
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`init` auto-detects every AI tool installed on your machine, configures them all in one shot, and builds a project map from your current directory — no manual steps.
|
|
29
|
+
|
|
30
|
+
### Claude Code (global — works in every window and project)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
claude mcp add veto -s user -- npx -y --package @jigyasudham/veto veto-server
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The `-s user` flag registers Veto at user scope so it is available in **every VS Code window and project** without re-running anything. `veto init` does this automatically.
|
|
37
|
+
|
|
38
|
+
### Other platforms
|
|
39
|
+
|
|
40
|
+
| Platform | Config file written by `veto init` |
|
|
41
|
+
|---|---|
|
|
42
|
+
| **Gemini CLI** | `~/.gemini/settings.json` |
|
|
43
|
+
| **Codex CLI** | `~/.codex/config.json` |
|
|
44
|
+
| **Cursor** | `~/.cursor/mcp.json` |
|
|
45
|
+
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` |
|
|
46
|
+
|
|
47
|
+
All config files are home-directory relative — they apply globally across all projects and windows. Restart the AI client after `veto init` to pick up the new config.
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"mcpServers": {
|
|
52
|
+
"veto": {
|
|
53
|
+
"command": "npx",
|
|
54
|
+
"args": ["-y", "--package", "@jigyasudham/veto", "veto-server"]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## What Veto Does
|
|
63
|
+
|
|
64
|
+
**Council** — Before any significant task, 7 specialist agents debate it in parallel and return a GREEN / YELLOW / RED / DEADLOCK verdict. Bad decisions get blocked before any code is written.
|
|
65
|
+
|
|
66
|
+
**Codebase-aware agents** — Pass `project_dir` to any tool and Veto auto-reads `package.json`, detects your tech stack, and injects recent `git diff` context. Every agent responds to your actual project, not generic templates.
|
|
67
|
+
|
|
68
|
+
**Structured output** — Every agent result carries `confidence`, `severity`, `recommendation`, `affected_files`, and `line_refs` — composable and actionable.
|
|
69
|
+
|
|
70
|
+
**Router** — Every task is scored locally (zero tokens) and sent to the right model tier. Rate limits are tracked across all 3 platforms. The router self-adjusts from recorded outcomes and learns which agents perform best per file type.
|
|
71
|
+
|
|
72
|
+
**50 Agents** — Domain experts for every task type. Each agent knows when it is the right tool and when to defer.
|
|
73
|
+
|
|
74
|
+
**Memory** — Sessions, decisions, knowledge, and coding patterns persist across every conversation and every platform. Memory is automatically scoped to the active session's project directory — two instances working on different projects stay isolated without any extra configuration.
|
|
75
|
+
|
|
76
|
+
**Workspace discovery** — `veto_discover` scans a project once and builds a rich context map: git state, tech stack, file tree, dependencies, and key config files. Stored in Veto memory so every agent has accurate project context without re-reading files each time.
|
|
77
|
+
|
|
78
|
+
**Project summarization** — `veto_summarize` generates a concise expert briefing of a project, directory, or file in seconds. Use it at the start of a session to orient yourself on unfamiliar code.
|
|
79
|
+
|
|
80
|
+
**Diff review** — `veto_diff_review` runs code review, security scan, and secrets scan in parallel across a git diff. Returns a pass/warn/fail verdict with per-file findings — ready for CI and pre-commit hooks.
|
|
81
|
+
|
|
82
|
+
**File watching** — `veto_watch` monitors your project and tells you which agent to call when files change.
|
|
83
|
+
|
|
84
|
+
**Sequential pipelines** — `veto_workflow` runs a chain of agents with pass/fail gates end to end.
|
|
85
|
+
|
|
86
|
+
**File explanation** — `veto_explain` reads any file and routes it to the best-fit expert agent automatically.
|
|
87
|
+
|
|
88
|
+
**Plugin system** — Drop a `.js` file in `~/.veto/agents/` and it registers as a custom agent available in every tool.
|
|
89
|
+
|
|
90
|
+
**MCP Resources + Prompts** — Read Veto's memory as MCP Resources. Use built-in Prompts as reusable task templates.
|
|
91
|
+
|
|
92
|
+
**Cross-platform handoff** — Claude hitting its rate limit? `veto_handoff` → open Gemini → `veto_continue`. Full context restored in seconds.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## The 50 Agents
|
|
97
|
+
|
|
98
|
+
### Council Layer (8) — runs before any code is written
|
|
99
|
+
`Lead Developer` · `Product Manager` · `System Architect` · `UX Designer` · `Devil's Advocate` · `Legal & Compliance` · `Security` · `Decision Engine`
|
|
100
|
+
|
|
101
|
+
### Development (12)
|
|
102
|
+
`Coder` · `Code Reviewer` · `Tester` · `Debugger` · `Refactor` · `Database` · `API` · `Frontend` · `Backend` · `DevOps` · `Performance` · `Migration`
|
|
103
|
+
|
|
104
|
+
### Security (6)
|
|
105
|
+
`Security Scanner` · `Auth Agent` · `Data Privacy` · `Secrets Agent` · `Dependency Audit` · `Penetration Tester`
|
|
106
|
+
|
|
107
|
+
### Memory (5)
|
|
108
|
+
`Context Manager` · `Decision Logger` · `Project Mapper` · `Pattern Learner` · `Knowledge Base`
|
|
109
|
+
|
|
110
|
+
### Research (7)
|
|
111
|
+
`Researcher` · `Tech Advisor` · `Cost Analyzer` · `Competitor Analyzer` · `Risk Assessor` · `Estimator` · `Ethics & Bias`
|
|
112
|
+
|
|
113
|
+
### Quality (5)
|
|
114
|
+
`Code Quality` · `Documentation` · `Accessibility` · `Compatibility` · `Error Handling`
|
|
115
|
+
|
|
116
|
+
### Workflow (7)
|
|
117
|
+
`Task Planner` · `Task Coordinator` · `File Manager` · `Git Agent` · `Search Agent` · `Reporter` · `Automation`
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## MCP Tools (45)
|
|
122
|
+
|
|
123
|
+
| Category | Tools |
|
|
124
|
+
|---|---|
|
|
125
|
+
| **Session** | `veto_status` · `veto_session_save` · `veto_session_restore` · `veto_sessions_list` · `veto_autosave_status` |
|
|
126
|
+
| **Router** | `veto_route_task` · `veto_rate_status` |
|
|
127
|
+
| **Council** | `veto_council_debate` |
|
|
128
|
+
| **Agents** | `veto_agent_plan` · `veto_execute_parallel` · `veto_explain` |
|
|
129
|
+
| **Review** | `veto_code_review` · `veto_security_scan` · `veto_secrets_scan` · `veto_diff_review` |
|
|
130
|
+
| **Pipelines** | `veto_workflow` |
|
|
131
|
+
| **Watching** | `veto_watch` · `veto_watch_poll` · `veto_watch_stop` |
|
|
132
|
+
| **Memory** | `veto_memory_store` · `veto_memory_search` · `veto_memory_delete` · `veto_project_map_update` · `veto_project_map_get` · `veto_pattern_store` · `veto_patterns_list` · `veto_memory_export` · `veto_memory_import` |
|
|
133
|
+
| **Learning** | `veto_record_outcome` · `veto_learning_stats` · `veto_learning_apply` |
|
|
134
|
+
| **Handoff** | `veto_handoff` · `veto_continue` · `veto_platform_setup` |
|
|
135
|
+
| **Intelligence** | `veto_docs_fetch` · `veto_context_status` · `veto_task_parse` |
|
|
136
|
+
| **Observability** | `veto_usage_status` · `veto_audit_log` · `veto_health` |
|
|
137
|
+
| **CI/CD** | `veto_ci_gate` · `veto_pr_review` |
|
|
138
|
+
| **Discover** | `veto_discover` · `veto_summarize` |
|
|
139
|
+
| **Plugins** | `veto_plugins` |
|
|
140
|
+
|
|
141
|
+
## MCP Resources
|
|
142
|
+
|
|
143
|
+
| URI | What it returns |
|
|
144
|
+
|---|---|
|
|
145
|
+
| `veto://sessions` | All saved sessions across platforms |
|
|
146
|
+
| `veto://project-map?dir=<path>` | Stored project structure map |
|
|
147
|
+
| `veto://memory?q=<query>` | Knowledge base search results |
|
|
148
|
+
| `veto://patterns` | Learned coding patterns |
|
|
149
|
+
|
|
150
|
+
## MCP Prompts
|
|
151
|
+
|
|
152
|
+
| Prompt | What it does |
|
|
153
|
+
|---|---|
|
|
154
|
+
| `code-review` | Full code review — paste code, get scored findings |
|
|
155
|
+
| `security-audit` | OWASP Top 10 scan with CWE references |
|
|
156
|
+
| `deploy-checklist` | Council reviews your deployment plan before you ship |
|
|
157
|
+
| `explain-file` | Expert explanation of any file, auto-routed by type |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## CLI Commands
|
|
162
|
+
|
|
163
|
+
Use these from any terminal to inspect Veto's brain without opening an AI session.
|
|
164
|
+
|
|
165
|
+
After installing globally (`npm i -g @jigyasudham/veto`) or via npx:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
veto init # Configure all AI tools + scan project
|
|
169
|
+
veto doctor # Check MCP registrations + system health
|
|
170
|
+
veto status # Version, DB path, session/memory/outcome counts
|
|
171
|
+
veto sessions # List last 20 saved sessions
|
|
172
|
+
veto memory [query] # Search knowledge base (blank = all entries)
|
|
173
|
+
veto patterns [prefix] # List learned agent/routing patterns
|
|
174
|
+
veto help # Full command + MCP tools reference
|
|
175
|
+
|
|
176
|
+
# Without installing:
|
|
177
|
+
npx @jigyasudham/veto help # Same help output, no install needed
|
|
178
|
+
npx @jigyasudham/veto status # Check status from any machine
|
|
179
|
+
npx @jigyasudham/veto doctor # Diagnose MCP setup from any machine
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
`veto help` shows all CLI commands, all 45 MCP tool names, MCP Resources, and MCP Prompts — the full reference in one place.
|
|
183
|
+
|
|
184
|
+
### `veto doctor`
|
|
185
|
+
|
|
186
|
+
Diagnoses your full Veto setup in one command:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
veto doctor
|
|
190
|
+
|
|
191
|
+
Veto Doctor — system health check
|
|
192
|
+
─────────────────────────────────────────────────────
|
|
193
|
+
✓ Node.js v22.5.0
|
|
194
|
+
✓ ~/.veto exists
|
|
195
|
+
✓ Database ~/.veto/veto.db
|
|
196
|
+
17 sessions · 12 memories · 3 patterns
|
|
197
|
+
|
|
198
|
+
MCP Registrations
|
|
199
|
+
─────────────────────────────────────────────────────
|
|
200
|
+
✓ Claude Code — registered
|
|
201
|
+
✓ Gemini CLI — registered
|
|
202
|
+
· Codex CLI — not installed
|
|
203
|
+
· Cursor — not installed
|
|
204
|
+
|
|
205
|
+
✓ All checks passed — Veto is healthy!
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Run `veto init` to repair any failing check.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Workspace Discovery
|
|
213
|
+
|
|
214
|
+
`veto_discover` scans a project once and stores a rich context map in Veto memory. Every subsequent agent call can read from this map instead of re-scanning files.
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
veto_discover { "project_dir": "/your/project" }
|
|
218
|
+
→ {
|
|
219
|
+
git: { branch: "main", commit: "a3f2b1", dirty_files: [], recent_commits: [...] },
|
|
220
|
+
ecosystems: { node: "my-app v2.1.0" },
|
|
221
|
+
tech_stack: ["TypeScript", "React", "Prisma"],
|
|
222
|
+
key_files: ["tsconfig.json", "prisma/schema.prisma", ".env.example"],
|
|
223
|
+
total_files: 142,
|
|
224
|
+
structure: ["src/", " components/", " api/", ...]
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Three depth levels: `quick` (git + package metadata only), `standard` (+ file tree, default), `full`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Project Summarization
|
|
233
|
+
|
|
234
|
+
`veto_summarize` gives you a concise expert briefing on any project or file — useful when starting work on unfamiliar code.
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
veto_summarize { "project_dir": "/your/project" }
|
|
238
|
+
→ {
|
|
239
|
+
subject: "project",
|
|
240
|
+
tech_stack: ["TypeScript", "Next.js", "Prisma"],
|
|
241
|
+
summary: {
|
|
242
|
+
bullets: [
|
|
243
|
+
"Full-stack Next.js app with Prisma ORM and PostgreSQL",
|
|
244
|
+
"Auth via NextAuth — sessions stored in DB, not JWT",
|
|
245
|
+
"API routes under /src/app/api — RESTful, no tRPC",
|
|
246
|
+
"Background jobs via BullMQ with Redis",
|
|
247
|
+
"Deployed on Vercel — preview branches auto-deploy"
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
# File-level:
|
|
253
|
+
veto_summarize { "file_path": "/your/project/src/auth.ts", "focus": "security" }
|
|
254
|
+
|
|
255
|
+
# Detailed prose instead of bullets:
|
|
256
|
+
veto_summarize { "project_dir": "/your/project", "format": "detailed" }
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Codebase-Aware Agents
|
|
262
|
+
|
|
263
|
+
Pass `project_dir` to any agent tool — Veto auto-injects:
|
|
264
|
+
- Project name, version, dependency list
|
|
265
|
+
- Detected tech stack (React, Next.js, Prisma, Express, MCP, etc.)
|
|
266
|
+
- Recent `git diff --stat` and last 5 commits
|
|
267
|
+
- Config files present (tsconfig, vite.config, tailwind, etc.)
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
veto_council_debate {
|
|
271
|
+
task: "migrate auth from sessions to JWTs",
|
|
272
|
+
project_dir: "/your/project" ← agents now know your actual stack
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Diff Review
|
|
279
|
+
|
|
280
|
+
Auto-reads `git diff HEAD` from `project_dir`, or pass a diff string directly:
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
veto_diff_review { project_dir: "/your/project" }
|
|
284
|
+
→ {
|
|
285
|
+
verdict: "warn",
|
|
286
|
+
files_changed: 4,
|
|
287
|
+
code_review: { score: 78, critical: 0, high: 2, findings: [...] },
|
|
288
|
+
security: { score: 91, critical: 0, high: 0, findings: [...] },
|
|
289
|
+
secrets: { findings: [] },
|
|
290
|
+
summary: "⚠️ WARN — 4 file(s) changed\nCode: approved_with_warnings (78/100)\n..."
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Works as a pre-commit hook or CI step. The `summary` field is a single string ready to post as a PR comment.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## GitHub PR Review
|
|
299
|
+
|
|
300
|
+
Pass a PR URL — Veto fetches the diff and runs the full triple-scan automatically:
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
veto_pr_review { pr_url: "https://github.com/owner/repo/pull/42" }
|
|
304
|
+
→ {
|
|
305
|
+
verdict: "warn",
|
|
306
|
+
pr: { title: "Add auth middleware", author: "jigyasudham", changed_files: 6, ... },
|
|
307
|
+
checks: {
|
|
308
|
+
code_review: { score: 78, critical: 0, high: 2 },
|
|
309
|
+
security: { score: 91, critical: 0, high: 0 },
|
|
310
|
+
secrets: { clean: true }
|
|
311
|
+
},
|
|
312
|
+
review_comment: "## ⚠️ Veto Review — WARN\n...", ← paste directly into GitHub
|
|
313
|
+
blocking_issues: []
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Set `GITHUB_TOKEN` in your environment for private repos. Public repos need no auth.
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Sequential Pipelines
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
veto_workflow {
|
|
325
|
+
steps: [
|
|
326
|
+
{ id: "code", agent: "coder", task: "implement auth middleware", gate: 70 },
|
|
327
|
+
{ id: "review", agent: "reviewer", task: "review the implementation", gate: 75 },
|
|
328
|
+
{ id: "security", agent: "security-scanner", task: "scan for vulnerabilities", gate: 80 },
|
|
329
|
+
{ id: "test", agent: "tester", task: "write test cases" }
|
|
330
|
+
],
|
|
331
|
+
project_dir: "/your/project"
|
|
332
|
+
}
|
|
333
|
+
→ { verdict: "passed", steps_passed: 4, steps_failed: 0, results: [...] }
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
If any step's confidence falls below its gate, the pipeline halts and returns `partial` with the exact failure point.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Reactive File Watching
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
veto_watch { project_dir: "/your/project" }
|
|
344
|
+
→ { watch_id: "a3f2b1c0" }
|
|
345
|
+
|
|
346
|
+
# make some changes, then:
|
|
347
|
+
veto_watch_poll { watch_id: "a3f2b1c0" }
|
|
348
|
+
→ [
|
|
349
|
+
{ file: "src/auth.ts", recommended_agent: "code-quality", suggested_tool: "veto_code_review" },
|
|
350
|
+
{ file: "package.json", recommended_agent: "dependency-audit", suggested_tool: "veto_agent_plan" },
|
|
351
|
+
{ file: ".env", recommended_agent: "secrets", suggested_tool: "veto_secrets_scan" }
|
|
352
|
+
]
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Self-Learning Router
|
|
358
|
+
|
|
359
|
+
The router gets smarter as you use it:
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
# After completing a task:
|
|
363
|
+
veto_record_outcome {
|
|
364
|
+
task_type: "fix-auth-bug",
|
|
365
|
+
complexity: 45,
|
|
366
|
+
model_tier: 2,
|
|
367
|
+
output_quality: 88,
|
|
368
|
+
agent: "debugger",
|
|
369
|
+
file_ext: ".ts" # ← teaches the router which agent works best for .ts files
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
# After 20+ outcomes:
|
|
373
|
+
veto_learning_apply # adjusts tier thresholds from your actual data
|
|
374
|
+
|
|
375
|
+
# Next route_task call:
|
|
376
|
+
veto_route_task { task: "debug auth issue", file_ext: ".ts" }
|
|
377
|
+
→ { ..., recommended_agent: "debugger" } # ← predicted from history
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Plugin System
|
|
383
|
+
|
|
384
|
+
Register custom agents without forking:
|
|
385
|
+
|
|
386
|
+
```js
|
|
387
|
+
// ~/.veto/agents/my-agent.js
|
|
388
|
+
export function plan(task, context) {
|
|
389
|
+
return {
|
|
390
|
+
agent: 'my-agent',
|
|
391
|
+
task,
|
|
392
|
+
tier: 2,
|
|
393
|
+
approach: 'Your custom approach...',
|
|
394
|
+
steps: ['Step 1', 'Step 2'],
|
|
395
|
+
checklist: ['[ ] Check 1'],
|
|
396
|
+
pitfalls: ['Pitfall 1'],
|
|
397
|
+
patterns: ['Pattern 1'],
|
|
398
|
+
duration_estimate: '1-2 hours',
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
Veto loads it on start. Use it in `veto_agent_plan { agent: "my-agent" }` or `veto_execute_parallel`.
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Cross-Platform Handoff
|
|
408
|
+
|
|
409
|
+
**Rate limit mid-task:**
|
|
410
|
+
```
|
|
411
|
+
Claude at 90% → veto_handoff { summary, context }
|
|
412
|
+
Open Gemini → veto_continue { resuming_as: "gemini" }
|
|
413
|
+
Full context restored. Continue exactly where you stopped.
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
Every session tracks two fields:
|
|
417
|
+
- `created_by` — which AI originally saved the session
|
|
418
|
+
- `active_client` — which AI last resumed it (updated on every `veto_continue` or `veto_session_restore`)
|
|
419
|
+
|
|
420
|
+
**Multiple AIs on different projects simultaneously:** Each MCP server process is independent. Sessions are always separate. Memory is automatically scoped to each process's active project — no cross-contamination.
|
|
421
|
+
|
|
422
|
+
**Switch machines:**
|
|
423
|
+
```
|
|
424
|
+
Machine A → veto_memory_export → veto-export.json
|
|
425
|
+
Machine B → veto_memory_import → veto_session_restore
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
| Platform | Support |
|
|
429
|
+
|---|---|
|
|
430
|
+
| Claude Code | ✅ Native MCP |
|
|
431
|
+
| Gemini CLI | ✅ MCP support |
|
|
432
|
+
| Codex CLI | ✅ MCP support |
|
|
433
|
+
| Cursor | ✅ MCP support |
|
|
434
|
+
| Windsurf | ✅ MCP support |
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## Roadmap
|
|
439
|
+
|
|
440
|
+
| Phase | Status | Version |
|
|
441
|
+
|---|---|---|
|
|
442
|
+
| 1 — Foundation | ✅ Complete | v0.1.0 |
|
|
443
|
+
| 2 — Router | ✅ Complete | v0.2.0 |
|
|
444
|
+
| 3 — Council | ✅ Complete | v0.3.0 |
|
|
445
|
+
| 4 — Core Agents | ✅ Complete | v0.4.0 |
|
|
446
|
+
| 5 — Memory System | ✅ Complete | v0.5.0 |
|
|
447
|
+
| 6 — Self-Learning | ✅ Complete | v0.6.0 |
|
|
448
|
+
| 7 — Cross-Platform | ✅ Complete | v0.7.0 |
|
|
449
|
+
| 8 — All 50 Agents | ✅ Complete | v0.8.0 |
|
|
450
|
+
| 9 — Codebase Context + Structured Output + MCP Resources/Prompts | ✅ Complete | v0.9.0 |
|
|
451
|
+
| 10 — Watch, Workflow, Explain, Plugins | ✅ Complete | v0.10.0 |
|
|
452
|
+
| 11 — Smarter Council + Predictive Routing + Auto Project Map | ✅ Complete | v0.11.0 |
|
|
453
|
+
| 12 — CLI Subcommands + Diff Review | ✅ Complete | v1.0.0 |
|
|
454
|
+
| 13 — Developer Intelligence + Auto Docs | ✅ Complete | v1.1.0 |
|
|
455
|
+
| 14 — Observability + Usage Stats + Audit Log | ✅ Complete | v1.2.0 |
|
|
456
|
+
| 15 — CI/CD Gates + GitHub PR Review | ✅ Complete | v1.2.5 |
|
|
457
|
+
| 16 — Workspace Discovery + Summarization + Doctor | ✅ Complete | v1.2.8 |
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
## Tech Stack
|
|
462
|
+
|
|
463
|
+
- **Language:** TypeScript (strict mode)
|
|
464
|
+
- **Runtime:** Node.js 22.5+ (built-in `node:sqlite` — no native compilation)
|
|
465
|
+
- **Dependencies:** `@modelcontextprotocol/sdk` only — one package, zero native addons
|
|
466
|
+
- **Memory:** Local SQLite — zero config, works offline, portable via JSON export
|
|
467
|
+
- **Platforms:** Claude Code · Gemini CLI · Codex CLI · Cursor · Windsurf
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## License
|
|
472
|
+
|
|
473
|
+
MIT © 2026 Jigyasu Dham
|