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"; import interface WebStudioPresentable; import interface PresentationMount; type ItemData = record {key:string;kind:string;text:string;phase:string;activity:optional;presentation:optional;sequence:uint64;version:uint64;createdAt:string;updatedAt:string;control:optional;}; interface AgentItem id "interface:org.quixos.agent:item" revision "interface:org.quixos.agent:item@1" { queryable value data id "agent:item:data" : ItemData {get id "agent:item:data:get" execution snapshot;} queryable relation request id "agent:item:request" : exactly-one atom AgentRequestObject {resolve id "agent:item:request:resolve" execution snapshot;} queryable relation thread id "agent:item:thread" : exactly-one atom AgentThreadObject {resolve id "agent:item:thread:resolve" execution snapshot;} queryable relation subject id "agent:item:subject" : optional-one interface WebStudioPresentable {resolve id "agent:item:subject:resolve" execution snapshot;} queryable relation presentationMount id "agent:item:presentation-mount" : optional-one interface PresentationMount {resolve id "agent:item:presentation-mount:resolve" execution snapshot;} operation checkpoint id "agent:item:checkpoint" : record {attempt:string;generation:uint32;data:ItemData;} -> unit {call id "agent:item:checkpoint:call" execution transaction;} }