Once connected, an outside agent can create and manage workspaces and their conversations, write and edit Domains, register repositories, define and assign canned Agents, configure Connectors, build and instantiate Strategies, save Macros, and read or write Memories — essentially the entire surface of the app itself.
Relationships — attaching a Domain or repository to a workspace, or assigning an Agent to one — aren't separate actions to learn; they're just part of updating the workspace itself, mirroring exactly how the app treats them internally.
Two smaller surfaces are worth knowing about, because they are what make an unattended loop behave: an outside agent can take and release a lock on a resource only one runner should touch at a time, and it can read and write the saved values on a workspace, so what one run learned is still there for the next one.
A handful of things are deliberately left off this surface — mostly local-filesystem discovery helpers built for the app's own UI (verifying a path is a real repo, guessing dev-server presets) rather than anything an agent registering a repo it already knows the path to would need.