thinking about adding a structured output mode, freeing the cursor is a start tho.
kznllm.lua is responsible for all the logic that implements the various modes
specs probably should've never imported utils before, the only thing that jobs still need to be responsible for is writing - but that shouldn't matter much to the spec.
buffer mode uses write_at_end, replace mode uses write_at_cursor (dep injected into the make_job_fn)
buffer mode has a free cursor now because there's now a write_at_end writer function that can keep streaming the tokens to the bottom of the buffer while you can move around and do whatever (i.e. before can't navigate or you would completely mess with the outputs)
might figure out how to do this for the replace mode too - a bit more weird because i have to maintain the state of lines added by the LLM
thinking about adding a structured output mode, freeing the cursor is a start tho.
kznllm.lua
is responsible for all the logic that implements the various modeswrite_at_end
, replace mode useswrite_at_cursor
(dep injected into themake_job_fn
)write_at_end
writer function that can keep streaming the tokens to the bottom of the buffer while you can move around and do whatever (i.e. before can't navigate or you would completely mess with the outputs)