WIP push-to-talk Letta chat frontend
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 84 lines 2.8 kB view raw
1use crate::state::AppState; 2use tauri::{Manager, WebviewUrl, WebviewWindowBuilder}; 3use tauri_plugin_positioner::{Position, WindowExt}; 4use tauri_plugin_store::StoreExt; 5use tauri_plugin_window_state::{StateFlags, WindowExt as StateWindowExt}; 6 7mod cartesia; 8mod conversation; 9mod devices; 10mod letta; 11mod secrets; 12mod state; 13 14#[cfg_attr(mobile, tauri::mobile_entry_point)] 15pub fn run() { 16 let mut builder = tauri::Builder::default() 17 .plugin(tauri_plugin_http::init()) 18 .plugin(tauri_plugin_store::Builder::new().build()) 19 .plugin(tauri_plugin_opener::init()) 20 .plugin(tauri_plugin_window_state::Builder::new().build()) 21 .plugin(tauri_plugin_positioner::init()); 22 23 #[cfg(desktop)] 24 { 25 builder = builder.plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| { 26 use tauri::Manager; 27 28 let _ = app 29 .get_webview_window("main") 30 .expect("no main window") 31 .set_focus(); 32 })); 33 } 34 35 builder 36 .setup(|app| { 37 let store = app.store("config.json")?; 38 let app_state = AppState::new(store).expect("failed to initialize application state"); 39 40 app.manage(app_state); 41 42 let mut win_builder = 43 WebviewWindowBuilder::new(app, "main", WebviewUrl::default()).title("miwiwi"); 44 45 #[cfg(desktop)] 46 { 47 win_builder = win_builder 48 .inner_size(600.0, 800.0) 49 .decorations(false) 50 .always_on_top(true) 51 .visible(false) 52 .transparent(true) 53 .shadow(false) 54 .maximizable(false); 55 } 56 57 let window = win_builder.build().expect("failed to build window"); 58 59 window 60 .move_window(Position::BottomRight) 61 .expect("could not move window"); 62 63 window 64 .restore_state(StateFlags::all()) 65 .expect("could not restore window state"); 66 67 Ok(()) 68 }) 69 .invoke_handler(tauri::generate_handler![ 70 cartesia::commands::start_stt, 71 cartesia::commands::stop_stt, 72 letta::commands::list_agents, 73 letta::commands::get_letta_base_url, 74 letta::commands::set_letta_base_url, 75 letta::commands::get_letta_agent_id, 76 letta::commands::set_letta_agent_id, 77 letta::commands::start_llm_completion, 78 secrets::commands::has_secret, 79 secrets::commands::set_secret, 80 secrets::commands::delete_secret, 81 ]) 82 .run(tauri::generate_context!()) 83 .expect("error while running tauri application"); 84}