Check manual-full UI text in smoke test

This commit is contained in:
2026-06-23 09:32:39 +03:00
parent 747ed623ab
commit 042c4d6550
19 changed files with 5821 additions and 0 deletions

View File

@@ -0,0 +1,634 @@
{
"nodes": [
{
"id": "document:AGENTS.md",
"type": "document",
"name": "AGENTS.md",
"filePath": "AGENTS.md",
"summary": "Репозиторные правила для агентов: модель системы, live VPN safety, тестовая лестница и контракт финального ответа.",
"tags": [
"agent-rules",
"documentation",
"safety"
],
"complexity": "moderate"
},
{
"id": "document:README.md",
"type": "document",
"name": "README.md",
"filePath": "README.md",
"summary": "Основная пользовательская документация Lemana VPN: установка, credential sources, модули, использование, диагностика и удаление.",
"tags": [
"documentation",
"overview",
"user-guide"
],
"complexity": "complex"
},
{
"id": "file:install.sh",
"type": "file",
"name": "install.sh",
"filePath": "install.sh",
"summary": "Installer wizard для Homebrew/pipx/openconnect-lite, CLI, config, DNS wrapper, sudoers, Touch ID helper, Swift app, launch agent и shell aliases.",
"tags": [
"installer",
"wizard",
"macos"
],
"complexity": "complex"
},
{
"id": "function:install.sh:usage",
"type": "function",
"name": "usage",
"filePath": "install.sh",
"lineRange": [
72,
106
],
"summary": "Значимая функция usage в install.sh.",
"tags": [
"function",
"runtime",
"usage"
],
"complexity": "simple"
},
{
"id": "function:install.sh:yes_no",
"type": "function",
"name": "yes_no",
"filePath": "install.sh",
"lineRange": [
304,
330
],
"summary": "Значимая функция yes_no в install.sh.",
"tags": [
"function",
"runtime",
"yes-no"
],
"complexity": "simple"
},
{
"id": "function:install.sh:choose_credential_source_interactive",
"type": "function",
"name": "choose_credential_source_interactive",
"filePath": "install.sh",
"lineRange": [
332,
382
],
"summary": "Показывает интерактивный выбор credential source и нормализует ответ пользователя.",
"tags": [
"function",
"runtime",
"choose-credential-source-interactive"
],
"complexity": "moderate"
},
{
"id": "function:install.sh:print_detected_state",
"type": "function",
"name": "print_detected_state",
"filePath": "install.sh",
"lineRange": [
400,
417
],
"summary": "Значимая функция print_detected_state в install.sh.",
"tags": [
"function",
"runtime",
"print-detected-state"
],
"complexity": "simple"
},
{
"id": "function:install.sh:choose_modules",
"type": "function",
"name": "choose_modules",
"filePath": "install.sh",
"lineRange": [
419,
514
],
"summary": "Определяет набор устанавливаемых модулей с учетом интерактивного режима и флагов installer.",
"tags": [
"function",
"runtime",
"choose-modules"
],
"complexity": "moderate"
},
{
"id": "function:install.sh:download_file",
"type": "function",
"name": "download_file",
"filePath": "install.sh",
"lineRange": [
523,
540
],
"summary": "Значимая функция download_file в install.sh.",
"tags": [
"function",
"runtime",
"download-file"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_homebrew_packages",
"type": "function",
"name": "install_homebrew_packages",
"filePath": "install.sh",
"lineRange": [
552,
578
],
"summary": "Значимая функция install_homebrew_packages в install.sh.",
"tags": [
"function",
"runtime",
"install-homebrew-packages"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_openconnect_lite",
"type": "function",
"name": "install_openconnect_lite",
"filePath": "install.sh",
"lineRange": [
580,
597
],
"summary": "Устанавливает или проверяет openconnect-lite runtime, необходимый для SAML SSO.",
"tags": [
"function",
"runtime",
"install-openconnect-lite"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_cli",
"type": "function",
"name": "install_cli",
"filePath": "install.sh",
"lineRange": [
599,
613
],
"summary": "Копирует основной CLI и uninstall helper в пользовательский bin.",
"tags": [
"function",
"runtime",
"install-cli"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_config",
"type": "function",
"name": "install_config",
"filePath": "install.sh",
"lineRange": [
615,
639
],
"summary": "Устанавливает шаблон openconnect-lite config и сохраняет локальную конфигурацию модулей.",
"tags": [
"function",
"runtime",
"install-config"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_dns_cleanup",
"type": "function",
"name": "install_dns_cleanup",
"filePath": "install.sh",
"lineRange": [
641,
654
],
"summary": "Устанавливает root-owned DNS cleanup wrapper для безопасного сброса корпоративных DNS.",
"tags": [
"function",
"runtime",
"install-dns-cleanup"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_sudoers",
"type": "function",
"name": "install_sudoers",
"filePath": "install.sh",
"lineRange": [
656,
683
],
"summary": "Пишет ограниченные sudoers правила для openconnect и DNS cleanup wrapper.",
"tags": [
"function",
"runtime",
"install-sudoers"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_touchid_helper",
"type": "function",
"name": "install_touchid_helper",
"filePath": "install.sh",
"lineRange": [
685,
708
],
"summary": "Собирает и устанавливает Touch ID helper для Bitwarden master password.",
"tags": [
"function",
"runtime",
"install-touchid-helper"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_menu_bar_app",
"type": "function",
"name": "install_menu_bar_app",
"filePath": "install.sh",
"lineRange": [
710,
769
],
"summary": "Собирает release-версию Swift menu bar app и устанавливает LemanaVPN.app.",
"tags": [
"function",
"runtime",
"install-menu-bar-app"
],
"complexity": "moderate"
},
{
"id": "function:install.sh:install_launch_agent",
"type": "function",
"name": "install_launch_agent",
"filePath": "install.sh",
"lineRange": [
771,
811
],
"summary": "Создает LaunchAgent для автозапуска menu bar app при логине.",
"tags": [
"function",
"runtime",
"install-launch-agent"
],
"complexity": "simple"
},
{
"id": "function:install.sh:restart_running_menu_bar_app",
"type": "function",
"name": "restart_running_menu_bar_app",
"filePath": "install.sh",
"lineRange": [
813,
831
],
"summary": "Перезапускает уже открытое menu bar приложение после обновления bundle.",
"tags": [
"function",
"runtime",
"restart-running-menu-bar-app"
],
"complexity": "simple"
},
{
"id": "function:install.sh:install_shell_aliases",
"type": "function",
"name": "install_shell_aliases",
"filePath": "install.sh",
"lineRange": [
833,
877
],
"summary": "Добавляет idempotent zsh aliases для CLI режимов подключения и диагностики.",
"tags": [
"function",
"runtime",
"install-shell-aliases"
],
"complexity": "simple"
},
{
"id": "function:install.sh:maybe_login_bitwarden",
"type": "function",
"name": "maybe_login_bitwarden",
"filePath": "install.sh",
"lineRange": [
879,
900
],
"summary": "Проверяет Bitwarden session и при необходимости запускает login/unlock flow.",
"tags": [
"function",
"runtime",
"maybe-login-bitwarden"
],
"complexity": "simple"
},
{
"id": "function:install.sh:main",
"type": "function",
"name": "main",
"filePath": "install.sh",
"lineRange": [
902,
941
],
"summary": "Значимая функция main в install.sh.",
"tags": [
"function",
"runtime",
"main"
],
"complexity": "simple"
},
{
"id": "file:uninstall.sh",
"type": "file",
"name": "uninstall.sh",
"filePath": "uninstall.sh",
"summary": "Uninstaller для восстановления runtime patch backups, удаления CLI/app/config/sudoers/aliases и опциональной очистки Keychain/Touch ID state.",
"tags": [
"uninstaller",
"cleanup",
"macos"
],
"complexity": "complex"
},
{
"id": "function:uninstall.sh:usage",
"type": "function",
"name": "usage",
"filePath": "uninstall.sh",
"lineRange": [
62,
79
],
"summary": "Значимая функция usage в uninstall.sh.",
"tags": [
"function",
"runtime",
"usage"
],
"complexity": "simple"
},
{
"id": "function:uninstall.sh:restore_openconnect_lite_patch",
"type": "function",
"name": "restore_openconnect_lite_patch",
"filePath": "uninstall.sh",
"lineRange": [
161,
181
],
"summary": "Возвращает backup исходника openconnect-lite, если runtime patch был установлен.",
"tags": [
"function",
"runtime",
"restore-openconnect-lite-patch"
],
"complexity": "simple"
},
{
"id": "function:uninstall.sh:remove_zshrc_block",
"type": "function",
"name": "remove_zshrc_block",
"filePath": "uninstall.sh",
"lineRange": [
183,
204
],
"summary": "Удаляет idempotent блок Lemana VPN aliases из zshrc.",
"tags": [
"function",
"runtime",
"remove-zshrc-block"
],
"complexity": "simple"
},
{
"id": "function:uninstall.sh:remove_keychain_entries",
"type": "function",
"name": "remove_keychain_entries",
"filePath": "uninstall.sh",
"lineRange": [
206,
234
],
"summary": "Опционально удаляет password, TOTP seed и username из macOS Keychain.",
"tags": [
"function",
"runtime",
"remove-keychain-entries"
],
"complexity": "simple"
},
{
"id": "function:uninstall.sh:main",
"type": "function",
"name": "main",
"filePath": "uninstall.sh",
"lineRange": [
236,
318
],
"summary": "Значимая функция main в uninstall.sh.",
"tags": [
"function",
"runtime",
"main"
],
"complexity": "moderate"
}
],
"edges": [
{
"source": "file:install.sh",
"target": "function:install.sh:usage",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:yes_no",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:choose_credential_source_interactive",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:print_detected_state",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:choose_modules",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:download_file",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_homebrew_packages",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_openconnect_lite",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_cli",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_config",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_dns_cleanup",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_sudoers",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_touchid_helper",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_menu_bar_app",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_launch_agent",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:restart_running_menu_bar_app",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:install_shell_aliases",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:maybe_login_bitwarden",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:install.sh",
"target": "function:install.sh:main",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:uninstall.sh",
"target": "function:uninstall.sh:usage",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:uninstall.sh",
"target": "function:uninstall.sh:restore_openconnect_lite_patch",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:uninstall.sh",
"target": "function:uninstall.sh:remove_zshrc_block",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:uninstall.sh",
"target": "function:uninstall.sh:remove_keychain_entries",
"type": "contains",
"direction": "forward",
"weight": 1
},
{
"source": "file:uninstall.sh",
"target": "function:uninstall.sh:main",
"type": "contains",
"direction": "forward",
"weight": 1
}
]
}