agent-relay 3.2.3 → 3.2.4

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 (225) hide show
  1. package/dist/index.cjs +265 -108
  2. package/package.json +11 -10
  3. package/packages/acp-bridge/package.json +2 -2
  4. package/packages/config/package.json +1 -1
  5. package/packages/hooks/package.json +4 -4
  6. package/packages/memory/package.json +2 -2
  7. package/packages/openclaw/package.json +2 -2
  8. package/packages/policy/package.json +2 -2
  9. package/packages/sdk/ADAPTER_REVIEW.md +109 -0
  10. package/packages/sdk/dist/communicate/a2a-bridge.d.ts +25 -0
  11. package/packages/sdk/dist/communicate/a2a-bridge.d.ts.map +1 -0
  12. package/packages/sdk/dist/communicate/a2a-bridge.js +89 -0
  13. package/packages/sdk/dist/communicate/a2a-bridge.js.map +1 -0
  14. package/packages/sdk/dist/communicate/a2a-server.d.ts +31 -0
  15. package/packages/sdk/dist/communicate/a2a-server.d.ts.map +1 -0
  16. package/packages/sdk/dist/communicate/a2a-server.js +220 -0
  17. package/packages/sdk/dist/communicate/a2a-server.js.map +1 -0
  18. package/packages/sdk/dist/communicate/a2a-transport.d.ts +48 -0
  19. package/packages/sdk/dist/communicate/a2a-transport.d.ts.map +1 -0
  20. package/packages/sdk/dist/communicate/a2a-transport.js +302 -0
  21. package/packages/sdk/dist/communicate/a2a-transport.js.map +1 -0
  22. package/packages/sdk/dist/communicate/a2a-types.d.ts +107 -0
  23. package/packages/sdk/dist/communicate/a2a-types.d.ts.map +1 -0
  24. package/packages/sdk/dist/communicate/a2a-types.js +209 -0
  25. package/packages/sdk/dist/communicate/a2a-types.js.map +1 -0
  26. package/packages/sdk/dist/communicate/adapters/claude-sdk.d.ts +28 -0
  27. package/packages/sdk/dist/communicate/adapters/claude-sdk.d.ts.map +1 -0
  28. package/packages/sdk/dist/communicate/adapters/claude-sdk.js +47 -0
  29. package/packages/sdk/dist/communicate/adapters/claude-sdk.js.map +1 -0
  30. package/packages/sdk/dist/communicate/adapters/crewai.d.ts +42 -0
  31. package/packages/sdk/dist/communicate/adapters/crewai.d.ts.map +1 -0
  32. package/packages/sdk/dist/communicate/adapters/crewai.js +95 -0
  33. package/packages/sdk/dist/communicate/adapters/crewai.js.map +1 -0
  34. package/packages/sdk/dist/communicate/adapters/google-adk.d.ts +53 -0
  35. package/packages/sdk/dist/communicate/adapters/google-adk.d.ts.map +1 -0
  36. package/packages/sdk/dist/communicate/adapters/google-adk.js +77 -0
  37. package/packages/sdk/dist/communicate/adapters/google-adk.js.map +1 -0
  38. package/packages/sdk/dist/communicate/adapters/index.d.ts +7 -0
  39. package/packages/sdk/dist/communicate/adapters/index.d.ts.map +1 -0
  40. package/packages/sdk/dist/communicate/adapters/index.js +7 -0
  41. package/packages/sdk/dist/communicate/adapters/index.js.map +1 -0
  42. package/packages/sdk/dist/communicate/adapters/langgraph.d.ts +40 -0
  43. package/packages/sdk/dist/communicate/adapters/langgraph.d.ts.map +1 -0
  44. package/packages/sdk/dist/communicate/adapters/langgraph.js +77 -0
  45. package/packages/sdk/dist/communicate/adapters/langgraph.js.map +1 -0
  46. package/packages/sdk/dist/communicate/adapters/openai-agents.d.ts +25 -0
  47. package/packages/sdk/dist/communicate/adapters/openai-agents.d.ts.map +1 -0
  48. package/packages/sdk/dist/communicate/adapters/openai-agents.js +70 -0
  49. package/packages/sdk/dist/communicate/adapters/openai-agents.js.map +1 -0
  50. package/packages/sdk/dist/communicate/adapters/pi.d.ts +45 -0
  51. package/packages/sdk/dist/communicate/adapters/pi.d.ts.map +1 -0
  52. package/packages/sdk/dist/communicate/adapters/pi.js +59 -0
  53. package/packages/sdk/dist/communicate/adapters/pi.js.map +1 -0
  54. package/packages/sdk/dist/communicate/core.d.ts +58 -0
  55. package/packages/sdk/dist/communicate/core.d.ts.map +1 -0
  56. package/packages/sdk/dist/communicate/core.js +128 -0
  57. package/packages/sdk/dist/communicate/core.js.map +1 -0
  58. package/packages/sdk/dist/communicate/index.d.ts +4 -0
  59. package/packages/sdk/dist/communicate/index.d.ts.map +1 -0
  60. package/packages/sdk/dist/communicate/index.js +4 -0
  61. package/packages/sdk/dist/communicate/index.js.map +1 -0
  62. package/packages/sdk/dist/communicate/transport.d.ts +36 -0
  63. package/packages/sdk/dist/communicate/transport.d.ts.map +1 -0
  64. package/packages/sdk/dist/communicate/transport.js +371 -0
  65. package/packages/sdk/dist/communicate/transport.js.map +1 -0
  66. package/packages/sdk/dist/communicate/types.d.ts +58 -0
  67. package/packages/sdk/dist/communicate/types.d.ts.map +1 -0
  68. package/packages/sdk/dist/communicate/types.js +66 -0
  69. package/packages/sdk/dist/communicate/types.js.map +1 -0
  70. package/packages/sdk/dist/workflows/builder.d.ts +35 -5
  71. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -1
  72. package/packages/sdk/dist/workflows/builder.js +81 -7
  73. package/packages/sdk/dist/workflows/builder.js.map +1 -1
  74. package/packages/sdk/dist/workflows/cli.js +14 -1
  75. package/packages/sdk/dist/workflows/cli.js.map +1 -1
  76. package/packages/sdk/dist/workflows/runner.d.ts +10 -2
  77. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
  78. package/packages/sdk/dist/workflows/runner.js +95 -1
  79. package/packages/sdk/dist/workflows/runner.js.map +1 -1
  80. package/packages/sdk/dist/workflows/types.d.ts +11 -0
  81. package/packages/sdk/dist/workflows/types.d.ts.map +1 -1
  82. package/packages/sdk/examples/communicate/claude_sdk_example.ts +5 -0
  83. package/packages/sdk/examples/communicate/pi_example.ts +8 -0
  84. package/packages/sdk/package.json +48 -2
  85. package/packages/sdk/src/__tests__/builder-deterministic.test.ts +132 -0
  86. package/packages/sdk/src/__tests__/communicate/a2a-bridge.test.ts +211 -0
  87. package/packages/sdk/src/__tests__/communicate/a2a-server.test.ts +359 -0
  88. package/packages/sdk/src/__tests__/communicate/a2a-transport.test.ts +537 -0
  89. package/packages/sdk/src/__tests__/communicate/a2a-types.test.ts +297 -0
  90. package/packages/sdk/src/__tests__/communicate/adapters/claude-sdk.test.ts +163 -0
  91. package/packages/sdk/src/__tests__/communicate/adapters/crewai.test.ts +219 -0
  92. package/packages/sdk/src/__tests__/communicate/adapters/e2e-crewai.test.ts +101 -0
  93. package/packages/sdk/src/__tests__/communicate/adapters/e2e-google-adk.test.ts +166 -0
  94. package/packages/sdk/src/__tests__/communicate/adapters/e2e-langgraph.test.ts +181 -0
  95. package/packages/sdk/src/__tests__/communicate/adapters/e2e-openai-agents.test.ts +137 -0
  96. package/packages/sdk/src/__tests__/communicate/adapters/e2e-pi.test.ts +140 -0
  97. package/packages/sdk/src/__tests__/communicate/adapters/google-adk.test.ts +200 -0
  98. package/packages/sdk/src/__tests__/communicate/adapters/langgraph.test.ts +162 -0
  99. package/packages/sdk/src/__tests__/communicate/adapters/openai-agents.test.ts +166 -0
  100. package/packages/sdk/src/__tests__/communicate/adapters/pi.test.ts +140 -0
  101. package/packages/sdk/src/__tests__/communicate/core.test.ts +574 -0
  102. package/packages/sdk/src/__tests__/communicate/integration/cross-framework.test.ts +353 -0
  103. package/packages/sdk/src/__tests__/communicate/transport.test.ts +613 -0
  104. package/packages/sdk/src/__tests__/start-from.test.ts +346 -0
  105. package/packages/sdk/src/communicate/a2a-bridge.ts +111 -0
  106. package/packages/sdk/src/communicate/a2a-server.ts +277 -0
  107. package/packages/sdk/src/communicate/a2a-transport.ts +395 -0
  108. package/packages/sdk/src/communicate/a2a-types.ts +338 -0
  109. package/packages/sdk/src/communicate/adapters/claude-sdk.ts +85 -0
  110. package/packages/sdk/src/communicate/adapters/crewai.ts +141 -0
  111. package/packages/sdk/src/communicate/adapters/google-adk.ts +139 -0
  112. package/packages/sdk/src/communicate/adapters/index.ts +6 -0
  113. package/packages/sdk/src/communicate/adapters/langgraph.ts +112 -0
  114. package/packages/sdk/src/communicate/adapters/openai-agents.ts +113 -0
  115. package/packages/sdk/src/communicate/adapters/pi.ts +105 -0
  116. package/packages/sdk/src/communicate/core.ts +157 -0
  117. package/packages/sdk/src/communicate/index.ts +3 -0
  118. package/packages/sdk/src/communicate/transport.ts +489 -0
  119. package/packages/sdk/src/communicate/types.ts +106 -0
  120. package/packages/sdk/src/examples/workflows/fix-dashboard-user-registration.yaml +182 -0
  121. package/packages/sdk/src/workflows/builder.ts +97 -9
  122. package/packages/sdk/src/workflows/cli.ts +16 -1
  123. package/packages/sdk/src/workflows/runner.ts +110 -1
  124. package/packages/sdk/src/workflows/types.ts +14 -0
  125. package/packages/sdk/tsconfig.build.json +1 -7
  126. package/packages/sdk/tsconfig.json +1 -7
  127. package/packages/sdk-py/README.md +67 -25
  128. package/packages/sdk-py/examples/communicate/agno_example.py +8 -0
  129. package/packages/sdk-py/examples/communicate/claude_sdk_example.py +6 -0
  130. package/packages/sdk-py/examples/communicate/crewai_example.py +7 -0
  131. package/packages/sdk-py/examples/communicate/google_adk_example.py +7 -0
  132. package/packages/sdk-py/examples/communicate/openai_agents_example.py +8 -0
  133. package/packages/sdk-py/examples/communicate/swarms_example.py +7 -0
  134. package/packages/sdk-py/pyproject.toml +12 -1
  135. package/packages/sdk-py/src/agent_relay/__init__.py +8 -0
  136. package/packages/sdk-py/src/agent_relay/builder.py +65 -26
  137. package/packages/sdk-py/src/agent_relay/communicate/__init__.py +6 -0
  138. package/packages/sdk-py/src/agent_relay/communicate/a2a_bridge.py +138 -0
  139. package/packages/sdk-py/src/agent_relay/communicate/a2a_server.py +242 -0
  140. package/packages/sdk-py/src/agent_relay/communicate/a2a_transport.py +366 -0
  141. package/packages/sdk-py/src/agent_relay/communicate/a2a_types.py +294 -0
  142. package/packages/sdk-py/src/agent_relay/communicate/adapters/__init__.py +10 -0
  143. package/packages/sdk-py/src/agent_relay/communicate/adapters/agno.py +74 -0
  144. package/packages/sdk-py/src/agent_relay/communicate/adapters/claude_sdk.py +78 -0
  145. package/packages/sdk-py/src/agent_relay/communicate/adapters/crewai.py +143 -0
  146. package/packages/sdk-py/src/agent_relay/communicate/adapters/google_adk.py +69 -0
  147. package/packages/sdk-py/src/agent_relay/communicate/adapters/openai_agents.py +86 -0
  148. package/packages/sdk-py/src/agent_relay/communicate/adapters/pi.py +175 -0
  149. package/packages/sdk-py/src/agent_relay/communicate/adapters/swarms.py +44 -0
  150. package/packages/sdk-py/src/agent_relay/communicate/core.py +293 -0
  151. package/packages/sdk-py/src/agent_relay/communicate/transport.py +502 -0
  152. package/packages/sdk-py/src/agent_relay/communicate/types.py +89 -0
  153. package/packages/sdk-py/src/agent_relay/types.py +2 -1
  154. package/packages/sdk-py/tests/communicate/__init__.py +0 -0
  155. package/packages/sdk-py/tests/communicate/adapters/__init__.py +0 -0
  156. package/packages/sdk-py/tests/communicate/adapters/e2e_test_agno.py +154 -0
  157. package/packages/sdk-py/tests/communicate/adapters/e2e_test_claude_sdk.py +428 -0
  158. package/packages/sdk-py/tests/communicate/adapters/e2e_test_crewai.py +234 -0
  159. package/packages/sdk-py/tests/communicate/adapters/e2e_test_google_adk.py +182 -0
  160. package/packages/sdk-py/tests/communicate/adapters/e2e_test_langgraph.py +262 -0
  161. package/packages/sdk-py/tests/communicate/adapters/e2e_test_openai_agents.py +88 -0
  162. package/packages/sdk-py/tests/communicate/adapters/e2e_test_pi.py +156 -0
  163. package/packages/sdk-py/tests/communicate/adapters/e2e_test_swarms.py +239 -0
  164. package/packages/sdk-py/tests/communicate/adapters/test_agno.py +140 -0
  165. package/packages/sdk-py/tests/communicate/adapters/test_claude_sdk.py +147 -0
  166. package/packages/sdk-py/tests/communicate/adapters/test_crewai.py +136 -0
  167. package/packages/sdk-py/tests/communicate/adapters/test_google_adk.py +125 -0
  168. package/packages/sdk-py/tests/communicate/adapters/test_openai_agents.py +99 -0
  169. package/packages/sdk-py/tests/communicate/adapters/test_pi.py +270 -0
  170. package/packages/sdk-py/tests/communicate/adapters/test_swarms.py +113 -0
  171. package/packages/sdk-py/tests/communicate/conftest.py +555 -0
  172. package/packages/sdk-py/tests/communicate/integration/__init__.py +1 -0
  173. package/packages/sdk-py/tests/communicate/integration/test_cross_framework.py +331 -0
  174. package/packages/sdk-py/tests/communicate/integration/test_end_to_end.py +151 -0
  175. package/packages/sdk-py/tests/communicate/test_a2a_bridge.py +363 -0
  176. package/packages/sdk-py/tests/communicate/test_a2a_server.py +346 -0
  177. package/packages/sdk-py/tests/communicate/test_a2a_transport.py +561 -0
  178. package/packages/sdk-py/tests/communicate/test_a2a_types.py +342 -0
  179. package/packages/sdk-py/tests/communicate/test_auto_detect.py +67 -0
  180. package/packages/sdk-py/tests/communicate/test_core.py +331 -0
  181. package/packages/sdk-py/tests/communicate/test_transport.py +373 -0
  182. package/packages/sdk-py/tests/communicate/test_types.py +285 -0
  183. package/packages/sdk-py/tests/test_builder_deterministic.py +118 -0
  184. package/packages/telemetry/package.json +1 -1
  185. package/packages/trajectory/package.json +2 -2
  186. package/packages/user-directory/package.json +2 -2
  187. package/packages/utils/package.json +2 -2
  188. package/packages/sdk/dist/__tests__/completion-pipeline.test.d.ts +0 -14
  189. package/packages/sdk/dist/__tests__/completion-pipeline.test.d.ts.map +0 -1
  190. package/packages/sdk/dist/__tests__/completion-pipeline.test.js +0 -1476
  191. package/packages/sdk/dist/__tests__/completion-pipeline.test.js.map +0 -1
  192. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts +0 -2
  193. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts.map +0 -1
  194. package/packages/sdk/dist/__tests__/contract-fixtures.test.js +0 -152
  195. package/packages/sdk/dist/__tests__/contract-fixtures.test.js.map +0 -1
  196. package/packages/sdk/dist/__tests__/e2e-owner-review.test.d.ts +0 -16
  197. package/packages/sdk/dist/__tests__/e2e-owner-review.test.d.ts.map +0 -1
  198. package/packages/sdk/dist/__tests__/e2e-owner-review.test.js +0 -640
  199. package/packages/sdk/dist/__tests__/e2e-owner-review.test.js.map +0 -1
  200. package/packages/sdk/dist/__tests__/facade.test.d.ts +0 -2
  201. package/packages/sdk/dist/__tests__/facade.test.d.ts.map +0 -1
  202. package/packages/sdk/dist/__tests__/facade.test.js +0 -305
  203. package/packages/sdk/dist/__tests__/facade.test.js.map +0 -1
  204. package/packages/sdk/dist/__tests__/integration.test.d.ts +0 -2
  205. package/packages/sdk/dist/__tests__/integration.test.d.ts.map +0 -1
  206. package/packages/sdk/dist/__tests__/integration.test.js +0 -205
  207. package/packages/sdk/dist/__tests__/integration.test.js.map +0 -1
  208. package/packages/sdk/dist/__tests__/pty.test.d.ts +0 -2
  209. package/packages/sdk/dist/__tests__/pty.test.d.ts.map +0 -1
  210. package/packages/sdk/dist/__tests__/pty.test.js +0 -20
  211. package/packages/sdk/dist/__tests__/pty.test.js.map +0 -1
  212. package/packages/sdk/dist/__tests__/quickstart.test.d.ts +0 -2
  213. package/packages/sdk/dist/__tests__/quickstart.test.d.ts.map +0 -1
  214. package/packages/sdk/dist/__tests__/quickstart.test.js +0 -176
  215. package/packages/sdk/dist/__tests__/quickstart.test.js.map +0 -1
  216. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts +0 -2
  217. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts.map +0 -1
  218. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +0 -222
  219. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +0 -1
  220. package/packages/sdk/dist/__tests__/unit.test.d.ts +0 -2
  221. package/packages/sdk/dist/__tests__/unit.test.d.ts.map +0 -1
  222. package/packages/sdk/dist/__tests__/unit.test.js +0 -357
  223. package/packages/sdk/dist/__tests__/unit.test.js.map +0 -1
  224. package/packages/sdk-py/agent_relay/__init__.py +0 -21
  225. package/packages/sdk-py/agent_relay/models.py +0 -398
