SIGN IN SIGN UP

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