@jigyasudham/veto 1.2.2 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +29 -6
  2. package/dist/adapters/index.d.ts +46 -0
  3. package/dist/adapters/index.d.ts.map +1 -0
  4. package/dist/adapters/index.js +47 -8
  5. package/dist/adapters/index.js.map +1 -0
  6. package/dist/agents/development/api.d.ts +3 -0
  7. package/dist/agents/development/api.d.ts.map +1 -0
  8. package/dist/agents/development/api.js.map +1 -0
  9. package/dist/agents/development/backend.d.ts +3 -0
  10. package/dist/agents/development/backend.d.ts.map +1 -0
  11. package/dist/agents/development/backend.js.map +1 -0
  12. package/dist/agents/development/coder.d.ts +3 -0
  13. package/dist/agents/development/coder.d.ts.map +1 -0
  14. package/dist/agents/development/coder.js.map +1 -0
  15. package/dist/agents/development/database.d.ts +3 -0
  16. package/dist/agents/development/database.d.ts.map +1 -0
  17. package/dist/agents/development/database.js +175 -52
  18. package/dist/agents/development/database.js.map +1 -0
  19. package/dist/agents/development/debugger.d.ts +3 -0
  20. package/dist/agents/development/debugger.d.ts.map +1 -0
  21. package/dist/agents/development/debugger.js.map +1 -0
  22. package/dist/agents/development/devops.d.ts +3 -0
  23. package/dist/agents/development/devops.d.ts.map +1 -0
  24. package/dist/agents/development/devops.js +190 -55
  25. package/dist/agents/development/devops.js.map +1 -0
  26. package/dist/agents/development/frontend.d.ts +3 -0
  27. package/dist/agents/development/frontend.d.ts.map +1 -0
  28. package/dist/agents/development/frontend.js.map +1 -0
  29. package/dist/agents/development/migration.d.ts +3 -0
  30. package/dist/agents/development/migration.d.ts.map +1 -0
  31. package/dist/agents/development/migration.js.map +1 -0
  32. package/dist/agents/development/performance.d.ts +3 -0
  33. package/dist/agents/development/performance.d.ts.map +1 -0
  34. package/dist/agents/development/performance.js.map +1 -0
  35. package/dist/agents/development/refactor.d.ts +3 -0
  36. package/dist/agents/development/refactor.d.ts.map +1 -0
  37. package/dist/agents/development/refactor.js.map +1 -0
  38. package/dist/agents/development/reviewer.d.ts +4 -0
  39. package/dist/agents/development/reviewer.d.ts.map +1 -0
  40. package/dist/agents/development/reviewer.js +34 -17
  41. package/dist/agents/development/reviewer.js.map +1 -0
  42. package/dist/agents/development/tester.d.ts +3 -0
  43. package/dist/agents/development/tester.d.ts.map +1 -0
  44. package/dist/agents/development/tester.js.map +1 -0
  45. package/dist/agents/executor.d.ts +4 -0
  46. package/dist/agents/executor.d.ts.map +1 -0
  47. package/dist/agents/executor.js +10 -1
  48. package/dist/agents/executor.js.map +1 -0
  49. package/dist/agents/memory/context-manager.d.ts +3 -0
  50. package/dist/agents/memory/context-manager.d.ts.map +1 -0
  51. package/dist/agents/memory/context-manager.js.map +1 -0
  52. package/dist/agents/memory/decision-logger.d.ts +3 -0
  53. package/dist/agents/memory/decision-logger.d.ts.map +1 -0
  54. package/dist/agents/memory/decision-logger.js.map +1 -0
  55. package/dist/agents/memory/knowledge-base.d.ts +3 -0
  56. package/dist/agents/memory/knowledge-base.d.ts.map +1 -0
  57. package/dist/agents/memory/knowledge-base.js.map +1 -0
  58. package/dist/agents/memory/pattern-learner.d.ts +3 -0
  59. package/dist/agents/memory/pattern-learner.d.ts.map +1 -0
  60. package/dist/agents/memory/pattern-learner.js.map +1 -0
  61. package/dist/agents/memory/project-mapper.d.ts +3 -0
  62. package/dist/agents/memory/project-mapper.d.ts.map +1 -0
  63. package/dist/agents/memory/project-mapper.js.map +1 -0
  64. package/dist/agents/quality/accessibility.d.ts +4 -0
  65. package/dist/agents/quality/accessibility.d.ts.map +1 -0
  66. package/dist/agents/quality/accessibility.js.map +1 -0
  67. package/dist/agents/quality/code-quality.d.ts +4 -0
  68. package/dist/agents/quality/code-quality.d.ts.map +1 -0
  69. package/dist/agents/quality/code-quality.js.map +1 -0
  70. package/dist/agents/quality/compatibility.d.ts +3 -0
  71. package/dist/agents/quality/compatibility.d.ts.map +1 -0
  72. package/dist/agents/quality/compatibility.js.map +1 -0
  73. package/dist/agents/quality/documentation.d.ts +4 -0
  74. package/dist/agents/quality/documentation.d.ts.map +1 -0
  75. package/dist/agents/quality/documentation.js.map +1 -0
  76. package/dist/agents/quality/error-handling.d.ts +4 -0
  77. package/dist/agents/quality/error-handling.d.ts.map +1 -0
  78. package/dist/agents/quality/error-handling.js.map +1 -0
  79. package/dist/agents/research/competitor-analyzer.d.ts +3 -0
  80. package/dist/agents/research/competitor-analyzer.d.ts.map +1 -0
  81. package/dist/agents/research/competitor-analyzer.js.map +1 -0
  82. package/dist/agents/research/cost-analyzer.d.ts +3 -0
  83. package/dist/agents/research/cost-analyzer.d.ts.map +1 -0
  84. package/dist/agents/research/cost-analyzer.js.map +1 -0
  85. package/dist/agents/research/estimator.d.ts +3 -0
  86. package/dist/agents/research/estimator.d.ts.map +1 -0
  87. package/dist/agents/research/estimator.js.map +1 -0
  88. package/dist/agents/research/ethics-bias.d.ts +3 -0
  89. package/dist/agents/research/ethics-bias.d.ts.map +1 -0
  90. package/dist/agents/research/ethics-bias.js.map +1 -0
  91. package/dist/agents/research/researcher.d.ts +3 -0
  92. package/dist/agents/research/researcher.d.ts.map +1 -0
  93. package/dist/agents/research/researcher.js.map +1 -0
  94. package/dist/agents/research/risk-assessor.d.ts +3 -0
  95. package/dist/agents/research/risk-assessor.d.ts.map +1 -0
  96. package/dist/agents/research/risk-assessor.js.map +1 -0
  97. package/dist/agents/research/tech-advisor.d.ts +3 -0
  98. package/dist/agents/research/tech-advisor.d.ts.map +1 -0
  99. package/dist/agents/research/tech-advisor.js.map +1 -0
  100. package/dist/agents/security/auth.d.ts +3 -0
  101. package/dist/agents/security/auth.d.ts.map +1 -0
  102. package/dist/agents/security/auth.js.map +1 -0
  103. package/dist/agents/security/dependency-audit.d.ts +19 -0
  104. package/dist/agents/security/dependency-audit.d.ts.map +1 -0
  105. package/dist/agents/security/dependency-audit.js.map +1 -0
  106. package/dist/agents/security/penetration.d.ts +3 -0
  107. package/dist/agents/security/penetration.d.ts.map +1 -0
  108. package/dist/agents/security/penetration.js.map +1 -0
  109. package/dist/agents/security/privacy.d.ts +3 -0
  110. package/dist/agents/security/privacy.d.ts.map +1 -0
  111. package/dist/agents/security/privacy.js.map +1 -0
  112. package/dist/agents/security/scanner.d.ts +4 -0
  113. package/dist/agents/security/scanner.d.ts.map +1 -0
  114. package/dist/agents/security/scanner.js.map +1 -0
  115. package/dist/agents/security/secrets.d.ts +12 -0
  116. package/dist/agents/security/secrets.d.ts.map +1 -0
  117. package/dist/agents/security/secrets.js.map +1 -0
  118. package/dist/agents/types.d.ts +62 -0
  119. package/dist/agents/types.d.ts.map +1 -0
  120. package/dist/agents/types.js.map +1 -0
  121. package/dist/agents/workflow/automation.d.ts +3 -0
  122. package/dist/agents/workflow/automation.d.ts.map +1 -0
  123. package/dist/agents/workflow/automation.js.map +1 -0
  124. package/dist/agents/workflow/file-manager.d.ts +3 -0
  125. package/dist/agents/workflow/file-manager.d.ts.map +1 -0
  126. package/dist/agents/workflow/file-manager.js.map +1 -0
  127. package/dist/agents/workflow/git-agent.d.ts +3 -0
  128. package/dist/agents/workflow/git-agent.d.ts.map +1 -0
  129. package/dist/agents/workflow/git-agent.js.map +1 -0
  130. package/dist/agents/workflow/reporter.d.ts +3 -0
  131. package/dist/agents/workflow/reporter.d.ts.map +1 -0
  132. package/dist/agents/workflow/reporter.js.map +1 -0
  133. package/dist/agents/workflow/search-agent.d.ts +3 -0
  134. package/dist/agents/workflow/search-agent.d.ts.map +1 -0
  135. package/dist/agents/workflow/search-agent.js.map +1 -0
  136. package/dist/agents/workflow/task-coordinator.d.ts +3 -0
  137. package/dist/agents/workflow/task-coordinator.d.ts.map +1 -0
  138. package/dist/agents/workflow/task-coordinator.js.map +1 -0
  139. package/dist/agents/workflow/task-planner.d.ts +3 -0
  140. package/dist/agents/workflow/task-planner.d.ts.map +1 -0
  141. package/dist/agents/workflow/task-planner.js.map +1 -0
  142. package/dist/cli.d.ts +3 -0
  143. package/dist/cli.d.ts.map +1 -0
  144. package/dist/cli.js.map +1 -0
  145. package/dist/context/reader.d.ts +12 -0
  146. package/dist/context/reader.d.ts.map +1 -0
  147. package/dist/context/reader.js.map +1 -0
  148. package/dist/council/decision-engine.d.ts +11 -0
  149. package/dist/council/decision-engine.d.ts.map +1 -0
  150. package/dist/council/decision-engine.js.map +1 -0
  151. package/dist/council/devil-advocate.d.ts +3 -0
  152. package/dist/council/devil-advocate.d.ts.map +1 -0
  153. package/dist/council/devil-advocate.js +46 -0
  154. package/dist/council/devil-advocate.js.map +1 -0
  155. package/dist/council/index.d.ts +4 -0
  156. package/dist/council/index.d.ts.map +1 -0
  157. package/dist/council/index.js +9 -11
  158. package/dist/council/index.js.map +1 -0
  159. package/dist/council/lead-developer.d.ts +3 -0
  160. package/dist/council/lead-developer.d.ts.map +1 -0
  161. package/dist/council/lead-developer.js +65 -1
  162. package/dist/council/lead-developer.js.map +1 -0
  163. package/dist/council/legal-compliance.d.ts +3 -0
  164. package/dist/council/legal-compliance.d.ts.map +1 -0
  165. package/dist/council/legal-compliance.js +43 -0
  166. package/dist/council/legal-compliance.js.map +1 -0
  167. package/dist/council/product-manager.d.ts +3 -0
  168. package/dist/council/product-manager.d.ts.map +1 -0
  169. package/dist/council/product-manager.js +47 -0
  170. package/dist/council/product-manager.js.map +1 -0
  171. package/dist/council/security.d.ts +3 -0
  172. package/dist/council/security.d.ts.map +1 -0
  173. package/dist/council/security.js +48 -0
  174. package/dist/council/security.js.map +1 -0
  175. package/dist/council/system-architect.d.ts +3 -0
  176. package/dist/council/system-architect.d.ts.map +1 -0
  177. package/dist/council/system-architect.js +53 -1
  178. package/dist/council/system-architect.js.map +1 -0
  179. package/dist/council/types.d.ts +32 -0
  180. package/dist/council/types.d.ts.map +1 -0
  181. package/dist/council/types.js.map +1 -0
  182. package/dist/council/ux-designer.d.ts +3 -0
  183. package/dist/council/ux-designer.d.ts.map +1 -0
  184. package/dist/council/ux-designer.js +44 -1
  185. package/dist/council/ux-designer.js.map +1 -0
  186. package/dist/github/pr-fetcher.d.ts +25 -0
  187. package/dist/github/pr-fetcher.d.ts.map +1 -0
  188. package/dist/github/pr-fetcher.js +60 -0
  189. package/dist/github/pr-fetcher.js.map +1 -0
  190. package/dist/memory/local.d.ts +144 -0
  191. package/dist/memory/local.d.ts.map +1 -0
  192. package/dist/memory/local.js +19 -19
  193. package/dist/memory/local.js.map +1 -0
  194. package/dist/memory/schema.d.ts +81 -0
  195. package/dist/memory/schema.d.ts.map +1 -0
  196. package/dist/memory/schema.js +2 -1
  197. package/dist/memory/schema.js.map +1 -0
  198. package/dist/memory/sync.d.ts +24 -0
  199. package/dist/memory/sync.d.ts.map +1 -0
  200. package/dist/memory/sync.js.map +1 -0
  201. package/dist/plugins/loader.d.ts +13 -0
  202. package/dist/plugins/loader.d.ts.map +1 -0
  203. package/dist/plugins/loader.js.map +1 -0
  204. package/dist/router/complexity-scorer.d.ts +18 -0
  205. package/dist/router/complexity-scorer.d.ts.map +1 -0
  206. package/dist/router/complexity-scorer.js.map +1 -0
  207. package/dist/router/context-compressor.d.ts +11 -0
  208. package/dist/router/context-compressor.d.ts.map +1 -0
  209. package/dist/router/context-compressor.js.map +1 -0
  210. package/dist/router/index.d.ts +27 -0
  211. package/dist/router/index.d.ts.map +1 -0
  212. package/dist/router/index.js.map +1 -0
  213. package/dist/router/learning-updater.d.ts +61 -0
  214. package/dist/router/learning-updater.d.ts.map +1 -0
  215. package/dist/router/learning-updater.js.map +1 -0
  216. package/dist/router/model-selector.d.ts +14 -0
  217. package/dist/router/model-selector.d.ts.map +1 -0
  218. package/dist/router/model-selector.js.map +1 -0
  219. package/dist/router/rate-monitor.d.ts +19 -0
  220. package/dist/router/rate-monitor.d.ts.map +1 -0
  221. package/dist/router/rate-monitor.js.map +1 -0
  222. package/dist/server.d.ts +3 -0
  223. package/dist/server.d.ts.map +1 -0
  224. package/dist/server.js +297 -73
  225. package/dist/server.js.map +1 -0
  226. package/dist/skills/development/skill-api-design.d.ts +15 -0
  227. package/dist/skills/development/skill-api-design.d.ts.map +1 -0
  228. package/dist/skills/development/skill-api-design.js.map +1 -0
  229. package/dist/skills/development/skill-auth.d.ts +15 -0
  230. package/dist/skills/development/skill-auth.d.ts.map +1 -0
  231. package/dist/skills/development/skill-auth.js.map +1 -0
  232. package/dist/skills/development/skill-ci-cd.d.ts +2 -0
  233. package/dist/skills/development/skill-ci-cd.d.ts.map +1 -0
  234. package/dist/skills/development/skill-ci-cd.js.map +1 -0
  235. package/dist/skills/development/skill-crud.d.ts +15 -0
  236. package/dist/skills/development/skill-crud.d.ts.map +1 -0
  237. package/dist/skills/development/skill-crud.js.map +1 -0
  238. package/dist/skills/development/skill-db-schema.d.ts +2 -0
  239. package/dist/skills/development/skill-db-schema.d.ts.map +1 -0
  240. package/dist/skills/development/skill-db-schema.js.map +1 -0
  241. package/dist/skills/development/skill-docker.d.ts +2 -0
  242. package/dist/skills/development/skill-docker.d.ts.map +1 -0
  243. package/dist/skills/development/skill-docker.js.map +1 -0
  244. package/dist/skills/development/skill-env-setup.d.ts +2 -0
  245. package/dist/skills/development/skill-env-setup.d.ts.map +1 -0
  246. package/dist/skills/development/skill-env-setup.js.map +1 -0
  247. package/dist/skills/development/skill-scaffold.d.ts +15 -0
  248. package/dist/skills/development/skill-scaffold.d.ts.map +1 -0
  249. package/dist/skills/development/skill-scaffold.js.map +1 -0
  250. package/dist/skills/intelligence/skill-complexity-score.d.ts +15 -0
  251. package/dist/skills/intelligence/skill-complexity-score.d.ts.map +1 -0
  252. package/dist/skills/intelligence/skill-complexity-score.js.map +1 -0
  253. package/dist/skills/intelligence/skill-cost-track.d.ts +14 -0
  254. package/dist/skills/intelligence/skill-cost-track.d.ts.map +1 -0
  255. package/dist/skills/intelligence/skill-cost-track.js.map +1 -0
  256. package/dist/skills/intelligence/skill-learning-loop.d.ts +15 -0
  257. package/dist/skills/intelligence/skill-learning-loop.d.ts.map +1 -0
  258. package/dist/skills/intelligence/skill-learning-loop.js.map +1 -0
  259. package/dist/skills/intelligence/skill-pattern-detect.d.ts +14 -0
  260. package/dist/skills/intelligence/skill-pattern-detect.d.ts.map +1 -0
  261. package/dist/skills/intelligence/skill-pattern-detect.js.map +1 -0
  262. package/dist/skills/intelligence/skill-rate-watch.d.ts +15 -0
  263. package/dist/skills/intelligence/skill-rate-watch.d.ts.map +1 -0
  264. package/dist/skills/intelligence/skill-rate-watch.js.map +1 -0
  265. package/dist/skills/memory/skill-context-compress.d.ts +15 -0
  266. package/dist/skills/memory/skill-context-compress.d.ts.map +1 -0
  267. package/dist/skills/memory/skill-context-compress.js.map +1 -0
  268. package/dist/skills/memory/skill-cross-sync.d.ts +15 -0
  269. package/dist/skills/memory/skill-cross-sync.d.ts.map +1 -0
  270. package/dist/skills/memory/skill-cross-sync.js.map +1 -0
  271. package/dist/skills/memory/skill-decision-log.d.ts +15 -0
  272. package/dist/skills/memory/skill-decision-log.d.ts.map +1 -0
  273. package/dist/skills/memory/skill-decision-log.js.map +1 -0
  274. package/dist/skills/memory/skill-session-restore.d.ts +15 -0
  275. package/dist/skills/memory/skill-session-restore.d.ts.map +1 -0
  276. package/dist/skills/memory/skill-session-restore.js.map +1 -0
  277. package/dist/skills/memory/skill-session-save.d.ts +15 -0
  278. package/dist/skills/memory/skill-session-save.d.ts.map +1 -0
  279. package/dist/skills/memory/skill-session-save.js.map +1 -0
  280. package/dist/skills/quality/skill-accessibility.d.ts +2 -0
  281. package/dist/skills/quality/skill-accessibility.d.ts.map +1 -0
  282. package/dist/skills/quality/skill-accessibility.js.map +1 -0
  283. package/dist/skills/quality/skill-code-review.d.ts +15 -0
  284. package/dist/skills/quality/skill-code-review.d.ts.map +1 -0
  285. package/dist/skills/quality/skill-code-review.js.map +1 -0
  286. package/dist/skills/quality/skill-docs-gen.d.ts +2 -0
  287. package/dist/skills/quality/skill-docs-gen.d.ts.map +1 -0
  288. package/dist/skills/quality/skill-docs-gen.js.map +1 -0
  289. package/dist/skills/quality/skill-perf-audit.d.ts +2 -0
  290. package/dist/skills/quality/skill-perf-audit.d.ts.map +1 -0
  291. package/dist/skills/quality/skill-perf-audit.js.map +1 -0
  292. package/dist/skills/quality/skill-security-scan.d.ts +15 -0
  293. package/dist/skills/quality/skill-security-scan.d.ts.map +1 -0
  294. package/dist/skills/quality/skill-security-scan.js.map +1 -0
  295. package/dist/skills/quality/skill-test-suite.d.ts +15 -0
  296. package/dist/skills/quality/skill-test-suite.d.ts.map +1 -0
  297. package/dist/skills/quality/skill-test-suite.js.map +1 -0
  298. package/dist/skills/workflow/skill-deploy.d.ts +2 -0
  299. package/dist/skills/workflow/skill-deploy.d.ts.map +1 -0
  300. package/dist/skills/workflow/skill-deploy.js.map +1 -0
  301. package/dist/skills/workflow/skill-git-workflow.d.ts +2 -0
  302. package/dist/skills/workflow/skill-git-workflow.d.ts.map +1 -0
  303. package/dist/skills/workflow/skill-git-workflow.js.map +1 -0
  304. package/dist/skills/workflow/skill-rollback.d.ts +2 -0
  305. package/dist/skills/workflow/skill-rollback.d.ts.map +1 -0
  306. package/dist/skills/workflow/skill-rollback.js.map +1 -0
  307. package/dist/skills/workflow/skill-task-breakdown.d.ts +2 -0
  308. package/dist/skills/workflow/skill-task-breakdown.d.ts.map +1 -0
  309. package/dist/skills/workflow/skill-task-breakdown.js.map +1 -0
  310. package/dist/watcher/index.d.ts +23 -0
  311. package/dist/watcher/index.d.ts.map +1 -0
  312. package/dist/watcher/index.js.map +1 -0
  313. package/dist/workflow/pipeline.d.ts +35 -0
  314. package/dist/workflow/pipeline.d.ts.map +1 -0
  315. package/dist/workflow/pipeline.js.map +1 -0
  316. package/package.json +2 -2
  317. package/dist/adapters/claude.js +0 -57
  318. package/dist/adapters/codex.js +0 -58
  319. package/dist/adapters/gemini.js +0 -58
  320. package/vitest.config.ts +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/council/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AgentVote } from './types.js';
