refactor(framework): store AgentContext additional components by type and update init/injection target collection

This commit is contained in:
2026-02-26 22:17:41 +08:00
parent b87ede0e8b
commit fa50f4aeb7
4 changed files with 6 additions and 6 deletions

View File

@@ -20,7 +20,7 @@ class CapabilityInjectorFactory : AgentBaseFactory() {
private fun buildTargets(agentContext: AgentContext): List<Any> { private fun buildTargets(agentContext: AgentContext): List<Any> {
val moduleInstances = agentContext.modules.values.map { it.instance } val moduleInstances = agentContext.modules.values.map { it.instance }
return moduleInstances + agentContext.additionalComponents return moduleInstances + agentContext.additionalComponents.values
} }
private fun injectCapabilities( private fun injectCapabilities(

View File

@@ -21,7 +21,7 @@ class ComponentInitHookExecuteFactory : AgentBaseFactory() {
private fun buildTargets(agentContext: AgentContext): List<Any> { private fun buildTargets(agentContext: AgentContext): List<Any> {
val moduleInstances = agentContext.modules.values.map { it.instance } val moduleInstances = agentContext.modules.values.map { it.instance }
return moduleInstances + agentContext.additionalComponents return moduleInstances + agentContext.additionalComponents.values
} }
private fun collectInitMethods( private fun collectInitMethods(

View File

@@ -37,7 +37,7 @@ class ComponentInjectorFactory : AgentBaseFactory() {
subModules.forEach { it.injectTarget.add(standalone.instance) } subModules.forEach { it.injectTarget.add(standalone.instance) }
} }
agentContext.additionalComponents.forEach { additional -> agentContext.additionalComponents.values.forEach { additional ->
injectIntoTarget(additional, providersForAdditional) injectIntoTarget(additional, providersForAdditional)
} }
} }

View File

@@ -21,9 +21,9 @@ object AgentContext {
val capabilities: Map<String, CapabilityImplementation> val capabilities: Map<String, CapabilityImplementation>
get() = _capabilities get() = _capabilities
private val _additionalComponents = mutableSetOf<Any>() private val _additionalComponents = mutableMapOf<Class<*>, Any>()
val additionalComponents: Set<Any> val additionalComponents: Map<Class<*>, Any>
get() = _additionalComponents get() = _additionalComponents
private val _metadata: MutableMap<String, MetaDataContent> = mutableMapOf() private val _metadata: MutableMap<String, MetaDataContent> = mutableMapOf()
@@ -45,7 +45,7 @@ object AgentContext {
if (type.isAnnotationPresent(AgentComponent::class.java)) { if (type.isAnnotationPresent(AgentComponent::class.java)) {
return false return false
} }
_additionalComponents.add(instance) _additionalComponents[type] = instance
return true return true
} }