@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 CHANGED
@@ -1,393 +1,473 @@
1
- # veto
2
-
3
- > **50 agents. 43 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, 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
- | Platform | Config file |
31
- |---|---|
32
- | **Claude Code** | `~/.claude/mcp_servers.json` |
33
- | **Gemini CLI** | `~/.gemini/settings.json` |
34
- | **Codex CLI** | `~/.codex/config.json` |
35
- | **Cursor** | `~/.cursor/mcp.json` |
36
- | **Windsurf** | `~/.codeium/windsurf/mcp_config.json` |
37
- | **VS Code** | `.vscode/mcp.json` |
38
-
39
- ```json
40
- {
41
- "mcpServers": {
42
- "veto": {
43
- "command": "veto-server"
44
- }
45
- }
46
- }
47
- ```
48
-
49
- VS Code uses `"servers"` with `"type": "stdio"`:
50
-
51
- ```json
52
- {
53
- "servers": {
54
- "veto": {
55
- "type": "stdio",
56
- "command": "veto-server"
57
- }
58
- }
59
- }
60
- ```
61
-
62
- ---
63
-
64
- ## What Veto Does
65
-
66
- **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.
67
-
68
- **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.
69
-
70
- **Structured output** — Every agent result carries `confidence`, `severity`, `recommendation`, `affected_files`, and `line_refs` composable and actionable.
71
-
72
- **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.
73
-
74
- **50 Agents** — Domain experts for every task type. Each agent knows when it is the right tool and when to defer.
75
-
76
- **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.
77
-
78
- **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.
79
-
80
- **File watching** — `veto_watch` monitors your project and tells you which agent to call when files change.
81
-
82
- **Sequential pipelines** — `veto_workflow` runs a chain of agents with pass/fail gates end to end.
83
-
84
- **File explanation** — `veto_explain` reads any file and routes it to the best-fit expert agent automatically.
85
-
86
- **Plugin system** — Drop a `.js` file in `~/.veto/agents/` and it registers as a custom agent available in every tool.
87
-
88
- **MCP Resources + Prompts** — Read Veto's memory as MCP Resources. Use built-in Prompts as reusable task templates.
89
-
90
- **Cross-platform handoff** — Claude hitting its rate limit? `veto_handoff` open Gemini `veto_continue`. Full context restored in seconds.
91
-
92
- ---
93
-
94
- ## The 50 Agents
95
-
96
- ### Council Layer (8) — runs before any code is written
97
- `Lead Developer` · `Product Manager` · `System Architect` · `UX Designer` · `Devil's Advocate` · `Legal & Compliance` · `Security` · `Decision Engine`
98
-
99
- ### Development (12)
100
- `Coder` · `Code Reviewer` · `Tester` · `Debugger` · `Refactor` · `Database` · `API` · `Frontend` · `Backend` · `DevOps` · `Performance` · `Migration`
101
-
102
- ### Security (6)
103
- `Security Scanner` · `Auth Agent` · `Data Privacy` · `Secrets Agent` · `Dependency Audit` · `Penetration Tester`
104
-
105
- ### Memory (5)
106
- `Context Manager` · `Decision Logger` · `Project Mapper` · `Pattern Learner` · `Knowledge Base`
107
-
108
- ### Research (7)
109
- `Researcher` · `Tech Advisor` · `Cost Analyzer` · `Competitor Analyzer` · `Risk Assessor` · `Estimator` · `Ethics & Bias`
110
-
111
- ### Quality (5)
112
- `Code Quality` · `Documentation` · `Accessibility` · `Compatibility` · `Error Handling`
113
-
114
- ### Workflow (7)
115
- `Task Planner` · `Task Coordinator` · `File Manager` · `Git Agent` · `Search Agent` · `Reporter` · `Automation`
116
-
117
- ---
118
-
119
- ## MCP Tools (42)
120
-
121
- | Category | Tools |
122
- |---|---|
123
- | **Session** | `veto_status` · `veto_session_save` · `veto_session_restore` · `veto_sessions_list` · `veto_autosave_status` |
124
- | **Router** | `veto_route_task` · `veto_rate_status` |
125
- | **Council** | `veto_council_debate` |
126
- | **Agents** | `veto_agent_plan` · `veto_execute_parallel` · `veto_explain` |
127
- | **Review** | `veto_code_review` · `veto_security_scan` · `veto_secrets_scan` · `veto_diff_review` |
128
- | **Pipelines** | `veto_workflow` |
129
- | **Watching** | `veto_watch` · `veto_watch_poll` · `veto_watch_stop` |
130
- | **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` |
131
- | **Learning** | `veto_record_outcome` · `veto_learning_stats` · `veto_learning_apply` |
132
- | **Handoff** | `veto_handoff` · `veto_continue` · `veto_platform_setup` |
133
- | **Intelligence** | `veto_docs_fetch` · `veto_context_status` · `veto_task_parse` |
134
- | **Observability** | `veto_usage_status` · `veto_audit_log` · `veto_health` |
135
- | **CI/CD** | `veto_ci_gate` · `veto_pr_review` |
136
- | **Plugins** | `veto_plugins` |
137
-
138
- ## MCP Resources
139
-
140
- | URI | What it returns |
141
- |---|---|
142
- | `veto://sessions` | All saved sessions across platforms |
143
- | `veto://project-map?dir=<path>` | Stored project structure map |
144
- | `veto://memory?q=<query>` | Knowledge base search results |
145
- | `veto://patterns` | Learned coding patterns |
146
-
147
- ## MCP Prompts
148
-
149
- | Prompt | What it does |
150
- |---|---|
151
- | `code-review` | Full code review — paste code, get scored findings |
152
- | `security-audit` | OWASP Top 10 scan with CWE references |
153
- | `deploy-checklist` | Council reviews your deployment plan before you ship |
154
- | `explain-file` | Expert explanation of any file, auto-routed by type |
155
-
156
- ---
157
-
158
- ## CLI Commands
159
-
160
- Use these from any terminal to inspect Veto's brain without opening an AI session.
161
-
162
- After installing globally (`npm i -g @jigyasudham/veto`) or via npx:
163
-
164
- ```bash
165
- veto init # Configure all AI tools + scan project
166
- veto status # Version, DB path, session/memory/outcome counts
167
- veto sessions # List last 20 saved sessions
168
- veto memory [query] # Search knowledge base (blank = all entries)
169
- veto patterns [prefix] # List learned agent/routing patterns
170
- veto help # Full command + MCP tools reference
171
-
172
- # Without installing:
173
- npx @jigyasudham/veto help # Same help output, no install needed
174
- npx @jigyasudham/veto status # Check status from any machine
175
- ```
176
-
177
- `veto help` shows all CLI commands, all 43 MCP tool names, MCP Resources, and MCP Prompts — the full reference in one place.
178
-
179
- ---
180
-
181
- ## Codebase-Aware Agents
182
-
183
- Pass `project_dir` to any agent tool — Veto auto-injects:
184
- - Project name, version, dependency list
185
- - Detected tech stack (React, Next.js, Prisma, Express, MCP, etc.)
186
- - Recent `git diff --stat` and last 5 commits
187
- - Config files present (tsconfig, vite.config, tailwind, etc.)
188
-
189
- ```
190
- veto_council_debate {
191
- task: "migrate auth from sessions to JWTs",
192
- project_dir: "/your/project" ← agents now know your actual stack
193
- }
194
- ```
195
-
196
- ---
197
-
198
- ## Diff Review
199
-
200
- Auto-reads `git diff HEAD` from `project_dir`, or pass a diff string directly:
201
-
202
- ```
203
- veto_diff_review { project_dir: "/your/project" }
204
- → {
205
- verdict: "warn",
206
- files_changed: 4,
207
- code_review: { score: 78, critical: 0, high: 2, findings: [...] },
208
- security: { score: 91, critical: 0, high: 0, findings: [...] },
209
- secrets: { findings: [] },
210
- summary: "⚠️ WARN — 4 file(s) changed\nCode: approved_with_warnings (78/100)\n..."
211
- }
212
- ```
213
-
214
- Works as a pre-commit hook or CI step. The `summary` field is a single string ready to post as a PR comment.
215
-
216
- ---
217
-
218
- ## GitHub PR Review
219
-
220
- Pass a PR URL Veto fetches the diff and runs the full triple-scan automatically:
221
-
222
- ```
223
- veto_pr_review { pr_url: "https://github.com/owner/repo/pull/42" }
224
- {
225
- verdict: "warn",
226
- pr: { title: "Add auth middleware", author: "jigyasudham", changed_files: 6, ... },
227
- checks: {
228
- code_review: { score: 78, critical: 0, high: 2 },
229
- security: { score: 91, critical: 0, high: 0 },
230
- secrets: { clean: true }
231
- },
232
- review_comment: "## ⚠️ Veto Review — WARN\n...", ← paste directly into GitHub
233
- blocking_issues: []
234
- }
235
- ```
236
-
237
- Set `GITHUB_TOKEN` in your environment for private repos. Public repos need no auth.
238
-
239
- ---
240
-
241
- ## Sequential Pipelines
242
-
243
- ```
244
- veto_workflow {
245
- steps: [
246
- { id: "code", agent: "coder", task: "implement auth middleware", gate: 70 },
247
- { id: "review", agent: "reviewer", task: "review the implementation", gate: 75 },
248
- { id: "security", agent: "security-scanner", task: "scan for vulnerabilities", gate: 80 },
249
- { id: "test", agent: "tester", task: "write test cases" }
250
- ],
251
- project_dir: "/your/project"
252
- }
253
- { verdict: "passed", steps_passed: 4, steps_failed: 0, results: [...] }
254
- ```
255
-
256
- If any step's confidence falls below its gate, the pipeline halts and returns `partial` with the exact failure point.
257
-
258
- ---
259
-
260
- ## Reactive File Watching
261
-
262
- ```bash
263
- veto_watch { project_dir: "/your/project" }
264
- { watch_id: "a3f2b1c0" }
265
-
266
- # make some changes, then:
267
- veto_watch_poll { watch_id: "a3f2b1c0" }
268
- → [
269
- { file: "src/auth.ts", recommended_agent: "code-quality", suggested_tool: "veto_code_review" },
270
- { file: "package.json", recommended_agent: "dependency-audit", suggested_tool: "veto_agent_plan" },
271
- { file: ".env", recommended_agent: "secrets", suggested_tool: "veto_secrets_scan" }
272
- ]
273
- ```
274
-
275
- ---
276
-
277
- ## Self-Learning Router
278
-
279
- The router gets smarter as you use it:
280
-
281
- ```bash
282
- # After completing a task:
283
- veto_record_outcome {
284
- task_type: "fix-auth-bug",
285
- complexity: 45,
286
- model_tier: 2,
287
- output_quality: 88,
288
- agent: "debugger",
289
- file_ext: ".ts" # teaches the router which agent works best for .ts files
290
- }
291
-
292
- # After 20+ outcomes:
293
- veto_learning_apply # adjusts tier thresholds from your actual data
294
-
295
- # Next route_task call:
296
- veto_route_task { task: "debug auth issue", file_ext: ".ts" }
297
- → { ..., recommended_agent: "debugger" } # ← predicted from history
298
- ```
299
-
300
- ---
301
-
302
- ## Plugin System
303
-
304
- Register custom agents without forking:
305
-
306
- ```js
307
- // ~/.veto/agents/my-agent.js
308
- export function plan(task, context) {
309
- return {
310
- agent: 'my-agent',
311
- task,
312
- tier: 2,
313
- approach: 'Your custom approach...',
314
- steps: ['Step 1', 'Step 2'],
315
- checklist: ['[ ] Check 1'],
316
- pitfalls: ['Pitfall 1'],
317
- patterns: ['Pattern 1'],
318
- duration_estimate: '1-2 hours',
319
- };
320
- }
321
- ```
322
-
323
- Veto loads it on start. Use it in `veto_agent_plan { agent: "my-agent" }` or `veto_execute_parallel`.
324
-
325
- ---
326
-
327
- ## Cross-Platform Handoff
328
-
329
- **Rate limit mid-task:**
330
- ```
331
- Claude at 90% → veto_handoff { summary, context }
332
- Open Gemini → veto_continue { resuming_as: "gemini" }
333
- Full context restored. Continue exactly where you stopped.
334
- ```
335
-
336
- Every session tracks two fields:
337
- - `created_by` — which AI originally saved the session
338
- - `active_client` — which AI last resumed it (updated on every `veto_continue` or `veto_session_restore`)
339
-
340
- **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.
341
-
342
- **Switch machines:**
343
- ```
344
- Machine A → veto_memory_export → veto-export.json
345
- Machine B → veto_memory_import → veto_session_restore
346
- ```
347
-
348
- | Platform | Support |
349
- |---|---|
350
- | Claude Code | Native MCP |
351
- | Gemini CLI | MCP support |
352
- | Codex CLI | ✅ MCP support |
353
- | Cursor | ✅ MCP support |
354
- | Windsurf | ✅ MCP support |
355
- | VS Code | ✅ MCP support |
356
-
357
- ---
358
-
359
- ## Roadmap
360
-
361
- | Phase | Status | Version |
362
- |---|---|---|
363
- | 1 — Foundation | ✅ Complete | v0.1.0 |
364
- | 2 — Router | ✅ Complete | v0.2.0 |
365
- | 3 — Council | ✅ Complete | v0.3.0 |
366
- | 4 — Core Agents | ✅ Complete | v0.4.0 |
367
- | 5 — Memory System | ✅ Complete | v0.5.0 |
368
- | 6 — Self-Learning | ✅ Complete | v0.6.0 |
369
- | 7 Cross-Platform | Complete | v0.7.0 |
370
- | 8 — All 50 Agents | ✅ Complete | v0.8.0 |
371
- | 9 — Codebase Context + Structured Output + MCP Resources/Prompts | ✅ Complete | v0.9.0 |
372
- | 10 Watch, Workflow, Explain, Plugins | ✅ Complete | v0.10.0 |
373
- | 11 Smarter Council + Predictive Routing + Auto Project Map | ✅ Complete | v0.11.0 |
374
- | 12 — CLI Subcommands + Diff Review | ✅ Complete | v1.0.0 |
375
- | 13 Developer Intelligence + Auto Docs | ✅ Complete | v1.1.0 |
376
- | 14 Observability + Usage Stats + Audit Log | ✅ Complete | v1.2.0 |
377
- | 15 CI/CD Pipeline Gates | Complete | v1.2.0 |
378
-
379
- ---
380
-
381
- ## Tech Stack
382
-
383
- - **Language:** TypeScript (strict mode)
384
- - **Runtime:** Node.js 22.5+ (built-in `node:sqlite` — no native compilation)
385
- - **Dependencies:** `@modelcontextprotocol/sdk` only — one package, zero native addons
386
- - **Memory:** Local SQLite — zero config, works offline, portable via JSON export
387
- - **Platforms:** Claude Code · Gemini CLI · Codex CLI · Cursor · Windsurf · VS Code
388
-
389
- ---
390
-
391
- ## License
392
-
393
- MIT © 2026 Jigyasu Dham
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