machineconfig 8.19__tar.gz → 8.31__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- {machineconfig-8.19/src/machineconfig.egg-info → machineconfig-8.31}/PKG-INFO +3 -3
- {machineconfig-8.19 → machineconfig-8.31}/README.md +2 -2
- {machineconfig-8.19 → machineconfig-8.31}/pyproject.toml +7 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/run_cluster.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/run_remote.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +1 -1
- machineconfig-8.31/src/machineconfig/jobs/installer/checks/check_installations.py +133 -0
- machineconfig-8.31/src/machineconfig/jobs/installer/checks/install_utils.py +132 -0
- machineconfig-8.31/src/machineconfig/jobs/installer/checks/report_utils.py +39 -0
- machineconfig-8.31/src/machineconfig/jobs/installer/checks/vt_utils.py +89 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/installer_data.json +225 -140
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/package_groups.py +9 -8
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/boxes.py +1 -2
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/code.py +10 -8
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/hx.py +30 -13
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/nerfont_windows_helper.py +6 -5
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/sysabc.py +22 -19
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/yazi.py +3 -2
- machineconfig-8.31/src/machineconfig/jobs/scripts/powershell_scripts/cmatrix.ps1 +52 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +1 -1
- machineconfig-8.31/src/machineconfig/jobs/scripts_dynamic/a.py +428 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/create_links.py +5 -5
- machineconfig-8.31/src/machineconfig/profile/mapper.toml +269 -0
- machineconfig-8.31/src/machineconfig/scripts/python/agents.py +120 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/initai.py +2 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +5 -5
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +29 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/utils/vscode_tasks.py +6 -3
- machineconfig-8.31/src/machineconfig/scripts/python/cloud.py +76 -0
- machineconfig-8.31/src/machineconfig/scripts/python/croshell.py +30 -0
- machineconfig-8.31/src/machineconfig/scripts/python/devops.py +84 -0
- machineconfig-8.31/src/machineconfig/scripts/python/fire_jobs.py +84 -0
- machineconfig-8.31/src/machineconfig/scripts/python/ftpx.py +28 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/env_manager → machineconfig-8.31/src/machineconfig/scripts/python/helper_env}/path_manager_tui.py +2 -2
- {machineconfig-8.19/src/machineconfig/scripts/python/env_manager → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helper_env}/env_manager_tui.py +1 -1
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helper_env/path_manager_tui.py +228 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/agentic_frameworks/fire_crush.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/agentic_frameworks/fire_cursor_agents.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/agentic_frameworks/fire_gemini.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/agentic_frameworks/fire_qwen.py +1 -1
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_agents/agents_impl.py +168 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/fire_agents_help_launch.py +5 -5
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_cloud/cloud_copy.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_cloud/cloud_mount.py +2 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_cloud/cloud_sync.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_cloud/helpers2.py +1 -1
- machineconfig-8.19/src/machineconfig/scripts/python/croshell.py → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_croshell/croshell_impl.py +110 -75
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_croshell/scheduler.py +4 -4
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_croshell/start_slidev.py +5 -5
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_config.py +3 -10
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_config_dotfile.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_data.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_nw.py +37 -70
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_repos.py +19 -19
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_self.py +10 -9
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_share_file.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_share_server.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/cli_share_terminal.py +1 -1
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_devops/cli_ssh.py +164 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/devops_backup_retrieve.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/devops_status.py +2 -2
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/devops_update_repos.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_devops}/interactive.py +14 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/run_script.py +22 -10
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/themes/choose_wezterm_theme.py +3 -3
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +233 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_fire_command/fire_jobs_route_helper.py +3 -3
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_msearch/msearch_impl.py +149 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_msearch/scripts_linux/fzfg +2 -0
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_msearch/scripts_linux/search_with_context.sh +48 -0
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_navigator/__init__.py +20 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_navigator/command_builder.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_navigator/command_detail.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_navigator/command_tree.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_navigator/main_app.py +5 -5
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/address_switch.py +1 -1
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_network/ftpx_impl.py +255 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/mount_ssh.py +2 -2
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_network/ssh_add_identity.py +73 -0
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_network/ssh_add_ssh_key.py +175 -0
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_network/ssh_debug_linux.py +319 -0
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_network/ssh_debug_windows.py +275 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/action.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/action_helper.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/cloud_repo_sync.py +3 -3
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/entrypoint.py +2 -2
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/grource.py +1 -1
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/repo_analyzer_2.py +29 -15
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_search/script_help.py +81 -0
- machineconfig-8.19/src/machineconfig/scripts/python/sessions.py → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_sessions/sessions_impl.py +52 -96
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_sessions/sessions_multiprocess.py +1 -1
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_terminal/terminal_impl.py +84 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_utils/python.py +37 -19
- machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_utils/specs.py +392 -0
- machineconfig-8.31/src/machineconfig/scripts/python/mcfg_entry.py +143 -0
- machineconfig-8.31/src/machineconfig/scripts/python/msearch.py +25 -0
- machineconfig-8.31/src/machineconfig/scripts/python/sessions.py +86 -0
- machineconfig-8.31/src/machineconfig/scripts/python/terminal.py +58 -0
- machineconfig-8.31/src/machineconfig/scripts/python/utils.py +117 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/bash/init.sh +5 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/pwsh/init.ps1 +8 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/zsh/init.sh +4 -0
- machineconfig-8.31/src/machineconfig/settings/wsl/.wslconfig +10 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_mac/__init__.py +0 -2
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_windows/__init__.py +0 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +13 -13
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +3 -3
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +2 -2
- machineconfig-8.31/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/code.py +32 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/ascii_art.py +10 -14
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/headers.py +3 -5
- machineconfig-8.31/src/machineconfig/utils/files/ouch/__init__.py +0 -0
- machineconfig-8.31/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/install_from_url.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/installer_class.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/installer_helper.py +2 -2
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/installer_locator_utils.py +13 -13
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/installer_runner.py +4 -4
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/meta.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/options.py +4 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/path_extended.py +5 -3
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/ssh.py +27 -8
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/ssh_utils/abc.py +1 -1
- machineconfig-8.31/src/machineconfig/utils/ssh_utils/wsl.py +147 -0
- machineconfig-8.19/src/machineconfig/utils/ssh_utils/wsl.py → machineconfig-8.31/src/machineconfig/utils/ssh_utils/wsl_helper.py +88 -81
- {machineconfig-8.19 → machineconfig-8.31/src/machineconfig.egg-info}/PKG-INFO +3 -3
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig.egg-info/SOURCES.txt +129 -113
- machineconfig-8.19/src/machineconfig/jobs/installer/check_installations.py +0 -248
- machineconfig-8.19/src/machineconfig/jobs/scripts_dynamic/a.py +0 -25
- machineconfig-8.19/src/machineconfig/profile/mapper.toml +0 -263
- machineconfig-8.19/src/machineconfig/scripts/python/agents.py +0 -222
- machineconfig-8.19/src/machineconfig/scripts/python/cloud.py +0 -29
- machineconfig-8.19/src/machineconfig/scripts/python/devops.py +0 -68
- machineconfig-8.19/src/machineconfig/scripts/python/devops_navigator.py +0 -6
- machineconfig-8.19/src/machineconfig/scripts/python/fire_jobs.py +0 -283
- machineconfig-8.19/src/machineconfig/scripts/python/ftpx.py +0 -248
- machineconfig-8.19/src/machineconfig/scripts/python/helpers_navigator/__init__.py +0 -20
- machineconfig-8.19/src/machineconfig/scripts/python/helpers_network/ssh_add_identity.py +0 -116
- machineconfig-8.19/src/machineconfig/scripts/python/helpers_network/ssh_add_ssh_key.py +0 -153
- machineconfig-8.19/src/machineconfig/scripts/python/helpers_network/ssh_debug_linux.py +0 -391
- machineconfig-8.19/src/machineconfig/scripts/python/helpers_network/ssh_debug_windows.py +0 -338
- machineconfig-8.19/src/machineconfig/scripts/python/mcfg_entry.py +0 -58
- machineconfig-8.19/src/machineconfig/scripts/python/msearch.py +0 -72
- machineconfig-8.19/src/machineconfig/scripts/python/terminal.py +0 -136
- machineconfig-8.19/src/machineconfig/scripts/python/utils.py +0 -62
- machineconfig-8.19/src/machineconfig/settings/wsl/.wslconfig +0 -35
- machineconfig-8.19/src/machineconfig/setup_mac/ssh/openssh_setup.sh +0 -114
- machineconfig-8.19/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -29
- machineconfig-8.19/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -37
- {machineconfig-8.19 → machineconfig-8.31}/MANIFEST.in +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/setup.cfg +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/jobs/installer/python_scripts → machineconfig-8.31/src/machineconfig/jobs/installer/checks}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/cloudflare_warp_cli.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/network.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/profile → machineconfig-8.31/src/machineconfig/jobs/installer/python_scripts}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/alacritty.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/brave.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/bypass_paywall.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/cursor.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/dubdb_adbc.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/espanso.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/gh.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/goes.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/lvim.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/nerdfont.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/redis.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/wezterm.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/installer/python_scripts/winget.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/android.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/lid.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/mount_drive +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/mount_nfs +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/mount_nw_drive +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/mount_smb +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/share_cloud.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/share_nfs +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/bash_scripts/start_docker +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/Restore-ThunderbirdProfile.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/docker.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/mount_nfs.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/mount_nw.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/mount_smb.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/power_options.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/share_cloud.cmd +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/share_smb.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/jobs/scripts/powershell_scripts/unlock_bitlocker.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/logger.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts → machineconfig-8.31/src/machineconfig/profile}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/backup.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/create_helper.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/create_links_export.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/create_shell_profile.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/linux/wrap_mcfg +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/nu/wrap_mcfg.nu +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/ai → machineconfig-8.31/src/machineconfig/scripts/python}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/ai/solutions → machineconfig-8.31/src/machineconfig/scripts/python/ai}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/scripts/command_runner.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/scripts/command_runner.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/ai/utils → machineconfig-8.31/src/machineconfig/scripts/python/ai/solutions}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/agents/Thinking-Beast-Mode.agent.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/agents/deepResearch.agent.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_agents → machineconfig-8.31/src/machineconfig/scripts/python/ai/utils}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/python/ai/utils/generate_files.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/env_manager → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helper_env}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/env_manager → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helper_env}/path_manager_backend.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_cloud → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_agents}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_croshell → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/agentic_frameworks/fire_crush.json +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/fire_agents_help_search.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/fire_agents_helper_types.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/fire_agents_load_balancer.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/privacy/configs/aichat/config.yaml +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/privacy/configs/aider/.aider.conf.yml +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/privacy/configs/copilot/config.yml +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/privacy/configs/crush/crush.json +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/privacy/configs/gemini/settings.json +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/privacy/privacy.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/templates/prompt.txt +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/templates/template.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_agents/templates/template.sh +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_devops → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_cloud}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_cloud/cloud_helpers.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_cloud/helpers5.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_devops/themes → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_croshell}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_croshell/crosh.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_croshell/pomodoro.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_croshell/viewer.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_croshell/viewer_template.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_fire_command → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_devops}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_network → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_devops/themes}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/themes/choose_starship_theme.bash +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers_sessions → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_fire_command}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_fire_command/cloud_manager.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_fire_command/f.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_fire_command/file_wrangler.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_fire_command/fire_jobs_args_helper.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_msearch/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_msearch/scripts_windows/fzfg.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_navigator/data_models.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_navigator/search_bar.py +0 -0
- {machineconfig-8.19/src/machineconfig/settings → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_network}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/address.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/mount_nfs.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/mount_nw_drive.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/onetimeshare.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_network/wifi_conn.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/clone.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/record.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/repo_analyzer_1.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/sync.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_repos/update.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_search}/ast_search.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_search}/qr_code.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_search}/repo_rag.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python/helpers → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_search}/symantic_search.py +0 -0
- {machineconfig-8.19/src/machineconfig/settings/shells/ipy/profiles/default → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_sessions}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/settings/shells/ipy/profiles/default/startup → machineconfig-8.31/src/machineconfig/scripts/python/helpers/helpers_terminal}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_utils/download.py +0 -0
- {machineconfig-8.19/src/machineconfig/scripts/python → machineconfig-8.31/src/machineconfig/scripts/python/helpers}/helpers_utils/pdf.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/scripts/windows/wrap_mcfg.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/settings/wt → machineconfig-8.31/src/machineconfig/settings}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/helix/yazi-picker.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/linux/lfrc +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/lfrc +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/marimo/marimo.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/marimo/snippets/globalize.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/pistol/pistol.conf +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-8.19/src/machineconfig/utils → machineconfig-8.31/src/machineconfig/settings/shells/ipy/profiles/default}/__init__.py +0 -0
- {machineconfig-8.19/src/machineconfig/utils/ai → machineconfig-8.31/src/machineconfig/settings/shells/ipy/profiles/default/startup}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/nushell/init.nu +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/svim/linux/init.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/svim/windows/init.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/alias.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/aws-buckets.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/aws-instances.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/bash-history.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/channels.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/dirs.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/distrobox-list.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/docker-images.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/dotfiles.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/env.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/files.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/fish-history.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/git-branch.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/git-diff.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/git-log.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/git-reflog.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/git-repos.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/guix.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/just-recipes.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/k8s-deployments.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/k8s-pods.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/k8s-services.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/man-pages.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/nu-history.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/procs.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/text.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/tldr.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_unix/zsh-history.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/alias.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/dirs.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/docker-images.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/dotfiles.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/env.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/files.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/git-branch.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/git-diff.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/git-log.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/git-reflog.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/git-repos.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/nu-history.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/pwsh-history.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/television/cable_windows/text.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-8.19/src/machineconfig/utils/files/ouch → machineconfig-8.31/src/machineconfig/settings/wt}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/wt/set_wt_settings.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/init.lua +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/keymap_linux.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/keymap_windows.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/shell/yazi_cd.ps1 +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/shell/yazi_cd.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/yazi_linux.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/yazi/yazi_windows.toml +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_linux/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_linux/uv.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_linux/web_shortcuts/live_from_github.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_mac/apps_gui.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_mac/uv.sh +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/setup_windows/uv.ps1 +0 -0
- {machineconfig-8.19/src/machineconfig/utils/installer_utils → machineconfig-8.31/src/machineconfig/utils}/__init__.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/accessories.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/art/fat_croco.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/art/halfwit_croco.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/art/happy_croco.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/art/water_croco.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/dbms.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/files/read.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/installer_utils/installer_cli.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/io.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/options_tv.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/path_helper.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/scheduler.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/scheduling.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/source_of_truth.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/ssh_utils/copy_from_here.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/ssh_utils/copy_to_here.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/tst.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig/utils/ve.py +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig.egg-info/entry_points.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig.egg-info/requires.txt +0 -0
- {machineconfig-8.19 → machineconfig-8.31}/src/machineconfig.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: machineconfig
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.31
|
|
4
4
|
Summary: Dotfiles management package
|
|
5
5
|
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
6
|
License: Apache 2.0
|
|
@@ -117,9 +117,9 @@ uv tool install --upgrade --python 3.14 machineconfig
|
|
|
117
117
|
# Quickies ...
|
|
118
118
|
```powershell
|
|
119
119
|
# interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
|
|
120
|
-
|
|
120
|
+
irm bit.ly/cfgwindows | iex # Or, if UV is installed: iex (uvx machineconfig define)
|
|
121
121
|
# Quick install and configure (optionals are accepted by default):
|
|
122
|
-
|
|
122
|
+
irm bit.ly/cfgwq | iex
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
```bash
|
|
@@ -75,9 +75,9 @@ uv tool install --upgrade --python 3.14 machineconfig
|
|
|
75
75
|
# Quickies ...
|
|
76
76
|
```powershell
|
|
77
77
|
# interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
|
|
78
|
-
|
|
78
|
+
irm bit.ly/cfgwindows | iex # Or, if UV is installed: iex (uvx machineconfig define)
|
|
79
79
|
# Quick install and configure (optionals are accepted by default):
|
|
80
|
-
|
|
80
|
+
irm bit.ly/cfgwq | iex
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
```bash
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "machineconfig"
|
|
9
|
-
version = "8.
|
|
9
|
+
version = "8.31"
|
|
10
10
|
description = "Dotfiles management package"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = {text = "Apache 2.0"}
|
|
@@ -91,11 +91,16 @@ dev = [
|
|
|
91
91
|
"cleanpy>=0.5.1",
|
|
92
92
|
"cowsay>=6.1",
|
|
93
93
|
# "duckdb-engine>=0.17.0",
|
|
94
|
+
"gdown>=5.2.0",
|
|
94
95
|
"ipdb>=0.13.13",
|
|
95
96
|
"ipykernel>=6.30.1",
|
|
96
97
|
"ipython>=9.5.0",
|
|
97
98
|
"marimo>=0.17.2",
|
|
98
99
|
"matplotlib>=3.10.6",
|
|
100
|
+
"mkdocs>=1.6.1",
|
|
101
|
+
"mkdocs-autorefs>=1.0.0",
|
|
102
|
+
"mkdocs-material>=9.7.0",
|
|
103
|
+
"mkdocstrings[python]>=1.0.0",
|
|
99
104
|
"mypy>=1.18.2",
|
|
100
105
|
"numpy>=2.3.3",
|
|
101
106
|
"pandas>=2.3.3",
|
|
@@ -126,6 +131,7 @@ dev = [
|
|
|
126
131
|
"types-sqlalchemy>=1.4.53.38",
|
|
127
132
|
"types-toml>=0.10.8.20240310",
|
|
128
133
|
"types-urllib3>=1.26.25.14",
|
|
134
|
+
"vt-py>=0.22.0",
|
|
129
135
|
"yapf>=0.43.0",
|
|
130
136
|
]
|
|
131
137
|
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
|
|
59
59
|
# # Execute each job sequentially (replace former List.apply behavior)
|
|
60
60
|
# # If parallel execution is needed, consider a ThreadPool/ProcessPool
|
|
61
|
-
# results: List[
|
|
61
|
+
# results: List[Path] = [
|
|
62
62
|
# ExpensiveComputation.func_single_job(workload_params=job_params, **kwargs)
|
|
63
63
|
# for job_params in per_job_workload_params
|
|
64
64
|
# ]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# from machineconfig.cluster.remote_machine import RemoteMachine, RemoteMachineConfig, WorkloadParams
|
|
8
8
|
# from machineconfig.cluster.templates.utils import expensive_function
|
|
9
9
|
# # from machineconfig.cluster.self_ssh import SelfSSH
|
|
10
|
-
# data: list[
|
|
10
|
+
# data: list[Path] = []
|
|
11
11
|
# config = RemoteMachineConfig(
|
|
12
12
|
# # connection
|
|
13
13
|
# # ssh_obj=SelfSSH(), # overrides ssh_params
|
|
@@ -333,7 +333,7 @@ if __name__ == "__main__":
|
|
|
333
333
|
{
|
|
334
334
|
"layoutName": "DevelopmentEnv",
|
|
335
335
|
"layoutTabs": [
|
|
336
|
-
{"tabName": "🚀Frontend", "startDir": "~/code/myapp/frontend", "command": "
|
|
336
|
+
{"tabName": "🚀Frontend", "startDir": "~/code/myapp/frontend", "command": "bun run dev"},
|
|
337
337
|
{"tabName": "⚙️Backend", "startDir": "~/code/myapp/backend", "command": "python manage.py runserver"},
|
|
338
338
|
{"tabName": "📊Monitor", "startDir": "~", "command": "Get-Process | Sort-Object CPU -Descending | Select-Object -First 10"},
|
|
339
339
|
],
|
|
@@ -314,7 +314,7 @@ if __name__ == "__main__":
|
|
|
314
314
|
{
|
|
315
315
|
"layoutName": "Development",
|
|
316
316
|
"layoutTabs": [
|
|
317
|
-
{"tabName": "🚀Frontend", "startDir": "~/code/myapp/frontend", "command": "
|
|
317
|
+
{"tabName": "🚀Frontend", "startDir": "~/code/myapp/frontend", "command": "bun run dev"},
|
|
318
318
|
{"tabName": "⚙️Backend", "startDir": "~/code/myapp/backend", "command": "python manage.py runserver"},
|
|
319
319
|
{"tabName": "📊Monitor", "startDir": "~", "command": "htop"},
|
|
320
320
|
],
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Check Installations
|
|
3
|
+
===================
|
|
4
|
+
|
|
5
|
+
This module scans installed applications using VirusTotal and generates a safety report.
|
|
6
|
+
It also provides functionality to download and install pre-checked applications.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import csv
|
|
10
|
+
import platform
|
|
11
|
+
from datetime import datetime
|
|
12
|
+
from typing import Optional
|
|
13
|
+
|
|
14
|
+
from rich.console import Console
|
|
15
|
+
from rich.progress import BarColumn, Progress, SpinnerColumn, TextColumn
|
|
16
|
+
|
|
17
|
+
from machineconfig.jobs.installer.checks.install_utils import upload_app
|
|
18
|
+
from machineconfig.jobs.installer.checks.report_utils import AppData, generate_markdown_report
|
|
19
|
+
from machineconfig.jobs.installer.checks.vt_utils import get_vt_client, scan_file
|
|
20
|
+
from machineconfig.utils.installer_utils.installer_runner import get_installed_cli_apps
|
|
21
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
22
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT, INSTALL_VERSION_ROOT
|
|
23
|
+
|
|
24
|
+
# Constants
|
|
25
|
+
APP_SUMMARY_PATH = CONFIG_ROOT.joinpath(f"profile/records/{platform.system().lower()}/apps_summary_report.csv")
|
|
26
|
+
|
|
27
|
+
console = Console()
|
|
28
|
+
|
|
29
|
+
def main() -> None:
|
|
30
|
+
"""Main execution function."""
|
|
31
|
+
console.rule("[bold blue]MachineConfig Installation Checker[/bold blue]")
|
|
32
|
+
|
|
33
|
+
# 1. Gather Installed Apps
|
|
34
|
+
with console.status("[bold green]Gathering installed applications...[/bold green]"):
|
|
35
|
+
apps_paths = get_installed_cli_apps()
|
|
36
|
+
# Filter and find versions
|
|
37
|
+
# This part mimics the original logic but simplifies it
|
|
38
|
+
# We assume apps_paths contains PathExtended objects
|
|
39
|
+
|
|
40
|
+
# Find version files
|
|
41
|
+
install_version_root_ext = PathExtended(INSTALL_VERSION_ROOT)
|
|
42
|
+
version_files = list(install_version_root_ext.search()) if install_version_root_ext.exists() else []
|
|
43
|
+
|
|
44
|
+
apps_to_scan: list[tuple[PathExtended, Optional[str]]] = []
|
|
45
|
+
|
|
46
|
+
for app_path in apps_paths:
|
|
47
|
+
# Try to find version
|
|
48
|
+
version = None
|
|
49
|
+
# Simple matching logic: check if any version file matches the app name
|
|
50
|
+
# This is a heuristic from the original code
|
|
51
|
+
matching_versions = [v for v in version_files if v.stem == app_path.stem]
|
|
52
|
+
if matching_versions:
|
|
53
|
+
version = matching_versions[0].read_text(encoding="utf-8").strip()
|
|
54
|
+
|
|
55
|
+
apps_to_scan.append((app_path, version))
|
|
56
|
+
|
|
57
|
+
console.print(f"[green]Found {len(apps_to_scan)} applications to check.[/green]")
|
|
58
|
+
|
|
59
|
+
# 2. Scan Apps with VirusTotal
|
|
60
|
+
app_data_list: list[AppData] = []
|
|
61
|
+
|
|
62
|
+
try:
|
|
63
|
+
client = get_vt_client()
|
|
64
|
+
|
|
65
|
+
with Progress(
|
|
66
|
+
SpinnerColumn(),
|
|
67
|
+
TextColumn("[progress.description]{task.description}"),
|
|
68
|
+
BarColumn(),
|
|
69
|
+
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
|
70
|
+
console=console
|
|
71
|
+
) as progress:
|
|
72
|
+
scan_task = progress.add_task("[cyan]Scanning apps...", total=len(apps_to_scan))
|
|
73
|
+
|
|
74
|
+
for app_path, version in apps_to_scan:
|
|
75
|
+
progress.update(scan_task, description=f"Scanning {app_path.name}...")
|
|
76
|
+
|
|
77
|
+
positive_pct, _ = scan_file(app_path, client, progress, scan_task)
|
|
78
|
+
|
|
79
|
+
# Upload if safe (optional, based on original code logic which uploaded everything?)
|
|
80
|
+
# Original code uploaded everything.
|
|
81
|
+
progress.update(scan_task, description=f"Uploading {app_path.name}...")
|
|
82
|
+
app_url = upload_app(app_path) or ""
|
|
83
|
+
|
|
84
|
+
app_data_list.append({
|
|
85
|
+
"app_name": app_path.stem,
|
|
86
|
+
"version": version,
|
|
87
|
+
"positive_pct": positive_pct,
|
|
88
|
+
"scan_time": datetime.now().strftime("%Y-%m-%d %H:%M"),
|
|
89
|
+
"app_path": app_path.collapseuser(strict=False).as_posix(),
|
|
90
|
+
"app_url": app_url
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
progress.advance(scan_task)
|
|
94
|
+
|
|
95
|
+
except FileNotFoundError as e:
|
|
96
|
+
console.print(f"[bold red]{e}[/bold red]")
|
|
97
|
+
console.print("[yellow]Skipping scanning due to missing credentials.[/yellow]")
|
|
98
|
+
# Fallback: just list apps without scan results
|
|
99
|
+
for app_path, version in apps_to_scan:
|
|
100
|
+
app_data_list.append({
|
|
101
|
+
"app_name": app_path.stem,
|
|
102
|
+
"version": version,
|
|
103
|
+
"positive_pct": None,
|
|
104
|
+
"scan_time": datetime.now().strftime("%Y-%m-%d %H:%M"),
|
|
105
|
+
"app_path": app_path.collapseuser(strict=False).as_posix(),
|
|
106
|
+
"app_url": ""
|
|
107
|
+
})
|
|
108
|
+
except Exception as e:
|
|
109
|
+
console.print(f"[bold red]An unexpected error occurred during scanning: {e}[/bold red]")
|
|
110
|
+
|
|
111
|
+
# 3. Generate Reports
|
|
112
|
+
if app_data_list:
|
|
113
|
+
# CSV Report
|
|
114
|
+
APP_SUMMARY_PATH.parent.mkdir(parents=True, exist_ok=True)
|
|
115
|
+
csv_path = APP_SUMMARY_PATH.with_suffix(".csv")
|
|
116
|
+
|
|
117
|
+
with open(csv_path, 'w', newline='', encoding='utf-8') as csvfile:
|
|
118
|
+
fieldnames = list(app_data_list[0].keys())
|
|
119
|
+
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
|
|
120
|
+
writer.writeheader()
|
|
121
|
+
writer.writerows(app_data_list)
|
|
122
|
+
|
|
123
|
+
console.print(f"[green]CSV report saved to: {csv_path}[/green]")
|
|
124
|
+
|
|
125
|
+
# Markdown Report
|
|
126
|
+
md_path = APP_SUMMARY_PATH.with_suffix(".md")
|
|
127
|
+
generate_markdown_report(app_data_list, md_path)
|
|
128
|
+
console.print(f"[green]Markdown report saved to: {md_path}[/green]")
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
if __name__ == '__main__':
|
|
133
|
+
main()
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Installation Utilities
|
|
3
|
+
======================
|
|
4
|
+
|
|
5
|
+
This module provides functionality to download and install pre-checked applications.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import csv
|
|
9
|
+
import platform
|
|
10
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Any, Optional
|
|
13
|
+
|
|
14
|
+
import gdown
|
|
15
|
+
from rich.console import Console
|
|
16
|
+
|
|
17
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
18
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
19
|
+
|
|
20
|
+
# Constants
|
|
21
|
+
APP_SUMMARY_PATH = CONFIG_ROOT.joinpath(f"profile/records/{platform.system().lower()}/apps_summary_report.csv")
|
|
22
|
+
CLOUD_STORAGE_NAME = "gdw" # Default cloud storage name for rclone
|
|
23
|
+
|
|
24
|
+
console = Console()
|
|
25
|
+
|
|
26
|
+
def upload_app(path: PathExtended) -> Optional[str]:
|
|
27
|
+
"""Uploads the app to cloud storage and returns the shareable link."""
|
|
28
|
+
try:
|
|
29
|
+
# Using PathExtended.to_cloud
|
|
30
|
+
# Assuming 'gdw' is the configured remote in rclone
|
|
31
|
+
link_path = path.to_cloud(CLOUD_STORAGE_NAME, rel2home=True, share=True, os_specific=True, verbose=False)
|
|
32
|
+
if link_path:
|
|
33
|
+
return str(link_path)
|
|
34
|
+
return None
|
|
35
|
+
except Exception as e:
|
|
36
|
+
console.print(f"[red]Failed to upload {path}: {e}[/red]")
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
def download_google_drive_file(url: str) -> PathExtended:
|
|
40
|
+
"""Downloads a file from Google Drive using gdown."""
|
|
41
|
+
try:
|
|
42
|
+
# Extract ID from URL
|
|
43
|
+
# Assuming URL format like https://drive.google.com/file/d/FILE_ID/view or similar
|
|
44
|
+
# or https://drive.google.com/uc?id=FILE_ID
|
|
45
|
+
if "id=" in url:
|
|
46
|
+
file_id = url.split("id=")[1].split("&")[0]
|
|
47
|
+
elif "/d/" in url:
|
|
48
|
+
file_id = url.split("/d/")[1].split("/")[0]
|
|
49
|
+
else:
|
|
50
|
+
# Fallback to gdown's auto detection or just pass URL
|
|
51
|
+
file_id = url
|
|
52
|
+
|
|
53
|
+
# Create a temporary directory for download
|
|
54
|
+
output_dir = PathExtended.tmpdir(prefix="gdown_")
|
|
55
|
+
# gdown.download returns the output filename
|
|
56
|
+
output_file = gdown.download(id=file_id, output=str(output_dir) + "/", quiet=False, fuzzy=True)
|
|
57
|
+
|
|
58
|
+
if not output_file:
|
|
59
|
+
raise ValueError(f"Download failed for {url}")
|
|
60
|
+
|
|
61
|
+
return PathExtended(output_file)
|
|
62
|
+
except Exception as e:
|
|
63
|
+
raise RuntimeError(f"Failed to download from Google Drive: {e}") from e
|
|
64
|
+
|
|
65
|
+
def install_cli_app(app_url: str) -> bool:
|
|
66
|
+
"""Downloads and installs a CLI app."""
|
|
67
|
+
try:
|
|
68
|
+
if not app_url:
|
|
69
|
+
return False
|
|
70
|
+
|
|
71
|
+
exe_path = download_google_drive_file(app_url)
|
|
72
|
+
console.print(f"[green]Downloaded {exe_path.name}[/green]")
|
|
73
|
+
|
|
74
|
+
system = platform.system().lower()
|
|
75
|
+
if system in ["linux", "darwin"]:
|
|
76
|
+
exe_path.chmod(0o755) # Make executable
|
|
77
|
+
# Move to local bin (requires user to have write access or sudo, which we can't easily do here without interaction)
|
|
78
|
+
# Using ~/.local/bin is safer
|
|
79
|
+
install_path = Path.home() / ".local/bin"
|
|
80
|
+
install_path.mkdir(parents=True, exist_ok=True)
|
|
81
|
+
target = install_path / exe_path.name
|
|
82
|
+
exe_path.rename(target)
|
|
83
|
+
console.print(f"[green]Installed to {target}[/green]")
|
|
84
|
+
elif system == "windows":
|
|
85
|
+
install_path = Path.home() / "AppData/Local/Microsoft/WindowsApps"
|
|
86
|
+
install_path.mkdir(parents=True, exist_ok=True)
|
|
87
|
+
target = install_path / exe_path.name
|
|
88
|
+
# Use shutil.move or PathExtended.move
|
|
89
|
+
exe_path.move(path=target, overwrite=True)
|
|
90
|
+
console.print(f"[green]Installed to {target}[/green]")
|
|
91
|
+
|
|
92
|
+
return True
|
|
93
|
+
except Exception as e:
|
|
94
|
+
console.print(f"[red]Failed to install app from {app_url}: {e}[/red]")
|
|
95
|
+
return False
|
|
96
|
+
|
|
97
|
+
def load_summary_report() -> list[dict[str, Any]]:
|
|
98
|
+
"""Loads the summary report from CSV."""
|
|
99
|
+
if APP_SUMMARY_PATH.exists():
|
|
100
|
+
with open(APP_SUMMARY_PATH, 'r', encoding='utf-8') as csvfile:
|
|
101
|
+
reader = csv.DictReader(csvfile)
|
|
102
|
+
return list(reader)
|
|
103
|
+
else:
|
|
104
|
+
console.print(f"[yellow]Warning: Summary report not found at {APP_SUMMARY_PATH}[/yellow]")
|
|
105
|
+
return []
|
|
106
|
+
|
|
107
|
+
def download_safe_apps(name: str = "essentials") -> None:
|
|
108
|
+
"""Downloads and installs safe apps."""
|
|
109
|
+
data = load_summary_report()
|
|
110
|
+
if not data:
|
|
111
|
+
console.print("[red]No app data available to install.[/red]")
|
|
112
|
+
return
|
|
113
|
+
|
|
114
|
+
apps_to_install = []
|
|
115
|
+
if name == "essentials":
|
|
116
|
+
# Install all available apps in the report? Or filter?
|
|
117
|
+
# Original code installed all if name="essentials" (implied by logic)
|
|
118
|
+
apps_to_install = [item['app_url'] for item in data if item.get('app_url')]
|
|
119
|
+
else:
|
|
120
|
+
apps_to_install = [item['app_url'] for item in data if item.get('app_name') == name and item.get('app_url')]
|
|
121
|
+
|
|
122
|
+
if not apps_to_install:
|
|
123
|
+
console.print(f"[yellow]No apps found to install for '{name}'.[/yellow]")
|
|
124
|
+
return
|
|
125
|
+
|
|
126
|
+
console.print(f"[bold]Installing {len(apps_to_install)} apps...[/bold]")
|
|
127
|
+
|
|
128
|
+
with ThreadPoolExecutor(max_workers=5) as executor:
|
|
129
|
+
results = list(executor.map(install_cli_app, apps_to_install))
|
|
130
|
+
|
|
131
|
+
success_count = sum(results)
|
|
132
|
+
console.print(f"[bold green]Successfully installed {success_count}/{len(apps_to_install)} apps.[/bold green]")
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Report Utilities
|
|
3
|
+
================
|
|
4
|
+
|
|
5
|
+
This module provides functionality to generate reports for installed applications.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Optional, TypedDict
|
|
10
|
+
from rich.console import Console
|
|
11
|
+
from rich.panel import Panel
|
|
12
|
+
|
|
13
|
+
console = Console()
|
|
14
|
+
|
|
15
|
+
class AppData(TypedDict):
|
|
16
|
+
app_name: str
|
|
17
|
+
version: Optional[str]
|
|
18
|
+
positive_pct: Optional[float]
|
|
19
|
+
scan_time: str
|
|
20
|
+
app_path: str
|
|
21
|
+
app_url: str
|
|
22
|
+
|
|
23
|
+
def generate_markdown_report(data: list[AppData], output_path: Path) -> None:
|
|
24
|
+
"""Generates a Markdown table from the app data."""
|
|
25
|
+
if not data:
|
|
26
|
+
return
|
|
27
|
+
|
|
28
|
+
keys = list(data[0].keys())
|
|
29
|
+
header = "| " + " | ".join(key.replace("_", " ").title() for key in keys) + " |"
|
|
30
|
+
separator = "| " + " | ".join("---" for _ in keys) + " |"
|
|
31
|
+
rows = []
|
|
32
|
+
for row in data:
|
|
33
|
+
# Fix: row is a dict, keys are strings.
|
|
34
|
+
row_values = [str(row.get(key, '')) for key in keys]
|
|
35
|
+
rows.append("| " + " | ".join(row_values) + " |")
|
|
36
|
+
|
|
37
|
+
content = "\n".join([header, separator] + rows)
|
|
38
|
+
output_path.write_text(content, encoding="utf-8")
|
|
39
|
+
console.print(Panel(content, title="Safety Report Summary", expand=False))
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"""
|
|
2
|
+
VirusTotal Utilities
|
|
3
|
+
====================
|
|
4
|
+
|
|
5
|
+
This module provides functionality to interact with VirusTotal API.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import time
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from typing import Any, Optional, TypedDict
|
|
11
|
+
|
|
12
|
+
import vt
|
|
13
|
+
from rich.progress import Progress, TaskID
|
|
14
|
+
|
|
15
|
+
# Constants
|
|
16
|
+
VT_TOKEN_PATH = Path.home().joinpath("dotfiles/creds/tokens/virustotal")
|
|
17
|
+
|
|
18
|
+
class ScanResult(TypedDict):
|
|
19
|
+
result: Optional[str]
|
|
20
|
+
category: str
|
|
21
|
+
|
|
22
|
+
def get_vt_client() -> vt.Client:
|
|
23
|
+
"""Retrieves the VirusTotal client using the token from the credentials file."""
|
|
24
|
+
if not VT_TOKEN_PATH.exists():
|
|
25
|
+
raise FileNotFoundError(f"VirusTotal token not found at {VT_TOKEN_PATH}")
|
|
26
|
+
|
|
27
|
+
token = VT_TOKEN_PATH.read_text(encoding="utf-8").split("\n")[0].strip()
|
|
28
|
+
return vt.Client(token)
|
|
29
|
+
|
|
30
|
+
def scan_file(path: Path, client: vt.Client, progress: Optional[Progress] = None, task_id: Optional[TaskID] = None) -> tuple[Optional[float], list[Any]]:
|
|
31
|
+
"""
|
|
32
|
+
Scans a file using VirusTotal.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
path: Path to the file to scan.
|
|
36
|
+
client: VirusTotal client instance.
|
|
37
|
+
progress: Optional Rich progress bar.
|
|
38
|
+
task_id: Optional Task ID for the progress bar.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
A tuple containing the positive percentage (0-100) and the list of result details.
|
|
42
|
+
Returns (None, []) if scanning fails or file is skipped.
|
|
43
|
+
"""
|
|
44
|
+
if path.is_dir():
|
|
45
|
+
if progress and task_id:
|
|
46
|
+
progress.console.print(f"[yellow]📁 Skipping directory: {path}[/yellow]")
|
|
47
|
+
return None, []
|
|
48
|
+
|
|
49
|
+
try:
|
|
50
|
+
with open(path, "rb") as f:
|
|
51
|
+
analysis = client.scan_file(f)
|
|
52
|
+
|
|
53
|
+
repeat_counter = 0
|
|
54
|
+
while True:
|
|
55
|
+
try:
|
|
56
|
+
anal = client.get_object("/analyses/{}", analysis.id)
|
|
57
|
+
if anal.status == "completed":
|
|
58
|
+
break
|
|
59
|
+
except Exception as e:
|
|
60
|
+
repeat_counter += 1
|
|
61
|
+
if repeat_counter > 3:
|
|
62
|
+
raise ValueError(f"❌ Error scanning {path}: {e}") from e
|
|
63
|
+
if progress and task_id:
|
|
64
|
+
progress.console.print(f"[red]⚠️ Error scanning {path}, retrying... ({repeat_counter}/3)[/red]")
|
|
65
|
+
time.sleep(5)
|
|
66
|
+
|
|
67
|
+
time.sleep(10) # Wait before checking status again
|
|
68
|
+
|
|
69
|
+
# Process results
|
|
70
|
+
results_data = list(anal.results.values())
|
|
71
|
+
malicious = []
|
|
72
|
+
for result_item in results_data:
|
|
73
|
+
result_dict = result_item.__dict__ if hasattr(result_item, '__dict__') else {
|
|
74
|
+
'result': getattr(result_item, 'result', None),
|
|
75
|
+
'category': getattr(result_item, 'category', 'unknown')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if result_dict.get('result') is None and result_dict.get('category') in ["undetected", "type-unsupported", "failure", "timeout", "confirmed-timeout"]:
|
|
79
|
+
continue
|
|
80
|
+
|
|
81
|
+
malicious.append(result_item)
|
|
82
|
+
|
|
83
|
+
positive_pct = round(len(malicious) / len(results_data) * 100, 1) if results_data else 0.0
|
|
84
|
+
return positive_pct, results_data
|
|
85
|
+
|
|
86
|
+
except Exception as e:
|
|
87
|
+
if progress and task_id:
|
|
88
|
+
progress.console.print(f"[bold red]❌ Failed to scan {path}: {e}[/bold red]")
|
|
89
|
+
return None, []
|