@zhixuan92/multi-model-agent 4.7.19 → 4.8.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.
- package/README.md +10 -7
- package/dist/http/handlers/control/batch.d.ts +2 -0
- package/dist/http/handlers/control/batch.d.ts.map +1 -1
- package/dist/http/handlers/control/batch.js +17 -1
- package/dist/http/handlers/control/batch.js.map +1 -1
- package/dist/http/handlers/tools/journal-recall.d.ts +4 -0
- package/dist/http/handlers/tools/journal-recall.d.ts.map +1 -0
- package/dist/http/handlers/tools/journal-recall.js +40 -0
- package/dist/http/handlers/tools/journal-recall.js.map +1 -0
- package/dist/http/handlers/tools/journal-record.d.ts +4 -0
- package/dist/http/handlers/tools/journal-record.d.ts.map +1 -0
- package/dist/http/handlers/tools/journal-record.js +35 -0
- package/dist/http/handlers/tools/journal-record.js.map +1 -0
- package/dist/http/handlers/tools/research.d.ts.map +1 -1
- package/dist/http/handlers/tools/research.js +0 -1
- package/dist/http/handlers/tools/research.js.map +1 -1
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +6 -2
- package/dist/http/server.js.map +1 -1
- package/dist/skill-install/discover.d.ts +1 -1
- package/dist/skill-install/discover.d.ts.map +1 -1
- package/dist/skill-install/discover.js +2 -0
- package/dist/skill-install/discover.js.map +1 -1
- package/dist/skills/mma-audit/SKILL.md +6 -2
- package/dist/skills/mma-context-blocks/SKILL.md +1 -1
- package/dist/skills/mma-debug/SKILL.md +6 -2
- package/dist/skills/mma-delegate/SKILL.md +3 -9
- package/dist/skills/mma-execute-plan/SKILL.md +3 -9
- package/dist/skills/mma-explore/SKILL.md +54 -27
- package/dist/skills/mma-investigate/SKILL.md +6 -2
- package/dist/skills/mma-journal-recall/SKILL.md +242 -0
- package/dist/skills/mma-journal-record/SKILL.md +189 -0
- package/dist/skills/mma-research/SKILL.md +14 -5
- package/dist/skills/mma-retry/SKILL.md +4 -4
- package/dist/skills/mma-review/SKILL.md +6 -2
- package/dist/skills/multi-model-agent/SKILL.md +7 -3
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: mma-research
|
|
3
3
|
description: >-
|
|
4
4
|
Use when you need external multi-source research with citations — arxiv,
|
|
5
|
-
semantic_scholar, github_search,
|
|
5
|
+
semantic_scholar, github_search, brave-with-site:-filters — for a focused
|
|
6
6
|
question. Worker is bibliographic, not opinionated. Pair with mma-investigate
|
|
7
7
|
(internal) under mma-explore for divergent landscape scans.
|
|
8
8
|
when_to_use: >-
|
|
@@ -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.
|
|
13
|
+
version: 4.8.0
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-research
|
|
@@ -18,8 +18,8 @@ version: 4.7.19
|
|
|
18
18
|
## Overview
|
|
19
19
|
|
|
20
20
|
Run external multi-source research via a single mmagent worker. The worker
|
|
21
|
-
consults configured adapters (arxiv, semantic_scholar, github_search
|
|
22
|
-
— when Brave keys are configured — escalates to
|
|
21
|
+
consults configured adapters (arxiv, semantic_scholar, github_search) and
|
|
22
|
+
— when Brave keys are configured — escalates to Brave web search with `site:`
|
|
23
23
|
filters. The worker is bibliographic: it returns a numbered narrative with a
|
|
24
24
|
`## Sources used` table. It does not opinion or rank.
|
|
25
25
|
|
|
@@ -62,7 +62,7 @@ Obtain a free API key from [Semantic Scholar API](https://www.semanticscholar.or
|
|
|
62
62
|
**Degraded behavior:**
|
|
63
63
|
|
|
64
64
|
If the Semantic Scholar API key is not configured:
|
|
65
|
-
- The worker continues with available adapters (arxiv, github_search,
|
|
65
|
+
- The worker continues with available adapters (arxiv, github_search, brave-search)
|
|
66
66
|
- Semantic Scholar queries are skipped without errors
|
|
67
67
|
- Research completes successfully but may lack academic-paper coverage
|
|
68
68
|
- No failure occurs; graceful fallback is automatic
|
|
@@ -157,6 +157,7 @@ Each `results[N]` is the v5 `ComposePayload`:
|
|
|
157
157
|
| `findings` | The deliverable. `source: 'implementer'`. Empty `findings` on a research route means "no signal found" — still a valid completion. |
|
|
158
158
|
| `workerSelfAssessment` | `'done'` or `'failed'` — never `done_with_concerns`. |
|
|
159
159
|
| `blockId` | Always `null` — research is a task route, not register-context-block. |
|
|
160
|
+
| `contextBlockId` | The terminal context block id for this read-route task (its report as a reusable block). Pass it into a later call's `contextBlockIds` for delta follow-ups. |
|
|
160
161
|
|
|
161
162
|
Legacy aliases (still emitted for back-compat):
|
|
162
163
|
|
|
@@ -166,6 +167,14 @@ results[0].structuredReport.sourcesUsed[] // table of sources tried
|
|
|
166
167
|
results[0].output // raw narrative report
|
|
167
168
|
```
|
|
168
169
|
|
|
170
|
+
## Terminal context block
|
|
171
|
+
|
|
172
|
+
Every completed **read-route** task (audit / review / debug / investigate / research) auto-registers a reusable terminal context block containing its report (headline + findings). The block id is returned on each per-task result as **`contextBlockId`**. Write routes (delegate / execute-plan / retry) return `contextBlockId: null` — their record is the commit, not a block. This block is immutable, lives for the session duration, and counts against the project's `maxEntries` quota (default 500).
|
|
173
|
+
|
|
174
|
+
Use it for delta follow-ups — feed prior results' block ids into a later call's `contextBlockIds`, filtering out nulls:
|
|
175
|
+
|
|
176
|
+
contextBlockIds: priorResults.map(r => r.contextBlockId).filter((id) => id !== null)
|
|
177
|
+
|
|
169
178
|
## Best practices
|
|
170
179
|
|
|
171
180
|
- Keep `researchQuestion` topical (keywords, not full sentences).
|
|
@@ -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.
|
|
13
|
+
version: 4.8.0
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-retry
|
|
@@ -167,7 +167,7 @@ Each task result is the per-task wire object (`ComposePayload`):
|
|
|
167
167
|
| `findings` | Issues surfaced by the worker or reviewer. `severity` = `critical` \| `high` \| `medium` \| `low`. `source` = `implementer` \| `reviewer`. |
|
|
168
168
|
| `filesChanged` | File paths modified (empty for read-only routes). |
|
|
169
169
|
| `commitSha` | Git SHA of the committed diff; `null` for read-only routes or when commit was skipped. |
|
|
170
|
-
| `blockId` | `
|
|
170
|
+
| `blockId` | Always `null` (retry replays write tasks; `contextBlockId` is `null` too — no terminal block). |
|
|
171
171
|
|
|
172
172
|
**The stages array** (always 9 rows) is the canonical telemetry log. `outcome` is one of:
|
|
173
173
|
- `advance` — stage ran and produced its payload
|
|
@@ -214,8 +214,8 @@ Retry preserves the ORIGINAL config (prompt, agentType, filePaths, reviewPolicy)
|
|
|
214
214
|
|
|
215
215
|
## Terminal context block
|
|
216
216
|
|
|
217
|
-
|
|
217
|
+
Write-route tasks (delegate / execute-plan / retry) do NOT register a terminal context block — their durable record is the commit (`commitSha` + changed files). The per-task result's `contextBlockId` is always `null` for these routes. Read routes (audit / review / debug / investigate / research) return a non-null `contextBlockId`; see those skills for the delta-follow-up recipe.
|
|
218
218
|
|
|
219
|
-
Note:
|
|
219
|
+
Note: a re-run **read-route** task registers its own terminal context block (`contextBlockId`); re-run write tasks register none. Original-batch blocks remain intact and are not overwritten.
|
|
220
220
|
|
|
221
221
|
@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.
|
|
13
|
+
version: 4.8.0
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-review
|
|
@@ -163,7 +163,11 @@ Self-review and cross-model review are not the same thing. The whole reason to d
|
|
|
163
163
|
|
|
164
164
|
## Terminal context block
|
|
165
165
|
|
|
166
|
-
Every completed task
|
|
166
|
+
Every completed **read-route** task (audit / review / debug / investigate / research) auto-registers a reusable terminal context block containing its report (headline + findings). The block id is returned on each per-task result as **`contextBlockId`**. Write routes (delegate / execute-plan / retry) return `contextBlockId: null` — their record is the commit, not a block. This block is immutable, lives for the session duration, and counts against the project's `maxEntries` quota (default 500).
|
|
167
|
+
|
|
168
|
+
Use it for delta follow-ups — feed prior results' block ids into a later call's `contextBlockIds`, filtering out nulls:
|
|
169
|
+
|
|
170
|
+
contextBlockIds: priorResults.map(r => r.contextBlockId).filter((id) => id !== null)
|
|
167
171
|
|
|
168
172
|
**Use cases:**
|
|
169
173
|
- Pass round-N review findings to round N+1 via `contextBlockIds`
|
|
@@ -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.
|
|
14
|
+
version: 4.8.0
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
# multi-model-agent (router)
|
|
@@ -63,7 +63,7 @@ digraph picker {
|
|
|
63
63
|
| `mma-review` | Review code for quality, security, performance, correctness. Pass acceptance checklists in the brief if you need verification-style checks. |
|
|
64
64
|
| `mma-debug` | Debug a failure with a structured hypothesis |
|
|
65
65
|
| `mma-investigate` | Codebase Q&A — structured answer with `file:line` citations + confidence |
|
|
66
|
-
| `mma-explore` | Divergent ideation from codebase + web research — use before `superpowers:brainstorming` |
|
|
66
|
+
| `mma-explore` | Divergent ideation from codebase + web research + prior-learnings recall — use before `superpowers:brainstorming` |
|
|
67
67
|
| `mma-delegate` | Ad-hoc implementation / research with no plan file |
|
|
68
68
|
| `mma-retry` | Re-run specific failed/incomplete tasks from a previous batch by index |
|
|
69
69
|
| `mma-context-blocks` | Register a reused doc once; reference by ID across N tasks |
|
|
@@ -181,7 +181,11 @@ Context blocks are immutable after creation. To update content, register a new b
|
|
|
181
181
|
|
|
182
182
|
## Terminal context block
|
|
183
183
|
|
|
184
|
-
Every completed task
|
|
184
|
+
Every completed **read-route** task (audit / review / debug / investigate / research) auto-registers a reusable terminal context block containing its report (headline + findings). The block id is returned on each per-task result as **`contextBlockId`**. Write routes (delegate / execute-plan / retry) return `contextBlockId: null` — their record is the commit, not a block. This block is immutable, lives for the session duration, and counts against the project's `maxEntries` quota (default 500).
|
|
185
|
+
|
|
186
|
+
Use it for delta follow-ups — feed prior results' block ids into a later call's `contextBlockIds`, filtering out nulls:
|
|
187
|
+
|
|
188
|
+
contextBlockIds: priorResults.map(r => r.contextBlockId).filter((id) => id !== null)
|
|
185
189
|
|
|
186
190
|
## General flow
|
|
187
191
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhixuan92/multi-model-agent",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0",
|
|
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.
|
|
56
|
+
"@zhixuan92/multi-model-agent-core": "^4.8.0",
|
|
57
57
|
"gray-matter": "^4.0.3",
|
|
58
58
|
"minimist": "^1.2.8",
|
|
59
59
|
"proper-lockfile": "^4.1.2",
|