$settings */ /** @var array $admin_ui_settings */ /** @var array|null $latest_report */ /** @var list> $findings */ /** @var list $content_preview */ /** @var int $preview_page */ /** @var int $preview_per_page */ /** @var int $preview_total */ /** @var list $metadata_inventory */ /** @var array $metadata_defaults */ /** @var WP_Post|null $metadata_detail_post */ /** @var array|null $metadata_detail_config */ /** @var array|null $artifact_preview */ /** @var bool $artifact_preview_stale */ /** @var array{added: list, removed: list, changed: list, metadataChanged: bool} $artifact_change_summary */ /** @var list> $artifact_revisions */ /** @var int $metadata_page */ /** @var int $metadata_content_id */ /** @var array|null $pairing_preview */ /** @var array|null $snapshot_preview */ /** @var string|null $snapshot_preview_bytes */ /** @var array $outbound_excluded_categories */ /** @var string $report_fetched_at */ /** @var array{ * submitted: bool, * inputMode: string, * input: string, * dedupeMode: string, * error: string, * plan: array{ * schemaVersion: string, * prepared: list, * rejected: list * } * }|null $resolution_preview */ if (!defined('ABSPATH')) { exit; } // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Sanitized admin notice flash query args. $thedotdev_agentic_bridge_notice = isset($_GET['thedotdev_agentic_bridge_notice']) ? sanitize_text_field(wp_unslash((string) $_GET['thedotdev_agentic_bridge_notice'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Sanitized admin notice flash query args. $thedotdev_agentic_bridge_notice_type = isset($_GET['thedotdev_agentic_bridge_notice_type']) ? sanitize_key((string) wp_unslash($_GET['thedotdev_agentic_bridge_notice_type'])) : 'success'; $thedotdev_agentic_bridge_excluded_ids = TheDotDevAgenticBridge_Content_Policy::excluded_content_ids(); $thedotdev_agentic_bridge_preview_page = $preview_page ?? 1; $thedotdev_agentic_bridge_preview_per_page = $preview_per_page ?? TheDotDevAgenticBridge_Content_Policy::PREVIEW_PER_PAGE; $thedotdev_agentic_bridge_preview_total = $preview_total ?? 0; $thedotdev_agentic_bridge_preview_page_count = $preview_page_count ?? 1; $thedotdev_agentic_bridge_preview_start = $thedotdev_agentic_bridge_preview_total === 0 ? 0 : (($thedotdev_agentic_bridge_preview_page - 1) * $thedotdev_agentic_bridge_preview_per_page) + 1; $thedotdev_agentic_bridge_preview_end = min($thedotdev_agentic_bridge_preview_page * $thedotdev_agentic_bridge_preview_per_page, $thedotdev_agentic_bridge_preview_total); $thedotdev_agentic_bridge_preview_base_url = admin_url('admin.php'); $thedotdev_agentic_bridge_metadata_page = $metadata_page ?? 1; $thedotdev_agentic_bridge_metadata_page_count = $metadata_page_count ?? 1; $thedotdev_agentic_bridge_metadata_search = $metadata_search ?? ''; $thedotdev_agentic_bridge_metadata_filter = $metadata_filter ?? ''; $thedotdev_agentic_bridge_metadata_content_id = $metadata_content_id ?? 0; $thedotdev_agentic_bridge_metadata_inventory = $metadata_inventory ?? []; $thedotdev_agentic_bridge_metadata_total = $metadata_total ?? count($thedotdev_agentic_bridge_metadata_inventory); $thedotdev_agentic_bridge_metadata_defaults = $metadata_defaults ?? TheDotDevAgenticBridge_Content_Metadata::defaults(); $thedotdev_agentic_bridge_metadata_detail_config = $metadata_detail_config ?? null; $thedotdev_agentic_bridge_artifact_preview = $artifact_preview ?? null; $thedotdev_agentic_bridge_artifact_preview_stale = $artifact_preview_stale ?? false; $thedotdev_agentic_bridge_artifact_change_summary = $artifact_change_summary ?? ['added' => [], 'removed' => [], 'changed' => [], 'metadataChanged' => false]; $thedotdev_agentic_bridge_artifact_revisions = $artifact_revisions ?? []; $thedotdev_agentic_bridge_resolution_preview = $resolution_preview ?? null; $thedotdev_agentic_bridge_resolution_submitted = is_array($thedotdev_agentic_bridge_resolution_preview) && !empty($thedotdev_agentic_bridge_resolution_preview['submitted']); $thedotdev_agentic_bridge_resolution_input_mode = is_array($thedotdev_agentic_bridge_resolution_preview) ? (string) ($thedotdev_agentic_bridge_resolution_preview['inputMode'] ?? 'report_json') : 'report_json'; $thedotdev_agentic_bridge_resolution_dedupe_mode = is_array($thedotdev_agentic_bridge_resolution_preview) ? (string) ($thedotdev_agentic_bridge_resolution_preview['dedupeMode'] ?? 'by_finding_key') : 'by_finding_key'; $thedotdev_agentic_bridge_resolution_input_value = is_array($thedotdev_agentic_bridge_resolution_preview) ? (string) ($thedotdev_agentic_bridge_resolution_preview['input'] ?? '') : ''; $thedotdev_agentic_bridge_resolution_error = is_array($thedotdev_agentic_bridge_resolution_preview) ? (string) ($thedotdev_agentic_bridge_resolution_preview['error'] ?? '') : ''; $thedotdev_agentic_bridge_resolution_plan = is_array($thedotdev_agentic_bridge_resolution_preview) && is_array($thedotdev_agentic_bridge_resolution_preview['plan'] ?? null) ? $thedotdev_agentic_bridge_resolution_preview['plan'] : ['schemaVersion' => '1.0', 'prepared' => [], 'rejected' => []]; $thedotdev_agentic_bridge_resolution_prepared = is_array($thedotdev_agentic_bridge_resolution_plan['prepared'] ?? null) ? $thedotdev_agentic_bridge_resolution_plan['prepared'] : []; $thedotdev_agentic_bridge_resolution_rejected = is_array($thedotdev_agentic_bridge_resolution_plan['rejected'] ?? null) ? $thedotdev_agentic_bridge_resolution_plan['rejected'] : []; $thedotdev_agentic_bridge_resolution_resolver_titles = [ 'wp_resolution_robots' => __('Robots directive resolver', 'agentic-bridge'), 'wp_resolution_sitemap' => __('Sitemap route resolver', 'agentic-bridge'), 'wp_resolution_llms_agent_map' => __('Artifact route resolver', 'agentic-bridge'), 'wp_resolution_title_meta' => __('Title and meta resolver', 'agentic-bridge'), 'wp_resolution_canonical' => __('Canonical resolver', 'agentic-bridge'), 'wp_resolution_index_intent' => __('Index intent resolver', 'agentic-bridge'), 'wp_resolution_og_twitter' => __('Open Graph and Twitter resolver', 'agentic-bridge'), 'wp_resolution_schema_conflict_org_website' => __('Schema conflict resolver', 'agentic-bridge'), 'wp_resolution_language_viewport_favicon' => __('Language viewport favicon resolver', 'agentic-bridge'), 'wp_resolution_policy_contact_paths' => __('Policy/contact path resolver', 'agentic-bridge'), ]; $thedotdev_agentic_bridge_is_s1_empty = !is_array($readiness_scan); $thedotdev_agentic_bridge_is_s2 = is_array($readiness_scan); $thedotdev_agentic_bridge_mark_url = THEDOTDEV_AGENTIC_BRIDGE_PLUGIN_URL . 'assets/brand/verified-span-mark.svg'; $thedotdev_agentic_bridge_admin_ui = is_array($admin_ui_settings ?? null) ? $admin_ui_settings : []; $thedotdev_agentic_bridge_ui_scanning = is_array($thedotdev_agentic_bridge_admin_ui['scanning'] ?? null) ? $thedotdev_agentic_bridge_admin_ui['scanning'] : []; $thedotdev_agentic_bridge_ui_thresholds = is_array($thedotdev_agentic_bridge_admin_ui['thresholds'] ?? null) ? $thedotdev_agentic_bridge_admin_ui['thresholds'] : []; $thedotdev_agentic_bridge_ui_display = is_array($thedotdev_agentic_bridge_admin_ui['display'] ?? null) ? $thedotdev_agentic_bridge_admin_ui['display'] : []; $thedotdev_agentic_bridge_ui_advanced = is_array($thedotdev_agentic_bridge_admin_ui['advanced'] ?? null) ? $thedotdev_agentic_bridge_admin_ui['advanced'] : []; $thedotdev_agentic_bridge_ui_content_types = is_array($thedotdev_agentic_bridge_admin_ui['contentTypes'] ?? null) ? $thedotdev_agentic_bridge_admin_ui['contentTypes'] : []; $thedotdev_agentic_bridge_ui_priority_limit = max(1, min(12, (int) ($thedotdev_agentic_bridge_ui_scanning['priorityFindingsLimit'] ?? 3))); $thedotdev_agentic_bridge_ui_trend_runs = max(3, min(TheDotDevAgenticBridge_Readiness_Store::MAX_HISTORY_RUNS, (int) ($thedotdev_agentic_bridge_ui_scanning['trendRuns'] ?? 8))); $thedotdev_agentic_bridge_ui_allow_targeted_recheck = !empty($thedotdev_agentic_bridge_ui_scanning['allowTargetedRecheck']); $thedotdev_agentic_bridge_ui_strong_min = max(60, min(100, (int) ($thedotdev_agentic_bridge_ui_thresholds['strongScoreMin'] ?? 90))); $thedotdev_agentic_bridge_ui_building_min = max(20, min($thedotdev_agentic_bridge_ui_strong_min - 1, (int) ($thedotdev_agentic_bridge_ui_thresholds['buildingScoreMin'] ?? 50))); $thedotdev_agentic_bridge_ui_attention_max = max(0, min($thedotdev_agentic_bridge_ui_building_min - 1, (int) ($thedotdev_agentic_bridge_ui_thresholds['attentionScoreMax'] ?? ($thedotdev_agentic_bridge_ui_building_min - 1)))); $thedotdev_agentic_bridge_ui_inventory_per_page = max(10, min(100, (int) ($thedotdev_agentic_bridge_ui_display['inventoryPerPage'] ?? TheDotDevAgenticBridge_Content_Policy::PREVIEW_PER_PAGE))); $thedotdev_agentic_bridge_ui_findings_per_page = max(5, min(50, (int) ($thedotdev_agentic_bridge_ui_display['findingsPerPage'] ?? 25))); $thedotdev_agentic_bridge_ui_display_density = in_array((string) ($thedotdev_agentic_bridge_ui_display['density'] ?? 'comfortable'), ['comfortable', 'compact'], true) ? (string) $thedotdev_agentic_bridge_ui_display['density'] : 'comfortable'; $thedotdev_agentic_bridge_ui_open_evidence = !empty($thedotdev_agentic_bridge_ui_display['defaultOpenEvidence']); $thedotdev_agentic_bridge_ui_show_developer_evidence = !empty($thedotdev_agentic_bridge_ui_advanced['showDeveloperEvidence']); $thedotdev_agentic_bridge_ui_show_cloud_tab = !empty($thedotdev_agentic_bridge_ui_advanced['showCloudTab']); $thedotdev_agentic_bridge_ui_allow_post = !empty($thedotdev_agentic_bridge_ui_content_types['post']); $thedotdev_agentic_bridge_ui_allow_page = !empty($thedotdev_agentic_bridge_ui_content_types['page']); $thedotdev_agentic_bridge_s2_score = $thedotdev_agentic_bridge_is_s2 ? (int) ($readiness_scan['score'] ?? 0) : 0; $thedotdev_agentic_bridge_s2_scanned_at = $thedotdev_agentic_bridge_is_s2 ? (string) ($readiness_scan['scannedAt'] ?? '') : ''; $thedotdev_agentic_bridge_s2_categories = ($thedotdev_agentic_bridge_is_s2 && is_array($readiness_scan['categories'] ?? null)) ? $readiness_scan['categories'] : []; $thedotdev_agentic_bridge_s2_findings = ($thedotdev_agentic_bridge_is_s2 && is_array($readiness_scan['findings'] ?? null)) ? $readiness_scan['findings'] : []; $thedotdev_agentic_bridge_s2_findings_deduped = []; $thedotdev_agentic_bridge_s2_seen_finding_ids = []; foreach ($thedotdev_agentic_bridge_s2_findings as $thedotdev_agentic_bridge_s2_finding_row) { if (!is_array($thedotdev_agentic_bridge_s2_finding_row)) { continue; } $thedotdev_agentic_bridge_s2_finding_row_id = (string) ($thedotdev_agentic_bridge_s2_finding_row['id'] ?? ''); if ($thedotdev_agentic_bridge_s2_finding_row_id === '' || isset($thedotdev_agentic_bridge_s2_seen_finding_ids[$thedotdev_agentic_bridge_s2_finding_row_id])) { continue; } $thedotdev_agentic_bridge_s2_seen_finding_ids[$thedotdev_agentic_bridge_s2_finding_row_id] = true; $thedotdev_agentic_bridge_s2_findings_deduped[] = $thedotdev_agentic_bridge_s2_finding_row; } $thedotdev_agentic_bridge_s2_findings = $thedotdev_agentic_bridge_s2_findings_deduped; $thedotdev_agentic_bridge_s2_history = $thedotdev_agentic_bridge_is_s2 ? TheDotDevAgenticBridge_Readiness_Store::history() : []; $thedotdev_agentic_bridge_s2_prior = null; if ($thedotdev_agentic_bridge_is_s2) { $thedotdev_agentic_bridge_s2_run_id = (string) ($readiness_scan['runId'] ?? ''); foreach ($thedotdev_agentic_bridge_s2_history as $thedotdev_agentic_bridge_s2_hist_entry) { if (!is_array($thedotdev_agentic_bridge_s2_hist_entry)) { continue; } if ((string) ($thedotdev_agentic_bridge_s2_hist_entry['runId'] ?? '') !== $thedotdev_agentic_bridge_s2_run_id) { $thedotdev_agentic_bridge_s2_prior = $thedotdev_agentic_bridge_s2_hist_entry; break; } } } $thedotdev_agentic_bridge_s2_attention = []; $thedotdev_agentic_bridge_s2_verified_count = 0; $thedotdev_agentic_bridge_s2_categories_with_issues = []; foreach ($thedotdev_agentic_bridge_s2_findings as $thedotdev_agentic_bridge_s2_f) { if (!is_array($thedotdev_agentic_bridge_s2_f)) { continue; } if ((string) ($thedotdev_agentic_bridge_s2_f['presentationState'] ?? '') === 'verified') { ++$thedotdev_agentic_bridge_s2_verified_count; } $thedotdev_agentic_bridge_s2_f_status = (string) ($thedotdev_agentic_bridge_s2_f['status'] ?? ''); if (in_array($thedotdev_agentic_bridge_s2_f_status, ['fail', 'warning', 'unknown'], true)) { $thedotdev_agentic_bridge_s2_attention[] = $thedotdev_agentic_bridge_s2_f; $thedotdev_agentic_bridge_s2_cat = (string) ($thedotdev_agentic_bridge_s2_f['category'] ?? ''); if ($thedotdev_agentic_bridge_s2_cat !== '') { $thedotdev_agentic_bridge_s2_categories_with_issues[$thedotdev_agentic_bridge_s2_cat] = ($thedotdev_agentic_bridge_s2_categories_with_issues[$thedotdev_agentic_bridge_s2_cat] ?? 0) + 1; } } } usort( $thedotdev_agentic_bridge_s2_attention, static function (array $a, array $b): int { $rank = static fn(string $s): int => match ($s) { 'fail' => 0, 'warning' => 1, 'unknown' => 2, default => 3, }; return $rank((string) ($a['status'] ?? '')) <=> $rank((string) ($b['status'] ?? '')); } ); $thedotdev_agentic_bridge_s2_next = $thedotdev_agentic_bridge_s2_attention[0] ?? null; $thedotdev_agentic_bridge_s2_attention_preview = array_slice($thedotdev_agentic_bridge_s2_attention, 0, $thedotdev_agentic_bridge_ui_priority_limit); $thedotdev_agentic_bridge_s2_finding_count = count($thedotdev_agentic_bridge_s2_findings); $thedotdev_agentic_bridge_s2_issue_category_count = count($thedotdev_agentic_bridge_s2_categories_with_issues); $thedotdev_agentic_bridge_s2_scan_summary = ($thedotdev_agentic_bridge_is_s2 && is_array($readiness_scan)) ? TheDotDevAgenticBridge_AI_Preview::get_scan_summary($readiness_scan) : ['score' => 0, 'total' => 0, 'passing' => 0, 'attention' => 0, 'scannedAt' => '']; $thedotdev_agentic_bridge_s2_attention_pending = count($thedotdev_agentic_bridge_s2_attention); $thedotdev_agentic_bridge_s2_last_checked_label = ''; if ($thedotdev_agentic_bridge_s2_scanned_at !== '') { $thedotdev_agentic_bridge_s2_ts = strtotime($thedotdev_agentic_bridge_s2_scanned_at); if ($thedotdev_agentic_bridge_s2_ts !== false) { $thedotdev_agentic_bridge_s2_delta = max(0, time() - $thedotdev_agentic_bridge_s2_ts); if ($thedotdev_agentic_bridge_s2_delta < 60) { $thedotdev_agentic_bridge_s2_last_checked_label = __('just now', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s2_delta < 3600) { $thedotdev_agentic_bridge_s2_mins = (int) floor($thedotdev_agentic_bridge_s2_delta / 60); $thedotdev_agentic_bridge_s2_last_checked_label = $thedotdev_agentic_bridge_s2_mins === 1 ? __('1 minute ago', 'agentic-bridge') : sprintf( /* translators: %d: minutes */ __('%d minutes ago', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_mins ); } elseif ($thedotdev_agentic_bridge_s2_delta < 86400) { $thedotdev_agentic_bridge_s2_hours = (int) floor($thedotdev_agentic_bridge_s2_delta / 3600); $thedotdev_agentic_bridge_s2_last_checked_label = $thedotdev_agentic_bridge_s2_hours === 1 ? __('1 hour ago', 'agentic-bridge') : sprintf( /* translators: %d: hours */ __('%d hours ago', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_hours ); } else { $thedotdev_agentic_bridge_s2_days = (int) floor($thedotdev_agentic_bridge_s2_delta / 86400); $thedotdev_agentic_bridge_s2_last_checked_label = $thedotdev_agentic_bridge_s2_days === 1 ? __('1 day ago', 'agentic-bridge') : sprintf( /* translators: %d: days */ __('%d days ago', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_days ); } } else { $thedotdev_agentic_bridge_s2_last_checked_label = $thedotdev_agentic_bridge_s2_scanned_at; } } if ($thedotdev_agentic_bridge_s2_score >= $thedotdev_agentic_bridge_ui_strong_min) { $thedotdev_agentic_bridge_s2_band = __('Strong local readiness', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s2_score >= $thedotdev_agentic_bridge_ui_building_min) { $thedotdev_agentic_bridge_s2_band = __('Building readiness', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s2_score > 0) { $thedotdev_agentic_bridge_s2_band = __('Early readiness', 'agentic-bridge'); } else { $thedotdev_agentic_bridge_s2_band = __('No points earned yet', 'agentic-bridge'); } $thedotdev_agentic_bridge_s2_changes = []; if (is_array($thedotdev_agentic_bridge_s2_prior)) { $thedotdev_agentic_bridge_s2_prior_score = (int) ($thedotdev_agentic_bridge_s2_prior['score'] ?? 0); $thedotdev_agentic_bridge_s2_score_delta = $thedotdev_agentic_bridge_s2_score - $thedotdev_agentic_bridge_s2_prior_score; if ($thedotdev_agentic_bridge_s2_score_delta > 0) { $thedotdev_agentic_bridge_s2_changes[] = [ 'kind' => 'up', 'title' => sprintf( /* translators: %d: points gained */ __('+%d points', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_score_delta ), 'meta' => sprintf( /* translators: 1: prior score, 2: current score */ __('Readiness rose from %1$d to %2$d', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_prior_score, $thedotdev_agentic_bridge_s2_score ), ]; } elseif ($thedotdev_agentic_bridge_s2_score_delta < 0) { $thedotdev_agentic_bridge_s2_changes[] = [ 'kind' => 'down', 'title' => sprintf( /* translators: %d: points lost */ __('−%d points', 'agentic-bridge'), abs($thedotdev_agentic_bridge_s2_score_delta) ), 'meta' => sprintf( /* translators: 1: prior score, 2: current score */ __('Readiness fell from %1$d to %2$d', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_prior_score, $thedotdev_agentic_bridge_s2_score ), ]; } $thedotdev_agentic_bridge_s2_prior_ids = []; foreach (is_array($thedotdev_agentic_bridge_s2_prior['findings'] ?? null) ? $thedotdev_agentic_bridge_s2_prior['findings'] : [] as $thedotdev_agentic_bridge_s2_pf) { if (is_array($thedotdev_agentic_bridge_s2_pf) && isset($thedotdev_agentic_bridge_s2_pf['id'])) { $thedotdev_agentic_bridge_s2_prior_ids[(string) $thedotdev_agentic_bridge_s2_pf['id']] = true; } } $thedotdev_agentic_bridge_s2_new_count = 0; foreach ($thedotdev_agentic_bridge_s2_findings as $thedotdev_agentic_bridge_s2_cf) { if (!is_array($thedotdev_agentic_bridge_s2_cf) || !isset($thedotdev_agentic_bridge_s2_cf['id'])) { continue; } if (!isset($thedotdev_agentic_bridge_s2_prior_ids[(string) $thedotdev_agentic_bridge_s2_cf['id']])) { ++$thedotdev_agentic_bridge_s2_new_count; } } if ($thedotdev_agentic_bridge_s2_new_count > 0) { $thedotdev_agentic_bridge_s2_changes[] = [ 'kind' => 'new', 'title' => $thedotdev_agentic_bridge_s2_new_count === 1 ? __('1 new finding', 'agentic-bridge') : sprintf( /* translators: %d: new finding count */ __('%d new findings', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_new_count ), 'meta' => __('Compared with the previous local scan', 'agentic-bridge'), ]; } } if ($thedotdev_agentic_bridge_s2_verified_count > 0) { $thedotdev_agentic_bridge_s2_changes[] = [ 'kind' => 'verified', 'title' => $thedotdev_agentic_bridge_s2_verified_count === 1 ? __('1 finding verified', 'agentic-bridge') : sprintf( /* translators: %d: verified finding count */ __('%d findings verified', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_verified_count ), 'meta' => __('Confirmed by a local recheck record', 'agentic-bridge'), ]; } $thedotdev_agentic_bridge_s2_category_labels = [ 'discoverability' => __('Discoverability', 'agentic-bridge'), 'understanding' => __('Understanding', 'agentic-bridge'), 'trust' => __('Trust', 'agentic-bridge'), 'actions' => __('Actions', 'agentic-bridge'), 'safety' => __('Safety', 'agentic-bridge'), ]; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only exclusive Screen 1–8 + Settings view routing. $thedotdev_agentic_bridge_view_raw = ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only exclusive view routing; scalar-checked before sanitize. if (isset($_GET['thedotdev_agentic_bridge_view'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Scalar type-check precedes sanitize_key (matches TheDotDevAgenticBridge_Admin::get_query_key). $thedotdev_agentic_bridge_view_candidate = wp_unslash($_GET['thedotdev_agentic_bridge_view']); if (is_string($thedotdev_agentic_bridge_view_candidate)) { $thedotdev_agentic_bridge_view_raw = sanitize_key($thedotdev_agentic_bridge_view_candidate); } } $thedotdev_agentic_bridge_allowed_views = ['findings', 'history', 'content', 'artifacts', 'privacy', 'safety', 'cloud', 'settings', 'unavailable']; $thedotdev_agentic_bridge_view = ($thedotdev_agentic_bridge_view_raw === '' || in_array($thedotdev_agentic_bridge_view_raw, $thedotdev_agentic_bridge_allowed_views, true)) ? $thedotdev_agentic_bridge_view_raw : ''; // Metadata inventory/edit query args canonicalize to Content & intent only when thedotdev_agentic_bridge_view is absent/empty. // Explicit allowed thedotdev_agentic_bridge_view remains authoritative; unknown/non-scalar views fail closed above. // Presence checks are warning-free for any value shape; value sanitization uses TheDotDevAgenticBridge_Admin query helpers. // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only route canonicalization from GET keys. $thedotdev_agentic_bridge_has_metadata_route = isset($_GET['thedotdev_agentic_bridge_metadata_id']) // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only route canonicalization from GET keys. || isset($_GET['thedotdev_agentic_bridge_metadata_page']) // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only route canonicalization from GET keys. || isset($_GET['thedotdev_agentic_bridge_metadata_search']) // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only route canonicalization from GET keys. || isset($_GET['thedotdev_agentic_bridge_metadata_filter']); if ($thedotdev_agentic_bridge_view === '' && $thedotdev_agentic_bridge_has_metadata_route) { $thedotdev_agentic_bridge_view = 'content'; } $thedotdev_agentic_bridge_is_settings = $thedotdev_agentic_bridge_view === 'settings'; $thedotdev_agentic_bridge_is_s8 = $thedotdev_agentic_bridge_view === 'cloud'; $thedotdev_agentic_bridge_is_s7 = $thedotdev_agentic_bridge_view === 'safety'; $thedotdev_agentic_bridge_is_s6 = $thedotdev_agentic_bridge_view === 'privacy'; $thedotdev_agentic_bridge_is_s5 = $thedotdev_agentic_bridge_view === 'artifacts'; $thedotdev_agentic_bridge_is_s4 = $thedotdev_agentic_bridge_view === 'content'; $thedotdev_agentic_bridge_is_s3 = $thedotdev_agentic_bridge_view === 'findings'; $thedotdev_agentic_bridge_is_s3_no_scan = $thedotdev_agentic_bridge_is_s3 && !$thedotdev_agentic_bridge_is_s2; $thedotdev_agentic_bridge_is_s1_empty = !$thedotdev_agentic_bridge_is_s2 && $thedotdev_agentic_bridge_view === ''; $thedotdev_agentic_bridge_show_s2_overview = $thedotdev_agentic_bridge_is_s2 && $thedotdev_agentic_bridge_view === ''; $thedotdev_agentic_bridge_admin_page_url = admin_url('admin.php?page=thedotdev-agentic-bridge'); $thedotdev_agentic_bridge_s2_url = $thedotdev_agentic_bridge_admin_page_url; $thedotdev_agentic_bridge_s3_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'findings'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_s4_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'content'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_s5_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'artifacts'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_s6_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'privacy'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_s7_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'safety'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_s8_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'cloud'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_settings_url = add_query_arg(['thedotdev_agentic_bridge_view' => 'settings'], $thedotdev_agentic_bridge_admin_page_url); $thedotdev_agentic_bridge_ai_preview_url = TheDotDevAgenticBridge_Admin::ai_preview_url(); $thedotdev_agentic_bridge_shell_findings_url = $thedotdev_agentic_bridge_s3_url; $thedotdev_agentic_bridge_fix_engine_enabled = TheDotDevAgenticBridge_Fix_Engine::is_enabled(); $thedotdev_agentic_bridge_fix_pending_preview = TheDotDevAgenticBridge_Fix_Engine::pending_preview(); $thedotdev_agentic_bridge_fix_audit_log = TheDotDevAgenticBridge_Fix_Engine::audit_log(); $thedotdev_agentic_bridge_s4_rows = []; $thedotdev_agentic_bridge_s4_included = 0; $thedotdev_agentic_bridge_s4_excluded = 0; $thedotdev_agentic_bridge_s4_total = 0; $thedotdev_agentic_bridge_s4_unconfigured = 0; $thedotdev_agentic_bridge_s4_needs_intent = 0; if ($thedotdev_agentic_bridge_is_s4) { // Policy-eligible public content only — do not surface private/system/form rows for Figma resemblance. $thedotdev_agentic_bridge_s4_summary = TheDotDevAgenticBridge_Content_Metadata::inventory_query( 1, max(50, max(1, (int) $thedotdev_agentic_bridge_metadata_total)), $thedotdev_agentic_bridge_metadata_search, $thedotdev_agentic_bridge_metadata_filter !== '' ? $thedotdev_agentic_bridge_metadata_filter : 'eligible' ); $thedotdev_agentic_bridge_s4_rows = is_array($thedotdev_agentic_bridge_s4_summary['rows'] ?? null) ? $thedotdev_agentic_bridge_s4_summary['rows'] : []; $thedotdev_agentic_bridge_s4_total = (int) ($thedotdev_agentic_bridge_s4_summary['total'] ?? count($thedotdev_agentic_bridge_s4_rows)); foreach ($thedotdev_agentic_bridge_s4_rows as $thedotdev_agentic_bridge_s4_sum_row) { if (!is_array($thedotdev_agentic_bridge_s4_sum_row)) { continue; } if (!empty($thedotdev_agentic_bridge_s4_sum_row['artifactEligible'])) { ++$thedotdev_agentic_bridge_s4_included; } else { ++$thedotdev_agentic_bridge_s4_excluded; } if (empty($thedotdev_agentic_bridge_s4_sum_row['configured'])) { ++$thedotdev_agentic_bridge_s4_unconfigured; ++$thedotdev_agentic_bridge_s4_needs_intent; } } } $thedotdev_agentic_bridge_s5_published = TheDotDevAgenticBridge_Storage::artifacts_published(); $thedotdev_agentic_bridge_s5_lkg = is_array($settings['last_known_good'] ?? null) ? $settings['last_known_good'] : []; $thedotdev_agentic_bridge_s5_published_at = (string) ($thedotdev_agentic_bridge_s5_lkg['published_at'] ?? ''); $thedotdev_agentic_bridge_s5_public_llms = home_url('/llms.txt'); $thedotdev_agentic_bridge_s5_public_map = home_url('/agent-map.json'); $thedotdev_agentic_bridge_s5_cap_blocked = !empty($artifact_publish_cap_exceeded); $thedotdev_agentic_bridge_s5_conflict = TheDotDevAgenticBridge_Snapshot::has_physical_llms_txt(); $thedotdev_agentic_bridge_s5_kill = !empty($settings['kill_switch']); $thedotdev_agentic_bridge_s5_has_preview = is_array($thedotdev_agentic_bridge_artifact_preview); $thedotdev_agentic_bridge_s5_preview_stale = $thedotdev_agentic_bridge_artifact_preview_stale; $thedotdev_agentic_bridge_s5_preview_generated_at = $thedotdev_agentic_bridge_s5_has_preview ? (string) ($thedotdev_agentic_bridge_artifact_preview['generated_at'] ?? '') : ''; $thedotdev_agentic_bridge_s5_published_payload = $thedotdev_agentic_bridge_s5_published ? TheDotDevAgenticBridge_Artifacts::published_artifact_payload() : null; $thedotdev_agentic_bridge_s5_llms_body = ''; $thedotdev_agentic_bridge_s5_map_body = ''; if ($thedotdev_agentic_bridge_s5_has_preview) { $thedotdev_agentic_bridge_s5_llms_body = (string) ($thedotdev_agentic_bridge_artifact_preview['llms_txt'] ?? ''); $thedotdev_agentic_bridge_s5_map_body = wp_json_encode($thedotdev_agentic_bridge_artifact_preview['agent_map'] ?? new stdClass(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ?: ''; } elseif (is_array($thedotdev_agentic_bridge_s5_published_payload)) { $thedotdev_agentic_bridge_s5_llms_body = (string) ($thedotdev_agentic_bridge_s5_published_payload['llms_txt'] ?? ''); $thedotdev_agentic_bridge_s5_map_body = wp_json_encode($thedotdev_agentic_bridge_s5_published_payload['agent_map'] ?? new stdClass(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ?: ''; } $thedotdev_agentic_bridge_s5_llms_verified = false; $thedotdev_agentic_bridge_s5_map_verified = false; $thedotdev_agentic_bridge_s5_llms_verified_at = ''; $thedotdev_agentic_bridge_s5_map_verified_at = ''; foreach ($thedotdev_agentic_bridge_s2_findings as $thedotdev_agentic_bridge_s5_finding) { if (!is_array($thedotdev_agentic_bridge_s5_finding)) { continue; } if ((string) ($thedotdev_agentic_bridge_s5_finding['presentationState'] ?? '') !== 'verified') { continue; } $thedotdev_agentic_bridge_s5_fid = (string) ($thedotdev_agentic_bridge_s5_finding['id'] ?? ''); $thedotdev_agentic_bridge_s5_vat = (string) ($thedotdev_agentic_bridge_s5_finding['verifiedAt'] ?? ''); if (in_array($thedotdev_agentic_bridge_s5_fid, ['disc-llms-route', 'disc-llms-valid', 'und-llms-emerging'], true)) { $thedotdev_agentic_bridge_s5_llms_verified = true; if ($thedotdev_agentic_bridge_s5_vat !== '') { $thedotdev_agentic_bridge_s5_llms_verified_at = $thedotdev_agentic_bridge_s5_vat; } } if (in_array($thedotdev_agentic_bridge_s5_fid, ['disc-agent-map-route', 'und-agent-map-format', 'act-agent-map-actions'], true)) { $thedotdev_agentic_bridge_s5_map_verified = true; if ($thedotdev_agentic_bridge_s5_vat !== '') { $thedotdev_agentic_bridge_s5_map_verified_at = $thedotdev_agentic_bridge_s5_vat; } } } $thedotdev_agentic_bridge_s5_llms_badge = 'unavailable'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Unavailable', 'agentic-bridge'); if ($thedotdev_agentic_bridge_s5_cap_blocked && $thedotdev_agentic_bridge_s5_llms_body === '') { $thedotdev_agentic_bridge_s5_llms_badge = 'cap_blocked'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Preview blocked', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_llms_body === '') { $thedotdev_agentic_bridge_s5_llms_badge = 'unavailable'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Unavailable', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_published && $thedotdev_agentic_bridge_s5_has_preview && $thedotdev_agentic_bridge_artifact_preview_stale) { $thedotdev_agentic_bridge_s5_llms_badge = 'published_stale'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Published · Stale', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_published && $thedotdev_agentic_bridge_s5_llms_verified) { $thedotdev_agentic_bridge_s5_llms_badge = 'published_verified'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Published · Verified', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_published) { $thedotdev_agentic_bridge_s5_llms_badge = 'published'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Published', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_has_preview && $thedotdev_agentic_bridge_artifact_preview_stale) { $thedotdev_agentic_bridge_s5_llms_badge = 'preview_stale'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Preview stale', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_has_preview) { $thedotdev_agentic_bridge_s5_llms_badge = 'preview_ready'; $thedotdev_agentic_bridge_s5_llms_badge_label = __('Preview ready', 'agentic-bridge'); } $thedotdev_agentic_bridge_s5_map_badge = 'unavailable'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Unavailable', 'agentic-bridge'); if ($thedotdev_agentic_bridge_s5_cap_blocked && $thedotdev_agentic_bridge_s5_map_body === '') { $thedotdev_agentic_bridge_s5_map_badge = 'cap_blocked'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Preview blocked', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_map_body === '') { $thedotdev_agentic_bridge_s5_map_badge = 'unavailable'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Unavailable', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_published && $thedotdev_agentic_bridge_s5_has_preview && $thedotdev_agentic_bridge_artifact_preview_stale) { $thedotdev_agentic_bridge_s5_map_badge = 'published_stale'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Published · Stale', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_published && $thedotdev_agentic_bridge_s5_map_verified) { $thedotdev_agentic_bridge_s5_map_badge = 'published_verified'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Published · Verified', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_published) { $thedotdev_agentic_bridge_s5_map_badge = 'published'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Published', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_has_preview && $thedotdev_agentic_bridge_artifact_preview_stale) { $thedotdev_agentic_bridge_s5_map_badge = 'preview_stale'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Preview stale', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s5_has_preview) { $thedotdev_agentic_bridge_s5_map_badge = 'preview_ready'; $thedotdev_agentic_bridge_s5_map_badge_label = __('Preview ready', 'agentic-bridge'); } $thedotdev_agentic_bridge_s5_can_publish = $thedotdev_agentic_bridge_s5_has_preview && !$thedotdev_agentic_bridge_artifact_preview_stale && !$thedotdev_agentic_bridge_s5_cap_blocked; $thedotdev_agentic_bridge_s5_show_stale_warn = $thedotdev_agentic_bridge_s5_has_preview && $thedotdev_agentic_bridge_artifact_preview_stale; $thedotdev_agentic_bridge_artifact_command = TheDotDevAgenticBridge_Artifact_Command::assemble_from_readiness_result( is_array($readiness_scan) ? $readiness_scan : [], ['seoOwner' => TheDotDevAgenticBridge_Resolver_Registry::detect_seo_owner_vocabulary()] ); $thedotdev_agentic_bridge_crawler_site_id = function_exists('get_current_blog_id') ? (int) get_current_blog_id() : 1; $thedotdev_agentic_bridge_crawler_evidence = TheDotDevAgenticBridge_Crawler_Evidence::normalize( [], $thedotdev_agentic_bridge_crawler_site_id ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only findings filters/search. $thedotdev_agentic_bridge_s3_severity = isset($_GET['thedotdev_agentic_bridge_severity']) ? sanitize_key(wp_unslash((string) $_GET['thedotdev_agentic_bridge_severity'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only findings filters/search. $thedotdev_agentic_bridge_s3_category = isset($_GET['thedotdev_agentic_bridge_category']) ? sanitize_key(wp_unslash((string) $_GET['thedotdev_agentic_bridge_category'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only findings filters/search. $thedotdev_agentic_bridge_s3_lifecycle = isset($_GET['thedotdev_agentic_bridge_lifecycle']) ? sanitize_key(wp_unslash((string) $_GET['thedotdev_agentic_bridge_lifecycle'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only findings filters/search. $thedotdev_agentic_bridge_s3_query = isset($_GET['thedotdev_agentic_bridge_findings_q']) ? sanitize_text_field(wp_unslash((string) $_GET['thedotdev_agentic_bridge_findings_q'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only expanded finding selector. $thedotdev_agentic_bridge_s3_focus_id = isset($_GET['thedotdev_agentic_bridge_finding']) ? sanitize_key(wp_unslash((string) $_GET['thedotdev_agentic_bridge_finding'])) : ''; $thedotdev_agentic_bridge_s3_allowed_severities = ['high', 'medium', 'info']; $thedotdev_agentic_bridge_s3_allowed_lifecycles = ['observed', 'verified', 'passing', 'stale', 'pending_recheck']; if (!in_array($thedotdev_agentic_bridge_s3_severity, $thedotdev_agentic_bridge_s3_allowed_severities, true)) { $thedotdev_agentic_bridge_s3_severity = ''; } if ($thedotdev_agentic_bridge_s3_category !== '' && !isset($thedotdev_agentic_bridge_s2_category_labels[$thedotdev_agentic_bridge_s3_category])) { $thedotdev_agentic_bridge_s3_category = ''; } if (!in_array($thedotdev_agentic_bridge_s3_lifecycle, $thedotdev_agentic_bridge_s3_allowed_lifecycles, true)) { $thedotdev_agentic_bridge_s3_lifecycle = ''; } $thedotdev_agentic_bridge_s3_all_findings = $thedotdev_agentic_bridge_is_s2 ? $thedotdev_agentic_bridge_s2_findings : []; $thedotdev_agentic_bridge_s3_filtered = []; $thedotdev_agentic_bridge_s3_seen_finding_ids = []; foreach ($thedotdev_agentic_bridge_s3_all_findings as $thedotdev_agentic_bridge_s3_f) { if (!is_array($thedotdev_agentic_bridge_s3_f)) { continue; } $thedotdev_agentic_bridge_s3_f_id = (string) ($thedotdev_agentic_bridge_s3_f['id'] ?? ''); if ($thedotdev_agentic_bridge_s3_f_id === '' || isset($thedotdev_agentic_bridge_s3_seen_finding_ids[$thedotdev_agentic_bridge_s3_f_id])) { continue; } $thedotdev_agentic_bridge_s3_f_sev = (string) ($thedotdev_agentic_bridge_s3_f['severity'] ?? ''); $thedotdev_agentic_bridge_s3_f_cat = (string) ($thedotdev_agentic_bridge_s3_f['category'] ?? ''); $thedotdev_agentic_bridge_s3_f_life = (string) ($thedotdev_agentic_bridge_s3_f['presentationState'] ?? 'observed'); if ($thedotdev_agentic_bridge_s3_f_life === '') { $thedotdev_agentic_bridge_s3_f_life = 'observed'; } if ($thedotdev_agentic_bridge_s3_severity !== '' && $thedotdev_agentic_bridge_s3_f_sev !== $thedotdev_agentic_bridge_s3_severity) { continue; } if ($thedotdev_agentic_bridge_s3_category !== '' && $thedotdev_agentic_bridge_s3_f_cat !== $thedotdev_agentic_bridge_s3_category) { continue; } if ($thedotdev_agentic_bridge_s3_lifecycle !== '' && $thedotdev_agentic_bridge_s3_f_life !== $thedotdev_agentic_bridge_s3_lifecycle) { continue; } if ($thedotdev_agentic_bridge_s3_query !== '') { $thedotdev_agentic_bridge_s3_hay = TheDotDevAgenticBridge_Findings_Presentation::search_blob($thedotdev_agentic_bridge_s3_f); if (!str_contains($thedotdev_agentic_bridge_s3_hay, strtolower($thedotdev_agentic_bridge_s3_query))) { continue; } } $thedotdev_agentic_bridge_s3_seen_finding_ids[$thedotdev_agentic_bridge_s3_f_id] = true; $thedotdev_agentic_bridge_s3_filtered[] = $thedotdev_agentic_bridge_s3_f; } usort( $thedotdev_agentic_bridge_s3_filtered, static function (array $a, array $b): int { $status_rank = static fn(string $s): int => match ($s) { 'fail' => 0, 'warning' => 1, 'unknown' => 2, 'pass' => 3, default => 4, }; $sev_rank = static fn(string $s): int => match ($s) { 'high' => 0, 'medium' => 1, 'info' => 2, default => 3, }; $by_status = $status_rank((string) ($a['status'] ?? '')) <=> $status_rank((string) ($b['status'] ?? '')); if ($by_status !== 0) { return $by_status; } $by_sev = $sev_rank((string) ($a['severity'] ?? '')) <=> $sev_rank((string) ($b['severity'] ?? '')); if ($by_sev !== 0) { return $by_sev; } return strcmp((string) ($a['id'] ?? ''), (string) ($b['id'] ?? '')); } ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only findings pagination query arg. $thedotdev_agentic_bridge_s3_page = isset($_GET['thedotdev_agentic_bridge_findings_page']) ? max(1, absint(wp_unslash($_GET['thedotdev_agentic_bridge_findings_page']))) : 1; $thedotdev_agentic_bridge_s3_count = count($thedotdev_agentic_bridge_s3_filtered); $thedotdev_agentic_bridge_s3_page_count = max(1, (int) ceil($thedotdev_agentic_bridge_s3_count / $thedotdev_agentic_bridge_ui_findings_per_page)); if ($thedotdev_agentic_bridge_s3_focus_id !== '' && $thedotdev_agentic_bridge_s3_count > 0) { foreach ($thedotdev_agentic_bridge_s3_filtered as $thedotdev_agentic_bridge_s3_idx => $thedotdev_agentic_bridge_s3_candidate) { if ((string) ($thedotdev_agentic_bridge_s3_candidate['id'] ?? '') === $thedotdev_agentic_bridge_s3_focus_id) { $thedotdev_agentic_bridge_s3_page = max(1, (int) floor($thedotdev_agentic_bridge_s3_idx / $thedotdev_agentic_bridge_ui_findings_per_page) + 1); break; } } } $thedotdev_agentic_bridge_s3_page = min($thedotdev_agentic_bridge_s3_page, $thedotdev_agentic_bridge_s3_page_count); $thedotdev_agentic_bridge_s3_offset = ($thedotdev_agentic_bridge_s3_page - 1) * $thedotdev_agentic_bridge_ui_findings_per_page; $thedotdev_agentic_bridge_s3_filtered_paged = array_slice($thedotdev_agentic_bridge_s3_filtered, $thedotdev_agentic_bridge_s3_offset, $thedotdev_agentic_bridge_ui_findings_per_page); $thedotdev_agentic_bridge_s3_lead = null; if ($thedotdev_agentic_bridge_s3_focus_id !== '') { foreach ($thedotdev_agentic_bridge_s3_filtered_paged as $thedotdev_agentic_bridge_s3_candidate) { if ((string) ($thedotdev_agentic_bridge_s3_candidate['id'] ?? '') === $thedotdev_agentic_bridge_s3_focus_id) { $thedotdev_agentic_bridge_s3_lead = $thedotdev_agentic_bridge_s3_candidate; break; } } } if ($thedotdev_agentic_bridge_s3_lead === null && $thedotdev_agentic_bridge_s3_filtered_paged !== []) { $thedotdev_agentic_bridge_s3_lead = $thedotdev_agentic_bridge_s3_filtered_paged[0]; } $thedotdev_agentic_bridge_s3_lead_id = is_array($thedotdev_agentic_bridge_s3_lead) ? (string) ($thedotdev_agentic_bridge_s3_lead['id'] ?? '') : ''; $thedotdev_agentic_bridge_s3_lead_fixable = $thedotdev_agentic_bridge_fix_engine_enabled && $thedotdev_agentic_bridge_s3_lead_id !== '' && TheDotDevAgenticBridge_Fix_Engine::apply_available_for_finding($thedotdev_agentic_bridge_s3_lead_id); $thedotdev_agentic_bridge_s3_rest = []; foreach ($thedotdev_agentic_bridge_s3_filtered_paged as $thedotdev_agentic_bridge_s3_row) { if ((string) ($thedotdev_agentic_bridge_s3_row['id'] ?? '') === $thedotdev_agentic_bridge_s3_lead_id) { continue; } $thedotdev_agentic_bridge_s3_rest[] = $thedotdev_agentic_bridge_s3_row; } $thedotdev_agentic_bridge_s3_sev_high = 0; $thedotdev_agentic_bridge_s3_sev_medium = 0; $thedotdev_agentic_bridge_s3_sev_info = 0; foreach ($thedotdev_agentic_bridge_s3_all_findings as $thedotdev_agentic_bridge_s3_sev_row) { if (!is_array($thedotdev_agentic_bridge_s3_sev_row)) { continue; } $thedotdev_agentic_bridge_s3_sev_key = (string) ($thedotdev_agentic_bridge_s3_sev_row['severity'] ?? ''); if ($thedotdev_agentic_bridge_s3_sev_key === 'high') { ++$thedotdev_agentic_bridge_s3_sev_high; } elseif ($thedotdev_agentic_bridge_s3_sev_key === 'medium') { ++$thedotdev_agentic_bridge_s3_sev_medium; } elseif ($thedotdev_agentic_bridge_s3_sev_key === 'info') { ++$thedotdev_agentic_bridge_s3_sev_info; } } $thedotdev_agentic_bridge_s3_sev_total = $thedotdev_agentic_bridge_s3_sev_high + $thedotdev_agentic_bridge_s3_sev_medium + $thedotdev_agentic_bridge_s3_sev_info; $thedotdev_agentic_bridge_s3_donut_high = $thedotdev_agentic_bridge_s3_sev_total > 0 ? (int) round(($thedotdev_agentic_bridge_s3_sev_high / $thedotdev_agentic_bridge_s3_sev_total) * 360) : 0; $thedotdev_agentic_bridge_s3_donut_medium = $thedotdev_agentic_bridge_s3_sev_total > 0 ? (int) round(($thedotdev_agentic_bridge_s3_sev_medium / $thedotdev_agentic_bridge_s3_sev_total) * 360) : 0; $thedotdev_agentic_bridge_s3_after_lines = []; if (is_array($thedotdev_agentic_bridge_artifact_preview ?? null)) { $thedotdev_agentic_bridge_s3_preview_body = trim((string) ($thedotdev_agentic_bridge_artifact_preview['llms_txt'] ?? '')); if ($thedotdev_agentic_bridge_s3_preview_body !== '') { $thedotdev_agentic_bridge_s3_preview_parts = preg_split('/\R/u', $thedotdev_agentic_bridge_s3_preview_body) ?: []; foreach ($thedotdev_agentic_bridge_s3_preview_parts as $thedotdev_agentic_bridge_s3_line) { $thedotdev_agentic_bridge_s3_line = trim((string) $thedotdev_agentic_bridge_s3_line); if ($thedotdev_agentic_bridge_s3_line === '') { continue; } $thedotdev_agentic_bridge_s3_after_lines[] = $thedotdev_agentic_bridge_s3_line; if (count($thedotdev_agentic_bridge_s3_after_lines) >= 8) { break; } } } } $thedotdev_agentic_bridge_s3_lifecycle_labels = [ 'verified' => __('Verified', 'agentic-bridge'), 'passing' => __('Passing (not verified)', 'agentic-bridge'), 'stale' => __('Stale — pending recheck', 'agentic-bridge'), 'pending_recheck' => __('Pending recheck', 'agentic-bridge'), 'observed' => __('Observed', 'agentic-bridge'), ]; // Screen 6 — Privacy / outbound payload (local only on load; sync uses existing preview→confirm). $thedotdev_agentic_bridge_s6_connected = TheDotDevAgenticBridge_Storage::is_connected(); $thedotdev_agentic_bridge_s6_connection_status = (string) ($settings['connection_status'] ?? 'disconnected'); $thedotdev_agentic_bridge_s6_last_sync_at = (string) ($settings['last_sync_at'] ?? ''); $thedotdev_agentic_bridge_s6_last_sync_label = ''; if ($thedotdev_agentic_bridge_s6_last_sync_at !== '') { $thedotdev_agentic_bridge_s6_sync_ts = strtotime($thedotdev_agentic_bridge_s6_last_sync_at); if (is_int($thedotdev_agentic_bridge_s6_sync_ts) && $thedotdev_agentic_bridge_s6_sync_ts > 0) { $thedotdev_agentic_bridge_s6_last_sync_label = sprintf( /* translators: %s: human-readable relative time */ __('last synced %s ago', 'agentic-bridge'), human_time_diff($thedotdev_agentic_bridge_s6_sync_ts) ); } else { $thedotdev_agentic_bridge_s6_last_sync_label = sprintf( /* translators: %s: ISO timestamp */ __('last synced %s', 'agentic-bridge'), $thedotdev_agentic_bridge_s6_last_sync_at ); } } $thedotdev_agentic_bridge_s6_preview = is_array($snapshot_preview ?? null) ? $snapshot_preview : null; $thedotdev_agentic_bridge_s6_exact_bytes = is_string($snapshot_preview_bytes ?? null) ? (string) $snapshot_preview_bytes : ''; if ($thedotdev_agentic_bridge_s6_exact_bytes === '' && is_array($thedotdev_agentic_bridge_s6_preview)) { $thedotdev_agentic_bridge_s6_exact_bytes = (string) (TheDotDevAgenticBridge_Outbound_Preview::get_stored_snapshot_payload_bytes() ?? ''); } $thedotdev_agentic_bridge_s6_preview_blocked = is_array($thedotdev_agentic_bridge_s6_preview) && !empty($thedotdev_agentic_bridge_s6_preview['confirmBlocked']); $thedotdev_agentic_bridge_s6_preview_stale = is_array($thedotdev_agentic_bridge_s6_preview) && (!empty($thedotdev_agentic_bridge_s6_preview['stale']) || !empty($thedotdev_agentic_bridge_s6_preview['expired'])); $thedotdev_agentic_bridge_s6_has_stored_bytes = is_array($thedotdev_agentic_bridge_s6_preview) && $thedotdev_agentic_bridge_s6_exact_bytes !== ''; $thedotdev_agentic_bridge_s6_has_exact_payload = $thedotdev_agentic_bridge_s6_has_stored_bytes && !$thedotdev_agentic_bridge_s6_preview_blocked && !$thedotdev_agentic_bridge_s6_preview_stale; $thedotdev_agentic_bridge_s6_payload_is_exact = $thedotdev_agentic_bridge_s6_has_stored_bytes; $thedotdev_agentic_bridge_s6_display_json = ''; if ($thedotdev_agentic_bridge_s6_exact_bytes !== '') { $thedotdev_agentic_bridge_s6_decoded = json_decode($thedotdev_agentic_bridge_s6_exact_bytes, true); $thedotdev_agentic_bridge_s6_display_json = is_array($thedotdev_agentic_bridge_s6_decoded) ? (wp_json_encode($thedotdev_agentic_bridge_s6_decoded, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ?: $thedotdev_agentic_bridge_s6_exact_bytes) : $thedotdev_agentic_bridge_s6_exact_bytes; } elseif ($thedotdev_agentic_bridge_is_s6) { // Local draft only — never network. Sync stays blocked until an exact stored preview exists. $thedotdev_agentic_bridge_s6_live = TheDotDevAgenticBridge_Snapshot::build(); $thedotdev_agentic_bridge_s6_display_json = wp_json_encode($thedotdev_agentic_bridge_s6_live, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ?: ''; $thedotdev_agentic_bridge_s6_payload_is_exact = false; } $thedotdev_agentic_bridge_s6_can_prepare = $thedotdev_agentic_bridge_s6_connected && current_user_can('manage_options'); $thedotdev_agentic_bridge_s6_can_sync = $thedotdev_agentic_bridge_s6_can_prepare && $thedotdev_agentic_bridge_s6_has_exact_payload; $thedotdev_agentic_bridge_s6_never_sent = array_values(TheDotDevAgenticBridge_Outbound_Preview::excluded_category_labels()); $thedotdev_agentic_bridge_s6_action_prepare = 'thedotdev_agentic_bridge_preview_snapshot'; $thedotdev_agentic_bridge_s6_action_sync = 'thedotdev_agentic_bridge_confirm_push'; $thedotdev_agentic_bridge_s6_action_disconnect = 'thedotdev_agentic_bridge_disconnect'; // Screen 7 — Safety (freeze: bind only existing handlers/state; no invented delete/retention-period APIs). $thedotdev_agentic_bridge_s7_can_manage = current_user_can('manage_options'); $thedotdev_agentic_bridge_s7_kill = TheDotDevAgenticBridge_Storage::kill_switch_enabled(); $thedotdev_agentic_bridge_s7_published = TheDotDevAgenticBridge_Storage::artifacts_published(); $thedotdev_agentic_bridge_s7_serving = TheDotDevAgenticBridge_Artifacts::should_serve_public_artifacts(); $thedotdev_agentic_bridge_s7_is_live = $thedotdev_agentic_bridge_s7_serving; $thedotdev_agentic_bridge_s7_conflict = TheDotDevAgenticBridge_Snapshot::has_physical_llms_txt(); $thedotdev_agentic_bridge_s7_lkg = is_array($settings['last_known_good'] ?? null) ? $settings['last_known_good'] : []; $thedotdev_agentic_bridge_s7_lkg_at = (string) ($thedotdev_agentic_bridge_s7_lkg['published_at'] ?? ''); $thedotdev_agentic_bridge_s7_revisions = is_array($thedotdev_agentic_bridge_artifact_revisions ?? null) ? $thedotdev_agentic_bridge_artifact_revisions : []; $thedotdev_agentic_bridge_s7_can_restore = $thedotdev_agentic_bridge_s7_can_manage && $thedotdev_agentic_bridge_s7_revisions !== []; $thedotdev_agentic_bridge_s7_restore_index = 0; $thedotdev_agentic_bridge_s7_delete_on_uninstall = !empty($settings['delete_data_on_uninstall']); $thedotdev_agentic_bridge_s7_connected = TheDotDevAgenticBridge_Storage::is_connected(); $thedotdev_agentic_bridge_s7_action_settings = 'thedotdev_agentic_bridge_save_settings'; $thedotdev_agentic_bridge_s7_action_retention = 'thedotdev_agentic_bridge_save_data_retention'; $thedotdev_agentic_bridge_s7_action_disconnect = 'thedotdev_agentic_bridge_disconnect'; $thedotdev_agentic_bridge_s7_action_rollback = 'thedotdev_agentic_bridge_rollback_artifact'; // Screen 8 — Backend findings (cache-only; admin load never triggers outbound refresh). $thedotdev_agentic_bridge_s8_connected = TheDotDevAgenticBridge_Storage::is_connected(); $thedotdev_agentic_bridge_s8_findings = is_array($findings ?? null) ? $findings : []; $thedotdev_agentic_bridge_s8_score = is_array($latest_report ?? null) ? (string) ($latest_report['score'] ?? '') : ''; $thedotdev_agentic_bridge_s8_has_cached_report = is_array($latest_report ?? null) && $latest_report !== []; $thedotdev_agentic_bridge_s8_finding_count = count($thedotdev_agentic_bridge_s8_findings); $thedotdev_agentic_bridge_s8_fetched_at = (string) ($report_fetched_at ?? ''); $thedotdev_agentic_bridge_s8_fetched_label = ''; if ($thedotdev_agentic_bridge_s8_fetched_at !== '') { $thedotdev_agentic_bridge_s8_fetched_ts = strtotime($thedotdev_agentic_bridge_s8_fetched_at); if (is_int($thedotdev_agentic_bridge_s8_fetched_ts) && $thedotdev_agentic_bridge_s8_fetched_ts > 0) { $thedotdev_agentic_bridge_s8_delta = max(0, time() - $thedotdev_agentic_bridge_s8_fetched_ts); if ($thedotdev_agentic_bridge_s8_delta < 60) { $thedotdev_agentic_bridge_s8_fetched_label = __('just now', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s8_delta < 3600) { $thedotdev_agentic_bridge_s8_mins = (int) floor($thedotdev_agentic_bridge_s8_delta / 60); $thedotdev_agentic_bridge_s8_fetched_label = $thedotdev_agentic_bridge_s8_mins === 1 ? __('1 minute ago', 'agentic-bridge') : sprintf( /* translators: %d: minutes */ __('%d minutes ago', 'agentic-bridge'), $thedotdev_agentic_bridge_s8_mins ); } elseif ($thedotdev_agentic_bridge_s8_delta < 86400) { $thedotdev_agentic_bridge_s8_hours = (int) floor($thedotdev_agentic_bridge_s8_delta / 3600); $thedotdev_agentic_bridge_s8_fetched_label = $thedotdev_agentic_bridge_s8_hours === 1 ? __('1 hour ago', 'agentic-bridge') : sprintf( /* translators: %d: hours */ __('%d hours ago', 'agentic-bridge'), $thedotdev_agentic_bridge_s8_hours ); } else { $thedotdev_agentic_bridge_s8_days = (int) floor($thedotdev_agentic_bridge_s8_delta / 86400); $thedotdev_agentic_bridge_s8_fetched_label = $thedotdev_agentic_bridge_s8_days === 1 ? __('1 day ago', 'agentic-bridge') : sprintf( /* translators: %d: days */ __('%d days ago', 'agentic-bridge'), $thedotdev_agentic_bridge_s8_days ); } } else { $thedotdev_agentic_bridge_s8_fetched_label = $thedotdev_agentic_bridge_s8_fetched_at; } } // No validated dashboard URL setting exists in this plugin slice — CTA stays unavailable. $thedotdev_agentic_bridge_s8_dashboard_url = ''; $thedotdev_agentic_bridge_s8_has_dashboard = $thedotdev_agentic_bridge_s8_dashboard_url !== '' && filter_var($thedotdev_agentic_bridge_s8_dashboard_url, FILTER_VALIDATE_URL) !== false && in_array(strtolower((string) (wp_parse_url($thedotdev_agentic_bridge_s8_dashboard_url, PHP_URL_SCHEME) ?: '')), ['https', 'http'], true); // Cached hosted findings are severity/title/description only — no ID/action/target mapping yet. $thedotdev_agentic_bridge_s8_can_review = false; $thedotdev_agentic_bridge_s8_action_refresh = 'thedotdev_agentic_bridge_refresh_report'; $thedotdev_agentic_bridge_admin_mod = $thedotdev_agentic_bridge_is_settings ? ' tdab-admin--settings' : ($thedotdev_agentic_bridge_is_s1_empty ? ' tdab-admin--s1-empty' : ($thedotdev_agentic_bridge_is_s8 ? ' tdab-admin--s8' : ($thedotdev_agentic_bridge_is_s7 ? ' tdab-admin--s7' : ($thedotdev_agentic_bridge_is_s6 ? ' tdab-admin--s6' : ($thedotdev_agentic_bridge_is_s5 ? ' tdab-admin--s5' : ($thedotdev_agentic_bridge_is_s4 ? ' tdab-admin--s4' : ($thedotdev_agentic_bridge_is_s3 ? ' tdab-admin--s3' : ($thedotdev_agentic_bridge_show_s2_overview ? ' tdab-admin--s2' : '')))))))); $thedotdev_agentic_bridge_workspace_section = __('Overview', 'agentic-bridge'); if ($thedotdev_agentic_bridge_is_s8) { $thedotdev_agentic_bridge_workspace_section = __('Cloud recommendations', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_is_s7) { $thedotdev_agentic_bridge_workspace_section = __('Safety controls', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_is_s6) { $thedotdev_agentic_bridge_workspace_section = __('Privacy and sync', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_is_s5) { $thedotdev_agentic_bridge_workspace_section = __('Artifacts workspace', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_is_s4) { $thedotdev_agentic_bridge_workspace_section = __('Content and intent', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_is_s3) { $thedotdev_agentic_bridge_workspace_section = __('Findings workspace', 'agentic-bridge'); } elseif (true === $thedotdev_agentic_bridge_is_settings) { $thedotdev_agentic_bridge_workspace_section = __('Connection settings', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_is_s1_empty) { $thedotdev_agentic_bridge_workspace_section = __('Getting started', 'agentic-bridge'); } $thedotdev_agentic_bridge_workspace_local_readiness = __('Run local check', 'agentic-bridge'); $thedotdev_agentic_bridge_workspace_local_tone = 'neutral'; if ($thedotdev_agentic_bridge_is_s2) { $thedotdev_agentic_bridge_workspace_local_readiness = sprintf( /* translators: %d: local readiness score */ __('%d/100', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_score ); if ($thedotdev_agentic_bridge_s2_score >= $thedotdev_agentic_bridge_ui_strong_min) { $thedotdev_agentic_bridge_workspace_local_tone = 'good'; } elseif ($thedotdev_agentic_bridge_s2_score >= $thedotdev_agentic_bridge_ui_building_min) { $thedotdev_agentic_bridge_workspace_local_tone = 'warn'; } else { $thedotdev_agentic_bridge_workspace_local_tone = 'bad'; } } $thedotdev_agentic_bridge_workspace_findings = __('Not scanned', 'agentic-bridge'); $thedotdev_agentic_bridge_workspace_findings_tone = 'neutral'; if ($thedotdev_agentic_bridge_is_s2) { $thedotdev_agentic_bridge_workspace_findings = $thedotdev_agentic_bridge_s2_finding_count === 1 ? __('1 finding', 'agentic-bridge') : sprintf( /* translators: %d: number of local scan findings */ __('%d findings', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_finding_count ); $thedotdev_agentic_bridge_workspace_findings_tone = count($thedotdev_agentic_bridge_s2_attention) > 0 ? 'warn' : 'good'; } $thedotdev_agentic_bridge_workspace_is_connected = TheDotDevAgenticBridge_Storage::is_connected(); $thedotdev_agentic_bridge_workspace_connection = $thedotdev_agentic_bridge_workspace_is_connected ? __('Connected', 'agentic-bridge') : __('Local only', 'agentic-bridge'); $thedotdev_agentic_bridge_workspace_connection_tone = $thedotdev_agentic_bridge_workspace_is_connected ? 'good' : 'neutral'; $thedotdev_agentic_bridge_shell_header_id = 'tdab-s2-overview'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s2-header'; $thedotdev_agentic_bridge_shell_header_meta = false; if ($thedotdev_agentic_bridge_is_s1_empty) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s1-overview'; $thedotdev_agentic_bridge_shell_header_class = ''; $thedotdev_agentic_bridge_shell_header_meta = false; $thedotdev_agentic_bridge_shell_settings_url_escaped = esc_url($thedotdev_agentic_bridge_settings_url); } elseif ($thedotdev_agentic_bridge_is_s8) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s8-cloud'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s8-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } elseif ($thedotdev_agentic_bridge_is_s7) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s7-safety'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s7-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } elseif ($thedotdev_agentic_bridge_is_s6) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s6-privacy'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s6-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } elseif ($thedotdev_agentic_bridge_is_s5) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s5-artifacts'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s5-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } elseif ($thedotdev_agentic_bridge_is_s4) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s4-content'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s4-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } elseif ($thedotdev_agentic_bridge_is_s3) { $thedotdev_agentic_bridge_shell_header_id = 'tdab-s3-findings'; $thedotdev_agentic_bridge_shell_header_class = 'tdab-s3-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } elseif ($thedotdev_agentic_bridge_is_settings) { $thedotdev_agentic_bridge_shell_header_id = 'thedotdev-agentic-bridge'; $thedotdev_agentic_bridge_shell_header_class = 'thedotdev-agentic-bridge-header'; $thedotdev_agentic_bridge_shell_header_meta = false; } $thedotdev_agentic_bridge_shell_active = 'overview'; if ($thedotdev_agentic_bridge_is_settings) { $thedotdev_agentic_bridge_shell_active = 'settings'; } elseif ($thedotdev_agentic_bridge_is_s8) { $thedotdev_agentic_bridge_shell_active = 'cloud'; } elseif ($thedotdev_agentic_bridge_is_s7) { $thedotdev_agentic_bridge_shell_active = 'safety'; } elseif ($thedotdev_agentic_bridge_is_s6) { $thedotdev_agentic_bridge_shell_active = 'privacy'; } elseif ($thedotdev_agentic_bridge_is_s5) { $thedotdev_agentic_bridge_shell_active = 'artifacts'; } elseif ($thedotdev_agentic_bridge_is_s4) { $thedotdev_agentic_bridge_shell_active = 'content'; } elseif ($thedotdev_agentic_bridge_is_s3) { $thedotdev_agentic_bridge_shell_active = 'findings'; } // Progressive shell: ≤3 primary + More. First-run primaries = setup path; post-scan = Agent Ready triage. $thedotdev_agentic_bridge_shell_nav_mode = 'progressive'; $thedotdev_agentic_bridge_shell_primary_keys = $thedotdev_agentic_bridge_is_s2 ? ['overview', 'findings', 'ai-preview'] : ['overview', 'settings', 'setup']; $thedotdev_agentic_bridge_shell_overview_url = $thedotdev_agentic_bridge_is_s2 ? $thedotdev_agentic_bridge_s2_url : $thedotdev_agentic_bridge_admin_page_url; $thedotdev_agentic_bridge_findings_nav_url = $thedotdev_agentic_bridge_is_s2 ? $thedotdev_agentic_bridge_s3_url : $thedotdev_agentic_bridge_s2_url; $thedotdev_agentic_bridge_shell_cloud_score_numeric = is_numeric($thedotdev_agentic_bridge_s8_score) ? (int) $thedotdev_agentic_bridge_s8_score : null; $thedotdev_agentic_bridge_shell_nav_overview_badge = $thedotdev_agentic_bridge_is_s2 ? sprintf( /* translators: %d: local readiness score */ __('%d/100', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_score ) : __('Setup', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_overview_tone = $thedotdev_agentic_bridge_workspace_local_tone; $thedotdev_agentic_bridge_shell_nav_findings_badge = __('Run scan', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_findings_tone = 'neutral'; if ($thedotdev_agentic_bridge_is_s2) { $thedotdev_agentic_bridge_shell_nav_findings_badge = $thedotdev_agentic_bridge_s2_finding_count === 1 ? __('1 open', 'agentic-bridge') : sprintf( /* translators: %d: findings count */ __('%d open', 'agentic-bridge'), $thedotdev_agentic_bridge_s2_finding_count ); $thedotdev_agentic_bridge_shell_nav_findings_tone = count($thedotdev_agentic_bridge_s2_attention) > 0 ? 'warn' : 'good'; } $thedotdev_agentic_bridge_shell_nav_artifacts_badge = __('Draft', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_artifacts_tone = 'neutral'; if ($thedotdev_agentic_bridge_s5_kill) { $thedotdev_agentic_bridge_shell_nav_artifacts_badge = __('Suppressed', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_artifacts_tone = 'warn'; } elseif ($thedotdev_agentic_bridge_s5_published) { $thedotdev_agentic_bridge_shell_nav_artifacts_badge = __('Live', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_artifacts_tone = 'good'; } elseif ($thedotdev_agentic_bridge_s5_has_preview) { $thedotdev_agentic_bridge_shell_nav_artifacts_badge = __('Preview', 'agentic-bridge'); } $thedotdev_agentic_bridge_shell_nav_cloud_badge = __('Offline', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_cloud_tone = 'neutral'; if ($thedotdev_agentic_bridge_s8_connected && $thedotdev_agentic_bridge_s8_has_cached_report && $thedotdev_agentic_bridge_shell_cloud_score_numeric !== null) { $thedotdev_agentic_bridge_shell_nav_cloud_badge = sprintf( /* translators: %d: cloud score */ __('Score %d', 'agentic-bridge'), $thedotdev_agentic_bridge_shell_cloud_score_numeric ); $thedotdev_agentic_bridge_shell_nav_cloud_tone = $thedotdev_agentic_bridge_shell_cloud_score_numeric >= $thedotdev_agentic_bridge_ui_strong_min ? 'good' : ($thedotdev_agentic_bridge_shell_cloud_score_numeric >= $thedotdev_agentic_bridge_ui_building_min ? 'warn' : 'bad'); } elseif ($thedotdev_agentic_bridge_s8_connected) { $thedotdev_agentic_bridge_shell_nav_cloud_badge = __('Connected', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_cloud_tone = 'good'; } $thedotdev_agentic_bridge_shell_nav_privacy_badge = $thedotdev_agentic_bridge_s6_connected ? ($thedotdev_agentic_bridge_s6_can_sync ? __('Ready', 'agentic-bridge') : __('Connected', 'agentic-bridge')) : __('Local only', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_privacy_tone = $thedotdev_agentic_bridge_s6_can_sync ? 'good' : 'neutral'; $thedotdev_agentic_bridge_shell_nav_safety_badge = $thedotdev_agentic_bridge_s7_kill ? __('Kill on', 'agentic-bridge') : ($thedotdev_agentic_bridge_s7_is_live ? __('Live', 'agentic-bridge') : __('Guarded', 'agentic-bridge')); $thedotdev_agentic_bridge_shell_nav_safety_tone = $thedotdev_agentic_bridge_s7_kill ? 'warn' : ($thedotdev_agentic_bridge_s7_is_live ? 'good' : 'neutral'); $thedotdev_agentic_bridge_shell_nav_content_badge = $thedotdev_agentic_bridge_metadata_total > 0 ? sprintf( /* translators: %d: number of tracked content rows */ __('%d tracked', 'agentic-bridge'), $thedotdev_agentic_bridge_metadata_total ) : __('No rows', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_content_tone = $thedotdev_agentic_bridge_metadata_total > 0 ? 'good' : 'neutral'; $thedotdev_agentic_bridge_shell_nav_settings_badge = $thedotdev_agentic_bridge_workspace_is_connected ? __('Connected', 'agentic-bridge') : __('Local', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_nav_settings_tone = $thedotdev_agentic_bridge_workspace_is_connected ? 'good' : 'neutral'; $thedotdev_agentic_bridge_shell_actions_intro = __('Recommended next actions for this section.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_actions_note = ''; $thedotdev_agentic_bridge_shell_actions = []; if ($thedotdev_agentic_bridge_is_s1_empty) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_run_readiness_scan', 'label' => __('Run local readiness check', 'agentic-bridge'), 'variant' => 'primary', 'loading' => __('Running local check…', 'agentic-bridge'), ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open hosted connection', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_settings_url, 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Review cloud recommendations', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s8_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_show_s2_overview) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open local findings', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s3_url, 'variant' => 'primary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_run_readiness_scan', 'label' => __('Re-check now', 'agentic-bridge'), 'variant' => 'secondary', 'loading' => __('Running local check…', 'agentic-bridge'), ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_download_readiness_pdf', 'label' => __('Download PDF report', 'agentic-bridge'), 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open AI Preview', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_ai_preview_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_s3) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_run_readiness_scan', 'label' => __('Re-check findings', 'agentic-bridge'), 'variant' => 'primary', 'loading' => __('Running local check…', 'agentic-bridge'), ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open content & intent', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s4_url, 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_download_readiness_pdf', 'label' => __('Download PDF report', 'agentic-bridge'), 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open AI Preview', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_ai_preview_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_s4) { if ($thedotdev_agentic_bridge_s5_cap_blocked) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'disabled', 'label' => __('Generate artifact preview', 'agentic-bridge'), 'reason' => __('Unavailable — too many eligible entries exceed the current artifact cap.', 'agentic-bridge'), 'variant' => 'primary', ]; } else { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_generate_preview', 'label' => __('Generate artifact preview', 'agentic-bridge'), 'variant' => 'primary', ]; } $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open inventory', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s4_url . '#tdab-s4-inventory-heading', 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Go to Artifacts', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s5_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_s5) { if ($thedotdev_agentic_bridge_s5_cap_blocked) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'disabled', 'label' => __('Publish artifacts', 'agentic-bridge'), 'reason' => __('Blocked — eligible entry count exceeds the configured artifact cap.', 'agentic-bridge'), 'variant' => 'primary', ]; } elseif ($thedotdev_agentic_bridge_s5_conflict) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'disabled', 'label' => __('Publish artifacts', 'agentic-bridge'), 'reason' => __('Blocked — a physical llms.txt file is detected on disk and must be resolved first.', 'agentic-bridge'), 'variant' => 'primary', ]; } elseif ($thedotdev_agentic_bridge_s5_has_preview && !$thedotdev_agentic_bridge_s5_preview_stale) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_publish', 'label' => __('Publish artifacts', 'agentic-bridge'), 'variant' => 'primary', ]; } else { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_generate_preview', 'label' => __('Generate fresh preview', 'agentic-bridge'), 'variant' => 'primary', ]; } $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_generate_preview', 'label' => __('Regenerate preview', 'agentic-bridge'), 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open safety controls', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s7_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_s6) { if ($thedotdev_agentic_bridge_s6_can_sync) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Review consent and sync', 'agentic-bridge'), 'href' => '#tdab-s6-consent', 'variant' => 'primary', ]; } elseif ($thedotdev_agentic_bridge_s6_can_prepare && !$thedotdev_agentic_bridge_s6_has_exact_payload) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => 'thedotdev_agentic_bridge_preview_snapshot', 'label' => __('Prepare exact payload', 'agentic-bridge'), 'variant' => 'primary', ]; } else { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open connection settings', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_settings_url, 'variant' => 'primary', ]; } $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open cloud report', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s8_url, 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open safety controls', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s7_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_s7) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open artifacts workspace', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s5_url, 'variant' => 'primary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open connection settings', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_settings_url, 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open privacy and sync', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s6_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_s8) { if ($thedotdev_agentic_bridge_s8_connected) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'post', 'action' => $thedotdev_agentic_bridge_s8_action_refresh, 'label' => __('Refresh hosted report', 'agentic-bridge'), 'variant' => 'primary', ]; } else { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Connect this site', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_settings_url, 'variant' => 'primary', ]; } $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Review local findings', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_shell_findings_url, 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open privacy controls', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s6_url, 'variant' => 'secondary', ]; } elseif ($thedotdev_agentic_bridge_is_settings) { $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open privacy and sync', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s6_url, 'variant' => 'primary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open cloud recommendations', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s8_url, 'variant' => 'secondary', ]; $thedotdev_agentic_bridge_shell_actions[] = [ 'kind' => 'link', 'label' => __('Open safety controls', 'agentic-bridge'), 'href' => $thedotdev_agentic_bridge_s7_url, 'variant' => 'secondary', ]; } $thedotdev_agentic_bridge_shell_artifact_signal_value = __('Not generated', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_detail = __('Create a preview before publishing.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_tone = 'neutral'; if ($thedotdev_agentic_bridge_s5_kill) { $thedotdev_agentic_bridge_shell_artifact_signal_value = __('Suppressed', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_detail = __('Kill switch is currently suppressing public artifact routes.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_tone = 'warn'; } elseif ($thedotdev_agentic_bridge_s5_published) { $thedotdev_agentic_bridge_shell_artifact_signal_value = __('Published', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_detail = __('Public artifact routes are available from WordPress.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_tone = 'good'; } elseif ($thedotdev_agentic_bridge_s5_has_preview && !$thedotdev_agentic_bridge_s5_preview_stale) { $thedotdev_agentic_bridge_shell_artifact_signal_value = __('Preview ready', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_artifact_signal_detail = __('You can publish this reviewed preview when ready.', 'agentic-bridge'); } $thedotdev_agentic_bridge_shell_sync_signal_value = __('Local only', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_sync_signal_detail = __('No hosted sync is possible until this site is connected.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_sync_signal_tone = 'neutral'; if ($thedotdev_agentic_bridge_s6_connected && $thedotdev_agentic_bridge_s6_can_sync) { $thedotdev_agentic_bridge_shell_sync_signal_value = __('Ready to sync', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_sync_signal_detail = __('Exact preview bytes are prepared and awaiting explicit consent.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_sync_signal_tone = 'good'; } elseif ($thedotdev_agentic_bridge_s6_connected) { $thedotdev_agentic_bridge_shell_sync_signal_value = __('Connected', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_sync_signal_detail = __('Prepare an exact payload preview before sync can run.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_sync_signal_tone = 'warn'; } if ($thedotdev_agentic_bridge_s6_last_sync_label !== '') { $thedotdev_agentic_bridge_shell_sync_signal_detail = $thedotdev_agentic_bridge_s6_last_sync_label; } $thedotdev_agentic_bridge_shell_cloud_signal_value = __('Disconnected', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_cloud_signal_detail = __('Cloud refresh and recommendations are unavailable until connected.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_cloud_signal_tone = 'neutral'; if ($thedotdev_agentic_bridge_s8_connected && $thedotdev_agentic_bridge_s8_has_cached_report && $thedotdev_agentic_bridge_shell_cloud_score_numeric !== null) { $thedotdev_agentic_bridge_shell_cloud_signal_value = sprintf( /* translators: %d: cloud score */ __('Score %d', 'agentic-bridge'), $thedotdev_agentic_bridge_shell_cloud_score_numeric ); $thedotdev_agentic_bridge_shell_cloud_signal_detail = $thedotdev_agentic_bridge_s8_finding_count === 1 ? __('1 cached hosted finding', 'agentic-bridge') : sprintf( /* translators: %d: hosted finding count */ __('%d cached hosted findings', 'agentic-bridge'), $thedotdev_agentic_bridge_s8_finding_count ); $thedotdev_agentic_bridge_shell_cloud_signal_tone = $thedotdev_agentic_bridge_shell_cloud_score_numeric >= $thedotdev_agentic_bridge_ui_strong_min ? 'good' : ($thedotdev_agentic_bridge_shell_cloud_score_numeric >= $thedotdev_agentic_bridge_ui_building_min ? 'warn' : 'bad'); } elseif ($thedotdev_agentic_bridge_s8_connected) { $thedotdev_agentic_bridge_shell_cloud_signal_value = __('Connected', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_cloud_signal_detail = __('No cached hosted report yet. Refresh explicitly to load one.', 'agentic-bridge'); $thedotdev_agentic_bridge_shell_cloud_signal_tone = 'warn'; } $thedotdev_agentic_bridge_shell_signals = [ [ 'label' => __('Artifact serving', 'agentic-bridge'), 'value' => $thedotdev_agentic_bridge_shell_artifact_signal_value, 'detail' => $thedotdev_agentic_bridge_shell_artifact_signal_detail, 'tone' => $thedotdev_agentic_bridge_shell_artifact_signal_tone, ], [ 'label' => __('Safety switch', 'agentic-bridge'), 'value' => $thedotdev_agentic_bridge_s7_kill ? __('Enabled', 'agentic-bridge') : __('Off', 'agentic-bridge'), 'detail' => $thedotdev_agentic_bridge_s7_kill ? __('Public route serving is currently suppressed.', 'agentic-bridge') : __('Public route suppression is currently off.', 'agentic-bridge'), 'tone' => $thedotdev_agentic_bridge_s7_kill ? 'warn' : 'good', ], [ 'label' => __('Sync posture', 'agentic-bridge'), 'value' => $thedotdev_agentic_bridge_shell_sync_signal_value, 'detail' => $thedotdev_agentic_bridge_shell_sync_signal_detail, 'tone' => $thedotdev_agentic_bridge_shell_sync_signal_tone, ], [ 'label' => __('Cloud audit', 'agentic-bridge'), 'value' => $thedotdev_agentic_bridge_shell_cloud_signal_value, 'detail' => $thedotdev_agentic_bridge_shell_cloud_signal_detail, 'tone' => $thedotdev_agentic_bridge_shell_cloud_signal_tone, ], ]; ?>

