checkpoint: pre-audit baseline state

This commit is contained in:
Dwindi Ramadhana
2026-06-06 00:29:10 +07:00
parent 579aab1b2b
commit ae70e4aea9
38 changed files with 4061 additions and 3149 deletions

View File

@@ -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;
}
}