@@ -1,5 +1,6 @@
1package soy.iko.opencode.data.model
1package soy.iko.opencode.data.model
3+import androidx.compose.runtime.Immutable
3import kotlinx.serialization.SerialName
4import kotlinx.serialization.SerialName
4import kotlinx.serialization.Serializable
5import kotlinx.serialization.Serializable
@@ -18,6 +19,7 @@ sealed interface Part {
18 val sessionID: String?
19 val sessionID: String?
21@Serializable
23@Serializable
22@SerialName("text")
24@SerialName("text")
23data class TextPart(
25data class TextPart(
@@ -30,6 +32,7 @@ data class TextPart(
30 val time: TimeInfo? = null,
32 val time: TimeInfo? = null,
33@Serializable
36@Serializable
34@SerialName("reasoning")
37@SerialName("reasoning")
35data class ReasoningPart(
38data class ReasoningPart(
@@ -40,6 +43,7 @@ data class ReasoningPart(
40 val time: TimeInfo? = null,
43 val time: TimeInfo? = null,
43@Serializable
47@Serializable
44@SerialName("tool")
48@SerialName("tool")
45data class ToolPart(
49data class ToolPart(
@@ -51,6 +55,7 @@ data class ToolPart(
51 val state: ToolState = ToolPending,
55 val state: ToolState = ToolPending,
54@Serializable
59@Serializable
55@SerialName("file")
60@SerialName("file")
56data class FilePart(
61data class FilePart(
@@ -63,6 +68,7 @@ data class FilePart(
63 val source: String? = null,
68 val source: String? = null,
66@Serializable
72@Serializable
67@SerialName("step-start")
73@SerialName("step-start")
68data class StepStartPart(
74data class StepStartPart(
@@ -71,6 +77,7 @@ data class StepStartPart(
71 override val sessionID: String? = null,
77 override val sessionID: String? = null,
74@Serializable
81@Serializable
75@SerialName("step-finish")
82@SerialName("step-finish")
76data class StepFinishPart(
83data class StepFinishPart(
@@ -82,6 +89,7 @@ data class StepFinishPart(
84/** Fallback for an unrecognized `type`. */
91/** Fallback for an unrecognized `type`. */
85@Serializable
93@Serializable
86@SerialName("__unknown")
94@SerialName("__unknown")
87data class UnknownPart(
95data class UnknownPart(