agtrace_types/domain/
context.rs

1use serde::{Deserialize, Serialize};
2
3/// Git repository context
4#[derive(Debug, Clone, Serialize, Deserialize, Default)]
5pub struct GitContext {
6    #[serde(skip_serializing_if = "Option::is_none")]
7    pub branch: Option<String>,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub commit: Option<String>,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub is_dirty: Option<bool>,
12}
13
14/// Execution environment context
15#[derive(Debug, Clone, Serialize, Deserialize, Default)]
16pub struct RunContext {
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub cwd: Option<String>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub git: Option<GitContext>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub runtime: Option<String>,
23}
24
25/// Agent control policy and constraints
26#[derive(Debug, Clone, Serialize, Deserialize, Default)]
27pub struct AgentPolicy {
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub sandbox_mode: Option<String>,
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub network_access: Option<String>,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub approval_policy: Option<String>,
34}