@iqai/adk-cli
Version:
CLI tool for creating, running, and testing ADK-TS agents
72 lines • 2.43 kB
JavaScript
;
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