feat: consolidate docs, backend/session infra, and settings updates
This commit is contained in:
@@ -69,13 +69,13 @@ class WP_Agentic_Writer_Settings {
|
||||
'nonce' => wp_create_nonce( 'wpaw_settings' ),
|
||||
'models' => $this->get_models_for_select(),
|
||||
'currentModels' => array(
|
||||
'planning' => $settings['planning_model'] ?? 'google/gemini-2.0-flash-exp:free',
|
||||
'writing' => $settings['writing_model'] ?? ( $settings['execution_model'] ?? 'anthropic/claude-3.5-sonnet' ),
|
||||
'execution' => $settings['writing_model'] ?? ( $settings['execution_model'] ?? 'anthropic/claude-3.5-sonnet' ),
|
||||
'clarity' => $settings['clarity_model'] ?? 'google/gemini-2.0-flash-exp:free',
|
||||
'refinement' => $settings['refinement_model'] ?? 'anthropic/claude-3.5-sonnet',
|
||||
'chat' => $settings['chat_model'] ?? 'google/gemini-2.0-flash-exp:free',
|
||||
'image' => $settings['image_model'] ?? 'openai/gpt-4o',
|
||||
'planning' => $settings['planning_model'] ?? WPAW_Model_Registry::get_default_model( 'planning' ),
|
||||
'writing' => $settings['writing_model'] ?? WPAW_Model_Registry::get_default_model( 'writing' ),
|
||||
'execution' => $settings['writing_model'] ?? WPAW_Model_Registry::get_default_model( 'execution' ),
|
||||
'clarity' => $settings['clarity_model'] ?? WPAW_Model_Registry::get_default_model( 'clarity' ),
|
||||
'refinement' => $settings['refinement_model'] ?? WPAW_Model_Registry::get_default_model( 'refinement' ),
|
||||
'chat' => $settings['chat_model'] ?? WPAW_Model_Registry::get_default_model( 'chat' ),
|
||||
'image' => $settings['image_model'] ?? WPAW_Model_Registry::get_default_model( 'image' ),
|
||||
),
|
||||
) );
|
||||
}
|
||||
@@ -91,30 +91,30 @@ class WP_Agentic_Writer_Settings {
|
||||
$models = $provider->get_cached_models();
|
||||
|
||||
if ( is_wp_error( $models ) ) {
|
||||
// Return fallback defaults if API fails.
|
||||
// Return fallback defaults from model registry if API fails.
|
||||
return array(
|
||||
'planning' => array(
|
||||
'recommended' => array(
|
||||
array( 'id' => 'google/gemini-2.0-flash-exp:free', 'name' => 'Google Gemini 2.0 Flash' ),
|
||||
array( 'id' => WPAW_Model_Registry::get_default_model( 'planning' ), 'name' => WPAW_Model_Registry::get_model_display_name( WPAW_Model_Registry::get_default_model( 'planning' ) ) ),
|
||||
),
|
||||
'all' => array(
|
||||
array( 'id' => 'google/gemini-2.0-flash-exp:free', 'name' => 'Google Gemini 2.0 Flash' ),
|
||||
array( 'id' => WPAW_Model_Registry::get_default_model( 'planning' ), 'name' => WPAW_Model_Registry::get_model_display_name( WPAW_Model_Registry::get_default_model( 'planning' ) ) ),
|
||||
),
|
||||
),
|
||||
'execution' => array(
|
||||
'recommended' => array(
|
||||
array( 'id' => 'anthropic/claude-3.5-sonnet', 'name' => 'Anthropic Claude 3.5 Sonnet' ),
|
||||
array( 'id' => WPAW_Model_Registry::get_default_model( 'execution' ), 'name' => WPAW_Model_Registry::get_model_display_name( WPAW_Model_Registry::get_default_model( 'execution' ) ) ),
|
||||
),
|
||||
'all' => array(
|
||||
array( 'id' => 'anthropic/claude-3.5-sonnet', 'name' => 'Anthropic Claude 3.5 Sonnet' ),
|
||||
array( 'id' => WPAW_Model_Registry::get_default_model( 'execution' ), 'name' => WPAW_Model_Registry::get_model_display_name( WPAW_Model_Registry::get_default_model( 'execution' ) ) ),
|
||||
),
|
||||
),
|
||||
'image' => array(
|
||||
'recommended' => array(
|
||||
array( 'id' => 'openai/gpt-4o', 'name' => 'OpenAI GPT-4o' ),
|
||||
array( 'id' => WPAW_Model_Registry::get_default_model( 'image' ), 'name' => WPAW_Model_Registry::get_model_display_name( WPAW_Model_Registry::get_default_model( 'image' ) ) ),
|
||||
),
|
||||
'all' => array(
|
||||
array( 'id' => 'openai/gpt-4o', 'name' => 'OpenAI GPT-4o' ),
|
||||
array( 'id' => WPAW_Model_Registry::get_default_model( 'image' ), 'name' => WPAW_Model_Registry::get_model_display_name( WPAW_Model_Registry::get_default_model( 'image' ) ) ),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -135,9 +135,9 @@ class WP_Agentic_Writer_Settings {
|
||||
// Handle flat model list from OpenRouter.
|
||||
if ( ! empty( $models ) && array_keys( $models ) === range( 0, count( $models ) - 1 ) ) {
|
||||
$settings = get_option( 'wp_agentic_writer_settings', array() );
|
||||
$planning_id = $settings['planning_model'] ?? 'google/gemini-2.0-flash-exp:free';
|
||||
$execution_id = $settings['execution_model'] ?? 'anthropic/claude-3.5-sonnet';
|
||||
$image_id = $settings['image_model'] ?? 'openai/gpt-4o';
|
||||
$planning_id = $settings['planning_model'] ?? WPAW_Model_Registry::get_default_model( 'planning' );
|
||||
$execution_id = $settings['execution_model'] ?? WPAW_Model_Registry::get_default_model( 'execution' );
|
||||
$image_id = $settings['image_model'] ?? WPAW_Model_Registry::get_default_model( 'image' );
|
||||
|
||||
$text_models = array();
|
||||
$image_models = array();
|
||||
@@ -194,7 +194,7 @@ class WP_Agentic_Writer_Settings {
|
||||
return null;
|
||||
};
|
||||
|
||||
$chat_id = $settings['chat_model'] ?? 'google/gemini-2.0-flash-exp:free';
|
||||
$chat_id = $settings['chat_model'] ?? WPAW_Model_Registry::get_default_model( 'chat' );
|
||||
|
||||
return array(
|
||||
'planning' => array(
|
||||
@@ -323,12 +323,12 @@ class WP_Agentic_Writer_Settings {
|
||||
$sanitized['brave_search_api_key'] = trim( $input['brave_search_api_key'] ?? '' );
|
||||
|
||||
// Sanitize model names (6 models as per model-preset-brief.md).
|
||||
$sanitized['chat_model'] = sanitize_text_field( $input['chat_model'] ?? 'google/gemini-2.5-flash' );
|
||||
$sanitized['clarity_model'] = sanitize_text_field( $input['clarity_model'] ?? 'google/gemini-2.5-flash' );
|
||||
$sanitized['planning_model'] = sanitize_text_field( $input['planning_model'] ?? 'google/gemini-2.5-flash' );
|
||||
$sanitized['writing_model'] = sanitize_text_field( $input['writing_model'] ?? 'anthropic/claude-3.5-sonnet' );
|
||||
$sanitized['refinement_model'] = sanitize_text_field( $input['refinement_model'] ?? 'anthropic/claude-3.5-sonnet' );
|
||||
$sanitized['image_model'] = sanitize_text_field( $input['image_model'] ?? 'openai/gpt-4o' );
|
||||
$sanitized['chat_model'] = sanitize_text_field( $input['chat_model'] ?? WPAW_Model_Registry::get_default_model( 'chat' ) );
|
||||
$sanitized['clarity_model'] = sanitize_text_field( $input['clarity_model'] ?? WPAW_Model_Registry::get_default_model( 'clarity' ) );
|
||||
$sanitized['planning_model'] = sanitize_text_field( $input['planning_model'] ?? WPAW_Model_Registry::get_default_model( 'planning' ) );
|
||||
$sanitized['writing_model'] = sanitize_text_field( $input['writing_model'] ?? WPAW_Model_Registry::get_default_model( 'writing' ) );
|
||||
$sanitized['refinement_model'] = sanitize_text_field( $input['refinement_model'] ?? WPAW_Model_Registry::get_default_model( 'refinement' ) );
|
||||
$sanitized['image_model'] = sanitize_text_field( $input['image_model'] ?? WPAW_Model_Registry::get_default_model( 'image' ) );
|
||||
// Legacy support: map execution_model to writing_model
|
||||
if ( isset( $input['execution_model'] ) && ! isset( $input['writing_model'] ) ) {
|
||||
$sanitized['writing_model'] = sanitize_text_field( $input['execution_model'] );
|
||||
@@ -394,12 +394,12 @@ class WP_Agentic_Writer_Settings {
|
||||
// Extract settings (6 models as per model-preset-brief.md).
|
||||
$api_key = $settings['openrouter_api_key'] ?? '';
|
||||
$brave_api_key = $settings['brave_search_api_key'] ?? '';
|
||||
$chat_model = $settings['chat_model'] ?? 'google/gemini-2.5-flash';
|
||||
$clarity_model = $settings['clarity_model'] ?? 'google/gemini-2.5-flash';
|
||||
$planning_model = $settings['planning_model'] ?? 'google/gemini-2.5-flash';
|
||||
$writing_model = $settings['writing_model'] ?? ( $settings['execution_model'] ?? 'anthropic/claude-3.5-sonnet' );
|
||||
$refinement_model = $settings['refinement_model'] ?? 'anthropic/claude-3.5-sonnet';
|
||||
$image_model = $settings['image_model'] ?? 'openai/gpt-4o';
|
||||
$chat_model = $settings['chat_model'] ?? WPAW_Model_Registry::get_default_model( 'chat' );
|
||||
$clarity_model = $settings['clarity_model'] ?? WPAW_Model_Registry::get_default_model( 'clarity' );
|
||||
$planning_model = $settings['planning_model'] ?? WPAW_Model_Registry::get_default_model( 'planning' );
|
||||
$writing_model = $settings['writing_model'] ?? ( $settings['execution_model'] ?? WPAW_Model_Registry::get_default_model( 'writing' ) );
|
||||
$refinement_model = $settings['refinement_model'] ?? WPAW_Model_Registry::get_default_model( 'refinement' );
|
||||
$image_model = $settings['image_model'] ?? WPAW_Model_Registry::get_default_model( 'image' );
|
||||
$web_search_enabled = $settings['web_search_enabled'] ?? false;
|
||||
$search_engine = $settings['search_engine'] ?? 'auto';
|
||||
$search_depth = $settings['search_depth'] ?? 'medium';
|
||||
@@ -1023,7 +1023,9 @@ class WP_Agentic_Writer_Settings {
|
||||
|
||||
<script>
|
||||
function wpawApplyPreset(preset) {
|
||||
// Preset configurations with valid OpenRouter model IDs
|
||||
// Curated presets for legacy settings UI. These should be manually kept
|
||||
// in sync with WP_Agentic_Writer_Settings_V2::get_model_presets().
|
||||
// Model IDs balance cost/quality per tier.
|
||||
const presets = {
|
||||
budget: {
|
||||
chat: 'google/gemini-2.5-flash',
|
||||
@@ -1031,7 +1033,7 @@ class WP_Agentic_Writer_Settings {
|
||||
planning: 'google/gemini-2.5-flash',
|
||||
writing: 'mistralai/mistral-small-creative',
|
||||
refinement: 'google/gemini-2.5-flash',
|
||||
image: 'black-forest-labs/flux.2-klein'
|
||||
image: 'openai/gpt-4o'
|
||||
},
|
||||
balanced: {
|
||||
chat: 'google/gemini-2.5-flash',
|
||||
@@ -1039,7 +1041,7 @@ class WP_Agentic_Writer_Settings {
|
||||
planning: 'google/gemini-2.5-flash',
|
||||
writing: 'anthropic/claude-3.5-sonnet',
|
||||
refinement: 'anthropic/claude-3.5-sonnet',
|
||||
image: 'sourceful/riverflow-v2-max'
|
||||
image: 'openai/gpt-4o'
|
||||
},
|
||||
premium: {
|
||||
chat: 'google/gemini-3-flash-preview',
|
||||
@@ -1047,7 +1049,7 @@ class WP_Agentic_Writer_Settings {
|
||||
planning: 'google/gemini-3-flash-preview',
|
||||
writing: 'openai/gpt-4.1',
|
||||
refinement: 'openai/gpt-4.1',
|
||||
image: 'black-forest-labs/flux.2-max'
|
||||
image: 'openai/gpt-4o'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user