hyf

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

jev_state.mojo (1272B)


      1 from std.collections import List
      2 
      3 
      4 comptime MAX_STATE_BYTES = 4096
      5 
      6 
      7 def _is_blank(value: String) -> Bool:
      8     return String(value).strip().byte_length() == 0
      9 
     10 
     11 def _truncate(value: String, limit: Int) -> String:
     12     if value.byte_length() <= limit:
     13         return String(value)
     14     return String(value[byte=0:limit])
     15 
     16 
     17 def minimal_state(
     18     source_text: String, focus_product: String, buyer_request: String
     19 ) raises -> String:
     20     if source_text.byte_length() > MAX_STATE_BYTES:
     21         raise Error("provider state exceeds maximum size")
     22     var parts = List[String]()
     23     if not _is_blank(source_text):
     24         parts.append(String("farm_update: ") + _truncate(source_text, 2048))
     25     if not _is_blank(focus_product):
     26         parts.append(String("focus_product: ") + _truncate(focus_product, 256))
     27     if not _is_blank(buyer_request):
     28         parts.append(String("buyer_request: ") + _truncate(buyer_request, 512))
     29 
     30     var joined = String()
     31     var first = True
     32     for part in parts:
     33         if not first:
     34             joined += "\n"
     35         joined += part
     36         first = False
     37     if joined.byte_length() > MAX_STATE_BYTES:
     38         raise Error("provider state exceeds maximum size")
     39     return joined^
     40 
     41 
     42 def state_includes_full_repository() -> Bool:
     43     return False