macro-agent 0.0.6 → 0.0.7
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/.claude/settings.local.json +2 -1
- package/README.md +67 -57
- package/dist/acp/index.d.ts +3 -3
- package/dist/acp/index.js +1 -1
- package/dist/acp/index.js.map +1 -1
- package/dist/cli/acp.d.ts +22 -20
- package/dist/cli/acp.d.ts.map +1 -1
- package/dist/cli/acp.js +33 -41
- package/dist/cli/acp.js.map +1 -1
- package/dist/cli/index.d.ts +5 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +6 -2
- package/dist/cli/index.js.map +1 -1
- package/docs/configuration.md +27 -18
- package/docs/sudocode-integration.md +1 -1
- package/docs/troubleshooting.md +3 -3
- package/package.json +4 -4
- package/src/acp/index.ts +4 -4
- package/src/cli/__tests__/acp.test.ts +48 -40
- package/src/cli/acp.ts +42 -52
- package/src/cli/index.ts +6 -2
- package/src/trigger/__tests__/wake-manager.test.ts +26 -9
package/README.md
CHANGED
|
@@ -25,8 +25,8 @@ macro-agent can integrate with [sudocode](https://github.com/sudocode-ai/sudocod
|
|
|
25
25
|
export MACRO_TASK_BACKEND=sudocode
|
|
26
26
|
export SUDOCODE_PROJECT_PATH=/path/to/project
|
|
27
27
|
|
|
28
|
-
# Start macro-agent
|
|
29
|
-
npx multiagent
|
|
28
|
+
# Start macro-agent server (full mode with ACP + MAP + REST)
|
|
29
|
+
npx multiagent
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
With sudocode enabled:
|
|
@@ -45,26 +45,33 @@ npm install macro-agent
|
|
|
45
45
|
|
|
46
46
|
## Quick Start
|
|
47
47
|
|
|
48
|
-
###
|
|
48
|
+
### Server Mode (Default)
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
# Start
|
|
52
|
-
npx multiagent
|
|
51
|
+
# Start full server with ACP + MAP + REST API
|
|
52
|
+
npx multiagent
|
|
53
53
|
|
|
54
|
+
# Custom port and host
|
|
55
|
+
npx multiagent --port 8080 --host 0.0.0.0
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### CLI Tools
|
|
59
|
+
|
|
60
|
+
```bash
|
|
54
61
|
# Start interactive chat
|
|
55
|
-
npx multiagent chat
|
|
62
|
+
npx multiagent-cli chat
|
|
56
63
|
|
|
57
64
|
# Check system status
|
|
58
|
-
npx multiagent status
|
|
65
|
+
npx multiagent-cli status
|
|
59
66
|
|
|
60
67
|
# View agent hierarchy
|
|
61
|
-
npx multiagent hierarchy
|
|
68
|
+
npx multiagent-cli hierarchy
|
|
62
69
|
|
|
63
70
|
# List all agents
|
|
64
|
-
npx multiagent agents
|
|
71
|
+
npx multiagent-cli agents
|
|
65
72
|
|
|
66
73
|
# List all tasks
|
|
67
|
-
npx multiagent tasks
|
|
74
|
+
npx multiagent-cli tasks
|
|
68
75
|
```
|
|
69
76
|
|
|
70
77
|
### Programmatic Usage
|
|
@@ -243,43 +250,36 @@ Fallback chain: `inject()` → `interruptWith()` → high-priority message
|
|
|
243
250
|
| `inject_context` | Inject context into another agent |
|
|
244
251
|
| `wait_for_activity` | Wait for system events (Monitor) |
|
|
245
252
|
|
|
246
|
-
##
|
|
253
|
+
## Server Mode (ACP + MAP)
|
|
247
254
|
|
|
248
|
-
macro-agent
|
|
255
|
+
macro-agent runs as an ACP-compliant agent server with MAP (Multi-Agent Protocol) support, enabling external systems to spawn and control agents programmatically.
|
|
249
256
|
|
|
250
|
-
###
|
|
257
|
+
### Full Server Mode (Default)
|
|
251
258
|
|
|
252
259
|
```bash
|
|
253
|
-
#
|
|
254
|
-
npx multiagent
|
|
255
|
-
```
|
|
260
|
+
# Start combined server with all protocols
|
|
261
|
+
npx multiagent
|
|
256
262
|
|
|
257
|
-
|
|
263
|
+
# Custom configuration
|
|
264
|
+
npx multiagent --port 8080 --host 0.0.0.0 --cwd /path/to/project
|
|
265
|
+
```
|
|
258
266
|
|
|
259
|
-
|
|
267
|
+
### Stdio ACP (Embedded Use)
|
|
260
268
|
|
|
261
269
|
```bash
|
|
262
|
-
#
|
|
263
|
-
npx multiagent
|
|
264
|
-
|
|
265
|
-
# WebSocket + HTTP API together
|
|
266
|
-
npx multiagent-acp --ws --ws-port 3001 --api --port 3000
|
|
267
|
-
|
|
268
|
-
# All transports: stdio + WebSocket + HTTP API
|
|
269
|
-
npx multiagent-acp --ws --ws-port 3001 --api --port 3000
|
|
270
|
+
# Run as stdio ACP server (for spawning via acp-factory)
|
|
271
|
+
npx multiagent --acp
|
|
272
|
+
npx multiagent --acp --cwd /path/to/project
|
|
270
273
|
```
|
|
271
274
|
|
|
272
|
-
###
|
|
275
|
+
### Server Options
|
|
273
276
|
|
|
274
277
|
| Option | Description |
|
|
275
278
|
|--------|-------------|
|
|
279
|
+
| `--port <port>` | Server port (default: 3001) |
|
|
280
|
+
| `--host <host>` | Server host (default: localhost) |
|
|
276
281
|
| `--cwd <path>` | Working directory for agents |
|
|
277
|
-
| `--
|
|
278
|
-
| `--ws-port <port>` | WebSocket port (default: 3001) |
|
|
279
|
-
| `--ws-host <host>` | WebSocket host (default: localhost) |
|
|
280
|
-
| `--api` | Enable HTTP API server |
|
|
281
|
-
| `--port <port>` | HTTP API port (auto-discovers if not specified) |
|
|
282
|
-
| `--host <host>` | HTTP API host (default: localhost) |
|
|
282
|
+
| `--acp` | Stdio ACP-only mode (for embedded use with acp-factory) |
|
|
283
283
|
|
|
284
284
|
### Multi-Client Architecture
|
|
285
285
|
|
|
@@ -316,55 +316,65 @@ Each client can:
|
|
|
316
316
|
- Send prompts to their mounted agents
|
|
317
317
|
- See agents spawned by other clients
|
|
318
318
|
|
|
319
|
-
### Programmatic
|
|
319
|
+
### Programmatic Usage
|
|
320
320
|
|
|
321
321
|
```typescript
|
|
322
322
|
import { registerMacroAgent } from 'macro-agent';
|
|
323
323
|
import { AgentFactory } from 'acp-factory';
|
|
324
324
|
|
|
325
|
-
// Register macro-agent with acp-factory
|
|
325
|
+
// Register macro-agent with acp-factory (uses --acp flag for stdio mode)
|
|
326
326
|
registerMacroAgent();
|
|
327
327
|
|
|
328
|
-
// Spawn via ACP
|
|
328
|
+
// Spawn via ACP (stdio mode)
|
|
329
329
|
const handle = await AgentFactory.spawn('macro-agent', {
|
|
330
330
|
permissionMode: 'auto-approve',
|
|
331
331
|
});
|
|
332
332
|
|
|
333
|
-
// Or connect to
|
|
334
|
-
const
|
|
335
|
-
|
|
333
|
+
// Or connect to server mode (default when running `multiagent`)
|
|
334
|
+
const acpWs = new WebSocket('ws://localhost:3001/acp'); // ACP protocol
|
|
335
|
+
const mapWs = new WebSocket('ws://localhost:3001/map'); // MAP protocol
|
|
336
336
|
```
|
|
337
337
|
|
|
338
338
|
## CLI Commands
|
|
339
339
|
|
|
340
|
+
### multiagent (Server)
|
|
341
|
+
|
|
340
342
|
```
|
|
341
|
-
multiagent
|
|
342
|
-
|
|
343
|
-
|
|
343
|
+
multiagent [options] Start the agent server (full mode by default)
|
|
344
|
+
--port <port> Port (default: 3001)
|
|
345
|
+
--host <host> Host (default: localhost)
|
|
344
346
|
--cwd <path> Working directory
|
|
347
|
+
--acp Stdio ACP-only mode (for acp-factory)
|
|
348
|
+
```
|
|
345
349
|
|
|
346
|
-
|
|
350
|
+
Server endpoints (default mode):
|
|
351
|
+
- `ws://host:port/acp` - ACP protocol (WebSocket)
|
|
352
|
+
- `ws://host:port/map` - MAP protocol (WebSocket)
|
|
353
|
+
- `ws://host:port/api/ws` - Real-time subscriptions
|
|
354
|
+
- `http://host:port/api/*` - REST API
|
|
355
|
+
- `http://host:port/health` - Health check
|
|
347
356
|
|
|
348
|
-
multiagent
|
|
357
|
+
### multiagent-cli (Management Tools)
|
|
349
358
|
|
|
350
|
-
|
|
359
|
+
```
|
|
360
|
+
multiagent-cli start [options] Start REST-only server (legacy)
|
|
361
|
+
-p, --port <port> Port (default: 3000)
|
|
362
|
+
-h, --host <host> Host (default: localhost)
|
|
363
|
+
--cwd <path> Working directory
|
|
351
364
|
|
|
352
|
-
multiagent
|
|
365
|
+
multiagent-cli chat Interactive chat mode
|
|
353
366
|
|
|
354
|
-
multiagent
|
|
367
|
+
multiagent-cli status Show system status
|
|
355
368
|
|
|
356
|
-
multiagent
|
|
369
|
+
multiagent-cli agents [id] List agents or show details
|
|
357
370
|
|
|
358
|
-
multiagent
|
|
371
|
+
multiagent-cli tasks [id] List tasks or show details
|
|
359
372
|
|
|
360
|
-
multiagent-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
--api Enable HTTP API server
|
|
366
|
-
--port <port> HTTP API port (auto-discovers)
|
|
367
|
-
--host <host> HTTP API host (default: localhost)
|
|
373
|
+
multiagent-cli hierarchy [root] Show agent hierarchy tree
|
|
374
|
+
|
|
375
|
+
multiagent-cli stop [agentId] Stop agent(s)
|
|
376
|
+
|
|
377
|
+
multiagent-cli clear Reset the system
|
|
368
378
|
```
|
|
369
379
|
|
|
370
380
|
## Development
|
package/dist/acp/index.d.ts
CHANGED
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export interface RegisterOptions {
|
|
8
8
|
/**
|
|
9
|
-
* Custom command to run macro-agent ACP
|
|
10
|
-
* Defaults to "npx" with args ["multiagent
|
|
9
|
+
* Custom command to run macro-agent in ACP mode.
|
|
10
|
+
* Defaults to "npx" with args ["multiagent", "--acp"]
|
|
11
11
|
*/
|
|
12
12
|
command?: string;
|
|
13
13
|
/**
|
|
14
14
|
* Custom arguments for the command.
|
|
15
|
-
* Defaults to ["multiagent
|
|
15
|
+
* Defaults to ["multiagent", "--acp"]
|
|
16
16
|
*/
|
|
17
17
|
args?: string[];
|
|
18
18
|
/**
|
package/dist/acp/index.js
CHANGED
|
@@ -33,7 +33,7 @@ import { AgentFactory } from "acp-factory";
|
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
35
|
export function registerMacroAgent(options = {}) {
|
|
36
|
-
const { command = "npx", args = ["multiagent
|
|
36
|
+
const { command = "npx", args = ["multiagent", "--acp"], env, } = options;
|
|
37
37
|
AgentFactory.register("macro-agent", {
|
|
38
38
|
command,
|
|
39
39
|
args,
|
package/dist/acp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyB3C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA2B,EAAE;IAC9D,MAAM,EACJ,OAAO,GAAG,KAAK,EACf,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyB3C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA2B,EAAE;IAC9D,MAAM,EACJ,OAAO,GAAG,KAAK,EACf,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,EAC9B,GAAG,GACJ,GAAG,OAAO,CAAC;IAEZ,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE;QACnC,OAAO;QACP,IAAI;QACJ,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAkCD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,kDAAkD;AAClD,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAErE,kDAAkD;AAClD,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAE/B,gDAAgD;AAChD,OAAO,EACL,wBAAwB,GAIzB,MAAM,uBAAuB,CAAC"}
|
package/dist/cli/acp.d.ts
CHANGED
|
@@ -1,48 +1,50 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Multi-Agent Server Entry Point
|
|
4
4
|
*
|
|
5
|
-
* Runs macro-agent as
|
|
6
|
-
*
|
|
5
|
+
* Runs macro-agent as a full server with ACP + MAP + REST support.
|
|
6
|
+
* This is the primary entry point for running macro-agent.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* multiagent
|
|
9
|
+
* multiagent [options]
|
|
10
10
|
*
|
|
11
11
|
* Options:
|
|
12
12
|
* --cwd <path> Working directory for agents
|
|
13
|
-
* --
|
|
14
|
-
* --
|
|
15
|
-
* --
|
|
13
|
+
* --port <port> Port for server (default: 3001)
|
|
14
|
+
* --host <host> Host for server (default: localhost)
|
|
15
|
+
* --acp Stdio ACP-only mode (for embedded use with acp-factory)
|
|
16
16
|
*
|
|
17
17
|
* Examples:
|
|
18
|
-
* #
|
|
19
|
-
* multiagent
|
|
18
|
+
* # Full server mode (default): WebSocket ACP + MAP + REST API
|
|
19
|
+
* multiagent
|
|
20
|
+
* multiagent --port 8080
|
|
21
|
+
* multiagent --host 0.0.0.0 --port 3001
|
|
20
22
|
*
|
|
21
|
-
* #
|
|
22
|
-
* multiagent
|
|
23
|
-
* multiagent
|
|
24
|
-
* multiagent-acp --api --host 0.0.0.0 --port 3001
|
|
23
|
+
* # Stdio ACP-only mode (for spawning via acp-factory)
|
|
24
|
+
* multiagent --acp
|
|
25
|
+
* multiagent --acp --cwd /path/to/project
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
+
* Server endpoints (default mode):
|
|
27
28
|
* ws://host:port/acp - ACP protocol (WebSocket)
|
|
29
|
+
* ws://host:port/map - MAP protocol (WebSocket)
|
|
28
30
|
* ws://host:port/api/ws - Real-time subscriptions (WebSocket)
|
|
29
31
|
* http://host:port/api/* - REST API endpoints
|
|
30
32
|
* http://host:port/health - Health check
|
|
31
33
|
*
|
|
32
|
-
*
|
|
34
|
+
* For embedded use with acp-factory:
|
|
33
35
|
* AgentFactory.register('macro-agent', {
|
|
34
36
|
* command: 'npx',
|
|
35
|
-
* args: ['multiagent
|
|
37
|
+
* args: ['multiagent', '--acp'],
|
|
36
38
|
* });
|
|
37
39
|
*/
|
|
38
40
|
export interface ACPServerOptions {
|
|
39
41
|
/** Working directory for agents */
|
|
40
42
|
cwd?: string;
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
/** Port for
|
|
43
|
+
/** Stdio ACP-only mode (for embedded use with acp-factory) */
|
|
44
|
+
acp?: boolean;
|
|
45
|
+
/** Port for server (default: 3001) */
|
|
44
46
|
port?: number;
|
|
45
|
-
/** Host for
|
|
47
|
+
/** Host for server (default: localhost) */
|
|
46
48
|
host?: string;
|
|
47
49
|
}
|
|
48
50
|
/**
|
package/dist/cli/acp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AA+BH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAoB3D"}
|
package/dist/cli/acp.js
CHANGED
|
@@ -1,38 +1,40 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Multi-Agent Server Entry Point
|
|
4
4
|
*
|
|
5
|
-
* Runs macro-agent as
|
|
6
|
-
*
|
|
5
|
+
* Runs macro-agent as a full server with ACP + MAP + REST support.
|
|
6
|
+
* This is the primary entry point for running macro-agent.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* multiagent
|
|
9
|
+
* multiagent [options]
|
|
10
10
|
*
|
|
11
11
|
* Options:
|
|
12
12
|
* --cwd <path> Working directory for agents
|
|
13
|
-
* --
|
|
14
|
-
* --
|
|
15
|
-
* --
|
|
13
|
+
* --port <port> Port for server (default: 3001)
|
|
14
|
+
* --host <host> Host for server (default: localhost)
|
|
15
|
+
* --acp Stdio ACP-only mode (for embedded use with acp-factory)
|
|
16
16
|
*
|
|
17
17
|
* Examples:
|
|
18
|
-
* #
|
|
19
|
-
* multiagent
|
|
18
|
+
* # Full server mode (default): WebSocket ACP + MAP + REST API
|
|
19
|
+
* multiagent
|
|
20
|
+
* multiagent --port 8080
|
|
21
|
+
* multiagent --host 0.0.0.0 --port 3001
|
|
20
22
|
*
|
|
21
|
-
* #
|
|
22
|
-
* multiagent
|
|
23
|
-
* multiagent
|
|
24
|
-
* multiagent-acp --api --host 0.0.0.0 --port 3001
|
|
23
|
+
* # Stdio ACP-only mode (for spawning via acp-factory)
|
|
24
|
+
* multiagent --acp
|
|
25
|
+
* multiagent --acp --cwd /path/to/project
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
+
* Server endpoints (default mode):
|
|
27
28
|
* ws://host:port/acp - ACP protocol (WebSocket)
|
|
29
|
+
* ws://host:port/map - MAP protocol (WebSocket)
|
|
28
30
|
* ws://host:port/api/ws - Real-time subscriptions (WebSocket)
|
|
29
31
|
* http://host:port/api/* - REST API endpoints
|
|
30
32
|
* http://host:port/health - Health check
|
|
31
33
|
*
|
|
32
|
-
*
|
|
34
|
+
* For embedded use with acp-factory:
|
|
33
35
|
* AgentFactory.register('macro-agent', {
|
|
34
36
|
* command: 'npx',
|
|
35
|
-
* args: ['multiagent
|
|
37
|
+
* args: ['multiagent', '--acp'],
|
|
36
38
|
* });
|
|
37
39
|
*/
|
|
38
40
|
import { Readable } from "node:stream";
|
|
@@ -57,8 +59,8 @@ export function parseArgs(argv) {
|
|
|
57
59
|
options.cwd = args[i + 1];
|
|
58
60
|
i++;
|
|
59
61
|
}
|
|
60
|
-
else if (args[i] === "--
|
|
61
|
-
options.
|
|
62
|
+
else if (args[i] === "--acp") {
|
|
63
|
+
options.acp = true;
|
|
62
64
|
}
|
|
63
65
|
else if (args[i] === "--port" && args[i + 1]) {
|
|
64
66
|
options.port = parseInt(args[i + 1], 10);
|
|
@@ -183,13 +185,6 @@ async function main() {
|
|
|
183
185
|
await eventStore.close();
|
|
184
186
|
};
|
|
185
187
|
try {
|
|
186
|
-
// Start combined server if --api is enabled
|
|
187
|
-
if (options.api) {
|
|
188
|
-
const host = options.host ?? "localhost";
|
|
189
|
-
const port = options.port ?? 3001;
|
|
190
|
-
combinedServer = createCombinedServer({ eventStore, agentManager, taskManager, messageRouter, activityWatcher }, { port, host, defaultCwd });
|
|
191
|
-
await combinedServer.start();
|
|
192
|
-
}
|
|
193
188
|
// Handle graceful shutdown
|
|
194
189
|
process.on("SIGINT", async () => {
|
|
195
190
|
await cleanup();
|
|
@@ -199,22 +194,8 @@ async function main() {
|
|
|
199
194
|
await cleanup();
|
|
200
195
|
process.exit(0);
|
|
201
196
|
});
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
// 1. MACRO_AGENT_SERVER_ONLY env var is set (spawned by MacroAgentServerManager)
|
|
205
|
-
// 2. Or stdin detection fails (fallback)
|
|
206
|
-
const serverOnlyEnv = process.env.MACRO_AGENT_SERVER_ONLY === "1";
|
|
207
|
-
const skipStdioAcp = options.api && serverOnlyEnv;
|
|
208
|
-
if (skipStdioAcp) {
|
|
209
|
-
// WebSocket-only mode: just keep the process alive until shutdown signal
|
|
210
|
-
console.error("[acp] Running in server-only mode (stdin not connected)");
|
|
211
|
-
// Keep process alive - will exit via SIGINT/SIGTERM handlers
|
|
212
|
-
await new Promise(() => {
|
|
213
|
-
// Never resolves - process stays alive until signal
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
// Standard mode: set up stdio ACP connection
|
|
197
|
+
if (options.acp) {
|
|
198
|
+
// Stdio ACP-only mode (for embedded use with acp-factory)
|
|
218
199
|
const { input, output } = createStdioStreams();
|
|
219
200
|
const stream = ndJsonStream(output, input);
|
|
220
201
|
// Create ACP connection with MacroAgent
|
|
@@ -229,6 +210,17 @@ async function main() {
|
|
|
229
210
|
// Clean up on normal close
|
|
230
211
|
await cleanup();
|
|
231
212
|
}
|
|
213
|
+
else {
|
|
214
|
+
// Full server mode (default): WebSocket ACP + MAP + REST API
|
|
215
|
+
const host = options.host ?? "localhost";
|
|
216
|
+
const port = options.port ?? 3001;
|
|
217
|
+
combinedServer = createCombinedServer({ eventStore, agentManager, taskManager, messageRouter, activityWatcher }, { port, host, defaultCwd });
|
|
218
|
+
await combinedServer.start();
|
|
219
|
+
// Keep process alive - will exit via SIGINT/SIGTERM handlers
|
|
220
|
+
await new Promise(() => {
|
|
221
|
+
// Never resolves - process stays alive until signal
|
|
222
|
+
});
|
|
223
|
+
}
|
|
232
224
|
}
|
|
233
225
|
catch (error) {
|
|
234
226
|
// Log errors to stderr (not stdout, which is used for ACP)
|
package/dist/cli/acp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Multi-Agent CLI
|
|
4
4
|
*
|
|
5
|
-
* Command-line interface for the multi-agent
|
|
5
|
+
* Command-line interface for inspecting and managing the multi-agent system.
|
|
6
|
+
* For running the server, use `multiagent` instead.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* multiagent-cli <command> [options]
|
|
6
10
|
*/
|
|
7
11
|
export {};
|
|
8
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Multi-Agent CLI
|
|
4
4
|
*
|
|
5
|
-
* Command-line interface for the multi-agent
|
|
5
|
+
* Command-line interface for inspecting and managing the multi-agent system.
|
|
6
|
+
* For running the server, use `multiagent` instead.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* multiagent-cli <command> [options]
|
|
6
10
|
*/
|
|
7
11
|
import { Command } from "commander";
|
|
8
12
|
import chalk from "chalk";
|
|
@@ -83,7 +87,7 @@ function printHierarchy(agent, getChildren, indent = 0) {
|
|
|
83
87
|
// ─────────────────────────────────────────────────────────────────
|
|
84
88
|
const program = new Command();
|
|
85
89
|
program
|
|
86
|
-
.name("multiagent")
|
|
90
|
+
.name("multiagent-cli")
|
|
87
91
|
.description("Multi-agent orchestration system CLI")
|
|
88
92
|
.version("0.0.1");
|
|
89
93
|
// ─────────────────────────────────────────────────────────────────
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/docs/configuration.md
CHANGED
|
@@ -177,19 +177,18 @@ type PermissionMode =
|
|
|
177
177
|
### CLI Options
|
|
178
178
|
|
|
179
179
|
```bash
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
# Server (default mode runs full ACP + MAP + REST)
|
|
181
|
+
multiagent [options]
|
|
182
|
+
--port <port> Port (default: 3001)
|
|
183
|
+
--host <host> Host (default: localhost)
|
|
183
184
|
--cwd <path> Working directory
|
|
185
|
+
--acp Stdio ACP-only mode (for acp-factory)
|
|
184
186
|
|
|
185
|
-
|
|
187
|
+
# CLI tools (for management/inspection)
|
|
188
|
+
multiagent-cli start [options]
|
|
189
|
+
-p, --port <port> Port (default: 3000)
|
|
190
|
+
-h, --host <host> Host (default: localhost)
|
|
186
191
|
--cwd <path> Working directory
|
|
187
|
-
--ws Enable WebSocket ACP
|
|
188
|
-
--ws-port <port> WebSocket port (default: 3001)
|
|
189
|
-
--ws-host <host> WebSocket host (default: localhost)
|
|
190
|
-
--api Enable HTTP API server
|
|
191
|
-
--port <port> HTTP API port (auto-discovers)
|
|
192
|
-
--host <host> HTTP API host (default: localhost)
|
|
193
192
|
```
|
|
194
193
|
|
|
195
194
|
### Programmatic API Server
|
|
@@ -287,8 +286,8 @@ const messageRouter = createMessageRouter(eventStore, {
|
|
|
287
286
|
### Development (In-Memory)
|
|
288
287
|
|
|
289
288
|
```bash
|
|
290
|
-
#
|
|
291
|
-
npx multiagent
|
|
289
|
+
# Start full server with default settings
|
|
290
|
+
npx multiagent
|
|
292
291
|
```
|
|
293
292
|
|
|
294
293
|
### Production with Sudocode
|
|
@@ -298,17 +297,27 @@ export MACRO_TASK_BACKEND=sudocode
|
|
|
298
297
|
export SUDOCODE_PROJECT_PATH=/path/to/project
|
|
299
298
|
export MACRO_TASK_TOOL_MODE=abstract
|
|
300
299
|
|
|
301
|
-
npx multiagent
|
|
300
|
+
npx multiagent --port 3001
|
|
302
301
|
```
|
|
303
302
|
|
|
304
|
-
###
|
|
303
|
+
### Server Mode (Default)
|
|
305
304
|
|
|
306
305
|
```bash
|
|
307
|
-
#
|
|
308
|
-
npx multiagent
|
|
306
|
+
# Full server with ACP + MAP + REST API
|
|
307
|
+
npx multiagent --port 3001 --host 0.0.0.0
|
|
308
|
+
|
|
309
|
+
# Endpoints available:
|
|
310
|
+
# ws://host:port/acp - ACP protocol
|
|
311
|
+
# ws://host:port/map - MAP protocol
|
|
312
|
+
# ws://host:port/api/ws - Real-time subscriptions
|
|
313
|
+
# http://host:port/api/* - REST API
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Stdio ACP Mode (for acp-factory)
|
|
309
317
|
|
|
310
|
-
|
|
311
|
-
|
|
318
|
+
```bash
|
|
319
|
+
# For embedded use with acp-factory
|
|
320
|
+
npx multiagent --acp --cwd /path/to/project
|
|
312
321
|
```
|
|
313
322
|
|
|
314
323
|
### Programmatic Full Setup
|
package/docs/troubleshooting.md
CHANGED
|
@@ -377,7 +377,7 @@ Common issues and solutions when using macro-agent.
|
|
|
377
377
|
1. **Check server logs**
|
|
378
378
|
```bash
|
|
379
379
|
# Run with debug output
|
|
380
|
-
DEBUG=macro-agent:* npx multiagent
|
|
380
|
+
DEBUG=macro-agent:* npx multiagent
|
|
381
381
|
```
|
|
382
382
|
|
|
383
383
|
2. **Validate request body**
|
|
@@ -443,10 +443,10 @@ Common issues and solutions when using macro-agent.
|
|
|
443
443
|
|
|
444
444
|
```bash
|
|
445
445
|
# All debug output
|
|
446
|
-
DEBUG=macro-agent:* npx multiagent
|
|
446
|
+
DEBUG=macro-agent:* npx multiagent
|
|
447
447
|
|
|
448
448
|
# Specific modules
|
|
449
|
-
DEBUG=macro-agent:agent-manager,macro-agent:message-router npx multiagent
|
|
449
|
+
DEBUG=macro-agent:agent-manager,macro-agent:message-router npx multiagent
|
|
450
450
|
```
|
|
451
451
|
|
|
452
452
|
### Inspect event store
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "macro-agent",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "Interact with multiple agents as if they were a single agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"multiagent": "./dist/cli/
|
|
10
|
-
"multiagent-
|
|
11
|
-
"multiagent-
|
|
9
|
+
"multiagent": "./dist/cli/acp.js",
|
|
10
|
+
"multiagent-cli": "./dist/cli/index.js",
|
|
11
|
+
"multiagent-mcp": "./dist/cli/mcp.js"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc",
|
package/src/acp/index.ts
CHANGED
|
@@ -13,14 +13,14 @@ import { AgentFactory } from "acp-factory";
|
|
|
13
13
|
|
|
14
14
|
export interface RegisterOptions {
|
|
15
15
|
/**
|
|
16
|
-
* Custom command to run macro-agent ACP
|
|
17
|
-
* Defaults to "npx" with args ["multiagent
|
|
16
|
+
* Custom command to run macro-agent in ACP mode.
|
|
17
|
+
* Defaults to "npx" with args ["multiagent", "--acp"]
|
|
18
18
|
*/
|
|
19
19
|
command?: string;
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Custom arguments for the command.
|
|
23
|
-
* Defaults to ["multiagent
|
|
23
|
+
* Defaults to ["multiagent", "--acp"]
|
|
24
24
|
*/
|
|
25
25
|
args?: string[];
|
|
26
26
|
|
|
@@ -60,7 +60,7 @@ export interface RegisterOptions {
|
|
|
60
60
|
export function registerMacroAgent(options: RegisterOptions = {}): void {
|
|
61
61
|
const {
|
|
62
62
|
command = "npx",
|
|
63
|
-
args = ["multiagent
|
|
63
|
+
args = ["multiagent", "--acp"],
|
|
64
64
|
env,
|
|
65
65
|
} = options;
|
|
66
66
|
|
|
@@ -30,15 +30,15 @@ describe("parseArgs", () => {
|
|
|
30
30
|
});
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
describe("--
|
|
34
|
-
it("should parse --
|
|
35
|
-
const result = parseArgs(["--
|
|
36
|
-
expect(result.
|
|
33
|
+
describe("--acp option", () => {
|
|
34
|
+
it("should parse --acp flag", () => {
|
|
35
|
+
const result = parseArgs(["--acp"]);
|
|
36
|
+
expect(result.acp).toBe(true);
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
it("should not set
|
|
39
|
+
it("should not set acp if flag not provided (default is full server mode)", () => {
|
|
40
40
|
const result = parseArgs([]);
|
|
41
|
-
expect(result.
|
|
41
|
+
expect(result.acp).toBeUndefined();
|
|
42
42
|
});
|
|
43
43
|
});
|
|
44
44
|
|
|
@@ -81,14 +81,14 @@ describe("parseArgs", () => {
|
|
|
81
81
|
it("should parse all options together", () => {
|
|
82
82
|
const result = parseArgs([
|
|
83
83
|
"--cwd", "/project",
|
|
84
|
-
"--
|
|
84
|
+
"--acp",
|
|
85
85
|
"--port", "9000",
|
|
86
86
|
"--host", "127.0.0.1",
|
|
87
87
|
]);
|
|
88
88
|
|
|
89
89
|
expect(result).toEqual({
|
|
90
90
|
cwd: "/project",
|
|
91
|
-
|
|
91
|
+
acp: true,
|
|
92
92
|
port: 9000,
|
|
93
93
|
host: "127.0.0.1",
|
|
94
94
|
});
|
|
@@ -96,7 +96,7 @@ describe("parseArgs", () => {
|
|
|
96
96
|
|
|
97
97
|
it("should parse options in any order", () => {
|
|
98
98
|
const result = parseArgs([
|
|
99
|
-
"--
|
|
99
|
+
"--acp",
|
|
100
100
|
"--host", "0.0.0.0",
|
|
101
101
|
"--cwd", "/my/project",
|
|
102
102
|
"--port", "4000",
|
|
@@ -104,40 +104,40 @@ describe("parseArgs", () => {
|
|
|
104
104
|
|
|
105
105
|
expect(result).toEqual({
|
|
106
106
|
cwd: "/my/project",
|
|
107
|
-
|
|
107
|
+
acp: true,
|
|
108
108
|
port: 4000,
|
|
109
109
|
host: "0.0.0.0",
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
112
|
|
|
113
|
-
it("should parse
|
|
114
|
-
const result = parseArgs(["--
|
|
113
|
+
it("should parse server options without --acp (full server mode)", () => {
|
|
114
|
+
const result = parseArgs(["--port", "5000", "--host", "0.0.0.0"]);
|
|
115
115
|
|
|
116
116
|
expect(result).toEqual({
|
|
117
|
-
api: true,
|
|
118
117
|
port: 5000,
|
|
118
|
+
host: "0.0.0.0",
|
|
119
119
|
});
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
it("should parse --
|
|
123
|
-
const result = parseArgs(["--
|
|
122
|
+
it("should parse --acp with --cwd (stdio ACP mode)", () => {
|
|
123
|
+
const result = parseArgs(["--acp", "--cwd", "/project"]);
|
|
124
124
|
|
|
125
125
|
expect(result).toEqual({
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
acp: true,
|
|
127
|
+
cwd: "/project",
|
|
128
128
|
});
|
|
129
129
|
});
|
|
130
130
|
});
|
|
131
131
|
|
|
132
132
|
describe("edge cases", () => {
|
|
133
|
-
it("should return empty object for no arguments", () => {
|
|
133
|
+
it("should return empty object for no arguments (defaults to full server mode)", () => {
|
|
134
134
|
const result = parseArgs([]);
|
|
135
135
|
expect(result).toEqual({});
|
|
136
136
|
});
|
|
137
137
|
|
|
138
138
|
it("should ignore unknown options", () => {
|
|
139
|
-
const result = parseArgs(["--unknown", "value", "--
|
|
140
|
-
expect(result.
|
|
139
|
+
const result = parseArgs(["--unknown", "value", "--acp"]);
|
|
140
|
+
expect(result.acp).toBe(true);
|
|
141
141
|
expect(result).not.toHaveProperty("unknown");
|
|
142
142
|
});
|
|
143
143
|
|
|
@@ -146,9 +146,9 @@ describe("parseArgs", () => {
|
|
|
146
146
|
const originalArgv = process.argv;
|
|
147
147
|
|
|
148
148
|
try {
|
|
149
|
-
process.argv = ["node", "acp.js", "--
|
|
149
|
+
process.argv = ["node", "acp.js", "--acp", "--port", "7777"];
|
|
150
150
|
const result = parseArgs();
|
|
151
|
-
expect(result.
|
|
151
|
+
expect(result.acp).toBe(true);
|
|
152
152
|
expect(result.port).toBe(7777);
|
|
153
153
|
} finally {
|
|
154
154
|
// Restore original argv
|
|
@@ -159,45 +159,53 @@ describe("parseArgs", () => {
|
|
|
159
159
|
});
|
|
160
160
|
|
|
161
161
|
// ─────────────────────────────────────────────────────────────────
|
|
162
|
-
//
|
|
162
|
+
// Server Mode Tests
|
|
163
163
|
// ─────────────────────────────────────────────────────────────────
|
|
164
164
|
|
|
165
|
-
describe("
|
|
166
|
-
describe("
|
|
167
|
-
it("should
|
|
168
|
-
const options = parseArgs([
|
|
169
|
-
expect(options.
|
|
165
|
+
describe("Server Mode Configuration", () => {
|
|
166
|
+
describe("default behavior (full server mode)", () => {
|
|
167
|
+
it("should run full server mode when no --acp flag is set", () => {
|
|
168
|
+
const options = parseArgs([]);
|
|
169
|
+
expect(options.acp).toBeUndefined();
|
|
170
|
+
// When acp is undefined, main() runs full server mode
|
|
170
171
|
});
|
|
171
172
|
|
|
172
|
-
it("should use specified port
|
|
173
|
-
const options = parseArgs(["--
|
|
174
|
-
expect(options.
|
|
173
|
+
it("should use specified port in full server mode", () => {
|
|
174
|
+
const options = parseArgs(["--port", "8080"]);
|
|
175
|
+
expect(options.acp).toBeUndefined();
|
|
175
176
|
expect(options.port).toBe(8080);
|
|
176
177
|
});
|
|
177
178
|
|
|
178
|
-
it("should use specified host
|
|
179
|
-
const options = parseArgs(["--
|
|
180
|
-
expect(options.
|
|
179
|
+
it("should use specified host in full server mode", () => {
|
|
180
|
+
const options = parseArgs(["--host", "0.0.0.0"]);
|
|
181
|
+
expect(options.acp).toBeUndefined();
|
|
181
182
|
expect(options.host).toBe("0.0.0.0");
|
|
182
183
|
});
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
describe("stdio ACP mode (--acp flag)", () => {
|
|
187
|
+
it("should enable stdio ACP mode when --acp flag is set", () => {
|
|
188
|
+
const options = parseArgs(["--acp"]);
|
|
189
|
+
expect(options.acp).toBe(true);
|
|
190
|
+
});
|
|
183
191
|
|
|
184
|
-
it("should allow --
|
|
185
|
-
const options = parseArgs(["--
|
|
186
|
-
expect(options.
|
|
187
|
-
expect(options.
|
|
192
|
+
it("should allow --cwd with --acp for embedded use", () => {
|
|
193
|
+
const options = parseArgs(["--acp", "--cwd", "/path/to/project"]);
|
|
194
|
+
expect(options.acp).toBe(true);
|
|
195
|
+
expect(options.cwd).toBe("/path/to/project");
|
|
188
196
|
});
|
|
189
197
|
});
|
|
190
198
|
|
|
191
199
|
describe("default values behavior", () => {
|
|
192
200
|
it("should use default port 3001 when not specified", () => {
|
|
193
|
-
const options = parseArgs([
|
|
201
|
+
const options = parseArgs([]);
|
|
194
202
|
// Default is applied in main(), not parseArgs()
|
|
195
203
|
expect(options.port).toBeUndefined();
|
|
196
204
|
// The actual default (3001) is applied when creating the server
|
|
197
205
|
});
|
|
198
206
|
|
|
199
207
|
it("should use default host localhost when not specified", () => {
|
|
200
|
-
const options = parseArgs([
|
|
208
|
+
const options = parseArgs([]);
|
|
201
209
|
// Default is applied in main(), not parseArgs()
|
|
202
210
|
expect(options.host).toBeUndefined();
|
|
203
211
|
// The actual default (localhost) is applied when creating the server
|
package/src/cli/acp.ts
CHANGED
|
@@ -1,38 +1,40 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Multi-Agent Server Entry Point
|
|
4
4
|
*
|
|
5
|
-
* Runs macro-agent as
|
|
6
|
-
*
|
|
5
|
+
* Runs macro-agent as a full server with ACP + MAP + REST support.
|
|
6
|
+
* This is the primary entry point for running macro-agent.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* multiagent
|
|
9
|
+
* multiagent [options]
|
|
10
10
|
*
|
|
11
11
|
* Options:
|
|
12
12
|
* --cwd <path> Working directory for agents
|
|
13
|
-
* --
|
|
14
|
-
* --
|
|
15
|
-
* --
|
|
13
|
+
* --port <port> Port for server (default: 3001)
|
|
14
|
+
* --host <host> Host for server (default: localhost)
|
|
15
|
+
* --acp Stdio ACP-only mode (for embedded use with acp-factory)
|
|
16
16
|
*
|
|
17
17
|
* Examples:
|
|
18
|
-
* #
|
|
19
|
-
* multiagent
|
|
18
|
+
* # Full server mode (default): WebSocket ACP + MAP + REST API
|
|
19
|
+
* multiagent
|
|
20
|
+
* multiagent --port 8080
|
|
21
|
+
* multiagent --host 0.0.0.0 --port 3001
|
|
20
22
|
*
|
|
21
|
-
* #
|
|
22
|
-
* multiagent
|
|
23
|
-
* multiagent
|
|
24
|
-
* multiagent-acp --api --host 0.0.0.0 --port 3001
|
|
23
|
+
* # Stdio ACP-only mode (for spawning via acp-factory)
|
|
24
|
+
* multiagent --acp
|
|
25
|
+
* multiagent --acp --cwd /path/to/project
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
+
* Server endpoints (default mode):
|
|
27
28
|
* ws://host:port/acp - ACP protocol (WebSocket)
|
|
29
|
+
* ws://host:port/map - MAP protocol (WebSocket)
|
|
28
30
|
* ws://host:port/api/ws - Real-time subscriptions (WebSocket)
|
|
29
31
|
* http://host:port/api/* - REST API endpoints
|
|
30
32
|
* http://host:port/health - Health check
|
|
31
33
|
*
|
|
32
|
-
*
|
|
34
|
+
* For embedded use with acp-factory:
|
|
33
35
|
* AgentFactory.register('macro-agent', {
|
|
34
36
|
* command: 'npx',
|
|
35
|
-
* args: ['multiagent
|
|
37
|
+
* args: ['multiagent', '--acp'],
|
|
36
38
|
* });
|
|
37
39
|
*/
|
|
38
40
|
|
|
@@ -68,11 +70,11 @@ import {
|
|
|
68
70
|
export interface ACPServerOptions {
|
|
69
71
|
/** Working directory for agents */
|
|
70
72
|
cwd?: string;
|
|
71
|
-
/**
|
|
72
|
-
|
|
73
|
-
/** Port for
|
|
73
|
+
/** Stdio ACP-only mode (for embedded use with acp-factory) */
|
|
74
|
+
acp?: boolean;
|
|
75
|
+
/** Port for server (default: 3001) */
|
|
74
76
|
port?: number;
|
|
75
|
-
/** Host for
|
|
77
|
+
/** Host for server (default: localhost) */
|
|
76
78
|
host?: string;
|
|
77
79
|
}
|
|
78
80
|
|
|
@@ -88,8 +90,8 @@ export function parseArgs(argv?: string[]): ACPServerOptions {
|
|
|
88
90
|
if (args[i] === "--cwd" && args[i + 1]) {
|
|
89
91
|
options.cwd = args[i + 1];
|
|
90
92
|
i++;
|
|
91
|
-
} else if (args[i] === "--
|
|
92
|
-
options.
|
|
93
|
+
} else if (args[i] === "--acp") {
|
|
94
|
+
options.acp = true;
|
|
93
95
|
} else if (args[i] === "--port" && args[i + 1]) {
|
|
94
96
|
options.port = parseInt(args[i + 1], 10);
|
|
95
97
|
i++;
|
|
@@ -237,19 +239,6 @@ async function main() {
|
|
|
237
239
|
};
|
|
238
240
|
|
|
239
241
|
try {
|
|
240
|
-
// Start combined server if --api is enabled
|
|
241
|
-
if (options.api) {
|
|
242
|
-
const host = options.host ?? "localhost";
|
|
243
|
-
const port = options.port ?? 3001;
|
|
244
|
-
|
|
245
|
-
combinedServer = createCombinedServer(
|
|
246
|
-
{ eventStore, agentManager, taskManager, messageRouter, activityWatcher },
|
|
247
|
-
{ port, host, defaultCwd }
|
|
248
|
-
);
|
|
249
|
-
|
|
250
|
-
await combinedServer.start();
|
|
251
|
-
}
|
|
252
|
-
|
|
253
242
|
// Handle graceful shutdown
|
|
254
243
|
process.on("SIGINT", async () => {
|
|
255
244
|
await cleanup();
|
|
@@ -261,23 +250,8 @@ async function main() {
|
|
|
261
250
|
process.exit(0);
|
|
262
251
|
});
|
|
263
252
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
// 1. MACRO_AGENT_SERVER_ONLY env var is set (spawned by MacroAgentServerManager)
|
|
267
|
-
// 2. Or stdin detection fails (fallback)
|
|
268
|
-
const serverOnlyEnv = process.env.MACRO_AGENT_SERVER_ONLY === "1";
|
|
269
|
-
const skipStdioAcp = options.api && serverOnlyEnv;
|
|
270
|
-
|
|
271
|
-
if (skipStdioAcp) {
|
|
272
|
-
// WebSocket-only mode: just keep the process alive until shutdown signal
|
|
273
|
-
console.error("[acp] Running in server-only mode (stdin not connected)");
|
|
274
|
-
|
|
275
|
-
// Keep process alive - will exit via SIGINT/SIGTERM handlers
|
|
276
|
-
await new Promise<void>(() => {
|
|
277
|
-
// Never resolves - process stays alive until signal
|
|
278
|
-
});
|
|
279
|
-
} else {
|
|
280
|
-
// Standard mode: set up stdio ACP connection
|
|
253
|
+
if (options.acp) {
|
|
254
|
+
// Stdio ACP-only mode (for embedded use with acp-factory)
|
|
281
255
|
const { input, output } = createStdioStreams();
|
|
282
256
|
const stream = ndJsonStream(output, input);
|
|
283
257
|
|
|
@@ -298,6 +272,22 @@ async function main() {
|
|
|
298
272
|
|
|
299
273
|
// Clean up on normal close
|
|
300
274
|
await cleanup();
|
|
275
|
+
} else {
|
|
276
|
+
// Full server mode (default): WebSocket ACP + MAP + REST API
|
|
277
|
+
const host = options.host ?? "localhost";
|
|
278
|
+
const port = options.port ?? 3001;
|
|
279
|
+
|
|
280
|
+
combinedServer = createCombinedServer(
|
|
281
|
+
{ eventStore, agentManager, taskManager, messageRouter, activityWatcher },
|
|
282
|
+
{ port, host, defaultCwd }
|
|
283
|
+
);
|
|
284
|
+
|
|
285
|
+
await combinedServer.start();
|
|
286
|
+
|
|
287
|
+
// Keep process alive - will exit via SIGINT/SIGTERM handlers
|
|
288
|
+
await new Promise<void>(() => {
|
|
289
|
+
// Never resolves - process stays alive until signal
|
|
290
|
+
});
|
|
301
291
|
}
|
|
302
292
|
} catch (error) {
|
|
303
293
|
// Log errors to stderr (not stdout, which is used for ACP)
|
package/src/cli/index.ts
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Multi-Agent CLI
|
|
4
4
|
*
|
|
5
|
-
* Command-line interface for the multi-agent
|
|
5
|
+
* Command-line interface for inspecting and managing the multi-agent system.
|
|
6
|
+
* For running the server, use `multiagent` instead.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* multiagent-cli <command> [options]
|
|
6
10
|
*/
|
|
7
11
|
|
|
8
12
|
import { Command } from "commander";
|
|
@@ -102,7 +106,7 @@ function printHierarchy(
|
|
|
102
106
|
const program = new Command();
|
|
103
107
|
|
|
104
108
|
program
|
|
105
|
-
.name("multiagent")
|
|
109
|
+
.name("multiagent-cli")
|
|
106
110
|
.description("Multi-agent orchestration system CLI")
|
|
107
111
|
.version("0.0.1");
|
|
108
112
|
|
|
@@ -66,7 +66,8 @@ describe("WakeManager", () => {
|
|
|
66
66
|
wakeManager.requestWakeNow({ reason: "third" });
|
|
67
67
|
|
|
68
68
|
expect(wakeManager.hasPendingWake()).toBe(true);
|
|
69
|
-
|
|
69
|
+
// Last reason is stored (newer reason overrides older)
|
|
70
|
+
expect(wakeManager.getPendingReason()).toBe("third");
|
|
70
71
|
});
|
|
71
72
|
|
|
72
73
|
it("should run wake cycle after coalesce delay", async () => {
|
|
@@ -92,15 +93,24 @@ describe("WakeManager", () => {
|
|
|
92
93
|
it("should return skipped if wake in progress", async () => {
|
|
93
94
|
wakeManager.start();
|
|
94
95
|
|
|
95
|
-
//
|
|
96
|
+
// Create a long-running inject operation to keep the cycle busy
|
|
97
|
+
let resolveInject: () => void;
|
|
98
|
+
const injectPromise = new Promise<{ success: boolean }>((resolve) => {
|
|
99
|
+
resolveInject = () => resolve({ success: true });
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
const mockSession = {
|
|
103
|
+
supportsInject: vi.fn().mockReturnValue(true),
|
|
104
|
+
inject: vi.fn().mockReturnValue(injectPromise),
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
mockDeps.agentManager.getSession = vi.fn().mockReturnValue(mockSession);
|
|
96
108
|
mockDeps.systemEventQueue.getAgentsWithEvents = vi
|
|
97
109
|
.fn()
|
|
98
110
|
.mockReturnValue(["agent_1" as AgentId]);
|
|
99
|
-
mockDeps.systemEventQueue.drainText = vi.fn().
|
|
100
|
-
return new Promise((resolve) => setTimeout(() => resolve(["Event"]), 1000));
|
|
101
|
-
});
|
|
111
|
+
mockDeps.systemEventQueue.drainText = vi.fn().mockReturnValue(["Event"]);
|
|
102
112
|
|
|
103
|
-
// Start first cycle
|
|
113
|
+
// Start first cycle (will wait on inject)
|
|
104
114
|
const firstCyclePromise = wakeManager.runWakeCycle({ reason: "first" });
|
|
105
115
|
|
|
106
116
|
// Try to start second cycle immediately
|
|
@@ -109,8 +119,9 @@ describe("WakeManager", () => {
|
|
|
109
119
|
expect(result.status).toBe("skipped");
|
|
110
120
|
expect(result.reason).toBe("wake-in-progress");
|
|
111
121
|
|
|
112
|
-
// Clean up
|
|
113
|
-
|
|
122
|
+
// Clean up - resolve the pending inject
|
|
123
|
+
resolveInject!();
|
|
124
|
+
await firstCyclePromise;
|
|
114
125
|
});
|
|
115
126
|
|
|
116
127
|
it("should deliver events to agents with inject", async () => {
|
|
@@ -134,8 +145,14 @@ describe("WakeManager", () => {
|
|
|
134
145
|
});
|
|
135
146
|
|
|
136
147
|
it("should fall back to interrupt if inject fails", async () => {
|
|
148
|
+
// Create a mock iterator that completes after first call
|
|
149
|
+
let callCount = 0;
|
|
137
150
|
const mockIterator = {
|
|
138
|
-
next: vi.fn().
|
|
151
|
+
next: vi.fn().mockImplementation(() => {
|
|
152
|
+
callCount++;
|
|
153
|
+
// First call returns a value, second call ends the iteration
|
|
154
|
+
return Promise.resolve(callCount === 1 ? { done: false, value: {} } : { done: true });
|
|
155
|
+
}),
|
|
139
156
|
[Symbol.asyncIterator]: function () {
|
|
140
157
|
return this;
|
|
141
158
|
},
|