When a descriptor contains a private key and has hardened derivation steps, derive the xpub at the last hardened step and convert the derivation into origin info. So the result is that a BIP32PubkeyProvider containing a xprv with hardened derivation steps and ending with unhardened derivation becomes a OriginPubkeyProvider with those hardened derivation steps as the origin info and a new BIP32PubkeyProvider containing the xpub and the unhardened derivation steps.
For example:
wpkh(xprv..../0'/0'/*) becomes wpkh([d34db33f/0'/0']xpub.../*)
If the descriptor has only hardened steps, it is not modified.
This change allows descriptor wallets to derive from such descriptors without needing to be unlocked.