From e73fbb9083cdab1542dd826096e0d673989c560c Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 13:37:18 +0200 Subject: Select fresh effective descriptors --- lua/clever_f/sequence_coordinator.lua | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/clever_f/sequence_coordinator.lua b/lua/clever_f/sequence_coordinator.lua index 37657b2..bcb6689 100644 --- a/lua/clever_f/sequence_coordinator.lua +++ b/lua/clever_f/sequence_coordinator.lua @@ -204,6 +204,31 @@ function SequenceCoordinator:acquire_primary(descriptor, invocation) ) end +function SequenceCoordinator:fresh_primary_resolution( + initiating_descriptor, + acquisition_result, + invocation +) + initiating_descriptor = self:validate_primary_descriptor(initiating_descriptor) + if type(acquisition_result) ~= "table" + or acquisition_result.resolved ~= true + or not domain.TargetValue.is(acquisition_result.target) + or not domain.TargetPlan.is(acquisition_result.target_plan) + or not domain.ResolvedMotionPlan.is(acquisition_result.motion_plan) + then + fail("fresh primary resolution requires acquired motion plans", 2) + end + return { + kind = "fresh", + invocation = invocation, + acquisition_result = acquisition_result, + target = acquisition_result.target, + target_plan = acquisition_result.target_plan, + motion_plan = acquisition_result.motion_plan, + effective_descriptor = initiating_descriptor, + } +end + function SequenceCoordinator:resolve_acquisition(descriptor, invocation) local result = self:acquire_primary(descriptor, invocation) if type(result.has_outcome) ~= "function" then @@ -212,7 +237,7 @@ function SequenceCoordinator:resolve_acquisition(descriptor, invocation) if result:has_outcome() then return result.outcome end - return result + return self:fresh_primary_resolution(descriptor, result, invocation) end function SequenceCoordinator:primary(value) -- cgit v1.2.3