源码: main.rs:2318-2336
(
session: Session,
api_client,
registry: ToolRegistry,
permission_mode: PermissionMode,
system_prompt: list[str],
hook_runner: Optional[HookRunner] = None,
)
| 178 | # ============================================================ |
| 179 | |
| 180 | def build_runtime( |
| 181 | session: Session, |
| 182 | api_client, |
| 183 | registry: ToolRegistry, |
| 184 | permission_mode: PermissionMode, |
| 185 | system_prompt: list[str], |
| 186 | hook_runner: Optional[HookRunner] = None, |
| 187 | ) -> ConversationRuntime: |
| 188 | """源码: main.rs:2318-2336""" |
| 189 | # 构建权限策略 — main.rs:3079-3085 |
| 190 | # CC 从 tool_specs 批量注册。我们简化为手动注册常用工具权限。 |
| 191 | policy = ( |
| 192 | PermissionPolicy(permission_mode) |
| 193 | .with_tool_requirement("read_file", PermissionMode.READ_ONLY) |
| 194 | .with_tool_requirement("glob_search", PermissionMode.READ_ONLY) |
| 195 | .with_tool_requirement("grep_search", PermissionMode.READ_ONLY) |
| 196 | .with_tool_requirement("write_file", PermissionMode.WORKSPACE_WRITE) |
| 197 | .with_tool_requirement("edit_file", PermissionMode.WORKSPACE_WRITE) |
| 198 | .with_tool_requirement("bash", PermissionMode.DANGER_FULL_ACCESS) |
| 199 | ) |
| 200 | |
| 201 | tool_executor = CliToolExecutor(registry) |
| 202 | |
| 203 | return ConversationRuntime( |
| 204 | session=session, |
| 205 | api_client=api_client, |
| 206 | tool_executor=tool_executor, |
| 207 | permission_policy=policy, |
| 208 | system_prompt=system_prompt, |
| 209 | hook_runner=hook_runner, |
| 210 | ) |
| 211 | |
| 212 | |
| 213 | # ============================================================ |
no test coverage detected