This brings over the AI context from the previous app. In particular, it
makes it so each block has its own context that persists after the app
is reloaded.
Note that this does not provide the app with the cli-specific context
from the previous app.
This brings over a simplified version of the open ai feature from the
previous app but in widget form. It still needs some work to reach
parity with that version, but this includes all of the basic building
blocks to get that working.