@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,232 @@
1
+ /**
2
+ * Example client usage of A2A protocol with JAF agents
3
+ * Demonstrates all client capabilities in a pure functional way
4
+ */
5
+ import { createA2AClient, getAgentCard, sendMessageToAgent, streamMessageToAgent, checkA2AHealth, getA2ACapabilities, connectToA2AAgent, } from '../client.js';
6
+ // Pure function to demonstrate basic client usage
7
+ export const demonstrateBasicUsage = async (serverUrl = 'http://localhost:3000') => {
8
+ console.log('šŸ”— Creating A2A client...');
9
+ const client = createA2AClient(serverUrl);
10
+ console.log(`šŸ“± Client created with session ID: ${client.sessionId}`);
11
+ try {
12
+ // Test agent discovery
13
+ console.log('\nšŸ” Discovering agents...');
14
+ const agentCard = await getAgentCard(client);
15
+ console.log(`šŸ¤– Found agent: ${agentCard.name}`);
16
+ console.log(`šŸ“ Description: ${agentCard.description}`);
17
+ console.log(`šŸŽÆ Skills: ${agentCard.skills.map(s => s.name).join(', ')}`);
18
+ // Test health check
19
+ console.log('\nšŸ„ Checking server health...');
20
+ const health = await checkA2AHealth(client);
21
+ console.log(`āœ… Status: ${health.status}`);
22
+ console.log(`šŸ¤– Available agents: ${health.agents.join(', ')}`);
23
+ // Test capabilities
24
+ console.log('\n⚔ Getting server capabilities...');
25
+ const capabilities = await getA2ACapabilities(client);
26
+ console.log(`šŸ“‹ Supported methods: ${capabilities.supportedMethods.join(', ')}`);
27
+ console.log(`šŸ”§ Input modes: ${capabilities.inputModes.join(', ')}`);
28
+ return { client, agentCard, health, capabilities };
29
+ }
30
+ catch (error) {
31
+ console.error('āŒ Error in basic usage:', error);
32
+ throw error;
33
+ }
34
+ };
35
+ // Pure function to demonstrate weather agent interaction
36
+ export const demonstrateWeatherAgent = async (serverUrl = 'http://localhost:3000') => {
37
+ console.log('\nšŸŒ¤ļø Testing Weather Agent...');
38
+ const client = createA2AClient(serverUrl);
39
+ try {
40
+ // Simple weather query
41
+ console.log('\nšŸ“ Getting weather for Tokyo...');
42
+ const tokyoWeather = await sendMessageToAgent(client, 'weather', 'What\'s the weather in Tokyo?');
43
+ console.log('šŸŒ”ļø Response:', tokyoWeather);
44
+ // Weather with hourly forecast
45
+ console.log('\nšŸ“Š Getting detailed weather for London...');
46
+ const londonWeather = await sendMessageToAgent(client, 'weather', 'Get weather for London with hourly forecast in Fahrenheit');
47
+ console.log('šŸ“ˆ Response:', londonWeather);
48
+ // Travel planning
49
+ console.log('\nāœˆļø Starting travel planning...');
50
+ const travelResponse = await sendMessageToAgent(client, 'weather', 'I want to plan a trip to Paris next week, can you help me with weather and planning?');
51
+ console.log('šŸ—ŗļø Response:', travelResponse);
52
+ return { tokyoWeather, londonWeather, travelResponse };
53
+ }
54
+ catch (error) {
55
+ console.error('āŒ Error testing weather agent:', error);
56
+ throw error;
57
+ }
58
+ };
59
+ // Pure function to demonstrate calculator agent interaction
60
+ export const demonstrateCalculatorAgent = async (serverUrl = 'http://localhost:3000') => {
61
+ console.log('\nšŸ”¢ Testing Calculator Agent...');
62
+ const client = createA2AClient(serverUrl);
63
+ try {
64
+ // Basic calculation
65
+ console.log('\nāž• Basic calculation...');
66
+ const basicCalc = await sendMessageToAgent(client, 'calculator', 'Calculate 15 * 23 + 7');
67
+ console.log('šŸ”¢ Result:', basicCalc);
68
+ // Calculation with steps
69
+ console.log('\nšŸ“‹ Calculation with steps...');
70
+ const stepsCalc = await sendMessageToAgent(client, 'calculator', 'Calculate (45 + 15) * 2 / 3 and show me the steps');
71
+ console.log('šŸ“Š Result:', stepsCalc);
72
+ // Equation solving
73
+ console.log('\nšŸŽÆ Equation solving...');
74
+ const equation = await sendMessageToAgent(client, 'calculator', 'Solve the equation 2x + 5 = 15');
75
+ console.log('šŸ” Result:', equation);
76
+ return { basicCalc, stepsCalc, equation };
77
+ }
78
+ catch (error) {
79
+ console.error('āŒ Error testing calculator agent:', error);
80
+ throw error;
81
+ }
82
+ };
83
+ // Pure function to demonstrate streaming
84
+ export const demonstrateStreaming = async (serverUrl = 'http://localhost:3000') => {
85
+ console.log('\n🌊 Testing Streaming...');
86
+ const client = createA2AClient(serverUrl);
87
+ try {
88
+ console.log('šŸ“” Starting streaming request to weather agent...');
89
+ const events = [];
90
+ for await (const event of streamMessageToAgent(client, 'weather', 'Plan a detailed trip to Barcelona with weather considerations')) {
91
+ console.log(`šŸ“ŗ Stream event:`, event);
92
+ events.push(event);
93
+ // Stop after reasonable number of events for demo
94
+ if (events.length >= 5) {
95
+ break;
96
+ }
97
+ }
98
+ console.log(`āœ… Received ${events.length} streaming events`);
99
+ return events;
100
+ }
101
+ catch (error) {
102
+ console.error('āŒ Error testing streaming:', error);
103
+ throw error;
104
+ }
105
+ };
106
+ // Pure function to demonstrate multi-agent conversation
107
+ export const demonstrateMultiAgentConversation = async (serverUrl = 'http://localhost:3000') => {
108
+ console.log('\nšŸ”„ Testing Multi-Agent Conversation...');
109
+ const client = createA2AClient(serverUrl);
110
+ try {
111
+ // Start with greeting agent
112
+ console.log('\nšŸ‘‹ Getting introduction...');
113
+ const introduction = await sendMessageToAgent(client, 'greeting', 'Hello! My name is Alex and I need help planning a trip.');
114
+ console.log('šŸ—£ļø Greeting:', introduction);
115
+ // Switch to weather agent for weather info
116
+ console.log('\nšŸŒ¤ļø Checking weather...');
117
+ const weatherInfo = await sendMessageToAgent(client, 'weather', 'What\'s the weather like in Amsterdam this week?');
118
+ console.log('šŸŒ”ļø Weather:', weatherInfo);
119
+ // Use calculator for budget calculations
120
+ console.log('\nšŸ’° Calculating budget...');
121
+ const budgetCalc = await sendMessageToAgent(client, 'calculator', 'If I have 1500 euros and daily expenses are 120 euros, how many days can I stay?');
122
+ console.log('šŸ’µ Budget:', budgetCalc);
123
+ // Back to weather agent for travel planning
124
+ console.log('\nšŸ“… Final travel planning...');
125
+ const travelPlan = await sendMessageToAgent(client, 'weather', 'Based on Amsterdam weather, help me plan a 7-day trip with budget considerations');
126
+ console.log('šŸ—“ļø Travel Plan:', travelPlan);
127
+ return { introduction, weatherInfo, budgetCalc, travelPlan };
128
+ }
129
+ catch (error) {
130
+ console.error('āŒ Error in multi-agent conversation:', error);
131
+ throw error;
132
+ }
133
+ };
134
+ // Pure function to demonstrate the convenience API
135
+ export const demonstrateConvenienceAPI = async (serverUrl = 'http://localhost:3000') => {
136
+ console.log('\nšŸš€ Testing Convenience API...');
137
+ try {
138
+ // Connect to agent with convenience wrapper
139
+ const weatherAgent = await connectToA2AAgent(`${serverUrl}/a2a/agents/weather`);
140
+ console.log('šŸ¤– Connected to weather agent');
141
+ console.log(`šŸ“ Agent: ${weatherAgent.agentCard.name}`);
142
+ // Use simplified API
143
+ console.log('\nā“ Asking simple question...');
144
+ const response = await weatherAgent.ask('What\'s the weather in Madrid?');
145
+ console.log('šŸ’¬ Response:', response);
146
+ // Check agent health
147
+ console.log('\nšŸ„ Checking agent health...');
148
+ const health = await weatherAgent.health();
149
+ console.log('āœ… Health:', health);
150
+ // Get capabilities
151
+ console.log('\n⚔ Getting capabilities...');
152
+ const capabilities = await weatherAgent.capabilities();
153
+ console.log('šŸ”§ Capabilities:', capabilities);
154
+ return { weatherAgent, response, health, capabilities };
155
+ }
156
+ catch (error) {
157
+ console.error('āŒ Error testing convenience API:', error);
158
+ throw error;
159
+ }
160
+ };
161
+ // Pure function to run all demonstrations
162
+ export const runAllDemonstrations = async (serverUrl = 'http://localhost:3000') => {
163
+ console.log('šŸŽ¬ Starting A2A Client Demonstrations');
164
+ console.log('=====================================\n');
165
+ try {
166
+ // Test server availability first
167
+ const basic = await demonstrateBasicUsage(serverUrl);
168
+ // Run all demonstrations
169
+ const weather = await demonstrateWeatherAgent(serverUrl);
170
+ const calculator = await demonstrateCalculatorAgent(serverUrl);
171
+ const streaming = await demonstrateStreaming(serverUrl);
172
+ const multiAgent = await demonstrateMultiAgentConversation(serverUrl);
173
+ const convenience = await demonstrateConvenienceAPI(serverUrl);
174
+ console.log('\nšŸŽ‰ All demonstrations completed successfully!');
175
+ return {
176
+ basic,
177
+ weather,
178
+ calculator,
179
+ streaming,
180
+ multiAgent,
181
+ convenience
182
+ };
183
+ }
184
+ catch (error) {
185
+ console.error('\nšŸ’„ Demonstration failed:', error);
186
+ console.log('\nšŸ’” Make sure the A2A server is running on', serverUrl);
187
+ console.log(' You can start it with: npm run a2a:example');
188
+ throw error;
189
+ }
190
+ };
191
+ // Pure function for interactive demonstration
192
+ export const runInteractiveDemo = async (serverUrl = 'http://localhost:3000') => {
193
+ const client = createA2AClient(serverUrl);
194
+ console.log('šŸŽ® Interactive A2A Demo');
195
+ console.log('Type your messages and see A2A protocol in action!');
196
+ console.log('Commands: /weather <msg>, /calc <msg>, /greeting <msg>, /quit\n');
197
+ // This would typically use readline in a real implementation
198
+ // For demo purposes, we'll simulate some interactions
199
+ const sampleInteractions = [
200
+ { agent: 'greeting', message: 'Hello! I\'m new here.' },
201
+ { agent: 'weather', message: 'What\'s the weather in San Francisco?' },
202
+ { agent: 'calculator', message: 'Calculate 42 * 1.5 + 18' },
203
+ { agent: 'weather', message: 'Plan a trip to Tokyo' }
204
+ ];
205
+ for (const interaction of sampleInteractions) {
206
+ console.log(`\nšŸ‘¤ User to ${interaction.agent}: ${interaction.message}`);
207
+ try {
208
+ const response = await sendMessageToAgent(client, interaction.agent, interaction.message);
209
+ console.log(`šŸ¤– ${interaction.agent} agent: ${response.substring(0, 200)}${response.length > 200 ? '...' : ''}`);
210
+ }
211
+ catch (error) {
212
+ console.log(`āŒ Error: ${error}`);
213
+ }
214
+ // Simulate thinking time
215
+ await new Promise(resolve => setTimeout(resolve, 1000));
216
+ }
217
+ console.log('\nāœ… Interactive demo completed!');
218
+ };
219
+ // Run demonstrations if this file is executed directly
220
+ if (typeof require !== 'undefined' && require.main === module) {
221
+ const serverUrl = process.argv[2] || 'http://localhost:3000';
222
+ runAllDemonstrations(serverUrl)
223
+ .then(() => {
224
+ console.log('\nšŸ All demonstrations completed successfully!');
225
+ process.exit(0);
226
+ })
227
+ .catch((error) => {
228
+ console.error('\nšŸ’„ Demonstrations failed:', error);
229
+ process.exit(1);
230
+ });
231
+ }
232
+ //# sourceMappingURL=client-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-example.js","sourceRoot":"","sources":["../../../src/a2a/examples/client-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Complete example of A2A server with JAF integration
3
+ * Shows how to set up multiple agents with A2A protocol support
4
+ */
5
+ declare const createCalculatorAgent: () => import("../types.js").A2AAgent;
6
+ declare const createGreetingAgent: () => import("../types.js").A2AAgent;
7
+ declare const main: () => Promise<void>;
8
+ export { createCalculatorAgent, createGreetingAgent, main as startExampleServer };
9
+ //# sourceMappingURL=server-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-example.d.ts","sourceRoot":"","sources":["../../../src/a2a/examples/server-example.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,QAAA,MAAM,qBAAqB,sCAkDzB,CAAC;AAGH,QAAA,MAAM,mBAAmB,sCAgFvB,CAAC;AAGH,QAAA,MAAM,IAAI,qBAwET,CAAC;AAGF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,IAAI,IAAI,kBAAkB,EAC3B,CAAC"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Complete example of A2A server with JAF integration
3
+ * Shows how to set up multiple agents with A2A protocol support
4
+ */
5
+ import { createWeatherAgent } from './weather-agent.js';
6
+ import { startA2AServer } from '../server.js';
7
+ import { createA2AAgent, createA2ATool } from '../agent.js';
8
+ import { z } from 'zod';
9
+ // Create a simple calculator agent
10
+ const createCalculatorAgent = () => createA2AAgent({
11
+ name: 'calculator_assistant',
12
+ description: 'Mathematical calculations and problem solving',
13
+ instruction: 'You are a calculator assistant. Help users with mathematical calculations and provide step-by-step solutions.',
14
+ tools: [
15
+ createA2ATool({
16
+ name: 'calculate',
17
+ description: 'Perform mathematical calculations',
18
+ parameters: z.object({
19
+ expression: z.string().describe('Mathematical expression to evaluate'),
20
+ showSteps: z.boolean().default(false).describe('Show calculation steps')
21
+ }),
22
+ execute: async ({ expression, showSteps }) => {
23
+ try {
24
+ // Use safe math evaluator instead of eval
25
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
26
+ const { evaluateMathExpression } = require('../../utils/safe-math');
27
+ const result = evaluateMathExpression(expression);
28
+ if (showSteps) {
29
+ return `Calculation: ${expression}\n` +
30
+ `Result: ${result}`;
31
+ }
32
+ else {
33
+ return `${expression} = ${result}`;
34
+ }
35
+ }
36
+ catch (error) {
37
+ return `Error calculating "${expression}": Invalid mathematical expression`;
38
+ }
39
+ }
40
+ }),
41
+ createA2ATool({
42
+ name: 'solve_equation',
43
+ description: 'Solve algebraic equations',
44
+ parameters: z.object({
45
+ equation: z.string().describe('Equation to solve (e.g., "2x + 5 = 15")'),
46
+ variable: z.string().default('x').describe('Variable to solve for')
47
+ }),
48
+ execute: async ({ equation, variable }) => {
49
+ // Simplified equation solver for demonstration
50
+ if (equation.includes('x') && equation.includes('=')) {
51
+ return `Solution for ${equation}:\n` +
52
+ `This is a demonstration. In a real implementation, this would solve for ${variable}.\n` +
53
+ `Example: If 2x + 5 = 15, then x = 5`;
54
+ }
55
+ return `Please provide a valid equation with variable ${variable}`;
56
+ }
57
+ })
58
+ ]
59
+ });
60
+ // Create a simple greeting agent
61
+ const createGreetingAgent = () => createA2AAgent({
62
+ name: 'greeting_assistant',
63
+ description: 'Friendly greetings and introductions',
64
+ instruction: 'You are a friendly greeting assistant. Welcome users and help them understand what services are available.',
65
+ tools: [
66
+ createA2ATool({
67
+ name: 'generate_greeting',
68
+ description: 'Generate personalized greetings',
69
+ parameters: z.object({
70
+ name: z.string().optional().describe('User\'s name'),
71
+ timeOfDay: z.enum(['morning', 'afternoon', 'evening']).optional().describe('Time of day'),
72
+ formal: z.boolean().default(false).describe('Use formal greeting')
73
+ }),
74
+ execute: async ({ name, timeOfDay, formal }) => {
75
+ let greeting = '';
76
+ if (timeOfDay) {
77
+ const timeGreetings = {
78
+ morning: formal ? 'Good morning' : 'Good morning',
79
+ afternoon: formal ? 'Good afternoon' : 'Good afternoon',
80
+ evening: formal ? 'Good evening' : 'Good evening'
81
+ };
82
+ greeting = timeGreetings[timeOfDay];
83
+ }
84
+ else {
85
+ greeting = formal ? 'Greetings' : 'Hello';
86
+ }
87
+ if (name) {
88
+ greeting += `, ${name}`;
89
+ }
90
+ greeting += '! Welcome to our A2A-enabled agent service. ';
91
+ greeting += 'I can help you get started and connect you with our specialized agents:\n\n';
92
+ greeting += 'šŸŒ¤ļø Weather Assistant - Get weather information and plan trips\n';
93
+ greeting += 'šŸ”¢ Calculator Assistant - Perform mathematical calculations\n';
94
+ greeting += 'šŸ‘‹ Greeting Assistant - That\'s me! I help with introductions\n\n';
95
+ greeting += 'What would you like to do today?';
96
+ return greeting;
97
+ }
98
+ }),
99
+ createA2ATool({
100
+ name: 'list_available_services',
101
+ description: 'List all available agent services',
102
+ parameters: z.object({
103
+ detailed: z.boolean().default(false).describe('Include detailed descriptions')
104
+ }),
105
+ execute: async ({ detailed }) => {
106
+ let response = 'Available Services:\n\n';
107
+ if (detailed) {
108
+ response += 'šŸŒ¤ļø **Weather Assistant**\n';
109
+ response += ' • Current weather conditions for any location\n';
110
+ response += ' • Hourly and daily forecasts\n';
111
+ response += ' • Travel planning with weather considerations\n';
112
+ response += ' • Weather-appropriate activity suggestions\n\n';
113
+ response += 'šŸ”¢ **Calculator Assistant**\n';
114
+ response += ' • Basic and advanced mathematical calculations\n';
115
+ response += ' • Algebraic equation solving\n';
116
+ response += ' • Step-by-step solution explanations\n';
117
+ response += ' • Mathematical problem solving\n\n';
118
+ response += 'šŸ‘‹ **Greeting Assistant**\n';
119
+ response += ' • Personalized welcome messages\n';
120
+ response += ' • Service introductions and guidance\n';
121
+ response += ' • Help navigating available agents\n';
122
+ }
123
+ else {
124
+ response += '• Weather Assistant - Weather info & travel planning\n';
125
+ response += '• Calculator Assistant - Math calculations & equations\n';
126
+ response += '• Greeting Assistant - Introductions & guidance\n';
127
+ }
128
+ response += '\nYou can interact with any of these agents through our A2A protocol interface!';
129
+ return response;
130
+ }
131
+ })
132
+ ]
133
+ });
134
+ // Main function to start the A2A server
135
+ const main = async () => {
136
+ // Create all agents
137
+ const weatherAgent = createWeatherAgent();
138
+ const calculatorAgent = createCalculatorAgent();
139
+ const greetingAgent = createGreetingAgent();
140
+ // Configure the A2A server
141
+ const serverConfig = {
142
+ agents: new Map([
143
+ ['weather', weatherAgent],
144
+ ['calculator', calculatorAgent],
145
+ ['greeting', greetingAgent]
146
+ ]),
147
+ agentCard: {
148
+ name: 'Multi-Agent Assistant Service',
149
+ description: 'A collection of specialized AI agents providing weather, calculation, and greeting services through the A2A protocol',
150
+ version: '1.0.0',
151
+ provider: {
152
+ organization: 'JAF Example Service',
153
+ url: 'https://github.com/functional-agent-framework'
154
+ }
155
+ },
156
+ port: 3000,
157
+ host: 'localhost'
158
+ };
159
+ console.log('šŸš€ Starting A2A-enabled JAF server...\n');
160
+ try {
161
+ // Start the server
162
+ const server = await startA2AServer(serverConfig);
163
+ console.log('\nāœ… Server started successfully!\n');
164
+ console.log('šŸ”— Test the agents:');
165
+ console.log(' Weather: curl -X POST http://localhost:3000/a2a/agents/weather \\');
166
+ console.log(' -H "Content-Type: application/json" \\');
167
+ console.log(' -d \'{"jsonrpc":"2.0","id":"1","method":"message/send","params":{"message":{"role":"user","parts":[{"kind":"text","text":"What\'s the weather in Tokyo?"}],"messageId":"msg1","kind":"message"}}}\'');
168
+ console.log('');
169
+ console.log(' Calculator: curl -X POST http://localhost:3000/a2a/agents/calculator \\');
170
+ console.log(' -H "Content-Type: application/json" \\');
171
+ console.log(' -d \'{"jsonrpc":"2.0","id":"2","method":"message/send","params":{"message":{"role":"user","parts":[{"kind":"text","text":"Calculate 15 * 23 + 7"}],"messageId":"msg2","kind":"message"}}}\'');
172
+ console.log('');
173
+ console.log('🌐 Agent Discovery:');
174
+ console.log(' curl http://localhost:3000/.well-known/agent-card');
175
+ console.log('');
176
+ console.log('šŸ„ Health Check:');
177
+ console.log(' curl http://localhost:3000/a2a/health');
178
+ console.log('');
179
+ console.log('⚔ Capabilities:');
180
+ console.log(' curl http://localhost:3000/a2a/capabilities');
181
+ console.log('');
182
+ console.log('Press Ctrl+C to stop the server');
183
+ // Handle graceful shutdown
184
+ process.on('SIGINT', async () => {
185
+ console.log('\nšŸ›‘ Shutting down server...');
186
+ await server.stop();
187
+ process.exit(0);
188
+ });
189
+ process.on('SIGTERM', async () => {
190
+ console.log('\nšŸ›‘ Shutting down server...');
191
+ await server.stop();
192
+ process.exit(0);
193
+ });
194
+ }
195
+ catch (error) {
196
+ console.error('āŒ Failed to start server:', error);
197
+ process.exit(1);
198
+ }
199
+ };
200
+ // Export for use in other modules
201
+ export { createCalculatorAgent, createGreetingAgent, main as startExampleServer };
202
+ // Run if this file is executed directly
203
+ if (typeof require !== 'undefined' && require.main === module) {
204
+ main().catch((error) => {
205
+ console.error('Fatal error:', error);
206
+ process.exit(1);
207
+ });
208
+ }
209
+ //# sourceMappingURL=server-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-example.js","sourceRoot":"","sources":["../../../src/a2a/examples/server-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Example Weather Agent using pure functional A2A integration
3
+ * Demonstrates how to create A2A-compatible agents with JAF
4
+ */
5
+ export declare const createWeatherAgent: () => import("../types.js").A2AAgent;
6
+ export declare const getWeatherAgentProcessingMessage: () => string;
7
+ export declare const weatherAgentExamples: readonly ["What's the weather like in Tokyo?", "I'm planning a trip to Paris next week, what should I expect?", "Get weather for New York with hourly forecast", "Help me plan a vacation to Barcelona", "What's the temperature in London in Fahrenheit?", "I need weather information for my business trip to San Francisco"];
8
+ //# sourceMappingURL=weather-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weather-agent.d.ts","sourceRoot":"","sources":["../../../src/a2a/examples/weather-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgNH,eAAO,MAAM,kBAAkB,sCA6B7B,CAAC;AAGH,eAAO,MAAM,gCAAgC,cACoB,CAAC;AAGlE,eAAO,MAAM,oBAAoB,iUAOvB,CAAC"}