Initial commit of HermesControl Android app
This commit is contained in:
commit
d6ff3de594
92 files changed
+10004
No files matched your search
@@ -0,0 +1,22 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class AchievementsResponse(
|
||||
val achievements: List<Achievement>,
|
||||
)
|
||||
|
||||
data class Achievement(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val description: String?,
|
||||
val category: String?,
|
||||
val kind: String?,
|
||||
val icon: String?,
|
||||
val unlocked: Boolean,
|
||||
val discovered: Boolean,
|
||||
val state: String?,
|
||||
val tier: String?,
|
||||
val progress: Double?,
|
||||
val next_tier: String?,
|
||||
val next_threshold: Double?,
|
||||
val progress_pct: Double?,
|
||||
)
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class CronJob(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val schedule: String?,
|
||||
val state: String?,
|
||||
val last_run_status: String?,
|
||||
val next_run: String?,
|
||||
)
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class ProfilesResponse(
|
||||
val profiles: List<ProfileInfo>,
|
||||
)
|
||||
|
||||
data class ProfileInfo(
|
||||
val name: String,
|
||||
val path: String?,
|
||||
val is_default: Boolean?,
|
||||
val model: String?,
|
||||
val provider: String?,
|
||||
val has_env: Boolean?,
|
||||
val skill_count: Int?,
|
||||
val gateway_running: Boolean?,
|
||||
val description: String?,
|
||||
)
|
||||
|
||||
data class ActiveProfileResponse(
|
||||
val active: String,
|
||||
val current: String?,
|
||||
)
|
||||
|
||||
data class SetActiveProfileRequest(
|
||||
val name: String,
|
||||
)
|
||||
|
||||
data class ProfileSoulResponse(
|
||||
val content: String,
|
||||
)
|
||||
|
||||
data class UpdateProfileSoulRequest(
|
||||
val content: String,
|
||||
)
|
||||
|
||||
data class UpdateProfileModelRequest(
|
||||
val provider: String,
|
||||
val model: String,
|
||||
)
|
||||
|
||||
data class UpdateProfileDescriptionRequest(
|
||||
val description: String,
|
||||
)
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class SessionListResponse(
|
||||
val sessions: List<SessionInfo>,
|
||||
)
|
||||
|
||||
data class SessionInfo(
|
||||
val id: String,
|
||||
val title: String?,
|
||||
val created_at: String?,
|
||||
val message_count: Int?,
|
||||
val status: String?,
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class SessionMessagesResponse(
|
||||
val messages: List<SessionMessage>,
|
||||
)
|
||||
|
||||
data class SessionMessage(
|
||||
val role: String?,
|
||||
val content: String?,
|
||||
val timestamp: String?,
|
||||
val type: String?,
|
||||
)
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class Skill(
|
||||
val name: String,
|
||||
val description: String?,
|
||||
val category: String?,
|
||||
val enabled: Boolean,
|
||||
)
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class StatusResponse(
|
||||
val version: String?,
|
||||
val gateway_running: Boolean?,
|
||||
val active_sessions: Int?,
|
||||
val auth_required: Boolean?,
|
||||
val gateway_platforms: Map<String, PlatformStatus>?,
|
||||
)
|
||||
|
||||
data class PlatformStatus(
|
||||
val state: String?,
|
||||
val error_code: String? = null,
|
||||
)
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
/**
|
||||
* Wrapper around the /api/system/stats response.
|
||||
*
|
||||
* The payload shape can change across Hermes versions, so we keep it
|
||||
* flexible with a Map and provide convenience accessors for the
|
||||
* most commonly used fields.
|
||||
*/
|
||||
data class SystemStatsResponse(
|
||||
val cpu: Map<String, Any?>? = null,
|
||||
val memory: Map<String, Any?>? = null,
|
||||
val disk: Map<String, Any?>? = null,
|
||||
val uptime: Any? = null,
|
||||
val extra: Map<String, Any?>? = null,
|
||||
) {
|
||||
/** CPU usage percentage, if available. */
|
||||
val cpuPercent: Double?
|
||||
get() = (cpu?.get("percent") as? Number)?.toDouble()
|
||||
|
||||
/** Memory usage percentage, if available. */
|
||||
val memoryPercent: Double?
|
||||
get() = (memory?.get("percent") as? Number)?.toDouble()
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class ToggleSkillRequest(
|
||||
val name: String,
|
||||
val enabled: Boolean,
|
||||
)
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.m57.hermescontrol.data.model
|
||||
|
||||
data class Toolset(
|
||||
val name: String,
|
||||
val label: String?,
|
||||
val description: String?,
|
||||
val enabled: Boolean,
|
||||
val available: Boolean?,
|
||||
val configured: Boolean?,
|
||||
val tools: List<String>?,
|
||||
)
|
||||
|
||||
data class ToolsetToggleRequest(
|
||||
val enabled: Boolean,
|
||||
val profile: String? = null,
|
||||
)
|
||||
Reference in new issue
Block a user