agent-relay 1.0.9 → 1.0.12
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 +27 -56
- package/bin/.gitkeep +0 -0
- package/bin/tmux +0 -0
- package/dist/bridge/config.d.ts.map +1 -1
- package/dist/bridge/multi-project-client.d.ts.map +1 -1
- package/dist/bridge/multi-project-client.js +1 -1
- package/dist/bridge/multi-project-client.js.map +1 -1
- package/dist/bridge/spawner.d.ts +47 -9
- package/dist/bridge/spawner.d.ts.map +1 -1
- package/dist/bridge/spawner.js +177 -73
- package/dist/bridge/spawner.js.map +1 -1
- package/dist/bridge/types.d.ts +4 -2
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/cli/index.js +192 -295
- package/dist/cli/index.js.map +1 -1
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js.map +1 -1
- package/dist/dashboard-server/metrics.d.ts.map +1 -0
- package/dist/dashboard-server/metrics.js.map +1 -0
- package/dist/dashboard-server/needs-attention.d.ts.map +1 -0
- package/dist/dashboard-server/needs-attention.js.map +1 -0
- package/dist/dashboard-server/server.d.ts.map +1 -0
- package/dist/{dashboard → dashboard-server}/server.js +20 -14
- package/dist/dashboard-server/server.js.map +1 -0
- package/dist/dashboard-server/start.d.ts.map +1 -0
- package/dist/dashboard-server/start.js.map +1 -0
- package/dist/utils/tmux-resolver.d.ts +55 -0
- package/dist/utils/tmux-resolver.d.ts.map +1 -0
- package/dist/utils/tmux-resolver.js +175 -0
- package/dist/utils/tmux-resolver.js.map +1 -0
- package/dist/utils/update-checker.d.ts +26 -0
- package/dist/utils/update-checker.d.ts.map +1 -0
- package/dist/utils/update-checker.js +174 -0
- package/dist/utils/update-checker.js.map +1 -0
- package/dist/wrapper/pty-wrapper.d.ts +129 -0
- package/dist/wrapper/pty-wrapper.d.ts.map +1 -0
- package/dist/wrapper/pty-wrapper.js +442 -0
- package/dist/wrapper/pty-wrapper.js.map +1 -0
- package/dist/wrapper/tmux-wrapper.d.ts +2 -1
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
- package/dist/wrapper/tmux-wrapper.js +23 -19
- package/dist/wrapper/tmux-wrapper.js.map +1 -1
- package/docs/AGENTS.md +43 -30
- package/docs/INTEGRATION-GUIDE.md +1 -1
- package/docs/PROTOCOL.md +16 -10
- package/docs/agent-relay-snippet.md +21 -17
- package/package.json +10 -6
- package/scripts/dev/PUBLIC_RELEASE_PLAN.md +88 -0
- package/scripts/dev/dev-team-setup.sh +431 -0
- package/scripts/e2e-test.sh +119 -0
- package/scripts/games/game-protocol.md +79 -0
- package/scripts/games/hearts-setup.sh +264 -0
- package/scripts/postinstall.js +254 -0
- package/scripts/tictactoe-setup.sh +181 -0
- package/dist/dashboard/metrics.d.ts.map +0 -1
- package/dist/dashboard/metrics.js.map +0 -1
- package/dist/dashboard/needs-attention.d.ts.map +0 -1
- package/dist/dashboard/needs-attention.js.map +0 -1
- package/dist/dashboard/public/bridge.html +0 -1272
- package/dist/dashboard/public/index.html +0 -2262
- package/dist/dashboard/public/js/app.js +0 -184
- package/dist/dashboard/public/js/app.js.map +0 -7
- package/dist/dashboard/public/metrics.html +0 -999
- package/dist/dashboard/server.d.ts.map +0 -1
- package/dist/dashboard/server.js.map +0 -1
- package/dist/dashboard/start.d.ts.map +0 -1
- package/dist/dashboard/start.js.map +0 -1
- package/dist/dashboard-v2/index.d.ts +0 -10
- package/dist/dashboard-v2/index.d.ts.map +0 -1
- package/dist/dashboard-v2/index.js +0 -54
- package/dist/dashboard-v2/index.js.map +0 -1
- package/dist/dashboard-v2/lib/api.d.ts +0 -95
- package/dist/dashboard-v2/lib/api.d.ts.map +0 -1
- package/dist/dashboard-v2/lib/api.js +0 -270
- package/dist/dashboard-v2/lib/api.js.map +0 -1
- package/dist/dashboard-v2/lib/colors.d.ts +0 -61
- package/dist/dashboard-v2/lib/colors.d.ts.map +0 -1
- package/dist/dashboard-v2/lib/colors.js +0 -198
- package/dist/dashboard-v2/lib/colors.js.map +0 -1
- package/dist/dashboard-v2/lib/hierarchy.d.ts +0 -74
- package/dist/dashboard-v2/lib/hierarchy.d.ts.map +0 -1
- package/dist/dashboard-v2/lib/hierarchy.js +0 -196
- package/dist/dashboard-v2/lib/hierarchy.js.map +0 -1
- package/dist/dashboard-v2/types/index.d.ts +0 -154
- package/dist/dashboard-v2/types/index.d.ts.map +0 -1
- package/dist/dashboard-v2/types/index.js +0 -6
- package/dist/dashboard-v2/types/index.js.map +0 -1
- /package/dist/{dashboard → dashboard-server}/metrics.d.ts +0 -0
- /package/dist/{dashboard → dashboard-server}/metrics.js +0 -0
- /package/dist/{dashboard → dashboard-server}/needs-attention.d.ts +0 -0
- /package/dist/{dashboard → dashboard-server}/needs-attention.js +0 -0
- /package/dist/{dashboard → dashboard-server}/server.d.ts +0 -0
- /package/dist/{dashboard → dashboard-server}/start.d.ts +0 -0
- /package/dist/{dashboard → dashboard-server}/start.js +0 -0
package/README.md
CHANGED
|
@@ -23,11 +23,14 @@ agent-relay -n Alice claude
|
|
|
23
23
|
agent-relay -n Bob codex
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Agents communicate by outputting `->relay:` patterns:
|
|
26
|
+
Agents communicate by outputting `->relay:` patterns. Always use the fenced format:
|
|
27
27
|
|
|
28
28
|
```
|
|
29
|
-
->relay:Bob
|
|
30
|
-
|
|
29
|
+
->relay:Bob <<<
|
|
30
|
+
Hey, can you review my changes?>>>
|
|
31
|
+
|
|
32
|
+
->relay:* <<<
|
|
33
|
+
Broadcasting to everyone>>>
|
|
31
34
|
```
|
|
32
35
|
|
|
33
36
|
## CLI
|
|
@@ -68,13 +71,15 @@ Agents communicate by outputting `->relay:` patterns:
|
|
|
68
71
|
### Send Message
|
|
69
72
|
|
|
70
73
|
```
|
|
71
|
-
->relay:AgentName
|
|
74
|
+
->relay:AgentName <<<
|
|
75
|
+
Your message here>>>
|
|
72
76
|
```
|
|
73
77
|
|
|
74
78
|
### Broadcast
|
|
75
79
|
|
|
76
80
|
```
|
|
77
|
-
->relay:*
|
|
81
|
+
->relay:* <<<
|
|
82
|
+
Message to all agents>>>
|
|
78
83
|
```
|
|
79
84
|
|
|
80
85
|
### Receive
|
|
@@ -136,8 +141,11 @@ agent-relay bridge ~/auth ~/frontend ~/api
|
|
|
136
141
|
### Cross-Project Messaging
|
|
137
142
|
|
|
138
143
|
```
|
|
139
|
-
->relay:projectId:agent
|
|
140
|
-
|
|
144
|
+
->relay:projectId:agent <<<
|
|
145
|
+
Message to specific agent>>>
|
|
146
|
+
|
|
147
|
+
->relay:*:lead <<<
|
|
148
|
+
Broadcast to all project leads>>>
|
|
141
149
|
```
|
|
142
150
|
|
|
143
151
|
### Spawn Agents
|
|
@@ -151,9 +159,9 @@ See [docs/DESIGN_BRIDGE_STAFFING.md](docs/DESIGN_BRIDGE_STAFFING.md) for full de
|
|
|
151
159
|
|
|
152
160
|
## Enabling AI Agents
|
|
153
161
|
|
|
154
|
-
To teach your AI agents how to use agent-relay, you
|
|
162
|
+
To teach your AI agents how to use agent-relay, you should:
|
|
155
163
|
|
|
156
|
-
###
|
|
164
|
+
### Install the Skill
|
|
157
165
|
|
|
158
166
|
```bash
|
|
159
167
|
prpm install using-agent-relay
|
|
@@ -161,9 +169,17 @@ prpm install using-agent-relay
|
|
|
161
169
|
|
|
162
170
|
This installs the `using-agent-relay` skill which provides agents with messaging patterns, coordination workflows, and troubleshooting guidance.
|
|
163
171
|
|
|
164
|
-
###
|
|
172
|
+
### Update the AGENTS.md/CLAUDE.md file
|
|
165
173
|
|
|
166
|
-
|
|
174
|
+
Use prpm to install the AGENTS.md snippet or CLAUDE.md snippet
|
|
175
|
+
```
|
|
176
|
+
prpm install @agent-relay/agent-relay-snippet
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Or if using CLAUDE.md
|
|
180
|
+
```
|
|
181
|
+
prpm install @agent-relay/agent-relay-snippet --location CLAUDE.md
|
|
182
|
+
```
|
|
167
183
|
|
|
168
184
|
## Dashboard
|
|
169
185
|
|
|
@@ -171,51 +187,6 @@ Copy [docs/AGENTS.md](docs/AGENTS.md) to your project's agent instructions file
|
|
|
171
187
|
|
|
172
188
|

