Files

634 lines
17 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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
}
]
}