2
+ export declare function analyze(task: string): AgentVote;
3
+ //# sourceMappingURL=system-architect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-architect.d.ts","sourceRoot":"","sources":["../../src/council/system-architect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAqI5C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAmD/C"}
@@ -83,6 +83,48 @@ const WARN_RULES = [
83
83
  },
84
84
  ];
85
85
  const TRIVIAL = /^(rename|fix typo|reorder|reformat|format|update comment|add comment)\b/i;
86
+ const TOPIC_INSIGHTS = [
87
+ {
88
+ pattern: /mcp|stdio|transport|protocol|server/i,
89
+ concern: 'stdio MCP transport processes one message at a time per connection. If any handler blocks the event loop (e.g. sync SQLite writes, CPU-heavy regex), all tool calls queue behind it.',
90
+ recommendation: 'Keep all MCP handlers async. Move any CPU-intensive work off the main handler with setImmediate or worker threads. Benchmark handler latency under concurrent tool calls.',
91
+ },
92
+ {
93
+ pattern: /sqlite|database|db|persist|schema/i,
94
+ concern: 'SQLite WAL mode serialises writes but allows concurrent reads. Multiple MCP connections sharing one DB file without connection pooling can cause SQLITE_BUSY errors under load.',
95
+ recommendation: 'Use a single shared DB connection with WAL mode. For high-write scenarios, batch writes in transactions. Add busy_timeout pragma to handle lock contention gracefully.',
96
+ },
97
+ {
98
+ pattern: /agent|worker|executor|parallel/i,
99
+ concern: 'A growing agent registry with a single switch-case dispatcher becomes a maintenance liability. Every new agent type requires editing the central switch.',
100
+ recommendation: 'Consider a registry pattern: agents register themselves at import time. The executor resolves by key, not by switch-case. New agents require no changes to the executor.',
101
+ },
102
+ {
103
+ pattern: /llm|model|ai.?call|external.?api|fetch|http/i,
104
+ concern: 'LLM calls introduce an external dependency with variable latency (2–30s) and failure modes. The server must handle timeout, rate limit, and model error without crashing the MCP connection.',
105
+ recommendation: 'Wrap every external call in a circuit breaker. Set explicit timeouts. Cache responses where idempotency allows. Return a structured degraded response on failure, never throw.',
106
+ },
107
+ {
108
+ pattern: /version|package\.json|semver/i,
109
+ concern: 'Multiple hardcoded version strings across server.ts, cli.ts, and adapter files create a drift problem that gets worse with each release.',
110
+ recommendation: 'Single source: read version from package.json at startup. Export it from one shared module. All other files import it.',
111
+ },
112
+ {
113
+ pattern: /plugin|extensi|loader|dynamic.?import/i,
114
+ concern: 'Dynamic plugin loading from user directories creates a security boundary: any code in ~/.veto/agents/ runs with full server privileges. There is currently no sandboxing.',
115
+ recommendation: 'Validate plugin exports schema before loading. Consider running plugins in a restricted vm.Script context. Log all plugin load events to the audit trail.',
116
+ },
117
+ {
118
+ pattern: /vscode|extension|ide|ui|frontend/i,
119
+ concern: 'VS Code extension + MCP server creates a distributed architecture: the extension communicates with the server via MCP protocol, not direct function calls. Version compatibility between extension and server must be managed explicitly.',
120
+ recommendation: 'Define a minimum server version requirement in the extension. On connect, call veto_status and verify server version meets the minimum. Show a clear upgrade prompt if not.',
121
+ },
122
+ {
123
+ pattern: /phase|roadmap|migrat|upgrade/i,
124
+ concern: 'Schema migrations that run inline in the DB constructor (as currently implemented) are safe for additive changes but risky for destructive ones. There is no migration version tracking.',
125
+ recommendation: 'Add a schema_version table. Record each migration with a unique ID. Before running a migration, check if it has already been applied. This prevents re-running on restart.',
126
+ },
127
+ ];
86
128
  export function analyze(task) {
87
129
  if (TRIVIAL.test(task.trim())) {
88
130
  return { verdict: 'approve', reason: 'Trivial change — no architectural concerns.', concerns: [] };
@@ -117,6 +159,16 @@ export function analyze(task) {
117
159
  recommendation: recommendations[0],
118
160
  };
119
161
  }
120
- return { verdict: 'approve', reason: 'Architecture looks sound. No structural concerns.', concerns: [] };
162
+ const matched = TOPIC_INSIGHTS.filter(t => t.pattern.test(task));
163
+ if (matched.length > 0) {
164
+ const top = matched.slice(0, 2);
165
+ return {
166
+ verdict: 'warn',
167
+ reason: top[0].concern,
168
+ concerns: top.slice(1).map(t => t.concern),
169
+ recommendation: top.map(t => t.recommendation).join(' | '),
170
+ };
171
+ }
172
+ return { verdict: 'approve', reason: 'Architecture looks sound. No structural concerns identified.', concerns: [] };
121
173
  }
