machineconfig 6.23__py3-none-any.whl → 8.12__py3-none-any.whl
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/cluster/remote/cloud_manager.py +1 -1
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- machineconfig/cluster/sessions_managers/{utils → helpers}/enhanced_command_runner.py +4 -6
- machineconfig/cluster/sessions_managers/utils/load_balancer.py +1 -1
- machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
- machineconfig/cluster/sessions_managers/wt_local.py +16 -221
- machineconfig/cluster/sessions_managers/wt_local_manager.py +55 -193
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
- machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local.py +3 -3
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +5 -3
- machineconfig/cluster/sessions_managers/zellij_remote.py +2 -2
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +2 -2
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -7
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_helper_with_panes.py +1 -1
- machineconfig/jobs/installer/check_installations.py +0 -1
- machineconfig/jobs/installer/installer_data.json +1408 -201
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
- machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
- machineconfig/jobs/installer/package_groups.py +63 -92
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/jobs/installer/python_scripts/boxes.py +61 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
- machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +4 -1
- machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
- machineconfig/jobs/installer/{custom → python_scripts}/hx.py +75 -18
- machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
- machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +27 -22
- machineconfig/jobs/installer/python_scripts/sysabc.py +139 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
- machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
- machineconfig/jobs/installer/python_scripts/yazi.py +121 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
- machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
- machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
- machineconfig/jobs/scripts_dynamic/a.py +25 -0
- machineconfig/logger.py +0 -1
- machineconfig/profile/create_helper.py +56 -18
- machineconfig/profile/create_links.py +2 -1
- machineconfig/profile/create_links_export.py +64 -18
- machineconfig/profile/create_shell_profile.py +90 -132
- machineconfig/profile/mapper.toml +18 -8
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +46 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +82 -60
- machineconfig/scripts/python/ai/initai.py +1 -19
- machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
- machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +1 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
- machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
- machineconfig/scripts/python/ai/solutions/generic.py +1 -1
- machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
- machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +7 -2
- machineconfig/scripts/python/cloud.py +14 -9
- machineconfig/scripts/python/croshell.py +135 -117
- machineconfig/scripts/python/devops.py +48 -25
- machineconfig/scripts/python/devops_navigator.py +1 -5
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +18 -9
- machineconfig/scripts/python/fire_jobs.py +127 -118
- machineconfig/scripts/python/ftpx.py +44 -17
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/qr_code.py +166 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_launch.py +37 -15
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +41 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/copilot/config.yml +1 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/crush/crush.json +10 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/gemini/settings.json +12 -0
- machineconfig/scripts/python/helpers_agents/privacy/privacy.py +109 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +34 -0
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_copy.py +28 -21
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_mount.py +19 -17
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_sync.py +12 -11
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/helpers2.py +1 -1
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/start_slidev.py +6 -7
- machineconfig/scripts/python/helpers_devops/cli_config.py +105 -0
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
- machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
- machineconfig/scripts/python/helpers_devops/cli_nw.py +221 -0
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/cli_repos.py +60 -36
- machineconfig/scripts/python/helpers_devops/cli_self.py +172 -0
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +142 -0
- machineconfig/scripts/python/{devops_helpers/cli_terminal.py → helpers_devops/cli_share_terminal.py} +15 -17
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/devops_backup_retrieve.py +7 -10
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/devops_status.py +7 -19
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/devops_update_repos.py +1 -1
- machineconfig/scripts/python/helpers_devops/run_script.py +168 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/themes/choose_wezterm_theme.py +1 -1
- machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -20
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +2 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +26 -16
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
- machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/command_builder.py +1 -1
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/command_detail.py +1 -1
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/command_tree.py +160 -23
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/main_app.py +5 -5
- machineconfig/scripts/python/helpers_network/address.py +176 -0
- machineconfig/scripts/python/helpers_network/address_switch.py +78 -0
- machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
- machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
- machineconfig/scripts/python/{nw/devops_add_identity.py → helpers_network/ssh_add_identity.py} +35 -1
- machineconfig/scripts/python/{nw/devops_add_ssh_key.py → helpers_network/ssh_add_ssh_key.py} +26 -7
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
- machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +1 -53
- machineconfig/scripts/python/helpers_repos/action.py +209 -0
- machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/clone.py +0 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +80 -37
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/entrypoint.py +5 -5
- machineconfig/scripts/python/helpers_repos/grource.py +2 -2
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/record.py +3 -2
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/{repos_helpers/count_lines.py → helpers_repos/repo_analyzer_2.py} +113 -192
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/sync.py +5 -5
- machineconfig/scripts/python/{sessions_helpers → helpers_sessions}/sessions_multiprocess.py +19 -13
- machineconfig/scripts/python/helpers_utils/download.py +150 -0
- machineconfig/scripts/python/helpers_utils/pdf.py +96 -0
- machineconfig/scripts/python/helpers_utils/python.py +187 -0
- machineconfig/scripts/python/interactive.py +26 -35
- machineconfig/scripts/python/{entry.py → mcfg_entry.py} +24 -10
- machineconfig/scripts/python/msearch.py +72 -0
- machineconfig/scripts/python/sessions.py +101 -38
- machineconfig/scripts/python/terminal.py +136 -0
- machineconfig/scripts/python/utils.py +62 -0
- machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
- machineconfig/settings/broot/conf.toml +1 -1
- machineconfig/settings/helix/config.toml +16 -0
- machineconfig/settings/helix/languages.toml +13 -4
- machineconfig/settings/helix/yazi-picker.sh +12 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
- machineconfig/settings/lf/linux/lfrc +10 -11
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +15 -17
- machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
- machineconfig/settings/linters/.ruff.toml +1 -1
- machineconfig/settings/marimo/marimo.toml +80 -0
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/shells/bash/init.sh +57 -10
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
- machineconfig/settings/shells/nushell/config.nu +2 -35
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +314 -0
- machineconfig/settings/shells/pwsh/init.ps1 +59 -23
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/wt/settings.json +32 -17
- machineconfig/settings/shells/zsh/init.sh +89 -0
- machineconfig/settings/television/cable_unix/alias.toml +8 -0
- machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
- machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
- machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
- machineconfig/settings/television/cable_unix/channels.toml +19 -0
- machineconfig/settings/television/cable_unix/dirs.toml +13 -0
- machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
- machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
- machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_unix/env.toml +17 -0
- machineconfig/settings/television/cable_unix/files.toml +11 -0
- machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
- machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
- machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
- machineconfig/settings/television/cable_unix/git-log.toml +12 -0
- machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
- machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
- machineconfig/settings/television/cable_unix/guix.toml +20 -0
- machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
- machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
- machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
- machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
- machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
- machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
- machineconfig/settings/television/cable_unix/procs.toml +20 -0
- machineconfig/settings/television/cable_unix/text.toml +17 -0
- machineconfig/settings/television/cable_unix/tldr.toml +18 -0
- machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
- machineconfig/settings/television/cable_windows/alias.toml +7 -0
- machineconfig/settings/television/cable_windows/dirs.toml +13 -0
- machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
- machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_windows/env.toml +17 -0
- machineconfig/settings/television/cable_windows/files.toml +14 -0
- machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
- machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
- machineconfig/settings/television/cable_windows/git-log.toml +11 -0
- machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
- machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
- machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
- machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
- machineconfig/settings/television/cable_windows/text.toml +17 -0
- machineconfig/settings/yazi/init.lua +61 -0
- machineconfig/settings/yazi/keymap_linux.toml +94 -0
- machineconfig/settings/yazi/keymap_windows.toml +78 -0
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
- machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
- machineconfig/settings/yazi/theme.toml +4 -0
- machineconfig/settings/yazi/yazi_linux.toml +84 -0
- machineconfig/settings/yazi/yazi_windows.toml +58 -0
- machineconfig/settings/zellij/layouts/st.kdl +39 -8
- machineconfig/setup_linux/__init__.py +2 -2
- machineconfig/setup_linux/apps_desktop.sh +8 -27
- machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -11
- machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
- machineconfig/setup_mac/__init__.py +16 -0
- machineconfig/setup_mac/apps_gui.sh +248 -0
- machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
- machineconfig/setup_mac/uv.sh +36 -0
- machineconfig/setup_windows/__init__.py +3 -5
- machineconfig/setup_windows/ssh/openssh-server.ps1 +1 -1
- machineconfig/setup_windows/uv.ps1 +8 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +26 -10
- machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/utils/accessories.py +7 -5
- machineconfig/utils/code.py +143 -167
- machineconfig/utils/files/art/fat_croco.txt +10 -0
- machineconfig/utils/files/art/halfwit_croco.txt +9 -0
- machineconfig/utils/files/art/happy_croco.txt +22 -0
- machineconfig/utils/files/art/water_croco.txt +11 -0
- machineconfig/utils/files/ascii_art.py +1 -1
- machineconfig/utils/files/headers.py +6 -11
- machineconfig/utils/files/read.py +3 -9
- machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
- machineconfig/utils/installer_utils/install_from_url.py +183 -0
- machineconfig/utils/installer_utils/installer_class.py +44 -101
- machineconfig/utils/installer_utils/installer_cli.py +175 -0
- machineconfig/utils/installer_utils/installer_helper.py +129 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +39 -87
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +17 -63
- machineconfig/utils/io.py +77 -4
- machineconfig/utils/links.py +56 -38
- machineconfig/utils/meta.py +235 -145
- machineconfig/utils/options.py +46 -18
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +46 -97
- machineconfig/utils/path_helper.py +76 -23
- machineconfig/utils/procs.py +10 -23
- machineconfig/utils/scheduler.py +84 -115
- machineconfig/utils/scheduling.py +0 -3
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/ssh.py +214 -476
- machineconfig/utils/ssh_utils/abc.py +5 -0
- machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
- machineconfig/utils/ssh_utils/copy_to_here.py +303 -0
- machineconfig/utils/ssh_utils/utils.py +142 -0
- machineconfig/utils/ssh_utils/wsl.py +210 -0
- machineconfig/utils/terminal.py +3 -113
- machineconfig/utils/upgrade_packages.py +114 -28
- machineconfig/utils/ve.py +12 -4
- machineconfig-8.12.dist-info/METADATA +132 -0
- machineconfig-8.12.dist-info/RECORD +504 -0
- {machineconfig-6.23.dist-info → machineconfig-8.12.dist-info}/entry_points.txt +5 -1
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -16
- machineconfig/jobs/python/python_ve_symlink.py +0 -37
- machineconfig/jobs/python/vscode/api.py +0 -57
- machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -12
- machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -7
- machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -14
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzfag +0 -17
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/fzfrga +0 -21
- machineconfig/scripts/linux/other/share_smb +0 -1
- machineconfig/scripts/linux/other/switch_ip +0 -20
- machineconfig/scripts/linux/skrg +0 -4
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
- machineconfig/scripts/python/devops_helpers/cli_config.py +0 -81
- machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +0 -84
- machineconfig/scripts/python/devops_helpers/cli_data.py +0 -18
- machineconfig/scripts/python/devops_helpers/cli_nw.py +0 -73
- machineconfig/scripts/python/devops_helpers/cli_self.py +0 -117
- machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -104
- machineconfig/scripts/python/helper_navigator/__init__.py +0 -20
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
- machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -30
- machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
- machineconfig/scripts/python/helpers_fire/template.sh +0 -15
- machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
- machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
- machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
- machineconfig/scripts/python/repos_helpers/action.py +0 -378
- machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +0 -17
- machineconfig/scripts/windows/fzfb.ps1 +0 -3
- machineconfig/scripts/windows/fzfg.ps1 +0 -2
- machineconfig/scripts/windows/fzfrga.bat +0 -20
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
- machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
- machineconfig/settings/lf/windows/tst.ps1 +0 -1
- machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- machineconfig/settings/yazi/keymap.toml +0 -0
- machineconfig/settings/yazi/yazi.toml +0 -4
- machineconfig/setup_linux/apps.sh +0 -66
- machineconfig/setup_linux/nix/cli_installation.sh +0 -137
- machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
- machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
- machineconfig/setup_windows/apps.ps1 +0 -62
- machineconfig/setup_windows/others/obs.ps1 +0 -4
- machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
- machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- machineconfig/utils/installer_utils/installer.py +0 -225
- machineconfig-6.23.dist-info/METADATA +0 -84
- machineconfig-6.23.dist-info/RECORD +0 -428
- machineconfig/cluster/sessions_managers/{utils → helpers}/load_balancer_helper.py +0 -0
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_helper.py +0 -0
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_helper_restart.py +0 -0
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_manager_helper.py +0 -0
- machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/__init__.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
- machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
- machineconfig/{setup_linux/web_shortcuts → jobs/scripts/bash_scripts}/android.sh +0 -0
- machineconfig/jobs/{linux/msc → scripts/bash_scripts}/lid.sh +0 -0
- machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/mint_keyboard_shortcuts.sh +0 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
- machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
- machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
- machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
- machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
- machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
- machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
- machineconfig/{jobs/python → scripts/python/ai/utils}/__init__.py +0 -0
- machineconfig/scripts/python/{cloud_helpers → helpers_agents}/__init__.py +0 -0
- machineconfig/scripts/python/{croshell_helpers → helpers_agents/agentic_frameworks}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_search.py +0 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_load_balancer.py +0 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents/templates}/template.ps1 +0 -0
- machineconfig/scripts/python/{devops_helpers → helpers_cloud}/__init__.py +0 -0
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_helpers.py +1 -1
- /machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/helpers5.py +0 -0
- /machineconfig/scripts/python/{devops_helpers/themes → helpers_croshell}/__init__.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/pomodoro.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/scheduler.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/viewer.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/viewer_template.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_devops}/__init__.py +0 -0
- /machineconfig/scripts/python/{helpers_fire/agentic_frameworks → helpers_devops/themes}/__init__.py +0 -0
- /machineconfig/scripts/python/{devops_helpers → helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
- /machineconfig/scripts/python/{helper_navigator → helpers_navigator}/data_models.py +0 -0
- /machineconfig/scripts/python/{helper_navigator → helpers_navigator}/search_bar.py +0 -0
- /machineconfig/scripts/python/{helpers_repos → helpers_network}/__init__.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
- /machineconfig/scripts/python/{repos_helpers → helpers_repos}/update.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_sessions}/__init__.py +0 -0
- /machineconfig/{scripts/python/sessions_helpers → settings/wt}/__init__.py +0 -0
- /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
- {machineconfig-6.23.dist-info → machineconfig-8.12.dist-info}/WHEEL +0 -0
- {machineconfig-6.23.dist-info → machineconfig-8.12.dist-info}/top_level.txt +0 -0
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"""Like yadm and dotter."""
|
|
2
|
-
|
|
3
|
-
from typing import Annotated
|
|
4
|
-
|
|
5
|
-
import typer
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# @app.command()
|
|
9
|
-
# def symlinks_new():
|
|
10
|
-
# """🆕 SYMLINKS new. consider moving to the new config command, then may be merge it with the dotfile subcommand"""
|
|
11
|
-
# import machineconfig.jobs.python.python_ve_symlink as helper
|
|
12
|
-
# helper.main()
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def main(
|
|
16
|
-
file: Annotated[str, typer.Argument(help="file/folder path.")],
|
|
17
|
-
overwrite: Annotated[bool, typer.Option("--overwrite", "-o", help="Overwrite.")] = False,
|
|
18
|
-
dest: Annotated[str, typer.Option("--dest", "-d", help="destination folder")] = "",
|
|
19
|
-
) -> None:
|
|
20
|
-
|
|
21
|
-
from rich.console import Console
|
|
22
|
-
from rich.panel import Panel
|
|
23
|
-
|
|
24
|
-
from machineconfig.utils.links import symlink_map
|
|
25
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
26
|
-
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
27
|
-
console = Console()
|
|
28
|
-
orig_path = PathExtended(file).expanduser().absolute()
|
|
29
|
-
if dest == "":
|
|
30
|
-
if "Local" in str(orig_path):
|
|
31
|
-
junction = orig_path.split(at="Local", sep=-1)[1]
|
|
32
|
-
elif "Roaming" in str(orig_path):
|
|
33
|
-
junction = orig_path.split(at="Roaming", sep=-1)[1]
|
|
34
|
-
elif ".config" in str(orig_path):
|
|
35
|
-
junction = orig_path.split(at=".config", sep=-1)[1]
|
|
36
|
-
else:
|
|
37
|
-
junction = orig_path.rel2home()
|
|
38
|
-
new_path = PathExtended(CONFIG_ROOT).parent.parent.joinpath(junction)
|
|
39
|
-
else:
|
|
40
|
-
dest_path = PathExtended(dest).expanduser().absolute()
|
|
41
|
-
dest_path.mkdir(parents=True, exist_ok=True)
|
|
42
|
-
new_path = dest_path.joinpath(orig_path.name)
|
|
43
|
-
|
|
44
|
-
symlink_map(config_file_default_path=orig_path, self_managed_config_file_path=new_path, on_conflict="throwError")
|
|
45
|
-
|
|
46
|
-
console.print(
|
|
47
|
-
Panel(
|
|
48
|
-
"\n".join(
|
|
49
|
-
[
|
|
50
|
-
"✅ Symbolic link created successfully!",
|
|
51
|
-
"🔄 Add the following snippet to mapper.toml to persist this mapping:",
|
|
52
|
-
]
|
|
53
|
-
),
|
|
54
|
-
title="Symlink Created",
|
|
55
|
-
border_style="green",
|
|
56
|
-
padding=(1, 2),
|
|
57
|
-
)
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
mapper_snippet = "\n".join(
|
|
61
|
-
[
|
|
62
|
-
f"[bold]📝 Edit configuration file:[/] [cyan]nano {PathExtended(CONFIG_ROOT)}/symlinks/mapper.toml[/cyan]",
|
|
63
|
-
"",
|
|
64
|
-
f"[{new_path.parent.name}]",
|
|
65
|
-
f"{orig_path.name.split('.')[0]} = {{ this = '{orig_path.collapseuser().as_posix()}', to_this = '{new_path.collapseuser().as_posix()}' }}",
|
|
66
|
-
]
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
console.print(
|
|
70
|
-
Panel(
|
|
71
|
-
mapper_snippet,
|
|
72
|
-
title="Mapper Entry",
|
|
73
|
-
border_style="cyan",
|
|
74
|
-
padding=(1, 2),
|
|
75
|
-
)
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
def arg_parser() -> None:
|
|
80
|
-
typer.run(main)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if __name__ == "__main__":
|
|
84
|
-
arg_parser()
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import typer
|
|
3
|
-
|
|
4
|
-
app_data = typer.Typer(help="💾 [d] data subcommands", no_args_is_help=True)
|
|
5
|
-
|
|
6
|
-
@app_data.command()
|
|
7
|
-
def backup():
|
|
8
|
-
"""💾 BACKUP"""
|
|
9
|
-
from machineconfig.scripts.python.devops_helpers.devops_backup_retrieve import main_backup_retrieve
|
|
10
|
-
main_backup_retrieve(direction="BACKUP")
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
@app_data.command()
|
|
14
|
-
def retrieve():
|
|
15
|
-
"""📥 RETRIEVE"""
|
|
16
|
-
from machineconfig.scripts.python.devops_helpers.devops_backup_retrieve import main_backup_retrieve
|
|
17
|
-
main_backup_retrieve(direction="RETRIEVE")
|
|
18
|
-
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import machineconfig.scripts.python.devops_helpers.cli_terminal as cli_terminal
|
|
3
|
-
import machineconfig.scripts.python.devops_helpers.cli_share_server as cli_share_server
|
|
4
|
-
import typer
|
|
5
|
-
from typing import Optional, Annotated
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def install_ssh_server():
|
|
10
|
-
"""📡 SSH install server"""
|
|
11
|
-
import platform
|
|
12
|
-
if platform.system() == "Windows":
|
|
13
|
-
from machineconfig.setup_windows import SSH_SERVER
|
|
14
|
-
elif platform.system() == "Linux" or platform.system() == "Darwin":
|
|
15
|
-
from machineconfig.setup_linux import SSH_SERVER
|
|
16
|
-
else:
|
|
17
|
-
raise NotImplementedError(f"Platform {platform.system()} is not supported.")
|
|
18
|
-
from machineconfig.utils.code import run_shell_script
|
|
19
|
-
run_shell_script(script=SSH_SERVER.read_text(encoding="utf-8"))
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def add_ssh_key(path: Annotated[Optional[str], typer.Option(..., help="Path to the public key file")] = None,
|
|
23
|
-
choose: Annotated[bool, typer.Option(..., "--choose", "-c", help="Choose from available public keys in ~/.ssh/*.pub")] = False,
|
|
24
|
-
value: Annotated[bool, typer.Option(..., "--value", "-v", help="Paste the public key content manually")] = False,
|
|
25
|
-
github: Annotated[Optional[str], typer.Option(..., "--github", "-g", help="Fetch public keys from a GitHub username")] = None
|
|
26
|
-
):
|
|
27
|
-
"""🔑 SSH add pub key to this machine so its accessible by owner of corresponding private key."""
|
|
28
|
-
import machineconfig.scripts.python.nw.devops_add_ssh_key as helper
|
|
29
|
-
helper.main(pub_path=path, pub_choose=choose, pub_val=value, from_github=github)
|
|
30
|
-
def add_ssh_identity():
|
|
31
|
-
"""🗝️ SSH add identity (private key) to this machine"""
|
|
32
|
-
import machineconfig.scripts.python.nw.devops_add_identity as helper
|
|
33
|
-
helper.main()
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def show_address():
|
|
37
|
-
import socket
|
|
38
|
-
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
39
|
-
s.connect(('8.8.8.8',80))
|
|
40
|
-
local_ip_v4 = s.getsockname()[0]
|
|
41
|
-
s.close()
|
|
42
|
-
print(f"This computer is @ {local_ip_v4}")
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def debug_ssh():
|
|
46
|
-
"""🐛 SSH debug"""
|
|
47
|
-
from platform import system
|
|
48
|
-
if system() == "Linux" or system() == "Darwin":
|
|
49
|
-
import machineconfig.scripts.python.nw.ssh_debug_linux as helper
|
|
50
|
-
helper.ssh_debug_linux()
|
|
51
|
-
elif system() == "Windows":
|
|
52
|
-
import machineconfig.scripts.python.nw.ssh_debug_windows as helper
|
|
53
|
-
helper.ssh_debug_windows()
|
|
54
|
-
else:
|
|
55
|
-
raise NotImplementedError(f"Platform {system()} is not supported.")
|
|
56
|
-
|
|
57
|
-
def get_app():
|
|
58
|
-
nw_apps = typer.Typer(help="🔐 [n] Network subcommands", no_args_is_help=True)
|
|
59
|
-
nw_apps.command(name="share-terminal", help="📡 [t] Share terminal via web browser")(cli_terminal.main)
|
|
60
|
-
nw_apps.command(name="t", help="Share terminal via web browser", hidden=True)(cli_terminal.main)
|
|
61
|
-
nw_apps.command(name="share-server", help="🌐 [s] Start local/global server to share files/folders via web browser", no_args_is_help=True)(cli_share_server.main)
|
|
62
|
-
nw_apps.command(name="s", help="Start local/global server to share files/folders via web browser", hidden=True, no_args_is_help=True)(cli_share_server.main)
|
|
63
|
-
nw_apps.command(name="install-ssh-server", help="📡 [i] Install SSH server")(install_ssh_server)
|
|
64
|
-
nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
|
|
65
|
-
nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
|
|
66
|
-
nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
|
|
67
|
-
nw_apps.command(name="add-ssh-identity", help="🗝️ [a] Add SSH identity (private key) to this machine")(add_ssh_identity)
|
|
68
|
-
nw_apps.command(name="a", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
|
|
69
|
-
nw_apps.command(name="show-address", help="[A] Show this computer addresses on network")(show_address)
|
|
70
|
-
nw_apps.command(name="a", help="Show this computer addresses on network", hidden=True)(show_address)
|
|
71
|
-
nw_apps.command(name="debug-ssh", help="🐛 [d] Debug SSH connection")(debug_ssh)
|
|
72
|
-
nw_apps.command(name="d", help="Debug SSH connection", hidden=True)(debug_ssh)
|
|
73
|
-
return nw_apps
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import typer
|
|
3
|
-
from typing import Optional, Annotated
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def update(copy_assets: Annotated[bool, typer.Option(..., "--copy-assets", "-c", help="Copy assets to the machine after the update. Default is True.")] = False):
|
|
7
|
-
"""🔄 UPDATE uv and machineconfig"""
|
|
8
|
-
# from machineconfig.utils.source_of_truth import LIBRARY_ROOT
|
|
9
|
-
# repo_root = LIBRARY_ROOT.parent.parent
|
|
10
|
-
from pathlib import Path
|
|
11
|
-
if Path.home().joinpath("code", "machineconfig").exists():
|
|
12
|
-
code = """
|
|
13
|
-
uv self update
|
|
14
|
-
cd ~/code/machineconfig
|
|
15
|
-
git pull
|
|
16
|
-
uv tool install --upgrade --editable $HOME/code/machineconfig
|
|
17
|
-
"""
|
|
18
|
-
else:
|
|
19
|
-
code = """
|
|
20
|
-
uv self update
|
|
21
|
-
uv tool install --upgrade machineconfig
|
|
22
|
-
"""
|
|
23
|
-
import platform
|
|
24
|
-
if platform.system() == "Windows":
|
|
25
|
-
from machineconfig.utils.code import run_shell_script_after_exit
|
|
26
|
-
run_shell_script_after_exit(code)
|
|
27
|
-
from machineconfig.profile.create_helper import copy_assets_to_machine
|
|
28
|
-
copy_assets_to_machine(which="scripts")
|
|
29
|
-
copy_assets_to_machine(which="settings")
|
|
30
|
-
else:
|
|
31
|
-
from machineconfig.utils.code import run_shell_script
|
|
32
|
-
run_shell_script(code)
|
|
33
|
-
if copy_assets:
|
|
34
|
-
import machineconfig.profile.create_helper as create_helper
|
|
35
|
-
create_helper.copy_assets_to_machine(which="scripts")
|
|
36
|
-
create_helper.copy_assets_to_machine(which="settings")
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def interactive():
|
|
40
|
-
"""🤖 INTERACTIVE configuration of machine."""
|
|
41
|
-
from machineconfig.scripts.python.interactive import main
|
|
42
|
-
main()
|
|
43
|
-
|
|
44
|
-
def status():
|
|
45
|
-
"""📊 STATUS of machine, shell profile, apps, symlinks, dotfiles, etc."""
|
|
46
|
-
import machineconfig.scripts.python.devops_helpers.devops_status as helper
|
|
47
|
-
helper.main()
|
|
48
|
-
def install():
|
|
49
|
-
"""📋 CLONE machienconfig locally and incorporate to shell profile for faster execution and nightly updates."""
|
|
50
|
-
from machineconfig.utils.code import run_shell_script
|
|
51
|
-
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
52
|
-
# from machineconfig.profile.create_links_export import main_public_from_parser
|
|
53
|
-
create_default_shell_profile()
|
|
54
|
-
# main_public_from_parser()
|
|
55
|
-
import platform
|
|
56
|
-
if platform.system() == "Windows":
|
|
57
|
-
run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig>=5.87""")
|
|
58
|
-
else:
|
|
59
|
-
run_shell_script("""$HOME/.local/bin/uv tool install machineconfig>=5.87""")
|
|
60
|
-
|
|
61
|
-
def navigate():
|
|
62
|
-
"""📚 NAVIGATE command structure with TUI"""
|
|
63
|
-
import machineconfig.scripts.python as navigator
|
|
64
|
-
from pathlib import Path
|
|
65
|
-
path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
|
|
66
|
-
from machineconfig.utils.code import run_shell_script
|
|
67
|
-
run_shell_script(f"""uv run --with "machineconfig>=5.87,textual" {path}""")
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def run_python(ip: Annotated[str, typer.Argument(..., help="Python command to run in the machineconfig environment")],
|
|
71
|
-
command: Annotated[Optional[bool], typer.Option(..., "--command", "-c", help="Run as command")] = False):
|
|
72
|
-
"""🐍 RUN python command/file in the machineconfig environment"""
|
|
73
|
-
if command:
|
|
74
|
-
exec(ip)
|
|
75
|
-
return
|
|
76
|
-
import machineconfig
|
|
77
|
-
import subprocess
|
|
78
|
-
import sys
|
|
79
|
-
subprocess.run([sys.executable, ip], cwd=machineconfig.__path__[0])
|
|
80
|
-
def readme():
|
|
81
|
-
from rich.console import Console
|
|
82
|
-
from rich.markdown import Markdown
|
|
83
|
-
import requests
|
|
84
|
-
|
|
85
|
-
# URL of the raw README.md file
|
|
86
|
-
url_readme = "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/refs/heads/main/README.md"
|
|
87
|
-
|
|
88
|
-
# Fetch the content
|
|
89
|
-
response = requests.get(url_readme)
|
|
90
|
-
response.raise_for_status() # Raise an error for bad responses
|
|
91
|
-
|
|
92
|
-
# Parse markdown
|
|
93
|
-
md = Markdown(response.text)
|
|
94
|
-
|
|
95
|
-
# Render in terminal
|
|
96
|
-
console = Console()
|
|
97
|
-
console.print(md)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
def get_app():
|
|
101
|
-
cli_app = typer.Typer(help="🔄 [s] self operations subcommands", no_args_is_help=True)
|
|
102
|
-
cli_app.command("update", no_args_is_help=False, help="🔄 [u] UPDATE machineconfig")(update)
|
|
103
|
-
cli_app.command("u", no_args_is_help=False, hidden=True)(update)
|
|
104
|
-
cli_app.command("interactive", no_args_is_help=False, help="🤖 [i] INTERACTIVE configuration of machine.")(interactive)
|
|
105
|
-
cli_app.command("i", no_args_is_help=False, help="INTERACTIVE configuration of machine.", hidden=True)(interactive)
|
|
106
|
-
cli_app.command("status", no_args_is_help=False, help="📊 [s] STATUS of machine, shell profile, apps, symlinks, dotfiles, etc.")(status)
|
|
107
|
-
cli_app.command("s", no_args_is_help=False, help="STATUS of machine, shell profile, apps, symlinks, dotfiles, etc.", hidden=True)(status)
|
|
108
|
-
cli_app.command("install", no_args_is_help=False, help="📋 [I] CLONE machienconfig locally and incorporate to shell profile for faster execution and nightly updates.")(install)
|
|
109
|
-
cli_app.command("I", no_args_is_help=False, help="CLONE machienconfig locally and incorporate to shell profile for faster execution and nightly updates.", hidden=True)(install)
|
|
110
|
-
cli_app.command("navigate", no_args_is_help=False, help="📚 [n] NAVIGATE command structure with TUI")(navigate)
|
|
111
|
-
cli_app.command("n", no_args_is_help=False, help="NAVIGATE command structure with TUI", hidden=True)(navigate)
|
|
112
|
-
cli_app.command("python", no_args_is_help=False, help="🐍 [c] python command/file in the machineconfig environment", context_settings={"show_help_on_error": True})(run_python)
|
|
113
|
-
cli_app.command("c", no_args_is_help=False, help="RUN python command/file in the machineconfig environment", hidden=True)(run_python)
|
|
114
|
-
cli_app.command("readme", no_args_is_help=False, help="📚 [r] render readme markdown in terminal.")(readme)
|
|
115
|
-
cli_app.command("r", no_args_is_help=False, hidden=True)(readme)
|
|
116
|
-
return cli_app
|
|
117
|
-
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
from typing import Optional, Annotated
|
|
3
|
-
import typer
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def display_share_url(local_ip_v4: str, port: int, protocol: str = "http") -> None:
|
|
7
|
-
"""Display a flashy, unmissable share URL announcement."""
|
|
8
|
-
from rich.console import Console
|
|
9
|
-
from rich.panel import Panel
|
|
10
|
-
from rich.text import Text
|
|
11
|
-
from rich.align import Align
|
|
12
|
-
console = Console()
|
|
13
|
-
# Create the main message with styling
|
|
14
|
-
url_text = Text(f"{protocol}://{local_ip_v4}:{port}", style="bold bright_cyan underline")
|
|
15
|
-
message = Text.assemble(
|
|
16
|
-
("🚀 ", "bright_red"),
|
|
17
|
-
("Share server is now accessible at: ", "bright_white bold"),
|
|
18
|
-
url_text,
|
|
19
|
-
(" 🚀", "bright_red")
|
|
20
|
-
)
|
|
21
|
-
# Create a fancy panel with borders and styling
|
|
22
|
-
panel = Panel(
|
|
23
|
-
Align.center(message),
|
|
24
|
-
title="[bold bright_green]🌐 SHARE SERVER READY 🌐[/bold bright_green]",
|
|
25
|
-
subtitle="[italic bright_yellow]⚡ Click the link above to access your shared files! ⚡[/italic bright_yellow]",
|
|
26
|
-
border_style="bright_magenta",
|
|
27
|
-
padding=(1, 2),
|
|
28
|
-
expand=False
|
|
29
|
-
)
|
|
30
|
-
# Print with extra spacing and attention-grabbing elements
|
|
31
|
-
console.print(panel)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def main(
|
|
35
|
-
path: Annotated[str, typer.Argument(help="Path to the file or directory to share")],
|
|
36
|
-
port: Annotated[Optional[int], typer.Option("--port", "-p", help="Port to run the share server on (default: 8080)")] = None,
|
|
37
|
-
username: Annotated[Optional[str], typer.Option("--username", "-u", help="Username for share access (default: current user)")] = None,
|
|
38
|
-
password: Annotated[Optional[str], typer.Option("--password", "-w", help="Password for share access (default: from ~/dotfiles/creds/passwords/quick_password)")] = None,
|
|
39
|
-
over_internet: Annotated[bool, typer.Option("--over-internet", "-i", help="Expose the share server over the internet using ngrok")] = False
|
|
40
|
-
) -> None:
|
|
41
|
-
from machineconfig.utils.installer_utils.installer import install_if_missing
|
|
42
|
-
install_if_missing(which="easy-sharing")
|
|
43
|
-
if over_internet: install_if_missing(which="ngrok", )
|
|
44
|
-
if username is None:
|
|
45
|
-
import getpass
|
|
46
|
-
username = getpass.getuser()
|
|
47
|
-
if password is None:
|
|
48
|
-
pwd_path = Path.home().joinpath("dotfiles/creds/passwords/quick_password")
|
|
49
|
-
if pwd_path.exists():
|
|
50
|
-
password = pwd_path.read_text(encoding="utf-8").strip()
|
|
51
|
-
else:
|
|
52
|
-
# raise ValueError("Password not provided and default password file does not exist.")
|
|
53
|
-
typer.echo(f"⚠️ WARNING: Password not provided and default password file does not exist.\nPath: {pwd_path}\nUsing default password: 'quick_password' (insecure!)", err=True)
|
|
54
|
-
typer.Exit(code=1)
|
|
55
|
-
|
|
56
|
-
if port is None:
|
|
57
|
-
port = 8080 # Default port for ezshare
|
|
58
|
-
|
|
59
|
-
import socket
|
|
60
|
-
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
61
|
-
s.connect(('8.8.8.8',80))
|
|
62
|
-
local_ip_v4 = s.getsockname()[0]
|
|
63
|
-
s.close()
|
|
64
|
-
|
|
65
|
-
# Display the flashy share announcement
|
|
66
|
-
protocol = "http"
|
|
67
|
-
display_share_url(local_ip_v4, port, protocol)
|
|
68
|
-
import subprocess
|
|
69
|
-
import time
|
|
70
|
-
# Build ezshare command
|
|
71
|
-
ezshare_cmd = f"""easy-sharing --port {port} --username {username} --password "{password}" {path}"""
|
|
72
|
-
ezshare_process = subprocess.Popen(ezshare_cmd, shell=True)
|
|
73
|
-
processes = [ezshare_process]
|
|
74
|
-
|
|
75
|
-
if over_internet:
|
|
76
|
-
ngrok_process = subprocess.Popen(f"ngrok http {port}", shell=True)
|
|
77
|
-
processes.append(ngrok_process)
|
|
78
|
-
time.sleep(3)
|
|
79
|
-
try:
|
|
80
|
-
import requests
|
|
81
|
-
response = requests.get("http://localhost:4040/api/tunnels")
|
|
82
|
-
data = response.json()
|
|
83
|
-
public_url = data['tunnels'][0]['public_url']
|
|
84
|
-
print(f"🌐 Ngrok tunnel ready: {public_url}")
|
|
85
|
-
except Exception as e:
|
|
86
|
-
print(f"Could not retrieve ngrok URL: {e}")
|
|
87
|
-
|
|
88
|
-
try:
|
|
89
|
-
while True:
|
|
90
|
-
print("Share server is running. Press Ctrl+C to stop.")
|
|
91
|
-
time.sleep(2)
|
|
92
|
-
except KeyboardInterrupt:
|
|
93
|
-
print("\nTerminating processes...")
|
|
94
|
-
for p in processes:
|
|
95
|
-
p.terminate()
|
|
96
|
-
p.wait()
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def main_with_parser():
|
|
100
|
-
typer.run(main)
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if __name__ == "__main__":
|
|
104
|
-
pass
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Helper modules for the devops navigator TUI application.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
from machineconfig.scripts.python.helper_navigator.data_models import CommandInfo, ArgumentInfo
|
|
6
|
-
from machineconfig.scripts.python.helper_navigator.command_builder import CommandBuilderScreen
|
|
7
|
-
from machineconfig.scripts.python.helper_navigator.command_tree import CommandTree
|
|
8
|
-
from machineconfig.scripts.python.helper_navigator.command_detail import CommandDetail
|
|
9
|
-
from machineconfig.scripts.python.helper_navigator.search_bar import SearchBar
|
|
10
|
-
from machineconfig.scripts.python.helper_navigator.main_app import CommandNavigatorApp
|
|
11
|
-
|
|
12
|
-
__all__ = [
|
|
13
|
-
"CommandInfo",
|
|
14
|
-
"ArgumentInfo",
|
|
15
|
-
"CommandBuilderScreen",
|
|
16
|
-
"CommandTree",
|
|
17
|
-
"CommandDetail",
|
|
18
|
-
"SearchBar",
|
|
19
|
-
"CommandNavigatorApp",
|
|
20
|
-
]
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
from pathlib import Path
|
|
3
|
-
# import shlex
|
|
4
|
-
from typing import Optional
|
|
5
|
-
from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST, PROVIDER, MODEL
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def fire_crush(api_key: Optional[str], model: MODEL, provider: PROVIDER, machine: HOST, prompt_path: Path, repo_root: Path) -> str:
|
|
9
|
-
match machine:
|
|
10
|
-
case "local":
|
|
11
|
-
cmd = f"""
|
|
12
|
-
crush run {prompt_path}
|
|
13
|
-
"""
|
|
14
|
-
case "docker":
|
|
15
|
-
assert api_key is not None, "API key is required for Crush agent in docker mode."
|
|
16
|
-
json_path = Path(__file__).parent / "fire_crush.json"
|
|
17
|
-
json_template = json_path.read_text(encoding="utf-8")
|
|
18
|
-
json_filled = json_template.replace("{api_key}", api_key).replace("{model}", model).replace("{provider}", provider)
|
|
19
|
-
import tempfile
|
|
20
|
-
temp_config_file_local = tempfile.mkstemp(suffix=".json")[1]
|
|
21
|
-
Path(temp_config_file_local).write_text(json_filled, encoding="utf-8")
|
|
22
|
-
cmd = f"""
|
|
23
|
-
|
|
24
|
-
# -e "PATH_PROMPT=$PATH_PROMPT"
|
|
25
|
-
# opencode --model "{provider}/{model}" run {prompt_path}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
echo "Running prompt @ {prompt_path.relative_to(repo_root)} using Docker with Crush..."
|
|
29
|
-
docker run -it --rm \
|
|
30
|
-
-v "{repo_root}:/workspace/{repo_root.name}" \
|
|
31
|
-
-v "{temp_config_file_local}:/root/.local/share/crush/crush.json" \
|
|
32
|
-
-w "/workspace/{repo_root.name}" \
|
|
33
|
-
statistician/machineconfig:latest \
|
|
34
|
-
bash -i -c "source ~/.bashrc && cd /workspace/{repo_root.name} && cat /root/.local/share/crush/crush.json && crush run 'Please act on contents of this prompt ./{prompt_path.relative_to(repo_root)}'"
|
|
35
|
-
|
|
36
|
-
"""
|
|
37
|
-
return cmd
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
from pathlib import Path
|
|
3
|
-
import shlex
|
|
4
|
-
from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST
|
|
5
|
-
from typing import Optional, Literal
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def fire_gemini(api_key: Optional[str], model: Literal["gemini-2.5-pro"], provider: Literal["google"], machine: HOST, prompt_path: Path, repo_root: Path) -> str:
|
|
9
|
-
_ = provider
|
|
10
|
-
# model = "gemini-2.5-flash-lite"
|
|
11
|
-
# model = None # auto-select
|
|
12
|
-
# if model is None:
|
|
13
|
-
# model_arg = ""
|
|
14
|
-
# else:
|
|
15
|
-
model_arg = f"--model {shlex.quote(model)}"
|
|
16
|
-
# Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
|
|
17
|
-
safe_path = shlex.quote(str(prompt_path))
|
|
18
|
-
|
|
19
|
-
match machine:
|
|
20
|
-
case "local":
|
|
21
|
-
# Export the environment variable so it's available to subshells
|
|
22
|
-
if api_key is not None:
|
|
23
|
-
define_api_key = f"""export GEMINI_API_KEY="{shlex.quote(api_key)}" """
|
|
24
|
-
else:
|
|
25
|
-
define_api_key = "echo 'Warning: No GEMINI_API_KEY provided, hoping it is set in the environment.'"
|
|
26
|
-
cmd = f"""
|
|
27
|
-
{define_api_key}
|
|
28
|
-
echo "Using Gemini API key $GEMINI_API_KEY"
|
|
29
|
-
gemini {model_arg} --yolo --prompt {safe_path}
|
|
30
|
-
"""
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
case "docker":
|
|
34
|
-
assert api_key is not None, "When using docker, api_key must be provided."
|
|
35
|
-
cmd = f"""
|
|
36
|
-
docker run -it --rm \
|
|
37
|
-
-e GEMINI_API_KEY="{api_key}" \
|
|
38
|
-
-v "{repo_root}:/workspace/{repo_root.name}" \
|
|
39
|
-
-w "/workspace/{repo_root.name}" \
|
|
40
|
-
statistician/machineconfig:latest \
|
|
41
|
-
gemini --prompt "$PATH_PROMPT"
|
|
42
|
-
"""
|
|
43
|
-
return cmd
|
|
44
|
-
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
from pathlib import Path
|
|
3
|
-
import shlex
|
|
4
|
-
from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST
|
|
5
|
-
from typing import Optional, Literal
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def fire_qwen(config_dir: Optional[str], model: Literal["qwen"], provider: Literal["qwen"], machine: HOST, prompt_path: Path, repo_root: Path) -> str:
|
|
9
|
-
# assert model == "qwen", "Only qwen is supported currently."
|
|
10
|
-
# assert provider == "qwen", "Only qwen is supported currently."
|
|
11
|
-
# model = "qwen"
|
|
12
|
-
# model = "gemini-2.5-flash-lite"
|
|
13
|
-
# model = None # auto-select
|
|
14
|
-
# if model is None:
|
|
15
|
-
# model_arg = ""
|
|
16
|
-
# else:
|
|
17
|
-
_ = provider
|
|
18
|
-
# model_arg = f"--model {shlex.quote(model)}"
|
|
19
|
-
# Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
|
|
20
|
-
safe_path = shlex.quote(str(prompt_path))
|
|
21
|
-
|
|
22
|
-
match machine:
|
|
23
|
-
case "local":
|
|
24
|
-
# Export the environment variable so it's available to subshells
|
|
25
|
-
cmd = f"""
|
|
26
|
-
qwen --yolo --prompt {safe_path}
|
|
27
|
-
"""
|
|
28
|
-
case "docker":
|
|
29
|
-
assert config_dir is not None, "When using docker, config_dir must be provided."
|
|
30
|
-
assert Path(config_dir).exists(), f"Provided config_dir {config_dir} does not exist."
|
|
31
|
-
oauth_creds = Path(config_dir).joinpath("oauth_creds.json")
|
|
32
|
-
settings = Path(config_dir).joinpath("settings.json")
|
|
33
|
-
|
|
34
|
-
cmd = f"""
|
|
35
|
-
docker run -it --rm \
|
|
36
|
-
-v "{repo_root}:/workspace/{repo_root.name}" \
|
|
37
|
-
-v {shlex.quote(str(oauth_creds))}:/root/.qwen/oauth_creds.json \
|
|
38
|
-
-v {shlex.quote(str(settings))}:/root/.qwen/settings.json \
|
|
39
|
-
-w "/workspace/{repo_root.name}" \
|
|
40
|
-
statistician/machineconfig:latest \
|
|
41
|
-
qwen --prompt "$PATH_PROMPT"
|
|
42
|
-
"""
|
|
43
|
-
return cmd
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
from typing import Literal, TypeAlias, TypedDict
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
AGENTS: TypeAlias = Literal["cursor-agent", "gemini", "crush", "q", "opencode"]
|
|
6
|
-
HOST: TypeAlias = Literal["local", "docker"]
|
|
7
|
-
PROVIDER: TypeAlias = Literal["azure", "google", "aws", "openai", "anthropic", "openrouter", "xai"]
|
|
8
|
-
MODEL: TypeAlias = Literal["zai/glm-4.6", "anthropic/sonnet-4.5", "google/gemini-2.5-pro", "openai/gpt-5-codex",
|
|
9
|
-
"openrouter/supernova", "x-ai/grok-4-fast:free",
|
|
10
|
-
]
|
|
11
|
-
PROVIDER2MODEL: dict[PROVIDER, list[MODEL]] = {
|
|
12
|
-
"azure": ["zai/glm-4.6"],
|
|
13
|
-
"google": ["google/gemini-2.5-pro"],
|
|
14
|
-
"aws": [],
|
|
15
|
-
"openai": ["openai/gpt-5-codex"],
|
|
16
|
-
"anthropic": ["anthropic/sonnet-4.5"],
|
|
17
|
-
"openrouter": ["openrouter/supernova"],
|
|
18
|
-
"xai": ["x-ai/grok-4-fast:free"]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
class AI_SPEC(TypedDict):
|
|
22
|
-
provider: PROVIDER
|
|
23
|
-
model: MODEL
|
|
24
|
-
agent: AGENTS
|
|
25
|
-
machine: HOST
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
AGENT_NAME_FORMATTER = "agent_{idx}_cmd.sh" # e.g., agent_0_cmd.sh
|
|
29
|
-
SEARCH_STRATEGIES: TypeAlias = Literal["file_path", "keyword_search", "filename_pattern"]
|
|
30
|
-
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
#!/bin/bash
|
|
3
|
-
# set -e # Exit immediately if a command exits with a non-zero status.
|
|
4
|
-
|
|
5
|
-
JOB_NAME="outpatient_mapping"
|
|
6
|
-
REPO_ROOT="$HOME/code/work/winter_planning/"
|
|
7
|
-
CONTEXT_PATH="$REPO_ROOT/data/outpatient_mapping/op_services.csv"
|
|
8
|
-
PROMPT_PATH="$REPO_ROOT/data/outpatient_mapping/prompt"
|
|
9
|
-
AGENTS_DIR="$REPO_ROOT/.ai/agents/$JOB_NAME"
|
|
10
|
-
agents create --agents crush --host docker --model x-ai/grok-4-fast:free --provider openrouter --context-path $CONTEXT_PATH --prompt-path $PROMPT_PATH --job-name $JOB_NAME --agents-dir $AGENTS_DIR
|
|
11
|
-
sessions balance-load "$AGENTS_DIR/layout.json" --max-thresh 6 --breaking-method moreLayouts --thresh-type number --output-path "$AGENTS_DIR/layout_balanced.json"
|
|
12
|
-
sessions run "$AGENTS_DIR/layout_balanced.json" --kill-upon-completion
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# agents collect $AGENTS_DIR "$REPO_ROOT/.ai/agents/$JOB_NAME/collected.txt"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import typer
|
|
3
|
-
from typing import Optional, Literal, Annotated
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def main(
|
|
8
|
-
cloud: Annotated[Optional[str], typer.Option(..., "--cloud", "-c", help="Cloud storage profile name. If not provided, uses default from config.")] = None,
|
|
9
|
-
repo: Annotated[Optional[str], typer.Option(..., "--repo", "-r", help="Path to the local repository. Defaults to cwd.")] = Path.cwd().as_posix(),
|
|
10
|
-
message: Annotated[Optional[str], typer.Option(..., "--message", "-m", help="Commit message for local changes.")] = None,
|
|
11
|
-
on_conflict: Annotated[Literal["ask", "push-local-merge", "overwrite-local", "stop-on-conflict", "remove-rclone-conflict"], typer.Option(..., "--on-conflict", "-oc", help="Action to take on merge conflict. Default is 'ask'.")] = "ask",
|
|
12
|
-
pwd: Annotated[Optional[str], typer.Option(..., "--password", help="Password for encryption/decryption of the remote repository.")] = None,
|
|
13
|
-
):
|
|
14
|
-
from machineconfig.scripts.python.helpers_repos.cloud_repo_sync import main as program_content
|
|
15
|
-
program_content(cloud=cloud, repo=repo, message=message, on_conflict=on_conflict, pwd=pwd)
|