decode method
Decodes a JSON-compatible wire value.
Implementation
@override
SessionUpdate decode(Object? value) {
final payload = decodeAcpObject(value);
final tag = decodeAcpString(payload['sessionUpdate']);
switch (tag) {
case 'user_message_chunk':
return SessionUpdateUserMessageChunk(contentChunkCodec.decode(payload));
case 'user_message':
return SessionUpdateUserMessage(userMessageCodec.decode(payload));
case 'agent_message_chunk':
return SessionUpdateAgentMessageChunk(
contentChunkCodec.decode(payload),
);
case 'agent_message':
return SessionUpdateAgentMessage(agentMessageCodec.decode(payload));
case 'agent_thought_chunk':
return SessionUpdateAgentThoughtChunk(
contentChunkCodec.decode(payload),
);
case 'agent_thought':
return SessionUpdateAgentThought(agentThoughtCodec.decode(payload));
case 'state_update':
return SessionUpdateStateUpdate(stateUpdateCodec.decode(payload));
case 'tool_call_content_chunk':
return SessionUpdateToolCallContentChunk(
toolCallContentChunkCodec.decode(payload),
);
case 'tool_call_update':
return SessionUpdateToolCallUpdate(toolCallUpdateCodec.decode(payload));
case 'terminal_update':
return SessionUpdateTerminalUpdate(terminalUpdateCodec.decode(payload));
case 'terminal_output_chunk':
return SessionUpdateTerminalOutputChunk(
terminalOutputChunkCodec.decode(payload),
);
case 'plan_update':
return SessionUpdatePlanUpdate(planUpdateCodec.decode(payload));
case 'available_commands_update':
return SessionUpdateAvailableCommandsUpdate(
availableCommandsUpdateCodec.decode(payload),
);
case 'config_option_update':
return SessionUpdateConfigOptionUpdate(
configOptionUpdateCodec.decode(payload),
);
case 'session_info_update':
return SessionUpdateSessionInfoUpdate(
sessionInfoUpdateCodec.decode(payload),
);
case 'usage_update':
return SessionUpdateUsageUpdate(usageUpdateCodec.decode(payload));
default:
return SessionUpdateCustom(
discriminator: tag,
payload: AcpJsonObject.fromObject(payload),
);
}
}