@jigyasudham/veto 2.0.2 → 2.1.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 (105) hide show
  1. package/README.md +391 -320
  2. package/dist/agents/executor.d.ts.map +1 -1
  3. package/dist/agents/executor.js +3 -1
  4. package/dist/agents/executor.js.map +1 -1
  5. package/dist/agents/llm-runner.d.ts.map +1 -1
  6. package/dist/agents/llm-runner.js +62 -58
  7. package/dist/agents/llm-runner.js.map +1 -1
  8. package/dist/cli.js +40 -4
  9. package/dist/cli.js.map +1 -1
  10. package/dist/log.d.ts +9 -0
  11. package/dist/log.d.ts.map +1 -0
  12. package/dist/log.js +33 -0
  13. package/dist/log.js.map +1 -0
  14. package/dist/memory/config.d.ts +1 -0
  15. package/dist/memory/config.d.ts.map +1 -1
  16. package/dist/memory/config.js +3 -2
  17. package/dist/memory/config.js.map +1 -1
  18. package/dist/memory/local.d.ts.map +1 -1
  19. package/dist/memory/local.js +3 -1
  20. package/dist/memory/local.js.map +1 -1
  21. package/dist/memory/schema.d.ts +1 -1
  22. package/dist/memory/schema.d.ts.map +1 -1
  23. package/dist/memory/schema.js +1 -0
  24. package/dist/memory/schema.js.map +1 -1
  25. package/dist/router/learning-updater.d.ts +4 -1
  26. package/dist/router/learning-updater.d.ts.map +1 -1
  27. package/dist/router/learning-updater.js +10 -0
  28. package/dist/router/learning-updater.js.map +1 -1
  29. package/dist/server/handlers/advisors.d.ts +3 -0
  30. package/dist/server/handlers/advisors.d.ts.map +1 -0
  31. package/dist/server/handlers/advisors.js +331 -0
  32. package/dist/server/handlers/advisors.js.map +1 -0
  33. package/dist/server/handlers/agents.d.ts +3 -0
  34. package/dist/server/handlers/agents.d.ts.map +1 -0
  35. package/dist/server/handlers/agents.js +202 -0
  36. package/dist/server/handlers/agents.js.map +1 -0
  37. package/dist/server/handlers/core.d.ts +3 -0
  38. package/dist/server/handlers/core.d.ts.map +1 -0
  39. package/dist/server/handlers/core.js +169 -0
  40. package/dist/server/handlers/core.js.map +1 -0
  41. package/dist/server/handlers/council.d.ts +3 -0
  42. package/dist/server/handlers/council.d.ts.map +1 -0
  43. package/dist/server/handlers/council.js +277 -0
  44. package/dist/server/handlers/council.js.map +1 -0
  45. package/dist/server/handlers/devtools.d.ts +3 -0
  46. package/dist/server/handlers/devtools.d.ts.map +1 -0
  47. package/dist/server/handlers/devtools.js +41 -0
  48. package/dist/server/handlers/devtools.js.map +1 -0
  49. package/dist/server/handlers/generators.d.ts +3 -0
  50. package/dist/server/handlers/generators.d.ts.map +1 -0
  51. package/dist/server/handlers/generators.js +541 -0
  52. package/dist/server/handlers/generators.js.map +1 -0
  53. package/dist/server/handlers/git.d.ts +3 -0
  54. package/dist/server/handlers/git.d.ts.map +1 -0
  55. package/dist/server/handlers/git.js +225 -0
  56. package/dist/server/handlers/git.js.map +1 -0
  57. package/dist/server/handlers/learning.d.ts +3 -0
  58. package/dist/server/handlers/learning.d.ts.map +1 -0
  59. package/dist/server/handlers/learning.js +60 -0
  60. package/dist/server/handlers/learning.js.map +1 -0
  61. package/dist/server/handlers/memory.d.ts +3 -0
  62. package/dist/server/handlers/memory.d.ts.map +1 -0
  63. package/dist/server/handlers/memory.js +181 -0
  64. package/dist/server/handlers/memory.js.map +1 -0
  65. package/dist/server/handlers/observability.d.ts +3 -0
  66. package/dist/server/handlers/observability.d.ts.map +1 -0
  67. package/dist/server/handlers/observability.js +132 -0
  68. package/dist/server/handlers/observability.js.map +1 -0
  69. package/dist/server/handlers/review.d.ts +3 -0
  70. package/dist/server/handlers/review.d.ts.map +1 -0
  71. package/dist/server/handlers/review.js +327 -0
  72. package/dist/server/handlers/review.js.map +1 -0
  73. package/dist/server/handlers/session.d.ts +3 -0
  74. package/dist/server/handlers/session.d.ts.map +1 -0
  75. package/dist/server/handlers/session.js +272 -0
  76. package/dist/server/handlers/session.js.map +1 -0
  77. package/dist/server/handlers/watch.d.ts +3 -0
  78. package/dist/server/handlers/watch.d.ts.map +1 -0
  79. package/dist/server/handlers/watch.js +29 -0
  80. package/dist/server/handlers/watch.js.map +1 -0
  81. package/dist/server/handlers/workers.d.ts +3 -0
  82. package/dist/server/handlers/workers.d.ts.map +1 -0
  83. package/dist/server/handlers/workers.js +27 -0
  84. package/dist/server/handlers/workers.js.map +1 -0
  85. package/dist/server/registry.d.ts +11 -0
  86. package/dist/server/registry.d.ts.map +1 -0
  87. package/dist/server/registry.js +9 -0
  88. package/dist/server/registry.js.map +1 -0
  89. package/dist/server/runtime.d.ts +49 -0
  90. package/dist/server/runtime.d.ts.map +1 -0
  91. package/dist/server/runtime.js +81 -0
  92. package/dist/server/runtime.js.map +1 -0
  93. package/dist/server/scan-core.d.ts +32 -0
  94. package/dist/server/scan-core.d.ts.map +1 -0
  95. package/dist/server/scan-core.js +82 -0
  96. package/dist/server/scan-core.js.map +1 -0
  97. package/dist/server.d.ts +1 -1
  98. package/dist/server.d.ts.map +1 -1
  99. package/dist/server.js +64 -2946
  100. package/dist/server.js.map +1 -1
  101. package/dist/tools/definitions.d.ts +4 -4
  102. package/dist/tools/definitions.js +4 -4
  103. package/dist/tools/definitions.js.map +1 -1
  104. package/package.json +2 -2
  105. package/AGENTS.md +0 -134
