@agent-relay/sdk 2.3.13 → 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/README.md +68 -838
- package/bin/agent-relay-broker +0 -0
- package/dist/__tests__/contract-fixtures.test.d.ts +2 -0
- package/dist/__tests__/contract-fixtures.test.d.ts.map +1 -0
- package/dist/__tests__/contract-fixtures.test.js +85 -0
- package/dist/__tests__/contract-fixtures.test.js.map +1 -0
- package/dist/__tests__/facade.test.d.ts +2 -0
- package/dist/__tests__/facade.test.d.ts.map +1 -0
- package/dist/__tests__/facade.test.js +257 -0
- package/dist/__tests__/facade.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +2 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +164 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/pty.test.d.ts +2 -0
- package/dist/__tests__/pty.test.d.ts.map +1 -0
- package/dist/__tests__/pty.test.js +20 -0
- package/dist/__tests__/pty.test.js.map +1 -0
- package/dist/__tests__/quickstart.test.d.ts +2 -0
- package/dist/__tests__/quickstart.test.d.ts.map +1 -0
- package/dist/__tests__/quickstart.test.js +176 -0
- package/dist/__tests__/quickstart.test.js.map +1 -0
- package/dist/__tests__/spawn-from-env.test.d.ts +2 -0
- package/dist/__tests__/spawn-from-env.test.d.ts.map +1 -0
- package/dist/__tests__/spawn-from-env.test.js +206 -0
- package/dist/__tests__/spawn-from-env.test.js.map +1 -0
- package/dist/__tests__/unit.test.d.ts +2 -0
- package/dist/__tests__/unit.test.d.ts.map +1 -0
- package/dist/__tests__/unit.test.js +311 -0
- package/dist/__tests__/unit.test.js.map +1 -0
- package/dist/browser.d.ts +16 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +19 -0
- package/dist/browser.js.map +1 -0
- package/dist/client.d.ts +138 -526
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +407 -1509
- package/dist/client.js.map +1 -1
- package/dist/consensus-helpers.d.ts +103 -0
- package/dist/consensus-helpers.d.ts.map +1 -0
- package/dist/consensus-helpers.js +147 -0
- package/dist/consensus-helpers.js.map +1 -0
- package/dist/consensus.d.ts +72 -0
- package/dist/consensus.d.ts.map +1 -0
- package/dist/consensus.js +378 -0
- package/dist/consensus.js.map +1 -0
- package/dist/examples/demo.d.ts +2 -0
- package/dist/examples/demo.d.ts.map +1 -0
- package/dist/examples/demo.js +63 -0
- package/dist/examples/demo.js.map +1 -0
- package/dist/examples/example.d.ts +2 -0
- package/dist/examples/example.d.ts.map +1 -0
- package/dist/examples/example.js +80 -0
- package/dist/examples/example.js.map +1 -0
- package/dist/examples/quickstart.d.ts +2 -0
- package/dist/examples/quickstart.d.ts.map +1 -0
- package/dist/examples/quickstart.js +56 -0
- package/dist/examples/quickstart.js.map +1 -0
- package/dist/examples/ralph-loop.d.ts +2 -0
- package/dist/examples/ralph-loop.d.ts.map +1 -0
- package/dist/examples/ralph-loop.js +281 -0
- package/dist/examples/ralph-loop.js.map +1 -0
- package/dist/examples/workflow-superiority.d.ts +32 -0
- package/dist/examples/workflow-superiority.d.ts.map +1 -0
- package/dist/examples/workflow-superiority.js +1421 -0
- package/dist/examples/workflow-superiority.js.map +1 -0
- package/dist/index.d.ts +13 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -26
- package/dist/index.js.map +1 -1
- package/dist/logs.d.ts +70 -25
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +238 -42
- package/dist/logs.js.map +1 -1
- package/dist/models.d.ts +9 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +17 -0
- package/dist/models.js.map +1 -0
- package/dist/protocol.d.ts +366 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +2 -0
- package/dist/protocol.js.map +1 -0
- package/dist/pty.d.ts +8 -0
- package/dist/pty.d.ts.map +1 -0
- package/dist/pty.js +26 -0
- package/dist/pty.js.map +1 -0
- package/dist/relay-adapter.d.ts +139 -0
- package/dist/relay-adapter.d.ts.map +1 -0
- package/dist/relay-adapter.js +210 -0
- package/dist/relay-adapter.js.map +1 -0
- package/dist/relay.d.ts +277 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +853 -0
- package/dist/relay.js.map +1 -0
- package/dist/shadow.d.ts +101 -0
- package/dist/shadow.d.ts.map +1 -0
- package/dist/shadow.js +174 -0
- package/dist/shadow.js.map +1 -0
- package/dist/spawn-from-env.d.ts +77 -0
- package/dist/spawn-from-env.d.ts.map +1 -0
- package/dist/spawn-from-env.js +172 -0
- package/dist/spawn-from-env.js.map +1 -0
- package/dist/workflows/barrier.d.ts +72 -0
- package/dist/workflows/barrier.d.ts.map +1 -0
- package/dist/workflows/barrier.js +162 -0
- package/dist/workflows/barrier.js.map +1 -0
- package/dist/workflows/builder.d.ts +114 -0
- package/dist/workflows/builder.d.ts.map +1 -0
- package/dist/workflows/builder.js +201 -0
- package/dist/workflows/builder.js.map +1 -0
- package/dist/workflows/cli.d.ts +11 -0
- package/dist/workflows/cli.d.ts.map +1 -0
- package/dist/workflows/cli.js +144 -0
- package/dist/workflows/cli.js.map +1 -0
- package/dist/workflows/coordinator.d.ts +73 -0
- package/dist/workflows/coordinator.d.ts.map +1 -0
- package/dist/workflows/coordinator.js +647 -0
- package/dist/workflows/coordinator.js.map +1 -0
- package/dist/workflows/custom-steps.d.ts +73 -0
- package/dist/workflows/custom-steps.d.ts.map +1 -0
- package/dist/workflows/custom-steps.js +321 -0
- package/dist/workflows/custom-steps.js.map +1 -0
- package/dist/workflows/dry-run-format.d.ts +6 -0
- package/dist/workflows/dry-run-format.d.ts.map +1 -0
- package/dist/workflows/dry-run-format.js +68 -0
- package/dist/workflows/dry-run-format.js.map +1 -0
- package/dist/workflows/file-db.d.ts +33 -0
- package/dist/workflows/file-db.d.ts.map +1 -0
- package/dist/workflows/file-db.js +108 -0
- package/dist/workflows/file-db.js.map +1 -0
- package/dist/workflows/index.d.ts +15 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +15 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/memory-db.d.ts +17 -0
- package/dist/workflows/memory-db.d.ts.map +1 -0
- package/dist/workflows/memory-db.js +33 -0
- package/dist/workflows/memory-db.js.map +1 -0
- package/dist/workflows/run.d.ts +38 -0
- package/dist/workflows/run.d.ts.map +1 -0
- package/dist/workflows/run.js +25 -0
- package/dist/workflows/run.js.map +1 -0
- package/dist/workflows/runner.d.ts +320 -0
- package/dist/workflows/runner.d.ts.map +1 -0
- package/dist/workflows/runner.js +2821 -0
- package/dist/workflows/runner.js.map +1 -0
- package/dist/workflows/state.d.ts +77 -0
- package/dist/workflows/state.d.ts.map +1 -0
- package/dist/workflows/state.js +140 -0
- package/dist/workflows/state.js.map +1 -0
- package/dist/workflows/templates.d.ts +47 -0
- package/dist/workflows/templates.d.ts.map +1 -0
- package/dist/workflows/templates.js +405 -0
- package/dist/workflows/templates.js.map +1 -0
- package/dist/workflows/trajectory.d.ts +87 -0
- package/dist/workflows/trajectory.d.ts.map +1 -0
- package/dist/workflows/trajectory.js +441 -0
- package/dist/workflows/trajectory.js.map +1 -0
- package/dist/workflows/types.d.ts +306 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +23 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/validator.d.ts +11 -0
- package/dist/workflows/validator.d.ts.map +1 -0
- package/dist/workflows/validator.js +128 -0
- package/dist/workflows/validator.js.map +1 -0
- package/package.json +59 -53
- package/dist/discovery.d.ts +0 -10
- package/dist/discovery.d.ts.map +0 -1
- package/dist/discovery.js +0 -22
- package/dist/discovery.js.map +0 -1
- package/dist/errors.d.ts +0 -9
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -9
- package/dist/errors.js.map +0 -1
- package/dist/protocol/index.d.ts +0 -8
- package/dist/protocol/index.d.ts.map +0 -1
- package/dist/protocol/index.js +0 -8
- package/dist/protocol/index.js.map +0 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RelayAdapter — high-level interface over the broker SDK.
|
|
3
|
+
*
|
|
4
|
+
* Wraps AgentRelayClient with auto-start, safe result patterns,
|
|
5
|
+
* and convenience methods. Usable by any integration: dashboard,
|
|
6
|
+
* MCP, ACP bridge, CLI, or custom tooling.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* import { RelayAdapter } from '@agent-relay/sdk';
|
|
10
|
+
*
|
|
11
|
+
* const relay = new RelayAdapter({ cwd: projectRoot });
|
|
12
|
+
* await relay.start();
|
|
13
|
+
*
|
|
14
|
+
* await relay.spawn({ name: 'Worker1', cli: 'claude', task: 'Build auth' });
|
|
15
|
+
* const agents = await relay.listAgents();
|
|
16
|
+
* await relay.sendMessage({ to: 'Worker1', text: 'status?' });
|
|
17
|
+
* await relay.release('Worker1');
|
|
18
|
+
*
|
|
19
|
+
* await relay.shutdown();
|
|
20
|
+
*/
|
|
21
|
+
import { AgentRelayClient, } from './client.js';
|
|
22
|
+
const WORKFLOW_BOOTSTRAP_TASK = 'You are connected to Agent Relay. Do not reply to this message and wait for relay messages and respond using Relaycast MCP tools.';
|
|
23
|
+
const WORKFLOW_CONVENTIONS = [
|
|
24
|
+
'Messaging requirements:',
|
|
25
|
+
'- When you receive `Relay message from <sender> ...`, reply using `relay_send(to: "<sender>", message: "...")`.',
|
|
26
|
+
'- Send `ACK: ...` when you receive a task.',
|
|
27
|
+
'- Send `DONE: ...` when the task is complete.',
|
|
28
|
+
'- Do not reply only in terminal text; send the response via relay_send.',
|
|
29
|
+
'- Use relay_inbox() and relay_who() when context is missing.',
|
|
30
|
+
].join('\n');
|
|
31
|
+
function hasWorkflowConventions(task) {
|
|
32
|
+
const lower = task.toLowerCase();
|
|
33
|
+
return lower.includes('relay_send(') || (lower.includes('ack:') && lower.includes('done:'));
|
|
34
|
+
}
|
|
35
|
+
function buildSpawnTask(task, includeWorkflowConventions) {
|
|
36
|
+
const normalized = typeof task === 'string' ? task.trim() : '';
|
|
37
|
+
if (!includeWorkflowConventions) {
|
|
38
|
+
return normalized.length > 0 ? normalized : undefined;
|
|
39
|
+
}
|
|
40
|
+
if (normalized.length === 0) {
|
|
41
|
+
return `${WORKFLOW_BOOTSTRAP_TASK}\n\n${WORKFLOW_CONVENTIONS}`;
|
|
42
|
+
}
|
|
43
|
+
if (hasWorkflowConventions(normalized)) {
|
|
44
|
+
return normalized;
|
|
45
|
+
}
|
|
46
|
+
return `${normalized}\n\n${WORKFLOW_CONVENTIONS}`;
|
|
47
|
+
}
|
|
48
|
+
// ── Adapter ─────────────────────────────────────────────────────────
|
|
49
|
+
export class RelayAdapter {
|
|
50
|
+
client;
|
|
51
|
+
started = false;
|
|
52
|
+
constructor(opts) {
|
|
53
|
+
const clientOpts = {
|
|
54
|
+
binaryPath: opts.binaryPath,
|
|
55
|
+
channels: opts.channels ?? ['general'],
|
|
56
|
+
cwd: opts.cwd,
|
|
57
|
+
env: opts.env,
|
|
58
|
+
clientName: opts.clientName ?? 'relay-adapter',
|
|
59
|
+
};
|
|
60
|
+
this.client = new AgentRelayClient(clientOpts);
|
|
61
|
+
}
|
|
62
|
+
// ── Lifecycle ───────────────────────────────────────────────────
|
|
63
|
+
/** Start the broker process. Idempotent. */
|
|
64
|
+
async start() {
|
|
65
|
+
if (this.started)
|
|
66
|
+
return;
|
|
67
|
+
await this.client.start();
|
|
68
|
+
this.started = true;
|
|
69
|
+
}
|
|
70
|
+
/** Shut down the broker and all spawned agents. */
|
|
71
|
+
async shutdown() {
|
|
72
|
+
await this.client.shutdown();
|
|
73
|
+
this.started = false;
|
|
74
|
+
}
|
|
75
|
+
// ── Spawn / Release ─────────────────────────────────────────────
|
|
76
|
+
/** Spawn an agent via the broker's PTY runtime. */
|
|
77
|
+
async spawn(req) {
|
|
78
|
+
await this.start();
|
|
79
|
+
try {
|
|
80
|
+
const input = {
|
|
81
|
+
name: req.name,
|
|
82
|
+
cli: req.cli,
|
|
83
|
+
task: buildSpawnTask(req.task, req.includeWorkflowConventions),
|
|
84
|
+
channels: ['general'],
|
|
85
|
+
model: req.model,
|
|
86
|
+
cwd: req.cwd,
|
|
87
|
+
team: req.team,
|
|
88
|
+
shadowOf: req.shadowOf,
|
|
89
|
+
shadowMode: req.shadowMode,
|
|
90
|
+
};
|
|
91
|
+
const result = await this.client.spawnPty(input);
|
|
92
|
+
// Try to get PID from agent list
|
|
93
|
+
let pid;
|
|
94
|
+
try {
|
|
95
|
+
const agents = await this.client.listAgents();
|
|
96
|
+
pid = agents.find((a) => a.name === req.name)?.pid;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Non-fatal — PID is informational
|
|
100
|
+
}
|
|
101
|
+
return { success: true, name: result.name, pid };
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
return { success: false, name: req.name, error: err?.message ?? String(err) };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** Release (stop) a spawned agent. */
|
|
108
|
+
async release(name, reason) {
|
|
109
|
+
await this.start();
|
|
110
|
+
try {
|
|
111
|
+
await this.client.release(name, reason);
|
|
112
|
+
return { success: true, name };
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
return { success: false, name, error: err?.message ?? String(err) };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// ── Query ───────────────────────────────────────────────────────
|
|
119
|
+
/** List all agents managed by this broker instance. */
|
|
120
|
+
async listAgents() {
|
|
121
|
+
await this.start();
|
|
122
|
+
const agents = await this.client.listAgents();
|
|
123
|
+
return agents.map((a) => ({
|
|
124
|
+
name: a.name,
|
|
125
|
+
cli: undefined, // Rust binary doesn't track CLI in list_agents response
|
|
126
|
+
pid: a.pid,
|
|
127
|
+
channels: a.channels,
|
|
128
|
+
parent: a.parent,
|
|
129
|
+
runtime: a.runtime,
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
/** Check if a specific agent is spawned. */
|
|
133
|
+
async hasAgent(name) {
|
|
134
|
+
const agents = await this.listAgents();
|
|
135
|
+
return agents.some((a) => a.name === name);
|
|
136
|
+
}
|
|
137
|
+
/** Get broker status (agent count, pending deliveries). */
|
|
138
|
+
async getStatus() {
|
|
139
|
+
await this.start();
|
|
140
|
+
return this.client.getStatus();
|
|
141
|
+
}
|
|
142
|
+
// ── Messaging ───────────────────────────────────────────────────
|
|
143
|
+
/** Send a message to an agent or channel. */
|
|
144
|
+
async sendMessage(input) {
|
|
145
|
+
await this.start();
|
|
146
|
+
return this.client.sendMessage(input);
|
|
147
|
+
}
|
|
148
|
+
// ── PTY Input ───────────────────────────────────────────────────
|
|
149
|
+
/**
|
|
150
|
+
* Send raw input to an agent's PTY stdin.
|
|
151
|
+
* Useful for interrupts (ESC sequences), confirmations, etc.
|
|
152
|
+
*/
|
|
153
|
+
async sendInput(name, data) {
|
|
154
|
+
await this.start();
|
|
155
|
+
await this.client.sendInput(name, data);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Send an interrupt (ESC ESC) to an agent.
|
|
159
|
+
* Convenience wrapper around sendInput.
|
|
160
|
+
*/
|
|
161
|
+
async interruptAgent(name) {
|
|
162
|
+
try {
|
|
163
|
+
await this.sendInput(name, '\x1b\x1b');
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// ── Model ───────────────────────────────────────────────────────
|
|
171
|
+
/** Switch an agent's model at runtime. */
|
|
172
|
+
async setModel(name, model, opts) {
|
|
173
|
+
await this.start();
|
|
174
|
+
return this.client.setModel(name, model, opts);
|
|
175
|
+
}
|
|
176
|
+
// ── Metrics ─────────────────────────────────────────────────────
|
|
177
|
+
/** Get resource metrics for agents (memory, uptime) and broker stats. */
|
|
178
|
+
async getMetrics(agent) {
|
|
179
|
+
await this.start();
|
|
180
|
+
return this.client.getMetrics(agent);
|
|
181
|
+
}
|
|
182
|
+
/** Get crash insights: recent crashes, patterns, and health score. */
|
|
183
|
+
async getCrashInsights() {
|
|
184
|
+
await this.start();
|
|
185
|
+
return this.client.getCrashInsights();
|
|
186
|
+
}
|
|
187
|
+
// ── Events ──────────────────────────────────────────────────────
|
|
188
|
+
/**
|
|
189
|
+
* Subscribe to broker events (agent_spawned, agent_released,
|
|
190
|
+
* relay_inbound, worker_stream, etc.).
|
|
191
|
+
*
|
|
192
|
+
* Returns an unsubscribe function.
|
|
193
|
+
*/
|
|
194
|
+
onEvent(listener) {
|
|
195
|
+
return this.client.onEvent(listener);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Subscribe to broker stderr output (debug logs from the Rust binary).
|
|
199
|
+
* Returns an unsubscribe function.
|
|
200
|
+
*/
|
|
201
|
+
onStderr(listener) {
|
|
202
|
+
return this.client.onBrokerStderr(listener);
|
|
203
|
+
}
|
|
204
|
+
// ── Underlying client (escape hatch) ────────────────────────────
|
|
205
|
+
/** Access the underlying AgentRelayClient for advanced operations. */
|
|
206
|
+
get raw() {
|
|
207
|
+
return this.client;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=relay-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-adapter.js","sourceRoot":"","sources":["../src/relay-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/relay.d.ts
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level facade for the Agent Relay SDK.
|
|
3
|
+
*
|
|
4
|
+
* Provides a clean, property-based API on top of the lower-level
|
|
5
|
+
* {@link AgentRelayClient} protocol client.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { AgentRelay } from "@agent-relay/sdk";
|
|
10
|
+
*
|
|
11
|
+
* const relay = new AgentRelay();
|
|
12
|
+
*
|
|
13
|
+
* relay.onMessageReceived = (message) => console.log(message);
|
|
14
|
+
* relay.onAgentSpawned = (agent) => console.log("spawned", agent.name);
|
|
15
|
+
*
|
|
16
|
+
* const codex = await relay.codex.spawn();
|
|
17
|
+
* const human = relay.human({ name: "System" });
|
|
18
|
+
* await human.sendMessage({ to: codex.name, text: "Hello!" });
|
|
19
|
+
*
|
|
20
|
+
* const agents = await relay.listAgents();
|
|
21
|
+
* for (const a of agents) await a.release();
|
|
22
|
+
* await relay.shutdown();
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import { type SendMessageInput, type SpawnPtyInput } from './client.js';
|
|
26
|
+
import type { AgentRuntime, BrokerEvent, BrokerStatus, RestartPolicy } from './protocol.js';
|
|
27
|
+
import { type FollowLogsOptions, type LogFollowHandle, type LogsResult } from './logs.js';
|
|
28
|
+
export interface Message {
|
|
29
|
+
eventId: string;
|
|
30
|
+
from: string;
|
|
31
|
+
to: string;
|
|
32
|
+
text: string;
|
|
33
|
+
threadId?: string;
|
|
34
|
+
data?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
export type AgentStatus = 'spawning' | 'ready' | 'idle' | 'exited';
|
|
37
|
+
export type DeliveryWaitStatus = 'ack' | 'failed' | 'timeout';
|
|
38
|
+
export type DeliveryStateStatus = 'queued' | 'injected' | 'active' | 'verified' | 'failed';
|
|
39
|
+
export interface DeliveryWaitResult {
|
|
40
|
+
eventId: string;
|
|
41
|
+
status: DeliveryWaitStatus;
|
|
42
|
+
targets: string[];
|
|
43
|
+
}
|
|
44
|
+
export interface DeliveryState {
|
|
45
|
+
eventId: string;
|
|
46
|
+
to: string;
|
|
47
|
+
status: DeliveryStateStatus;
|
|
48
|
+
updatedAt: number;
|
|
49
|
+
}
|
|
50
|
+
export interface SpawnOptions {
|
|
51
|
+
args?: string[];
|
|
52
|
+
channels?: string[];
|
|
53
|
+
model?: string;
|
|
54
|
+
cwd?: string;
|
|
55
|
+
team?: string;
|
|
56
|
+
shadowOf?: string;
|
|
57
|
+
shadowMode?: string;
|
|
58
|
+
idleThresholdSecs?: number;
|
|
59
|
+
restartPolicy?: RestartPolicy;
|
|
60
|
+
}
|
|
61
|
+
export interface SpawnAndWaitOptions extends SpawnOptions {
|
|
62
|
+
timeoutMs?: number;
|
|
63
|
+
waitForMessage?: boolean;
|
|
64
|
+
}
|
|
65
|
+
type AgentOutputPayload = {
|
|
66
|
+
stream: string;
|
|
67
|
+
chunk: string;
|
|
68
|
+
};
|
|
69
|
+
type AgentOutputCallback = ((chunk: string) => void) | ((data: AgentOutputPayload) => void);
|
|
70
|
+
export interface Agent {
|
|
71
|
+
readonly name: string;
|
|
72
|
+
readonly runtime: AgentRuntime;
|
|
73
|
+
readonly channels: string[];
|
|
74
|
+
/** Current lifecycle status of the agent. */
|
|
75
|
+
readonly status: AgentStatus;
|
|
76
|
+
/** Set when the agent exits. Available after `onAgentExited` fires. */
|
|
77
|
+
exitCode?: number;
|
|
78
|
+
/** Set when the agent exits via signal. Available after `onAgentExited` fires. */
|
|
79
|
+
exitSignal?: string;
|
|
80
|
+
/** Set when the agent requests exit via /exit. Available after `onAgentExitRequested` fires. */
|
|
81
|
+
exitReason?: string;
|
|
82
|
+
release(reason?: string): Promise<void>;
|
|
83
|
+
waitForReady(timeoutMs?: number): Promise<void>;
|
|
84
|
+
/** Wait for the agent process to exit on its own.
|
|
85
|
+
* @param timeoutMs — optional timeout in ms. Resolves with `"timeout"` if exceeded,
|
|
86
|
+
* `"exited"` if the agent exited naturally, or `"released"` if released externally. */
|
|
87
|
+
waitForExit(timeoutMs?: number): Promise<'exited' | 'timeout' | 'released'>;
|
|
88
|
+
/** Wait for the agent to go idle (no PTY output for the configured threshold).
|
|
89
|
+
* @param timeoutMs — optional timeout in ms. Resolves with `"idle"` when first idle event fires,
|
|
90
|
+
* `"timeout"` if timeoutMs elapses first, or `"exited"` if the agent exits. */
|
|
91
|
+
waitForIdle(timeoutMs?: number): Promise<'idle' | 'timeout' | 'exited'>;
|
|
92
|
+
sendMessage(input: {
|
|
93
|
+
to: string;
|
|
94
|
+
text: string;
|
|
95
|
+
threadId?: string;
|
|
96
|
+
priority?: number;
|
|
97
|
+
data?: Record<string, unknown>;
|
|
98
|
+
}): Promise<Message>;
|
|
99
|
+
/** Register a callback for PTY output from this agent. Returns an unsubscribe function. */
|
|
100
|
+
onOutput(callback: AgentOutputCallback): () => void;
|
|
101
|
+
}
|
|
102
|
+
export interface HumanHandle {
|
|
103
|
+
readonly name: string;
|
|
104
|
+
sendMessage(input: {
|
|
105
|
+
to: string;
|
|
106
|
+
text: string;
|
|
107
|
+
threadId?: string;
|
|
108
|
+
priority?: number;
|
|
109
|
+
data?: Record<string, unknown>;
|
|
110
|
+
}): Promise<Message>;
|
|
111
|
+
}
|
|
112
|
+
export interface AgentSpawner {
|
|
113
|
+
spawn(options?: {
|
|
114
|
+
name?: string;
|
|
115
|
+
args?: string[];
|
|
116
|
+
channels?: string[];
|
|
117
|
+
task?: string;
|
|
118
|
+
model?: string;
|
|
119
|
+
cwd?: string;
|
|
120
|
+
}): Promise<Agent>;
|
|
121
|
+
}
|
|
122
|
+
export type EventHook<T> = ((value: T) => void) | null;
|
|
123
|
+
export interface AgentRelayOptions {
|
|
124
|
+
binaryPath?: string;
|
|
125
|
+
binaryArgs?: string[];
|
|
126
|
+
brokerName?: string;
|
|
127
|
+
channels?: string[];
|
|
128
|
+
cwd?: string;
|
|
129
|
+
env?: NodeJS.ProcessEnv;
|
|
130
|
+
requestTimeoutMs?: number;
|
|
131
|
+
shutdownTimeoutMs?: number;
|
|
132
|
+
}
|
|
133
|
+
export declare class AgentRelay {
|
|
134
|
+
onMessageReceived: EventHook<Message>;
|
|
135
|
+
onMessageSent: EventHook<Message>;
|
|
136
|
+
onAgentSpawned: EventHook<Agent>;
|
|
137
|
+
onAgentReleased: EventHook<Agent>;
|
|
138
|
+
onAgentExited: EventHook<Agent>;
|
|
139
|
+
onAgentReady: EventHook<Agent>;
|
|
140
|
+
onWorkerOutput: EventHook<{
|
|
141
|
+
name: string;
|
|
142
|
+
stream: string;
|
|
143
|
+
chunk: string;
|
|
144
|
+
}>;
|
|
145
|
+
onDeliveryUpdate: EventHook<BrokerEvent>;
|
|
146
|
+
onAgentExitRequested: EventHook<{
|
|
147
|
+
name: string;
|
|
148
|
+
reason: string;
|
|
149
|
+
}>;
|
|
150
|
+
onAgentIdle: EventHook<{
|
|
151
|
+
name: string;
|
|
152
|
+
idleSecs: number;
|
|
153
|
+
}>;
|
|
154
|
+
readonly codex: AgentSpawner;
|
|
155
|
+
readonly claude: AgentSpawner;
|
|
156
|
+
readonly gemini: AgentSpawner;
|
|
157
|
+
private readonly clientOptions;
|
|
158
|
+
private readonly defaultChannels;
|
|
159
|
+
private client?;
|
|
160
|
+
private startPromise?;
|
|
161
|
+
private unsubEvent?;
|
|
162
|
+
private readonly knownAgents;
|
|
163
|
+
private readonly readyAgents;
|
|
164
|
+
private readonly messageReadyAgents;
|
|
165
|
+
private readonly exitedAgents;
|
|
166
|
+
private readonly idleAgents;
|
|
167
|
+
private readonly deliveryStates;
|
|
168
|
+
private readonly outputListeners;
|
|
169
|
+
private readonly exitResolvers;
|
|
170
|
+
private exitResolverSeq;
|
|
171
|
+
private readonly idleResolvers;
|
|
172
|
+
private idleResolverSeq;
|
|
173
|
+
constructor(options?: AgentRelayOptions);
|
|
174
|
+
/**
|
|
175
|
+
* Subscribe to broker stderr output. Listener is wired immediately if the
|
|
176
|
+
* client is already started, otherwise it is attached when the client starts.
|
|
177
|
+
* Returns an unsubscribe function.
|
|
178
|
+
*/
|
|
179
|
+
onBrokerStderr(listener: (line: string) => void): () => void;
|
|
180
|
+
spawnPty(input: SpawnPtyInput): Promise<Agent>;
|
|
181
|
+
spawn(name: string, cli: string, task?: string, options?: SpawnOptions): Promise<Agent>;
|
|
182
|
+
spawnAndWait(name: string, cli: string, task: string, options?: SpawnAndWaitOptions): Promise<Agent>;
|
|
183
|
+
human(opts: {
|
|
184
|
+
name: string;
|
|
185
|
+
}): HumanHandle;
|
|
186
|
+
system(): HumanHandle;
|
|
187
|
+
/**
|
|
188
|
+
* Broadcast a message to all connected agents.
|
|
189
|
+
* @param text — the message body
|
|
190
|
+
* @param options — optional sender name (defaults to "human:orchestrator")
|
|
191
|
+
*/
|
|
192
|
+
broadcast(text: string, options?: {
|
|
193
|
+
from?: string;
|
|
194
|
+
}): Promise<Message>;
|
|
195
|
+
sendAndWaitForDelivery(input: SendMessageInput, timeoutMs?: number): Promise<DeliveryWaitResult>;
|
|
196
|
+
listAgents(): Promise<Agent[]>;
|
|
197
|
+
/** Pre-register a batch of agents with Relaycast before steps execute. */
|
|
198
|
+
preflightAgents(agents: Array<{
|
|
199
|
+
name: string;
|
|
200
|
+
cli: string;
|
|
201
|
+
}>): Promise<void>;
|
|
202
|
+
/** List agents with PIDs from the broker (for worker registration). */
|
|
203
|
+
listAgentsRaw(): Promise<Array<{
|
|
204
|
+
name: string;
|
|
205
|
+
pid?: number;
|
|
206
|
+
}>>;
|
|
207
|
+
getStatus(): Promise<BrokerStatus>;
|
|
208
|
+
getDeliveryState(eventId: string): DeliveryState | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* Read the last N lines of an agent's log file.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* const logs = await relay.getLogs("Worker1", { lines: 100 });
|
|
215
|
+
* if (logs.found) console.log(logs.content);
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
getLogs(agentName: string, options?: {
|
|
219
|
+
lines?: number;
|
|
220
|
+
}): Promise<LogsResult>;
|
|
221
|
+
/** List all agents that have log files. */
|
|
222
|
+
listLoggedAgents(): Promise<string[]>;
|
|
223
|
+
/**
|
|
224
|
+
* Follow an agent's local log file with history bootstrap + incremental updates.
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```ts
|
|
228
|
+
* const handle = relay.followLogs("Worker1", {
|
|
229
|
+
* historyLines: 100,
|
|
230
|
+
* onEvent(event) {
|
|
231
|
+
* if (event.type === "log") console.log(event.content);
|
|
232
|
+
* },
|
|
233
|
+
* });
|
|
234
|
+
*
|
|
235
|
+
* // Later:
|
|
236
|
+
* handle.unsubscribe();
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
followLogs(agentName: string, options: Omit<FollowLogsOptions, 'logsDir'>): LogFollowHandle;
|
|
240
|
+
/**
|
|
241
|
+
* Wait for any one of the given agents to exit. Returns the first agent
|
|
242
|
+
* that exits along with its exit reason.
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* ```ts
|
|
246
|
+
* const { agent, result } = await AgentRelay.waitForAny([worker1, worker2], 60_000);
|
|
247
|
+
* console.log(`${agent.name} finished: ${result}`);
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
static waitForAny(agents: Agent[], timeoutMs?: number): Promise<{
|
|
251
|
+
agent: Agent;
|
|
252
|
+
result: 'exited' | 'timeout' | 'released';
|
|
253
|
+
}>;
|
|
254
|
+
/**
|
|
255
|
+
* Resolves when the agent process has started and connected to the broker.
|
|
256
|
+
* The agent's CLI may not yet be ready to receive messages.
|
|
257
|
+
* Use `waitForAgentMessage()` for full readiness.
|
|
258
|
+
*/
|
|
259
|
+
waitForAgentReady(name: string, timeoutMs?: number): Promise<Agent>;
|
|
260
|
+
waitForAgentMessage(name: string, timeoutMs?: number): Promise<Agent>;
|
|
261
|
+
shutdown(): Promise<void>;
|
|
262
|
+
private ensureAgentHandle;
|
|
263
|
+
private updateDeliveryState;
|
|
264
|
+
private resolveEventTimestamp;
|
|
265
|
+
/** Resolve a target to a channel name. If `to` is `#channel`, use that
|
|
266
|
+
* channel. If it's a known agent name, use the agent's first channel.
|
|
267
|
+
* Otherwise fall back to the relay's default channel. */
|
|
268
|
+
private resolveChannel;
|
|
269
|
+
private inferOutputMode;
|
|
270
|
+
private dispatchOutput;
|
|
271
|
+
private ensureStarted;
|
|
272
|
+
private wireEvents;
|
|
273
|
+
private makeAgent;
|
|
274
|
+
private createSpawner;
|
|
275
|
+
}
|
|
276
|
+
export {};
|
|
277
|
+
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
|