checkpoint: pre-audit baseline state
This commit is contained in:
@@ -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'] ) ) {
|
||||
|
||||
Reference in New Issue
Block a user