{ "version": "1.0.0", "gitCommitHash": "042c4d655090e0ee334208511ec63b6d909d4354", "generatedAt": "2026-06-23T06:34:02.856Z", "files": { ".agents/skills/lemana-vpn-operations/SKILL.md": { "filePath": ".agents/skills/lemana-vpn-operations/SKILL.md", "contentHash": "27cec75695c23c1dc759d61b5b6250306f3b494688aabc794014711b59aa89ab", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 71, "hasStructuralAnalysis": true }, ".agents/skills/lemana-vpn-sso-autofill/SKILL.md": { "filePath": ".agents/skills/lemana-vpn-sso-autofill/SKILL.md", "contentHash": "e597d0e67861787f5c444c74376bdd514614765dbe27dd62b62f7e61925a643c", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 81, "hasStructuralAnalysis": true }, ".agents/skills/lemana-vpn-testing/SKILL.md": { "filePath": ".agents/skills/lemana-vpn-testing/SKILL.md", "contentHash": "6f4698688ef498f4f1427024a735d7d36cb96a96f36bf8597977fdc28e3ffa13", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 102, "hasStructuralAnalysis": true }, "AGENTS.md": { "filePath": "AGENTS.md", "contentHash": "3ccea1ed9dacb6f1173a03d8053c5466fc03aebcadb6dbf4db52814c82bc6a92", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 89, "hasStructuralAnalysis": true }, "app/Package.swift": { "filePath": "app/Package.swift", "contentHash": "338b2954b4fde437b35e7b419d7aff8451d91df790429a168d80d19bf5b99f75", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 15, "hasStructuralAnalysis": false }, "app/Sources/LemanaVPN/LemanaVPNApp.swift": { "filePath": "app/Sources/LemanaVPN/LemanaVPNApp.swift", "contentHash": "0caddaae55a376d20d023c3e82b525fa2a54002a2730978e22826aad56574474", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 191, "hasStructuralAnalysis": false }, "app/Sources/LemanaVPN/VPNManager.swift": { "filePath": "app/Sources/LemanaVPN/VPNManager.swift", "contentHash": "16b7da9acd2bad9ff71f3c067ae2bd420c3ef11cab4dc6d9c509be2d0a011d67", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 698, "hasStructuralAnalysis": false }, "bin/vpn-lemanapro.sh": { "filePath": "bin/vpn-lemanapro.sh", "contentHash": "e1946792a405d2178b197ea11285029ef172a65dd9f9c6b4a8f308e0ac58bbc2", "functions": [ { "name": "_emit", "params": [], "exported": false, "lineCount": 8 }, { "name": "_write_status", "params": [], "exported": false, "lineCount": 4 }, { "name": "_clear_status", "params": [], "exported": false, "lineCount": 3 }, { "name": "_prepare_connection_log", "params": [], "exported": false, "lineCount": 8 }, { "name": "_log_connection_line", "params": [], "exported": false, "lineCount": 3 }, { "name": "_show_connection_log_tail", "params": [], "exported": false, "lineCount": 5 }, { "name": "_start_connect_progress", "params": [], "exported": false, "lineCount": 9 }, { "name": "_stop_connect_progress", "params": [], "exported": false, "lineCount": 7 }, { "name": "_json_get", "params": [], "exported": false, "lineCount": 4 }, { "name": "_find_webengine_process", "params": [], "exported": false, "lineCount": 7 }, { "name": "_find_authenticator", "params": [], "exported": false, "lineCount": 7 }, { "name": "_module_bool", "params": [], "exported": false, "lineCount": 7 }, { "name": "_patches_active", "params": [], "exported": false, "lineCount": 15 }, { "name": "_keychain_has", "params": [], "exported": false, "lineCount": 3 }, { "name": "_module_status_json", "params": [], "exported": false, "lineCount": 40 }, { "name": "_module_human_part", "params": [], "exported": false, "lineCount": 10 }, { "name": "_module_status_human", "params": [], "exported": false, "lineCount": 35 }, { "name": "_check_status", "params": [], "exported": false, "lineCount": 63 }, { "name": "_patch_oc", "params": [], "exported": false, "lineCount": 228 }, { "name": "autoFill", "params": [], "exported": false, "lineCount": 4 }, { "name": "autoFill", "params": [], "exported": false, "lineCount": 10 }, { "name": "_store_keychain", "params": [], "exported": false, "lineCount": 16 }, { "name": "_normalize_totp_secret", "params": [], "exported": false, "lineCount": 27 }, { "name": "_can_prompt", "params": [], "exported": false, "lineCount": 3 }, { "name": "_prompt_read", "params": [], "exported": false, "lineCount": 19 }, { "name": "_persist_username", "params": [], "exported": false, "lineCount": 44 }, { "name": "_ensure_username", "params": [], "exported": false, "lineCount": 26 }, { "name": "_configure_keychain", "params": [], "exported": false, "lineCount": 39 }, { "name": "_ensure_keychain_credentials", "params": [], "exported": false, "lineCount": 28 }, { "name": "_bw_cache_session", "params": [], "exported": false, "lineCount": 6 }, { "name": "_bw_unlock", "params": [], "exported": false, "lineCount": 67 }, { "name": "_sync_bitwarden", "params": [], "exported": false, "lineCount": 35 }, { "name": "_sync_credentials", "params": [], "exported": false, "lineCount": 10 }, { "name": "_dns_cleanup", "params": [], "exported": false, "lineCount": 17 }, { "name": "_filter_output", "params": [], "exported": false, "lineCount": 51 } ], "classes": [], "imports": [], "exports": [], "totalLines": 1091, "hasStructuralAnalysis": true }, "docs/goals/manual-first-auth-flow/GOAL.md": { "filePath": "docs/goals/manual-first-auth-flow/GOAL.md", "contentHash": "27fc0e7feddd4c77f78f1966ab1e58c3727b4796f8600003e31e81b907b6ebe7", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 14, "hasStructuralAnalysis": true }, "docs/goals/manual-first-auth-flow/PLAN.md": { "filePath": "docs/goals/manual-first-auth-flow/PLAN.md", "contentHash": "459cb4b63f0ea0eee13ed6c8dd91d4bae1be7adaf443b2824a93d2217cbe1c58", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 441, "hasStructuralAnalysis": true }, "docs/superpowers/plans/2026-05-24-keychain-totp-provider.md": { "filePath": "docs/superpowers/plans/2026-05-24-keychain-totp-provider.md", "contentHash": "1a5d622b3bb8c6277d5d97effbdd07713975b4595bec236ff8710abde772c5dc", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 936, "hasStructuralAnalysis": true }, "install.sh": { "filePath": "install.sh", "contentHash": "d33186be9dc6457ca80886f629995edf21143d091b6902814853424400a1ec6f", "functions": [ { "name": "usage", "params": [], "exported": false, "lineCount": 35 }, { "name": "log", "params": [], "exported": false, "lineCount": 3 }, { "name": "color_line", "params": [], "exported": false, "lineCount": 5 }, { "name": "log_step", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_info", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_detail", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_ok", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_warn", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_skip", "params": [], "exported": false, "lineCount": 3 }, { "name": "die", "params": [], "exported": false, "lineCount": 4 }, { "name": "run", "params": [], "exported": false, "lineCount": 11 }, { "name": "need_cmd", "params": [], "exported": false, "lineCount": 3 }, { "name": "has_tty", "params": [], "exported": false, "lineCount": 3 }, { "name": "interactive_enabled", "params": [], "exported": false, "lineCount": 8 }, { "name": "prompt_printf", "params": [], "exported": false, "lineCount": 7 }, { "name": "prompt_read_answer", "params": [], "exported": false, "lineCount": 7 }, { "name": "yes_no", "params": [], "exported": false, "lineCount": 27 }, { "name": "choose_credential_source_interactive", "params": [], "exported": false, "lineCount": 51 }, { "name": "bool_word", "params": [], "exported": false, "lineCount": 7 }, { "name": "keychain_has", "params": [], "exported": false, "lineCount": 3 }, { "name": "zsh_aliases_installed", "params": [], "exported": false, "lineCount": 3 }, { "name": "print_detected_state", "params": [], "exported": false, "lineCount": 18 }, { "name": "choose_modules", "params": [], "exported": false, "lineCount": 96 }, { "name": "script_dir", "params": [], "exported": false, "lineCount": 6 }, { "name": "download_file", "params": [], "exported": false, "lineCount": 18 }, { "name": "write_file", "params": [], "exported": false, "lineCount": 9 }, { "name": "install_homebrew_packages", "params": [], "exported": false, "lineCount": 27 }, { "name": "install_openconnect_lite", "params": [], "exported": false, "lineCount": 18 }, { "name": "install_cli", "params": [], "exported": false, "lineCount": 15 }, { "name": "install_config", "params": [], "exported": false, "lineCount": 25 }, { "name": "install_dns_cleanup", "params": [], "exported": false, "lineCount": 14 }, { "name": "install_sudoers", "params": [], "exported": false, "lineCount": 28 }, { "name": "install_touchid_helper", "params": [], "exported": false, "lineCount": 24 }, { "name": "install_menu_bar_app", "params": [], "exported": false, "lineCount": 60 }, { "name": "install_launch_agent", "params": [], "exported": false, "lineCount": 41 }, { "name": "restart_running_menu_bar_app", "params": [], "exported": false, "lineCount": 19 }, { "name": "install_shell_aliases", "params": [], "exported": false, "lineCount": 45 }, { "name": "vpn", "params": [], "exported": false, "lineCount": 1 }, { "name": "maybe_login_bitwarden", "params": [], "exported": false, "lineCount": 22 }, { "name": "main", "params": [], "exported": false, "lineCount": 40 } ], "classes": [], "imports": [], "exports": [], "totalLines": 944, "hasStructuralAnalysis": true }, "libexec/lemana-vpn-dns-cleanup": { "filePath": "libexec/lemana-vpn-dns-cleanup", "contentHash": "9338f2615ba4ef133b42b07dcdbc9e54ddf59b301fd1434e81ea3f36bba16dfb", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 24, "hasStructuralAnalysis": false }, "README.md": { "filePath": "README.md", "contentHash": "fa2024f70a4eb7556b501ec01f5c74d7981939d20a805bdbb4a534853618560d", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 580, "hasStructuralAnalysis": true }, "templates/openconnect-lite-config.toml": { "filePath": "templates/openconnect-lite-config.toml", "contentHash": "e3378bc1f313fd8087886e582f9ec402268649125db4b0320365b5c3f65611b6", "functions": [], "classes": [], "imports": [], "exports": [], "totalLines": 33, "hasStructuralAnalysis": true }, "tests/smoke.sh": { "filePath": "tests/smoke.sh", "contentHash": "1cf9648a22e831c0693d328edcbc0e5e6561084244a20dfb37d95dd6f7f8f23e", "functions": [ { "name": "autoFill", "params": [], "exported": false, "lineCount": 4 } ], "classes": [], "imports": [], "exports": [], "totalLines": 439, "hasStructuralAnalysis": true }, "uninstall.sh": { "filePath": "uninstall.sh", "contentHash": "6ad75a4fbbe52575eb3672a1eac06734e13f4a82d77cba17dfe2aee75b6ecfba", "functions": [ { "name": "usage", "params": [], "exported": false, "lineCount": 18 }, { "name": "log", "params": [], "exported": false, "lineCount": 3 }, { "name": "color_line", "params": [], "exported": false, "lineCount": 5 }, { "name": "log_step", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_info", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_detail", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_ok", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_warn", "params": [], "exported": false, "lineCount": 3 }, { "name": "log_skip", "params": [], "exported": false, "lineCount": 3 }, { "name": "die", "params": [], "exported": false, "lineCount": 4 }, { "name": "run", "params": [], "exported": false, "lineCount": 11 }, { "name": "find_webengine_process", "params": [], "exported": false, "lineCount": 7 }, { "name": "restore_openconnect_lite_patch", "params": [], "exported": false, "lineCount": 21 }, { "name": "remove_zshrc_block", "params": [], "exported": false, "lineCount": 22 }, { "name": "remove_keychain_entries", "params": [], "exported": false, "lineCount": 29 }, { "name": "main", "params": [], "exported": false, "lineCount": 83 } ], "classes": [], "imports": [], "exports": [], "totalLines": 321, "hasStructuralAnalysis": true } } }