$thedotdev_agentic_bridge_shell_admin_url, 'findings' => add_query_arg(['thedotdev_agentic_bridge_view' => 'findings'], $thedotdev_agentic_bridge_shell_admin_url), 'ai-preview' => TheDotDevAgenticBridge_Admin::ai_preview_url(), 'content' => add_query_arg(['thedotdev_agentic_bridge_view' => 'content'], $thedotdev_agentic_bridge_shell_admin_url), 'artifacts' => add_query_arg(['thedotdev_agentic_bridge_view' => 'artifacts'], $thedotdev_agentic_bridge_shell_admin_url), 'privacy' => add_query_arg(['thedotdev_agentic_bridge_view' => 'privacy'], $thedotdev_agentic_bridge_shell_admin_url), 'safety' => add_query_arg(['thedotdev_agentic_bridge_view' => 'safety'], $thedotdev_agentic_bridge_shell_admin_url), 'cloud' => add_query_arg(['thedotdev_agentic_bridge_view' => 'cloud'], $thedotdev_agentic_bridge_shell_admin_url), 'settings' => add_query_arg(['thedotdev_agentic_bridge_view' => 'settings'], $thedotdev_agentic_bridge_shell_admin_url), 'setup' => TheDotDevAgenticBridge_Admin::setup_url(), ]; $thedotdev_agentic_bridge_shell_tabs = [ 'overview' => __('Overview', 'agentic-bridge'), 'findings' => __('Findings', 'agentic-bridge'), 'ai-preview' => __('AI Preview', 'agentic-bridge'), 'content' => __('Content & intent', 'agentic-bridge'), 'artifacts' => __('Artifacts', 'agentic-bridge'), 'privacy' => __('Privacy', 'agentic-bridge'), 'safety' => __('Safety', 'agentic-bridge'), 'cloud' => __('Cloud', 'agentic-bridge'), 'settings' => __('Settings', 'agentic-bridge'), 'setup' => __('Setup', 'agentic-bridge'), ]; if (isset($thedotdev_agentic_bridge_shell_show_cloud)) { $thedotdev_agentic_bridge_shell_show_cloud = (bool) $thedotdev_agentic_bridge_shell_show_cloud; } else { $thedotdev_agentic_bridge_shell_show_cloud = true; $thedotdev_agentic_bridge_shell_settings = TheDotDevAgenticBridge_Storage::get(); $thedotdev_agentic_bridge_shell_admin_ui = is_array($thedotdev_agentic_bridge_shell_settings['admin_ui'] ?? null) ? $thedotdev_agentic_bridge_shell_settings['admin_ui'] : []; $thedotdev_agentic_bridge_shell_advanced = is_array($thedotdev_agentic_bridge_shell_admin_ui['advanced'] ?? null) ? $thedotdev_agentic_bridge_shell_admin_ui['advanced'] : []; if (array_key_exists('showCloudTab', $thedotdev_agentic_bridge_shell_advanced)) { $thedotdev_agentic_bridge_shell_show_cloud = !empty($thedotdev_agentic_bridge_shell_advanced['showCloudTab']); } } $thedotdev_agentic_bridge_shell_visible_tabs = []; foreach ($thedotdev_agentic_bridge_shell_tabs as $thedotdev_agentic_bridge_shell_key => $thedotdev_agentic_bridge_shell_label) { if ($thedotdev_agentic_bridge_shell_key === 'cloud' && !$thedotdev_agentic_bridge_shell_show_cloud) { continue; } $thedotdev_agentic_bridge_shell_visible_tabs[$thedotdev_agentic_bridge_shell_key] = $thedotdev_agentic_bridge_shell_label; } /** @var list $thedotdev_agentic_bridge_shell_primary_keys */ $thedotdev_agentic_bridge_shell_default_primary_keys = ['overview', 'settings', 'setup']; if (!isset($thedotdev_agentic_bridge_shell_primary_keys) || !is_array($thedotdev_agentic_bridge_shell_primary_keys) || $thedotdev_agentic_bridge_shell_primary_keys === []) { $thedotdev_agentic_bridge_shell_primary_keys = $thedotdev_agentic_bridge_shell_default_primary_keys; } else { $thedotdev_agentic_bridge_shell_normalized_primary = []; foreach ($thedotdev_agentic_bridge_shell_primary_keys as $thedotdev_agentic_bridge_shell_primary_candidate) { if (!is_string($thedotdev_agentic_bridge_shell_primary_candidate) && !is_int($thedotdev_agentic_bridge_shell_primary_candidate)) { continue; } $thedotdev_agentic_bridge_shell_primary_key = sanitize_key((string) $thedotdev_agentic_bridge_shell_primary_candidate); if ($thedotdev_agentic_bridge_shell_primary_key === '' || isset($thedotdev_agentic_bridge_shell_normalized_primary[$thedotdev_agentic_bridge_shell_primary_key])) { continue; } if (!isset($thedotdev_agentic_bridge_shell_tabs[$thedotdev_agentic_bridge_shell_primary_key])) { continue; } $thedotdev_agentic_bridge_shell_normalized_primary[$thedotdev_agentic_bridge_shell_primary_key] = true; if (count($thedotdev_agentic_bridge_shell_normalized_primary) >= 3) { break; } } $thedotdev_agentic_bridge_shell_primary_keys = $thedotdev_agentic_bridge_shell_normalized_primary !== [] ? array_keys($thedotdev_agentic_bridge_shell_normalized_primary) : $thedotdev_agentic_bridge_shell_default_primary_keys; } $thedotdev_agentic_bridge_shell_is_progressive = $thedotdev_agentic_bridge_shell_nav_mode === 'progressive'; $thedotdev_agentic_bridge_shell_primary_tabs = []; $thedotdev_agentic_bridge_shell_more_tabs = []; if ($thedotdev_agentic_bridge_shell_is_progressive) { foreach ($thedotdev_agentic_bridge_shell_primary_keys as $thedotdev_agentic_bridge_shell_primary_key) { if (isset($thedotdev_agentic_bridge_shell_visible_tabs[$thedotdev_agentic_bridge_shell_primary_key])) { $thedotdev_agentic_bridge_shell_primary_tabs[$thedotdev_agentic_bridge_shell_primary_key] = $thedotdev_agentic_bridge_shell_visible_tabs[$thedotdev_agentic_bridge_shell_primary_key]; } } foreach ($thedotdev_agentic_bridge_shell_visible_tabs as $thedotdev_agentic_bridge_shell_key => $thedotdev_agentic_bridge_shell_label) { if (!isset($thedotdev_agentic_bridge_shell_primary_tabs[$thedotdev_agentic_bridge_shell_key])) { $thedotdev_agentic_bridge_shell_more_tabs[$thedotdev_agentic_bridge_shell_key] = $thedotdev_agentic_bridge_shell_label; } } } else { $thedotdev_agentic_bridge_shell_primary_tabs = $thedotdev_agentic_bridge_shell_visible_tabs; } $thedotdev_agentic_bridge_shell_more_contains_active = $thedotdev_agentic_bridge_shell_is_progressive && isset($thedotdev_agentic_bridge_shell_more_tabs[$thedotdev_agentic_bridge_shell_active]); $thedotdev_agentic_bridge_shell_nav_class = 'tdab-s1-tabs'; if ($thedotdev_agentic_bridge_shell_is_progressive) { $thedotdev_agentic_bridge_shell_nav_class .= ' tdab-s1-tabs--progressive'; } /** * @param array $tabs */ $thedotdev_agentic_bridge_shell_render_tab = static function (array $tabs, string $active) use ($thedotdev_agentic_bridge_shell_urls, $thedotdev_agentic_bridge_shell_admin_url): void { foreach ($tabs as $thedotdev_agentic_bridge_shell_key => $thedotdev_agentic_bridge_shell_label) { $thedotdev_agentic_bridge_shell_is_active = $active === $thedotdev_agentic_bridge_shell_key; $thedotdev_agentic_bridge_shell_href = (string) ($thedotdev_agentic_bridge_shell_urls[$thedotdev_agentic_bridge_shell_key] ?? $thedotdev_agentic_bridge_shell_admin_url); ?> >