code wiki / (root) / nx_ghfetch.nx

nx_ghfetch.nx source

↩ module page · 97 lines · 3916 B

1// nx_ghfetch.nx -- sovereign GitHub API fetch WITH auth. LangIntel oracle throughput lever: unlocks the 2// authed 5000/hr ceiling (vs 60/hr anon) for full-scale closed-bug + fix-diff answer-key capture. Reads a 3// read-only-public PAT from knowledge/status/gh_oracle.dat, builds "Authorization: token <PAT>", fetches 4// argv[1] (default /rate_limit) over OUR TLS via nx_https_fetch_hdr. NO curl, NO graphql, NO libc. Structured 5// refusal (reason+fix) on every failure per feedback-refusals-carry-reason-and-fix. license_tier: ORIGINAL 6import "nx_syscalls.nx" 7import "nx_https_fetch.nx" 8 9const GHF_TOKFILE: *u8 = "knowledge/status/gh_oracle.dat" as *u8 10const GHF_OUTCAP: i64 = 4194304 11 12func ghf_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 13func ghf_put(s: *u8) -> i64 { sys_write(1, s, ghf_slen(s)); return 0 } 14func ghf_putn(v: i64) -> i64 { 15 let b: *u8 = sys_mmap(24) 16 var m: i64 = v 17 if m == 0 { b[0] = 48 as u8; sys_write(1, b, 1); return 0 } 18 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 19 var nd: i64 = 0 20 var t: i64 = m 21 while t > 0 { nd = nd + 1; t = t / 10 } 22 var i: i64 = nd - 1 23 while i >= 0 { b[i] = (48 + (m % 10)) as u8; m = m / 10; i = i - 1 } 24 sys_write(1, b, nd) 25 return 0 26} 27 28func main(argc: i64, argv: *i64) -> i64 { 29 var url: *u8 = "https://api.github.com/rate_limit" as *u8 30 if argc >= 2 { url = argv[1] as *u8 } 31 let lenbox: *i64 = sys_mmap(8) as *i64 32 lenbox[0] = 0 33 let tok: *u8 = sys_read_file(GHF_TOKFILE, lenbox) 34 if (tok as i64) == 0 { 35 ghf_put("GHFETCH REFUSED verdict=RED reason=token-file-unreadable(knowledge/status/gh_oracle.dat) fix=nx_fs_write write knowledge/status/gh_oracle.dat <read-only-public-PAT>\n" as *u8) 36 return 2 37 } 38 var tl: i64 = lenbox[0] 39 var stripping: i64 = 1 40 while stripping == 1 { 41 if tl <= 0 { stripping = 0 } 42 else { 43 let c: i64 = tok[tl-1] as i64 44 if c == 10 { tl = tl - 1 } 45 else { if c == 13 { tl = tl - 1 } 46 else { if c == 32 { tl = tl - 1 } 47 else { stripping = 0 } } } 48 } 49 } 50 if tl <= 0 { 51 ghf_put("GHFETCH REFUSED verdict=RED reason=token-file-empty fix=write the read-only-public PAT into knowledge/status/gh_oracle.dat\n" as *u8) 52 return 2 53 } 54 let xhdr: *u8 = sys_mmap(512) 55 let pfx: *u8 = "Authorization: token " as *u8 56 var o: i64 = 0 57 var i: i64 = 0 58 while pfx[i] != (0 as u8) { xhdr[o] = pfx[i]; o = o + 1; i = i + 1 } 59 var j: i64 = 0 60 while j < tl { xhdr[o] = tok[j]; o = o + 1; j = j + 1 } 61 xhdr[o] = 13 as u8; o = o + 1 62 xhdr[o] = 10 as u8; o = o + 1 63 let out: *u8 = sys_mmap(GHF_OUTCAP) 64 let n: i64 = nx_https_fetch_hdr(url, xhdr, o, out, GHF_OUTCAP) 65 if n < 0 { 66 ghf_put("GHFETCH REFUSED verdict=RED reason=fetch-failed(code=" as *u8) 67 ghf_putn(0 - n) 68 ghf_put(") fix=verify-NAS-outbound-443+token-validity(2=bad-url 3=trust/connect 4=tls-handshake)\n" as *u8) 69 return 3 70 } 71 if argc >= 3 { 72 let outpath: *u8 = argv[2] as *u8 73 let wfd: i64 = sys_openat_wr(outpath, 420) 74 if wfd < 0 { 75 ghf_put("GHFETCH REFUSED verdict=RED reason=outfile-unwritable(" as *u8) 76 ghf_put(outpath) 77 ghf_put(") fix=ensure the parent dir (e.g. knowledge/fetched) exists and is writable\n" as *u8) 78 return 4 79 } 80 var wo: i64 = 0 81 var wgo: i64 = 1 82 while wgo == 1 { 83 let w: i64 = sys_write(wfd, (out as i64 + wo) as *u8, n - wo) 84 if w <= 0 { wgo = 0 } else { wo = wo + w } 85 if wo >= n { wgo = 0 } 86 } 87 sys_close(wfd) 88 ghf_put("GHFETCH OK wrote=" as *u8) 89 ghf_putn(wo) 90 ghf_put(" bytes path=" as *u8) 91 ghf_put(outpath) 92 ghf_put("\n" as *u8) 93 return 0 94 } 95 sys_write(1, out, n) 96 return 0 97}