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}