$thedotdev_agentic_bridge_shell_action) : ?>
$thedotdev_agentic_bridge_shell_loading_label, ] ); ?>

llms.txt

agent-map.json

0 ? get_post($thedotdev_agentic_bridge_s4_guide_id) : null; $thedotdev_agentic_bridge_s4_guide_score = 0; $thedotdev_agentic_bridge_s4_guide_path = '/'; if ($thedotdev_agentic_bridge_s4_guide_post instanceof WP_Post) { $thedotdev_agentic_bridge_s4_guide_score_data = TheDotDevAgenticBridge_Content_Agent_Ready_Score::score($thedotdev_agentic_bridge_s4_guide_post); $thedotdev_agentic_bridge_s4_guide_score = (int) ($thedotdev_agentic_bridge_s4_guide_score_data['score'] ?? 0); $thedotdev_agentic_bridge_s4_guide_path_part = wp_parse_url((string) get_permalink($thedotdev_agentic_bridge_s4_guide_post), PHP_URL_PATH); if (is_string($thedotdev_agentic_bridge_s4_guide_path_part) && $thedotdev_agentic_bridge_s4_guide_path_part !== '') { $thedotdev_agentic_bridge_s4_guide_path = $thedotdev_agentic_bridge_s4_guide_path_part; } } $thedotdev_agentic_bridge_s4_guide_score_state = $thedotdev_agentic_bridge_s4_guide_score >= $thedotdev_agentic_bridge_ui_strong_min ? 'good' : ($thedotdev_agentic_bridge_s4_guide_score >= $thedotdev_agentic_bridge_ui_building_min ? 'warn' : 'bad'); $thedotdev_agentic_bridge_s4_guide_intent = TheDotDevAgenticBridge_Content_Metadata::intent_label((string) ($thedotdev_agentic_bridge_s4_guide_row['intent'] ?? 'general_information')); $thedotdev_agentic_bridge_s4_guide_status = $thedotdev_agentic_bridge_s4_guide_stale ? __('Stale — review metadata', 'agentic-bridge') : ($thedotdev_agentic_bridge_s4_guide_configured ? ($thedotdev_agentic_bridge_s4_guide_included ? __('Included · configured', 'agentic-bridge') : __('Excluded · configured', 'agentic-bridge')) : __('Needs metadata', 'agentic-bridge')); $thedotdev_agentic_bridge_s4_guide_href = add_query_arg( [ 'thedotdev_agentic_bridge_view' => 'content', 'thedotdev_agentic_bridge_metadata_id' => $thedotdev_agentic_bridge_s4_guide_id > 0 ? (string) $thedotdev_agentic_bridge_s4_guide_id : null, ], $thedotdev_agentic_bridge_admin_page_url ); ?>

