用途:claude-code worker 将 Claude Code API 封装为 iii 函数。一次 claude::run 调用执行一个无头 Claude Code 回合——与用户在终端运行的同一个 agent,沿用同样的登录、文件系统与权限模型——在选定的工作目录中运行,并返回最终结果、token 用量与费用。该 worker 是纯透传:具名字段覆盖常见路径,options 字段原样转发任何 Agent SDK 选项,Claude Code 发出的每条消息原样镜像到 claude::events 流上;翻译后的 AgentEvent 视图进入 agent::events,供 iii 控制台与 acp worker 渲染。
主要能力:一次调用委派完整编码任务(如“加一个端点并跑测试”);通过重复传入同一 session_id 跨调用续接对话并保留完整上下文;claude::start 立即返回 {session_id, started},通过 claude::events(group_id = session_id)跟踪原始进度或用 agent::events 获取渲染视图,claude::stop 可中断;回合默认携带 iii 运行时上下文;permission_mode: "plan" 可先只读规划,再在同一 session_id 上用 "acceptEdits" 实施;通过 options 透传 SDK 选项,includePartialMessages 可产生 token 级 stream_event 帧。
函数:claude::run(等待式执行一回合,接受 prompt 或 messages 数组,以及 model、cwd、permission_mode、allowed_tools、disallowed_tools、max_turns、system_prompt、append_system_prompt 和原始 options;返回 session_id、claude_session_id、result、stop_reason、usage、total_cost_usd);claude::start(同 payload,立即返回);claude::stop;claude::status(live 标志、状态、回合数、用量、费用);claude::sessions::list;run::start_and_wait(claude::run 的别名)。
前提与限制:主机需安装并已登录 claude CLI,或在 worker 环境中设置 ANTHROPIC_API_KEY。每回合会启动宿主 claude CLI,裸容器中不可用。函数执行受 Claude Code 自身权限模型(permission_mode、allowed_tools、disallowed_tools)约束;设 approval_gate: true 可将每次调用路由到 policy::check_permissions(需 harness worker)。同一会话同一时间只能有一个回合,发送新的 claude::run 前应先检查 claude::status(live: true)。agent::events 仅携带整条消息帧,token 增量只存在于 claude::events 且需开启 includePartialMessages。