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

@@ -514,6 +514,49 @@ class WP_Agentic_Writer_OpenRouter_Provider implements WP_Agentic_Writer_AI_Prov
return __( 'Please go to Settings → Models and select a different model that is available on OpenRouter.', 'wp-agentic-writer' );
}
/**
* Build optional request-level OpenRouter provider routing preferences.
*
* This is intentionally settings-driven. BYOK users may pin a provider and
* disable fallbacks, but the plugin should not assume every OpenRouter model
* should use OpenAI, Anthropic, Azure, or any other provider.
*
* @since 0.2.3
* @param array $options Request options.
* @return array Provider routing preferences.
*/
private function get_provider_routing_preferences( $options = array() ) {
if ( isset( $options['provider'] ) && is_array( $options['provider'] ) ) {
return $options['provider'];
}
if ( array_key_exists( 'openrouter_provider_routing', $options ) && false === (bool) $options['openrouter_provider_routing'] ) {
return array();
}
$settings = get_option( 'wp_agentic_writer_settings', array() );
$enabled = ! empty( $settings['openrouter_provider_routing_enabled'] );
$provider_slug = isset( $settings['openrouter_provider_slug'] ) ? sanitize_key( $settings['openrouter_provider_slug'] ) : '';
if ( ! $enabled || '' === $provider_slug || 'auto' === $provider_slug ) {
return array();
}
$routing = array(
'order' => array( $provider_slug ),
);
if ( ! empty( $settings['openrouter_provider_only'] ) ) {
$routing['only'] = array( $provider_slug );
}
if ( isset( $settings['openrouter_allow_provider_fallbacks'] ) ) {
$routing['allow_fallbacks'] = (bool) $settings['openrouter_allow_provider_fallbacks'];
}
return $routing;
}
/**
* Get singleton instance.
*
@@ -605,6 +648,10 @@ class WP_Agentic_Writer_OpenRouter_Provider implements WP_Agentic_Writer_AI_Prov
'include' => true,
),
);
$provider_routing = $this->get_provider_routing_preferences( $options );
if ( ! empty( $provider_routing ) ) {
$body['provider'] = $provider_routing;
}
// Add optional parameters.
if ( isset( $options['max_tokens'] ) ) {
@@ -752,6 +799,10 @@ class WP_Agentic_Writer_OpenRouter_Provider implements WP_Agentic_Writer_AI_Prov
'include' => true,
),
);
$provider_routing = $this->get_provider_routing_preferences( $options );
if ( ! empty( $provider_routing ) ) {
$body['provider'] = $provider_routing;
}
// Add optional parameters.
if ( isset( $options['max_tokens'] ) ) {