@zhixuan92/multi-model-agent-core 3.6.4 → 3.6.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 +10 -3
- package/dist/intake/classify.d.ts.map +1 -1
- package/dist/intake/classify.js +17 -15
- package/dist/intake/classify.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,18 +18,22 @@ Requires Node >= 22. ESM only.
|
|
|
18
18
|
import { loadConfigFromFile } from '@zhixuan92/multi-model-agent-core/config/load';
|
|
19
19
|
import { runTasks } from '@zhixuan92/multi-model-agent-core/run-tasks';
|
|
20
20
|
|
|
21
|
+
// Uses the same ~/.multi-model/config.json as the standalone daemon —
|
|
22
|
+
// agents.standard, agents.complex, defaults.parentModel, etc.
|
|
21
23
|
const config = await loadConfigFromFile();
|
|
22
24
|
|
|
23
25
|
const results = await runTasks([
|
|
24
|
-
{ prompt: 'Refactor auth.ts to use JWT.',
|
|
25
|
-
{ prompt: 'Write unit tests for auth module.',
|
|
26
|
+
{ prompt: 'Refactor auth.ts to use JWT.', agentType: 'complex' },
|
|
27
|
+
{ prompt: 'Write unit tests for auth module.', agentType: 'standard' },
|
|
26
28
|
], config);
|
|
27
29
|
|
|
28
30
|
for (const r of results) {
|
|
29
|
-
console.log(r.status, r.usage.costUSD, r.output);
|
|
31
|
+
console.log(r.status, r.usage.costUSD, r.savedCostUSD, r.output);
|
|
30
32
|
}
|
|
31
33
|
```
|
|
32
34
|
|
|
35
|
+
`savedCostUSD` is populated when `defaults.parentModel` is set in the config — it's the difference between the agent's actual cost and what the parent model would have charged for the same input/output token count. Use it to surface a `$X saved (Y× ROI)` figure in your own UI.
|
|
36
|
+
|
|
33
37
|
## What's inside
|
|
34
38
|
|
|
35
39
|
- **Provider runners** — Claude, Codex, and any OpenAI-compatible endpoint
|
|
@@ -64,6 +68,9 @@ for (const r of results) {
|
|
|
64
68
|
| `./reporting/parse-investigation-report` | `parseInvestigationReport`, `parseCitations`, `parseConfidence` (3.4.0) |
|
|
65
69
|
| `./auto-commit` | `autoCommitFiles` — git commit helper for worker file changes |
|
|
66
70
|
| `./file-artifact-check` | `partitionFilePaths`, `checkOutputTargets` — output target verification |
|
|
71
|
+
| `./telemetry/types` | `TelemetryEvent`, `UploadBatch`, `InstallMetadata` Zod schemas + `SCHEMA_VERSION` |
|
|
72
|
+
| `./telemetry/event-builder` | `buildTaskCompletedEvent`, `buildSessionStartedEvent`, etc. — pure event constructors |
|
|
73
|
+
| `./telemetry/consent-rules` | `decideConsent` — env / config / default precedence resolver |
|
|
67
74
|
|
|
68
75
|
## Diagnostic logging
|
|
69
76
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/intake/classify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA2BlE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/intake/classify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA2BlE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,oBAAoB,CAqGpE"}
|
package/dist/intake/classify.js
CHANGED
|
@@ -78,23 +78,25 @@ export function classifyDraft(draft) {
|
|
|
78
78
|
break;
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
81
|
+
// Behavior-change detection requires a dangerous *combination* (verb +
|
|
82
|
+
// dangerous object/target), not a bare verb. The earlier broad pattern
|
|
83
|
+
// (`delete|remove|drop|migrate|deploy|push|publish|send` alone) flagged
|
|
84
|
+
// ordinary technical English ("send a request", "publish docs") and
|
|
85
|
+
// wedged users in awaiting_clarification with no real safety win.
|
|
86
|
+
const dangerousCombos = [
|
|
87
|
+
/\brm\s+-rf?\b/i,
|
|
88
|
+
/\bdrop\s+(?:the\s+)?(?:\w+\s+)?(?:table|database|schema|index)\b/i,
|
|
89
|
+
/\b(?:delete|truncate)\s+(?:the\s+)?(?:table|database|schema|all|every|everything|users|accounts|files?\b|directory|directories|repo)\b/i,
|
|
90
|
+
/\b(?:deploy|publish|release)\s+(?:to\s+)?(?:production|prod|staging|live|main|master)\b/i,
|
|
91
|
+
/\b(?:force[-\s]push|push\s+--force)\b/i,
|
|
92
|
+
/\bpush\s+(?:to\s+)?(?:main|master|origin\/(?:main|master))\b/i,
|
|
93
|
+
/\bmigrate\s+(?:the\s+)?(?:production|prod|live|database|schema)\b/i,
|
|
94
|
+
];
|
|
95
|
+
const matchedDangerous = dangerousCombos.some(pat => pat.test(draft.prompt));
|
|
96
|
+
if (matchedDangerous && !draft.filePaths?.length) {
|
|
96
97
|
reasons.push('behavior-changing task without explicit scope');
|
|
97
98
|
}
|
|
99
|
+
const securitySensitive = /\b(auth|credential|secret|token|permission|password|key)\b/i;
|
|
98
100
|
if (securitySensitive.test(draft.prompt) && !draft.done) {
|
|
99
101
|
reasons.push('security-sensitive task without explicit done condition');
|
|
100
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/intake/classify.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/intake/classify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhixuan92/multi-model-agent-core",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Core library for multi-model-agent: provider runners (Claude, Codex, OpenAI-compatible), routing logic, config schema, and tool/sandbox primitives.",
|