@jigyasudham/veto 1.4.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/AGENTS.md +134 -0
  2. package/README.md +26 -144
  3. package/dist/adapters/index.d.ts +3 -2
  4. package/dist/adapters/index.d.ts.map +1 -1
  5. package/dist/adapters/index.js +105 -1
  6. package/dist/adapters/index.js.map +1 -1
  7. package/dist/agents/executor.d.ts +2 -0
  8. package/dist/agents/executor.d.ts.map +1 -1
  9. package/dist/agents/executor.js +50 -3
  10. package/dist/agents/executor.js.map +1 -1
  11. package/dist/agents/llm-runner.d.ts +11 -0
  12. package/dist/agents/llm-runner.d.ts.map +1 -0
  13. package/dist/agents/llm-runner.js +252 -0
  14. package/dist/agents/llm-runner.js.map +1 -0
  15. package/dist/agents/local-llm.d.ts +14 -0
  16. package/dist/agents/local-llm.d.ts.map +1 -0
  17. package/dist/agents/local-llm.js +51 -0
  18. package/dist/agents/local-llm.js.map +1 -0
  19. package/dist/agents/manifest.d.ts +13 -0
  20. package/dist/agents/manifest.d.ts.map +1 -0
  21. package/dist/agents/manifest.js +55 -0
  22. package/dist/agents/manifest.js.map +1 -0
  23. package/dist/agents/quality/clone-detector.d.ts +16 -0
  24. package/dist/agents/quality/clone-detector.d.ts.map +1 -0
  25. package/dist/agents/quality/clone-detector.js +72 -0
  26. package/dist/agents/quality/clone-detector.js.map +1 -0
  27. package/dist/agents/types.d.ts +15 -0
  28. package/dist/agents/types.d.ts.map +1 -1
  29. package/dist/agents/validate.d.ts +11 -0
  30. package/dist/agents/validate.d.ts.map +1 -0
  31. package/dist/agents/validate.js +54 -0
  32. package/dist/agents/validate.js.map +1 -0
  33. package/dist/cli.js +331 -21
  34. package/dist/cli.js.map +1 -1
  35. package/dist/council/llm-council.d.ts.map +1 -1
  36. package/dist/council/llm-council.js +10 -9
  37. package/dist/council/llm-council.js.map +1 -1
  38. package/dist/council/types.d.ts +2 -0
  39. package/dist/council/types.d.ts.map +1 -1
  40. package/dist/memory/local.d.ts +12 -1
  41. package/dist/memory/local.d.ts.map +1 -1
  42. package/dist/memory/local.js +56 -2
  43. package/dist/memory/local.js.map +1 -1
  44. package/dist/memory/schema.d.ts +28 -43
  45. package/dist/memory/schema.d.ts.map +1 -1
  46. package/dist/memory/schema.js +31 -0
  47. package/dist/memory/schema.js.map +1 -1
  48. package/dist/memory/sync.d.ts +13 -0
  49. package/dist/memory/sync.d.ts.map +1 -1
  50. package/dist/memory/sync.js +113 -0
  51. package/dist/memory/sync.js.map +1 -1
  52. package/dist/repo-map/ignore.d.ts +8 -0
  53. package/dist/repo-map/ignore.d.ts.map +1 -0
  54. package/dist/repo-map/ignore.js +65 -0
  55. package/dist/repo-map/ignore.js.map +1 -0
  56. package/dist/repo-map/index.d.ts +29 -0
  57. package/dist/repo-map/index.d.ts.map +1 -0
  58. package/dist/repo-map/index.js +240 -0
  59. package/dist/repo-map/index.js.map +1 -0
  60. package/dist/router/context-compressor.d.ts +1 -1
  61. package/dist/router/context-compressor.d.ts.map +1 -1
  62. package/dist/router/context-compressor.js +9 -3
  63. package/dist/router/context-compressor.js.map +1 -1
  64. package/dist/router/index.d.ts +8 -3
  65. package/dist/router/index.d.ts.map +1 -1
  66. package/dist/router/index.js +20 -4
  67. package/dist/router/index.js.map +1 -1
  68. package/dist/router/learning-updater.d.ts +41 -0
  69. package/dist/router/learning-updater.d.ts.map +1 -1
  70. package/dist/router/learning-updater.js +62 -0
  71. package/dist/router/learning-updater.js.map +1 -1
  72. package/dist/router/model-selector.d.ts +4 -1
  73. package/dist/router/model-selector.d.ts.map +1 -1
  74. package/dist/router/model-selector.js +24 -28
  75. package/dist/router/model-selector.js.map +1 -1
  76. package/dist/server.js +3121 -1655
  77. package/dist/server.js.map +1 -1
  78. package/dist/tools/definitions.d.ts +1205 -171
  79. package/dist/tools/definitions.d.ts.map +1 -1
  80. package/dist/tools/definitions.js +678 -4
  81. package/dist/tools/definitions.js.map +1 -1
  82. package/dist/watcher/index.d.ts +1 -0
  83. package/dist/watcher/index.d.ts.map +1 -1
  84. package/dist/watcher/index.js +7 -6
  85. package/dist/watcher/index.js.map +1 -1
  86. package/dist/workflow/pipeline.d.ts +12 -2
  87. package/dist/workflow/pipeline.d.ts.map +1 -1
  88. package/dist/workflow/pipeline.js +395 -16
  89. package/dist/workflow/pipeline.js.map +1 -1
  90. package/p7.ts +6 -0
  91. package/package.json +8 -4
@@ -379,6 +379,14 @@ export declare const TOOL_DEFINITIONS: readonly [{
379
379
  readonly enum: readonly ["fast", "standard", "strict"];
380
380
  readonly description: "Council depth. fast: 3 core agents (dev + architect + security), instant. standard: all 7 agents (default). strict: all 7 + Devil's Advocate rebuttal round on the most critical blocker.";
381
381
  };
382
+ readonly architect_model: {
383
+ readonly type: "string";
384
+ readonly description: "Optional: override model used for the architecture/planning phase (e.g. claude-3-7-sonnet).";
385
+ };
386
+ readonly editor_model: {
387
+ readonly type: "string";
388
+ readonly description: "Optional: override model used for the editing/execution phase (e.g. claude-3-5-haiku).";
389
+ };
382
390
  };
383
391
  readonly required: readonly ["task"];
384
392
  };
@@ -452,6 +460,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
452
460
  readonly inputSchema: {
453
461
  readonly type: "object";
454
462
  readonly properties: {
463
+ readonly agent_response: {
464
+ readonly type: "object";
465
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
466
+ };
455
467
  readonly agent: {
456
468
  readonly type: "string";
457
469
  readonly description: "The worker agent to consult.";
@@ -469,6 +481,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
469
481
  readonly type: "string";
470
482
  readonly description: "Optional: absolute path to the project directory. Auto-injects package.json, git diff, and stack info into the agent context.";
471
483
  };
484
+ readonly llm_backed: {
485
+ readonly type: "boolean";
486
+ readonly description: "If true, routes the task through the LLM runner for deep reasoning instead of using the deterministic pattern engine.";
487
+ };
472
488
  };
473
489
  readonly required: readonly ["agent", "task"];
474
490
  };
@@ -520,6 +536,22 @@ export declare const TOOL_DEFINITIONS: readonly [{
520
536
  readonly type: "number";
521
537
  readonly description: "Optional: token budget for this parallel execution. Veto estimates combined output tokens and warns if the estimate exceeds this limit. Logged to usage_log.";
522
538
  };
539
+ readonly architect_model: {
540
+ readonly type: "string";
541
+ readonly description: "Optional: override model used for the architecture/planning phase (e.g. claude-3-7-sonnet).";
542
+ };
543
+ readonly editor_model: {
544
+ readonly type: "string";
545
+ readonly description: "Optional: override model used for the editing/execution phase (e.g. claude-3-5-haiku).";
546
+ };
547
+ readonly llm_backed: {
548
+ readonly type: "boolean";
549
+ readonly description: "If true, uses the agentic loop to run these agents via the host AI. Required for Phase 2 LLM-backed reasoning.";
550
+ };
551
+ readonly agent_outputs: {
552
+ readonly type: "object";
553
+ readonly description: "Phase 2 responses from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
554
+ };
523
555
  };
524
556
  readonly required: readonly ["tasks"];
525
557
  };
