@zhixuan92/multi-model-agent 4.0.2 → 4.0.3
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 +25 -14
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +1 -42
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/telemetry.js +2 -2
- package/dist/cli/telemetry.js.map +1 -1
- package/dist/http/async-dispatch.d.ts +11 -0
- package/dist/http/async-dispatch.d.ts.map +1 -1
- package/dist/http/async-dispatch.js +87 -6
- package/dist/http/async-dispatch.js.map +1 -1
- package/dist/http/execution-context.d.ts +4 -1
- package/dist/http/execution-context.d.ts.map +1 -1
- package/dist/http/execution-context.js +14 -6
- package/dist/http/execution-context.js.map +1 -1
- package/dist/http/handlers/control/batch.d.ts.map +1 -1
- package/dist/http/handlers/control/batch.js +74 -6
- package/dist/http/handlers/control/batch.js.map +1 -1
- package/dist/http/handlers/control/retry.d.ts.map +1 -1
- package/dist/http/handlers/control/retry.js +1 -0
- package/dist/http/handlers/control/retry.js.map +1 -1
- package/dist/http/handlers/tools/audit.d.ts.map +1 -1
- package/dist/http/handlers/tools/audit.js +1 -0
- package/dist/http/handlers/tools/audit.js.map +1 -1
- package/dist/http/handlers/tools/debug.d.ts.map +1 -1
- package/dist/http/handlers/tools/debug.js +1 -0
- package/dist/http/handlers/tools/debug.js.map +1 -1
- package/dist/http/handlers/tools/delegate.d.ts.map +1 -1
- package/dist/http/handlers/tools/delegate.js +1 -0
- package/dist/http/handlers/tools/delegate.js.map +1 -1
- package/dist/http/handlers/tools/execute-plan.d.ts.map +1 -1
- package/dist/http/handlers/tools/execute-plan.js +1 -0
- package/dist/http/handlers/tools/execute-plan.js.map +1 -1
- package/dist/http/handlers/tools/explore.d.ts.map +1 -1
- package/dist/http/handlers/tools/explore.js +1 -0
- package/dist/http/handlers/tools/explore.js.map +1 -1
- package/dist/http/handlers/tools/investigate.d.ts.map +1 -1
- package/dist/http/handlers/tools/investigate.js +1 -0
- package/dist/http/handlers/tools/investigate.js.map +1 -1
- package/dist/http/handlers/tools/retry.d.ts.map +1 -1
- package/dist/http/handlers/tools/retry.js +1 -0
- package/dist/http/handlers/tools/retry.js.map +1 -1
- package/dist/http/handlers/tools/review.d.ts.map +1 -1
- package/dist/http/handlers/tools/review.js +1 -0
- package/dist/http/handlers/tools/review.js.map +1 -1
- package/dist/http/handlers/tools/verify.d.ts.map +1 -1
- package/dist/http/handlers/tools/verify.js +1 -0
- package/dist/http/handlers/tools/verify.js.map +1 -1
- package/dist/http/middleware/caller-identity.d.ts +6 -3
- package/dist/http/middleware/caller-identity.d.ts.map +1 -1
- package/dist/http/middleware/caller-identity.js +5 -16
- package/dist/http/middleware/caller-identity.js.map +1 -1
- package/dist/http/project-registry.d.ts +9 -0
- package/dist/http/project-registry.d.ts.map +1 -1
- package/dist/http/project-registry.js +6 -2
- package/dist/http/project-registry.js.map +1 -1
- package/dist/http/request-pipeline.d.ts +3 -0
- package/dist/http/request-pipeline.d.ts.map +1 -1
- package/dist/http/request-pipeline.js +11 -1
- package/dist/http/request-pipeline.js.map +1 -1
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +30 -3
- package/dist/http/server.js.map +1 -1
- package/dist/http/types.d.ts +3 -2
- package/dist/http/types.d.ts.map +1 -1
- package/dist/skills/_shared/auth.md +25 -12
- package/dist/skills/mma-audit/SKILL.md +3 -1
- package/dist/skills/mma-context-blocks/SKILL.md +5 -1
- package/dist/skills/mma-debug/SKILL.md +3 -1
- package/dist/skills/mma-delegate/SKILL.md +3 -1
- package/dist/skills/mma-execute-plan/SKILL.md +3 -1
- package/dist/skills/mma-explore/SKILL.md +3 -1
- package/dist/skills/mma-investigate/SKILL.md +3 -1
- package/dist/skills/mma-retry/SKILL.md +3 -1
- package/dist/skills/mma-review/SKILL.md +3 -1
- package/dist/skills/mma-verify/SKILL.md +3 -1
- package/dist/skills/multi-model-agent/SKILL.md +1 -1
- package/dist/telemetry/recorder.js +3 -0
- package/dist/telemetry/recorder.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -38,14 +38,21 @@ mmagent sync-skills --target=claude-code # claude-code | gemini-cli | codex-c
|
|
|
38
38
|
| Codex CLI | `~/.codex/skills/` | next session |
|
|
39
39
|
| Cursor | Cursor extension manifest | restart Cursor |
|
|
40
40
|
|
|
41
|
-
### 2. Choose your
|
|
41
|
+
### 2. Choose your main model — intentionally (4.0.3+)
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Your **main model** is **the model you'd use without mmagent** — the cost baseline for every per-task headline (`$X actual / $Y saved vs <mainModel> (Z× ROI)`).
|
|
44
44
|
|
|
45
45
|
- Heavy Claude Code user → `claude-opus-4-7`
|
|
46
46
|
- ChatGPT-led workflow → `gpt-5.5`
|
|
47
47
|
- Gemini-led workflow → `gemini-3.1-pro`
|
|
48
48
|
|
|
49
|
+
Starting in 4.0.3, the main model is set **per request** via the required `X-MMA-Main-Model` header. The shipped skills do this for you (read from `MMAGENT_MAIN_MODEL` env, default `claude-opus-4-7`). Custom callers MUST send both `X-MMA-Main-Model` and `X-MMA-Client` on every tool route — server returns `400 main_model_required` / `400 client_required` otherwise.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
export MMAGENT_MAIN_MODEL=claude-opus-4-7
|
|
53
|
+
export MMAGENT_CLIENT=claude-code
|
|
54
|
+
```
|
|
55
|
+
|
|
49
56
|
### 3. Write the config
|
|
50
57
|
|
|
51
58
|
Paste this into your shell — it creates `~/.multi-model/config.json` with the minimum-viable starter config (overwrites any existing file at that path):
|
|
@@ -64,14 +71,13 @@ mkdir -p ~/.multi-model && cat > ~/.multi-model/config.json <<'EOF'
|
|
|
64
71
|
"type": "codex",
|
|
65
72
|
"model": "gpt-5.5"
|
|
66
73
|
}
|
|
67
|
-
},
|
|
68
|
-
"defaults": {
|
|
69
|
-
"parentModel": "claude-opus-4-7"
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
EOF
|
|
73
77
|
```
|
|
74
78
|
|
|
79
|
+
> **Removed in 4.0.3:** `defaults.parentModel` is no longer accepted. Main model now comes from the per-request `X-MMA-Main-Model` header.
|
|
80
|
+
|
|
75
81
|
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).
|
|
76
82
|
|
|
77
83
|
### 4. Start the daemon + verify
|
|
@@ -84,7 +90,7 @@ Two ways — pick one:
|
|
|
84
90
|
|
|
85
91
|
```bash
|
|
86
92
|
mmagent serve # 127.0.0.1:7337 by default
|
|
87
|
-
curl -s http://localhost:7337/health # → {"ok":true,"version":"4.0.
|
|
93
|
+
curl -s http://localhost:7337/health # → {"ok":true,"version":"4.0.3",...}
|
|
88
94
|
```
|
|
89
95
|
|
|
90
96
|
For an always-on background install (survives reboots): [launchd / systemd templates](./scripts/README.md).
|
|
@@ -194,7 +200,6 @@ Every `defaults` knob has a built-in. Override only when you need to.
|
|
|
194
200
|
| `defaults.maxCostUSD` | `10` | Hard per-task cost ceiling; returns `cost_exceeded` when hit |
|
|
195
201
|
| `defaults.tools` | `"full"` | Tool surface: `none` / `readonly` / `no-shell` / `full` |
|
|
196
202
|
| `defaults.sandboxPolicy` | `"cwd-only"` | Path-traversal + symlink confinement to the request's `cwd` |
|
|
197
|
-
| `defaults.parentModel` | *(none)* | Cost baseline for the per-task ROI headline. **Set this on purpose.** |
|
|
198
203
|
|
|
199
204
|
### Telemetry
|
|
200
205
|
|
|
@@ -285,14 +290,20 @@ Full design rationale: [DIRECTION.md](https://github.com/zhixuan312/multi-model-
|
|
|
285
290
|
| 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 |
|
|
286
291
|
| 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 |
|
|
287
292
|
|
|
288
|
-
## What's new in 4.0.
|
|
293
|
+
## What's new in 4.0.3
|
|
294
|
+
|
|
295
|
+
- **Required headers `X-MMA-Main-Model` + `X-MMA-Client` on every tool route.** Server returns `400 main_model_required` / `400 client_required` if missing. Replaces `defaults.parentModel` config (removed) and `PARENT_MODEL_NAME` env. Shipped skills set both headers automatically from `MMAGENT_MAIN_MODEL` + `MMAGENT_CLIENT` env vars.
|
|
296
|
+
- **Wire field rename:** `parentModel*` → `mainModel*` (matches DB column `main_model`). `costDeltaVsParentUSD` → `costDeltaVsMainUSD`. Internal record now matches wire 1:1.
|
|
297
|
+
- **Canonical model-name preservation.** `claude-opus-4-7` no longer collapses to `claude-opus`. Best-effort extraction handles arbitrary wrappers (`bedrock.claude-opus-4-7`, `vertex_ai/anthropic.claude-sonnet-4-6@2024-10-22`).
|
|
298
|
+
- **`contextBlockIds` actually reach the worker prompt.** Round-over-round audit recipes were broken pre-4.0.3 — the dispatcher dispatched the unexpanded task. Now the same expanded reference flows through both `state.task` and `executionContext.task`.
|
|
299
|
+
- **File-backed context blocks survive daemon restarts.** Stored at `<projectCwd>/.mma/context-blocks/<id>.txt` with atomic writes, mode `0700`/`0600`, 7-day TTL, 1 MiB / 100 MiB caps. `.mma/` belongs in `.gitignore` (daemon prints a stderr breadcrumb on first creation).
|
|
300
|
+
- **`totalDurationMs` reflects real wall-clock** (was implementer-only). Per-stage durations stay truthful — drops the proportional scale-down that was masking the under-counting.
|
|
301
|
+
- **Audit/review/delegate headlines** fall back to `runResult.annotatedFindings` and `runResult.filesWritten` when the structured report lacks them. Pre-fix headlines reported `0 findings (0 high)` and `(0 files)` for narrative-emitting tools.
|
|
302
|
+
- **`batch_failed` fires when the executor packages an error envelope.** Operator visibility — verbose stream no longer says `batch_completed` while the run actually failed.
|
|
303
|
+
- **`run_shell` write tracking.** Workers writing via `cat >`, `sed -i`, `tee`, etc. correctly increment the polling headline's write count.
|
|
304
|
+
- **Stage-progression denominator derives from the StagePlan.** Audit `(1/3)`, delegate `(1/9)`, register-context-block `(1/1)`. Single source of truth.
|
|
289
305
|
|
|
290
|
-
|
|
291
|
-
- **4-field `TokenUsage`.** `{inputTokens, outputTokens, cachedReadTokens, cachedNonReadTokens}` — `outputTokens` includes reasoning. Telemetry SCHEMA_VERSION bumped to 4.
|
|
292
|
-
- **Clarification flow removed.** `confirm_clarifications` route, `mma-clarifications` skill, and `proposedInterpretation` field gone. Intake resolves ambiguity by picking the most likely interpretation.
|
|
293
|
-
- **Wire field rename.** Internal `mainModel*` ↔ wire `parentModel*`. `reviewerConfidence` → `annotatorConfidence`. errorCodes renamed: `verify_command_error` → `validator_verify_command_failed`; `dirty_worktree` → `validator_dirty_worktree`. Removed: `intake_clarification_expired`, `lifecycle_round_cap_exceeded`.
|
|
294
|
-
- **New: `register_context_block` route.** Re-installing skills now actively cleans up orphan files. Context-block defaults: 24 h idle TTL, `maxEntries` 500, HTTP body cap 50 MiB hard `413`.
|
|
295
|
-
- **Internals.** Declarative `StagePlan` driven by a single `LifecycleDriver`; `RunnerShell` + 3 thin adapters replaces the three parallel runner files. 2969 tests pass.
|
|
306
|
+
**Migration from 4.0.2:** custom HTTP callers must add `X-MMA-Main-Model` and `X-MMA-Client`. Skills users get this for free after `mmagent sync-skills`.
|
|
296
307
|
|
|
297
308
|
Full history: [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md).
|
|
298
309
|
|
package/dist/cli/serve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,mCAAmC,CAAC;AAyBzF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsCf;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,mCAAmC,CAAC;AAyBzF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsCf;AAiBD,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAgBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAkC,GACzD,OAAO,CAAC,WAAW,CAAC,CAsMtB"}
|
package/dist/cli/serve.js
CHANGED
|
@@ -96,19 +96,6 @@ function readServerVersion() {
|
|
|
96
96
|
return '0.0.0';
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
function compareSemver(a, b) {
|
|
100
|
-
const [aMaj, aMin, aPat] = a.split('.').map(Number);
|
|
101
|
-
const [bMaj, bMin, bPat] = b.split('.').map(Number);
|
|
102
|
-
if (Number.isNaN(aMaj) || Number.isNaN(aMin) || Number.isNaN(aPat) ||
|
|
103
|
-
Number.isNaN(bMaj) || Number.isNaN(bMin) || Number.isNaN(bPat)) {
|
|
104
|
-
return -1; // unparseable version → treat as mismatched
|
|
105
|
-
}
|
|
106
|
-
if (aMaj !== bMaj)
|
|
107
|
-
return aMaj - bMaj;
|
|
108
|
-
if (aMin !== bMin)
|
|
109
|
-
return aMin - bMin;
|
|
110
|
-
return aPat - bPat;
|
|
111
|
-
}
|
|
112
99
|
function envVarHint(agentName) {
|
|
113
100
|
return `${agentName.toUpperCase().replace(/[^A-Z0-9]/g, '_')}_API_KEY`;
|
|
114
101
|
}
|
|
@@ -221,32 +208,9 @@ export async function startServe(config, exit = process.exit.bind(process)) {
|
|
|
221
208
|
onStderrErrorRef = onStderrError;
|
|
222
209
|
onUncaughtRef = onUncaught;
|
|
223
210
|
onUnhandledRejectionRef = onUnhandledRejection;
|
|
224
|
-
// ── Telemetry:
|
|
211
|
+
// ── Telemetry: recorder ────────────────────────────────────────────────
|
|
225
212
|
const homeDir = path.join(os.homedir(), '.multi-model');
|
|
226
213
|
const mmagentVersion = readServerVersion();
|
|
227
|
-
// V2→V3 consent re-confirmation (§7.6): V2 opt-ins do NOT auto-migrate.
|
|
228
|
-
// When telemetry is enabled but consent schemaVersion is < 3,
|
|
229
|
-
// clear the flag and prompt the user to re-confirm.
|
|
230
|
-
const configPath = path.join(homeDir, 'config.json');
|
|
231
|
-
try {
|
|
232
|
-
const raw = fs.readFileSync(configPath, 'utf8');
|
|
233
|
-
const cfg = JSON.parse(raw);
|
|
234
|
-
const telemetry = (cfg.telemetry ?? {});
|
|
235
|
-
if (telemetry.enabled === true) {
|
|
236
|
-
const consentVersion = telemetry.consentSchemaVersion;
|
|
237
|
-
if ((consentVersion ?? 0) < 3) {
|
|
238
|
-
telemetry.enabled = false;
|
|
239
|
-
telemetry.consentSchemaVersion = 3;
|
|
240
|
-
cfg.telemetry = telemetry;
|
|
241
|
-
fs.writeFileSync(configPath, JSON.stringify(cfg, null, 2) + '\n', { mode: 0o600 });
|
|
242
|
-
stderr('mmagent: telemetry schema upgraded to v3; previous opt-in cleared.\n');
|
|
243
|
-
stderr('Run "mmagent telemetry enable" to opt in to schema v3.\n');
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
// no config file, first run — nothing to migrate
|
|
249
|
-
}
|
|
250
214
|
const recorder = createRecorder({ homeDir, mmagentVersion });
|
|
251
215
|
const lastVersionPath = path.join(homeDir, 'last-version');
|
|
252
216
|
let lastVersion = null;
|
|
@@ -257,11 +221,6 @@ export async function startServe(config, exit = process.exit.bind(process)) {
|
|
|
257
221
|
// first run — no last-version file yet
|
|
258
222
|
}
|
|
259
223
|
if (lastVersion !== mmagentVersion) {
|
|
260
|
-
const trigger = lastVersion === null
|
|
261
|
-
? 'fresh_install'
|
|
262
|
-
: compareSemver(lastVersion, mmagentVersion) < 0
|
|
263
|
-
? 'upgrade'
|
|
264
|
-
: 'downgrade';
|
|
265
224
|
try {
|
|
266
225
|
fs.mkdirSync(homeDir, { recursive: true });
|
|
267
226
|
fs.writeFileSync(lastVersionPath, mmagentVersion + '\n', { mode: 0o600 });
|
package/dist/cli/serve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/telemetry.js
CHANGED
|
@@ -79,11 +79,11 @@ async function runEnable(deps) {
|
|
|
79
79
|
}
|
|
80
80
|
const telemetry = (cfg.telemetry ?? {});
|
|
81
81
|
telemetry.enabled = true;
|
|
82
|
-
telemetry.consentSchemaVersion
|
|
82
|
+
delete telemetry.consentSchemaVersion;
|
|
83
83
|
cfg.telemetry = telemetry;
|
|
84
84
|
try {
|
|
85
85
|
writeConfigObj(deps.homeDir, cfg);
|
|
86
|
-
stdout('Telemetry enabled (config.telemetry.enabled = true
|
|
86
|
+
stdout('Telemetry enabled (config.telemetry.enabled = true)\n');
|
|
87
87
|
return 0;
|
|
88
88
|
}
|
|
89
89
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAA4B,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,GAA4B;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,SAAS,CAAC,IAAmB;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAErC,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,iCAAiC,MAAM,IAAI,EAAE,mEAAmE,CAAC,CAAC;IAC/H,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,SAAS,CAAC,IAAmB;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5C,sFAAsF;IACtF,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACnE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IACzB,OAAQ,SAAiB,CAAC,oBAAoB,CAAC;IAC/C,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1B,IAAI,CAAC;QACH,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,uDAAuD,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1F,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,UAAU,CAAC,IAAmB;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACnE,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAC1B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1B,IAAI,CAAC;QACH,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,2EAA2E,CAAC,CAAC;QACpF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3F,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,UAAU,CAAC,IAAmB;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,yEAAyE,CAAC,CAAC;QAClF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,YAAY,CAAC,IAAmB;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9F,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmB;IACpD,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAI,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,QAAQ,CAAC,CAAI,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,SAAS,CAAC,CAAG,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,UAAU,CAAC,CAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,YAAY,CAAC,CAAA,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,CAAC,0CAA2C,IAAY,CAAC,UAAU,KAAK,CAAC,CAAC;YAChF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -8,6 +8,17 @@ export interface AsyncDispatchOptions<TResult> {
|
|
|
8
8
|
batchRegistry: BatchRegistry;
|
|
9
9
|
projectContext: ProjectContext;
|
|
10
10
|
deps: HandlerDeps;
|
|
11
|
+
/**
|
|
12
|
+
* Caller identity from the x-mma-client request header. Threaded into
|
|
13
|
+
* ExecutionContext so the cloud `task.completed` event carries the client.
|
|
14
|
+
* Without this the wire event has an empty string and the backend rejects
|
|
15
|
+
* the upload (STRICT_ID_REGEX). triggeringSkill was dropped because it's
|
|
16
|
+
* implied by `route` for the 99% case (mma-<route> → /<route>).
|
|
17
|
+
*/
|
|
18
|
+
caller?: {
|
|
19
|
+
client: string;
|
|
20
|
+
mainModel?: string | null;
|
|
21
|
+
};
|
|
11
22
|
/**
|
|
12
23
|
* The async function that does the real work. Receives the ExecutionContext
|
|
13
24
|
* and the pre-allocated batchId.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-dispatch.d.ts","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"async-dispatch.d.ts","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,oBAAoB,CAAC,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvD;;;OAGG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EACnC,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAClC,mBAAmB,CA8HrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// packages/server/src/http/async-dispatch.ts
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { STAGE_ORDER_BY_ROUTE } from '@zhixuan92/multi-model-agent-core/lifecycle/stage-progression';
|
|
3
4
|
import { buildExecutionContext } from './execution-context.js';
|
|
4
5
|
/**
|
|
5
6
|
* Registers a new batch as 'pending', schedules the executor via setImmediate,
|
|
@@ -26,7 +27,7 @@ export function asyncDispatch(opts) {
|
|
|
26
27
|
blocksReleased: false,
|
|
27
28
|
});
|
|
28
29
|
// Build execution context for this batch
|
|
29
|
-
const ctx = buildExecutionContext(deps, projectContext, batchId, tool);
|
|
30
|
+
const ctx = buildExecutionContext(deps, projectContext, batchId, tool, opts.caller);
|
|
30
31
|
// Schedule executor asynchronously — do not await here
|
|
31
32
|
const startedAtMs = Date.now();
|
|
32
33
|
setImmediate(() => {
|
|
@@ -46,11 +47,29 @@ export function asyncDispatch(opts) {
|
|
|
46
47
|
entry.tasksTotal = 1;
|
|
47
48
|
entry.tasksStarted = 1;
|
|
48
49
|
entry.tasksCompleted = 0;
|
|
50
|
+
// Use the route's stage-order denominator (3 for audit, 7 for
|
|
51
|
+
// delegate, etc.) so polling shows "Implementing (1/3)" the
|
|
52
|
+
// instant the executor starts — instead of an opaque
|
|
53
|
+
// "1/1 running" that doesn't tell the main agent how far along
|
|
54
|
+
// the lifecycle has progressed.
|
|
55
|
+
const stagesTotal = STAGE_ORDER_BY_ROUTE[tool]?.length ?? 1;
|
|
56
|
+
const initialStage = STAGE_ORDER_BY_ROUTE[tool]?.[0] ?? 'Running';
|
|
57
|
+
const prefix = `${initialStage} (1/${stagesTotal}) - `;
|
|
58
|
+
const fallback = `${initialStage} (1/${stagesTotal})`;
|
|
49
59
|
batchRegistry.updateRunningHeadlineSnapshot(batchId, {
|
|
50
|
-
prefix
|
|
60
|
+
prefix,
|
|
51
61
|
statsClause: ``,
|
|
52
62
|
dispatchedAt: entry.runningHeadlineSnapshot.dispatchedAt,
|
|
53
|
-
fallback
|
|
63
|
+
fallback,
|
|
64
|
+
});
|
|
65
|
+
// Also seed the per-task snapshot so multi-task polling formatters
|
|
66
|
+
// don't fall through to the legacy single-snapshot path before the
|
|
67
|
+
// first runner_turn_completed event fires.
|
|
68
|
+
batchRegistry.updatePerTaskHeadlineSnapshot(batchId, 0, {
|
|
69
|
+
prefix,
|
|
70
|
+
statsClause: ``,
|
|
71
|
+
dispatchedAt: entry.runningHeadlineSnapshot.dispatchedAt,
|
|
72
|
+
fallback,
|
|
54
73
|
});
|
|
55
74
|
}
|
|
56
75
|
// Verbose-stderr breadcrumb so operators tailing the daemon see the
|
|
@@ -67,9 +86,25 @@ export function asyncDispatch(opts) {
|
|
|
67
86
|
batchRegistry.complete(batchId, result);
|
|
68
87
|
const taskCount = Array.isArray(resultObj?.results) ? resultObj.results.length : 0;
|
|
69
88
|
const durationMs = Date.now() - startedAtMs;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
89
|
+
// Gap 5 fix (4.0.3+): inspect the envelope for structured failure
|
|
90
|
+
// signals. The executor may catch errors and package them into a
|
|
91
|
+
// result envelope (with structuredError or status='error') instead
|
|
92
|
+
// of throwing — without this check, batch_completed fires
|
|
93
|
+
// misleadingly while the verbose log gives operators no signal
|
|
94
|
+
// that anything went wrong. Detection uses STRUCTURED FIELDS ONLY,
|
|
95
|
+
// never string comparisons.
|
|
96
|
+
const failure = detectFailure(resultObj);
|
|
97
|
+
if (failure) {
|
|
98
|
+
deps.bus.emit({ event: 'batch_failed', ts: new Date().toISOString(), batchId, tool, durationMs, errorCode: failure.code, errorMessage: failure.message });
|
|
99
|
+
if (deps.config.diagnostics?.verbose) {
|
|
100
|
+
process.stdout.write(`[mmagent verbose] event=batch_failed ts=${new Date().toISOString()} batch=${batchId} route=${tool} duration_ms=${durationMs} error_code=${failure.code} error="${failure.message.replace(/"/g, '\\"')}"\n`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
deps.bus.emit({ event: 'batch_completed', ts: new Date().toISOString(), batchId, tool, durationMs, taskCount });
|
|
105
|
+
if (deps.config.diagnostics?.verbose) {
|
|
106
|
+
process.stdout.write(`[mmagent verbose] event=batch_completed ts=${new Date().toISOString()} batch=${batchId} route=${tool} duration_ms=${durationMs}\n`);
|
|
107
|
+
}
|
|
73
108
|
}
|
|
74
109
|
}
|
|
75
110
|
catch (err) {
|
|
@@ -93,4 +128,50 @@ export function asyncDispatch(opts) {
|
|
|
93
128
|
statusUrl: `/batch/${batchId}`,
|
|
94
129
|
};
|
|
95
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Inspect an executor return envelope for structured failure signals.
|
|
133
|
+
* Returns { code, message } when the envelope indicates failure, null
|
|
134
|
+
* otherwise.
|
|
135
|
+
*
|
|
136
|
+
* Per the Gap 5 fix design (wire-telemetry-gaps plan): NO string
|
|
137
|
+
* comparison to "batch succeeded". Use only:
|
|
138
|
+
* 1. Any task result with `structuredError` (most authoritative)
|
|
139
|
+
* 2. Any task result with `status` other than 'ok'
|
|
140
|
+
* 3. Envelope-level `error` object whose `kind` is not 'not_applicable'
|
|
141
|
+
* (notApplicable() is the structured "no error" sentinel)
|
|
142
|
+
*/
|
|
143
|
+
function detectFailure(envelope) {
|
|
144
|
+
if (!envelope)
|
|
145
|
+
return null;
|
|
146
|
+
const results = Array.isArray(envelope.results) ? envelope.results : [];
|
|
147
|
+
// Source 1: explicit structuredError on any task result
|
|
148
|
+
for (const r of results) {
|
|
149
|
+
const se = r.structuredError;
|
|
150
|
+
if (se && typeof se.code === 'string') {
|
|
151
|
+
return { code: se.code, message: typeof se.message === 'string' ? se.message : se.code };
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Source 2: any task result with status === 'error'.
|
|
155
|
+
// 'incomplete' is intentionally NOT treated as failure — review-rework
|
|
156
|
+
// paths can transit through 'incomplete' on intermediate rounds while
|
|
157
|
+
// the eventual envelope still represents a valid (if imperfect) batch.
|
|
158
|
+
// Only 'error' and 'failed' are categorical batch-level failures.
|
|
159
|
+
for (const r of results) {
|
|
160
|
+
const status = r.status;
|
|
161
|
+
if (typeof status === 'string' && (status === 'error' || status === 'failed')) {
|
|
162
|
+
const code = (typeof r.errorCode === 'string' && r.errorCode.length > 0) ? r.errorCode : status;
|
|
163
|
+
const msg = (typeof r.error === 'string' && r.error.length > 0) ? r.error : status;
|
|
164
|
+
return { code, message: msg };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Source 3: envelope-level error object with kind != 'not_applicable'
|
|
168
|
+
const env = envelope.error;
|
|
169
|
+
if (env && typeof env.kind === 'string' && env.kind !== 'not_applicable') {
|
|
170
|
+
return {
|
|
171
|
+
code: typeof env.code === 'string' ? env.code : 'envelope_error',
|
|
172
|
+
message: typeof env.message === 'string' ? env.message : 'envelope error',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
96
177
|
//# sourceMappingURL=async-dispatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-dispatch.js","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"async-dispatch.js","sourceRoot":"","sources":["../../src/http/async-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,8 @@ import type { ProjectContext } from '@zhixuan92/multi-model-agent-core';
|
|
|
10
10
|
* subset of fields populated here. Phase B/E will migrate executors into the
|
|
11
11
|
* full lifecycle, after which this shim can be deleted.
|
|
12
12
|
*/
|
|
13
|
-
export declare function buildExecutionContext(deps: HandlerDeps, pc: ProjectContext, batchId: string, route?: string
|
|
13
|
+
export declare function buildExecutionContext(deps: HandlerDeps, pc: ProjectContext, batchId: string, route?: string, caller?: {
|
|
14
|
+
client: string;
|
|
15
|
+
mainModel?: string | null;
|
|
16
|
+
}): ExecutionContext;
|
|
14
17
|
//# sourceMappingURL=execution-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrD,gBAAgB,CA6DlB"}
|
|
@@ -8,7 +8,7 @@ import { getRecorder } from '../telemetry/recorder.js';
|
|
|
8
8
|
* subset of fields populated here. Phase B/E will migrate executors into the
|
|
9
9
|
* full lifecycle, after which this shim can be deleted.
|
|
10
10
|
*/
|
|
11
|
-
export function buildExecutionContext(deps, pc, batchId, route) {
|
|
11
|
+
export function buildExecutionContext(deps, pc, batchId, route, caller) {
|
|
12
12
|
const recordHeartbeat = (tick) => {
|
|
13
13
|
const effectiveBatchId = tick.batchId || batchId;
|
|
14
14
|
const entry = deps.batchRegistry.get(effectiveBatchId);
|
|
@@ -32,10 +32,12 @@ export function buildExecutionContext(deps, pc, batchId, route) {
|
|
|
32
32
|
config: deps.config,
|
|
33
33
|
logger: deps.logger,
|
|
34
34
|
bus: deps.bus,
|
|
35
|
-
|
|
35
|
+
// Per-request X-MMA-Main-Model header is the only source. Enforced at
|
|
36
|
+
// the request-pipeline boundary (4.0.3+); by the time we reach this
|
|
37
|
+
// builder, caller.mainModel is guaranteed non-null for tool routes.
|
|
38
|
+
mainModel: caller?.mainModel ?? null,
|
|
36
39
|
route: route ?? '',
|
|
37
|
-
client: '',
|
|
38
|
-
triggeringSkill: '',
|
|
40
|
+
client: caller?.client ?? 'other',
|
|
39
41
|
batchId,
|
|
40
42
|
recordHeartbeat,
|
|
41
43
|
recorder,
|
|
@@ -54,8 +56,14 @@ export function buildExecutionContext(deps, pc, batchId, route) {
|
|
|
54
56
|
stall: { controller: new AbortController(), lastEventAtMs: now, fired: false },
|
|
55
57
|
implementerToolMode: undefined,
|
|
56
58
|
heartbeat: undefined,
|
|
57
|
-
|
|
58
|
-
verbose
|
|
59
|
+
// Propagate config.diagnostics.verbose so the runner-shell + adapter
|
|
60
|
+
// emit per-turn events. Without this, the runner think verbose is off
|
|
61
|
+
// even when the daemon was started with diagnostics.verbose=true, and
|
|
62
|
+
// the only stderr breadcrumbs are the few HTTP-handler events.
|
|
63
|
+
verboseStream: deps.config.diagnostics?.verbose
|
|
64
|
+
? (line) => { process.stderr.write(line); }
|
|
65
|
+
: () => { },
|
|
66
|
+
verbose: deps.config.diagnostics?.verbose ?? false,
|
|
59
67
|
outputTargets: [],
|
|
60
68
|
reviewerEngine: deps.reviewerEngine,
|
|
61
69
|
annotatorEngine: deps.annotatorEngine,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,EAAkB,EAClB,OAAe,EACf,KAAc;
|
|
1
|
+
{"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/http/execution-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAErG,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,
|
|
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;AAErG,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAwJpE"}
|
|
@@ -34,13 +34,81 @@ export function buildBatchHandler(deps) {
|
|
|
34
34
|
}
|
|
35
35
|
taskIndex = parseInt(rawTaskIndex, 10);
|
|
36
36
|
}
|
|
37
|
-
// Pending → 202 text/plain progress line
|
|
37
|
+
// Pending → 202 text/plain progress line.
|
|
38
|
+
// ALWAYS one line, regardless of single-task or batch. For batches, the
|
|
39
|
+
// line aggregates per-task state: slowest running task is the headline's
|
|
40
|
+
// representative (largest elapsed = oldest dispatchedAt, ties broken by
|
|
41
|
+
// lowest taskIndex), counts are summed across all started tasks, and a
|
|
42
|
+
// " +K" suffix marks how many other tasks are running concurrently.
|
|
43
|
+
// Final shape (identical for N=1 and N>1):
|
|
44
|
+
// [X/Y] Implementing by Standard worker (1/9)[+K] - 6m 0s, 142 read, 8 write, 234 tool calls
|
|
38
45
|
if (entry.state === 'pending') {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
const perTask = entry.perTaskHeadlineSnapshots;
|
|
47
|
+
// tasksTotal is set by async-dispatch to a placeholder (1) before the
|
|
48
|
+
// executor knows the real fan-out size; perTask.size reflects actual
|
|
49
|
+
// tasks that have started, so prefer the larger of the two.
|
|
50
|
+
const totalTasks = Math.max(entry.tasksTotal ?? 1, perTask?.size ?? 0);
|
|
51
|
+
let headline;
|
|
52
|
+
if (perTask && perTask.size > 0) {
|
|
53
|
+
const sortedIndices = [...perTask.keys()].sort((a, b) => a - b);
|
|
54
|
+
// Slowest = oldest dispatchedAt (i.e., largest elapsed). Stable
|
|
55
|
+
// tie-break on lowest taskIndex (sortedIndices is already ascending).
|
|
56
|
+
let slowestIdx = sortedIndices[0];
|
|
57
|
+
let slowest = perTask.get(slowestIdx);
|
|
58
|
+
for (const idx of sortedIndices) {
|
|
59
|
+
const snap = perTask.get(idx);
|
|
60
|
+
if (snap.dispatchedAt < slowest.dispatchedAt) {
|
|
61
|
+
slowest = snap;
|
|
62
|
+
slowestIdx = idx;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Sum counts across all started tasks for the aggregate stats clause.
|
|
66
|
+
let sumRead = 0;
|
|
67
|
+
let sumWrite = 0;
|
|
68
|
+
let sumTotal = 0;
|
|
69
|
+
let haveStructuredCounts = false;
|
|
70
|
+
for (const idx of sortedIndices) {
|
|
71
|
+
const snap = perTask.get(idx);
|
|
72
|
+
if (typeof snap.toolReads === 'number' ||
|
|
73
|
+
typeof snap.toolWrites === 'number' ||
|
|
74
|
+
typeof snap.toolTotal === 'number') {
|
|
75
|
+
haveStructuredCounts = true;
|
|
76
|
+
sumRead += snap.toolReads ?? 0;
|
|
77
|
+
sumWrite += snap.toolWrites ?? 0;
|
|
78
|
+
sumTotal += snap.toolTotal ?? 0;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const startedCount = perTask.size;
|
|
82
|
+
const taskBracket = `[${startedCount}/${totalTasks}]`;
|
|
83
|
+
const runningSuffix = startedCount > 1 ? ` +${startedCount - 1}` : '';
|
|
84
|
+
const elapsedMs = Date.now() - slowest.dispatchedAt;
|
|
85
|
+
if (haveStructuredCounts && slowest.stageLabel) {
|
|
86
|
+
const tierClause = slowest.tier ? ` by ${slowest.tier} worker` : '';
|
|
87
|
+
const stageProgressClause = typeof slowest.stageDone === 'number' && typeof slowest.stageTotal === 'number'
|
|
88
|
+
? ` (${slowest.stageDone}/${slowest.stageTotal})`
|
|
89
|
+
: '';
|
|
90
|
+
const statsClause = `, ${sumRead} read, ${sumWrite} write, ${sumTotal} tool calls`;
|
|
91
|
+
headline = `${taskBracket} ${slowest.stageLabel}${tierClause}${stageProgressClause}${runningSuffix} - ${formatElapsed(elapsedMs)}${statsClause}`;
|
|
92
|
+
}
|
|
93
|
+
else if (slowest.prefix) {
|
|
94
|
+
// Older snapshot path: inject the +K suffix before the prefix's " - "
|
|
95
|
+
// separator if needed.
|
|
96
|
+
const prefixWithSuffix = runningSuffix
|
|
97
|
+
? slowest.prefix.replace(/ - $/, `${runningSuffix} - `)
|
|
98
|
+
: slowest.prefix;
|
|
99
|
+
headline = `${taskBracket} ${prefixWithSuffix}${formatElapsed(elapsedMs)}${slowest.statsClause}`;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
headline = `${taskBracket} ${slowest.fallback}${runningSuffix}`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const snap = entry.runningHeadlineSnapshot;
|
|
107
|
+
const elapsedMs = Date.now() - snap.dispatchedAt;
|
|
108
|
+
headline = snap.prefix
|
|
109
|
+
? `${snap.prefix}${formatElapsed(elapsedMs)}${snap.statsClause}`
|
|
110
|
+
: snap.fallback;
|
|
111
|
+
}
|
|
44
112
|
res.writeHead(202, { 'content-type': 'text/plain; charset=utf-8' });
|
|
45
113
|
res.end(headline);
|
|
46
114
|
return;
|