@Bean
public StreamCompletionProvider streamCompletionProvider() {
List<RecoveryStrategy<?>> recoveryStrategies = Arrays.asList(
emptyStartYieldsAppsRecoveryStrategy(), expandOneDashToTwoDashesRecoveryStrategy(),
configurationPropertyNameAfterDashDashRecoveryStrategy(),
unfinishedConfigurationPropertyNameRecoveryStrategy(), destinationNameYieldsAppsRecoveryStrategy(),
appsAfterPipeRecoveryStrategy(), appsAfterDoublePipeRecoveryStrategy(),
configurationPropertyValueHintRecoveryStrategy());
List<ExpansionStrategy> expansionStrategies = Arrays.asList(addAppOptionsExpansionStrategy(),
pipeIntoOtherAppsExpansionStrategy(), unfinishedAppNameExpansionStrategy(),
configurationPropertyValueHintExpansionStrategy());
return new StreamCompletionProvider(recoveryStrategies, expansionStrategies);
}