@@ -529,6 +561,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
529
561
  readonly inputSchema: {
530
562
  readonly type: "object";
531
563
  readonly properties: {
564
+ readonly agent_responses: {
565
+ readonly type: "object";
566
+ readonly description: "Phase 2 responses for council and agents.";
567
+ };
532
568
  readonly description: {
533
569
  readonly type: "string";
534
570
  readonly description: "Project description, PRD, or feature brief to parse into tasks.";
@@ -550,6 +586,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
550
586
  readonly inputSchema: {
551
587
  readonly type: "object";
552
588
  readonly properties: {
589
+ readonly agent_response: {
590
+ readonly type: "object";
591
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
592
+ };
553
593
  readonly code: {
554
594
  readonly type: "string";
555
595
  readonly description: "The code to review.";
@@ -571,6 +611,14 @@ export declare const TOOL_DEFINITIONS: readonly [{
571
611
  readonly inputSchema: {
572
612
  readonly type: "object";
573
613
  readonly properties: {
614
+ readonly agent_outputs: {
615
+ readonly type: "object";
616
+ readonly description: "Phase 2 responses from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
617
+ };
618
+ readonly agent_response: {
619
+ readonly type: "object";
620
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
621
+ };
574
622
  readonly diff: {
575
623
  readonly type: "string";
576
624
  readonly description: "The git diff to review. If omitted, Veto runs git diff HEAD in project_dir.";
@@ -592,6 +640,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
592
640
  readonly inputSchema: {
593
641
  readonly type: "object";
594
642
  readonly properties: {
643
+ readonly agent_response: {
644
+ readonly type: "object";
645
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
646
+ };
595
647
  readonly code: {
596
648
  readonly type: "string";
597
649
  readonly description: "The code to scan.";
@@ -613,6 +665,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
613
665
  readonly inputSchema: {
614
666
  readonly type: "object";
615
667
  readonly properties: {
668
+ readonly agent_response: {
669
+ readonly type: "object";
670
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
671
+ };
616
672
  readonly text: {
617
673
  readonly type: "string";
618
674
  readonly description: "The text or code to scan for secrets.";
@@ -630,6 +686,10 @@ export declare const TOOL_DEFINITIONS: readonly [{
630
686
  readonly inputSchema: {
631
687
  readonly type: "object";
632
688
  readonly properties: {
689
+ readonly agent_outputs: {
690
+ readonly type: "object";
691
+ readonly description: "Phase 2 responses from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
692
+ };
633
693
  readonly pr_url: {
634
694
  readonly type: "string";
635
695
  readonly description: "Full GitHub PR URL. e.g. https://github.com/owner/repo/pull/123";
@@ -728,13 +788,18 @@ export declare const TOOL_DEFINITIONS: readonly [{
728
788
  };
729
789
  }, {
730
790
  readonly name: "veto_memory_export";
731
- readonly description: "Exports all local memory (sessions, knowledge, patterns, decisions, project maps) to a portable JSON file. Copy the file to another machine and run veto_memory_import there to resume work. No external services required.";
791
+ readonly description: "Exports all local memory (sessions, knowledge, patterns, decisions, project maps) to a portable JSON or Markdown file. Use markdown for a human-readable VETO_MEMORY.md file.";
732
792
  readonly inputSchema: {
733
793
  readonly type: "object";
734
794
  readonly properties: {
735
795
  readonly output_path: {
736
796
  readonly type: "string";
737
- readonly description: "Where to write the export file. Defaults to ~/.veto/veto-export.json. Use a path on shared storage (Dropbox, OneDrive, USB) to make transfer easy.";
797
+ readonly description: "Where to write the export file. Defaults to ~/.veto/veto-export.json or VETO_MEMORY.md in the project root.";
798
+ };
799
+ readonly format: {
800
+ readonly type: "string";
801
+ readonly enum: readonly ["json", "markdown"];
802
+ readonly description: "Export format: \"json\" for backup/transfer, \"markdown\" for human-readable documentation.";
738
803
  };
739
804
  };
740
805
  readonly required: readonly [];
@@ -937,288 +1002,977 @@ export declare const TOOL_DEFINITIONS: readonly [{
937
1002
  readonly required: readonly ["session_id"];
938
1003
  };
939
1004
  }, {
940
- readonly name: "veto_workflow";
941
- readonly description: "Runs a sequential agent pipeline with optional pass/fail gates between steps. Each step runs a worker agent; if a gate score is set and the step confidence falls below it, the pipeline stops. Returns per-step results plus an overall verdict (passed/partial/failed).";
1005
+ readonly name: "veto_full_review";
1006
+ readonly description: "Full pre-ship review: runs code review + security scan + secrets scan + quality analysis in parallel, then returns a combined verdict (pass/warn/fail). Use before any merge or deploy when you want richer output than veto_diff_review alone.";
942
1007
  readonly inputSchema: {
943
1008
  readonly type: "object";
944
1009
  readonly properties: {
945
- readonly steps: {
946
- readonly type: "array";
947
- readonly description: "Ordered pipeline steps.";
948
- readonly items: {
949
- readonly type: "object";
950
- readonly properties: {
951
- readonly id: {
952
- readonly type: "string";
953
- readonly description: "Step identifier.";
954
- };
955
- readonly agent: {
956
- readonly type: "string";
957
- readonly description: "Worker agent type.";
958
- };
959
- readonly task: {
960
- readonly type: "string";
961
- readonly description: "Task description for this step.";
962
- };
963
- readonly code: {
964
- readonly type: "string";
965
- readonly description: "Optional code to analyze.";
966
- };
967
- readonly context: {
968
- readonly type: "string";
969
- readonly description: "Optional context.";
970
- };
971
- readonly gate: {
972
- readonly type: "number";
973
- readonly description: "Optional minimum confidence % (0–100) required to proceed to the next step.";
974
- };
975
- };
976
- readonly required: readonly ["id", "agent", "task"];
977
- };
1010
+ readonly agent_outputs: {
1011
+ readonly type: "object";
1012
+ readonly description: "Phase 2 responses from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
978
1013
  };
979
1014
  readonly project_dir: {
980
1015
  readonly type: "string";
981
- readonly description: "Optional project directory auto-injects codebase context into all steps.";
1016
+ readonly description: "Absolute path to project. Reads git diff HEAD automatically.";
1017
+ };
1018
+ readonly diff: {
1019
+ readonly type: "string";
1020
+ readonly description: "Optional: pass a diff string directly instead of reading from project_dir.";
1021
+ };
1022
+ readonly context: {
1023
+ readonly type: "string";
1024
+ readonly description: "Optional: PR description or review context.";
982
1025
  };
983
1026
  };
984
- readonly required: readonly ["steps"];
1027
+ readonly required: readonly [];
985
1028
  };
986
1029
  }, {
987
- readonly name: "veto_watch";
988
- readonly description: "Starts a file watcher on a project directory. Returns a watch_id. Call veto_watch_poll to collect file-change events with recommended agents. Call veto_watch_stop when done.";
1030
+ readonly name: "veto_pre_commit";
1031
+ readonly description: "Pre-commit gate: runs secrets scan (hard block on any finding) + code review in parallel on staged changes. Faster than veto_full_review tuned for commit-time validation. Returns a blocked/warn/pass verdict.";
989
1032
  readonly inputSchema: {
990
1033
  readonly type: "object";
991
1034
  readonly properties: {
1035
+ readonly agent_outputs: {
1036
+ readonly type: "object";
1037
+ readonly description: "Phase 2 responses from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1038
+ };
992
1039
  readonly project_dir: {
993
1040
  readonly type: "string";
994
- readonly description: "Absolute path to the project directory to watch.";
1041
+ readonly description: "Absolute path to project. Reads staged changes (git diff --cached) automatically.";
1042
+ };
1043
+ readonly context: {
1044
+ readonly type: "string";
1045
+ readonly description: "Optional: branch name or additional context.";
995
1046
  };
996
1047
  };
997
1048
  readonly required: readonly ["project_dir"];
998
1049
  };
999
1050
  }, {
1000
- readonly name: "veto_watch_poll";
1001
- readonly description: "Polls for file-change events from an active watcher. Returns accumulated events since last poll (events are cleared on read). Each event includes the file, recommended agent, and suggested veto tool to call.";
1051
+ readonly name: "veto_new_feature";
1052
+ readonly description: "New feature planning pipeline: council governance execution plan task DAG, in sequence. Collapses 3 manual tool calls into 1. RED council verdict stops the pipeline early do not plan what is blocked. Returns council verdict + agent plan + structured task list.";
1002
1053
  readonly inputSchema: {
1003
1054
  readonly type: "object";
1004
1055
  readonly properties: {
1005
- readonly watch_id: {
1056
+ readonly agent_responses: {
1057
+ readonly type: "object";
1058
+ readonly description: "Phase 2 responses for council and agents.";
1059
+ };
1060
+ readonly description: {
1006
1061
  readonly type: "string";
1007
- readonly description: "The watch_id returned by veto_watch.";
1062
+ readonly description: "Feature description or user story.";
1008
1063
  };
1009
- };
1010
- readonly required: readonly ["watch_id"];
1011
- };
1012
- }, {
1013
- readonly name: "veto_watch_stop";
1014
- readonly description: "Stops an active file watcher.";
1015
- readonly inputSchema: {
1016
- readonly type: "object";
1017
- readonly properties: {
1018
- readonly watch_id: {
1064
+ readonly project_dir: {
1019
1065
  readonly type: "string";
1020
- readonly description: "The watch_id returned by veto_watch.";
1066
+ readonly description: "Optional: absolute path to project for context injection.";
1067
+ };
1068
+ readonly context: {
1069
+ readonly type: "string";
1070
+ readonly description: "Optional: constraints, team size, timeline, or architecture notes.";
1021
1071
  };
1022
1072
  };
1023
- readonly required: readonly ["watch_id"];
1073
+ readonly required: readonly ["description"];
1024
1074
  };
1025
1075
  }, {
1026
- readonly name: "veto_ci_gate";
1027
- readonly description: "CI/CD pipeline gate. Runs code review + security scan + secrets scan on a git diff and returns a structured pass/warn/fail verdict with exit code. Ready for GitHub Actions and GitLab CI.";
1076
+ readonly name: "veto_delegate";
1077
+ readonly description: "Delegates a subtask to a specialist agent and returns only a compact summary not the full output. Use when orchestrating multi-step work and you need an agent's conclusion without polluting your context with verbose output. Mirrors the \"boomerang\" delegation pattern.";
1028
1078
  readonly inputSchema: {
1029
1079
  readonly type: "object";
1030
1080
  readonly properties: {
1031
- readonly project_dir: {
1081
+ readonly agent_id: {
1032
1082
  readonly type: "string";
1033
- readonly description: "Absolute project path. Veto reads git diff HEAD automatically.";
1083
+ readonly description: "The specialist agent to delegate to.";
1084
+ readonly enum: readonly ["coder", "tester", "reviewer", "debugger", "refactor", "database", "api", "frontend", "backend", "devops", "performance", "auth", "security-scanner", "documentation", "task-planner", "researcher", "estimator", "risk-assessor"];
1034
1085
  };
1035
- readonly diff: {
1086
+ readonly task: {
1036
1087
  readonly type: "string";
1037
- readonly description: "Optional: pass a diff string directly instead of reading from project_dir.";
1088
+ readonly description: "The subtask to delegate.";
1038
1089
  };
1039
1090
  readonly context: {
1040
1091
  readonly type: "string";
1041
- readonly description: "Optional: PR description or ticket number for context.";
1092
+ readonly description: "Optional context for the agent.";
1042
1093
  };
1043
- readonly fail_on: {
1094
+ readonly project_dir: {
1044
1095
  readonly type: "string";
1045
- readonly enum: readonly ["warn", "fail"];
1046
- readonly description: "Whether WARN counts as a failure (exit code 1). Default: \"fail\" — only FAIL exits non-zero.";
1096
+ readonly description: "Optional: project directory for context injection.";
1097
+ };
1098
+ readonly max_summary_tokens: {
1099
+ readonly type: "number";
1100
+ readonly description: "Max characters in the returned summary (default 500, max 2000).";
1047
1101
  };
1048
1102
  };
1049
- readonly required: readonly ["project_dir"];
1103
+ readonly required: readonly ["agent_id", "task"];
1050
1104
  };
1051
1105
  }, {
1052
- readonly name: "veto_usage_status";
1053
- readonly description: "Live AI usage dashboard. Shows tokens consumed today, requests per platform, subscription vs API usage split, 7-day history, and warnings when approaching limits.";
1054
- readonly inputSchema: {
1055
- readonly type: "object";
1056
- readonly properties: {};
1057
- readonly required: readonly [];
1058
- };
1059
- }, {
1060
- readonly name: "veto_audit_log";
1061
- readonly description: "Queryable log of every council verdict, decision, and session event. Filter by session, agent, verdict, or date. Essential for tracing what happened and why.";
1106
+ readonly name: "veto_prompt_optimizer";
1107
+ readonly description: "Scores a prompt for failure modes (vague role, missing output format, injection-prone, no examples) and returns a rewritten version with improvements. Zero API keys needed uses the local agent loop.";
1062
1108
  readonly inputSchema: {
1063
1109
  readonly type: "object";
1064
1110
  readonly properties: {
1065
- readonly session_id: {
1111
+ readonly prompt: {
1066
1112
  readonly type: "string";
1067
- readonly description: "Filter to a specific session.";
1113
+ readonly description: "The prompt to optimize (system or user prompt).";
1068
1114
  };
1069
- readonly verdict: {
1115
+ readonly role: {
1070
1116
  readonly type: "string";
1071
- readonly description: "Filter by council verdict (GREEN, YELLOW, RED).";
1117
+ readonly description: "Optional 'system' | 'user' (helps tailor analysis).";
1072
1118
  };
1073
- readonly since: {
1119
+ readonly goal: {
1074
1120
  readonly type: "string";
1075
- readonly description: "ISO date only return events after this time.";
1076
- };
1077
- readonly limit: {
1078
- readonly type: "number";
1079
- readonly description: "Max events to return (default 20, max 100).";
1121
+ readonly description: "Optionalwhat the prompt is trying to accomplish.";
1080
1122
  };
1081
1123
  };
1082
- readonly required: readonly [];
1124
+ readonly required: readonly ["prompt"];
1083
1125
  };
1084
1126
  }, {
1085
- readonly name: "veto_platform_setup";
1086
- readonly description: "Returns the exact MCP config and setup steps to connect a specific AI platform to this Veto server.";
1127
+ readonly name: "veto_sre_advisor";
1128
+ readonly description: "Calculates SLO error budget status (remaining %, projected exhaustion) and returns ranked reliability improvements. Error budget math is deterministic; prioritization uses the local agent loop.";
1087
1129
  readonly inputSchema: {
1088
1130
  readonly type: "object";
1089
1131
  readonly properties: {
1090
- readonly platform: {
1091
- readonly type: "string";
1092
- readonly enum: readonly ["claude", "gemini", "codex"];
1093
- readonly description: "The platform to get setup instructions for.";
1132
+ readonly slo_target: {
1133
+ readonly type: "number";
1134
+ readonly description: "SLO target % (e.g. 99.9).";
1094
1135
  };
1095
- readonly veto_server_path: {
1136
+ readonly window_days: {
1137
+ readonly type: "number";
1138
+ readonly description: "Measurement window in days (e.g. 30).";
1139
+ };
1140
+ readonly downtime_minutes: {
1141
+ readonly type: "number";
1142
+ readonly description: "Total downtime minutes in the window.";
1143
+ };
1144
+ readonly incidents: {
1145
+ readonly type: "array";
1146
+ readonly description: "Optional — recent incidents.";
1147
+ readonly items: {
1148
+ readonly type: "object";
1149
+ readonly properties: {
1150
+ readonly date: {
1151
+ readonly type: "string";
1152
+ readonly description: "ISO date of the incident.";
1153
+ };
1154
+ readonly duration_minutes: {
1155
+ readonly type: "number";
1156
+ readonly description: "Duration of the incident in minutes.";
1157
+ };
1158
+ readonly description: {
1159
+ readonly type: "string";
1160
+ readonly description: "Short description of the incident.";
1161
+ };
1162
+ };
1163
+ };
1164
+ };
1165
+ readonly service_name: {
1096
1166
  readonly type: "string";
1097
- readonly description: "Absolute path to the built veto server (dist/server.js).";
1167
+ readonly description: "Optional name of the service.";
1098
1168
  };
1099
1169
  };
1100
- readonly required: readonly ["platform", "veto_server_path"];
1170
+ readonly required: readonly ["slo_target", "window_days", "downtime_minutes"];
1101
1171
  };
1102
1172
  }, {
1103
- readonly name: "veto_plugins";
1104
- readonly description: "Lists all custom agents loaded from ~/.veto/agents/. Drop a .js file there that exports plan(task, context?) to register a new agent available in veto_agent_plan and veto_execute_parallel.";
1105
- readonly inputSchema: {
1106
- readonly type: "object";
1107
- readonly properties: {};
1108
- readonly required: readonly [];
1109
- };
1110
- }, {
1111
- readonly name: "veto_docs_fetch";
1112
- readonly description: "Fetches current, version-accurate documentation for any npm, PyPI, or crates.io package and returns it for injection into agent context. Eliminates hallucinated APIs. Results are cached for 24 hours.";
1173
+ readonly name: "veto_diagram";
1174
+ readonly description: "Generates a Mermaid architecture diagram of the project. Returns diagram text ready to paste into GitHub, Notion, or any Mermaid renderer.";
1113
1175
  readonly inputSchema: {
1114
1176
  readonly type: "object";
1115
1177
  readonly properties: {
1116
- readonly package_name: {
1178
+ readonly project_dir: {
1117
1179
  readonly type: "string";
1118
- readonly description: "Package name (e.g. \"react\", \"requests\", \"serde\").";
1180
+ readonly description: "Absolute path to project.";
1119
1181
  };
1120
- readonly ecosystem: {
1182
+ readonly diagram_type: {
1121
1183
  readonly type: "string";
1122
- readonly enum: readonly ["npm", "pypi", "crates"];
1123
- readonly description: "Package ecosystem.";
1184
+ readonly description: "Diagram type: 'flowchart' | 'classDiagram' | 'sequenceDiagram' | 'C4Context' (default: 'flowchart').";
1124
1185
  };
1125
- readonly version: {
1186
+ readonly focus: {
1126
1187
  readonly type: "string";
1127
- readonly description: "Specific version. Defaults to latest.";
1128
- };
1129
- readonly max_chars: {
1130
- readonly type: "number";
1131
- readonly description: "Max characters to return (default 8000). Higher = more complete docs, more tokens.";
1188
+ readonly description: "Optional what to focus on (e.g. 'data flow', 'auth', 'API').";
1132
1189
  };
1133
1190
  };
1134
- readonly required: readonly ["package_name", "ecosystem"];
1191
+ readonly required: readonly ["project_dir"];
1135
1192
  };
1136
1193
  }, {
1137
- readonly name: "veto_explain";
1138
- readonly description: "Explains a file or raw text using the most appropriate expert agent. Pass file_path to explain a source file, or text to explain an error message, stack trace, or compiler output. Agent is auto-detected from file extension or content.";
1194
+ readonly name: "veto_adr";
1195
+ readonly description: "Converts a veto_council_debate result into a MADR-format Architecture Decision Record (ADR). Writes to docs/decisions/NNNN-<slug>.md if project_dir is provided. Returns the ADR markdown content.";
1139
1196
  readonly inputSchema: {
1140
1197
  readonly type: "object";
1141
1198
  readonly properties: {
1142
- readonly file_path: {
1143
- readonly type: "string";
1144
- readonly description: "Absolute path to the file to explain.";
1145
- };
1146
- readonly text: {
1199
+ readonly task: {
1147
1200
  readonly type: "string";
1148
- readonly description: "Raw text to explain — error messages, stack traces, compiler output, or any code snippet. Automatically routes to debugger agent for error-like content.";
1201
+ readonly description: "The decision/task that was debated.";
1149
1202
  };
1150
- readonly depth: {
1203
+ readonly verdict: {
1151
1204
  readonly type: "string";
1152
- readonly enum: readonly ["overview", "detailed", "line-by-line"];
1153
- readonly description: "Explanation depth. Default: overview.";
1205
+ readonly description: "Council verdict: GREEN/YELLOW/RED/DEADLOCK.";
1154
1206
  };
1155
- readonly context: {
1207
+ readonly recommended: {
1156
1208
  readonly type: "string";
1157
- readonly description: "Optional focus area or context.";
1209
+ readonly description: "The recommended approach from the council.";
1158
1210
  };
1159
- };
1160
- readonly required: readonly [];
1161
- };
1162
- }, {
1163
- readonly name: "veto_summarize";
1164
- readonly description: "Generates a concise expert briefing of a project, directory, or file. Use at the start of a session to orient yourself on unfamiliar code. Returns bullet-point summary, key components, tech stack, and entry points. Faster and higher-level than veto_explain.";
1165
- readonly inputSchema: {
1166
- readonly type: "object";
1167
- readonly properties: {
1168
- readonly project_dir: {
1211
+ readonly rationale: {
1169
1212
  readonly type: "string";
1170
- readonly description: "Absolute path to a project directory to summarize.";
1213
+ readonly description: "Optional additional rationale or context.";
1171
1214
  };
1172
- readonly file_path: {
1215
+ readonly consequences: {
1173
1216
  readonly type: "string";
1174
- readonly description: "Absolute path to a single file to summarize. If both project_dir and file_path are given, file_path takes precedence.";
1217
+ readonly description: "Optional known consequences of this decision.";
1175
1218
  };
1176
- readonly focus: {
1219
+ readonly project_dir: {
1177
1220
  readonly type: "string";
1178
- readonly description: "Optional focus area: e.g. \"security\", \"APIs\", \"data flow\", \"architecture\". Narrows the summary.";
1221
+ readonly description: "Optional path to write the ADR file.";
1179
1222
  };
1180
- readonly format: {
1223
+ readonly outcome_id: {
1181
1224
  readonly type: "string";
1182
- readonly enum: readonly ["brief", "detailed"];
1183
- readonly description: "brief: 4–6 bullet points (default). detailed: paragraph-level prose.";
1225
+ readonly description: "Optional council outcome_id for reference.";
1184
1226
  };
1185
1227
  };
1186
- readonly required: readonly [];
1187
- };
1188
- }, {
1189
- readonly name: "veto_metrics";
1190
- readonly description: "Returns a usage dashboard for the current Veto installation — sessions saved, council debates, quality trend, most-used agents, and knowledge base stats. Zero cost: pure SQLite reads. Great for a weekly health check.";
1191
- readonly inputSchema: {
1192
- readonly type: "object";
1193
- readonly properties: {};
1194
- readonly required: readonly [];
1228
+ readonly required: readonly ["task", "verdict", "recommended"];
1195
1229
  };
1196
1230
  }, {
1197
- readonly name: "veto_git_blame";
1198
- readonly description: "Returns ownership and contribution history for a file or directory total commits, contributor list with commit counts, and last-modified metadata. Uses local git history: instant, zero network.";
1231
+ readonly name: "veto_env_setup";
1232
+ readonly description: "Analyzes project config files (package.json, requirements.txt, .env, etc.) and generates a .env.example with all required environment variables, plus a step-by-step setup guide.";
1199
1233
  readonly inputSchema: {
1200
1234
  readonly type: "object";
1201
1235
  readonly properties: {
1202
1236
  readonly project_dir: {
1203
1237
  readonly type: "string";
1204
- readonly description: "Absolute path to a project directory to analyse.";
1238
+ readonly description: "Absolute path to project.";
1205
1239
  };
1206
- readonly file_path: {
1207
- readonly type: "string";
1208
- readonly description: "Absolute path to a single file. If both are provided, file_path takes precedence.";
1240
+ readonly write_files: {
1241
+ readonly type: "boolean";
1242
+ readonly description: "If true, write .env.example to disk (default false).";
1209
1243
  };
1210
1244
  };
1211
- readonly required: readonly [];
1245
+ readonly required: readonly ["project_dir"];
1212
1246
  };
1213
1247
  }, {
1214
- readonly name: "veto_changelog";
1215
- readonly description: "Generates a structured changelog from git commits since the last tag, grouped by conventional commit type (feat, fix, refactor, etc.). Pure local git no external calls.";
1248
+ readonly name: "veto_commit_message";
1249
+ readonly description: "Generates a conventional-commit message from staged changes (git diff --cached). Returns type, scope, subject, and body following the Conventional Commits specification.";
1216
1250
  readonly inputSchema: {
1217
1251
  readonly type: "object";
1218
1252
  readonly properties: {
1219
1253
  readonly project_dir: {
1220
1254
  readonly type: "string";
1221
- readonly description: "Absolute path to the project directory. Defaults to the active project.";
1255
+ readonly description: "Absolute path to the git repository.";
1256
+ };
1257
+ readonly hint: {
1258
+ readonly type: "string";
1259
+ readonly description: "Optional extra context for the commit (ticket number, motivation, etc.).";
1260
+ };
1261
+ };
1262
+ readonly required: readonly ["project_dir"];
1263
+ };
1264
+ }, {
1265
+ readonly name: "veto_pr_description";
1266
+ readonly description: "Generates a complete GitHub PR description (title, summary, change list, test plan, breaking changes) from git diff main...HEAD. Ready to paste into GitHub or post via veto_pr_post.";
1267
+ readonly inputSchema: {
1268
+ readonly type: "object";
1269
+ readonly properties: {
1270
+ readonly project_dir: {
1271
+ readonly type: "string";
1272
+ readonly description: "Absolute path to the git repository.";
1273
+ };
1274
+ readonly base_branch: {
1275
+ readonly type: "string";
1276
+ readonly description: "Branch to diff against (default: 'main').";
1277
+ };
1278
+ readonly title: {
1279
+ readonly type: "string";
1280
+ readonly description: "Optional PR title hint.";
1281
+ };
1282
+ readonly context: {
1283
+ readonly type: "string";
1284
+ readonly description: "Optional: ticket number, description, or motivation.";
1285
+ };
1286
+ };
1287
+ readonly required: readonly ["project_dir"];
1288
+ };
1289
+ }, {
1290
+ readonly name: "veto_pr_post";
1291
+ readonly description: "Posts veto_pr_review or veto_diff_review findings directly to a GitHub PR as review comments. Requires GITHUB_TOKEN environment variable. Returns the review URL.";
1292
+ readonly inputSchema: {
1293
+ readonly type: "object";
1294
+ readonly properties: {
1295
+ readonly pr_url: {
1296
+ readonly type: "string";
1297
+ readonly description: "GitHub PR URL: https://github.com/owner/repo/pull/123";
1298
+ };
1299
+ readonly findings: {
1300
+ readonly type: "array";
1301
+ readonly description: "Findings from veto_pr_review or veto_diff_review.";
1302
+ readonly items: {
1303
+ readonly type: "object";
1304
+ readonly properties: {
1305
+ readonly severity: {
1306
+ readonly type: "string";
1307
+ readonly description: "Severity: 'critical' | 'high' | 'medium' | 'low'";
1308
+ };
1309
+ readonly message: {
1310
+ readonly type: "string";
1311
+ readonly description: "Finding message.";
1312
+ };
1313
+ readonly location: {
1314
+ readonly type: "string";
1315
+ readonly description: "Optional file:line hint.";
1316
+ };
1317
+ };
1318
+ readonly required: readonly ["severity", "message"];
1319
+ };
1320
+ };
1321
+ readonly body: {
1322
+ readonly type: "string";
1323
+ readonly description: "Optional overall review summary posted as top-level comment.";
1324
+ };
1325
+ readonly event: {
1326
+ readonly type: "string";
1327
+ readonly description: "Review event: 'COMMENT' | 'APPROVE' | 'REQUEST_CHANGES' (default: 'COMMENT').";
1328
+ };
1329
+ };
1330
+ readonly required: readonly ["pr_url", "findings"];
1331
+ };
1332
+ }, {
1333
+ readonly name: "veto_debt_register";
1334
+ readonly description: "Analyzes code quality + git commit frequency to produce a ranked technical debt register. High-churn + low-quality files are highest priority. Returns a prioritized list with debt type, location, and suggested agent.";
1335
+ readonly inputSchema: {
1336
+ readonly type: "object";
1337
+ readonly properties: {
1338
+ readonly project_dir: {
1339
+ readonly type: "string";
1340
+ readonly description: "Absolute path to project.";
1341
+ };
1342
+ readonly max_files: {
1343
+ readonly type: "number";
1344
+ readonly description: "Max files to analyze (default 10, max 30).";
1345
+ };
1346
+ readonly extensions: {
1347
+ readonly type: "array";
1348
+ readonly description: "File extensions to scan (default: ['.ts','.js','.py','.go']).";
1349
+ readonly items: {
1350
+ readonly type: "string";
1351
+ };
1352
+ };
1353
+ };
1354
+ readonly required: readonly ["project_dir"];
1355
+ };
1356
+ }, {
1357
+ readonly name: "veto_doc_gen";
1358
+ readonly description: "Reads a source file and generates JSDoc/TSDoc/docstring comments for all public APIs. Returns the annotated file content.";
1359
+ readonly inputSchema: {
1360
+ readonly type: "object";
1361
+ readonly properties: {
1362
+ readonly file_path: {
1363
+ readonly type: "string";
1364
+ readonly description: "Absolute path to source file.";
1365
+ };
1366
+ readonly style: {
1367
+ readonly type: "string";
1368
+ readonly description: "Documentation style: 'jsdoc', 'tsdoc', 'docstring', or 'auto' (default).";
1369
+ readonly enum: readonly ["jsdoc", "tsdoc", "docstring", "auto"];
1370
+ };
1371
+ };
1372
+ readonly required: readonly ["file_path"];
1373
+ };
1374
+ }, {
1375
+ readonly name: "veto_type_coverage";
1376
+ readonly description: "Scans a TypeScript project for `any`, implicit `any`, and `as any` casts. Suggests specific replacement types using surrounding code context. Flags `any` in auth/security paths as high severity.";
1377
+ readonly inputSchema: {
1378
+ readonly type: "object";
1379
+ readonly properties: {
1380
+ readonly agent_response: {
1381
+ readonly type: "object";
1382
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1383
+ };
1384
+ readonly project_dir: {
1385
+ readonly type: "string";
1386
+ readonly description: "Absolute path to TypeScript project root.";
1387
+ };
1388
+ readonly max_files: {
1389
+ readonly type: "number";
1390
+ readonly description: "Max files to analyze (default 20, max 30).";
1391
+ };
1392
+ };
1393
+ readonly required: readonly ["project_dir"];
1394
+ };
1395
+ }, {
1396
+ readonly name: "veto_test_gaps";
1397
+ readonly description: "Reads a coverage report (lcov/JSON) or scans source files to identify untested paths and suggests concrete test cases.";
1398
+ readonly inputSchema: {
1399
+ readonly type: "object";
1400
+ readonly properties: {
1401
+ readonly agent_response: {
1402
+ readonly type: "object";
1403
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1404
+ };
1405
+ readonly project_dir: {
1406
+ readonly type: "string";
1407
+ readonly description: "Absolute path to project root.";
1408
+ };
1409
+ readonly coverage_report: {
1410
+ readonly type: "string";
1411
+ readonly description: "Optional path to coverage JSON/lcov file.";
1412
+ };
1413
+ readonly source_glob: {
1414
+ readonly type: "string";
1415
+ readonly description: "Optional glob pattern for source files (e.g. \"src/**/*.ts\").";
1416
+ };
1417
+ };
1418
+ readonly required: readonly ["project_dir"];
1419
+ };
1420
+ }, {
1421
+ readonly name: "veto_onboard";
1422
+ readonly description: "Generates a complete new-developer onboarding guide: setup, architecture, key files, how to run tests, first PR checklist.";
1423
+ readonly inputSchema: {
1424
+ readonly type: "object";
1425
+ readonly properties: {
1426
+ readonly project_dir: {
1427
+ readonly type: "string";
1428
+ readonly description: "Absolute path to project root.";
1429
+ };
1430
+ readonly role: {
1431
+ readonly type: "string";
1432
+ readonly description: "Developer role focus, e.g. 'frontend', 'backend', 'fullstack'.";
1433
+ };
1434
+ };
1435
+ readonly required: readonly ["project_dir"];
1436
+ };
1437
+ }, {
1438
+ readonly name: "veto_rca";
1439
+ readonly description: "Stack trace or error description → structured root-cause hypothesis with likely introducing commit. Combines git blame/log with debugger analysis.";
1440
+ readonly inputSchema: {
1441
+ readonly type: "object";
1442
+ readonly properties: {
1443
+ readonly error: {
1444
+ readonly type: "string";
1445
+ readonly description: "Error message or stack trace to analyze.";
1446
+ };
1447
+ readonly project_dir: {
1448
+ readonly type: "string";
1449
+ readonly description: "Git repo root for blame context (optional).";
1450
+ };
1451
+ readonly file_hint: {
1452
+ readonly type: "string";
1453
+ readonly description: "Suspected file path for focused git blame (optional).";
1454
+ };
1455
+ };
1456
+ readonly required: readonly ["error"];
1457
+ };
1458
+ }, {
1459
+ readonly name: "veto_release_notes";
1460
+ readonly description: "Generates user-facing release notes from merged commits since the last git tag. Rewrites dev-speak into plain English (fix: race condition → Login is now more reliable).";
1461
+ readonly inputSchema: {
1462
+ readonly type: "object";
1463
+ readonly properties: {
1464
+ readonly project_dir: {
1465
+ readonly type: "string";
1466
+ readonly description: "Absolute path to the git repository.";
1467
+ };
1468
+ readonly from_ref: {
1469
+ readonly type: "string";
1470
+ readonly description: "Tag or commit to diff from (default: last tag).";
1471
+ };
1472
+ readonly audience: {
1473
+ readonly type: "string";
1474
+ readonly description: "Target audience: 'user' (default) or 'developer'.";
1475
+ readonly enum: readonly ["user", "developer"];
1476
+ };
1477
+ };
1478
+ readonly required: readonly ["project_dir"];
1479
+ };
1480
+ }, {
1481
+ readonly name: "veto_postmortem";
1482
+ readonly description: "Incident description + timeline → blameless postmortem with five-whys RCA, action items, and correlation with past council RED verdicts if available.";
1483
+ readonly inputSchema: {
1484
+ readonly type: "object";
1485
+ readonly properties: {
1486
+ readonly incident: {
1487
+ readonly type: "string";
1488
+ readonly description: "Incident description.";
1489
+ };
1490
+ readonly timeline: {
1491
+ readonly type: "string";
1492
+ readonly description: "Timeline of events (freeform, optional).";
1493
+ };
1494
+ readonly project_dir: {
1495
+ readonly type: "string";
1496
+ readonly description: "Git repo root for audit log correlation (optional).";
1497
+ };
1498
+ readonly service: {
1499
+ readonly type: "string";
1500
+ readonly description: "Service or system name (optional).";
1501
+ };
1502
+ };
1503
+ readonly required: readonly ["incident"];
1504
+ };
1505
+ }, {
1506
+ readonly name: "veto_dep_advisor";
1507
+ readonly description: "Parses package.json/requirements.txt/Cargo.toml lockfile, queries OSV.dev (free, no key) for known vulnerabilities, and returns a risk-ranked upgrade plan with breaking-change flags.";
1508
+ readonly inputSchema: {
1509
+ readonly type: "object";
1510
+ readonly properties: {
1511
+ readonly project_dir: {
1512
+ readonly type: "string";
1513
+ readonly description: "Absolute path to the project directory.";
1514
+ };
1515
+ readonly ecosystem: {
1516
+ readonly type: "string";
1517
+ readonly description: "Package ecosystem: 'npm', 'pypi', 'cargo', or 'auto' (default).";
1518
+ readonly enum: readonly ["npm", "pypi", "cargo", "auto"];
1519
+ };
1520
+ };
1521
+ readonly required: readonly ["project_dir"];
1522
+ };
1523
+ }, {
1524
+ readonly name: "veto_query_advisor";
1525
+ readonly description: "Accepts a SQL query or EXPLAIN ANALYZE output + optional schema → returns rewrite suggestions, CREATE INDEX statements, N+1 detection, and index risk assessment.";
1526
+ readonly inputSchema: {
1527
+ readonly type: "object";
1528
+ readonly properties: {
1529
+ readonly query: {
1530
+ readonly type: "string";
1531
+ readonly description: "SQL query or EXPLAIN ANALYZE output to analyze.";
1532
+ };
1533
+ readonly schema: {
1534
+ readonly type: "string";
1535
+ readonly description: "Optional CREATE TABLE statements or schema description.";
1536
+ };
1537
+ readonly explain_output: {
1538
+ readonly type: "string";
1539
+ readonly description: "Optional EXPLAIN ANALYZE output if available.";
1540
+ };
1541
+ };
1542
+ readonly required: readonly ["query"];
1543
+ };
1544
+ }, {
1545
+ readonly name: "veto_bundle_advisor";
1546
+ readonly description: "Accepts a webpack/Rollup/Vite stats JSON file → top 10 heaviest modules, duplicate packages, code-split candidates, and CDN externalization suggestions.";
1547
+ readonly inputSchema: {
1548
+ readonly type: "object";
1549
+ readonly properties: {
1550
+ readonly stats_file: {
1551
+ readonly type: "string";
1552
+ readonly description: "Absolute path to the bundle stats JSON file (webpack stats format).";
1553
+ };
1554
+ readonly project_dir: {
1555
+ readonly type: "string";
1556
+ readonly description: "Optional absolute path to the project root.";
1557
+ };
1558
+ };
1559
+ readonly required: readonly ["stats_file"];
1560
+ };
1561
+ }, {
1562
+ readonly name: "veto_dead_code";
1563
+ readonly description: "Project-scope dead code detector: unused exports, unreachable branches, stale feature flags (always-true/false constants). Returns council-governed deletion recommendations.";
1564
+ readonly inputSchema: {
1565
+ readonly type: "object";
1566
+ readonly properties: {
1567
+ readonly project_dir: {
1568
+ readonly type: "string";
1569
+ readonly description: "Absolute path to the project root.";
1570
+ };
1571
+ readonly extensions: {
1572
+ readonly type: "array";
1573
+ readonly description: "File extensions to scan (default: ['.ts','.js']).";
1574
+ readonly items: {
1575
+ readonly type: "string";
1576
+ };
1577
+ };
1578
+ };
1579
+ readonly required: readonly ["project_dir"];
1580
+ };
1581
+ }, {
1582
+ readonly name: "veto_hitl_checkpoint";
1583
+ readonly description: "Pauses an agentic workflow and returns a structured approval-request the host AI surfaces to the user. The user's reply in the AI conversation provides the approval signal. Use before destructive operations, RED council verdicts, or bulk deletes.";
1584
+ readonly inputSchema: {
1585
+ readonly type: "object";
1586
+ readonly properties: {
1587
+ readonly stage: {
1588
+ readonly type: "string";
1589
+ readonly description: "Workflow stage name, e.g. \"database-migration\".";
1590
+ };
1591
+ readonly context: {
1592
+ readonly type: "string";
1593
+ readonly description: "What is about to happen and why.";
1594
+ };
1595
+ readonly options: {
1596
+ readonly type: "array";
1597
+ readonly items: {
1598
+ readonly type: "string";
1599
+ };
1600
+ readonly description: "Choices to present (default: ['Approve','Reject','Modify']).";
1601
+ };
1602
+ readonly risk_level: {
1603
+ readonly type: "string";
1604
+ readonly description: "Risk level of the operation.";
1605
+ readonly enum: readonly ["low", "medium", "high", "critical"];
1606
+ };
1607
+ readonly workflow_id: {
1608
+ readonly type: "string";
1609
+ readonly description: "ID of the parent workflow for tracking (optional).";
1610
+ };
1611
+ };
1612
+ readonly required: readonly ["stage", "context"];
1613
+ };
1614
+ }, {
1615
+ readonly name: "veto_openapi_gen";
1616
+ readonly description: "Reads Express/FastAPI/Hono/Fastify route files and generates an OpenAPI 3.1 spec YAML. Returns the spec as a string and optionally writes it to openapi.yaml.";
1617
+ readonly inputSchema: {
1618
+ readonly type: "object";
1619
+ readonly properties: {
1620
+ readonly file_path: {
1621
+ readonly type: "string";
1622
+ readonly description: "Single route file to parse (optional).";
1623
+ };
1624
+ readonly project_dir: {
1625
+ readonly type: "string";
1626
+ readonly description: "Scan all route files in project (optional).";
1627
+ };
1628
+ readonly framework: {
1629
+ readonly type: "string";
1630
+ readonly description: "Framework hint: 'express','fastapi','hono','fastify', or 'auto' (default).";
1631
+ readonly enum: readonly ["express", "fastapi", "hono", "fastify", "auto"];
1632
+ };
1633
+ readonly write_file: {
1634
+ readonly type: "boolean";
1635
+ readonly description: "Write openapi.yaml to project root (optional).";
1636
+ };
1637
+ };
1638
+ readonly required: readonly [];
1639
+ };
1640
+ }, {
1641
+ readonly name: "veto_flag_auditor";
1642
+ readonly description: "SDK-agnostic feature flag auditor — detects LaunchDarkly/Unleash SDK calls AND custom if(flags.X) patterns. Classifies flags as: actively toggled / candidate for removal / orphaned.";
1643
+ readonly inputSchema: {
1644
+ readonly type: "object";
1645
+ readonly properties: {
1646
+ readonly project_dir: {
1647
+ readonly type: "string";
1648
+ readonly description: "Absolute path to the project root.";
1649
+ };
1650
+ readonly sdk: {
1651
+ readonly type: "string";
1652
+ readonly description: "SDK hint: 'launchdarkly','unleash','custom', or 'auto' (default).";
1653
+ };
1654
+ };
1655
+ readonly required: readonly ["project_dir"];
1656
+ };
1657
+ }, {
1658
+ readonly name: "veto_workflow";
1659
+ readonly description: "Runs a sequential agent pipeline with optional pass/fail gates between steps. Each step runs a worker agent; if a gate score is set and the step confidence falls below it, the pipeline stops. Returns per-step results plus an overall verdict (passed/partial/failed).";
1660
+ readonly inputSchema: {
1661
+ readonly type: "object";
1662
+ readonly properties: {
1663
+ readonly steps: {
1664
+ readonly type: "array";
1665
+ readonly description: "Ordered pipeline steps.";
1666
+ readonly items: {
1667
+ readonly type: "object";
1668
+ readonly properties: {
1669
+ readonly id: {
1670
+ readonly type: "string";
1671
+ readonly description: "Step identifier.";
1672
+ };
1673
+ readonly agent: {
1674
+ readonly type: "string";
1675
+ readonly description: "Worker agent type.";
1676
+ };
1677
+ readonly task: {
1678
+ readonly type: "string";
1679
+ readonly description: "Task description for this step.";
1680
+ };
1681
+ readonly code: {
1682
+ readonly type: "string";
1683
+ readonly description: "Optional code to analyze.";
1684
+ };
1685
+ readonly context: {
1686
+ readonly type: "string";
1687
+ readonly description: "Optional context.";
1688
+ };
1689
+ readonly gate: {
1690
+ readonly type: "number";
1691
+ readonly description: "Optional minimum confidence % (0–100) required to proceed to the next step.";
1692
+ };
1693
+ readonly retry_on_fail: {
1694
+ readonly type: "boolean";
1695
+ readonly description: "If true and this step fails its gate, re-run up to max_retries times with prior failure output injected as context.";
1696
+ };
1697
+ readonly max_retries: {
1698
+ readonly type: "number";
1699
+ readonly description: "Max retry attempts when retry_on_fail is true. Default 3, max 5.";
1700
+ };
1701
+ readonly condition: {
1702
+ readonly type: "string";
1703
+ readonly description: "Optional expression evaluated against prior step outputs. If false, this step is skipped. Example: \"security_scan.severity == 'critical'\" or \"code_review.confidence >= 70\". Supported operators: ==, !=, >=, <=, >, <, &&, ||, !";
1704
+ };
1705
+ readonly dependencies: {
1706
+ readonly type: "array";
1707
+ readonly description: "Step IDs that must complete before this step runs (dag mode only).";
1708
+ readonly items: {
1709
+ readonly type: "string";
1710
+ };
1711
+ };
1712
+ };
1713
+ readonly required: readonly ["id", "agent", "task"];
1714
+ };
1715
+ };
1716
+ readonly project_dir: {
1717
+ readonly type: "string";
1718
+ readonly description: "Optional project directory — auto-injects codebase context into all steps.";
1719
+ };
1720
+ readonly mode: {
1721
+ readonly type: "string";
1722
+ readonly enum: readonly ["linear", "dag"];
1723
+ readonly description: "Execution mode. \"linear\" (default) runs steps sequentially. \"dag\" reads dependencies, runs independent steps in parallel, gates dependent steps.";
1724
+ };
1725
+ };
1726
+ readonly required: readonly ["steps"];
1727
+ };
1728
+ }, {
1729
+ readonly name: "veto_watch";
1730
+ readonly description: "Starts a file watcher on a project directory. Returns a watch_id. Call veto_watch_poll to collect file-change events with recommended agents. Call veto_watch_stop when done.";
1731
+ readonly inputSchema: {
1732
+ readonly type: "object";
1733
+ readonly properties: {
1734
+ readonly project_dir: {
1735
+ readonly type: "string";
1736
+ readonly description: "Absolute path to the project directory to watch.";
1737
+ };
1738
+ };
1739
+ readonly required: readonly ["project_dir"];
1740
+ };
1741
+ }, {
1742
+ readonly name: "veto_watch_poll";
1743
+ readonly description: "Polls for file-change events from an active watcher. Returns accumulated events since last poll (events are cleared on read). Each event includes the file, recommended agent, and suggested veto tool to call.";
1744
+ readonly inputSchema: {
1745
+ readonly type: "object";
1746
+ readonly properties: {
1747
+ readonly watch_id: {
1748
+ readonly type: "string";
1749
+ readonly description: "The watch_id returned by veto_watch.";
1750
+ };
1751
+ };
1752
+ readonly required: readonly ["watch_id"];
1753
+ };
1754
+ }, {
1755
+ readonly name: "veto_watch_stop";
1756
+ readonly description: "Stops an active file watcher.";
1757
+ readonly inputSchema: {
1758
+ readonly type: "object";
1759
+ readonly properties: {
1760
+ readonly watch_id: {
1761
+ readonly type: "string";
1762
+ readonly description: "The watch_id returned by veto_watch.";
1763
+ };
1764
+ };
1765
+ readonly required: readonly ["watch_id"];
1766
+ };
1767
+ }, {
1768
+ readonly name: "veto_ci_gate";
1769
+ readonly description: "CI/CD pipeline gate. Runs code review + security scan + secrets scan on a git diff and returns a structured pass/warn/fail verdict with exit code. Ready for GitHub Actions and GitLab CI.";
1770
+ readonly inputSchema: {
1771
+ readonly type: "object";
1772
+ readonly properties: {
1773
+ readonly agent_outputs: {
1774
+ readonly type: "object";
1775
+ readonly description: "Phase 2 responses from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1776
+ };
1777
+ readonly project_dir: {
1778
+ readonly type: "string";
1779
+ readonly description: "Absolute project path. Veto reads git diff HEAD automatically.";
1780
+ };
1781
+ readonly diff: {
1782
+ readonly type: "string";
1783
+ readonly description: "Optional: pass a diff string directly instead of reading from project_dir.";
1784
+ };
1785
+ readonly context: {
1786
+ readonly type: "string";
1787
+ readonly description: "Optional: PR description or ticket number for context.";
1788
+ };
1789
+ readonly fail_on: {
1790
+ readonly type: "string";
1791
+ readonly enum: readonly ["warn", "fail"];
1792
+ readonly description: "Whether WARN counts as a failure (exit code 1). Default: \"fail\" — only FAIL exits non-zero.";
1793
+ };
1794
+ };
1795
+ readonly required: readonly ["project_dir"];
1796
+ };
1797
+ }, {
1798
+ readonly name: "veto_usage_status";
1799
+ readonly description: "Live AI usage dashboard. Shows tokens consumed today, requests per platform, subscription vs API usage split, 7-day history, and warnings when approaching limits.";
1800
+ readonly inputSchema: {
1801
+ readonly type: "object";
1802
+ readonly properties: {};
1803
+ readonly required: readonly [];
1804
+ };
1805
+ }, {
1806
+ readonly name: "veto_audit_log";
1807
+ readonly description: "Queryable log of every council verdict, decision, and session event. Filter by session, agent, verdict, or date. Essential for tracing what happened and why.";
1808
+ readonly inputSchema: {
1809
+ readonly type: "object";
1810
+ readonly properties: {
1811
+ readonly session_id: {
1812
+ readonly type: "string";
1813
+ readonly description: "Filter to a specific session.";
1814
+ };
1815
+ readonly verdict: {
1816
+ readonly type: "string";
1817
+ readonly description: "Filter by council verdict (GREEN, YELLOW, RED).";
1818
+ };
1819
+ readonly since: {
1820
+ readonly type: "string";
1821
+ readonly description: "ISO date — only return events after this time.";
1822
+ };
1823
+ readonly limit: {
1824
+ readonly type: "number";
1825
+ readonly description: "Max events to return (default 20, max 100).";
1826
+ };
1827
+ };
1828
+ readonly required: readonly [];
1829
+ };
1830
+ }, {
1831
+ readonly name: "veto_platform_setup";
1832
+ readonly description: "Returns the exact MCP config and setup steps to connect a specific AI platform to this Veto server.";
1833
+ readonly inputSchema: {
1834
+ readonly type: "object";
1835
+ readonly properties: {
1836
+ readonly platform: {
1837
+ readonly type: "string";
1838
+ readonly enum: readonly ["claude", "gemini", "codex", "copilot", "jetbrains", "windsurf", "zed", "amazonq"];
1839
+ readonly description: "The platform to get setup instructions for.";
1840
+ };
1841
+ readonly veto_server_path: {
1842
+ readonly type: "string";
1843
+ readonly description: "Absolute path to the built veto server (dist/server.js).";
1844
+ };
1845
+ };
1846
+ readonly required: readonly ["platform", "veto_server_path"];
1847
+ };
1848
+ }, {
1849
+ readonly name: "veto_plugins";
1850
+ readonly description: "Lists all custom agents loaded from ~/.veto/agents/. Drop a .js file there that exports plan(task, context?) to register a new agent available in veto_agent_plan and veto_execute_parallel.";
1851
+ readonly inputSchema: {
1852
+ readonly type: "object";
1853
+ readonly properties: {};
1854
+ readonly required: readonly [];
1855
+ };
1856
+ }, {
1857
+ readonly name: "veto_docs_fetch";
1858
+ readonly description: "Fetches current, version-accurate documentation for any npm, PyPI, or crates.io package and returns it for injection into agent context. Eliminates hallucinated APIs. Results are cached for 24 hours.";
1859
+ readonly inputSchema: {
1860
+ readonly type: "object";
1861
+ readonly properties: {
1862
+ readonly package_name: {
1863
+ readonly type: "string";
1864
+ readonly description: "Package name (e.g. \"react\", \"requests\", \"serde\").";
1865
+ };
1866
+ readonly ecosystem: {
1867
+ readonly type: "string";
1868
+ readonly enum: readonly ["npm", "pypi", "crates"];
1869
+ readonly description: "Package ecosystem.";
1870
+ };
1871
+ readonly version: {
1872
+ readonly type: "string";
1873
+ readonly description: "Specific version. Defaults to latest.";
1874
+ };
1875
+ readonly max_chars: {
1876
+ readonly type: "number";
1877
+ readonly description: "Max characters to return (default 8000). Higher = more complete docs, more tokens.";
1878
+ };
1879
+ };
1880
+ readonly required: readonly ["package_name", "ecosystem"];
1881
+ };
1882
+ }, {
1883
+ readonly name: "veto_explain";
1884
+ readonly description: "Explains a file or raw text using the most appropriate expert agent. Pass file_path to explain a source file, or text to explain an error message, stack trace, or compiler output. Agent is auto-detected from file extension or content.";
1885
+ readonly inputSchema: {
1886
+ readonly type: "object";
1887
+ readonly properties: {
1888
+ readonly agent_response: {
1889
+ readonly type: "object";
1890
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1891
+ };
1892
+ readonly file_path: {
1893
+ readonly type: "string";
1894
+ readonly description: "Absolute path to the file to explain.";
1895
+ };
1896
+ readonly text: {
1897
+ readonly type: "string";
1898
+ readonly description: "Raw text to explain — error messages, stack traces, compiler output, or any code snippet. Automatically routes to debugger agent for error-like content.";
1899
+ };
1900
+ readonly depth: {
1901
+ readonly type: "string";
1902
+ readonly enum: readonly ["overview", "detailed", "line-by-line"];
1903
+ readonly description: "Explanation depth. Default: overview.";
1904
+ };
1905
+ readonly context: {
1906
+ readonly type: "string";
1907
+ readonly description: "Optional focus area or context.";
1908
+ };
1909
+ };
1910
+ readonly required: readonly [];
1911
+ };
1912
+ }, {
1913
+ readonly name: "veto_summarize";
1914
+ readonly description: "Generates a concise expert briefing of a project, directory, or file. Use at the start of a session to orient yourself on unfamiliar code. Returns bullet-point summary, key components, tech stack, and entry points. Faster and higher-level than veto_explain.";
1915
+ readonly inputSchema: {
1916
+ readonly type: "object";
1917
+ readonly properties: {
1918
+ readonly agent_response: {
1919
+ readonly type: "object";
1920
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1921
+ };
1922
+ readonly project_dir: {
1923
+ readonly type: "string";
1924
+ readonly description: "Absolute path to a project directory to summarize.";
1925
+ };
1926
+ readonly file_path: {
1927
+ readonly type: "string";
1928
+ readonly description: "Absolute path to a single file to summarize. If both project_dir and file_path are given, file_path takes precedence.";
1929
+ };
1930
+ readonly focus: {
1931
+ readonly type: "string";
1932
+ readonly description: "Optional focus area: e.g. \"security\", \"APIs\", \"data flow\", \"architecture\". Narrows the summary.";
1933
+ };
1934
+ readonly format: {
1935
+ readonly type: "string";
1936
+ readonly enum: readonly ["brief", "detailed"];
1937
+ readonly description: "brief: 4–6 bullet points (default). detailed: paragraph-level prose.";
1938
+ };
1939
+ };
1940
+ readonly required: readonly [];
1941
+ };
1942
+ }, {
1943
+ readonly name: "veto_metrics";
1944
+ readonly description: "Returns a usage dashboard for the current Veto installation — sessions saved, council debates, quality trend, most-used agents, and knowledge base stats. Zero cost: pure SQLite reads. Great for a weekly health check.";
1945
+ readonly inputSchema: {
1946
+ readonly type: "object";
1947
+ readonly properties: {};
1948
+ readonly required: readonly [];
1949
+ };
1950
+ }, {
1951
+ readonly name: "veto_git_blame";
1952
+ readonly description: "Returns ownership and contribution history for a file or directory — total commits, contributor list with commit counts, and last-modified metadata. Uses local git history: instant, zero network.";
1953
+ readonly inputSchema: {
1954
+ readonly type: "object";
1955
+ readonly properties: {
1956
+ readonly project_dir: {
1957
+ readonly type: "string";
1958
+ readonly description: "Absolute path to a project directory to analyse.";
1959
+ };
1960
+ readonly file_path: {
1961
+ readonly type: "string";
1962
+ readonly description: "Absolute path to a single file. If both are provided, file_path takes precedence.";
1963
+ };
1964
+ };
1965
+ readonly required: readonly [];
1966
+ };
1967
+ }, {
1968
+ readonly name: "veto_changelog";
1969
+ readonly description: "Generates a structured changelog from git commits since the last tag, grouped by conventional commit type (feat, fix, refactor, etc.). Pure local git — no external calls.";
1970
+ readonly inputSchema: {
1971
+ readonly type: "object";
1972
+ readonly properties: {
1973
+ readonly project_dir: {
1974
+ readonly type: "string";
1975
+ readonly description: "Absolute path to the project directory. Defaults to the active project.";
1222
1976
  };
1223
1977
  readonly max_entries: {
1224
1978
  readonly type: "number";
@@ -1227,5 +1981,285 @@ export declare const TOOL_DEFINITIONS: readonly [{
1227
1981
  };
1228
1982
  readonly required: readonly [];
1229
1983
  };
1984
+ }, {
1985
+ readonly name: "veto_local_llm";
1986
+ readonly description: "Routes a task to a local LLM (via Ollama or LM Studio) instead of a cloud provider. Useful for privacy-sensitive data or simple, repetitive tasks.";
1987
+ readonly inputSchema: {
1988
+ readonly type: "object";
1989
+ readonly properties: {
1990
+ readonly agent_response: {
1991
+ readonly type: "object";
1992
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
1993
+ };
1994
+ readonly task: {
1995
+ readonly type: "string";
1996
+ readonly description: "The task or prompt.";
1997
+ };
1998
+ readonly model: {
1999
+ readonly type: "string";
2000
+ readonly description: "Local model name (e.g. llama3, mistral).";
2001
+ };
2002
+ readonly provider: {
2003
+ readonly type: "string";
2004
+ readonly enum: readonly ["ollama", "lmstudio"];
2005
+ readonly description: "Local provider.";
2006
+ };
2007
+ };
2008
+ readonly required: readonly ["task"];
2009
+ };
2010
+ }, {
2011
+ readonly name: "veto_clone_detector";
2012
+ readonly description: "Scans the project for duplicated code blocks or structural clones. Returns grouped findings and refactoring suggestions.";
2013
+ readonly inputSchema: {
2014
+ readonly type: "object";
2015
+ readonly properties: {
2016
+ readonly project_dir: {
2017
+ readonly type: "string";
2018
+ readonly description: "Absolute path to project root.";
2019
+ };
2020
+ readonly extensions: {
2021
+ readonly type: "array";
2022
+ readonly items: {
2023
+ readonly type: "string";
2024
+ };
2025
+ readonly description: "File extensions to scan.";
2026
+ };
2027
+ readonly min_lines: {
2028
+ readonly type: "number";
2029
+ readonly description: "Minimum number of identical lines to flag (default 5).";
2030
+ };
2031
+ };
2032
+ readonly required: readonly ["project_dir"];
2033
+ };
2034
+ }, {
2035
+ readonly name: "veto_lint_rules";
2036
+ readonly description: "Analyzes project coding style and auto-generates or updates ESLint/Prettier/Ruff configurations to match current conventions.";
2037
+ readonly inputSchema: {
2038
+ readonly type: "object";
2039
+ readonly properties: {
2040
+ readonly project_dir: {
2041
+ readonly type: "string";
2042
+ readonly description: "Absolute path to project root.";
2043
+ };
2044
+ readonly tool: {
2045
+ readonly type: "string";
2046
+ readonly enum: readonly ["eslint", "prettier", "ruff"];
2047
+ readonly description: "The linting tool to configure.";
2048
+ };
2049
+ };
2050
+ readonly required: readonly ["project_dir", "tool"];
2051
+ };
2052
+ }, {
2053
+ readonly name: "veto_api_contract";
2054
+ readonly description: "Analyzes API endpoints and generates/verifies API contracts (e.g. OpenAPI or TypeScript types) to ensure front/back compatibility.";
2055
+ readonly inputSchema: {
2056
+ readonly type: "object";
2057
+ readonly properties: {
2058
+ readonly project_dir: {
2059
+ readonly type: "string";
2060
+ readonly description: "Absolute path to project root.";
2061
+ };
2062
+ readonly target: {
2063
+ readonly type: "string";
2064
+ readonly enum: readonly ["generate", "verify"];
2065
+ readonly description: "Action to perform.";
2066
+ };
2067
+ };
2068
+ readonly required: readonly ["project_dir", "target"];
2069
+ };
2070
+ }, {
2071
+ readonly name: "veto_merge_conflict";
2072
+ readonly description: "Analyzes a file with git conflict markers and returns a semantically correct resolution by understanding the intent of both branches.";
2073
+ readonly inputSchema: {
2074
+ readonly type: "object";
2075
+ readonly properties: {
2076
+ readonly file_path: {
2077
+ readonly type: "string";
2078
+ readonly description: "Path to the file containing conflict markers.";
2079
+ };
2080
+ readonly project_dir: {
2081
+ readonly type: "string";
2082
+ readonly description: "Optional project directory for context.";
2083
+ };
2084
+ };
2085
+ readonly required: readonly ["file_path"];
2086
+ };
2087
+ }, {
2088
+ readonly name: "veto_translate";
2089
+ readonly description: "Translates text or structured i18n files (JSON/YAML) to target languages while preserving variables and formatting.";
2090
+ readonly inputSchema: {
2091
+ readonly type: "object";
2092
+ readonly properties: {
2093
+ readonly text: {
2094
+ readonly type: "string";
2095
+ readonly description: "Text to translate (optional if file_path provided).";
2096
+ };
2097
+ readonly file_path: {
2098
+ readonly type: "string";
2099
+ readonly description: "Path to i18n file (optional if text provided).";
2100
+ };
2101
+ readonly target_langs: {
2102
+ readonly type: "array";
2103
+ readonly items: {
2104
+ readonly type: "string";
2105
+ };
2106
+ readonly description: "Target language codes.";
2107
+ };
2108
+ };
2109
+ readonly required: readonly ["target_langs"];
2110
+ };
2111
+ }, {
2112
+ readonly name: "veto_a11y_advisor";
2113
+ readonly description: "Analyzes UI components (React, Vue, HTML) for accessibility (a11y) compliance (WCAG) and provides actionable fix recommendations.";
2114
+ readonly inputSchema: {
2115
+ readonly type: "object";
2116
+ readonly properties: {
2117
+ readonly file_path: {
2118
+ readonly type: "string";
2119
+ readonly description: "Path to the UI component file.";
2120
+ };
2121
+ readonly project_dir: {
2122
+ readonly type: "string";
2123
+ readonly description: "Optional project directory context.";
2124
+ };
2125
+ };
2126
+ readonly required: readonly ["file_path"];
2127
+ };
2128
+ }, {
2129
+ readonly name: "veto_session_replay";
2130
+ readonly description: "Replays an event stream session to restore full conversational context from a past interaction.";
2131
+ readonly inputSchema: {
2132
+ readonly type: "object";
2133
+ readonly properties: {
2134
+ readonly session_id: {
2135
+ readonly type: "string";
2136
+ readonly description: "The session ID to replay.";
2137
+ };
2138
+ };
2139
+ readonly required: readonly ["session_id"];
2140
+ };
2141
+ }, {
2142
+ readonly name: "veto_compose_agents";
2143
+ readonly description: "Creates a custom meta-agent by composing existing agents into a specialized pipeline.";
2144
+ readonly inputSchema: {
2145
+ readonly type: "object";
2146
+ readonly properties: {
2147
+ readonly name: {
2148
+ readonly type: "string";
2149
+ readonly description: "Name of the new composed agent.";
2150
+ };
2151
+ readonly agents: {
2152
+ readonly type: "array";
2153
+ readonly items: {
2154
+ readonly type: "string";
2155
+ };
2156
+ readonly description: "List of base agents to compose.";
2157
+ };
2158
+ readonly workflow: {
2159
+ readonly type: "string";
2160
+ readonly description: "Workflow logic or sequence for the composed agent.";
2161
+ };
2162
+ };
2163
+ readonly required: readonly ["name", "agents", "workflow"];
2164
+ };
2165
+ }, {
2166
+ readonly name: "veto_semantic_search";
2167
+ readonly description: "Local vector index codebase search. Answers natural-language queries over code (e.g. \"where is user authentication handled?\").";
2168
+ readonly inputSchema: {
2169
+ readonly type: "object";
2170
+ readonly properties: {
2171
+ readonly agent_response: {
2172
+ readonly type: "object";
2173
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
2174
+ };
2175
+ readonly query: {
2176
+ readonly type: "string";
2177
+ readonly description: "Natural-language search query.";
2178
+ };
2179
+ readonly project_dir: {
2180
+ readonly type: "string";
2181
+ readonly description: "Absolute path to project root.";
2182
+ };
2183
+ };
2184
+ readonly required: readonly ["query", "project_dir"];
2185
+ };
2186
+ }, {
2187
+ readonly name: "veto_sdd_agent";
2188
+ readonly description: "Spec-Driven Development agent. Provides full SDD loop: spec validation, acceptance criteria generation, and BDD scenario authoring.";
2189
+ readonly inputSchema: {
2190
+ readonly type: "object";
2191
+ readonly properties: {
2192
+ readonly agent_response: {
2193
+ readonly type: "object";
2194
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
2195
+ };
2196
+ readonly spec_file: {
2197
+ readonly type: "string";
2198
+ readonly description: "Path to the specification file.";
2199
+ };
2200
+ readonly project_dir: {
2201
+ readonly type: "string";
2202
+ readonly description: "Absolute path to project root.";
2203
+ };
2204
+ readonly action: {
2205
+ readonly type: "string";
2206
+ readonly enum: readonly ["validate", "generate_ac", "author_bdd"];
2207
+ readonly description: "SDD action to perform.";
2208
+ };
2209
+ };
2210
+ readonly required: readonly ["spec_file", "project_dir", "action"];
2211
+ };
2212
+ }, {
2213
+ readonly name: "veto_playwright";
2214
+ readonly description: "Playwright MCP integration. Coordinates browser sessions for testing, a11y review, and security scanning of UI vulnerabilities.";
2215
+ readonly inputSchema: {
2216
+ readonly type: "object";
2217
+ readonly properties: {
2218
+ readonly agent_response: {
2219
+ readonly type: "object";
2220
+ readonly description: "Phase 2 response from the host AI (JSON). Pass this back when prompted by the server to complete the agentic loop.";
2221
+ };
2222
+ readonly task: {
2223
+ readonly type: "string";
2224
+ readonly description: "Description of the browser task or test scenario.";
2225
+ };
2226
+ readonly project_dir: {
2227
+ readonly type: "string";
2228
+ readonly description: "Absolute path to project root.";
2229
+ };
2230
+ readonly url: {
2231
+ readonly type: "string";
2232
+ readonly description: "Optional starting URL for the browser session.";
2233
+ };
2234
+ };
2235
+ readonly required: readonly ["task", "project_dir"];
2236
+ };
2237
+ }, {
2238
+ readonly name: "veto_notify_ide";
2239
+ readonly description: "Sends a notification or instruction back to the IDE/client. Useful for opening files, showing alerts, or requesting UI actions in bidirectional MCP setups (JetBrains, Zed).";
2240
+ readonly inputSchema: {
2241
+ readonly type: "object";
2242
+ readonly properties: {
2243
+ readonly action: {
2244
+ readonly type: "string";
2245
+ readonly enum: readonly ["open_file", "show_message", "set_status"];
2246
+ readonly description: "Action to request from the IDE.";
2247
+ };
2248
+ readonly path: {
2249
+ readonly type: "string";
2250
+ readonly description: "File path (for open_file).";
2251
+ };
2252
+ readonly message: {
2253
+ readonly type: "string";
2254
+ readonly description: "Message text (for show_message/set_status).";
2255
+ };
2256
+ readonly level: {
2257
+ readonly type: "string";
2258
+ readonly enum: readonly ["info", "warning", "error"];
2259
+ readonly description: "Message severity level.";
2260
+ };
2261
+ };
2262
+ readonly required: readonly ["action"];
2263
+ };
1230
2264
  }];
1231
2265
  //# sourceMappingURL=definitions.d.ts.map