@zhixuan92/multi-model-agent 3.6.4 → 3.6.6
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 +152 -89
- package/dist/skills/mma-audit/SKILL.md +1 -1
- package/dist/skills/mma-clarifications/SKILL.md +1 -1
- package/dist/skills/mma-context-blocks/SKILL.md +1 -1
- package/dist/skills/mma-debug/SKILL.md +1 -1
- package/dist/skills/mma-delegate/SKILL.md +1 -1
- package/dist/skills/mma-execute-plan/SKILL.md +1 -1
- package/dist/skills/mma-investigate/SKILL.md +1 -1
- package/dist/skills/mma-retry/SKILL.md +1 -1
- package/dist/skills/mma-review/SKILL.md +1 -1
- package/dist/skills/mma-verify/SKILL.md +1 -1
- package/dist/skills/multi-model-agent/SKILL.md +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,67 +2,161 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@zhixuan92/multi-model-agent)
|
|
4
4
|
|
|
5
|
-
Local HTTP
|
|
5
|
+
Local HTTP daemon that delegates tool-using work to sub-agents on different LLM providers. One process serves Claude Code, Codex CLI, Gemini CLI, and Cursor via installable skills.
|
|
6
6
|
|
|
7
|
-
*Renamed from `@zhixuan92/multi-model-agent-mcp` in 3.0.0 — the package no longer uses MCP. See [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md
|
|
7
|
+
*Renamed from `@zhixuan92/multi-model-agent-mcp` in 3.0.0 — the package no longer uses MCP. See [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md).*
|
|
8
8
|
|
|
9
9
|
## Why
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- **Structural quality.** Implementation and review run on different agents — different training data, different blind spots. Cross-agent review catches what self-review can't.
|
|
13
|
-
- **Client-agnostic.** One daemon serves Claude Code, Gemini CLI, Codex CLI, and Cursor via installable skills. The daemon outlives any individual client session.
|
|
11
|
+
Your flagship model reasoning about architecture is money well spent. That same model grepping files, writing boilerplate, and running tests is waste.
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
| Project | MMA — MiniMax-M2.7 | MMA — DeepSeek V4 Pro | Flagship: Claude Opus 4.7 |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| Feature impl (30 files, ~50 tasks) | **$1.50** · **33× ROI** · ~35 min | **~$2.50** · **20× ROI** · ~15 min | $50 · 1× · *baseline* |
|
|
16
|
+
| Full web SPA (59 tasks) | **$5.65** · **12× ROI** · ~50 min | **~$9** · **7.5× ROI** · ~22 min | $68 · 1× · *baseline* |
|
|
17
|
+
| Backend microservice (91 tasks) | **$8.21** · **13× ROI** · ~1.5 hrs | **~$14** · **7.5× ROI** · ~40 min | $104 · 1× · *baseline* |
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
Plus structural quality: implementation and review run on **different** model families — different blind spots, catches what self-review can't.
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
# 1. install
|
|
21
|
-
npm i -g @zhixuan92/multi-model-agent # requires Node ≥ 22
|
|
22
|
-
|
|
23
|
-
# 2. write a config (~/.multi-model/config.json) — see Configuration below
|
|
21
|
+
## Initial setup
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
mmagent serve # 127.0.0.1:7337 by default
|
|
23
|
+
Four steps, in order.
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
mmagent install-skill # all detected clients
|
|
30
|
-
mmagent install-skill --target=claude-code # or gemini / codex / cursor
|
|
25
|
+
### 1. Install CLI + skills
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
```bash
|
|
28
|
+
npm i -g @zhixuan92/multi-model-agent # requires Node ≥ 22
|
|
29
|
+
mmagent install-skill # auto-detect all clients
|
|
30
|
+
# or pin a specific target:
|
|
31
|
+
mmagent install-skill --target=claude-code # claude-code | gemini-cli | codex-cli | cursor
|
|
34
32
|
```
|
|
35
33
|
|
|
36
|
-
|
|
34
|
+
| Client | Install location | Loaded |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Claude Code | `~/.claude/skills/` | next session |
|
|
37
|
+
| Gemini CLI | Gemini CLI skill directory | next session (requires version with external-skill support) |
|
|
38
|
+
| Codex CLI | `~/.codex/skills/` | next session |
|
|
39
|
+
| Cursor | Cursor extension manifest | restart Cursor |
|
|
40
|
+
|
|
41
|
+
### 2. Choose your parent model — intentionally
|
|
42
|
+
|
|
43
|
+
`defaults.parentModel` is **the model you'd use without mmagent**. It's the cost baseline for every per-task headline (`$X actual / $Y saved vs <parentModel> (Z× ROI)`). Leave it unset and you lose the savings/ROI signal.
|
|
37
44
|
|
|
38
|
-
|
|
45
|
+
- Heavy Claude Code user → `claude-opus-4-7`
|
|
46
|
+
- ChatGPT-led workflow → `gpt-5.5`
|
|
47
|
+
- Gemini-led workflow → `gemini-3.1-pro`
|
|
39
48
|
|
|
40
|
-
|
|
49
|
+
### 3. Write the config
|
|
41
50
|
|
|
42
|
-
|
|
51
|
+
`~/.multi-model/config.json` — minimal, recommended:
|
|
43
52
|
|
|
44
53
|
```json
|
|
45
54
|
{
|
|
46
55
|
"agents": {
|
|
47
|
-
"standard": {
|
|
48
|
-
|
|
56
|
+
"standard": {
|
|
57
|
+
"type": "openai-compatible",
|
|
58
|
+
"model": "MiniMax-M2.7",
|
|
59
|
+
"baseUrl": "https://api.minimax.io/v1",
|
|
60
|
+
"apiKeyEnv": "MINIMAX_API_KEY"
|
|
61
|
+
},
|
|
62
|
+
"complex": {
|
|
63
|
+
"type": "codex",
|
|
64
|
+
"model": "gpt-5.5"
|
|
65
|
+
}
|
|
49
66
|
},
|
|
50
67
|
"defaults": {
|
|
51
|
-
"
|
|
52
|
-
"maxCostUSD": 10,
|
|
53
|
-
"tools": "full"
|
|
54
|
-
},
|
|
55
|
-
"server": {
|
|
56
|
-
"bind": "127.0.0.1",
|
|
57
|
-
"port": 7337,
|
|
58
|
-
"auth": { "tokenFile": "~/.multi-model/auth-token" }
|
|
68
|
+
"parentModel": "claude-opus-4-7"
|
|
59
69
|
}
|
|
60
70
|
}
|
|
61
71
|
```
|
|
62
72
|
|
|
63
|
-
|
|
73
|
+
That's the whole minimum-viable file. All other knobs (`server.*`, `defaults.timeoutMs`, `defaults.maxCostUSD`, `defaults.tools`, …) have sane built-in defaults — see [Configuration reference](#configuration-reference).
|
|
74
|
+
|
|
75
|
+
### 4. Start the daemon + verify
|
|
76
|
+
|
|
77
|
+
Two ways — pick one:
|
|
78
|
+
|
|
79
|
+
**Option A — let your AI client auto-spawn it.** Open your client (Claude Code / Codex CLI / etc.) and call any mma-* skill; the skill's preflight check spawns `mmagent serve` on `127.0.0.1:7337` and reuses it for every subsequent call.
|
|
80
|
+
|
|
81
|
+
**Option B — start it manually.** Useful when you want the daemon up before opening a client:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
mmagent serve # 127.0.0.1:7337 by default
|
|
85
|
+
curl -s http://localhost:7337/health # → {"ok":true,"version":"3.6.6",...}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For an always-on background install (survives reboots): [launchd / systemd templates](./scripts/README.md).
|
|
89
|
+
|
|
90
|
+
## Updating
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npm install -g @zhixuan92/multi-model-agent@latest
|
|
94
|
+
pkill -f "mmagent serve" # stop the running daemon
|
|
95
|
+
mmagent update-skills # refresh installed skills
|
|
96
|
+
# next AI-client session respawns the daemon via the skill preflight
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
A drift warning prints on `mmagent serve` if installed skills are older than the daemon. To rotate the auth token: `rm ~/.multi-model/auth-token && mmagent serve`.
|
|
100
|
+
|
|
101
|
+
## Configuration reference
|
|
102
|
+
|
|
103
|
+
### Lookup order
|
|
104
|
+
|
|
105
|
+
`--config <path>` → `$MMAGENT_CONFIG` → `<cwd>/.multi-model-agent.json` → `~/.multi-model/config.json`.
|
|
106
|
+
|
|
107
|
+
### Agent types
|
|
108
|
+
|
|
109
|
+
| Type | Auth | When to pick |
|
|
110
|
+
|---|---|---|
|
|
111
|
+
| `claude` | Local Claude Code OAuth (`claude login`) | Stay on Claude end-to-end with subscription auth |
|
|
112
|
+
| `codex` | Codex CLI subscription (`codex login`) | OpenAI flagship work without juggling API keys |
|
|
113
|
+
| `openai-compatible` | `apiKey` or `apiKeyEnv` | Any OpenAI-compatible endpoint — MiniMax, Groq, Together, local vLLM, plus OpenAI direct |
|
|
114
|
+
| `claude-compatible` | `apiKey` or `apiKeyEnv` | Vendors exposing an Anthropic-format endpoint (DeepSeek's `/anthropic`, etc.) — preserves thinking content blocks across multi-turn tool use |
|
|
115
|
+
|
|
116
|
+
DeepSeek V4 Pro under `claude-compatible` keeps reasoning ON; under `openai-compatible` it works but auto-disables thinking.
|
|
117
|
+
|
|
118
|
+
### Tuning
|
|
119
|
+
|
|
120
|
+
Every `defaults` knob has a built-in. Override only when you need to.
|
|
121
|
+
|
|
122
|
+
| Field | Default | What it does |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| `defaults.timeoutMs` | `1800000` (30 min) | Hard task-level wall-clock cap |
|
|
125
|
+
| `defaults.stallTimeoutMs` | `600000` (10 min) | Aborts in-flight runs idle for this long |
|
|
126
|
+
| `defaults.maxCostUSD` | `10` | Hard per-task cost ceiling; returns `cost_exceeded` when hit |
|
|
127
|
+
| `defaults.tools` | `"full"` | Tool surface: `none` / `readonly` / `no-shell` / `full` |
|
|
128
|
+
| `defaults.sandboxPolicy` | `"cwd-only"` | Path-traversal + symlink confinement to the request's `cwd` |
|
|
129
|
+
| `defaults.parentModel` | *(none)* | Cost baseline for the per-task ROI headline. **Set this on purpose.** |
|
|
130
|
+
|
|
131
|
+
### Telemetry
|
|
132
|
+
|
|
133
|
+
**Off by default.** Opt in via `mmagent telemetry enable` (or `MMAGENT_TELEMETRY=1`), or set in config:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"agents": { "...": "..." },
|
|
138
|
+
"telemetry": { "enabled": true }
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Every upload batch is signed with a per-install Ed25519 key (TOFU; lives at `~/.multi-model/identity.json`); receivers can verify it came from the install whose `installId` it claims. Full disclosure: [PRIVACY.md](https://github.com/zhixuan312/multi-model-agent/blob/master/PRIVACY.md).
|
|
143
|
+
|
|
144
|
+
### Verbose / diagnostics
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"agents": { "...": "..." },
|
|
149
|
+
"diagnostics": { "log": true, "verbose": true }
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Or per-run via `mmagent serve --verbose --log`. JSONL goes to `~/.multi-model/logs/mmagent-<date>.jsonl`; large request bodies (>16 KB UTF-8) spill to `~/.multi-model/logs/requests/<batchId>.json`.
|
|
154
|
+
|
|
155
|
+
> **Note:** verbose logs may include prompts, file paths, and other task content — disable for production servers handling sensitive data.
|
|
156
|
+
|
|
157
|
+
### Auth token
|
|
64
158
|
|
|
65
|
-
|
|
159
|
+
Generated on first `mmagent serve`. Retrieve with `mmagent print-token`, or set `MMAGENT_AUTH_TOKEN` to override.
|
|
66
160
|
|
|
67
161
|
## REST API
|
|
68
162
|
|
|
@@ -78,7 +172,7 @@ The auth token is generated on first `mmagent serve`. Retrieve it with `mmagent
|
|
|
78
172
|
| `POST /execute-plan?cwd=<abs>` | Implement from a plan file |
|
|
79
173
|
| `POST /retry?cwd=<abs>` | Re-run specific tasks from a previous batch |
|
|
80
174
|
| `POST /investigate?cwd=<abs>` | Codebase Q&A — structured answer with file:line citations + confidence |
|
|
81
|
-
| `GET /batch/:id[?taskIndex=N]` | Poll a batch: `202 text/plain` (pending
|
|
175
|
+
| `GET /batch/:id[?taskIndex=N]` | Poll a batch: `202 text/plain` (pending) or `200 application/json` (terminal). `?taskIndex=N` slices on complete state |
|
|
82
176
|
| `POST /context-blocks?cwd=<abs>` | Register a reusable context block |
|
|
83
177
|
| `DELETE /context-blocks/:id?cwd=<abs>` | Delete a context block |
|
|
84
178
|
| `POST /clarifications/confirm` | Confirm / override a clarification proposal |
|
|
@@ -88,36 +182,21 @@ The auth token is generated on first `mmagent serve`. Retrieve it with `mmagent
|
|
|
88
182
|
|
|
89
183
|
All tool endpoints require bearer auth: `Authorization: Bearer <token>`.
|
|
90
184
|
|
|
91
|
-
## What's new in 3.5.1
|
|
92
|
-
|
|
93
|
-
**Bug fixes:**
|
|
94
|
-
- **Single-provider deployments no longer burn a doomed cross-tier fallback call.** When `agents.standard` and `agents.complex` resolve to the same backend (one-provider deployment) and the assigned-tier call transport-fails, the wrapper used to substitute to the alt tier — which in that configuration just hits the same backend, burning a second doomed call and surfacing as `terminationReason: 'all_tiers_unavailable'`. The original failure now flows through as the task's terminal result with the actual root-cause status. No new operator config; auto-detected via deep-equal of the effective provider config.
|
|
95
|
-
- **No more `runner_crash: verbose-line: invalid key name` on fallback / rework paths.** With `diagnostics.verbose: true`, any run that hit fallback / escalation / spec_rework / quality_rework previously threw inside the verbose-stream serializer (camelCase event-param keys like `assignedTier`, `implTier`, `attemptCap` violated its snake_case-only validator) and surfaced as terminal `runner_crash` even though the model itself succeeded. The verbose-stream branch now drops `batchId` / `taskIndex` (already emitted as `batch` / `task`) and snake-cases the remaining keys; the JSONL `DiagnosticLogger` contract (camelCase `assignedTier` / `implTier` / ... on `escalation` / `fallback` events) is unchanged.
|
|
96
|
-
|
|
97
|
-
## What's new in 3.5.0
|
|
98
|
-
|
|
99
|
-
**Breaking changes (operators read this first):**
|
|
100
|
-
- `task.maxReviewRounds` is gone — review caps now derive from policy tables (`maxReworksFor('spec') = 2`, `maxReworksFor('quality') = 2`). Remove the field from any callers.
|
|
101
|
-
- `agentType` is gone from `/execute-plan` (top-level + per-task). The compiler hardcodes `agentType: 'standard'`. `/delegate` is unchanged and still accepts the field.
|
|
102
|
-
- Status-level escalation inside `delegateWithEscalation` is removed. Transport failures now flow through the new `runWithFallback` wrapper in `reviewed-lifecycle.ts`.
|
|
103
|
-
|
|
104
|
-
**New behavior:**
|
|
105
|
-
- **Tier-escalating rework.** For standard-tier tasks, the implementation tier escalates to complex on the final rework attempt; reviewers swap to keep impl ≠ reviewer.
|
|
106
|
-
- **Runtime tier fallback.** Transport failures (`api_error` / `network_error` / `timeout`) or missing configuration trigger automatic substitution of the other tier. Fallback is sticky per loop.
|
|
107
|
-
- **Single-slot operators** receive reviews on the same tier (`violatesSeparation: true`); set `reviewPolicy: 'off'` to opt out.
|
|
108
|
-
- **Four new diagnostic events** — `escalation`, `escalation_unavailable`, `fallback`, `fallback_unavailable` — emitted via the verbose stderr stream and JSONL log.
|
|
109
|
-
- **New `agents.*History` and `agents.fallbackOverrides`** envelope fields surface tier movement; the headline composer adds `(escalated to complex; fallback fired)` style suffixes.
|
|
110
|
-
|
|
111
185
|
## Operator commands
|
|
112
186
|
|
|
113
187
|
```bash
|
|
114
|
-
mmagent serve [--verbose] [--log]
|
|
115
|
-
mmagent info [--json]
|
|
116
|
-
mmagent status [--json]
|
|
117
|
-
mmagent logs [--follow] [--batch=<id>]
|
|
118
|
-
mmagent print-token
|
|
119
|
-
mmagent install-skill [--target=<client>] [--all-targets] [--uninstall]
|
|
120
|
-
mmagent update-skills [--dry-run] [--json]
|
|
188
|
+
mmagent serve [--verbose] [--log] # start daemon
|
|
189
|
+
mmagent info [--json] # cliVersion, bind/port, token fingerprint, daemon identity
|
|
190
|
+
mmagent status [--json] # health + stats from a running daemon
|
|
191
|
+
mmagent logs [--follow] [--batch=<id>] # tail today's diagnostic log
|
|
192
|
+
mmagent print-token # print the current auth token
|
|
193
|
+
mmagent install-skill [--target=<client>] [--all-targets] [--uninstall]
|
|
194
|
+
mmagent update-skills [--dry-run] [--json] # refresh installed skills after upgrade
|
|
195
|
+
mmagent telemetry status # show consent state + source
|
|
196
|
+
mmagent telemetry enable # opt in
|
|
197
|
+
mmagent telemetry disable # opt out + delete local queue
|
|
198
|
+
mmagent telemetry reset-id # rotate the local Ed25519 identity
|
|
199
|
+
mmagent telemetry dump-queue # print the locally-queued events as JSON
|
|
121
200
|
```
|
|
122
201
|
|
|
123
202
|
## Shipped skills
|
|
@@ -138,43 +217,27 @@ Skills are Markdown prompts that tell your AI client when and how to call each e
|
|
|
138
217
|
| `mma-context-blocks` | `POST/DELETE /context-blocks` |
|
|
139
218
|
| `mma-clarifications` | `POST /clarifications/confirm` |
|
|
140
219
|
|
|
141
|
-
##
|
|
142
|
-
|
|
143
|
-
### Upgrading
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
npm install -g @zhixuan92/multi-model-agent@latest
|
|
147
|
-
pkill -f "mmagent serve" # stop the running daemon
|
|
148
|
-
mmagent update-skills # refresh installed skills
|
|
149
|
-
# next AI-client session respawns the daemon via the skill preflight
|
|
150
|
-
```
|
|
220
|
+
## Architecture
|
|
151
221
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
### Verbose mode
|
|
155
|
-
|
|
156
|
-
Enable per-run via `mmagent serve --verbose --log`, or persist in config:
|
|
157
|
-
|
|
158
|
-
```json
|
|
159
|
-
{ "diagnostics": { "log": true, "verbose": true } }
|
|
160
|
-
```
|
|
222
|
+
`mmagent serve` runs a loopback HTTP server. Each tool call dispatches to a labor agent (standard or complex), runs a cross-agent review cycle, and returns a structured report. Tasks run in parallel; each has a cost ceiling and wall-clock timeout.
|
|
161
223
|
|
|
162
|
-
|
|
224
|
+
Full design rationale: [DIRECTION.md](https://github.com/zhixuan312/multi-model-agent/blob/master/DIRECTION.md). Layer map and request lifecycle: [docs/ARCHITECTURE.md](https://github.com/zhixuan312/multi-model-agent/blob/master/docs/ARCHITECTURE.md).
|
|
163
225
|
|
|
164
|
-
|
|
226
|
+
## Troubleshooting
|
|
165
227
|
|
|
166
228
|
| Symptom | Fix |
|
|
167
229
|
|---|---|
|
|
168
230
|
| Port 7337 already in use | `lsof -nP -i :7337` → kill the stale process |
|
|
169
|
-
| Daemon stale after upgrade | `pkill -f "mmagent serve"`; preflight respawns |
|
|
231
|
+
| Daemon stale after upgrade | `pkill -f "mmagent serve"`; the skill preflight respawns it on next client session |
|
|
170
232
|
| Skill version mismatch | `mmagent update-skills` and restart your client |
|
|
171
233
|
| `401 unauthorized` from a skill | `export MMAGENT_AUTH_TOKEN=$(mmagent print-token)` |
|
|
234
|
+
| `pkill` reports success but `mmagent info` still shows the old PID | The pattern didn't match — try `kill <pid-from-mmagent-info>` directly |
|
|
235
|
+
| TLS `handshake_failure` to a known-good telemetry endpoint | Local DNS cache is stale. `sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder` (macOS); restart the daemon so its Node process re-resolves |
|
|
236
|
+
| Local telemetry queue stops draining | Daemon's flusher is in exponential backoff after a transport failure (capped at 1 hr). Restart the daemon to force an immediate boot-flush |
|
|
172
237
|
|
|
173
|
-
##
|
|
174
|
-
|
|
175
|
-
`mmagent serve` runs a loopback HTTP server. Each tool call dispatches to a labor agent (standard or complex), runs a cross-agent review cycle, and returns a structured report. Tasks run in parallel; each has a cost ceiling and wall-clock timeout.
|
|
238
|
+
## What's new
|
|
176
239
|
|
|
177
|
-
|
|
240
|
+
Latest: **3.6.6** — Vendor-prefixed model IDs are now recognized: `bedrock.claude-haiku-4-5`, `vertex/claude-sonnet-4-5`, `azure/gpt-5.5`, `anthropic.claude-haiku-4-5-v1:0` and their compound variants normalize to canonical names so pricing, ROI, modelFamily, and telemetry validation all work end-to-end. Full history: [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md).
|
|
178
241
|
|
|
179
242
|
## Full documentation
|
|
180
243
|
|
|
@@ -9,7 +9,7 @@ when_to_use: >-
|
|
|
9
9
|
mma-debug / mma-investigate terminal envelope has `proposedInterpretation` as
|
|
10
10
|
a string. Read the proposal, decide whether to accept or correct it, then call
|
|
11
11
|
this skill. The batch resumes immediately after the POST returns.
|
|
12
|
-
version: 3.6.
|
|
12
|
+
version: 3.6.6
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# mma-clarifications
|
|
@@ -10,7 +10,7 @@ when_to_use: >-
|
|
|
10
10
|
Register once here, then pass the ID via `contextBlockIds` on mma-delegate /
|
|
11
11
|
mma-execute-plan / mma-audit / mma-review / mma-verify / mma-debug /
|
|
12
12
|
mma-investigate. Cheaper and faster than inlining the same content N times.
|
|
13
|
-
version: 3.6.
|
|
13
|
+
version: 3.6.6
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# 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: 3.6.
|
|
13
|
+
version: 3.6.6
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-debug
|
|
@@ -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: 3.6.
|
|
14
|
+
version: 3.6.6
|
|
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: 3.6.
|
|
13
|
+
version: 3.6.6
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-execute-plan
|
|
@@ -10,7 +10,7 @@ when_to_use: >-
|
|
|
10
10
|
you want to re-try the failed indices only. Prefer this over re-dispatching
|
|
11
11
|
the whole batch or inline-retrying — it's idempotent and preserves the
|
|
12
12
|
original batch's diagnostics.
|
|
13
|
-
version: 3.6.
|
|
13
|
+
version: 3.6.6
|
|
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: 3.6.
|
|
13
|
+
version: 3.6.6
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-review
|
|
@@ -10,7 +10,7 @@ when_to_use: >-
|
|
|
10
10
|
against implemented work BEFORE claiming success. Delegate so each checklist
|
|
11
11
|
item gets independent evidence-gathering on a worker. Use this BEFORE saying
|
|
12
12
|
"done" — never after.
|
|
13
|
-
version: 3.6.
|
|
13
|
+
version: 3.6.6
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# mma-verify
|
|
@@ -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: 3.6.
|
|
14
|
+
version: 3.6.6
|
|
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": "3.6.
|
|
3
|
+
"version": "3.6.6",
|
|
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.",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@asteasolutions/zod-to-openapi": "^8.5.0",
|
|
55
|
-
"@zhixuan92/multi-model-agent-core": "^3.6.
|
|
55
|
+
"@zhixuan92/multi-model-agent-core": "^3.6.6",
|
|
56
56
|
"gray-matter": "^4.0.3",
|
|
57
57
|
"minimist": "^1.2.8",
|
|
58
58
|
"proper-lockfile": "^4.1.2",
|