code wiki / (root) / nx_image_grade_cli.nx

nx_image_grade_cli.nx

buildroot/runtime/nx_image_grade_cli.nx

8176 B241 linesdepth 9pulls 23 transitivereach 0 importersview sourcekind tooltopic image
docsdependenciesstructsconstsfunctions

about

nx_image_grade_cli.nx -- substrate's image-grading CLI binary. CAPABILITY_COMPLETENESS: PARTIAL MISSING_CAPABILITIES: - argv-driven file-path input: substrate's `main()` has no argv access in the current bootstrap convention; v1 reads image bytes from STDIN. Calling pattern: cat image.jpg | nishi-image-grade (or) nishi-image-grade < image.jpg - structured output: v1 emits one human-readable line per axis; v2 (queued) emits canonical JSONL via nx_jsonl_writer so callers can compose against the ledger. - exit-code mapping per failure tier: v1 returns 0 on decode success, 1 on decoder error. COVERED: - stdin -> bytes (up to 16 MiB cap) - format auto-detect via nx_image_grade_v2 - PNG / JPEG decode + skin mask + segmenter + landmark labeler + 8 axes invoked on real pixel data - per-axis line emitted to stdout: "axis_id status verdict score phrase" - stderr message on decode error Usage: nxc2 --target x86_64 nx_image_grade_cli.nx > cli.s nx_assembler cli.s -> cli.elf cat image.jpg | ./cli.elf genealogy_id: substrate_image_grade_cli_2026_05_16 lineage_id: nx_image_grade_cli_v1

dependencies 4 imports · 0 importers

nx_syscalls.nx nx_runtime.nx nx_tier.nx nx_image_grade_v2.nx nx_image_grade_cli.nx

imports: nx_syscalls.nxnx_runtime.nxnx_tier.nxnx_image_grade_v2.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap _cli_slurp_stdin sys_read sys_write nx_image_grade_v2 sys_mmap ↻ _igv2_detect_format nx_png_decode sys_mmap ↻ _png_check_signature _png_read_u32_be nx_crc32 nx_crc32_update nx_crc32_init nx_crc32_table_at _png_n_channels _png_bytes_per_pixel _png_n_channels ↻ _png_a7_expected _png_a7_col0 _png_a7_coli _png_a7_row0 _png_a7_rowi nx_zlib_inflate sys_mmap ↻ nx_deflate_inflate sys_mmap ↻ nx_bitstream_alloc sys_mmap ↻ _deflate_inflate_block nx_bitstream_read_lsb nx_bitstream_byte_align nx_bitstream_read_byte_ali _deflate_build_static_litl _deflate_build_static_dist _deflate_decode_huffman_bl sys_mmap ↻ _deflate_build_dynamic_tre _deflate_bytes_consumed

structs

none

consts

38const NX_MAGIC_65536: i64 = 65536
40const NX_CLI_MAX_IMAGE_BYTES: nx_int = 16777216 // 16 MiB
41const NX_CLI_READ_CHUNK: nx_int = 65536 // 64 KiB read chunks
42const NX_CLI_LINE_BUF: nx_int = 256

functions

48func _cli_slurp_stdin(buf: *u8, max: nx_int) -> nx_int
called by 1: main calls 1: sys_read
75func _cli_write_int(buf: *u8, off: nx_int, v: nx_int) -> nx_int
109func _cli_write_cstr(buf: *u8, off: nx_int, src: *u8, cap: nx_int) -> nx_int
127func _cli_write_lit(buf: *u8, off: nx_int, lit: *u8) -> nx_int
133func _cli_status_label(status: nx_int) -> *u8
called by 1: _cli_emit_axis
151func _cli_emit_axis(ax: *NxIgv2AxisVerdict) -> nx_int
176func _cli_emit_header(r: *NxIgv2Report) -> nx_int
201func main() -> nx_int