agent-relay 2.2.24 → 2.3.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.
Files changed (116) hide show
  1. package/package.json +64 -21
  2. package/packages/acp-bridge/package.json +2 -2
  3. package/packages/api-types/package.json +1 -1
  4. package/packages/benchmark/package.json +5 -5
  5. package/packages/bridge/package.json +7 -7
  6. package/packages/cli-tester/package.json +1 -1
  7. package/packages/config/package.json +2 -2
  8. package/packages/continuity/package.json +2 -2
  9. package/packages/daemon/package.json +12 -12
  10. package/packages/hooks/package.json +4 -4
  11. package/packages/mcp/package.json +5 -5
  12. package/packages/memory/package.json +2 -2
  13. package/packages/policy/package.json +2 -2
  14. package/packages/protocol/package.json +1 -1
  15. package/packages/resiliency/package.json +1 -1
  16. package/packages/sdk/package.json +3 -3
  17. package/packages/sdk-ts/README.md +65 -0
  18. package/packages/sdk-ts/dist/__tests__/integration.test.d.ts +2 -0
  19. package/packages/sdk-ts/dist/__tests__/integration.test.d.ts.map +1 -0
  20. package/packages/sdk-ts/dist/__tests__/integration.test.js +139 -0
  21. package/packages/sdk-ts/dist/__tests__/integration.test.js.map +1 -0
  22. package/packages/sdk-ts/dist/__tests__/quickstart.test.d.ts +2 -0
  23. package/packages/sdk-ts/dist/__tests__/quickstart.test.d.ts.map +1 -0
  24. package/packages/sdk-ts/dist/__tests__/quickstart.test.js +176 -0
  25. package/packages/sdk-ts/dist/__tests__/quickstart.test.js.map +1 -0
  26. package/packages/sdk-ts/dist/browser.d.ts +16 -0
  27. package/packages/sdk-ts/dist/browser.d.ts.map +1 -0
  28. package/packages/sdk-ts/dist/browser.js +19 -0
  29. package/packages/sdk-ts/dist/browser.js.map +1 -0
  30. package/packages/sdk-ts/dist/client.d.ts +91 -0
  31. package/packages/sdk-ts/dist/client.d.ts.map +1 -0
  32. package/packages/sdk-ts/dist/client.js +360 -0
  33. package/packages/sdk-ts/dist/client.js.map +1 -0
  34. package/packages/sdk-ts/dist/consensus-helpers.d.ts +103 -0
  35. package/packages/sdk-ts/dist/consensus-helpers.d.ts.map +1 -0
  36. package/packages/sdk-ts/dist/consensus-helpers.js +147 -0
  37. package/packages/sdk-ts/dist/consensus-helpers.js.map +1 -0
  38. package/packages/sdk-ts/dist/consensus.d.ts +72 -0
  39. package/packages/sdk-ts/dist/consensus.d.ts.map +1 -0
  40. package/packages/sdk-ts/dist/consensus.js +378 -0
  41. package/packages/sdk-ts/dist/consensus.js.map +1 -0
  42. package/packages/sdk-ts/dist/examples/demo.d.ts +2 -0
  43. package/packages/sdk-ts/dist/examples/demo.d.ts.map +1 -0
  44. package/packages/sdk-ts/dist/examples/demo.js +63 -0
  45. package/packages/sdk-ts/dist/examples/demo.js.map +1 -0
  46. package/packages/sdk-ts/dist/examples/example.d.ts +2 -0
  47. package/packages/sdk-ts/dist/examples/example.d.ts.map +1 -0
  48. package/packages/sdk-ts/dist/examples/example.js +80 -0
  49. package/packages/sdk-ts/dist/examples/example.js.map +1 -0
  50. package/packages/sdk-ts/dist/examples/quickstart.d.ts +2 -0
  51. package/packages/sdk-ts/dist/examples/quickstart.d.ts.map +1 -0
  52. package/packages/sdk-ts/dist/examples/quickstart.js +56 -0
  53. package/packages/sdk-ts/dist/examples/quickstart.js.map +1 -0
  54. package/packages/sdk-ts/dist/examples/ralph-loop.d.ts +2 -0
  55. package/packages/sdk-ts/dist/examples/ralph-loop.d.ts.map +1 -0
  56. package/packages/sdk-ts/dist/examples/ralph-loop.js +281 -0
  57. package/packages/sdk-ts/dist/examples/ralph-loop.js.map +1 -0
  58. package/packages/sdk-ts/dist/index.d.ts +9 -0
  59. package/packages/sdk-ts/dist/index.d.ts.map +1 -0
  60. package/packages/sdk-ts/dist/index.js +9 -0
  61. package/packages/sdk-ts/dist/index.js.map +1 -0
  62. package/packages/sdk-ts/dist/logs.d.ts +47 -0
  63. package/packages/sdk-ts/dist/logs.d.ts.map +1 -0
  64. package/packages/sdk-ts/dist/logs.js +137 -0
  65. package/packages/sdk-ts/dist/logs.js.map +1 -0
  66. package/packages/sdk-ts/dist/protocol.d.ts +249 -0
  67. package/packages/sdk-ts/dist/protocol.d.ts.map +1 -0
  68. package/packages/sdk-ts/dist/protocol.js +2 -0
  69. package/packages/sdk-ts/dist/protocol.js.map +1 -0
  70. package/packages/sdk-ts/dist/pty.d.ts +8 -0
  71. package/packages/sdk-ts/dist/pty.d.ts.map +1 -0
  72. package/packages/sdk-ts/dist/pty.js +14 -0
  73. package/packages/sdk-ts/dist/pty.js.map +1 -0
  74. package/packages/sdk-ts/dist/relay.d.ts +118 -0
  75. package/packages/sdk-ts/dist/relay.d.ts.map +1 -0
  76. package/packages/sdk-ts/dist/relay.js +355 -0
  77. package/packages/sdk-ts/dist/relay.js.map +1 -0
  78. package/packages/sdk-ts/dist/relaycast.d.ts +57 -0
  79. package/packages/sdk-ts/dist/relaycast.d.ts.map +1 -0
  80. package/packages/sdk-ts/dist/relaycast.js +110 -0
  81. package/packages/sdk-ts/dist/relaycast.js.map +1 -0
  82. package/packages/sdk-ts/dist/shadow.d.ts +100 -0
  83. package/packages/sdk-ts/dist/shadow.d.ts.map +1 -0
  84. package/packages/sdk-ts/dist/shadow.js +174 -0
  85. package/packages/sdk-ts/dist/shadow.js.map +1 -0
  86. package/packages/sdk-ts/package.json +75 -0
  87. package/packages/sdk-ts/scripts/bundle-agent-relay.mjs +53 -0
  88. package/packages/sdk-ts/src/__tests__/integration.test.ts +170 -0
  89. package/packages/sdk-ts/src/__tests__/quickstart.test.ts +198 -0
  90. package/packages/sdk-ts/src/browser.ts +57 -0
  91. package/packages/sdk-ts/src/client.ts +491 -0
  92. package/packages/sdk-ts/src/consensus-helpers.ts +253 -0
  93. package/packages/sdk-ts/src/consensus.ts +506 -0
  94. package/packages/sdk-ts/src/examples/demo.ts +88 -0
  95. package/packages/sdk-ts/src/examples/example.ts +91 -0
  96. package/packages/sdk-ts/src/examples/quickstart.ts +72 -0
  97. package/packages/sdk-ts/src/examples/ralph-loop.ts +352 -0
  98. package/packages/sdk-ts/src/examples/sample-prd.json +37 -0
  99. package/packages/sdk-ts/src/index.ts +8 -0
  100. package/packages/sdk-ts/src/logs.ts +163 -0
  101. package/packages/sdk-ts/src/protocol.ts +266 -0
  102. package/packages/sdk-ts/src/pty.ts +16 -0
  103. package/packages/sdk-ts/src/relay.ts +454 -0
  104. package/packages/sdk-ts/src/relaycast.ts +143 -0
  105. package/packages/sdk-ts/src/shadow.ts +230 -0
  106. package/packages/sdk-ts/tsconfig.json +16 -0
  107. package/packages/spawner/package.json +1 -1
  108. package/packages/state/package.json +1 -1
  109. package/packages/storage/package.json +2 -2
  110. package/packages/telemetry/package.json +1 -1
  111. package/packages/trajectory/package.json +2 -2
  112. package/packages/user-directory/package.json +2 -2
  113. package/packages/utils/package.json +3 -3
  114. package/packages/wrapper/package.json +6 -6
  115. package/packages/mcp/SPEC.md +0 -1922
  116. package/packages/mcp/STAFFING_PLAN.md +0 -294
