machineconfig 4.2__tar.gz → 4.4__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.

Files changed (421) hide show
  1. {machineconfig-4.2/src/machineconfig.egg-info → machineconfig-4.4}/PKG-INFO +2 -1
  2. {machineconfig-4.2 → machineconfig-4.4}/pyproject.toml +3 -2
  3. machineconfig-4.4/src/machineconfig/scripts/python/fire_agents.py +160 -0
  4. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/fire_agents_help_launch.py +2 -16
  5. machineconfig-4.4/src/machineconfig/scripts/python/fire_agents_load_balancer.py +22 -0
  6. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +4 -16
  7. {machineconfig-4.2 → machineconfig-4.4/src/machineconfig.egg-info}/PKG-INFO +2 -1
  8. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig.egg-info/entry_points.txt +1 -1
  9. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig.egg-info/requires.txt +1 -0
  10. machineconfig-4.2/src/machineconfig/scripts/python/fire_agents.py +0 -153
  11. machineconfig-4.2/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
  12. {machineconfig-4.2 → machineconfig-4.4}/MANIFEST.in +0 -0
  13. {machineconfig-4.2 → machineconfig-4.4}/README.md +0 -0
  14. {machineconfig-4.2 → machineconfig-4.4}/setup.cfg +0 -0
  15. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/__init__.py +0 -0
  16. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/__init__.py +0 -0
  17. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  18. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  19. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/distribute.py +0 -0
  20. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  21. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/job_params.py +0 -0
  22. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  23. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  24. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  25. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  26. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  27. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  28. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  29. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  30. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  31. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  32. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  33. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  34. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  35. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  36. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  37. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  38. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  39. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  40. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  41. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  42. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  43. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  44. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  45. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  46. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  47. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  48. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  49. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  50. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/templates/__init__.py +0 -0
  51. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  52. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/templates/run_cloud.py +0 -0
  53. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/templates/run_cluster.py +0 -0
  54. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/templates/run_remote.py +0 -0
  55. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/cluster/templates/utils.py +0 -0
  56. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/__init__.py +0 -0
  57. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/__init__.py +0 -0
  58. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  59. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  60. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  61. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  62. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  63. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  64. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  65. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  66. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  67. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  68. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  69. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  70. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  71. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  72. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  73. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  74. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  75. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  76. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  77. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  78. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  79. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  80. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  81. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  82. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  83. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  84. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  85. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  86. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  87. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/packages_custom_dev.json +0 -0
  88. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/packages_custom_essential.json +0 -0
  89. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/packages_github_dev.json +0 -0
  90. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/packages_github_essential.json +0 -0
  91. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  92. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  93. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  94. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  95. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/__init__.py +0 -0
  96. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/check_installations.py +0 -0
  97. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
  98. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
  99. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  100. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/tasks.py +0 -0
  101. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  102. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  103. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  104. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  105. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  106. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  107. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  108. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  109. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  110. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/logger.py +0 -0
  111. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/__init__.py +0 -0
  112. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/create.py +0 -0
  113. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  114. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  115. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  116. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  117. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  118. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/profile/shell.py +0 -0
  119. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/__init__.py +0 -0
  120. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/cloud/init.sh +0 -0
  121. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  122. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  123. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  124. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  125. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  126. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/croshell +0 -0
  127. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/devops +0 -0
  128. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fire +0 -0
  129. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fire_agents +0 -0
  130. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/ftpx +0 -0
  131. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fzf2g +0 -0
  132. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fzfag +0 -0
  133. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fzffg +0 -0
  134. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fzfg +0 -0
  135. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/fzfrga +0 -0
  136. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/gh_models +0 -0
  137. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/initai +0 -0
  138. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/kill_process +0 -0
  139. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/mount_drive +0 -0
  140. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  141. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  142. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/mount_smb +0 -0
  143. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/programs +0 -0
  144. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/repos +0 -0
  145. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/scheduler +0 -0
  146. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  147. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/share_nfs +0 -0
  148. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/share_smb +0 -0
  149. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/skrg +0 -0
  150. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/start_docker +0 -0
  151. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/start_slidev +0 -0
  152. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/start_terminals +0 -0
  153. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/switch_ip +0 -0
  154. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  155. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  156. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/linux/z_ls +0 -0
  157. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/__init__.py +0 -0
  158. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  159. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  160. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  161. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  162. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  163. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  164. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  165. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  166. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  167. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  168. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  169. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  170. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  171. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  172. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  173. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  174. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  175. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  176. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  177. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  178. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  179. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  180. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  181. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  182. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  183. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  184. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  185. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  186. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  187. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  188. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  189. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  190. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  191. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/croshell.py +0 -0
  192. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/devops.py +0 -0
  193. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  194. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  195. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  196. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/devops_devapps_install.py +0 -0
  197. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  198. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/dotfile.py +0 -0
  199. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  200. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  201. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  202. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -0
  203. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  204. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/ftpx.py +0 -0
  205. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  206. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/gh_models.py +0 -0
  207. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  208. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  209. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  210. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  211. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  212. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  213. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/interactive.py +0 -0
  214. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  215. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  216. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  217. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  218. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  219. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/repos.py +0 -0
  220. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  221. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  222. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  223. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  224. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/scheduler.py +0 -0
  225. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/share_terminal.py +0 -0
  226. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/snapshot.py +0 -0
  227. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  228. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  229. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/t4.py +0 -0
  230. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/viewer.py +0 -0
  231. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  232. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  233. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  234. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  235. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  236. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  237. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  238. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  239. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  240. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  241. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  242. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  243. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  244. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  245. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  246. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  247. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  248. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  249. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  250. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  251. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  252. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  253. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  254. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  255. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  256. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  257. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  258. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/repos.ps1 +0 -0
  259. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  260. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  261. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  262. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  263. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  264. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  265. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  266. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  267. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  268. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  269. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  270. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/__init__.py +0 -0
  271. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/broot/br.sh +0 -0
  272. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  273. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/broot/conf.toml +0 -0
  274. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/glow/glow.yml +0 -0
  275. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  276. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/helix/config.toml +0 -0
  277. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/helix/languages.toml +0 -0
  278. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/keras/keras.json +0 -0
  279. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  280. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  281. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  282. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  283. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  284. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  285. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  286. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  287. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  288. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  289. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/colors +0 -0
  290. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  291. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  292. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  293. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  294. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  295. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  296. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/icons +0 -0
  297. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  298. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  299. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  300. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  301. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  302. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  303. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  304. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  305. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  306. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  307. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  308. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/colors +0 -0
  309. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  310. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/icons +0 -0
  311. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  312. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  313. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  314. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  315. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  316. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  317. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  318. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/linters/.flake8 +0 -0
  319. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  320. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/linters/.pylintrc +0 -0
  321. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  322. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  323. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  324. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  325. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  326. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  327. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/mprocs/windows/other +0 -0
  328. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  329. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  330. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/procs/.procs.toml +0 -0
  331. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  332. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/rofi/config.rasi +0 -0
  333. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  334. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  335. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  336. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  337. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  338. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  339. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  340. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  341. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  342. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  343. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  344. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  345. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  346. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  347. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  348. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  349. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  350. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/streamlit/config.toml +0 -0
  351. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  352. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  353. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  354. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/tere/terecd.sh +0 -0
  355. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  356. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  357. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  358. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  359. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/yazi/theme.toml +0 -0
  360. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  361. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zed/settings.json +0 -0
  362. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  363. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  364. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/config.kdl +0 -0
  365. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  366. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  367. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  368. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  369. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  370. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  371. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/__init__.py +0 -0
  372. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  373. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  374. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  375. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  376. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -0
  377. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  378. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  379. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  380. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/__init__.py +0 -0
  381. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  382. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  383. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  384. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  385. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  386. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  387. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  388. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  389. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  390. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/__init__.py +0 -0
  391. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/accessories.py +0 -0
  392. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/ai/__init__.py +0 -0
  393. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  394. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  395. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  396. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/code.py +0 -0
  397. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/installer.py +0 -0
  398. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  399. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  400. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  401. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  402. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/io.py +0 -0
  403. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/links.py +0 -0
  404. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/notifications.py +0 -0
  405. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/options.py +0 -0
  406. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/path_extended.py +0 -0
  407. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/path_helper.py +0 -0
  408. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/procs.py +0 -0
  409. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/scheduler.py +0 -0
  410. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/scheduling.py +0 -0
  411. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  412. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  413. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  414. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/source_of_truth.py +0 -0
  415. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/ssh.py +0 -0
  416. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/terminal.py +0 -0
  417. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/upgrade_packages.py +0 -0
  418. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig/utils/ve.py +0 -0
  419. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig.egg-info/SOURCES.txt +0 -0
  420. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  421. {machineconfig-4.2 → machineconfig-4.4}/src/machineconfig.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 4.2
