@zhixuan92/multi-model-agent 4.7.3 → 4.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -88,7 +88,7 @@ Two ways — pick one:
88
88
 
89
89
  ```bash
90
90
  mmagent serve # 127.0.0.1:7337 by default
91
- curl -s http://localhost:7337/health # → {"ok":true,"version":"4.7.3",...}
91
+ curl -s http://localhost:7337/health # → {"ok":true,"version":"4.7.5",...}
92
92
  ```
93
93
 
94
94
  For an always-on background install (survives reboots): [launchd / systemd templates](./scripts/README.md).
@@ -1 +1 @@
1
- {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/control/batch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,KAAK,aAAa,EAAiB,MAAM,mCAAmC,CAAC;AAGrG,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAuRpE"}
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/control/batch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,KAAK,aAAa,EAAiB,MAAM,mCAAmC,CAAC;AAGrG,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AA0ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAmSpE"}
@@ -2,18 +2,49 @@ import { sendError, sendJson } from '../../errors.js';
2
2
  import { notApplicable, formatElapsed } from '@zhixuan92/multi-model-agent-core';
3
3
  // envelopeToPublicResult converts a TaskEnvelope to the public-safe per-task result shape.
4
4
  function envelopeToPublicResult(env) {
5
+ // 4.7.4+ standardization: findings/outcome summary fields live ONLY at
6
+ // the top level of the per-task result. Per-stage rows carry stage
7
+ // mechanics (durationMs, costUSD, verdict, etc.) but NOT findings
8
+ // duplicates — one source of truth for backend + dashboard consumers.
9
+ const stripFindingsFields = (s) => {
10
+ const { findingsOutcome, findingsOutcomeReason, outcomeInferred, outcomeMalformed, findingsBySeverity, ...rest } = s ?? {};
11
+ return rest;
12
+ };
13
+ // Outcome rollup: review > annotating > implementing (first non-null wins).
14
+ const outcomePriority = ['reviewing', 'annotating', 'implementing'];
15
+ const pick = outcomePriority
16
+ .map((n) => env.stages.find((st) => st.name === n && st.findingsOutcome != null))
17
+ .find((s) => s !== undefined);
18
+ const sevCounts = env.findings.reduce((acc, f) => {
19
+ const s = f.severity;
20
+ if (s === 'critical' || s === 'high' || s === 'medium' || s === 'low')
21
+ acc[s] += 1;
22
+ return acc;
23
+ }, { critical: 0, high: 0, medium: 0, low: 0 });
5
24
  return {
6
25
  taskId: env.taskId, taskIndex: env.taskIndex, route: env.route, agentType: env.agentType,
7
26
  status: env.status, terminalAt: env.terminalAt, stopReason: env.stopReason,
8
- stages: env.stages, // already PII-safe (counts/numerics/enums)
27
+ stages: env.stages.map(stripFindingsFields),
9
28
  totals: {
10
29
  costUSD: env.totalCostUSD, durationMs: env.totalDurationMs, turnsUsed: env.turnsUsed,
11
30
  inputTokens: env.totalInputTokens, outputTokens: env.totalOutputTokens,
12
31
  },
13
32
  findings: env.findings.map((f) => ({ id: f.id, severity: f.severity, category: f.category, claim: f.claim, source: f.source })),
33
+ findingsBySeverity: sevCounts,
34
+ ...(pick && {
35
+ findingsOutcome: pick.findingsOutcome ?? null,
36
+ ...(pick.findingsOutcomeReason !== undefined && { findingsOutcomeReason: pick.findingsOutcomeReason }),
37
+ ...(pick.outcomeInferred !== undefined && { outcomeInferred: pick.outcomeInferred }),
38
+ ...(pick.outcomeMalformed !== undefined && { outcomeMalformed: pick.outcomeMalformed }),
39
+ }),
14
40
  filesChangedCount: env.realFilesChanged.length,
15
41
  error: env.structuredError ? { code: env.structuredError.code, message: env.structuredError.message } : null,
16
42
  escalationSummary: { count: env.escalationLog.length, distinctProviders: new Set(env.escalationLog.map((e) => (e.toModel ?? ''))).size },
43
+ // 4.7.5: surface parser-side validation warnings (e.g. dropped Finding blocks)
44
+ // so operators can see WHY a worker's output yielded fewer findings than
45
+ // expected. recordValidationWarning() on the envelope pushes here; without
46
+ // this projection the data was invisible to /batch callers.
47
+ validationWarnings: env.validationWarnings,
17
48
  };
18
49
  }
19
50
  // buildPendingHeadline constructs a pending batch headline from running envelope snapshots.
@@ -28,7 +59,16 @@ function buildPendingHeadline(entry) {
28
59
  return { reads: acc.reads + s.toolReads, writes: acc.writes + s.toolWrites, total: acc.total + s.toolTotal };
29
60
  }, { reads: 0, writes: 0, total: 0 });
