@agent-relay/sdk 6.3.4 → 6.3.6

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 (55) hide show
  1. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  2. package/bin/agent-relay-broker-darwin-x64 +0 -0
  3. package/bin/agent-relay-broker-linux-arm64 +0 -0
  4. package/bin/agent-relay-broker-linux-x64 +0 -0
  5. package/bin/agent-relay-broker-win32-x64.exe +0 -0
  6. package/dist/client.d.ts +34 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +167 -46
  9. package/dist/client.js.map +1 -1
  10. package/dist/event-bus.d.ts +45 -0
  11. package/dist/event-bus.d.ts.map +1 -0
  12. package/dist/event-bus.js +68 -0
  13. package/dist/event-bus.js.map +1 -0
  14. package/dist/examples/demo.js +27 -27
  15. package/dist/examples/demo.js.map +1 -1
  16. package/dist/examples/persona-spawn.js +9 -10
  17. package/dist/examples/persona-spawn.js.map +1 -1
  18. package/dist/examples/quickstart.js +17 -17
  19. package/dist/examples/quickstart.js.map +1 -1
  20. package/dist/examples/ralph-loop.js +37 -37
  21. package/dist/examples/ralph-loop.js.map +1 -1
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/lifecycle-hooks.d.ts +140 -0
  27. package/dist/lifecycle-hooks.d.ts.map +1 -0
  28. package/dist/lifecycle-hooks.js +29 -0
  29. package/dist/lifecycle-hooks.js.map +1 -0
  30. package/dist/relay.d.ts +37 -29
  31. package/dist/relay.d.ts.map +1 -1
  32. package/dist/relay.js +52 -30
  33. package/dist/relay.js.map +1 -1
  34. package/dist/shadow.d.ts +4 -4
  35. package/dist/shadow.d.ts.map +1 -1
  36. package/dist/shadow.js +9 -9
  37. package/dist/shadow.js.map +1 -1
  38. package/dist/spawn-from-env.d.ts.map +1 -1
  39. package/dist/spawn-from-env.js +20 -22
  40. package/dist/spawn-from-env.js.map +1 -1
  41. package/dist/workflows/__tests__/budget-enforcement.test.js +1 -7
  42. package/dist/workflows/__tests__/budget-enforcement.test.js.map +1 -1
  43. package/dist/workflows/__tests__/e2e-permissions.test.js +18 -11
  44. package/dist/workflows/__tests__/e2e-permissions.test.js.map +1 -1
  45. package/dist/workflows/__tests__/permissions-integration.test.js +18 -9
  46. package/dist/workflows/__tests__/permissions-integration.test.js.map +1 -1
  47. package/dist/workflows/__tests__/verification-custom.test.js +1 -7
  48. package/dist/workflows/__tests__/verification-custom.test.js.map +1 -1
  49. package/dist/workflows/__tests__/verification-traceback.test.js +1 -7
  50. package/dist/workflows/__tests__/verification-traceback.test.js.map +1 -1
  51. package/dist/workflows/runner.d.ts +1 -0
  52. package/dist/workflows/runner.d.ts.map +1 -1
  53. package/dist/workflows/runner.js +24 -23
  54. package/dist/workflows/runner.js.map +1 -1
  55. package/package.json +12 -12
@@ -5,59 +5,59 @@
5
5
  * Run:
6
6
  * npm run build && npm run demo
7
7
  */
8
- import { AgentRelay } from "../relay.js";
8
+ import { AgentRelay } from '../relay.js';
9
9
  const relay = new AgentRelay({ env: process.env });
10
10
  // ── Event hooks ─────────────────────────────────────────────────────────────
