@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 +1 -1
- package/dist/http/handlers/control/batch.d.ts.map +1 -1
- package/dist/http/handlers/control/batch.js +55 -3
- package/dist/http/handlers/control/batch.js.map +1 -1
- package/dist/http/handlers/tools/delegate.js +1 -1
- package/dist/http/handlers/tools/delegate.js.map +1 -1
- package/dist/http/handlers/tools/execute-plan.js +1 -1
- package/dist/http/handlers/tools/execute-plan.js.map +1 -1
- package/dist/http/validation/verify-command.d.ts +6 -0
- package/dist/http/validation/verify-command.d.ts.map +1 -0
- package/dist/http/validation/verify-command.js +47 -0
- package/dist/http/validation/verify-command.js.map +1 -0
- package/dist/skills/mma-audit/SKILL.md +31 -1
- package/dist/skills/mma-context-blocks/SKILL.md +1 -1
- package/dist/skills/mma-debug/SKILL.md +31 -1
- package/dist/skills/mma-delegate/SKILL.md +1 -1
- package/dist/skills/mma-execute-plan/SKILL.md +1 -1
- package/dist/skills/mma-explore/SKILL.md +1 -1
- package/dist/skills/mma-investigate/SKILL.md +31 -1
- package/dist/skills/mma-research/SKILL.md +31 -1
- package/dist/skills/mma-retry/SKILL.md +1 -1
- package/dist/skills/mma-review/SKILL.md +31 -1
- package/dist/skills/multi-model-agent/SKILL.md +1 -1
- package/package.json +2 -2
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.
|
|
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;
|
|
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
|
|
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
|
-
|
|
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 '
|
|
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":"AAGA,OAAO,KAAK,QAAQ,MAAM,yDAAyD,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,2DAA2D,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,8DAA8D,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
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 '
|
|
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,
|
|
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 @@
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
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.
|
|
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.
|
|
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
|
+
"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.
|
|
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",
|