mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(context): rename VisibleDomain into FocusedDomain, and optimize related context usage
This commit is contained in:
@@ -108,7 +108,7 @@ public class CognitionCore implements StateSerializable {
|
||||
appendRepeatedElements(document, root, "chat_message", resolveRecentChatMessages());
|
||||
}
|
||||
},
|
||||
Set.of(ContextBlock.VisibleDomain.COGNITION),
|
||||
Set.of(ContextBlock.FocusedDomain.COMMUNICATION),
|
||||
100,
|
||||
10,
|
||||
4
|
||||
|
||||
@@ -27,10 +27,10 @@ class ContextWorkspace {
|
||||
private val lock = ReentrantReadWriteLock()
|
||||
|
||||
/**
|
||||
* 根据传入的 [ContextBlock.VisibleDomain] 列表,获取上下文块
|
||||
* 根据传入的 [ContextBlock.FocusedDomain] 列表,获取上下文块
|
||||
* @param domains 需要获取上下文的域列表,顺序将决定权重优先级,按照列表排序将具备线性权重分层,最终反映到 blockContent 列表的排序上
|
||||
*/
|
||||
fun resolve(domains: List<ContextBlock.VisibleDomain>): ResolvedContext = lock.write {
|
||||
fun resolve(domains: List<ContextBlock.FocusedDomain>): ResolvedContext = lock.write {
|
||||
if (domains.isEmpty()) {
|
||||
return@write ResolvedContext(emptyList())
|
||||
}
|
||||
@@ -51,7 +51,7 @@ class ContextWorkspace {
|
||||
continue
|
||||
}
|
||||
|
||||
val matchedDomains = block.visibleTo.intersect(domainWeights.keys)
|
||||
val matchedDomains = block.focusedOn.intersect(domainWeights.keys)
|
||||
if (matchedDomains.isEmpty()) {
|
||||
continue
|
||||
}
|
||||
@@ -158,7 +158,7 @@ class ContextWorkspace {
|
||||
val payload = JSONObject()
|
||||
payload["blockName"] = block.sourceKey.blockName
|
||||
payload["source"] = block.sourceKey.source
|
||||
payload["visibleTo"] = block.visibleTo.map { it.name }
|
||||
payload["focusedOn"] = block.focusedOn.map { it.name }
|
||||
payload["fullRendered"] = block.blockContent.encodeToXmlString()
|
||||
payload["compactRendered"] = block.compactBlock.encodeToXmlString()
|
||||
payload["abstractRendered"] = block.abstractBlock.encodeToXmlString()
|
||||
@@ -179,9 +179,9 @@ data class ContextBlock @JvmOverloads constructor(
|
||||
val compactBlock: BlockContent = blockContent,
|
||||
val abstractBlock: BlockContent = blockContent,
|
||||
/**
|
||||
* 对哪些域可见
|
||||
* 该 block 集中在哪些域
|
||||
*/
|
||||
val visibleTo: Set<VisibleDomain>,
|
||||
val focusedOn: Set<FocusedDomain>,
|
||||
|
||||
/**
|
||||
* 新的 [blockContent] 属性与其相同时,发生的衰退步长
|
||||
@@ -216,7 +216,7 @@ data class ContextBlock @JvmOverloads constructor(
|
||||
private var activationScore = 100.0
|
||||
private var lastTouchedAt = Instant.now()
|
||||
|
||||
enum class VisibleDomain {
|
||||
enum class FocusedDomain {
|
||||
ACTION,
|
||||
MEMORY,
|
||||
PERCEIVE,
|
||||
|
||||
@@ -79,7 +79,7 @@ class BuiltinCapabilityActionProvider implements BuiltinActionProvider {
|
||||
MemoryUnit unit = memoryCapability.getMemoryUnit(unitId);
|
||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||
buildMemoryRecallFullBlock(unit, slice),
|
||||
Set.of(ContextBlock.VisibleDomain.MEMORY),
|
||||
Set.of(ContextBlock.FocusedDomain.MEMORY),
|
||||
60,
|
||||
16,
|
||||
28
|
||||
|
||||
@@ -12,10 +12,7 @@ import work.slhaf.partner.core.action.entity.MetaAction;
|
||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
||||
import work.slhaf.partner.core.action.entity.intervention.InterventionType;
|
||||
import work.slhaf.partner.core.action.entity.intervention.MetaIntervention;
|
||||
import work.slhaf.partner.core.cognition.BlockContent;
|
||||
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||
import work.slhaf.partner.core.cognition.ContextBlock;
|
||||
import work.slhaf.partner.core.cognition.ContextWorkspace;
|
||||
import work.slhaf.partner.core.cognition.*;
|
||||
import work.slhaf.partner.framework.agent.exception.AgentRuntimeException;
|
||||
import work.slhaf.partner.framework.agent.exception.ExceptionReporterHandler;
|
||||
import work.slhaf.partner.framework.agent.factory.capability.annotation.InjectCapability;
|
||||
@@ -133,7 +130,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
||||
String blockName = "acquire_intervention-" + actionId;
|
||||
String source = "action_executor";
|
||||
contextWorkspace.register(new ContextBlock(
|
||||
new BlockContent(blockName, source) {
|
||||
new CommunicationBlockContent(blockName, source, BlockContent.Urgency.HIGH, CommunicationBlockContent.Projection.SUPPLY) {
|
||||
@Override
|
||||
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
||||
appendTextElement(document, root, "action_id", actionId);
|
||||
@@ -141,7 +138,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
||||
appendTextElement(document, root, "demand", demand);
|
||||
}
|
||||
},
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION, ContextBlock.VisibleDomain.COMMUNICATION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
10,
|
||||
10,
|
||||
20
|
||||
|
||||
@@ -53,9 +53,9 @@ public class ActionCorrectionRecognizer extends AbstractAgentModule.Sub<Correcti
|
||||
|
||||
private Message resolveContextMessage() {
|
||||
return cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.ACTION,
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.ACTION,
|
||||
ContextBlock.FocusedDomain.COGNITION,
|
||||
ContextBlock.FocusedDomain.MEMORY
|
||||
)).encodeToMessage();
|
||||
}
|
||||
|
||||
|
||||
@@ -63,9 +63,10 @@ public class ActionCorrector extends AbstractAgentModule.Sub<CorrectorInput, Res
|
||||
|
||||
private Message resolveContextMessage() {
|
||||
return cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.ACTION,
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.ACTION,
|
||||
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||
ContextBlock.FocusedDomain.COGNITION,
|
||||
ContextBlock.FocusedDomain.MEMORY
|
||||
)).encodeToMessage();
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class ExecutingActionBlockManager {
|
||||
buildExecutingActionRecoveredFullBlock(snapshots, blockName, emittedAt, event),
|
||||
buildExecutingActionRecoveredCompactBlock(snapshots, blockName, emittedAt, event),
|
||||
buildExecutingActionRecoveredAbstractBlock(snapshots, blockName, event),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
100,
|
||||
12,
|
||||
1
|
||||
@@ -97,7 +97,7 @@ class ExecutingActionBlockManager {
|
||||
buildStateActionFullBlock(snapshot, blockName, emittedAt, event),
|
||||
buildStateActionCompactBlock(snapshot, blockName, emittedAt, event),
|
||||
buildStateActionAbstractBlock(snapshot, blockName, event),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
70,
|
||||
18,
|
||||
10
|
||||
@@ -151,7 +151,7 @@ class ExecutingActionBlockManager {
|
||||
buildActionLaunchedFullBlock(snapshot, blockName, event, emittedAt),
|
||||
buildActionCompactBlock(snapshot, blockName, event, emittedAt),
|
||||
buildActionAbstractBlock(snapshot, blockName, event),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
28,
|
||||
6,
|
||||
18
|
||||
@@ -230,7 +230,7 @@ class ExecutingActionBlockManager {
|
||||
buildActionStageFullBlock(snapshot, blockName, emittedAt, event),
|
||||
buildActionStageCompactBlock(snapshot, blockName, emittedAt, event),
|
||||
buildActionStageAbstractBlock(snapshot, blockName, event),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
55,
|
||||
10,
|
||||
12
|
||||
@@ -305,7 +305,7 @@ class ExecutingActionBlockManager {
|
||||
buildActionCorrectionFullBlock(snapshot, reason, interventions, blockName, emittedAt, event),
|
||||
buildActionCorrectionCompactBlock(snapshot, reason, interventions, blockName, emittedAt, event),
|
||||
buildActionCorrectionAbstractBlock(snapshot, interventions, blockName, event),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
22,
|
||||
5,
|
||||
22
|
||||
@@ -372,7 +372,7 @@ class ExecutingActionBlockManager {
|
||||
buildActionFinishedFullBlock(snapshot, blockName, emittedAt, event),
|
||||
buildActionFinishedFullBlock(snapshot, blockName, emittedAt, event),
|
||||
buildActionFinishedAbstractBlock(snapshot, blockName, event),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
35,
|
||||
14,
|
||||
24
|
||||
|
||||
@@ -62,9 +62,9 @@ public class ParamsExtractor extends AbstractAgentModule.Sub<ExtractorInput, Res
|
||||
private Message resolveContextMessage() {
|
||||
return cognitionCapability.contextWorkspace()
|
||||
.resolve(List.of(
|
||||
ContextBlock.VisibleDomain.ACTION,
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.ACTION,
|
||||
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||
ContextBlock.FocusedDomain.MEMORY
|
||||
))
|
||||
.encodeToMessage();
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
||||
buildTendenciesEvaluatingFullBlock(tendencies),
|
||||
buildTendenciesEvaluatingCompactBlock(tendencies, datetime, input),
|
||||
buildTendenciesEvaluatingAbstractBlock(tendencies, datetime, input),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION, ContextBlock.VisibleDomain.COMMUNICATION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
60,
|
||||
18,
|
||||
4
|
||||
@@ -200,7 +200,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
||||
buildPendingBlock(blockName, executableAction, evaluatorResult),
|
||||
buildPendingCompactBlock(blockName, executableAction, evaluatorResult, input),
|
||||
buildPendingAbstractBlock(blockName, executableAction, evaluatorResult, input),
|
||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||
30,
|
||||
10,
|
||||
5
|
||||
|
||||
@@ -55,9 +55,10 @@ public class ActionEvaluator extends AbstractAgentModule.Sub<EvaluatorInput, Lis
|
||||
try {
|
||||
List<Message> messages = List.of(
|
||||
cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.ACTION,
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.ACTION,
|
||||
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||
ContextBlock.FocusedDomain.COGNITION,
|
||||
ContextBlock.FocusedDomain.MEMORY
|
||||
)).encodeToMessage(),
|
||||
availableMetaActionContext(),
|
||||
new Message(Message.Character.USER, tendency)
|
||||
|
||||
@@ -23,8 +23,8 @@ public class ActionExtractor extends AbstractAgentModule.Sub<String, Result<Extr
|
||||
protected @NotNull Result<ExtractorResult> doExecute(String input) {
|
||||
List<Message> messages = List.of(
|
||||
cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.ACTION
|
||||
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||
ContextBlock.FocusedDomain.ACTION
|
||||
)).encodeToMessage(),
|
||||
new Message(Message.Character.USER, input)
|
||||
);
|
||||
|
||||
@@ -79,7 +79,7 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
|
||||
|
||||
private List<Message> buildChatMessages(PartnerRunningFlowContext runningFlowContext) {
|
||||
ResolvedContext resolvedContext = cognitionCapability.contextWorkspace()
|
||||
.resolve(List.of(ContextBlock.VisibleDomain.COMMUNICATION, ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.PERCEIVE, ContextBlock.VisibleDomain.ACTION));
|
||||
.resolve(List.of(ContextBlock.FocusedDomain.COGNITION, ContextBlock.FocusedDomain.ACTION, ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.PERCEIVE));
|
||||
List<BlockContent> communicationBlocks = resolvedContext.getBlocks();
|
||||
List<Message> historyMessages = snapshotConversationMessages();
|
||||
List<Message> temp = new ArrayList<>(historyMessages.size() + 2);
|
||||
|
||||
@@ -175,7 +175,7 @@ public class DialogRolling extends AbstractAgentModule.Running<PartnerRunningFlo
|
||||
private void applyRolling(RollingResult result) {
|
||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||
buildDialogAbstractBlock(result.summary(), result.memoryUnit().getId(), result.memorySlice().getId()),
|
||||
Set.of(ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.COMMUNICATION),
|
||||
Set.of(ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.COMMUNICATION),
|
||||
20,
|
||||
5,
|
||||
10
|
||||
|
||||
@@ -66,7 +66,7 @@ public class MemorySelector extends AbstractAgentModule.Running<PartnerRunningFl
|
||||
buildMemoryFullBlock(activatedSlices),
|
||||
buildMemoryCompactBlock(activatedSlices),
|
||||
buildMemoryAbstractBlock(activatedSlices),
|
||||
Set.of(ContextBlock.VisibleDomain.MEMORY),
|
||||
Set.of(ContextBlock.FocusedDomain.MEMORY),
|
||||
18,
|
||||
8,
|
||||
16
|
||||
|
||||
@@ -50,8 +50,7 @@ public class SliceSelectEvaluator extends AbstractAgentModule.Sub<EvaluatorInput
|
||||
CountDownLatch latch = new CountDownLatch(preparedSlices.size());
|
||||
|
||||
Message contextMessage = cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.MEMORY
|
||||
)).encodeToMessage();
|
||||
|
||||
for (ActivatedMemorySlice slice : preparedSlices) {
|
||||
|
||||
@@ -73,7 +73,7 @@ public class MemorySelectExtractor extends AbstractAgentModule.Sub<ExtractorInpu
|
||||
|
||||
private Message resolveContextMessage() {
|
||||
return cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.COGNITION, ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.COMMUNICATION, ContextBlock.FocusedDomain.MEMORY
|
||||
)).encodeToMessage();
|
||||
}
|
||||
|
||||
|
||||
@@ -45,8 +45,8 @@ public class MemoryUpdater extends AbstractAgentModule.Standalone implements Aft
|
||||
Result<MemoryTopicResult> extractResult = formattedChat(
|
||||
List.of(
|
||||
cognitionCapability.contextWorkspace().resolve(List.of(
|
||||
ContextBlock.VisibleDomain.COGNITION,
|
||||
ContextBlock.VisibleDomain.MEMORY
|
||||
ContextBlock.FocusedDomain.COGNITION,
|
||||
ContextBlock.FocusedDomain.MEMORY
|
||||
)).encodeToMessage(),
|
||||
resolveTopicTaskMessage(result, slicedMessages)
|
||||
),
|
||||
|
||||
@@ -38,7 +38,7 @@ public class PerceiveMonitor extends AbstractAgentModule.Running<PartnerRunningF
|
||||
appendTextElement(document, root, "current_time", ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
}
|
||||
},
|
||||
Set.of(ContextBlock.VisibleDomain.COMMUNICATION),
|
||||
Set.of(ContextBlock.FocusedDomain.PERCEIVE),
|
||||
100,
|
||||
30,
|
||||
0
|
||||
|
||||
@@ -39,7 +39,7 @@ public class ContextExceptionReporter implements ExceptionReporter {
|
||||
ExceptionReport report = exception.toReport();
|
||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||
buildExceptionReportBlock(report),
|
||||
Set.of(ContextBlock.VisibleDomain.COGNITION),
|
||||
Set.of(ContextBlock.FocusedDomain.COGNITION),
|
||||
10,
|
||||
10,
|
||||
0
|
||||
|
||||
@@ -36,19 +36,19 @@ class ContextWorkspaceTest {
|
||||
blockName = "low",
|
||||
source = "source-low",
|
||||
content = "low",
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.COGNITION)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.COGNITION)
|
||||
)
|
||||
val midWeight = contextBlock(
|
||||
blockName = "mid",
|
||||
source = "source-mid",
|
||||
content = "mid",
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
val highWeight = contextBlock(
|
||||
blockName = "high",
|
||||
source = "source-high",
|
||||
content = "high",
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.ACTION, ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.ACTION, ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
|
||||
manager.register(highWeight)
|
||||
@@ -57,9 +57,9 @@ class ContextWorkspaceTest {
|
||||
|
||||
val resolved = manager.resolve(
|
||||
listOf(
|
||||
ContextBlock.VisibleDomain.ACTION,
|
||||
ContextBlock.VisibleDomain.MEMORY,
|
||||
ContextBlock.VisibleDomain.COGNITION
|
||||
ContextBlock.FocusedDomain.ACTION,
|
||||
ContextBlock.FocusedDomain.MEMORY,
|
||||
ContextBlock.FocusedDomain.COGNITION
|
||||
)
|
||||
)
|
||||
|
||||
@@ -77,27 +77,27 @@ class ContextWorkspaceTest {
|
||||
source = "main",
|
||||
content = "older",
|
||||
replaceFadeFactor = 20.0,
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
val newer = contextBlock(
|
||||
blockName = "memory",
|
||||
source = "main",
|
||||
content = "newer",
|
||||
replaceFadeFactor = 20.0,
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
val otherSource = contextBlock(
|
||||
blockName = "memory",
|
||||
source = "secondary",
|
||||
content = "other-source",
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
|
||||
manager.register(older)
|
||||
manager.register(newer)
|
||||
manager.register(otherSource)
|
||||
|
||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
||||
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||
|
||||
assertEquals(2, resolved.blocks.size)
|
||||
assertEquals("other-source", (resolved.blocks[1] as TestBlockContent).content)
|
||||
@@ -117,7 +117,7 @@ class ContextWorkspaceTest {
|
||||
blockContent = AttributedTestBlockContent("memory", "main", "older", "historic"),
|
||||
compactBlock = AttributedTestBlockContent("memory", "main", "older-compact", "historic"),
|
||||
abstractBlock = AttributedTestBlockContent("memory", "main", "older-abstract", "historic"),
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
||||
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||
replaceFadeFactor = 20.0,
|
||||
timeFadeFactor = 0.0,
|
||||
activateFactor = 0.0
|
||||
@@ -128,14 +128,14 @@ class ContextWorkspaceTest {
|
||||
blockContent = AttributedTestBlockContent("memory", "main", "newer", "latest"),
|
||||
compactBlock = AttributedTestBlockContent("memory", "main", "newer-compact", "latest"),
|
||||
abstractBlock = AttributedTestBlockContent("memory", "main", "newer-abstract", "latest"),
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
||||
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||
replaceFadeFactor = 20.0,
|
||||
timeFadeFactor = 0.0,
|
||||
activateFactor = 0.0
|
||||
)
|
||||
)
|
||||
|
||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
||||
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||
|
||||
val aggregatedXml = resolved.blocks.single().encodeToXmlString()
|
||||
assertTrue(aggregatedXml.contains("<snapshot category=\"latest\" source=\"main\" urgency=\"normal\">"))
|
||||
@@ -152,20 +152,20 @@ class ContextWorkspaceTest {
|
||||
source = "main",
|
||||
content = "evicted",
|
||||
replaceFadeFactor = 100.0,
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
val replacement = contextBlock(
|
||||
blockName = "memory",
|
||||
source = "main",
|
||||
content = "replacement",
|
||||
replaceFadeFactor = 100.0,
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||
)
|
||||
|
||||
manager.register(evicted)
|
||||
manager.register(replacement)
|
||||
|
||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
||||
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||
|
||||
assertEquals(listOf("replacement"), resolved.blocks.map { (it as TestBlockContent).content })
|
||||
}
|
||||
@@ -195,7 +195,7 @@ class ContextWorkspaceTest {
|
||||
|
||||
manager.expire("memory", "main")
|
||||
|
||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
||||
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||
|
||||
assertEquals(listOf("survivor"), resolved.blocks.map { (it as TestBlockContent).content })
|
||||
}
|
||||
@@ -218,7 +218,7 @@ class ContextWorkspaceTest {
|
||||
manager.expire("memory", "main")
|
||||
manager.register(restored)
|
||||
|
||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
||||
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||
|
||||
assertEquals(listOf("restored"), resolved.blocks.map { (it as TestBlockContent).content })
|
||||
}
|
||||
@@ -233,7 +233,7 @@ class ContextWorkspaceTest {
|
||||
blockContent = original,
|
||||
compactBlock = compact,
|
||||
abstractBlock = summary,
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
||||
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||
replaceFadeFactor = 40.0,
|
||||
timeFadeFactor = 0.0,
|
||||
activateFactor = 0.0
|
||||
@@ -245,7 +245,7 @@ class ContextWorkspaceTest {
|
||||
blockContent = original,
|
||||
compactBlock = compact,
|
||||
abstractBlock = summary,
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
||||
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||
replaceFadeFactor = 80.0,
|
||||
timeFadeFactor = 0.0,
|
||||
activateFactor = 0.0
|
||||
@@ -375,17 +375,17 @@ class ContextWorkspaceTest {
|
||||
content = "full",
|
||||
compactContent = "compact",
|
||||
abstractContent = "abstract",
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.ACTION),
|
||||
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.ACTION),
|
||||
replaceFadeFactor = 80.0
|
||||
)
|
||||
block.applyReplaceFade()
|
||||
manager.register(block)
|
||||
|
||||
val primaryResolved = manager.resolve(
|
||||
listOf(ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.ACTION)
|
||||
listOf(ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.ACTION)
|
||||
)
|
||||
val secondaryResolved = manager.resolve(
|
||||
listOf(ContextBlock.VisibleDomain.PERCEIVE, ContextBlock.VisibleDomain.ACTION)
|
||||
listOf(ContextBlock.FocusedDomain.PERCEIVE, ContextBlock.FocusedDomain.ACTION)
|
||||
)
|
||||
|
||||
assertEquals(listOf("compact"), primaryResolved.blocks.map { (it as TestBlockContent).content })
|
||||
@@ -400,7 +400,7 @@ class ContextWorkspaceTest {
|
||||
blockContent = TestBlockContent("memory", "main", "full-critical", BlockContent.Urgency.CRITICAL),
|
||||
compactBlock = TestBlockContent("memory", "main", "compact-low", BlockContent.Urgency.LOW),
|
||||
abstractBlock = TestBlockContent("memory", "main", "abstract-low", BlockContent.Urgency.LOW),
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.ACTION),
|
||||
focusedOn = setOf(ContextBlock.FocusedDomain.ACTION),
|
||||
replaceFadeFactor = 20.0,
|
||||
timeFadeFactor = 0.0,
|
||||
activateFactor = 0.0
|
||||
@@ -411,7 +411,7 @@ class ContextWorkspaceTest {
|
||||
blockContent = TestBlockContent("memory", "main", "full-normal", BlockContent.Urgency.NORMAL),
|
||||
compactBlock = TestBlockContent("memory", "main", "compact-normal", BlockContent.Urgency.NORMAL),
|
||||
abstractBlock = TestBlockContent("memory", "main", "abstract-normal", BlockContent.Urgency.NORMAL),
|
||||
visibleTo = setOf(ContextBlock.VisibleDomain.ACTION),
|
||||
focusedOn = setOf(ContextBlock.FocusedDomain.ACTION),
|
||||
replaceFadeFactor = 80.0,
|
||||
timeFadeFactor = 0.0,
|
||||
activateFactor = 0.0
|
||||
@@ -419,7 +419,7 @@ class ContextWorkspaceTest {
|
||||
)
|
||||
|
||||
val resolved = manager.resolve(
|
||||
listOf(ContextBlock.VisibleDomain.PERCEIVE, ContextBlock.VisibleDomain.ACTION)
|
||||
listOf(ContextBlock.FocusedDomain.PERCEIVE, ContextBlock.FocusedDomain.ACTION)
|
||||
)
|
||||
|
||||
val aggregated = resolved.blocks.single()
|
||||
@@ -439,7 +439,7 @@ class ContextWorkspaceTest {
|
||||
content: String,
|
||||
compactContent: String = "${content}-compact",
|
||||
abstractContent: String = "${content}-abstract",
|
||||
visibleTo: Set<ContextBlock.VisibleDomain> = setOf(ContextBlock.VisibleDomain.MEMORY),
|
||||
visibleTo: Set<ContextBlock.FocusedDomain> = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||
replaceFadeFactor: Double = 10.0,
|
||||
timeFadeFactor: Double = 0.0,
|
||||
activateFactor: Double = 0.0
|
||||
@@ -448,7 +448,7 @@ class ContextWorkspaceTest {
|
||||
blockContent = TestBlockContent(blockName, source, content),
|
||||
compactBlock = TestBlockContent(blockName, source, compactContent),
|
||||
abstractBlock = TestBlockContent(blockName, source, abstractContent),
|
||||
visibleTo = visibleTo,
|
||||
focusedOn = visibleTo,
|
||||
replaceFadeFactor = replaceFadeFactor,
|
||||
timeFadeFactor = timeFadeFactor,
|
||||
activateFactor = activateFactor
|
||||
|
||||
Reference in New Issue
Block a user