{"slug":"airo-wp","name":"Airo WP AI Builder","description":"MCP server and block pattern library for AI-powered site building. Connect any AI client to manage content and assemble pages from curated patterns.","author":"GoDaddy","active_installs":30,"version":"0.4.1","wp_org_url":"https://wordpress.org/plugins/airo-wp/","is_closed":false,"cleanup":{"has_uninstall_hook":false,"drops_tables_on_uninstall":false,"deletes_options_on_uninstall":false},"tables":[{"table_name":"airowp_query_filter_index","full_table_name":"wp_airowp_query_filter_index","description":"Stores airowp query filter index data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"errors","full_table_name":"wp_errors","description":"Stores errors data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"it","type":"only","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE errors (it only logs them via // $wpdb), so a server that rejects the schema leaves no table // behind. Don't record the schema version for a table that // doesn't exist. self::$last_install_error = $error; return false; } self::$last_install_error = ''; // On a v1 → v2 upgrade, pre-existing rows have post_type='' (dbDelta's // DEFAULT fills new columns). A per-CPT count query would miss them, // so TRUNCATE and rely on the admin dashboard / WP-CLI rebuild to // reindex with correct post_type values. v2.2 has not shipped yet so // no production data is lost. if ( $needs_truncate ) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter $wpdb->query( $wpdb->prepare( 'TRUNCATE TABLE %i', $table ) );"}],"table_count":2}