import interface ReadingVocabulary; external atom ReadingVocabularyObject id "atom:reading:vocabulary"; import interface ReadingDocument; import interface ReadingReader; external atom ReadingReaderObject id "atom:reading:reader"; import interface ReadingFeature; import interface ReadingJob; import interface ReadingWord; import interface ReadingOwner; external atom ReadingLibrary id "atom:reading:library"; external atom ReadingDocumentObject id "atom:reading:document"; external atom ReadingFeatureObject id "atom:reading:feature"; external atom ReadingJobObject id "atom:reading:job"; external atom AgentObject id "atom:org.quixos.agent:agent"; external atom AgentDirectoryObject id "atom:org.quixos.agent:directory"; interface LanguageReader id "interface:reading:library" revision "interface:reading:library@1" requires ReadingOwner { static operation root id "reading:root" : unit -> atom-ref {call id "reading:root:call" execution transaction;} queryable relation readers id "reading:library:readers" : many-unique interface ReadingReader {resolve id "reading:library:readers:resolve" execution snapshot;} queryable relation defaultReader id "reading:library:default-reader" : optional-one interface ReadingReader {resolve id "reading:library:default-reader:resolve" execution snapshot;} operation ensureReaders id "reading:library:ensure-readers" : unit -> atom-ref {call id "reading:library:ensure-readers:call" execution transaction;} operation addFrenchReader id "reading:library:add-french-reader" : unit -> atom-ref {call id "reading:library:add-french-reader:call" execution transaction;} operation generateDocument id "reading:library:generate-document" : record {prompt:string;reader:atom-ref;createdAt:string;} -> atom-ref {call id "reading:library:generate-document:call" execution transaction;} operation addReader id "reading:library:add-reader" : record {name:string;copy:optional>;} -> atom-ref {call id "reading:library:add-reader:call" execution transaction;} queryable value name id "reading:library:name" : string {get id "reading:library:name:get" execution snapshot;} queryable value inferenceProfile id "reading:library:inference-profile" : string {get id "reading:library:inference-profile:get" execution snapshot;set id "reading:library:inference-profile:set" execution transaction;} queryable value archivedTypes id "reading:library:archived-types" : list {get id "reading:library:archived-types:get" execution snapshot;} operation archiveType id "reading:library:archive-type" : record {processor:string;archived:bool;} -> unit {call id "reading:library:archive-type:call" execution transaction;} operation catalog id "reading:library:catalog" : unit -> list {call id "reading:library:catalog:call" execution snapshot;} queryable relation inference id "reading:library:inference" : optional-one atom AgentObject {resolve id "reading:library:inference:resolve" execution snapshot;} queryable relation author id "reading:library:author" : optional-one atom AgentObject {resolve id "reading:library:author:resolve" execution snapshot;} queryable relation documents id "reading:library:documents" : many-unique interface ReadingDocument {resolve id "reading:library:documents:resolve" execution snapshot;} queryable relation features id "reading:library:features" : many-unique interface ReadingFeature {resolve id "reading:library:features:resolve" execution snapshot;} queryable relation vocabulary id "reading:library:vocabulary" : many-unique interface ReadingWord {resolve id "reading:library:vocabulary:resolve" execution snapshot;} queryable relation tasks id "reading:library:tasks" : many-unique interface ReadingJob {resolve id "reading:library:tasks:resolve" execution snapshot;} operation addDocument id "reading:library:add-document" : record {title:string;text:string;source:string;url:string;attribution:string;} -> atom-ref {call id "reading:library:add-document:call" execution transaction;} operation addFeature id "reading:library:add-feature" : record {authoring:optional>;reader:optional>;name:string;processor:string;style:string;reveal:string;generation:string;scope:string;color:string;options:string;} -> atom-ref {call id "reading:library:add-feature:call" execution transaction;} queryable relation vocabularies id "reading:library:vocabularies" : many-unique interface ReadingVocabulary {resolve id "reading:library:vocabularies:resolve" execution snapshot;} queryable relation defaultVocabulary id "reading:library:default-vocabulary" : optional-one interface ReadingVocabulary {resolve id "reading:library:default-vocabulary:resolve" execution snapshot;} operation addVocabulary id "reading:library:add-vocabulary" : string -> atom-ref {call id "reading:library:add-vocabulary:call" execution transaction;} operation ensureVocabulary id "reading:library:ensure-vocabulary" : unit -> atom-ref {call id "reading:library:ensure-vocabulary:call" execution transaction;} operation remember id "reading:library:remember" : string -> unit {call id "reading:library:remember:call" execution transaction;} operation install id "reading:library:install" : unit -> unit {call id "reading:library:install:call" execution transaction;} operation installWorkspace id "reading:library:install-workspace" : record {instructions:string;settings:string;} -> atom-ref {call id "reading:library:install-workspace:call" execution transaction;} operation customize id "reading:library:customize" : record {feature:optional>;reader:atom-ref;configuration:string;text:string;createdAt:string;} -> atom-ref {call id "reading:library:customize:call" execution transaction;} }