code wiki / _hdl_build / nx_sniff_nsolve_gate.nx
nx_sniff_nsolve_gate.nx source
↩ module page · 41 lines · 2826 B
1import "nx_gate_gn.nx"
2import "nx_gate_base.nx"
3// nx_sniff_nsolve_gate.nx -- proves the RELOCATION (JS = last-mile-only, housed in the browser sniffer): the
4// sniffer now exposes ONE call, vs_solve_n, that composes the NATIVE base.js name-find with the LAST-MILE run of
5// the site's own fn on the browser engine, turning a throttled n into n'. The JS engine is reached only through
6// the sniffer; the native extraction core stays JS-free (proven separately by the 241KB nuxt gate). ORIGINAL expect_exit: 0
7import "nx_syscalls.nx"
8import "nx_media_signal.nx"
9import "nx_video_sniff.nx"
10
11func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("
12" as *u8); return ok }
13func gsl(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
14func streq(a: *u8, al: i64, b: *u8) -> i64 { if al != gsl(b) { return 0 } var i: i64=0; while i<al { if (a[i]&0xff) != (b[i]&0xff) { return 0 } i=i+1 } return 1 }
15
16func main() -> i64 {
17 gw("sniff-nsolve SOVEREIGN gate (browser sniffer owns n-solving: native name-find + last-mile run)\n" as *u8)
18 var pass: i64 = 0
19 var ttl: i64 = 0
20 let out: *u8 = sys_mmap(4096)
21
22 // realistic base.js shape (array-indexed n-fn ref) with the fn defined
23 let base: *u8 = "d;var pp=ns.get(\"n\"))&&(b=Wma[0](b),g=1;var Wma=[Qzx,Yaa];Qzx=function(a){var b=a.split(\"\");b.reverse();b.splice(0,2);return b.join(\"\")};more=9" as *u8
24 let bl: i64 = gsl(base)
25
26 // S1: ONE sniffer call de-throttles n end-to-end (name-find -> run the site's fn) : "abcdef" -> "dcba"
27 let r1: i64 = vs_solve_n(base, bl, "abcdef" as *u8, 6, out, 4096)
28 ttl=ttl+1; pass=pass+grow("S1 vs_solve_n('abcdef') = 'dcba' (sniffer composes name-find + last-mile run)\x00" as *u8, ((r1 == 4)) as i64 * (streq(out, r1, "dcba" as *u8)))
29
30 // S2: a different n -> different correct n' (real per-value compute) : "12345" -> reverse 54321, splice(0,2) 321
31 let r2: i64 = vs_solve_n(base, bl, "12345" as *u8, 5, out, 4096)
32 ttl=ttl+1; pass=pass+grow("S2 vs_solve_n('12345') = '321' (per-value real transform)\x00" as *u8, ((r2 == 3)) as i64 * (streq(out, r2, "321" as *u8)))
33
34 // S3: base.js with no n-anchor -> 0 (graceful; a self-heal LEARN signal, no crash)
35 let r3: i64 = vs_solve_n("var x=1;function f(){return 2}" as *u8, gsl("var x=1;function f(){return 2}" as *u8), "abc" as *u8, 3, out, 4096)
36 ttl=ttl+1; pass=pass+grow("S3 no n-fn in player -> 0 (graceful learn signal)\x00" as *u8, (r3 == 0) as i64)
37
38 gw("pass=" as *u8); gn(pass); gw("/" as *u8); gn(ttl); gw("\n" as *u8)
39 if pass == ttl { gw("verdict=GREEN (n-solving relocated into the browser sniffer; JS confined to the browser layer, native core untouched)\n" as *u8); sys_exit(0); return 0 }
40 gw("verdict=RED\n" as *u8); sys_exit(1); return 1
41}