@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,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"}
|