array( 'type' => 'boolean' ), 'connected' => array( 'type' => 'boolean' ), 'credits' => array( 'type' => array( 'integer', 'null' ) ), 'plan' => array( 'type' => 'string' ), 'usage' => array( 'type' => 'object' ), ); } protected function required_input(): array { return array(); } protected function annotations(): array { return array( 'readonly' => true, 'destructive' => false, 'idempotent' => true ); } /** * @param array $input * @return array|WP_Error */ protected function run( array $input ) { $status = Entitlement_Repository::content_ai_status(); if ( is_wp_error( $status ) ) { return $status; } if ( ! $status['module_active'] ) { $status['message'] = __( 'The Content AI module is inactive. Enable it with rank-math/set-module-status.', 'acrossai-abilities-manager' ); } elseif ( ! $status['connected'] ) { $status['message'] = __( 'Content AI needs a connected Rank Math account. Connect the site at Rank Math → Dashboard.', 'acrossai-abilities-manager' ); } elseif ( 0 === (int) $status['credits'] ) { $status['message'] = __( 'Content AI is connected but has no credits remaining, so credit-consuming abilities will fail.', 'acrossai-abilities-manager' ); } else { $status['message'] = sprintf( /* translators: %d: remaining credits */ __( 'Content AI is connected with %d credits remaining.', 'acrossai-abilities-manager' ), (int) $status['credits'] ); } return $status; } }