oris_agent_contract/
lib.rs1use 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}