PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / trunk
AI Engine – The Chatbot, AI Framework & MCP for WordPress vtrunk
3.7.2 3.7.1 3.7.0 3.6.9 3.6.8 3.6.7 3.6.6 3.6.4 3.6.5 3.6.3 3.6.2 3.6.1 3.6.0 3.5.9 3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / classes / init.php
ai-engine / classes Last commit date
data 1 year ago engines 2 days ago exceptions 3 weeks ago modules 2 days ago query 2 days ago services 3 weeks ago admin.php 1 week ago api.php 3 weeks ago core.php 2 days ago discussion.php 1 year ago event.php 1 year ago init.php 1 week ago logging.php 1 year ago reply.php 3 weeks ago rest.php 1 week ago
init.php
134 lines
1 <?php
2
3 if ( class_exists( 'MeowPro_MWAI_Core' ) && class_exists( 'Meow_MWAI_Core' ) ) {
4 function mwai_thanks_admin_notices() {
5 echo '<div class="error"><p>' . __( 'Thanks for installing the Pro version of AI Engine :) However, the free version is still enabled. Please disable or uninstall it.', 'ai-engine' ) . '</p></div>';
6 }
7 add_action( 'admin_notices', 'mwai_thanks_admin_notices' );
8 return;
9 }
10
11 spl_autoload_register( function ( $class ) {
12 $file = null;
13
14 // Handle specific namespaces first for better organization
15 if ( strpos( $class, 'Meow_MWAI_Modules' ) !== false ) {
16 $filename = str_replace( 'meow_mwai_modules_', '', strtolower( $class ) );
17 $filename = str_replace( '_', '-', $filename );
18 $file = MWAI_PATH . '/classes/modules/' . $filename . '.php';
19 }
20 else if ( strpos( $class, 'Meow_MWAI_Query' ) !== false ) {
21 // Remove the prefix
22 $filename = str_replace( 'Meow_MWAI_Query_', '', $class );
23 // Convert camelCase to kebab-case
24 $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) );
25 $file = MWAI_PATH . '/classes/query/' . $filename . '.php';
26 }
27 else if ( strpos( $class, 'Meow_MWAI_Data' ) !== false ) {
28 // Remove the prefix
29 $filename = str_replace( 'Meow_MWAI_Data_', '', $class );
30 // Convert camelCase to kebab-case
31 $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) );
32 $file = MWAI_PATH . '/classes/data/' . $filename . '.php';
33 }
34 else if ( strpos( $class, 'Meow_MWAI_Engines' ) !== false ) {
35 // Remove the prefix
36 $filename = str_replace( 'Meow_MWAI_Engines_', '', $class );
37 // Special handling for known engine names
38 if ( $filename === 'OpenAI' ) {
39 $filename = 'openai';
40 }
41 else if ( $filename === 'OpenRouter' ) {
42 $filename = 'open-router';
43 }
44 else if ( $filename === 'ChatML' ) {
45 $filename = 'chatml';
46 }
47 else {
48 // Convert camelCase to kebab-case for others
49 $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) );
50 }
51 $file = MWAI_PATH . '/classes/engines/' . $filename . '.php';
52 }
53 else if ( strpos( $class, 'Meow_MWAI_Services' ) !== false ) {
54 // Remove the prefix
55 $filename = str_replace( 'Meow_MWAI_Services_', '', $class );
56 // Convert camelCase to kebab-case
57 $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) );
58 $file = MWAI_PATH . '/classes/services/' . $filename . '.php';
59 }
60 else if ( strpos( $class, 'Meow_MWAI_FunctionCallException' ) !== false ) {
61 $file = MWAI_PATH . '/classes/exceptions/function-call-exception.php';
62 }
63 else if ( strpos( $class, 'Meow_MWAI_RefusedException' ) !== false ) {
64 $file = MWAI_PATH . '/classes/exceptions/refused-exception.php';
65 }
66 else if ( strpos( $class, 'Meow_MWAI_Labs' ) !== false ) {
67 $filename = str_replace( 'meow_mwai_labs_', '', strtolower( $class ) );
68 // Convert underscores to hyphens for consistency
69 $filename = str_replace( '_', '-', $filename );
70 $file = MWAI_PATH . '/labs/' . $filename . '.php';
71 }
72 else if ( strpos( $class, 'Meow_MWAI' ) !== false ) {
73 $filename = str_replace( 'meow_mwai_', '', strtolower( $class ) );
74 $filename = str_replace( '_', '-', $filename );
75 $file = MWAI_PATH . '/classes/' . $filename . '.php';
76 }
77 else if ( strpos( $class, 'MeowKit_MWAI_' ) !== false ) {
78 // Strip MeowKit_MWAI_ prefix to get just the class name
79 $filename = str_replace( 'meowkit_mwai_', '', strtolower( $class ) );
80 $filename = str_replace( '_', '-', $filename );
81 $file = MWAI_PATH . '/common/' . $filename . '.php';
82 }
83 else if ( strpos( $class, 'MeowKitPro_MWAI_' ) !== false ) {
84 // Strip MeowKitPro_MWAI_ prefix to get just the class name
85 $filename = str_replace( 'meowkitpro_mwai_', '', strtolower( $class ) );
86 // Special case for rest_license to maintain backward compatibility
87 if ( $filename === 'rest_license' ) {
88 $file = MWAI_PATH . '/common/premium/rest_license.php';
89 }
90 else {
91 $filename = str_replace( '_', '-', $filename );
92 $file = MWAI_PATH . '/common/premium/' . $filename . '.php';
93 }
94 }
95 else if ( strpos( $class, 'MeowPro_MWAI_Addons' ) !== false ) {
96 // Remove the prefix
97 $filename = str_replace( 'MeowPro_MWAI_Addons_', '', $class );
98 // Convert camelCase to kebab-case
99 $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) );
100 $file = MWAI_PATH . '/premium/addons/' . $filename . '.php';
101 }
102 else if ( strpos( $class, 'MeowPro_MWAI' ) !== false ) {
103 // Remove the prefix
104 $filename = str_replace( 'MeowPro_MWAI_', '', $class );
105 // Special handling for known class names
106 if ( $filename === 'OpenAI' ) {
107 $filename = 'openai';
108 }
109 else {
110 // Convert camelCase to kebab-case
111 $filename = strtolower( preg_replace( '/([a-z])([A-Z])/', '$1-$2', $filename ) );
112 // Convert underscores to hyphens for consistency
113 $filename = str_replace( '_', '-', $filename );
114 }
115 $file = MWAI_PATH . '/premium/' . $filename . '.php';
116 }
117 if ( $file && file_exists( $file ) ) {
118 require( $file );
119 }
120 } );
121
122 require_once( MWAI_PATH . '/common/helpers.php' );
123
124 global $mwai_core;
125 $mwai_core = new Meow_MWAI_Core();
126
127 // Registered here rather than from the MCP module: on activation WordPress includes
128 // the plugin after plugins_loaded has already fired, so no module instance exists to
129 // hook it. See purge_discovery_cache() for why an activation needs to purge at all.
130 register_activation_hook( MWAI_ENTRY, function () {
131 require_once MWAI_PATH . '/labs/mcp-oauth.php';
132 Meow_MWAI_Labs_MCP_OAuth::purge_discovery_cache();
133 } );
134