MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / prompt_async

Function prompt_async

crates/opencode-server/src/routes.rs:1991–2021  ·  view source on GitHub ↗
(
    State(state): State<Arc<ServerState>>,
    Path(id): Path<String>,
    Json(req): Json<PromptAsyncRequest>,
)

Source from the content-addressed store, hash-verified

1989}
1990
1991async fn prompt_async(
1992 State(state): State<Arc<ServerState>>,
1993 Path(id): Path<String>,
1994 Json(req): Json<PromptAsyncRequest>,
1995) -> Result<Json<serde_json::Value>> {
1996 let mut sessions = state.sessions.lock().await;
1997 let session = sessions
1998 .get_mut(&id)
1999 .ok_or_else(|| ApiError::SessionNotFound(id.clone()))?;
2000 let message_text: String = req
2001 .message
2002 .clone()
2003 .or_else(|| {
2004 req.parts.as_ref().map(|p| {
2005 let s = text_from_parts(p);
2006 if s.is_empty() { None } else { Some(s) }
2007 }).flatten()
2008 })
2009 .unwrap_or_default();
2010 session.add_user_message(&message_text);
2011 let assistant = session.add_assistant_message();
2012 let assistant_id = assistant.id.clone();
2013 drop(sessions);
2014 persist_sessions_if_enabled(&state).await;
2015
2016 Ok(Json(serde_json::json!({
2017 "status": "queued",
2018 "message_id": assistant_id,
2019 "model": req.model,
2020 })))
2021}
2022
2023#[derive(Debug, Deserialize)]
2024pub struct InitSessionRequest {

Callers

nothing calls this directly

Calls 7

text_from_partsFunction · 0.85
is_emptyMethod · 0.80
get_mutMethod · 0.45
cloneMethod · 0.45
add_user_messageMethod · 0.45
add_assistant_messageMethod · 0.45

Tested by

no test coverage detected