122
174
  //# sourceMappingURL=system-architect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-architect.js","sourceRoot":"","sources":["../../src/council/system-architect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export type AgentVerdict = 'approve' | 'warn' | 'block';
2
+ export type CouncilVerdict = 'GREEN' | 'YELLOW' | 'RED' | 'DEADLOCK';
3
+ export interface AgentVote {
4
+ verdict: AgentVerdict;
5
+ reason: string;
6
+ concerns: string[];
7
+ recommendation?: string;
8
+ }
9
+ export interface DebateInput {
10
+ task: string;
11
+ context?: string;
12
+ project_dir?: string;
13
+ }
14
+ export interface DebateResult {
15
+ task: string;
16
+ final_verdict: CouncilVerdict;
17
+ votes: {
18
+ lead_dev: AgentVote;
19
+ pm: AgentVote;
20
+ architect: AgentVote;
21
+ ux: AgentVote;
22
+ devil: AgentVote;
23
+ legal: AgentVote;
24
+ security: AgentVote;
25
+ };
26
+ recommended: string;
27
+ block_reasons: string[];
28
+ warnings: string[];
29
+ debated_at: string;
30
+ formatted_output: string;
31
+ }
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/council/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,cAAc,CAAC;IAC9B,KAAK,EAAE;QACL,QAAQ,EAAE,SAAS,CAAC;QACpB,EAAE,EAAE,SAAS,CAAC;QACd,SAAS,EAAE,SAAS,CAAC;QACrB,EAAE,EAAE,SAAS,CAAC;QACd,KAAK,EAAE,SAAS,CAAC;QACjB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/council/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { AgentVote } from './types.js';
2
+ export declare function analyze(task: string): AgentVote;
3
+ //# sourceMappingURL=ux-designer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ux-designer.d.ts","sourceRoot":"","sources":["../../src/council/ux-designer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAqE5C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CA+F/C"}
@@ -104,6 +104,49 @@ export function analyze(task) {
104
104
  recommendation: recommendations[0],
105
105
  };