@@ -0,0 +1,209 @@
1
+ /**
2
+ * A2A (Agent-to-Agent) protocol data model types.
3
+ */
4
+ import { randomUUID } from 'node:crypto';
5
+ export const VALID_TASK_STATES = new Set([
6
+ 'submitted',
7
+ 'working',
8
+ 'completed',
9
+ 'failed',
10
+ 'canceled',
11
+ ]);
12
+ // --- Factories ---
13
+ export function createA2APart(text) {
14
+ const part = {};
15
+ if (text !== undefined)
16
+ part.text = text;
17
+ return part;
18
+ }
19
+ export function createA2AMessage(role, parts, opts) {
20
+ return {
21
+ role,
22
+ parts,
23
+ messageId: opts?.messageId ?? randomUUID(),
24
+ contextId: opts?.contextId,
25
+ taskId: opts?.taskId,
26
+ };
27
+ }
28
+ export function createA2ATaskStatus(state, message) {
29
+ return {
30
+ state,
31
+ message,
32
+ timestamp: new Date().toISOString(),
33
+ };
34
+ }
35
+ export function createA2ATask(id, contextId) {
36
+ return {
37
+ id,
38
+ contextId,
39
+ status: createA2ATaskStatus('submitted'),
40
+ messages: [],
41
+ artifacts: [],
42
+ };
43
+ }
44
+ export function createA2AAgentCard(name, description, url, skills = []) {
45
+ return {
46
+ name,
47
+ description,
48
+ url,
49
+ version: '1.0.0',
50
+ capabilities: { streaming: true, pushNotifications: false },
51
+ skills,
52
+ defaultInputModes: ['text'],
53
+ defaultOutputModes: ['text'],
54
+ };
55
+ }
56
+ // --- Serialization helpers ---
57
+ export function a2aPartToDict(part) {
58
+ const d = {};
59
+ if (part.text !== undefined)
60
+ d.text = part.text;
61
+ if (part.file !== undefined)
62
+ d.file = part.file;
63
+ if (part.data !== undefined)
64
+ d.data = part.data;
65
+ return d;
66
+ }
67
+ export function a2aPartFromDict(d) {
68
+ return {
69
+ text: d.text,
70
+ file: d.file,
71
+ data: d.data,
72
+ };
73
+ }
74
+ export function a2aMessageToDict(msg) {
75
+ const d = {
76
+ role: msg.role,
77
+ parts: msg.parts.map(a2aPartToDict),
78
+ };
79
+ if (msg.messageId !== undefined)
80
+ d.messageId = msg.messageId;
81
+ if (msg.contextId !== undefined)
82
+ d.contextId = msg.contextId;
83
+ if (msg.taskId !== undefined)
84
+ d.taskId = msg.taskId;
85
+ return d;
86
+ }
87
+ export function a2aMessageFromDict(d) {
88
+ const parts = (d.parts ?? []).map(a2aPartFromDict);
89
+ return {
90
+ role: d.role,
91
+ parts,
92
+ messageId: d.messageId,
93
+ contextId: d.contextId,
94
+ taskId: d.taskId,
95
+ };
96
+ }
97
+ export function a2aMessageGetText(msg) {
98
+ return msg.parts
99
+ .filter((p) => p.text)
100
+ .map((p) => p.text)
101
+ .join(' ');
102
+ }
103
+ export function a2aTaskStatusToDict(status) {
104
+ const d = { state: status.state };
105
+ if (status.message !== undefined)
106
+ d.message = a2aMessageToDict(status.message);
107
+ if (status.timestamp !== undefined)
108
+ d.timestamp = status.timestamp;
109
+ return d;
110
+ }
111
+ export function a2aTaskStatusFromDict(d) {
112
+ let message;
113
+ if (d.message !== undefined && d.message !== null) {
114
+ message = a2aMessageFromDict(d.message);
115
+ }
116
+ return {
117
+ state: d.state,
118
+ message,
119
+ timestamp: d.timestamp,
120
+ };
121
+ }
122
+ export function a2aTaskToDict(task) {
123
+ return {
124
+ id: task.id,
125
+ contextId: task.contextId,
126
+ status: a2aTaskStatusToDict(task.status),
127
+ messages: task.messages.map(a2aMessageToDict),
128
+ artifacts: task.artifacts,
129
+ };
130
+ }
131
+ export function a2aTaskFromDict(d) {
132
+ const status = d.status
133
+ ? a2aTaskStatusFromDict(d.status)
134
+ : createA2ATaskStatus('submitted');
135
+ const messages = (d.messages ?? []).map(a2aMessageFromDict);
136
+ return {
137
+ id: d.id,
138
+ contextId: d.contextId,
139
+ status,
140
+ messages,
141
+ artifacts: d.artifacts ?? [],
142
+ };
143
+ }
144
+ export function a2aSkillToDict(skill) {
145
+ return { id: skill.id, name: skill.name, description: skill.description };
146
+ }
147
+ export function a2aSkillFromDict(d) {
148
+ return {
149
+ id: d.id,
150
+ name: d.name,
151
+ description: d.description,
152
+ };
153
+ }
154
+ export function a2aAgentCardToDict(card) {
155
+ return {
156
+ name: card.name,
157
+ description: card.description,
158
+ url: card.url,
159
+ version: card.version,
160
+ capabilities: card.capabilities,
161
+ skills: card.skills.map(a2aSkillToDict),
162
+ defaultInputModes: card.defaultInputModes,
163
+ defaultOutputModes: card.defaultOutputModes,
164
+ };
165
+ }
166
+ export function a2aAgentCardFromDict(d) {
167
+ const skills = (d.skills ?? []).map(a2aSkillFromDict);
168
+ return {
169
+ name: d.name,
170
+ description: d.description,
171
+ url: d.url,
172
+ version: d.version ?? '1.0.0',
173
+ capabilities: d.capabilities ?? {
174
+ streaming: true,
175
+ pushNotifications: false,
176
+ },
177
+ skills,
178
+ defaultInputModes: d.defaultInputModes ?? ['text'],
179
+ defaultOutputModes: d.defaultOutputModes ?? ['text'],
180
+ };
181
+ }
182
+ export function makeJsonRpcRequest(method, params, id) {
183
+ return {
184
+ jsonrpc: '2.0',
185
+ method,
186
+ params,
187
+ id: id ?? randomUUID(),
188
+ };
189
+ }
190
+ export function makeJsonRpcResponse(result, id) {
191
+ return { jsonrpc: '2.0', result, id };
192
+ }
193
+ export function makeJsonRpcError(code, message, id) {
194
+ return {
195
+ jsonrpc: '2.0',
196
+ error: { code, message },
197
+ id,
198
+ };
199
+ }
200
+ // Standard JSON-RPC error codes
201
+ export const JSONRPC_PARSE_ERROR = -32700;
202
+ export const JSONRPC_INVALID_REQUEST = -32600;
203
+ export const JSONRPC_METHOD_NOT_FOUND = -32601;
204
+ export const JSONRPC_INVALID_PARAMS = -32602;
205
+ export const JSONRPC_INTERNAL_ERROR = -32603;
206
+ // A2A-specific error codes
207
+ export const A2A_TASK_NOT_FOUND = -32001;
208
+ export const A2A_TASK_NOT_CANCELABLE = -32002;
209
+ //# sourceMappingURL=a2a-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-types.js","sourceRoot":"","sources":["../../src/communicate/a2a-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type Message } from '../types.js';
2
+ type HookResult = {
3
+ continue?: boolean;
4
+ systemMessage?: string;
5
+ };
6
+ type HookCallback = (...args: unknown[]) => Promise<HookResult>;
7
+ type HookMatcher = {
8
+ matcher?: string;
9
+ hooks: HookCallback[];
10
+ timeout?: number;
11
+ };
12
+ type ClaudeOptionsLike = {
13
+ mcpServers?: Record<string, unknown>;
14
+ hooks?: Partial<Record<'PostToolUse' | 'Stop', HookMatcher[]>>;
15
+ };
16
+ type RelayLike = {
17
+ inbox(): Promise<Message[]>;
18
+ };
19
+ /**
20
+ * Attach relay communication to Claude Agent SDK options via MCP server and hooks.
21
+ * @param _name - Agent name for relay registration.
22
+ * @param options - Claude SDK query options to augment.
23
+ * @param relay - Optional pre-configured Relay instance.
24
+ * @returns Augmented options with relaycast MCP server and inbox-draining hooks.
25
+ */
26
+ export declare function onRelay<TOptions extends ClaudeOptionsLike>(_name: string, options: TOptions, relay?: RelayLike): TOptions;
27
+ export {};
28
+ //# sourceMappingURL=claude-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../../src/communicate/adapters/claude-sdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE/D,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEhE,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC7B,CAAC;AAwBF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,QAAQ,SAAS,iBAAiB,EACxD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EACjB,KAAK,GAAE,SAA4B,GAClC,QAAQ,CA0BV"}
@@ -0,0 +1,47 @@
1
+ import { Relay } from '../core.js';
2
+ import { formatRelayMessage } from '../types.js';
3
+ function appendHook(hooks, event, callback) {
4
+ const matchers = [...(hooks?.[event] ?? []), { hooks: [callback] }];
5
+ return {
6
+ ...hooks,
7
+ [event]: matchers,
8
+ };
9
+ }
10
+ async function drainInbox(relay) {
11
+ const messages = await relay.inbox();
12
+ if (messages.length === 0) {
13
+ return undefined;
14
+ }
15
+ return `New messages from other agents:\n${messages.map((message) => formatRelayMessage(message)).join('\n')}`;
16
+ }
17
+ /**
18
+ * Attach relay communication to Claude Agent SDK options via MCP server and hooks.
19
+ * @param _name - Agent name for relay registration.
20
+ * @param options - Claude SDK query options to augment.
21
+ * @param relay - Optional pre-configured Relay instance.
22
+ * @returns Augmented options with relaycast MCP server and inbox-draining hooks.
23
+ */
24
+ export function onRelay(_name, options, relay = new Relay(_name)) {
25
+ const mcpServers = {
26
+ ...(options.mcpServers ?? {}),
27
+ relaycast: {
28
+ command: 'agent-relay',
29
+ args: ['mcp'],
30
+ },
31
+ };
32
+ let hooks = options.hooks;
33
+ hooks = appendHook(hooks, 'PostToolUse', async () => {
34
+ const systemMessage = await drainInbox(relay);
35
+ return systemMessage ? { systemMessage } : {};
36
+ });
37
+ hooks = appendHook(hooks, 'Stop', async () => {
38
+ const systemMessage = await drainInbox(relay);
39
+ return systemMessage ? { continue: true, systemMessage } : {};
40
+ });
41
+ return {
42
+ ...options,
43
+ mcpServers,
44
+ hooks,
45
+ };
46
+ }
47
+ //# sourceMappingURL=claude-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-sdk.js","sourceRoot":"","sources":["../../../src/communicate/adapters/claude-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAgB,MAAM,aAAa,CAAC;AAwB/D,SAAS,UAAU,CACjB,KAAiC,EACjC,KAA6B,EAC7B,QAAsB;IAEtB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpE,OAAO;QACL,GAAG,KAAK;QACR,CAAC,KAAK,CAAC,EAAE,QAAQ;KAClB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAgB;IACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,oCAAoC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACjH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,OAAiB,EACjB,QAAmB,IAAI,KAAK,CAAC,KAAK,CAAC;IAEnC,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC7B,SAAS,EAAE;YACT,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,CAAC,KAAK,CAAC;SACd;KACF,CAAC;IAEF,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE1B,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,OAAO;QACV,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { type Message, type MessageCallback } from '../types.js';
2
+ type CrewAIAgentLike = {
3
+ role: string;
4
+ tools: any[];
5
+ step_callback?: ((step: any) => void) | null;
6
+ };
7
+ type CrewAICrewLike = {
8
+ agents: CrewAIAgentLike[];
9
+ task_callback?: ((output: any) => void) | null;
10
+ };
11
+ type RelayLike = {
12
+ send(to: string, text: string): Promise<void>;
13
+ post(channel: string, text: string): Promise<void>;
14
+ inbox(): Promise<Message[]>;
15
+ agents(): Promise<string[]>;
16
+ onMessage(callback: MessageCallback): () => void;
17
+ };
18
+ /**
19
+ * Attach relay communication tools and message routing to a CrewAI Agent.
20
+ *
21
+ * Adds relay tools to the agent's `tools` array and installs a `step_callback`
22
+ * that receives incoming relay messages.
23
+ *
24
+ * @param agent - A CrewAI Agent instance (or duck-typed equivalent).
25
+ * @param relay - Optional pre-configured Relay instance.
26
+ * @returns Object with an `unsubscribe` function to stop message routing.
27
+ */
28
+ export declare function onRelay(agent: CrewAIAgentLike, relay?: RelayLike): {
29
+ unsubscribe: () => void;
30
+ };
31
+ /**
32
+ * Attach relay communication tools to all agents in a CrewAI Crew.
33
+ *
34
+ * @param crew - A CrewAI Crew instance (or duck-typed equivalent).
35
+ * @param relay - Optional pre-configured Relay instance.
36
+ * @returns Object with an `unsubscribe` function to stop all message routing.
37
+ */
38
+ export declare function onCrewRelay(crew: CrewAICrewLike, relay?: RelayLike): {
39
+ unsubscribe: () => void;
40
+ };
41
+ export {};
42
+ //# sourceMappingURL=crewai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewai.d.ts","sourceRoot":"","sources":["../../../src/communicate/adapters/crewai.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAavG,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;CAClD,CAAC;AAqCF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,eAAe,EACtB,KAAK,CAAC,EAAE,SAAS,GAChB;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAgC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,KAAK,CAAC,EAAE,SAAS,GAChB;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAe7B"}
@@ -0,0 +1,95 @@
1
+ import { Relay } from '../core.js';
2
+ import { formatRelayInbox, formatRelayMessage } from '../types.js';
3
+ function createRelayTools(relay) {
4
+ return [
5
+ {
6
+ tool_name: 'relay_send',
7
+ description: 'Send a direct message to another relay agent.',
8
+ async execute(args) {
9
+ await relay.send(args.to, args.text);
10
+ return `Sent relay message to ${args.to}.`;
11
+ },
12
+ },
13
+ {
14
+ tool_name: 'relay_inbox',
15
+ description: 'Drain and inspect newly received relay messages.',
16
+ async execute() {
17
+ return formatRelayInbox(await relay.inbox());
18
+ },
19
+ },
20
+ {
21
+ tool_name: 'relay_post',
22
+ description: 'Post a message to a relay channel.',
23
+ async execute(args) {
24
+ await relay.post(args.channel, args.text);
25
+ return `Posted relay message to #${args.channel}.`;
26
+ },
27
+ },
28
+ {
29
+ tool_name: 'relay_agents',
30
+ description: 'List currently online relay agents.',
31
+ async execute() {
32
+ return (await relay.agents()).join('\n');
33
+ },
34
+ },
35
+ ];
36
+ }
37
+ /**
38
+ * Attach relay communication tools and message routing to a CrewAI Agent.
39
+ *
40
+ * Adds relay tools to the agent's `tools` array and installs a `step_callback`
41
+ * that receives incoming relay messages.
42
+ *
43
+ * @param agent - A CrewAI Agent instance (or duck-typed equivalent).
44
+ * @param relay - Optional pre-configured Relay instance.
45
+ * @returns Object with an `unsubscribe` function to stop message routing.
46
+ */
47
+ export function onRelay(agent, relay) {
48
+ const relayInstance = relay ?? new Relay(agent.role);
49
+ const relayTools = createRelayTools(relayInstance);
50
+ // Append relay tools to agent's tools array
51
+ for (const tool of relayTools) {
52
+ agent.tools.push(tool);
53
+ }
54
+ // Install message routing via step_callback
55
+ const originalCallback = agent.step_callback;
56
+ const unsubscribe = relayInstance.onMessage(async (message) => {
57
+ const formatted = formatRelayMessage(message);
58
+ // Route relay messages through the original callback if one exists
59
+ if (originalCallback) {
60
+ originalCallback({ relay_message: formatted });
61
+ }
62
+ });
63
+ // Compose original callback with relay step forwarding
64
+ if (originalCallback) {
65
+ agent.step_callback = (step) => {
66
+ // Forward non-relay steps to original callback
67
+ if (!step?.relay_message) {
68
+ originalCallback(step);
69
+ }
70
+ };
71
+ }
72
+ return { unsubscribe };
73
+ }
74
+ /**
75
+ * Attach relay communication tools to all agents in a CrewAI Crew.
76
+ *
77
+ * @param crew - A CrewAI Crew instance (or duck-typed equivalent).
78
+ * @param relay - Optional pre-configured Relay instance.
79
+ * @returns Object with an `unsubscribe` function to stop all message routing.
80
+ */
81
+ export function onCrewRelay(crew, relay) {
82
+ const unsubscribers = [];
83
+ for (const agent of crew.agents) {
84
+ const result = onRelay(agent, relay);
85
+ unsubscribers.push(result.unsubscribe);
86
+ }
87
+ return {
88
+ unsubscribe() {
89
+ for (const unsub of unsubscribers) {
90
+ unsub();
91
+ }
92
+ },
93
+ };
94
+ }
95
+ //# sourceMappingURL=crewai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewai.js","sourceRoot":"","sources":["../../../src/communicate/adapters/crewai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { type Message, type MessageCallback } from '../types.js';
2
+ type FunctionToolLike = {
3
+ name: string;
4
+ description: string;
5
+ };
6
+ type ToolUnionLike = FunctionToolLike;
7
+ type RunnerLike = {
8
+ runAsync(params: {
9
+ userId: string;
10
+ sessionId: string;
11
+ newMessage: {
12
+ role: string;
13
+ parts: Array<{
14
+ text: string;
15
+ }>;
16
+ };
17
+ }): AsyncGenerator<unknown, void, undefined>;
18
+ };
19
+ type LlmAgentLike = {
20
+ name: string;
21
+ tools: ToolUnionLike[];
22
+ };
23
+ type RelayLike = {
24
+ send(to: string, text: string): Promise<void>;
25
+ post(channel: string, text: string): Promise<void>;
26
+ inbox(): Promise<Message[]>;
27
+ agents(): Promise<string[]>;
28
+ onMessage(callback: MessageCallback): () => void;
29
+ };
30
+ interface GoogleAdkRelayOptions {
31
+ /** Google ADK LlmAgent instance. */
32
+ agent: LlmAgentLike;
33
+ /** Optional Runner for routing incoming messages to the agent. */
34
+ runner?: RunnerLike;
35
+ /** User ID for runner sessions. Defaults to 'relay'. */
36
+ userId?: string;
37
+ /** Session ID for runner sessions. Defaults to 'relay-session'. */
38
+ sessionId?: string;
39
+ }
40
+ /**
41
+ * Attach relay communication tools and message routing to a Google ADK agent.
42
+ * @param name - Agent name for relay registration.
43
+ * @param options - Google ADK agent and optional runner configuration.
44
+ * @param relay - Optional pre-configured Relay instance.
45
+ * @returns Object with the augmented agent, an unsubscribe function, and the relay tools added.
46
+ */
47
+ export declare function onRelay(name: string, options: GoogleAdkRelayOptions, relay?: RelayLike): {
48
+ agent: LlmAgentLike;
49
+ tools: FunctionToolLike[];
50
+ unsubscribe: () => void;
51
+ };
52
+ export {};
53
+ //# sourceMappingURL=google-adk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-adk.d.ts","sourceRoot":"","sources":["../../../src/communicate/adapters/google-adk.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAQvG,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG,gBAAgB,CAAC;AAEtC,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC;KAC9D,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;CAC9C,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;CAClD,CAAC;AAEF,UAAU,qBAAqB;IAC7B,oCAAoC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,kEAAkE;IAClE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwDD;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,EAC9B,KAAK,GAAE,SAA2B,GACjC;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAyB7E"}
@@ -0,0 +1,77 @@
1
+ import { Relay } from '../core.js';
2
+ import { formatRelayInbox, formatRelayMessage } from '../types.js';
3
+ /**
4
+ * Create a FunctionTool-shaped object for Google ADK.
5
+ * We construct the tool objects duck-typed to avoid importing the actual
6
+ * FunctionTool class (which requires @google/genai at runtime).
7
+ */
8
+ function createRelayFunctionTools(relay) {
9
+ // We dynamically import FunctionTool to create real ADK tool instances
10
+ // For now, we build tool-like objects that match the FunctionTool constructor shape
11
+ // and lazily construct them.
12
+ const toolDefs = [
13
+ {
14
+ name: 'relay_send',
15
+ description: 'Send a direct message to another relay agent.',
16
+ parameters: { type: 'object', properties: { to: { type: 'string' }, text: { type: 'string' } }, required: ['to', 'text'] },
17
+ async execute(input) {
18
+ await relay.send(input.to, input.text);
19
+ return { result: `Sent relay message to ${input.to}.` };
20
+ },
21
+ },
22
+ {
23
+ name: 'relay_inbox',
24
+ description: 'Drain and inspect newly received relay messages.',
25
+ parameters: { type: 'object', properties: {}, required: [] },
26
+ async execute() {
27
+ return { result: formatRelayInbox(await relay.inbox()) };
28
+ },
29
+ },
30
+ {
31
+ name: 'relay_post',
32
+ description: 'Post a message to a relay channel.',
33
+ parameters: { type: 'object', properties: { channel: { type: 'string' }, text: { type: 'string' } }, required: ['channel', 'text'] },
34
+ async execute(input) {
35
+ await relay.post(input.channel, input.text);
36
+ return { result: `Posted relay message to #${input.channel}.` };
37
+ },
38
+ },
39
+ {
40
+ name: 'relay_agents',
41
+ description: 'List currently online relay agents.',
42
+ parameters: { type: 'object', properties: {}, required: [] },
43
+ async execute() {
44
+ return { result: (await relay.agents()).join('\n') };
45
+ },
46
+ },
47
+ ];
48
+ return toolDefs;
49
+ }
50
+ /**
51
+ * Attach relay communication tools and message routing to a Google ADK agent.
52
+ * @param name - Agent name for relay registration.
53
+ * @param options - Google ADK agent and optional runner configuration.
54
+ * @param relay - Optional pre-configured Relay instance.
55
+ * @returns Object with the augmented agent, an unsubscribe function, and the relay tools added.
56
+ */
57
+ export function onRelay(name, options, relay = new Relay(name)) {
58
+ const { agent, runner, userId = 'relay', sessionId = 'relay-session' } = options;
59
+ const relayTools = createRelayFunctionTools(relay);
60
+ // Append relay tools to the agent's tool list
61
+ for (const tool of relayTools) {
62
+ agent.tools.push(tool);
63
+ }
64
+ let unsubscribe = () => { };
65
+ if (runner) {
66
+ unsubscribe = relay.onMessage(async (message) => {
67
+ const prompt = formatRelayMessage(message);
68
+ const content = { role: 'user', parts: [{ text: prompt }] };
69
+ // Drain the async generator to completion
70
+ for await (const _event of runner.runAsync({ userId, sessionId, newMessage: content })) {
71
+ // Events are consumed; the agent handles them internally.
72
+ }
73
+ });
74
+ }
75
+ return { agent, tools: relayTools, unsubscribe };
76
+ }
77
+ //# sourceMappingURL=google-adk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-adk.js","sourceRoot":"","sources":["../../../src/communicate/adapters/google-adk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { onRelay as onPiRelay } from './pi.js';
2
+ export { onRelay as onClaudeRelay } from './claude-sdk.js';
3
+ export { onRelay as onCrewAIRelay, onCrewRelay } from './crewai.js';
4
+ export { onRelay as onOpenAIAgentsRelay } from './openai-agents.js';
5
+ export { onRelay as onLangGraphRelay } from './langgraph.js';
6
+ export { onRelay as onGoogleAdkRelay } from './google-adk.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/communicate/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { onRelay as onPiRelay } from './pi.js';
2
+ export { onRelay as onClaudeRelay } from './claude-sdk.js';
3
+ export { onRelay as onCrewAIRelay, onCrewRelay } from './crewai.js';
4
+ export { onRelay as onOpenAIAgentsRelay } from './openai-agents.js';
5
+ export { onRelay as onLangGraphRelay } from './langgraph.js';
6
+ export { onRelay as onGoogleAdkRelay } from './google-adk.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/communicate/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}