11
- relay.onMessageReceived = (message) => {
11
+ relay.addListener('messageReceived', (message) => {
12
12
  console.log(` 📨 received │ from=${message.from} to=${message.to} text="${message.text}"`);
13
- };
14
- relay.onMessageSent = (message) => {
13
+ });
14
+ relay.addListener('messageSent', (message) => {
15
15
  console.log(` 📤 sent │ from=${message.from} to=${message.to} text="${message.text}"`);
16
- };
17
- relay.onAgentSpawned = (agent) => {
16
+ });
17
+ relay.addListener('agentSpawned', (agent) => {
18
18
  console.log(` 🟢 spawned │ ${agent.name} (${agent.runtime})`);
19
- };
20
- relay.onAgentReleased = (agent) => {
19
+ });
20
+ relay.addListener('agentReleased', (agent) => {
21
21
  console.log(` 🔴 released │ ${agent.name}`);
22
- };
23
- relay.onAgentExited = (agent) => {
22
+ });
23
+ relay.addListener('agentExited', (agent) => {
24
24
  console.log(` ⚪ exited │ ${agent.name}`);
25
- };
25
+ });
26
26
  // ── Spawn agents ────────────────────────────────────────────────────────────
27
- console.log("\n─── Spawning agents ───\n");
27
+ console.log('\n─── Spawning agents ───\n');
28
28
  const [agentA, agentB] = await Promise.all([
29
- relay.spawnPty({ name: "AgentA", cli: "claude", args: ["--print"], channels: ["general"] }),
30
- relay.spawnPty({ name: "AgentB", cli: "claude", args: ["--print"], channels: ["general"] }),
29
+ relay.spawnPty({ name: 'AgentA', cli: 'claude', args: ['--print'], channels: ['general'] }),
30
+ relay.spawnPty({ name: 'AgentB', cli: 'claude', args: ['--print'], channels: ['general'] }),
31
31
  ]);
32
32
  // ── Send messages ───────────────────────────────────────────────────────────
33
- console.log("\n─── Sending messages ───\n");
34
- const human = relay.human({ name: "System" });
35
- await human.sendMessage({ to: agentA.name, text: "Hello AgentA, welcome!" });
36
- await human.sendMessage({ to: agentB.name, text: "Hello AgentB, welcome!" });
33
+ console.log('\n─── Sending messages ───\n');
34
+ const human = relay.human({ name: 'System' });
35
+ await human.sendMessage({ to: agentA.name, text: 'Hello AgentA, welcome!' });
36
+ await human.sendMessage({ to: agentB.name, text: 'Hello AgentB, welcome!' });
37
37
  // Agent-to-agent messaging
38
- await agentA.sendMessage({ to: agentB.name, text: "Hey B, got a task for you" });
39
- await agentB.sendMessage({ to: agentA.name, text: "On it!" });
38
+ await agentA.sendMessage({ to: agentB.name, text: 'Hey B, got a task for you' });
39
+ await agentB.sendMessage({ to: agentA.name, text: 'On it!' });
40
40
  // Threaded conversation
41
- const thread = await human.sendMessage({ to: agentA.name, text: "Status update?" });
42
- await agentA.sendMessage({ to: human.name, text: "All good!", threadId: thread.eventId });
41
+ const thread = await human.sendMessage({ to: agentA.name, text: 'Status update?' });
42
+ await agentA.sendMessage({ to: human.name, text: 'All good!', threadId: thread.eventId });
43
43
  // Priority messages
44
- await human.sendMessage({ to: agentA.name, text: "Critical alert!", priority: 0 });
45
- await human.sendMessage({ to: agentB.name, text: "Low priority FYI", priority: 4 });
44
+ await human.sendMessage({ to: agentA.name, text: 'Critical alert!', priority: 0 });
45
+ await human.sendMessage({ to: agentB.name, text: 'Low priority FYI', priority: 4 });
46
46
  // Small delay to let events propagate
47
47
  await new Promise((r) => setTimeout(r, 500));
48
48
  // ── List agents ─────────────────────────────────────────────────────────────
49
- console.log("\n─── Active agents ───\n");
49
+ console.log('\n─── Active agents ───\n');
50
50
  const agents = await relay.listAgents();
51
51
  for (const agent of agents) {
52
52
  console.log(` • ${agent.name} runtime=${agent.runtime} channels=[${agent.channels}]`);
53
53
  }