106
106
  }
107
- return { verdict: 'approve', reason: 'UX looks solid. No user experience concerns.', concerns: [] };
107
+ // Topic-based UX analysis for tasks with no direct frontend signals
108
+ const TOPIC_INSIGHTS = [
109
+ {
110
+ pattern: /cli|terminal|command.?line|help|flag|arg/i,
111
+ concern: 'CLI UX is still UX. Commands that give no feedback on success, have inconsistent flag names, or print walls of unformatted text drive users to abandon the tool.',
112
+ recommendation: 'Every CLI command needs: success/fail output, consistent flag naming (kebab-case), and color-coded status (green/red/yellow). Test with a first-time user.',
113
+ },
114
+ {
115
+ pattern: /error|message|feedback|output|response/i,
116
+ concern: 'Technical error messages like "TypeError: Cannot read property of undefined" tell the developer nothing actionable. Users want to know what to do, not what went wrong internally.',
117
+ recommendation: 'Every user-facing error must include: what failed, why it failed (if knowable), and what the user should do next. Never expose stack traces.',
118
+ },
119
+ {
120
+ pattern: /install|setup|init|onboard|first.?run/i,
121
+ concern: 'Onboarding friction is the leading cause of tool abandonment. Every extra step in setup loses 20–30% of users. The first experience must succeed or users never return.',
122
+ recommendation: 'Time-box the happy path setup to under 2 minutes. Every step must have a clear success indicator. Provide a single copy-paste command that does everything.',
123
+ },
124
+ {
125
+ pattern: /vscode|extension|sidebar|panel|button/i,
126
+ concern: 'VS Code extensions that clutter the UI with too many buttons and panels feel like bloatware. Users uninstall extensions that are visually noisy.',
127
+ recommendation: 'Default to minimal UI: one status bar item. Expand to sidebar only when user explicitly enables it. Follow VS Code\'s own design patterns and icon conventions.',
128
+ },
129
+ {
130
+ pattern: /41.?tool|tool.?count|tool.?list|discover/i,
131
+ concern: '41 tools requires users to read documentation before they can use the product. No tool is valuable if users can\'t discover it exists.',
132
+ recommendation: 'Make veto_discover the entry point. Ship it as the first thing users learn about. Consider surfacing 3 "most useful for your current task" recommendations automatically.',
133
+ },
134
+ {
135
+ pattern: /wait|loading|slow|latency|timeout/i,
136
+ concern: 'Operations that take more than 300ms with no feedback feel broken to users. For LLM-backed operations (2–30s), silence is indistinguishable from a crash.',
137
+ recommendation: 'Show progress for any operation over 500ms. For long operations, stream partial results or show a "working..." status. Never leave the user in silence.',
138
+ },
139
+ ];
140
+ const topicMatched = TOPIC_INSIGHTS.filter(t => t.pattern.test(task));
141
+ if (topicMatched.length > 0) {
142
+ const top = topicMatched.slice(0, 2);
143
+ return {
144
+ verdict: 'warn',
145
+ reason: top[0].concern,
146
+ concerns: top.slice(1).map(t => t.concern),
147
+ recommendation: top.map(t => t.recommendation).join(' | '),
148
+ };
149
+ }
150
+ return { verdict: 'approve', reason: 'UX looks solid. No user experience concerns identified.', concerns: [] };
108
151
  }
