feat(profiles): delete, rename, auto-describe and setup command (issue #781) (#818)

* feat(profiles): delete, rename, auto-describe and setup command (issue #781)

* feat(profiles): use shared ModelPickerDialog for set model (issue #781)

* fix(profiles): move overflow menu to card header so it can't be clipped (issue #781)

---------

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-08-05 17:59:30 +03:00
1 parent 19c053b3fa
commit 80be168801
7 files changed
+868 -100

No files matched your search

@@ -69,11 +69,15 @@ import com.m57.hermescontrol.data.model.PairingRevokeRequest
import com.m57.hermescontrol.data.model.PluginProvidersPutRequest
import com.m57.hermescontrol.data.model.PluginsHubResponse
import com.m57.hermescontrol.data.model.PortalResponse
import com.m57.hermescontrol.data.model.ProfileDescribeAutoRequest
import com.m57.hermescontrol.data.model.ProfileDescribeAutoResponse
import com.m57.hermescontrol.data.model.ProfileSetupCommandResponse
import com.m57.hermescontrol.data.model.ProfileSoulResponse
import com.m57.hermescontrol.data.model.ProfilesResponse
import com.m57.hermescontrol.data.model.PruneRequest
import com.m57.hermescontrol.data.model.RawConfigResponse
import com.m57.hermescontrol.data.model.RecentUnlock
import com.m57.hermescontrol.data.model.RenameProfileRequest
import com.m57.hermescontrol.data.model.SaveSkillContentRequest
import com.m57.hermescontrol.data.model.ScanStatus
import com.m57.hermescontrol.data.model.SessionDetailResponse
@@ -358,6 +362,28 @@ interface HermesApiService {
@Body body: UpdateProfileDescriptionRequest,
): Response<Unit>
@PATCH("api/profiles/{name}")
suspend fun renameProfile(
@Path("name") name: String,
@Body body: RenameProfileRequest,
): Response<Unit>
@DELETE("api/profiles/{name}")
suspend fun deleteProfile(
@Path("name") name: String,
): Response<Unit>
@POST("api/profiles/{name}/describe-auto")
suspend fun describeProfileAuto(
@Path("name") name: String,
@Body body: ProfileDescribeAutoRequest,
): Response<ProfileDescribeAutoResponse>
@GET("api/profiles/{name}/setup-command")
suspend fun getProfileSetupCommand(
@Path("name") name: String,
): Response<ProfileSetupCommandResponse>
@GET("api/tools/toolsets")
suspend fun getToolsets(): Response<List<Toolset>>