UNPKG

@iqai/adk-cli

Version:

CLI tool for creating, running, and testing ADK-TS agents

72 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractInitialState = extractInitialState; function hasSessionService(agent) { return (typeof agent === "object" && agent !== null && "sessionService" in agent); } function extractNonEmptyState(state) { if (state == null) return undefined; if (state instanceof Map) { if (state.size > 0) return Object.fromEntries(state); return undefined; } if (typeof state === "object" && Object.keys(state).length > 0) { return state; } return undefined; } function getInitialStateFromSessionService(agent) { const sessions = agent?.sessionService?.sessions; if (!sessions) return undefined; for (const [, userSessions] of sessions) { for (const [, session] of userSessions) { for (const [, innerSession] of session) { const extractedState = extractNonEmptyState(innerSession?.state); if (extractedState) return extractedState; } } } return undefined; } function extractBuiltAgentState(builtAgent) { if (!builtAgent?.session) return undefined; const state = builtAgent.session.state; if (state && Object.keys(state).length > 0) return state; return undefined; } function extractSubAgentState(agent, logger) { const subAgents = agent.subAgents; if (!Array.isArray(subAgents)) return undefined; for (const subAgent of subAgents) { if (hasSessionService(subAgent)) { const subState = getInitialStateFromSessionService(subAgent); if (subState) { logger?.log(`✅ Extracted state from sub-agent: ${Object.keys(subState)}`); return subState; } } } return undefined; } function extractInitialState(agentResult, logger) { const builtAgentState = extractBuiltAgentState(agentResult.builtAgent); if (builtAgentState) return builtAgentState; if (hasSessionService(agentResult.agent)) { const agentState = getInitialStateFromSessionService(agentResult.agent); if (agentState) return agentState; } const subAgentState = extractSubAgentState(agentResult.agent, logger); if (subAgentState) return subAgentState; return undefined; } //# sourceMappingURL=state.js.map