mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(framework): generalize AgentContext and ModuleContextData generics with wildcard bounds
This commit is contained in:
@@ -2,23 +2,22 @@ package work.slhaf.partner.api.agent.factory.context
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSONArray
|
import com.alibaba.fastjson2.JSONArray
|
||||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule
|
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule
|
||||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext
|
|
||||||
import java.time.ZonedDateTime
|
import java.time.ZonedDateTime
|
||||||
|
|
||||||
object AgentContext {
|
object AgentContext {
|
||||||
val modules = mutableMapOf<String, ModuleContextData<out AbstractAgentModule>>()
|
val modules = mutableMapOf<String, ModuleContextData<AbstractAgentModule>>()
|
||||||
val capabilities = mutableMapOf<Class<Any>, Any>()
|
val capabilities = mutableMapOf<Class<*>, Any>()
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed class ModuleContextData<T : AbstractAgentModule> {
|
sealed class ModuleContextData<out T : AbstractAgentModule> {
|
||||||
abstract val clazz: Class<T>
|
abstract val clazz: Class<out T>
|
||||||
abstract val instance: T
|
abstract val instance: T
|
||||||
abstract val launchTime: ZonedDateTime
|
abstract val launchTime: ZonedDateTime
|
||||||
|
|
||||||
val modelInfo: ModelInfo? = null
|
val modelInfo: ModelInfo? = null
|
||||||
val metadata = mutableMapOf<String, Any>()
|
val metadata = mutableMapOf<String, Any>()
|
||||||
|
|
||||||
data class Running<T : AbstractAgentModule.Running<out RunningFlowContext>>(
|
data class Running<T : AbstractAgentModule.Running<*>>(
|
||||||
override val clazz: Class<T>,
|
override val clazz: Class<T>,
|
||||||
override val instance: T,
|
override val instance: T,
|
||||||
override val launchTime: ZonedDateTime,
|
override val launchTime: ZonedDateTime,
|
||||||
@@ -27,7 +26,7 @@ sealed class ModuleContextData<T : AbstractAgentModule> {
|
|||||||
val enabled: Boolean
|
val enabled: Boolean
|
||||||
) : ModuleContextData<T>()
|
) : ModuleContextData<T>()
|
||||||
|
|
||||||
data class Sub<T : AbstractAgentModule.Sub<out Any, out Any>>(
|
data class Sub<T : AbstractAgentModule.Sub<*, *>>(
|
||||||
override val clazz: Class<T>,
|
override val clazz: Class<T>,
|
||||||
override val instance: T,
|
override val instance: T,
|
||||||
override val launchTime: ZonedDateTime,
|
override val launchTime: ZonedDateTime,
|
||||||
|
|||||||
Reference in New Issue
Block a user