feat: consolidate docs, backend/session infra, and settings updates

This commit is contained in:
Dwindi Ramadhana
2026-05-28 00:58:20 +07:00
parent 2424acf726
commit 44e06eed88
102 changed files with 35423 additions and 11181 deletions

View File

@@ -30,7 +30,8 @@ class WP_Agentic_Writer_Keyword_Suggester {
* @return array|WP_Error Array with focus_keyword, secondary_keywords, reasoning, and cost.
*/
public static function suggest_keywords( $title, $sections, $language = 'english', $post_id = 0 ) {
$provider = WP_Agentic_Writer_Provider_Manager::get_provider_for_task( 'clarity' );
$provider_result = WP_Agentic_Writer_Provider_Manager::get_provider_for_task( 'clarity' );
$provider = $provider_result->provider;
// Build outline text from sections
$outline_text = '';
@@ -114,9 +115,28 @@ class WP_Agentic_Writer_Keyword_Suggester {
$suggestions['secondary_keywords'] = array();
}
// Track cost with separate operation type
// Track cost with full nine-argument contract including provider attribution.
$cost = $response['cost'] ?? 0;
if ( $cost > 0 && $post_id > 0 ) {
$actual_provider = 'unknown';
$provider_name = '';
// Extract provider info from provider_result.
if ( is_object( $provider_result ) && isset( $provider_result->actual_provider ) ) {
$actual_provider = $provider_result->actual_provider;
$provider_name = is_object( $provider ) ? get_class( $provider ) : 'unknown';
}
// Get session ID for this post if available.
$session_id = '';
if ( $post_id > 0 ) {
$manager = WP_Agentic_Writer_Conversation_Manager::get_instance();
$session = $manager->get_session_by_post_id( $post_id );
if ( $session && isset( $session['session_id'] ) ) {
$session_id = $session['session_id'];
}
}
do_action(
'wp_aw_after_api_request',
$post_id,
@@ -124,7 +144,10 @@ class WP_Agentic_Writer_Keyword_Suggester {
'suggest_keyword',
$response['input_tokens'] ?? 0,
$response['output_tokens'] ?? 0,
$cost
$cost,
$actual_provider,
$session_id,
'success'
);
}
@@ -133,6 +156,8 @@ class WP_Agentic_Writer_Keyword_Suggester {
'secondary_keywords' => $suggestions['secondary_keywords'],
'reasoning' => $suggestions['reasoning'] ?? '',
'cost' => $cost,
'provider_result' => $provider_result,
'model' => $response['model'] ?? '',
);
}