refactor(framework): simplify AgentContext capability storage to a single implementation per capability

This commit is contained in:
2026-02-23 22:59:20 +08:00
parent 2e29e5ca7f
commit 7ee698768c

View File

@@ -16,9 +16,9 @@ object AgentContext {
get() = _modules get() = _modules
private val _capabilities = private val _capabilities =
mutableMapOf<String, MutableSet<CapabilityImplementation>>() mutableMapOf<String, CapabilityImplementation>()
val capabilities: Map<String, Set<CapabilityImplementation>> val capabilities: Map<String, CapabilityImplementation>
get() = _capabilities get() = _capabilities
private val _additionalComponents = mutableSetOf<Any>() private val _additionalComponents = mutableSetOf<Any>()
@@ -36,9 +36,8 @@ object AgentContext {
} }
fun addCapability(capability: String, instance: Any, methods: Map<String, Method>) { fun addCapability(capability: String, instance: Any, methods: Map<String, Method>) {
val capabilityImpls = _capabilities.computeIfAbsent(capability) { mutableSetOf() }
val newImpl = CapabilityImplementation(instance.javaClass, instance, methods) val newImpl = CapabilityImplementation(instance.javaClass, instance, methods)
capabilityImpls.add(newImpl) _capabilities[capability] = newImpl
} }
fun addAdditionalComponent(instance: Any): Boolean { fun addAdditionalComponent(instance: Any): Boolean {