Skip to content

Latest commit

 

History

History
44 lines (36 loc) · 2.13 KB

File metadata and controls

44 lines (36 loc) · 2.13 KB

workspace

Where agents and skills live on disk. Every skills directory is an ordinary Python package — imported, not scanned.

innate_agents/   Shipped agents. Tracked in git, updated by `git pull`.
custom_agents/   Your agents. Gitignored, stays on your machine.
innate_skills/   Shipped skills. Tracked in git.
custom_skills/   Your skills (code and physical). Gitignored.
<anything>/      A skill package: someone's skills + helpers, installed by dropping the folder in.

A skill is a class: define a Skill subclass anywhere in a package and the robot knows it — defining it is the registration (like a PyTorch nn.Module). The class name is the identity (class PickSockspick_socks), so files organize however you like: several skills in one file, a skill split across a subpackage with relative imports, helpers next to it. A .py that defines no Skill is just a module you import. Physical skills stay data: a directory with metadata.json. The catalog drops a generated __init__.py ref next to that metadata, so from innate_skills.wave import Wave imports a typed handle to the recording (the same class as from physical_skills import Wave).

Everything auto-loads on brain_client start, edits hot-reload on save, and a module that fails to import shows up in the web app marked broken with its error (and clears when you fix it) instead of vanishing.

Skill IDs are namespaced by package: innate-os/<name> for shipped, local/<name> for yours, <package>/<name> for dropped-in packs. Packages import each other by bare name (from innate_skills import arm_utils). See the README at the repo root.

A pack that lives elsewhere on disk (a team checkout, a mounted volume) is symlinked in rather than copied — it then behaves exactly like a dropped-in folder: discovered at boot, hot-reloaded on edit, ids namespaced by the link name (team_skills/<name>):

ln -s /opt/team/skills ~/innate-os/workspace/team_skills

(This replaces the 0.6.x extra_skill_dirs / extra_agent_dirs setting. In the sim/Docker setup the link target must also be mounted into the container, or it dangles there and the pack is skipped.)