@zigrivers/mmr 0.4.0 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/commands/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAY9D,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,WAAW,CAgK7D,CAAA"}
1
+ {"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/commands/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAQ9D,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,WAAW,CAmD7D,CAAA"}
@@ -1,11 +1,7 @@
1
1
  import path from 'node:path';
2
2
  import os from 'node:os';
3
3
  import { JobStore } from '../core/job-store.js';
4
- import { parseChannelOutput } from '../core/parser.js';
5
- import { reconcile, evaluateGate, deriveVerdict } from '../core/reconciler.js';
6
- import { formatJson } from '../formatters/json.js';
7
- import { formatText } from '../formatters/text.js';
8
- import { formatMarkdown } from '../formatters/markdown.js';
4
+ import { runResultsPipeline } from '../core/results-pipeline.js';
9
5
  import { TERMINAL_STATUSES } from '../types.js';
10
6
  export const resultsCommand = {
11
7
  command: 'results <job-id>',
@@ -47,105 +43,11 @@ export const resultsCommand = {
47
43
  console.error('Wait for completion or use `mmr status` to check progress.');
48
44
  process.exit(1);
49
45
  }
50
- // 2. Parse each channel's output
51
- const channelFindings = {};
52
- const perChannel = {};
53
- const startTimes = [];
54
- const endTimes = [];
55
- for (const [name, entry] of Object.entries(job.channels)) {
56
- if (entry.status !== 'completed') {
57
- perChannel[name] = {
58
- status: entry.status,
59
- elapsed: entry.elapsed ?? '0s',
60
- findings: [],
61
- error: entry.status === 'failed' ? 'Channel failed' : undefined,
62
- };
63
- continue;
64
- }
65
- // Try to load and parse channel output
66
- let raw;
67
- let findings = [];
68
- try {
69
- const output = store.loadChannelOutput(job.job_id, name);
70
- raw = output;
71
- const parserName = entry.output_parser ?? 'default';
72
- const parsed = parseChannelOutput(raw, parserName);
73
- findings = parsed.findings;
74
- }
75
- catch {
76
- // Fall back: no parseable output
77
- raw = '';
78
- }
79
- channelFindings[name] = findings;
80
- const elapsed = entry.started_at && entry.completed_at
81
- ? `${((new Date(entry.completed_at).getTime() - new Date(entry.started_at).getTime()) / 1000).toFixed(1)}s`
82
- : '0s';
83
- if (entry.started_at)
84
- startTimes.push(new Date(entry.started_at).getTime());
85
- if (entry.completed_at)
86
- endTimes.push(new Date(entry.completed_at).getTime());
87
- perChannel[name] = {
88
- status: entry.status,
89
- elapsed,
90
- findings,
91
- raw_output: args.raw ? raw : undefined,
92
- };
93
- }
94
- // 3. Reconcile findings
95
- const reconciledFindings = reconcile(channelFindings);
96
- // 4. Evaluate gate (fail-safe: if no channels completed, gate fails)
97
- const fixThreshold = job.fix_threshold;
98
- const completedChannels = Object.values(job.channels)
99
- .filter((ch) => ch.status === 'completed').length;
100
- const gatePassed = completedChannels > 0
101
- ? evaluateGate(reconciledFindings, fixThreshold)
102
- : false;
103
- // Derive verdict from gate + channel health
104
- const channelStatuses = Object.fromEntries(Object.entries(job.channels).map(([name, ch]) => [name, ch.status]));
105
- const verdict = deriveVerdict(gatePassed, channelStatuses);
106
- // 5. Build ReconciledResults
107
- const totalElapsed = startTimes.length > 0 && endTimes.length > 0
108
- ? `${((Math.max(...endTimes) - Math.min(...startTimes)) / 1000).toFixed(1)}s`
109
- : '0s';
110
- const completedCount = Object.values(job.channels)
111
- .filter((ch) => ch.status === 'completed').length;
112
- const partialCount = Object.values(job.channels)
113
- .filter((ch) => ['failed', 'timeout'].includes(ch.status)).length;
114
- const results = {
115
- job_id: job.job_id,
116
- verdict,
117
- fix_threshold: fixThreshold,
118
- reconciled_findings: reconciledFindings,
119
- per_channel: perChannel,
120
- metadata: {
121
- channels_dispatched: Object.keys(job.channels).length,
122
- channels_completed: completedCount,
123
- channels_partial: partialCount,
124
- total_elapsed: totalElapsed,
125
- },
126
- };
127
- // 6. Format output
46
+ // 2. Run results pipeline (parse -> reconcile -> format)
128
47
  const outputFormat = (args.format ?? job.format ?? 'json');
129
- let formatted;
130
- switch (outputFormat) {
131
- case 'text':
132
- formatted = formatText(results);
133
- break;
134
- case 'markdown':
135
- formatted = formatMarkdown(results);
136
- break;
137
- case 'json':
138
- default:
139
- formatted = formatJson(results);
140
- break;
141
- }
142
- // 7. Save results + output to stdout
48
+ const { results, formatted, exitCode } = runResultsPipeline(store, job, outputFormat, args.raw);
143
49
  store.saveResults(job.job_id, results);
144
50
  console.log(formatted);
145
- // Exit codes: 0=pass/degraded-pass, 2=blocked, 3=needs-user-decision, 5=CLI error
146
- const exitCode = verdict === 'pass' || verdict === 'degraded-pass' ? 0
147
- : verdict === 'needs-user-decision' ? 3
148
- : 2;
149
51
  process.exit(exitCode);
150
52
  },
