I am using Go with Clean Architecture and DDD. I don't like that I need to define my repositories in the domain layer. In the end it is the application layer that defines what it wants, e.g. as the application layer I know I want to get or save an Item, which is a domain entity, from anywhere. Why don't I define the repository interface on the spot there, in the application layer, where it is needed, instead of in the domain layer? Then the domain layer can keep itself busy with domain business rules instead of knowing that things need to be persisted, which to me seems more like an application detail.
The domain can still be responsible for creating aggregates. I would argue that it doesn't need to know about how things are persisted in order to do that. Just have the application layer pass multiple entities and/or value objects to some factory function to create aggregates; why not?
I've asked multiple LLMs but I find the answers unsatisfactory. I hope a human can shed some light and/or opinion on the issue.

My understanding is that the repository interfaces are defined in the domain as they are a 'tactical' DDD pattern. Also, it's possible that other domain components, domain services for example, might need to depend on a repository interface. The domain shouldn't be able to reference types in the application 'layer'.
No, it doesn't. This is why you define the interface in the domain and the implementation elsewhere. The domain dictates the 'what' while other layers define the 'how'.