'object', 'properties' => [], 'additionalProperties' => false]; } public function outputSchema(): ?array { return [ 'type' => 'object', 'properties' => [ 'site' => ['type' => 'object'], 'wordpress' => ['type' => 'string'], 'user' => ['type' => 'object'], 'allowed_roles' => ['type' => 'array', 'items' => ['type' => 'string']], 'components' => ['type' => 'array'], ], 'required' => ['site', 'wordpress', 'user', 'allowed_roles', 'components'], ]; } public function annotations(): array { return Annotations::read(); } public function isDirect(): bool { return true; } public function permission(array $input): bool|WP_Error { return true; } public function execute(array $input): mixed { $user = wp_get_current_user(); return [ 'site' => ['name' => get_bloginfo('name'), 'url' => home_url()], 'wordpress' => get_bloginfo('version'), 'user' => ['id' => $user->ID, 'roles' => array_values($user->roles)], 'allowed_roles' => $this->access->allowedRoles(), 'components' => $this->probe->components(), ]; } }