109
152
  //# sourceMappingURL=ux-designer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ux-designer.js","sourceRoot":"","sources":["../../src/council/ux-designer.ts"],"names":[],"mappings":"AAGA,mDAAmD;AACnD,MAAM,YAAY,GAAG,4JAA4J,CAAC;AAClL,MAAM,gBAAgB,GAAG,uKAAuK,CAAC;AAEjM,MAAM,WAAW,GAAuE;IACtF;QACE,OAAO,EAAE,0CAA0C;QACnD,MAAM,EAAE,2EAA2E;QACnF,cAAc,EAAE,uEAAuE;KACxF;IACD;QACE,OAAO,EAAE,0EAA0E;QACnF,MAAM,EAAE,8EAA8E;QACtF,cAAc,EAAE,+DAA+D;KAChF;IACD;QACE,OAAO,EAAE,wCAAwC;QACjD,MAAM,EAAE,oEAAoE;QAC5E,cAAc,EAAE,yDAAyD;KAC1E;CACF,CAAC;AAEF,MAAM,UAAU,GAAwE;IACtF;QACE,OAAO,EAAE,wCAAwC;QACjD,OAAO,EAAE,mEAAmE;QAC5E,cAAc,EAAE,2DAA2D;KAC5E;IACD;QACE,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,uEAAuE;QAChF,cAAc,EAAE,6DAA6D;KAC9E;IACD;QACE,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,iEAAiE;QAC1E,cAAc,EAAE,oFAAoF;KACrG;IACD;QACE,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,8DAA8D;QACvE,cAAc,EAAE,uEAAuE;KACxF;IACD;QACE,OAAO,EAAE,6CAA6C;QACtD,OAAO,EAAE,wEAAwE;QACjF,cAAc,EAAE,iEAAiE;KAClF;IACD;QACE,OAAO,EAAE,kDAAkD;QAC3D,OAAO,EAAE,yEAAyE;QAClF,cAAc,EAAE,mEAAmE;KACpF;IACD;QACE,OAAO,EAAE,kDAAkD;QAC3D,OAAO,EAAE,kEAAkE;QAC3E,cAAc,EAAE,+EAA+E;KAChG;IACD;QACE,OAAO,EAAE,2DAA2D;QACpE,OAAO,EAAE,0DAA0D;QACnE,cAAc,EAAE,kDAAkD;KACnE;CACF,CAAC;AAEF,MAAM,OAAO,GAAG,0EAA0E,CAAC;AAE3F,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kCAAkC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1F,CAAC;IAED,sCAAsC;IACtC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,mFAAmF;YAC3F,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAsD,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;YACxB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,cAAc,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iCAAiC;YACvG,QAAQ;YACR,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,MAAM,cAAc,GAAwE;QAC1F;YACE,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,kKAAkK;YAC3K,cAAc,EAAE,4JAA4J;SAC7K;QACD;YACE,OAAO,EAAE,yCAAyC;YAClD,OAAO,EAAE,oLAAoL;YAC7L,cAAc,EAAE,8IAA8I;SAC/J;QACD;YACE,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE,yKAAyK;YAClL,cAAc,EAAE,6JAA6J;SAC9K;QACD;YACE,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE,kJAAkJ;YAC3J,cAAc,EAAE,iKAAiK;SAClL;QACD;YACE,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,wIAAwI;YACjJ,cAAc,EAAE,2KAA2K;SAC5L;QACD;YACE,OAAO,EAAE,oCAAoC;YAC7C,OAAO,EAAE,2JAA2J;YACpK,cAAc,EAAE,yJAAyJ;SAC1K;KACF,CAAC;IAEF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;YACtB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1C,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,yDAAyD,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjH,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface PrMeta {
