From 6bf4d95b055695ee2be28619ec8f31ae8839b231 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Fri, 20 Feb 2026 21:31:20 +0800 Subject: [PATCH] refactor(framework): encapsulate `AgentContext` maps and require `modelInfo` in module contexts --- .../api/agent/factory/context/Context.kt | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt index 6d96a8e3..723d902d 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt @@ -5,22 +5,41 @@ import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule import java.time.ZonedDateTime object AgentContext { - val modules = mutableMapOf>() - val capabilities = mutableMapOf, Any>() + + private val _modules = + mutableMapOf>() + + val modules: Map> + get() = _modules + + private val _capabilities = + mutableMapOf, Any?>() + + val capabilities: Map, Any?> + get() = _capabilities + + fun addModule(name: String, module: ModuleContextData) { + _modules[name] = module + } + + fun addCapability(type: Class, value: T) { + _capabilities[type] = value + } } sealed class ModuleContextData { abstract val clazz: Class abstract val instance: T abstract val launchTime: ZonedDateTime + abstract val modelInfo: ModelInfo - val modelInfo: ModelInfo? = null val metadata = mutableMapOf() data class Running>( override val clazz: Class, override val instance: T, override val launchTime: ZonedDateTime, + override val modelInfo: ModelInfo, val order: Int, val enabled: Boolean @@ -30,6 +49,7 @@ sealed class ModuleContextData { override val clazz: Class, override val instance: T, override val launchTime: ZonedDateTime, + override val modelInfo: ModelInfo, val injectTarget: MutableSet = mutableSetOf() ) : ModuleContextData() @@ -38,6 +58,7 @@ sealed class ModuleContextData { override val clazz: Class, override val instance: T, override val launchTime: ZonedDateTime, + override val modelInfo: ModelInfo, val injectTarget: MutableSet = mutableSetOf() ) : ModuleContextData()