30
61
  const suffix = running.length > 1 ? ` +${running.length - 1}` : '';
31
- const stats = `reads=${summed.reads} writes=${summed.writes} tools=${summed.total}`;
62
+ // Adaptive: tools=N always (the most reliable activity signal across all
63
+ // providers); reads=/writes= only when > 0. Pre-4.7.5 this showed
64
+ // reads=0 writes=0 even when the worker was actively running tools,
65
+ // because most provider tool calls didn't populate the file counters.
66
+ const statsParts = [`tools=${summed.total}`];
67
+ if (summed.reads > 0)
68
+ statsParts.push(`reads=${summed.reads}`);
69
+ if (summed.writes > 0)
70
+ statsParts.push(`writes=${summed.writes}`);
71
+ const stats = statsParts.join(' ');
32
72
  return `[${repSnap.headline.stageDone}/${repSnap.headline.stageTotal}] ${repSnap.headline.stageLabel}${suffix} — ${stats}`;
33
73
  }
34
74
  /**
@@ -231,8 +271,19 @@ export function buildBatchHandler(deps) {
231
271
  totalActualCostUSD: snapshots.reduce((sum, s) => sum + s.totalCostUSD, 0),
232
272
  totalCostDeltaVsMainUSD: 0, // Not available from envelopes
233
273
  };
234
- // Derive structuredReport from findings
274
+ // Derive structuredReport from findings + per-stage outcome roll-up.
275
+ // findingsOutcome aggregation rule: any 'found' → 'found'; else any
276
+ // 'not_applicable' → 'not_applicable'; else 'clean'. null entries skip.
235
277
  const allFindings = snapshots.flatMap(s => s.findings);
278
+ const stageOutcomes = snapshots
279
+ .flatMap(s => s.stages)
280
+ .map(st => st.findingsOutcome)
281
+ .filter((o) => o === 'found' || o === 'clean' || o === 'not_applicable');
282
+ const rollupOutcome = stageOutcomes.length === 0
283
+ ? null
284
+ : stageOutcomes.includes('found') ? 'found'
285
+ : stageOutcomes.includes('not_applicable') ? 'not_applicable'
286
+ : 'clean';
236
287
  const structuredReport = {
237
288
  summary: allFindings.length > 0 ? `${allFindings.length} finding(s)` : 'No findings',
238
289
  workerStatus: snapshots.length > 0 ? snapshots[0].status : 'unknown',
@@ -246,6 +297,7 @@ export function buildBatchHandler(deps) {
246
297
  commitMessage: null,
247
298
  commitSkipReason: null,
248
299
  findings: allFindings.map(f => ({ severity: f.severity, category: f.category, claim: f.claim })),
300
+ findingsOutcome: rollupOutcome,
249
301
  criteriaErrors: [],
250
302
  };
251
303
  // Build headline
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/http/handlers/control/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/http/handlers/control/batch.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as delegate from '@zhixuan92/multi-model-agent-core/tools/delegate/schema';
2
2
  import { executeTask } from '@zhixuan92/multi-model-agent-core/lifecycle/task-executor';
3
3
  import { toolConfig } from '@zhixuan92/multi-model-agent-core/tools/delegate/tool-config';
4
- import { validateVerifyCommand } from '@zhixuan92/multi-model-agent-core/intake/verify-command-validator';
4
+ import { validateVerifyCommand } from '../../validation/verify-command.js';
5
5
  import { sendError, sendJson } from '../../errors.js';
6
6
  import { asyncDispatch } from '../../async-dispatch.js';
7
7
  import { emitRequestReceived } from '../../request-observability.js';
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../../src/http/handlers/tools/delegate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../../src/http/handlers/tools/delegate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { executePlanInputSchema } from '@zhixuan92/multi-model-agent-core/tools/execute-plan/tool-config';
2
2
  import { executeTask } from '@zhixuan92/multi-model-agent-core/lifecycle/task-executor';
3
3
  import { toolConfig } from '@zhixuan92/multi-model-agent-core/tools/execute-plan/tool-config';
4
- import { validateVerifyCommand } from '@zhixuan92/multi-model-agent-core/intake/verify-command-validator';
4
+ import { validateVerifyCommand } from '../../validation/verify-command.js';
5
5
  import { sendError, sendJson } from '../../errors.js';
6
6
  import { asyncDispatch } from '../../async-dispatch.js';
7
7
  import { emitRequestReceived } from '../../request-observability.js';
@@ -1 +1 @@
1
- {"version":3,"file":"execute-plan.js","sourceRoot":"","sources":["../../../../src/http/handlers/tools/execute-plan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,OAAO,EAAE,WAAW,EAAE,MAAM,2DAA2D,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kEAAkE,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,mEAAmE,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,MAAM,UAAU,uBAAuB,CAAC,IAAiB;IACvD,OAAO,KAAK,EAAE,IAAqB,EAAE,GAAmB,EAAE,OAA+B,EAAE,GAAG,EAAE,EAAE;QAChG,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE;gBACvE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;aACpC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAI,CAAC;QACrB,MAAM,KAAK,GAAyB,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,EAA0B,CAAC;QAEpF,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,KAAM,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC;QACxC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;QAC7C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAC3C,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,GAAG;YACf,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,EAAE;YAClB,IAAI;YACJ,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;YAC9D,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBAC/B,OAAO,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAEhE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"execute-plan.js","sourceRoot":"","sources":["../../../../src/http/handlers/tools/execute-plan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,OAAO,EAAE,WAAW,EAAE,MAAM,2DAA2D,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kEAAkE,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,MAAM,UAAU,uBAAuB,CAAC,IAAiB;IACvD,OAAO,KAAK,EAAE,IAAqB,EAAE,GAAmB,EAAE,OAA+B,EAAE,GAAG,EAAE,EAAE;QAChG,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE;gBACvE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;aACpC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAI,CAAC;QACrB,MAAM,KAAK,GAAyB,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,EAA0B,CAAC;QAEpF,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,KAAM,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC;QACxC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;QAC7C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAC3C,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,GAAG;YACf,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,EAAE;YAClB,IAAI;YACJ,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;YAC9D,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBAC/B,OAAO,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAEhE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface ValidationResult {
2
+ ok: boolean;
3
+ error?: string;
4
+ }
5
+ export declare function validateVerifyCommand(verifyCommand: string[] | undefined): ValidationResult;
6
+ //# sourceMappingURL=verify-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-command.d.ts","sourceRoot":"","sources":["../../../src/http/validation/verify-command.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,gBAAgB,CAkB3F"}
@@ -0,0 +1,47 @@
1
+ // v4.4.x — caller-supplied `verifyCommand` validator. Each entry is a
2
+ // shell command; each chained sub-command's argv[0] is checked against
3
+ // a read-only-git allowlist. `verifyCommand` is for *running tests*,
4
+ // not mutating the repo — Committing owns the commit.
5
+ const GIT_READONLY_ALLOWLIST = new Set([
6
+ 'status', 'diff', 'log', 'show', 'ls-files', 'ls-tree', 'cat-file',
7
+ 'blame', 'rev-parse', 'describe', 'shortlog', 'whatchanged', 'name-rev',
8
+ ]);
9
+ function tokenize(cmd) {
10
+ return cmd.split(/&&|\|\||;|\||\n/).map((s) => s.trim()).filter((s) => s.length > 0).map((s) => s.split(/\s+/));
11
+ }
12
+ function isAllowedGitArgv(argv) {
13
+ if (argv[0] !== 'git')
14
+ return true;
15
+ if (argv.length < 2)
16
+ return false;
17
+ const sub = argv[1];
18
+ if (GIT_READONLY_ALLOWLIST.has(sub))
19
+ return true;
20
+ if (sub === 'config' && argv[2] === '--get')
21
+ return true;
22
+ if (sub === 'remote' && argv[2] === '-v')
23
+ return true;
24
+ return false;
25
+ }
26
+ export function validateVerifyCommand(verifyCommand) {
27
+ if (!verifyCommand || verifyCommand.length === 0)
28
+ return { ok: true };
29
+ for (let i = 0; i < verifyCommand.length; i++) {
30
+ const entry = verifyCommand[i];
31
+ if (typeof entry !== 'string' || entry.trim().length === 0) {
32
+ return { ok: false, error: `verifyCommand[${i}]: must be non-empty string` };
33
+ }
34
+ for (const argv of tokenize(entry)) {
35
+ if (argv.length === 0)
36
+ continue;
37
+ if (argv[0] === 'git' && !isAllowedGitArgv(argv)) {
38
+ return {
39
+ ok: false,
40
+ error: `verifyCommand[${i}]: git ${argv[1] ?? ''} is not allowed; only read-only git inspection subcommands are permitted`,
41
+ };
42
+ }
43
+ }
44
+ }
45
+ return { ok: true };
46
+ }
47
+ //# sourceMappingURL=verify-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-command.js","sourceRoot":"","sources":["../../../src/http/validation/verify-command.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,sDAAsD;AAEtD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU;IAClE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU;CACxE,CAAC,CAAC;AAOH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAAmC;IACvE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,6BAA6B,EAAE,CAAC;QAC/E,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,iBAAiB,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,0EAA0E;iBAC3H,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  (superpowers:dispatching-parallel-agents, /security-review) points at one AND
13
13
  mmagent is running. Audit on PROSE/SPEC docs — use mma-review for source code.
14
14
  Audit a CODE-EXECUTION PLAN against the codebase — use subtype=plan.
15
- version: 4.7.3
15
+ version: 4.7.5
16
16
  ---
17
17
 
18
18
  # mma-audit
@@ -233,4 +233,34 @@ Every completed task automatically registers a terminal markdown context block c
233
233
 
234
234
  The block is registered server-side at task completion; no caller action is needed to create it. Delete it explicitly via `DELETE /context-blocks/:id` when no longer needed, or let it expire on session teardown.
235
235
 
236
+ ## Outcome semantics
237
+
238
+ Every task result carries outcome fields that describe the audit's conclusion status:
239
+
240
+ | Field | Type | Meaning |
241
+ |---|---|---|
242
+ | `findingsOutcome` | `'found' \| 'clean' \| 'not_applicable'` | Answers the question: did the audit uncover issues? |
243
+ | `findingsOutcomeReason` | `string \| null` | When `findingsOutcome` is set, this explains why (e.g. "3 critical findings: broken paths, missing symbols, mismatched signatures" or "Document is clean across all audit criteria"). |
244
+ | `outcomeInferred` | `boolean` | `true` if the system inferred the outcome from findings count; `false` if the auditor explicitly stated it. |
245
+ | `outcomeMalformed` | `boolean` | `true` if the outcome line was malformed and had to be repaired; `false` otherwise. |
246
+
247
+ ### Enum values
248
+
249
+ - **`found`** — the audit surfaced one or more issues (findings) in the artifact across one or more criteria. This indicates the artifact needs rework before downstream use.
250
+ - **`clean`** — the audit completed and found zero issues. The artifact is clear across all audit criteria and ready for downstream use.
251
+ - **`not_applicable`** — the audit could not proceed (e.g., wrong input type, missing preconditions, or system error). This is rare; most audits resolve to `found` or `clean`.
252
+
253
+ ### Empty findings ≠ failure
254
+
255
+ A crucial semantic: **empty findings does NOT mean `completed: false` or a failed task.** Finding nothing wrong is a successful audit outcome — it means the document passed the bar. An audit with zero findings is `completed: true` with `findingsOutcome: 'clean'`.
256
+
257
+ ### Per-route legal outcomes
258
+
259
+ The legal outcomes for this route are: `['found', 'clean']`
260
+
261
+ - **`found`** — one or more issues were detected across the audit criteria.
262
+ - **`clean`** — zero issues were detected; the artifact is ready for downstream use.
263
+
264
+ The outcome `not_applicable` is not legal for `mma-audit` (except on actual precondition failures) because an audit always produces a verdict: either issues found or clean.
265
+
236
266
  @include _shared/error-handling.md
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  Register once here, then pass the ID via `contextBlockIds` on mma-delegate /
13
13
  mma-execute-plan / mma-audit / mma-review / mma-debug / mma-investigate.
14
14
  Cheaper and faster than inlining the same content N times.
15
- version: 4.7.3
15
+ version: 4.7.5
16
16
  ---
17
17
 
18
18
  # mma-context-blocks
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  read files, reproduce, trace — OR a methodology skill
11
11
  (superpowers:systematic-debugging) points at the investigation step. Delegate
12
12
  the read/reproduce/trace; the main agent stays on the hypothesis and the fix.
13
- version: 4.7.3
13
+ version: 4.7.5
14
14
  ---
15
15
 
16
16
  # mma-debug
@@ -171,4 +171,34 @@ Every completed task automatically registers a terminal markdown context block c
171
171
 
172
172
  The block is registered server-side at task completion; no caller action is needed to create it. Delete it explicitly via `DELETE /context-blocks/:id` when no longer needed, or let it expire on session teardown.
173
173
 
174
+ ## Outcome semantics
175
+
176
+ Every task result carries outcome fields that describe the debugging investigation's conclusion status:
177
+
178
+ | Field | Type | Meaning |
179
+ |---|---|---|
180
+ | `findingsOutcome` | `'found' \| 'clean' \| 'not_applicable'` | Answers the question: did the investigation identify a root cause? |
181
+ | `findingsOutcomeReason` | `string \| null` | When `findingsOutcome` is set, this explains why (e.g. "Root cause identified with high confidence: bcrypt binding fails on non-ASCII input" or "No evidence supports the hypothesis; root cause remains unknown"). |
182
+ | `outcomeInferred` | `boolean` | `true` if the system inferred the outcome from findings count; `false` if the investigator explicitly stated it. |
183
+ | `outcomeMalformed` | `boolean` | `true` if the outcome line was malformed and had to be repaired; `false` otherwise. |
184
+
185
+ ### Enum values
186
+
187
+ - **`found`** — the investigation identified one or more root-cause hypotheses (findings) with supporting evidence. This indicates the problem has a diagnosed cause.
188
+ - **`clean`** — the investigation completed but found zero root causes. This is rare for debug and indicates the failure remains unexplained despite thorough investigation.
189
+ - **`not_applicable`** — the investigation could not proceed (e.g., inability to reproduce the failure, missing context, or out of scope). This is the "unable to diagnose" state.
190
+
191
+ ### Empty findings ≠ failure
192
+
193
+ A crucial semantic: **empty findings does NOT mean `completed: false` or a failed debug session.** An investigation that proceeds thoroughly and produces zero root-cause candidates is a valid `completed: true` outcome; it means "I looked hard and found nothing." For debug, this often surfaces a `not_applicable` outcome instead (root cause is elsewhere), but zero findings is still a success.
194
+
195
+ ### Per-route legal outcomes
196
+
197
+ The legal outcomes for this route are: `['found', 'not_applicable']`
198
+
199
+ - **`found`** — one or more root-cause hypotheses were identified across the investigation criteria.
200
+ - **`not_applicable`** — the failure could not be diagnosed (reproduction failed, wrong area, or scope issue).
201
+
202
+ The outcome `clean` (zero findings + success) is not legal for `mma-debug` because a debug session always either identifies a root cause or cannot proceed.
203
+
174
204
  @include _shared/error-handling.md
@@ -11,7 +11,7 @@ when_to_use: >-
11
11
  and keep main context free. If a plan file exists → use mma-execute-plan. If
12
12
  the task is audit / review / verify / debug / investigate → use the matching
13
13
  specialized skill.
14
- version: 4.7.3
14
+ version: 4.7.5
15
15
  ---
16
16
 
17
17
  # mma-delegate
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  superpowers:subagent-driven-development / superpowers:executing-plans —
11
11
  workers are cheaper and don't pollute main context. Task descriptors must
12
12
  match plan headings verbatim.
13
- version: 4.7.3
13
+ version: 4.7.5
14
14
  ---
15
15
 
16
16
  # mma-execute-plan
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  out mma-investigate (internal) + mma-research (external) in parallel and
13
13
  synthesise the results yourself. DO NOT use for convergent single-answer
14
14
  questions — those are mma-investigate.
15
- version: 4.7.3
15
+ version: 4.7.5
16
16
  ---
17
17
 
18
18
  # mma-explore
@@ -12,7 +12,7 @@ when_to_use: >-
12
12
  git-history queries. OR you are about to read 3+ files / run any grep in main
13
13
  context — that's the inline-labor-leakage anti-pattern (AP2); delegate to this
14
14
  skill instead.
15
- version: 4.7.3
15
+ version: 4.7.5
16
16
  ---
17
17
 
18
18
  # mma-investigate
@@ -221,4 +221,34 @@ Every completed task automatically registers a terminal markdown context block c
221
221
 
222
222
  The block is registered server-side at task completion; no caller action is needed to create it. Delete it explicitly via `DELETE /context-blocks/:id` when no longer needed, or let it expire on session teardown.
223
223
 
224
+ ## Outcome semantics
225
+
226
+ Every task result carries outcome fields that describe the investigation's conclusion status:
227
+
228
+ | Field | Type | Meaning |
229
+ |---|---|---|
230
+ | `findingsOutcome` | `'found' \| 'clean' \| 'not_applicable'` | Answers the question: did the investigation produce a substantive result? |
231
+ | `findingsOutcomeReason` | `string \| null` | When `findingsOutcome` is set, this explains why (e.g. "No candidate answers found after perspective 5" or "One clear path identified at high confidence"). |
232
+ | `outcomeInferred` | `boolean` | `true` if the system inferred the outcome from findings count; `false` if the worker explicitly stated it. |
233
+ | `outcomeMalformed` | `boolean` | `true` if the outcome line was malformed and had to be repaired; `false` otherwise. |
234
+
235
+ ### Enum values
236
+
237
+ - **`found`** — the investigation produced one or more candidate answers (findings) across one or more criteria. This is the success state for a question-answering route.
238
+ - **`clean`** — the investigation completed but produced zero findings. This is valid for issue-hunting routes but unusual for `mma-investigate`, where answering a question always produces at least one candidate.
239
+ - **`not_applicable`** — the investigation could not proceed (e.g., the question was out of scope, the codebase provided no data to work with, or the request preconditions failed). This is the "no answer possible" state.
240
+
241
+ ### Empty findings ≠ failure
242
+
243
+ A crucial semantic: **empty findings does NOT mean `completed: false` or a failed task.** The presence or absence of findings is orthogonal to task success. An investigation that searches thoroughly and produces zero candidate answers is a valid `completed: true` outcome; it simply answers the question with "I found no evidence for that in the codebase."
244
+
245
+ ### Per-route legal outcomes
246
+
247
+ The legal outcomes for this route are: `['found', 'not_applicable']`
248
+
249
+ - **`found`** — one or more candidate answers surfaced via the investigation criteria.
250
+ - **`not_applicable`** — the question was out of scope, unanswerable, or the codebase provided insufficient data.
251
+
252
+ The outcome `clean` (zero findings + success) is not legal for `mma-investigate` because an investigation answer is always produced in the `found` state or the task is `not_applicable`.
253
+
224
254
  @include _shared/error-handling.md
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  others do, what published methods exist) AND mmagent is running. Delegate the
11
11
  multi-source web/adapter research to a worker so the main context stays on
12
12
  judgment. NOT for codebase questions — those are mma-investigate.
13
- version: 4.7.3
13
+ version: 4.7.5
14
14
  ---
15
15
 
16
16
  # mma-research
@@ -161,4 +161,34 @@ results[0].output // raw narrative report
161
161
 
162
162
  ❌ **Expecting opinionated output.** This worker reports what's out there with citations. Ranking and synthesis happen elsewhere — in `mma-explore` or in your own judgment. **Fix:** if you need ranked options, use `mma-explore`.
163
163
 
164
+ ## Outcome semantics
165
+
166
+ Every task result carries outcome fields that describe the research investigation's conclusion status:
167
+
168
+ | Field | Type | Meaning |
169
+ |---|---|---|
170
+ | `findingsOutcome` | `'found' \| 'clean' \| 'not_applicable'` | Answers the question: did the research produce candidate sources and insights? |
171
+ | `findingsOutcomeReason` | `string \| null` | When `findingsOutcome` is set, this explains why (e.g. "3 primary sources identified across arxiv and semantic_scholar" or "No sources found matching the research criteria"). |
172
+ | `outcomeInferred` | `boolean` | `true` if the system inferred the outcome from findings count; `false` if the researcher explicitly stated it. |
173
+ | `outcomeMalformed` | `boolean` | `true` if the outcome line was malformed and had to be repaired; `false` otherwise. |
174
+
175
+ ### Enum values
176
+
177
+ - **`found`** — the research identified one or more candidate sources or insights (findings) across one or more search criteria. This indicates the question has published material or prior art available.
178
+ - **`clean`** — the research completed but produced zero findings. This is valid for out-of-scope or nascent topics and indicates "no signal found."
179
+ - **`not_applicable`** — the research could not proceed (e.g., question was out of scope, search system unavailable, or preconditions failed). This is the "cannot research" state.
180
+
181
+ ### Empty findings ≠ failure
182
+
183
+ A crucial semantic: **empty findings does NOT mean `completed: false` or a failed research task.** Research that proceeds thoroughly and produces zero sources is a valid `completed: true` outcome; it answers the question "I searched widely and found nothing," which is valuable information. An empty-findings result often surfaces a `not_applicable` outcome (topic too new, domain too narrow) but zero findings is still a success.
184
+
185
+ ### Per-route legal outcomes
186
+
187
+ The legal outcomes for this route are: `['found', 'not_applicable']`
188
+
189
+ - **`found`** — one or more candidate sources or insights were identified via the research criteria.
190
+ - **`not_applicable`** — the research could not proceed or the question was out of scope.
191
+
192
+ The outcome `clean` (zero findings + success) is not legal for `mma-research` because a research task always either identifies sources or indicates the topic is inaccessible.
193
+
164
194
  @include _shared/error-handling.md
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  re-try the failed indices only. Prefer this over re-dispatching the whole
11
11
  batch or inline-retrying — it's idempotent and preserves the original batch's
12
12
  diagnostics.
13
- version: 4.7.3
13
+ version: 4.7.5
14
14
  ---
15
15
 
16
16
  # mma-retry
@@ -10,7 +10,7 @@ when_to_use: >-
10
10
  AND mmagent is running. Delegate so each file reviews on its own worker; the
11
11
  main agent only decides what to merge. Review on SOURCE CODE — use mma-audit
12
12
  for prose specs / configs.
13
- version: 4.7.3
13
+ version: 4.7.5
14
14
  ---
15
15
 
16
16
  # mma-review
@@ -172,4 +172,34 @@ Every completed task automatically registers a terminal markdown context block c
172
172
 
173
173
  The block is registered server-side at task completion; no caller action is needed to create it. Delete it explicitly via `DELETE /context-blocks/:id` when no longer needed, or let it expire on session teardown.
174
174
 
175
+ ## Outcome semantics
176
+
177
+ Every task result carries outcome fields that describe the code review's conclusion status:
178
+
179
+ | Field | Type | Meaning |
180
+ |---|---|---|
181
+ | `findingsOutcome` | `'found' \| 'clean' \| 'not_applicable'` | Answers the question: did the review uncover issues? |
182
+ | `findingsOutcomeReason` | `string \| null` | When `findingsOutcome` is set, this explains why (e.g. "Test gap: login() has no null-username case" or "Code is clean across all review criteria"). |
183
+ | `outcomeInferred` | `boolean` | `true` if the system inferred the outcome from findings count; `false` if the reviewer explicitly stated it. |
184
+ | `outcomeMalformed` | `boolean` | `true` if the outcome line was malformed and had to be repaired; `false` otherwise. |
185
+
186
+ ### Enum values
187
+
188
+ - **`found`** — the review surfaced one or more issues (findings) across one or more review categories (test gap, cross-file ripple, race, leak, security, performance, etc.). This indicates the code needs rework before merge.
189
+ - **`clean`** — the review completed and found zero issues. The code passes the review bar and is safe to merge.
190
+ - **`not_applicable`** — the review could not proceed (e.g., wrong input type, missing preconditions, or system error). This is rare; most reviews resolve to `found` or `clean`.
191
+
192
+ ### Empty findings ≠ failure
193
+
194
+ A crucial semantic: **empty findings does NOT mean `completed: false` or a failed review.** Finding nothing wrong is a successful review outcome — it means the code passed inspection. A review with zero findings is `completed: true` with `findingsOutcome: 'clean'`.
195
+
196
+ ### Per-route legal outcomes
197
+
198
+ The legal outcomes for this route are: `['found', 'clean']`
199
+
200
+ - **`found`** — one or more issues were detected across the review categories.
201
+ - **`clean`** — zero issues were detected; the code is ready to merge.
202
+
203
+ The outcome `not_applicable` is not legal for `mma-review` (except on actual precondition failures) because a code review always produces a verdict: either issues found or clean.
204
+
175
205
  @include _shared/error-handling.md
@@ -11,7 +11,7 @@ when_to_use: >-
11
11
  tasks — AND mmagent is running. Read this once, pick the matching mma-* skill,
12
12
  and delegate there. Applies equally whether the user invoked a superpowers
13
13
  methodology skill or asked directly.
14
- version: 4.7.3
14
+ version: 4.7.5
15
15
  ---
16
16
 
17
17
  # multi-model-agent (router)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhixuan92/multi-model-agent",
3
- "version": "4.7.3",
3
+ "version": "4.7.5",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Standalone HTTP server for multi-model-agent. Routes tool-invocation work to Claude, Codex, or OpenAI-compatible sub-agents with async-polling REST dispatch and installable skills for Claude Code, Gemini CLI, Codex CLI, and Cursor.",
@@ -53,7 +53,7 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@asteasolutions/zod-to-openapi": "^8.5.0",
56
- "@zhixuan92/multi-model-agent-core": "^4.7.3",
56
+ "@zhixuan92/multi-model-agent-core": "^4.7.5",
57
57
  "gray-matter": "^4.0.3",
58
58
  "minimist": "^1.2.8",
59
59
  "proper-lockfile": "^4.1.2",