feat(tui): implement agent turn engine for background processing and enhance input handling
This commit is contained in:
@@ -28,7 +28,7 @@ use crate::view;
|
||||
/// save settings.
|
||||
pub fn run_single_process() -> Result<()> {
|
||||
// Create session state
|
||||
let (_store, mut state, _rt) = create_local_session()?;
|
||||
let (_store, mut state) = create_local_session()?;
|
||||
|
||||
// Enter raw mode and alternate screen for the TUI
|
||||
enable_raw_mode()?;
|
||||
@@ -140,8 +140,8 @@ fn run_loop_inner(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Create session state for single-process mode.
|
||||
fn create_local_session() -> Result<(zesdex_domain::core::Store, AppStateRest, tokio::runtime::Runtime)> {
|
||||
/// Create session state with real infrastructure wired in.
|
||||
fn create_local_session() -> Result<(zesdex_domain::core::Store, AppStateRest)> {
|
||||
let store = zesdex_domain::core::Store::new();
|
||||
store.ensure_dirs()?;
|
||||
|
||||
@@ -149,10 +149,15 @@ fn create_local_session() -> Result<(zesdex_domain::core::Store, AppStateRest, t
|
||||
let session_dir = store.base_dir.join("sessions").join(&session_id);
|
||||
std::fs::create_dir_all(&session_dir)?;
|
||||
|
||||
// Load real settings from disk
|
||||
use zesdex_domain::SettingsRepository;
|
||||
let settings = zesdex_infrastructure::persistence::cms::settings_repo::JsonSettingsRepository::new()
|
||||
.load(&store.base_dir)
|
||||
.unwrap_or_default();
|
||||
|
||||
let workspace_roots = vec![std::env::current_dir()?];
|
||||
let state = AppStateRest::new(workspace_roots, &session_dir, store.memory_dir.clone());
|
||||
let mut state = AppStateRest::new(workspace_roots, &session_dir, store.memory_dir.clone());
|
||||
state.settings = settings;
|
||||
|
||||
let rt = tokio::runtime::Runtime::new()?;
|
||||
|
||||
Ok((store, state, rt))
|
||||
Ok((store, state))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user