MCPcopy Create free account
hub / github.com/AI45Lab/Code / session

Method session

sdk/python/src/lib.rs:1163–1274  ·  view source on GitHub ↗
(
        &self,
        workspace: String,
        options: Option<PySessionOptions>,
        model: Option<String>,
        builtin_skills: Option<bool>,
        skill_dirs: Option<Vec<String>>,
   

Source from the content-addressed store, hash-verified

1161 #[allow(clippy::too_many_arguments)]
1162 #[pyo3(signature = (workspace, options=None, model=None, builtin_skills=None, skill_dirs=None, agent_dirs=None, queue_config=None, planning_mode=None, planning=None, goal_tracking=None, max_parse_retries=None, tool_timeout_ms=None, circuit_breaker_threshold=None, max_parallel_tasks=None, auto_parallel=None))]
1163 fn session(
1164 &self,
1165 workspace: String,
1166 options: Option<PySessionOptions>,
1167 model: Option<String>,
1168 builtin_skills: Option<bool>,
1169 skill_dirs: Option<Vec<String>>,
1170 agent_dirs: Option<Vec<String>>,
1171 queue_config: Option<PySessionQueueConfig>,
1172 planning_mode: Option<String>,
1173 planning: Option<bool>,
1174 goal_tracking: Option<bool>,
1175 max_parse_retries: Option<u32>,
1176 tool_timeout_ms: Option<u64>,
1177 circuit_breaker_threshold: Option<u32>,
1178 max_parallel_tasks: Option<usize>,
1179 auto_parallel: Option<bool>,
1180 ) -> PyResult<PySession> {
1181 // If a SessionOptions object is provided, build from it then apply named-argument overrides.
1182 let opts = if let Some(so) = options {
1183 let mut o = build_rust_session_options(so)?;
1184 // Named args take precedence over SessionOptions fields.
1185 o = apply_planning_mode(o, planning_mode.as_deref(), planning)?;
1186 if goal_tracking.unwrap_or(false) {
1187 o = o.with_goal_tracking(true);
1188 }
1189 if let Some(n) = max_parse_retries {
1190 o = o.with_parse_retries(n);
1191 }
1192 if let Some(ms) = tool_timeout_ms {
1193 o = o.with_tool_timeout(ms);
1194 }
1195 if let Some(n) = circuit_breaker_threshold {
1196 o = o.with_circuit_breaker(n);
1197 }
1198 if let Some(max_parallel_tasks) = max_parallel_tasks {
1199 o = o.with_max_parallel_tasks(max_parallel_tasks);
1200 }
1201 if let Some(auto_parallel) = auto_parallel {
1202 o = o.with_auto_parallel_delegation(auto_parallel);
1203 }
1204 Some(o)
1205 } else {
1206 // Fall back to individual named arguments.
1207 let has_overrides = model.is_some()
1208 || builtin_skills.is_some()
1209 || skill_dirs.is_some()
1210 || agent_dirs.is_some()
1211 || queue_config.is_some()
1212 || planning_mode.is_some()
1213 || planning.is_some()
1214 || goal_tracking.is_some()
1215 || max_parse_retries.is_some()
1216 || tool_timeout_ms.is_some()
1217 || circuit_breaker_threshold.is_some()
1218 || max_parallel_tasks.is_some()
1219 || auto_parallel.is_some();
1220

Callers 10

build_test_sessionFunction · 0.45
mainFunction · 0.45
mainFunction · 0.45
mainFunction · 0.45
_make_sessionFunction · 0.45
mainFunction · 0.45
mainFunction · 0.45
mainFunction · 0.45

Calls 13

with_goal_trackingMethod · 0.80
with_parse_retriesMethod · 0.80
with_tool_timeoutMethod · 0.80
with_circuit_breakerMethod · 0.80
with_builtin_skillsMethod · 0.80
with_skills_from_dirMethod · 0.80
with_agent_dirMethod · 0.80
with_queue_configMethod · 0.80
apply_planning_modeFunction · 0.70

Tested by 5

mainFunction · 0.36
mainFunction · 0.36
mainFunction · 0.36
_make_sessionFunction · 0.36
mainFunction · 0.36