2
+ owner: string;
3
+ repo: string;
4
+ number: number;
5
+ title: string;
6
+ author: string;
7
+ base_branch: string;
8
+ head_branch: string;
9
+ html_url: string;
10
+ additions: number;
11
+ deletions: number;
12
+ changed_files: number;
13
+ state: string;
14
+ }
15
+ export interface PrFetchResult {
16
+ ok: true;
17
+ diff: string;
18
+ meta: PrMeta;
19
+ }
20
+ export interface PrFetchError {
21
+ ok: false;
22
+ error: string;
23
+ }
24
+ export declare function fetchPrDiff(prUrl: string): Promise<PrFetchResult | PrFetchError>;
25
+ //# sourceMappingURL=pr-fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-fetcher.d.ts","sourceRoot":"","sources":["../../src/github/pr-fetcher.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAiBD,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,CAgDtF"}
@@ -0,0 +1,60 @@
1
+ // Fetches a GitHub PR diff and metadata via the GitHub REST API.
2
+ // Supports public repos without auth; set GITHUB_TOKEN for private repos.
3
+ function parsePrUrl(url) {
4
+ const m = url.match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/);
5
+ if (!m)
6
+ return null;
7
+ return { owner: m[1], repo: m[2], number: parseInt(m[3], 10) };
8
+ }
9
+ function githubHeaders() {
10
+ const headers = {
11
+ 'User-Agent': 'veto-mcp-server',
12
+ };
13
+ const token = process.env.GITHUB_TOKEN;
14
+ if (token)
15
+ headers['Authorization'] = `Bearer ${token}`;
16
+ return headers;
17
+ }
18
+ export async function fetchPrDiff(prUrl) {
19
+ const parsed = parsePrUrl(prUrl);
20
+ if (!parsed) {
21
+ return { ok: false, error: `Cannot parse PR URL. Expected format: https://github.com/owner/repo/pull/123` };
22
+ }
23
+ const { owner, repo, number } = parsed;
24
+ const apiBase = `https://api.github.com/repos/${owner}/${repo}/pulls/${number}`;
25
+ // Fetch PR metadata and diff in parallel
26
+ const [metaRes, diffRes] = await Promise.all([
27
+ fetch(apiBase, { headers: githubHeaders() }),
28
+ fetch(apiBase, { headers: { ...githubHeaders(), Accept: 'application/vnd.github.v3.diff' } }),
29
+ ]);
30
+ if (metaRes.status === 404) {
31
+ return { ok: false, error: `PR not found: ${prUrl}. Check the URL and ensure GITHUB_TOKEN is set for private repos.` };
32
+ }
33
+ if (metaRes.status === 401 || metaRes.status === 403) {
34
+ return { ok: false, error: `GitHub API auth error (${metaRes.status}). Set the GITHUB_TOKEN environment variable.` };
35
+ }
36
+ if (!metaRes.ok) {
37
+ return { ok: false, error: `GitHub API error ${metaRes.status}: ${metaRes.statusText}` };
38
+ }
39
+ const pr = await metaRes.json();
40
+ const diff = diffRes.ok ? await diffRes.text() : '';
41
+ if (!diff.trim()) {
42
+ return { ok: false, error: `PR #${number} has no diff (may be empty or already merged with no changes).` };
43
+ }
44
+ const meta = {
45
+ owner,
46
+ repo,
47
+ number,
48
+ title: String(pr.title ?? ''),
49
+ author: String(pr.user?.login ?? ''),
50
+ base_branch: String(pr.base?.ref ?? ''),
51
+ head_branch: String(pr.head?.ref ?? ''),
52
+ html_url: String(pr.html_url ?? prUrl),
53
+ additions: Number(pr.additions ?? 0),
54
+ deletions: Number(pr.deletions ?? 0),
55
+ changed_files: Number(pr.changed_files ?? 0),
56
+ state: String(pr.state ?? 'unknown'),
57
+ };
58
+ return { ok: true, diff, meta };
59
+ }
60
+ //# sourceMappingURL=pr-fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-fetcher.js","sourceRoot":"","sources":["../../src/github/pr-fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ import type { DatabaseSync } from 'node:sqlite';
2
+ import { type SessionRow, type KnowledgeRow, type KnowledgeType, type ProjectMapRow } from './schema.js';
3
+ export declare const CONTEXT_WINDOWS: Record<string, number>;
4
+ export declare function resetDb(): void;
5
+ export declare function getDb(): DatabaseSync;
6
+ export type SaveSessionInput = {
7
+ platform?: string;
8
+ connection_type?: string;
9
+ project_dir?: string;
10
+ summary?: string;
11
+ context?: string;
12
+ task_state?: string;
13
+ token_count?: number;
14
+ };
15
+ export type SessionSaveResult = {
16
+ session_id: string;
17
+ saved_at: string;
18
+ context_warning: boolean;
19
+ usage_pct: number;
20
+ continuation_prompt: string | null;
21
+ };
22
+ export declare function saveSession(input: SaveSessionInput): SessionSaveResult;
23
+ export type RestoreSessionResult = {
24
+ found: boolean;
25
+ session?: SessionRow;
26
+ };
27
+ export declare function restoreSession(session_id: string, active_client?: string): RestoreSessionResult;
28
+ export declare function listSessions(limit?: number): SessionRow[];
29
+ export declare function closeSession(session_id: string): void;
30
+ export declare function getDbPath(): string;
31
+ export type SaveCouncilOutcomeInput = {
32
+ session_id?: string;
33
+ task: string;
34
+ verdict: string;
35
+ lead_dev: string;
36
+ pm: string;
37
+ architect: string;
38
+ ux: string;
39
+ devil: string;
40
+ legal: string;
41
+ security: string;
42
+ recommended: string;
43
+ duration_ms?: number;
44
+ };
45
+ export declare function saveCouncilOutcome(input: SaveCouncilOutcomeInput): string;
46
+ export type StoreKnowledgeInput = {
47
+ type?: KnowledgeType;
48
+ title: string;
49
+ content: string;
50
+ tags?: string[];
51
+ project_dir?: string;
52
+ session_id?: string;
53
+ relevance?: number;
54
+ };
55
+ export declare function storeKnowledge(input: StoreKnowledgeInput): string;
56
+ export type SearchKnowledgeOptions = {
57
+ query?: string;
58
+ type?: KnowledgeType;
59
+ tags?: string[];
60
+ project_dir?: string;
61
+ limit?: number;
62
+ };
63
+ export declare function searchKnowledge(opts: SearchKnowledgeOptions): KnowledgeRow[];
64
+ export declare function deleteKnowledge(id: string): boolean;
65
+ export type UpdateProjectMapInput = {
66
+ project_dir: string;
67
+ structure: Record<string, unknown> | string;
68
+ key_modules?: string[];
69
+ tech_stack?: string[];
70
+ };
71
+ export declare function updateProjectMap(input: UpdateProjectMapInput): string;
72
+ export declare function getProjectMap(project_dir: string): ProjectMapRow | null;
73
+ export type UpsertPatternInput = {
74
+ pattern_key: string;
75
+ pattern_val: string;
76
+ confidence?: number;
77
+ };
78
+ export declare function upsertPattern(input: UpsertPatternInput): void;
79
+ export declare function getPatterns(prefix?: string, limit?: number): import('./schema.js').PatternRow[];
80
+ export type ContextStatus = {
81
+ session_id: string;
82
+ platform: string;
83
+ token_count: number;
84
+ context_window: number;
85
+ usage_pct: number;
86
+ recommended_action: 'safe' | 'compress' | 'handoff';
87
+ };
88
+ export declare function getContextStatus(session_id: string): ContextStatus | null;
89
+ export declare function fetchAndCacheDocs(package_name: string, ecosystem: 'npm' | 'pypi' | 'crates', version?: string, max_chars?: number, agentVersion?: string): Promise<{
90
+ package_name: string;
91
+ version: string;
92
+ ecosystem: string;
93
+ content: string;
94
+ cached: boolean;
95
+ fetched_at: string;
96
+ } | null>;
97
+ export declare function saveTaskPlan(plan_json: string, description_hash: string, project_dir?: string): string;
98
+ export type UsageStatus = {
99
+ today: {
100
+ by_platform: Array<{
101
+ platform: string;
102
+ requests: number;
103
+ tokens_reported: number;
104
+ connection_breakdown: {
105
+ subscription: number;
106
+ api: number;
107
+ };
108
+ }>;
109
+ };
110
+ history: Array<{
111
+ date: string;
112
+ total_requests: number;
113
+ total_tokens: number;
114
+ }>;
115
+ warnings: string[];
116
+ };
117
+ export declare function getUsageStatus(): UsageStatus;
118
+ export type AuditEvent = {
119
+ timestamp: string;
120
+ event_type: string;
121
+ session_id: string | null;
122
+ agent: string | null;
123
+ verdict: string | null;
124
+ summary: string;
125
+ affected_files: string | null;
126
+ };
127
+ export type AuditLogOptions = {
128
+ session_id?: string;
129
+ agent?: string;
130
+ verdict?: string;
131
+ since?: string;
132
+ limit?: number;
133
+ };
134
+ export declare function getAuditLog(opts?: AuditLogOptions): AuditEvent[];
135
+ export type HealthStats = {
136
+ total_sessions: number;
137
+ total_memories: number;
138
+ total_patterns: number;
139
+ total_council_outcomes: number;
140
+ total_decisions: number;
141
+ avg_council_latency_ms: number | null;
142
+ };
143
+ export declare function getHealthStats(): HealthStats;
144
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}
@@ -36,8 +36,16 @@ export function getDb() {
36
36
  migrateCouncilOutcomes(_db);
37
37
  migrateCouncilColumns(_db);
38
38
  migrateSessionColumns(_db);
39
+ migrateCouncilDuration(_db);
39
40
  return _db;
40
41
  }