|
|
173
189
|
|
|
174
|
-
## REST API for Spawning Agents
|
|
175
|
-
|
|
176
|
-
The dashboard includes a REST API for programmatically spawning and managing agents.
|
|
177
|
-
|
|
178
|
-
### Endpoints
|
|
179
|
-
|
|
180
|
-
| Method | Endpoint | Description |
|
|
181
|
-
|--------|----------|-------------|
|
|
182
|
-
| `POST` | `/api/spawn` | Spawn a new agent |
|
|
183
|
-
| `GET` | `/api/spawned` | List spawned agents |
|
|
184
|
-
| `DELETE` | `/api/spawned/:name` | Release an agent |
|
|
185
|
-
|
|
186
|
-
### Examples
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
# Spawn an agent
|
|
190
|
-
curl -X POST http://localhost:3888/api/spawn \
|
|
191
|
-
-H "Content-Type: application/json" \
|
|
192
|
-
-d '{"name": "Dev1", "cli": "claude", "task": "Implement login"}'
|
|
193
|
-
|
|
194
|
-
# List spawned agents
|
|
195
|
-
curl http://localhost:3888/api/spawned
|
|
196
|
-
|
|
197
|
-
# Release an agent
|
|
198
|
-
curl -X DELETE http://localhost:3888/api/spawned/Dev1
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Response Format
|
|
202
|
-
|
|
203
|
-
```json
|
|
204
|
-
{
|
|
205
|
-
"success": true,
|
|
206
|
-
"name": "Dev1",
|
|
207
|
-
"window": "relay-workers:Dev1"
|
|
208
|
-
}
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Troubleshooting
|
|
212
|
-
|
|
213
|
-
| Issue | Solution |
|
|
214
|
-
|-------|----------|
|
|
215
|
-
| Messages not sending | `agent-relay status` to check daemon |
|
|
216
|
-
| Socket not found | `agent-relay up` to start daemon |
|
|
217
|
-
| Truncated message | `agent-relay read <id>` |
|
|
218
|
-
|
|
219
190
|
## Development
|
|
220
191
|
|
|
221
192
|
```bash
|
package/bin/.gitkeep
ADDED
|
File without changes
|
package/bin/tmux
ADDED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/bridge/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/bridge/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,GAAG,IAAI,CAY1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa,EAAE,CAmDjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG;IAC1D,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B,CAaA;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,aAAa,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-project-client.d.ts","sourceRoot":"","sources":["../../src/bridge/multi-project-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"multi-project-client.d.ts","sourceRoot":"","sources":["../../src/bridge/multi-project-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AAa1D,UAAU,yBAAyB;IACjC,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,kBAAkB;IAYjB,OAAO,CAAC,QAAQ;IAX5B,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAiF;IAChG,OAAO,CAAC,YAAY,CAAS;IAE7B,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/F,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;gBAEnD,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE,yBAA8B;IAUtF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8DxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,IAAI;IAaZ;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAkCnE;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBhC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQvD;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAMhC;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIxD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmExB;;OAEG;IACH,UAAU,IAAI,IAAI;CAyBnB"}
|
|
@@ -234,7 +234,7 @@ export class MultiProjectClient {
|
|
|
234
234
|
* Broadcast to all agents in all projects
|
|
235
235
|
*/
|
|
236
236
|
broadcastAll(body) {
|
|
237
|
-
for (const [
|
|
237
|
+
for (const [_projectId, conn] of this.connections) {
|
|
238
238
|
if (conn.ready) {
|
|
239
239
|
const envelope = {
|
|
240
240
|
v: PROTOCOL_VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-project-client.js","sourceRoot":"","sources":["../../src/bridge/multi-project-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multi-project-client.js","sourceRoot":"","sources":["../../src/bridge/multi-project-client.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge/spawner.d.ts
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Spawner
|
|
3
|
-
* Handles spawning and releasing worker agents via
|
|
3
|
+
* Handles spawning and releasing worker agents via node-pty.
|
|
4
|
+
* Workers run headlessly with output capture for logs.
|
|
4
5
|
*/
|
|
5
6
|
import type { SpawnRequest, SpawnResult, WorkerInfo } from './types.js';
|
|
7
|
+
/** Worker metadata stored in workers.json */
|
|
8
|
+
interface WorkerMeta {
|
|
9
|
+
name: string;
|
|
10
|
+
cli: string;
|
|
11
|
+
task: string;
|
|
12
|
+
spawnedBy: string;
|
|
13
|
+
spawnedAt: number;
|
|
14
|
+
pid?: number;
|
|
15
|
+
logFile?: string;
|
|
16
|
+
}
|
|
6
17
|
export declare class AgentSpawner {
|
|
7
18
|
private activeWorkers;
|
|
8
|
-
private tmuxSession;
|
|
9
19
|
private agentsPath;
|
|
10
|
-
constructor(projectRoot: string, tmuxSession?: string);
|
|
11
20
|
private projectRoot;
|
|
21
|
+
private socketPath?;
|
|
22
|
+
private logsDir;
|
|
23
|
+
private workersPath;
|
|
24
|
+
constructor(projectRoot: string, _tmuxSession?: string);
|
|
12
25
|
/**
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
ensureSession(): Promise<void>;
|
|
16
|
-
/**
|
|
17
|
-
* Spawn a new worker agent
|
|
26
|
+
* Spawn a new worker agent using node-pty
|
|
18
27
|
*/
|
|
19
28
|
spawn(request: SpawnRequest): Promise<SpawnResult>;
|
|
20
29
|
/**
|
|
@@ -26,7 +35,7 @@ export declare class AgentSpawner {
|
|
|
26
35
|
*/
|
|
27
36
|
releaseAll(): Promise<void>;
|
|
28
37
|
/**
|
|
29
|
-
* Get all active workers
|
|
38
|
+
* Get all active workers (returns WorkerInfo without pty reference)
|
|
30
39
|
*/
|
|
31
40
|
getActiveWorkers(): WorkerInfo[];
|
|
32
41
|
/**
|
|
@@ -37,10 +46,39 @@ export declare class AgentSpawner {
|
|
|
37
46
|
* Get worker info
|
|
38
47
|
*/
|
|
39
48
|
getWorker(name: string): WorkerInfo | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get output logs from a worker
|
|
51
|
+
*/
|
|
52
|
+
getWorkerOutput(name: string, limit?: number): string[] | null;
|
|
53
|
+
/**
|
|
54
|
+
* Get raw output from a worker
|
|
55
|
+
*/
|
|
56
|
+
getWorkerRawOutput(name: string): string | null;
|
|
40
57
|
/**
|
|
41
58
|
* Wait for an agent to appear in the registry (agents.json)
|
|
42
59
|
*/
|
|
43
60
|
private waitForAgentRegistration;
|
|
44
61
|
private isAgentRegistered;
|
|
62
|
+
/**
|
|
63
|
+
* Save workers metadata to disk for CLI access
|
|
64
|
+
*/
|
|
65
|
+
private saveWorkersMetadata;
|
|
66
|
+
/**
|
|
67
|
+
* Get path to logs directory
|
|
68
|
+
*/
|
|
69
|
+
getLogsDir(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Get path to workers metadata file
|
|
72
|
+
*/
|
|
73
|
+
getWorkersPath(): string;
|
|
45
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Read workers metadata from disk (for CLI use)
|
|
77
|
+
*/
|
|
78
|
+
export declare function readWorkersMetadata(projectRoot: string): WorkerMeta[];
|
|
79
|
+
/**
|
|
80
|
+
* Get the worker logs directory path
|
|
81
|
+
*/
|
|
82
|
+
export declare function getWorkerLogsDir(projectRoot: string): string;
|
|
83
|
+
export {};
|
|
46
84
|
//# sourceMappingURL=spawner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/bridge/spawner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/bridge/spawner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExE,6CAA6C;AAC7C,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAYtD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAwHxD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACH,gBAAgB,IAAI,UAAU,EAAE;IAWhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAa/C;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAM9D;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM/C;;OAEG;YACW,wBAAwB;IAkBtC,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,EAAE,CAcrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG5D"}
|
package/dist/bridge/spawner.js
CHANGED
|
@@ -1,38 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Spawner
|
|
3
|
-
* Handles spawning and releasing worker agents via
|
|
3
|
+
* Handles spawning and releasing worker agents via node-pty.
|
|
4
|
+
* Workers run headlessly with output capture for logs.
|
|
4
5
|
*/
|
|
5
6
|
import fs from 'node:fs';
|
|
6
7
|
import path from 'node:path';
|
|
7
|
-
import {
|
|
8
|
+
import { sleep } from './utils.js';
|
|
8
9
|
import { getProjectPaths } from '../utils/project-namespace.js';
|
|
10
|
+
import { PtyWrapper } from '../wrapper/pty-wrapper.js';
|
|
9
11
|
export class AgentSpawner {
|
|
10
12
|
activeWorkers = new Map();
|
|
11
|
-
tmuxSession;
|
|
12
13
|
agentsPath;
|
|
13
|
-
|
|
14
|
+
projectRoot;
|
|
15
|
+
socketPath;
|
|
16
|
+
logsDir;
|
|
17
|
+
workersPath;
|
|
18
|
+
constructor(projectRoot, _tmuxSession) {
|
|
14
19
|
const paths = getProjectPaths(projectRoot);
|
|
15
20
|
this.projectRoot = paths.projectRoot;
|
|
16
21
|
this.agentsPath = path.join(paths.teamDir, 'agents.json');
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* Ensure the worker tmux session exists
|
|
23
|
-
*/
|
|
24
|
-
async ensureSession() {
|
|
25
|
-
try {
|
|
26
|
-
await execAsync(`tmux has-session -t ${this.tmuxSession} 2>/dev/null`);
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
// Session doesn't exist, create it
|
|
30
|
-
await execAsync(`tmux new-session -d -s ${this.tmuxSession} -c "${this.projectRoot}"`);
|
|
31
|
-
console.log(`[spawner] Created session ${this.tmuxSession}`);
|
|
32
|
-
}
|
|
22
|
+
this.socketPath = paths.socketPath;
|
|
23
|
+
this.logsDir = path.join(paths.teamDir, 'worker-logs');
|
|
24
|
+
this.workersPath = path.join(paths.teamDir, 'workers.json');
|
|
25
|
+
// Ensure logs directory exists
|
|
26
|
+
fs.mkdirSync(this.logsDir, { recursive: true });
|
|
33
27
|
}
|
|
34
28
|
/**
|
|
35
|
-
* Spawn a new worker agent
|
|
29
|
+
* Spawn a new worker agent using node-pty
|
|
36
30
|
*/
|
|
37
31
|
async spawn(request) {
|
|
38
32
|
const { name, cli, task, requestedBy } = request;
|
|
@@ -46,50 +40,65 @@ export class AgentSpawner {
|
|
|
46
40
|
};
|
|
47
41
|
}
|
|
48
42
|
try {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
await execAsync(newWindowCmd);
|
|
58
|
-
// Build the agent-relay command
|
|
59
|
-
// Unset TMUX to allow Claude to run inside tmux (it refuses to nest by default)
|
|
60
|
-
// Use full path to agent-relay to avoid PATH issues with nvm/shell init
|
|
61
|
-
let agentRelayPath;
|
|
62
|
-
try {
|
|
63
|
-
const { stdout } = await execAsync('which agent-relay');
|
|
64
|
-
agentRelayPath = stdout.trim();
|
|
65
|
-
if (debug)
|
|
66
|
-
console.log(`[spawner:debug] Found agent-relay at: ${agentRelayPath}`);
|
|
43
|
+
// Parse CLI command
|
|
44
|
+
const cliParts = cli.split(' ');
|
|
45
|
+
const command = cliParts[0];
|
|
46
|
+
const args = cliParts.slice(1);
|
|
47
|
+
// Add --dangerously-skip-permissions for Claude agents
|
|
48
|
+
const isClaudeCli = command.startsWith('claude');
|
|
49
|
+
if (isClaudeCli && !args.includes('--dangerously-skip-permissions')) {
|
|
50
|
+
args.push('--dangerously-skip-permissions');
|
|
67
51
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
console.log(`[spawner:debug] Using npx fallback`);
|
|
52
|
+
// Add --dangerously-bypass-approvals-and-sandbox for Codex agents
|
|
53
|
+
const isCodexCli = command.startsWith('codex');
|
|
54
|
+
if (isCodexCli && !args.includes('--dangerously-bypass-approvals-and-sandbox')) {
|
|
55
|
+
args.push('--dangerously-bypass-approvals-and-sandbox');
|
|
73
56
|
}
|
|
74
|
-
// Add --dangerously-skip-permissions for Claude agents to avoid permission dialogs
|
|
75
|
-
// Use -- to separate agent-relay options from the wrapped command
|
|
76
|
-
const isClaudeCli = cli.startsWith('claude');
|
|
77
|
-
const cliWithFlags = isClaudeCli ? `${cli} --dangerously-skip-permissions` : cli;
|
|
78
|
-
const cmd = `unset TMUX && ${agentRelayPath} -n ${name} -- ${cliWithFlags}`;
|
|
79
57
|
if (debug)
|
|
80
|
-
console.log(`[spawner:debug]
|
|
81
|
-
//
|
|
82
|
-
const
|
|
58
|
+
console.log(`[spawner:debug] Spawning ${name} with: ${command} ${args.join(' ')}`);
|
|
59
|
+
// Create PtyWrapper config
|
|
60
|
+
const ptyConfig = {
|
|
61
|
+
name,
|
|
62
|
+
command,
|
|
63
|
+
args,
|
|
64
|
+
socketPath: this.socketPath,
|
|
65
|
+
cwd: this.projectRoot,
|
|
66
|
+
logsDir: this.logsDir,
|
|
67
|
+
onSpawn: async (workerName, workerCli, workerTask) => {
|
|
68
|
+
// Handle nested spawn requests
|
|
69
|
+
if (debug)
|
|
70
|
+
console.log(`[spawner:debug] Nested spawn: ${workerName}`);
|
|
71
|
+
await this.spawn({
|
|
72
|
+
name: workerName,
|
|
73
|
+
cli: workerCli,
|
|
74
|
+
task: workerTask,
|
|
75
|
+
requestedBy: name,
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
onRelease: async (workerName) => {
|
|
79
|
+
// Handle release requests from workers
|
|
80
|
+
if (debug)
|
|
81
|
+
console.log(`[spawner:debug] Release request: ${workerName}`);
|
|
82
|
+
await this.release(workerName);
|
|
83
|
+
},
|
|
84
|
+
onExit: (code) => {
|
|
85
|
+
if (debug)
|
|
86
|
+
console.log(`[spawner:debug] Worker ${name} exited with code ${code}`);
|
|
87
|
+
this.activeWorkers.delete(name);
|
|
88
|
+
this.saveWorkersMetadata();
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
// Create and start the pty wrapper
|
|
92
|
+
const pty = new PtyWrapper(ptyConfig);
|
|
93
|
+
await pty.start();
|
|
83
94
|
if (debug)
|
|
84
|
-
console.log(`[spawner:debug]
|
|
85
|
-
|
|
86
|
-
// Wait for the agent to register with the daemon before injecting tasks
|
|
95
|
+
console.log(`[spawner:debug] PTY started, pid: ${pty.pid}`);
|
|
96
|
+
// Wait for the agent to register with the daemon
|
|
87
97
|
const registered = await this.waitForAgentRegistration(name, 30_000, 500);
|
|
88
98
|
if (!registered) {
|
|
89
99
|
const error = `Worker ${name} failed to register within 30s`;
|
|
90
100
|
console.error(`[spawner] ${error}`);
|
|
91
|
-
|
|
92
|
-
await execAsync(`tmux kill-window -t ${this.tmuxSession}:${windowName}`).catch(() => { });
|
|
101
|
+
pty.kill();
|
|
93
102
|
return {
|
|
94
103
|
success: false,
|
|
95
104
|
name,
|
|
@@ -98,12 +107,9 @@ export class AgentSpawner {
|
|
|
98
107
|
}
|
|
99
108
|
// Inject the initial task if provided
|
|
100
109
|
if (task && task.trim()) {
|
|
101
|
-
const escapedTask = escapeForTmux(task);
|
|
102
110
|
if (debug)
|
|
103
|
-
console.log(`[spawner:debug] Injecting task: ${
|
|
104
|
-
|
|
105
|
-
await sleep(100);
|
|
106
|
-
await execAsync(`tmux send-keys -t ${this.tmuxSession}:${windowName} Enter`);
|
|
111
|
+
console.log(`[spawner:debug] Injecting task: ${task.substring(0, 50)}...`);
|
|
112
|
+
pty.write(task + '\r');
|
|
107
113
|
}
|
|
108
114
|
// Track the worker
|
|
109
115
|
const workerInfo = {
|
|
@@ -112,14 +118,17 @@ export class AgentSpawner {
|
|
|
112
118
|
task,
|
|
113
119
|
spawnedBy: requestedBy,
|
|
114
120
|
spawnedAt: Date.now(),
|
|
115
|
-
|
|
121
|
+
pid: pty.pid,
|
|
122
|
+
pty,
|
|
123
|
+
logFile: pty.logPath,
|
|
116
124
|
};
|
|
117
125
|
this.activeWorkers.set(name, workerInfo);
|
|
118
|
-
|
|
126
|
+
this.saveWorkersMetadata();
|
|
127
|
+
console.log(`[spawner] Spawned ${name} (${cli}) for ${requestedBy} [pid: ${pty.pid}]`);
|
|
119
128
|
return {
|
|
120
129
|
success: true,
|
|
121
130
|
name,
|
|
122
|
-
|
|
131
|
+
pid: pty.pid,
|
|
123
132
|
};
|
|
124
133
|
}
|
|
125
134
|
catch (err) {
|
|
@@ -143,13 +152,16 @@ export class AgentSpawner {
|
|
|
143
152
|
return false;
|
|
144
153
|
}
|
|
145
154
|
try {
|
|
146
|
-
//
|
|
147
|
-
|
|
148
|
-
// Wait
|
|
155
|
+
// Stop the pty process gracefully
|
|
156
|
+
worker.pty.stop();
|
|
157
|
+
// Wait for graceful shutdown
|
|
149
158
|
await sleep(2000);
|
|
150
|
-
//
|
|
151
|
-
|
|
159
|
+
// Force kill if still running
|
|
160
|
+
if (worker.pty.isRunning) {
|
|
161
|
+
worker.pty.kill();
|
|
162
|
+
}
|
|
152
163
|
this.activeWorkers.delete(name);
|
|
164
|
+
this.saveWorkersMetadata();
|
|
153
165
|
console.log(`[spawner] Released ${name}`);
|
|
154
166
|
return true;
|
|
155
167
|
}
|
|
@@ -157,6 +169,7 @@ export class AgentSpawner {
|
|
|
157
169
|
console.error(`[spawner] Failed to release ${name}:`, err.message);
|
|
158
170
|
// Still remove from tracking
|
|
159
171
|
this.activeWorkers.delete(name);
|
|
172
|
+
this.saveWorkersMetadata();
|
|
160
173
|
return false;
|
|
161
174
|
}
|
|
162
175
|
}
|
|
@@ -170,10 +183,17 @@ export class AgentSpawner {
|
|
|
170
183
|
}
|
|
171
184
|
}
|
|
172
185
|
/**
|
|
173
|
-
* Get all active workers
|
|
186
|
+
* Get all active workers (returns WorkerInfo without pty reference)
|
|
174
187
|
*/
|
|
175
188
|
getActiveWorkers() {
|
|
176
|
-
return Array.from(this.activeWorkers.values())
|
|
189
|
+
return Array.from(this.activeWorkers.values()).map((w) => ({
|
|
190
|
+
name: w.name,
|
|
191
|
+
cli: w.cli,
|
|
192
|
+
task: w.task,
|
|
193
|
+
spawnedBy: w.spawnedBy,
|
|
194
|
+
spawnedAt: w.spawnedAt,
|
|
195
|
+
pid: w.pid,
|
|
196
|
+
}));
|
|
177
197
|
}
|
|
178
198
|
/**
|
|
179
199
|
* Check if a worker exists
|
|
@@ -185,7 +205,35 @@ export class AgentSpawner {
|
|
|
185
205
|
* Get worker info
|
|
186
206
|
*/
|
|
187
207
|
getWorker(name) {
|
|
188
|
-
|
|
208
|
+
const worker = this.activeWorkers.get(name);
|
|
209
|
+
if (!worker)
|
|
210
|
+
return undefined;
|
|
211
|
+
return {
|
|
212
|
+
name: worker.name,
|
|
213
|
+
cli: worker.cli,
|
|
214
|
+
task: worker.task,
|
|
215
|
+
spawnedBy: worker.spawnedBy,
|
|
216
|
+
spawnedAt: worker.spawnedAt,
|
|
217
|
+
pid: worker.pid,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get output logs from a worker
|
|
222
|
+
*/
|
|
223
|
+
getWorkerOutput(name, limit) {
|
|
224
|
+
const worker = this.activeWorkers.get(name);
|
|
225
|
+
if (!worker)
|
|
226
|
+
return null;
|
|
227
|
+
return worker.pty.getOutput(limit);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get raw output from a worker
|
|
231
|
+
*/
|
|
232
|
+
getWorkerRawOutput(name) {
|
|
233
|
+
const worker = this.activeWorkers.get(name);
|
|
234
|
+
if (!worker)
|
|
235
|
+
return null;
|
|
236
|
+
return worker.pty.getRawOutput();
|
|
189
237
|
}
|
|
190
238
|
/**
|
|
191
239
|
* Wait for an agent to appear in the registry (agents.json)
|
|
@@ -219,5 +267,61 @@ export class AgentSpawner {
|
|
|
219
267
|
return false;
|
|
220
268
|
}
|
|
221
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Save workers metadata to disk for CLI access
|
|
272
|
+
*/
|
|
273
|
+
saveWorkersMetadata() {
|
|
274
|
+
try {
|
|
275
|
+
const workers = Array.from(this.activeWorkers.values()).map((w) => ({
|
|
276
|
+
name: w.name,
|
|
277
|
+
cli: w.cli,
|
|
278
|
+
task: w.task,
|
|
279
|
+
spawnedBy: w.spawnedBy,
|
|
280
|
+
spawnedAt: w.spawnedAt,
|
|
281
|
+
pid: w.pid,
|
|
282
|
+
logFile: w.logFile,
|
|
283
|
+
}));
|
|
284
|
+
fs.writeFileSync(this.workersPath, JSON.stringify({ workers }, null, 2));
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
console.error('[spawner] Failed to save workers metadata:', err.message);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Get path to logs directory
|
|
292
|
+
*/
|
|
293
|
+
getLogsDir() {
|
|
294
|
+
return this.logsDir;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get path to workers metadata file
|
|
298
|
+
*/
|
|
299
|
+
getWorkersPath() {
|
|
300
|
+
return this.workersPath;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Read workers metadata from disk (for CLI use)
|
|
305
|
+
*/
|
|
306
|
+
export function readWorkersMetadata(projectRoot) {
|
|
307
|
+
const paths = getProjectPaths(projectRoot);
|
|
308
|
+
const workersPath = path.join(paths.teamDir, 'workers.json');
|
|
309
|
+
if (!fs.existsSync(workersPath)) {
|
|
310
|
+
return [];
|
|
311
|
+
}
|
|
312
|
+
try {
|
|
313
|
+
const raw = JSON.parse(fs.readFileSync(workersPath, 'utf-8'));
|
|
314
|
+
return Array.isArray(raw?.workers) ? raw.workers : [];
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
return [];
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get the worker logs directory path
|
|
322
|
+
*/
|
|
323
|
+
export function getWorkerLogsDir(projectRoot) {
|
|
324
|
+
const paths = getProjectPaths(projectRoot);
|
|
325
|
+
return path.join(paths.teamDir, 'worker-logs');
|
|
222
326
|
}
|
|
223
327
|
//# sourceMappingURL=spawner.js.map
|