machineconfig 6.83__tar.gz → 6.85__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-6.83/src/machineconfig.egg-info → machineconfig-6.85}/PKG-INFO +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/pyproject.toml +2 -1
- machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_local.py +226 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +33 -174
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +39 -197
- machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/mcfgs +1 -1
- machineconfig-6.85/src/machineconfig/scripts/linux/term +39 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/vscode_tasks.py +7 -2
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/fire_jobs.py +30 -65
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_nw.py +50 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_utils.py +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +15 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nfs +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/wifi_conn.py +1 -53
- machineconfig-6.85/src/machineconfig/scripts/python/terminal.py +110 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/utils.py +2 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig-6.85/src/machineconfig/scripts/windows/term.ps1 +48 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/bash/init.sh +2 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/pwsh/init.ps1 +1 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +2 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +2 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/code.py +21 -14
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer.py +0 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/options.py +12 -2
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/path_helper.py +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/scheduling.py +0 -2
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ssh.py +2 -2
- {machineconfig-6.83 → machineconfig-6.85/src/machineconfig.egg-info}/PKG-INFO +1 -1
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/SOURCES.txt +7 -3
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/entry_points.txt +1 -0
- machineconfig-6.83/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -431
- machineconfig-6.83/src/machineconfig/scripts/linux/other/share_smb +0 -1
- machineconfig-6.83/src/machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig-6.83/src/machineconfig/scripts/linux/z_ls +0 -104
- {machineconfig-6.83 → machineconfig-6.85}/MANIFEST.in +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/README.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/setup.cfg +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/run_remote.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/check_installations.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom/boxes.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/installer_data.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/lid.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/network.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/package_groups.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/logger.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/backup.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_links.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_links_export.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_shell_profile.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/mapper.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzf2g +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzfag +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzffg +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzfg +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzfrga +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/start_docker +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/skrg +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/agents.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/initai.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/cloud.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/croshell.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/devops.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ftpx.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_copy.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_mount.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_sync.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/helpers2.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/helpers5.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/crosh.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/pomodoro.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/scheduler.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/start_slidev.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/viewer.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/viewer_template.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_data.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_terminal.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/devops_status.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/devops_update_repos.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/command_builder.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/data_models.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/main_app.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/search_bar.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/action.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/action_helper.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/clone.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/count_lines.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/record.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/sync.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/update.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/interactive.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/mcfg.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/sessions.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mcfgs.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/lfrc +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/lfrc +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/marimo/marimo.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/pistol/pistol.conf +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/zsh/init.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/svim/linux/init.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/svim/windows/init.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/wsl/.wslconfig +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/yazi/keymap.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/yazi/yazi.toml +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/apps.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/others/android.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/others/cli_installation.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/uv.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/apps.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/ssh/openssh_setup.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/uv.sh +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/apps.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/uv.ps1 +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/accessories.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/fat_croco.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/halfwit_croco.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/happy_croco.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/water_croco.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/ascii_art.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/dbms.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/headers.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/read.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/installer.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/io.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/meta.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/path_extended.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/scheduler.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/source_of_truth.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/tst.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ve.py +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/requires.txt +0 -0
- {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/top_level.txt +0 -0
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "machineconfig"
|
|
9
|
-
version = "6.
|
|
9
|
+
version = "6.85"
|
|
10
10
|
description = "Dotfiles management package"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = {text = "Apache 2.0"}
|
|
@@ -70,6 +70,7 @@ croshell = "machineconfig.scripts.python.croshell:main"
|
|
|
70
70
|
ftpx = "machineconfig.scripts.python.ftpx:main"
|
|
71
71
|
utils = "machineconfig.scripts.python.utils:main"
|
|
72
72
|
mcfg = "machineconfig.scripts.python.mcfg:main"
|
|
73
|
+
terminal = "machineconfig.scripts.python.terminal:main"
|
|
73
74
|
|
|
74
75
|
[tool.setuptools]
|
|
75
76
|
package-dir = {"" = "src"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Windows Terminal local layout generator and session manager.
|
|
4
|
+
Equivalent to zellij_local.py but for Windows Terminal.
|
|
5
|
+
|
|
6
|
+
https://github.com/ruby9455/app_management/tree/main/app_management
|
|
7
|
+
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import subprocess
|
|
11
|
+
import platform
|
|
12
|
+
from typing import Optional, Any
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
import logging
|
|
15
|
+
|
|
16
|
+
from rich.console import Console
|
|
17
|
+
from rich.panel import Panel
|
|
18
|
+
from rich.table import Table
|
|
19
|
+
|
|
20
|
+
from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
|
|
21
|
+
from machineconfig.cluster.sessions_managers.wt_utils.wt_helpers import (
|
|
22
|
+
generate_random_suffix,
|
|
23
|
+
# escape_for_wt,
|
|
24
|
+
validate_layout_config,
|
|
25
|
+
generate_wt_command_string,
|
|
26
|
+
check_wt_session_status,
|
|
27
|
+
check_command_status,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
logging.basicConfig(level=logging.INFO)
|
|
31
|
+
logger = logging.getLogger(__name__)
|
|
32
|
+
console = Console()
|
|
33
|
+
|
|
34
|
+
# Check if we're on Windows
|
|
35
|
+
IS_WINDOWS = platform.system().lower() == "windows"
|
|
36
|
+
POWERSHELL_CMD = "powershell" if IS_WINDOWS else "pwsh" # Use pwsh on non-Windows systems
|
|
37
|
+
TMP_LAYOUT_DIR = Path.home() / "tmp_results" / "wt_layouts"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class WTLayoutGenerator:
|
|
41
|
+
def __init__(self, layout_config: LayoutConfig, session_name: str):
|
|
42
|
+
self.session_name: str = session_name
|
|
43
|
+
self.layout_config: LayoutConfig = layout_config.copy()
|
|
44
|
+
self.script_path: Optional[str] = None
|
|
45
|
+
|
|
46
|
+
def create_layout_file(self) -> bool:
|
|
47
|
+
"""Create Windows Terminal layout file and return success status."""
|
|
48
|
+
validate_layout_config(self.layout_config)
|
|
49
|
+
tab_count = len(self.layout_config['layoutTabs'])
|
|
50
|
+
layout_name = self.layout_config['layoutName']
|
|
51
|
+
console.print(f"[bold cyan]📋 Creating Windows Terminal layout[/bold cyan] [bright_green]'{layout_name}' with {tab_count} tabs[/bright_green]")
|
|
52
|
+
|
|
53
|
+
for tab in self.layout_config['layoutTabs']:
|
|
54
|
+
console.print(f" [yellow]→[/yellow] [bold]{tab['tabName']}[/bold] [dim]in[/dim] [blue]{tab['startDir']}[/blue]")
|
|
55
|
+
|
|
56
|
+
wt_command = generate_wt_command_string(self.layout_config, self.session_name)
|
|
57
|
+
|
|
58
|
+
random_suffix = generate_random_suffix(8)
|
|
59
|
+
script_content = f"""# Windows Terminal layout for {self.session_name}
|
|
60
|
+
# Generated with random suffix: {random_suffix}
|
|
61
|
+
{wt_command}
|
|
62
|
+
"""
|
|
63
|
+
tmp_dir = Path(TMP_LAYOUT_DIR)
|
|
64
|
+
tmp_dir.mkdir(parents=True, exist_ok=True)
|
|
65
|
+
script_file = tmp_dir / f"wt_layout_{self.session_name}_{random_suffix}.ps1"
|
|
66
|
+
script_file.write_text(script_content, encoding="utf-8")
|
|
67
|
+
self.script_path = str(script_file.absolute())
|
|
68
|
+
|
|
69
|
+
console.print(f"[bold green]✅ Layout created successfully:[/bold green] [cyan]{self.script_path}[/cyan]")
|
|
70
|
+
return True
|
|
71
|
+
|
|
72
|
+
def get_wt_layout_preview(self, layout_config: LayoutConfig) -> str:
|
|
73
|
+
"""Generate preview of the Windows Terminal command that would be created."""
|
|
74
|
+
validate_layout_config(layout_config)
|
|
75
|
+
return generate_wt_command_string(layout_config, "preview")
|
|
76
|
+
|
|
77
|
+
def check_all_commands_status(self) -> dict[str, dict[str, Any]]:
|
|
78
|
+
if not self.layout_config:
|
|
79
|
+
logger.warning("No layout config tracked. Make sure to create a layout first.")
|
|
80
|
+
return {}
|
|
81
|
+
|
|
82
|
+
status_report = {}
|
|
83
|
+
for tab in self.layout_config["layoutTabs"]:
|
|
84
|
+
tab_name = tab["tabName"]
|
|
85
|
+
status_report[tab_name] = check_command_status(tab_name, self.layout_config)
|
|
86
|
+
|
|
87
|
+
return status_report
|
|
88
|
+
|
|
89
|
+
def get_status_report(self) -> dict[str, Any]:
|
|
90
|
+
"""Get status report for this layout including Windows Terminal and commands."""
|
|
91
|
+
wt_status = check_wt_session_status(self.session_name or "default")
|
|
92
|
+
commands_status = self.check_all_commands_status()
|
|
93
|
+
|
|
94
|
+
running_count = sum(1 for status in commands_status.values() if status.get("running", False))
|
|
95
|
+
total_count = len(commands_status)
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
"wt_session": wt_status,
|
|
99
|
+
"commands": commands_status,
|
|
100
|
+
"summary": {"total_commands": total_count, "running_commands": running_count, "stopped_commands": total_count - running_count, "session_healthy": wt_status.get("session_exists", False)},
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
def print_status_report(self) -> None:
|
|
104
|
+
"""Print a comprehensive status report for this Windows Terminal layout."""
|
|
105
|
+
status = self.get_status_report()
|
|
106
|
+
wt_session = status["wt_session"]
|
|
107
|
+
commands = status["commands"]
|
|
108
|
+
summary = status["summary"]
|
|
109
|
+
|
|
110
|
+
console.print()
|
|
111
|
+
console.print(Panel.fit("� WINDOWS TERMINAL LAYOUT STATUS REPORT", style="bold cyan"))
|
|
112
|
+
|
|
113
|
+
# Windows Terminal session status
|
|
114
|
+
if wt_session.get("wt_running", False):
|
|
115
|
+
if wt_session.get("session_exists", False):
|
|
116
|
+
session_windows = wt_session.get("session_windows", [])
|
|
117
|
+
all_windows = wt_session.get("all_windows", [])
|
|
118
|
+
console.print(f"[bold green]✅ Windows Terminal session[/bold green] [yellow]'{self.session_name}'[/yellow] [green]is running[/green]")
|
|
119
|
+
console.print(f" Session windows: {len(session_windows)}")
|
|
120
|
+
console.print(f" Total WT windows: {len(all_windows)}")
|
|
121
|
+
else:
|
|
122
|
+
console.print(f"[bold yellow]⚠️ Windows Terminal is running but session[/bold yellow] [yellow]'{self.session_name}'[/yellow] [yellow]not found[/yellow]")
|
|
123
|
+
else:
|
|
124
|
+
error_msg = wt_session.get("error", "Unknown error")
|
|
125
|
+
console.print(f"[bold red]❌ Windows Terminal session issue:[/bold red] [red]{error_msg}[/red]")
|
|
126
|
+
|
|
127
|
+
console.print()
|
|
128
|
+
|
|
129
|
+
# Commands status table
|
|
130
|
+
table = Table(title="📋 COMMAND STATUS", show_header=True, header_style="bold magenta")
|
|
131
|
+
table.add_column("Tab", style="cyan", no_wrap=True)
|
|
132
|
+
table.add_column("Status", justify="center")
|
|
133
|
+
table.add_column("PID", justify="center", style="dim")
|
|
134
|
+
table.add_column("Command", style="green", max_width=40)
|
|
135
|
+
|
|
136
|
+
for tab_name, cmd_status in commands.items():
|
|
137
|
+
if cmd_status.get("running", False):
|
|
138
|
+
status_text = "[bold green]✅ Running[/bold green]"
|
|
139
|
+
processes = cmd_status.get("processes", [])
|
|
140
|
+
if processes:
|
|
141
|
+
proc = processes[0]
|
|
142
|
+
pid = str(proc.get("pid", "N/A"))
|
|
143
|
+
else:
|
|
144
|
+
pid = "N/A"
|
|
145
|
+
else:
|
|
146
|
+
status_text = "[bold red]❌ Stopped[/bold red]"
|
|
147
|
+
pid = "N/A"
|
|
148
|
+
|
|
149
|
+
command = cmd_status.get("command", "Unknown")
|
|
150
|
+
if len(command) > 35:
|
|
151
|
+
command = command[:32] + "..."
|
|
152
|
+
|
|
153
|
+
table.add_row(tab_name, status_text, pid, command)
|
|
154
|
+
|
|
155
|
+
console.print(table)
|
|
156
|
+
console.print()
|
|
157
|
+
|
|
158
|
+
# Summary panel
|
|
159
|
+
summary_text = f"""[bold]Total commands:[/bold] {summary['total_commands']}
|
|
160
|
+
[green]Running:[/green] {summary['running_commands']}
|
|
161
|
+
[red]Stopped:[/red] {summary['stopped_commands']}
|
|
162
|
+
[yellow]Session healthy:[/yellow] {"✅" if summary['session_healthy'] else "❌"}"""
|
|
163
|
+
|
|
164
|
+
console.print(Panel(summary_text, title="📊 Summary", style="blue"))
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def create_wt_layout(layout_config: LayoutConfig, output_path: str) -> str:
|
|
168
|
+
session_name = layout_config["layoutName"]
|
|
169
|
+
generator = WTLayoutGenerator(layout_config=layout_config, session_name=session_name)
|
|
170
|
+
generator.create_layout_file()
|
|
171
|
+
|
|
172
|
+
if generator.script_path is None:
|
|
173
|
+
raise RuntimeError("Script path was not set after creating layout file")
|
|
174
|
+
|
|
175
|
+
logger.info(f"Windows Terminal PowerShell script created: {generator.script_path}")
|
|
176
|
+
return generator.script_path
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def run_wt_layout(layout_config: LayoutConfig) -> None:
|
|
180
|
+
"""Create and run a Windows Terminal layout."""
|
|
181
|
+
session_name = layout_config["layoutName"]
|
|
182
|
+
generator = WTLayoutGenerator(layout_config=layout_config, session_name=session_name)
|
|
183
|
+
generator.create_layout_file()
|
|
184
|
+
if generator.script_path is None:
|
|
185
|
+
raise RuntimeError("Script path was not set after creating layout file")
|
|
186
|
+
# Execute the script
|
|
187
|
+
cmd = f'powershell -ExecutionPolicy Bypass -File "{generator.script_path}"'
|
|
188
|
+
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
|
189
|
+
if result.returncode == 0:
|
|
190
|
+
print(f"Windows Terminal layout is running @ {layout_config['layoutName']}")
|
|
191
|
+
else:
|
|
192
|
+
logger.error(f"Failed to run Windows Terminal layout: {result.stderr}")
|
|
193
|
+
raise RuntimeError(f"Failed to run layout: {result.stderr}")
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def run_command_in_wt_tab(command: str, tab_name: str, cwd: Optional[str]) -> str:
|
|
197
|
+
"""Create a command to run in a new Windows Terminal tab."""
|
|
198
|
+
cwd_part = f'-d "{cwd}"' if cwd else ""
|
|
199
|
+
return f"""
|
|
200
|
+
echo "Creating new Windows Terminal tab: {tab_name}"
|
|
201
|
+
wt new-tab --title "{tab_name}" {cwd_part} "{command}"
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
if __name__ == "__main__":
|
|
206
|
+
sample_layout: LayoutConfig = {"layoutName": "TestLayout",
|
|
207
|
+
"layoutTabs": [
|
|
208
|
+
{"tabName": "Frontend", "startDir": "~/code", "command": "btm"},
|
|
209
|
+
{"tabName": "Monitor", "startDir": "~", "command": "lf"}
|
|
210
|
+
]}
|
|
211
|
+
try:
|
|
212
|
+
session_name = sample_layout["layoutName"]
|
|
213
|
+
generator = WTLayoutGenerator(layout_config=sample_layout, session_name=session_name)
|
|
214
|
+
generator.create_layout_file()
|
|
215
|
+
|
|
216
|
+
print(f"✅ Windows Terminal layout created: {generator.script_path}")
|
|
217
|
+
preview = generator.get_wt_layout_preview(generator.layout_config)
|
|
218
|
+
print(f"📋 Command Preview:\n{preview}")
|
|
219
|
+
print("🔍 Current status:")
|
|
220
|
+
generator.print_status_report()
|
|
221
|
+
print("▶️ To run this layout, execute:")
|
|
222
|
+
print(f' powershell -ExecutionPolicy Bypass -File "{generator.script_path}"')
|
|
223
|
+
except Exception as e:
|
|
224
|
+
print(f"❌ Error: {e}")
|
|
225
|
+
import traceback
|
|
226
|
+
traceback.print_exc()
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
from datetime import datetime
|
|
3
|
-
import json
|
|
4
|
-
import uuid
|
|
5
3
|
import logging
|
|
6
4
|
import subprocess
|
|
7
5
|
from pathlib import Path
|
|
@@ -9,9 +7,14 @@ from typing import Optional, Any
|
|
|
9
7
|
from rich.console import Console
|
|
10
8
|
from machineconfig.utils.scheduler import Scheduler
|
|
11
9
|
from machineconfig.cluster.sessions_managers.wt_local import WTLayoutGenerator
|
|
10
|
+
from machineconfig.cluster.sessions_managers.wt_utils.wt_helpers import check_wt_session_status
|
|
12
11
|
from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
|
|
13
|
-
from machineconfig.cluster.sessions_managers.zellij_utils.monitoring_types import
|
|
14
|
-
|
|
12
|
+
from machineconfig.cluster.sessions_managers.zellij_utils.monitoring_types import StartResult, ActiveSessionInfo
|
|
13
|
+
from machineconfig.cluster.sessions_managers.wt_utils.manager_persistence import (
|
|
14
|
+
generate_session_id, save_json_file, load_json_file, list_saved_sessions_in_dir, delete_session_dir, ensure_session_dir_exists
|
|
15
|
+
)
|
|
16
|
+
from machineconfig.cluster.sessions_managers.wt_utils.status_reporting import (
|
|
17
|
+
print_global_summary, print_session_health_status, print_commands_status, calculate_session_summary, calculate_global_summary_from_status
|
|
15
18
|
)
|
|
16
19
|
|
|
17
20
|
|
|
@@ -129,104 +132,29 @@ class WTLocalManager:
|
|
|
129
132
|
return "\n".join(commands)
|
|
130
133
|
|
|
131
134
|
def check_all_sessions_status(self) -> dict[str, dict[str, Any]]:
|
|
132
|
-
"""Check the status of all sessions and their commands."""
|
|
133
135
|
status_report = {}
|
|
134
|
-
|
|
135
136
|
for manager in self.managers:
|
|
136
137
|
session_name = manager.session_name or "default"
|
|
137
|
-
|
|
138
|
-
# Get session status
|
|
139
|
-
session_status = WTLayoutGenerator.check_wt_session_status(session_name)
|
|
140
|
-
|
|
141
|
-
# Get commands status for this session
|
|
138
|
+
session_status = check_wt_session_status(session_name)
|
|
142
139
|
commands_status = manager.check_all_commands_status()
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
running_count = sum(1 for status in commands_status.values() if status.get("running", False))
|
|
146
|
-
total_count = len(commands_status)
|
|
147
|
-
|
|
148
|
-
status_report[session_name] = {
|
|
149
|
-
"session_status": session_status,
|
|
150
|
-
"commands_status": commands_status,
|
|
151
|
-
"summary": {"total_commands": total_count, "running_commands": running_count, "stopped_commands": total_count - running_count, "session_healthy": session_status.get("session_exists", False)},
|
|
152
|
-
}
|
|
153
|
-
|
|
140
|
+
summary = calculate_session_summary(commands_status, session_status.get("session_exists", False))
|
|
141
|
+
status_report[session_name] = {"session_status": session_status, "commands_status": commands_status, "summary": summary}
|
|
154
142
|
return status_report
|
|
155
143
|
|
|
156
|
-
def get_global_summary(self) ->
|
|
157
|
-
"""Get a global summary across all sessions."""
|
|
144
|
+
def get_global_summary(self) -> dict[str, Any]:
|
|
158
145
|
all_status = self.check_all_sessions_status()
|
|
159
|
-
|
|
160
|
-
total_sessions = len(all_status)
|
|
161
|
-
healthy_sessions = sum(1 for status in all_status.values() if status["summary"]["session_healthy"])
|
|
162
|
-
total_commands = sum(status["summary"]["total_commands"] for status in all_status.values())
|
|
163
|
-
total_running = sum(status["summary"]["running_commands"] for status in all_status.values())
|
|
164
|
-
|
|
165
|
-
return {
|
|
166
|
-
"total_sessions": total_sessions,
|
|
167
|
-
"healthy_sessions": healthy_sessions,
|
|
168
|
-
"unhealthy_sessions": total_sessions - healthy_sessions,
|
|
169
|
-
"total_commands": total_commands,
|
|
170
|
-
"running_commands": total_running,
|
|
171
|
-
"stopped_commands": total_commands - total_running,
|
|
172
|
-
"all_sessions_healthy": healthy_sessions == total_sessions,
|
|
173
|
-
"all_commands_running": total_running == total_commands,
|
|
174
|
-
}
|
|
146
|
+
return calculate_global_summary_from_status(all_status, include_remote_machines=False)
|
|
175
147
|
|
|
176
148
|
def print_status_report(self) -> None:
|
|
177
|
-
"""Print a comprehensive status report for all sessions."""
|
|
178
149
|
all_status = self.check_all_sessions_status()
|
|
179
150
|
global_summary = self.get_global_summary()
|
|
180
|
-
|
|
181
|
-
print("=" * 80)
|
|
182
|
-
print("🖥️ WINDOWS TERMINAL LOCAL MANAGER STATUS REPORT")
|
|
183
|
-
print("=" * 80)
|
|
184
|
-
|
|
185
|
-
# Global summary
|
|
186
|
-
print("🌐 GLOBAL SUMMARY:")
|
|
187
|
-
print(f" Total sessions: {global_summary['total_sessions']}")
|
|
188
|
-
print(f" Healthy sessions: {global_summary['healthy_sessions']}")
|
|
189
|
-
print(f" Total commands: {global_summary['total_commands']}")
|
|
190
|
-
print(f" Running commands: {global_summary['running_commands']}")
|
|
191
|
-
print(f" All healthy: {'✅' if global_summary['all_sessions_healthy'] else '❌'}")
|
|
192
|
-
print()
|
|
193
|
-
|
|
194
|
-
# Per-session details
|
|
151
|
+
print_global_summary(global_summary, "WINDOWS TERMINAL LOCAL MANAGER STATUS REPORT")
|
|
195
152
|
for session_name, status in all_status.items():
|
|
196
|
-
session_status = status["session_status"]
|
|
197
|
-
commands_status = status["commands_status"]
|
|
198
|
-
summary = status["summary"]
|
|
199
|
-
|
|
200
153
|
print(f"🪟 SESSION: {session_name}")
|
|
201
154
|
print("-" * 60)
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
if session_status.get("wt_running", False):
|
|
205
|
-
if session_status.get("session_exists", False):
|
|
206
|
-
session_windows = session_status.get("session_windows", [])
|
|
207
|
-
all_windows = session_status.get("all_windows", [])
|
|
208
|
-
print("✅ Windows Terminal is running")
|
|
209
|
-
print(f" Session windows: {len(session_windows)}")
|
|
210
|
-
print(f" Total WT windows: {len(all_windows)}")
|
|
211
|
-
else:
|
|
212
|
-
print("⚠️ Windows Terminal is running but no session windows found")
|
|
213
|
-
else:
|
|
214
|
-
print(f"❌ Windows Terminal session issue: {session_status.get('error', 'Unknown error')}")
|
|
215
|
-
|
|
216
|
-
# Commands in this session
|
|
217
|
-
print(f" Commands ({summary['running_commands']}/{summary['total_commands']} running):")
|
|
218
|
-
for tab_name, cmd_status in commands_status.items():
|
|
219
|
-
status_icon = "✅" if cmd_status.get("running", False) else "❌"
|
|
220
|
-
cmd_text = cmd_status.get("command", "Unknown")[:50]
|
|
221
|
-
if len(cmd_status.get("command", "")) > 50:
|
|
222
|
-
cmd_text += "..."
|
|
223
|
-
console.print(f" {status_icon} {tab_name}: {cmd_text}")
|
|
224
|
-
|
|
225
|
-
if cmd_status.get("processes"):
|
|
226
|
-
for proc in cmd_status["processes"][:2]: # Show first 2 processes
|
|
227
|
-
console.print(f" [dim]└─[/dim] PID {proc['pid']}: {proc['name']}")
|
|
155
|
+
print_session_health_status(status["session_status"], remote_name=None)
|
|
156
|
+
print_commands_status(status["commands_status"], status["summary"])
|
|
228
157
|
print()
|
|
229
|
-
|
|
230
158
|
print("=" * 80)
|
|
231
159
|
|
|
232
160
|
def run_monitoring_routine(self, wait_ms: int = 30000) -> None:
|
|
@@ -288,126 +216,59 @@ class WTLocalManager:
|
|
|
288
216
|
sched.run(max_cycles=None)
|
|
289
217
|
|
|
290
218
|
def save(self, session_id: Optional[str] = None) -> str:
|
|
291
|
-
"""Save the manager state to disk."""
|
|
292
219
|
if session_id is None:
|
|
293
|
-
session_id =
|
|
294
|
-
|
|
295
|
-
# Create session directory
|
|
220
|
+
session_id = generate_session_id()
|
|
296
221
|
session_dir = TMP_SERIALIZATION_DIR / session_id
|
|
297
|
-
session_dir
|
|
298
|
-
|
|
299
|
-
# Save the session2wt_tabs configuration
|
|
300
|
-
config_file = session_dir / "session_layouts.json"
|
|
301
|
-
text = json.dumps(self.session_layouts, indent=2, ensure_ascii=False)
|
|
302
|
-
config_file.write_text(text, encoding="utf-8")
|
|
303
|
-
|
|
304
|
-
# Save metadata
|
|
222
|
+
ensure_session_dir_exists(session_dir)
|
|
223
|
+
save_json_file(session_dir / "session_layouts.json", self.session_layouts, "session layouts")
|
|
305
224
|
metadata = {"session_name_prefix": self.session_name_prefix, "created_at": str(datetime.now()), "num_managers": len(self.managers), "sessions": [item["layoutName"] for item in self.session_layouts], "manager_type": "WTLocalManager"}
|
|
306
|
-
|
|
307
|
-
text = json.dumps(metadata, indent=2, ensure_ascii=False)
|
|
308
|
-
metadata_file.write_text(text, encoding="utf-8")
|
|
309
|
-
|
|
310
|
-
# Save each manager's state
|
|
225
|
+
save_json_file(session_dir / "metadata.json", metadata, "metadata")
|
|
311
226
|
managers_dir = session_dir / "managers"
|
|
312
227
|
managers_dir.mkdir(exist_ok=True)
|
|
313
|
-
|
|
314
228
|
for i, manager in enumerate(self.managers):
|
|
315
229
|
manager_data = {"session_name": manager.session_name, "layout_config": manager.layout_config, "script_path": manager.script_path}
|
|
316
|
-
|
|
317
|
-
text = json.dumps(manager_data, indent=2, ensure_ascii=False)
|
|
318
|
-
manager_file.write_text(text, encoding="utf-8")
|
|
319
|
-
|
|
230
|
+
save_json_file(managers_dir / f"manager_{i}_{manager.session_name}.json", manager_data, f"manager {i}")
|
|
320
231
|
logger.info(f"✅ Saved WTLocalManager session to: {session_dir}")
|
|
321
232
|
return session_id
|
|
322
233
|
|
|
323
234
|
@classmethod
|
|
324
235
|
def load(cls, session_id: str) -> "WTLocalManager":
|
|
325
|
-
"""Load a saved manager state from disk."""
|
|
326
236
|
session_dir = TMP_SERIALIZATION_DIR / session_id
|
|
327
|
-
|
|
328
237
|
if not session_dir.exists():
|
|
329
238
|
raise FileNotFoundError(f"Session directory not found: {session_dir}")
|
|
330
|
-
|
|
331
|
-
#
|
|
332
|
-
|
|
333
|
-
if
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
text = config_file.read_text(encoding="utf-8")
|
|
337
|
-
session_layouts = json.loads(text)
|
|
338
|
-
|
|
339
|
-
# Load metadata
|
|
340
|
-
metadata_file = session_dir / "metadata.json"
|
|
341
|
-
session_name_prefix = "LocalWTMgr" # default fallback
|
|
342
|
-
if metadata_file.exists():
|
|
343
|
-
text = metadata_file.read_text(encoding="utf-8")
|
|
344
|
-
metadata = json.loads(text)
|
|
345
|
-
session_name_prefix = metadata.get("session_name_prefix", "LocalWTMgr")
|
|
346
|
-
|
|
347
|
-
# Create new instance
|
|
239
|
+
loaded_data = load_json_file(session_dir / "session_layouts.json", "Configuration file")
|
|
240
|
+
session_layouts = loaded_data if isinstance(loaded_data, list) else [] # type: ignore[arg-type]
|
|
241
|
+
metadata_data = load_json_file(session_dir / "metadata.json", "Metadata file") if (session_dir / "metadata.json").exists() else {}
|
|
242
|
+
metadata = metadata_data if isinstance(metadata_data, dict) else {} # type: ignore[arg-type]
|
|
243
|
+
session_name_prefix = metadata.get("session_name_prefix", "LocalWTMgr") # type: ignore[union-attr]
|
|
348
244
|
instance = cls(session_layouts=session_layouts, session_name_prefix=session_name_prefix)
|
|
349
|
-
|
|
350
|
-
# Load saved manager states
|
|
351
245
|
managers_dir = session_dir / "managers"
|
|
352
246
|
if managers_dir.exists():
|
|
353
247
|
instance.managers = []
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
for manager_file in manager_files:
|
|
248
|
+
for manager_file in sorted(managers_dir.glob("manager_*.json")):
|
|
357
249
|
try:
|
|
358
|
-
|
|
359
|
-
manager_data =
|
|
360
|
-
|
|
361
|
-
#
|
|
362
|
-
manager = WTLayoutGenerator(layout_config=manager_data["layout_config"], session_name=manager_data["session_name"])
|
|
363
|
-
manager.script_path = manager_data["script_path"]
|
|
364
|
-
|
|
250
|
+
loaded_manager_data = load_json_file(manager_file, "Manager data")
|
|
251
|
+
manager_data = loaded_manager_data if isinstance(loaded_manager_data, dict) else {} # type: ignore[arg-type]
|
|
252
|
+
manager = WTLayoutGenerator(layout_config=manager_data["layout_config"], session_name=manager_data["session_name"]) # type: ignore[typeddict-item]
|
|
253
|
+
manager.script_path = manager_data["script_path"] # type: ignore[typeddict-item]
|
|
365
254
|
instance.managers.append(manager)
|
|
366
|
-
|
|
367
255
|
except Exception as e:
|
|
368
256
|
logger.warning(f"Failed to load manager from {manager_file}: {e}")
|
|
369
|
-
|
|
370
257
|
logger.info(f"✅ Loaded WTLocalManager session from: {session_dir}")
|
|
371
258
|
return instance
|
|
372
259
|
|
|
373
260
|
@staticmethod
|
|
374
261
|
def list_saved_sessions() -> list[str]:
|
|
375
|
-
|
|
376
|
-
if not TMP_SERIALIZATION_DIR.exists():
|
|
377
|
-
return []
|
|
378
|
-
|
|
379
|
-
sessions = []
|
|
380
|
-
for item in TMP_SERIALIZATION_DIR.iterdir():
|
|
381
|
-
if item.is_dir() and (item / "metadata.json").exists():
|
|
382
|
-
sessions.append(item.name)
|
|
383
|
-
|
|
384
|
-
return sorted(sessions)
|
|
262
|
+
return list_saved_sessions_in_dir(TMP_SERIALIZATION_DIR)
|
|
385
263
|
|
|
386
264
|
@staticmethod
|
|
387
265
|
def delete_session(session_id: str) -> bool:
|
|
388
|
-
|
|
389
|
-
session_dir = TMP_SERIALIZATION_DIR / session_id
|
|
390
|
-
|
|
391
|
-
if not session_dir.exists():
|
|
392
|
-
logger.warning(f"Session directory not found: {session_dir}")
|
|
393
|
-
return False
|
|
394
|
-
|
|
395
|
-
try:
|
|
396
|
-
import shutil
|
|
397
|
-
|
|
398
|
-
shutil.rmtree(session_dir)
|
|
399
|
-
logger.info(f"✅ Deleted session: {session_id}")
|
|
400
|
-
return True
|
|
401
|
-
except Exception as e:
|
|
402
|
-
logger.error(f"Failed to delete session {session_id}: {e}")
|
|
403
|
-
return False
|
|
266
|
+
return delete_session_dir(TMP_SERIALIZATION_DIR / session_id, session_id)
|
|
404
267
|
|
|
405
268
|
def list_active_sessions(self) -> list[ActiveSessionInfo]:
|
|
406
|
-
|
|
407
|
-
active_sessions = []
|
|
269
|
+
active_sessions: list[ActiveSessionInfo] = []
|
|
408
270
|
|
|
409
271
|
try:
|
|
410
|
-
# Get all running Windows Terminal processes
|
|
411
272
|
result = subprocess.run(
|
|
412
273
|
["powershell", "-Command", 'Get-Process -Name "WindowsTerminal" -ErrorAction SilentlyContinue | Select-Object Id, ProcessName, StartTime, MainWindowTitle | ConvertTo-Json -Depth 2'], capture_output=True, text=True, timeout=10
|
|
413
274
|
)
|
|
@@ -419,7 +280,6 @@ class WTLocalManager:
|
|
|
419
280
|
if not isinstance(all_processes, list):
|
|
420
281
|
all_processes = [all_processes]
|
|
421
282
|
|
|
422
|
-
# Filter to only our managed sessions
|
|
423
283
|
for manager in self.managers:
|
|
424
284
|
session_name = manager.session_name
|
|
425
285
|
session_windows = []
|
|
@@ -435,7 +295,6 @@ class WTLocalManager:
|
|
|
435
295
|
"is_active": len(session_windows) > 0,
|
|
436
296
|
"tab_count": len(manager.layout_config["layoutTabs"]) if manager.layout_config else 0,
|
|
437
297
|
"tabs": [tab["tabName"] for tab in manager.layout_config["layoutTabs"]] if manager.layout_config else [],
|
|
438
|
-
"windows": session_windows,
|
|
439
298
|
}
|
|
440
299
|
)
|
|
441
300
|
|