54
54
  // ── Release all ─────────────────────────────────────────────────────────────
55
- console.log("\n─── Releasing agents ───\n");
55
+ console.log('\n─── Releasing agents ───\n');
56
56
  for (const agent of agents) {
57
57
  await agent.release();
58
58
  }
59
59
  await new Promise((r) => setTimeout(r, 300));
60
60
  // ── Shutdown ────────────────────────────────────────────────────────────────
61
61
  await relay.shutdown();
62
- console.log("\n─── Done ───\n");
62
+ console.log('\n─── Done ───\n');
63
63
  //# sourceMappingURL=demo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/examples/demo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/examples/demo.ts"],"names":[],"mappings":"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"}
@@ -12,31 +12,30 @@
12
12
  * Environment:
13
13
  * RELAY_API_KEY — Relaycast workspace key (required)
14
14
  */
15
- import { AgentRelay } from "../relay.js";
16
- import { listPersonas } from "../personas.js";
15
+ import { AgentRelay } from '../relay.js';
16
+ import { listPersonas } from '../personas.js';
17
17
  const [, , personaId, ...taskParts] = process.argv;
18
- const task = taskParts.join(" ").trim();
18
+ const task = taskParts.join(' ').trim();
19
19
  if (!personaId) {
20
20
  const found = listPersonas();
21
- console.error("Usage: persona-spawn <personaId> [task...]\n");
21
+ console.error('Usage: persona-spawn <personaId> [task...]\n');
22
22
  if (found.length > 0) {
23
- console.error("Personas discovered in the default cascade:");
23
+ console.error('Personas discovered in the default cascade:');
24
24
  for (const p of found) {
25
25
  console.error(` - ${p.id} (${p.path})`);
26
26
  }
27
27
  }
28
28
  else {
29
- console.error("No personas found. Place JSON files under ./agentworkforce/personas " +
30
- "or set AGENT_WORKFORCE_HOME.");
29
+ console.error('No personas found. Place JSON files under ./agentworkforce/personas ' + 'or set AGENT_WORKFORCE_HOME.');
31
30
  }
32
31
  process.exit(1);
33
32
  }
34
33
  const relay = new AgentRelay();
35
- relay.onAgentSpawned = (agent) => console.log(`spawned ${agent.name} (${agent.runtime})`);
36
- relay.onAgentExited = (agent) => console.log(`exited ${agent.name} code=${agent.exitCode ?? "none"}`);
34
+ relay.addListener('agentSpawned', (agent) => console.log(`spawned ${agent.name} (${agent.runtime})`));
35
+ relay.addListener('agentExited', (agent) => console.log(`exited ${agent.name} code=${agent.exitCode ?? 'none'}`));
37
36
  const agent = await relay.spawnPersona(personaId, {
38
37
  ...(task ? { task } : {}),
39
- channels: ["general"],
38
+ channels: ['general'],
40
39
  });
41
40
  console.log(`agent ${agent.name} ready, waiting for exit...`);
42
41
  await agent.waitForExit();
