feat(#58): implement skill markdown/yaml editor UI (#121)

This commit is contained in:
M57 authored and GitHub committed 2026-06-19 23:58:34 +03:00
1 parent 022e9de195
commit 46b24593f9
27 files changed
+399 -15

No files matched your search

@@ -301,7 +301,9 @@ private fun parseToolOutput(content: String): ParsedToolOutput? {
val trimmed = content.trim()
if (!trimmed.startsWith("{") && !trimmed.startsWith("[")) return null
return try {
val element = com.google.gson.JsonParser.parseString(trimmed)
val element =
com.google.gson.JsonParser
.parseString(trimmed)
if (element.isJsonObject) {
val obj = element.asJsonObject
@@ -310,10 +312,25 @@ private fun parseToolOutput(content: String): ParsedToolOutput? {
val hasExitCode = obj.has("exit_code") || obj.has("exitCode")
if (hasStdout || hasStderr || hasExitCode) {
val stdout = obj.get("stdout")?.takeIf { !it.isJsonNull }?.asString?.takeIf { it.isNotEmpty() }
val stderr = obj.get("stderr")?.takeIf { !it.isJsonNull }?.asString?.takeIf { it.isNotEmpty() }
val stdout =
obj
.get("stdout")
?.takeIf { !it.isJsonNull }
?.asString
?.takeIf { it.isNotEmpty() }
val stderr =
obj
.get("stderr")
?.takeIf { !it.isJsonNull }
?.asString
?.takeIf { it.isNotEmpty() }
val exitCode = (obj.get("exit_code") ?: obj.get("exitCode"))?.takeIf { !it.isJsonNull }?.asInt
val error = obj.get("error")?.takeIf { !it.isJsonNull }?.asString?.takeIf { it.isNotEmpty() }
val error =
obj
.get("error")
?.takeIf { !it.isJsonNull }
?.asString
?.takeIf { it.isNotEmpty() }
ParsedToolOutput(
isTerminal = true,
@@ -450,6 +450,7 @@ class ChatViewModel(
""".trimIndent()
addAssistantMessage(statusText)
}
is NetworkResult.Failure -> {
addAssistantMessage("Failed to retrieve status: ${result.error.message}")
}
@@ -472,6 +473,7 @@ class ChatViewModel(
}
addAssistantMessage("**Sessions List:**\n$sessionsStr")
}
is NetworkResult.Failure -> {
addAssistantMessage("Failed to list sessions: ${result.error.message}")
}
@@ -500,6 +502,7 @@ class ChatViewModel(
""".trimIndent()
addAssistantMessage(statsText)
}
is NetworkResult.Failure -> {
addAssistantMessage("Failed to retrieve system stats: ${result.error.message}")
}
@@ -627,6 +630,7 @@ class ChatViewModel(
)
}
}
is NetworkResult.Failure -> {
_uiState.update {
it.copy(