hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

commit 36e067b51094b7b375748cbe201db52cbae96173
parent ac1cf12676d27b44565b574244c60d119c098026
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 13:50:05 +0000

core: apply explicit farm clarification context

Diffstat:
Asrc/hyf_application/farm_clarification.mojo | 39+++++++++++++++++++++++++++++++++++++++
Mtests/test_application.mojo | 27+++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/src/hyf_application/farm_clarification.mojo b/src/hyf_application/farm_clarification.mojo @@ -0,0 +1,39 @@ +from hyf_core.domain.clarification import ( + ClarificationEvidence, + apply_clarification, + clarification_evidence, + clarification_is_stale, +) +from hyf_core.domain.field import DecodedField, known_field + + +def apply_farm_clarification( + original_value: String, + target_field: String, + source_id: String, + revision: String, + clarification_text: String, + resolved_value: String, +) raises -> DecodedField: + var original = known_field(original_value, "span") + var evidence = clarification_evidence( + target_field, source_id, revision, clarification_text + ) + return apply_clarification(original, evidence, resolved_value) + + +def farm_clarification_is_stale( + target_field: String, + source_id: String, + revision: String, + text: String, + current_revision: String, +) raises -> Bool: + return clarification_is_stale( + clarification_evidence(target_field, source_id, revision, text), + current_revision, + ) + + +def clarification_overwrites_original() -> Bool: + return False diff --git a/tests/test_application.mojo b/tests/test_application.mojo @@ -161,3 +161,30 @@ def test_farm_review_output_is_proposal_only() raises: assert_equal(output.hyf_business_writes, 0) assert_true(not missing_optional_price_blocks_draft()) assert_true(ambiguous_withdrawal_blocks_apply()) + + +from hyf_application.farm_clarification import ( + apply_farm_clarification, + clarification_overwrites_original, + farm_clarification_is_stale, +) + + +def test_farm_clarification_is_revisioned_new_evidence() raises: + var refined = apply_farm_clarification( + "80", "quantity.unreserved", "farm-source-1", "r2", + "60 lb unreserved", "60", + ) + assert_equal(refined.value.value(), "60") + assert_equal(refined.method, "clarification") + assert_true(not clarification_overwrites_original()) + assert_true( + not farm_clarification_is_stale( + "quantity.unreserved", "farm-source-1", "r2", "60 lb", "r2" + ) + ) + assert_true( + farm_clarification_is_stale( + "quantity.unreserved", "farm-source-1", "r2", "60 lb", "r3" + ) + )