新增: 初始化 DevFlow 项目仓库

Tauri 2 + Vue 3 + Vite 6 桌面应用,Rust workspace 含 13 个 crate
(df-ai / df-storage / df-workflow / df-core / df-execute 等)。
核心能力:AI 聊天 agentic 循环(工具调用+人工审批)、工作流引擎、
任务/想法/项目/阶段管理、可追溯性,及配套前端组件。
This commit is contained in:
2026-06-12 01:31:05 +08:00
commit 98393b4908
178 changed files with 27859 additions and 0 deletions

70
src-tauri/src/lib.rs Normal file
View File

@@ -0,0 +1,70 @@
//! DevFlow Tauri 入口 — 初始化 AppState 并注册全部 IPC 命令
mod commands;
mod state;
use tauri::Manager;
use state::AppState;
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! Welcome to DevFlow.", name)
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_opener::init())
.setup(|app| {
// 数据库放在系统应用数据目录下:<app_data_dir>/devflow.db
let data_dir = app.path().app_data_dir()?;
std::fs::create_dir_all(&data_dir)?;
let db_path = data_dir.join("devflow.db");
// 初始化全局状态(打开数据库 + 执行迁移)
let app_state = tauri::async_runtime::block_on(AppState::init(&db_path))?;
app.manage(app_state);
Ok(())
})
.invoke_handler(tauri::generate_handler![
greet,
// 项目
commands::project::list_projects,
commands::project::create_project,
commands::project::get_project,
commands::project::update_project,
commands::project::delete_project,
// 任务
commands::task::list_tasks,
commands::task::create_task,
commands::task::update_task,
commands::task::delete_task,
// 想法
commands::idea::list_ideas,
commands::idea::create_idea,
commands::idea::update_idea,
commands::idea::delete_idea,
// 工作流
commands::workflow::run_workflow,
commands::workflow::list_workflow_executions,
commands::workflow::get_workflow_execution,
commands::workflow::approve_human_approval,
// AI 聊天
commands::ai::ai_chat_send,
commands::ai::ai_chat_stop,
commands::ai::ai_approve,
commands::ai::ai_chat_clear,
commands::ai::ai_list_providers,
commands::ai::ai_save_provider,
commands::ai::ai_set_provider,
// AI 对话管理
commands::ai::ai_conversation_create,
commands::ai::ai_conversation_list,
commands::ai::ai_conversation_switch,
commands::ai::ai_conversation_delete,
commands::ai::ai_conversation_rename,
])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}