@xynehq/jaf 0.1.2

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 (279) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +596 -0
  3. package/dist/a2a/agent-card.d.ts +28 -0
  4. package/dist/a2a/agent-card.d.ts.map +1 -0
  5. package/dist/a2a/agent-card.js +250 -0
  6. package/dist/a2a/agent-card.js.map +1 -0
  7. package/dist/a2a/agent.d.ts +38 -0
  8. package/dist/a2a/agent.d.ts.map +1 -0
  9. package/dist/a2a/agent.js +223 -0
  10. package/dist/a2a/agent.js.map +1 -0
  11. package/dist/a2a/client.d.ts +35 -0
  12. package/dist/a2a/client.d.ts.map +1 -0
  13. package/dist/a2a/client.js +337 -0
  14. package/dist/a2a/client.js.map +1 -0
  15. package/dist/a2a/examples/client-example.d.ts +104 -0
  16. package/dist/a2a/examples/client-example.d.ts.map +1 -0
  17. package/dist/a2a/examples/client-example.js +232 -0
  18. package/dist/a2a/examples/client-example.js.map +1 -0
  19. package/dist/a2a/examples/server-example.d.ts +9 -0
  20. package/dist/a2a/examples/server-example.d.ts.map +1 -0
  21. package/dist/a2a/examples/server-example.js +209 -0
  22. package/dist/a2a/examples/server-example.js.map +1 -0
  23. package/dist/a2a/examples/weather-agent.d.ts +8 -0
  24. package/dist/a2a/examples/weather-agent.d.ts.map +1 -0
  25. package/dist/a2a/examples/weather-agent.js +232 -0
  26. package/dist/a2a/examples/weather-agent.js.map +1 -0
  27. package/dist/a2a/executor.d.ts +43 -0
  28. package/dist/a2a/executor.d.ts.map +1 -0
  29. package/dist/a2a/executor.js +507 -0
  30. package/dist/a2a/executor.js.map +1 -0
  31. package/dist/a2a/index.d.ts +378 -0
  32. package/dist/a2a/index.d.ts.map +1 -0
  33. package/dist/a2a/index.js +72 -0
  34. package/dist/a2a/index.js.map +1 -0
  35. package/dist/a2a/memory/cleanup.d.ts +58 -0
  36. package/dist/a2a/memory/cleanup.d.ts.map +1 -0
  37. package/dist/a2a/memory/cleanup.js +281 -0
  38. package/dist/a2a/memory/cleanup.js.map +1 -0
  39. package/dist/a2a/memory/factory.d.ts +38 -0
  40. package/dist/a2a/memory/factory.d.ts.map +1 -0
  41. package/dist/a2a/memory/factory.js +369 -0
  42. package/dist/a2a/memory/factory.js.map +1 -0
  43. package/dist/a2a/memory/index.d.ts +13 -0
  44. package/dist/a2a/memory/index.d.ts.map +1 -0
  45. package/dist/a2a/memory/index.js +16 -0
  46. package/dist/a2a/memory/index.js.map +1 -0
  47. package/dist/a2a/memory/providers/in-memory.d.ts +10 -0
  48. package/dist/a2a/memory/providers/in-memory.d.ts.map +1 -0
  49. package/dist/a2a/memory/providers/in-memory.js +539 -0
  50. package/dist/a2a/memory/providers/in-memory.js.map +1 -0
  51. package/dist/a2a/memory/providers/postgres.d.ts +10 -0
  52. package/dist/a2a/memory/providers/postgres.d.ts.map +1 -0
  53. package/dist/a2a/memory/providers/postgres.js +404 -0
  54. package/dist/a2a/memory/providers/postgres.js.map +1 -0
  55. package/dist/a2a/memory/providers/redis.d.ts +10 -0
  56. package/dist/a2a/memory/providers/redis.d.ts.map +1 -0
  57. package/dist/a2a/memory/providers/redis.js +435 -0
  58. package/dist/a2a/memory/providers/redis.js.map +1 -0
  59. package/dist/a2a/memory/serialization.d.ts +53 -0
  60. package/dist/a2a/memory/serialization.d.ts.map +1 -0
  61. package/dist/a2a/memory/serialization.js +233 -0
  62. package/dist/a2a/memory/serialization.js.map +1 -0
  63. package/dist/a2a/memory/types.d.ts +395 -0
  64. package/dist/a2a/memory/types.d.ts.map +1 -0
  65. package/dist/a2a/memory/types.js +85 -0
  66. package/dist/a2a/memory/types.js.map +1 -0
  67. package/dist/a2a/protocol.d.ts +38 -0
  68. package/dist/a2a/protocol.d.ts.map +1 -0
  69. package/dist/a2a/protocol.js +211 -0
  70. package/dist/a2a/protocol.js.map +1 -0
  71. package/dist/a2a/server.d.ts +343 -0
  72. package/dist/a2a/server.d.ts.map +1 -0
  73. package/dist/a2a/server.js +362 -0
  74. package/dist/a2a/server.js.map +1 -0
  75. package/dist/a2a/types.d.ts +730 -0
  76. package/dist/a2a/types.d.ts.map +1 -0
  77. package/dist/a2a/types.js +73 -0
  78. package/dist/a2a/types.js.map +1 -0
  79. package/dist/adk/agents/index.d.ts +48 -0
  80. package/dist/adk/agents/index.d.ts.map +1 -0
  81. package/dist/adk/agents/index.js +277 -0
  82. package/dist/adk/agents/index.js.map +1 -0
  83. package/dist/adk/artifacts/index.d.ts +62 -0
  84. package/dist/adk/artifacts/index.d.ts.map +1 -0
  85. package/dist/adk/artifacts/index.js +394 -0
  86. package/dist/adk/artifacts/index.js.map +1 -0
  87. package/dist/adk/config/llm-config.d.ts +75 -0
  88. package/dist/adk/config/llm-config.d.ts.map +1 -0
  89. package/dist/adk/config/llm-config.js +422 -0
  90. package/dist/adk/config/llm-config.js.map +1 -0
  91. package/dist/adk/content/index.d.ts +58 -0
  92. package/dist/adk/content/index.d.ts.map +1 -0
  93. package/dist/adk/content/index.js +220 -0
  94. package/dist/adk/content/index.js.map +1 -0
  95. package/dist/adk/examples/advanced-features.d.ts +22 -0
  96. package/dist/adk/examples/advanced-features.d.ts.map +1 -0
  97. package/dist/adk/examples/advanced-features.js +380 -0
  98. package/dist/adk/examples/advanced-features.js.map +1 -0
  99. package/dist/adk/examples/basic-agent.d.ts +28 -0
  100. package/dist/adk/examples/basic-agent.d.ts.map +1 -0
  101. package/dist/adk/examples/basic-agent.js +207 -0
  102. package/dist/adk/examples/basic-agent.js.map +1 -0
  103. package/dist/adk/examples/multi-agent.d.ts +24 -0
  104. package/dist/adk/examples/multi-agent.d.ts.map +1 -0
  105. package/dist/adk/examples/multi-agent.js +321 -0
  106. package/dist/adk/examples/multi-agent.js.map +1 -0
  107. package/dist/adk/examples/streaming-example.d.ts +9 -0
  108. package/dist/adk/examples/streaming-example.d.ts.map +1 -0
  109. package/dist/adk/examples/streaming-example.js +193 -0
  110. package/dist/adk/examples/streaming-example.js.map +1 -0
  111. package/dist/adk/index.d.ts +65 -0
  112. package/dist/adk/index.d.ts.map +1 -0
  113. package/dist/adk/index.js +251 -0
  114. package/dist/adk/index.js.map +1 -0
  115. package/dist/adk/models.d.ts +338 -0
  116. package/dist/adk/models.d.ts.map +1 -0
  117. package/dist/adk/models.js +466 -0
  118. package/dist/adk/models.js.map +1 -0
  119. package/dist/adk/providers/error-handler.d.ts +100 -0
  120. package/dist/adk/providers/error-handler.d.ts.map +1 -0
  121. package/dist/adk/providers/error-handler.js +289 -0
  122. package/dist/adk/providers/error-handler.js.map +1 -0
  123. package/dist/adk/providers/llm-service.d.ts +41 -0
  124. package/dist/adk/providers/llm-service.d.ts.map +1 -0
  125. package/dist/adk/providers/llm-service.js +520 -0
  126. package/dist/adk/providers/llm-service.js.map +1 -0
  127. package/dist/adk/providers/type-converters.d.ts +34 -0
  128. package/dist/adk/providers/type-converters.d.ts.map +1 -0
  129. package/dist/adk/providers/type-converters.js +436 -0
  130. package/dist/adk/providers/type-converters.js.map +1 -0
  131. package/dist/adk/runners/index.d.ts +33 -0
  132. package/dist/adk/runners/index.d.ts.map +1 -0
  133. package/dist/adk/runners/index.js +466 -0
  134. package/dist/adk/runners/index.js.map +1 -0
  135. package/dist/adk/schemas/index.d.ts +85 -0
  136. package/dist/adk/schemas/index.d.ts.map +1 -0
  137. package/dist/adk/schemas/index.js +363 -0
  138. package/dist/adk/schemas/index.js.map +1 -0
  139. package/dist/adk/sessions/examples/session-provider-usage.d.ts +10 -0
  140. package/dist/adk/sessions/examples/session-provider-usage.d.ts.map +1 -0
  141. package/dist/adk/sessions/examples/session-provider-usage.js +145 -0
  142. package/dist/adk/sessions/examples/session-provider-usage.js.map +1 -0
  143. package/dist/adk/sessions/index.d.ts +53 -0
  144. package/dist/adk/sessions/index.d.ts.map +1 -0
  145. package/dist/adk/sessions/index.js +451 -0
  146. package/dist/adk/sessions/index.js.map +1 -0
  147. package/dist/adk/sessions/postgres-provider.d.ts +22 -0
  148. package/dist/adk/sessions/postgres-provider.d.ts.map +1 -0
  149. package/dist/adk/sessions/postgres-provider.js +293 -0
  150. package/dist/adk/sessions/postgres-provider.js.map +1 -0
  151. package/dist/adk/sessions/redis-provider.d.ts +19 -0
  152. package/dist/adk/sessions/redis-provider.d.ts.map +1 -0
  153. package/dist/adk/sessions/redis-provider.js +237 -0
  154. package/dist/adk/sessions/redis-provider.js.map +1 -0
  155. package/dist/adk/streaming/index.d.ts +76 -0
  156. package/dist/adk/streaming/index.d.ts.map +1 -0
  157. package/dist/adk/streaming/index.js +419 -0
  158. package/dist/adk/streaming/index.js.map +1 -0
  159. package/dist/adk/tools/index.d.ts +27 -0
  160. package/dist/adk/tools/index.d.ts.map +1 -0
  161. package/dist/adk/tools/index.js +506 -0
  162. package/dist/adk/tools/index.js.map +1 -0
  163. package/dist/adk/types.d.ts +351 -0
  164. package/dist/adk/types.d.ts.map +1 -0
  165. package/dist/adk/types.js +107 -0
  166. package/dist/adk/types.js.map +1 -0
  167. package/dist/core/engine.d.ts +3 -0
  168. package/dist/core/engine.d.ts.map +1 -0
  169. package/dist/core/engine.js +438 -0
  170. package/dist/core/engine.js.map +1 -0
  171. package/dist/core/errors.d.ts +8 -0
  172. package/dist/core/errors.d.ts.map +1 -0
  173. package/dist/core/errors.js +84 -0
  174. package/dist/core/errors.js.map +1 -0
  175. package/dist/core/tool-results.d.ts +57 -0
  176. package/dist/core/tool-results.d.ts.map +1 -0
  177. package/dist/core/tool-results.js +133 -0
  178. package/dist/core/tool-results.js.map +1 -0
  179. package/dist/core/tracing.d.ts +32 -0
  180. package/dist/core/tracing.d.ts.map +1 -0
  181. package/dist/core/tracing.js +132 -0
  182. package/dist/core/tracing.js.map +1 -0
  183. package/dist/core/types.d.ts +165 -0
  184. package/dist/core/types.d.ts.map +1 -0
  185. package/dist/core/types.js +3 -0
  186. package/dist/core/types.js.map +1 -0
  187. package/dist/demo/agents.d.ts +23 -0
  188. package/dist/demo/agents.d.ts.map +1 -0
  189. package/dist/demo/agents.js +69 -0
  190. package/dist/demo/agents.js.map +1 -0
  191. package/dist/demo/index.d.ts +2 -0
  192. package/dist/demo/index.d.ts.map +1 -0
  193. package/dist/demo/index.js +250 -0
  194. package/dist/demo/index.js.map +1 -0
  195. package/dist/demo/mock-provider.d.ts +22 -0
  196. package/dist/demo/mock-provider.d.ts.map +1 -0
  197. package/dist/demo/mock-provider.js +138 -0
  198. package/dist/demo/mock-provider.js.map +1 -0
  199. package/dist/demo/tools.d.ts +14 -0
  200. package/dist/demo/tools.d.ts.map +1 -0
  201. package/dist/demo/tools.js +115 -0
  202. package/dist/demo/tools.js.map +1 -0
  203. package/dist/index.d.ts +20 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +30 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/memory/factory.d.ts +22 -0
  208. package/dist/memory/factory.d.ts.map +1 -0
  209. package/dist/memory/factory.js +88 -0
  210. package/dist/memory/factory.js.map +1 -0
  211. package/dist/memory/providers/in-memory.d.ts +7 -0
  212. package/dist/memory/providers/in-memory.d.ts.map +1 -0
  213. package/dist/memory/providers/in-memory.js +287 -0
  214. package/dist/memory/providers/in-memory.js.map +1 -0
  215. package/dist/memory/providers/postgres.d.ts +15 -0
  216. package/dist/memory/providers/postgres.d.ts.map +1 -0
  217. package/dist/memory/providers/postgres.js +495 -0
  218. package/dist/memory/providers/postgres.js.map +1 -0
  219. package/dist/memory/providers/redis.d.ts +18 -0
  220. package/dist/memory/providers/redis.d.ts.map +1 -0
  221. package/dist/memory/providers/redis.js +354 -0
  222. package/dist/memory/providers/redis.js.map +1 -0
  223. package/dist/memory/types.d.ts +296 -0
  224. package/dist/memory/types.d.ts.map +1 -0
  225. package/dist/memory/types.js +93 -0
  226. package/dist/memory/types.js.map +1 -0
  227. package/dist/policies/handoff.d.ts +16 -0
  228. package/dist/policies/handoff.d.ts.map +1 -0
  229. package/dist/policies/handoff.js +20 -0
  230. package/dist/policies/handoff.js.map +1 -0
  231. package/dist/policies/validation.d.ts +14 -0
  232. package/dist/policies/validation.d.ts.map +1 -0
  233. package/dist/policies/validation.js +92 -0
  234. package/dist/policies/validation.js.map +1 -0
  235. package/dist/providers/mcp.d.ts +17 -0
  236. package/dist/providers/mcp.d.ts.map +1 -0
  237. package/dist/providers/mcp.js +111 -0
  238. package/dist/providers/mcp.js.map +1 -0
  239. package/dist/providers/model.d.ts +3 -0
  240. package/dist/providers/model.d.ts.map +1 -0
  241. package/dist/providers/model.js +113 -0
  242. package/dist/providers/model.js.map +1 -0
  243. package/dist/server/index.d.ts +35 -0
  244. package/dist/server/index.d.ts.map +1 -0
  245. package/dist/server/index.js +66 -0
  246. package/dist/server/index.js.map +1 -0
  247. package/dist/server/server.d.ts +12 -0
  248. package/dist/server/server.d.ts.map +1 -0
  249. package/dist/server/server.js +394 -0
  250. package/dist/server/server.js.map +1 -0
  251. package/dist/server/types.d.ts +456 -0
  252. package/dist/server/types.d.ts.map +1 -0
  253. package/dist/server/types.js +75 -0
  254. package/dist/server/types.js.map +1 -0
  255. package/dist/test-utils/db-setup.d.ts +34 -0
  256. package/dist/test-utils/db-setup.d.ts.map +1 -0
  257. package/dist/test-utils/db-setup.js +149 -0
  258. package/dist/test-utils/db-setup.js.map +1 -0
  259. package/dist/utils/logger.d.ts +63 -0
  260. package/dist/utils/logger.d.ts.map +1 -0
  261. package/dist/utils/logger.js +199 -0
  262. package/dist/utils/logger.js.map +1 -0
  263. package/dist/utils/safe-math.d.ts +31 -0
  264. package/dist/utils/safe-math.d.ts.map +1 -0
  265. package/dist/utils/safe-math.js +86 -0
  266. package/dist/utils/safe-math.js.map +1 -0
  267. package/dist/visualization/example.d.ts +9 -0
  268. package/dist/visualization/example.d.ts.map +1 -0
  269. package/dist/visualization/example.js +236 -0
  270. package/dist/visualization/example.js.map +1 -0
  271. package/dist/visualization/graphviz.d.ts +42 -0
  272. package/dist/visualization/graphviz.d.ts.map +1 -0
  273. package/dist/visualization/graphviz.js +403 -0
  274. package/dist/visualization/graphviz.js.map +1 -0
  275. package/dist/visualization/index.d.ts +10 -0
  276. package/dist/visualization/index.d.ts.map +1 -0
  277. package/dist/visualization/index.js +12 -0
  278. package/dist/visualization/index.js.map +1 -0
  279. package/package.json +99 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * Pure functional A2A client
