machineconfig 2.9__tar.gz → 2.94__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 (435) hide show
  1. {machineconfig-2.9/src/machineconfig.egg-info → machineconfig-2.94}/PKG-INFO +1 -1
  2. {machineconfig-2.9 → machineconfig-2.94}/pyproject.toml +2 -1
  3. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +4 -20
  4. machineconfig-2.94/src/machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-313.pyc +0 -0
  5. machineconfig-2.94/src/machineconfig/scripts/python/__pycache__/repos_helper_update.cpython-313.pyc +0 -0
  6. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/mcinit.py +2 -14
  7. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/devops_update_repos.py +1 -4
  8. machineconfig-2.94/src/machineconfig/scripts/python/fire_agents.py +150 -0
  9. machineconfig-2.94/src/machineconfig/scripts/python/fire_agents_help_launch.py +142 -0
  10. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/fire_agents_help_search.py +1 -2
  11. machineconfig-2.94/src/machineconfig/scripts/python/fire_agents_load_balancer.py +52 -0
  12. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/fire_jobs.py +2 -1
  13. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/repos_helper_update.py +6 -29
  14. machineconfig-2.94/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +70 -0
  15. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -1
  16. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/ve.py +9 -5
  17. {machineconfig-2.9 → machineconfig-2.94/src/machineconfig.egg-info}/PKG-INFO +1 -1
  18. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig.egg-info/SOURCES.txt +3 -0
  19. machineconfig-2.9/src/machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-313.pyc +0 -0
  20. machineconfig-2.9/src/machineconfig/scripts/python/fire_agents.py +0 -194
  21. machineconfig-2.9/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -97
  22. {machineconfig-2.9 → machineconfig-2.94}/MANIFEST.in +0 -0
  23. {machineconfig-2.9 → machineconfig-2.94}/README.md +0 -0
  24. {machineconfig-2.9 → machineconfig-2.94}/setup.cfg +0 -0
  25. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/__init__.py +0 -0
  26. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/__init__.py +0 -0
  27. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  28. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  29. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/distribute.py +0 -0
  30. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  31. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/job_params.py +0 -0
  32. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  33. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  34. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  35. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  36. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  37. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/enhanced_command_runner.py +0 -0
  38. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  39. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  40. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  41. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  42. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  43. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  44. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  45. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  46. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  47. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  48. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  49. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  50. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  51. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  52. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  53. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  54. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  55. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  56. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/__init__.py +0 -0
  57. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/cli_click.py +0 -0
  58. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/cli_gooey.py +0 -0
  59. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  60. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/run_cloud.py +0 -0
  61. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/run_cluster.py +0 -0
  62. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/run_remote.py +0 -0
  63. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/cluster/templates/utils.py +0 -0
  64. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/__init__.py +0 -0
  65. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/__pycache__/__init__.cpython-313.pyc +0 -0
  66. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  67. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  68. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  69. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/__init__.py +0 -0
  70. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/check_installations.py +0 -0
  71. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
  72. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
  73. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  74. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/tasks.py +0 -0
  75. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  76. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/vscode/link_ve.py +0 -0
  77. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/vscode/select_interpreter.py +0 -0
  78. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  79. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/__init__.py +0 -0
  80. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -0
  81. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/aider.py +0 -0
  82. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -0
  83. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/brave.py +0 -0
  84. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -0
  85. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/code.py +0 -0
  86. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/cursor.py +0 -0
  87. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -0
  88. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -0
  89. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/goes.py +0 -0
  90. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -0
  91. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -0
  92. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/redis.py +0 -0
  93. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -0
  94. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -0
  95. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/dev/winget.py +0 -0
  96. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/docker.py +0 -0
  97. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/gh.py +0 -0
  98. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/hx.py +0 -0
  99. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +0 -0
  100. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +0 -0
  101. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -0
  102. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +0 -0
  103. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +0 -0
  104. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -0
  105. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +0 -0
  106. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -0
  107. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +0 -0
  108. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +0 -0
  109. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +0 -0
  110. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_custom_installers/warp-cli.py +0 -0
  111. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_generic_installers/__init__.py +0 -0
  112. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-313.pyc +0 -0
  113. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_generic_installers/config.json +0 -0
  114. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -0
  115. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_generic_installers/dev/config.json +0 -0
  116. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_linux_installers/__init__.py +0 -0
  117. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-313.pyc +0 -0
  118. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_linux_installers/archive/config.json +0 -0
  119. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_linux_installers/config.json +0 -0
  120. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_linux_installers/dev/__init__.py +0 -0
  121. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_linux_installers/dev/config.json +0 -0
  122. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_windows_installers/__init__.py +0 -0
  123. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_windows_installers/archive/__init__.py +0 -0
  124. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_windows_installers/archive/file.json +0 -0
  125. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_windows_installers/config.json +0 -0
  126. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_windows_installers/dev/__init__.py +0 -0
  127. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/python_windows_installers/dev/config.json +0 -0
  128. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  129. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  130. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  131. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  132. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  133. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  134. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  135. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/logger.py +0 -0
  136. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/__init__.py +0 -0
  137. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/create.py +0 -0
  138. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  139. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  140. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  141. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  142. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  143. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/profile/shell.py +0 -0
  144. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/__init__.py +0 -0
  145. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
  146. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/cloud/init.sh +0 -0
  147. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  148. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  149. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  150. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  151. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  152. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/croshell +0 -0
  153. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/devops +0 -0
  154. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fire +0 -0
  155. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fire_agents +0 -0
  156. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/ftpx +0 -0
  157. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fzf2g +0 -0
  158. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fzfag +0 -0
  159. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fzffg +0 -0
  160. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fzfg +0 -0
  161. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/fzfrga +0 -0
  162. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/gh_models +0 -0
  163. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/kill_process +0 -0
  164. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/mcinit +0 -0
  165. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/mount_drive +0 -0
  166. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  167. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  168. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/mount_smb +0 -0
  169. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/programs +0 -0
  170. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/repos +0 -0
  171. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/scheduler +0 -0
  172. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  173. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/share_nfs +0 -0
  174. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/share_smb +0 -0
  175. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/skrg +0 -0
  176. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/start_docker +0 -0
  177. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/start_slidev +0 -0
  178. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/start_terminals +0 -0
  179. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/switch_ip +0 -0
  180. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  181. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  182. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/linux/z_ls +0 -0
  183. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__init__.py +0 -0
  184. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/__init__.cpython-313.pyc +0 -0
  185. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-313.pyc +0 -0
  186. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/devops.cpython-313.pyc +0 -0
  187. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-313.pyc +0 -0
  188. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/fire_agents.cpython-313.pyc +0 -0
  189. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-313.pyc +0 -0
  190. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/repos.cpython-313.pyc +0 -0
  191. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/__pycache__/repos_helper_record.cpython-313.pyc +0 -0
  192. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  193. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  194. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  195. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/chatmodes/deepResearch.chatmode.md +0 -0
  196. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/configs/.gemini/settings.json +0 -0
  197. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  198. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/instructions/python/dev.instructions.md +0 -0
  199. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  200. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/prompts/research-report-skeleton.prompt.md +0 -0
  201. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  202. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/archive/im2text.py +0 -0
  203. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/archive/tmate_conn.py +0 -0
  204. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/archive/tmate_start.py +0 -0
  205. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  206. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  207. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  208. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  209. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  210. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  211. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/croshell.py +0 -0
  212. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/devops.py +0 -0
  213. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  214. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  215. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  216. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/devops_devapps_install.py +0 -0
  217. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/dotfile.py +0 -0
  218. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  219. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -0
  220. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  221. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/ftpx.py +0 -0
  222. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  223. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/gh_models.py +0 -0
  224. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  225. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-313.pyc +0 -0
  226. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-313.pyc +0 -0
  227. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  228. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  229. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  230. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  231. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  232. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  233. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  234. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  235. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  236. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  237. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/repos.py +0 -0
  238. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  239. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/scheduler.py +0 -0
  240. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/snapshot.py +0 -0
  241. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  242. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  243. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/viewer.py +0 -0
  244. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  245. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  246. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  247. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  248. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  249. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  250. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  251. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  252. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  253. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  254. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  255. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  256. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  257. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  258. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  259. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  260. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  261. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  262. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  263. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/mcinit.ps1 +0 -0
  264. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  265. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  266. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  267. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  268. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  269. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  270. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  271. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/repos.ps1 +0 -0
  272. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  273. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  274. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  275. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  276. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  277. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  278. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  279. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  280. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  281. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  282. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  283. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/__init__.py +0 -0
  284. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/broot/br.sh +0 -0
  285. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  286. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/broot/conf.toml +0 -0
  287. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/glow/glow.yml +0 -0
  288. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  289. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/helix/config.toml +0 -0
  290. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/helix/languages.toml +0 -0
  291. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/keras/keras.json +0 -0
  292. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  293. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  294. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  295. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  296. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  297. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  298. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  299. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  300. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  301. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  302. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/colors +0 -0
  303. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  304. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  305. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  306. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  307. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  308. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  309. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/icons +0 -0
  310. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  311. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  312. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  313. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  314. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  315. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  316. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  317. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  318. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  319. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  320. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  321. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/colors +0 -0
  322. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  323. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/icons +0 -0
  324. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  325. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  326. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  327. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  328. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  329. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  330. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  331. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/linters/.flake8 +0 -0
  332. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  333. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/linters/.pylintrc +0 -0
  334. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  335. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/linters/.ruff_cache/.gitignore +0 -0
  336. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +0 -0
  337. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  338. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  339. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  340. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  341. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  342. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/mprocs/windows/other +0 -0
  343. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  344. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  345. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/procs/.procs.toml +0 -0
  346. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  347. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/rofi/config.rasi +0 -0
  348. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  349. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  350. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  351. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/bash/.inputrc +0 -0
  352. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  353. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  354. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  355. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  356. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  357. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  358. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  359. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  360. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  361. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  362. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  363. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  364. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  365. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  366. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/streamlit/config.toml +0 -0
  367. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  368. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  369. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  370. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/tere/terecd.sh +0 -0
  371. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  372. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  373. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  374. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  375. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/yazi/theme.toml +0 -0
  376. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  377. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zed/settings.json +0 -0
  378. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  379. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  380. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/config.kdl +0 -0
  381. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  382. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  383. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  384. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  385. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  386. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  387. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  388. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  389. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  390. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  391. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -0
  392. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  393. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  394. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  395. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/__init__.py +0 -0
  396. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  397. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  398. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  399. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  400. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  401. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  402. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  403. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  404. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/wt_and_pwsh/install_fonts.ps1 +0 -0
  405. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -0
  406. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  407. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/__init__.py +0 -0
  408. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/ai/__init__.py +0 -0
  409. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  410. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  411. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  412. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/code.py +0 -0
  413. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/installer.py +0 -0
  414. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  415. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  416. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  417. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/io_save.py +0 -0
  418. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/links.py +0 -0
  419. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/notifications.py +0 -0
  420. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/options.py +0 -0
  421. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/path.py +0 -0
  422. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/path_reduced.py +0 -0
  423. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/procs.py +0 -0
  424. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/scheduling.py +0 -0
  425. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  426. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/source_of_truth.py +0 -0
  427. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/ssh.py +0 -0
  428. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/terminal.py +0 -0
  429. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/upgrade_packages.py +0 -0
  430. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/utils2.py +0 -0
  431. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig/utils/utils5.py +0 -0
  432. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  433. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig.egg-info/entry_points.txt +0 -0
  434. {machineconfig-2.9 → machineconfig-2.94}/src/machineconfig.egg-info/requires.txt +0 -0
  435. {machineconfig-2.9 → machineconfig-2.94}/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: 2.9
