@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,236 @@
1
+ /**
2
+ * JAF Visualization - Example Usage
3
+ *
4
+ * Example demonstrating how to use the Graphviz visualization functionality
5
+ */
6
+ import { createRunnerConfig } from '../adk/runners';
7
+ import { createInMemorySessionProvider } from '../adk/sessions';
8
+ import { generateAgentVisualization, generateToolVisualization, generateRunnerGraphPng } from '../adk/runners';
9
+ // ========== Example Agent and Tools ==========
10
+ const exampleCalculatorTool = {
11
+ name: 'calculator',
12
+ description: 'Performs basic arithmetic operations',
13
+ parameters: [
14
+ {
15
+ name: 'expression',
16
+ type: 'string',
17
+ description: 'Mathematical expression to evaluate',
18
+ required: true
19
+ }
20
+ ],
21
+ execute: async (params, context) => {
22
+ const expression = params.expression;
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
+ return {
29
+ success: true,
30
+ data: result.toString()
31
+ };
32
+ }
33
+ catch (error) {
34
+ return {
35
+ success: false,
36
+ error: 'Invalid mathematical expression'
37
+ };
38
+ }
39
+ },
40
+ metadata: {
41
+ source: 'function',
42
+ version: '1.0.0',
43
+ tags: ['math', 'utility']
44
+ }
45
+ };
46
+ const exampleWeatherTool = {
47
+ name: 'weather',
48
+ description: 'Gets current weather for a location',
49
+ parameters: [
50
+ {
51
+ name: 'location',
52
+ type: 'string',
53
+ description: 'Location to get weather for',
54
+ required: true
55
+ }
56
+ ],
57
+ execute: async (params, context) => {
58
+ const location = params.location;
59
+ // Mock weather data
60
+ return {
61
+ success: true,
62
+ data: `Current weather in ${location}: 72°F, sunny`
63
+ };
64
+ },
65
+ metadata: {
66
+ source: 'openapi',
67
+ version: '2.1.0',
68
+ tags: ['weather', 'api']
69
+ }
70
+ };
71
+ const exampleSearchTool = {
72
+ name: 'search',
73
+ description: 'Searches the web for information',
74
+ parameters: [
75
+ {
76
+ name: 'query',
77
+ type: 'string',
78
+ description: 'Search query',
79
+ required: true
80
+ }
81
+ ],
82
+ execute: async (params, context) => {
83
+ const query = params.query;
84
+ return {
85
+ success: true,
86
+ data: `Search results for: ${query}`
87
+ };
88
+ },
89
+ metadata: {
90
+ source: 'langchain',
91
+ version: '1.5.0',
92
+ tags: ['search', 'web']
93
+ }
94
+ };
95
+ const exampleAgent = {
96
+ id: 'example-agent-001',
97
+ config: {
98
+ name: 'Example Assistant',
99
+ model: 'gpt-4',
100
+ instruction: 'I am a helpful assistant that can perform calculations, check weather, and search for information.',
101
+ description: 'A multi-purpose assistant agent',
102
+ tools: [exampleCalculatorTool, exampleWeatherTool, exampleSearchTool],
103
+ subAgents: [
104
+ {
105
+ name: 'Math Specialist',
106
+ model: 'gpt-3.5-turbo',
107
+ instruction: 'I specialize in mathematical calculations and problem solving.',
108
+ tools: [exampleCalculatorTool]
109
+ },
110
+ {
111
+ name: 'Weather Bot',
112
+ model: 'gpt-3.5-turbo',
113
+ instruction: 'I provide weather information and forecasts.',
114
+ tools: [exampleWeatherTool]
115
+ }
116
+ ]
117
+ },
118
+ metadata: {
119
+ created: new Date(),
120
+ version: '1.0.0',
121
+ tags: ['assistant', 'multi-purpose']
122
+ }
123
+ };
124
+ const exampleSpecializedAgent = {
125
+ id: 'search-agent-001',
126
+ config: {
127
+ name: 'Search Specialist',
128
+ model: 'gpt-4',
129
+ instruction: 'I specialize in finding and retrieving information from various sources.',
130
+ tools: [exampleSearchTool]
131
+ },
132
+ metadata: {
133
+ created: new Date(),
134
+ version: '1.0.0',
135
+ tags: ['search', 'research']
136
+ }
137
+ };
138
+ // ========== Example Functions ==========
139
+ export const runVisualizationExamples = async () => {
140
+ console.log('šŸŽØ Running JAF Visualization Examples...\n');
141
+ try {
142
+ // 1. Generate Agent Graph
143
+ console.log('šŸ“Š Generating agent visualization...');
144
+ const agentResult = await generateAgentVisualization([exampleAgent, exampleSpecializedAgent], {
145
+ title: 'JAF Agent System',
146
+ outputPath: './examples/agent-graph',
147
+ outputFormat: 'png',
148
+ showToolDetails: true,
149
+ showSubAgents: true,
150
+ colorScheme: 'modern'
151
+ });
152
+ if (agentResult.success) {
153
+ console.log(`āœ… Agent graph generated: ${agentResult.outputPath}`);
154
+ }
155
+ else {
156
+ console.log(`āŒ Agent graph failed: ${agentResult.error}`);
157
+ }
158
+ // 2. Generate Tool Graph
159
+ console.log('\nšŸ”§ Generating tool visualization...');
160
+ const allTools = [exampleCalculatorTool, exampleWeatherTool, exampleSearchTool];
161
+ const toolResult = await generateToolVisualization(allTools, {
162
+ title: 'JAF Tool Ecosystem',
163
+ outputPath: './examples/tool-graph',
164
+ outputFormat: 'png',
165
+ layout: 'circo',
166
+ colorScheme: 'default'
167
+ });
168
+ if (toolResult.success) {
169
+ console.log(`āœ… Tool graph generated: ${toolResult.outputPath}`);
170
+ }
171
+ else {
172
+ console.log(`āŒ Tool graph failed: ${toolResult.error}`);
173
+ }
174
+ // 3. Generate Runner Visualization
175
+ console.log('\nšŸƒ Generating runner visualization...');
176
+ const sessionProvider = createInMemorySessionProvider();
177
+ const runnerConfig = createRunnerConfig(exampleAgent, sessionProvider);
178
+ const runnerResult = await generateRunnerGraphPng(runnerConfig, './examples/runner-architecture');
179
+ if (runnerResult.success) {
180
+ console.log(`āœ… Runner graph generated: ${runnerResult.outputPath}`);
181
+ }
182
+ else {
183
+ console.log(`āŒ Runner graph failed: ${runnerResult.error}`);
184
+ }
185
+ // 4. Generate different color schemes
186
+ console.log('\nšŸŽØ Generating alternative color schemes...');
187
+ for (const scheme of ['default', 'modern', 'minimal']) {
188
+ const schemeResult = await generateAgentVisualization([exampleAgent], {
189
+ title: `JAF Agent (${scheme} theme)`,
190
+ outputPath: `./examples/agent-${scheme}`,
191
+ outputFormat: 'png',
192
+ colorScheme: scheme,
193
+ showToolDetails: true
194
+ });
195
+ if (schemeResult.success) {
196
+ console.log(`āœ… ${scheme} theme generated: ${schemeResult.outputPath}`);
197
+ }
198
+ else {
199
+ console.log(`āŒ ${scheme} theme failed: ${schemeResult.error}`);
200
+ }
201
+ }
202
+ console.log('\nšŸŽ‰ All visualization examples completed!');
203
+ console.log('\nšŸ“ Generated files:');
204
+ console.log(' - ./examples/agent-graph.png');
205
+ console.log(' - ./examples/tool-graph.png');
206
+ console.log(' - ./examples/runner-architecture.png');
207
+ console.log(' - ./examples/agent-default.png');
208
+ console.log(' - ./examples/agent-modern.png');
209
+ console.log(' - ./examples/agent-minimal.png');
210
+ }
211
+ catch (error) {
212
+ console.error('āŒ Error running visualization examples:', error);
213
+ }
214
+ };
215
+ // ========== Quick Start Function ==========
216
+ export const quickStartVisualization = async (agent, outputPath) => {
217
+ console.log(`šŸš€ Quick visualization for agent: ${agent.config.name}`);
218
+ const result = await generateAgentVisualization([agent], {
219
+ outputPath: outputPath || `./agent-${agent.id}`,
220
+ outputFormat: 'png',
221
+ colorScheme: 'modern',
222
+ showToolDetails: true,
223
+ showSubAgents: true
224
+ });
225
+ if (result.success) {
226
+ console.log(`āœ… Visualization saved to: ${result.outputPath}`);
227
+ }
228
+ else {
229
+ console.error(`āŒ Visualization failed: ${result.error}`);
230
+ }
231
+ };
232
+ // ========== CLI Integration ==========
233
+ if (require.main === module) {
234
+ runVisualizationExamples().catch(console.error);
235
+ }
236
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/visualization/example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * JAF Visualization - Graphviz Integration
3
+ *
4
+ * Functional visualization system for agents and tools using Graphviz
5
+ */
6
+ import { Agent, Tool, RunnerConfig } from '../adk/types';
7
+ export interface GraphOptions {
8
+ readonly title?: string;
9
+ readonly layout?: 'dot' | 'neato' | 'fdp' | 'circo' | 'twopi';
10
+ readonly rankdir?: 'TB' | 'LR' | 'BT' | 'RL';
11
+ readonly outputFormat?: 'png' | 'svg' | 'pdf';
12
+ readonly outputPath?: string;
13
+ readonly showToolDetails?: boolean;
14
+ readonly showSubAgents?: boolean;
15
+ readonly colorScheme?: 'default' | 'modern' | 'minimal';
16
+ }
17
+ export interface GraphResult {
18
+ readonly success: boolean;
19
+ readonly outputPath?: string;
20
+ readonly error?: string;
21
+ readonly graphDot?: string;
22
+ }
23
+ export interface NodeStyle {
24
+ readonly shape: string;
25
+ readonly fillcolor: string;
26
+ readonly fontcolor: string;
27
+ readonly style: string;
28
+ readonly fontname?: string;
29
+ readonly penwidth?: string;
30
+ }
31
+ export interface EdgeStyle {
32
+ readonly color: string;
33
+ readonly style: string;
34
+ readonly penwidth?: string;
35
+ readonly arrowhead?: string;
36
+ }
37
+ export declare const generateAgentGraph: (agents: readonly Agent[], options?: GraphOptions) => Promise<GraphResult>;
38
+ export declare const generateToolGraph: (tools: readonly Tool[], options?: GraphOptions) => Promise<GraphResult>;
39
+ export declare const generateRunnerGraph: (config: RunnerConfig, options?: GraphOptions) => Promise<GraphResult>;
40
+ export declare const validateGraphOptions: (options: GraphOptions) => string[];
41
+ export declare const getGraphDot: (agents: readonly Agent[], options?: GraphOptions) => string;
42
+ //# sourceMappingURL=graphviz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphviz.d.ts","sourceRoot":"","sources":["../../src/visualization/graphviz.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAMzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AA8BD,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,SAAS,KAAK,EAAE,EACxB,UAAS,YAAiB,KACzB,OAAO,CAAC,WAAW,CA+DrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,SAAS,IAAI,EAAE,EACtB,UAAS,YAAiB,KACzB,OAAO,CAAC,WAAW,CAoDrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,YAAY,EACpB,UAAS,YAAiB,KACzB,OAAO,CAAC,WAAW,CAuBrB,CAAC;AA6SF,eAAO,MAAM,oBAAoB,GAAI,SAAS,YAAY,KAAG,MAAM,EAoBlE,CAAC;AAIF,eAAO,MAAM,WAAW,GAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,UAAS,YAAiB,KAAG,MAkBlF,CAAC"}