nx_sitepublish_tool_register.nx source
↩ module page · 14 lines · 1890 B
1// Existing publisher discovery registrar. Record changes are additive in the registry.
2import "nx_tool_registry.nx"
3func pr_puts(s:*u8)->i64{var n:i64=0;while s[n]!=(0 as u8){n=n+1};sys_write(1,s,n);return 0}
4func main(argc:i64,argv:*i64)->i64{
5 if argc>2{return 2};if argc==2{if sys_chdir(argv[1] as *u8)!=0{return 4}}
6 let w:i64=tool_register("nx_site_publish",
7 "Native artifact publisher. publish, publish-guarded, stage, stage-sized, publish-guarded-edge and release-manifest retain existing contracts. prepare-release <manifest.json> <manifest-sha256> is READ-ONLY: verifies manifest and selected artifact identities, observes actual immutable dependency registration and emits site-release-preparation/v1 with ready, registration-missing, registration-conflict or registry-unavailable plus next action. Does not grant registration authority or publish. Build qualification and served identity remain unknown; locked publish rechecks live CAS and registry. One selected literal dependency edge is not complete dependency coverage.",
8 "MCP tools/call name=nx_site_publish arguments={argv:[\"prepare-release\",\"<manifest.json>\",\"<sha256>\"]}; existing capability grant required. release-manifest uses the same two arguments. Other verb contracts remain unchanged. Preparation rc0 ready; 2 usage/parse; 4 IO; 8 identity/registration conflict or missing authorization. Paths resolve from serving CWD.",
9 "2026-09-13 prepare-release: native fixture38/38, actual CLI4/4, canonical attached MCP call rc0; review release-preparation-review-t258.json. Read-only preparation; no new served-page qualification.")
10 let p:*i64=sys_mmap(8) as *i64;let l:*i64=sys_mmap(8) as *i64
11 let g:i64=tool_get("nx_site_publish",p,l)
12 if w==0&&g==1&&l[0]>0{sys_write(1,p[0] as *u8,l[0]);pr_puts("\nverdict=GREEN registry record read back\n");return 0}
13 pr_puts("REGISTER FAILED\nverdict=RED\n");return 1
14}