code wiki / _hdl_build / nx_link.nx

nx_link.nx source

↩ module page · 115 lines · 8108 B

1// nx_link.nx -- LIB: the GRAND UNIFIER (R-LINK). One canonical item resolves to ALL its facets across the 2// separate sovereign stores and renders as ONE view: its seed-to-feed LINEAGE (bio-), its clean/impact score 3// (food-), its cheapest local PRICE (price-), and whether a neighbour has it to SWAP (swap-). The integration 4// surface of the whole session -- a single strawberry shows its passport + clean score + best price + swap 5// availability, together. Composes nx_lineage/nx_impact/nx_price/nx_swap (rule 22). Honest: every facet is 6// present-or-absent ("-" sentinel / empty lookup -> a graceful "not recorded", never a fabricated value). 7// Sovereign seg-store (knowledge/store/link-*, NO TSV). license_tier: ORIGINAL 8import "nx_lineage.nx" 9import "nx_impact.nx" 10import "nx_price.nx" 11import "nx_swap.nx" 12import "nx_seg_store.nx" 13import "nx_syscalls.nx" 14 15func lk_put(prefix: *u8, key: *u8, val: *u8) -> i64 { 16 let vl: i64 = as_len(val) 17 if fd_streq_store(prefix, key, val, vl) == 1 { return 0 } 18 let w: *i64 = ss_begin() 19 ss_add(w, 1, key, val, vl) 20 let seg: i64 = fd_seg_next(prefix) 21 ss_commit(prefix, w, seg) 22 return 1 23} 24 25// link:item:<canonical> -> display_name <t> bio_id <t> impact_item <t> price_item <t> swap_species ("-"=absent) 26func lk_key(canonical: *u8, out: *u8) -> i64 { var o: i64 = 0; o = as_append(out, o, "link:item:" as *u8); o = as_append(out, o, canonical); out[o] = 0 as u8; return o } 27func lk_register(prefix: *u8, canonical: *u8, display: *u8, bio_id: *u8, impact_item: *u8, price_item: *u8, swap_species: *u8) -> i64 { 28 let key: *u8 = sys_mmap(96); lk_key(canonical, key) 29 let val: *u8 = sys_mmap(256); var v: i64 = 0 30 v = as_append(val, v, display); val[v] = 9 as u8; v = v + 1 31 v = as_append(val, v, bio_id); val[v] = 9 as u8; v = v + 1 32 v = as_append(val, v, impact_item); val[v] = 9 as u8; v = v + 1 33 v = as_append(val, v, price_item); val[v] = 9 as u8; v = v + 1 34 v = as_append(val, v, swap_species); val[v] = 0 as u8 35 return lk_put(prefix, key, val) 36} 37func lk_field(prefix: *u8, canonical: *u8, f: i64, out: *u8) -> i64 { 38 let key: *u8 = sys_mmap(96); lk_key(canonical, key) 39 let pq: *i64 = sys_mmap(16) as *i64 40 let lq: *i64 = sys_mmap(16) as *i64 41 if ss_get(prefix, key, pq, lq) != 1 { out[0] = 0 as u8; return 0 } 42 return fd_field(pq[0] as *u8, lq[0], f, out) 43} 44func lk_present(facet: *u8) -> i64 { 45 if facet[0] == (0 as u8) { return 0 } 46 if fd_streq(facet, "-" as *u8) == 1 { return 0 } 47 return 1 48} 49 50// render the unified item view across all four stores into out (NUL-terminated); returns length. 51func lk_render_item(link_pfx: *u8, bio_pfx: *u8, food_pfx: *u8, price_pfx: *u8, swap_pfx: *u8, canonical: *u8, area: *u8, out: *u8) -> i64 { 52 let display: *u8 = sys_mmap(96); lk_field(link_pfx, canonical, 0, display) 53 let bio_id: *u8 = sys_mmap(64); lk_field(link_pfx, canonical, 1, bio_id) 54 let impact_item: *u8 = sys_mmap(64); lk_field(link_pfx, canonical, 2, impact_item) 55 let price_item: *u8 = sys_mmap(64); lk_field(link_pfx, canonical, 3, price_item) 56 let swap_species: *u8 = sys_mmap(64); lk_field(link_pfx, canonical, 4, swap_species) 57 58 var o: i64 = 0 59 o = as_append(out, o, "<!doctype html><html lang='en'><head><meta charset='utf-8'><meta name='viewport' content='width=device-width,initial-scale=1'><title>" as *u8) 60 o = as_append_escaped(out, o, display, as_len(display)) 61 o = as_append(out, o, " &mdash; the whole story</title><style>body{margin:0;font-family:system-ui,sans-serif;color:#1c2316;background:#eef4ea;line-height:1.5}header{background:#33502f;color:#fff;padding:22px}header h1{margin:0;font-size:1.5rem}header p{margin:4px 0 0;color:#d7eccd}main{max-width:680px;margin:0 auto;padding:16px}section{background:#fff;border-radius:14px;padding:16px 18px;margin-top:14px;box-shadow:0 1px 0 #dde8d3}h2{font-size:1.05rem;margin:0 0 8px;color:#33502f}.tag{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;background:#e6efe1;color:#3a5a33;padding:2px 8px;border-radius:6px;margin-bottom:6px}.big{font-size:1.2rem;font-weight:800}.good{color:#1f7a44}.muted{color:#5b6a52}.na{color:#9aa692;font-style:italic}</style></head><body><header><h1>" as *u8) 62 o = as_append_escaped(out, o, display, as_len(display)) 63 o = as_append(out, o, "</h1><p>From seed to feed, in one place &mdash; lineage, cleanliness, price, and your neighbours.</p></header><main>" as *u8) 64 65 // 1) LINEAGE (bio-) 66 o = as_append(out, o, "<section><span class='tag'>Seed-to-feed lineage</span>" as *u8) 67 if lk_present(bio_id) == 1 { 68 let variety: *u8 = sys_mmap(96); ln_field_str(bio_pfx, bio_id, 2, variety) 69 let anc: *u8 = sys_mmap(512); ln_ancestry(bio_pfx, bio_id, anc) 70 o = as_append(out, o, "<p>Variety: <b>" as *u8); o = as_append_escaped(out, o, variety, as_len(variety)) 71 o = as_append(out, o, "</b><br>Lineage: " as *u8); o = as_append_escaped(out, o, anc, as_len(anc)) 72 o = as_append(out, o, "<br>Genetic quality: <b>" as *u8); o = fd_apnum(out, o, ln_quality_score(bio_pfx, bio_id)); o = as_append(out, o, "/100</b> " as *u8) 73 if ln_is_superior(bio_pfx, bio_id) == 1 { o = as_append(out, o, "<span class='good'>(superior strain)</span>" as *u8) } 74 o = as_append(out, o, "</p>" as *u8) 75 } else { o = as_append(out, o, "<p class='na'>No lineage recorded yet.</p>" as *u8) } 76 o = as_append(out, o, "</section>" as *u8) 77 78 // 2) CLEAN / IMPACT (food-) 79 o = as_append(out, o, "<section><span class='tag'>Clean &amp; impact</span>" as *u8) 80 if lk_present(impact_item) == 1 { 81 o = as_append(out, o, "<p class='big good'>" as *u8); o = fd_apnum(out, o, im_clean(food_pfx, impact_item, "nishi" as *u8)); o = as_append(out, o, "/100 clean</p><p>You save " as *u8) 82 o = im_money(out, o, im_savings(food_pfx, impact_item, "nishi" as *u8, "conv" as *u8)) 83 o = as_append(out, o, " vs conventional &mdash; cleaner and cheaper.</p>" as *u8) 84 } else { o = as_append(out, o, "<p class='na'>No impact data yet.</p>" as *u8) } 85 o = as_append(out, o, "</section>" as *u8) 86 87 // 3) BEST LOCAL PRICE (price-) 88 o = as_append(out, o, "<section><span class='tag'>Best price near you</span>" as *u8) 89 if lk_present(price_item) == 1 { 90 let sid: *u8 = sys_mmap(48) 91 let cheap: i64 = pr_cheapest(price_pfx, area, price_item, sid) 92 if cheap >= 0 { 93 let snm: *u8 = sys_mmap(96); pr_store_field(price_pfx, sid, 0, snm) 94 o = as_append(out, o, "<p>Cheapest: <b>" as *u8); o = im_money(out, o, cheap); o = as_append(out, o, "</b> at " as *u8) 95 o = as_append_escaped(out, o, snm, as_len(snm)) 96 o = as_append(out, o, " (area median " as *u8); o = im_money(out, o, pr_median(price_pfx, area, price_item)); o = as_append(out, o, ")</p>" as *u8) 97 } else { o = as_append(out, o, "<p class='na'>No price observations in your area yet.</p>" as *u8) } 98 } else { o = as_append(out, o, "<p class='na'>No price data yet.</p>" as *u8) } 99 o = as_append(out, o, "</section>" as *u8) 100 101 // 4) SWAP AVAILABILITY (swap-) 102 o = as_append(out, o, "<section><span class='tag'>Or swap for it &mdash; free</span>" as *u8) 103 if lk_present(swap_species) == 1 { 104 let oids: *i64 = sys_mmap(8 * 128) as *i64 105 let n: i64 = sw_find_offers(swap_pfx, swap_species, area, oids) 106 if n > 0 { 107 o = as_append(out, o, "<p class='big good'>" as *u8); o = fd_apnum(out, o, n); o = as_append(out, o, " neighbour(s) near you are giving it away</p><p class='muted'>Ask + give instead of buying.</p>" as *u8) 108 } else { o = as_append(out, o, "<p class='na'>No local swap offers right now &mdash; post a request.</p>" as *u8) } 109 } else { o = as_append(out, o, "<p class='na'>Not in the swap network yet.</p>" as *u8) } 110 o = as_append(out, o, "</section>" as *u8) 111 112 o = as_append(out, o, "<p class='muted'>One sovereign view, composed from your own stores &mdash; no third-party, no tracking.</p></main></body></html>" as *u8) 113 out[o] = 0 as u8 114 return o 115}