@@ -1 +1 @@
1
- {"version":3,"file":"persona-spawn.js","sourceRoot":"","sources":["../../src/examples/persona-spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,EAAE,AAAD,EAAG,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AACnD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAExC,IAAI,CAAC,SAAS,EAAE,CAAC;IACf,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,sEAAsE;YACpE,8BAA8B,CACjC,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AAE/B,KAAK,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AAC1F,KAAK,CAAC,aAAa,GAAG,CAAC,KAAK,EAAE,EAAE,CAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;AAEvE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE;IAChD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,6BAA6B,CAAC,CAAC;AAC9D,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;AAC1B,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"persona-spawn.js","sourceRoot":"","sources":["../../src/examples/persona-spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,EAAE,AAAD,EAAG,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AACnD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAExC,IAAI,CAAC,SAAS,EAAE,CAAC;IACf,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,sEAAsE,GAAG,8BAA8B,CACxG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AAE/B,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CACzC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CACrE,CAAC;AAEF,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE;IAChD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,6BAA6B,CAAC,CAAC;AAC9D,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;AAC1B,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC"}
@@ -8,26 +8,26 @@
8
8
  * RELAY_API_KEY — Relaycast workspace key (required)
9
9
  * AGENT_RELAY_BIN — path to agent-relay binary (optional)
10
10
  */
11
- import { AgentRelay } from "../relay.js";
11
+ import { AgentRelay } from '../relay.js';
12
12
  // The Relay is the communication backbone for your agents.
13
13
  // Drop it into your codebase and let your agents communicate.
14
14
  const relay = new AgentRelay();
15
15
  // ── Event hooks ─────────────────────────────────────────────────────────────
16
- relay.onMessageReceived = (message) => {
16
+ relay.addListener('messageReceived', (message) => {
17
17
  console.log(`message received → from=${message.from} to=${message.to}`);
18
- };
19
- relay.onMessageSent = (message) => {
18
+ });
19
+ relay.addListener('messageSent', (message) => {
20
20
  console.log(`message sent → from=${message.from} to=${message.to}`);
21
- };
22
- relay.onAgentSpawned = (agent) => {
21
+ });
22
+ relay.addListener('agentSpawned', (agent) => {
23
23
  console.log(`agent spawned → ${agent.name} (${agent.runtime})`);
24
- };
25
- relay.onAgentReleased = (agent) => {
24
+ });
25
+ relay.addListener('agentReleased', (agent) => {
26
26
  console.log(`agent released → ${agent.name}`);
27
- };
28
- relay.onAgentExited = (agent) => {
27
+ });
28
+ relay.addListener('agentExited', (agent) => {
29
29
  console.log(`agent exited → ${agent.name}`);
30
- };
30
+ });
31
31
  // ── Create agents with sane defaults, running locally ───────────────────────
32
32
  const [codex, claude, gemini] = await Promise.all([
33
33
  relay.codex.spawn(),
@@ -36,14 +36,14 @@ const [codex, claude, gemini] = await Promise.all([
36
36
  ]);
37
37
  // ── Configure messaging with custom CLI agents ─────────────────────────────
38
38
  const worker1 = await relay.spawnPty({
39
- name: "Worker1",
40
- cli: "codex",
41
- args: ["--model", "gpt-5"],
42
- channels: ["general"],
39
+ name: 'Worker1',
40
+ cli: 'codex',
41
+ args: ['--model', 'gpt-5'],
42
+ channels: ['general'],
43
43
  });
44
44
  // ── Control messaging from non-agent sources ────────────────────────────────
45
- const human = relay.human({ name: "System" });
46
- await human.sendMessage({ to: codex.name, text: "Hello, world!" });
45
+ const human = relay.human({ name: 'System' });
46
+ await human.sendMessage({ to: codex.name, text: 'Hello, world!' });
47
47
  // ── List agents ─────────────────────────────────────────────────────────────
48
48
  const agents = await relay.listAgents();
49
49
  for (const agent of agents) {
@@ -1 +1 @@
1
- {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/examples/quickstart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2DAA2D;AAC3D,8DAA8D;AAC9D,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AAE/B,+EAA+E;AAE/E,KAAK,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE;IACpC,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,KAAK,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,EAAE;IAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,KAAK,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,KAAK,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;IAChC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,KAAK,CAAC,aAAa,GAAG,CAAC,KAAK,EAAE,EAAE;IAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,+EAA+E;AAE/E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;IAChD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;IACnB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;IACpB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;CACrB,CAAC,CAAC;AAEH,8EAA8E;AAE9E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC;IACnC,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,CAAC,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,+EAA+E;AAE/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9C,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAEnE,+EAA+E;AAE/E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;AACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,OAAO,eAAe,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzF,CAAC;AAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;IAC3B,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../src/examples/quickstart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2DAA2D;AAC3D,8DAA8D;AAC9D,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AAE/B,+EAA+E;AAE/E,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;IAC/C,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;IACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAE/E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;IAChD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;IACnB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;IACpB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;CACrB,CAAC,CAAC;AAEH,8EAA8E;AAE9E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC;IACnC,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,CAAC,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,+EAA+E;AAE/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9C,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAEnE,+EAA+E;AAE/E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;AACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,OAAO,eAAe,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzF,CAAC;AAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;IAC3B,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC"}
@@ -25,39 +25,37 @@
25
25
  * https://github.com/snarktank/ralph
26
26
  * https://ghuntley.com/ralph/
27
27
  */
28
- import fs from "node:fs";
29
- import { execSync } from "node:child_process";
30
- import { AgentRelay } from "../relay.js";
28
+ import fs from 'node:fs';
29
+ import { execSync } from 'node:child_process';
30
+ import { AgentRelay } from '../relay.js';
31
31
  // ── Configuration ───────────────────────────────────────────────────────────
32
- const PRD_PATH = process.env.PRD_PATH ?? "prd.json";
33
- const PROGRESS_PATH = process.env.PROGRESS_PATH ?? "progress.txt";
32
+ const PRD_PATH = process.env.PRD_PATH ?? 'prd.json';
33
+ const PROGRESS_PATH = process.env.PROGRESS_PATH ?? 'progress.txt';
34
34
  const MAX_ITERATIONS = Number(process.env.MAX_ITERATIONS ?? 10);
35
35
  const MAX_REVIEW_ROUNDS = Number(process.env.MAX_REVIEW_ROUNDS ?? 2);
36
- const QUALITY_CMD = process.env.QUALITY_CMD ?? "npm run check";
36
+ const QUALITY_CMD = process.env.QUALITY_CMD ?? 'npm run check';
37
37
  /** Max time (ms) to wait for both agents per round before releasing them. */
38
38
  const ROUND_TIMEOUT_MS = Number(process.env.ROUND_TIMEOUT_MS ?? 5 * 60 * 1000);
39
39
  // ── Helpers ─────────────────────────────────────────────────────────────────
40
40
  function loadPrd() {
41
- return JSON.parse(fs.readFileSync(PRD_PATH, "utf-8"));
41
+ return JSON.parse(fs.readFileSync(PRD_PATH, 'utf-8'));
42
42
  }
43
43
  function savePrd(prd) {
44
- fs.writeFileSync(PRD_PATH, JSON.stringify(prd, null, 2) + "\n");
44
+ fs.writeFileSync(PRD_PATH, JSON.stringify(prd, null, 2) + '\n');
45
45
  }
46
46
  function appendProgress(entry) {
47
47
  const line = `[${new Date().toISOString()}] ${entry}\n`;
48
48
  fs.appendFileSync(PROGRESS_PATH, line);
49
49
  }
50
50
  function readProgress() {
51
- return fs.existsSync(PROGRESS_PATH)
52
- ? fs.readFileSync(PROGRESS_PATH, "utf-8")
53
- : "";
51
+ return fs.existsSync(PROGRESS_PATH) ? fs.readFileSync(PROGRESS_PATH, 'utf-8') : '';
54
52
  }
55
53
  function nextStory(prd) {
56
54
  return prd.userStories.find((s) => !s.passes);
57
55
  }
58
56
  function runQualityChecks() {
59
57
  try {
60
- const output = execSync(QUALITY_CMD, { encoding: "utf-8", stdio: "pipe" });
58
+ const output = execSync(QUALITY_CMD, { encoding: 'utf-8', stdio: 'pipe' });
61
59
  return { passed: true, output };
62
60
  }
63
61
  catch (err) {
@@ -67,7 +65,7 @@ function runQualityChecks() {
67
65
  }
68
66
  // ── Prompt builders ─────────────────────────────────────────────────────────
69
67
  function architectPrompt(story, progress) {
70
- const criteria = story.acceptanceCriteria.map((c) => ` - ${c}`).join("\n");
68
+ const criteria = story.acceptanceCriteria.map((c) => ` - ${c}`).join('\n');
71
69
  return [
72
70
  `## Architect: ${story.title}`,
73
71
  ``,
@@ -86,7 +84,7 @@ function architectPrompt(story, progress) {
86
84
  criteria,
87
85
  ``,
88
86
  `### Previous Learnings`,
89
- progress || "(first story)",
87
+ progress || '(first story)',
90
88
  ``,
91
89
  `### Your job`,
92
90
  `1. Post a concise implementation plan to #general (files, changes, edge cases)`,
@@ -98,10 +96,10 @@ function architectPrompt(story, progress) {
98
96
  ``,
99
97
  `IMPORTANT: You MUST use Relaycast MCP tools to post messages. This is how`,
100
98
  `the orchestrator knows you're done. Post your plan first, then your verdict.`,
101
- ].join("\n");
99
+ ].join('\n');
102
100
  }
103
101
  function builderPrompt(story, progress, reviewFeedback) {
104
- const criteria = story.acceptanceCriteria.map((c) => ` - ${c}`).join("\n");
102
+ const criteria = story.acceptanceCriteria.map((c) => ` - ${c}`).join('\n');
105
103
  const sections = [
106
104
  `## Builder: ${story.title}`,
107
105
  ``,
@@ -122,22 +120,22 @@ function builderPrompt(story, progress, reviewFeedback) {
122
120
  if (reviewFeedback) {
123
121
  sections.push(``, `### Review Feedback (fix these issues first)`, reviewFeedback);
124
122
  }
125
- sections.push(``, `### Previous Learnings`, progress || "(first story)", ``, `### Your job`, `1. Read the Architect's plan from #general`, `2. Implement the changes`, `3. Post progress updates to #general as you work`, `4. When done, post exactly "IMPLEMENTATION COMPLETE" to #general`, ``, `IMPORTANT: You MUST use Relaycast MCP tools to post messages. This is how`, `the orchestrator knows you're done.`);
126
- return sections.join("\n");
123
+ sections.push(``, `### Previous Learnings`, progress || '(first story)', ``, `### Your job`, `1. Read the Architect's plan from #general`, `2. Implement the changes`, `3. Post progress updates to #general as you work`, `4. When done, post exactly "IMPLEMENTATION COMPLETE" to #general`, ``, `IMPORTANT: You MUST use Relaycast MCP tools to post messages. This is how`, `the orchestrator knows you're done.`);
124
+ return sections.join('\n');
127
125
  }
128
126
  // ── Main loop ───────────────────────────────────────────────────────────────
129
127
  const relay = new AgentRelay({ env: process.env });
130
128
  const channelLog = [];
131
- relay.onMessageReceived = (msg) => {
129
+ relay.addListener('messageReceived', (msg) => {
132
130
  channelLog.push(msg);
133
131
  console.log(` 💬 ${msg.from}: "${msg.text.slice(0, 80)}…"`);
134
- };
135
- relay.onAgentSpawned = (agent) => console.log(` 🟢 ${agent.name} spawned (${agent.runtime})`);
136
- relay.onAgentReleased = (agent) => console.log(` 🔴 ${agent.name} released`);
137
- relay.onAgentExited = (agent) => console.log(` ⚪ ${agent.name} exited`);
138
- relay.onMessageSent = (msg) => console.log(` 📤 → ${msg.to}: "${msg.text.slice(0, 60)}…"`);
132
+ });
133
+ relay.addListener('agentSpawned', (agent) => console.log(` 🟢 ${agent.name} spawned (${agent.runtime})`));
134
+ relay.addListener('agentReleased', (agent) => console.log(` 🔴 ${agent.name} released`));
135
+ relay.addListener('agentExited', (agent) => console.log(` ⚪ ${agent.name} exited`));
136
+ relay.addListener('messageSent', (msg) => console.log(` 📤 → ${msg.to}: "${msg.text.slice(0, 60)}…"`));
139
137
  const prd = loadPrd();
140
- const orchestrator = relay.human({ name: "Ralph" });
138
+ const orchestrator = relay.human({ name: 'Ralph' });
141
139
  console.log(`\n══ Ralph Loop (Claude + Codex) ══`);
142
140
  console.log(` branch: ${prd.branchName}`);
143
141
  console.log(` stories: ${prd.userStories.length}`);
@@ -154,19 +152,19 @@ while (iteration < MAX_ITERATIONS) {
154
152
  let reviewFeedback;
155
153
  let storyPassed = false;
156
154
  for (let round = 0; round < MAX_REVIEW_ROUNDS; round++) {
157
- const roundLabel = round === 0 ? "initial" : `fix-${round}`;
155
+ const roundLabel = round === 0 ? 'initial' : `fix-${round}`;
158
156
  const progress = readProgress();
159
157
  // ── Spawn both agents concurrently ──────────────────────────────────
160
158
  console.log(` ⚡ Spawning Claude (architect) + Codex (builder) — round: ${roundLabel}`);
161
159
  const [architect, builder] = await Promise.all([
162
160
  relay.claude.spawn({
163
161
  name: `Architect-${story.id}-${roundLabel}`,
164
- channels: ["general"],
162
+ channels: ['general'],
165
163
  }),
166
164
  relay.codex.spawn({
167
165
  name: `Builder-${story.id}-${roundLabel}`,
168
- args: ["--full-auto"],
169
- channels: ["general"],
166
+ args: ['--full-auto'],
167
+ channels: ['general'],
170
168
  }),
171
169
  ]);
172
170
  // ── Inject tasks via relay ──────────────────────────────────────────
@@ -192,14 +190,14 @@ while (iteration < MAX_ITERATIONS) {
192
190
  while (Date.now() < deadline) {
193
191
  const recent = channelLog.slice(startLen);
194
192
  // Check if Claude posted a review verdict
195
- const review = recent.find((m) => m.text.includes("REVIEW:PASS") || m.text.includes("REVIEW:FAIL"));
193
+ const review = recent.find((m) => m.text.includes('REVIEW:PASS') || m.text.includes('REVIEW:FAIL'));
196
194
  if (review) {
197
195
  verdict = review.text;
198
196
  console.log(` 📋 Claude posted verdict`);
199
197
  break;
200
198
  }
201
199
  // Check if Codex signaled completion (Claude may still be reviewing)
202
- const implDone = recent.find((m) => m.text.includes("IMPLEMENTATION COMPLETE"));
200
+ const implDone = recent.find((m) => m.text.includes('IMPLEMENTATION COMPLETE'));
203
201
  if (implDone) {
204
202
  console.log(` 📋 Codex finished, waiting for Claude's review…`);
205
203
  // Give Claude up to 60s more to post a verdict
@@ -207,7 +205,7 @@ while (iteration < MAX_ITERATIONS) {
207
205
  while (Date.now() < reviewDeadline) {
208
206
  await new Promise((r) => setTimeout(r, 3000));
209
207
  const afterImpl = channelLog.slice(startLen);
210
- const rv = afterImpl.find((m) => m.text.includes("REVIEW:PASS") || m.text.includes("REVIEW:FAIL"));
208
+ const rv = afterImpl.find((m) => m.text.includes('REVIEW:PASS') || m.text.includes('REVIEW:FAIL'));
211
209
  if (rv) {
212
210
  verdict = rv.text;
213
211
  break;
@@ -218,7 +216,7 @@ while (iteration < MAX_ITERATIONS) {
218
216
  // Check if either agent exited on its own
219
217
  const archResult = await architect.waitForExit(0);
220
218
  const buildResult = await builder.waitForExit(0);
221
- if (archResult !== "timeout" && buildResult !== "timeout")
219
+ if (archResult !== 'timeout' && buildResult !== 'timeout')
222
220
  break;
223
221
  await new Promise((r) => setTimeout(r, 5000));
224
222
  }
@@ -227,7 +225,9 @@ while (iteration < MAX_ITERATIONS) {
227
225
  try {
228
226
  await agent.release();
229
227
  }
230
- catch { /* already exited */ }
228
+ catch {
229
+ /* already exited */
230
+ }
231
231
  };
232
232
  await Promise.all([cleanup(architect), cleanup(builder)]);
233
233
  // ── Quality gate ────────────────────────────────────────────────────
@@ -240,14 +240,14 @@ while (iteration < MAX_ITERATIONS) {
240
240
  continue;
241
241
  }
242
242
  // ── Check verdict ─────────────────────────────────────────────────────
243
- if (verdict?.includes("REVIEW:PASS")) {
243
+ if (verdict?.includes('REVIEW:PASS')) {
244
244
  storyPassed = true;
245
245
  appendProgress(`✅ ${story.id} — ${story.title} — PASSED (round=${roundLabel})`);
246
246
  console.log(` ✅ story passed!\n`);
247
247
  break;
248
248
  }
249
- else if (verdict?.includes("REVIEW:FAIL")) {
250
- const failText = verdict.replace("REVIEW:FAIL", "").trim();
249
+ else if (verdict?.includes('REVIEW:FAIL')) {
250
+ const failText = verdict.replace('REVIEW:FAIL', '').trim();
251
251
  reviewFeedback = failText;
252
252
  appendProgress(`🔄 ${story.id} round=${roundLabel} — review failed: ${reviewFeedback.slice(0, 200)}`);
253
253
  console.log(` 🔄 review failed, starting new round\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-loop.js","sourceRoot":"","sources":["../../src/examples/ralph-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph-loop.js","sourceRoot":"","sources":["../../src/examples/ralph-loop.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export * from './protocol.js';
2
2
  export * from './types.js';
3
3
  export { BrokerTransport, type BrokerTransportOptions, AgentRelayProtocolError, PtyInputStream, type PtyInputStreamOptions, type PtyInputWriteResult, } from './transport.js';
4
4
  export { AgentRelayClient, type AgentRelayBrokerInitArgs, type AgentRelayClientOptions, type AgentRelaySpawnOptions, type SetInboundDeliveryModeResult, type SessionInfo, type WorkerStreamSubscriptionOptions, } from './client.js';
5
+ export { EventBus, type EventHandler, type EventMap } from './event-bus.js';
6
+ export type { AfterAgentReleaseContext, AfterAgentSpawnContext, AgentRelayEvents, BeforeAgentReleaseContext, BeforeAgentSpawnContext, BeforeAgentSpawnHandler, SpawnPatch, AgentExitRequestedPayload, AgentIdlePayload, ChannelSubscriptionPayload, WorkerOutputPayload, } from './lifecycle-hooks.js';
5
7
  export * from './models.js';
6
8
  export { RelayCast, RelayError, AgentClient } from '@relaycast/sdk';
7
9
  export type { RelayCastOptions, ClientOptions } from '@relaycast/sdk';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,uBAAuB,EACvB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,WAAW,EAChB,KAAK,+BAA+B,GACrC,MAAM,aAAa,CAAC;AACrB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,uBAAuB,EACvB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,WAAW,EAChB,KAAK,+BAA+B,GACrC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5E,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,UAAU,EACV,yBAAyB,EACzB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export * from './protocol.js';
2
2
  export * from './types.js';
3
3
  export { BrokerTransport, AgentRelayProtocolError, PtyInputStream, } from './transport.js';
4
4
  export { AgentRelayClient, } from './client.js';
5
+ export { EventBus } from './event-bus.js';
5
6
  export * from './models.js';
6
7
  export { RelayCast, RelayError, AgentClient } from '@relaycast/sdk';
7
8
  export * from './pty.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,eAAe,EAEf,uBAAuB,EACvB,cAAc,GAGf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,GAOjB,MAAM,aAAa,CAAC;AACrB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpE,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,eAAe,EAEf,uBAAuB,EACvB,cAAc,GAGf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,GAOjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAoC,MAAM,gBAAgB,CAAC;AAc5E,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpE,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}