diff --git a/docs/ai-tools/tools-overview.md b/docs/ai-tools/tools-overview.md index 68dae5b26..439f64c84 100644 --- a/docs/ai-tools/tools-overview.md +++ b/docs/ai-tools/tools-overview.md @@ -475,16 +475,18 @@ See Tool Manager for complete documentation. ### ToolExecutor Pattern -All tools integrate via the universal `ToolExecutor` class (`/inc/Engine/AI/Tools/ToolExecutor.php`): +All tools integrate via the universal `ToolExecutor` class +(`/inc/Engine/AI/Tools/ToolExecutor.php`) for execution, and the +`ToolPolicyResolver` for discovery: ```php // Tool discovery -$available_tools = \DataMachine\Engine\AI\ToolExecutor::getAvailableTools( - $agent_type, // 'pipeline' or 'chat' - $handler_slug, - $handler_config, - $flow_step_id -); +$resolver = new \DataMachine\Engine\AI\Tools\ToolPolicyResolver(); +$available_tools = $resolver->resolve( array( + 'mode' => \DataMachine\Engine\AI\Tools\ToolPolicyResolver::MODE_PIPELINE, + 'pipeline_step_id' => $flow_step_id, + 'engine_data' => $engine_data, +) ); ``` **Discovery Process**: diff --git a/docs/core-system/tool-execution.md b/docs/core-system/tool-execution.md index e110c22c2..08bc7c1f2 100644 --- a/docs/core-system/tool-execution.md +++ b/docs/core-system/tool-execution.md @@ -25,28 +25,32 @@ Handles tool discovery via filters, enablement validation, and execution with co ### Tool Discovery -Tools are discovered through three filter-based registration patterns: +Tools are discovered through three filter-based registration patterns, and +resolved via `ToolPolicyResolver::resolve()` — the single entry point for +both chat and pipeline modes: ```php -public static function getAvailableTools( - ?array $previous_step_config = null, - ?array $next_step_config = null, - ?string $current_pipeline_step_id = null -): array +use DataMachine\Engine\AI\Tools\ToolPolicyResolver; + +$resolver = new ToolPolicyResolver(); ``` **Pipeline Agent Usage** (with step context): ```php -$tools = ToolExecutor::getAvailableTools( - $previous_step_config, // Previous step configuration - $next_step_config, // Next step configuration - $current_pipeline_step_id // Current pipeline step ID -); +$tools = $resolver->resolve( array( + 'mode' => ToolPolicyResolver::MODE_PIPELINE, + 'previous_step_config' => $previous_step_config, + 'next_step_config' => $next_step_config, + 'pipeline_step_id' => $current_pipeline_step_id, + 'engine_data' => $engine_data, +) ); ``` **Chat Agent Usage** (global tools only): ```php -$tools = ToolExecutor::getAvailableTools(null, null, null); +$tools = $resolver->resolve( array( + 'mode' => ToolPolicyResolver::MODE_CHAT, +) ); ``` ### Tool Registration Patterns diff --git a/docs/development/hooks/core-filters.md b/docs/development/hooks/core-filters.md index 14bac8526..480b6a0c0 100644 --- a/docs/development/hooks/core-filters.md +++ b/docs/development/hooks/core-filters.md @@ -1197,14 +1197,22 @@ Builds parameters for handler-specific tools with engine data merging (source_ur **Core Method**: -#### `getAvailableTools()` +#### `ToolPolicyResolver::resolve()` + +Tool discovery moved from `ToolExecutor::getAvailableTools()` (removed in 0.79) +to `ToolPolicyResolver::resolve()`. Single entry point for chat and pipeline +modes. + ```php -\DataMachine\Engine\AI\ToolExecutor::getAvailableTools( - string $agent_type, // 'pipeline' or 'chat' - ?string $handler_slug, // Handler identifier - array $handler_config, // Handler configuration - ?string $flow_step_id // Flow step identifier -): array +$resolver = new \DataMachine\Engine\AI\Tools\ToolPolicyResolver(); + +$tools = $resolver->resolve( array( + 'mode' => ToolPolicyResolver::MODE_PIPELINE, // or MODE_CHAT, MODE_SYSTEM + 'previous_step_config' => $previous_step_config, + 'next_step_config' => $next_step_config, + 'pipeline_step_id' => $flow_step_id, + 'engine_data' => $engine_data, +) ); ``` **Discovery Process**: diff --git a/homeboy.json b/homeboy.json index 996fb7d03..22df33bb5 100644 --- a/homeboy.json +++ b/homeboy.json @@ -24,6 +24,45 @@ } }, "id": "data-machine", + "transforms": { + "drop_wp_ability_dead_guards": { + "description": "Drop dead class_exists('WP_Ability') and class_exists('WP_Abilities_Registry') guards. Plugin header requires WP 6.9 where both classes ship in core, so every guard on these symbols is unreachable. Ref: https://github.com/Extra-Chill/data-machine/issues/XXXX", + "rules": [ + { + "id": "simple_guard", + "description": "Remove standalone if ( ! class_exists( 'WP_Ability' ) ) { return; } blocks.", + "find": "(?s)\n\t\tif \\( ! class_exists\\( ?'WP_Ability' ?\\) \\) \\{\n\t\t\treturn;\n\t\t\\}\n", + "replace": "", + "files": "inc/Abilities/**/*.php", + "context": "file" + }, + { + "id": "combined_guard_registered", + "description": "Drop the WP_Ability half of 'if ( ! class_exists( WP_Ability ) || self::$registered ) { return; }' guards.", + "find": "(?s)if \\( ! class_exists\\( 'WP_Ability' \\) \\|\\| self::\\$registered \\) \\{\n\t+return;\n\t+\\}", + "replace": "if ( self::$$registered ) {\n\t\t\treturn;\n\t\t}", + "files": "inc/Abilities/**/*.php", + "context": "file" + }, + { + "id": "ternary_registry_guard", + "description": "Replace '(class_exists(WP_Abilities_Registry) ? WP_Abilities_Registry::get_instance() : null)' with a direct call — the ternary is unreachable.", + "find": "class_exists\\( 'WP_Abilities_Registry' \\) \\? \\\\WP_Abilities_Registry::get_instance\\(\\) : null", + "replace": "\\\\WP_Abilities_Registry::get_instance()", + "files": "inc/**/*.php", + "context": "line" + }, + { + "id": "combined_guard_registered_engine", + "description": "Same as combined_guard_registered but catches the one hit in inc/Engine/ (ResolvePendingActionAbility).", + "find": "(?s)if \\( ! class_exists\\( 'WP_Ability' \\) \\|\\| self::\\$registered \\) \\{\n\t+return;\n\t+\\}", + "replace": "if ( self::$$registered ) {\n\t\t\treturn;\n\t\t}", + "files": "inc/Engine/**/*.php", + "context": "file" + } + ] + } + }, "version_targets": [ { "file": "data-machine.php", diff --git a/inc/Abilities/AgentAbilities.php b/inc/Abilities/AgentAbilities.php index 19982e1bb..79fb14e29 100644 --- a/inc/Abilities/AgentAbilities.php +++ b/inc/Abilities/AgentAbilities.php @@ -23,10 +23,6 @@ class AgentAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/AgentMemoryAbilities.php b/inc/Abilities/AgentMemoryAbilities.php index d92fa1575..c6e0cdab1 100644 --- a/inc/Abilities/AgentMemoryAbilities.php +++ b/inc/Abilities/AgentMemoryAbilities.php @@ -22,10 +22,6 @@ class AgentMemoryAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/AgentPing/SendPingAbility.php b/inc/Abilities/AgentPing/SendPingAbility.php index 2c63ce84e..c45a5f377 100644 --- a/inc/Abilities/AgentPing/SendPingAbility.php +++ b/inc/Abilities/AgentPing/SendPingAbility.php @@ -18,10 +18,6 @@ class SendPingAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/AgentPingAbilities.php b/inc/Abilities/AgentPingAbilities.php index efddb3a59..de3db80ed 100644 --- a/inc/Abilities/AgentPingAbilities.php +++ b/inc/Abilities/AgentPingAbilities.php @@ -23,7 +23,7 @@ class AgentPingAbilities { private SendPingAbility $send_ping; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/AgentRemoteCall/AgentRemoteCallAbility.php b/inc/Abilities/AgentRemoteCall/AgentRemoteCallAbility.php index 0b3faa64e..7dca961e9 100644 --- a/inc/Abilities/AgentRemoteCall/AgentRemoteCallAbility.php +++ b/inc/Abilities/AgentRemoteCall/AgentRemoteCallAbility.php @@ -23,10 +23,6 @@ class AgentRemoteCallAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/AgentRemoteCallAbilities.php b/inc/Abilities/AgentRemoteCallAbilities.php index 381585a4f..eb5722769 100644 --- a/inc/Abilities/AgentRemoteCallAbilities.php +++ b/inc/Abilities/AgentRemoteCallAbilities.php @@ -21,7 +21,7 @@ class AgentRemoteCallAbilities { private AgentRemoteCallAbility $remote_call; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/AgentTokenAbilities.php b/inc/Abilities/AgentTokenAbilities.php index 471659d3f..19b8df44c 100644 --- a/inc/Abilities/AgentTokenAbilities.php +++ b/inc/Abilities/AgentTokenAbilities.php @@ -21,7 +21,7 @@ class AgentTokenAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Analytics/BingWebmasterAbilities.php b/inc/Abilities/Analytics/BingWebmasterAbilities.php index 6e7ca8b04..b8a7dc623 100644 --- a/inc/Abilities/Analytics/BingWebmasterAbilities.php +++ b/inc/Abilities/Analytics/BingWebmasterAbilities.php @@ -58,10 +58,6 @@ class BingWebmasterAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Analytics/GoogleAnalyticsAbilities.php b/inc/Abilities/Analytics/GoogleAnalyticsAbilities.php index 2399e1354..991896a24 100644 --- a/inc/Abilities/Analytics/GoogleAnalyticsAbilities.php +++ b/inc/Abilities/Analytics/GoogleAnalyticsAbilities.php @@ -104,10 +104,6 @@ class GoogleAnalyticsAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Analytics/GoogleSearchConsoleAbilities.php b/inc/Abilities/Analytics/GoogleSearchConsoleAbilities.php index 3e39efd5c..d1e3c92ca 100644 --- a/inc/Abilities/Analytics/GoogleSearchConsoleAbilities.php +++ b/inc/Abilities/Analytics/GoogleSearchConsoleAbilities.php @@ -61,10 +61,6 @@ class GoogleSearchConsoleAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Analytics/PageSpeedAbilities.php b/inc/Abilities/Analytics/PageSpeedAbilities.php index 8ac1db90c..5c79877cb 100644 --- a/inc/Abilities/Analytics/PageSpeedAbilities.php +++ b/inc/Abilities/Analytics/PageSpeedAbilities.php @@ -68,10 +68,6 @@ class PageSpeedAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/AuthAbilities.php b/inc/Abilities/AuthAbilities.php index c23933ef3..18594cdab 100644 --- a/inc/Abilities/AuthAbilities.php +++ b/inc/Abilities/AuthAbilities.php @@ -31,7 +31,7 @@ class AuthAbilities { public function __construct() { $this->handler_abilities = new HandlerAbilities(); - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Chat/CreateChatSessionAbility.php b/inc/Abilities/Chat/CreateChatSessionAbility.php index f7de24c5f..c310e1d5d 100644 --- a/inc/Abilities/Chat/CreateChatSessionAbility.php +++ b/inc/Abilities/Chat/CreateChatSessionAbility.php @@ -20,10 +20,6 @@ class CreateChatSessionAbility { public function __construct() { $this->initDatabase(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Chat/DeleteChatSessionAbility.php b/inc/Abilities/Chat/DeleteChatSessionAbility.php index 558a35520..d33ff4d26 100644 --- a/inc/Abilities/Chat/DeleteChatSessionAbility.php +++ b/inc/Abilities/Chat/DeleteChatSessionAbility.php @@ -19,10 +19,6 @@ class DeleteChatSessionAbility { public function __construct() { $this->initDatabase(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Chat/GetChatSessionAbility.php b/inc/Abilities/Chat/GetChatSessionAbility.php index 44423ac7d..b469e8260 100644 --- a/inc/Abilities/Chat/GetChatSessionAbility.php +++ b/inc/Abilities/Chat/GetChatSessionAbility.php @@ -20,10 +20,6 @@ class GetChatSessionAbility { public function __construct() { $this->initDatabase(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Chat/ListChatSessionsAbility.php b/inc/Abilities/Chat/ListChatSessionsAbility.php index 63ce127de..57ad8d43e 100644 --- a/inc/Abilities/Chat/ListChatSessionsAbility.php +++ b/inc/Abilities/Chat/ListChatSessionsAbility.php @@ -19,10 +19,6 @@ class ListChatSessionsAbility { public function __construct() { $this->initDatabase(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Chat/MarkSessionReadAbility.php b/inc/Abilities/Chat/MarkSessionReadAbility.php index 3843a63c1..e517d2e51 100644 --- a/inc/Abilities/Chat/MarkSessionReadAbility.php +++ b/inc/Abilities/Chat/MarkSessionReadAbility.php @@ -21,10 +21,6 @@ class MarkSessionReadAbility { public function __construct() { $this->initDatabase(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Chat/SendMessageAbility.php b/inc/Abilities/Chat/SendMessageAbility.php index 3a056232b..61e71e8b7 100644 --- a/inc/Abilities/Chat/SendMessageAbility.php +++ b/inc/Abilities/Chat/SendMessageAbility.php @@ -25,10 +25,6 @@ class SendMessageAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/ChatAbilities.php b/inc/Abilities/ChatAbilities.php index 28846e600..87dc78c8b 100644 --- a/inc/Abilities/ChatAbilities.php +++ b/inc/Abilities/ChatAbilities.php @@ -31,7 +31,7 @@ class ChatAbilities { private SendMessageAbility $send_message; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Content/EditPostBlocksAbility.php b/inc/Abilities/Content/EditPostBlocksAbility.php index 78502a97f..435481a18 100644 --- a/inc/Abilities/Content/EditPostBlocksAbility.php +++ b/inc/Abilities/Content/EditPostBlocksAbility.php @@ -23,7 +23,7 @@ class EditPostBlocksAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Content/GetPostBlocksAbility.php b/inc/Abilities/Content/GetPostBlocksAbility.php index d5e6143d2..5a892adb6 100644 --- a/inc/Abilities/Content/GetPostBlocksAbility.php +++ b/inc/Abilities/Content/GetPostBlocksAbility.php @@ -21,7 +21,7 @@ class GetPostBlocksAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Content/InsertContentAbility.php b/inc/Abilities/Content/InsertContentAbility.php index 96891e181..f4b7473c3 100644 --- a/inc/Abilities/Content/InsertContentAbility.php +++ b/inc/Abilities/Content/InsertContentAbility.php @@ -24,7 +24,7 @@ class InsertContentAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Content/ReplacePostBlocksAbility.php b/inc/Abilities/Content/ReplacePostBlocksAbility.php index 3b60c0451..801552e9a 100644 --- a/inc/Abilities/Content/ReplacePostBlocksAbility.php +++ b/inc/Abilities/Content/ReplacePostBlocksAbility.php @@ -22,7 +22,7 @@ class ReplacePostBlocksAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Content/UpsertPostAbility.php b/inc/Abilities/Content/UpsertPostAbility.php index 01cc398f3..4087ec552 100644 --- a/inc/Abilities/Content/UpsertPostAbility.php +++ b/inc/Abilities/Content/UpsertPostAbility.php @@ -39,7 +39,7 @@ class UpsertPostAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/DailyMemoryAbilities.php b/inc/Abilities/DailyMemoryAbilities.php index 442d93ac7..c104c6c76 100644 --- a/inc/Abilities/DailyMemoryAbilities.php +++ b/inc/Abilities/DailyMemoryAbilities.php @@ -30,10 +30,6 @@ class DailyMemoryAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/DuplicateCheck/DuplicateCheckAbility.php b/inc/Abilities/DuplicateCheck/DuplicateCheckAbility.php index c998fffc3..28419ebba 100644 --- a/inc/Abilities/DuplicateCheck/DuplicateCheckAbility.php +++ b/inc/Abilities/DuplicateCheck/DuplicateCheckAbility.php @@ -31,10 +31,6 @@ class DuplicateCheckAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Email/EmailAbilities.php b/inc/Abilities/Email/EmailAbilities.php index 04d4e2e60..b7a0191a2 100644 --- a/inc/Abilities/Email/EmailAbilities.php +++ b/inc/Abilities/Email/EmailAbilities.php @@ -22,10 +22,6 @@ class EmailAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Engine/ExecuteStepAbility.php b/inc/Abilities/Engine/ExecuteStepAbility.php index 9e3214d56..17da1b8b2 100644 --- a/inc/Abilities/Engine/ExecuteStepAbility.php +++ b/inc/Abilities/Engine/ExecuteStepAbility.php @@ -30,10 +30,6 @@ class ExecuteStepAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Engine/RunFlowAbility.php b/inc/Abilities/Engine/RunFlowAbility.php index b797e0033..efac29a3a 100644 --- a/inc/Abilities/Engine/RunFlowAbility.php +++ b/inc/Abilities/Engine/RunFlowAbility.php @@ -23,10 +23,6 @@ class RunFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Engine/ScheduleFlowAbility.php b/inc/Abilities/Engine/ScheduleFlowAbility.php index 3faf8309d..bcc62f285 100644 --- a/inc/Abilities/Engine/ScheduleFlowAbility.php +++ b/inc/Abilities/Engine/ScheduleFlowAbility.php @@ -23,10 +23,6 @@ class ScheduleFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Engine/ScheduleNextStepAbility.php b/inc/Abilities/Engine/ScheduleNextStepAbility.php index 3f03cca7f..586f6f18c 100644 --- a/inc/Abilities/Engine/ScheduleNextStepAbility.php +++ b/inc/Abilities/Engine/ScheduleNextStepAbility.php @@ -25,10 +25,6 @@ class ScheduleNextStepAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/EngineAbilities.php b/inc/Abilities/EngineAbilities.php index 5bd39c997..d7b300148 100644 --- a/inc/Abilities/EngineAbilities.php +++ b/inc/Abilities/EngineAbilities.php @@ -29,7 +29,7 @@ class EngineAbilities { private ScheduleFlowAbility $schedule_flow; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/FetchEmailAbility.php b/inc/Abilities/Fetch/FetchEmailAbility.php index ab56df0e7..031a6c913 100644 --- a/inc/Abilities/Fetch/FetchEmailAbility.php +++ b/inc/Abilities/Fetch/FetchEmailAbility.php @@ -27,10 +27,6 @@ class FetchEmailAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/FetchFilesAbility.php b/inc/Abilities/Fetch/FetchFilesAbility.php index 7fa83c7d7..549f1ae8b 100644 --- a/inc/Abilities/Fetch/FetchFilesAbility.php +++ b/inc/Abilities/Fetch/FetchFilesAbility.php @@ -20,10 +20,6 @@ class FetchFilesAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/FetchRssAbility.php b/inc/Abilities/Fetch/FetchRssAbility.php index 5b7b44fe1..053a92625 100644 --- a/inc/Abilities/Fetch/FetchRssAbility.php +++ b/inc/Abilities/Fetch/FetchRssAbility.php @@ -19,10 +19,6 @@ class FetchRssAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/FetchWordPressApiAbility.php b/inc/Abilities/Fetch/FetchWordPressApiAbility.php index f2ae926f0..7c7b26209 100644 --- a/inc/Abilities/Fetch/FetchWordPressApiAbility.php +++ b/inc/Abilities/Fetch/FetchWordPressApiAbility.php @@ -20,10 +20,6 @@ class FetchWordPressApiAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/FetchWordPressMediaAbility.php b/inc/Abilities/Fetch/FetchWordPressMediaAbility.php index be757d629..54872487f 100644 --- a/inc/Abilities/Fetch/FetchWordPressMediaAbility.php +++ b/inc/Abilities/Fetch/FetchWordPressMediaAbility.php @@ -19,10 +19,6 @@ class FetchWordPressMediaAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/GetWordPressPostAbility.php b/inc/Abilities/Fetch/GetWordPressPostAbility.php index 54b604165..d4806de44 100644 --- a/inc/Abilities/Fetch/GetWordPressPostAbility.php +++ b/inc/Abilities/Fetch/GetWordPressPostAbility.php @@ -19,10 +19,6 @@ class GetWordPressPostAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Fetch/QueryWordPressPostsAbility.php b/inc/Abilities/Fetch/QueryWordPressPostsAbility.php index 14e306068..1346e35b0 100644 --- a/inc/Abilities/Fetch/QueryWordPressPostsAbility.php +++ b/inc/Abilities/Fetch/QueryWordPressPostsAbility.php @@ -19,10 +19,6 @@ class QueryWordPressPostsAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/File/AgentFileAbilities.php b/inc/Abilities/File/AgentFileAbilities.php index 5b1a3072b..34ccd2d93 100644 --- a/inc/Abilities/File/AgentFileAbilities.php +++ b/inc/Abilities/File/AgentFileAbilities.php @@ -30,10 +30,6 @@ class AgentFileAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/File/FlowFileAbilities.php b/inc/Abilities/File/FlowFileAbilities.php index 1386d98b4..10e5e9254 100644 --- a/inc/Abilities/File/FlowFileAbilities.php +++ b/inc/Abilities/File/FlowFileAbilities.php @@ -31,10 +31,6 @@ public function __construct() { $this->file_cleanup = new FileCleanup(); $this->db_flows = new Flows(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/File/ScaffoldAbilities.php b/inc/Abilities/File/ScaffoldAbilities.php index 17114bb06..f87b7649b 100644 --- a/inc/Abilities/File/ScaffoldAbilities.php +++ b/inc/Abilities/File/ScaffoldAbilities.php @@ -31,10 +31,6 @@ class ScaffoldAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } @@ -117,9 +113,6 @@ private function registerScaffoldMemoryFile(): void { * @return \WP_Ability|null The scaffold ability, or null if not available. */ public static function get_ability(): ?\WP_Ability { - if ( ! class_exists( 'WP_Abilities_Registry' ) ) { - return null; - } if ( ! \WP_Abilities_Registry::get_instance()->is_registered( 'datamachine/scaffold-memory-file' ) ) { return null; } diff --git a/inc/Abilities/Flow/CreateFlowAbility.php b/inc/Abilities/Flow/CreateFlowAbility.php index db94630c2..1dce1170c 100644 --- a/inc/Abilities/Flow/CreateFlowAbility.php +++ b/inc/Abilities/Flow/CreateFlowAbility.php @@ -21,10 +21,6 @@ class CreateFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/DeleteFlowAbility.php b/inc/Abilities/Flow/DeleteFlowAbility.php index feec941bb..187698ab9 100644 --- a/inc/Abilities/Flow/DeleteFlowAbility.php +++ b/inc/Abilities/Flow/DeleteFlowAbility.php @@ -19,10 +19,6 @@ class DeleteFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/DuplicateFlowAbility.php b/inc/Abilities/Flow/DuplicateFlowAbility.php index 82cdcaf8b..e0d2a5030 100644 --- a/inc/Abilities/Flow/DuplicateFlowAbility.php +++ b/inc/Abilities/Flow/DuplicateFlowAbility.php @@ -21,10 +21,6 @@ class DuplicateFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/GetFlowsAbility.php b/inc/Abilities/Flow/GetFlowsAbility.php index 20888a895..634d19b20 100644 --- a/inc/Abilities/Flow/GetFlowsAbility.php +++ b/inc/Abilities/Flow/GetFlowsAbility.php @@ -24,10 +24,6 @@ class GetFlowsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/PauseFlowAbility.php b/inc/Abilities/Flow/PauseFlowAbility.php index 6ce73a298..33a99b4ef 100644 --- a/inc/Abilities/Flow/PauseFlowAbility.php +++ b/inc/Abilities/Flow/PauseFlowAbility.php @@ -28,10 +28,6 @@ class PauseFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/QueueAbility.php b/inc/Abilities/Flow/QueueAbility.php index 0eaf43659..13314273d 100644 --- a/inc/Abilities/Flow/QueueAbility.php +++ b/inc/Abilities/Flow/QueueAbility.php @@ -23,10 +23,6 @@ class QueueAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbilities(); } diff --git a/inc/Abilities/Flow/ResumeFlowAbility.php b/inc/Abilities/Flow/ResumeFlowAbility.php index a8a6dc6f3..ee8afa3aa 100644 --- a/inc/Abilities/Flow/ResumeFlowAbility.php +++ b/inc/Abilities/Flow/ResumeFlowAbility.php @@ -27,10 +27,6 @@ class ResumeFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/UpdateFlowAbility.php b/inc/Abilities/Flow/UpdateFlowAbility.php index 68436b00e..ef4d71901 100644 --- a/inc/Abilities/Flow/UpdateFlowAbility.php +++ b/inc/Abilities/Flow/UpdateFlowAbility.php @@ -21,10 +21,6 @@ class UpdateFlowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Flow/WebhookTriggerAbility.php b/inc/Abilities/Flow/WebhookTriggerAbility.php index cc157bf2e..7a16b5dcf 100644 --- a/inc/Abilities/Flow/WebhookTriggerAbility.php +++ b/inc/Abilities/Flow/WebhookTriggerAbility.php @@ -30,10 +30,6 @@ class WebhookTriggerAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbilities(); } diff --git a/inc/Abilities/FlowAbilities.php b/inc/Abilities/FlowAbilities.php index 1919ff05d..56a4c54f2 100644 --- a/inc/Abilities/FlowAbilities.php +++ b/inc/Abilities/FlowAbilities.php @@ -40,7 +40,7 @@ class FlowAbilities { private WebhookTriggerAbility $webhook_trigger; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/FlowStep/ConfigureFlowStepsAbility.php b/inc/Abilities/FlowStep/ConfigureFlowStepsAbility.php index b5d4fd140..95a9de6a7 100644 --- a/inc/Abilities/FlowStep/ConfigureFlowStepsAbility.php +++ b/inc/Abilities/FlowStep/ConfigureFlowStepsAbility.php @@ -20,10 +20,6 @@ class ConfigureFlowStepsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/FlowStep/GetFlowStepsAbility.php b/inc/Abilities/FlowStep/GetFlowStepsAbility.php index 7c25fe456..7b86dc7b4 100644 --- a/inc/Abilities/FlowStep/GetFlowStepsAbility.php +++ b/inc/Abilities/FlowStep/GetFlowStepsAbility.php @@ -19,10 +19,6 @@ class GetFlowStepsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/FlowStep/UpdateFlowStepAbility.php b/inc/Abilities/FlowStep/UpdateFlowStepAbility.php index aec315e8a..390d62e33 100644 --- a/inc/Abilities/FlowStep/UpdateFlowStepAbility.php +++ b/inc/Abilities/FlowStep/UpdateFlowStepAbility.php @@ -19,10 +19,6 @@ class UpdateFlowStepAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/FlowStep/ValidateFlowStepsConfigAbility.php b/inc/Abilities/FlowStep/ValidateFlowStepsConfigAbility.php index 24bcbd620..faca13ff5 100644 --- a/inc/Abilities/FlowStep/ValidateFlowStepsConfigAbility.php +++ b/inc/Abilities/FlowStep/ValidateFlowStepsConfigAbility.php @@ -20,10 +20,6 @@ class ValidateFlowStepsConfigAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/FlowStepAbilities.php b/inc/Abilities/FlowStepAbilities.php index 6b6a3e487..2f31f8095 100644 --- a/inc/Abilities/FlowStepAbilities.php +++ b/inc/Abilities/FlowStepAbilities.php @@ -30,7 +30,7 @@ class FlowStepAbilities { private ValidateFlowStepsConfigAbility $validate_flow_steps_config; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Handler/TestHandlerAbility.php b/inc/Abilities/Handler/TestHandlerAbility.php index 6e9b788d9..76f7333f9 100644 --- a/inc/Abilities/Handler/TestHandlerAbility.php +++ b/inc/Abilities/Handler/TestHandlerAbility.php @@ -23,10 +23,6 @@ class TestHandlerAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/HandlerAbilities.php b/inc/Abilities/HandlerAbilities.php index 62a1b5383..18aa4800d 100644 --- a/inc/Abilities/HandlerAbilities.php +++ b/inc/Abilities/HandlerAbilities.php @@ -53,10 +53,6 @@ class HandlerAbilities { private static ?array $site_defaults_cache = null; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/InternalLinkingAbilities.php b/inc/Abilities/InternalLinkingAbilities.php index 294cf0ce0..593473c14 100644 --- a/inc/Abilities/InternalLinkingAbilities.php +++ b/inc/Abilities/InternalLinkingAbilities.php @@ -54,10 +54,6 @@ class InternalLinkingAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Job/DeleteJobsAbility.php b/inc/Abilities/Job/DeleteJobsAbility.php index 680576943..b43e01753 100644 --- a/inc/Abilities/Job/DeleteJobsAbility.php +++ b/inc/Abilities/Job/DeleteJobsAbility.php @@ -19,10 +19,6 @@ class DeleteJobsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/ExecuteWorkflowAbility.php b/inc/Abilities/Job/ExecuteWorkflowAbility.php index 29bbd7072..70c9a0bf4 100644 --- a/inc/Abilities/Job/ExecuteWorkflowAbility.php +++ b/inc/Abilities/Job/ExecuteWorkflowAbility.php @@ -22,10 +22,6 @@ class ExecuteWorkflowAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/FailJobAbility.php b/inc/Abilities/Job/FailJobAbility.php index 10ae40db8..b37d6fed4 100644 --- a/inc/Abilities/Job/FailJobAbility.php +++ b/inc/Abilities/Job/FailJobAbility.php @@ -19,10 +19,6 @@ class FailJobAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/FlowHealthAbility.php b/inc/Abilities/Job/FlowHealthAbility.php index 52b203607..af050affb 100644 --- a/inc/Abilities/Job/FlowHealthAbility.php +++ b/inc/Abilities/Job/FlowHealthAbility.php @@ -19,10 +19,6 @@ class FlowHealthAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/GetJobsAbility.php b/inc/Abilities/Job/GetJobsAbility.php index 119e260d3..07c61cff9 100644 --- a/inc/Abilities/Job/GetJobsAbility.php +++ b/inc/Abilities/Job/GetJobsAbility.php @@ -21,10 +21,6 @@ class GetJobsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/JobsSummaryAbility.php b/inc/Abilities/Job/JobsSummaryAbility.php index 45120e776..9cbaf38f4 100644 --- a/inc/Abilities/Job/JobsSummaryAbility.php +++ b/inc/Abilities/Job/JobsSummaryAbility.php @@ -19,10 +19,6 @@ class JobsSummaryAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/ProblemFlowsAbility.php b/inc/Abilities/Job/ProblemFlowsAbility.php index d1918394e..3a31ebc1b 100644 --- a/inc/Abilities/Job/ProblemFlowsAbility.php +++ b/inc/Abilities/Job/ProblemFlowsAbility.php @@ -21,10 +21,6 @@ class ProblemFlowsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/RecoverStuckJobsAbility.php b/inc/Abilities/Job/RecoverStuckJobsAbility.php index e5c332a55..e7a2dc71d 100644 --- a/inc/Abilities/Job/RecoverStuckJobsAbility.php +++ b/inc/Abilities/Job/RecoverStuckJobsAbility.php @@ -21,10 +21,6 @@ class RecoverStuckJobsAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Job/RetryJobAbility.php b/inc/Abilities/Job/RetryJobAbility.php index 0950370c2..e5bce4a02 100644 --- a/inc/Abilities/Job/RetryJobAbility.php +++ b/inc/Abilities/Job/RetryJobAbility.php @@ -19,10 +19,6 @@ class RetryJobAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/JobAbilities.php b/inc/Abilities/JobAbilities.php index 0d03b6326..d8b42b2aa 100644 --- a/inc/Abilities/JobAbilities.php +++ b/inc/Abilities/JobAbilities.php @@ -40,7 +40,7 @@ class JobAbilities { private RetryJobAbility $retry_job; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/LocalSearchAbilities.php b/inc/Abilities/LocalSearchAbilities.php index fd2b3755d..7c64cdfd7 100644 --- a/inc/Abilities/LocalSearchAbilities.php +++ b/inc/Abilities/LocalSearchAbilities.php @@ -23,10 +23,6 @@ class LocalSearchAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/LogAbilities.php b/inc/Abilities/LogAbilities.php index a78d8eb02..d69fbec2e 100644 --- a/inc/Abilities/LogAbilities.php +++ b/inc/Abilities/LogAbilities.php @@ -20,10 +20,6 @@ class LogAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Media/AltTextAbilities.php b/inc/Abilities/Media/AltTextAbilities.php index 38b9010c0..1ba80d37d 100644 --- a/inc/Abilities/Media/AltTextAbilities.php +++ b/inc/Abilities/Media/AltTextAbilities.php @@ -25,10 +25,6 @@ class AltTextAbilities { public function __construct() { $this->registerHooks(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Media/ImageGenerationAbilities.php b/inc/Abilities/Media/ImageGenerationAbilities.php index e308c40da..92bb6ffee 100644 --- a/inc/Abilities/Media/ImageGenerationAbilities.php +++ b/inc/Abilities/Media/ImageGenerationAbilities.php @@ -56,10 +56,6 @@ class ImageGenerationAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Media/ImageOptimizationAbilities.php b/inc/Abilities/Media/ImageOptimizationAbilities.php index b0b3f1871..dd42420ac 100644 --- a/inc/Abilities/Media/ImageOptimizationAbilities.php +++ b/inc/Abilities/Media/ImageOptimizationAbilities.php @@ -32,10 +32,6 @@ class ImageOptimizationAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Media/ImageTemplateAbilities.php b/inc/Abilities/Media/ImageTemplateAbilities.php index 7b602aaa2..2330c148e 100644 --- a/inc/Abilities/Media/ImageTemplateAbilities.php +++ b/inc/Abilities/Media/ImageTemplateAbilities.php @@ -20,11 +20,7 @@ class ImageTemplateAbilities { private static bool $registered = false; - public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { + public function __construct() { if ( self::$registered ) { return; } $this->registerAbilities(); diff --git a/inc/Abilities/Media/MediaAbilities.php b/inc/Abilities/Media/MediaAbilities.php index 5a2b02411..22a35802b 100644 --- a/inc/Abilities/Media/MediaAbilities.php +++ b/inc/Abilities/Media/MediaAbilities.php @@ -32,10 +32,6 @@ class MediaAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Pipeline/CreatePipelineAbility.php b/inc/Abilities/Pipeline/CreatePipelineAbility.php index 27e477063..d5980b289 100644 --- a/inc/Abilities/Pipeline/CreatePipelineAbility.php +++ b/inc/Abilities/Pipeline/CreatePipelineAbility.php @@ -21,10 +21,6 @@ class CreatePipelineAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Pipeline/DeletePipelineAbility.php b/inc/Abilities/Pipeline/DeletePipelineAbility.php index 27a448a7e..955809ad2 100644 --- a/inc/Abilities/Pipeline/DeletePipelineAbility.php +++ b/inc/Abilities/Pipeline/DeletePipelineAbility.php @@ -21,10 +21,6 @@ class DeletePipelineAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Pipeline/DuplicatePipelineAbility.php b/inc/Abilities/Pipeline/DuplicatePipelineAbility.php index 6094d1e02..2803b73f2 100644 --- a/inc/Abilities/Pipeline/DuplicatePipelineAbility.php +++ b/inc/Abilities/Pipeline/DuplicatePipelineAbility.php @@ -19,10 +19,6 @@ class DuplicatePipelineAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Pipeline/GetPipelinesAbility.php b/inc/Abilities/Pipeline/GetPipelinesAbility.php index 76eb6392d..37d06b26a 100644 --- a/inc/Abilities/Pipeline/GetPipelinesAbility.php +++ b/inc/Abilities/Pipeline/GetPipelinesAbility.php @@ -21,10 +21,6 @@ class GetPipelinesAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Pipeline/ImportExportAbility.php b/inc/Abilities/Pipeline/ImportExportAbility.php index ff00920f7..2ba38244f 100644 --- a/inc/Abilities/Pipeline/ImportExportAbility.php +++ b/inc/Abilities/Pipeline/ImportExportAbility.php @@ -21,10 +21,6 @@ class ImportExportAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbilities(); } diff --git a/inc/Abilities/Pipeline/UpdatePipelineAbility.php b/inc/Abilities/Pipeline/UpdatePipelineAbility.php index 1f1cb9bc8..3d414f5a0 100644 --- a/inc/Abilities/Pipeline/UpdatePipelineAbility.php +++ b/inc/Abilities/Pipeline/UpdatePipelineAbility.php @@ -19,10 +19,6 @@ class UpdatePipelineAbility { public function __construct() { $this->initDatabases(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/PipelineAbilities.php b/inc/Abilities/PipelineAbilities.php index 52a2df19f..fa76a7499 100644 --- a/inc/Abilities/PipelineAbilities.php +++ b/inc/Abilities/PipelineAbilities.php @@ -34,7 +34,7 @@ class PipelineAbilities { private ImportExportAbility $import_export; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/PipelineStepAbilities.php b/inc/Abilities/PipelineStepAbilities.php index a161a3056..5f43579e6 100644 --- a/inc/Abilities/PipelineStepAbilities.php +++ b/inc/Abilities/PipelineStepAbilities.php @@ -32,7 +32,7 @@ public function __construct() { $this->db_flows = new Flows(); $this->db_processed_items = new ProcessedItems(); - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/PostQueryAbilities.php b/inc/Abilities/PostQueryAbilities.php index 6b3718313..4c84373c2 100644 --- a/inc/Abilities/PostQueryAbilities.php +++ b/inc/Abilities/PostQueryAbilities.php @@ -65,10 +65,6 @@ private static function build_pipeline_meta_query( int $pipeline_id ): ?array { } public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/ProcessedItemsAbilities.php b/inc/Abilities/ProcessedItemsAbilities.php index 8779c5173..cf773efcb 100644 --- a/inc/Abilities/ProcessedItemsAbilities.php +++ b/inc/Abilities/ProcessedItemsAbilities.php @@ -27,10 +27,6 @@ class ProcessedItemsAbilities { public function __construct() { $this->db_processed_items = new ProcessedItems(); - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Publish/PublishWordPressAbility.php b/inc/Abilities/Publish/PublishWordPressAbility.php index 13112b5d8..79e3f8d34 100644 --- a/inc/Abilities/Publish/PublishWordPressAbility.php +++ b/inc/Abilities/Publish/PublishWordPressAbility.php @@ -21,10 +21,6 @@ class PublishWordPressAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Publish/SendEmailAbility.php b/inc/Abilities/Publish/SendEmailAbility.php index bf8dce356..d6c2ffbc9 100644 --- a/inc/Abilities/Publish/SendEmailAbility.php +++ b/inc/Abilities/Publish/SendEmailAbility.php @@ -24,10 +24,6 @@ class SendEmailAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/SEO/IndexNowAbilities.php b/inc/Abilities/SEO/IndexNowAbilities.php index b4e670b53..37a4f7e8c 100644 --- a/inc/Abilities/SEO/IndexNowAbilities.php +++ b/inc/Abilities/SEO/IndexNowAbilities.php @@ -55,9 +55,7 @@ class IndexNowAbilities { * Constructor. */ public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { - $this->register_hooks(); - self::$registered = true; + if ( self::$registered ) { return; } diff --git a/inc/Abilities/SEO/MetaDescriptionAbilities.php b/inc/Abilities/SEO/MetaDescriptionAbilities.php index 66e7ab247..4e3a7bee7 100644 --- a/inc/Abilities/SEO/MetaDescriptionAbilities.php +++ b/inc/Abilities/SEO/MetaDescriptionAbilities.php @@ -25,10 +25,6 @@ class MetaDescriptionAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/SettingsAbilities.php b/inc/Abilities/SettingsAbilities.php index 8d36d1d85..dcbaf42e2 100644 --- a/inc/Abilities/SettingsAbilities.php +++ b/inc/Abilities/SettingsAbilities.php @@ -27,10 +27,6 @@ class SettingsAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/StepTypeAbilities.php b/inc/Abilities/StepTypeAbilities.php index de9cc22f5..9706f57f4 100644 --- a/inc/Abilities/StepTypeAbilities.php +++ b/inc/Abilities/StepTypeAbilities.php @@ -27,10 +27,6 @@ class StepTypeAbilities { private static ?array $cache = null; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/SystemAbilities.php b/inc/Abilities/SystemAbilities.php index 3e626b038..0939aad1e 100644 --- a/inc/Abilities/SystemAbilities.php +++ b/inc/Abilities/SystemAbilities.php @@ -27,10 +27,6 @@ class SystemAbilities { private static bool $registered = false; public function __construct() { - if ( ! class_exists('WP_Ability') ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Abilities/Taxonomy/CreateTaxonomyTermAbility.php b/inc/Abilities/Taxonomy/CreateTaxonomyTermAbility.php index f3af3fbb9..f71f1bceb 100644 --- a/inc/Abilities/Taxonomy/CreateTaxonomyTermAbility.php +++ b/inc/Abilities/Taxonomy/CreateTaxonomyTermAbility.php @@ -19,10 +19,6 @@ class CreateTaxonomyTermAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Taxonomy/DeleteTaxonomyTermAbility.php b/inc/Abilities/Taxonomy/DeleteTaxonomyTermAbility.php index 602f6b73d..c226e3941 100644 --- a/inc/Abilities/Taxonomy/DeleteTaxonomyTermAbility.php +++ b/inc/Abilities/Taxonomy/DeleteTaxonomyTermAbility.php @@ -19,10 +19,6 @@ class DeleteTaxonomyTermAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Taxonomy/GetTaxonomyTermsAbility.php b/inc/Abilities/Taxonomy/GetTaxonomyTermsAbility.php index 8c4252c92..00c6d558c 100644 --- a/inc/Abilities/Taxonomy/GetTaxonomyTermsAbility.php +++ b/inc/Abilities/Taxonomy/GetTaxonomyTermsAbility.php @@ -19,10 +19,6 @@ class GetTaxonomyTermsAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Taxonomy/ResolveTermAbility.php b/inc/Abilities/Taxonomy/ResolveTermAbility.php index 710950b2e..40e68d7d5 100644 --- a/inc/Abilities/Taxonomy/ResolveTermAbility.php +++ b/inc/Abilities/Taxonomy/ResolveTermAbility.php @@ -21,10 +21,6 @@ class ResolveTermAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/Taxonomy/UpdateTaxonomyTermAbility.php b/inc/Abilities/Taxonomy/UpdateTaxonomyTermAbility.php index 9c0f316fc..4ed2d0855 100644 --- a/inc/Abilities/Taxonomy/UpdateTaxonomyTermAbility.php +++ b/inc/Abilities/Taxonomy/UpdateTaxonomyTermAbility.php @@ -19,10 +19,6 @@ class UpdateTaxonomyTermAbility { public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - $this->registerAbility(); } diff --git a/inc/Abilities/TaxonomyAbilities.php b/inc/Abilities/TaxonomyAbilities.php index d2da8bf47..3c485ba7d 100644 --- a/inc/Abilities/TaxonomyAbilities.php +++ b/inc/Abilities/TaxonomyAbilities.php @@ -32,7 +32,7 @@ class TaxonomyAbilities { private ResolveTermAbility $resolve_term; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) || self::$registered ) { + if ( self::$registered ) { return; } diff --git a/inc/Abilities/Update/UpdateWordPressAbility.php b/inc/Abilities/Update/UpdateWordPressAbility.php index 7d42aedb2..0c7d26e6c 100644 --- a/inc/Abilities/Update/UpdateWordPressAbility.php +++ b/inc/Abilities/Update/UpdateWordPressAbility.php @@ -25,10 +25,6 @@ class UpdateWordPressAbility { private static bool $registered = false; public function __construct() { - if ( ! class_exists( 'WP_Ability' ) ) { - return; - } - if ( self::$registered ) { return; } diff --git a/inc/Core/Steps/Publish/Handlers/WordPress/WordPress.php b/inc/Core/Steps/Publish/Handlers/WordPress/WordPress.php index 22cf2d22a..13b54822f 100644 --- a/inc/Core/Steps/Publish/Handlers/WordPress/WordPress.php +++ b/inc/Core/Steps/Publish/Handlers/WordPress/WordPress.php @@ -12,7 +12,7 @@ use DataMachine\Core\Steps\Publish\Handlers\PublishHandler; use DataMachine\Core\Steps\HandlerRegistrationTrait; use DataMachine\Core\Selection\SelectionMode; -use DataMachine\Core\WordPress\DuplicateDetection; + use DataMachine\Core\WordPress\TaxonomyHandler; use DataMachine\Core\WordPress\WordPressSettingsResolver; use DataMachine\Core\WordPress\WordPressPublishHelper; @@ -122,7 +122,7 @@ protected function executePublish( array $parameters, array $handler_config ): a $post_type = $handler_config['post_type'] ?? ''; if ( ! empty( $title ) && ! empty( $post_type ) ) { - $lookback_days = (int) ( $handler_config['dedup_lookback_days'] ?? DuplicateDetection::DEFAULT_LOOKBACK_DAYS ); + $lookback_days = (int) ( $handler_config['dedup_lookback_days'] ?? 14 ); $duplicate_check = wp_get_ability( 'datamachine/check-duplicate' ); $source_url = $engine->getSourceUrl(); $existing_id = null; @@ -148,10 +148,6 @@ protected function executePublish( array $parameters, array $handler_config ): a } } - if ( ! $existing_id ) { - $existing_id = DuplicateDetection::findExistingPostByTitle( $title, $post_type, $lookback_days ); - } - if ( $existing_id ) { $this->log( 'info', diff --git a/inc/Core/WordPress/DuplicateDetection.php b/inc/Core/WordPress/DuplicateDetection.php deleted file mode 100644 index a29df35e9..000000000 --- a/inc/Core/WordPress/DuplicateDetection.php +++ /dev/null @@ -1,128 +0,0 @@ - $post_type, - 'post_status' => array( 'publish', 'draft', 'pending' ), - // phpcs:ignore WordPress.WP.PostsPerPage.posts_per_page_posts_per_page -- intentional batch query - 'posts_per_page' => 200, - 'date_query' => array( - array( - 'after' => $cutoff_date, - 'inclusive' => true, - ), - ), - 'fields' => 'ids', - 'no_found_rows' => true, - ) - ); - - if ( empty( $candidates ) ) { - return null; - } - - foreach ( $candidates as $candidate_id ) { - $candidate_title = get_the_title( $candidate_id ); - if ( self::titlesMatch( $title, $candidate_title ) ) { - do_action( - 'datamachine_log', - 'info', - 'DuplicateDetection: Found existing post with matching title', - array( - 'incoming_title' => $title, - 'incoming_core' => self::extractCoreTitle( $title ), - 'existing_id' => $candidate_id, - 'existing_title' => $candidate_title, - 'existing_core' => self::extractCoreTitle( $candidate_title ), - ) - ); - return $candidate_id; - } - } - - return null; - } - - /** - * Compare two titles for semantic match. - * - * Delegates to SimilarityEngine::titlesMatch(). - * - * @param string $title1 First title. - * @param string $title2 Second title. - * @return bool True if titles represent the same story. - */ - public static function titlesMatch( string $title1, string $title2 ): bool { - return SimilarityEngine::titlesMatch( $title1, $title2 )->match; - } - - /** - * Extract the core identifying portion of a title. - * - * Delegates to SimilarityEngine::normalizeTitle(). - * - * @param string $title Post title. - * @return string Normalized core title for comparison. - */ - public static function extractCoreTitle( string $title ): string { - return SimilarityEngine::normalizeTitle( $title ); - } - - /** - * Normalize unicode dash characters to ASCII hyphen. - * - * Delegates to SimilarityEngine::normalizeDashes(). - * - * @param string $text Input text. - * @return string Text with all dashes normalized. - */ - public static function normalizeDashes( string $text ): string { - return SimilarityEngine::normalizeDashes( $text ); - } -} diff --git a/inc/Core/WordPress/SiteContext.php b/inc/Core/WordPress/SiteContext.php deleted file mode 100644 index 36ee75a06..000000000 --- a/inc/Core/WordPress/SiteContext.php +++ /dev/null @@ -1,50 +0,0 @@ -resolve( - array( - 'mode' => ToolPolicyResolver::MODE_PIPELINE, - 'previous_step_config' => $previous_step_config, - 'next_step_config' => $next_step_config, - 'pipeline_step_id' => $current_pipeline_step_id, - 'engine_data' => $engine_data, - ) - ); - } - /** * Execute tool with parameter merging and comprehensive error handling. * Builds complete parameters by combining AI parameters with step payload. diff --git a/inc/Engine/AI/Tools/ToolManager.php b/inc/Engine/AI/Tools/ToolManager.php index 410f42164..210376dd0 100644 --- a/inc/Engine/AI/Tools/ToolManager.php +++ b/inc/Engine/AI/Tools/ToolManager.php @@ -642,24 +642,6 @@ public function get_tools_for_api( ?string $mode = null ): array { return $formatted; } - /** - * Get all available tools for chat mode. - * - * @deprecated 0.39.0 Use ToolPolicyResolver::resolve() with MODE_CHAT instead. - * Delegates to ToolPolicyResolver internally. - * - * @return array Available tools for chat agents - */ - public function getAvailableToolsForChat(): array { - $resolver = new ToolPolicyResolver( $this ); - - return $resolver->resolve( - array( - 'mode' => ToolPolicyResolver::MODE_CHAT, - ) - ); - } - /** * Get the number of parameters a callable accepts. * diff --git a/inc/Engine/AI/Tools/ToolPolicyResolver.php b/inc/Engine/AI/Tools/ToolPolicyResolver.php index a562f5d98..cbfec8e3c 100644 --- a/inc/Engine/AI/Tools/ToolPolicyResolver.php +++ b/inc/Engine/AI/Tools/ToolPolicyResolver.php @@ -159,9 +159,7 @@ public function resolve( array $args ): array { * @return array Filtered tools. */ private function filterByAbilityPermissions( array $tools ): array { - $registry = function_exists( 'WP_Abilities_Registry' ) - ? null - : ( class_exists( 'WP_Abilities_Registry' ) ? \WP_Abilities_Registry::get_instance() : null ); + $registry = \WP_Abilities_Registry::get_instance(); $filtered = array(); @@ -401,7 +399,7 @@ private function filterByAbilityCategories( array $tools, array $categories ): a return $tools; } - $registry = class_exists( 'WP_Abilities_Registry' ) ? \WP_Abilities_Registry::get_instance() : null; + $registry = \WP_Abilities_Registry::get_instance(); $categories_flip = array_flip( $categories ); $filtered = array(); @@ -552,7 +550,7 @@ public function applyAgentPolicy( array $tools, ?array $policy ): array { } // Category-aware filtering: check both tool names and categories. - $registry = class_exists( 'WP_Abilities_Registry' ) ? \WP_Abilities_Registry::get_instance() : null; + $registry = \WP_Abilities_Registry::get_instance(); $tool_names_flip = ! empty( $tool_names ) ? array_flip( $tool_names ) : array(); $categories_flip = array_flip( $policy_categories ); $filtered = array(); diff --git a/inc/Engine/Actions/Handlers/LogHandler.php b/inc/Engine/Actions/Handlers/LogHandler.php index af2c704b4..ce3dca9cb 100644 --- a/inc/Engine/Actions/Handlers/LogHandler.php +++ b/inc/Engine/Actions/Handlers/LogHandler.php @@ -29,21 +29,18 @@ public static function handle( $level, $message = null, $context = null ) { $valid_levels = datamachine_get_valid_log_levels(); if ( ! in_array( $level, $valid_levels, true ) ) { - if ( class_exists( 'WP_Ability' ) ) { - $ability = wp_get_ability( 'datamachine/write-to-log' ); - if ( ! $ability ) { - return false; - } - $result = $ability->execute( - array( - 'level' => $level, - 'message' => $message, - 'context' => $context, - ) - ); - return ! is_wp_error( $result ); + $ability = wp_get_ability( 'datamachine/write-to-log' ); + if ( ! $ability ) { + return false; } - return false; + $result = $ability->execute( + array( + 'level' => $level, + 'message' => $message, + 'context' => $context, + ) + ); + return ! is_wp_error( $result ); } $function_name = 'datamachine_log_' . $level; diff --git a/tests/Unit/AI/Tools/ToolPolicyResolverTest.php b/tests/Unit/AI/Tools/ToolPolicyResolverTest.php index d0180bb88..7c2ca4399 100644 --- a/tests/Unit/AI/Tools/ToolPolicyResolverTest.php +++ b/tests/Unit/AI/Tools/ToolPolicyResolverTest.php @@ -514,32 +514,6 @@ public function test_getModes_returns_all_three_presets(): void { $this->assertCount( 3, $modes ); } - // ============================================ - // DEPRECATED METHOD DELEGATION - // ============================================ - - public function test_deprecated_executor_delegates_to_resolver(): void { - $executor_tools = \DataMachine\Engine\AI\Tools\ToolExecutor::getAvailableTools( null, null, null, array() ); - $resolver_tools = $this->resolver->resolve( - array( - 'mode' => ToolPolicyResolver::MODE_PIPELINE, - ) - ); - - $this->assertSame( $executor_tools, $resolver_tools ); - } - - public function test_deprecated_manager_delegates_to_resolver(): void { - $manager_tools = ( new ToolManager() )->getAvailableToolsForChat(); - $resolver_tools = $this->resolver->resolve( - array( - 'mode' => ToolPolicyResolver::MODE_CHAT, - ) - ); - - $this->assertSame( $manager_tools, $resolver_tools ); - } - // ============================================ // AGENT TOOL POLICY // ============================================