3
+ Version: 2.94
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "2.9"
9
+ version = "2.94"
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], session_name_prefix: str = "LocalJobMgr"):
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, session_name_prefix=session_name_prefix)
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, session_name_prefix="DevEnv")
485
+ manager = ZellijLocalManager(sample_sessions,)
502
486
  print(f"✅ Local manager created with {len(manager.managers)} sessions")
503
487
 
504
488
  # Show session names
@@ -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
@@ -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 or uv.lock changed but sync wasn't run yet
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
@@ -1,6 +1,5 @@
1
- from machineconfig.utils.source_of_truth import EXCLUDE_DIRS
2
-
3
1
 
2
+ from machineconfig.utils.source_of_truth import EXCLUDE_DIRS
4
3
  import fnmatch
5
4
  from pathlib import Path
6
5
 
@@ -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(str(choice_file))
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:
@@ -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
- # Check if the only change is uv.lock
108
- if len(changed_files) == 1 and changed_files[0] == "uv.lock":
109
- print("🔒 Only uv.lock has changes, resetting it...")
110
- try:
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 or uv.lock
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 or uv.lock changed after pull
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
@@ -17,7 +17,6 @@ class TabConfig(TypedDict):
17
17
 
18
18
  class LayoutConfig(TypedDict):
19
19
  """Configuration for a complete layout with its tabs."""
20
-
21
20
  layoutName: str
22
21
  layoutTabs: List[TabConfig]
23
22