package runtime

import (
	"git.cloudinit.dev/coreci/orca/internal/sshpush"
)

// DefaultRegistry returns a Registry with all five runtime backends
// registered (process, podman, wasm, pve-vm, pve-ct). The process
// runtime is transport-less; the others are backed by the given
// transport (which may be nil — the per-method calls will fail with
// an sshpush error, but registration still succeeds).
func DefaultRegistry(transport *sshpush.Transport) *Registry {
	r := NewRegistry()
	r.Register("process", NewProcessRuntime())
	r.Register("podman", NewPodmanRuntime(transport))
	r.Register("wasm", NewWasmRuntime(transport))
	r.Register("pve-vm", NewPveVMRuntime(transport))
	r.Register("pve-ct", NewPveCTRuntime(transport))
	return r
}