42
+ // Adds duration_ms column to council_outcomes if it doesn't exist (v1.2.3 migration)
43
+ function migrateCouncilDuration(db) {
44
+ const cols = db.prepare('PRAGMA table_info(council_outcomes)').all();
45
+ const names = new Set(cols.map(c => c.name));
46
+ if (!names.has('duration_ms'))
47
+ db.exec('ALTER TABLE council_outcomes ADD COLUMN duration_ms INTEGER DEFAULT 0');
48
+ }
41
49
  // Adds active_client, last_resumed_at, and connection_type columns if they don't exist
42
50
  function migrateSessionColumns(db) {
43
51
  const cols = db.prepare('PRAGMA table_info(sessions)').all();
@@ -132,9 +140,9 @@ export function saveCouncilOutcome(input) {
132
140
  const now = new Date().toISOString();
133
141
  db.prepare(`
134
142
  INSERT INTO council_outcomes
135
- (id, session_id, task, verdict, lead_dev, pm, architect, ux, devil, legal, security, recommended, debated_at)
136
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
137
- `).run(id, input.session_id ?? null, input.task, input.verdict, input.lead_dev, input.pm, input.architect, input.ux, input.devil, input.legal, input.security, input.recommended, now);
143
+ (id, session_id, task, verdict, lead_dev, pm, architect, ux, devil, legal, security, recommended, debated_at, duration_ms)
144
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
145
+ `).run(id, input.session_id ?? null, input.task, input.verdict, input.lead_dev, input.pm, input.architect, input.ux, input.devil, input.legal, input.security, input.recommended, now, input.duration_ms ?? 0);
138
146
  return id;
139
147
  }
140
148
  export function storeKnowledge(input) {
@@ -168,8 +176,9 @@ export function searchKnowledge(opts) {
168
176
  const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
169
177
  const rows = db.prepare(`SELECT * FROM knowledge_base ${where} ORDER BY relevance DESC, accessed_count DESC, created_at DESC LIMIT ?`).all(...params, limit);
170
178
  if (rows.length > 0 && opts.query) {
171
- const ids = rows.map(r => `'${r.id}'`).join(',');
172
- db.exec(`UPDATE knowledge_base SET accessed_count = accessed_count + 1 WHERE id IN (${ids})`);
179
+ const updateStmt = db.prepare('UPDATE knowledge_base SET accessed_count = accessed_count + 1 WHERE id = ?');
180
+ for (const row of rows)
181
+ updateStmt.run(row.id);
173
182
  }
174
183
  return rows;
175
184
  }
@@ -240,7 +249,7 @@ export function getContextStatus(session_id) {
240
249
  }
241
250
  // ─── Docs Cache ───────────────────────────────────────────────────────────────
242
251
  const DOCS_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
243
- export async function fetchAndCacheDocs(package_name, ecosystem, version, max_chars = 8000) {
252
+ export async function fetchAndCacheDocs(package_name, ecosystem, version, max_chars = 8000, agentVersion = '1.0.0') {
244
253
  const db = getDb();
245
254
  // Check cache first
246
255
  const cached = db.prepare('SELECT * FROM docs_cache WHERE package_name = ? AND ecosystem = ? ORDER BY fetched_at DESC LIMIT 1').get(package_name, ecosystem);
@@ -277,7 +286,7 @@ export async function fetchAndCacheDocs(package_name, ecosystem, version, max_ch
277
286
  else {
278
287
  const res = await fetch(`https://crates.io/api/v1/crates/${encodeURIComponent(package_name)}`, {
279
288
  signal: controller.signal,
280
- headers: { 'User-Agent': 'veto-mcp/1.1.0' },
289
+ headers: { 'User-Agent': `veto-mcp/${agentVersion}` },
281
290
  });
