# nisse-core The shared library the Nisse agents sit on (Part L of the architecture). It never imports an agent. Packages follow the architecture's sections: - `models` (L9, L7): `llm` (the one client), `catalog` and `probe` (what the models are), `render` and `render_anthropic` (request bodies from the log), `context` (fitting a request to its window, L6). - `log` (L7, L6): `canonical` (the log's events), `views` (what each role is shown of the others). - `state` (L8): `store` (an agent subclasses `StateStore` for its own tables, roles and views), `reconcile`, `worker`, `cancel`, `dump`. - `knowledge` (L10, L6.4): `vault`, `memory`. - `conversation` (L5): `transport`, `matrix`. - `execution` (L13): `ssh` (SSH to a tool VM); `testing` (a throwaway sshd for tests). - `authority` (P3, P4, L4): `actions` (`Action`, `Verdict`, and static reading of shell commands, which each agent's fast-path rules build on; `nisse-dev`'s are in `nisse_dev.loop.actions`). - At the top, until each gains a second module: `gitea` (the tracker and forge, L1), `oplog` and `envfile` (L12). The parts of a loop (`loop`) and shared configuration arrive with Development Plan M7.2; each agent keeps its own scheduler.