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
|
||||
|
||||
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.module.abstracts.AbstractAgentModule
|
||||
import java.time.ZonedDateTime
|
||||
@@ -24,7 +25,10 @@ object AgentContext {
|
||||
val additionalComponents: Set<Any>
|
||||
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>) {
|
||||
_modules[name] = module
|
||||
@@ -44,6 +48,16 @@ object AgentContext {
|
||||
_additionalComponents.add(value)
|
||||
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> {
|
||||
|
||||
Reference in New Issue
Block a user