refactor(framework): generalize AgentContext and ModuleContextData generics with wildcard bounds

This commit is contained in:
2026-02-20 20:55:56 +08:00
parent e62cddfe44
commit 00ef090d2f

View File

@@ -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,