nx_install_pipeline.nx
buildroot/runtime/nx_install_pipeline.nx
about
nx_install_pipeline.nx -- end-to-end SA arc orchestrator.
Composes the full self-assembly chain into one call:
probe + calibration + policy + workload-DAG
-> nx_select_joint_chain (joint variant selection)
-> total_cost recompute (sum of selected variants' scores)
-> nx_install_plan_capture (snapshot probe + calib + policy +
selection)
-> nx_install_hash_compute (SHA-256 of canonical bytes)
-> returns (filled NxInstallPlan, 32-byte install_hash, verdict)
V1 entry point: `nx_install_pipeline_run_with_inputs` takes
pre-built probe + calibration so the smoke runs fast +
deterministic. A future `nx_install_pipeline_run` would call
nx_probe_run + nx_calibrate_run for real measurements; deferred
to keep this primitive a pure composer rather than a wiring layer.
Total cost of selection is re-computed here (the joint selector
returns indices only; cost = Σ_i score(picked_variant_at_node_i,
policy)). This keeps SA-5's commit untouched (no widening of the
joint-selector return signature).
Caller-allocated outputs: out_plan (NxInstallPlan), out_hash
(32-byte buffer). Pipeline does NOT allocate result memory on
behalf of the caller -- explicit ownership.
genealogy_id: cardinal_2026-05-19_self_assembly + composition_pattern
lineage_id: substrate_install_pipeline_v1
nx_capability_manifest:
variant_class: install_pipeline
variant_id: install_pipeline_v1_compose_chain_hash
requires_isa: [rv64imac, x86_64]
requires_syscalls: [mmap, clock_gettime_mono]
requires_ram_min_b: 16384 // plan + sha256 ctx + scratch
tier_floor: NX_TIER_MOBILE
tier_ceiling: NX_TIER_HPC
cost_model:
flops_per_n: 1.0 // dominated by select + hash
bytes_per_n: 256.0 // plan + canonical bytes
dependencies 7 imports · 6 importers
imports: nx_syscalls.nxnx_probe.nxnx_calibrate.nxnx_select.nxnx_select_joint.nxnx_install_plan.nxnx_install_hash.nx
imported by: nx_install_attest_signed_test.nxnx_install_attest_test.nxnx_install_pipeline_test.nxnx_spore_up_lifecycle_test.nxnx_spore_up_network_test.nxnx_spore_up_test.nx
structs
| none |
consts
| 61 | const NX_MAGIC_1048576: i64 = 1048576 |
| 64 | const NX_PIPELINE_OK: i64 = 0 |
| 65 | const NX_PIPELINE_BAD_INPUT: i64 = 1 |
| 66 | const NX_PIPELINE_SELECT_FAILED: i64 = 2 |
| 67 | const NX_PIPELINE_CAPTURE_FAILED: i64 = 3 |
| 68 | const NX_PIPELINE_HASH_FAILED: i64 = 4 |
| 69 | const NX_PIPELINE_N: i64 = 5 |
functions
| 71 | func nx_pipeline_verdict_is_valid(v: i64) -> i64 called by 1: main |
| 80 | func _pipeline_total_cost( |
| 106 | func _map_select_verdict_to_plan(select_rc: i64) -> i64 called by 1: nx_install_pipeline_run_with_inputs |
| 128 | func nx_install_pipeline_run_with_inputs( |