151
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/commands/results.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/commands/results.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAS/C,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,2DAA2D;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,QAAQ,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,0BAA0B;KACrC,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;KACtC,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,uCAAuC;QACjD,OAAO,EAAE,KAAK;KACf,CAAC;IACN,OAAO,EAAE,CAAC,IAAqC,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEnC,cAAc;QACd,IAAI,GAAG,CAAA;QACP,IAAI,CAAC;YACH,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAW,CAAC,CAAA;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;aACpD,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAExB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,2BAA2B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACzE,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,yDAAyD;QACzD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAiB,CAAA;QAC1E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/F,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAY9D,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAkCD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,UAAU,CAgN3D,CAAA"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAc9D,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAkCD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,UAAU,CA6O3D,CAAA"}
@@ -7,6 +7,8 @@ import { JobStore } from '../core/job-store.js';
7
7
  import { checkInstalled, checkAuth } from '../core/auth.js';
8
8
  import { assemblePrompt } from '../core/prompt.js';
9
9
  import { dispatchChannel } from '../core/dispatcher.js';
10
+ import { runResultsPipeline } from '../core/results-pipeline.js';
11
+ import { getCompensatingChannels, dispatchCompensatingPasses } from '../core/compensator.js';
10
12
  /**
11
13
  * Resolve diff content from the various input modes.
12
14
  * Priority: --diff file/stdin > --pr > --staged > --base/--head > default (unstaged)
@@ -82,11 +84,11 @@ export const reviewCommand = {
82
84
  .option('format', {
83
85
  type: 'string',
84
86
  describe: 'Output format',
85
- choices: ['json', 'text', 'markdown', 'sarif'],
87
+ choices: ['json', 'text', 'markdown'],
86
88
  })
87
89
  .option('sync', {
88
90
  type: 'boolean',
89
- describe: 'Wait for all channels to complete (blocking)',
91
+ describe: 'Run full review pipeline: dispatch, parse, reconcile, and output results with verdict',
90
92
  default: false,
91
93
  }),
92
94
  handler: async (args) => {
@@ -208,18 +210,45 @@ export const reviewCommand = {
208
210
  });
209
211
  }
210
212
  }
211
- // 9. Output dispatch result
212
- const completedJob = store.loadJob(job.job_id);
213
- const result = {
214
- job_id: job.job_id,
215
- status: completedJob.status,
216
- channels: Object.fromEntries(channelNames.map((name) => [
217
- name,
218
- completedJob.channels[name]?.status ?? authResults[name]?.status ?? 'skipped',
219
- ])),
220
- valid_channels: validChannels,
221
- };
222
- console.log(JSON.stringify(result, null, 2));
213
+ // 8b. Dispatch compensating passes for unavailable channels
214
+ const completedJob1 = store.loadJob(job.job_id);
215
+ const channelStatuses = Object.fromEntries(Object.entries(completedJob1.channels).map(([n, ch]) => [n, ch.status]));
216
+ const compensating = getCompensatingChannels(channelStatuses);
217
+ if (compensating.length > 0) {
218
+ // Register compensating channels in job.json so loadJob can discover them
219
+ for (const comp of compensating) {
220
+ store.registerChannel(job.job_id, comp.compensatingName, {
221
+ status: 'dispatched',
222
+ auth: 'ok',
223
+ output_parser: 'default',
224
+ });
225
+ }
226
+ await dispatchCompensatingPasses(store, job.job_id, prompt, compensating, config.defaults.timeout);
227
+ }
228
+ // 9. Output results
229
+ if (args.sync) {
230
+ // --sync: full results pipeline (dispatch -> parse -> reconcile -> format -> exit)
231
+ const completedJob = store.loadJob(job.job_id);
232
+ const outputFormat = (args.format ?? completedJob.format ?? 'json');
233
+ const { results, formatted, exitCode } = runResultsPipeline(store, completedJob, outputFormat);
234
+ store.saveResults(job.job_id, results);
235
+ console.log(formatted);
236
+ process.exit(exitCode);
237
+ }
238
+ else {
239
+ // Default: dispatch summary only
240
+ const completedJob = store.loadJob(job.job_id);
241
+ const result = {
242
+ job_id: job.job_id,
243
+ status: completedJob.status,
244
+ channels: Object.fromEntries(channelNames.map((name) => [
245
+ name,
246
+ completedJob.channels[name]?.status ?? authResults[name]?.status ?? 'skipped',
247
+ ])),
248
+ valid_channels: validChannels,
249
+ };
250
+ console.log(JSON.stringify(result, null, 2));
251
+ }
223
252
  },
224
253
  };
225
254
  //# sourceMappingURL=review.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { JobStore } from './job-store.js';
2
+ import type { ChannelStatus } from '../types.js';
3
+ export interface CompensatingChannel {
4
+ /** Name of the original channel being compensated */
5
+ originalChannel: string;
6
+ /** Name used for the compensating dispatch (e.g., "compensating-codex") */
7
+ compensatingName: string;
8
+ /** Focus prompt to prepend */
9
+ focusPrompt: string;
10
+ }
11
+ /**
12
+ * Determine which channels need compensating passes.
13
+ * Returns a list of compensating channel descriptors.
14
+ */
15
+ export declare function getCompensatingChannels(channelStatuses: Record<string, ChannelStatus>): CompensatingChannel[];
16
+ /**
17
+ * Dispatch compensating passes via claude CLI for unavailable channels.
18
+ * Each compensating pass uses the same prompt but with a focused preamble.
19
+ */
20
+ export declare function dispatchCompensatingPasses(store: JobStore, jobId: string, prompt: string, compensatingChannels: CompensatingChannel[], timeout: number): Promise<void>;
21
+ //# sourceMappingURL=compensator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compensator.d.ts","sourceRoot":"","sources":["../../src/core/compensator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAWhD,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAA;IACvB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAA;IACxB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,mBAAmB,EAAE,CAgBvB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,mBAAmB,EAAE,EAC3C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -0,0 +1,46 @@
1
+ import { dispatchChannel } from './dispatcher.js';
2
+ /** Focus areas for compensating passes, keyed by the channel being compensated */
3
+ const COMPENSATING_FOCUS = {
4
+ codex: 'Focus your review on: implementation correctness, security vulnerabilities, API contract violations, input validation, and error handling. You are compensating for a missing Codex review.',
5
+ gemini: 'Focus your review on: architectural patterns, design consistency, broad-context reasoning, separation of concerns, and dependency analysis. You are compensating for a missing Gemini review.',
6
+ };
7
+ /** Channels that should NOT be compensated (e.g., claude can't compensate for itself) */
8
+ const SKIP_COMPENSATION = new Set(['claude']);
9
+ /**
10
+ * Determine which channels need compensating passes.
11
+ * Returns a list of compensating channel descriptors.
12
+ */
13
+ export function getCompensatingChannels(channelStatuses) {
14
+ const compensating = [];
15
+ for (const [name, status] of Object.entries(channelStatuses)) {
16
+ if (SKIP_COMPENSATION.has(name))
17
+ continue;
18
+ if (status === 'not_installed' || status === 'auth_failed' || status === 'timeout' || status === 'skipped' || status === 'failed') {
19
+ const focus = COMPENSATING_FOCUS[name] ?? `Focus your review on areas typically covered by ${name}. You are compensating for a missing ${name} review.`;
20
+ compensating.push({
21
+ originalChannel: name,
22
+ compensatingName: `compensating-${name}`,
23
+ focusPrompt: focus,
24
+ });
25
+ }
26
+ }
27
+ return compensating;
28
+ }
29
+ /**
30
+ * Dispatch compensating passes via claude CLI for unavailable channels.
31
+ * Each compensating pass uses the same prompt but with a focused preamble.
32
+ */
33
+ export async function dispatchCompensatingPasses(store, jobId, prompt, compensatingChannels, timeout) {
34
+ await Promise.all(compensatingChannels.map((comp) => {
35
+ const compensatingPrompt = `${comp.focusPrompt}\n\n${prompt}`;
36
+ return dispatchChannel(store, jobId, comp.compensatingName, {
37
+ command: 'claude -p',
38
+ prompt: compensatingPrompt,
39
+ flags: ['--output-format', 'json'],
40
+ env: {},
41
+ timeout,
42
+ stderr: 'capture',
43
+ });
44
+ }));
45
+ }
46
+ //# sourceMappingURL=compensator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compensator.js","sourceRoot":"","sources":["../../src/core/compensator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjD,kFAAkF;AAClF,MAAM,kBAAkB,GAA2B;IACjD,KAAK,EAAE,6LAA6L;IACpM,MAAM,EAAE,+LAA+L;CACxM,CAAA;AAED,yFAAyF;AACzF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AAW7C;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,eAA8C;IAE9C,MAAM,YAAY,GAA0B,EAAE,CAAA;IAE9C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QACzC,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClI,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,mDAAmD,IAAI,wCAAwC,IAAI,UAAU,CAAA;YACvJ,YAAY,CAAC,IAAI,CAAC;gBAChB,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;gBACxC,WAAW,EAAE,KAAK;aACnB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAe,EACf,KAAa,EACb,MAAc,EACd,oBAA2C,EAC3C,OAAe;IAEf,MAAM,OAAO,CAAC,GAAG,CACf,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,WAAW,OAAO,MAAM,EAAE,CAAA;QAC7D,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC1D,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC;YAClC,GAAG,EAAE,EAAE;YACP,OAAO;YACP,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
@@ -36,6 +36,8 @@ export declare class JobStore {
36
36
  loadChannelOutput(jobId: string, channel: string): string;
37
37
  /** Save raw channel log output */
38
38
  saveChannelLog(jobId: string, channel: string, log: string): void;
39
+ /** Register a new channel in the base job.json metadata so loadJob can discover it */
40
+ registerChannel(jobId: string, channel: string, initial: Partial<ChannelJobEntry>): void;
39
41
  /** Update a channel entry by writing a per-channel status file atomically */
40
42
  updateChannel(jobId: string, channel: string, update: Partial<ChannelJobEntry>): void;
41
43
  /** Save reconciled results */
@@ -1 +1 @@
1
- {"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,QAAQ,CAAA;IACvB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,OAAO,EAAE,MAAM;IAK3B,iEAAiE;IACjE,OAAO,CAAC,mBAAmB;IAM3B,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAKvB,kDAAkD;IAClD,OAAO,CAAC,UAAU;IAKlB,mCAAmC;IACnC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,yEAAyE;IACzE,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW;IAwB3C,qCAAqC;IACrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAKnD,4FAA4F;IAC5F,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAyBnC,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/C,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI/B,yCAAyC;IACzC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAKxE,qCAAqC;IACrC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAKzD,kCAAkC;IAClC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjE,6EAA6E;IAC7E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAuBrF,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAO5D,2DAA2D;IAC3D,QAAQ,IAAI,WAAW,EAAE;IAqBzB,wEAAwE;IACxE,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAgBxC,sDAAsD;IACtD,OAAO,CAAC,eAAe;CAQxB"}
1
+ {"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,QAAQ,CAAA;IACvB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,OAAO,EAAE,MAAM;IAK3B,iEAAiE;IACjE,OAAO,CAAC,mBAAmB;IAM3B,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAKvB,kDAAkD;IAClD,OAAO,CAAC,UAAU;IAKlB,mCAAmC;IACnC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,yEAAyE;IACzE,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW;IAwB3C,qCAAqC;IACrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAKnD,4FAA4F;IAC5F,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAyBnC,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/C,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI/B,yCAAyC;IACzC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAKxE,qCAAqC;IACrC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAKzD,kCAAkC;IAClC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjE,sFAAsF;IACtF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IASxF,6EAA6E;IAC7E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAuBrF,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAO5D,2DAA2D;IAC3D,QAAQ,IAAI,WAAW,EAAE;IAqBzB,wEAAwE;IACxE,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAgBxC,sDAAsD;IACtD,OAAO,CAAC,eAAe;CAQxB"}
@@ -111,6 +111,15 @@ export class JobStore {
111
111
  const filePath = this.channelFilePath(jobId, channel, `${channel}.log`);
112
112
  fs.writeFileSync(filePath, log);
113
113
  }
114
+ /** Register a new channel in the base job.json metadata so loadJob can discover it */
115
+ registerChannel(jobId, channel, initial) {
116
+ this.validateChannelName(channel);
117
+ const jobJsonPath = path.join(this.getJobDir(jobId), 'job.json');
118
+ const raw = fs.readFileSync(jobJsonPath, 'utf-8');
119
+ const metadata = JSON.parse(raw);
120
+ metadata.channels[channel] = { status: 'dispatched', auth: 'ok', ...initial };
121
+ fs.writeFileSync(jobJsonPath, JSON.stringify(metadata, null, 2));
122
+ }
114
123
  /** Update a channel entry by writing a per-channel status file atomically */
115
124
  updateChannel(jobId, channel, update) {
116
125
  const channelsDir = path.join(this.getJobDir(jobId), 'channels');
@@ -1 +1 @@
1
- {"version":3,"file":"job-store.js","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-store.js","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../src/core/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAyB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAetH;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAyEzF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,CAGxF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAcT"}
1
+ {"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../src/core/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAyB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAetH;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,iBAAiB,EAAE,CA4EzF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,CAGxF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAcT"}
@@ -55,7 +55,10 @@ export function reconcile(channelFindings) {
55
55
  else {
56
56
  // Single source -> unique
57
57
  agreement = 'unique';
58
- confidence = effectiveSeverity === 'P0' ? 'high' : 'medium';
58
+ const isCompensating = sources[0].startsWith('compensating-');
59
+ confidence = effectiveSeverity === 'P0' ? 'high'
60
+ : isCompensating ? 'low'
61
+ : 'medium';
59
62
  }
60
63
  // Use first finding's description/suggestion as representative
61
64
  const representative = group[0];
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/core/reconciler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/core/reconciler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { JobMetadata, OutputFormat, ReconciledResults } from '../types.js';
2
+ import type { JobStore } from './job-store.js';
3
+ export interface PipelineResult {
4
+ results: ReconciledResults;
5
+ formatted: string;
6
+ exitCode: number;
7
+ }
8
+ /**
9
+ * Run the full results pipeline: parse channel outputs, reconcile findings,
10
+ * derive verdict, format output.
11
+ */
12
+ export declare function runResultsPipeline(store: JobStore, job: JobMetadata, outputFormat: OutputFormat, includeRaw?: boolean): PipelineResult;
13
+ //# sourceMappingURL=results-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/results-pipeline.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAY,YAAY,EAAiB,iBAAiB,EAA0B,MAAM,aAAa,CAAA;AAChI,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,iBAAiB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,YAAY,EAC1B,UAAU,UAAQ,GACjB,cAAc,CA+GhB"}
@@ -0,0 +1,110 @@
1
+ import { parseChannelOutput } from './parser.js';
2
+ import { reconcile, evaluateGate, deriveVerdict } from './reconciler.js';
3
+ import { formatJson } from '../formatters/json.js';
4
+ import { formatText } from '../formatters/text.js';
5
+ import { formatMarkdown } from '../formatters/markdown.js';
6
+ /**
7
+ * Run the full results pipeline: parse channel outputs, reconcile findings,
8
+ * derive verdict, format output.
9
+ */
10
+ export function runResultsPipeline(store, job, outputFormat, includeRaw = false) {
11
+ const channelFindings = {};
12
+ const perChannel = {};
13
+ const startTimes = [];
14
+ const endTimes = [];
15
+ for (const [name, entry] of Object.entries(job.channels)) {
16
+ if (entry.status !== 'completed') {
17
+ const errorMsg = entry.status === 'failed' ? 'Channel failed'
18
+ : entry.status === 'timeout' ? 'Channel timed out'
19
+ : entry.status === 'auth_failed' ? 'Auth check failed'
20
+ : entry.status === 'not_installed' ? 'CLI not found on PATH'
21
+ : undefined;
22
+ perChannel[name] = {
23
+ status: entry.status,
24
+ elapsed: entry.elapsed ?? '0s',
25
+ findings: [],
26
+ error: errorMsg,
27
+ };
28
+ continue;
29
+ }
30
+ let raw = '';
31
+ let findings = [];
32
+ try {
33
+ const stored = store.loadChannelOutput(job.job_id, name);
34
+ // saveChannelOutput writes JSON.stringify(output), so JSON.parse
35
+ // recovers the original value (string or object).
36
+ try {
37
+ const decoded = JSON.parse(stored);
38
+ raw = typeof decoded === 'string' ? decoded : stored;
39
+ }
40
+ catch {
41
+ raw = stored;
42
+ }
43
+ const parserName = entry.output_parser ?? 'default';
44
+ const parsed = parseChannelOutput(raw, parserName);
45
+ findings = parsed.findings;
46
+ }
47
+ catch {
48
+ // Fall back: no parseable output
49
+ }
50
+ channelFindings[name] = findings;
51
+ const elapsed = entry.started_at && entry.completed_at
52
+ ? `${((new Date(entry.completed_at).getTime() - new Date(entry.started_at).getTime()) / 1000).toFixed(1)}s`
53
+ : '0s';
54
+ if (entry.started_at)
55
+ startTimes.push(new Date(entry.started_at).getTime());
56
+ if (entry.completed_at)
57
+ endTimes.push(new Date(entry.completed_at).getTime());
58
+ perChannel[name] = {
59
+ status: entry.status,
60
+ elapsed,
61
+ findings,
62
+ raw_output: includeRaw ? raw : undefined,
63
+ error: raw === '' ? 'Failed to load or parse channel output' : undefined,
64
+ };
65
+ }
66
+ const reconciledFindings = reconcile(channelFindings);
67
+ const fixThreshold = job.fix_threshold;
68
+ const completedChannels = Object.values(job.channels)
69
+ .filter((ch) => ch.status === 'completed').length;
70
+ const gatePassed = completedChannels > 0
71
+ ? evaluateGate(reconciledFindings, fixThreshold)
72
+ : false;
73
+ const channelStatuses = Object.fromEntries(Object.entries(job.channels).map(([n, ch]) => [n, ch.status]));
74
+ const verdict = deriveVerdict(gatePassed, channelStatuses);
75
+ const totalElapsed = startTimes.length > 0 && endTimes.length > 0
76
+ ? `${((Math.max(...endTimes) - Math.min(...startTimes)) / 1000).toFixed(1)}s`
77
+ : '0s';
78
+ const results = {
79
+ job_id: job.job_id,
80
+ verdict,
81
+ fix_threshold: fixThreshold,
82
+ reconciled_findings: reconciledFindings,
83
+ per_channel: perChannel,
84
+ metadata: {
85
+ channels_dispatched: Object.keys(job.channels).length,
86
+ channels_completed: completedChannels,
87
+ channels_partial: Object.values(job.channels)
88
+ .filter((ch) => ['failed', 'timeout'].includes(ch.status)).length,
89
+ total_elapsed: totalElapsed,
90
+ },
91
+ };
92
+ let formatted;
93
+ switch (outputFormat) {
94
+ case 'text':
95
+ formatted = formatText(results);
96
+ break;
97
+ case 'markdown':
98
+ formatted = formatMarkdown(results);
99
+ break;
100
+ case 'json':
101
+ default:
102
+ formatted = formatJson(results);
103
+ break;
104
+ }
105
+ const exitCode = verdict === 'pass' || verdict === 'degraded-pass' ? 0
106
+ : verdict === 'needs-user-decision' ? 3
107
+ : 2;
108
+ return { results, formatted, exitCode };
109
+ }
110
+ //# sourceMappingURL=results-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results-pipeline.js","sourceRoot":"","sources":["../../src/core/results-pipeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zigrivers/mmr",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Multi-model code review CLI — async dispatch, reconciliation, and severity gating",
5
5
  "type": "module",
6
6
  "license": "MIT",