feat(pi-server): agent 服务化层(Unix socket + JSONL + supervisor)
最后一个包。对应上游 packages/server。 关键偏离:上游 spawn 子进程(pi --mode rpc)通过 JSONL over stdio 通信, Python 版直接在进程内管理 CodingAgent 实例(无子进程),更适合 SDK 场景。 落地内容: - protocol.py:JSONL 编解码、InstanceSummary、上层请求/响应协议 (spawn/list/stop/status/rpc/rpc_stream) - config.py:socket path 解析($PI_SERVER_DIR > ~/.pi/server/server.sock) - supervisor.py:AgentInstance + Supervisor - spawn/stop/list/status 状态机(starting→online→stopping→stopped) - handle_rpc(prompt/get_state/abort 命令转发) - open_rpc_stream/close_rpc_stream(事件流订阅) - instances.json 持久化、recover_after_restart、shutdown - ipc.py:asyncio Unix socket 服务端 - 普通请求:一连接一请求一响应 - rpc_stream:握手后升级为双向 JSONL(事件推送 + 命令转发) - send_request 客户端、serve 常驻服务入口 17 个测试覆盖:协议编解码、supervisor CRUD、RPC 转发、事件流、 handle_request 分发、IPC server 端到端(启动 server → 客户端 list 请求)。 验证:191 测试通过(全 5 包),mypy strict / ruff 全绿。 ===== 5 包全部完成 =====
J
Justin Gao committed
2c79425039ba541d0076c5057e67c4aeb7fdc8d3
Parent: 41e96a7