@@ -0,0 +1,249 @@
1
+ export declare const PROTOCOL_VERSION: 1;
2
+ export type AgentRuntime = "pty" | "headless_claude";
3
+ export interface AgentSpec {
4
+ name: string;
5
+ runtime: AgentRuntime;
6
+ cli?: string;
7
+ args?: string[];
8
+ channels?: string[];
9
+ }
10
+ export interface RelayDelivery {
11
+ delivery_id: string;
12
+ event_id: string;
13
+ from: string;
14
+ target: string;
15
+ body: string;
16
+ thread_id?: string;
17
+ priority?: number;
18
+ }
19
+ export interface ProtocolEnvelope<TPayload> {
20
+ v: number;
21
+ type: string;
22
+ request_id?: string;
23
+ payload: TPayload;
24
+ }
25
+ export type SdkToBroker = {
26
+ type: "hello";
27
+ payload: {
28
+ client_name: string;
29
+ client_version: string;
30
+ };
31
+ } | {
32
+ type: "spawn_agent";
33
+ payload: {
34
+ agent: AgentSpec;
35
+ };
36
+ } | {
37
+ type: "send_message";
38
+ payload: {
39
+ to: string;
40
+ text: string;
41
+ from?: string;
42
+ thread_id?: string;
43
+ priority?: number;
44
+ };
45
+ } | {
46
+ type: "release_agent";
47
+ payload: {
48
+ name: string;
49
+ };
50
+ } | {
51
+ type: "list_agents";
52
+ payload: Record<string, never>;
53
+ } | {
54
+ type: "get_status";
55
+ payload: Record<string, never>;
56
+ } | {
57
+ type: "shutdown";
58
+ payload: Record<string, never>;
59
+ };
60
+ export interface PendingDeliveryInfo {
61
+ delivery_id: string;
62
+ worker_name: string;
63
+ event_id: string;
64
+ attempts: number;
65
+ }
66
+ export interface BrokerStatus {
67
+ agent_count: number;
68
+ agents: Array<{
69
+ name: string;
70
+ runtime: AgentRuntime;
71
+ channels: string[];
72
+ parent?: string;
73
+ pid?: number;
74
+ }>;
75
+ pending_delivery_count: number;
76
+ pending_deliveries: PendingDeliveryInfo[];
77
+ }
78
+ export interface ProtocolError {
79
+ code: string;
80
+ message: string;
81
+ retryable: boolean;
82
+ data?: unknown;
83
+ }
84
+ export type BrokerEvent = {
85
+ kind: "agent_spawned";
86
+ name: string;
87
+ runtime: AgentRuntime;
88
+ parent?: string;
89
+ } | {
90
+ kind: "agent_released";
91
+ name: string;
92
+ } | {
93
+ kind: "agent_exited";
94
+ name: string;
95
+ code?: number;
96
+ signal?: string;
97
+ } | {
98
+ kind: "relay_inbound";
99
+ event_id: string;
100
+ from: string;
101
+ target: string;
102
+ body: string;
103
+ thread_id?: string;
104
+ } | {
105
+ kind: "worker_stream";
106
+ name: string;
107
+ stream: string;
108
+ chunk: string;
109
+ } | {
110
+ kind: "delivery_retry";
111
+ name: string;
112
+ delivery_id: string;
113
+ event_id: string;
114
+ attempts: number;
115
+ } | {
116
+ kind: "delivery_dropped";
117
+ name: string;
118
+ count: number;
119
+ reason: string;
120
+ } | {
121
+ kind: "delivery_queued";
122
+ name: string;
123
+ delivery_id: string;
124
+ event_id: string;
125
+ timestamp?: unknown;
126
+ } | {
127
+ kind: "delivery_injected";
128
+ name: string;
129
+ delivery_id: string;
130
+ event_id: string;
131
+ timestamp?: unknown;
132
+ } | {
133
+ kind: "delivery_verified";
134
+ name: string;
135
+ delivery_id: string;
136
+ event_id: string;
137
+ } | {
138
+ kind: "delivery_failed";
139
+ name: string;
140
+ delivery_id: string;
141
+ event_id: string;
142
+ reason: string;
143
+ } | {
144
+ kind: "delivery_active";
145
+ name: string;
146
+ delivery_id: string;
147
+ event_id: string;
148
+ } | {
149
+ kind: "delivery_ack";
150
+ name: string;
151
+ delivery_id: string;
152
+ event_id: string;
153
+ } | {
154
+ kind: "worker_ready";
155
+ name: string;
156
+ runtime: AgentRuntime;
157
+ } | {
158
+ kind: "worker_error";
159
+ name: string;
160
+ code: string;
161
+ message: string;
162
+ } | {
163
+ kind: "relaycast_published";
164
+ event_id: string;
165
+ to: string;
166
+ target_type: string;
167
+ } | {
168
+ kind: "relaycast_publish_failed";
169
+ event_id: string;
170
+ to: string;
171
+ reason: string;
172
+ } | {
173
+ kind: "acl_denied";
174
+ name: string;
175
+ sender: string;
176
+ owner_chain: string[];
177
+ };
178
+ export type BrokerToSdk = {
179
+ type: "hello_ack";
180
+ payload: {
181
+ broker_version: string;
182
+ protocol_version: number;
183
+ };
184
+ } | {
185
+ type: "ok";
186
+ payload: {
187
+ result: unknown;
188
+ };
189
+ } | {
190
+ type: "error";
191
+ payload: ProtocolError;
192
+ } | {
193
+ type: "event";
194
+ payload: BrokerEvent;
195
+ };
196
+ export type BrokerToWorker = {
197
+ type: "init_worker";
198
+ payload: {
199
+ agent: AgentSpec;
200
+ };
201
+ } | {
202
+ type: "deliver_relay";
203
+ payload: RelayDelivery;
204
+ } | {
205
+ type: "shutdown_worker";
206
+ payload: {
207
+ reason: string;
208
+ grace_ms?: number;
209
+ };
210
+ } | {
211
+ type: "ping";
212
+ payload: {
213
+ ts_ms: number;
214
+ };
215
+ };
216
+ export type WorkerToBroker = {
217
+ type: "worker_ready";
218
+ payload: {
219
+ name: string;
220
+ runtime: AgentRuntime;
221
+ };
222
+ } | {
223
+ type: "delivery_ack";
224
+ payload: {
225
+ delivery_id: string;
226
+ event_id: string;
227
+ };
228
+ } | {
229
+ type: "worker_stream";
230
+ payload: {
231
+ stream: string;
232
+ chunk: string;
233
+ };
234
+ } | {
235
+ type: "worker_error";
236
+ payload: ProtocolError;
237
+ } | {
238
+ type: "worker_exited";
239
+ payload: {
240
+ code?: number;
241
+ signal?: string;
242
+ };
243
+ } | {
244
+ type: "pong";
245
+ payload: {
246
+ ts_ms: number;
247
+ };
248
+ };
249
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export const PROTOCOL_VERSION = 1;
2
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PTY stream utilities — ANSI stripping and line extraction.
3
+ */
4
+ /** Strip ANSI escape sequences from a string. */
5
+ export declare function stripAnsi(s: string): string;
6
+ /** Strip ANSI, split on newlines, trim, and drop empty lines. */
7
+ export declare function cleanLines(raw: string): string[];
8
+ //# sourceMappingURL=pty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../src/pty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * PTY stream utilities — ANSI stripping and line extraction.
3
+ */
4
+ // eslint-disable-next-line no-control-regex
5
+ const ANSI_RE = /\x1b(?:\[[0-9;?]*[A-Za-z]|\][^\x07\x1b]*(?:\x07|\x1b\\)?|[()][0-9A-Za-z]|[\x20-\x2f]*[\x40-\x7e])|\x1b/g;
6
+ /** Strip ANSI escape sequences from a string. */
7
+ export function stripAnsi(s) {
8
+ return s.replace(ANSI_RE, "");
9
+ }
10
+ /** Strip ANSI, split on newlines, trim, and drop empty lines. */
11
+ export function cleanLines(raw) {
12
+ return stripAnsi(raw).split(/\r?\n/).map(l => l.trimEnd()).filter(Boolean);
13
+ }
14
+ //# sourceMappingURL=pty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../src/pty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4CAA4C;AAC5C,MAAM,OAAO,GAAG,yGAAyG,CAAC;AAE1H,iDAAiD;AACjD,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,118 @@
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-ts";
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 SpawnPtyInput } from "./client.js";
26
+ import type { AgentRuntime, BrokerEvent, BrokerStatus } from "./protocol.js";
27
+ export interface Message {
28
+ eventId: string;
29
+ from: string;
30
+ to: string;
31
+ text: string;
32
+ threadId?: string;
33
+ }
34
+ export interface Agent {
35
+ readonly name: string;
36
+ readonly runtime: AgentRuntime;
37
+ readonly channels: string[];
38
+ release(): Promise<void>;
39
+ /** Wait for the agent process to exit on its own.
40
+ * @param timeoutMs — optional timeout in ms. Resolves with `"timeout"` if exceeded,
41
+ * `"exited"` if the agent exited naturally, or `"released"` if released externally. */
42
+ waitForExit(timeoutMs?: number): Promise<"exited" | "timeout" | "released">;
43
+ sendMessage(input: {
44
+ to: string;
45
+ text: string;
46
+ threadId?: string;
47
+ priority?: number;
48
+ }): Promise<Message>;
49
+ }
50
+ export interface HumanHandle {
51
+ readonly name: string;
52
+ sendMessage(input: {
53
+ to: string;
54
+ text: string;
55
+ threadId?: string;
56
+ priority?: number;
57
+ }): Promise<Message>;
58
+ }
59
+ export interface AgentSpawner {
60
+ spawn(options?: {
61
+ name?: string;
62
+ args?: string[];
63
+ channels?: string[];
64
+ }): Promise<Agent>;
65
+ }
66
+ export type EventHook<T> = ((value: T) => void) | null;
67
+ export interface AgentRelayOptions {
68
+ binaryPath?: string;
69
+ binaryArgs?: string[];
70
+ brokerName?: string;
71
+ channels?: string[];
72
+ cwd?: string;
73
+ env?: NodeJS.ProcessEnv;
74
+ requestTimeoutMs?: number;
75
+ shutdownTimeoutMs?: number;
76
+ }
77
+ export declare class AgentRelay {
78
+ onMessageReceived: EventHook<Message>;
79
+ onMessageSent: EventHook<Message>;
80
+ onAgentSpawned: EventHook<Agent>;
81
+ onAgentReleased: EventHook<Agent>;
82
+ onAgentExited: EventHook<Agent>;
83
+ onWorkerOutput: EventHook<{
84
+ name: string;
85
+ stream: string;
86
+ chunk: string;
87
+ }>;
88
+ onDeliveryUpdate: EventHook<BrokerEvent>;
89
+ readonly codex: AgentSpawner;
90
+ readonly claude: AgentSpawner;
91
+ readonly gemini: AgentSpawner;
92
+ private readonly clientOptions;
93
+ private readonly defaultChannels;
94
+ private client?;
95
+ private startPromise?;
96
+ private unsubEvent?;
97
+ private readonly knownAgents;
98
+ private readonly exitResolvers;
99
+ private readonly relaycastByName;
100
+ constructor(options?: AgentRelayOptions);
101
+ spawnPty(input: SpawnPtyInput): Promise<Agent>;
102
+ human(opts: {
103
+ name: string;
104
+ }): HumanHandle;
105
+ listAgents(): Promise<Agent[]>;
106
+ getStatus(): Promise<BrokerStatus>;
107
+ shutdown(): Promise<void>;
108
+ /** Resolve a target to a channel name. If `to` is `#channel`, use that
109
+ * channel. If it's a known agent name, use the agent's first channel.
110
+ * Otherwise fall back to the relay's default channel. */
111
+ private resolveChannel;
112
+ private ensureRelaycast;
113
+ private ensureStarted;
114
+ private wireEvents;
115
+ private makeAgent;
116
+ private createSpawner;
117
+ }
118
+ //# 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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"}