mirror of
https://github.com/openai/codex.git
synced 2026-11-13 21:30:47 +00:00
Rename `Session::conversation_id` to `Session::thread_id` with an auto refactor in RustRover
37 lines
1.1 KiB
Rust
37 lines
1.1 KiB
Rust
use crate::function_tool::FunctionCallError;
|
|
use crate::session::session::Session;
|
|
use crate::session::turn_context::TurnContext;
|
|
use codex_protocol::ThreadId;
|
|
use std::sync::Arc;
|
|
|
|
/// Resolves a single tool-facing agent target to a thread id.
|
|
pub(crate) async fn resolve_agent_target(
|
|
session: &Arc<Session>,
|
|
turn: &Arc<TurnContext>,
|
|
target: &str,
|
|
) -> Result<ThreadId, FunctionCallError> {
|
|
register_session_root(session, turn);
|
|
if let Ok(thread_id) = ThreadId::from_string(target) {
|
|
return Ok(thread_id);
|
|
}
|
|
|
|
session
|
|
.services
|
|
.agent_control
|
|
.resolve_agent_reference(session.thread_id, &turn.session_source, target)
|
|
.await
|
|
.map_err(|err| match err {
|
|
codex_protocol::error::CodexErr::UnsupportedOperation(message) => {
|
|
FunctionCallError::RespondToModel(message)
|
|
}
|
|
other => FunctionCallError::RespondToModel(other.to_string()),
|
|
})
|
|
}
|
|
|
|
fn register_session_root(session: &Arc<Session>, turn: &Arc<TurnContext>) {
|
|
session
|
|
.services
|
|
.agent_control
|
|
.register_session_root(session.thread_id, turn.parent_thread_id);
|
|
}
|