nx_actor_role_llm_v2_real_autoreg_test.nx
buildroot/runtime/nx_actor_role_llm_v2_real_autoreg_test.nx
about
nx_actor_role_llm_v2_real_autoreg_test.nx -- multi-token REAL transformer
forward through the v2 LLM actor adapter.
Composes nx_gguf_fixture_tiny (fixture builder, sibling primitive)
with nx_actor_role_llm_v2 (actor adapter) to drive THREE
autoregressive iterations through the FULL Llama-class runner.
Each iteration:
1. INIT -> RUN -> EMIT through the actor
2. RUN actually invokes nx_llm_generate_one_v2 (embedding +
RMSNorm + multi-head attention + SwiGLU FFN + output projection
+ temperature + top_k + sample)
3. EMIT pushes LLM_TOKEN through the bus to the listener
4. reset_for_next_token rolls the adapter back to INIT, swaps the
prompt to the previous generated token's byte
Verifies:
* 3 LLM_TOKEN messages reach the listener
* All 3 tokens are in [0, vocab) and match the runner's return
* Each iteration succeeds with NX_LR2_OK (no boundary-guard slip)
* Scheduler state cycles READY -> RUNNING -> COMPLETED -> READY
-> ... cleanly across iterations
This closes the gap documented in nx_actor_role_llm_v2_autoreg_test.nx
(where the GGUF fixture was inline and hit the nxc2 preprocessor
edge). The fixture extraction puts the heavy primitive imports in
their own file, so this smoke's preprocessor scope stays clean.
dependencies 6 imports · 0 importers
imports: nx_syscalls.nxnx_tier.nxnx_gguf_fixture_tiny.nxnx_actor.nxnx_message.nxnx_actor_role_llm_v2.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 35 | func main() -> i64 |