1use schemars::JsonSchema;
6use serde::{Deserialize, Serialize};
7use serde_json::Value;
8
9#[derive(Debug, Clone, Deserialize, JsonSchema)]
13#[serde(rename_all = "snake_case")]
14pub enum ApprovalDecision {
15 Approve,
16 Reject,
17 RequestChanges,
18 Escalate,
19}
20
21#[derive(Debug, Clone, Deserialize, JsonSchema)]
23#[serde(rename_all = "snake_case")]
24pub enum RenderFormat {
25 Mermaid,
26 Json,
27}
28
29#[derive(Debug, Deserialize, JsonSchema)]
33pub struct GraphCreateParams {
34 #[serde(default)]
36 pub spec: Option<Value>,
37 #[serde(default)]
39 pub action: Option<String>,
40 #[serde(default)]
42 pub graph_id: Option<String>,
43 #[serde(default)]
45 pub idempotency_key: Option<String>,
46 #[serde(default)]
48 pub template: Option<Value>,
49 #[serde(default)]
51 pub overwrite: Option<bool>,
52}
53
54#[derive(Debug, Deserialize, JsonSchema)]
56pub struct GraphListParams {
57 #[serde(default)]
59 pub query: Option<String>,
60 #[serde(default)]
62 pub limit: Option<u32>,
63}
64
65#[derive(Debug, Deserialize, JsonSchema)]
67pub struct GraphInspectParams {
68 pub graph_id: String,
70}
71
72#[derive(Debug, Deserialize, JsonSchema)]
74pub struct GraphRetentionReviewParams {
75 #[serde(default)]
77 pub graph_id: Option<String>,
78 #[serde(default)]
80 pub state: Option<String>,
81 #[serde(default)]
83 pub limit: Option<u32>,
84}
85
86#[derive(Debug, Deserialize, JsonSchema)]
88pub struct GraphRetentionSetParams {
89 pub graph_id: String,
91 pub state: String,
93 pub reason: String,
95 pub actor: String,
97 #[serde(default)]
99 pub review_after: Option<String>,
100}
101
102#[derive(Debug, Deserialize, JsonSchema)]
104pub struct GraphDeleteParams {
105 pub graph_id: String,
107}
108
109#[derive(Debug, Deserialize, JsonSchema)]
113pub struct GraphExecuteParams {
114 pub graph_id: String,
116 #[serde(default)]
118 pub input: Option<Value>,
119 #[serde(default)]
121 pub graph_version: Option<String>,
122 #[serde(default)]
124 pub thread_id: Option<String>,
125 #[serde(default)]
127 pub mode: Option<String>,
128 #[serde(default)]
130 pub idempotency_key: Option<String>,
131}
132
133#[derive(Debug, Deserialize, JsonSchema)]
137pub struct GraphStatusParams {
138 #[serde(default)]
141 pub resource: Option<String>,
142 #[serde(default)]
144 pub graph_id: Option<String>,
145 #[serde(default)]
147 pub run_id: Option<String>,
148 #[serde(default)]
150 pub cursor: Option<u64>,
151 #[serde(default)]
153 pub limit: Option<u64>,
154}
155
156#[derive(Debug, Serialize, Deserialize, JsonSchema)]
160pub struct StructuredOutput {
161 pub ok: bool,
163 #[serde(default)]
165 pub status: Option<String>,
166 #[serde(default)]
168 pub data: Option<Value>,
169 #[serde(default)]
171 pub error: Option<String>,
172 #[serde(default)]
174 pub error_code: Option<String>,
175 #[serde(default)]
177 pub graph_id: Option<String>,
178 #[serde(default)]
180 pub graph_version: Option<String>,
181 #[serde(default)]
183 pub run_id: Option<String>,
184}
185
186#[derive(Debug, Deserialize, JsonSchema)]
189#[serde(deny_unknown_fields)]
190pub struct ApprovalRequestParams {
191 pub checkpoint_id: String,
193 pub audience: String,
195 pub prompt: String,
197 pub allowed_decisions: Vec<String>,
199 pub expiration: String,
201}
202
203#[derive(Debug, Deserialize, JsonSchema)]
204pub struct ApprovalListParams {
205 #[serde(default)]
206 pub run_id: Option<String>,
207 #[serde(default)]
208 pub status: Option<String>,
209 #[serde(default)]
210 pub limit: Option<u32>,
211}
212
213#[derive(Debug, Deserialize, JsonSchema)]
214pub struct ApprovalGetParams {
215 pub approval_id: String,
216}
217
218#[derive(Debug, Deserialize, JsonSchema)]
219pub struct ApprovalDecideParams {
220 pub approval_id: String,
221 pub decision: String,
222 #[serde(alias = "actor")]
224 pub claimed_actor_label: String,
225}
226
227#[derive(Debug, Deserialize, JsonSchema)]
230pub struct RunStartParams {
231 pub graph_id: String,
232 #[serde(default)]
233 pub input: Option<Value>,
234 #[serde(default)]
235 pub graph_version: Option<String>,
236 #[serde(default)]
237 pub thread_id: Option<String>,
238 #[serde(default)]
239 pub idempotency_key: Option<String>,
240 #[serde(default)]
241 pub budgets: Option<Value>,
242 #[serde(default)]
245 pub checkpoint: Option<bool>,
246}
247
248#[derive(Debug, Deserialize, JsonSchema)]
249pub struct RunWaitParams {
250 pub run_id: String,
251 #[serde(default)]
252 pub timeout_ms: Option<u64>,
253}
254
255#[derive(Debug, Deserialize, JsonSchema)]
256pub struct RunCancelParams {
257 pub run_id: String,
258 #[serde(default)]
259 pub reason: Option<String>,
260}
261
262#[derive(Debug, Deserialize, JsonSchema)]
263pub struct RunGetParams {
264 pub run_id: String,
265}
266
267#[derive(Debug, Deserialize, JsonSchema)]
268pub struct RunStateParams {
269 pub run_id: String,
270 #[serde(default)]
271 pub checkpoint_id: Option<String>,
272 #[serde(default)]
273 pub json_pointer: Option<String>,
274}
275
276#[derive(Debug, Deserialize, JsonSchema)]
277pub struct RunEventsParams {
278 pub run_id: String,
279 #[serde(default)]
280 pub cursor: Option<u64>,
281 #[serde(default)]
282 pub limit: Option<u64>,
283}
284
285#[derive(Debug, Deserialize, JsonSchema)]
286pub struct RunReceiptParams {
287 pub run_id: String,
288}
289
290#[derive(Debug, Deserialize, JsonSchema)]
291pub struct RunCheckpointParams {
292 #[serde(default)]
293 pub run_id: Option<String>,
294 #[serde(default)]
295 pub checkpoint_id: Option<String>,
296}
297
298#[derive(Debug, Deserialize, JsonSchema)]
299pub struct RunResumeParams {
300 #[serde(default)]
301 pub checkpoint_id: Option<String>,
302 #[serde(default)]
303 pub run_id: Option<String>,
304}
305
306#[derive(Debug, Deserialize, JsonSchema)]
310#[serde(deny_unknown_fields)]
311pub struct WitnessCaptureParams {
312 pub locator: String,
313 pub content: String,
314 pub media_type: String,
315 pub authority_class: String,
316 #[serde(default)]
317 pub retrieved_at: Option<String>,
318}
319
320#[derive(Debug, Deserialize, JsonSchema)]
321#[serde(deny_unknown_fields)]
322pub struct WitnessGetParams {
323 pub witness_id: String,
324}
325
326#[derive(Debug, Deserialize, JsonSchema)]
329pub struct PolicyCheckParams {
330 pub graph_id: String,
331 #[serde(default)]
332 pub input: Option<Value>,
333}
334
335#[derive(Debug, Deserialize, JsonSchema)]
336pub struct RenderParams {
337 pub graph_id: String,
338 #[serde(default)]
339 pub format: Option<String>,
340}
341
342#[derive(Debug, Deserialize, JsonSchema)]
345pub struct TemplateListParams {
346 #[serde(default)]
347 pub query: Option<String>,
348}
349
350#[derive(Debug, Deserialize, JsonSchema)]
351pub struct TemplateInstantiateParams {
352 pub template_id: String,
353 pub name: String,
354}
355
356#[derive(Debug, Deserialize, JsonSchema)]
357pub struct TemplateCandidatesParams {
358 #[serde(default)]
359 pub state: Option<String>,
360}
361
362#[derive(Debug, Deserialize, JsonSchema)]
363pub struct TemplateOutcomesParams {
364 pub template_id: String,
365}