Estimating the difference between adjusted and unadjusted meta-analytic effect sizes

I am working on a meta-analysis of standardized mean differences for which researchers report a variety of unadjusted data and data that are adjusted for one or two covariates. In this research literature, the extent to which including these covariates affects the reported effect size is a matter of much debate, so it would be substantively interesting to know the extent to which adjustment for covariates affects the estimated meta-analytic effect size. Consequently, I would like to fit a model that estimates $d' - d$, where $d'$ is the covariate-adjusted effect size and $d$ is the unadjusted effect size.

Let's make the following assumptions for this question --

1. Each researcher measures $y$ for each of two groups. The variable indicating group membership is $x$.
2. Some researchers also measure a covariate $cov$. This covariate is common across all studies where $cov$ is measured.
3. I have access to any statistical information required to estimate the meta-analytic model that gives me $d' - d$ (e.g., for each study, let's assume I have the means and standard deviations of $y$ and $cov$ in each group denoted by $x$, and let's additionally assume that I have access to the full variance-covariance matrix for $y$, $x$, and $cov$).

Given the assumptions above, how might I fit a model that would give me $d$, $d'$, and $d' - d$? I feel like this should be possible using multivariate meta-analysis, but I can't quite figure out what the model would look like.

Here are some sample data illustrating the question.

set.seed(214324)
# Studies without covariates
d1 <- data.frame(x = rep(c(-.5, .5), 20), y = .5 * rep(c(-.5, .5), 20) + rnorm(40, sd = 1))
d2 <- data.frame(x = rep(c(-.5, .5), 20), y = .5 * rep(c(-.5, .5), 20) + rnorm(40, sd = 1))
d3 <- data.frame(x = rep(c(-.5, .5), 20), y = .5 * rep(c(-.5, .5), 20) + rnorm(40, sd = 1))
d4 <- data.frame(x = rep(c(-.5, .5), 20), y = .5 * rep(c(-.5, .5), 20) + rnorm(40, sd = 1))
d5 <- data.frame(x = rep(c(-.5, .5), 20), y = .5 * rep(c(-.5, .5), 20) + rnorm(40, sd = 1))
# Studies with covariates
d6 <- data.frame(x = rep(c(-.5, .5), 20), cov = rnorm(40, sd = 1))
d6$y <- .5 * d6$x + .6 * d6$cov + rnorm(40, sd = 1) d7 <- data.frame(x = rep(c(-.5, .5), 20), cov = rnorm(40, sd = 1)) d7$y <- .5 * d7$x + .6 * d7$cov + rnorm(40, sd = 1)
d8 <- data.frame(x = rep(c(-.5, .5), 20), cov = rnorm(40, sd = 1))
d8$y <- .5 * d8$x + .6 * d8$cov + rnorm(40, sd = 1) d9 <- data.frame(x = rep(c(-.5, .5), 20), cov = rnorm(40, sd = 1)) d9$y <- .5 * d9$x + .6 * d9$cov + rnorm(40, sd = 1)
d10 <- data.frame(x = rep(c(-.5, .5), 20), cov = rnorm(40, sd = 1))
d10$y <- .5 * d10$x + .6 * d10\$cov + rnorm(40, sd = 1)