From 21d2a4ca20530eafeb9ddb9f1688646b5c6a54e9 Mon Sep 17 00:00:00 2001
From: yiqi-017 <22300246009@m.fudan.edu.cn>
Date: Wed, 29 Apr 2026 15:46:47 +0800
Subject: [PATCH 1/5] feat: add ACP bridge for codeg integration
Stdio-based JSON-RPC bridge implementing the Agent Client Protocol,
allowing codeg to connect to GenericAgent as a live ACP agent.
Handles Windows binary stdout/stdin, redirects stray prints to stderr,
and converts GenericAgent's cumulative text queue to ACP delta streaming.
---
genericagent_acp_bridge.py | 349 +++++++++++++++++++++++++++++++++++++
1 file changed, 349 insertions(+)
create mode 100644 genericagent_acp_bridge.py
diff --git a/genericagent_acp_bridge.py b/genericagent_acp_bridge.py
new file mode 100644
index 00000000..8fcbb558
--- /dev/null
+++ b/genericagent_acp_bridge.py
@@ -0,0 +1,349 @@
+import io
+import json
+import os
+import sys
+
+# Must run BEFORE importing agentmain — it reconfigures stdout at import time,
+# and its submodules may print() during init. We capture the raw binary stdout
+# for ACP JSON-RPC, then redirect the text-mode stdout to stderr so any stray
+# prints from agentmain/llmcore don't pollute the ACP channel.
+if sys.platform == "win32":
+ import msvcrt
+ _stdout_fd = os.dup(sys.__stdout__.fileno())
+ msvcrt.setmode(_stdout_fd, os.O_BINARY)
+ _acp_stdout = os.fdopen(_stdout_fd, "wb", buffering=0)
+ msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
+ # Redirect the original stdout fd to stderr so child processes
+ # (tool calls) don't write into the ACP JSON-RPC channel.
+ os.dup2(sys.stderr.fileno(), sys.__stdout__.fileno())
+else:
+ _acp_stdout = sys.__stdout__.buffer if hasattr(sys.__stdout__, 'buffer') else sys.__stdout__
+ os.dup2(sys.stderr.fileno(), sys.__stdout__.fileno())
+
+
+class _StdoutToStderrRouter(io.TextIOBase):
+ """Redirect text-mode stdout to stderr so agentmain prints don't leak."""
+ def writable(self): return True
+ def write(self, s):
+ if s:
+ sys.stderr.write(s)
+ sys.stderr.flush()
+ return len(s) if s else 0
+ def flush(self): sys.stderr.flush()
+
+sys.stdout = _StdoutToStderrRouter()
+
+import argparse
+import queue
+import threading
+import traceback
+import uuid
+from dataclasses import dataclass, field
+from typing import Any, Dict, List, Optional
+
+from agentmain import GeneraticAgent
+
+
+JSONRPC_VERSION = "2.0"
+ACP_PROTOCOL_VERSION = 1
+
+
+def eprint(*args: Any) -> None:
+ print(*args, file=sys.stderr, flush=True)
+
+
+def make_text_block(text: str) -> Dict[str, Any]:
+ return {"type": "text", "text": text}
+
+
+def make_session_update(session_id: str, update: Dict[str, Any]) -> Dict[str, Any]:
+ return {
+ "jsonrpc": JSONRPC_VERSION,
+ "method": "session/update",
+ "params": {"sessionId": session_id, "update": update},
+ }
+
+
+def compact_json(obj: Dict[str, Any]) -> str:
+ return json.dumps(obj, ensure_ascii=False, separators=(",", ":"))
+
+
+def parse_jsonrpc_line(line: str) -> Optional[Dict[str, Any]]:
+ stripped = line.strip()
+ if not stripped:
+ return None
+ try:
+ obj = json.loads(stripped)
+ except json.JSONDecodeError:
+ return None
+ return obj if isinstance(obj, dict) else None
+
+
+def content_blocks_to_text(blocks: List[Dict[str, Any]]) -> str:
+ parts: List[str] = []
+ for block in blocks:
+ if not isinstance(block, dict):
+ continue
+ block_type = block.get("type")
+ if block_type == "text":
+ text = block.get("text")
+ if isinstance(text, str) and text:
+ parts.append(text)
+ elif block_type == "resource_link":
+ name = block.get("name") or "resource"
+ uri = block.get("uri") or ""
+ desc = block.get("description") or ""
+ parts.append(f"[ResourceLink] {name}: {uri}\n{desc}".strip())
+ elif block_type == "resource":
+ uri = block.get("uri") or "resource"
+ text = block.get("text")
+ if isinstance(text, str) and text:
+ parts.append(f"[Resource] {uri}\n{text}")
+ else:
+ parts.append(f"[Resource] {uri}")
+ elif block_type == "image":
+ uri = block.get("uri") or "inline-image"
+ parts.append(f"[Image omitted] {uri}")
+ else:
+ parts.append(f"[Unsupported content block: {block_type}]")
+ return "\n\n".join(p for p in parts if p).strip()
+
+
+def jsonrpc_error(code: int, message: str, req_id: Any = None, data: Any = None) -> Dict[str, Any]:
+ err: Dict[str, Any] = {"code": code, "message": message}
+ if data is not None:
+ err["data"] = data
+ return {"jsonrpc": JSONRPC_VERSION, "id": req_id, "error": err}
+
+
+def jsonrpc_result(req_id: Any, result: Any) -> Dict[str, Any]:
+ return {"jsonrpc": JSONRPC_VERSION, "id": req_id, "result": result}
+
+
+@dataclass
+class SessionState:
+ session_id: str
+ cwd: str
+ agent: GeneraticAgent
+ current_prompt_id: Any = None
+ prompt_lock: threading.Lock = field(default_factory=threading.Lock)
+
+
+class GenericAgentAcpBridge:
+ def __init__(self, llm_no: int = 0):
+ self.llm_no = llm_no
+ self._json_out = _acp_stdout
+ self._write_lock = threading.Lock()
+ self._sessions: Dict[str, SessionState] = {}
+ self._shutdown = False
+
+ def write_message(self, msg: Dict[str, Any]) -> None:
+ payload = compact_json(msg)
+ raw = (payload + "\n").encode("utf-8")
+ method = msg.get("method", msg.get("id", "?"))
+ eprint(f"[ACP-BRIDGE] >>> {payload[:500]}")
+ try:
+ with self._write_lock:
+ self._json_out.write(raw)
+ self._json_out.flush()
+ except Exception as e:
+ eprint(f"[ACP-BRIDGE] WRITE FAILED: {type(e).__name__}: {e}")
+
+ def new_agent(self) -> GeneraticAgent:
+ agent = GeneraticAgent()
+ agent.next_llm(self.llm_no)
+ agent.verbose = False
+ threading.Thread(target=agent.run, daemon=True).start()
+ return agent
+
+ def handle_initialize(self, req_id: Any, params: Dict[str, Any]) -> None:
+ requested_version = params.get("protocolVersion", ACP_PROTOCOL_VERSION)
+ version = ACP_PROTOCOL_VERSION if requested_version == ACP_PROTOCOL_VERSION else ACP_PROTOCOL_VERSION
+ result = {
+ "protocolVersion": version,
+ "agentCapabilities": {
+ "loadSession": False,
+ "mcpCapabilities": {"http": False, "sse": False},
+ "promptCapabilities": {
+ "image": False,
+ "audio": False,
+ "embeddedContext": False,
+ },
+ "sessionCapabilities": {},
+ },
+ "agentInfo": {
+ "name": "genericagent-acp",
+ "title": "GenericAgent",
+ "version": "0.1.0",
+ },
+ "authMethods": [],
+ }
+ self.write_message(jsonrpc_result(req_id, result))
+
+ def handle_session_new(self, req_id: Any, params: Dict[str, Any]) -> None:
+ cwd = params.get("cwd")
+ if not isinstance(cwd, str) or not cwd:
+ self.write_message(jsonrpc_error(-32602, "cwd is required", req_id))
+ return
+ if not os.path.isabs(cwd):
+ cwd = os.path.abspath(cwd)
+ session_id = f"ga_{uuid.uuid4().hex}"
+ agent = self.new_agent()
+ session = SessionState(session_id=session_id, cwd=cwd, agent=agent)
+ self._sessions[session_id] = session
+ self.write_message(
+ jsonrpc_result(
+ req_id,
+ {
+ "sessionId": session_id,
+ "modes": None,
+ "configOptions": None,
+ },
+ )
+ )
+
+ def handle_session_prompt(self, req_id: Any, params: Dict[str, Any]) -> None:
+ session_id = params.get("sessionId")
+ prompt_blocks = params.get("prompt")
+ session = self._sessions.get(session_id)
+ if session is None:
+ self.write_message(jsonrpc_error(-32602, "unknown sessionId", req_id))
+ return
+ if not isinstance(prompt_blocks, list):
+ self.write_message(jsonrpc_error(-32602, "prompt must be an array", req_id))
+ return
+ prompt_text = content_blocks_to_text(prompt_blocks)
+ if not prompt_text:
+ self.write_message(jsonrpc_error(-32602, "prompt must contain text or supported content", req_id))
+ return
+
+ with session.prompt_lock:
+ if session.current_prompt_id is not None:
+ self.write_message(
+ jsonrpc_error(-32603, "session already has an active prompt", req_id)
+ )
+ return
+ session.current_prompt_id = req_id
+
+ def run_prompt() -> None:
+ stop_reason = "end_turn"
+ try:
+ dq = session.agent.put_task(prompt_text, source="acp")
+ self._drain_agent_queue(session, dq)
+ except Exception as exc:
+ stop_reason = "end_turn"
+ self.write_message(
+ make_session_update(
+ session.session_id,
+ {
+ "sessionUpdate": "agent_message_chunk",
+ "content": make_text_block(
+ f"[Bridge error] {type(exc).__name__}: {exc}"
+ ),
+ },
+ )
+ )
+ eprint("[GenericAgent ACP] prompt thread failed:", traceback.format_exc())
+ finally:
+ with session.prompt_lock:
+ finished_req_id = session.current_prompt_id
+ session.current_prompt_id = None
+ if finished_req_id is not None:
+ import time
+ time.sleep(0.1)
+ self.write_message(
+ jsonrpc_result(finished_req_id, {"stopReason": stop_reason})
+ )
+
+ threading.Thread(target=run_prompt, daemon=True).start()
+
+ def _drain_agent_queue(self, session: SessionState, dq: "queue.Queue[Dict[str, Any]]") -> None:
+ last_sent = ""
+ while True:
+ item = dq.get()
+ if not isinstance(item, dict):
+ continue
+ text = item.get("done") or item.get("next") or ""
+ if isinstance(text, str) and len(text) > len(last_sent):
+ delta = text[len(last_sent):]
+ last_sent = text
+ try:
+ self.write_message(
+ make_session_update(
+ session.session_id,
+ {
+ "sessionUpdate": "agent_message_chunk",
+ "content": make_text_block(delta),
+ },
+ )
+ )
+ except Exception as e:
+ eprint(f"[ACP-BRIDGE] ERROR writing update: {e}")
+ if "done" in item:
+ break
+
+ def handle_session_cancel(self, params: Dict[str, Any]) -> None:
+ session_id = params.get("sessionId")
+ session = self._sessions.get(session_id)
+ if session is None:
+ return
+ if session.current_prompt_id is not None:
+ session.agent.abort()
+
+ def handle_message(self, msg: Dict[str, Any]) -> None:
+ method = msg.get("method")
+ req_id = msg.get("id")
+ params = msg.get("params") or {}
+
+ try:
+ if method == "initialize":
+ self.handle_initialize(req_id, params)
+ elif method == "session/new":
+ self.handle_session_new(req_id, params)
+ elif method == "session/prompt":
+ self.handle_session_prompt(req_id, params)
+ elif method == "session/cancel":
+ self.handle_session_cancel(params)
+ elif method == "session/load":
+ self.write_message(jsonrpc_error(-32601, "session/load not supported", req_id))
+ elif method == "session/list":
+ self.write_message(jsonrpc_error(-32601, "session/list not supported", req_id))
+ elif method == "session/close":
+ self.write_message(jsonrpc_result(req_id, {}))
+ elif method is None:
+ if req_id is not None:
+ self.write_message(jsonrpc_error(-32600, "invalid request", req_id))
+ else:
+ if req_id is not None:
+ self.write_message(jsonrpc_error(-32601, f"method not found: {method}", req_id))
+ except Exception as exc:
+ eprint("[GenericAgent ACP] request handler failed:", traceback.format_exc())
+ if req_id is not None:
+ self.write_message(
+ jsonrpc_error(-32603, f"internal error: {type(exc).__name__}: {exc}", req_id)
+ )
+
+ def serve(self) -> None:
+ eprint("[GenericAgent ACP] bridge started")
+ stdin = io.TextIOWrapper(sys.stdin.buffer, encoding="utf-8", errors="replace") if hasattr(sys.stdin, 'buffer') else sys.stdin
+ for raw_line in stdin:
+ msg = parse_jsonrpc_line(raw_line)
+ if msg is None:
+ continue
+ self.handle_message(msg)
+ if self._shutdown:
+ break
+ eprint("[GenericAgent ACP] bridge stopped")
+
+
+def main() -> int:
+ parser = argparse.ArgumentParser(description="GenericAgent ACP bridge over stdio")
+ parser.add_argument("--llm-no", type=int, default=0, help="LLM index for GenericAgent")
+ args = parser.parse_args()
+ bridge = GenericAgentAcpBridge(llm_no=args.llm_no)
+ bridge.serve()
+ return 0
+
+
+if __name__ == "__main__":
+ raise SystemExit(main())
From 6770a02d592360704511c185f45fb22a035cae86 Mon Sep 17 00:00:00 2001
From: yiqi-017 <22300246009@m.fudan.edu.cn>
Date: Wed, 29 Apr 2026 21:13:11 +0800
Subject: [PATCH 2/5] feat: enable verbose output in ACP bridge
---
genericagent_acp_bridge.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/genericagent_acp_bridge.py b/genericagent_acp_bridge.py
index 8fcbb558..03f8663a 100644
--- a/genericagent_acp_bridge.py
+++ b/genericagent_acp_bridge.py
@@ -152,7 +152,7 @@ class GenericAgentAcpBridge:
def new_agent(self) -> GeneraticAgent:
agent = GeneraticAgent()
agent.next_llm(self.llm_no)
- agent.verbose = False
+ agent.verbose = True
threading.Thread(target=agent.run, daemon=True).start()
return agent
From 88f0e69231a53aa6bff323966311a5448aa440f1 Mon Sep 17 00:00:00 2001
From: yiqi-017 <22300246009@m.fudan.edu.cn>
Date: Sat, 2 May 2026 17:46:13 +0800
Subject: [PATCH 3/5] fix: mark ACP stdout fd as non-inheritable to prevent
child process pollution
- os.set_inheritable(_stdout_fd, False) on both Windows and Unix
- Unix path now uses os.dup() + os.fdopen() consistent with Windows
- Prevents subprocess.Popen children from inheriting the ACP JSON-RPC
file descriptor, which could corrupt the protocol stream
---
genericagent_acp_bridge.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/genericagent_acp_bridge.py b/genericagent_acp_bridge.py
index 03f8663a..04e7f827 100644
--- a/genericagent_acp_bridge.py
+++ b/genericagent_acp_bridge.py
@@ -13,11 +13,15 @@ if sys.platform == "win32":
msvcrt.setmode(_stdout_fd, os.O_BINARY)
_acp_stdout = os.fdopen(_stdout_fd, "wb", buffering=0)
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
+ # Mark the ACP fd as non-inheritable so child processes can't write to it.
+ os.set_inheritable(_stdout_fd, False)
# Redirect the original stdout fd to stderr so child processes
# (tool calls) don't write into the ACP JSON-RPC channel.
os.dup2(sys.stderr.fileno(), sys.__stdout__.fileno())
else:
- _acp_stdout = sys.__stdout__.buffer if hasattr(sys.__stdout__, 'buffer') else sys.__stdout__
+ _stdout_fd = os.dup(sys.__stdout__.fileno())
+ os.set_inheritable(_stdout_fd, False)
+ _acp_stdout = os.fdopen(_stdout_fd, "wb", buffering=0)
os.dup2(sys.stderr.fileno(), sys.__stdout__.fileno())
From 7e357dcc6466ef402e268cc756d2e53bf643c9dc Mon Sep 17 00:00:00 2001
From: yiqi-017 <22300246009@m.fudan.edu.cn>
Date: Tue, 5 May 2026 14:28:13 +0800
Subject: [PATCH 4/5] refactor: move acp bridge to frontends/
---
.../genericagent_acp_bridge.py | 2 ++
1 file changed, 2 insertions(+)
rename genericagent_acp_bridge.py => frontends/genericagent_acp_bridge.py (99%)
diff --git a/genericagent_acp_bridge.py b/frontends/genericagent_acp_bridge.py
similarity index 99%
rename from genericagent_acp_bridge.py
rename to frontends/genericagent_acp_bridge.py
index 04e7f827..c657950c 100644
--- a/genericagent_acp_bridge.py
+++ b/frontends/genericagent_acp_bridge.py
@@ -3,6 +3,8 @@ import json
import os
import sys
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
# Must run BEFORE importing agentmain — it reconfigures stdout at import time,
# and its submodules may print() during init. We capture the raw binary stdout
# for ACP JSON-RPC, then redirect the text-mode stdout to stderr so any stray
From 424324a42948768bc5c99abd697a61d73677b7d7 Mon Sep 17 00:00:00 2001
From: yiqi-017 <22300246009@m.fudan.edu.cn>
Date: Tue, 5 May 2026 14:38:00 +0800
Subject: [PATCH 5/5] docs: add codeg integration section to README
---
README.md | 34 ++++++++++++++++++++++++++++++++++
assets/demo/codeg-demo.gif | Bin 0 -> 3098787 bytes
2 files changed, 34 insertions(+)
create mode 100644 assets/demo/codeg-demo.gif
diff --git a/README.md b/README.md
index 4c217745..823376da 100644
--- a/README.md
+++ b/README.md
@@ -130,6 +130,23 @@ python frontends/qtapp.py # Qt-based desktop app
streamlit run frontends/stapp2.py # Alternative Streamlit UI
```
+### Codeg
+
+
+|
+
+[Codeg](https://github.com/yiqi-017/codeg) (`feat/genericagent-integration` branch) is a desktop/web UI that connects GenericAgent alongside other agents (Claude Code, Gemini, Codex, etc.) in a unified interface with a polished, modern UI.
+
+> This integration is usable now. Some features are still being refined — feedback welcome.
+
+Place your GenericAgent directory alongside the codeg project. Codeg will auto-detect `frontends/genericagent_acp_bridge.py` and launch GenericAgent as a local ACP agent.
+
+ |
+
+
+ |
+
+
### Common Chat Commands
The default Streamlit desktop UI started by `python launch.pyw`, plus the QQ / Telegram / Feishu / WeCom / DingTalk frontends, support these chat commands:
@@ -419,6 +436,23 @@ python frontends/qtapp.py # 基于 Qt 的桌面应用
streamlit run frontends/stapp2.py # 另一种 Streamlit 风格 UI
```
+### Codeg前端
+
+
+|
+
+[Codeg](https://github.com/yiqi-017/codeg)(`feat/genericagent-integration` 分支)是一个桌面/Web UI,可以将 GenericAgent 与其他代理(Claude Code、Gemini、Codex 等)在统一界面中并行使用,UI 更加精美。
+
+> 此集成已可使用,部分功能仍在完善中,欢迎体验反馈。
+
+将 GenericAgent 目录放在 codeg 项目同级目录下,Codeg 会自动检测 `frontends/genericagent_acp_bridge.py` 并将 GenericAgent 作为本地 ACP 代理启动。
+
+ |
+
+
+ |
+
+
### 通用聊天命令
默认通过 `python launch.pyw` 启动的 Streamlit 桌面 UI,以及 QQ / Telegram / 飞书 / 企业微信 / 钉钉前端,都支持以下命令:
diff --git a/assets/demo/codeg-demo.gif b/assets/demo/codeg-demo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cd120effbc90b95094aa820cab9b017a3ac582ed
GIT binary patch
literal 3098787
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
z
z