@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.
- package/LICENSE +21 -0
- package/README.md +596 -0
- package/dist/a2a/agent-card.d.ts +28 -0
- package/dist/a2a/agent-card.d.ts.map +1 -0
- package/dist/a2a/agent-card.js +250 -0
- package/dist/a2a/agent-card.js.map +1 -0
- package/dist/a2a/agent.d.ts +38 -0
- package/dist/a2a/agent.d.ts.map +1 -0
- package/dist/a2a/agent.js +223 -0
- package/dist/a2a/agent.js.map +1 -0
- package/dist/a2a/client.d.ts +35 -0
- package/dist/a2a/client.d.ts.map +1 -0
- package/dist/a2a/client.js +337 -0
- package/dist/a2a/client.js.map +1 -0
- package/dist/a2a/examples/client-example.d.ts +104 -0
- package/dist/a2a/examples/client-example.d.ts.map +1 -0
- package/dist/a2a/examples/client-example.js +232 -0
- package/dist/a2a/examples/client-example.js.map +1 -0
- package/dist/a2a/examples/server-example.d.ts +9 -0
- package/dist/a2a/examples/server-example.d.ts.map +1 -0
- package/dist/a2a/examples/server-example.js +209 -0
- package/dist/a2a/examples/server-example.js.map +1 -0
- package/dist/a2a/examples/weather-agent.d.ts +8 -0
- package/dist/a2a/examples/weather-agent.d.ts.map +1 -0
- package/dist/a2a/examples/weather-agent.js +232 -0
- package/dist/a2a/examples/weather-agent.js.map +1 -0
- package/dist/a2a/executor.d.ts +43 -0
- package/dist/a2a/executor.d.ts.map +1 -0
- package/dist/a2a/executor.js +507 -0
- package/dist/a2a/executor.js.map +1 -0
- package/dist/a2a/index.d.ts +378 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +72 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/memory/cleanup.d.ts +58 -0
- package/dist/a2a/memory/cleanup.d.ts.map +1 -0
- package/dist/a2a/memory/cleanup.js +281 -0
- package/dist/a2a/memory/cleanup.js.map +1 -0
- package/dist/a2a/memory/factory.d.ts +38 -0
- package/dist/a2a/memory/factory.d.ts.map +1 -0
- package/dist/a2a/memory/factory.js +369 -0
- package/dist/a2a/memory/factory.js.map +1 -0
- package/dist/a2a/memory/index.d.ts +13 -0
- package/dist/a2a/memory/index.d.ts.map +1 -0
- package/dist/a2a/memory/index.js +16 -0
- package/dist/a2a/memory/index.js.map +1 -0
- package/dist/a2a/memory/providers/in-memory.d.ts +10 -0
- package/dist/a2a/memory/providers/in-memory.d.ts.map +1 -0
- package/dist/a2a/memory/providers/in-memory.js +539 -0
- package/dist/a2a/memory/providers/in-memory.js.map +1 -0
- package/dist/a2a/memory/providers/postgres.d.ts +10 -0
- package/dist/a2a/memory/providers/postgres.d.ts.map +1 -0
- package/dist/a2a/memory/providers/postgres.js +404 -0
- package/dist/a2a/memory/providers/postgres.js.map +1 -0
- package/dist/a2a/memory/providers/redis.d.ts +10 -0
- package/dist/a2a/memory/providers/redis.d.ts.map +1 -0
- package/dist/a2a/memory/providers/redis.js +435 -0
- package/dist/a2a/memory/providers/redis.js.map +1 -0
- package/dist/a2a/memory/serialization.d.ts +53 -0
- package/dist/a2a/memory/serialization.d.ts.map +1 -0
- package/dist/a2a/memory/serialization.js +233 -0
- package/dist/a2a/memory/serialization.js.map +1 -0
- package/dist/a2a/memory/types.d.ts +395 -0
- package/dist/a2a/memory/types.d.ts.map +1 -0
- package/dist/a2a/memory/types.js +85 -0
- package/dist/a2a/memory/types.js.map +1 -0
- package/dist/a2a/protocol.d.ts +38 -0
- package/dist/a2a/protocol.d.ts.map +1 -0
- package/dist/a2a/protocol.js +211 -0
- package/dist/a2a/protocol.js.map +1 -0
- package/dist/a2a/server.d.ts +343 -0
- package/dist/a2a/server.d.ts.map +1 -0
- package/dist/a2a/server.js +362 -0
- package/dist/a2a/server.js.map +1 -0
- package/dist/a2a/types.d.ts +730 -0
- package/dist/a2a/types.d.ts.map +1 -0
- package/dist/a2a/types.js +73 -0
- package/dist/a2a/types.js.map +1 -0
- package/dist/adk/agents/index.d.ts +48 -0
- package/dist/adk/agents/index.d.ts.map +1 -0
- package/dist/adk/agents/index.js +277 -0
- package/dist/adk/agents/index.js.map +1 -0
- package/dist/adk/artifacts/index.d.ts +62 -0
- package/dist/adk/artifacts/index.d.ts.map +1 -0
- package/dist/adk/artifacts/index.js +394 -0
- package/dist/adk/artifacts/index.js.map +1 -0
- package/dist/adk/config/llm-config.d.ts +75 -0
- package/dist/adk/config/llm-config.d.ts.map +1 -0
- package/dist/adk/config/llm-config.js +422 -0
- package/dist/adk/config/llm-config.js.map +1 -0
- package/dist/adk/content/index.d.ts +58 -0
- package/dist/adk/content/index.d.ts.map +1 -0
- package/dist/adk/content/index.js +220 -0
- package/dist/adk/content/index.js.map +1 -0
- package/dist/adk/examples/advanced-features.d.ts +22 -0
- package/dist/adk/examples/advanced-features.d.ts.map +1 -0
- package/dist/adk/examples/advanced-features.js +380 -0
- package/dist/adk/examples/advanced-features.js.map +1 -0
- package/dist/adk/examples/basic-agent.d.ts +28 -0
- package/dist/adk/examples/basic-agent.d.ts.map +1 -0
- package/dist/adk/examples/basic-agent.js +207 -0
- package/dist/adk/examples/basic-agent.js.map +1 -0
- package/dist/adk/examples/multi-agent.d.ts +24 -0
- package/dist/adk/examples/multi-agent.d.ts.map +1 -0
- package/dist/adk/examples/multi-agent.js +321 -0
- package/dist/adk/examples/multi-agent.js.map +1 -0
- package/dist/adk/examples/streaming-example.d.ts +9 -0
- package/dist/adk/examples/streaming-example.d.ts.map +1 -0
- package/dist/adk/examples/streaming-example.js +193 -0
- package/dist/adk/examples/streaming-example.js.map +1 -0
- package/dist/adk/index.d.ts +65 -0
- package/dist/adk/index.d.ts.map +1 -0
- package/dist/adk/index.js +251 -0
- package/dist/adk/index.js.map +1 -0
- package/dist/adk/models.d.ts +338 -0
- package/dist/adk/models.d.ts.map +1 -0
- package/dist/adk/models.js +466 -0
- package/dist/adk/models.js.map +1 -0
- package/dist/adk/providers/error-handler.d.ts +100 -0
- package/dist/adk/providers/error-handler.d.ts.map +1 -0
- package/dist/adk/providers/error-handler.js +289 -0
- package/dist/adk/providers/error-handler.js.map +1 -0
- package/dist/adk/providers/llm-service.d.ts +41 -0
- package/dist/adk/providers/llm-service.d.ts.map +1 -0
- package/dist/adk/providers/llm-service.js +520 -0
- package/dist/adk/providers/llm-service.js.map +1 -0
- package/dist/adk/providers/type-converters.d.ts +34 -0
- package/dist/adk/providers/type-converters.d.ts.map +1 -0
- package/dist/adk/providers/type-converters.js +436 -0
- package/dist/adk/providers/type-converters.js.map +1 -0
- package/dist/adk/runners/index.d.ts +33 -0
- package/dist/adk/runners/index.d.ts.map +1 -0
- package/dist/adk/runners/index.js +466 -0
- package/dist/adk/runners/index.js.map +1 -0
- package/dist/adk/schemas/index.d.ts +85 -0
- package/dist/adk/schemas/index.d.ts.map +1 -0
- package/dist/adk/schemas/index.js +363 -0
- package/dist/adk/schemas/index.js.map +1 -0
- package/dist/adk/sessions/examples/session-provider-usage.d.ts +10 -0
- package/dist/adk/sessions/examples/session-provider-usage.d.ts.map +1 -0
- package/dist/adk/sessions/examples/session-provider-usage.js +145 -0
- package/dist/adk/sessions/examples/session-provider-usage.js.map +1 -0
- package/dist/adk/sessions/index.d.ts +53 -0
- package/dist/adk/sessions/index.d.ts.map +1 -0
- package/dist/adk/sessions/index.js +451 -0
- package/dist/adk/sessions/index.js.map +1 -0
- package/dist/adk/sessions/postgres-provider.d.ts +22 -0
- package/dist/adk/sessions/postgres-provider.d.ts.map +1 -0
- package/dist/adk/sessions/postgres-provider.js +293 -0
- package/dist/adk/sessions/postgres-provider.js.map +1 -0
- package/dist/adk/sessions/redis-provider.d.ts +19 -0
- package/dist/adk/sessions/redis-provider.d.ts.map +1 -0
- package/dist/adk/sessions/redis-provider.js +237 -0
- package/dist/adk/sessions/redis-provider.js.map +1 -0
- package/dist/adk/streaming/index.d.ts +76 -0
- package/dist/adk/streaming/index.d.ts.map +1 -0
- package/dist/adk/streaming/index.js +419 -0
- package/dist/adk/streaming/index.js.map +1 -0
- package/dist/adk/tools/index.d.ts +27 -0
- package/dist/adk/tools/index.d.ts.map +1 -0
- package/dist/adk/tools/index.js +506 -0
- package/dist/adk/tools/index.js.map +1 -0
- package/dist/adk/types.d.ts +351 -0
- package/dist/adk/types.d.ts.map +1 -0
- package/dist/adk/types.js +107 -0
- package/dist/adk/types.js.map +1 -0
- package/dist/core/engine.d.ts +3 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +438 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/errors.d.ts +8 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +84 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/tool-results.d.ts +57 -0
- package/dist/core/tool-results.d.ts.map +1 -0
- package/dist/core/tool-results.js +133 -0
- package/dist/core/tool-results.js.map +1 -0
- package/dist/core/tracing.d.ts +32 -0
- package/dist/core/tracing.d.ts.map +1 -0
- package/dist/core/tracing.js +132 -0
- package/dist/core/tracing.js.map +1 -0
- package/dist/core/types.d.ts +165 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/demo/agents.d.ts +23 -0
- package/dist/demo/agents.d.ts.map +1 -0
- package/dist/demo/agents.js +69 -0
- package/dist/demo/agents.js.map +1 -0
- package/dist/demo/index.d.ts +2 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +250 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/demo/mock-provider.d.ts +22 -0
- package/dist/demo/mock-provider.d.ts.map +1 -0
- package/dist/demo/mock-provider.js +138 -0
- package/dist/demo/mock-provider.js.map +1 -0
- package/dist/demo/tools.d.ts +14 -0
- package/dist/demo/tools.d.ts.map +1 -0
- package/dist/demo/tools.js +115 -0
- package/dist/demo/tools.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/factory.d.ts +22 -0
- package/dist/memory/factory.d.ts.map +1 -0
- package/dist/memory/factory.js +88 -0
- package/dist/memory/factory.js.map +1 -0
- package/dist/memory/providers/in-memory.d.ts +7 -0
- package/dist/memory/providers/in-memory.d.ts.map +1 -0
- package/dist/memory/providers/in-memory.js +287 -0
- package/dist/memory/providers/in-memory.js.map +1 -0
- package/dist/memory/providers/postgres.d.ts +15 -0
- package/dist/memory/providers/postgres.d.ts.map +1 -0
- package/dist/memory/providers/postgres.js +495 -0
- package/dist/memory/providers/postgres.js.map +1 -0
- package/dist/memory/providers/redis.d.ts +18 -0
- package/dist/memory/providers/redis.d.ts.map +1 -0
- package/dist/memory/providers/redis.js +354 -0
- package/dist/memory/providers/redis.js.map +1 -0
- package/dist/memory/types.d.ts +296 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +93 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/policies/handoff.d.ts +16 -0
- package/dist/policies/handoff.d.ts.map +1 -0
- package/dist/policies/handoff.js +20 -0
- package/dist/policies/handoff.js.map +1 -0
- package/dist/policies/validation.d.ts +14 -0
- package/dist/policies/validation.d.ts.map +1 -0
- package/dist/policies/validation.js +92 -0
- package/dist/policies/validation.js.map +1 -0
- package/dist/providers/mcp.d.ts +17 -0
- package/dist/providers/mcp.d.ts.map +1 -0
- package/dist/providers/mcp.js +111 -0
- package/dist/providers/mcp.js.map +1 -0
- package/dist/providers/model.d.ts +3 -0
- package/dist/providers/model.d.ts.map +1 -0
- package/dist/providers/model.js +113 -0
- package/dist/providers/model.js.map +1 -0
- package/dist/server/index.d.ts +35 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +66 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/server.d.ts +12 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +394 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/types.d.ts +456 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +75 -0
- package/dist/server/types.js.map +1 -0
- package/dist/test-utils/db-setup.d.ts +34 -0
- package/dist/test-utils/db-setup.d.ts.map +1 -0
- package/dist/test-utils/db-setup.js +149 -0
- package/dist/test-utils/db-setup.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +199 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/safe-math.d.ts +31 -0
- package/dist/utils/safe-math.d.ts.map +1 -0
- package/dist/utils/safe-math.js +86 -0
- package/dist/utils/safe-math.js.map +1 -0
- package/dist/visualization/example.d.ts +9 -0
- package/dist/visualization/example.d.ts.map +1 -0
- package/dist/visualization/example.js +236 -0
- package/dist/visualization/example.js.map +1 -0
- package/dist/visualization/graphviz.d.ts +42 -0
- package/dist/visualization/graphviz.d.ts.map +1 -0
- package/dist/visualization/graphviz.js +403 -0
- package/dist/visualization/graphviz.js.map +1 -0
- package/dist/visualization/index.d.ts +10 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +12 -0
- package/dist/visualization/index.js.map +1 -0
- 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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mCAAmC;AACnC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC;IACjD,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,+CAA+C;IAC5D,WAAW,EAAE,+GAA+G;IAE5H,KAAK,EAAE;QACL,aAAa,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,mCAAmC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;gBACtE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;aACzE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;gBAC3C,IAAI,CAAC;oBACH,0CAA0C;oBAC1C,8DAA8D;oBAC9D,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;oBACpE,MAAM,MAAM,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;oBAElD,IAAI,SAAS,EAAE,CAAC;wBACd,OAAO,gBAAgB,UAAU,IAAI;4BAC9B,WAAW,MAAM,EAAE,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,UAAU,MAAM,MAAM,EAAE,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,sBAAsB,UAAU,oCAAoC,CAAC;gBAC9E,CAAC;YACH,CAAC;SACF,CAAC;QAEF,aAAa,CAAC;YACZ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,2BAA2B;YACxC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;gBACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;aACpE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACxC,+CAA+C;gBAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,OAAO,gBAAgB,QAAQ,KAAK;wBAC7B,2EAA2E,QAAQ,KAAK;wBACxF,qCAAqC,CAAC;gBAC/C,CAAC;gBACD,OAAO,iDAAiD,QAAQ,EAAE,CAAC;YACrE,CAAC;SACF,CAAC;KACH;CACF,CAAC,CAAC;AAEH,iCAAiC;AACjC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC;IAC/C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,sCAAsC;IACnD,WAAW,EAAE,4GAA4G;IAEzH,KAAK,EAAE;QACL,aAAa,CAAC;YACZ,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,iCAAiC;YAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACpD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACzF,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;aACnE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAElB,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,aAAa,GAAG;wBACpB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc;wBACjD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB;wBACvD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc;qBAClD,CAAC;oBACF,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5C,CAAC;gBAED,IAAI,IAAI,EAAE,CAAC;oBACT,QAAQ,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC1B,CAAC;gBAED,QAAQ,IAAI,8CAA8C,CAAC;gBAC3D,QAAQ,IAAI,6EAA6E,CAAC;gBAC1F,QAAQ,IAAI,kEAAkE,CAAC;gBAC/E,QAAQ,IAAI,+DAA+D,CAAC;gBAC5E,QAAQ,IAAI,mEAAmE,CAAC;gBAChF,QAAQ,IAAI,kCAAkC,CAAC;gBAE/C,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC;QAEF,aAAa,CAAC;YACZ,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,mCAAmC;YAChD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;aAC/E,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC9B,IAAI,QAAQ,GAAG,yBAAyB,CAAC;gBAEzC,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,IAAI,6BAA6B,CAAC;oBAC1C,QAAQ,IAAI,oDAAoD,CAAC;oBACjE,QAAQ,IAAI,mCAAmC,CAAC;oBAChD,QAAQ,IAAI,oDAAoD,CAAC;oBACjE,QAAQ,IAAI,mDAAmD,CAAC;oBAEhE,QAAQ,IAAI,+BAA+B,CAAC;oBAC5C,QAAQ,IAAI,qDAAqD,CAAC;oBAClE,QAAQ,IAAI,mCAAmC,CAAC;oBAChD,QAAQ,IAAI,2CAA2C,CAAC;oBACxD,QAAQ,IAAI,uCAAuC,CAAC;oBAEpD,QAAQ,IAAI,6BAA6B,CAAC;oBAC1C,QAAQ,IAAI,sCAAsC,CAAC;oBACnD,QAAQ,IAAI,2CAA2C,CAAC;oBACxD,QAAQ,IAAI,yCAAyC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,QAAQ,IAAI,wDAAwD,CAAC;oBACrE,QAAQ,IAAI,0DAA0D,CAAC;oBACvE,QAAQ,IAAI,mDAAmD,CAAC;gBAClE,CAAC;gBAED,QAAQ,IAAI,iFAAiF,CAAC;gBAC9F,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC;KACH;CACF,CAAC,CAAC;AAEH,wCAAwC;AACxC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,oBAAoB;IACpB,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAE5C,2BAA2B;IAC3B,MAAM,YAAY,GAAoB;QACpC,MAAM,EAAE,IAAI,GAAG,CAAC;YACd,CAAC,SAAS,EAAE,YAAY,CAAC;YACzB,CAAC,YAAY,EAAE,eAAe,CAAC;YAC/B,CAAC,UAAU,EAAE,aAAa,CAAC;SAC5B,CAAC;QAEF,SAAS,EAAE;YACT,IAAI,EAAE,+BAA+B;YACrC,WAAW,EAAE,sHAAsH;YACnI,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE;gBACR,YAAY,EAAE,qBAAqB;gBACnC,GAAG,EAAE,+CAA+C;aACrD;SACF;QAED,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;KAClB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,0MAA0M,CAAC,CAAC;QACxN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,kMAAkM,CAAC,CAAC;QAChN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAE/C,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,kCAAkC;AAClC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,IAAI,IAAI,kBAAkB,EAC3B,CAAC;AAEF,wCAAwC;AACxC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC9D,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -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"}
|