Files

17 lines
1.3 KiB
Plaintext

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<string>;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;}
}