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"; external atom PresentationMountRecord id "atom:org.quixos.presentation-mount"; import interface PresentationMount; import interface AgentWorkspace; import interface AgentDirectory; import interface Agent; import interface AgentThread; import interface AgentRequest; import interface AgentItem; import interface AgentQuestion; import interface AgentContextSubject; import interface WebStudioPresentable; import interface EventStream; type AgentSubmission = record {text:string;data:optional;profile:optional;response:optional;sourceKind:string;sourceLabel:string;publication:optional;createdAt:string;contexts:list>;related:optional>;retryOf:optional>;root:optional>;causalDepth:uint32;}; type AgentAdmission = record {accepted:bool;reason:optional;thread:optional>;request:optional>;}; type DirectoryData = record {sequence:uint64;pending:uint32;ordinaryPending:uint32;notificationPending:uint32;profiles:string;availability:string;}; type ThreadData = record {title:string;kind:string;archived:bool;sequence:uint64;pending:uint32;nextItem:uint64;updatedAt:string;}; type AgentData = record {name:string;description:string;enabled:bool;settings:string;}; type RequestData = record {text:string;data:optional;configuration:string;configurationDigest:string;responseKind:string;sequence:uint64;createdAt:string;sourceKind:string;sourceLabel:string;publication:optional;causalDepth:uint32;interactive:bool;}; type RequestState = record {status:string;attempt:string;generation:uint32;reason:string;result:optional;rawOutput:optional;usage:optional;startedAt:optional;endedAt:optional;cancelRequested:bool;retryCount:uint32;notificationPending:bool;}; 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;}; type QuestionData = record {key:string;title:string;options:string;status:string;answer:optional;createdAt:string;expiresAt:string;attempt:string;generation:uint32;}; type AgentCompletion = record {request:atom-ref;thread:atom-ref;status:string;}; package AgentRuntime id "package:org.quixos.agent:runtime" revision "package:org.quixos.agent:runtime@1" { operation workspace_install id "agent:runtime:workspace_install" : record {instructions:string;settings:string;} -> atom-ref mode call execution transaction targets [server] receiver any requires {edge agents id "agents" : optional-one atom AgentDirectoryObject [resolve,connect,disconnect]; creation create_directory id "create_directory" : AgentDirectoryObject input record {data:DirectoryData;}; interface directory id "directory" : AgentDirectory using [initialize.call] from input;}; operation directory_createAgent id "agent:runtime:directory_createAgent" : record {name:string;description:string;instructions:string;settings:string;} -> atom-ref mode call execution transaction targets [server] receiver any requires {creation create_agent id "create_agent" : AgentObject input record {data:AgentData;instructions:string;directory:atom-ref;completions:interface-ref>;}; creation create_stream id "create_stream" : AgentCompletionStreamObject input unit;}; operation directory_createThread id "agent:runtime:directory_createThread" : record {agent:atom-ref;title:string;kind:string;createdAt:string;contexts:list>;} -> atom-ref mode call execution transaction targets [server] receiver any requires {state data id "data" : DirectoryData [read,write]; creation create_thread id "create_thread" : AgentThreadObject input record {contexts:list;}>;data:ThreadData;directory:atom-ref;agent:atom-ref;}; interface agent id "agent" : Agent using [directory.resolve] from input;}; operation directory_admit id "agent:runtime:directory_admit" : record {agent:atom-ref;thread:optional>;submission:AgentSubmission;optionalWork:bool;} -> AgentAdmission mode call execution transaction targets [server] receiver any requires {state data id "data" : DirectoryData [read,write]; edge pending id "pending" : many-unique atom AgentRequestObject [resolve,connect,disconnect]; creation create_request id "create_request" : AgentRequestObject input record {spawned:uint32;contexts:list;}>;admission:RequestData;progress:RequestState;directory:atom-ref;thread:atom-ref;related:optional>;retryOf:optional>;root:optional>;}; creation create_item id "create_item" : AgentItemObject input record {data:ItemData;thread:atom-ref;request:atom-ref;subject:optional>;presentationMount:optional>;}; interface agent id "agent" : Agent using [data.get,instructions.get,directory.resolve] from input; interface thread id "thread" : AgentThread using [data.get,agent.resolve,adjustPending.call,allocateItem.call,contexts.resolve] from input; interface root id "root" : AgentRequest using [reserveChild.call] from input; interface directory id "directory" : AgentDirectory using [createThread.call] from input;}; operation directory_reconcileRepair id "agent:runtime:directory_reconcileRepair" : record {key:string;text:string;configuration:string;createdAt:string;confirmedAt:string;publication:string;attempt:string;generation:uint32;startedAt:string;} -> atom-ref mode call execution transaction targets [server] receiver any requires { state data id "data" : DirectoryData [read,write]; edge repairs id "repairs" : many-unique atom AgentRequestObject keyed "string" [resolve,connect]; edge pending id "pending" : many-unique atom AgentRequestObject [connect]; edge defaultAgent id "defaultAgent" : optional-one atom AgentObject [resolve]; edge initialThread id "initialThread" : optional-one atom AgentThreadObject [resolve]; creation create_request id "create_request" : AgentRequestObject input record {spawned:uint32;contexts:list;}>;admission:RequestData;progress:RequestState;directory:atom-ref;thread:atom-ref;related:optional>;retryOf:optional>;root:optional>;}; creation create_item id "create_item" : AgentItemObject input record {data:ItemData;thread:atom-ref;request:atom-ref;subject:optional>;presentationMount:optional>;}; interface request id "request" : AgentRequest using [admission.get] from input; interface thread id "thread" : AgentThread using [data.get,adjustPending.call,allocateItem.call,activate.call] from input; }; operation directory_settle id "agent:runtime:directory_settle" : record {request:atom-ref;thread:atom-ref;interactive:bool;notify:bool;} -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : DirectoryData [read,write]; edge pending id "pending" : many-unique atom AgentRequestObject [resolve,connect,disconnect]; edge notifications id "notifications" : many-unique atom AgentRequestObject [resolve,connect,disconnect]; interface thread id "thread" : AgentThread using [adjustPending.call,release.call] from input;}; operation directory_advertise id "agent:runtime:directory_advertise" : record {profiles:string;availability:string;} -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : DirectoryData [read,write];}; operation directory_initialize id "agent:runtime:directory_initialize" : record {instructions:string;settings:string;} -> unit mode call execution transaction targets [server] receiver any requires {edge defaultAgent id "defaultAgent" : optional-one atom AgentObject [resolve,connect,disconnect]; edge initialThread id "initialThread" : optional-one atom AgentThreadObject [resolve,connect,disconnect]; interface directory id "directory" : AgentDirectory using [createAgent.call,createThread.call] from input;}; operation directory_notificationSent id "agent:runtime:directory_notificationSent" : atom-ref -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : DirectoryData [read,write];edge notifications id "notifications" : many-unique atom AgentRequestObject [resolve,connect,disconnect];}; operation agent_update id "agent:runtime:agent_update" : record {name:optional;description:optional;enabled:optional;settings:optional;} -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : AgentData [read,write];}; operation agent_createThread id "agent:runtime:agent_createThread" : record {title:string;kind:string;createdAt:string;contexts:list>;} -> atom-ref mode call execution transaction targets [server] receiver any requires {interface agent id "agent" : Agent using [directory.resolve] from input; interface directory id "directory" : AgentDirectory using [createThread.call] from input;}; operation agent_request id "agent:runtime:agent_request" : AgentSubmission -> AgentAdmission mode call execution transaction targets [server] receiver any requires {interface agent id "agent" : Agent using [directory.resolve] from input; interface directory id "directory" : AgentDirectory using [admit.call] from input;}; operation agent_tryRequest id "agent:runtime:agent_tryRequest" : AgentSubmission -> AgentAdmission mode call execution transaction targets [server] receiver any requires {interface agent id "agent" : Agent using [directory.resolve] from input; interface directory id "directory" : AgentDirectory using [admit.call] from input;}; operation thread_send id "agent:runtime:thread_send" : AgentSubmission -> atom-ref mode call execution transaction targets [server] receiver any requires {interface thread id "thread" : AgentThread using [agent.resolve,directory.resolve] from input; interface directory id "directory" : AgentDirectory using [admit.call] from input;}; operation thread_rename id "agent:runtime:thread_rename" : string -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : ThreadData [read,write];}; operation thread_archive id "agent:runtime:thread_archive" : bool -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : ThreadData [read,write];}; operation thread_activate id "agent:runtime:thread_activate" : atom-ref -> bool mode call execution transaction targets [server] receiver any requires {edge active id "active" : optional-one atom AgentRequestObject [resolve,connect,disconnect];}; operation thread_release id "agent:runtime:thread_release" : atom-ref -> unit mode call execution transaction targets [server] receiver any requires {edge active id "active" : optional-one atom AgentRequestObject [resolve,connect,disconnect];}; operation thread_adjustPending id "agent:runtime:thread_adjustPending" : record {delta:int32;updatedAt:string;} -> uint64 mode call execution transaction targets [server] receiver any requires {state data id "data" : ThreadData [read,write];}; operation thread_allocateItem id "agent:runtime:thread_allocateItem" : string -> uint64 mode call execution transaction targets [server] receiver any requires {state data id "data" : ThreadData [read,write];}; operation request_reserveChild id "agent:runtime:request_reserveChild" : unit -> bool mode call execution transaction targets [server] receiver any requires {state spawned id "spawned" : uint32 [read,write];}; operation request_correct id "agent:runtime:request_correct" : record {errors:list;maxCorrections:uint32;createdAt:string;} -> optional> mode call execution transaction targets [server] receiver any requires { edge correction id "correction" : optional-one atom AgentRequestObject [resolve,connect]; interface request id "request" : AgentRequest using [progress.get,admission.get,thread.resolve,retryOf.resolve,root.resolve,contexts.resolve] from input; interface thread id "thread" : AgentThread using [send.call] from input; }; operation request_claim id "agent:runtime:request_claim" : record {attempt:string;expectedGeneration:uint32;startedAt:string;recover:bool;} -> record {claimed:bool;generation:uint32;} mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; interface request id "request" : AgentRequest using [thread.resolve] from input; interface thread id "thread" : AgentThread using [activate.call] from input;}; operation request_transition id "agent:runtime:request_transition" : record {attempt:string;generation:uint32;status:string;reason:string;} -> bool mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write];}; operation request_finish id "agent:runtime:request_finish" : record {attempt:string;generation:uint32;status:string;result:optional;rawOutput:optional;usage:optional;reason:string;endedAt:string;} -> bool mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; state admission id "admission" : RequestData [read,write]; interface request id "request" : AgentRequest using [thread.resolve,directory.resolve] from input; interface directory id "directory" : AgentDirectory using [settle.call] from input; interface thread id "thread" : AgentThread using [agent.resolve] from input; interface agent id "agent" : Agent using [data.get] from input;}; operation request_cancel id "agent:runtime:request_cancel" : unit -> bool mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; interface request id "request" : AgentRequest using [finish.call] from input;}; operation request_steer id "agent:runtime:request_steer" : record {attempt:string;generation:uint32;key:string;text:string;profile:optional;createdAt:string;} -> atom-ref mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; interface request id "request" : AgentRequest using [upsertItem.call,directory.resolve] from input;interface directory id "directory" : AgentDirectory using [data.get] from input;}; operation request_upsertItem id "agent:runtime:request_upsertItem" : record {attempt:string;generation:uint32;data:ItemData;subject:optional>;} -> atom-ref mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; interface request id "request" : AgentRequest using [thread.resolve,items.resolve] from input; interface thread id "thread" : AgentThread using [allocateItem.call] from input; interface item id "item" : AgentItem using [data.get,checkpoint.call,subject.resolve] from input;interface presentable id "presentable" : WebStudioPresentable using [canPresent.call] from input; creation create_mount id "create_mount" : PresentationMountRecord input unit; creation create_item id "create_item" : AgentItemObject input record {data:ItemData;thread:atom-ref;request:atom-ref;subject:optional>;presentationMount:optional>;};}; operation request_ask id "agent:runtime:request_ask" : record {attempt:string;generation:uint32;key:string;title:string;options:string;createdAt:string;expiresAt:string;} -> atom-ref mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; interface request id "request" : AgentRequest using [questions.resolve] from input; interface question id "question" : AgentQuestion using [data.get] from input; creation create_question id "create_question" : AgentQuestionObject input record {data:QuestionData;request:atom-ref;};}; operation request_publishCompletion id "agent:runtime:request_publishCompletion" : unit -> bool mode call execution transaction targets [server] receiver any requires {state progress id "progress" : RequestState [read,write]; interface request id "request" : AgentRequest using [thread.resolve,directory.resolve] from input; interface thread id "thread" : AgentThread using [agent.resolve] from input; interface agent id "agent" : Agent using [completions.resolve] from input; interface stream id "stream" : EventStream using [publish.call] from input; interface directory id "directory" : AgentDirectory using [notificationSent.call] from input;}; operation item_checkpoint id "agent:runtime:item_checkpoint" : record {attempt:string;generation:uint32;data:ItemData;} -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : ItemData [read,write];interface item id "item" : AgentItem using [request.resolve] from input;interface request id "request" : AgentRequest using [progress.get] from input;}; operation question_answer id "agent:runtime:question_answer" : record {answer:string;attempt:string;generation:uint32;answeredAt:string;} -> bool mode call execution transaction targets [server] receiver any requires {state data id "data" : QuestionData [read,write]; interface question id "question" : AgentQuestion using [request.resolve] from input; interface request id "request" : AgentRequest using [progress.get] from input;}; operation question_cancel id "agent:runtime:question_cancel" : unit -> unit mode call execution transaction targets [server] receiver any requires {state data id "data" : QuestionData [read,write];}; }