1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! Runner execution facade and submodules.
//!
//! This module provides the implementation details for runner execution, delegated from
//! the parent `runner` module. It contains runner-specific CLI handling, process
//! management, and response extraction.
//!
//! Responsibilities:
//! - Define runner execution submodules and expose crate-only helpers.
//! - Implement runner-specific execution logic for all 7 supported runners.
//! - Handle CLI option resolution, command building, and process spawning.
//! - Extract and normalize runner responses (session IDs, assistant output).
//!
//! Does not handle:
//! - Runner selection or configuration validation (handled by parent module).
//! - Prompt templating or composition (handled by prompt modules).
//! - Public API surface (this is an internal implementation detail).
//!
//! Assumptions/invariants:
//! - Callers pass validated runner inputs (binaries resolved, models validated).
//! - Callers manage temporary file lifetimes for prompt files.
//! - The parent module handles error context and user-facing error messages.
//!
//! Submodule Organization:
//! - `cli_options.rs`: CLI option resolution from config/task/override sources.
//! - `cli_spec.rs`: CLI specification types for runner command construction.
//! - `command.rs`: Command building for runner subprocesses.
//! - `json.rs`: JSON handling for runner input/output.
//! - `plugin.rs`: External plugin protocol execution.
//! - `plugin_trait.rs`: Core traits for the runner plugin system.
//! - `builtin_plugins.rs`: Built-in runner plugin implementations.
//! - `plugin_executor.rs`: Plugin-based execution orchestration.
//! - `process.rs`: Process management and execution.
//! - `response.rs`: Response extraction (session IDs, assistant messages).
//! - `runners.rs`: Individual runner implementations.
//! - `stream.rs`: Output streaming to handlers and terminals.
//! - `tests/`: Execution-specific integration tests.
pub use extract_final_assistant_response;
pub use BuiltInRunnerPlugin;
pub use PluginExecutor;
pub use RunnerPlugin;
pub use ;
pub use ;
pub use ;