Build the TrainingEngine's production dependency bundle from a per-call
provider + user. Resolves the active File Storage Provider once and chooses
the artifact-store family accordingly (MJ-Files when a provider is active, local
disk when none is — see resolveActiveFileStorageProviderId). Async so the
provider lookup is part of the wiring; the scoring side keys off the SAME
decision (the composite loader routes by whether the artifact exists on local
disk) so a model never gets trained to one family and scored from another.
Build the TrainingEngine's production dependency bundle from a per-call
provider+user. Resolves the active File Storage Provider once and chooses the artifact-store family accordingly (MJ-Files when a provider is active, local disk when none is — see resolveActiveFileStorageProviderId). Async so the provider lookup is part of the wiring; the scoring side keys off the SAME decision (the composite loader routes by whether the artifact exists on local disk) so a model never gets trained to one family and scored from another.