@@ -0,0 +1,272 @@
1
+ // Cross-platform session tools: save, restore, list, handoff, continue, replay.
2
+ // These persist and rehydrate the working context that lets a session move
3
+ // between AI clients (claude/gemini/codex). They touch the memory layer, the
4
+ // adapters (handoff/continue), and the shared runtime state (autoSave,
5
+ // active-project-dir). veto_session_save also uses the MCP server for sampling-
6
+ // based auto-summarization, which arrives via ctx.server.
7
+ import { saveSession, updateSession, restoreSession, listSessions, closeSession, resolveContextWindow, upsertContextUsage, getSessionReplay, } from '../../memory/local.js';
8
+ import { trackTokens } from '../../router/index.js';
9
+ import { handoff, continueSession } from '../../adapters/index.js';
10
+ import { autoSummarizeSession } from '../../council/session-summarizer.js';
11
+ import { autoSave, getActiveProjectDir, setActiveProjectDir } from '../runtime.js';
12
+ export const sessionHandlers = {
13
+ veto_session_save: async ({ args, server }) => {
14
+ const sessionProjectDir = args?.project_dir ? String(args.project_dir) : undefined;
15
+ if (sessionProjectDir)
16
+ setActiveProjectDir(sessionProjectDir);
17
+ const savePlatform = args?.platform ? String(args.platform) : 'claude';
18
+ const shouldAutoSummarize = args?.auto_summarize === true;
19
+ // Auto-summarize: try MCP Sampling first, fall back to agentic prompt for host AI
20
+ let autoSummaryResult = null;
21
+ if (shouldAutoSummarize) {
22
+ autoSummaryResult = await autoSummarizeSession(server, {
23
+ summary: args?.summary ? String(args.summary) : undefined,
24
+ context: args?.context ? String(args.context) : undefined,
25
+ task_state: args?.task_state ? String(args.task_state) : undefined,
26
+ });
27
+ // If agentic prompt returned, short-circuit — return it so the AI can fill it in
28
+ if (autoSummaryResult && 'mode' in autoSummaryResult && autoSummaryResult.mode === 'agentic') {
29
+ return {
30
+ content: [{
31
+ type: 'text',
32
+ text: JSON.stringify({
33
+ success: false,
34
+ auto_summarized: false,
35
+ ...autoSummaryResult,
36
+ }, null, 2),
37
+ }],
38
+ };
39
+ }
40
+ }
41
+ // Enforce size limits — unbounded strings exhaust SQLite page cache and memory
42
+ const SUMMARY_LIMIT = 2_000;
43
+ const CONTEXT_LIMIT = 50_000;
44
+ const TASK_STATE_LIMIT = 20_000;
45
+ const generatedSession = autoSummaryResult && 'auto_summarized' in autoSummaryResult ? autoSummaryResult : null;
46
+ const RAW_SUMMARY = generatedSession?.summary ?? String(args?.summary ?? '');
47
+ const RAW_CONTEXT = generatedSession?.context ?? String(args?.context ?? '');
48
+ const RAW_TASK_STATE = generatedSession?.task_state ?? (args?.task_state ? String(args.task_state) : undefined);
49
+ const saveSummary = RAW_SUMMARY.slice(0, SUMMARY_LIMIT);
50
+ const saveContext = RAW_CONTEXT.slice(0, CONTEXT_LIMIT);
51
+ const saveTaskState = RAW_TASK_STATE ? RAW_TASK_STATE.slice(0, TASK_STATE_LIMIT) : undefined;
52
+ const truncationWarnings = [];
53
+ if (RAW_SUMMARY.length > SUMMARY_LIMIT)
54
+ truncationWarnings.push(`summary truncated to ${SUMMARY_LIMIT} chars (was ${RAW_SUMMARY.length})`);
55
+ if (RAW_CONTEXT.length > CONTEXT_LIMIT)
56
+ truncationWarnings.push(`context truncated to ${CONTEXT_LIMIT} chars (was ${RAW_CONTEXT.length})`);
57
+ if (RAW_TASK_STATE && RAW_TASK_STATE.length > TASK_STATE_LIMIT)
58
+ truncationWarnings.push(`task_state truncated to ${TASK_STATE_LIMIT} chars (was ${RAW_TASK_STATE.length})`);
59
+ const existingId = args?.session_id ? String(args.session_id) : undefined;
60
+ const saveModel = args?.model ? String(args.model) : undefined;
61
+ const sessionInput = {
62
+ summary: saveSummary,
63
+ context: saveContext,
64
+ task_state: saveTaskState,
65
+ platform: savePlatform,
66
+ model: saveModel,
67
+ connection_type: args?.connection_type ? String(args.connection_type) : 'subscription',
68
+ project_dir: sessionProjectDir,
69
+ token_count: typeof args?.token_count === 'number' ? args.token_count : 0,
70
+ tags: Array.isArray(args?.tags) ? args.tags.map(String) : undefined,
71
+ };
72
+ let result;
73
+ let wasUpdate = false;
74
+ if (existingId) {
75
+ const updated = updateSession(existingId, sessionInput);
76
+ if (updated) {
77
+ result = { session_id: updated.session_id, saved_at: updated.saved_at, usage_pct: 0, context_warning: false, continuation_prompt: null };
78
+ wasUpdate = true;
79
+ }
80
+ else {
81
+ result = saveSession(sessionInput);
82
+ }
83
+ }
84
+ else {
85
+ result = saveSession(sessionInput);
86
+ }
87
+ // Cache for auto-save: future veto_status calls with high token_count will re-save this context
88
+ const resolvedWindow = resolveContextWindow(savePlatform, saveModel);
89
+ autoSave.cached = { summary: saveSummary, context: saveContext, task_state: saveTaskState, platform: savePlatform, project_dir: sessionProjectDir, context_window: resolvedWindow };
90
+ autoSave.last_save_at = result.saved_at;
91
+ autoSave.last_session_id = result.session_id;
92
+ // Update live token count so VS Code extension and veto_status reflect it immediately
93
+ const saveTokenCount = typeof args?.token_count === 'number' ? args.token_count : 0;
94
+ if (saveTokenCount > 0) {
95
+ trackTokens(savePlatform, saveTokenCount);
96
+ upsertContextUsage({
97
+ platform: savePlatform,
98
+ model: saveModel,
99
+ token_count: saveTokenCount,
100
+ context_window: resolvedWindow,
101
+ session_id: result.session_id,
102
+ });
103
+ }
104
+ const autoSumFailed = shouldAutoSummarize && !autoSummaryResult;
105
+ const responseObj = {
106
+ success: true,
107
+ message: wasUpdate
108
+ ? `Session updated in-place. ID unchanged: ${result.session_id}`
109
+ : result.context_warning
110
+ ? `⚠️ Context at ${result.usage_pct}% — consider handing off soon.`
111
+ : 'Session saved. Use this ID to restore on any AI platform.',
112
+ session_id: result.session_id,
113
+ saved_at: result.saved_at,
114
+ updated: wasUpdate,
115
+ auto_summarized: autoSummaryResult ? true : false,
116
+ ...(autoSumFailed ? { auto_summarize_warning: 'MCP Sampling unavailable — saved provided values instead. For best results use Claude Code or another host that supports sampling.' } : {}),
117
+ ...(wasUpdate ? {} : { usage_pct: result.usage_pct, context_warning: result.context_warning }),
118
+ ...(truncationWarnings.length > 0 ? { truncation_warnings: truncationWarnings } : {}),
119
+ };
120
+ if (result.continuation_prompt)
121
+ responseObj.continuation_prompt = result.continuation_prompt;
122
+ return { content: [{ type: 'text', text: JSON.stringify(responseObj, null, 2) }] };
123
+ },
124
+ veto_session_restore: ({ args }) => {
125
+ const session_id = String(args?.session_id ?? '');
126
+ const resuming_as = args?.resuming_as ? String(args.resuming_as) : undefined;
127
+ const result = restoreSession(session_id, resuming_as);
128
+ if (!result.found) {
129
+ return {
130
+ content: [
131
+ {
132
+ type: 'text',
133
+ text: JSON.stringify({ success: false, message: `No session found with id: ${session_id}` }, null, 2),
134
+ },
135
+ ],
136
+ isError: true,
137
+ };
138
+ }
139
+ const s = result.session;
140
+ if (s.project_dir)
141
+ setActiveProjectDir(s.project_dir);
142
+ const parsedTaskState = s.task_state ? (() => { try {
143
+ return JSON.parse(s.task_state);
144
+ }
145
+ catch {
146
+ return s.task_state;
147
+ } })() : null;
148
+ const nextAction = (typeof parsedTaskState === 'object' && parsedTaskState !== null)
149
+ ? (parsedTaskState.nextAction ?? parsedTaskState.next_action ?? null)
150
+ : null;
151
+ const resumeInstructions = [
152
+ 'Context restored from previous session. Trust the summary, context, and task_state above — they were written by the AI that last worked on this.',
153
+ 'Do NOT re-read source files to orient yourself. That defeats the purpose of session restore and wastes tokens.',
154
+ 'Only open a file if you are about to EDIT it — not to "verify" or "familiarize yourself" with it.',
155
+ nextAction ? `Start immediately with: ${nextAction}` : 'Read task_state.nextAction (or context) for where to start.',
156
+ 'If context seems stale (e.g. you find a file has changed), read only that file, update the context, and continue.',
157
+ ].join(' ');
158
+ return {
159
+ content: [
160
+ {
161
+ type: 'text',
162
+ text: JSON.stringify({
163
+ success: true,
164
+ resume_instructions: resumeInstructions,
165
+ session_id: s.id,
166
+ created_by: s.platform,
167
+ saved_at: s.started_at,
168
+ project_dir: s.project_dir,
169
+ summary: s.summary,
170
+ context: s.context ? (() => { try {
171
+ return JSON.parse(s.context);
172
+ }
173
+ catch {
174
+ return s.context;
175
+ } })() : null,
176
+ task_state: parsedTaskState,
177
+ token_count: s.token_count,
178
+ }, null, 2),
179
+ },
180
+ ],
181
+ };
182
+ },
183
+ veto_sessions_list: ({ args }) => {
184
+ const limit = Math.min(typeof args?.limit === 'number' ? args.limit : 10, 50);
185
+ const query = args?.query ? String(args.query).trim() : undefined;
186
+ const sessions = listSessions(limit, query);
187
+ return {
188
+ content: [
189
+ {
190
+ type: 'text',
191
+ text: JSON.stringify({
192
+ count: sessions.length,
193
+ sessions: sessions.map((s) => ({
194
+ id: s.id,
195
+ platform: s.platform,
196
+ started_at: s.started_at,
197
+ ended_at: s.ended_at,
198
+ project_dir: s.project_dir,
199
+ summary: s.summary,
200
+ token_count: s.token_count,
201
+ tags: s.tags ? JSON.parse(s.tags) : [],
202
+ })),
203
+ }, null, 2),
204
+ },
205
+ ],
206
+ };
207
+ },
208
+ veto_handoff: ({ args }) => {
209
+ const summary = String(args?.summary ?? '').trim();
210
+ const context = String(args?.context ?? '').trim();
211
+ if (!summary || !context) {
212
+ return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: 'summary and context are required.' }) }], isError: true };
213
+ }
214
+ const handoffPlatform = args?.from_platform ? String(args.from_platform) : 'claude';
215
+ const handoffTaskState = args?.task_state ? String(args.task_state) : undefined;
216
+ const handoffProjectDir = args?.project_dir ? String(args.project_dir) : undefined;
217
+ const result = handoff({
218
+ summary,
219
+ context,
220
+ task_state: handoffTaskState,
221
+ from_platform: handoffPlatform,
222
+ to_platform: args?.to_platform ? String(args.to_platform) : undefined,
223
+ project_dir: handoffProjectDir,
224
+ token_count: typeof args?.token_count === 'number' ? args.token_count : 0,
225
+ });
226
+ // Cache for auto-save
227
+ autoSave.cached = { summary, context, task_state: handoffTaskState, platform: handoffPlatform, project_dir: handoffProjectDir };
228
+ autoSave.last_save_at = result.saved_at;
229
+ autoSave.last_session_id = result.session_id;
230
+ // Close the current session so ended_at is recorded
231
+ if (getActiveProjectDir()) {
232
+ const sessions = listSessions(1);
233
+ if (sessions[0] && sessions[0].id !== result.session_id)
234
+ closeSession(sessions[0].id);
235
+ }
236
+ return { content: [{ type: 'text', text: result.instructions + '\n\n' + JSON.stringify({ session_id: result.session_id, to_platform: result.to_platform, saved_at: result.saved_at, reason: result.reason }, null, 2) }] };
237
+ },
238
+ veto_continue: ({ args }) => {
239
+ const resuming_as = args?.resuming_as ? String(args.resuming_as) : undefined;
240
+ const result = continueSession(args?.session_id ? String(args.session_id) : undefined, resuming_as);
241
+ if (!result.found) {
242
+ return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: result.message }, null, 2) }], isError: true };
243
+ }
244
+ if (result.project_dir)
245
+ setActiveProjectDir(result.project_dir);
246
+ return {
247
+ content: [{
248
+ type: 'text',
249
+ text: result.message + '\n\n' + JSON.stringify({
250
+ session_id: result.session_id,
251
+ created_by: result.platform,
252
+ active_client: result.active_client ?? result.platform,
253
+ summary: result.summary,
254
+ context: result.context,
255
+ task_state: result.task_state,
256
+ next_action: result.next_action,
257
+ project_dir: result.project_dir,
258
+ token_count: result.token_count,
259
+ restored_at: result.restored_at,
260
+ }, null, 2),
261
+ }],
262
+ };
263
+ },
264
+ veto_session_replay: ({ args }) => {
265
+ const sessionId = String(args?.session_id ?? '').trim();
266
+ if (!sessionId)
267
+ return { content: [{ type: 'text', text: 'session_id is required.' }], isError: true };
268
+ const traces = getSessionReplay(sessionId);
269
+ return { content: [{ type: 'text', text: JSON.stringify({ success: true, session_id: sessionId, events: traces }, null, 2) }] };
270
+ },
271
+ };
272
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/server/handlers/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { HandlerMap } from '../registry.js';
2
+ export declare const watchHandlers: HandlerMap;
3
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/watch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,eAAO,MAAM,aAAa,EAAE,UAsB3B,CAAC"}
@@ -0,0 +1,29 @@
1
+ // Filesystem watch tools: start watching a project dir, poll for accumulated
2
+ // change events, and stop a watcher. Pure handlers over the watcher module.
3
+ import { startWatch, pollWatch, stopWatch } from '../../watcher/index.js';
4
+ export const watchHandlers = {
5
+ veto_watch: ({ args }) => {
6
+ const dir = String(args?.project_dir ?? '').trim();
7
+ if (!dir)
8
+ return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: 'project_dir is required.' }) }], isError: true };
9
+ const watch_id = startWatch(dir);
10
+ return { content: [{ type: 'text', text: JSON.stringify({ success: true, watch_id, project_dir: dir, message: `Watching "${dir}". Call veto_watch_poll with watch_id to collect events.` }, null, 2) }] };
11
+ },
12
+ veto_watch_poll: ({ args }) => {
13
+ const watch_id = String(args?.watch_id ?? '').trim();
14
+ if (!watch_id)
15
+ return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: 'watch_id is required.' }) }], isError: true };
16
+ const result = pollWatch(watch_id);
17
+ if (!result.found)
18
+ return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: `No active watcher with id: ${watch_id}` }) }], isError: true };
19
+ return { content: [{ type: 'text', text: JSON.stringify({ success: true, watch_id, project_dir: result.project_dir, event_count: result.events.length, events: result.events }, null, 2) }] };
20
+ },
21
+ veto_watch_stop: ({ args }) => {
22
+ const watch_id = String(args?.watch_id ?? '').trim();
23
+ if (!watch_id)
24
+ return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: 'watch_id is required.' }) }], isError: true };
25
+ const stopped = stopWatch(watch_id);
26
+ return { content: [{ type: 'text', text: JSON.stringify({ success: stopped, message: stopped ? `Watcher ${watch_id} stopped.` : `No watcher found with id: ${watch_id}` }, null, 2) }] };
27
+ },
28
+ };
29
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/server/handlers/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { HandlerMap } from '../registry.js';
2
+ export declare const workerHandlers: HandlerMap;
3
+ //# sourceMappingURL=workers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/workers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,gBAAgB,CAAC;AAQ9D,eAAO,MAAM,cAAc,EAAE,UAuB5B,CAAC"}
@@ -0,0 +1,27 @@
1
+ // Tools that are pure delegations to the 2-phase agentic worker loop
2
+ // (handleAgenticWorker). They need only the call args — no server-local state —
3
+ // which makes them the cleanest first domain to migrate off the switch.
4
+ import { handleAgenticWorker } from '../scan-core.js';
5
+ /** Builds a handler that routes a tool straight to a worker agent. */
6
+ function worker(name, agent, defaultTask) {
7
+ return (ctx) => handleAgenticWorker(name, ctx.args, agent, defaultTask);
8
+ }
9
+ export const workerHandlers = {
10
+ veto_code_review: worker('veto_code_review', 'reviewer', 'Review the following code.'),
11
+ veto_security_scan: worker('veto_security_scan', 'security-scanner', 'Scan the following code for vulnerabilities.'),
12
+ veto_secrets_scan: worker('veto_secrets_scan', 'secrets', 'Scan for exposed secrets.'),
13
+ veto_summarize: worker('veto_summarize', 'documentation', 'Summarize this project/file.'),
14
+ veto_type_coverage: worker('veto_type_coverage', 'reviewer', 'Analyze TypeScript type coverage and suggest improvements.'),
15
+ veto_test_gaps: worker('veto_test_gaps', 'tester', 'Identify untested paths and suggest test cases.'),
16
+ veto_lint_rules: worker('veto_lint_rules', 'reviewer', 'Analyze and generate lint rules.'),
17
+ veto_api_contract: worker('veto_api_contract', 'api', 'Analyze or generate API contracts.'),
18
+ veto_merge_conflict: worker('veto_merge_conflict', 'debugger', 'Resolve git merge conflicts.'),
19
+ veto_translate: worker('veto_translate', 'documentation', 'Translate text.'),
20
+ veto_a11y_advisor: worker('veto_a11y_advisor', 'accessibility', 'Analyze accessibility.'),
21
+ veto_semantic_search: worker('veto_semantic_search', 'search-agent', 'Perform semantic search.'),
22
+ veto_sdd_agent: worker('veto_sdd_agent', 'task-planner', 'Execute SDD actions.'),
23
+ veto_playwright: worker('veto_playwright', 'tester', 'Coordinate Playwright browser session.'),
24
+ // agent type depends on whether a file path was supplied
25
+ veto_explain: (ctx) => handleAgenticWorker('veto_explain', ctx.args, ctx.args?.file_path ? 'coder' : 'debugger', String(ctx.args?.text || 'Explain this.')),
26
+ };
27
+ //# sourceMappingURL=workers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../../src/server/handlers/workers.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,gFAAgF;AAChF,wEAAwE;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAItD,sEAAsE;AACtE,SAAS,MAAM,CAAC,IAAY,EAAE,KAAsB,EAAE,WAAmB;IACvE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,gBAAgB,EAAK,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE,4BAA4B,CAAC;IACzF,kBAAkB,EAAG,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,8CAA8C,CAAC;IACrH,iBAAiB,EAAI,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,CAAC;IACxF,cAAc,EAAO,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,8BAA8B,CAAC;IAC9F,kBAAkB,EAAG,MAAM,CAAC,oBAAoB,EAAE,UAAU,EAAE,4DAA4D,CAAC;IAC3H,cAAc,EAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,iDAAiD,CAAC;IAC1G,eAAe,EAAM,MAAM,CAAC,iBAAiB,EAAE,UAAU,EAAE,kCAAkC,CAAC;IAC9F,iBAAiB,EAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK,EAAE,oCAAoC,CAAC;IAC7F,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,EAAE,UAAU,EAAE,8BAA8B,CAAC;IAC9F,cAAc,EAAO,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,CAAC;IACjF,iBAAiB,EAAI,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,wBAAwB,CAAC;IAC3F,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,EAAE,cAAc,EAAE,0BAA0B,CAAC;IAChG,cAAc,EAAO,MAAM,CAAC,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,CAAC;IACrF,eAAe,EAAM,MAAM,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wCAAwC,CAAC;IAElG,yDAAyD;IACzD,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CACxC,cAAc,EACd,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAC1C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,eAAe,CAAC,CAC1C;CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface ToolContext {
2
+ /** The raw MCP CallToolRequest. */
3
+ request: any;
4
+ /** request.params.arguments, defaulted to {}. */
5
+ args: any;
6
+ /** The MCP Server instance — only needed by handlers that use MCP Sampling. */
7
+ server: any;
8
+ }
9
+ export type ToolHandler = (ctx: ToolContext) => Promise<any> | any;
10
+ export type HandlerMap = Record<string, ToolHandler>;
11
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/server/registry.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,OAAO,EAAE,GAAG,CAAC;IACb,iDAAiD;IACjD,IAAI,EAAE,GAAG,CAAC;IACV,+EAA+E;IAC/E,MAAM,EAAE,GAAG,CAAC;CACb;AAID,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Tool-handler registry types for the incremental server.ts decomposition.
2
+ //
3
+ // Each MCP tool is migrating from the giant switch in server.ts to a per-domain
4
+ // handler module that exports a HandlerMap. server.ts merges those maps and
5
+ // dispatches by name, falling back to the (shrinking) switch for not-yet-migrated
6
+ // tools. Handlers live in their own modules so they are unit-testable — unlike
7
+ // server.ts, which connects stdio at import time.
8
+ export {};
9
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/server/registry.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,gFAAgF;AAChF,4EAA4E;AAC5E,kFAAkF;AAClF,+EAA+E;AAC/E,kDAAkD"}
@@ -0,0 +1,49 @@
1
+ import type { AgentPlan } from '../agents/types.js';
2
+ export declare const VERSION: string;
3
+ export declare function getActiveProjectDir(): string | null;
4
+ export declare function setActiveProjectDir(dir: string | null): void;
5
+ export declare const serverHealth: {
6
+ startTime: number;
7
+ errorCount: number;
8
+ lastError: string | null;
9
+ };
10
+ export interface AutoSaveCache {
11
+ summary: string;
12
+ context: string;
13
+ task_state?: string;
14
+ platform: string;
15
+ project_dir?: string;
16
+ context_window?: number;
17
+ }
18
+ export declare const autoSave: {
19
+ threshold_pct: number;
20
+ cooldown_ms: number;
21
+ last_save_at: string | null;
22
+ last_session_id: string | null;
23
+ cached: AutoSaveCache | null;
24
+ };
25
+ export declare function maybeAutoSave(token_count: number, platform: string, model?: string): {
26
+ triggered: boolean;
27
+ session_id?: string;
28
+ usage_pct?: number;
29
+ };
30
+ export declare function autoStoreCritical(title: string, issues: string[], projectDir?: string, tags?: string[]): void;
31
+ export declare function parsePrdIntoTasks(prd: string, plan: AgentPlan, maxTasks: number): {
32
+ description: string;
33
+ tasks: {
34
+ id: string;
35
+ agent: "coder";
36
+ task: string;
37
+ dependencies: string[];
38
+ }[];
39
+ };
40
+ export declare function buildTaskPlan(description: string, project_dir?: string, max_tasks?: number): Promise<{
41
+ description: string;
42
+ tasks: {
43
+ id: string;
44
+ agent: "coder";
45
+ task: string;
46
+ dependencies: string[];
47
+ }[];
48
+ }>;
49
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,eAAO,MAAM,OAAO,QAAuG,CAAC;AAI5H,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAA6B;AACjF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAA4B;AAGzF,eAAO,MAAM,YAAY;;;eAGJ,MAAM,GAAG,IAAI;CACjC,CAAC;AAGF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,eAAO,MAAM,QAAQ;;;kBAGG,MAAM,GAAG,IAAI;qBACV,MAAM,GAAG,IAAI;YACtB,aAAa,GAAG,IAAI;CACrC,CAAC;AAEF,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAapJ;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,IAAI,CASjH;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;;;;;;;;EAS/E;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,SAAK;;;;;;;;GAQ5F"}
@@ -0,0 +1,81 @@
1
+ // Shared, mutable server runtime state and the small helpers that read/write it.
2
+ //
3
+ // Extracted from server.ts so per-domain handler modules can import this state
4
+ // instead of reaching into server.ts (which they can't — handlers live in their
5
+ // own files now). Behaviour is unchanged: these are the exact definitions that
6
+ // used to be module-locals in server.ts.
7
+ import { readFileSync } from 'node:fs';
8
+ import { dirname, join } from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import { saveSession, storeKnowledge, resolveContextWindow } from '../memory/local.js';
11
+ import { executeOne } from '../agents/executor.js';
12
+ // Package version, read once. Lives here so handler modules can import it without
13
+ // reaching into server.ts.
14
+ const _here = dirname(fileURLToPath(import.meta.url));
15
+ export const VERSION = JSON.parse(readFileSync(join(_here, '../../package.json'), 'utf8')).version;
16
+ // ── Active project directory (set by session/handoff tools, read by others) ──
17
+ let activeProjectDir = null;
18
+ export function getActiveProjectDir() { return activeProjectDir; }
19
+ export function setActiveProjectDir(dir) { activeProjectDir = dir; }
20
+ // ── Server health, surfaced by veto_health ──
21
+ export const serverHealth = {
22
+ startTime: Date.now(),
23
+ errorCount: 0,
24
+ lastError: null,
25
+ };
26
+ export const autoSave = {
27
+ threshold_pct: 70,
28
+ cooldown_ms: 5 * 60 * 1000,
29
+ last_save_at: null,
30
+ last_session_id: null,
31
+ cached: null,
32
+ };
33
+ export function maybeAutoSave(token_count, platform, model) {
34
+ if (!autoSave.cached)
35
+ return { triggered: false };
36
+ const window_size = autoSave.cached.context_window ?? resolveContextWindow(platform, model);
37
+ const usage_pct = Math.round((token_count / window_size) * 100);
38
+ if (usage_pct < autoSave.threshold_pct)
39
+ return { triggered: false };
40
+ if (autoSave.last_save_at) {
41
+ const elapsed = Date.now() - new Date(autoSave.last_save_at).getTime();
42
+ if (elapsed < autoSave.cooldown_ms)
43
+ return { triggered: false };
44
+ }
45
+ const result = saveSession({ ...autoSave.cached, token_count, platform, save_type: 'auto' });
46
+ autoSave.last_save_at = result.saved_at;
47
+ autoSave.last_session_id = result.session_id;
48
+ return { triggered: true, session_id: result.session_id, usage_pct };
49
+ }
50
+ // ── Critical-failure knowledge auto-store ──
51
+ export function autoStoreCritical(title, issues, projectDir, tags = []) {
52
+ storeKnowledge({
53
+ type: 'error',
54
+ title,
55
+ content: issues.join('\n'),
56
+ tags: ['critical', 'failure', ...tags],
57
+ project_dir: projectDir,
58
+ relevance: 1.0,
59
+ });
60
+ }
61
+ // ── Task planning ──
62
+ export function parsePrdIntoTasks(prd, plan, maxTasks) {
63
+ const lines = plan.steps;
64
+ const tasks = lines.slice(0, maxTasks).map((line, i) => ({
65
+ id: `task-${i + 1}`,
66
+ agent: 'coder',
67
+ task: line,
68
+ dependencies: i > 0 ? [`task-${i}`] : [],
69
+ }));
70
+ return { description: prd, tasks };
71
+ }
72
+ export async function buildTaskPlan(description, project_dir, max_tasks = 10) {
73
+ const result = await executeOne({
74
+ id: 'planner-1',
75
+ agent: 'task-planner',
76
+ task: description,
77
+ project_dir,
78
+ });
79
+ return parsePrdIntoTasks(description, result.plan, max_tasks);
80
+ }
81
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { AgentResult, AgenticAgentPrompt, WorkerAgentType } from '../agents/types.js';
2
+ /**
3
+ * Reads a git diff for the review tools. Default: working-tree vs HEAD, falling
4
+ * back to staged changes. With stagedOnly=true (pre-commit / commit-message
5
+ * semantics) it returns staged changes only. Returns '' on any failure or when
6
+ * there are no changes — callers decide how to report "nothing to review".
7
+ */
8
+ export declare function readGitDiff(projectDir: string | undefined, stagedOnly?: boolean): string;
9
+ export declare function runTripleScan(diff: string, context: string, llm_backed?: boolean, agent_outputs?: Record<string, unknown>): Promise<{
10
+ reviewResult: AgentResult;
11
+ secResult: AgentResult;
12
+ secretsResult: AgentResult;
13
+ verdict: string;
14
+ } | {
15
+ mode: "agentic_loop";
16
+ instruction: string;
17
+ prompts: AgenticAgentPrompt[];
18
+ }>;
19
+ export declare function finalizeTripleScan(reviewResult: AgentResult, secResult: AgentResult, secretsResult: AgentResult): {
20
+ reviewResult: AgentResult;
21
+ secResult: AgentResult;
22
+ secretsResult: AgentResult;
23
+ verdict: string;
24
+ };
25
+ /** Handles the 2-phase agentic loop for single worker-agent tools. */
26
+ export declare function handleAgenticWorker(name: string, args: any, agentType: WorkerAgentType, defaultTask: string): Promise<{
27
+ content: {
28
+ type: string;
29
+ text: string;
30
+ }[];
31
+ }>;
32
+ //# sourceMappingURL=scan-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-core.d.ts","sourceRoot":"","sources":["../../src/server/scan-core.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKtG;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,UAAQ,GAAG,MAAM,CAUtF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,UAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;GAoB5H;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;;;;;EAQ/G;AAED,sEAAsE;AACtE,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM;;;;;GAqBjH"}