makeDaemonicPowers = ({
  config,
  fs,
  popen,
  url,
  filePowers,
  cryptoPowers,
}) => {
  const { fileURLToPath } = url;

  const petStorePowers = makePetStoreMaker(filePowers, config);
  const daemonicPersistencePowers = makeDaemonicPersistencePowers(
    filePowers,
    cryptoPowers,
    config,
  );
  const daemonicControlPowers = makeDaemonicControlPowers(
    config,
    fileURLToPath,
    filePowers,
    fs,
    popen,
  );

  return harden({
    crypto: cryptoPowers,
    petStore: petStorePowers,
    persistence: daemonicPersistencePowers,
    control: daemonicControlPowers,
  });
}
@param {object} opts
@param {Config} opts.config
@param {typeof import('fs')} opts.fs
@param {typeof import('child_process')} opts.popen
@param {typeof import('url')} opts.url
@param {FilePowers} opts.filePowers
@param {CryptoPowers} opts.cryptoPowers
@returns {DaemonicPowers}