mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(framework): correct InteractionAdapter, support loading latest modules while running
This commit is contained in:
@@ -13,17 +13,16 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.RunningFlowContext
|
|||||||
|
|
||||||
abstract class AgentInteractionAdapter<I : AgentInputData, O : AgentOutputData, C : RunningFlowContext> {
|
abstract class AgentInteractionAdapter<I : AgentInputData, O : AgentOutputData, C : RunningFlowContext> {
|
||||||
|
|
||||||
private val runningModules =
|
|
||||||
mutableMapOf<Int, MutableList<ModuleContextData.Running<AbstractAgentModule.Running<RunningFlowContext>>>>()
|
|
||||||
|
|
||||||
fun call(runningFlowContext: C): C = runBlocking {
|
fun call(runningFlowContext: C): C = runBlocking {
|
||||||
if (runningModules.isEmpty()) {
|
val runningModules =
|
||||||
AgentContext.modules
|
mutableMapOf<Int, MutableList<ModuleContextData.Running<AbstractAgentModule.Running<RunningFlowContext>>>>()
|
||||||
.filter { ModuleContextData.Running::class.java.isAssignableFrom(it.value.javaClass) }
|
|
||||||
.map { it.value as ModuleContextData.Running<AbstractAgentModule.Running<RunningFlowContext>> }
|
AgentContext.modules
|
||||||
.sortedBy { it.order }
|
.filter { ModuleContextData.Running::class.java.isAssignableFrom(it.value.javaClass) }
|
||||||
.forEach { runningModules.computeIfAbsent(it.order) { mutableListOf() }.add(it) }
|
.map { it.value as ModuleContextData.Running<AbstractAgentModule.Running<RunningFlowContext>> }
|
||||||
}
|
.filter { it.enabled }
|
||||||
|
.sortedBy { it.order }
|
||||||
|
.forEach { runningModules.computeIfAbsent(it.order) { mutableListOf() }.add(it) }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (modules in runningModules.values) {
|
for (modules in runningModules.values) {
|
||||||
|
|||||||
Reference in New Issue
Block a user