{"_id":"@jigyasudham/veto","_rev":"52-d25dff96330688a72dc0a83dc29d053f","name":"@jigyasudham/veto","dist-tags":{"latest":"3.8.0"},"versions":{"0.8.0":{"name":"@jigyasudham/veto","version":"0.8.0","keywords":["mcp","ai","claude","agents","memory","council"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@0.8.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js"},"dist":{"shasum":"020adbd3fdc1546bb4bf5735aacd9c1d9c3c5ee6","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-0.8.0.tgz","fileCount":198,"integrity":"sha512-8djT+SWJx8ijdHDhW8wlYNbhaSp9fYRLIFHwwUYHnb4ltV+99MynrThzUBNghsQ2sHvrK3uhxphFY7LqmDiRwg==","signatures":[{"sig":"MEUCIC9VtgFX7JpodEhwJBRcVc5agOFi2J0mbWt2UkLBLi5vAiEA1YUqMaWje0Bx9mkNcpFBZrMbK7938CX8s2Tw1WsjJWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1230819},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"5c2fbd3b7257985492f18c8a88c646ad76c59bcc","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 28 skills. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_0.8.0_1777657684263_0.7801810116126928","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@jigyasudham/veto","version":"0.8.1","keywords":["mcp","ai","claude","agents","memory","council"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@0.8.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js"},"dist":{"shasum":"4f711632d4ae73827f3fd2b043ba8e91aff70344","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-0.8.1.tgz","fileCount":198,"integrity":"sha512-yL0JhMzPOCRu4pytP+ezTeyAntd5jD21X2hJXize9vw3xIoOKiydnPXovW+ZkM/ThqfYgHuyouJ2fQc68o84ww==","signatures":[{"sig":"MEQCIAjVixAboLRfbAd6PSwpy7/SzMvLr7IBgtcy4y9oGT9KAiAjoifZWylM0WirlEcwd7HmFEW7KAV1QsOQ820NSatv9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1230852},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"f72ecf5bc90eff13e1a5e8aa40d11cb9dc636748","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 28 skills. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_0.8.1_1777657819493_0.7898645143537917","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@jigyasudham/veto","version":"0.8.2","keywords":["mcp","ai","claude","agents","memory","council"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@0.8.2","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"3025fb97706d80f272677025d1f0b8cbb0711628","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-0.8.2.tgz","fileCount":198,"integrity":"sha512-uY6Rzc3/ZVr7vDL53wDE/hJYa0H+KGkuKp0Z7HK6WFt5Oj6lD9eN5iaFVPrXpLxL3FL4txJOh4gbGgeNC93K/A==","signatures":[{"sig":"MEUCIDZXhUx6hLViRK9Pch3RI48DV3DsHEykZGbT+peYGqPnAiEAjmIIpiDV05wWFBUiLgnMdrwSBqMrvJVybzXTf9/c3OA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1230015},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"d9b91d01e668562bba1a7189d6d6b08ef11078c8","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 28 skills. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_0.8.2_1777658217772_0.8729043005597619","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@jigyasudham/veto","version":"0.8.3","keywords":["mcp","ai","claude","agents","memory","council"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@0.8.3","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"8e1e03166596d42a11708be71265389152206ddb","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-0.8.3.tgz","fileCount":198,"integrity":"sha512-8bHR3jkufDggSS15DGF1241TDTZW8tVVLAc7L/7DGJ2P7+yE5Yho8Qxr+kxIttUrI1IH9mUScR2Xacy/ldzKng==","signatures":[{"sig":"MEQCIC8lXfWZlR6+N9UU+THfKXqZ23p28jn7zd2TMzsGF/qjAiA8Kx0NV98dsXXkEqav7lYU3VNb2lJsafXt3dl55PbMPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1227643},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"f71a2ca655a2dea6d059f3612b2fb85bef45dda7","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 28 skills. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_0.8.3_1777661291163_0.5586816597835145","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@jigyasudham/veto","version":"1.0.0","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.0.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"3754f5b13b77009bbaf39a0af245f8c57808baa2","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.0.0.tgz","fileCount":103,"integrity":"sha512-xpJQV7TaFx7VxAzXlj0etD7sVc58JDMa2sVHagcwtmWXHPQFgx5lRoAryCn7k84GR7fhONAg/ArX/wDwUQmt6w==","signatures":[{"sig":"MEYCIQC+QjeI5G/Zugw3aG4yDtD//SFbx+t7Xc13yfpHXNoKmgIhAM8NNgHiEzkQfLocjnqDcbYtlmlgMHFTnCIPrTb0dulu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":674888},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"98a182a5109ba3568620857a1a8a90be818c2443","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 34 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.0.0_1777740981260_0.5952368349623842","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@jigyasudham/veto","version":"1.1.0","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.1.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"d4e8e96046a68d0812809625707f3b9b5def4317","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.1.0.tgz","fileCount":103,"integrity":"sha512-yQ+6V48feI9UzbUAspvm12uUCsMVDfpc0GSXqprdOgGfpX+wb+Y59yHUPoudtB/T2ydI712dHNkjIHmySiYBDg==","signatures":[{"sig":"MEYCIQD27OdbmcUrelUftPAeptMiYOlc58EhWAFZYrt4AiHNOAIhAIpO/ZXujPn0yNYoe3kdw7NWAH4tb78xZvQRHEJGDqmF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":678109},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"2e500fee4b9385e7162b9f5fe5e7bf22627279ec","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 34 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.1.0_1777817933234_0.7217757747443689","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@jigyasudham/veto","version":"1.2.0","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"f4d889797eefb5ef007e4ef7a388b406b0c2a9a0","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.0.tgz","fileCount":103,"integrity":"sha512-mCNoaA7vU/IaR2Qwax+v4wRH23n52+UP19Ltmwy2//BqtAGYMBbEZdC2FbnvclDW7g6JQ3iL0RDeTWUHrxZPmQ==","signatures":[{"sig":"MEUCIGZT4+T+yMtOkYt2t8TFvB69elGaK2m1xZrGKdgEALDsAiEApH9LWwTiazM9x93ZopwNuB6cd6trohXieNJNFd7VtE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":707740},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"3c88f3c5d188bb4f1ce16674dff9ddbb1e5573a4","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 34 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.0_1777828742941_0.6958214156827409","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@jigyasudham/veto","version":"1.2.1","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"6e960f154ac7b6c31fe95b61daedb81942fa4d77","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.1.tgz","fileCount":103,"integrity":"sha512-bdfJv7NC2zotiS9x5HqGesSsuIMVwcQKa78eBP9oFvs77uIt8eRW2OjBdGr6XJQnzF0KON4TnAL/rXNly5MIHQ==","signatures":[{"sig":"MEQCIBqhZcxDnazwE8hbGKgV8kDo+TtdSBAsMl8N3Bs7P3kHAiBVkSgSrCRQjW+hDrTX7Tcx6ha2J7xWrg1IWXc9YoC2Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708474},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"2fcce136ad123853a9cf31f20b23ba7c8d852fca","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","build":"tsc","start":"node dist/server.js"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 41 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.1_1777914359460_0.869382804529184","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@jigyasudham/veto","version":"1.2.2","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.2","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"91e8b01d4eb8cb9d217e70fb5a74e47ba1482419","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.2.tgz","fileCount":104,"integrity":"sha512-ns0oQgBucXFWax/U6pJYQMuIXYncpMOvca+kuQrh+S9xVw24JoOkxPPeEQfySyg/70bZFRnfvKEvSo9oDU4yVA==","signatures":[{"sig":"MEQCIFioby4dY0WThQOC+h72LHR4PEadhuEbtHyIwBoL6fdoAiAJAhDiq3uYdjScRxwrTpwhM1x9auKB7D71f//19sZ05Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":714253},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"f229ff19734bc9f8f39a3e81d65eb89bd27fc72f","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 41 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.2_1778074643178_0.4871591083083471","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@jigyasudham/veto","version":"1.2.5","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.5","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"3948a30a799fa9418a35ec3093a6b6320ed71574","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.5.tgz","fileCount":398,"integrity":"sha512-dFiSd3jsXyZOE8NsXw7z4CZ10ZITYsNSrq9JHmANF0XbW84NoeCMk4rPgef8fnY8rYEtsQ0FlzmY+ZsTjeRaEg==","signatures":[{"sig":"MEYCIQC3t40M0CU8blXLwK83PGk78EIrO6FQnT1DeBbMGY+PJwIhAPgKEBEGW+2nga8Bwztlk6xLvctIm2xi7wm2UpLkE84t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1222911},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"d9657799e584080e3f33c99be2a563cc21a88291","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 43 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.5_1778113557491_0.4414795849697728","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@jigyasudham/veto","version":"1.2.6","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.6","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"d65791e5fda6e2e5486dcfa373e686fa6ec97f44","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.6.tgz","fileCount":398,"integrity":"sha512-T7NBn59CDNp+5iJPzFzHER2yXkNyks0EIiIyEb5MieSvgx9etT1VI1wLoeutcGooz7shbkXxTAbUfFMU3XthiA==","signatures":[{"sig":"MEUCIAXPlwSSLUyb7g2npMYFFw2cSutNdjSZoQ0zM2oOSM8BAiEApA8scStbbDy7pPAw85xWxlM05sVIk7O3Co0EzMAzTeE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1223306},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"4e0afa5a81edb9689954240debceece9c9285241","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 43 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.6_1778113813635_0.8688682491449429","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@jigyasudham/veto","version":"1.2.8","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.8","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"e2c68e5616d149372c10040175c23ea11637d3b7","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.8.tgz","fileCount":402,"integrity":"sha512-bTRRd5SuURSwma5vvVgnaE+1CqY6k+OW03QQT4lSovh7XCJ9+QxqbXktH6h2Sg0tZiiELvc/Uh+81bINHz2rnA==","signatures":[{"sig":"MEQCIGc556jW03C41AkXl3gFpZ/jZPUvtqDcn7+VteKMIJfRAiA76VPcldTvGe8f3mCvuT5jCith/Vxyq2hDwhfX5JDqIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1264782},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"b32cde88ec26a0a039efeaa50e9883a49bc11ded","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.8_1778175632093_0.12148018007411632","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@jigyasudham/veto","version":"1.2.9","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.9","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"b92f741d437f1bcbfc2194eb2251703acebe45a9","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.9.tgz","fileCount":402,"integrity":"sha512-YgOYoQ+ItXPee0k5T5twaZrQ9AFRD6EjZv3+016Bchoaz5aLl5sDhaReGOuKH+qHxYiJTa5ZQ2QN7adb/QTOTw==","signatures":[{"sig":"MEQCH1DDTuoPi+yxcZ9nhT9ru9IzR9qj5/aL77CC0icgZI0CIQDGHugSkZH1o0SipV0SwSyk2hsGiUzzkqzGJmPF/to0Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1267876},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"465a219621b511fffe6053ada083f13796e468a8","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.9_1778176178325_0.5347782196089363","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@jigyasudham/veto","version":"1.2.11","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.11","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"8a5aa044b2b12aae5f61e5fec82a9b3c4d1b97e4","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.11.tgz","fileCount":402,"integrity":"sha512-BSXelw0Z26qjuC/jA3r14qsaHITc2WlPn/40W2nVChx8A3gm/NW2KP+HAB2wgnN/bSP2vFMLQB4sBpz++ZBm2g==","signatures":[{"sig":"MEUCIHIWBU0lTdJtvdp6ZnCigSGF+YrU0DYTJ0bjcmkki5KpAiEAs2cD6qQYUu+H9HvZscn9ij25xrqM4s7VSINbAEGVUPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1276568},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"2bee3b096f54674274ac137a547e9809cc69d564","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.11_1778354972270_0.5225604885420136","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@jigyasudham/veto","version":"1.2.12","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.12","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"954ca97eb10789633e60c4c9443f1d66c99d5e0d","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.12.tgz","fileCount":402,"integrity":"sha512-Dv3Z159zmyItWTgFe+wv0cQvvngc0anNvPk1uchGLtO8e8+/XkdrXhQLWehTTlwHW00vpNx+foaG/ASR4OiH/Q==","signatures":[{"sig":"MEUCIQC7Ny/ZUnz3jvcCciOGq3uCf7p3IVAx8vrKxZHIPNRtMwIgJMd7zu3uX+hnbBdMS2ENFE/1NxelVNJxaxrdJSwdlGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1277931},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"18fe3f05ec4f8bfd779c10c79d44e723dfefaa8f","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.12_1778382536854_0.4659290620243288","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@jigyasudham/veto","version":"1.2.14","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.14","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"6479ce9952b72bb817de59cd39c001a9e934e167","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.14.tgz","fileCount":406,"integrity":"sha512-fLj7M71SFS/F1Pr5+To0IIFooSyc+RmC3+NOxQL6i1WZoufWJzKiD1JoykYEoLZQHgaCyj+s6hyUV7rzeXunBQ==","signatures":[{"sig":"MEUCIQC0k19KxmslPvXN2e3KNhFEQbKBLst8fmnDPWpYlTRcwQIgfKs0WWXJMEy9tgcxI0+s76cw7E0ZYebDLuD3ZEFUmYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1301022},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"71e4315874b27d369b873f0ddbe90eedddc23dff","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.14_1778605318401_0.9316345582030157","host":"s3://npm-registry-packages-npm-production"}},"1.2.15":{"name":"@jigyasudham/veto","version":"1.2.15","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.15","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"69f4f2fd1772c2a5caa9f24f8dcd7b64c937fff0","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.15.tgz","fileCount":406,"integrity":"sha512-TP2Zv7/hGgVyNT4CdiRZWdDEYex7Sze0DKoRFACgC7RAIo0TgDWfwBaIdgYrJp9hySE7Amq4f7Yj9zJALY9Qvg==","signatures":[{"sig":"MEQCIEDEJ4OC+UkK4UN/+UEgM/4Sjav5E0BsmU0dOnAnatqpAiBXObaDZmM5j3Wa1kt84U2RqfOPSRjT0+GieyID8kTClA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1310352},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"848ce0328b3515298dba6c13add2571f406d6065","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.15_1778782555431_0.6448987825854606","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"@jigyasudham/veto","version":"1.2.16","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.16","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"6ed4e3e260b208fdc5933d44320fc855100a749a","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.16.tgz","fileCount":406,"integrity":"sha512-kTuCEBk5tw9f/n026Hr+HWJzW00OMSn8zNydTIGB0fOKNb3a51rfIFtNoWqtHD9q10MRufbkzwOdz9SkyFfstw==","signatures":[{"sig":"MEYCIQCfPCDgPpVp0iMjWT7tLDUN92TdD307TXCLD1kM6/cAXwIhAPoK611I1YmH48wkY38ZbcX4yJum7Ai78rkB417afuy0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1315803},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"d24f3e14178ee1c13b9cbc030cf9d2dc9c7faee7","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.16_1778783304614_0.6263545654007368","host":"s3://npm-registry-packages-npm-production"}},"1.2.18":{"name":"@jigyasudham/veto","version":"1.2.18","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.18","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"79e2a9f613b3ddce05c67d6ff7736542d8b884db","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.18.tgz","fileCount":406,"integrity":"sha512-LNhSeADb7cfLzcqmIdEAYN+vBnGe6yKQvNTfxebl3WYXxtoRfHPg9BvnIqEvJGusJ86pLSP+eS4QrT/qcHxcMw==","signatures":[{"sig":"MEUCIQCV+K6EeXguAbunLsCbpINK21hqWvIlMjI7bAN7djnC2wIgG0Nke08Hz95EsgGOVZjiIe4TM+eBbs4HHWLc59Eo/O0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1355160},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"8f8c14f8ce7a1bdd213f3a8f882fa062bf7ad118","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.18_1778950279462_0.8065626859909638","host":"s3://npm-registry-packages-npm-production"}},"1.2.19":{"name":"@jigyasudham/veto","version":"1.2.19","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.2.19","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"4360d4e7c22581219a7a2fa9b95e1991e887d6be","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.2.19.tgz","fileCount":406,"integrity":"sha512-Le+6jSLNPO0Aax+4PCAk5X6khordxRSW/0HqrI21OdxEciVd7ak7zJuUu3MVlkLZSld/azNU4T6DEH0+DJ1BGQ==","signatures":[{"sig":"MEUCIQD75X5d1DtzUsK+y9YS9Vh9EggSZASk+qa7Gf8i4Be/QgIgUSpYoZE9ERZx3tNBLXR+TAGhg+kKXiZ3S5vtDRQ839o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1359289},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"e4f155673f591d9d8fe1545257820fc4b1369466","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 45 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.2.19_1778950967479_0.4009955389535076","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@jigyasudham/veto","version":"1.4.0","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.4.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"7f045b8a5a41082406b773c152518db775f1b9ec","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.4.0.tgz","fileCount":414,"integrity":"sha512-HfH/RGHeHrWPZHNr775G4h6KDYSz+G41YOdalNPDpJfKCvYT7/tjtOh39l2pJ6xC30vYKBlDftfPYukGKdxu5w==","signatures":[{"sig":"MEUCIQCy+4ZdjorQVcTWj3aM/5Ecow8R4jExV03VIMRNG0F6TQIgWrgrwY8hAPH7D7llTPO/whW9yXYAmk8lo98NAK30p2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1463559},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"7c27401d3ba6905e74cb92ae559a4e8cead7a674","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 49 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.4.0_1779001378347_0.8942135153118616","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@jigyasudham/veto","version":"1.4.1","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.4.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"5a244efbe1b52bb926e31391550691cd963dbbbb","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.4.1.tgz","fileCount":418,"integrity":"sha512-9Q9h2RJnUgQ7zJYTRZoRNYMiHP/8V4XpiHhckecJCZRirpk+9JkZWCgjSU2HEg/E37tULYqGknZem3oQbrSbGA==","signatures":[{"sig":"MEQCIDO+Xa8e4yAE7LxYfucYGHlPncOq2cmlIAgJC/81QB7bAiBISqfDF2w4kPM3qpy1riBqMsq4+A4SBlMYoITWhAkjeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1495241},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"71814e446cefdf4ba8358c46abf522c12801b92a","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 49 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.4.1_1779297946822_0.34114424450314207","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@jigyasudham/veto","version":"1.4.3","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.4.3","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"0191a399399651b36b56afb44ca6b0e5c5302222","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.4.3.tgz","fileCount":422,"integrity":"sha512-o7lGRnENhRufoEY9N0VwWq7y68oU9P/9ks+Sz2oSmlS0l19WYpn4c8z/4+7bEr0xj7kRhB9ylgal83s85tT1cg==","signatures":[{"sig":"MEYCIQCLrgJkHmh/teXlvDgkujrfhYO3StNQv2BOXwNYgKoWvQIhAKTurPAiCG0Y52OhXgafun94p01ERp6mxcPTBFNzwI1h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1543026},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"1a0964a51126c7a6e6f372227728d782fabfbe0d","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 49 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.4.3_1779300025157_0.8921274786505338","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@jigyasudham/veto","version":"1.4.4","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@1.4.4","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"438947380af23e74113394e43846729efbfaecf0","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-1.4.4.tgz","fileCount":422,"integrity":"sha512-ZoaOniq266H9fzR9S5Q0wVl+o66XN0SI0LsJC730Gm6r8mNLVYhv62aDMGrpk/Gotd94zXmfwusJH8QQ2SttKA==","signatures":[{"sig":"MEUCIFXV10Sf3Z2vCo4B68EBR73XtbBi1uX9LYZpBkhlUq0SAiEA97MZGhGnkwW6AzU5BCBGwy5A809pHLrouXa7atFfEO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1550476},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"708d99c5d001548beca848ec426d89f8ef63365c","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"50 agents. 49 tools. 3 AIs. Self-learning. Zero extra cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_1.4.4_1779301188794_0.46438175057016906","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@jigyasudham/veto","version":"2.0.0","keywords":["mcp","ai","claude","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.0.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"fc05c558cbcc545ea721297d09da55758dbc06bc","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.0.0.tgz","fileCount":452,"integrity":"sha512-EA/CqicokOupRYYXj24ybFmeBw+mx+KC4wRE7+aoDaUqt/N0g77KPLnFJoFI6RS8XT/kq7c0+/bFVSP+Y49ZYg==","signatures":[{"sig":"MEQCIGvoc7Nu9H4SAyG2dVfmbEppNq0fZ4w/Q6IB95wX7dLOAiAFXfzUe66asdOz5kzCJ3qwCU7ew4f7xU52U8UmnkXEUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2041706},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"b314201d1a3c251897e80472de99bb0d8ee371a0","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"62 agentic tools. 50+ specialists. 3 AIs. Self-learning. Zero cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.0.0_1779553347714_0.8774838015325805","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@jigyasudham/veto","version":"2.0.1","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.0.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"0026d14f8e221ffba709b927eb1aeceebc5dd3b3","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.0.1.tgz","fileCount":451,"integrity":"sha512-Mitj3UoXbDqmDHC2c6bajoAiLUfVVQ9kHdyy4ZetxUw+FDNaz0FWD4/j/Dv6/D94bLnCyVCrR03Q1FHPtyugsg==","signatures":[{"sig":"MEYCIQD0AaKYB7HDBq+887UhDCKeNagJNB/wJw8ipH+YQ1AGvAIhAOxoSQEUHfv8fgFLLumCI72acI4Vvejt8VFOli/syhFf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2044519},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"21721d0f0d41c45dff88b92615f054ae7e100d91","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"62 agentic tools. 50+ specialists. 4 AIs. Self-learning. Zero cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.0.1_1779555603651_0.12275580228581973","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@jigyasudham/veto","version":"2.0.2","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.0.2","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"bd45e7adf7a65c1348584f8f408f01f6d89d940d","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.0.2.tgz","fileCount":451,"integrity":"sha512-Ah039y4mu5ofQ21wdhe34tp8CPr49oHnOH1IeS2zLKvyzZhAKX798AgzwyyYHrOE4zy/AGkUDi4p1+rI0zyxGQ==","signatures":[{"sig":"MEUCIQCwdajYaExfqc2fd6Mi2z+8KClyyxx0etTMFgVP5B6m7gIgX1U8zwWgNskhg4rwQj5/1ur9n7Mv4Mtpr/Kt7E0hVW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2035327},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"f822ec6650ba35e49f923c634f6eeda9b2bca919","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"62 agentic tools. 50+ specialists. 4 AIs. Self-learning. Zero cost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.0.2_1779900770757_0.8800642184703333","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@jigyasudham/veto","version":"2.1.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.1.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"6b75a52a669d882f8585353513a62266bab4d5cb","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.1.0.tgz","fileCount":522,"integrity":"sha512-vPAaTOt8LLXDK1rB70CyOhkzgoNJVgPDCffjaW5Q+BvAjyAHT3iH956iLEKXY+JSg7qLnJCe1+O2qLEutpWUkQ==","signatures":[{"sig":"MEQCIFEsKNf8YJaLh291FsLTMTKZRcdi8G2lwabOIlDNjVftAiAj2BthexX/5hBKEjAuC3F7npz6KrcM7JWvFCAXb9qyog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2026065},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"ac6c7485e74da86183e5045e17f5e6f943a1faab","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"89 agentic tools. 49 specialists. 4 AIs. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.1.0_1780630688804_0.9556918886898202","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@jigyasudham/veto","version":"2.1.1","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.1.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"c0d53b98ef19c8cd1f306cf0c21bcf26ec76c1ae","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.1.1.tgz","fileCount":522,"integrity":"sha512-RShkviWwlCLsBBiXRJ08SIMIztreP04y2YwmkE6LF+8EgcYW/b0u36fO5JYEH0Wcv6dd6TCTMCzSMSG+XG7rEw==","signatures":[{"sig":"MEUCIGCERy5CDmeZZLFlxnRinJwU2Omt/Tj+4aBbU5gqPHCqAiEA7Pl/7xTbvJHUACe84PRd3soivEaE6jikwUhqRKOF3yw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2040013},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"335084a0c2079094d2a3892c40a87c7d73fd9870","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"89 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.1.1_1780714053096_0.12668952769490827","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@jigyasudham/veto","version":"2.1.2","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.1.2","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"d46b9c006793f0399c153a426d047d9f673583ed","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.1.2.tgz","fileCount":524,"integrity":"sha512-xvWYML+x35yUJrjAg5X3BKXX6lpEW7ClR5JWHlNAvlQMBM8NYflBAiiafKaey1X3Bfz3yKrsoxn/cptcfjAspw==","signatures":[{"sig":"MEYCIQDxDtlT210KcH8Pc9In3bSYTt17ut071sHWnyWaJAUt8AIhAOfUJQhmRcVLppJ3XWsN33BG/aSkllCSxm36L5t4G57R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2045147},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"a1ab0ff83a0f686a0b6d8db15952cad1f26a3b22","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"89 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.1.2_1780741179904_0.797207356713699","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@jigyasudham/veto","version":"2.5.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.5.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"ac4cbe931084ec1d49506eb7c76ac10c8918a66b","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.5.0.tgz","fileCount":545,"integrity":"sha512-hQd90ABZ5eqbWKAuIIWFRDcoY+iJnNtaET9+eOCFY+6dyUIcyQIeyLHWngGew0ZJvfpyGXc2we691ErnsWXO5w==","signatures":[{"sig":"MEQCICloJD6AuMzqaC7N06ck0bhCT6pFMwnx7bq2dNPs/M5jAiAZ+zkwjP0gl1aJZoeSzKBsvoVF1g9eP1HZqd+6SNDHJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22475508},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"3afae9137d804b6d871d230c752778a4a36a79a8","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"92 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.5.0_1781749958632_0.8719630179377769","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@jigyasudham/veto","version":"2.6.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.6.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"b408a859c68d611395f796a41abd6af066935408","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.6.0.tgz","fileCount":549,"integrity":"sha512-SE/waiJG5EOs8smQKTRJX0F/IJcGXllpU94PSAgt8DEGHwxw9/rYshzzHCwJZLemqjzHxeKGpv8H7/nNZ3bIkA==","signatures":[{"sig":"MEQCIAZ5paBIdnlmIOrUB3snbn3MKuq4Zuf+UlTDrIezRqC2AiBRZs0V6vOXoVMna4i8gp+EvHh/X6bf/3nEdZ5qtYLDKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22517903},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"e513dded835acd768c7ba4c293f374eb5401989a","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.6.0_1782669824719_0.04342086132190737","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@jigyasudham/veto","version":"2.7.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.7.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"75cace66047210b344f8e41a6ddcc2e3a3bc9ef1","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.7.0.tgz","fileCount":550,"integrity":"sha512-lCuVA8eXltUcahO3+ppl0C1xAnUMClO6e8YAy872IlxCXaybqkQz8soEDAmrStsCKxUMliYKm3At+gtiZZeBhA==","signatures":[{"sig":"MEUCIQC2dCn9DUXhBoZMK+mFRMlBaZomSvPJ08GG17IKUNB9WwIgC1uoZE1BeLFrefDFRU6yqwctqeNqa0Dgy5UPxIkgmBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22531803},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"ae47f2cd9ad2877480093453c357754381eb0435","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.7.0_1782842523960_0.29525987541215937","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@jigyasudham/veto","version":"2.7.1","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.7.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"94a68601891eb1f33d7b3ca93f27eac3e9464267","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.7.1.tgz","fileCount":556,"integrity":"sha512-v2z0ICKHi/vWY4gqPlN0vM3B/HoaCpaHXIvCmZgyNN2/U6V1zmE7hJyW3NpQhl+ITj3Yu4LevKAKP0HzMvtKyg==","signatures":[{"sig":"MEUCIE4HuD6CHLcsRoSQwHeqc/2wwpxTiKK+4tLs0+nWiFMgAiEAqAqPUWwPPWo6+9NLqTUUG6DVDQjx7XCvw6eFFvIwJSU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22545362},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"facb76f26a23f0084eb5d37ec8f173a647f1ddca","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.7.1_1782928146211_0.7011157373880901","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"@jigyasudham/veto","version":"2.7.2","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.7.2","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"77f363cd738716779305c1ca8bb822dd43d6c5e9","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.7.2.tgz","fileCount":560,"integrity":"sha512-UyqpR4pSfN8+Dr0GV7CQul/NBl5ik5c3r18huKRCAUrsEnzD4OAYLTeO5A+SVBqb7o3bqTeq4sYZwXtUXLbPZg==","signatures":[{"sig":"MEUCIQDHVldQwRkRDPcT43Z9nOFm2UmT8I2lWv8ETRUdMOMzrgIgPMUy2rynvzbIQpat4fpC8Gjk7+9kfGlK0zdC42wTnxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22550976},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"ab0c85d0dbbaccbe9f57053e64760761df5c5b97","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.7.2_1782929802022_0.8380055874294894","host":"s3://npm-registry-packages-npm-production"}},"2.7.3":{"name":"@jigyasudham/veto","version":"2.7.3","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.7.3","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"75eafd300a63fb1ace012203dcd2c39004cb6e63","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.7.3.tgz","fileCount":552,"integrity":"sha512-DaJy8uGlyTFE6F5VzCh3k3i2g4qw/u3x62Lb4xMdvewm+xu+isocEPoRhmLwviWV/+b7yBKTdnM9/X3AdvS9xQ==","signatures":[{"sig":"MEUCIQCABOi4ys0EqVvKBQnMzqmBeuaj1Zk+xQwR/qaQE1AiKAIgZ4K+yyE3xg9UwcTVaDK8LyTjHJRrmOMnBodzl12VXa0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2238969},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"8eef491a4ad160d8cb7707f8bdff8f3405795a1a","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.7.3_1783012132176_0.5411697803598328","host":"s3://npm-registry-packages-npm-production"}},"2.7.4":{"name":"@jigyasudham/veto","version":"2.7.4","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.7.4","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"017663dfebc98d87a9a9a91c97bfeb788006890f","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.7.4.tgz","fileCount":552,"integrity":"sha512-JKkopDVmjjnB1TTDsEfAY1qr2CuWPIlpitMMU3YgnXBr2wetEe4mBXWPC0MEVTw2BoIb4B7c+5G7CRVH/He9fw==","signatures":[{"sig":"MEUCIQCNHakIuzi+3lKhQXd+EkUbPEhwYgfc7ocY3t5AUV5dGgIgV+w071ZOb//tKvP++qpuqOB7l62OarrVznX/LA7LbYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2241396},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"dcb222bf82638a2ae044920a64c46d2e575764da","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.7.4_1783182790890_0.14890189467509285","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@jigyasudham/veto","version":"2.8.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.8.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"a5cd71844c48b201b779a42b37cdeab729704130","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.8.0.tgz","fileCount":552,"integrity":"sha512-YVAJEOuLTdtTAcTiSiE7ES7YqF+NwUpXWfarw1i9F0rAACRhGNNpwsQFcz6UgvltESVNmoUaCPlX0eJye59AaQ==","signatures":[{"sig":"MEYCIQC7hNNVm+yZzbNUf9Lkj78jmwXD9w8mqKOM1RfypSDZpwIhAPolgrv4KzPzasptTvPBp3u+Li4ngKIJMY4c7+6RfQ1k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2247468},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"d701facd4401179ff7b3417576772df451360c46","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.8.0_1783271362725_0.47538871272106253","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@jigyasudham/veto","version":"2.9.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@2.9.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"33b89df8ba4c28c928637ecc6054d0f0ef0f5ec9","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-2.9.0.tgz","fileCount":552,"integrity":"sha512-H93D6H9SW2liJnPsQPs21/QAZ7O6wgsbDXE1pFNHrNT6zOeIoWty2AurCG9zByuOt2yU7J3juFYG0EiLMaYfDA==","signatures":[{"sig":"MEQCIDqdaZtHwG+WJvN1JMfsqT4zRh0cegJ4vW3djlwTrQqmAiAJMEX8dK19UVDc0BtPFg7nrhNUACC/s6dc9+FCpC1Rvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2309226},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.5.0"},"gitHead":"16dfc9f90a48e609e679c26aeec44f1ee4dea525","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"11.7.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_2.9.0_1783708664533_0.541295048437813","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@jigyasudham/veto","version":"3.0.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.0.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"73a85e6364f475bd5d291bbc73b0c6cd7bb45456","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.0.0.tgz","fileCount":616,"integrity":"sha512-poi/kpxG+VIG+GWLxoN1/t6LVkIk89LmtwMD3O2A20YK0ZktSkNVHy0EjfWTEHQSgOHx91I5sw2goSN0u44xEg==","signatures":[{"sig":"MEQCIFwvhEDcgxv3Qfl0X3CUI+csMSD2ZrFRzkKjh9s/2EPNAiA/8fE1w4IY1/umrtZMb/N4aYclI8QjVKTZLqBJK5MjZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2521870},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"76643100c50f0217ebf62f27f9d103b082570daa","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.0.0_1786092643684_0.09828016627985359","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@jigyasudham/veto","version":"3.1.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.1.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"85fa9f6d3f1286c98a192620b7a4d739ab4d334d","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.1.0.tgz","fileCount":632,"integrity":"sha512-uLqSITEyh6MN2GI0WW/M2mCWP/+CckGk3bIhJ0UP5BwGUqWn/OKrrDsvYa9U/cAXvoLXHblPb5ASB77oHF1DJA==","signatures":[{"sig":"MEQCIAwExln0AEQ5fLAGV1ZOTxiv8TguQf9PUAupBWtRHeUkAiBgtjVwWyatl0lTJCanhZFS1x6MmLQ+WWfcruuFgTE3SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2617180},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"2f71976c40727af0cb3a839931463c8471ba0367","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"jigyasudham","email":"jigyasudham18@gmail.com"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.1.0_1786524387373_0.9276903407751338","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@jigyasudham/veto","version":"3.1.1","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.1.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"218b966deaa7f6726a18f347fb86918e21ae5c79","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.1.1.tgz","fileCount":520,"integrity":"sha512-HsLNJDw7AOn6kgQ1KEBVEXk5ov7KFFK6RM+OEM2r8fqdIF7iBht2l8j5CFmuaVtI6vOhibQZLQZB+f4eNpEDeQ==","signatures":[{"sig":"MEUCIQCnaZwQCYHHtry2YRrAIKHicku3nsaJuJHlr0ODKWjBUAIgSV9R63lzZ/8CEAyqa1DgEDRpLApOtq1dnhcHI2DEcxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2471464},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"e10a78004e7090f8c842d8610e8fdb252cbce222","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.1.1_1787254087415_0.9511222149437975","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@jigyasudham/veto","version":"3.1.2","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.1.2","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"b5528f7d12d23e36148c3ad77d95a19d1133337f","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.1.2.tgz","fileCount":520,"integrity":"sha512-7PBnZFY6VqcANvw61iflIT97FrsExAK1mpyEzePXnGcfD/TvVIQ20GczQVubEpj/WGgamzN5dF5E2z0DQUdBrA==","signatures":[{"sig":"MEUCIGq1nxgQcN4uXTF5unvpG3AoP2M6MHv63unHBR/VGlLPAiEAj/svxvrEt6GhoreyyFyu5PAPrhzNUlSWJ4o4nMDJUKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2472072},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"e7434e6d1bc62bfff7435538cc39dafa790b8159","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.1.2_1787257045941_0.6950509717762468","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@jigyasudham/veto","version":"3.2.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.2.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/server.js"},"dist":{"shasum":"2009a2c11b1e1574e0dd6f810c796cc5ca83b281","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.2.0.tgz","fileCount":548,"integrity":"sha512-8GVqwagqVraKNvntwLrRMLhp4W39oxa2Dl8rI6tgQSAr7wS9uihTo3TiWyWXH5ogtHPoLuJp+A8UBZBVVGLGNA==","signatures":[{"sig":"MEQCIG1H+KpW5yHR23kQx4WKds/N2foih/3VWGhQvy9Ip7Y8AiAcrVQyd3SWWwrDBezduge/6FgynRl8r8zSoJ/reZWtDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2601085},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"645b2e7170ec9dd414204412ee389c742b7b4c49","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.2.0_1787413442251_0.6121123820099679","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@jigyasudham/veto","version":"3.2.1","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.2.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"69b291d89243ccf50a4d6e838c5cffb1e6025efe","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.2.1.tgz","fileCount":552,"integrity":"sha512-xKlSSr124rzdgLtOsHZO8AZJHAFcZzvNKqmZOnGKhgEJaaHUQRLYlXsuy8zAqdPyqj7tifCghp/dkuwrAoJOuw==","signatures":[{"sig":"MEUCIQDcbhyUbPPn3r1GZJZpCOlkHgR5v01NdpwSq75D8bRiDQIgQU5WqjYTVP6X4yf8VA4I+v0Jy6iFtowhPIMuzKup/mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2605849},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"bc0e3320e622446ea92cee3477442abb791dd60e","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.2.1_1788971564524_0.8667718508232531","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@jigyasudham/veto","version":"3.3.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.3.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"88c38b6350cb3f66e5277ae5c9d0507f389e57ec","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.3.0.tgz","fileCount":552,"integrity":"sha512-V5rXqfErWrSryIN5MXLERaNRp+9ug1Dbj6LzE9KbHBdStz9gNkPTaof+1KPNlYfLGSOY4jeqxkqqqleuIXEVEw==","signatures":[{"sig":"MEUCIHEvYIfTlzfVWs+FTrioGt81qV2BCoYmBHK3IfY2gKAAAiEA5axq6A4GC7WSe2SbiQyuRqCmBkGtfjGQnQRdXAknxRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2632205},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"810b3d296cc498c1104924d388839e43fcb3a7b0","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.3.0_1789202047568_0.8512271292798792","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@jigyasudham/veto","version":"3.4.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.4.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"2ce3225ff2e1e85df0ce8ca8c6c3bfe3687ea10c","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.4.0.tgz","fileCount":636,"integrity":"sha512-N0xODqUTcsx9JRCKN8zJ+4RAU4RT7cF7/PUrpbOyLdhY39zZssiEybgKeWbnPrgRVyOZ9ikxa3+h5x62uPCH5w==","signatures":[{"sig":"MEQCIAoV8du26mi6QJpqLajAEJWwVPzSzkC9LxTVV36+vM9GAiBUVZ1IFE0CJjSM3g19t2aCN/gz89gfI0pqvbkMormlqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2844580},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"e4b5c7eed3b793d519aaac8ea088129c7e8446e8","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.4.0_1789455360550_0.7350870335607229","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@jigyasudham/veto","version":"3.5.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.5.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"f07a5885e2106ac2669344491ecb111a7d519420","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.5.0.tgz","fileCount":652,"integrity":"sha512-6PX6xLotQdV2Ay9yhpukHtKhI7kMv1SXR28aUgAWtrJlLJl8BLz9uPhqOGIYhh7BsQTUu6ScdzaosP04RJFYow==","signatures":[{"sig":"MEQCIB5hP4LwEfvFtMB3oLVzlXUG8yzIBBCNGdPyKwpuR0+wAiByipvhIhOC8ttADZHdQbtQZPTm0ThohpDbIgShgZbwcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDX5pxrEF6bV+RFzFyhipe+P2LYdi1p0c6+NcT2yl/swQIgF3xeht0xmEuw8TTszF/4wwQz+d1MndRKmO73ia4X4Zo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3007971},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"f78256f87b3298be088adf4f7bf6b90c7857f15e","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.5.0_1790054591335_0.750557171759479","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@jigyasudham/veto","version":"3.6.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.6.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"b75f86a4c81b3ab8e56b69d61d21cbfd55cdf243","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.6.0.tgz","fileCount":656,"integrity":"sha512-CTW6JfieugLAhB7ry/5JJH8BUtl6TFQENndXXIaWc/djEHABod2IbaHKFHWypW4+u+9KCqZ+ehDTbMjvpf6MNQ==","signatures":[{"sig":"MEUCIQDs9hIMzcsy6zt3lgVcRrXE4CDW/uOWD6YVU8bWrN9YkQIgNy0UgyJMXS8AsO9RCO8MANhITW8D4lLIHszoXGuouuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDA24ZMbjJ5t9Sju3g1r0n371L+VOFTErHxe10awdpWfwIgZJ9pwZtnZGFm0tTF4rp1pz0fScWvgJbnJCNRJfy1GF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3064314},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"gitHead":"e0462450cb440d2dd69398c351fba6ed0f1104ab","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.0.2","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.6.0_1790062234323_0.8672609232814716","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@jigyasudham/veto","version":"3.7.0","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.7.0","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"8afa4bd64569d52b92d674f8caea830fe00a434c","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.7.0.tgz","fileCount":704,"integrity":"sha512-b9Pw9i06H11wkOUdLMn7WCAqv0S0RtsRMIkk+0HsbwniuHktjy5+ZPTcMrn+BYIdyqpblP/WP3baN1mkChLerw==","signatures":[{"sig":"MEQCIBNuUSyEXvH8KA6m/AYjiV+Iuu232a1L+7d+Z5qys639AiA4C93ZTtcnaPp0U3gFbYL35Z14upiV1pi94XarcJfzAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCqhYmAdPw0Crdke7+TgehVHdagSW1zxH0b+4AJQe+6+AIhAOQpkLhF+n+KvjR2M00kmKNwKInEf4B/h25Kagir4xWF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3366890},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"exports":{".":"./dist/server.js","./package.json":"./package.json"},"gitHead":"877838a100c0495221b1b33765b0345608192d33","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.1.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.7.0_1790443829347_0.6069821330442282","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"@jigyasudham/veto","version":"3.7.1","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","_id":"@jigyasudham/veto@3.7.1","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"homepage":"https://github.com/jigyasudham/veto#readme","bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"dist":{"shasum":"16b386ab51dfab7cf54874a988c4f3419b6aa6d8","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.7.1.tgz","fileCount":704,"integrity":"sha512-lyZoGmwqNaQGVOECy4XcUpgG2S6fs+NnD1W2qGK8XvknBKuInuHIZ0+AukNDOuxhJCI7MZ9MCnFfRb87jM4AZg==","signatures":[{"sig":"MEUCIQCehIf00r/VLyq4Y3sYaHry69fLvK3+58BT+KZ9TgJfWgIgP5lv/9VNi0XFsjXKU7vMv/h0yIGaOzSs+vUNJsmEQy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDO6q1R7Lv4EFF4CpAvs6yyBEemHqZSZ+e3PXYcTxCszQIgAil9wy+WLV10G+35U4xUJYvR6k29WWWVvG5VyY05G6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3372620},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"exports":{".":"./dist/server.js","./package.json":"./package.json"},"gitHead":"fb90e22b60510a575b6a4c86e6448a0f45ef1def","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.1.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/veto_3.7.1_1790447250936_0.8673952055036802","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"_id":"@jigyasudham/veto@3.8.0","bin":{"veto":"dist/cli.js","veto-server":"dist/bin/veto-server.js"},"bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"dist":{"shasum":"7049a2ff055c185a264eac9875c6117ffdff81ae","tarball":"https://registry.npmjs.org/@jigyasudham/veto/-/veto-3.8.0.tgz","fileCount":754,"integrity":"sha512-ud7CaAaiXrdMcFcA39wRP+g84kDZsxD2miVdi494jheakLD01sY2U7LG+8O+/IxNPUNZoaRbdv1Drae60y4rDA==","signatures":[{"sig":"MEYCIQDhXc1wMXfJo3ZB48TWAxdbXRb+nYz1fz5LvTWB0pztDAIhAJ9CIm6M0VhMVNKX4eBeHhL8K6wUO3tLxNdRGopVqS4Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBckDgVTfUuhF1KPRSEAFM6HZX0H3TRNQCnIVMykm3nZAiBTCRQXZ3A1PpL1CU4l6Lp2g7pZl5vKHxD+do1KKl1GEA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jigyasudham%2fveto@3.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3538966},"main":"./dist/server.js","name":"@jigyasudham/veto","type":"module","types":"./dist/server.d.ts","author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"engines":{"node":">=22.13.0 <23.0.0 || >=23.4.0"},"exports":{".":"./dist/server.js","./package.json":"./package.json","./contracts/api-v1/*":"./contracts/api-v1/*"},"gitHead":"f0176368ec0e9b18cc759c3d7a5537a4d2cf3062","license":"MIT","mcpName":"io.github.jigyasudham/veto","scripts":{"dev":"tsx src/cli.ts","init":"tsx src/cli.ts init","test":"vitest run","build":"tsc","start":"node dist/server.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"version":"3.8.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95fc4dea-9695-40eb-b02c-b21891622041"}},"homepage":"https://github.com/jigyasudham/veto#readme","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"_npmVersion":"12.1.0","description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","directories":{},"maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.4.3","web-tree-sitter":"^0.26.9","@jigyasudham/veto-model":"1.0.1","@modelcontextprotocol/sdk":"~1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^2.1.9","typescript":"^5.3.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/veto_3.8.0_1790506011427_0.01834374667084715"}}},"time":{"created":"2026-05-01T17:48:04.202Z","modified":"2026-09-27T10:46:51.867Z","0.8.0":"2026-05-01T17:48:04.464Z","0.8.1":"2026-05-01T17:50:19.717Z","0.8.2":"2026-05-01T17:56:57.925Z","0.8.3":"2026-05-01T18:48:11.367Z","1.0.0":"2026-05-02T16:56:21.464Z","1.1.0":"2026-05-03T14:18:53.458Z","1.2.0":"2026-05-03T17:19:03.132Z","1.2.1":"2026-05-04T17:05:59.619Z","1.2.2":"2026-05-06T13:37:23.435Z","1.2.5":"2026-05-07T00:25:57.662Z","1.2.6":"2026-05-07T00:30:13.838Z","1.2.8":"2026-05-07T17:40:32.269Z","1.2.9":"2026-05-07T17:49:38.526Z","1.2.11":"2026-05-09T19:29:32.488Z","1.2.12":"2026-05-10T03:08:57.049Z","1.2.14":"2026-05-12T17:01:58.643Z","1.2.15":"2026-05-14T18:15:55.685Z","1.2.16":"2026-05-14T18:28:24.825Z","1.2.18":"2026-05-16T16:51:19.638Z","1.2.19":"2026-05-16T17:02:47.678Z","1.4.0":"2026-05-17T07:02:58.546Z","1.4.1":"2026-05-20T17:25:47.080Z","1.4.3":"2026-05-20T18:00:25.340Z","1.4.4":"2026-05-20T18:19:49.041Z","2.0.0":"2026-05-23T16:22:27.881Z","2.0.1":"2026-05-23T17:00:03.831Z","2.0.2":"2026-05-27T16:52:50.991Z","2.1.0":"2026-06-05T03:38:08.998Z","2.1.1":"2026-06-06T02:47:33.331Z","2.1.2":"2026-06-06T10:19:40.079Z","2.5.0":"2026-06-18T02:32:39.165Z","2.6.0":"2026-06-28T18:03:45.014Z","2.7.0":"2026-06-30T18:02:04.371Z","2.7.1":"2026-07-01T17:49:06.441Z","2.7.2":"2026-07-01T18:16:42.289Z","2.7.3":"2026-07-02T17:08:52.415Z","2.7.4":"2026-07-04T16:33:11.112Z","2.8.0":"2026-07-05T17:09:22.904Z","2.9.0":"2026-07-10T18:37:44.749Z","3.0.0":"2026-08-07T08:50:43.841Z","3.1.0":"2026-08-12T08:46:27.548Z","3.1.1":"2026-08-20T19:28:07.610Z","3.1.2":"2026-08-20T20:17:26.146Z","3.2.0":"2026-08-22T15:44:02.466Z","3.2.1":"2026-09-09T16:32:44.727Z","3.3.0":"2026-09-12T08:34:07.765Z","3.4.0":"2026-09-15T06:56:00.717Z","3.5.0":"2026-09-22T05:23:11.966Z","3.6.0":"2026-09-22T07:30:34.439Z","3.7.0":"2026-09-26T17:30:29.450Z","3.7.1":"2026-09-26T18:27:31.105Z","3.8.0":"2026-09-27T10:46:51.548Z"},"bugs":{"url":"https://github.com/jigyasudham/veto/issues"},"author":{"name":"Jigyasu Dham","email":"jigyasudham18@gmail.com"},"license":"MIT","homepage":"https://github.com/jigyasudham/veto#readme","keywords":["mcp","ai","claude","antigravity","agents","memory","council","gemini","codex","cursor","windsurf","vscode","self-learning","router","workflow","code-review","agentic"],"repository":{"url":"git+https://github.com/jigyasudham/veto.git","type":"git"},"description":"93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.","maintainers":[{"name":"jigyasudham","email":"jigyasudham18@gmail.com"}],"readme":"# veto\n\n[![npm version](https://img.shields.io/npm/v/@jigyasudham/veto)](https://www.npmjs.com/package/@jigyasudham/veto)\n[![npm downloads](https://img.shields.io/npm/dt/@jigyasudham/veto)](https://www.npmjs.com/package/@jigyasudham/veto)\n[![license](https://img.shields.io/npm/l/@jigyasudham/veto)](https://github.com/jigyasudham/veto/blob/main/LICENSE)\n\n> **93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.**\n\nAn MCP server that runs locally on your machine, plugs into Claude Code, Codex CLI, Gemini CLI, Antigravity CLI, Cursor, Windsurf, Zed, and JetBrains using your existing subscriptions — giving every AI a council of specialist agents, local LLM support, SDD agents, playwright automation, persistent cross-platform memory, a self-learning router that re-tunes its tier thresholds automatically every 20 recorded task outcomes (reviews record outcomes for you; configurable via `auto_apply_learning`), CI/CD gates, workspace discovery, and bidirectional IDE communication.\n\n> **Billing note:** \"Zero cost\" applies to subscription plans (Claude Max, Gemini Advanced, etc.). If you are on API/pay-per-token billing, LLM reasoning done for Veto agents (via the agentic loop or MCP Sampling) counts toward your token usage like any other turn. `veto init` detects API key environment variables and warns you automatically.\n\n---\n\n## Getting Started\n\n```bash\n# 1. Install the CLI — puts the bare `veto` command on your PATH\nnpm i -g @jigyasudham/veto\n\n# 2. Register Veto with every AI client you use (Claude Code, Gemini, Codex, Cursor, …)\nveto init\n```\n\nPrefer not to install anything? Every command also works via npx:\n\n```bash\nnpx -y @jigyasudham/veto@latest init\n```\n\nThe two are independent by design. `veto init` writes MCP configs that launch the server with `npx -y --package @jigyasudham/veto@latest veto-server` — npx re-resolves `@latest` against the registry on every client restart, so the **MCP server auto-updates itself** and a global copy can never pin it to an old version. The **global install only provides the CLI** (`veto doctor`, `veto sessions`, the statusline, …); keep it current with `npm i -g @jigyasudham/veto@latest` when `veto doctor` says it's behind.\n\n---\n\n## How the Agents Work\n\n**No API keys, zero extra cost.** Every worker agent is a deterministic expert module at its core, with two optional layers of LLM reasoning on top — all of it delegated to the AI you're already paying for.\n\n### Default — Deterministic expert modules\nOut of the box, each of the 42 worker agents runs as a hand-written expert module (`plan()` / `analyze()` in `src/agents/`) — **not** an LLM. They always run, work offline, and cost zero tokens. Their depth varies by design: analysis agents (security scanner, secrets, dependency audit, clone detector, privacy, auth, performance, compatibility, …) apply real algorithms — regex/AST detection, OWASP/CWE rules, hash-based clone matching — while planning agents (coder, debugger, tester, …) are structured expert playbooks: curated steps, checklists, and pitfalls for the task category, built to be reasoned over by the AI you already pay for rather than to reason themselves.\n\n### Path A — Agentic loop (most clients: Claude Code, Cursor, Windsurf)\nVeto returns the specialist's role, rubric, and an output contract as an `llm_upgrade` prompt. The host AI reasons as the specialist and passes structured JSON back to complete the operation. This is the primary path — it costs nothing beyond your existing subscription and works on every client.\n\n### Path B — MCP Sampling (clients that support `server.createMessage`)\nWhere Sampling is available, the same upgrade happens server-side without the extra round-trip. Note: the July 2026 MCP spec revision deprecates Sampling protocol-wide (12-month sunset), so the agentic loop (Path A) is Veto's long-term default; Sampling remains a transparent optimization where it exists.\n\nThe 7-agent **Council** is LLM-first — its value is the multi-agent debate — but it too falls back to a deterministic verdict when no LLM path is available. When multiple agents run, they execute in parallel.\n\n---\n\n## Specialist Roles\n\n**49 specialists: 42 deterministic worker agents across 6 domains + a 7-agent Council.** The Council debates trade-offs before you build; the worker agents do the hands-on analysis and planning. Each is a deterministic expert module that can upgrade to LLM reasoning — see [How the Agents Work](#how-the-agents-work). List them anytime with `veto agents`.\n\n**Council (7)**\n`Lead Dev` · `PM` · `Architect` · `UX` · `Devil's Advocate` · `Legal` · `Security`\n\n**Development (12)**\n`Coder` · `Code Reviewer` · `Tester` · `Debugger` · `Refactor` · `Database` · `API` · `Frontend` · `Backend` · `DevOps` · `Performance` · `Migration`\n\n**Security (6)**\n`Security Scanner` · `Auth Agent` · `Data Privacy` · `Secrets Agent` · `Dependency Audit` · `Penetration Tester`\n\n**Memory (5)**\n`Context Manager` · `Decision Logger` · `Project Mapper` · `Pattern Learner` · `Knowledge Base`\n\n**Research (7)**\n`Researcher` · `Tech Advisor` · `Cost Analyzer` · `Competitor Analyzer` · `Risk Assessor` · `Estimator` · `Ethics & Bias`\n\n**Quality (5)**\n`Code Quality` · `Documentation` · `Accessibility` · `Compatibility` · `Error Handling`\n\n**Workflow (7)**\n`Task Planner` · `Task Coordinator` · `File Manager` · `Git Agent` · `Search Agent` · `Reporter` · `Automation`\n\n---\n\n## MCP Tools (93)\n\n| Category | Tools |\n|---|---|\n| **Session** | `veto_status` · `veto_session_save` · `veto_session_restore` · `veto_sessions_list` · `veto_autosave_status` · `veto_session_replay` |\n| **Router** | `veto_route_task` · `veto_rate_status` |\n| **Council** | `veto_council_debate` · `veto_benchmark` · `veto_adr` |\n| **Agents** | `veto_agent_plan` · `veto_execute_parallel` · `veto_explain` · `veto_compose_agents` · `veto_delegate` |\n| **Review** | `veto_code_review` · `veto_security_scan` · `veto_secrets_scan` · `veto_diff_review` · `veto_full_review` · `veto_pr_review` |\n| **Pipelines** | `veto_ci_gate` · `veto_pre_commit` · `veto_new_feature` · `veto_workflow` · `veto_task_parse` |\n| **Advanced** | `veto_local_llm` · `veto_semantic_search` · `veto_sdd_agent` · `veto_playwright` · `veto_notify_ide` |\n| **Quality** | `veto_clone_detector` · `veto_lint_rules` · `veto_api_contract` · `veto_a11y_advisor` · `veto_type_coverage` · `veto_test_gaps` |\n| **Advisors** | `veto_dep_advisor` · `veto_dep_verify` · `veto_query_advisor` · `veto_bundle_advisor` · `veto_dead_code` · `veto_hitl_checkpoint` · `veto_drift_check` |\n| **Watching** | `veto_watch` · `veto_watch_poll` · `veto_watch_stop` |\n| **Memory** | `veto_memory_store` · `veto_memory_search` · `veto_memory_delete` · `veto_decisions` · `veto_project_map_update` · `veto_project_map_get` · `veto_pattern_store` · `veto_patterns_list` · `veto_memory_export` · `veto_memory_import` |\n| **Learning** | `veto_record_outcome` · `veto_learning_stats` · `veto_learning_apply` |\n| **Handoff** | `veto_handoff` · `veto_continue` · `veto_platform_setup` |\n| **Observability** | `veto_usage_status` · `veto_audit_log` · `veto_health` · `veto_metrics` · `veto_snapshot` |\n| **Discover** | `veto_discover` · `veto_summarize` · `veto_git_blame` · `veto_changelog` · `veto_onboard` · `veto_debt_register` |\n| **DevTools** | `veto_docs_fetch` · `veto_context_status` · `veto_openapi_gen` · `veto_flag_auditor` · `veto_env_setup` · `veto_commit_message` · `veto_pr_description` · `veto_pr_post` · `veto_prompt_optimizer` · `veto_sre_advisor` · `veto_diagram` · `veto_rca` · `veto_doc_gen` · `veto_postmortem` · `veto_release_notes` · `veto_translate` · `veto_merge_conflict` |\n| **Plugins** | `veto_plugins` |\n\n## Compact Mode — 93 tools without the context tax\n\n93 tool schemas cost a client ~20K context tokens before the user types a word. Compact mode advertises a surface that is **5–6× smaller**: seven core tools (`veto_status`, `veto_session_save`, `veto_session_restore`, `veto_route_task`, `veto_council_debate`, `veto_memory_search`, `veto_record_outcome`) plus two meta-tools — `veto_find_tools` searches the full catalog by keyword and returns matching schemas on demand; `veto_call` invokes any catalog tool by name. Every tool remains directly callable in both modes; compact only changes what is advertised up front.\n\nEnable it with `VETO_COMPACT=1` in your MCP server config env, or `\"compact_tools\": true` in `~/.veto/config.json`:\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"veto\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"--package\", \"@jigyasudham/veto@latest\", \"veto-server\"],\n      \"env\": { \"VETO_COMPACT\": \"1\" }\n    }\n  }\n}\n```\n\n## Dependency-Hallucination Guard\n\nLLMs propose plausible-but-nonexistent package names, and adversaries register those names on public registries (slopsquatting) — a supply-chain attack class with no pre-install check in most AI workflows. `veto_dep_verify` checks every proposed package against the live registry **before** you install:\n\n```\nveto_dep_verify { packages: [\"axios\", \"axois\", \"left-padd\"], ecosystem: \"npm\" }\n→ axios      verified    (14 years old, 40M downloads/month)\n→ axois      HIGH_RISK   (1 edit from \"axios\" — possible typosquat)\n→ left-padd  NOT_FOUND   (likely hallucinated — do NOT retry the install later:\n                          nonexistent AI-suggested names are prime slopsquat targets)\n```\n\nSignals per package: registry existence, age, monthly downloads, version history, deprecation, and typo-distance from popular packages. Supports npm, PyPI, and crates.io. Network failures return `unverifiable` — never silently safe.\n\n## Decision-Drift Enforcement\n\nAI assistants forget architectural decisions and re-litigate them sessions later — the most common complaint about long-running AI projects. Veto's memory doesn't just store decisions; it **enforces** them. Record a decision once as a machine-checkable constraint:\n\n```\nveto_decisions {\n  action: \"add\",\n  rule: \"We use Postgres — no Mongo\",\n  why: \"Decided 2026-05: relational data, team expertise\",\n  forbidden_patterns: [\"mongoose\", \"mongodb\"],\n  severity: \"block\"\n}\n```\n\nFrom then on, `veto_diff_review` and `veto_ci_gate` automatically fail any diff whose **added lines** match a forbidden pattern — when an AI quietly adds `mongoose` to the imports three sessions later, the review fails with the rule and the rationale attached. Patterns are case-insensitive regexes (with substring fallback), optionally scoped to a file glob (`src/**/*.ts`), per-project or global, severity `block` or `warn`. Manage with `action: list / check / disable / enable`.\n\nYou don't have to remember to do this. When a council verdict (the LLM-backed one) or an ADR settles something, its result carries a one-time `constraint_invitation`: your AI asks you once whether it should become a rule, and passes your answer back as `add` or `decline` with the `invitation_id`. It never asks twice about the same verdict. `action: list` shows how many invitations were offered, accepted and declined; that count stays on your machine.\n\nA rule can't stall your reviews. `add` refuses a pattern that could hang the check: one over 200 characters, or a repeated group that itself repeats, like `(a+)+`. Every check is also time-boxed, so a slow rule turns into a warning instead of blocking `veto_ci_gate`.\n\n## Compounding-Error Circuit Breaker\n\nAgents fail silently in loops — retrying the same broken call, re-hitting the same error, thrashing between two tools — and burn a whole session before anyone notices. `veto_drift_check` scans the recent tool-call trace for that pattern mid-flight and trips a breaker before the spiral compounds:\n\n```\nveto_drift_check\n→ DRIFT DETECTED\n  • 4 consecutive failed calls (veto_diff_review)\n  • same error repeated 3× (\"no diff provided\")\n  • tool veto_route_task called 6× in a row\n→ remediation (debugger agent): stop retrying; the diff is empty —\n  point at a project_dir with uncommitted changes or pass `diff` explicitly.\n```\n\nIt looks for three drift signals — consecutive failures, duplicate error messages, and single-tool repetition — and when any trips, it runs the `debugger` agent over the trace for a concrete recovery step instead of letting the loop continue. Call it as a periodic checkpoint in long agentic runs.\n\n## Which tool do I use?\n\nSeveral tools overlap by design (different granularity or entry point). Quick guide:\n\n**Reviewing code**\n\n| You have… | Use | Note |\n|---|---|---|\n| A snippet or single file in hand | `veto_code_review` | not `veto_diff_review`, which reads a git diff |\n| Uncommitted/changed files (git diff) | `veto_diff_review` | code + security + secrets scans in parallel |\n| To gate a commit (hard-block on secrets) | `veto_pre_commit` | tuned for commit-time |\n| To gate CI (exit code + pass/warn/fail) | `veto_ci_gate` | for GitHub Actions / GitLab CI |\n| A deeper pre-merge/pre-ship pass (+ quality) | `veto_full_review` | richer than `veto_diff_review` |\n| A GitHub PR by number/URL | `veto_pr_review` | fetches the diff, returns postable comments |\n\n**Remembering things**\n\n| Want to… | Use |\n|---|---|\n| Save/recall a solution, decision, or reference | `veto_memory_store` / `veto_memory_search` |\n| Track a recurring code convention | `veto_pattern_store` / `veto_patterns_list` |\n| Navigate the codebase without scanning the filesystem | `veto_project_map_get` (refresh via `veto_project_map_update`) |\n\n**Running multi-step work**\n\n| Want to… | Use |\n|---|---|\n| Run several agents at once on one task | `veto_execute_parallel` |\n| Run a sequential pipeline with pass/fail gates | `veto_workflow` |\n| Turn a PRD / plain English into a task DAG | `veto_task_parse` (feeds `veto_workflow`) |\n| Plan a new feature end-to-end (council → plan → tasks) | `veto_new_feature` |\n\n**Sessions**\n\n| Want to… | Use |\n|---|---|\n| Resume work with full saved context | `veto_session_restore` (or `veto_continue` for the latest) |\n| See the event / tool-call timeline of a session | `veto_session_replay` |\n| Move work to another AI tool | `veto_handoff` → `veto_continue` |\n\n## MCP Resources\n\n| URI | What it returns |\n|---|---|\n| `veto://sessions` | All saved sessions across platforms |\n| `veto://project-map?dir=<path>` | Stored project structure map |\n| `veto://memory?q=<query>` | Knowledge base search results |\n| `veto://patterns` | Learned coding patterns |\n\n## MCP Prompts\n\n| Prompt | What it does |\n|---|---|\n| `code-review` | Full code review — paste code, get scored findings |\n| `security-audit` | OWASP Top 10 scan with CWE references |\n| `deploy-checklist` | Council reviews your deployment plan before you ship |\n| `explain-file` | Expert explanation of any file, auto-routed by type |\n\n---\n\n## CLI Commands\n\nThese work standalone in any terminal — no AI client needed. The bare `veto` command comes from the global install (`npm i -g @jigyasudham/veto`, see [Getting Started](#getting-started)); without it, prefix any command with `npx -y @jigyasudham/veto@latest`.\n\n```bash\nveto init                        # Register Veto with every AI app found + scan project\nveto doctor                      # Per app: does it list Veto, does Veto start, has the app started it?\nveto doctor --quick              # Same, without launching the server to test it\nveto doctor --fix                # Also move aside old Veto guides left in Codex/Gemini files\nveto status                      # Version, DB path, session/memory/outcome counts\nveto version                     # Alias for veto status\nveto sessions [words]            # Newest 20 saved sessions, and how many exist ([auto] = auto-save)\nveto sessions --all | --limit N  # All of them, or N; add --json for machine output\nveto sessions --clean            # Remove auto-saves older than 7 days\nveto continue <id> --as <client> # Restore a session from a terminal (8-character id prefix is enough) —\n                                 #   the same code as veto_continue, for an app that did not load Veto\nveto memory [query]              # Search knowledge base (blank = all entries)\nveto patterns [prefix]           # List learned agent/routing patterns\nveto tools [filter]              # List all 93 MCP tools (--json for machine output)\nveto agents [filter]             # List all 49 specialists — workers + council (--json)\nveto routing [status|log|reset]  # Inspect the opt-in routing feedback loop\nveto transcripts <sub>           # Opt-in transcript capture (off by default) —\n                                 #   enable|status|sources|list|show|purge|disable\nveto lessons <sub>               # Opt-in note sharing between your AIs (off by default) —\n                                 #   on|status|list|why|forget|flows|off|exclude|include|alias|recheck\nveto statusline <sub>            # Veto line under the Claude Code prompt, or beside\n                                 #   Codex/Gemini — install|status|print|watch|uninstall\nveto api <command>               # JSON for editor extensions — version|snapshot|recall search|\n                                 #   recall expand|diagnostics (see \"For editor extensions\" below)\nveto hook install                # Install pre-commit secrets scan hook\nveto hook remove                 # Remove the veto pre-commit hook\nveto check                       # Scan staged changes for secrets (used by hook)\nveto help                        # Commands + MCP tools reference\nveto help --troubleshoot         # Full troubleshooting guide\n```\n\n### `veto doctor`\n\n```\nveto doctor\n\n  Veto Doctor — system health check\n  ─────────────────────────────────────────────────────\n  ✓ Node.js v22.13.0 (this terminal)\n  ✓ ~/.veto exists\n  ✓ Database ~/.veto/veto.db\n    17 sessions · 12 memories · 3 patterns\n\n  AI apps — registration · launch test · last start\n  ─────────────────────────────────────────────────────\n  ✓ Claude Code — connected\n      source: claude mcp list\n      launch test: answered in 1.2 s — Veto 3.7.0, 93 tools\n      last started by claude-code 2.1.0 3 h ago — Veto 3.7.0, Node v22.13.0\n  ✗ Antigravity — Veto is only in ~/.gemini/antigravity-cli/mcp_config.json, a file Antigravity no longer reads\n      fix: veto init   (then fully restart the app)\n  · Gemini CLI — not installed\n\n  Fallback guidance — what an AI is told when Veto did not load\n  ─────────────────────────────────────────────────────\n  ✓ ~/.claude/skills/veto/SKILL.md\n\n  ⚠  1 issue found. Each has its fix above.\n```\n\nEvery ✓ says what it rests on. **Registration** is what the app's own `mcp list` reports (or the file the app reads, when its CLI is not on PATH). The **launch test** runs the exact configured command and completes the MCP handshake, which catches npx failing to reach the registry and a server that exits on start. **Last started** comes from the server itself: each time an app starts Veto, it records which app, which Node, and whether SQLite loaded in that app's runtime (`~/.veto/host-starts.json`). That is the only check that sees a GUI app launching Veto with a different Node than your terminal. `veto doctor` exits with status 1 when it finds an issue, so scripts can rely on it.\n\n**When an AI's app did not load Veto,** Veto's `veto` skill (written by `veto init` into Claude Code, Codex and Antigravity/Gemini skill folders) tells it to say so and use `veto continue` / `veto sessions` / `veto doctor` instead of reading Veto's database by hand.\n\nVersions of `veto init` before this release wrote Veto's guide over `~/.gemini/GEMINI.md` (Gemini's own memory file) and into `~/.codex/AGENTS.override.md`, which Codex reads *instead of* your `~/.codex/AGENTS.md`. Current versions never write either file. `veto doctor` reports any copy left behind, and `veto doctor --fix` (or `veto init`) renames a copy to `*.veto-backup` — only when the file is exactly a guide Veto shipped. A file with anything else in it, such as memories Gemini saved below the guide, is reported and never touched. What an old init overwrote cannot be recovered.\n\n### For editor extensions: `veto api`\n\nAn extension that shows Veto's state reads it through `veto api`, not by opening Veto's databases. Every response is one JSON envelope on stdout (`contract`, `command`, `backend_version`, `state`, and `message` / `next_action` whenever `state` is not `ok`). Its shape is versioned apart from Veto. Within contract 1, fields are only added, so ignore fields you do not know.\n\n| Command | Request | Returns |\n|---|---|---|\n| `version` | — | contract version, commands, the CLI's path, whether SQLite loads |\n| `snapshot` | `{ project, db? }` | capture state, archive counts for the project, lesson sharing and counts, the trial's progress. Read-only, and returns counts rather than paths |\n| `recall search` | `{ project, query, limit?, source?, db? }` | masked hits from that project's archived chats, and the matching chats' segments |\n| `recall expand` | `{ project, event_id }` or `{ project, archive_id, segment_index }` | masked text of one turn or segment, only if it belongs to that project |\n| `diagnostics` | `{ checks?: [\"host_cli\", \"probe\"], db? }` | `veto doctor`'s per-app checks. The slow ones run only when named |\n\nSend the request as JSON on stdin, and start the CLI with an argument array and no shell: `execFile(process.execPath, [cliPath, 'api', 'recall', 'search', '--stdin'])`, where `cliPath` comes from `veto api version`. On Windows, `veto` is a `.cmd` shim that only a shell can start, and passing a search query through a shell turns it into a command line. A `project` is always required, and a `db` other than the one Veto uses is refused with `db_mismatch` rather than answered from the wrong database. Archives kept after capture is turned off can still be searched, and each response says what state capture is in. `veto transcripts purge` is what deletes them. The JSON Schemas and example responses ship in the package under `contracts/api-v1/`.\n\n### `veto statusline`\n\nIn Claude Code, `veto statusline install` adds a Veto line under the prompt: the latest council verdict, router confidence, live context and rate-limit use, and memory size. While [note sharing](#notes-shared-between-your-ais-opt-in-trial) is on, it also shows how many notes Veto holds (`notes 178`); with sharing off, that count is left out rather than shown as zero.\n\nCodex and Gemini cannot run a custom status line — each only shows its own built-in items (Codex: [openai/codex#20244](https://github.com/openai/codex/issues/20244)). So there, the same line runs in a small split pane beside the AI and follows its session in the current folder:\n\n```bash\nveto statusline watch                    # follows whichever AI is working in this folder\nveto statusline watch --client=codex     # or pin one: claude | codex | gemini\nveto statusline install --client=codex   # prints the split-pane setup for your terminal; writes nothing\n```\n\nFor Codex it reads context and rate-limit use from Codex's own session file; Gemini records no usage figures, so its line shows the live session without gauges. `veto statusline print --client=codex` prints one line, for a tmux status bar or a script.\n\n---\n\n## Council Debate\n\nTwo-phase flow — works on Claude Code, Gemini CLI, Antigravity CLI, and Codex CLI with no API keys:\n\n```\n# Phase 1 — call with task, get instant deterministic result + LLM upgrade prompt\nveto_council_debate {\n  task: \"migrate auth from sessions to JWTs\",\n  project_dir: \"/your/project\",\n  strictness: \"standard\"\n}\n→ {\n    llm_backed: false,\n    final_verdict: \"YELLOW\",\n    votes: { lead_dev: {...}, architect: {...}, security: {...}, ... },\n    llm_upgrade: {\n      available: true,\n      instruction: \"Read debate_prompt, reason as all 7 agents, call again with agent_responses\",\n      debate_prompt: \"You are running a Veto Council debate. Analyze the task as each specialist...\"\n    }\n  }\n\n# Phase 2 — reason as all 7 agents, pass responses back → get LLM-backed verdict\nveto_council_debate {\n  task: \"migrate auth from sessions to JWTs\",\n  agent_responses: {\n    lead_dev:  { verdict: \"warn\",    reason: \"Stateless JWTs complicate logout — need blocklist\", concerns: [\"Refresh token rotation must be atomic\"], recommendation: \"Use short-lived access tokens (15m) + httpOnly refresh tokens\" },\n    pm:        { verdict: \"approve\", reason: \"JWT migration unblocks mobile clients\", concerns: [], recommendation: \"Ship behind a feature flag, roll back if logout issues\" },\n    architect: { verdict: \"approve\", reason: \"Good fit for stateless microservice boundary\", concerns: [\"Clock skew can break expiry across services\"], recommendation: \"Add NTP sync check; use relative expiry not absolute timestamps\" },\n    ux:        { verdict: \"approve\", reason: \"No user-visible change if migration is seamless\", concerns: [], recommendation: \"Silent migration — no logout required for existing sessions\" },\n    devil:     { verdict: \"warn\",    reason: \"What if the refresh token store goes down at 2AM?\", concerns: [\"Redis outage = all users logged out\"], recommendation: \"Fallback to session auth if Redis is down; use short rotation window\" },\n    legal:     { verdict: \"approve\", reason: \"JWTs are industry standard, no new compliance risk\", concerns: [], recommendation: \"Document token storage in privacy policy\" },\n    security:  { verdict: \"warn\",    reason: \"Refresh token rotation must be atomic — TOCTOU risk\", concerns: [\"localStorage storage of access token is XSS-vulnerable\"], recommendation: \"Store access token in memory only; refresh token in httpOnly Secure SameSite=Strict cookie\" }\n  }\n}\n→ {\n    llm_backed: true,\n    final_verdict: \"YELLOW\",\n    warnings: [\"Refresh token rotation must be atomic...\", \"What if the refresh token store goes down...\"],\n    recommended: \"Proceed with JWT. Use httpOnly cookies for refresh tokens, memory-only for access tokens...\"\n  }\n```\n\n### Council `strictness`\n\n```\nveto_council_debate { task: \"...\", strictness: \"fast\" }     # 3 agents, instant\nveto_council_debate { task: \"...\", strictness: \"standard\" } # 7 agents, default\nveto_council_debate { task: \"...\", strictness: \"strict\" }   # 7 + devil rebuttal\n```\n\n---\n\n## Session Tagging + Search\n\n```\nveto_session_save {\n  auto_summarize: true,\n  tags: [\"auth\", \"jwt\", \"middleware\"]\n}\n\nveto_sessions_list { query: \"auth\" }\n→ sessions matching \"auth\" in summary, context, tags, or project_dir\n```\n\nToken usage is manually reported — pass `token_count` to `veto_status` or `veto_session_save` and Veto stores it per platform per day. `veto_rate_status` shows what you've reported; nothing is counted automatically.\n\n---\n\n## Workspace Discovery\n\n```\nveto_discover { \"project_dir\": \"/your/project\" }\n→ {\n    git:        { branch: \"main\", commit: \"a3f2b1\", dirty_files: [], recent_commits: [...] },\n    ecosystems: { node: \"my-app v2.1.0\" },\n    tech_stack: [\"TypeScript\", \"React\", \"Prisma\"],\n    key_files:  [\"tsconfig.json\", \"prisma/schema.prisma\", \".env.example\"],\n    total_files: 142\n  }\n```\n\n---\n\n## Diff Review\n\n```\nveto_diff_review { project_dir: \"/your/project\" }\n→ {\n    verdict: \"warn\",\n    files_changed: 4,\n    code_review: { score: 78, critical: 0, high: 2, findings: [...] },\n    security:    { score: 91, critical: 0, high: 0, findings: [...] },\n    secrets:     { findings: [] },\n    summary: \"⚠️  WARN — 4 file(s) changed...\"\n  }\n```\n\n---\n\n## Sequential Pipelines\n\n```\nveto_workflow {\n  steps: [\n    { id: \"code\",     agent: \"coder\",           task: \"implement auth middleware\", gate: 70 },\n    { id: \"review\",   agent: \"reviewer\",         task: \"review the implementation\", gate: 75 },\n    { id: \"security\", agent: \"security-scanner\", task: \"scan for vulnerabilities\",  gate: 80 },\n    { id: \"test\",     agent: \"tester\",           task: \"write test cases\" }\n  ],\n  project_dir: \"/your/project\"\n}\n→ { verdict: \"passed\", steps_passed: 4, steps_failed: 0, results: [...] }\n```\n\n---\n\n## Self-Learning Router\n\nEvery agent tool auto-records a quality signal when it completes. After any working session, `veto_learning_stats` shows live data and `veto_learning_apply` adjusts tier thresholds automatically after ~20 calls.\n\nThe loop also feeds itself **implicitly**: `veto_learning_stats` mines the tool-call trace for signals nobody recorded manually — an agent-backed tool that returned an error, or the same analysis tool re-run within minutes in one session (which usually means the first answer didn't satisfy) — and records them as low-quality outcomes automatically.\n\n```bash\nveto_route_task { task: \"debug auth issue\", file_ext: \".ts\" }\n→ { ..., recommended_agent: \"debugger\" }   # ← predicted from history\n```\n\n---\n\n## Plugin System\n\n```js\n// ~/.veto/agents/my-agent.js\nexport function plan(task, context) {\n  return {\n    agent: 'my-agent', task, tier: 2,\n    approach: 'Your custom approach...',\n    steps: ['Step 1', 'Step 2'],\n    checklist: ['[ ] Check 1'],\n    pitfalls: ['Pitfall 1'],\n    patterns: ['Pattern 1'],\n    duration_estimate: '1-2 hours',\n  };\n}\n```\n\n---\n\n## Cross-Platform Handoff\n\n```\nClaude at 90%  →  veto_handoff { summary, context }\nOpen Gemini    →  veto_continue { resuming_as: \"gemini\" }\nFull context restored. Continue exactly where you stopped.\n```\n\nPlatform switching is manual — Veto surfaces which platform has budget remaining via `veto_rate_status`, you decide when to switch.\n\n| Platform | Support |\n|---|---|\n| Claude Code | ✅ Native MCP |\n| Gemini CLI | ✅ MCP support |\n| Antigravity CLI | ✅ MCP support |\n| Codex CLI | ✅ MCP support |\n| Cursor | ✅ MCP support |\n| Windsurf | ✅ MCP support |\n| Zed | ✅ MCP support (`context_servers`) |\n\n---\n\n## Session Transcript Capture (opt-in)\n\n`veto_session_save` writes a ~1k-token summary. That is enough to resume, but not enough to answer *\"three weeks ago, what exactly did we conclude, and when?\"* Transcript capture keeps the detail a summary throws away and makes it searchable — with no API keys, no per-query cost, and nothing leaving your machine. It is a metadata table-of-contents plus a portable BM25 index built on core SQLite only — no FTS5, so it works on every supported Node — fused with local semantic search, and your AI as the reranker.\n\n> ### ⚠️ Read this before you enable it\n>\n> **Veto copies your AI client's own conversation memory.** On save, Veto archives a byte-for-byte copy of the host CLI's transcript file — every message you sent, every reply, and all tool activity — into its own local store.\n>\n> - **The copy is independent.** The original file is never modified, but Veto's copy outlives it. Clearing your AI client's history, or the client rotating its own logs, will **not** remove the archive. Only `veto transcripts purge` or the retention window does.\n> - **It inherits whatever was in the session.** Secrets, customer data, third parties' information — if you pasted it, it is in the archive. Detected secrets are masked everywhere an AI can read them, but the raw archive on disk is private data. Treat it like your shell history.\n> - **Local only.** Nothing is uploaded or shared. The archive directory deliberately avoids cloud-synced folders, and a sync path is flagged if one is detected.\n> - **Off until you say so.** Capture is disabled by default. `veto transcripts enable` prints this disclosure in full and records versioned consent; if the disclosure materially changes, you are re-prompted.\n\n```bash\nveto transcripts enable          # Opt in — prints what/where/retention, records consent\nveto transcripts status          # State, archive dir, retention, disk usage\nveto transcripts sources         # Per-CLI: where sessions live + what Veto can see\nveto transcripts list            # Archived sessions\nveto transcripts show <id>       # One session's table-of-contents + facts (any AI's session id)\nveto transcripts purge <id>      # Delete an archive (also --project=<dir> | --all; --source=codex to narrow)\nveto transcripts disable         # Stop capturing (existing archives are kept)\n```\n\n### Works in Claude Code, Codex CLI, Gemini CLI and Antigravity CLI\n\nAll four are captured and recalled through the same pipeline, each with its own\nformat adapter, and **Veto works out which one it is running in by itself** — the\nMCP handshake names the host, so nothing depends on the AI reporting it correctly.\nVeto finds each host's session files on disk at save time (Claude Code's statusline,\nwhen installed, also reports its session live). A project folder matches however a\nhost spells it — Gemini records `d:\\veto` for the folder a save calls `D:\\Veto`.\nAntigravity's conversations are matched to a project through Antigravity's own\nconversation index, which Veto opens read-only.\n`veto transcripts sources` shows exactly what it can see for each, and when a save\narchives nothing, its response says why.\n\nEach adapter was written against real transcripts rather than docs, which is how\ntwo format traps got handled: Codex records every message on two parallel\nstreams, and Gemini's chat log appends a fresh copy of a message each time it\ngrows. Both would otherwise put several copies of the same message into the\nindex.\n\n\nRecall runs through `veto_session_replay` as a two-call loop — search, then expand:\n\n```\n{ query: \"npm E404 publish\" }   →  table-of-contents + top hits with snippets\n{ expand: { event_id: 412 } }   →  the exact lines, masked, with a turn + timestamp citation\n```\n\n### Past sessions, used without asking\n\nRecall only helps if an AI thinks to reach for it, and mostly it did not. So the\ntools where history changes the answer bring it along themselves, from every\narchived chat — whichever AI it happened in:\n\n- **`veto_continue` / `veto_session_restore`** list the chats behind the saved\n  session (for example a Codex chat and two Claude Code chats) and what was asked\n  last in each.\n- **`veto_memory_search`** returns matching excerpts from past chats beside stored\n  memory.\n- **Every prompt Veto hands a model** — agent tools and the council — carries up to\n  three relevant excerpts.\n\nAn excerpt is attached only when it is conversation (not a tool payload) and shares\nat least two words with the question; nothing is attached while capture is off.\nExcerpts are labelled as historical data, not instructions, and the deterministic\nanalyzers never receive them, so an old excerpt cannot become a finding.\n\n### Semantic recall — finding what you can't quite remember\n\nKeyword search fails on the question you actually have. You remember *what was\ndecided*, not the words it was written in — so \"why did the upload fail\" never\nfinds the note that says \"the credentials had expired\".\n\nVeto searches meaning as well as words. Each captured event is split into\noverlapping windows and embedded locally; a query is embedded the same way, and\nthe two rankings — keywords and meaning — are fused so neither can bury the\nother. An exact identifier like `E404` still ranks first, and a question sharing\nno vocabulary with its answer still finds it.\n\n**This runs entirely on your machine.** No API key, no per-query cost, no text\nleaving the disk, and it works offline. What buys that is a **7 MB embedding\ntable** installed as a normal dependency:\n\n- It is **downloaded once per machine** by npm's shared cache, not per project.\n- It ships with Veto whether or not you enable transcript capture. That is the\n  honest cost of the design: pinning an immutable package means the bytes can\n  never change under a released version, and it removes the runtime download,\n  checksum and mirror machinery that a fetch-on-demand model would need.\n- It is loaded **lazily, at the first semantic query — never at startup.** If it\n  is missing or damaged, search silently falls back to keywords only and Veto\n  keeps working.\n\nThe table is [potion-base-8M](https://huggingface.co/minishlab/potion-base-8M)\nby [Minish Lab](https://github.com/MinishLab/model2vec) (MIT), distilled from\n`baai/bge-base-en-v1.5` and repacked to int8. It is a static lookup table, not a\nneural network: there is no model running at query time, which is why a search\ncosts milliseconds. The inference code is Veto's own.\n\n## Notes Shared Between Your AIs (opt-in, trial)\n\nClaude, Codex and Gemini each keep notes in their own memory: Claude's per-project memory folders, `~/.codex/AGENTS.md`, `~/.gemini/GEMINI.md`. Each AI learns something, and the others never hear of it; the same lesson gets learned twice in two projects. Veto reads those notes and can share them where they help: **across your projects**, and **between your AIs**.\n\n> ### ⚠️ What turning it on means\n>\n> - **Across your projects:** a note about you or this computer, written while you worked on one project, can be shared into your others.\n> - **Between AIs:** a note Claude wrote can reach Codex and Gemini, and the other way round. A note given to an AI goes to that AI's company as part of your conversation, like anything else you send it.\n> - **Read-only.** Veto never changes or deletes an AI's memory files. It keeps a copy of each note in its own local database, with email addresses, your home folder and anything that looks like a password or key removed first. Veto itself uploads nothing.\n> - **Off until you say so, and only you can say so.** `veto lessons on` shows this disclosure and asks you to type `yes` in a terminal of your own. When an AI runs the command, it is refused, so no AI can switch sharing on for you. No upgrade ever turns it on, and if what sharing does materially changes, you are asked again.\n> - **A trial for now.** Veto gives none of the notes to any AI yet. To find out whether they would help, it reads the first message of each Codex session in your projects, from Codex's own session files, even when Veto took no part in the session. It works out which notes it *would* have given, and keeps only that choice. It never keeps your message and sends nothing anywhere. This runs for 8 weeks or 20 Codex sessions, whichever comes first; see [The trial](#the-trial). Before it starts giving notes to your AIs, Veto will ask you again.\n\nMost notes never leave their project. A note stays home if it is about that project, or if it contains a command, a web address, a credential or an instruction to fetch, send or run something; notes about secrets or personal details never leave their project at all. Only a note about *you* (Claude's `user` and `feedback` notes, a CLI's global instructions) or about *this computer* (its shell, console or network) may travel. A shared note arrives marked as information from another AI session, never as an instruction.\n\n```bash\nveto lessons on                  # Read the disclosure; type yes to accept (your own terminal only)\nveto lessons                     # Status: notes found, how many may travel, anything switched off, and the trial so far\nveto lessons list                # Every note Veto has read, by project (--shared, --held, --scope=, --source=, --json)\nveto lessons why <id>            # One note: who wrote it, when, why it stays or travels, where it may go\nveto lessons flows               # Where each AI's notes may go, per project\nveto lessons forget <id>         # Stop one note for good, with its copies in your other checkouts\nveto lessons exclude [dir]       # Keep a project out entirely: nothing leaves it, nothing enters it\nveto lessons include [dir]       # Undo exclude: the project's notes are read again\nveto lessons alias               # Memory on a drive that isn't plugged in: suggests the command that links it\nveto lessons recheck <ai>        # Read an AI's memory again after Veto stopped because its format changed\nveto lessons off                 # Turn sharing off and delete everything Veto copied, trial records included\n```\n\n### Picked up when you save\n\nWith sharing on, every `veto_session_save` also re-reads each AI's memory and records what changed, so a note an AI wrote today is picked up without you running anything. A file that has not changed costs one check of its size and date, which adds about 20 ms to a save. The pass is capped at 150 ms a save, anything it does not reach waits for the next save, and it can never cause a save to fail. Turning sharing on reads everything once, up front, and `veto lessons` commands always check every file. To stop only the save-time pass, set `lessons.harvest_on_save` to `false` in `~/.veto/config.json`.\n\n### The trial\n\nBefore Veto gives any AI a note, it has to show that the notes it would give are real and useful. The trial is how: it records what Veto *would* have given, and gives nothing.\n\n- **When it runs:** from the moment you accept, for 8 weeks or 20 Codex sessions, whichever comes first.\n- **What counts:** Codex sessions in a project that has notes to choose from. A session's first request is matched against the notes Veto held when that session began, so a note that arrived or changed later does not count. A subagent is not counted twice. Claude Code sessions are not part of this trial: Claude already loads its own project's notes, which leaves almost nothing to add.\n- **What you do:** use Codex for real work in a project that has notes, and start each session with a proper description of the task, since that is what notes are matched against.\n- **What you see:** `veto lessons` shows the trial as it goes. It also warns if several sessions in a row yield no request at all, which most likely means Codex changed its format rather than that no note fitted.\n\n  ```\n  Trial:        day 12 of 56 · 7 of 20 Codex sessions counted\n                4 with notes chosen · 3 with none that fitted · 2 in projects with no notes to give\n  ```\n\n- **Your record stays yours:** it stays on your machine, and Veto collects nothing from it. This release has no command that judges it, so nothing looks at it but you. If transcript capture is on, finished trial sessions are archived too, including Codex sessions you never saved with Veto, so the evidence behind each choice is kept.\n- **What decides delivery:** the trial on the Veto author's own machine, under rules written and sealed before it recorded anything. When it ends, an independent AI judge scores each chosen note against what its session went on to do, once. If the notes are not clearly real and useful, delivery does not ship. If they are, delivery can be designed, and Veto will ask every user for consent again before any note reaches an AI.\n\n### Upgrading from 3.5.0\n\n3.6.0 asks for your consent again, because 3.5.0's text said Veto worked out nothing about which notes it would give, and the trial does exactly that. Until you run `veto lessons on` in your own terminal and accept, sharing is paused: nothing is read, harvest-on-save stops, and the trial does not start. The notes Veto already holds are kept.\n\n---\n\n## Release Notes\n\n### 3.8.0\n- **New: `veto api`, JSON for editor extensions.** The VS Code extension could show Veto's database but not whether transcript capture was on, what the notes trial had found, or anything from past chats, so it had to say \"unknown\". `veto api snapshot` reports capture, lessons and trial state for a project. It reads without changing anything: it uses read-only connections, runs no migration, harvest or trial pass, and returns counts rather than your folders. `veto api recall search` and `recall expand` give the same search as `veto_session_replay`, with the scope an editor needs checked by Veto. A project is required, an event or segment from another project is refused, text is masked, and raw source is never returned. `veto api diagnostics` returns `veto doctor`'s per-app checks as data. Requests go in as JSON on stdin, so search text never passes through a shell. The contract is versioned apart from Veto, and its JSON Schemas and examples ship under `contracts/api-v1/`. See [For editor extensions](#for-editor-extensions-veto-api).\n- **Bug fix: `veto continue` and `veto sessions` failed inside Codex's sandbox.** When Veto's tools did not load in Codex, the `veto` skill correctly sent Codex to `veto continue`, but Codex's default sandbox lets a command write only inside the workspace, and Veto wrote to its database every time it opened it, even to read. Both commands stopped with `attempt to write a readonly database`. They now fall back to reading the database without writing. `veto continue` still returns the whole saved session and says what it could not do: record who resumed it, and add past-session excerpts. Tested in Codex's own sandbox (`codex sandbox`), where 3.7.1 fails and 3.8.0 restores the session.\n- **Bug fix: Antigravity chats were not captured.** With transcript capture on, a save made in Antigravity archived nothing, because Veto could not read Antigravity's chats. It now reads them from `~/.gemini/antigravity-cli/brain/<conversation>/`, finds each conversation's project in Antigravity's own conversation index (opened read-only), and skips conversations started by another conversation and those from the Antigravity editor. Antigravity chats are searched and expanded like the others, `veto transcripts sources` lists them, and `veto doctor` checks that their capture keeps up. This is covered by the capture consent you already gave, which never named particular apps.\n\n### 3.7.1\n- **Bug fix: Veto did not know it was running in Antigravity.** Antigravity names itself `antigravity-client` when it starts Veto, which Veto did not recognise. A session saved there was labelled `claude` unless the model said otherwise, a session resumed there was not recorded as resumed by Antigravity, and a model that described itself as `gemini` made transcript capture archive a Gemini CLI chat, which is another app's conversation. Antigravity is now recognised as its own app. Saves and resumes are labelled `antigravity`, capture skips it (Veto cannot read Antigravity's chats), and `antigravity` is an accepted value wherever a tool asks which app you are in. `veto_health` reports the app too.\n- **Bug fix: Antigravity never saw the `veto` skill.** 3.7.0 wrote it to `~/.gemini/skills`, a folder Antigravity does not read, so with Veto's tools missing it still got no guidance. It now goes to `~/.gemini/config/skills`, where Antigravity lists it. Tested with Veto switched off: Antigravity read the skill, said Veto's tools were not loaded, and ran `veto continue` instead of searching the disk. Run `veto init` after updating to install it there.\n\n### 3.7.0\n- **Bug fix: Antigravity never loaded Veto.** Antigravity reads its MCP servers from `~/.gemini/config/mcp_config.json`; `veto init` wrote `~/.gemini/antigravity-cli/mcp_config.json`, which it does not read, and `veto doctor` checked that same file and printed ✓. Init now registers through each app's own CLI where it has one (`claude mcp add`, `codex mcp add`, `agy mcp add`), so the app decides where its config lives. Without that CLI it writes only the file the app reads. It handles the empty file Antigravity creates, which the old writer skipped as \"unreadable\", and never rewrites a file with comments (Zed's) or broken JSON.\n- **`veto doctor` checks that each app really runs Veto,** not that a file mentions it. It reads what the app itself reports (including a disabled entry), launches the configured command to see it answer, and shows when each app last started Veto, with which Node and whether SQLite worked there. It also checks that transcript capture and the lessons trial are still keeping up, and exits 1 on any issue. Its Node check was also wrong: it accepted 22.5–22.12, where persistence does not work.\n- **New: `veto continue <id> --as <client>`, and `veto sessions --all | --limit N | [words]`.** An AI whose app did not load Veto can restore a session from a terminal through the same code as `veto_continue`, without reading Veto's database or importing its files, which is what one did before. `veto_continue` and `veto continue` accept the 8-character id prefix that listings show. `veto sessions` says how many sessions exist, not just the newest 20.\n- **New: the `veto` skill.** Written by `veto init` into Claude Code, Codex and Antigravity/Gemini skill folders. It is the one instruction an AI still sees when Veto did not load: say so, use the CLI, never read the database. It never replaces a `veto` skill you wrote yourself.\n- **Bug fix: tools returned filler as results.** Without an LLM step, generators filled their output with unrelated text: `veto_diagram` returned `\"mermaid\": \"Documentation looks complete.\"`, and `veto_pr_description`, `veto_release_notes`, `veto_prompt_optimizer`, `veto_rca`, `veto_postmortem` and `veto_onboard` did the same. Each now returns only what it computed (commits, routes, counts, error-budget maths, the code at a stack trace) and marks the rest `generation: \"needs_llm\"`, with the prompt to finish it. Generated output is checked before it is returned: `veto_doc_gen` refuses a file that lost code, `veto_diagram` refuses text that isn't Mermaid, `veto_openapi_gen` refuses a non-OpenAPI document.\n- **Bug fix: tools dropped their inputs.** `veto_secrets_scan` never received its `text`. `veto_translate` never received its text or languages. `veto_semantic_search` never received its query, and `veto_explain`, `veto_merge_conflict` and `veto_a11y_advisor` never read their file. Every input now reaches the agent, files are read (a missing one is an error), and analysis tools run Veto's own scanner first and return its findings even without an LLM.\n- **Bug fix: scanners that could never find anything.** `veto_dead_code` and `veto_flag_auditor` passed GNU grep options to `git grep` and always reported nothing. Both now scan for real: exports no other file uses, commented-out code, and feature flags with their locations. The security scanner missed the most common SQL injection (`\"… id = '\" + req.params.id`) and now reports the line. `veto_clone_detector` reported code as a clone of itself and split one copy into several findings. `veto_openapi_gen` only looked at files named `route*`/`api*`.\n- **Bug fix: wrong numbers.** `veto_dep_advisor` asked OSV about `4.0.0` for a `^4.19.2` dependency. It now uses the installed or locked version and returns each advisory's summary, severity and fixed version. `veto_debt_register` gave every item \"complexity, 2 hours\", and several tools returned hard-coded blanks or zeros as results.\n- **Bug fix: keyword verdicts presented as reviews.** With no LLM available, council votes come from keyword rules. Such a verdict is now labelled as preliminary, is no longer saved as the project's latest verdict or stored in memory as a decision, and can no longer block `veto_new_feature`. `veto_benchmark` no longer picks a \"winner\" from it. A council answer missing most of its members no longer reports itself as fully LLM-backed.\n- **Other fixes.** `veto_project_map_get` crashed after a map was saved as an object. `veto_git_blame` ignored `project_dir`. `veto_pr_post` sent review comments GitHub rejects (they now go in the review body). `veto_env_setup` could replace an existing `.env.example` with a placeholder. `veto_workflow` ran malformed steps. `veto_notify_ide` said \"sent\" for actions MCP cannot perform. `veto_code_review` now stores the editor diagnostics its description promised. On Windows, project lookups now match whatever case each app spells the folder in, and `veto memory export --format=markdown` finds your project's entries again.\n- **Bug fix: the Claude Code secrets hook never ran.** The hook `veto init` installed read a file path from an environment variable Claude Code does not set, so it passed every file. It is replaced in place by one that reads Claude Code's hook input and reports findings back to Claude. Two hook files Claude Code never runs are removed, but only when they are exactly what Veto wrote.\n- Windows: Veto's own background commands no longer flash console windows, and a failed update check retries hourly instead of on every start.\n\n### 3.6.0\n- **The shared-notes trial now measures whether the notes would help.** Before Veto gives any AI a note, it has to show that the notes it would give are real and useful. For 8 weeks or 20 Codex sessions, whichever comes first, Veto reads the first message of each Codex session in your projects from Codex's own session files, works out which notes it *would* have given that session, and records only that choice. It never keeps your message, and it still gives no note to any AI. Sessions are found from Codex's own files rather than from Veto's connection, because the Codex VS Code extension runs many conversations in one process and would otherwise be missed. Only the notes Veto held when a session began count, and subagents are not counted twice. `veto lessons` shows how the trial is going, and warns if sessions stop yielding a request, which would mean Codex changed its format. If transcript capture is on, finished trial sessions are archived so each choice can be checked later. Your record stays on your machine, and nothing judges it; whether delivery ships is decided by the trial on the author's own machine, under rules sealed before it began.\n- **Sharing pauses until you accept again.** Consent moves to version 3, because the version-2 text said Veto worked out nothing about which notes it would give, and the trial makes that untrue. Anyone who turned sharing on in 3.5.0 sees it paused, with nothing read, until they run `veto lessons on` in their own terminal and accept the new text. Nothing already harvested is deleted. Before any note is actually given to an AI, Veto will ask again.\n- **Catching up after an upgrade is much faster.** When every memory file needs reading again, which happens whenever Veto changes how it reads them, harvest-on-save used to take 16 to 25 saves to catch up, each using its full time budget. Almost all of that went on running git again for every project folder on every save. Veto now remembers which project each folder belongs to, and catching up takes 3 to 5 saves. `veto lessons` commands still work each folder out afresh.\n- **Removed: the unused shadow log.** 3.4.0 and 3.5.0 created a table for the trial that nothing ever wrote to. Its design would have stored each session's prompt, which the trial must never do. It is dropped on upgrade while empty, and replaced by the trial's own table, which stores only the choice.\n\n### 3.5.0\n- **New, opt-in and a trial: Veto reads the notes your AIs keep.** Claude Code, Codex and Gemini each write lessons into their own memory, and none of them hears what the others learned. With sharing on, Veto reads those notes, keeps a masked copy in its own local database, and works out which ones could safely travel: across your projects, and between your AIs. For now it gives none of them to any AI. That is the next step, and Veto will ask you again before taking it. Sharing is off until you run `veto lessons on` in a terminal of your own and type `yes`. When an AI runs the command, it is refused, and no upgrade turns sharing on. See [Notes Shared Between Your AIs](#notes-shared-between-your-ais-opt-in-trial).\n- **New: `veto lessons`.** See what Veto read and why: `list` shows every note by project, `why <id>` shows where a note came from and where it may go, and `flows` shows where each AI's notes may go. Control it with `forget <id>` to stop one note for good, `exclude` to keep a project out entirely, `alias` to link memory on a drive that isn't plugged in, and `off` to turn sharing off and delete everything Veto copied.\n- **Notes you write today are picked up when you save.** With sharing on, `veto_session_save` also re-reads each AI's memory and records what changed, so there is nothing to remember to run. A file that has not changed costs one stat, which adds about 20 ms to a save across 90 memory files. The pass is capped at 150 ms per save; anything it doesn't reach waits for the next save, and it can never cause a save to fail. Turning sharing on reads everything once, up front. To stop just the save-time pass, set `lessons.harvest_on_save` to `false` in `~/.veto/config.json`.\n- **The status line shows how many notes Veto is holding** (`notes 175`), only while sharing is on. It never shows a zero that could suggest notes are kept when they are not.\n- **Bug fix: an agent response of the wrong shape was reported as a result.** Every field in the agent response schema had a default, so a response Veto could not read passed validation as a complete answer assembled from defaults. For an analysis that meant score 70 and \"approved with warnings\". An unreadable security scan therefore reported as broadly passing, with no findings, and `veto_execute_parallel` returned confident, empty reviews. A response now has to contain what it claims to be (a plan needs an approach or steps; an analysis needs findings, a score, a verdict or a summary), and anything else is an error that names the keys that did arrive. An out-of-range field is still repaired as before, such as a score of 150 clamped to 100.\n- **Bug fix: a council's seven analyses could be silently discarded.** `veto_council_debate` accepted phase-2 responses only as a JSON object, and models often send a JSON string. A string fell through to phase 1, which returned a deterministic verdict that looked like the real one, with nothing to say the written analyses had been thrown away. A string is now read like an object, and responses that genuinely cannot be read return an error saying what arrived and what was expected.\n\n### 3.4.0\n- **Past sessions now reach the tools that need them, from every AI.** Transcript recall only helped when an AI thought to ask for it, and mostly it did not. Now `veto_continue` and `veto_session_restore` list the archived chats behind a saved session — say, the Codex chat and two Claude Code chats that worked on it — with what was asked last in each. `veto_memory_search` returns matching excerpts beside stored memory, and every prompt Veto hands a model, for the agent tools and the council, carries up to three relevant excerpts. An excerpt is attached only when it is conversation, never a raw tool payload, and shares at least two words with the question; nothing is attached while capture is off. Excerpts are labelled as historical data rather than instructions, and the deterministic analyzers never receive them, so an old excerpt cannot turn into a finding.\n- **New: a Veto status line beside Codex and Gemini.** Neither CLI can run a custom status line — each shows only its own built-in items — so `veto statusline watch` draws Veto's line in a small split pane beside the AI and follows its session in the current folder. For Codex it shows context and rate-limit use, read from Codex's own session file; Gemini records no usage figures, so its line shows the live session without gauges. `veto statusline install --client=codex` (or `gemini`) prints the one-line setup for Windows Terminal, tmux or VS Code and changes nothing.\n- **Bug fix: `veto init` overwrote other AI CLIs' own memory files.** Since 1.4.5, init replaced `~/.gemini/GEMINI.md` — Gemini's memory file — with Veto's guide, and wrote `~/.codex/AGENTS.override.md`, which Codex reads instead of your `~/.codex/AGENTS.md`, hiding your global Codex instructions. Init now writes neither. `veto doctor` reports a copy an older version left behind, and the new `veto doctor --fix` (or `veto init`) renames it to `*.veto-backup` — only when the file is byte-for-byte a guide Veto shipped. A file with anything else in it, such as memories Gemini saved below the guide, is reported and never touched. While a leftover exists, your AI offers the cleanup once per session. What an older init overwrote cannot be recovered.\n- **Bug fix: transcript capture could archive nothing, or the wrong chat, without saying so.** Gemini records a project folder in lowercase (`d:\\veto`) where a save names it `D:\\Veto`, and matching was case-sensitive, so Gemini chats on Windows were never found; folder matching now ignores case and slash direction on Windows. `veto transcripts show` and `purge` looked only at Claude Code chats — purging a Codex or Gemini chat printed \"✓ Purged 0 archive(s)\" and deleted nothing; both now take any AI's session id, and a purge that matches nothing says so. Claude Code chats were captured only when Veto's status line was installed; they are now found in Claude Code's own projects folder. A save that did not name its project captured nothing; it now uses the project already known for the session. Every save that archives nothing now says why.\n- **Bug fix: a session was labelled with the AI the model claimed to be.** A session saved from Codex by a model that reported itself as Claude resumed as \"restored from claude\". The AI that actually connected is now recorded, a mismatch is noted in the save response, and a resumed session names whoever saved it last. In `veto_continue` and `veto_session_restore` output, `created_by` is now `saved_by`.\n- **Bug fix: a status line wired by hand counted as not installed.** Veto recognised only the exact command `veto statusline print`, so any other form — `node …/dist/cli.js statusline print`, `veto.cmd`, `npx`, or `--capture` — counted as missing: every session carried the \"status line not enabled\" tip, `veto statusline status` said no, and `install` asked for `--force`. Any command that runs Veto's `statusline print` now counts. Uninstall still removes only the exact line Veto wrote, so it never deletes a command someone else set up.\n- **Also included, switched off: groundwork for sharing what each AI learns.** Harvest-and-Share will read the notes Claude Code, Codex and Gemini keep in their own memory and offer them to the others. This release contains only the groundwork: it reads nothing and shares nothing, has no command yet, and needs a separate opt-in that no upgrade turns on.\n\n### 3.3.0\n- **Veto now asks whether a decision should be enforced.** `veto_decisions` has long been able to turn a recorded decision into a rule that fails any diff reintroducing what was ruled out, but a rule only exists if someone thinks to write one, and nothing ever prompted it. Now, when a council verdict (the LLM-backed one) or an ADR settles something, its result carries a one-time invitation: your AI asks you, in one line, whether the decision should become a rule. Yes becomes `veto_decisions add` with the invitation's id, in your own words; no becomes the new `decline` action. It never asks twice about the same verdict, never after a deadlock, and your AI is told to skip verdicts that settle nothing lasting. `veto_decisions list` shows how many invitations were offered, accepted and declined. That count is kept on your machine and never uploaded.\n- **A decision rule can no longer stall a review.** Rules run inside `veto_diff_review` and `veto_ci_gate`, so a badly shaped pattern could hang either one. `add` now refuses the shapes that cause that: a pattern over 200 characters, or a repeated group that itself repeats, like `(a+)+`. Each check also has limits. It reads only the first 2,000 characters of each added line, so a match further along a very long line (a minified bundle, say) is not flagged. It stops after two seconds and reports that it did, so a slow rule turns into a warning instead of blocking a merge. A rule saved by an earlier version that fails these checks is now matched as plain text.\n- **Bug fix: a resumed session showed when it started, not when it was last saved.** `veto_continue` and `veto_session_restore` reported the time of a session's first save, so a session updated 18 days after it began resumed looking 18 days out of date. Underneath, the last-saved time was stored in two formats, and that caused two more faults. `veto_continue` called without a session id could restore the wrong session when one session was updated and another saved for the first time on the same day; the VS Code extension picks its latest session the same way. And `veto_metrics` counted zero sessions today for any session saved today and not yet updated. Existing records are converted once, automatically, the first time 3.3.0 opens its database; the times themselves don't change. `veto sessions` now shows the last-saved time too.\n\n### 3.2.1\n- **Bug fix: `veto-server` did not start when installed through npm or npx on macOS or Linux.** The process exited immediately, without error and with a success status, so clients reported only \"connection closed during initialize\". The cause was the check that decides whether the server was run directly or merely imported: it compared the running module's path against the path it was invoked with, and npm installs a command as a symlink on those platforms, so one side was resolved through the link and the other was not. They never matched, the server never started, and this had been true of every release since 2.1.0. Windows was unaffected throughout, because npm creates a different kind of shim there that passes the real path — which is why the fault survived ten releases of local testing. Also unaffected: any configuration that runs `node .../dist/server.js` directly, including the Desktop Extension bundle. The packaged command is now a dedicated entry point that starts unconditionally rather than inferring whether it should, and the test suite now launches the built artifact the way a package manager does, which is the check that was missing. Reported, diagnosed and reproduced by [@khaliqgant](https://github.com/khaliqgant) in [#39](https://github.com/jigyasudham/veto/issues/39).\n\n### 3.2.0\n- **Transcript capture now works in Codex CLI and Gemini CLI, not just Claude Code.** A session in any of the three is archived, indexed, recalled and expanded through the same pipeline, with","readmeFilename":"README.md"}