MCPcopy Index your code
hub / github.com/AI45Lab/Code / build_session_capabilities

Function build_session_capabilities

core/src/agent_api/capabilities.rs:41–114  ·  view source on GitHub ↗
(input: SessionCapabilityInput<'_>)

Source from the content-addressed store, hash-verified

39}
40
41pub(super) fn build_session_capabilities(input: SessionCapabilityInput<'_>) -> SessionCapabilities {
42 let artifact_limits = input.opts.artifact_store_limits.unwrap_or_default();
43 let workspace_services = input
44 .opts
45 .workspace_services
46 .clone()
47 .unwrap_or_else(|| crate::workspace::WorkspaceServices::local(input.workspace));
48 let tool_executor = Arc::new(
49 ToolExecutor::new_with_workspace_services_and_artifact_limits(
50 input.workspace.display().to_string(),
51 workspace_services,
52 artifact_limits,
53 ),
54 );
55 let trace_sink = match input.opts.retention_limits.and_then(|l| l.max_trace_events) {
56 Some(cap) => crate::trace::InMemoryTraceSink::with_max_events(cap),
57 None => crate::trace::InMemoryTraceSink::new(),
58 };
59 tool_executor.set_trace_sink(Arc::new(trace_sink.clone()));
60
61 if let Some(ref search_config) = input.code_config.search {
62 tool_executor
63 .registry()
64 .set_search_config(search_config.clone());
65 }
66
67 let subagent_tasks = Arc::new(
68 match input
69 .opts
70 .retention_limits
71 .and_then(|l| l.max_terminal_subagent_tasks)
72 {
73 Some(cap) => {
74 crate::subagent_task_tracker::InMemorySubagentTaskTracker::with_max_terminal_tasks(
75 cap,
76 )
77 }
78 None => crate::subagent_task_tracker::InMemorySubagentTaskTracker::new(),
79 },
80 );
81 let agent_registry = register_task_capability(
82 input.code_config,
83 input.opts,
84 input.workspace,
85 Arc::clone(&input.llm_client),
86 &tool_executor,
87 Arc::clone(&subagent_tasks),
88 );
89
90 // Register generate_object tool (structured JSON output)
91 crate::tools::register_generate_object(tool_executor.registry(), Arc::clone(&input.llm_client));
92
93 register_mcp_capabilities(
94 &tool_executor,
95 input.opts,
96 input.global_mcp,
97 input.cached_global_mcp_tools,
98 );

Callers 1

build_agent_sessionFunction · 0.85

Calls 10

register_task_capabilityFunction · 0.85
register_generate_objectFunction · 0.85
build_context_providersFunction · 0.85
set_search_configMethod · 0.80
registryMethod · 0.80
cloneMethod · 0.45
set_trace_sinkMethod · 0.45
definitionsMethod · 0.45

Tested by

no test coverage detected