hyf

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

commit 5af92a6e358724f456ab0fcd600ec33635b9d005
parent c45dd485c53954264f01f02f4fcd11d20f4fe863
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 13:50:34 +0000

core: discover buyer demand lines

Diffstat:
Asrc/hyf_application/buyer_lines.mojo | 25+++++++++++++++++++++++++
Mtests/test_application.mojo | 14++++++++++++++
2 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/src/hyf_application/buyer_lines.mojo b/src/hyf_application/buyer_lines.mojo @@ -0,0 +1,25 @@ +from std.collections import List + + +@fieldwise_init +struct DemandLineDraft(Copyable, Movable): + var line_id: String + var product_phrase: String + var quantity_state: String + + +def discover_demand_lines(product_phrases: List[String]) raises -> List[DemandLineDraft]: + var lines = List[DemandLineDraft]() + var index = 1 + for phrase in product_phrases: + if String(phrase).strip().byte_length() == 0: + continue + lines.append( + DemandLineDraft( + line_id="line-" + String(index), + product_phrase=String(phrase), + quantity_state="unknown", + ) + ) + index += 1 + return lines^ diff --git a/tests/test_application.mojo b/tests/test_application.mojo @@ -207,3 +207,17 @@ def test_farm_inference_failure_never_confirms_stock() raises: assert_true(not inference_failure_confirms_stock()) with assert_raises(): _ = farm_inference_failure("") + + +from hyf_application.buyer_lines import DemandLineDraft, discover_demand_lines + + +def test_buyer_discovers_multiple_demand_lines() raises: + var phrases = List[String]() + phrases.append("tomatoes") + phrases.append("basil") + var lines = discover_demand_lines(phrases) + assert_equal(len(lines), 2) + assert_equal(lines[0].product_phrase, "tomatoes") + assert_equal(lines[1].product_phrase, "basil") + assert_equal(lines[0].line_id, "line-1")