external atom AgentDirectoryObject id "atom:org.quixos.agent:directory"; external atom AgentObject id "atom:org.quixos.agent:agent"; external atom AgentThreadObject id "atom:org.quixos.agent:thread"; external atom AgentRequestObject id "atom:org.quixos.agent:request"; external atom AgentItemObject id "atom:org.quixos.agent:item"; external atom AgentQuestionObject id "atom:org.quixos.agent:question"; external atom AgentCompletionStreamObject id "atom:org.quixos.agent:completion-stream"; type QuestionData = record {key:string;title:string;options:string;status:string;answer:optional;createdAt:string;expiresAt:string;attempt:string;generation:uint32;}; interface AgentQuestion id "interface:org.quixos.agent:question" revision "interface:org.quixos.agent:question@1" { queryable value data id "agent:question:data" : QuestionData {get id "agent:question:data:get" execution snapshot;} queryable relation request id "agent:question:request" : exactly-one atom AgentRequestObject {resolve id "agent:question:request:resolve" execution snapshot;} operation answer id "agent:question:answer" : record {answer:string;attempt:string;generation:uint32;answeredAt:string;} -> bool {call id "agent:question:answer:call" execution transaction;} operation cancel id "agent:question:cancel" : unit -> unit {call id "agent:question:cancel:call" execution transaction;} }