machineconfig 2.9__tar.gz → 2.95__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-2.9/src/machineconfig.egg-info → machineconfig-2.95}/PKG-INFO +1 -1
- {machineconfig-2.9 → machineconfig-2.95}/pyproject.toml +2 -1
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +4 -20
- machineconfig-2.95/src/machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-313.pyc +0 -0
- machineconfig-2.95/src/machineconfig/scripts/python/__pycache__/repos_helper_update.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/mcinit.py +2 -14
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops_update_repos.py +1 -4
- machineconfig-2.95/src/machineconfig/scripts/python/fire_agents.py +150 -0
- machineconfig-2.95/src/machineconfig/scripts/python/fire_agents_help_launch.py +142 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/fire_agents_help_search.py +1 -2
- machineconfig-2.95/src/machineconfig/scripts/python/fire_agents_load_balancer.py +52 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/fire_jobs.py +2 -1
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/repos_helper_update.py +6 -29
- machineconfig-2.95/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +70 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -1
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/ve.py +9 -5
- {machineconfig-2.9 → machineconfig-2.95/src/machineconfig.egg-info}/PKG-INFO +1 -1
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig.egg-info/SOURCES.txt +3 -0
- machineconfig-2.9/src/machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-313.pyc +0 -0
- machineconfig-2.9/src/machineconfig/scripts/python/fire_agents.py +0 -194
- machineconfig-2.9/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -97
- {machineconfig-2.9 → machineconfig-2.95}/MANIFEST.in +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/README.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/setup.cfg +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/enhanced_command_runner.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/cli_click.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/cli_gooey.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/run_cloud.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/run_cluster.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/run_remote.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/cluster/templates/utils.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/__pycache__/__init__.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/check_installations.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/tasks.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/vscode/api.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/vscode/link_ve.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/vscode/select_interpreter.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/aider.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/brave.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/code.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/cursor.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/goes.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/redis.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/dev/winget.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/docker.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/gh.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/hx.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_custom_installers/warp-cli.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_generic_installers/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_generic_installers/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_generic_installers/dev/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_linux_installers/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_linux_installers/archive/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_linux_installers/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_linux_installers/dev/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_linux_installers/dev/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_windows_installers/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_windows_installers/archive/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_windows_installers/archive/file.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_windows_installers/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_windows_installers/dev/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/python_windows_installers/dev/config.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/logger.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/create.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/profile/shell.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/cloud/init.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/cloud_copy +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/cloud_mount +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/cloud_sync +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/croshell +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/devops +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fire +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fire_agents +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/ftpx +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fzf2g +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fzfag +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fzffg +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fzfg +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/fzfrga +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/gh_models +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/kill_process +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/mcinit +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/mount_drive +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/mount_nfs +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/mount_smb +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/programs +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/repos +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/scheduler +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/share_nfs +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/share_smb +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/skrg +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/start_docker +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/start_slidev +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/start_terminals +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/switch_ip +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/wifi_conn +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/linux/z_ls +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/__init__.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/devops.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/fire_agents.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/repos.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/__pycache__/repos_helper_record.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/chatmodes/deepResearch.chatmode.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/configs/.gemini/settings.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/instructions/python/dev.instructions.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/archive/im2text.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/archive/tmate_conn.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/archive/tmate_start.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/croshell.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops_devapps_install.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/dotfile.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/ftpx.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/gh_models.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-313.pyc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/pomodoro.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/repos.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/scheduler.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/snapshot.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/start_slidev.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/start_terminals.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/viewer.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/viewer_template.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/mcinit.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/repos.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/linux/lfrc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/lfrc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/linters/.ruff_cache/.gitignore +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/pistol/pistol.conf +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/bash/.inputrc +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/bash/init.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/svim/linux/init.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/svim/windows/init.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/wsl/.wslconfig +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/yazi/keymap.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/yazi/yazi.toml +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/wt_and_pwsh/install_fonts.ps1 +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/code.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/installer.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/io_save.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/options.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/path.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/path_reduced.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/scheduling.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/source_of_truth.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/ssh.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/utils2.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/utils/utils5.py +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig.egg-info/entry_points.txt +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/src/machineconfig.egg-info/requires.txt +0 -0
- {machineconfig-2.9 → machineconfig-2.95}/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 = "2.
|
|
9
|
+
version = "2.95"
|
|
10
10
|
description = "Dotfiles management package"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = {text = "Apache 2.0"}
|
|
@@ -86,6 +86,7 @@ dev = [
|
|
|
86
86
|
"ipykernel>=6.30.1",
|
|
87
87
|
"ipython>=9.5.0",
|
|
88
88
|
"mypy>=1.18.2",
|
|
89
|
+
"pre-commit>=4.3.0",
|
|
89
90
|
"pudb>=2025.1",
|
|
90
91
|
"pylint>=3.3.8",
|
|
91
92
|
"pyrefly>=0.33.1",
|
|
@@ -24,16 +24,8 @@ TMP_SERIALIZATION_DIR = Path.home().joinpath("tmp_results", "session_manager", "
|
|
|
24
24
|
class ZellijLocalManager:
|
|
25
25
|
"""Manages multiple local zellij sessions and monitors their tabs and processes."""
|
|
26
26
|
|
|
27
|
-
def __init__(self, session_layouts: list[LayoutConfig],
|
|
28
|
-
""
|
|
29
|
-
Initialize the local zellij manager.
|
|
30
|
-
|
|
31
|
-
Args:
|
|
32
|
-
session_layouts: Dict mapping session names to their layout configs
|
|
33
|
-
Format: {session_name: LayoutConfig, ...}
|
|
34
|
-
session_name_prefix: Prefix for session names
|
|
35
|
-
"""
|
|
36
|
-
self.session_name_prefix = session_name_prefix
|
|
27
|
+
def __init__(self, session_layouts: list[LayoutConfig], ):
|
|
28
|
+
self.session_name_prefix = "LocalJobMgr"
|
|
37
29
|
self.session_layouts = session_layouts # Store the original config
|
|
38
30
|
self.managers: List[ZellijLayoutGenerator] = []
|
|
39
31
|
|
|
@@ -368,16 +360,8 @@ class ZellijLocalManager:
|
|
|
368
360
|
with open(config_file, "r", encoding="utf-8") as f:
|
|
369
361
|
session_layouts = json.load(f)
|
|
370
362
|
|
|
371
|
-
# Load metadata
|
|
372
|
-
metadata_file = session_dir / "metadata.json"
|
|
373
|
-
session_name_prefix = "LocalJobMgr" # default fallback
|
|
374
|
-
if metadata_file.exists():
|
|
375
|
-
with open(metadata_file, "r", encoding="utf-8") as f:
|
|
376
|
-
metadata = json.load(f)
|
|
377
|
-
session_name_prefix = metadata.get("session_name_prefix", "LocalJobMgr")
|
|
378
|
-
|
|
379
363
|
# Create new instance
|
|
380
|
-
instance = cls(session_layouts=session_layouts
|
|
364
|
+
instance = cls(session_layouts=session_layouts)
|
|
381
365
|
|
|
382
366
|
# Load saved manager states
|
|
383
367
|
managers_dir = session_dir / "managers"
|
|
@@ -498,7 +482,7 @@ if __name__ == "__main__":
|
|
|
498
482
|
]
|
|
499
483
|
try:
|
|
500
484
|
# Create the local manager
|
|
501
|
-
manager = ZellijLocalManager(sample_sessions,
|
|
485
|
+
manager = ZellijLocalManager(sample_sessions,)
|
|
502
486
|
print(f"✅ Local manager created with {len(manager.managers)} sessions")
|
|
503
487
|
|
|
504
488
|
# Show session names
|
machineconfig-2.95/src/machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-313.pyc
ADDED
|
Binary file
|
machineconfig-2.95/src/machineconfig/scripts/python/__pycache__/repos_helper_update.cpython-313.pyc
ADDED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
from typing import Optional
|
|
3
1
|
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from machineconfig.utils.ve import get_repo_root
|
|
4
4
|
|
|
5
5
|
installations = """
|
|
6
6
|
uv add --upgrade-package pylint pyright mypy pyrefly ty --dev # linters and type checkers
|
|
@@ -8,18 +8,6 @@ uv add --upgrade-package pytest --dev
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
def get_repo_root(path: Path) -> Optional[Path]:
|
|
12
|
-
from git import Repo, InvalidGitRepositoryError
|
|
13
|
-
|
|
14
|
-
try:
|
|
15
|
-
repo = Repo(path, search_parent_directories=True)
|
|
16
|
-
root = repo.working_tree_dir
|
|
17
|
-
if root is not None:
|
|
18
|
-
return Path(root)
|
|
19
|
-
except InvalidGitRepositoryError:
|
|
20
|
-
pass
|
|
21
|
-
return None
|
|
22
|
-
|
|
23
11
|
|
|
24
12
|
def add_ai_configs(repo_root: Path) -> None:
|
|
25
13
|
import machineconfig as mc
|
{machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/devops_update_repos.py
RENAMED
|
@@ -73,8 +73,6 @@ def _display_summary(results: list[RepositoryUpdateResult]) -> None:
|
|
|
73
73
|
changes = []
|
|
74
74
|
if result["pyproject_changed"]:
|
|
75
75
|
changes.append("pyproject.toml")
|
|
76
|
-
if result["uv_lock_changed"]:
|
|
77
|
-
changes.append("uv.lock")
|
|
78
76
|
print(f" 📋 Dependencies changed: {', '.join(changes)}")
|
|
79
77
|
|
|
80
78
|
if result["uv_sync_ran"]:
|
|
@@ -156,7 +154,6 @@ def main(verbose: bool = True, allow_password_prompt: bool = False) -> None:
|
|
|
156
154
|
"commit_after": "",
|
|
157
155
|
"commits_changed": False,
|
|
158
156
|
"pyproject_changed": False,
|
|
159
|
-
"uv_lock_changed": False,
|
|
160
157
|
"dependencies_changed": False,
|
|
161
158
|
"uv_sync_ran": False,
|
|
162
159
|
"uv_sync_success": False,
|
|
@@ -171,7 +168,7 @@ def main(verbose: bool = True, allow_password_prompt: bool = False) -> None:
|
|
|
171
168
|
Exception: {ex}
|
|
172
169
|
{"-" * 50}""")
|
|
173
170
|
|
|
174
|
-
# Run uv sync for repositories where pyproject.toml
|
|
171
|
+
# Run uv sync for repositories where pyproject.toml changed but sync wasn't run yet
|
|
175
172
|
for repo_path in repos_with_changes:
|
|
176
173
|
run_uv_sync(repo_path)
|
|
177
174
|
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"""Utility to launch multiple AI agent prompts in a Zellij session.
|
|
2
|
+
|
|
3
|
+
Improved design notes:
|
|
4
|
+
* Clear separation of: input collection, prompt preparation, agent launch.
|
|
5
|
+
* Configurable max agent cap (default 15) with interactive confirmation if exceeded.
|
|
6
|
+
* Added type aliases + docstrings for maintainability.
|
|
7
|
+
* Preserves original core behavior & command generation for each agent type.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from typing import cast, get_args, Iterable, TypeAlias, Literal
|
|
12
|
+
import json
|
|
13
|
+
import sys
|
|
14
|
+
|
|
15
|
+
from machineconfig.scripts.python.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout, AGENTS
|
|
16
|
+
from machineconfig.scripts.python.fire_agents_help_search import search_files_by_pattern, search_python_files
|
|
17
|
+
from machineconfig.scripts.python.fire_agents_load_balancer import chunk_prompts, SPLITTING_STRATEGY, DEFAULT_AGENT_CAP
|
|
18
|
+
from machineconfig.cluster.sessions_managers.zellij_local_manager import ZellijLocalManager
|
|
19
|
+
from machineconfig.utils.options import choose_one_option
|
|
20
|
+
from machineconfig.utils.ve import get_repo_root
|
|
21
|
+
|
|
22
|
+
SEARCH_STRATEGIES: TypeAlias = Literal["file_path", "keyword_search", "filename_pattern"]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _write_list_file(target: Path, files: Iterable[Path]) -> None:
|
|
26
|
+
target.parent.mkdir(parents=True, exist_ok=True)
|
|
27
|
+
target.write_text("\n".join(str(f) for f in files), encoding="utf-8")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def get_prompt_material(search_strategy: SEARCH_STRATEGIES, repo_root: Path) -> tuple[Path, str]:
|
|
31
|
+
if search_strategy == "file_path":
|
|
32
|
+
file_path_input = input("Enter path to target file: ").strip()
|
|
33
|
+
if not file_path_input:
|
|
34
|
+
print("No file path provided. Exiting.")
|
|
35
|
+
sys.exit(1)
|
|
36
|
+
target_file_path = Path(file_path_input).expanduser().resolve()
|
|
37
|
+
if not target_file_path.exists() or not target_file_path.is_file():
|
|
38
|
+
print(f"Invalid file path: {target_file_path}")
|
|
39
|
+
sys.exit(1)
|
|
40
|
+
separator = input("Enter separator [\\n]: ").strip() or "\n"
|
|
41
|
+
elif search_strategy == "keyword_search":
|
|
42
|
+
keyword = input("Enter keyword to search recursively for all .py files containing it: ").strip()
|
|
43
|
+
if not keyword:
|
|
44
|
+
print("No keyword supplied. Exiting.")
|
|
45
|
+
sys.exit(1)
|
|
46
|
+
matching_files = search_python_files(repo_root, keyword)
|
|
47
|
+
if not matching_files:
|
|
48
|
+
print(f"💥 No .py files found containing keyword: {keyword}")
|
|
49
|
+
sys.exit(1)
|
|
50
|
+
for idx, mf in enumerate(matching_files):
|
|
51
|
+
print(f"{idx:>3}: {mf}")
|
|
52
|
+
print(f"\nFound {len(matching_files)} .py files containing keyword: {keyword}")
|
|
53
|
+
target_file_path = repo_root / ".ai" / "target_file.txt"
|
|
54
|
+
_write_list_file(target_file_path, matching_files)
|
|
55
|
+
separator = "\n"
|
|
56
|
+
elif search_strategy == "filename_pattern":
|
|
57
|
+
pattern = input("Enter filename pattern (e.g., '*.py', '*test*', 'config.*'): ").strip()
|
|
58
|
+
if not pattern:
|
|
59
|
+
print("No pattern supplied. Exiting.")
|
|
60
|
+
sys.exit(1)
|
|
61
|
+
matching_files = search_files_by_pattern(repo_root, pattern)
|
|
62
|
+
if not matching_files:
|
|
63
|
+
print(f"💥 No files found matching pattern: {pattern}")
|
|
64
|
+
sys.exit(1)
|
|
65
|
+
for idx, mf in enumerate(matching_files):
|
|
66
|
+
print(f"{idx:>3}: {mf}")
|
|
67
|
+
print(f"\nFound {len(matching_files)} files matching pattern: {pattern}")
|
|
68
|
+
target_file_path = repo_root / ".ai" / "target_file.txt"
|
|
69
|
+
_write_list_file(target_file_path, matching_files)
|
|
70
|
+
separator = "\n"
|
|
71
|
+
else:
|
|
72
|
+
raise ValueError(f"Unknown search strategy: {search_strategy}")
|
|
73
|
+
return target_file_path, separator
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def main(): # noqa: C901 - (complexity acceptable for CLI glue)
|
|
77
|
+
repo_root = get_repo_root(Path.cwd())
|
|
78
|
+
if repo_root is None:
|
|
79
|
+
print("💥 Could not determine the repository root. Please run this script from within a git repository.")
|
|
80
|
+
sys.exit(1)
|
|
81
|
+
print(f"Operating @ {repo_root}")
|
|
82
|
+
|
|
83
|
+
search_strategy = cast(SEARCH_STRATEGIES, choose_one_option(header="Choose search strategy:", options=get_args(SEARCH_STRATEGIES)))
|
|
84
|
+
splitting_strategy = cast(SPLITTING_STRATEGY, choose_one_option(header="Choose prompt splitting strategy:", options=get_args(SPLITTING_STRATEGY)))
|
|
85
|
+
agent_selected = cast(AGENTS, choose_one_option(header="Select agent type", options=get_args(AGENTS)))
|
|
86
|
+
print("Enter prefix prompt (end with Ctrl-D / Ctrl-Z):")
|
|
87
|
+
prompt_prefix = "\n".join(sys.stdin.readlines())
|
|
88
|
+
job_name = input("Enter job name [AI_AGENTS]: ") or "AI_Agents"
|
|
89
|
+
keep_material_in_separate_file_input = input("Keep prompt material in separate file? [y/N]: ").strip().lower() == "y"
|
|
90
|
+
|
|
91
|
+
prompt_material_path, separator = get_prompt_material(search_strategy=search_strategy, repo_root=repo_root)
|
|
92
|
+
match splitting_strategy:
|
|
93
|
+
case "agent_cap":
|
|
94
|
+
agent_cap_input = input(f"Enter maximum number of agents/splits [default: {DEFAULT_AGENT_CAP}]: ").strip()
|
|
95
|
+
agent_cap = int(agent_cap_input) if agent_cap_input else DEFAULT_AGENT_CAP
|
|
96
|
+
task_rows = None
|
|
97
|
+
case "task_rows":
|
|
98
|
+
task_rows_input: str = input("Enter number of rows/tasks per agent [13]: ").strip() or "13"
|
|
99
|
+
task_rows = int(task_rows_input)
|
|
100
|
+
agent_cap = None
|
|
101
|
+
prompt_material_re_splitted = chunk_prompts(prompt_material_path, splitting_strategy, agent_cap=agent_cap, task_rows=task_rows, joiner=separator)
|
|
102
|
+
|
|
103
|
+
agents_dir = prep_agent_launch(repo_root=repo_root, prompts_material=prompt_material_re_splitted, keep_material_in_separate_file=keep_material_in_separate_file_input, prompt_prefix=prompt_prefix, agent=agent_selected, job_name=job_name)
|
|
104
|
+
layoutfile = get_agents_launch_layout(session_root=agents_dir)
|
|
105
|
+
|
|
106
|
+
regenerate_py_code = f"""
|
|
107
|
+
#!/usr/bin/env uv run --python 3.13 --with machineconfig
|
|
108
|
+
#!/usr/bin/env uv run --project $HOME/code/machineconfig
|
|
109
|
+
|
|
110
|
+
from machineconfig.scripts.python.fire_agents import *
|
|
111
|
+
|
|
112
|
+
repo_root = Path("{repo_root}")
|
|
113
|
+
search_strategy = "{search_strategy}"
|
|
114
|
+
splitting_strategy = "{splitting_strategy}"
|
|
115
|
+
agent_selected = "{agent_selected}"
|
|
116
|
+
prompt_prefix = '''{prompt_prefix}'''
|
|
117
|
+
job_name = "{job_name}"
|
|
118
|
+
keep_material_in_separate_file_input = {keep_material_in_separate_file_input}
|
|
119
|
+
separator = "{separator}"
|
|
120
|
+
prompt_material_path = Path("{prompt_material_path}")
|
|
121
|
+
agent_cap = {agent_cap}
|
|
122
|
+
task_rows = {task_rows}
|
|
123
|
+
|
|
124
|
+
prompt_material_re_splitted = chunk_prompts(prompt_material_path, splitting_strategy, agent_cap=agent_cap, task_rows=task_rows, joiner=separator)
|
|
125
|
+
agents_dir = prep_agent_launch(repo_root=repo_root, prompts_material=prompt_material_re_splitted, keep_material_in_separate_file=keep_material_in_separate_file_input, prompt_prefix=prompt_prefix, agent=agent_selected, job_name=job_name)
|
|
126
|
+
layout = get_agents_launch_layout(session_root=agents_dir)
|
|
127
|
+
|
|
128
|
+
(agents_dir / "aa_agents_relaunch.py").write_text(data=regenerate_py_code, encoding="utf-8")
|
|
129
|
+
(agents_dir / "layout.json").write_text(data=json.dumps(layout, indent=2), encoding="utf-8")
|
|
130
|
+
|
|
131
|
+
if len(layout["layoutTabs"]) > 25:
|
|
132
|
+
print("Too many agents (>25) to launch. Skipping launch.")
|
|
133
|
+
sys.exit(0)
|
|
134
|
+
manager = ZellijLocalManager(session_layouts=[layout])
|
|
135
|
+
manager.start_all_sessions()
|
|
136
|
+
manager.run_monitoring_routine()
|
|
137
|
+
|
|
138
|
+
"""
|
|
139
|
+
(agents_dir / "aa_agents_relaunch.py").write_text(data=regenerate_py_code, encoding="utf-8")
|
|
140
|
+
(agents_dir / "layout.json").write_text(data=json.dumps(layoutfile, indent=2), encoding="utf-8")
|
|
141
|
+
if len(layoutfile["layouts"][0]["layoutTabs"]) > 25:
|
|
142
|
+
print("Too many agents (>25) to launch. Skipping launch.")
|
|
143
|
+
sys.exit(0)
|
|
144
|
+
manager = ZellijLocalManager(session_layouts=layoutfile["layouts"])
|
|
145
|
+
manager.start_all_sessions()
|
|
146
|
+
manager.run_monitoring_routine()
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
if __name__ == "__main__": # pragma: no cover
|
|
150
|
+
main()
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
|
|
2
|
+
from machineconfig.utils.utils2 import randstr
|
|
3
|
+
|
|
4
|
+
import random
|
|
5
|
+
import shlex
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Literal, TypeAlias
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
AGENTS: TypeAlias = Literal[
|
|
11
|
+
"cursor-agent", "gemini", "crush", "q", "onlyPrepPromptFiles"
|
|
12
|
+
# warp terminal
|
|
13
|
+
]
|
|
14
|
+
AGENT_NAME_FORMATTER = "agent_{idx}_cmd.sh" # e.g., agent_0_cmd.sh
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_gemini_api_keys() -> list[str]:
|
|
18
|
+
from machineconfig.utils.utils2 import read_ini
|
|
19
|
+
config = read_ini(Path.home().joinpath("dotfiles/creds/llm/gemini/api_keys.ini"))
|
|
20
|
+
res: list[str] = []
|
|
21
|
+
for a_section_name in list(config.sections()):
|
|
22
|
+
a_section = config[a_section_name]
|
|
23
|
+
if "api_key" in a_section:
|
|
24
|
+
api_key = a_section["api_key"].strip()
|
|
25
|
+
if api_key:
|
|
26
|
+
res.append(api_key)
|
|
27
|
+
print(f"Found {len(res)} Gemini API keys configured.")
|
|
28
|
+
return res
|
|
29
|
+
|
|
30
|
+
def prep_agent_launch(repo_root: Path, prompts_material: list[str], prompt_prefix: str, keep_material_in_separate_file: bool, agent: AGENTS, *, job_name: str) -> Path:
|
|
31
|
+
session_root = repo_root / ".ai" / f"tmp_prompts/{job_name}_{randstr()}"
|
|
32
|
+
session_root.mkdir(parents=True, exist_ok=True)
|
|
33
|
+
prompt_folder = session_root / "prompts"
|
|
34
|
+
prompt_folder.mkdir(parents=True, exist_ok=True)
|
|
35
|
+
|
|
36
|
+
all_materials_scripts: list[Path] = []
|
|
37
|
+
for idx, a_prompt_material in enumerate(prompts_material):
|
|
38
|
+
prompt_root = prompt_folder / f"agent_{idx}"
|
|
39
|
+
prompt_root.mkdir(parents=True, exist_ok=True)
|
|
40
|
+
prompt_path = prompt_root / f"agent_{idx}_prompt.txt"
|
|
41
|
+
if keep_material_in_separate_file:
|
|
42
|
+
prompt_material_path = prompt_root / f"agent_{idx}_material.txt"
|
|
43
|
+
prompt_material_path.write_text(a_prompt_material, encoding="utf-8")
|
|
44
|
+
prompt_path.write_text(prompt_prefix + f"""\nPlease only look @ {prompt_material_path}. You don't need to do any other work beside the content of this material file.""", encoding="utf-8")
|
|
45
|
+
all_materials_scripts.append(prompt_material_path)
|
|
46
|
+
else:
|
|
47
|
+
prompt_material_path = prompt_path
|
|
48
|
+
prompt_path.write_text(prompt_prefix + """\nPlease only look @ the following:\n""" + a_prompt_material, encoding="utf-8")
|
|
49
|
+
|
|
50
|
+
agent_cmd_launch_path = prompt_root / AGENT_NAME_FORMATTER.format(idx=idx) # e.g., agent_0_cmd.sh
|
|
51
|
+
random_sleep_time = random.uniform(0, 5)
|
|
52
|
+
cmd_prefix = f"""
|
|
53
|
+
#!/usr/bin/env bash
|
|
54
|
+
|
|
55
|
+
# AGENT-{idx}-LAUNCH-SCRIPT
|
|
56
|
+
# Auto-generated by fire_agents.py
|
|
57
|
+
|
|
58
|
+
export FIRE_AGENTS_AGENT_NAME="{agent}"
|
|
59
|
+
export FIRE_AGENTS_JOB_NAME="{job_name}"
|
|
60
|
+
export FIRE_AGENTS_PROMPT_FILE="{prompt_path}"
|
|
61
|
+
export FIRE_AGENTS_MATERIAL_FILE="{prompt_material_path}"
|
|
62
|
+
export FIRE_AGENTS_AGENT_LAUNCHER="{agent_cmd_launch_path}"
|
|
63
|
+
|
|
64
|
+
echo "Sleeping for {random_sleep_time:.2f} seconds to stagger agent startups..."
|
|
65
|
+
sleep {random_sleep_time:.2f}
|
|
66
|
+
echo "Launching agent {agent} with prompt from {prompt_path}"
|
|
67
|
+
echo "Launching agent {agent} with command from {agent_cmd_launch_path}"
|
|
68
|
+
echo "--------START OF AGENT OUTPUT--------"
|
|
69
|
+
sleep 0.1
|
|
70
|
+
|
|
71
|
+
"""
|
|
72
|
+
match agent:
|
|
73
|
+
case "gemini":
|
|
74
|
+
model = "gemini-2.5-pro"
|
|
75
|
+
# model = "gemini-2.5-flash-lite"
|
|
76
|
+
# model = None # auto-select
|
|
77
|
+
if model is None:
|
|
78
|
+
model_arg = ""
|
|
79
|
+
else:
|
|
80
|
+
model_arg = f"--model {shlex.quote(model)}"
|
|
81
|
+
# Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
|
|
82
|
+
safe_path = shlex.quote(str(prompt_path))
|
|
83
|
+
api_keys = get_gemini_api_keys()
|
|
84
|
+
api_key = api_keys[idx % len(api_keys)] if api_keys else ""
|
|
85
|
+
# Export the environment variable so it's available to subshells
|
|
86
|
+
cmd = f"""
|
|
87
|
+
export GEMINI_API_KEY={shlex.quote(api_key)}
|
|
88
|
+
echo "Using Gemini API key $GEMINI_API_KEY"
|
|
89
|
+
bash -lc 'cat {safe_path} | gemini {model_arg} --yolo --prompt'
|
|
90
|
+
"""
|
|
91
|
+
case "cursor-agent":
|
|
92
|
+
# As originally implemented
|
|
93
|
+
cmd = f"""
|
|
94
|
+
|
|
95
|
+
cursor-agent --print --output-format text < {prompt_path}
|
|
96
|
+
|
|
97
|
+
"""
|
|
98
|
+
case "crush":
|
|
99
|
+
cmd = f"""
|
|
100
|
+
crush run {prompt_path}
|
|
101
|
+
"""
|
|
102
|
+
case "q":
|
|
103
|
+
cmd = f"""
|
|
104
|
+
q chat --no-interactive --trust-all-tools {prompt_path}
|
|
105
|
+
"""
|
|
106
|
+
case "onlyPrepPromptFiles":
|
|
107
|
+
cmd = f"""
|
|
108
|
+
echo "Prepared prompt file at {prompt_path}"
|
|
109
|
+
"""
|
|
110
|
+
case _:
|
|
111
|
+
raise ValueError(f"Unsupported agent type: {agent}")
|
|
112
|
+
cmd_postfix = """
|
|
113
|
+
sleep 0.1
|
|
114
|
+
echo "---------END OF AGENT OUTPUT---------"
|
|
115
|
+
"""
|
|
116
|
+
agent_cmd_launch_path.write_text(cmd_prefix + cmd + cmd_postfix, encoding="utf-8")
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
# print(f"Launching a template with #{len(tab_config)} agents")
|
|
120
|
+
if len(all_materials_scripts) > 0:
|
|
121
|
+
all_materials_list_path = session_root / "all_materials_redistributed.txt"
|
|
122
|
+
all_materials_list_path.write_text("\n".join(str(p) for p in all_materials_scripts), encoding="utf-8")
|
|
123
|
+
print(f"All prompt materials listed @ {all_materials_list_path}")
|
|
124
|
+
return session_root
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def get_agents_launch_layout(session_root: Path):
|
|
128
|
+
from machineconfig.utils.schemas.layouts.layout_types import TabConfig, LayoutConfig, LayoutsFile
|
|
129
|
+
tab_config: list[TabConfig] = []
|
|
130
|
+
prompt_root = session_root / "prompts"
|
|
131
|
+
all_dirs_under_prompts = [d for d in prompt_root.iterdir() if d.is_dir()]
|
|
132
|
+
launch_agents_squentially = ""
|
|
133
|
+
for a_prompt_dir in all_dirs_under_prompts:
|
|
134
|
+
idx = a_prompt_dir.name.split("_")[-1] # e.g., agent_0 -> 0
|
|
135
|
+
agent_cmd_path = a_prompt_dir / AGENT_NAME_FORMATTER.format(idx=idx)
|
|
136
|
+
fire_cmd = f"bash {shlex.quote(str(agent_cmd_path))}"
|
|
137
|
+
tab_config.append(TabConfig(tabName=f"Agent{idx}", startDir=str(session_root.parent.parent.parent), command=fire_cmd))
|
|
138
|
+
launch_agents_squentially += f". {shlex.quote(str(agent_cmd_path))}\n"
|
|
139
|
+
layout = LayoutConfig(layoutName="Agents", layoutTabs=tab_config)
|
|
140
|
+
(session_root / "launch_all_agents_sequentially.sh").write_text(launch_agents_squentially, encoding="utf-8")
|
|
141
|
+
layouts_file: LayoutsFile = LayoutsFile(version="1.0", layouts=[layout])
|
|
142
|
+
return layouts_file
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from typing import Literal, TypeAlias
|
|
4
|
+
from math import ceil
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
SPLITTING_STRATEGY: TypeAlias = Literal[
|
|
9
|
+
"agent_cap", # User decides number of agents, rows/tasks determined automatically
|
|
10
|
+
"task_rows" # User decides number of rows/tasks, number of agents determined automatically
|
|
11
|
+
]
|
|
12
|
+
DEFAULT_AGENT_CAP = 6
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def chunk_prompts(prompt_material_path: Path, strategy: SPLITTING_STRATEGY, joiner: str, *, agent_cap: int | None, task_rows: int | None) -> list[str]:
|
|
16
|
+
"""Chunk prompts based on splitting strategy.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
prompts: List of prompts to chunk
|
|
20
|
+
strategy: Either 'agent_cap' or 'task_rows'
|
|
21
|
+
agent_cap: Maximum number of agents (used with 'agent_cap' strategy)
|
|
22
|
+
task_rows: Number of rows/tasks per agent (used with 'task_rows' strategy)
|
|
23
|
+
"""
|
|
24
|
+
prompts = [p for p in prompt_material_path.read_text(encoding="utf-8", errors="ignore").split(joiner) if p.strip() != ""] # drop blank entries
|
|
25
|
+
|
|
26
|
+
if strategy == "agent_cap":
|
|
27
|
+
if agent_cap is None:
|
|
28
|
+
raise ValueError("agent_cap must be provided when using 'agent_cap' strategy")
|
|
29
|
+
|
|
30
|
+
if len(prompts) <= agent_cap:
|
|
31
|
+
return prompts
|
|
32
|
+
|
|
33
|
+
print(f"Chunking {len(prompts)} prompts into groups for up to {agent_cap} agents because it exceeds the cap.")
|
|
34
|
+
chunk_size = ceil(len(prompts) / agent_cap)
|
|
35
|
+
grouped: list[str] = []
|
|
36
|
+
for i in range(0, len(prompts), chunk_size):
|
|
37
|
+
grouped.append(joiner.join(prompts[i : i + chunk_size]))
|
|
38
|
+
return grouped
|
|
39
|
+
|
|
40
|
+
elif strategy == "task_rows":
|
|
41
|
+
if task_rows is None:
|
|
42
|
+
raise ValueError("task_rows must be provided when using 'task_rows' strategy")
|
|
43
|
+
if task_rows >= len(prompts):
|
|
44
|
+
return prompts
|
|
45
|
+
print(f"Chunking {len(prompts)} prompts into groups of {task_rows} rows/tasks each.")
|
|
46
|
+
grouped: list[str] = []
|
|
47
|
+
for i in range(0, len(prompts), task_rows):
|
|
48
|
+
grouped.append(joiner.join(prompts[i : i + task_rows]))
|
|
49
|
+
return grouped
|
|
50
|
+
|
|
51
|
+
else:
|
|
52
|
+
raise ValueError(f"Unknown splitting strategy: {strategy}")
|
|
@@ -21,6 +21,7 @@ from machineconfig.utils.utils2 import randstr, read_toml
|
|
|
21
21
|
from machineconfig.scripts.python.fire_jobs_args_helper import get_args, FireJobArgs, extract_kwargs
|
|
22
22
|
import platform
|
|
23
23
|
from typing import Optional
|
|
24
|
+
from pathlib import Path
|
|
24
25
|
# import os
|
|
25
26
|
|
|
26
27
|
|
|
@@ -42,7 +43,7 @@ def route(args: FireJobArgs) -> None:
|
|
|
42
43
|
choice_file = PathExtended(choice_file)
|
|
43
44
|
else:
|
|
44
45
|
choice_file = path_obj
|
|
45
|
-
repo_root = get_repo_root(
|
|
46
|
+
repo_root = get_repo_root(Path(choice_file))
|
|
46
47
|
print(f"💾 Selected file: {choice_file}.\nRepo root: {repo_root}")
|
|
47
48
|
ve_root_from_file, ipy_profile = get_ve_path_and_ipython_profile(choice_file)
|
|
48
49
|
if ipy_profile is None:
|
{machineconfig-2.9 → machineconfig-2.95}/src/machineconfig/scripts/python/repos_helper_update.py
RENAMED
|
@@ -15,7 +15,6 @@ class RepositoryUpdateResult(TypedDict):
|
|
|
15
15
|
commit_after: str
|
|
16
16
|
commits_changed: bool
|
|
17
17
|
pyproject_changed: bool
|
|
18
|
-
uv_lock_changed: bool
|
|
19
18
|
dependencies_changed: bool
|
|
20
19
|
uv_sync_ran: bool
|
|
21
20
|
uv_sync_success: bool
|
|
@@ -80,7 +79,6 @@ def update_repository(repo: git.Repo, auto_sync: bool, allow_password_prompt: bo
|
|
|
80
79
|
"commit_after": "",
|
|
81
80
|
"commits_changed": False,
|
|
82
81
|
"pyproject_changed": False,
|
|
83
|
-
"uv_lock_changed": False,
|
|
84
82
|
"dependencies_changed": False,
|
|
85
83
|
"uv_sync_ran": False,
|
|
86
84
|
"uv_sync_success": False,
|
|
@@ -104,33 +102,18 @@ def update_repository(repo: git.Repo, auto_sync: bool, allow_password_prompt: bo
|
|
|
104
102
|
result["uncommitted_files"] = changed_files
|
|
105
103
|
print(f"⚠️ Repository has uncommitted changes: {', '.join(changed_files)}")
|
|
106
104
|
|
|
107
|
-
#
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
# Reset uv.lock file
|
|
112
|
-
subprocess.run(["git", "checkout", "HEAD", "--", "uv.lock"], cwd=repo_path, check=True)
|
|
113
|
-
print("✅ uv.lock has been reset")
|
|
114
|
-
except subprocess.CalledProcessError as e:
|
|
115
|
-
result["status"] = "error"
|
|
116
|
-
result["error_message"] = f"Failed to reset uv.lock: {e}"
|
|
117
|
-
print(f"❌ Failed to reset uv.lock: {e}")
|
|
118
|
-
return result
|
|
119
|
-
else:
|
|
120
|
-
# Multiple files or files other than uv.lock have changes
|
|
121
|
-
result["status"] = "error"
|
|
122
|
-
result["error_message"] = f"Cannot update repository - there are pending changes in: {', '.join(changed_files)}. Please commit or stash your changes first."
|
|
123
|
-
raise RuntimeError(result["error_message"])
|
|
105
|
+
# Repository has uncommitted changes - cannot update
|
|
106
|
+
result["status"] = "error"
|
|
107
|
+
result["error_message"] = f"Cannot update repository - there are pending changes in: {', '.join(changed_files)}. Please commit or stash your changes first."
|
|
108
|
+
raise RuntimeError(result["error_message"])
|
|
124
109
|
else:
|
|
125
110
|
print("✅ Repository is clean")
|
|
126
111
|
|
|
127
|
-
# Check if this repo has pyproject.toml
|
|
112
|
+
# Check if this repo has pyproject.toml
|
|
128
113
|
pyproject_path = repo_path / "pyproject.toml"
|
|
129
|
-
uv_lock_path = repo_path / "uv.lock"
|
|
130
114
|
|
|
131
115
|
# Get hashes before pull
|
|
132
116
|
pyproject_hash_before = get_file_hash(pyproject_path)
|
|
133
|
-
uv_lock_hash_before = get_file_hash(uv_lock_path)
|
|
134
117
|
|
|
135
118
|
# Get current commit hash before pull
|
|
136
119
|
result["commit_before"] = repo.head.commit.hexsha
|
|
@@ -239,20 +222,14 @@ def update_repository(repo: git.Repo, auto_sync: bool, allow_password_prompt: bo
|
|
|
239
222
|
print(f"⚠️ Failed to pull from {remote.name}: {e}")
|
|
240
223
|
continue
|
|
241
224
|
|
|
242
|
-
# Check if pyproject.toml
|
|
225
|
+
# Check if pyproject.toml changed after pull
|
|
243
226
|
pyproject_hash_after = get_file_hash(pyproject_path)
|
|
244
|
-
uv_lock_hash_after = get_file_hash(uv_lock_path)
|
|
245
227
|
|
|
246
228
|
if pyproject_hash_before != pyproject_hash_after:
|
|
247
229
|
print("📋 pyproject.toml has changed")
|
|
248
230
|
result["pyproject_changed"] = True
|
|
249
231
|
result["dependencies_changed"] = True
|
|
250
232
|
|
|
251
|
-
if uv_lock_hash_before != uv_lock_hash_after:
|
|
252
|
-
print("🔒 uv.lock has changed")
|
|
253
|
-
result["uv_lock_changed"] = True
|
|
254
|
-
result["dependencies_changed"] = True
|
|
255
|
-
|
|
256
233
|
# Special handling for machineconfig repository
|
|
257
234
|
if result["is_machineconfig_repo"]:
|
|
258
235
|
print("🛠 Special handling for machineconfig repository...")
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""TypedDict definitions for fire_agents.py inputs.
|
|
2
|
+
|
|
3
|
+
This module defines the structured input types for the fire_agents main function,
|
|
4
|
+
capturing all user inputs collected during interactive execution.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import TypedDict, Literal, NotRequired
|
|
9
|
+
from machineconfig.scripts.python.fire_agents_load_balancer import SPLITTING_STRATEGY
|
|
10
|
+
from machineconfig.scripts.python.fire_agents_help_launch import AGENTS
|
|
11
|
+
|
|
12
|
+
SEARCH_STRATEGIES = Literal["file_path", "keyword_search", "filename_pattern"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FilePathSearchInput(TypedDict):
|
|
16
|
+
"""Input for file_path search strategy."""
|
|
17
|
+
file_path: str
|
|
18
|
+
separator: str # Default: "\n"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class KeywordSearchInput(TypedDict):
|
|
22
|
+
"""Input for keyword_search strategy."""
|
|
23
|
+
keyword: str
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class FilenamePatternSearchInput(TypedDict):
|
|
27
|
+
"""Input for filename_pattern search strategy."""
|
|
28
|
+
pattern: str # e.g., '*.py', '*test*', 'config.*'
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class AgentCapSplittingInput(TypedDict):
|
|
32
|
+
"""Input for agent_cap splitting strategy."""
|
|
33
|
+
agent_cap: int # Default: 6
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class TaskRowsSplittingInput(TypedDict):
|
|
37
|
+
"""Input for task_rows splitting strategy."""
|
|
38
|
+
task_rows: int # Default: 13
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class FireAgentsMainInput(TypedDict):
|
|
42
|
+
"""Complete input structure for fire_agents main function."""
|
|
43
|
+
|
|
44
|
+
# Core configuration
|
|
45
|
+
repo_root: Path
|
|
46
|
+
search_strategy: SEARCH_STRATEGIES
|
|
47
|
+
splitting_strategy: SPLITTING_STRATEGY
|
|
48
|
+
agent_selected: AGENTS
|
|
49
|
+
prompt_prefix: str
|
|
50
|
+
job_name: str # Default: "AI_Agents"
|
|
51
|
+
keep_material_in_separate_file: bool # Default: False
|
|
52
|
+
max_agents: int # Default: 25
|
|
53
|
+
|
|
54
|
+
# Search strategy specific inputs (only one will be present based on search_strategy)
|
|
55
|
+
file_path_input: NotRequired[FilePathSearchInput]
|
|
56
|
+
keyword_search_input: NotRequired[KeywordSearchInput]
|
|
57
|
+
filename_pattern_input: NotRequired[FilenamePatternSearchInput]
|
|
58
|
+
|
|
59
|
+
# Splitting strategy specific inputs (only one will be present based on splitting_strategy)
|
|
60
|
+
agent_cap_input: NotRequired[AgentCapSplittingInput]
|
|
61
|
+
task_rows_input: NotRequired[TaskRowsSplittingInput]
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class FireAgentsRuntimeData(TypedDict):
|
|
65
|
+
"""Runtime data derived from inputs during execution."""
|
|
66
|
+
|
|
67
|
+
prompt_material: str
|
|
68
|
+
separator: str
|
|
69
|
+
prompt_material_re_splitted: list[str]
|
|
70
|
+
random_name: str # 3-character random string for session naming
|