mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(framework): encapsulate AgentContext maps and require modelInfo in module contexts
This commit is contained in:
@@ -5,22 +5,41 @@ import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule
|
|||||||
import java.time.ZonedDateTime
|
import java.time.ZonedDateTime
|
||||||
|
|
||||||
object AgentContext {
|
object AgentContext {
|
||||||
val modules = mutableMapOf<String, ModuleContextData<AbstractAgentModule>>()
|
|
||||||
val capabilities = mutableMapOf<Class<*>, Any>()
|
private val _modules =
|
||||||
|
mutableMapOf<String, ModuleContextData<AbstractAgentModule>>()
|
||||||
|
|
||||||
|
val modules: Map<String, ModuleContextData<AbstractAgentModule>>
|
||||||
|
get() = _modules
|
||||||
|
|
||||||
|
private val _capabilities =
|
||||||
|
mutableMapOf<Class<*>, Any?>()
|
||||||
|
|
||||||
|
val capabilities: Map<Class<*>, Any?>
|
||||||
|
get() = _capabilities
|
||||||
|
|
||||||
|
fun addModule(name: String, module: ModuleContextData<AbstractAgentModule>) {
|
||||||
|
_modules[name] = module
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> addCapability(type: Class<T>, value: T) {
|
||||||
|
_capabilities[type] = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed class ModuleContextData<out T : AbstractAgentModule> {
|
sealed class ModuleContextData<out T : AbstractAgentModule> {
|
||||||
abstract val clazz: Class<out T>
|
abstract val clazz: Class<out T>
|
||||||
abstract val instance: T
|
abstract val instance: T
|
||||||
abstract val launchTime: ZonedDateTime
|
abstract val launchTime: ZonedDateTime
|
||||||
|
abstract val modelInfo: ModelInfo
|
||||||
|
|
||||||
val modelInfo: ModelInfo? = null
|
|
||||||
val metadata = mutableMapOf<String, Any>()
|
val metadata = mutableMapOf<String, Any>()
|
||||||
|
|
||||||
data class Running<T : AbstractAgentModule.Running<*>>(
|
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,
|
||||||
|
override val modelInfo: ModelInfo,
|
||||||
|
|
||||||
val order: Int,
|
val order: Int,
|
||||||
val enabled: Boolean
|
val enabled: Boolean
|
||||||
@@ -30,6 +49,7 @@ sealed class ModuleContextData<out T : AbstractAgentModule> {
|
|||||||
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,
|
||||||
|
override val modelInfo: ModelInfo,
|
||||||
|
|
||||||
val injectTarget: MutableSet<AbstractAgentModule> = mutableSetOf()
|
val injectTarget: MutableSet<AbstractAgentModule> = mutableSetOf()
|
||||||
) : ModuleContextData<T>()
|
) : ModuleContextData<T>()
|
||||||
@@ -38,6 +58,7 @@ sealed class ModuleContextData<out T : AbstractAgentModule> {
|
|||||||
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,
|
||||||
|
override val modelInfo: ModelInfo,
|
||||||
|
|
||||||
val injectTarget: MutableSet<AbstractAgentModule> = mutableSetOf()
|
val injectTarget: MutableSet<AbstractAgentModule> = mutableSetOf()
|
||||||
) : ModuleContextData<T>()
|
) : ModuleContextData<T>()
|
||||||
|
|||||||
Reference in New Issue
Block a user