背景
Agent Tracking Phase 3。Phase 2 (#17) 已实现 Worker 端接收 + shim 注入。本 issue 实现 shim 实际调用的 `corterm-agent` 二进制,它负责注入 hook 配置 + spawn 真实 agent 二进制 + 桥接 PTY。
范围
新项目 `src/Worker/CortexTerminal.AgentRunner/`:
- .NET 10 console,self-contained AOT 发布为 `corterm-agent`(Windows 是 `corterm-agent.exe`)
- 依赖 `CortexTerminal.Contracts`
入口(`Program.cs`):
- args: `corterm-agent [agent-args...]`
- 流程:
- `CORTERM_AGENT=0` → 用 `CORTERM_ORIGINAL_PATH` 找真实二进制,直接 `exec`,跳过所有注入
- 读 `CORTERM_SESSION_ID` / `CORTERM_AGENT_HOOK_URL`,缺失就报错退出(说明不在 Corterm session 里)
- 用 `CORTERM_ORIGINAL_PATH` 跳过 shim 目录,`which claude` 找真实二进制路径
- 加载 `IAgentAdapter` 实现(按 kind)
- 生成临时 hook 配置到 `~/.corterm/agent-hooks//`
- 设置 adapter 返回的环境变量(如 `CLAUDE_SETTINGS_FILE`)
- spawn 子进程,PTY 桥接 stdin/stdout/stderr
- 子进程退出时清理临时配置,透传 exit code
Adapter 注册:
安装脚本:
- `scripts/install.sh` / `install.ps1` 一并装 `corterm-agent` 到 `/`
- Worker 启动时确保 shim 文件指向正确路径
验收
- `corterm-agent claude --version` 等价 `claude --version`(passthrough 模式)
- `CORTERM_AGENT=0 corterm-agent claude` 不注入任何配置
- 不在 Corterm 环境里跑 `corterm-agent claude` 给出清晰报错
- 在 Corterm session 里跑,能看到 hook 配置被生成到 `~/.corterm/agent-hooks//`
- 退出时配置文件被清理
依赖
不做的事
背景
Agent Tracking Phase 3。Phase 2 (#17) 已实现 Worker 端接收 + shim 注入。本 issue 实现 shim 实际调用的 `corterm-agent` 二进制,它负责注入 hook 配置 + spawn 真实 agent 二进制 + 桥接 PTY。
范围
新项目 `src/Worker/CortexTerminal.AgentRunner/`:
入口(`Program.cs`):
Adapter 注册:
安装脚本:
验收
依赖
不做的事