/100

0 ? get_post($thedotdev_agentic_bridge_s4_id) : null; $thedotdev_agentic_bridge_s4_path = '/'; $thedotdev_agentic_bridge_s4_cfg = null; if ($thedotdev_agentic_bridge_s4_post instanceof WP_Post) { $thedotdev_agentic_bridge_s4_permalink = get_permalink($thedotdev_agentic_bridge_s4_post); $thedotdev_agentic_bridge_s4_path_part = wp_parse_url((string) $thedotdev_agentic_bridge_s4_permalink, PHP_URL_PATH); if (is_string($thedotdev_agentic_bridge_s4_path_part) && $thedotdev_agentic_bridge_s4_path_part !== '') { $thedotdev_agentic_bridge_s4_path = $thedotdev_agentic_bridge_s4_path_part; } $thedotdev_agentic_bridge_s4_cfg = TheDotDevAgenticBridge_Content_Metadata::effective_config_for_post($thedotdev_agentic_bridge_s4_post); } $thedotdev_agentic_bridge_s4_score = 0; if ($thedotdev_agentic_bridge_s4_post instanceof WP_Post) { $thedotdev_agentic_bridge_s4_score_data = TheDotDevAgenticBridge_Content_Agent_Ready_Score::score($thedotdev_agentic_bridge_s4_post); $thedotdev_agentic_bridge_s4_score = (int) ($thedotdev_agentic_bridge_s4_score_data['score'] ?? 0); } $thedotdev_agentic_bridge_s4_score_state = $thedotdev_agentic_bridge_s4_score >= $thedotdev_agentic_bridge_ui_strong_min ? 'good' : ($thedotdev_agentic_bridge_s4_score >= $thedotdev_agentic_bridge_ui_building_min ? 'warn' : 'bad'); $thedotdev_agentic_bridge_s4_configured = !empty($thedotdev_agentic_bridge_s4_row['configured']); $thedotdev_agentic_bridge_s4_included_row = !empty($thedotdev_agentic_bridge_s4_row['artifactEligible']); $thedotdev_agentic_bridge_s4_type_label = $thedotdev_agentic_bridge_s4_type_raw !== '' ? ucwords(str_replace(['_', '-'], ' ', $thedotdev_agentic_bridge_s4_type_raw)) : __('Unknown', 'agentic-bridge'); if (is_array($thedotdev_agentic_bridge_s4_cfg)) { $thedotdev_agentic_bridge_s4_rel = (string) ($thedotdev_agentic_bridge_s4_cfg['relationshipType'] ?? ''); if ($thedotdev_agentic_bridge_s4_rel === 'service') { $thedotdev_agentic_bridge_s4_type_label = __('Service', 'agentic-bridge'); } elseif ($thedotdev_agentic_bridge_s4_rel === 'product') { $thedotdev_agentic_bridge_s4_type_label = __('Product', 'agentic-bridge'); } } if ($thedotdev_agentic_bridge_s4_configured && is_array($thedotdev_agentic_bridge_s4_cfg)) { $thedotdev_agentic_bridge_s4_intent_key = (string) ($thedotdev_agentic_bridge_s4_cfg['intent'] ?? ($thedotdev_agentic_bridge_s4_row['intent'] ?? '')); $thedotdev_agentic_bridge_s4_intent_label = $thedotdev_agentic_bridge_s4_intent_key !== '' ? TheDotDevAgenticBridge_Content_Metadata::intent_label($thedotdev_agentic_bridge_s4_intent_key) : __('Unconfigured', 'agentic-bridge'); } else { $thedotdev_agentic_bridge_s4_intent_label = __('Unconfigured', 'agentic-bridge'); } $thedotdev_agentic_bridge_s4_actions_label = __('None', 'agentic-bridge'); $thedotdev_agentic_bridge_s4_claims_label = __('None', 'agentic-bridge'); $thedotdev_agentic_bridge_s4_edit_href = add_query_arg( [ 'page' => 'thedotdev-agentic-bridge', 'thedotdev_agentic_bridge_view' => 'content', 'thedotdev_agentic_bridge_metadata_id' => $thedotdev_agentic_bridge_s4_id, ], $thedotdev_agentic_bridge_preview_base_url ) . '#tdab-s4-metadata-edit'; if ($thedotdev_agentic_bridge_s4_configured && is_array($thedotdev_agentic_bridge_s4_cfg)) { $thedotdev_agentic_bridge_s4_actions = is_array($thedotdev_agentic_bridge_s4_cfg['allowedActions'] ?? null) ? $thedotdev_agentic_bridge_s4_cfg['allowedActions'] : []; $thedotdev_agentic_bridge_s4_action_labels = []; foreach ($thedotdev_agentic_bridge_s4_actions as $thedotdev_agentic_bridge_s4_action_id) { $thedotdev_agentic_bridge_s4_action_labels[] = TheDotDevAgenticBridge_Content_Metadata::action_label((string) $thedotdev_agentic_bridge_s4_action_id); } $thedotdev_agentic_bridge_s4_actions_label = $thedotdev_agentic_bridge_s4_action_labels !== [] ? implode(' · ', $thedotdev_agentic_bridge_s4_action_labels) : __('None', 'agentic-bridge'); $thedotdev_agentic_bridge_s4_claims = is_array($thedotdev_agentic_bridge_s4_cfg['blockedClaims'] ?? null) ? $thedotdev_agentic_bridge_s4_cfg['blockedClaims'] : []; $thedotdev_agentic_bridge_s4_custom_claims = is_array($thedotdev_agentic_bridge_s4_cfg['customBlockedClaims'] ?? null) ? $thedotdev_agentic_bridge_s4_cfg['customBlockedClaims'] : []; $thedotdev_agentic_bridge_s4_claim_count = count($thedotdev_agentic_bridge_s4_claims) + count($thedotdev_agentic_bridge_s4_custom_claims); if ($thedotdev_agentic_bridge_s4_claim_count === 0) { $thedotdev_agentic_bridge_s4_claims_label = ''; } elseif ($thedotdev_agentic_bridge_s4_claim_count === 1) { $thedotdev_agentic_bridge_s4_claims_label = __('1 claim', 'agentic-bridge'); } else { $thedotdev_agentic_bridge_s4_claims_label = sprintf( /* translators: %d: blocked claim count */ __('%d claims', 'agentic-bridge'), $thedotdev_agentic_bridge_s4_claim_count ); } } $thedotdev_agentic_bridge_s4_include_label = $thedotdev_agentic_bridge_s4_included_row ? __('Included', 'agentic-bridge') : __('Excluded', 'agentic-bridge'); $thedotdev_agentic_bridge_s4_include_note = ''; if (!$thedotdev_agentic_bridge_s4_included_row) { $thedotdev_agentic_bridge_s4_mode = (string) ($thedotdev_agentic_bridge_s4_row['inclusionMode'] ?? ''); if ($thedotdev_agentic_bridge_s4_mode === TheDotDevAgenticBridge_Content_Metadata::INCLUSION_EXCLUDE) { $thedotdev_agentic_bridge_s4_include_note = __('Explicitly excluded', 'agentic-bridge'); } else { $thedotdev_agentic_bridge_s4_include_note = (string) ($thedotdev_agentic_bridge_s4_row['policyReason'] ?? ''); } } $thedotdev_agentic_bridge_s4_check_id = 'tdab-s4-check-' . (string) $thedotdev_agentic_bridge_s4_id; ?>
aria-label="" /> /100

