Skip to main content

objectiveai_sdk/functions/executions/request/
body_log.rs

1//! `FunctionExecutionCreateParamsLog` — on-disk shape of
2//! [`super::FunctionExecutionCreateParams`].
3//!
4//! Two fields get extracted to per-leaf files:
5//!
6//! - `input` → [`crate::functions::expression::InputValueLog`]
7//!   (recursive tree of [`LogReference`]s per the input shape; see
8//!   `InputValue::extract_to_files`).
9//! - `continuation` → `Option<LogReference>` (own `.txt` file under
10//!   `<route_base>/continuation/`).
11//!
12//! Everything else (function / profile / reasoning / strategy /
13//! provider / flags / seed) stays inline — small, structurally
14//! important for log readability.
15
16use crate::{agent, functions};
17use schemars::JsonSchema;
18use serde::{Deserialize, Serialize};
19
20use crate::logs::LogReference;
21
22#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
23#[schemars(
24    rename = "functions.executions.request.FunctionExecutionCreateParamsLog"
25)]
26pub struct FunctionExecutionCreateParamsLog {
27    pub function: functions::FullInlineFunctionOrRemoteCommitOptional,
28    pub profile: functions::InlineProfileOrRemoteCommitOptional,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    #[schemars(extend("omitempty" = true))]
31    pub retry_token: Option<String>,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    #[schemars(extend("omitempty" = true))]
34    pub from_cache: Option<bool>,
35    #[serde(skip_serializing_if = "Option::is_none")]
36    #[schemars(extend("omitempty" = true))]
37    pub reasoning: Option<super::Reasoning>,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    #[schemars(extend("omitempty" = true))]
40    pub strategy: Option<super::Strategy>,
41    pub input: functions::expression::InputValueLog,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    #[schemars(extend("omitempty" = true))]
44    pub split: Option<bool>,
45    #[serde(skip_serializing_if = "Option::is_none")]
46    #[schemars(extend("omitempty" = true))]
47    pub invert: Option<bool>,
48    #[serde(skip_serializing_if = "Option::is_none")]
49    #[schemars(extend("omitempty" = true))]
50    pub provider: Option<agent::completions::request::Provider>,
51    #[serde(skip_serializing_if = "Option::is_none")]
52    #[schemars(extend("omitempty" = true))]
53    pub seed: Option<i64>,
54    #[serde(skip_serializing_if = "Option::is_none")]
55    #[schemars(extend("omitempty" = true))]
56    pub stream: Option<bool>,
57    #[serde(skip_serializing_if = "Option::is_none")]
58    #[schemars(extend("omitempty" = true))]
59    pub continuation: Option<LogReference>,
60}