feat: enrich page ai ACP runtime UI
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
/// - `reference-code/hermes-vscode-main/src/protocol.ts` (dedup logic)
|
||||
use crate::acp_client::AcpClient;
|
||||
use crate::acp_types::{
|
||||
ContentBlock, SessionNewParams, SessionNewResult, SessionPromptParams, SessionPromptResult,
|
||||
SessionUpdate, ToolCallStatus,
|
||||
ContentBlock, ContentBlockWrapper, SessionNewParams, SessionNewResult, SessionPromptParams,
|
||||
SessionPromptResult, SessionUpdate, ToolCallStatus,
|
||||
};
|
||||
use serde_json::{json, Value};
|
||||
use std::sync::{Arc, Mutex};
|
||||
@@ -33,11 +33,13 @@ pub enum AcpSessionEvent {
|
||||
title: String,
|
||||
kind: String,
|
||||
status: ToolCallStatus,
|
||||
raw_input: Option<Value>,
|
||||
},
|
||||
/// Tool call status update (with optional result content).
|
||||
ToolCallUpdate {
|
||||
tool_call_id: String,
|
||||
status: ToolCallStatus,
|
||||
content: Option<Vec<ContentBlockWrapper>>,
|
||||
},
|
||||
/// Context usage update.
|
||||
UsageUpdate { used: u64, size: u64 },
|
||||
@@ -361,6 +363,7 @@ impl AcpSessionManager {
|
||||
title,
|
||||
kind,
|
||||
status,
|
||||
raw_input,
|
||||
..
|
||||
} => {
|
||||
let title = title.clone().unwrap_or_else(|| "tool".into());
|
||||
@@ -374,18 +377,21 @@ impl AcpSessionManager {
|
||||
title,
|
||||
kind: kind_str,
|
||||
status,
|
||||
raw_input: raw_input.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
SessionUpdate::ToolCallUpdate {
|
||||
tool_call_id,
|
||||
status,
|
||||
content,
|
||||
..
|
||||
} => {
|
||||
let status = status.clone().unwrap_or(ToolCallStatus::Completed);
|
||||
Some(AcpSessionEvent::ToolCallUpdate {
|
||||
tool_call_id: tool_call_id.clone(),
|
||||
status,
|
||||
content: content.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user