mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(interaction-api): extract interaction data models into new Partner-Interaction-Api module and update imports/dependencies
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.framework.agent.interaction;
|
||||
|
||||
import work.slhaf.partner.framework.agent.interaction.data.InputData;
|
||||
import work.slhaf.partner.api.InputData;
|
||||
import work.slhaf.partner.framework.agent.interaction.flow.RunningFlowContext;
|
||||
|
||||
public interface AgentGateway<I extends InputData, C extends RunningFlowContext> extends ResponseChannel, AutoCloseable {
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject
|
||||
import com.alibaba.fastjson2.annotation.JSONField
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import work.slhaf.partner.api.InteractionEvent
|
||||
import work.slhaf.partner.framework.agent.config.Config
|
||||
import work.slhaf.partner.framework.agent.config.ConfigDoc
|
||||
import work.slhaf.partner.framework.agent.config.ConfigRegistration
|
||||
@@ -12,7 +13,6 @@ import work.slhaf.partner.framework.agent.exception.ExceptionReporterHandler
|
||||
import work.slhaf.partner.framework.agent.factory.component.abstracts.AbstractAgentModule
|
||||
import work.slhaf.partner.framework.agent.factory.context.AgentContext
|
||||
import work.slhaf.partner.framework.agent.factory.context.ModuleContextData
|
||||
import work.slhaf.partner.framework.agent.interaction.data.InteractionEvent
|
||||
import work.slhaf.partner.framework.agent.interaction.flow.RunningFlowContext
|
||||
import work.slhaf.partner.framework.agent.support.Result
|
||||
import java.nio.file.Path
|
||||
|
||||
@@ -2,7 +2,7 @@ package work.slhaf.partner.framework.agent.interaction
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject
|
||||
import org.slf4j.LoggerFactory
|
||||
import work.slhaf.partner.framework.agent.interaction.data.InteractionEvent
|
||||
import work.slhaf.partner.api.InteractionEvent
|
||||
|
||||
interface ResponseChannel {
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package work.slhaf.partner.framework.agent.interaction.data
|
||||
|
||||
open class InputData(
|
||||
val source: String,
|
||||
val content: String
|
||||
) {
|
||||
private val _meta = mutableMapOf<String, String>()
|
||||
val meta: Map<String, String>
|
||||
get() = _meta
|
||||
|
||||
fun addMeta(key: String, value: String) {
|
||||
_meta[key] = value
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
package work.slhaf.partner.framework.agent.interaction.data
|
||||
|
||||
import java.time.ZonedDateTime
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
sealed class InteractionEvent {
|
||||
|
||||
/**
|
||||
* event type
|
||||
*/
|
||||
abstract val event: Event
|
||||
|
||||
/**
|
||||
* event sending status
|
||||
*/
|
||||
abstract val status: EventStatus
|
||||
|
||||
/**
|
||||
* the target send to
|
||||
*/
|
||||
abstract val target: String
|
||||
|
||||
private val _meta = mutableMapOf<String, String>(
|
||||
"datetime" to ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
|
||||
)
|
||||
val meta: Map<String, String>
|
||||
get() = _meta
|
||||
|
||||
fun addMeta(key: String, value: String) {
|
||||
_meta[key] = value
|
||||
}
|
||||
|
||||
enum class Event {
|
||||
REPLY,
|
||||
MODULE,
|
||||
SYSTEM
|
||||
}
|
||||
|
||||
enum class EventStatus {
|
||||
RUNNING,
|
||||
ERROR,
|
||||
DONE
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
data class ReplyEvent @JvmOverloads constructor(
|
||||
override val status: EventStatus,
|
||||
override val target: String,
|
||||
val content: String,
|
||||
val mode: ContentMode = ContentMode.REPLACE,
|
||||
val seq: Long? = null
|
||||
) : InteractionEvent() {
|
||||
override val event = Event.REPLY
|
||||
|
||||
enum class ContentMode {
|
||||
APPEND,
|
||||
REPLACE
|
||||
}
|
||||
}
|
||||
|
||||
data class ModuleEvent(
|
||||
override val status: EventStatus,
|
||||
override val target: String,
|
||||
val data: Data
|
||||
) : InteractionEvent() {
|
||||
override val event = Event.MODULE
|
||||
|
||||
data class Data(
|
||||
val module: String,
|
||||
val content: String
|
||||
)
|
||||
}
|
||||
|
||||
data class SystemEvent @JvmOverloads constructor(
|
||||
override val status: EventStatus,
|
||||
override val target: String,
|
||||
val title: String,
|
||||
val content: String,
|
||||
val urgency: Urgency = Urgency.NORMAL
|
||||
) : InteractionEvent() {
|
||||
override val event = Event.SYSTEM
|
||||
|
||||
enum class Urgency {
|
||||
LOW,
|
||||
NORMAL,
|
||||
HIGH,
|
||||
CRITICAL
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user