Skip to main content

oris_agent_contract/
lib.rs

1//! Proposal-only runtime contract for external agents.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Serialize, Deserialize)]
6pub enum AgentCapabilityLevel {
7    A0,
8    A1,
9    A2,
10    A3,
11    A4,
12}
13
14#[derive(Clone, Debug, Serialize, Deserialize)]
15pub enum ProposalTarget {
16    WorkspaceRoot,
17    Paths(Vec<String>),
18}
19
20#[derive(Clone, Debug, Serialize, Deserialize)]
21pub struct AgentTask {
22    pub id: String,
23    pub description: String,
24}
25
26#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
27pub enum AgentRole {
28    Planner,
29    Coder,
30    Repair,
31    Optimizer,
32}
33
34#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
35pub enum CoordinationPrimitive {
36    Sequential,
37    Parallel,
38    Conditional,
39}
40
41#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
42pub struct CoordinationTask {
43    pub id: String,
44    pub role: AgentRole,
45    pub description: String,
46    pub depends_on: Vec<String>,
47}
48
49#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
50pub struct CoordinationMessage {
51    pub from_role: AgentRole,
52    pub to_role: AgentRole,
53    pub task_id: String,
54    pub content: String,
55}
56
57#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
58pub struct CoordinationPlan {
59    pub root_goal: String,
60    pub primitive: CoordinationPrimitive,
61    pub tasks: Vec<CoordinationTask>,
62    pub timeout_ms: u64,
63    pub max_retries: u32,
64}
65
66#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
67pub struct CoordinationResult {
68    pub completed_tasks: Vec<String>,
69    pub failed_tasks: Vec<String>,
70    pub messages: Vec<CoordinationMessage>,
71    pub summary: String,
72}
73
74#[derive(Clone, Debug, Serialize, Deserialize)]
75pub struct MutationProposal {
76    pub intent: String,
77    pub files: Vec<String>,
78    pub expected_effect: String,
79}
80
81#[derive(Clone, Debug, Serialize, Deserialize)]
82pub struct ExecutionFeedback {
83    pub accepted: bool,
84    pub asset_state: Option<String>,
85    pub summary: String,
86}