Conversation
- `nbs/03_ipyaidojo.ipynb` -> `llmdojo/ipyaidojo.py`: ipyai sessions are aidialog dialogs with context rebuilt from the dialog each turn, so the store is the canonical dialog replayed through ipyai's `py` (calls renamed, results regenerated, no model spend). `build_template` writes `dojo_data/ipyai_store/`; `prep_dojo` writes the round as an ipyai session and `ipyaidojo` launches `ipyai -r` on it. - `ipyai/startup.py` + README: the ipyai twin of `claude/` (imports and doc aliases, no `clik`, no banner), symlinked into ~/.config/ipyai/. - ipyai's round opens with `doc(pysk, edsk)`: `capture_slice` accepts a host-less bootstrap cell, and the card no longer names `clik` as required reading. - `dojobuild --ipyai`; all three stores rebuilt (card text changed).
…state keys on the session - `ipyai/startup.py` installs `make_inspector()` through IPython's pre_run_cell event and an AST transformer, gated to cells with `store_history=False` (ipyai's marker for the model's `py` cells); the user's typed cells are never inspected. Notes reach the model inside the tool result; a blocking rule rejects the cell. - `_host_session` honours an explicit `LLMDOJO_HOST_ID` (read live), so a host that learns its conversation id after kernel start (ipyai: the session file) can name it; `prep_dojo` seeds the baked round's doc-state under that key. - `03_ipyaidojo.ipynb`: a "Rules in ipyai kernels" lesson (the model's `!echo hi` is rejected, the user's runs); docs updated.
ncoop57
marked this pull request as ready for review
August 21, 2026 20:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
ipyaidojo, an ipyai backend for llmdojo, and restructures the template so a host's bootstrap and the worked dojo round are captured and stored separately.Why
ipyai sessions are aidialog dialogs whose model context is rebuilt from the dialog each turn, so the dialog is the store — but its tool is
py(not clikernel'sexecute) and it has noclikskill to document. The bootstrap therefore has to be per host, while the round can be captured once and shared by every backend.Changes
BOOT_PROMPT(the host's startup doc reads) thenTMPL_PROMPT(the round).assemble/split_templatejoin and separate them;capture_slicenow returns(boot, start, last)andboot_gatesvalidates a bootstrap reply.dojo_template.ipynbbecomesdojo_round.ipynb(shared) plusclik_boot.ipynb(Claude/Codex) andipyai_boot.ipynb(ipyai).llmdojo/ipyaidojo.py: replays cells through ipyai's kernel client (no model spend), writes the store, andprep_dojowrites a session under./.ipyai/sessions/foripyai -r.capture_boot(ipyaidojo --capture) captures ipyai's bootstrap from a live session, replaying for untruncated results.ipyai/startup.py+ README: imports, doc aliases, and the session rules applied to the model's cells only (store_history=False); doc-state keys on the session stem viaLLMDOJO_HOST_ID, now read live inrules.py.boot.ipynbandround.ipynbbeside its store for review.dojobuild: refreshes the packaged clikernel dialogs and builds all three stores;--claude/--codex/--ipyaibuild one each. (--ipyaineeds ipyai installed and a running rustygate.)strip_dojo(both backends) also drops a bootstrap turn immediately preceding a dealt round.README.md,DEV.md,ipyai/README.md,dojo_data/capture_prompt.md.