3
+ Version: 4.4
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -26,6 +26,7 @@ Requires-Dist: rclone-python>=0.1.23
26
26
  Requires-Dist: pyjson5>=1.6.9
27
27
  Requires-Dist: typer-slim>=0.19.2
28
28
  Requires-Dist: questionary>=2.1.1
29
+ Requires-Dist: typer>=0.19.2
29
30
  Provides-Extra: windows
30
31
  Requires-Dist: pywin32; extra == "windows"
31
32
  Provides-Extra: docs
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "4.02"
9
+ version = "4.04"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -35,6 +35,7 @@ dependencies = [
35
35
  "pyjson5>=1.6.9",
36
36
  "typer-slim>=0.19.2",
37
37
  "questionary>=2.1.1",
38
+ "typer>=0.19.2",
38
39
  ]
39
40
 
40
41
  [project.optional-dependencies]
@@ -53,7 +54,7 @@ docs = [
53
54
  [project.scripts]
54
55
  devops = "machineconfig.scripts.python.devops:app"
55
56
  fire = "machineconfig.scripts.python.fire_jobs:main_from_parser"
56
- fire_agents = "machineconfig.scripts.python.fire_agents:main"
57
+ fire_agents = "machineconfig.scripts.python.fire_agents:app"
57
58
  initai = "machineconfig.scripts.python.ai.initai:main"
58
59
 
59
60
  choose_wezterm_theme = "machineconfig.scripts.python.choose_wezterm_theme:main"
@@ -0,0 +1,160 @@
1
+ """Utilitfrom pathlib import Path
2
+ from typing import cast, get_args, Iterable, Optional, TypeAlias, Literal
3
+ import json
4
+ import typer
5
+
6
+ from machineconfig.scripts.python.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout, AGENTS
7
+ from machineconfig.scripts.python.fire_agents_help_search import search_files_by_pattern, search_python_files
8
+ from machineconfig.scripts.python.fire_agents_load_balancer import chunk_prompts
9
+ from machineconfig.utils.accessories import get_repo_rootch multiple AI agent prompts in a Zellij session.
10
+
11
+ Improved design notes:
12
+ * Clear separation of: input collection, prompt preparation, agent launch.
13
+ * Configurable max agent cap (default 15) with interactive confirmation if exceeded.
14
+ * Added type aliases + docstrings for maintainability.
15
+ * Preserves original core behavior & command generation for each agent type.
16
+ """
17
+
18
+ from pathlib import Path
19
+ from typing import cast, Iterable, Optional, TypeAlias, Literal, get_args
20
+ import json
21
+ import time
22
+ import typer
23
+
24
+ from machineconfig.scripts.python.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout, AGENTS
25
+ from machineconfig.scripts.python.fire_agents_help_search import search_files_by_pattern, search_python_files
26
+ from machineconfig.scripts.python.fire_agents_load_balancer import chunk_prompts
27
+ from machineconfig.utils.schemas.layouts.layout_types import LayoutsFile
28
+ from machineconfig.utils.accessories import get_repo_root
29
+
30
+ SEARCH_STRATEGIES: TypeAlias = Literal["file_path", "keyword_search", "filename_pattern"]
31
+
32
+ app = typer.Typer()
33
+
34
+
35
+ def _write_list_file(target: Path, files: Iterable[Path]) -> None:
36
+ target.parent.mkdir(parents=True, exist_ok=True)
37
+ target.write_text("\n".join(str(f) for f in files), encoding="utf-8")
38
+
39
+
40
+ @app.command()
41
+ def create(
42
+ context_path: Optional[Path] = typer.Option(None, help="Path to the context file"),
43
+ keyword_search: Optional[str] = typer.Option(None, help="Keyword to search in Python files"),
44
+ filename_pattern: Optional[str] = typer.Option(None, help="Filename pattern to match"),
45
+ separator: str = typer.Option("\n", help="Separator for context"),
46
+ tasks_per_prompt: int = typer.Option(13, help="Number of tasks per prompt"),
47
+ agent: AGENTS = typer.Option(..., help=f"Agent type. One of {', '.join(get_args(AGENTS))}"),
48
+ prompt: Optional[str] = typer.Option(None, help="Prompt prefix as string"),
49
+ prompt_path: Optional[Path] = typer.Option(None, help="Path to prompt file"),
50
+ job_name: str = typer.Option("AI_Agents", help="Job name"),
51
+ keep_separate: bool = typer.Option(True, help="Keep prompt material in separate file to the context."),
52
+ output_path: Optional[Path] = typer.Option(None, help="Path to write the layout.json file"),
53
+ ):
54
+ # validate mutual exclusive
55
+ context_options = [context_path, keyword_search, filename_pattern]
56
+ provided_context = [opt for opt in context_options if opt is not None]
57
+ if len(provided_context) != 1:
58
+ raise typer.BadParameter("Exactly one of --context-path, --keyword-search, --filename-pattern must be provided")
59
+
60
+ prompt_options = [prompt, prompt_path]
61
+ provided_prompt = [opt for opt in prompt_options if opt is not None]
62
+ if len(provided_prompt) != 1:
63
+ raise typer.BadParameter("Exactly one of --prompt or --prompt-path must be provided")
64
+
65
+ repo_root = get_repo_root(Path.cwd())
66
+ if repo_root is None:
67
+ typer.echo("💥 Could not determine the repository root. Please run this script from within a git repository.")
68
+ raise typer.Exit(1)
69
+ typer.echo(f"Operating @ {repo_root}")
70
+
71
+ search_strategy = ""
72
+ prompt_material_path = Path("")
73
+
74
+ if context_path is not None:
75
+ search_strategy = "file_path"
76
+ target_file_path = context_path.expanduser().resolve()
77
+ if not target_file_path.exists() or not target_file_path.is_file():
78
+ raise typer.BadParameter(f"Invalid file path: {target_file_path}")
79
+ prompt_material_path = target_file_path
80
+ elif keyword_search is not None:
81
+ search_strategy = "keyword_search"
82
+ matching_files = search_python_files(repo_root, keyword_search)
83
+ if not matching_files:
84
+ typer.echo(f"💥 No .py files found containing keyword: {keyword_search}")
85
+ raise typer.Exit(1)
86
+ target_file_path = repo_root / ".ai" / "target_file.txt"
87
+ _write_list_file(target_file_path, matching_files)
88
+ prompt_material_path = target_file_path
89
+ elif filename_pattern is not None:
90
+ search_strategy = "filename_pattern"
91
+ matching_files = search_files_by_pattern(repo_root, filename_pattern)
92
+ if not matching_files:
93
+ typer.echo(f"💥 No files found matching pattern: {filename_pattern}")
94
+ raise typer.Exit(1)
95
+ target_file_path = repo_root / ".ai" / "target_file.txt"
96
+ _write_list_file(target_file_path, matching_files)
97
+ prompt_material_path = target_file_path
98
+
99
+ if prompt_path is not None:
100
+ prompt_prefix = prompt_path.read_text(encoding="utf-8")
101
+ else:
102
+ prompt_prefix = cast(str, prompt)
103
+ agent_selected = agent
104
+ keep_material_in_separate_file_input = keep_separate
105
+ prompt_material_re_splitted = chunk_prompts(prompt_material_path, tasks_per_prompt=tasks_per_prompt, joiner=separator)
106
+ 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)
107
+ layoutfile = get_agents_launch_layout(session_root=agents_dir)
108
+ regenerate_py_code = f"""
109
+ #!/usr/bin/env uv run --python 3.13 --with machineconfig
110
+ #!/usr/bin/env uv run --no-dev --project $HOME/code/machineconfig
111
+ fire_agents create --context-path "{prompt_material_path}" \\
112
+ --{search_strategy} "{context_path or keyword_search or filename_pattern}" \\
113
+ --prompt-path "{prompt_path or ''}" \\
114
+ --agent "{agent_selected}" \\
115
+ --job-name "{job_name}" \\
116
+ --tasks-per-prompt {tasks_per_prompt} \\
117
+ --separator "{separator}" \\
118
+ {"--keep-separate" if keep_material_in_separate_file_input else ""}
119
+ """
120
+ (agents_dir / "aa_agents_relaunch.py").write_text(data=regenerate_py_code, encoding="utf-8")
121
+ layout_output_path = output_path if output_path is not None else agents_dir / "layout.json"
122
+ layout_output_path.write_text(data=json.dumps(layoutfile, indent=4), encoding="utf-8")
123
+ typer.echo(f"Created agents in {agents_dir}")
124
+
125
+
126
+ @app.command()
127
+ def run(layout_path: Path = typer.Argument(..., help="Path to the layout.json file"),
128
+ max_tabs: int = typer.Option(6, help="Maximum number of tabs to launch"),
129
+ sleep_between_layouts: float = typer.Option(1.0, help="Sleep time in seconds between launching layouts")):
130
+ layoutfile: LayoutsFile = json.loads(layout_path.read_text())
131
+ if len(layoutfile["layouts"][0]["layoutTabs"]) > max_tabs:
132
+ typer.echo(f"Too many tabs (>{max_tabs}) to launch. Skipping launch.")
133
+ raise typer.Exit(0)
134
+ from machineconfig.cluster.sessions_managers.zellij_local_manager import ZellijLocalManager
135
+ for i, a_layouts in enumerate(layoutfile["layouts"]):
136
+ manager = ZellijLocalManager(session_layouts=[a_layouts])
137
+ manager.start_all_sessions(poll_interval=2, poll_seconds=2)
138
+ manager.run_monitoring_routine(wait_ms=2000)
139
+ if i < len(layoutfile["layouts"]) - 1: # Don't sleep after the last layout
140
+ time.sleep(sleep_between_layouts)
141
+
142
+
143
+ @app.command(help="Adjust layout file to limit max tabs per layout, etc.")
144
+ def load_balance(layout_path: Path = typer.Argument(..., help="Path to the layout.json file"),
145
+ max_thresh: int = typer.Option(..., help="Maximum tabs per layout"),
146
+ thresh_type: Literal['number', 'weight'] = typer.Option(..., help="Threshold type"),
147
+ breaking_method: Literal['moreLayouts', 'combineTabs'] = typer.Option(..., help="Breaking method"),
148
+ output_path: Optional[Path] = typer.Option(None, help="Path to write the adjusted layout.json file")):
149
+ layoutfile: LayoutsFile = json.loads(layout_path.read_text())
150
+ layout_configs = layoutfile["layouts"]
151
+ from machineconfig.cluster.sessions_managers.utils.load_balancer import limit_tab_num
152
+ new_layouts = limit_tab_num(layout_configs=layout_configs, max_thresh=max_thresh, threshold_type=thresh_type, breaking_method=breaking_method)
153
+ layoutfile["layouts"] = new_layouts
154
+ target_file = output_path if output_path is not None else layout_path.parent / f'{layout_path.stem}_adjusted_{max_thresh}_{thresh_type}_{breaking_method}.json'
155
+ target_file.write_text(data=json.dumps(layoutfile, indent=4), encoding="utf-8")
156
+ typer.echo(f"Adjusted layout saved to {target_file}")
157
+
158
+
159
+ if __name__ == "__main__": # pragma: no cover
160
+ app()
@@ -7,7 +7,7 @@ from typing import Literal, TypeAlias
7
7
 
