package agents import ( "context" "github.com/enmanuel/agents/pkg/command" ) // Runner is the common interface that both Agent and Robot satisfy. // The launcher uses this to manage agents and robots uniformly. type Runner interface { // Run starts the Matrix sync loop. Blocks until ctx is cancelled. Run(ctx context.Context) error // Stop cancels the runner's internal context, causing Run to return. Stop() // Done returns a channel closed when Run has returned. Done() <-chan struct{} // RegisterCommand adds a custom command handler. RegisterCommand(spec command.Spec, handler CommandHandler) }