__('High', 'agentic-bridge'), 'medium' => __('Medium', 'agentic-bridge'), 'info' => __('Info', 'agentic-bridge'), default => ucfirst($thedotdev_agentic_bridge_s3_lead_sev), } ); ?>

·

$thedotdev_agentic_bridge_s3_ev) : ?>

    'findings', 'thedotdev_agentic_bridge_findings_page' => $thedotdev_agentic_bridge_s3_page, 'thedotdev_agentic_bridge_severity' => $thedotdev_agentic_bridge_s3_severity !== '' ? $thedotdev_agentic_bridge_s3_severity : null, 'thedotdev_agentic_bridge_category' => $thedotdev_agentic_bridge_s3_category !== '' ? $thedotdev_agentic_bridge_s3_category : null, 'thedotdev_agentic_bridge_lifecycle' => $thedotdev_agentic_bridge_s3_lifecycle !== '' ? $thedotdev_agentic_bridge_s3_lifecycle : null, 'thedotdev_agentic_bridge_findings_q' => $thedotdev_agentic_bridge_s3_query !== '' ? $thedotdev_agentic_bridge_s3_query : null, 'thedotdev_agentic_bridge_finding' => $thedotdev_agentic_bridge_s3_item_id !== '' ? $thedotdev_agentic_bridge_s3_item_id : null, ], static fn($v) => $v !== null && $v !== '' ), $thedotdev_agentic_bridge_admin_page_url ); $thedotdev_agentic_bridge_s3_item_has_detail = $thedotdev_agentic_bridge_s3_item_why !== '' || $thedotdev_agentic_bridge_s3_item_next !== '' || $thedotdev_agentic_bridge_s3_item_evidence !== []; ?>
  • __('High', 'agentic-bridge'), 'medium' => __('Medium', 'agentic-bridge'), 'info' => __('Info', 'agentic-bridge'), default => ucfirst($thedotdev_agentic_bridge_s3_item_sev), } ); ?>

    >

      $thedotdev_agentic_bridge_s3_item_value) : ?>
    • :

1) : ?>
__('Connection & status', 'agentic-bridge'), 'scanning' => __('Scanning', 'agentic-bridge'), 'thresholds' => __('Thresholds', 'agentic-bridge'), 'content-types' => __('Content types', 'agentic-bridge'), 'display' => __('Display', 'agentic-bridge'), 'advanced' => __('Advanced', 'agentic-bridge'), ]; if (!isset($thedotdev_agentic_bridge_settings_tabs[$thedotdev_agentic_bridge_settings_tab])) { $thedotdev_agentic_bridge_settings_tab = 'connection'; } ?>

·

·


·