3
+ * All client operations are pure functions
4
+ */
5
+ // Pure function to create A2A client
6
+ export const createA2AClient = (baseUrl, config) => ({
7
+ config: {
8
+ baseUrl: baseUrl.replace(/\/$/, ''), // Remove trailing slash
9
+ timeout: config?.timeout || 30000
10
+ },
11
+ sessionId: `client_${Date.now()}_${Math.random().toString(36).substring(2)}`
12
+ });
13
+ // Pure function to create message request
14
+ export const createMessageRequest = (message, sessionId, configuration) => ({
15
+ jsonrpc: '2.0',
16
+ id: `req_${Date.now()}_${Math.random().toString(36).substring(2)}`,
17
+ method: 'message/send',
18
+ params: {
19
+ message: {
20
+ role: 'user',
21
+ parts: [{ kind: 'text', text: message }],
22
+ messageId: `msg_${Date.now()}_${Math.random().toString(36).substring(2)}`,
23
+ contextId: sessionId,
24
+ kind: 'message'
25
+ },
26
+ configuration
27
+ }
28
+ });
29
+ // Pure function to create streaming message request
30
+ export const createStreamingMessageRequest = (message, sessionId, configuration) => ({
31
+ jsonrpc: '2.0',
32
+ id: `req_${Date.now()}_${Math.random().toString(36).substring(2)}`,
33
+ method: 'message/stream',
34
+ params: {
35
+ message: {
36
+ role: 'user',
37
+ parts: [{ kind: 'text', text: message }],
38
+ messageId: `msg_${Date.now()}_${Math.random().toString(36).substring(2)}`,
39
+ contextId: sessionId,
40
+ kind: 'message'
41
+ },
42
+ configuration
43
+ }
44
+ });
45
+ // Pure function to send HTTP request
46
+ const sendHttpRequest = async (url, body, timeout = 30000) => {
47
+ const controller = new AbortController();
48
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
49
+ try {
50
+ const response = await fetch(url, {
51
+ method: 'POST',
52
+ headers: {
53
+ 'Content-Type': 'application/json',
54
+ 'Accept': 'application/json'
55
+ },
56
+ body: JSON.stringify(body),
57
+ signal: controller.signal
58
+ });
59
+ clearTimeout(timeoutId);
60
+ if (!response.ok) {
61
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
62
+ }
63
+ return await response.json();
64
+ }
65
+ catch (error) {
66
+ clearTimeout(timeoutId);
67
+ if (error instanceof Error && error.name === 'AbortError') {
68
+ throw new Error(`Request timeout after ${timeout}ms`);
69
+ }
70
+ throw error;
71
+ }
72
+ };
73
+ // Pure function to send A2A request
74
+ export const sendA2ARequest = async (client, request) => {
75
+ const url = `${client.config.baseUrl}/a2a`;
76
+ return await sendHttpRequest(url, request, client.config.timeout);
77
+ };
78
+ // Pure function to send message
79
+ export const sendMessage = async (client, message, configuration) => {
80
+ const request = createMessageRequest(message, client.sessionId, configuration);
81
+ const response = await sendA2ARequest(client, request);
82
+ if (response.error) {
83
+ throw new Error(`A2A Error ${response.error.code}: ${response.error.message}`);
84
+ }
85
+ return extractTextResponse(response.result);
86
+ };
87
+ // Pure function to stream message
88
+ export const streamMessage = async function* (client, message, configuration) {
89
+ const request = createStreamingMessageRequest(message, client.sessionId, configuration);
90
+ const url = `${client.config.baseUrl}/a2a`;
91
+ const controller = new AbortController();
92
+ const timeoutId = setTimeout(() => controller.abort(), client.config.timeout);
93
+ try {
94
+ const response = await fetch(url, {
95
+ method: 'POST',
96
+ headers: {
97
+ 'Content-Type': 'application/json',
98
+ 'Accept': 'text/event-stream'
99
+ },
100
+ body: JSON.stringify(request),
101
+ signal: controller.signal
102
+ });
103
+ clearTimeout(timeoutId);
104
+ if (!response.ok) {
105
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
106
+ }
107
+ if (!response.body) {
108
+ throw new Error('No response body for streaming');
109
+ }
110
+ const reader = response.body.getReader();
111
+ const decoder = new TextDecoder();
112
+ let buffer = '';
113
+ try {
114
+ while (true) {
115
+ const { done, value } = await reader.read();
116
+ if (done)
117
+ break;
118
+ buffer += decoder.decode(value, { stream: true });
119
+ const lines = buffer.split('\n');
120
+ buffer = lines.pop() || '';
121
+ for (const line of lines) {
122
+ if (line.startsWith('data: ')) {
123
+ const data = line.slice(6);
124
+ if (data.trim()) {
125
+ try {
126
+ const event = JSON.parse(data);
127
+ if (event.result) {
128
+ yield event.result;
129
+ }
130
+ }
131
+ catch (error) {
132
+ console.warn('Failed to parse SSE data:', data);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ finally {
140
+ reader.releaseLock();
141
+ }
142
+ }
143
+ catch (error) {
144
+ clearTimeout(timeoutId);
145
+ if (error instanceof Error && error.name === 'AbortError') {
146
+ throw new Error(`Stream timeout after ${client.config.timeout}ms`);
147
+ }
148
+ throw error;
149
+ }
150
+ };
151
+ // Pure function to get agent card
152
+ export const getAgentCard = async (client) => {
153
+ const url = `${client.config.baseUrl}/.well-known/agent-card`;
154
+ const response = await fetch(url, {
155
+ method: 'GET',
156
+ headers: {
157
+ 'Accept': 'application/json'
158
+ }
159
+ });
160
+ if (!response.ok) {
161
+ throw new Error(`Failed to get agent card: HTTP ${response.status}`);
162
+ }
163
+ return await response.json();
164
+ };
165
+ // Pure function to discover agents
166
+ export const discoverAgents = async (baseUrl) => {
167
+ const client = createA2AClient(baseUrl);
168
+ return await getAgentCard(client);
169
+ };
170
+ // Pure function to send message to specific agent
171
+ export const sendMessageToAgent = async (client, agentName, message, configuration) => {
172
+ const request = createMessageRequest(message, client.sessionId, configuration);
173
+ const url = `${client.config.baseUrl}/a2a/agents/${agentName}`;
174
+ const response = await sendHttpRequest(url, request, client.config.timeout);
175
+ if (response.error) {
176
+ throw new Error(`A2A Error ${response.error.code}: ${response.error.message}`);
177
+ }
178
+ return extractTextResponse(response.result);
179
+ };
180
+ // Pure function to stream message to specific agent
181
+ export const streamMessageToAgent = async function* (client, agentName, message, configuration) {
182
+ const request = createStreamingMessageRequest(message, client.sessionId, configuration);
183
+ const url = `${client.config.baseUrl}/a2a/agents/${agentName}`;
184
+ // Use same streaming logic as general streamMessage
185
+ yield* streamToUrl(url, request, client.config.timeout);
186
+ };
187
+ // Pure helper function for streaming to URL
188
+ const streamToUrl = async function* (url, request, timeout = 30000) {
189
+ const controller = new AbortController();
190
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
191
+ try {
192
+ const response = await fetch(url, {
193
+ method: 'POST',
194
+ headers: {
195
+ 'Content-Type': 'application/json',
196
+ 'Accept': 'text/event-stream'
197
+ },
198
+ body: JSON.stringify(request),
199
+ signal: controller.signal
200
+ });
201
+ clearTimeout(timeoutId);
202
+ if (!response.ok) {
203
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
204
+ }
205
+ if (!response.body) {
206
+ throw new Error('No response body for streaming');
207
+ }
208
+ const reader = response.body.getReader();
209
+ const decoder = new TextDecoder();
210
+ let buffer = '';
211
+ try {
212
+ while (true) {
213
+ const { done, value } = await reader.read();
214
+ if (done)
215
+ break;
216
+ buffer += decoder.decode(value, { stream: true });
217
+ const lines = buffer.split('\n');
218
+ buffer = lines.pop() || '';
219
+ for (const line of lines) {
220
+ if (line.startsWith('data: ')) {
221
+ const data = line.slice(6);
222
+ if (data.trim()) {
223
+ try {
224
+ const event = JSON.parse(data);
225
+ if (event.result) {
226
+ yield event.result;
227
+ }
228
+ }
229
+ catch (error) {
230
+ console.warn('Failed to parse SSE data:', data);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ finally {
238
+ reader.releaseLock();
239
+ }
240
+ }
241
+ catch (error) {
242
+ clearTimeout(timeoutId);
243
+ if (error instanceof Error && error.name === 'AbortError') {
244
+ throw new Error(`Stream timeout after ${timeout}ms`);
245
+ }
246
+ throw error;
247
+ }
248
+ };
249
+ // Pure function to extract text response
250
+ export const extractTextResponse = (result) => {
251
+ // Handle direct string response
252
+ if (typeof result === 'string') {
253
+ return result;
254
+ }
255
+ // Handle task response
256
+ if (result?.kind === 'task') {
257
+ // Extract from artifacts
258
+ if (result.artifacts?.length > 0) {
259
+ const textArtifact = result.artifacts.find((artifact) => artifact.parts?.some((part) => part.kind === 'text'));
260
+ if (textArtifact) {
261
+ const textPart = textArtifact.parts.find((part) => part.kind === 'text');
262
+ return textPart?.text || 'No text content';
263
+ }
264
+ }
265
+ // Extract from history
266
+ if (result.history?.length > 0) {
267
+ const lastMessage = result.history[result.history.length - 1];
268
+ if (lastMessage?.parts) {
269
+ const textParts = lastMessage.parts
270
+ .filter((part) => part.kind === 'text')
271
+ .map((part) => part.text);
272
+ if (textParts.length > 0) {
273
+ return textParts.join('\n');
274
+ }
275
+ }
276
+ }
277
+ return 'Task completed but no text response available';
278
+ }
279
+ // Handle message response
280
+ if (result?.kind === 'message') {
281
+ if (result.parts) {
282
+ const textParts = result.parts
283
+ .filter((part) => part.kind === 'text')
284
+ .map((part) => part.text);
285
+ if (textParts.length > 0) {
286
+ return textParts.join('\n');
287
+ }
288
+ }
289
+ }
290
+ // Handle object responses
291
+ if (typeof result === 'object' && result !== null) {
292
+ return JSON.stringify(result, null, 2);
293
+ }
294
+ return 'No response content available';
295
+ };
296
+ // Pure function to check A2A server health
297
+ export const checkA2AHealth = async (client) => {
298
+ const url = `${client.config.baseUrl}/a2a/health`;
299
+ const response = await fetch(url, {
300
+ method: 'GET',
301
+ headers: {
302
+ 'Accept': 'application/json'
303
+ }
304
+ });
305
+ if (!response.ok) {
306
+ throw new Error(`Health check failed: HTTP ${response.status}`);
307
+ }
308
+ return await response.json();
309
+ };
310
+ // Pure function to get A2A capabilities
311
+ export const getA2ACapabilities = async (client) => {
312
+ const url = `${client.config.baseUrl}/a2a/capabilities`;
313
+ const response = await fetch(url, {
314
+ method: 'GET',
315
+ headers: {
316
+ 'Accept': 'application/json'
317
+ }
318
+ });
319
+ if (!response.ok) {
320
+ throw new Error(`Capabilities request failed: HTTP ${response.status}`);
321
+ }
322
+ return await response.json();
323
+ };
324
+ // Pure function to connect to A2A agent (convenience function)
325
+ export const connectToA2AAgent = async (baseUrl) => {
326
+ const client = createA2AClient(baseUrl);
327
+ const agentCard = await getAgentCard(client);
328
+ return {
329
+ client,
330
+ agentCard,
331
+ ask: (message, config) => sendMessage(client, message, config),
332
+ stream: (message, config) => streamMessage(client, message, config),
333
+ health: () => checkA2AHealth(client),
334
+ capabilities: () => getA2ACapabilities(client)
335
+ };
336
+ };
337
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/a2a/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Example client usage of A2A protocol with JAF agents
3
+ * Demonstrates all client capabilities in a pure functional way
4
+ */
5
+ export declare const demonstrateBasicUsage: (serverUrl?: string) => Promise<{
6
+ client: import("../types.js").A2AClientState;
7
+ agentCard: import("../types.js").AgentCard;
8
+ health: {
9
+ status: string;
10
+ agents: string[];
11
+ timestamp: string;
12
+ };
13
+ capabilities: any;
14
+ }>;
15
+ export declare const demonstrateWeatherAgent: (serverUrl?: string) => Promise<{
16
+ tokyoWeather: string;
17
+ londonWeather: string;
18
+ travelResponse: string;
19
+ }>;
20
+ export declare const demonstrateCalculatorAgent: (serverUrl?: string) => Promise<{
21
+ basicCalc: string;
22
+ stepsCalc: string;
23
+ equation: string;
24
+ }>;
25
+ export declare const demonstrateStreaming: (serverUrl?: string) => Promise<any[]>;
26
+ export declare const demonstrateMultiAgentConversation: (serverUrl?: string) => Promise<{
27
+ introduction: string;
28
+ weatherInfo: string;
29
+ budgetCalc: string;
30
+ travelPlan: string;
31
+ }>;
32
+ export declare const demonstrateConvenienceAPI: (serverUrl?: string) => Promise<{
33
+ weatherAgent: {
34
+ client: import("../types.js").A2AClientState;
35
+ agentCard: import("../types.js").AgentCard;
36
+ ask: (message: string, config?: any) => Promise<string>;
37
+ stream: (message: string, config?: any) => AsyncGenerator<import("../types.js").A2AStreamEvent, void, unknown>;
38
+ health: () => Promise<{
39
+ status: string;
40
+ agents: string[];
41
+ timestamp: string;
42
+ }>;
43
+ capabilities: () => Promise<any>;
44
+ };
45
+ response: string;
46
+ health: {
47
+ status: string;
48
+ agents: string[];
49
+ timestamp: string;
50
+ };
51
+ capabilities: any;
52
+ }>;
53
+ export declare const runAllDemonstrations: (serverUrl?: string) => Promise<{
54
+ basic: {
55
+ client: import("../types.js").A2AClientState;
56
+ agentCard: import("../types.js").AgentCard;
57
+ health: {
58
+ status: string;
59
+ agents: string[];
60
+ timestamp: string;
61
+ };
62
+ capabilities: any;
63
+ };
64
+ weather: {
65
+ tokyoWeather: string;
66
+ londonWeather: string;
67
+ travelResponse: string;
68
+ };
69
+ calculator: {
70
+ basicCalc: string;
71
+ stepsCalc: string;
72
+ equation: string;
73
+ };
74
+ streaming: any[];
75
+ multiAgent: {
76
+ introduction: string;
77
+ weatherInfo: string;
78
+ budgetCalc: string;
79
+ travelPlan: string;
80
+ };
81
+ convenience: {
82
+ weatherAgent: {
83
+ client: import("../types.js").A2AClientState;
84
+ agentCard: import("../types.js").AgentCard;
85
+ ask: (message: string, config?: any) => Promise<string>;
86
+ stream: (message: string, config?: any) => AsyncGenerator<import("../types.js").A2AStreamEvent, void, unknown>;
87
+ health: () => Promise<{
88
+ status: string;
89
+ agents: string[];
90
+ timestamp: string;
91
+ }>;
92
+ capabilities: () => Promise<any>;
93
+ };
94
+ response: string;
95
+ health: {
96
+ status: string;
97
+ agents: string[];
98
+ timestamp: string;
99
+ };
100
+ capabilities: any;
101
+ };
102
+ }>;
103
+ export declare const runInteractiveDemo: (serverUrl?: string) => Promise<void>;
104
+ //# sourceMappingURL=client-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-example.d.ts","sourceRoot":"","sources":["../../../src/a2a/examples/client-example.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,eAAO,MAAM,qBAAqB,GAAU,YAAW,MAAgC;;;;;;;;;EA+BtF,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAU,YAAW,MAAgC;;;;EAiCxF,CAAC;AAGF,eAAO,MAAM,0BAA0B,GAAU,YAAW,MAAgC;;;;EAiC3F,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAU,YAAW,MAAgC,mBA4BrF,CAAC;AAGF,eAAO,MAAM,iCAAiC,GAAU,YAAW,MAAgC;;;;;EA8ClG,CAAC;AAGF,eAAO,MAAM,yBAAyB,GAAU,YAAW,MAAgC;;;;;;;;;;;;;;;;;;;;EA8B1F,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAU,YAAW,MAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BrF,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAAU,YAAW,MAAgC,kBA+BnF,CAAC"}