MCPcopy Create free account
hub / github.com/enowdev/enowX-Coder / parse_openai_sse_line

Method parse_openai_sse_line

src-tauri/src/agents/runner.rs:1314–1417  ·  view source on GitHub ↗
(
        &self,
        line: &str,
        agent_run_id: &str,
        token_sink: &S,
        output: &mut String,
        pending_calls: &mut HashMap<usize, StreamingToolCall>,
        stop_reason

Source from the content-addressed store, hash-verified

1312
1313 #[allow(clippy::too_many_arguments)]
1314 fn parse_openai_sse_line<S: TokenSink + Sync>(
1315 &self,
1316 line: &str,
1317 agent_run_id: &str,
1318 token_sink: &S,
1319 output: &mut String,
1320 pending_calls: &mut HashMap<usize, StreamingToolCall>,
1321 stop_reason: &mut Option<String>,
1322 ) -> AppResult<bool> {
1323 let trimmed = line.trim();
1324 if trimmed.is_empty() {
1325 return Ok(false);
1326 }
1327
1328 let Some(payload_raw) = trimmed.strip_prefix("data:") else {
1329 return Ok(false);
1330 };
1331
1332 let payload = payload_raw.trim();
1333 if payload == "[DONE]" {
1334 return Ok(true);
1335 }
1336
1337 let value: Value = serde_json::from_str(payload)?;
1338 let Some(choice) = value
1339 .get("choices")
1340 .and_then(Value::as_array)
1341 .and_then(|items| items.first())
1342 else {
1343 return Ok(false);
1344 };
1345
1346 if let Some(reason) = choice.get("finish_reason").and_then(Value::as_str) {
1347 *stop_reason = Some(reason.to_string());
1348 }
1349
1350 if let Some(token) = choice
1351 .get("delta")
1352 .and_then(|delta| delta.get("content"))
1353 .and_then(Value::as_str)
1354 {
1355 output.push_str(token);
1356 token_sink.send(token);
1357 let _ = self.app_handle.emit(
1358 "agent-token",
1359 AgentTokenEvent {
1360 agent_run_id: agent_run_id.to_string(),
1361 token: token.to_string(),
1362 },
1363 );
1364 }
1365
1366 if let Some(tool_calls) = choice
1367 .get("delta")
1368 .and_then(|delta| delta.get("tool_calls"))
1369 .and_then(Value::as_array)
1370 {
1371 for chunk in tool_calls {

Callers 1

Calls 1

sendMethod · 0.80

Tested by

no test coverage detected