2.9 KiB
ADDED Requirements
Requirement: Runtime construction shall be isolated in runtime_builder.rs
All runtime bootstrapping logic (building ConversationRuntime, plugins, MCP state)
SHALL be in runtime_builder.rs. This includes BuiltRuntime, RuntimePluginState,
RuntimeMcpState, build_runtime, build_runtime_with_plugin_state, all plugin
construction helpers, and HookAbortMonitor.
Scenario: All build_runtime variants are in runtime_builder.rs
- WHEN the refactoring is complete
- THEN
runtime_builder.rscontainsbuild_runtime,build_runtime_with_plugin_state,build_runtime_plugin_state,build_runtime_plugin_state_with_loader,build_plugin_manager,build_system_prompt,build_runtime_mcp_state
Scenario: runtime_builder.rs imports from api_client and tool_executor
- WHEN
runtime_builder.rsconstructs aConversationRuntime - THEN it uses
AnthropicRuntimeClientfromapi_client.rsandCliToolExecutorfromtool_executor.rs
Requirement: BuiltRuntime shall be the single runtime lifecycle manager
BuiltRuntime SHALL own the ConversationRuntime option, plugin registry, and
MCP state. Its Drop implementation SHALL shut down plugins and MCP servers.
Scenario: BuiltRuntime::drop cleans up
- WHEN a
BuiltRuntimeis dropped - THEN
shutdown_mcp()andshutdown_plugins()are called - THEN no plugin or MCP process is left running
Requirement: AnthropicRuntimeClient shall be in api_client.rs
The API client adapter (AnthropicRuntimeClient) and its ApiClient trait impl
SHALL be in api_client.rs. Provider detection, auth resolution, and prompt
cache setup SHALL be contained in this module.
Scenario: api_client.rs contains AnthropicRuntimeClient
- WHEN the refactoring is complete
- THEN
api_client.rscontainsAnthropicRuntimeClientstruct, itsnew(), itsApiClienttrait implementation, and auth resolution helpers
Requirement: CliToolExecutor shall be in tool_executor.rs
The tool execution adapter (CliToolExecutor) and its ToolExecutor trait impl
SHALL be in tool_executor.rs. This includes all MCP tool call helpers and the
permission_policy / convert_messages functions.
Scenario: tool_executor.rs contains CliToolExecutor
- WHEN the refactoring is complete
- THEN
tool_executor.rscontainsCliToolExecutor,ToolSearchRequest,McpToolRequest,ListMcpResourcesRequest,ReadMcpResourceRequest, and theToolExecutortrait implementation
Requirement: Permission prompting shall be in permission.rs
CliPermissionPrompter and its PermissionPrompter trait impl SHALL be in
permission.rs.
Scenario: permission.rs contains permission prompt logic
- WHEN the refactoring is complete
- THEN
permission.rscontainsCliPermissionPrompter, itsnew()anddecide()methods, andpermission_policyhelper