feat: support install browser in chat

This commit is contained in:
zhayujie
2026-03-31 15:15:17 +08:00
parent b6571e5cad
commit 1ae2918064
8 changed files with 306 additions and 81 deletions

View File

@@ -75,6 +75,26 @@ class ChatService:
# a new segment; collect tool results until turn_end.
state.pending_tool_results = []
elif event_type == "file_to_send":
# Cloud CHAT stream: local paths are useless to the web UI; push a markdown link when we have a public URL.
url = data.get("url") or ""
if url:
msg = (data.get("message") or "").strip()
fname = data.get("file_name") or "file"
ft = data.get("file_type") or "file"
parts = []
if msg:
parts.append(f"{msg}\n\n")
if ft == "image":
parts.append(f"![{fname}]({url})")
else:
parts.append(f"[{fname}]({url})")
send_chunk_fn({
"chunk_type": "content",
"delta": "\n\n" + "".join(parts) + "\n\n",
"segment_id": state.segment_id,
})
elif event_type == "tool_execution_start":
# Notify the client that a tool is about to run (with its input args)
tool_name = data.get("tool_name", "")

View File

@@ -98,7 +98,18 @@ class Send(BaseTool):
"size_formatted": self._format_size(file_size),
"message": message or f"正在发送 {file_name}"
}
try:
from common.cloud_client import get_website_base_url, copy_send_file
# Do nothing when in local env
if get_website_base_url():
url = copy_send_file(absolute_path, self.cwd)
if url:
result["url"] = url
except Exception:
pass
return ToolResult.success(result)
def _resolve_path(self, path: str) -> str: