@zhixuan92/multi-model-agent 3.0.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/LICENSE +21 -0
- package/README.md +217 -0
- package/dist/cli/index.d.ts +61 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +252 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install-skill.d.ts +158 -0
- package/dist/cli/install-skill.d.ts.map +1 -0
- package/dist/cli/install-skill.js +425 -0
- package/dist/cli/install-skill.js.map +1 -0
- package/dist/cli/print-token.d.ts +18 -0
- package/dist/cli/print-token.d.ts.map +1 -0
- package/dist/cli/print-token.js +60 -0
- package/dist/cli/print-token.js.map +1 -0
- package/dist/cli/serve.d.ts +44 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +61 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/status.d.ts +49 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +155 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/http/async-dispatch.d.ts +32 -0
- package/dist/http/async-dispatch.d.ts.map +1 -0
- package/dist/http/async-dispatch.js +53 -0
- package/dist/http/async-dispatch.js.map +1 -0
- package/dist/http/auth.d.ts +26 -0
- package/dist/http/auth.d.ts.map +1 -0
- package/dist/http/auth.js +64 -0
- package/dist/http/auth.js.map +1 -0
- package/dist/http/cwd-validator.d.ts +11 -0
- package/dist/http/cwd-validator.d.ts.map +1 -0
- package/dist/http/cwd-validator.js +115 -0
- package/dist/http/cwd-validator.js.map +1 -0
- package/dist/http/errors.d.ts +4 -0
- package/dist/http/errors.d.ts.map +1 -0
- package/dist/http/errors.js +9 -0
- package/dist/http/errors.js.map +1 -0
- package/dist/http/execution-context.d.ts +15 -0
- package/dist/http/execution-context.d.ts.map +1 -0
- package/dist/http/execution-context.js +35 -0
- package/dist/http/execution-context.js.map +1 -0
- package/dist/http/handler-deps.d.ts +16 -0
- package/dist/http/handler-deps.d.ts.map +1 -0
- package/dist/http/handler-deps.js +2 -0
- package/dist/http/handler-deps.js.map +1 -0
- package/dist/http/handlers/control/batch.d.ts +24 -0
- package/dist/http/handlers/control/batch.d.ts.map +1 -0
- package/dist/http/handlers/control/batch.js +81 -0
- package/dist/http/handlers/control/batch.js.map +1 -0
- package/dist/http/handlers/control/clarifications.d.ts +19 -0
- package/dist/http/handlers/control/clarifications.d.ts.map +1 -0
- package/dist/http/handlers/control/clarifications.js +58 -0
- package/dist/http/handlers/control/clarifications.js.map +1 -0
- package/dist/http/handlers/control/context-blocks.d.ts +22 -0
- package/dist/http/handlers/control/context-blocks.d.ts.map +1 -0
- package/dist/http/handlers/control/context-blocks.js +88 -0
- package/dist/http/handlers/control/context-blocks.js.map +1 -0
- package/dist/http/handlers/introspection/health.d.ts +13 -0
- package/dist/http/handlers/introspection/health.d.ts.map +1 -0
- package/dist/http/handlers/introspection/health.js +17 -0
- package/dist/http/handlers/introspection/health.js.map +1 -0
- package/dist/http/handlers/introspection/status.d.ts +26 -0
- package/dist/http/handlers/introspection/status.d.ts.map +1 -0
- package/dist/http/handlers/introspection/status.js +136 -0
- package/dist/http/handlers/introspection/status.js.map +1 -0
- package/dist/http/handlers/introspection/tools-list.d.ts +9 -0
- package/dist/http/handlers/introspection/tools-list.d.ts.map +1 -0
- package/dist/http/handlers/introspection/tools-list.js +28 -0
- package/dist/http/handlers/introspection/tools-list.js.map +1 -0
- package/dist/http/handlers/tools/audit.d.ts +4 -0
- package/dist/http/handlers/tools/audit.d.ts.map +1 -0
- package/dist/http/handlers/tools/audit.js +39 -0
- package/dist/http/handlers/tools/audit.js.map +1 -0
- package/dist/http/handlers/tools/debug.d.ts +4 -0
- package/dist/http/handlers/tools/debug.d.ts.map +1 -0
- package/dist/http/handlers/tools/debug.js +39 -0
- package/dist/http/handlers/tools/debug.js.map +1 -0
- package/dist/http/handlers/tools/delegate.d.ts +4 -0
- package/dist/http/handlers/tools/delegate.d.ts.map +1 -0
- package/dist/http/handlers/tools/delegate.js +57 -0
- package/dist/http/handlers/tools/delegate.js.map +1 -0
- package/dist/http/handlers/tools/execute-plan.d.ts +4 -0
- package/dist/http/handlers/tools/execute-plan.d.ts.map +1 -0
- package/dist/http/handlers/tools/execute-plan.js +39 -0
- package/dist/http/handlers/tools/execute-plan.js.map +1 -0
- package/dist/http/handlers/tools/retry.d.ts +4 -0
- package/dist/http/handlers/tools/retry.d.ts.map +1 -0
- package/dist/http/handlers/tools/retry.js +52 -0
- package/dist/http/handlers/tools/retry.js.map +1 -0
- package/dist/http/handlers/tools/review.d.ts +4 -0
- package/dist/http/handlers/tools/review.d.ts.map +1 -0
- package/dist/http/handlers/tools/review.js +39 -0
- package/dist/http/handlers/tools/review.js.map +1 -0
- package/dist/http/handlers/tools/verify.d.ts +4 -0
- package/dist/http/handlers/tools/verify.d.ts.map +1 -0
- package/dist/http/handlers/tools/verify.js +39 -0
- package/dist/http/handlers/tools/verify.js.map +1 -0
- package/dist/http/loopback.d.ts +17 -0
- package/dist/http/loopback.d.ts.map +1 -0
- package/dist/http/loopback.js +43 -0
- package/dist/http/loopback.js.map +1 -0
- package/dist/http/middleware/body-reader.d.ts +16 -0
- package/dist/http/middleware/body-reader.d.ts.map +1 -0
- package/dist/http/middleware/body-reader.js +44 -0
- package/dist/http/middleware/body-reader.js.map +1 -0
- package/dist/http/project-registry.d.ts +54 -0
- package/dist/http/project-registry.d.ts.map +1 -0
- package/dist/http/project-registry.js +132 -0
- package/dist/http/project-registry.js.map +1 -0
- package/dist/http/router.d.ts +14 -0
- package/dist/http/router.d.ts.map +1 -0
- package/dist/http/router.js +41 -0
- package/dist/http/router.js.map +1 -0
- package/dist/http/server.d.ts +16 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +235 -0
- package/dist/http/server.js.map +1 -0
- package/dist/http/types.d.ts +9 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +2 -0
- package/dist/http/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/install/claude-code.d.ts +43 -0
- package/dist/install/claude-code.d.ts.map +1 -0
- package/dist/install/claude-code.js +65 -0
- package/dist/install/claude-code.js.map +1 -0
- package/dist/install/codex-cli.d.ts +39 -0
- package/dist/install/codex-cli.d.ts.map +1 -0
- package/dist/install/codex-cli.js +318 -0
- package/dist/install/codex-cli.js.map +1 -0
- package/dist/install/cursor.d.ts +72 -0
- package/dist/install/cursor.d.ts.map +1 -0
- package/dist/install/cursor.js +81 -0
- package/dist/install/cursor.js.map +1 -0
- package/dist/install/gemini-cli.d.ts +66 -0
- package/dist/install/gemini-cli.d.ts.map +1 -0
- package/dist/install/gemini-cli.js +111 -0
- package/dist/install/gemini-cli.js.map +1 -0
- package/dist/install/include-utils.d.ts +27 -0
- package/dist/install/include-utils.d.ts.map +1 -0
- package/dist/install/include-utils.js +90 -0
- package/dist/install/include-utils.js.map +1 -0
- package/dist/install/manifest.d.ts +90 -0
- package/dist/install/manifest.d.ts.map +1 -0
- package/dist/install/manifest.js +200 -0
- package/dist/install/manifest.js.map +1 -0
- package/dist/openapi.d.ts +15 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +314 -0
- package/dist/openapi.js.map +1 -0
- package/dist/skills/_shared/auth.md +32 -0
- package/dist/skills/_shared/error-handling.md +31 -0
- package/dist/skills/_shared/polling.md +40 -0
- package/dist/skills/_shared/response-shape.md +46 -0
- package/dist/skills/mma-audit/SKILL.md +55 -0
- package/dist/skills/mma-clarifications/SKILL.md +68 -0
- package/dist/skills/mma-context-blocks/SKILL.md +69 -0
- package/dist/skills/mma-debug/SKILL.md +59 -0
- package/dist/skills/mma-delegate/SKILL.md +63 -0
- package/dist/skills/mma-execute-plan/SKILL.md +63 -0
- package/dist/skills/mma-retry/SKILL.md +54 -0
- package/dist/skills/mma-review/SKILL.md +55 -0
- package/dist/skills/mma-verify/SKILL.md +57 -0
- package/dist/skills/multi-model-agent/SKILL.md +55 -0
- package/package.json +60 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mma-debug
|
|
3
|
+
description: Debug a failure using a structured hypothesis. All provided files are investigated together in a single task.
|
|
4
|
+
when_to_use: When a test fails, a build breaks, or unexpected behavior appears and you need a structured investigation with a hypothesis.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## mma-debug
|
|
8
|
+
|
|
9
|
+
Submit a problem, context, and hypothesis to a sub-agent for focused
|
|
10
|
+
debugging. Unlike other tools, all `filePaths` are investigated together
|
|
11
|
+
in a single task (not parallelised per file).
|
|
12
|
+
|
|
13
|
+
### Endpoint
|
|
14
|
+
|
|
15
|
+
`POST /debug?cwd=<abs-path>`
|
|
16
|
+
|
|
17
|
+
@include _shared/auth.md
|
|
18
|
+
|
|
19
|
+
### Request body
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"problem": "POST /login returns 500 when password contains special characters",
|
|
24
|
+
"context": "Regression introduced in commit abc123; only affects production config",
|
|
25
|
+
"hypothesis": "The bcrypt binding fails on non-ASCII input in the Docker image",
|
|
26
|
+
"filePaths": [
|
|
27
|
+
"/project/src/auth/login.ts",
|
|
28
|
+
"/project/src/auth/password.ts"
|
|
29
|
+
],
|
|
30
|
+
"contextBlockIds": []
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
| Field | Type | Required | Notes |
|
|
35
|
+
|---|---|---|---|
|
|
36
|
+
| `problem` | string | yes | What is broken |
|
|
37
|
+
| `context` | string | no | Background information |
|
|
38
|
+
| `hypothesis` | string | no | Initial theory to test |
|
|
39
|
+
| `filePaths` | string[] | no | All files investigated together |
|
|
40
|
+
| `contextBlockIds` | string[] | no | IDs from `mma-context-blocks` |
|
|
41
|
+
|
|
42
|
+
### Full example
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
BATCH=$(curl -sf -X POST \
|
|
46
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
47
|
+
-H "Content-Type: application/json" \
|
|
48
|
+
-d '{"problem":"Tests fail on CI only","hypothesis":"Missing env var","filePaths":["/project/src/config.ts"]}' \
|
|
49
|
+
"http://localhost:$PORT/debug?cwd=/project")
|
|
50
|
+
BATCH_ID=$(echo "$BATCH" | jq -r '.batchId')
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Then poll until complete:
|
|
54
|
+
|
|
55
|
+
@include _shared/polling.md
|
|
56
|
+
|
|
57
|
+
@include _shared/response-shape.md
|
|
58
|
+
|
|
59
|
+
@include _shared/error-handling.md
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mma-delegate
|
|
3
|
+
description: Fan out ad-hoc implementation or research tasks to sub-agents in parallel. Use when there is no plan file on disk.
|
|
4
|
+
when_to_use: When you need to delegate one or more implementation or research tasks to sub-agents without a pre-existing plan file. Each task runs in parallel.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## mma-delegate
|
|
8
|
+
|
|
9
|
+
Dispatch one or more tasks to sub-agents concurrently. Each task is an
|
|
10
|
+
independent instruction with optional file scope, acceptance criteria, and
|
|
11
|
+
context block references.
|
|
12
|
+
|
|
13
|
+
### Endpoint
|
|
14
|
+
|
|
15
|
+
`POST /delegate?cwd=<abs-path>`
|
|
16
|
+
|
|
17
|
+
@include _shared/auth.md
|
|
18
|
+
|
|
19
|
+
### Request body
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"tasks": [
|
|
24
|
+
{
|
|
25
|
+
"prompt": "Add input validation to the login handler",
|
|
26
|
+
"agentType": "standard",
|
|
27
|
+
"filePaths": ["/project/src/auth/login.ts"],
|
|
28
|
+
"done": "All inputs validated; unit tests pass",
|
|
29
|
+
"contextBlockIds": ["cb_abc123"]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
| Field | Type | Required | Notes |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| `tasks` | array | yes | At least one task |
|
|
38
|
+
| `tasks[].prompt` | string | yes | The task instruction |
|
|
39
|
+
| `tasks[].agentType` | string | no | `standard` (default) or `complex` |
|
|
40
|
+
| `tasks[].filePaths` | string[] | no | Files the sub-agent focuses on |
|
|
41
|
+
| `tasks[].done` | string | no | Acceptance criteria |
|
|
42
|
+
| `tasks[].contextBlockIds` | string[] | no | IDs from `mma-context-blocks` |
|
|
43
|
+
|
|
44
|
+
Use `agentType: "complex"` for ambiguous scope or security-sensitive tasks.
|
|
45
|
+
|
|
46
|
+
### Full example
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
BATCH=$(curl -sf -X POST \
|
|
50
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
51
|
+
-H "Content-Type: application/json" \
|
|
52
|
+
-d '{"tasks":[{"prompt":"Refactor utils.ts to remove dead code","filePaths":["/project/src/utils.ts"]}]}' \
|
|
53
|
+
"http://localhost:$PORT/delegate?cwd=/project")
|
|
54
|
+
BATCH_ID=$(echo "$BATCH" | jq -r '.batchId')
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then poll until complete:
|
|
58
|
+
|
|
59
|
+
@include _shared/polling.md
|
|
60
|
+
|
|
61
|
+
@include _shared/response-shape.md
|
|
62
|
+
|
|
63
|
+
@include _shared/error-handling.md
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mma-execute-plan
|
|
3
|
+
description: Implement tasks from a plan or spec file on disk. Task descriptors match plan headings; tasks run in parallel.
|
|
4
|
+
when_to_use: When you have a written plan or spec file and want sub-agents to implement specific tasks from it.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## mma-execute-plan
|
|
8
|
+
|
|
9
|
+
Dispatch named tasks from a plan file to sub-agents. Task descriptors must
|
|
10
|
+
match plan headings (e.g. `"1. Setup database schema"`). All tasks run in
|
|
11
|
+
parallel and duplicate descriptors are rejected.
|
|
12
|
+
|
|
13
|
+
### Endpoint
|
|
14
|
+
|
|
15
|
+
`POST /execute-plan?cwd=<abs-path>`
|
|
16
|
+
|
|
17
|
+
@include _shared/auth.md
|
|
18
|
+
|
|
19
|
+
### Request body
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"tasks": [
|
|
24
|
+
"1. Add input validation to login handler",
|
|
25
|
+
"2. Write unit tests for the auth module"
|
|
26
|
+
],
|
|
27
|
+
"context": "Tasks 1-5 are complete; auth module already exists at src/auth/",
|
|
28
|
+
"filePaths": [
|
|
29
|
+
"/project/docs/plan.md",
|
|
30
|
+
"/project/src/auth/login.ts"
|
|
31
|
+
],
|
|
32
|
+
"contextBlockIds": []
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
| Field | Type | Required | Notes |
|
|
37
|
+
|---|---|---|---|
|
|
38
|
+
| `tasks` | string[] | yes | At least one; must be unique; match plan headings |
|
|
39
|
+
| `context` | string | no | Short additional context not in the plan |
|
|
40
|
+
| `filePaths` | string[] | no | Plan file + relevant source files |
|
|
41
|
+
| `contextBlockIds` | string[] | no | IDs from `mma-context-blocks` |
|
|
42
|
+
|
|
43
|
+
If the batch reaches `awaiting_clarification`, use `mma-clarifications`
|
|
44
|
+
to confirm or correct the proposed interpretation.
|
|
45
|
+
|
|
46
|
+
### Full example
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
BATCH=$(curl -sf -X POST \
|
|
50
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
51
|
+
-H "Content-Type: application/json" \
|
|
52
|
+
-d '{"tasks":["3. Migrate database schema"],"filePaths":["/project/docs/plan.md"]}' \
|
|
53
|
+
"http://localhost:$PORT/execute-plan?cwd=/project")
|
|
54
|
+
BATCH_ID=$(echo "$BATCH" | jq -r '.batchId')
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then poll until complete:
|
|
58
|
+
|
|
59
|
+
@include _shared/polling.md
|
|
60
|
+
|
|
61
|
+
@include _shared/response-shape.md
|
|
62
|
+
|
|
63
|
+
@include _shared/error-handling.md
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mma-retry
|
|
3
|
+
description: Re-run specific failed or incomplete tasks from a previous batch by index.
|
|
4
|
+
when_to_use: When some tasks in a previous batch failed or returned incomplete results and you want to re-run only those tasks without re-running the whole batch.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## mma-retry
|
|
8
|
+
|
|
9
|
+
Re-run selected tasks from a completed or failed batch. Specify the original
|
|
10
|
+
`batchId` and the zero-based indices of the tasks to re-run. The retry runs
|
|
11
|
+
those tasks fresh with the same configuration as the original batch.
|
|
12
|
+
|
|
13
|
+
### Endpoint
|
|
14
|
+
|
|
15
|
+
`POST /retry?cwd=<abs-path>`
|
|
16
|
+
|
|
17
|
+
@include _shared/auth.md
|
|
18
|
+
|
|
19
|
+
### Request body
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"batchId": "550e8400-e29b-41d4-a716-446655440000",
|
|
24
|
+
"taskIndices": [1, 3]
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
| Field | Type | Required | Notes |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| `batchId` | string (UUID) | yes | Batch ID from a previous dispatch |
|
|
31
|
+
| `taskIndices` | number[] | yes | Zero-based indices to re-run |
|
|
32
|
+
|
|
33
|
+
`taskIndices` must be non-negative integers. To re-run all tasks, pass all
|
|
34
|
+
indices from `0` to `tasks.length - 1`.
|
|
35
|
+
|
|
36
|
+
### Full example
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Original batch had 4 tasks; re-run tasks at index 1 and 3
|
|
40
|
+
BATCH=$(curl -sf -X POST \
|
|
41
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
42
|
+
-H "Content-Type: application/json" \
|
|
43
|
+
-d '{"batchId":"550e8400-e29b-41d4-a716-446655440000","taskIndices":[1,3]}' \
|
|
44
|
+
"http://localhost:$PORT/retry?cwd=/project")
|
|
45
|
+
BATCH_ID=$(echo "$BATCH" | jq -r '.batchId')
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The retry produces a new `batchId`. Poll the new ID until complete:
|
|
49
|
+
|
|
50
|
+
@include _shared/polling.md
|
|
51
|
+
|
|
52
|
+
@include _shared/response-shape.md
|
|
53
|
+
|
|
54
|
+
@include _shared/error-handling.md
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mma-review
|
|
3
|
+
description: Review code for quality, security, performance, or correctness. Sub-agents run in parallel per file.
|
|
4
|
+
when_to_use: When you need an independent code review after implementing a feature or fix, or before merging a branch.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## mma-review
|
|
8
|
+
|
|
9
|
+
Send code or files to sub-agents for structured review. Each file is reviewed
|
|
10
|
+
independently in parallel; results are index-aligned with `filePaths`.
|
|
11
|
+
|
|
12
|
+
### Endpoint
|
|
13
|
+
|
|
14
|
+
`POST /review?cwd=<abs-path>`
|
|
15
|
+
|
|
16
|
+
@include _shared/auth.md
|
|
17
|
+
|
|
18
|
+
### Request body
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"code": "inline code snippet (optional if filePaths given)",
|
|
23
|
+
"focus": ["correctness", "security"],
|
|
24
|
+
"filePaths": ["/project/src/auth/login.ts"],
|
|
25
|
+
"contextBlockIds": []
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
| Field | Type | Required | Notes |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| `code` | string | no | Inline code to review |
|
|
32
|
+
| `focus` | string[] | no | Any of `security`, `performance`, `correctness`, `style` |
|
|
33
|
+
| `filePaths` | string[] | no | Files to review (parallel) |
|
|
34
|
+
| `contextBlockIds` | string[] | no | IDs from `mma-context-blocks` |
|
|
35
|
+
|
|
36
|
+
Either `code` or `filePaths` (or both) must be provided.
|
|
37
|
+
|
|
38
|
+
### Full example
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
BATCH=$(curl -sf -X POST \
|
|
42
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
43
|
+
-H "Content-Type: application/json" \
|
|
44
|
+
-d '{"focus":["security","correctness"],"filePaths":["/project/src/auth/login.ts"]}' \
|
|
45
|
+
"http://localhost:$PORT/review?cwd=/project")
|
|
46
|
+
BATCH_ID=$(echo "$BATCH" | jq -r '.batchId')
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then poll until complete:
|
|
50
|
+
|
|
51
|
+
@include _shared/polling.md
|
|
52
|
+
|
|
53
|
+
@include _shared/response-shape.md
|
|
54
|
+
|
|
55
|
+
@include _shared/error-handling.md
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mma-verify
|
|
3
|
+
description: Verify work against a checklist. Sub-agents check each item independently.
|
|
4
|
+
when_to_use: When you need to confirm that implemented work meets a set of acceptance criteria or a review checklist before claiming completion.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## mma-verify
|
|
8
|
+
|
|
9
|
+
Submit work product and a checklist to sub-agents for independent verification.
|
|
10
|
+
Each checklist item is verified in parallel; results are index-aligned.
|
|
11
|
+
|
|
12
|
+
### Endpoint
|
|
13
|
+
|
|
14
|
+
`POST /verify?cwd=<abs-path>`
|
|
15
|
+
|
|
16
|
+
@include _shared/auth.md
|
|
17
|
+
|
|
18
|
+
### Request body
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"work": "inline description of the work (optional if filePaths given)",
|
|
23
|
+
"checklist": [
|
|
24
|
+
"All public functions have JSDoc comments",
|
|
25
|
+
"No console.log statements remain",
|
|
26
|
+
"Unit tests cover the happy path and at least one error case"
|
|
27
|
+
],
|
|
28
|
+
"filePaths": ["/project/src/utils.ts"],
|
|
29
|
+
"contextBlockIds": []
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
| Field | Type | Required | Notes |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| `work` | string | no | Inline work product description |
|
|
36
|
+
| `checklist` | string[] | yes | At least one item |
|
|
37
|
+
| `filePaths` | string[] | no | Files to verify against (parallel) |
|
|
38
|
+
| `contextBlockIds` | string[] | no | IDs from `mma-context-blocks` |
|
|
39
|
+
|
|
40
|
+
### Full example
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
BATCH=$(curl -sf -X POST \
|
|
44
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
45
|
+
-H "Content-Type: application/json" \
|
|
46
|
+
-d '{"checklist":["Error handler exists","Tests pass"],"filePaths":["/project/src/handler.ts"]}' \
|
|
47
|
+
"http://localhost:$PORT/verify?cwd=/project")
|
|
48
|
+
BATCH_ID=$(echo "$BATCH" | jq -r '.batchId')
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Then poll until complete:
|
|
52
|
+
|
|
53
|
+
@include _shared/polling.md
|
|
54
|
+
|
|
55
|
+
@include _shared/response-shape.md
|
|
56
|
+
|
|
57
|
+
@include _shared/error-handling.md
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-model-agent
|
|
3
|
+
description: Overview of the multi-model-agent local service. Use this skill to understand which specialized mma-* skill to invoke for a given task.
|
|
4
|
+
when_to_use: When the user asks about delegating tool-using work, or when auth/setup issues arise before a specific mma-* skill can run.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## multi-model-agent overview
|
|
8
|
+
|
|
9
|
+
multi-model-agent is a local HTTP service that fans out tool-using work to
|
|
10
|
+
sub-agents running on different LLM providers (Claude, OpenAI-compatible, Codex).
|
|
11
|
+
|
|
12
|
+
### Setup check
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
curl -s http://localhost:$PORT/health
|
|
16
|
+
# expects: { "ok": true }
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If this fails, start the server:
|
|
20
|
+
```bash
|
|
21
|
+
mmagent serve
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Auth token
|
|
25
|
+
|
|
26
|
+
Set the token in your environment:
|
|
27
|
+
```bash
|
|
28
|
+
export MMAGENT_AUTH_TOKEN=$(mmagent print-token)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or read it from the env var `MMAGENT_AUTH_TOKEN` if already set.
|
|
32
|
+
Every request requires `Authorization: Bearer <token>`.
|
|
33
|
+
|
|
34
|
+
### Skill map
|
|
35
|
+
|
|
36
|
+
| Skill | Purpose |
|
|
37
|
+
|---|---|
|
|
38
|
+
| `mma-delegate` | Ad-hoc implementation/research (no plan file) |
|
|
39
|
+
| `mma-audit` | Audit a document for security, correctness, style, or performance |
|
|
40
|
+
| `mma-review` | Review code for quality, security, or correctness |
|
|
41
|
+
| `mma-verify` | Verify work against a checklist |
|
|
42
|
+
| `mma-debug` | Debug a failure with a structured hypothesis |
|
|
43
|
+
| `mma-execute-plan` | Implement tasks from a plan or spec file |
|
|
44
|
+
| `mma-retry` | Re-run specific failed tasks from a previous batch |
|
|
45
|
+
| `mma-context-blocks` | Register large reused documents to reference by ID |
|
|
46
|
+
| `mma-clarifications` | Confirm or correct the service's proposed interpretation |
|
|
47
|
+
|
|
48
|
+
### General flow
|
|
49
|
+
|
|
50
|
+
1. Call the appropriate `mma-*` skill → receive `{ batchId }`.
|
|
51
|
+
2. Poll `GET /batch/:id` until `state` is terminal.
|
|
52
|
+
3. Read `results` from the completed batch.
|
|
53
|
+
|
|
54
|
+
If the batch reaches `awaiting_clarification`, use `mma-clarifications`
|
|
55
|
+
to confirm or correct the proposed interpretation before the batch resumes.
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zhixuan92/multi-model-agent",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "MIT",
|
|
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.",
|
|
7
|
+
"author": "Zhang Zhixuan <zhangzhixuan312@gmail.com>",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"llm",
|
|
10
|
+
"claude",
|
|
11
|
+
"codex",
|
|
12
|
+
"openai",
|
|
13
|
+
"agent",
|
|
14
|
+
"multi-model",
|
|
15
|
+
"delegation",
|
|
16
|
+
"http-server"
|
|
17
|
+
],
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/zhixuan312/multi-model-agent.git",
|
|
21
|
+
"directory": "packages/server"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/zhixuan312/multi-model-agent#readme",
|
|
24
|
+
"bugs": "https://github.com/zhixuan312/multi-model-agent/issues",
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"main": "dist/index.js",
|
|
29
|
+
"types": "dist/index.d.ts",
|
|
30
|
+
"bin": {
|
|
31
|
+
"mmagent": "dist/cli/index.js",
|
|
32
|
+
"multi-model-agent": "dist/cli/index.js"
|
|
33
|
+
},
|
|
34
|
+
"exports": {
|
|
35
|
+
".": {
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"import": "./dist/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./server": {
|
|
40
|
+
"types": "./dist/http/server.d.ts",
|
|
41
|
+
"import": "./dist/http/server.js"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc && rm -rf dist/skills && cp -R src/skills dist/skills && chmod +x dist/cli/index.js",
|
|
46
|
+
"prepublishOnly": "npm run build"
|
|
47
|
+
},
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=22.0.0"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@asteasolutions/zod-to-openapi": "^8.5.0",
|
|
53
|
+
"@zhixuan92/multi-model-agent-core": "^3.0.0",
|
|
54
|
+
"minimist": "^1.2.8",
|
|
55
|
+
"zod": "^4.0.0"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@types/minimist": "^1.2.5"
|
|
59
|
+
}
|
|
60
|
+
}
|