mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(framework): type AgentContext metadata entries and add JSON-backed metadata registration
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package work.slhaf.partner.api.agent.factory.context
|
package work.slhaf.partner.api.agent.factory.context
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSONArray
|
import com.alibaba.fastjson2.JSONArray
|
||||||
|
import com.alibaba.fastjson2.JSONObject
|
||||||
import work.slhaf.partner.api.agent.factory.AgentComponent
|
import work.slhaf.partner.api.agent.factory.AgentComponent
|
||||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule
|
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule
|
||||||
import java.time.ZonedDateTime
|
import java.time.ZonedDateTime
|
||||||
@@ -24,7 +25,10 @@ object AgentContext {
|
|||||||
val additionalComponents: Set<Any>
|
val additionalComponents: Set<Any>
|
||||||
get() = _additionalComponents
|
get() = _additionalComponents
|
||||||
|
|
||||||
val metadata: MutableMap<String, Any> = mutableMapOf()
|
private val _metadata: MutableMap<String, MetaDataContent> = mutableMapOf()
|
||||||
|
|
||||||
|
val metadata: Map<String, MetaDataContent>
|
||||||
|
get() = _metadata
|
||||||
|
|
||||||
fun addModule(name: String, module: ModuleContextData<AbstractAgentModule>) {
|
fun addModule(name: String, module: ModuleContextData<AbstractAgentModule>) {
|
||||||
_modules[name] = module
|
_modules[name] = module
|
||||||
@@ -44,6 +48,16 @@ object AgentContext {
|
|||||||
_additionalComponents.add(value)
|
_additionalComponents.add(value)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun <T> addMetadata(name: String, type: Class<T>, value: T) {
|
||||||
|
val content = MetaDataContent(type, JSONObject.toJSONString(value))
|
||||||
|
_metadata[name] = content
|
||||||
|
}
|
||||||
|
|
||||||
|
data class MetaDataContent(
|
||||||
|
val clazz: Class<*>,
|
||||||
|
val value: String
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed class ModuleContextData<out T : AbstractAgentModule> {
|
sealed class ModuleContextData<out T : AbstractAgentModule> {
|
||||||
|
|||||||
Reference in New Issue
Block a user