@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,520 @@
1
+ /**
2
+ * JAF ADK Layer - LLM Service Bridge
3
+ *
4
+ * Bridges ADK types to Core ModelProvider interface following functional patterns
5
+ */
6
+ import { makeLiteLLMProvider } from '../../providers/model.js';
7
+ import { withLLMRetry, withLLMTimeout, classifyLLMError, createLLMErrorLogger } from './error-handler.js';
8
+ import { convertAdkToolToCoreTool, convertAdkModelToCoreModel as convertModelToCoreModel } from './type-converters.js';
9
+ import { Model, PartType, ContentRole } from '../types.js';
10
+ import OpenAI from 'openai';
11
+ // ========== LLM Service Factory ==========
12
+ export const createAdkLLMService = (config) => {
13
+ // Create the underlying Core ModelProvider
14
+ const coreProvider = createCoreProvider(config);
15
+ const errorLogger = createLLMErrorLogger();
16
+ // Wrap with error handling
17
+ const generateResponseWithErrorHandling = withLLMTimeout(withLLMRetry(createGenerateResponse(coreProvider), { maxRetries: 3, baseDelay: 1000, maxDelay: 30000 }, config.provider, config.defaultModel || 'unknown'), 30000, // 30 second timeout
18
+ config.provider, config.defaultModel || 'unknown');
19
+ const generateStreamingResponseWithErrorHandling = async function* (agent, session, message, requestConfig) {
20
+ try {
21
+ const streamGenerator = createGenerateStreamingResponse(coreProvider);
22
+ yield* streamGenerator(agent, session, message, requestConfig);
23
+ }
24
+ catch (error) {
25
+ const llmError = error instanceof Error
26
+ ? classifyLLMError(error, config.provider, requestConfig?.modelOverride || config.defaultModel || 'unknown')
27
+ : new Error('Unknown streaming error');
28
+ errorLogger.logError(llmError, { agent: agent.config.name, streaming: true });
29
+ throw llmError;
30
+ }
31
+ };
32
+ return {
33
+ generateResponse: async (agent, session, message, requestConfig) => {
34
+ try {
35
+ return await generateResponseWithErrorHandling(agent, session, message, requestConfig);
36
+ }
37
+ catch (error) {
38
+ const llmError = error instanceof Error
39
+ ? classifyLLMError(error, config.provider, requestConfig?.modelOverride || config.defaultModel || 'unknown')
40
+ : new Error('Unknown error');
41
+ errorLogger.logError(llmError, { agent: agent.config.name });
42
+ throw llmError;
43
+ }
44
+ },
45
+ generateStreamingResponse: generateStreamingResponseWithErrorHandling
46
+ };
47
+ };
48
+ // ========== Core Provider Creation ==========
49
+ const createCoreProvider = (config) => {
50
+ // Store config for streaming
51
+ global.__adk_llm_config = config;
52
+ switch (config.provider) {
53
+ case 'litellm': {
54
+ const litellmUrl = config.baseUrl || process.env.LITELLM_URL || 'http://localhost:4000';
55
+ const litellmKey = config.apiKey || process.env.LITELLM_API_KEY || 'anything';
56
+ // console.log('🔗 [LLM-DEBUG] Creating LiteLLM provider with:', { url: litellmUrl, key: `${litellmKey.substring(0, 10)}...` });
57
+ return makeLiteLLMProvider(litellmUrl, litellmKey);
58
+ }
59
+ case 'openai': {
60
+ const openaiKey = config.apiKey || process.env.OPENAI_API_KEY || '';
61
+ return makeLiteLLMProvider('https://api.openai.com/v1', openaiKey);
62
+ }
63
+ case 'anthropic': {
64
+ const anthropicKey = config.apiKey || process.env.ANTHROPIC_API_KEY || '';
65
+ return makeLiteLLMProvider('https://api.anthropic.com', anthropicKey);
66
+ }
67
+ case 'google': {
68
+ const googleKey = config.apiKey || process.env.GOOGLE_API_KEY || '';
69
+ return makeLiteLLMProvider('https://generativelanguage.googleapis.com/v1beta', googleKey);
70
+ }
71
+ default:
72
+ throw new Error(`Unsupported provider: ${config.provider}`);
73
+ }
74
+ };
75
+ // ========== Response Generation ==========
76
+ const createGenerateResponse = (coreProvider) => {
77
+ return async (agent, session, message, config) => {
78
+ // console.log('🚀 [LLM-DEBUG] Starting API call...');
79
+ // console.log('📤 [LLM-DEBUG] Agent:', { name: agent.config.name, model: agent.config.model });
80
+ // console.log('📤 [LLM-DEBUG] Message:', { role: message.role, text: message.parts.map(p => p.text).join('') });
81
+ // console.log('📤 [LLM-DEBUG] Config:', config);
82
+ // Convert ADK types to Core types
83
+ const coreState = convertAdkSessionToCoreState(session, message);
84
+ const coreAgent = convertAdkAgentToCoreAgent(agent);
85
+ const coreConfig = convertAdkConfigToCoreConfig(config, agent);
86
+ // console.log('📡 [LLM-DEBUG] Calling coreProvider.getCompletion...');
87
+ // Call Core ModelProvider
88
+ const coreResponse = await coreProvider.getCompletion(coreState, coreAgent, coreConfig);
89
+ // console.log('📥 [LLM-DEBUG] Raw Core Response:', coreResponse);
90
+ // console.log('✅ [LLM-DEBUG] API call successful!');
91
+ // Convert Core response back to ADK format
92
+ const adkResponse = convertCoreResponseToAdkResponse(coreResponse, config?.modelOverride || agent.config.model.toString());
93
+ return adkResponse;
94
+ };
95
+ };
96
+ // ========== Streaming Response Generation ==========
97
+ const createGenerateStreamingResponse = (coreProvider) => {
98
+ return async function* (agent, session, message, config) {
99
+ // console.log('🌊 [LLM-DEBUG] Starting streaming API call...');
100
+ // Get OpenAI client directly for streaming support
101
+ const { client, model } = await getStreamingClient(config, agent);
102
+ // Convert ADK types to OpenAI format
103
+ const coreState = convertAdkSessionToCoreState(session, message);
104
+ const coreAgent = convertAdkAgentToCoreAgent(agent);
105
+ // Prepare messages for OpenAI
106
+ const systemMessage = {
107
+ role: 'system',
108
+ content: agent.config.instruction
109
+ };
110
+ const messages = [
111
+ systemMessage,
112
+ ...coreState.messages.map((msg) => ({
113
+ role: msg.role,
114
+ content: msg.content,
115
+ ...(msg.tool_calls ? { tool_calls: msg.tool_calls } : {}),
116
+ ...(msg.tool_call_id ? { tool_call_id: msg.tool_call_id } : {})
117
+ }))
118
+ ];
119
+ // Prepare tools if any
120
+ const tools = agent.config.tools.length > 0 ? agent.config.tools.map(t => ({
121
+ type: 'function',
122
+ function: {
123
+ name: t.name,
124
+ description: t.description,
125
+ parameters: convertAdkParametersToJsonSchema(t.parameters)
126
+ }
127
+ })) : undefined;
128
+ // Create streaming completion
129
+ const stream = await client.chat.completions.create({
130
+ model: model,
131
+ messages: messages,
132
+ temperature: config?.temperature ?? 0.7,
133
+ max_tokens: config?.maxTokens ?? 2000,
134
+ tools: tools,
135
+ stream: true
136
+ });
137
+ let accumulatedText = '';
138
+ let currentFunctionCall = null;
139
+ // Process the stream
140
+ for await (const chunk of stream) {
141
+ const delta = chunk.choices[0]?.delta;
142
+ if (!delta)
143
+ continue;
144
+ // Handle text content
145
+ if (delta.content) {
146
+ accumulatedText += delta.content;
147
+ yield {
148
+ delta: delta.content,
149
+ isDone: false
150
+ };
151
+ }
152
+ // Handle function calls
153
+ if (delta.tool_calls) {
154
+ for (const toolCall of delta.tool_calls) {
155
+ if (toolCall.function?.name) {
156
+ currentFunctionCall = {
157
+ id: toolCall.id || '',
158
+ name: toolCall.function.name,
159
+ args: {}
160
+ };
161
+ }
162
+ if (toolCall.function?.arguments) {
163
+ if (currentFunctionCall) {
164
+ // Accumulate arguments
165
+ const argString = currentFunctionCall.args.__raw_args || '';
166
+ currentFunctionCall.args.__raw_args = argString + toolCall.function.arguments;
167
+ // Try to parse complete arguments
168
+ try {
169
+ currentFunctionCall.args = JSON.parse(currentFunctionCall.args.__raw_args);
170
+ delete currentFunctionCall.args.__raw_args;
171
+ }
172
+ catch {
173
+ // Arguments not complete yet
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ // Check if we have a complete function call
180
+ if (currentFunctionCall && currentFunctionCall.id && currentFunctionCall.name &&
181
+ currentFunctionCall.args && !currentFunctionCall.args.__raw_args) {
182
+ yield {
183
+ delta: '',
184
+ functionCall: currentFunctionCall,
185
+ isDone: false
186
+ };
187
+ currentFunctionCall = null;
188
+ }
189
+ }
190
+ // Final chunk
191
+ yield {
192
+ delta: '',
193
+ isDone: true
194
+ };
195
+ // console.log('✅ [LLM-DEBUG] Streaming completed successfully');
196
+ };
197
+ };
198
+ // ========== Type Conversion Functions ==========
199
+ const convertAdkSessionToCoreState = (session, newMessage) => {
200
+ // Convert ADK session messages to Core format
201
+ const coreMessages = session.messages.map(convertAdkContentToCoreMessage);
202
+ coreMessages.push(convertAdkContentToCoreMessage(newMessage));
203
+ return {
204
+ runId: session.id,
205
+ traceId: session.id, // Use session ID as trace ID for now
206
+ messages: coreMessages,
207
+ currentAgentName: 'default', // ADK doesn't have explicit agent names
208
+ context: {
209
+ userId: session.userId,
210
+ sessionId: session.id,
211
+ artifacts: session.artifacts
212
+ },
213
+ turnCount: session.messages.length
214
+ };
215
+ };
216
+ const convertAdkContentToCoreMessage = (content) => {
217
+ const role = convertAdkRoleToCoreRole(content.role);
218
+ // Handle text content
219
+ const textParts = content.parts.filter(p => p.type === PartType.TEXT);
220
+ const textContent = textParts.map(p => p.text || '').join(' ');
221
+ // Handle function calls
222
+ const functionCalls = content.parts
223
+ .filter(p => p.type === PartType.FUNCTION_CALL)
224
+ .map(p => p.functionCall)
225
+ .filter(fc => fc !== undefined);
226
+ // Handle function responses
227
+ const functionResponses = content.parts
228
+ .filter(p => p.type === PartType.FUNCTION_RESPONSE)
229
+ .map(p => p.functionResponse)
230
+ .filter(fr => fr !== undefined);
231
+ const message = {
232
+ role,
233
+ content: textContent
234
+ };
235
+ if (functionCalls.length > 0) {
236
+ message.tool_calls = functionCalls.map(fc => ({
237
+ id: fc.id,
238
+ type: 'function',
239
+ function: {
240
+ name: fc.name,
241
+ arguments: JSON.stringify(fc.args)
242
+ }
243
+ }));
244
+ }
245
+ if (functionResponses.length > 0 && role === 'tool') {
246
+ const fr = functionResponses[0];
247
+ message.tool_call_id = fr.id;
248
+ message.content = typeof fr.response === 'string' ? fr.response : JSON.stringify(fr.response);
249
+ }
250
+ return message;
251
+ };
252
+ const convertAdkRoleToCoreRole = (adkRole) => {
253
+ switch (adkRole) {
254
+ case ContentRole.USER:
255
+ case 'user':
256
+ return 'user';
257
+ case ContentRole.MODEL:
258
+ case 'model':
259
+ return 'assistant';
260
+ case ContentRole.SYSTEM:
261
+ case 'system':
262
+ return 'system';
263
+ case 'tool':
264
+ return 'tool';
265
+ default:
266
+ return 'user';
267
+ }
268
+ };
269
+ const convertAdkAgentToCoreAgent = (adkAgent) => {
270
+ return {
271
+ name: adkAgent.config.name,
272
+ instructions: () => adkAgent.config.instruction,
273
+ tools: adkAgent.config.tools.map(convertAdkToolToCoreTool),
274
+ modelConfig: {
275
+ name: convertModelToCoreModel(adkAgent.config.model),
276
+ temperature: 0.7, // Default temperature
277
+ maxTokens: 2000 // Default max tokens
278
+ },
279
+ handoffs: [],
280
+ outputCodec: adkAgent.config.outputSchema ? {
281
+ safeParse: (data) => adkAgent.config.outputSchema.validate(data)
282
+ } : undefined
283
+ };
284
+ };
285
+ const convertAdkToolToCoreool = (adkTool) => {
286
+ return {
287
+ schema: {
288
+ name: adkTool.name,
289
+ description: adkTool.description,
290
+ parameters: convertAdkParametersToCoreParameters(adkTool.parameters)
291
+ },
292
+ execute: async (params, context) => {
293
+ // Call the ADK tool executor and convert context
294
+ const adkContext = convertCoreContextToAdkContext(context);
295
+ return await adkTool.execute(params, adkContext);
296
+ }
297
+ };
298
+ };
299
+ const convertAdkParametersToCoreParameters = (adkParams) => {
300
+ // Convert ADK parameters to Zod-like schema
301
+ const properties = {};
302
+ const required = [];
303
+ for (const param of adkParams) {
304
+ properties[param.name] = {
305
+ type: param.type,
306
+ description: param.description
307
+ };
308
+ if (param.required) {
309
+ required.push(param.name);
310
+ }
311
+ }
312
+ return {
313
+ safeParse: (data) => {
314
+ // Simple validation
315
+ const errors = [];
316
+ for (const req of required) {
317
+ if (!(req in data)) {
318
+ errors.push(`Missing required parameter: ${req}`);
319
+ }
320
+ }
321
+ if (errors.length > 0) {
322
+ return { success: false, error: { issues: errors.map(e => ({ message: e })) } };
323
+ }
324
+ return { success: true, data };
325
+ }
326
+ };
327
+ };
328
+ const convertAdkModelToCoreModel = (adkModel) => {
329
+ if (typeof adkModel === 'string') {
330
+ return adkModel;
331
+ }
332
+ switch (adkModel) {
333
+ case Model.GEMINI_2_0_FLASH:
334
+ return 'gemini-2.0-flash';
335
+ case Model.GEMINI_1_5_PRO:
336
+ return 'gemini-1.5-pro';
337
+ case Model.GEMINI_1_5_FLASH:
338
+ return 'gemini-1.5-flash';
339
+ case Model.GPT_4_TURBO:
340
+ return 'gpt-4-turbo';
341
+ case Model.GPT_4:
342
+ return 'gpt-4';
343
+ case Model.GPT_3_5_TURBO:
344
+ return 'gpt-3.5-turbo';
345
+ case Model.CLAUDE_3_OPUS_20240229:
346
+ return 'claude-3-opus-20240229';
347
+ case Model.CLAUDE_3_5_SONNET_LATEST:
348
+ return 'claude-3-5-sonnet-latest';
349
+ case Model.CLAUDE_3_HAIKU_20240307:
350
+ return 'claude-3-haiku-20240307';
351
+ default:
352
+ return 'gpt-4o';
353
+ }
354
+ };
355
+ const convertAdkConfigToCoreConfig = (adkConfig, agent) => {
356
+ return {
357
+ agentRegistry: new Map(), // Empty for now
358
+ modelProvider: null, // Will be set by caller
359
+ modelOverride: adkConfig?.modelOverride,
360
+ maxTurns: 50,
361
+ temperature: adkConfig?.temperature,
362
+ maxTokens: adkConfig?.maxTokens
363
+ };
364
+ };
365
+ const convertCoreResponseToAdkResponse = (coreResponse, model) => {
366
+ const content = convertCoreMessageToAdkContent(coreResponse);
367
+ const functionCalls = extractFunctionCallsFromCoreResponse(coreResponse);
368
+ return {
369
+ content,
370
+ functionCalls,
371
+ metadata: {
372
+ model,
373
+ finishReason: 'stop'
374
+ }
375
+ };
376
+ };
377
+ const convertCoreMessageToAdkContent = (coreResponse) => {
378
+ const parts = [];
379
+ // Add text content if present
380
+ if (coreResponse.message?.content) {
381
+ parts.push({
382
+ type: PartType.TEXT,
383
+ text: coreResponse.message.content
384
+ });
385
+ }
386
+ // Add function calls if present
387
+ if (coreResponse.message?.tool_calls) {
388
+ for (const toolCall of coreResponse.message.tool_calls) {
389
+ parts.push({
390
+ type: PartType.FUNCTION_CALL,
391
+ functionCall: {
392
+ id: toolCall.id,
393
+ name: toolCall.function.name,
394
+ args: JSON.parse(toolCall.function.arguments)
395
+ }
396
+ });
397
+ }
398
+ }
399
+ return {
400
+ role: ContentRole.MODEL,
401
+ parts,
402
+ metadata: {}
403
+ };
404
+ };
405
+ const extractFunctionCallsFromCoreResponse = (coreResponse) => {
406
+ if (!coreResponse.message?.tool_calls) {
407
+ return [];
408
+ }
409
+ return coreResponse.message.tool_calls.map((toolCall) => ({
410
+ id: toolCall.id,
411
+ name: toolCall.function.name,
412
+ args: JSON.parse(toolCall.function.arguments)
413
+ }));
414
+ };
415
+ const convertCoreContextToAdkContext = (coreContext) => {
416
+ // Convert Core tool context to ADK tool context
417
+ return {
418
+ agent: coreContext.agent, // Will need proper conversion
419
+ session: coreContext.session, // Will need proper conversion
420
+ message: coreContext.message, // Will need proper conversion
421
+ actions: coreContext.actions,
422
+ metadata: coreContext.metadata
423
+ };
424
+ };
425
+ // ========== Streaming Helpers ==========
426
+ const getStreamingClient = async (config, agent) => {
427
+ // Get the stored config from service creation
428
+ const serviceConfig = global.__adk_llm_config;
429
+ if (!serviceConfig) {
430
+ throw new Error('LLM service not properly initialized');
431
+ }
432
+ let client;
433
+ let model;
434
+ switch (serviceConfig.provider) {
435
+ case 'openai': {
436
+ const openaiKey = serviceConfig.apiKey || process.env.OPENAI_API_KEY;
437
+ if (!openaiKey) {
438
+ throw new Error('OPENAI_API_KEY is required for OpenAI streaming');
439
+ }
440
+ client = new OpenAI({
441
+ apiKey: openaiKey,
442
+ dangerouslyAllowBrowser: true
443
+ });
444
+ model = config?.modelOverride || serviceConfig.defaultModel || (agent ? convertModelToCoreModel(agent.config.model) : 'gpt-4o');
445
+ break;
446
+ }
447
+ case 'litellm': {
448
+ const litellmUrl = serviceConfig.baseUrl || process.env.LITELLM_URL || 'http://localhost:4000';
449
+ const litellmKey = serviceConfig.apiKey || process.env.LITELLM_API_KEY || 'anything';
450
+ client = new OpenAI({
451
+ baseURL: litellmUrl,
452
+ apiKey: litellmKey,
453
+ dangerouslyAllowBrowser: true
454
+ });
455
+ model = config?.modelOverride || serviceConfig.defaultModel || (agent ? convertModelToCoreModel(agent.config.model) : 'gpt-4o');
456
+ break;
457
+ }
458
+ case 'anthropic': {
459
+ // For Anthropic via LiteLLM proxy
460
+ const anthropicUrl = serviceConfig.baseUrl || process.env.LITELLM_URL || 'http://localhost:4000';
461
+ const anthropicKey = serviceConfig.apiKey || process.env.ANTHROPIC_API_KEY || process.env.LITELLM_API_KEY || 'anything';
462
+ client = new OpenAI({
463
+ baseURL: anthropicUrl,
464
+ apiKey: anthropicKey,
465
+ dangerouslyAllowBrowser: true
466
+ });
467
+ // Use claude model for Anthropic
468
+ model = config?.modelOverride || serviceConfig.defaultModel || 'claude-3-sonnet';
469
+ break;
470
+ }
471
+ case 'google': {
472
+ // For Google via LiteLLM proxy
473
+ const googleUrl = serviceConfig.baseUrl || process.env.LITELLM_URL || 'http://localhost:4000';
474
+ const googleKey = serviceConfig.apiKey || process.env.GOOGLE_API_KEY || process.env.LITELLM_API_KEY || 'anything';
475
+ client = new OpenAI({
476
+ baseURL: googleUrl,
477
+ apiKey: googleKey,
478
+ dangerouslyAllowBrowser: true
479
+ });
480
+ // Use gemini model for Google
481
+ model = config?.modelOverride || serviceConfig.defaultModel || 'gemini-1.5-pro';
482
+ break;
483
+ }
484
+ default:
485
+ throw new Error(`Unsupported streaming provider: ${serviceConfig.provider}`);
486
+ }
487
+ return { client, model };
488
+ };
489
+ const convertAdkParametersToJsonSchema = (parameters) => {
490
+ const properties = {};
491
+ const required = [];
492
+ for (const param of parameters) {
493
+ properties[param.name] = {
494
+ type: param.type,
495
+ description: param.description,
496
+ ...(param.enum ? { enum: param.enum } : {}),
497
+ ...(param.properties ? { properties: convertAdkParametersToJsonSchema(Object.values(param.properties)) } : {}),
498
+ ...(param.items ? { items: convertAdkParametersToJsonSchema([param.items])[param.items.name] } : {})
499
+ };
500
+ if (param.required !== false) {
501
+ required.push(param.name);
502
+ }
503
+ }
504
+ return {
505
+ type: 'object',
506
+ properties,
507
+ ...(required.length > 0 ? { required } : {}),
508
+ additionalProperties: false
509
+ };
510
+ };
511
+ // ========== Default Service Instance ==========
512
+ export const createDefaultAdkLLMService = () => {
513
+ return createAdkLLMService({
514
+ provider: 'litellm',
515
+ baseUrl: process.env.LITELLM_URL || 'http://localhost:4000',
516
+ apiKey: process.env.LITELLM_API_KEY || 'anything',
517
+ defaultModel: process.env.LITELLM_MODEL || 'gpt-4o'
518
+ });
519
+ };
520
+ //# sourceMappingURL=llm-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-service.js","sourceRoot":"","sources":["../../../src/adk/providers/llm-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * JAF ADK Layer - Type Converters
3
+ *
4
+ * Functional type conversion between ADK and Core formats
5
+ */
6
+ import { z } from 'zod';
7
+ import type { Message, RunState, Agent as CoreAgent, Tool as CoreTool } from '../../core/types.js';
8
+ import { Content, ContentRole, FunctionCall, FunctionResponse, Agent, Tool, Session, Model, ToolParameter } from '../types.js';
9
+ export declare const convertAdkContentToCoreMessage: (content: Content) => Message;
10
+ export declare const convertCoreMessageToAdkContent: (message: Message) => Content;
11
+ export declare const convertAdkRoleToCoreRole: (adkRole: ContentRole | string) => string;
12
+ export declare const convertCoreRoleToAdkRole: (coreRole: string) => ContentRole;
13
+ export declare const convertAdkSessionToCoreState: (session: Session, newMessage?: Content) => RunState<any>;
14
+ export declare const convertCoreStateToAdkSession: (state: RunState<any>) => Session;
15
+ export declare const convertAdkAgentToCoreAgent: (adkAgent: Agent) => CoreAgent<any, any>;
16
+ export declare const convertCoreAgentToAdkAgent: (coreAgent: CoreAgent<any, any>) => Agent;
17
+ export declare const convertAdkToolToCoreTool: (adkTool: Tool) => CoreTool<any, any>;
18
+ export declare const convertCoreToolToAdkTool: (coreTool: CoreTool<any, any>) => Tool;
19
+ export declare const convertAdkModelToCoreModel: (adkModel: Model | string) => string;
20
+ export declare const convertCoreModelToAdkModel: (coreModel: string) => Model;
21
+ export declare const createZodFromAdkParameters: (parameters: ToolParameter[]) => z.ZodSchema;
22
+ export declare const createZodFromAdkParameter: (param: ToolParameter) => z.ZodSchema;
23
+ export declare const convertZodToAdkParameters: (zodSchema: z.ZodSchema) => ToolParameter[];
24
+ export declare const createZodFromAdkSchema: (adkSchema: any) => z.ZodSchema;
25
+ export declare const convertCoreContextToAdkContext: (coreContext: any) => any;
26
+ export declare const convertAdkContextToCoreContext: (adkContext: any) => any;
27
+ export declare const safeJsonParse: (jsonString: string) => any;
28
+ export declare const safeJsonStringify: (obj: any) => string;
29
+ export declare const extractFunctionCallsFromAdkContent: (content: Content) => FunctionCall[];
30
+ export declare const extractFunctionResponsesFromAdkContent: (content: Content) => FunctionResponse[];
31
+ export declare const createAdkContentWithText: (text: string, role?: ContentRole) => Content;
32
+ export declare const createAdkContentWithFunctionCall: (functionCall: FunctionCall, role?: ContentRole) => Content;
33
+ export declare const createAdkContentWithFunctionResponse: (functionResponse: FunctionResponse, role?: ContentRole) => Content;
34
+ //# sourceMappingURL=type-converters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-converters.d.ts","sourceRoot":"","sources":["../../../src/adk/providers/type-converters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,SAAS,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EACL,OAAO,EAGP,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,EACL,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,8BAA8B,GAAI,SAAS,OAAO,KAAG,OA2CjE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,SAAS,OAAO,KAAG,OA2CjE,CAAC;AAIF,eAAO,MAAM,wBAAwB,GAAI,SAAS,WAAW,GAAG,MAAM,KAAG,MAcxE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,WAa3D,CAAC;AAIF,eAAO,MAAM,4BAA4B,GAAI,SAAS,OAAO,EAAE,aAAa,OAAO,KAAG,QAAQ,CAAC,GAAG,CAoBjG,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAG,OAgBnE,CAAC;AAIF,eAAO,MAAM,0BAA0B,GAAI,UAAU,KAAK,KAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAa9E,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,WAAW,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAG,KAkB3E,CAAC;AAIF,eAAO,MAAM,wBAAwB,GAAI,SAAS,IAAI,KAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAqBzE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KAAG,IAevE,CAAC;AAIF,eAAO,MAAM,0BAA0B,GAAI,UAAU,KAAK,GAAG,MAAM,KAAG,MAwCrE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,WAAW,MAAM,KAAG,KA2B9D,CAAC;AAIF,eAAO,MAAM,0BAA0B,GAAI,YAAY,aAAa,EAAE,KAAG,CAAC,CAAC,SAc1E,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,aAAa,KAAG,CAAC,CAAC,SAsClE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,WAAW,CAAC,CAAC,SAAS,KAAG,aAAa,EAS/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,WAAW,GAAG,KAAG,CAAC,CAAC,SAMzD,CAAC;AAIF,eAAO,MAAM,8BAA8B,GAAI,aAAa,GAAG,KAAG,GAQjE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,YAAY,GAAG,KAAG,GAQhE,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,YAAY,MAAM,KAAG,GAMlD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,KAAK,GAAG,KAAG,MAM5C,CAAC;AAIF,eAAO,MAAM,kCAAkC,GAAI,SAAS,OAAO,KAAG,YAAY,EAKjF,CAAC;AAEF,eAAO,MAAM,sCAAsC,GAAI,SAAS,OAAO,KAAG,gBAAgB,EAKzF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,EAAE,OAAM,WAA+B,KAAG,OAS9F,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,cAAc,YAAY,EAAE,OAAM,WAA+B,KAAG,OASpH,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,kBAAkB,gBAAgB,EAAE,OAAM,WAA+B,KAAG,OAShI,CAAC"}