Heat the olive oil in a medium sauté pan. Add the onions or shallots, season them with salt, and cook them for about 10 minutes until they begin to caramelize. Then, add the garlic and ginger along with the dried spices, paprika, harissa, cayenne peppers and bayleaf. Cook for a minute or two until the spices are fragrant, then add the bell peppers and spicy peppers, season with salt and pepper. Sauté these for 5-7 minutes until they soften, then add the chopped tomatoes. Cook, stirring often, for a few minutes until the tomatoes start to break down and all the flavors meld.
Add enough water to just barely cover the vegetables, bring the sauce to a boil, then reduce to a simmer. Let it cook for 15-20 minutes, or until it reaches your desired consistency. Stir occasionally and add a little more water if the sauce gets too thick.
Once the sauce is thick and velvety, use a spoon to make small indentations, or "wells," and gently crack your eggs into them. You can either poach the eggs on the stovetop, or place the entire pan under a broiler to finish them. Once the egg whites are set but the yolks are still runny, the dish is ready. I finished some torn fresh basil. Serve with bread or over rice.