282
291
  if (!res.ok)
283
292
  return null;
@@ -378,8 +387,6 @@ export function getAuditLog(opts = {}) {
378
387
  }
379
388
  const councilRows = db.prepare(`SELECT id, session_id, task, verdict, recommended, debated_at FROM council_outcomes WHERE ${councilWhere.join(' AND ')} ORDER BY debated_at DESC LIMIT ?`).all(...councilParams, limit);
380
389
  for (const r of councilRows) {
381
- if (opts.agent)
382
- continue; // council events don't have a single agent
383
390
  events.push({ timestamp: r.debated_at, event_type: 'council', session_id: r.session_id, agent: null, verdict: r.verdict, summary: r.task.slice(0, 100), affected_files: null });
384
391
  }
385
392
  // Decisions
@@ -403,16 +410,9 @@ export function getAuditLog(opts = {}) {
403
410
  export function getHealthStats() {
404
411
  const db = getDb();
405
412
  const count = (table) => db.prepare(`SELECT COUNT(*) as n FROM ${table}`).get().n;
406
- // Avg latency: approximate from 10 most recent council outcomes (debated_at timestamps as proxy)
407
- const latencyRows = db.prepare('SELECT debated_at FROM council_outcomes ORDER BY debated_at DESC LIMIT 10').all();
408
- let avg_council_latency_ms = null;
409
- if (latencyRows.length >= 2) {
410
- const diffs = [];
411
- for (let i = 0; i < latencyRows.length - 1; i++) {
412
- diffs.push(Math.abs(new Date(latencyRows[i].debated_at).getTime() - new Date(latencyRows[i + 1].debated_at).getTime()));
413
- }
414
- avg_council_latency_ms = Math.round(diffs.reduce((a, b) => a + b, 0) / diffs.length);
415
- }
413
+ // Avg latency: average of actual recorded debate durations
414
+ const latencyRow = db.prepare('SELECT AVG(duration_ms) as avg_ms, COUNT(*) as n FROM council_outcomes WHERE duration_ms > 0').get();
415
+ const avg_council_latency_ms = latencyRow.n > 0 && latencyRow.avg_ms != null ? Math.round(latencyRow.avg_ms) : null;
416
416
  return {
417
417
  total_sessions: count('sessions'),
418
418
  total_memories: count('knowledge_base'),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/memory/local.ts"],"names":[],"mappings":"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"}