checkpoint: pre-audit baseline state
This commit is contained in:
@@ -43,6 +43,7 @@ class WP_Agentic_Writer_Provider_Manager {
|
||||
public static function get_provider_for_task( $type ) {
|
||||
$settings = get_option( 'wp_agentic_writer_settings', array() );
|
||||
$task_providers = $settings['task_providers'] ?? array();
|
||||
$allow_openrouter_fallback = ! empty( $settings['allow_openrouter_fallback'] );
|
||||
|
||||
// Determine which provider to use for this task
|
||||
$requested_provider = $task_providers[ $type ] ?? 'openrouter';
|
||||
@@ -58,11 +59,26 @@ class WP_Agentic_Writer_Provider_Manager {
|
||||
// Get provider instance with fallback logic
|
||||
$provider = self::get_provider_instance( $requested_provider, $type );
|
||||
|
||||
// If provider not configured or unavailable, fallback to OpenRouter
|
||||
$can_fallback_to_openrouter = ( 'openrouter' === $requested_provider ) || $allow_openrouter_fallback;
|
||||
|
||||
// If provider not configured or unavailable.
|
||||
if ( ! $provider || ! $provider->is_configured() ) {
|
||||
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
||||
error_log( "Provider '{$requested_provider}' not available for task '{$type}', using OpenRouter fallback" );
|
||||
error_log( "Provider '{$requested_provider}' not available for task '{$type}'" );
|
||||
}
|
||||
|
||||
// Never silently spend OpenRouter credits when user selected another provider.
|
||||
if ( ! $can_fallback_to_openrouter ) {
|
||||
$warnings[] = "Provider '{$requested_provider}' unavailable. No automatic fallback was applied.";
|
||||
return new WPAW_Provider_Selection_Result(
|
||||
$provider,
|
||||
$requested_provider,
|
||||
$requested_provider,
|
||||
false,
|
||||
$warnings
|
||||
);
|
||||
}
|
||||
|
||||
$warnings[] = "Provider '{$requested_provider}' unavailable, fell back to OpenRouter";
|
||||
$provider = WP_Agentic_Writer_OpenRouter_Provider::get_instance();
|
||||
$actual_provider = 'openrouter';
|
||||
@@ -74,12 +90,16 @@ class WP_Agentic_Writer_Provider_Manager {
|
||||
$test_result = $provider->test_connection();
|
||||
if ( is_wp_error( $test_result ) ) {
|
||||
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
||||
error_log( "Local Backend not reachable for task '{$type}', using OpenRouter fallback. Error: " . $test_result->get_error_message() );
|
||||
error_log( "Local Backend not reachable for task '{$type}'. Error: " . $test_result->get_error_message() );
|
||||
}
|
||||
if ( $can_fallback_to_openrouter ) {
|
||||
$warnings[] = "Local Backend not reachable, fell back to OpenRouter.";
|
||||
$provider = WP_Agentic_Writer_OpenRouter_Provider::get_instance();
|
||||
$actual_provider = 'openrouter';
|
||||
$fallback_used = true;
|
||||
} else {
|
||||
$warnings[] = "Local Backend not reachable. No automatic fallback was applied.";
|
||||
}
|
||||
$warnings[] = "Local Backend not reachable, fell back to OpenRouter";
|
||||
$provider = WP_Agentic_Writer_OpenRouter_Provider::get_instance();
|
||||
$actual_provider = 'openrouter';
|
||||
$fallback_used = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user