8
8
 
9
9
  AGENTS: TypeAlias = Literal[
10
- "cursor-agent", "gemini", "crush", "q", "onlyPrepPromptFiles"
10
+ "cursor-agent", "gemini", "crush", "q"
11
11
  # warp terminal
12
12
  ]
13
13
  AGENT_NAME_FORMATTER = "agent_{idx}_cmd.sh" # e.g., agent_0_cmd.sh
@@ -34,7 +34,6 @@ def prep_agent_launch(repo_root: Path, prompts_material: list[str], prompt_prefi
34
34
  prompt_folder = session_root / "prompts"
35
35
  prompt_folder.mkdir(parents=True, exist_ok=True)
36
36
 
37
- all_materials_scripts: list[Path] = []
38
37
  for idx, a_prompt_material in enumerate(prompts_material):
39
38
  prompt_root = prompt_folder / f"agent_{idx}"
40
39
  prompt_root.mkdir(parents=True, exist_ok=True)
@@ -43,7 +42,6 @@ def prep_agent_launch(repo_root: Path, prompts_material: list[str], prompt_prefi
43
42
  prompt_material_path = prompt_root / f"agent_{idx}_material.txt"
44
43
  prompt_material_path.write_text(a_prompt_material, encoding="utf-8")
45
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")
46
- all_materials_scripts.append(prompt_material_path)
47
45
  else:
48
46
  prompt_material_path = prompt_path
49
47
  prompt_path.write_text(prompt_prefix + """\nPlease only look @ the following:\n""" + a_prompt_material, encoding="utf-8")
@@ -87,7 +85,7 @@ sleep 0.1
87
85
  cmd = f"""
88
86
  export GEMINI_API_KEY={shlex.quote(api_key)}
89
87
  echo "Using Gemini API key $GEMINI_API_KEY"
90
- bash -lc 'cat {safe_path} | gemini {model_arg} --yolo --prompt'
88
+ gemini {model_arg} --yolo --prompt {safe_path}
91
89
  """
92
90
  case "cursor-agent":
93
91
  # As originally implemented
@@ -103,10 +101,6 @@ crush run {prompt_path}
103
101
  case "q":
104
102
  cmd = f"""
105
103
  q chat --no-interactive --trust-all-tools {prompt_path}
106
- """
107
- case "onlyPrepPromptFiles":
108
- cmd = f"""
109
- echo "Prepared prompt file at {prompt_path}"
110
104
  """
111
105
  case _:
112
106
  raise ValueError(f"Unsupported agent type: {agent}")
@@ -116,11 +110,6 @@ echo "---------END OF AGENT OUTPUT---------"
116
110
  """
117
111
  agent_cmd_launch_path.write_text(cmd_prefix + cmd + cmd_postfix, encoding="utf-8")
118
112
 
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
113
  return session_root
125
114
 
126
115
 
@@ -130,14 +119,11 @@ def get_agents_launch_layout(session_root: Path):
130
119
  tab_config: list[TabConfig] = []
131
120
  prompt_root = session_root / "prompts"
132
121
  all_dirs_under_prompts = [d for d in prompt_root.iterdir() if d.is_dir()]
133
- launch_agents_squentially = ""
134
122
  for a_prompt_dir in all_dirs_under_prompts:
135
123
  idx = a_prompt_dir.name.split("_")[-1] # e.g., agent_0 -> 0
136
124
  agent_cmd_path = a_prompt_dir / AGENT_NAME_FORMATTER.format(idx=idx)
137
125
  fire_cmd = f"bash {shlex.quote(str(agent_cmd_path))}"
138
126
  tab_config.append(TabConfig(tabName=f"Agent{idx}", startDir=str(session_root.parent.parent.parent), command=fire_cmd))
139
- launch_agents_squentially += f". {shlex.quote(str(agent_cmd_path))}\n"
140
127
  layout = LayoutConfig(layoutName="Agents", layoutTabs=tab_config)
141
- (session_root / "launch_all_agents_sequentially.sh").write_text(launch_agents_squentially, encoding="utf-8")
142
128
  layouts_file: LayoutsFile = LayoutsFile(version="1.0", layouts=[layout])
143
129
  return layouts_file
@@ -0,0 +1,22 @@
1
+ # from math import ceil
2
+ from pathlib import Path
3
+
4
+
5
+ def chunk_prompts(prompt_material_path: Path, joiner: str, *, tasks_per_prompt: int) -> list[str]:
6
+ """Chunk prompts based on splitting strategy.
7
+
8
+ Args:
9
+ prompts: List of prompts to chunk
10
+ strategy: Either 'agent_cap' or 'task_rows'
11
+ agent_cap: Maximum number of agents (used with 'agent_cap' strategy)
12
+ task_rows: Number of rows/tasks per agent (used with 'task_rows' strategy)
13
+ """
14
+ prompts = [p for p in prompt_material_path.read_text(encoding="utf-8", errors="ignore").split(joiner) if p.strip() != ""] # drop blank entries
15
+ if tasks_per_prompt >= len(prompts):
16
+ print("No need to chunk prompts, as tasks_per_prompt >= total prompts.", f"({tasks_per_prompt} >= {len(prompts)})")
17
+ return prompts
18
+ print(f"Chunking {len(prompts)} prompts into groups of {tasks_per_prompt} rows/tasks each.")
19
+ grouped: list[str] = []
20
+ for i in range(0, len(prompts), tasks_per_prompt):
21
+ grouped.append(joiner.join(prompts[i : i + tasks_per_prompt]))
22
+ return grouped
@@ -6,7 +6,6 @@ capturing all user inputs collected during interactive execution.
6
6
 
7
7
  from pathlib import Path
8
8
  from typing import TypedDict, Literal, NotRequired
9
- from machineconfig.scripts.python.fire_agents_load_balancer import SPLITTING_STRATEGY
10
9
  from machineconfig.scripts.python.fire_agents_help_launch import AGENTS
11
10
 
12
11
  SEARCH_STRATEGIES = Literal["file_path", "keyword_search", "filename_pattern"]
@@ -21,26 +20,17 @@ class FilePathSearchInput(TypedDict):
21
20
 
22
21
  class KeywordSearchInput(TypedDict):
23
22
  """Input for keyword_search strategy."""
24
-
25
23
  keyword: str
26
24
 
27
25
 
28
26
  class FilenamePatternSearchInput(TypedDict):
29
27
  """Input for filename_pattern search strategy."""
30
-
31
28
  pattern: str # e.g., '*.py', '*test*', 'config.*'
32
29
 
33
30
 
34
- class AgentCapSplittingInput(TypedDict):
35
- """Input for agent_cap splitting strategy."""
36
-
37
- agent_cap: int # Default: 6
38
-
39
-
40
- class TaskRowsSplittingInput(TypedDict):
41
- """Input for task_rows splitting strategy."""
42
-
43
- task_rows: int # Default: 13
31
+ class TasksPerPromptSplittingInput(TypedDict):
32
+ """Input for tasks_per_prompt splitting strategy."""
33
+ tasks_per_prompt: int # Default: 13
44
34
 
45
35
 
46
36
  class FireAgentsMainInput(TypedDict):
@@ -49,7 +39,6 @@ class FireAgentsMainInput(TypedDict):
49
39
  # Core configuration
50
40
  repo_root: Path
51
41
  search_strategy: SEARCH_STRATEGIES
52
- splitting_strategy: SPLITTING_STRATEGY
53
42
  agent_selected: AGENTS
54
43
  prompt_prefix: str
55
44
  job_name: str # Default: "AI_Agents"
@@ -62,8 +51,7 @@ class FireAgentsMainInput(TypedDict):
62
51
  filename_pattern_input: NotRequired[FilenamePatternSearchInput]
63
52
 
64
53
  # Splitting strategy specific inputs (only one will be present based on splitting_strategy)
65
- agent_cap_input: NotRequired[AgentCapSplittingInput]
66
- task_rows_input: NotRequired[TaskRowsSplittingInput]
54
+ tasks_per_prompt: TasksPerPromptSplittingInput
67
55
 
68
56
 
69
57
  class FireAgentsRuntimeData(TypedDict):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 4.2
3
+ Version: 4.4
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -26,6 +26,7 @@ Requires-Dist: rclone-python>=0.1.23
26
26
  Requires-Dist: pyjson5>=1.6.9
27
27
  Requires-Dist: typer-slim>=0.19.2
28
28
  Requires-Dist: questionary>=2.1.1
29
+ Requires-Dist: typer>=0.19.2
29
30
  Provides-Extra: windows
30
31
  Requires-Dist: pywin32; extra == "windows"
31
32
  Provides-Extra: docs
@@ -7,7 +7,7 @@ cloud_sync = machineconfig.scripts.python.cloud_sync:arg_parser
7
7
  croshell = machineconfig.scripts.python.croshell:arg_parser
8
8
  devops = machineconfig.scripts.python.devops:app
9
9
  fire = machineconfig.scripts.python.fire_jobs:main_from_parser
10
- fire_agents = machineconfig.scripts.python.fire_agents:main
10
+ fire_agents = machineconfig.scripts.python.fire_agents:app
11
11
  ftpx = machineconfig.scripts.python.ftpx:main_from_parser
12
12
  initai = machineconfig.scripts.python.ai.initai:main
13
13
  kill_process = machineconfig.utils.procs:main
@@ -13,6 +13,7 @@ rclone-python>=0.1.23
13
13
  pyjson5>=1.6.9
14
14
  typer-slim>=0.19.2
15
15
  questionary>=2.1.1
16
+ typer>=0.19.2
16
17
 
17
18
  [docs]
18
19
  pdoc>=15.0.2
@@ -1,153 +0,0 @@
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.utils.options import choose_from_options
19
- from machineconfig.utils.accessories import get_repo_root
20
-
21
- SEARCH_STRATEGIES: TypeAlias = Literal["file_path", "keyword_search", "filename_pattern"]
22
-
23
-
24
- def _write_list_file(target: Path, files: Iterable[Path]) -> None:
25
- target.parent.mkdir(parents=True, exist_ok=True)
26
- target.write_text("\n".join(str(f) for f in files), encoding="utf-8")
27
-
28
-
29
- def get_prompt_material(search_strategy: SEARCH_STRATEGIES, repo_root: Path) -> tuple[Path, str]:
30
- if search_strategy == "file_path":
31
- file_path_input = input("Enter path to target file: ").strip()
32
- if not file_path_input:
33
- print("No file path provided. Exiting.")
34
- sys.exit(1)
35
- target_file_path = Path(file_path_input).expanduser().resolve()
36
- if not target_file_path.exists() or not target_file_path.is_file():
37
- print(f"Invalid file path: {target_file_path}")
38
- sys.exit(1)
39
- separator = input("Enter separator [\\n]: ").strip() or "\n"
40
- elif search_strategy == "keyword_search":
41
- keyword = input("Enter keyword to search recursively for all .py files containing it: ").strip()
42
- if not keyword:
43
- print("No keyword supplied. Exiting.")
44
- sys.exit(1)
45
- matching_files = search_python_files(repo_root, keyword)
46
- if not matching_files:
47
- print(f"💥 No .py files found containing keyword: {keyword}")
48
- sys.exit(1)
49
- for idx, mf in enumerate(matching_files):
50
- print(f"{idx:>3}: {mf}")
51
- print(f"\nFound {len(matching_files)} .py files containing keyword: {keyword}")
52
- target_file_path = repo_root / ".ai" / "target_file.txt"
53
- _write_list_file(target_file_path, matching_files)
54
- separator = "\n"
55
- elif search_strategy == "filename_pattern":
56
- pattern = input("Enter filename pattern (e.g., '*.py', '*test*', 'config.*'): ").strip()
57
- if not pattern:
58
- print("No pattern supplied. Exiting.")
59
- sys.exit(1)
60
- matching_files = search_files_by_pattern(repo_root, pattern)
61
- if not matching_files:
62
- print(f"💥 No files found matching pattern: {pattern}")
63
- sys.exit(1)
64
- for idx, mf in enumerate(matching_files):
65
- print(f"{idx:>3}: {mf}")
66
- print(f"\nFound {len(matching_files)} files matching pattern: {pattern}")
67
- target_file_path = repo_root / ".ai" / "target_file.txt"
68
- _write_list_file(target_file_path, matching_files)
69
- separator = "\n"
70
- else:
71
- raise ValueError(f"Unknown search strategy: {search_strategy}")
72
- return target_file_path, separator
73
-
74
-
75
- def main(): # noqa: C901 - (complexity acceptable for CLI glue)
76
- repo_root = get_repo_root(Path.cwd())
77
- if repo_root is None:
78
- print("💥 Could not determine the repository root. Please run this script from within a git repository.")
79
- sys.exit(1)
80
- print(f"Operating @ {repo_root}")
81
-
82
- search_strategy = cast(SEARCH_STRATEGIES, choose_from_options(multi=False, msg="Choose one option", header="Choose search strategy:", options=get_args(SEARCH_STRATEGIES)))
83
- splitting_strategy = cast(SPLITTING_STRATEGY, choose_from_options(multi=False, msg="Choose one option", header="Choose prompt splitting strategy:", options=get_args(SPLITTING_STRATEGY)))
84
- agent_selected = cast(AGENTS, choose_from_options(multi=False, msg="Choose one option", header="Select agent type", options=get_args(AGENTS)))
85
- print("Enter prefix prompt (end with Ctrl-D / Ctrl-Z):")
86
- prompt_prefix = "\n".join(sys.stdin.readlines())
87
- job_name = input("Enter job name [AI_AGENTS]: ") or "AI_Agents"
88
- keep_material_in_separate_file_input = input("Keep prompt material in separate file? [y/N]: ").strip().lower() == "y"
89
-
90
- prompt_material_path, separator = get_prompt_material(search_strategy=search_strategy, repo_root=repo_root)
91
- match splitting_strategy:
92
- case "agent_cap":
93
- agent_cap_input = input(f"Enter maximum number of agents/splits [default: {DEFAULT_AGENT_CAP}]: ").strip()
94
- agent_cap = int(agent_cap_input) if agent_cap_input else DEFAULT_AGENT_CAP
95
- task_rows = None
96
- case "task_rows":
97
- task_rows_input: str = input("Enter number of rows/tasks per agent [13]: ").strip() or "13"
98
- task_rows = int(task_rows_input)
99
- agent_cap = None
100
- prompt_material_re_splitted = chunk_prompts(prompt_material_path, splitting_strategy, agent_cap=agent_cap, task_rows=task_rows, joiner=separator)
101
-
102
- 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)
103
- layoutfile = get_agents_launch_layout(session_root=agents_dir)
104
-
105
- regenerate_py_code = f"""
106
- #!/usr/bin/env uv run --python 3.13 --with machineconfig
107
- #!/usr/bin/env uv run --no-dev --project $HOME/code/machineconfig
108
-
109
- from machineconfig.scripts.python.fire_agents import *
110
-
111
- repo_root = Path("{repo_root}")
112
- search_strategy = "{search_strategy}"
113
- splitting_strategy = "{splitting_strategy}"
114
- agent_selected = "{agent_selected}"
115
- prompt_prefix = '''{prompt_prefix}'''
116
- job_name = "{job_name}"
117
- keep_material_in_separate_file_input = {keep_material_in_separate_file_input}
118
- separator = "{separator}"
119
- prompt_material_path = Path("{prompt_material_path}")
120
- agent_cap = {agent_cap}
121
- task_rows = {task_rows}
122
-
123
- prompt_material_re_splitted = chunk_prompts(prompt_material_path, splitting_strategy, agent_cap=agent_cap, task_rows=task_rows, joiner=separator)
124
- 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)
125
- layout = get_agents_launch_layout(session_root=agents_dir)
126
-
127
- (agents_dir / "aa_agents_relaunch.py").write_text(data=regenerate_py_code, encoding="utf-8")
128
- (agents_dir / "layout.json").write_text(data=json.dumps(layout, indent=2), encoding="utf-8")
129
-
130
- if len(layout["layoutTabs"]) > 25:
131
- print("Too many agents (>25) to launch. Skipping launch.")
132
- sys.exit(0)
133
- manager = ZellijLocalManager(session_layouts=[layout])
134
- manager.start_all_sessions()
135
- manager.run_monitoring_routine()
136
-
137
- """
138
- (agents_dir / "aa_agents_relaunch.py").write_text(data=regenerate_py_code, encoding="utf-8")
139
- (agents_dir / "layout.json").write_text(data=json.dumps(layoutfile, indent=2), encoding="utf-8")
140
-
141
- MAX_TABS = 10
142
- if len(layoutfile["layouts"][0]["layoutTabs"]) > MAX_TABS:
143
- print(f"Too many tabs (>{MAX_TABS}) to launch. Skipping launch.")
144
- sys.exit(0)
145
- from machineconfig.cluster.sessions_managers.zellij_local_manager import ZellijLocalManager
146
-
147
- manager = ZellijLocalManager(session_layouts=layoutfile["layouts"])
148
- manager.start_all_sessions(poll_interval=2, poll_seconds=2)
149
- manager.run_monitoring_routine(wait_ms=2000)
150
-
151
-
152
- if __name__ == "__main__": # pragma: no cover
153
- main()
@@ -1,50 +0,0 @@
1
- from typing import Literal, TypeAlias
2
- from math import ceil
3
- from pathlib import Path
4
-
5
-
6
- SPLITTING_STRATEGY: TypeAlias = Literal[
7
- "agent_cap", # User decides number of agents, rows/tasks determined automatically
8
- "task_rows", # User decides number of rows/tasks, number of agents determined automatically
9
- ]
10
- DEFAULT_AGENT_CAP = 6
11
-
12
-
13
- def chunk_prompts(prompt_material_path: Path, strategy: SPLITTING_STRATEGY, joiner: str, *, agent_cap: int | None, task_rows: int | None) -> list[str]:
14
- """Chunk prompts based on splitting strategy.
15
-
16
- Args:
17
- prompts: List of prompts to chunk
18
- strategy: Either 'agent_cap' or 'task_rows'
19
- agent_cap: Maximum number of agents (used with 'agent_cap' strategy)
20
- task_rows: Number of rows/tasks per agent (used with 'task_rows' strategy)
21
- """
22
- prompts = [p for p in prompt_material_path.read_text(encoding="utf-8", errors="ignore").split(joiner) if p.strip() != ""] # drop blank entries
23
-
24
- if strategy == "agent_cap":
25
- if agent_cap is None:
26
- raise ValueError("agent_cap must be provided when using 'agent_cap' strategy")
27
-
28
- if len(prompts) <= agent_cap:
29
- return prompts
30
-
31
- print(f"Chunking {len(prompts)} prompts into groups for up to {agent_cap} agents because it exceeds the cap.")
32
- chunk_size = ceil(len(prompts) / agent_cap)
33
- grouped: list[str] = []
34
- for i in range(0, len(prompts), chunk_size):
35
- grouped.append(joiner.join(prompts[i : i + chunk_size]))
36
- return grouped
37
-
38
- elif strategy == "task_rows":
39
- if task_rows is None:
40
- raise ValueError("task_rows must be provided when using 'task_rows' strategy")
41
- if task_rows >= len(prompts):
42
- return prompts
43
- print(f"Chunking {len(prompts)} prompts into groups of {task_rows} rows/tasks each.")
44
- grouped: list[str] = []
45
- for i in range(0, len(prompts), task_rows):
46
- grouped.append(joiner.join(prompts[i : i + task_rows]))
47
- return grouped
48
-
49
- else:
50
- raise ValueError(f"Unknown splitting strategy: {strategy}")
File without changes
File without changes
File without changes