补充项目启动器的web接口

This commit is contained in:
xintaofei
2026-03-27 16:40:09 +08:00
parent 1518bc625f
commit 298ecb9ff6
3 changed files with 53 additions and 0 deletions

View File

@@ -9,4 +9,5 @@ pub mod version_control;
pub mod folder_commands; pub mod folder_commands;
pub mod mcp; pub mod mcp;
pub mod git; pub mod git;
pub mod project_boot;
pub mod web_server; pub mod web_server;

View File

@@ -0,0 +1,49 @@
use axum::Json;
use serde::Deserialize;
use crate::app_error::AppCommandError;
use crate::commands::project_boot as pb_commands;
// ---------------------------------------------------------------------------
// Param structs
// ---------------------------------------------------------------------------
#[derive(Deserialize)]
pub struct DetectPackageManagerParams {
pub name: String,
}
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateShadcnProjectParams {
pub project_name: String,
pub template: String,
pub preset_code: String,
pub package_manager: String,
pub target_dir: String,
}
// ---------------------------------------------------------------------------
// Handlers
// ---------------------------------------------------------------------------
pub async fn detect_package_manager(
Json(params): Json<DetectPackageManagerParams>,
) -> Json<pb_commands::PackageManagerInfo> {
let info = pb_commands::detect_package_manager(params.name).await;
Json(info)
}
pub async fn create_shadcn_project(
Json(params): Json<CreateShadcnProjectParams>,
) -> Result<Json<String>, AppCommandError> {
let result = pb_commands::create_shadcn_project(
params.project_name,
params.template,
params.preset_code,
params.package_manager,
params.target_dir,
)
.await?;
Ok(Json(result))
}

View File

@@ -167,6 +167,9 @@ pub fn build_router(app: tauri::AppHandle, token: String, static_dir: std::path:
.route("/acp_read_agent_skill", post(handlers::acp::acp_read_agent_skill)) .route("/acp_read_agent_skill", post(handlers::acp::acp_read_agent_skill))
.route("/acp_save_agent_skill", post(handlers::acp::acp_save_agent_skill)) .route("/acp_save_agent_skill", post(handlers::acp::acp_save_agent_skill))
.route("/acp_delete_agent_skill", post(handlers::acp::acp_delete_agent_skill)) .route("/acp_delete_agent_skill", post(handlers::acp::acp_delete_agent_skill))
// ─── Project boot ───
.route("/detect_package_manager", post(handlers::project_boot::detect_package_manager))
.route("/create_shadcn_project", post(handlers::project_boot::create_shadcn_project))
// ─── Web Server ─── // ─── Web Server ───
.route("/get_web_server_status", post(handlers::web_server::get_web_server_status)) .route("/get_web_server_status", post(handlers::web_server::get_web_server_status))
.route("/start_web_server", post(handlers::web_server::start_web_server)) .route("/start_web_server", post(handlers::web_server::start_web_server))