Cognet Folder

A cognet is a folder of source. There is no entry point and nothing to register: axonl prepare finds every component and system wherever it sits, names each from its path, and builds them into one mind.

my-cognet/
├── cognet.config.ts      # how the mind wakes, and what models it needs
├── types/                # what the mind can believe — its components
│   └── body/
│       └── body.components.ts   # or .rs, or .py
├── src/                  # what the mind does — its systems
│   └── body/
│       ├── odometry.system.rs   # or .ts, or .py
│       └── odometry.rs          # plain code the system calls
├── interfaces/           # the cognet's own service interfaces — only when nothing standard fits
├── library/              # plain code shared by the whole mind
├── plugins/              # setup and teardown — never thinking
├── tests/
├── Cargo.toml            # Rust dependencies — only with Rust
├── pyproject.toml        # Python dependencies — only with Python
├── package.json          # name and version — only when published on its own
├── components.lock.json  # field numbers — generated, committed
└── .cognet/              # generated — never edited, never committed

Only cognet.config.ts and one system are required. Everything else appears when the mind needs it.

Is for
cognet.config.tswhat the mind needs from the runtime
types/components, in any of the three languages
src/systems, and the code they call
interfaces/service interfaces the cognet defines itself
library/code any part of the mind could use
plugins/opening and closing what the mind uses
tests/tests of the plain code
Cargo.tomlcrates the Rust uses
pyproject.tomlpackages the Python uses
package.jsonregistry identity
.cognet/everything axonl prepare generates

Components can live anywhere

Any *.components.* file in the cognet is found — in types/, or beside the systems that use it in src/. types/ is a convention for keeping them together, not a rule.

Inside an agent, or on its own

Inside an agent, a cognet lives at <agent>/cognet/. The agent runs it because it is there. It has no package.json — it uses the agent's.

On its own, it is a package with a package.json, publishable to the registry and usable by any agent.

The source is the same either way.

Starting one

axonl cognet init thermostat

Writes a small working mind — a config, its components, a system that reads a temperature and one that acts on it.