machineconfig 6.85__tar.gz → 6.87__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 (453) hide show
  1. {machineconfig-6.85/src/machineconfig.egg-info → machineconfig-6.87}/PKG-INFO +1 -1
  2. {machineconfig-6.85 → machineconfig-6.87}/pyproject.toml +1 -1
  3. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/agents.py +8 -10
  4. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  5. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/fire_jobs.py +9 -12
  6. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/agentic_frameworks/fire_crush.py +11 -11
  7. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
  8. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/agentic_frameworks/fire_gemini.py +10 -12
  9. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/agentic_frameworks/fire_qwen.py +5 -6
  10. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/fire_agents_help_launch.py +11 -8
  11. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/fire_agents_helper_types.py +4 -14
  12. machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
  13. machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -0
  14. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
  15. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
  16. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_utils.py +17 -0
  17. machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire/helpers4.py → machineconfig-6.87/src/machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +40 -1
  18. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +1 -1
  19. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
  20. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +1 -1
  21. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_nfs +1 -1
  22. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/sessions.py +1 -1
  23. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/utils.py +9 -22
  24. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  25. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +1 -1
  26. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +1 -1
  27. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/meta.py +4 -3
  28. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  29. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/ssh.py +1 -1
  30. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/upgrade_packages.py +28 -24
  31. {machineconfig-6.85 → machineconfig-6.87/src/machineconfig.egg-info}/PKG-INFO +1 -1
  32. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig.egg-info/SOURCES.txt +15 -15
  33. machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
  34. machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -15
  35. {machineconfig-6.85 → machineconfig-6.87}/MANIFEST.in +0 -0
  36. {machineconfig-6.85 → machineconfig-6.87}/README.md +0 -0
  37. {machineconfig-6.85 → machineconfig-6.87}/setup.cfg +0 -0
  38. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/__init__.py +0 -0
  39. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/__init__.py +0 -0
  40. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  41. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  42. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/distribute.py +0 -0
  43. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  44. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/job_params.py +0 -0
  45. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  46. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  47. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  48. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  49. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  50. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  51. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  52. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  53. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
  54. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
  55. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  56. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
  57. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  58. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  59. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  60. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  61. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  62. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +0 -0
  63. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +0 -0
  64. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  65. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  66. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  67. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  68. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +0 -0
  69. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +0 -0
  70. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  71. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  72. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  73. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  74. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  75. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  76. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  77. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  78. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  79. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  80. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  81. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
  82. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
  83. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
  84. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
  85. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/templates/__init__.py +0 -0
  86. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  87. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/__init__.py +0 -0
  88. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/__init__.py +0 -0
  89. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  90. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom/boxes.py +0 -0
  91. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  92. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  93. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  94. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  95. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  96. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  97. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  98. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  99. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  100. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  101. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  102. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  103. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  104. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  105. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  106. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  107. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  108. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  109. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  110. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  111. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  112. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  113. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/lid.sh +0 -0
  114. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  115. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/network.sh +0 -0
  116. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  117. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  118. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  119. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  120. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  121. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  122. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  123. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  124. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  125. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -0
  126. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  127. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -0
  128. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -0
  129. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/logger.py +0 -0
  130. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/__init__.py +0 -0
  131. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/backup.toml +0 -0
  132. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  133. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/create_helper.py +0 -0
  134. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/create_links.py +0 -0
  135. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/create_links_export.py +0 -0
  136. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/create_shell_profile.py +0 -0
  137. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/mapper.toml +0 -0
  138. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  139. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  140. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  141. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  142. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  143. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  144. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/__init__.py +0 -0
  145. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/fzf2g +0 -0
  146. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/fzfag +0 -0
  147. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/fzffg +0 -0
  148. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/fzfg +0 -0
  149. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/fzfrga +0 -0
  150. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/mcfgs +0 -0
  151. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  152. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  153. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  154. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  155. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/skrg +0 -0
  156. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/linux/term +0 -0
  157. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/__init__.py +0 -0
  158. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  159. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  160. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  161. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  162. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  163. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  164. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  165. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  166. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  167. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  168. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  169. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  170. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  171. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  172. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  173. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  174. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  175. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  176. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  177. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  178. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  179. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  180. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  181. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  182. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  183. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  184. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  185. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  186. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  187. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
  188. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/cloud.py +0 -0
  189. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/croshell.py +0 -0
  190. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/devops.py +0 -0
  191. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  192. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  193. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  194. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/ftpx.py +0 -0
  195. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_cloud → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/__init__.py +0 -0
  196. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_croshell → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents/agentic_frameworks}/__init__.py +0 -0
  197. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/agentic_frameworks/fire_crush.json +0 -0
  198. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/fire_agents_help_search.py +0 -0
  199. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents}/fire_agents_load_balancer.py +0 -0
  200. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_agents/templates}/template.ps1 +0 -0
  201. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_devops → machineconfig-6.87/src/machineconfig/scripts/python/helpers_cloud}/__init__.py +0 -0
  202. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_cloud/cloud_copy.py +0 -0
  203. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +0 -0
  204. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_cloud/cloud_mount.py +0 -0
  205. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_cloud/cloud_sync.py +0 -0
  206. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_cloud/helpers2.py +0 -0
  207. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_cloud/helpers5.py +0 -0
  208. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_devops/themes → machineconfig-6.87/src/machineconfig/scripts/python/helpers_croshell}/__init__.py +0 -0
  209. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_croshell/crosh.py +0 -0
  210. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_croshell/pomodoro.py +0 -0
  211. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_croshell/scheduler.py +0 -0
  212. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_croshell/start_slidev.py +0 -0
  213. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_croshell/viewer.py +0 -0
  214. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_croshell/viewer_template.py +0 -0
  215. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire → machineconfig-6.87/src/machineconfig/scripts/python/helpers_devops}/__init__.py +0 -0
  216. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -0
  217. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_data.py +0 -0
  218. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -0
  219. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -0
  220. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -0
  221. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/cli_terminal.py +0 -0
  222. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -0
  223. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/devops_status.py +0 -0
  224. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/devops_update_repos.py +0 -0
  225. {machineconfig-6.85/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks → machineconfig-6.87/src/machineconfig/scripts/python/helpers_devops/themes}/__init__.py +0 -0
  226. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
  227. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -0
  228. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
  229. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +0 -0
  230. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  231. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  232. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  233. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  234. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/__init__.py +0 -0
  235. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/command_builder.py +0 -0
  236. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -0
  237. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -0
  238. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/data_models.py +0 -0
  239. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/main_app.py +0 -0
  240. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_navigator/search_bar.py +0 -0
  241. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/action.py +0 -0
  242. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/action_helper.py +0 -0
  243. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/clone.py +0 -0
  244. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/count_lines.py +0 -0
  245. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -0
  246. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -0
  247. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  248. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/record.py +0 -0
  249. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
  250. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/sync.py +0 -0
  251. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_repos/update.py +0 -0
  252. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
  253. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/interactive.py +0 -0
  254. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/mcfg.py +0 -0
  255. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  256. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
  257. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
  258. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
  259. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  260. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  261. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  262. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  263. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  264. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  265. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  266. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
  267. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
  268. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
  269. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  270. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/python/terminal.py +0 -0
  271. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  272. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  273. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  274. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mcfgs.ps1 +0 -0
  275. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  276. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  277. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  278. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  279. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  280. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  281. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/scripts/windows/term.ps1 +0 -0
  282. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/__init__.py +0 -0
  283. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/broot/br.sh +0 -0
  284. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  285. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/broot/conf.toml +0 -0
  286. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/glow/glow.yml +0 -0
  287. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  288. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/helix/config.toml +0 -0
  289. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/helix/languages.toml +0 -0
  290. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/keras/keras.json +0 -0
  291. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  292. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  293. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  294. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  295. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  296. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  297. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  298. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  299. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  300. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  301. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/colors +0 -0
  302. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  303. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  304. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  305. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  306. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  307. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  308. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/icons +0 -0
  309. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  310. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  311. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  312. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  313. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  314. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  315. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  316. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  317. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  318. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  319. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  320. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/colors +0 -0
  321. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  322. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/icons +0 -0
  323. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  324. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  325. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  326. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  327. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  328. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  329. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  330. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/linters/.flake8 +0 -0
  331. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  332. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/linters/.pylintrc +0 -0
  333. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  334. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  335. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  336. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  337. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  338. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/marimo/marimo.toml +0 -0
  339. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  340. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/mprocs/windows/other +0 -0
  341. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  342. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  343. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/procs/.procs.toml +0 -0
  344. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  345. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/rofi/config.rasi +0 -0
  346. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  347. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  348. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  349. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  350. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  351. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  352. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  353. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  354. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  355. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  356. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  357. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  358. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  359. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  360. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  361. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  362. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  363. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/shells/zsh/init.sh +0 -0
  364. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/streamlit/config.toml +0 -0
  365. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  366. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  367. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  368. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/tere/terecd.sh +0 -0
  369. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  370. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  371. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  372. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  373. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/yazi/theme.toml +0 -0
  374. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  375. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zed/settings.json +0 -0
  376. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  377. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  378. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/config.kdl +0 -0
  379. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  380. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  381. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  382. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  383. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  384. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  385. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/__init__.py +0 -0
  386. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/apps.sh +0 -0
  387. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  388. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  389. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/others/android.sh +0 -0
  390. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/others/cli_installation.sh +0 -0
  391. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  392. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  393. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  394. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_linux/uv.sh +0 -0
  395. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_mac/__init__.py +0 -0
  396. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_mac/apps.sh +0 -0
  397. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_mac/ssh/openssh_setup.sh +0 -0
  398. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_mac/uv.sh +0 -0
  399. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/__init__.py +0 -0
  400. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  401. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  402. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  403. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  404. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  405. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  406. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  407. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/uv.ps1 +0 -0
  408. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  409. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  410. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/__init__.py +0 -0
  411. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/accessories.py +0 -0
  412. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/ai/__init__.py +0 -0
  413. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  414. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  415. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  416. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/code.py +0 -0
  417. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/art/fat_croco.txt +0 -0
  418. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/art/halfwit_croco.txt +0 -0
  419. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/art/happy_croco.txt +0 -0
  420. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/art/water_croco.txt +0 -0
  421. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/ascii_art.py +0 -0
  422. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/dbms.py +0 -0
  423. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/headers.py +0 -0
  424. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  425. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  426. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/files/read.py +0 -0
  427. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/installer.py +0 -0
  428. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  429. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  430. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  431. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  432. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  433. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/io.py +0 -0
  434. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/links.py +0 -0
  435. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/notifications.py +0 -0
  436. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/options.py +0 -0
  437. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/path_extended.py +0 -0
  438. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/path_helper.py +0 -0
  439. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/procs.py +0 -0
  440. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/scheduler.py +0 -0
  441. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/scheduling.py +0 -0
  442. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  443. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  444. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  445. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/source_of_truth.py +0 -0
  446. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  447. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/terminal.py +0 -0
  448. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/tst.py +0 -0
  449. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig/utils/ve.py +0 -0
  450. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  451. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig.egg-info/entry_points.txt +0 -0
  452. {machineconfig-6.85 → machineconfig-6.87}/src/machineconfig.egg-info/requires.txt +0 -0
  453. {machineconfig-6.85 → machineconfig-6.87}/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: 6.85
3
+ Version: 6.87
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 = "6.85"
9
+ version = "6.87"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -5,13 +5,13 @@
5
5
  from pathlib import Path
6
6
  from typing import cast, Optional, get_args, Annotated
7
7
  import typer
8
- from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import AGENTS, HOST, MODEL, PROVIDER
8
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, HOST, PROVIDER
9
9
 
10
10
 
11
11
  def create(
12
12
  agent: Annotated[AGENTS, typer.Option(..., "--agents", "-a", help=f"Agent type. One of {', '.join(get_args(AGENTS)[:3])}")],
13
13
  host: Annotated[HOST, typer.Option(..., "--host", "-h", help=f"Machine to run agents on. One of {', '.join(get_args(HOST))}")],
14
- model: Annotated[MODEL, typer.Option(..., "--model", "-m", help=f"Model to use (for crush agent). One of {', '.join(get_args(MODEL)[:3])}")],
14
+ model: Annotated[str, typer.Option(..., "--model", "-m", help="Model to use (for crush agent).")],
15
15
  provider: Annotated[PROVIDER, typer.Option(..., "--provider", "-p", help=f"Provider to use (for crush agent). One of {', '.join(get_args(PROVIDER)[:3])}")],
16
16
  context_path: Annotated[Optional[Path], typer.Option(..., "--context-path", "-c", help="Path to the context file/folder, defaults to .ai/todo/")] = None,
17
17
  separator: Annotated[str, typer.Option(..., "--separator", "-s", help="Separator for context")] = "\n",
@@ -24,8 +24,8 @@ def create(
24
24
  agents_dir: Annotated[Optional[Path], typer.Option(..., "--agents-dir", "-ad", help="Directory to store agent files. If not provided, will be constructed automatically.")] = None,
25
25
  ):
26
26
 
27
- from machineconfig.scripts.python.helpers_fire.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout
28
- from machineconfig.scripts.python.helpers_fire.fire_agents_load_balancer import chunk_prompts
27
+ from machineconfig.scripts.python.helpers_agents.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout
28
+ from machineconfig.scripts.python.helpers_agents.fire_agents_load_balancer import chunk_prompts
29
29
  from machineconfig.utils.accessories import get_repo_root, randstr
30
30
  import json
31
31
 
@@ -85,7 +85,7 @@ agents create "{context_path_resolved}" \\
85
85
  --separator "{separator}" \\
86
86
  {"--separate" if separate else ""}
87
87
  """
88
- (agents_dir / "aa_agents_relaunch.py").write_text(data=regenerate_py_code, encoding="utf-8")
88
+ (agents_dir / "aa_agents_relaunch.sh").write_text(data=regenerate_py_code, encoding="utf-8")
89
89
  layout_output_path = output_path if output_path is not None else agents_dir / "layout.json"
90
90
  layout_output_path.parent.mkdir(parents=True, exist_ok=True)
91
91
  layout_output_path.write_text(data=json.dumps(layoutfile, indent=4), encoding="utf-8")
@@ -136,11 +136,11 @@ def collect(
136
136
 
137
137
  def template():
138
138
  from platform import system
139
- import machineconfig.scripts.python.helpers_fire as module
139
+ import machineconfig.scripts.python.helpers_agents as module
140
140
  if system() == "Linux" or system() == "Darwin":
141
- template_path = Path(module.__file__).parent / "template.sh"
141
+ template_path = Path(module.__file__).parent / "templates/template.sh"
142
142
  elif system() == "Windows":
143
- template_path = Path(module.__file__).parent / "template.ps1"
143
+ template_path = Path(module.__file__).parent / "templates/template.ps1"
144
144
  else:
145
145
  raise typer.BadParameter(f"Unsupported OS: {system()}")
146
146
 
@@ -168,8 +168,6 @@ def get_app():
168
168
  PROVIDER options: {', '.join(get_args(PROVIDER))}
169
169
  {sep}
170
170
  AGENT options: {', '.join(get_args(AGENTS))}
171
- {sep}
172
- MODEL options: {sep.join(get_args(MODEL))}
173
171
  """
174
172
  agents_app.command("create", no_args_is_help=True, help=agents_full_help)(create)
175
173
  agents_app.command("c", no_args_is_help=True, help="Create agents layout file, ready to run.", hidden=True)(create)
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "machineconfig>=6.85",
5
+ # "machineconfig>=6.87",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]
@@ -26,7 +26,7 @@ def route(args: FireJobArgs, fire_args: str = "") -> None:
26
26
  suffixes = {".py", ".sh", ".ps1"}
27
27
  choice_file = match_file_name(sub_string=args.path, search_root=PathExtended.cwd(), suffixes=suffixes)
28
28
  elif path_obj.is_dir():
29
- from machineconfig.scripts.python.helpers_fire.helpers4 import search_for_files_of_interest
29
+ from machineconfig.scripts.python.helpers_fire_command.file_wrangler import search_for_files_of_interest
30
30
  print(f"🔍 Searching recursively for Python, PowerShell and Shell scripts in directory `{path_obj}`")
31
31
  files = search_for_files_of_interest(path_obj)
32
32
  print(f"🔍 Got #{len(files)} results.")
@@ -67,25 +67,26 @@ uv run --project {repo_root} --with marimo marimo edit --host 0.0.0.0 marimo_nb.
67
67
 
68
68
  if choice_file.suffix == ".py":
69
69
  from machineconfig.scripts.python.helpers_fire_command.fire_jobs_route_helper import get_command_streamlit
70
+ with_project = f"--project {repo_root} " if repo_root is not None else ""
70
71
  if args.streamlit:
71
72
  exe = get_command_streamlit(choice_file=choice_file, environment=args.environment, repo_root=repo_root)
72
- exe = f"uv run {exe} "
73
- elif args.jupyter: exe = "uv run jupyter-lab"
73
+ exe = f"uv run {with_project} {exe} "
74
+ elif args.jupyter: exe = f"uv run {with_project} jupyter-lab"
74
75
  else:
75
76
  if args.interactive:
76
77
  _ve_root_from_file, ipy_profile = get_ve_path_and_ipython_profile(choice_file)
77
78
  if ipy_profile is None:
78
79
  ipy_profile = "default"
79
- exe = f"uv run ipython -i --no-banner --profile {ipy_profile} "
80
+ exe = f"uv run {with_project} ipython -i --no-banner --profile {ipy_profile} "
80
81
  else:
81
- exe = "uv run python "
82
+ exe = f"uv run {with_project} python "
82
83
  elif choice_file.suffix == ".ps1" or choice_file.suffix == ".sh": exe = "."
83
84
  elif choice_file.suffix == "": exe = ""
84
85
  else: raise NotImplementedError(f"File type {choice_file.suffix} not supported, in the sense that I don't know how to fire it.")
85
86
 
86
87
  if args.module or (args.debug and args.choose_function): # because debugging tools do not support choosing functions and don't interplay with fire module. So the only way to have debugging and choose function options is to import the file as a module into a new script and run the function of interest there and debug the new script.
87
88
  assert choice_file.suffix == ".py", f"File must be a python file to be imported as a module. Got {choice_file}"
88
- from machineconfig.scripts.python.helpers_fire.helpers4 import get_import_module_code, wrap_import_in_try_except
89
+ from machineconfig.scripts.python.helpers_fire_command.file_wrangler import get_import_module_code, wrap_import_in_try_except
89
90
  from machineconfig.utils.meta import lambda_to_python_script
90
91
  from machineconfig.utils.code import print_code
91
92
  import_code = get_import_module_code(str(choice_file))
@@ -155,12 +156,8 @@ uv run --project {repo_root} --with marimo marimo edit --host 0.0.0.0 marimo_nb.
155
156
  if args.git_pull:
156
157
  command = f"\ngit -C {choice_file.parent} pull\n" + command
157
158
  if args.PathExport:
158
- if platform.system() in ["Linux", "Darwin"]:
159
- export_line = f"""export PYTHONPATH="{repo_root}""" + """:${PYTHONPATH}" """
160
- elif platform.system() == "Windows":
161
- export_line = f"""$env:PYTHONPATH="{repo_root}""" + """:$env:PYTHONPATH" """
162
- else:
163
- raise NotImplementedError(f"Platform {platform.system()} not supported.")
159
+ from machineconfig.scripts.python.helpers_fire_command.file_wrangler import add_to_path
160
+ export_line = add_to_path(path_variable="PYTHONPATH", directory=str(repo_root))
164
161
  command = export_line + "\n" + command
165
162
  if args.loop:
166
163
  if platform.system() in ["Linux", "Darwin"]:
@@ -1,36 +1,36 @@
1
1
 
2
2
  from pathlib import Path
3
3
  # import shlex
4
- from typing import Optional
5
- from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST, PROVIDER, MODEL
4
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
6
5
 
7
6
 
8
- def fire_crush(api_key: Optional[str], model: MODEL, provider: PROVIDER, machine: HOST, prompt_path: Path, repo_root: Path) -> str:
9
- match machine:
7
+ def fire_crush(ai_spec: AI_SPEC, prompt_path: Path, repo_root: Path) -> str:
8
+ match ai_spec["machine"]:
10
9
  case "local":
11
10
  cmd = f"""
12
11
  crush run {prompt_path}
13
12
  """
14
13
  case "docker":
15
- assert api_key is not None, "API key is required for Crush agent in docker mode."
14
+ assert ai_spec["api_key"] is not None, "API key is required for Crush agent in docker mode."
16
15
  json_path = Path(__file__).parent / "fire_crush.json"
17
16
  json_template = json_path.read_text(encoding="utf-8")
18
- json_filled = json_template.replace("{api_key}", api_key).replace("{model}", model).replace("{provider}", provider)
19
- import tempfile
20
- temp_config_file_local = tempfile.mkstemp(suffix=".json")[1]
17
+ json_filled = json_template.replace("{api_key}", ai_spec["api_key"]).replace("{model}", ai_spec["model"]).replace("{provider}", ai_spec["provider"])
18
+ from machineconfig.utils.accessories import randstr
19
+ temp_config_file_local = Path.home().joinpath("tmp_results/tmp_files/crush_" + randstr(8) + ".json")
20
+ temp_config_file_local.parent.mkdir(parents=True, exist_ok=True)
21
21
  Path(temp_config_file_local).write_text(json_filled, encoding="utf-8")
22
22
  cmd = f"""
23
23
 
24
24
  # -e "PATH_PROMPT=$PATH_PROMPT"
25
- # opencode --model "{provider}/{model}" run {prompt_path}
26
-
25
+ # opencode --model "{ai_spec["provider"]}/{ai_spec["model"]}" run {prompt_path}
26
+
27
27
 
28
28
  echo "Running prompt @ {prompt_path.relative_to(repo_root)} using Docker with Crush..."
29
29
  docker run -it --rm \
30
30
  -v "{repo_root}:/workspace/{repo_root.name}" \
31
31
  -v "{temp_config_file_local}:/root/.local/share/crush/crush.json" \
32
32
  -w "/workspace/{repo_root.name}" \
33
- statistician/machineconfig:latest \
33
+ statistician/machineconfig-ai:latest \
34
34
  bash -i -c "source ~/.bashrc && cd /workspace/{repo_root.name} && cat /root/.local/share/crush/crush.json && crush run 'Please act on contents of this prompt ./{prompt_path.relative_to(repo_root)}'"
35
35
 
36
36
  """
@@ -2,11 +2,10 @@
2
2
 
3
3
  from pathlib import Path
4
4
  # import shlex
5
- from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST
6
- from typing import Optional
5
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
7
6
 
8
- def fire_cursor(api_key: Optional[str], prompt_path: Path, machine: HOST) -> str:
9
- match machine:
7
+ def fire_cursor(ai_spec: AI_SPEC, prompt_path: Path) -> str:
8
+ match ai_spec["machine"]:
10
9
  case "local":
11
10
  # Export the environment variable so it's available to subshells
12
11
  cmd = f"""
@@ -1,26 +1,25 @@
1
1
 
2
2
  from pathlib import Path
3
3
  import shlex
4
- from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST
5
- from typing import Optional, Literal
4
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
6
5
 
7
6
 
8
- def fire_gemini(api_key: Optional[str], model: Literal["gemini-2.5-pro"], provider: Literal["google"], machine: HOST, prompt_path: Path, repo_root: Path) -> str:
9
- _ = provider
7
+ def fire_gemini(ai_spec: AI_SPEC, prompt_path: Path, repo_root: Path) -> str:
8
+ _ = ai_spec["provider"]
10
9
  # model = "gemini-2.5-flash-lite"
11
10
  # model = None # auto-select
12
11
  # if model is None:
13
12
  # model_arg = ""
14
13
  # else:
15
- model_arg = f"--model {shlex.quote(model)}"
14
+ model_arg = f"--model {shlex.quote(ai_spec['model'])}"
16
15
  # Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
17
16
  safe_path = shlex.quote(str(prompt_path))
18
17
 
19
- match machine:
18
+ match ai_spec["machine"]:
20
19
  case "local":
21
20
  # Export the environment variable so it's available to subshells
22
- if api_key is not None:
23
- define_api_key = f"""export GEMINI_API_KEY="{shlex.quote(api_key)}" """
21
+ if ai_spec["api_key"] is not None:
22
+ define_api_key = f"""export GEMINI_API_KEY="{shlex.quote(ai_spec['api_key'])}" """
24
23
  else:
25
24
  define_api_key = "echo 'Warning: No GEMINI_API_KEY provided, hoping it is set in the environment.'"
26
25
  cmd = f"""
@@ -31,14 +30,13 @@ gemini {model_arg} --yolo --prompt {safe_path}
31
30
 
32
31
 
33
32
  case "docker":
34
- assert api_key is not None, "When using docker, api_key must be provided."
33
+ assert ai_spec["api_key"] is not None, "When using docker, api_key must be provided."
35
34
  cmd = f"""
36
35
  docker run -it --rm \
37
- -e GEMINI_API_KEY="{api_key}" \
36
+ -e GEMINI_API_KEY="{ai_spec['api_key']}" \
38
37
  -v "{repo_root}:/workspace/{repo_root.name}" \
39
38
  -w "/workspace/{repo_root.name}" \
40
- statistician/machineconfig:latest \
39
+ statistician/machineconfig-ai:latest \
41
40
  gemini --prompt "$PATH_PROMPT"
42
41
  """
43
42
  return cmd
44
-
@@ -1,11 +1,10 @@
1
1
 
2
2
  from pathlib import Path
3
3
  import shlex
4
- from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import HOST
5
- from typing import Optional, Literal
4
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
6
5
 
7
6
 
8
- def fire_qwen(config_dir: Optional[str], model: Literal["qwen"], provider: Literal["qwen"], machine: HOST, prompt_path: Path, repo_root: Path) -> str:
7
+ def fire_qwen(ai_spec: AI_SPEC, prompt_path: Path, repo_root: Path, config_dir: str | None) -> str:
9
8
  # assert model == "qwen", "Only qwen is supported currently."
10
9
  # assert provider == "qwen", "Only qwen is supported currently."
11
10
  # model = "qwen"
@@ -14,12 +13,12 @@ def fire_qwen(config_dir: Optional[str], model: Literal["qwen"], provider: Liter
14
13
  # if model is None:
15
14
  # model_arg = ""
16
15
  # else:
17
- _ = provider
16
+ _ = ai_spec["provider"]
18
17
  # model_arg = f"--model {shlex.quote(model)}"
19
18
  # Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
20
19
  safe_path = shlex.quote(str(prompt_path))
21
20
 
22
- match machine:
21
+ match ai_spec["machine"]:
23
22
  case "local":
24
23
  # Export the environment variable so it's available to subshells
25
24
  cmd = f"""
@@ -37,7 +36,7 @@ docker run -it --rm \
37
36
  -v {shlex.quote(str(oauth_creds))}:/root/.qwen/oauth_creds.json \
38
37
  -v {shlex.quote(str(settings))}:/root/.qwen/settings.json \
39
38
  -w "/workspace/{repo_root.name}" \
40
- statistician/machineconfig:latest \
39
+ statistician/machineconfig-ai:latest \
41
40
  qwen --prompt "$PATH_PROMPT"
42
41
  """
43
42
  return cmd
@@ -2,7 +2,7 @@
2
2
  import random
3
3
  import shlex
4
4
  from pathlib import Path
5
- from machineconfig.scripts.python.helpers_fire.fire_agents_helper_types import AGENTS, AGENT_NAME_FORMATTER, HOST, PROVIDER, MODEL
5
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, AGENT_NAME_FORMATTER, HOST, PROVIDER, AI_SPEC
6
6
 
7
7
 
8
8
  def get_api_keys(provider: PROVIDER) -> list[str]:
@@ -20,7 +20,7 @@ def get_api_keys(provider: PROVIDER) -> list[str]:
20
20
 
21
21
 
22
22
  def prep_agent_launch(repo_root: Path, agents_dir: Path, prompts_material: list[str], prompt_prefix: str, keep_material_in_separate_file: bool,
23
- machine: HOST, model: MODEL, provider: PROVIDER, agent: AGENTS, *, job_name: str) -> None:
23
+ machine: HOST, model: str, provider: PROVIDER, agent: AGENTS, *, job_name: str) -> None:
24
24
  agents_dir.mkdir(parents=True, exist_ok=True)
25
25
  prompt_folder = agents_dir / "prompts"
26
26
  prompt_folder.mkdir(parents=True, exist_ok=True)
@@ -66,17 +66,20 @@ sleep 0.1
66
66
  assert provider == "google", "Gemini agent only works with google provider."
67
67
  api_keys = get_api_keys(provider="google")
68
68
  api_key = api_keys[idx % len(api_keys)] if len(api_keys) > 0 else None
69
- from machineconfig.scripts.python.helpers_fire.agentic_frameworks.fire_gemini import fire_gemini
70
- cmd = fire_gemini(api_key=api_key, prompt_path=prompt_path, machine=machine, model="gemini-2.5-pro", provider="google", repo_root=repo_root)
69
+ ai_spec: AI_SPEC = AI_SPEC(provider=provider, model="gemini-2.5-pro", agent=agent, machine=machine, api_key=api_key, api_name="gemini")
70
+ from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_gemini import fire_gemini
71
+ cmd = fire_gemini(ai_spec=ai_spec, prompt_path=prompt_path, repo_root=repo_root)
71
72
  case "cursor-agent":
72
- from machineconfig.scripts.python.helpers_fire.agentic_frameworks.fire_cursor_agents import fire_cursor
73
- cmd = fire_cursor(prompt_path=prompt_path, machine=machine, api_key=None)
73
+ ai_spec: AI_SPEC = AI_SPEC(provider=provider, model=model, agent=agent, machine=machine, api_key=None, api_name="cursor")
74
+ from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_cursor_agents import fire_cursor
75
+ cmd = fire_cursor(ai_spec=ai_spec, prompt_path=prompt_path)
74
76
  raise NotImplementedError("Cursor agent is not implemented yet, api key missing")
75
77
  case "crush":
76
- from machineconfig.scripts.python.helpers_fire.agentic_frameworks.fire_crush import fire_crush
77
78
  api_keys = get_api_keys(provider=provider)
78
79
  api_key = api_keys[idx % len(api_keys)] if len(api_keys) > 0 else None
79
- cmd = fire_crush(api_key=api_key, prompt_path=prompt_path, machine=machine, repo_root=repo_root, model=model, provider=provider)
80
+ ai_spec: AI_SPEC = AI_SPEC(provider=provider, model=model, agent=agent, machine=machine, api_key=api_key, api_name="crush")
81
+ from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_crush import fire_crush
82
+ cmd = fire_crush(ai_spec=ai_spec, prompt_path=prompt_path, repo_root=repo_root)
80
83
  # case "q":
81
84
  # from machineconfig.scripts.python.helpers_fire.fire_q import fire_q
82
85
  # cmd = fire_q(api_key="", prompt_path=prompt_path, machine=machine)
@@ -19,24 +19,14 @@ from typing import Literal, TypeAlias, TypedDict
19
19
  AGENTS: TypeAlias = Literal["cursor-agent", "gemini", "qwen-code", "copilot", "crush", "q", "opencode", "kilocode", "cline", "auggie", "warp", "droid"]
20
20
  HOST: TypeAlias = Literal["local", "docker"]
21
21
  PROVIDER: TypeAlias = Literal["azure", "google", "aws", "openai", "anthropic", "openrouter", "xai"]
22
- MODEL: TypeAlias = Literal["zai/glm-4.6", "anthropic/sonnet-4.5", "google/gemini-2.5-pro", "openai/gpt-5-codex",
23
- "openrouter/supernova", "x-ai/grok-4-fast:free",
24
- ]
25
- PROVIDER2MODEL: dict[PROVIDER, list[MODEL]] = {
26
- "azure": ["zai/glm-4.6"],
27
- "google": ["google/gemini-2.5-pro"],
28
- "aws": [],
29
- "openai": ["openai/gpt-5-codex"],
30
- "anthropic": ["anthropic/sonnet-4.5"],
31
- "openrouter": ["openrouter/supernova"],
32
- "xai": ["x-ai/grok-4-fast:free"]
33
- }
34
22
 
35
23
  class AI_SPEC(TypedDict):
36
24
  provider: PROVIDER
37
- model: MODEL
25
+ model: str
38
26
  agent: AGENTS
39
- machine: HOST
27
+ machine: HOST
28
+ api_key: str | None
29
+ api_name: str
40
30
 
41
31
 
42
32
  AGENT_NAME_FORMATTER = "agent_{idx}_cmd.sh" # e.g., agent_0_cmd.sh
@@ -0,0 +1,6 @@
1
+
2
+ please look if it is possible to easily relpace PathExtended with normal Path from pathlib
3
+ if its one or two lines of code, then go ahead and make it standard and stop using the extended library
4
+ you focus ont he methods used,
5
+
6
+ only look at the files below
@@ -0,0 +1,24 @@
1
+
2
+ #!/bin/bash
3
+ # set -e # Exit immediately if a command exits with a non-zero status.
4
+
5
+ JOB_NAME="outpatient_mapping"
6
+ REPO_ROOT="$HOME/code/machineconfig"
7
+ CONTEXT_PATH="$REPO_ROOT/.ai/todo/files.md"
8
+ # agents make-todo --strategy keywords from machineconfig.utils.path_extended import PathExtended
9
+ PROMPT_PATH="$REPO_ROOT/src/machineconfig/scripts/python/helpers_agents/templates/prompt.txt"
10
+ AGENTS_DIR="$REPO_ROOT/.ai/agents/$JOB_NAME"
11
+
12
+ agents create --agents crush \
13
+ --host docker \
14
+ --model x-ai/grok-4-fast:free \
15
+ --provider openrouter \
16
+ --context-path $CONTEXT_PATH \
17
+ --prompt-path $PROMPT_PATH \
18
+ --job-name $JOB_NAME \
19
+ --agents-dir $AGENTS_DIR
20
+ sessions balance-load "$AGENTS_DIR/layout.json" --max-thresh 6 --breaking-method moreLayouts --thresh-type number --output-path "$AGENTS_DIR/layout_balanced.json"
21
+ sessions run "$AGENTS_DIR/layout_balanced.json" --kill-upon-completion
22
+
23
+
24
+ # agents collect $AGENTS_DIR "$REPO_ROOT/.ai/agents/$JOB_NAME/collected.txt"
@@ -46,7 +46,7 @@ def path():
46
46
  uv_with = ["textual"]
47
47
  uv_project_dir = None
48
48
  if not Path.home().joinpath("code/machineconfig").exists():
49
- uv_with.append("machineconfig>=6.85")
49
+ uv_with.append("machineconfig>=6.87")
50
50
  else:
51
51
  uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
52
52
  run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
@@ -41,9 +41,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
41
41
  else:
42
42
  import platform
43
43
  if platform.system() == "Windows":
44
- run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.85" """)
44
+ run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.87" """)
45
45
  else:
46
- run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.85" """)
46
+ run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.87" """)
47
47
  from machineconfig.profile.create_shell_profile import create_default_shell_profile
48
48
  if not no_copy_assets:
49
49
  create_default_shell_profile() # involves copying assets too
@@ -68,7 +68,7 @@ def navigate():
68
68
  path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
69
69
  from machineconfig.utils.code import run_shell_script
70
70
  if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
71
- else: executable = """--with "machineconfig>=6.85,textual" """
71
+ else: executable = """--with "machineconfig>=6.87,textual" """
72
72
  run_shell_script(f"""uv run {executable} {path}""")
73
73
 
74
74
 
@@ -219,3 +219,20 @@ uv add --group plot \
219
219
  """
220
220
  from machineconfig.utils.code import run_shell_script
221
221
  run_shell_script(script)
222
+ # def add_dev_packages(repo_dir: Annotated[Optional[str], typer.Option(..., "--repo-dir", "-r", help="Path to the repository root directory")] = None):
223
+ # if repo_dir is None:
224
+ # r_dir = Path.cwd()
225
+ # else:
226
+ # r_dir = Path(repo_dir).resolve()
227
+ # if not r_dir.exists() or not r_dir.is_dir() or not (r_dir / "pyproject.toml").exists():
228
+ # typer.echo(f"❌ The provided repo directory `{r_dir}` is not valid or does not contain a `pyproject.toml` file.")
229
+ # raise typer.Exit(code=1)
230
+ # command = f"""
231
+ # cd "{r_dir}" || exit 1
232
+ # uv add nbformat ipdb ipykernel ipython pylint pyright mypy pyrefly ty pytest
233
+ # """
234
+ # from machineconfig.utils.code import run_shell_script
235
+ # typer.echo(f"➡️ Installing dev packages in repo at `{r_dir}`...")
236
+ # run_shell_script(command)
237
+ # typer.echo(f"✅ Dev packages installed successfully in repo at `{r_dir}`.")
238
+ # # TODO: see upgrade packages.
@@ -1,7 +1,7 @@
1
-
2
1
  from typing import Optional
3
2
  import os
4
3
  from machineconfig.utils.path_extended import PathExtended
4
+ import platform
5
5
 
6
6
 
7
7
  def search_for_files_of_interest(path_obj: PathExtended):
@@ -125,3 +125,42 @@ def wrap_import_in_try_except(import_line: str, pyfile: str, repo_root: Optional
125
125
  sys.path.append(repo_root)
126
126
  exec(f"from {Path(pyfile).stem} import *")
127
127
  print(fr"✅ Successfully imported `{pyfile}`")
128
+
129
+
130
+ def add_to_path(path_variable: str, directory: str) -> str:
131
+ """
132
+ Generate shell script to add directory to path_variable.
133
+ Handles both Windows (cmd) and Unix-like systems (bash/zsh).
134
+ Checks if variable exists before appending, otherwise creates it.
135
+ """
136
+ system = platform.system()
137
+
138
+ if system == "Windows":
139
+ script = f"""# Check if {path_variable} is defined
140
+ if (Test-Path env:{path_variable}) {{
141
+ Write-Host "Adding {directory} to existing {path_variable}"
142
+ $currentValue = [Environment]::GetEnvironmentVariable("{path_variable}", "User")
143
+ $newValue = "$currentValue;{directory}"
144
+ [Environment]::SetEnvironmentVariable("{path_variable}", $newValue, "User")
145
+ $env:{path_variable} = $newValue
146
+ }} else {{
147
+ Write-Host "Creating new {path_variable} variable"
148
+ [Environment]::SetEnvironmentVariable("{path_variable}", "{directory}", "User")
149
+ $env:{path_variable} = "{directory}"
150
+ }}
151
+ Write-Host "{path_variable} is now: $env:{path_variable}\""""
152
+ return script
153
+ else:
154
+ script = f"""#!/bin/bash
155
+ # Check if {path_variable} is defined and not empty
156
+ if [ -z "${{{path_variable}}}" ]; then
157
+ echo "Creating new {path_variable} variable"
158
+ export {path_variable}="{directory}"
159
+ else
160
+ echo "Adding {directory} to existing {path_variable}"
161
+ export {path_variable}="${{{path_variable}}}:{directory}"
162
+ fi
163
+ echo "{path_variable} is now: ${{{path_variable}}}"
164
+ """
165
+ return script
166
+
@@ -22,7 +22,7 @@ def choose_function_or_lines(choice_file: PathExtended, kwargs_dict: dict[str, o
22
22
  choice_function: Optional[str] = None
23
23
 
24
24
  if choice_file.suffix == ".py":
25
- from machineconfig.scripts.python.helpers_fire.helpers4 import parse_pyfile
25
+ from machineconfig.scripts.python.helpers_fire_command.file_wrangler import parse_pyfile
26
26
  options, func_args = parse_pyfile(file_path=str(choice_file))
27
27
  choice_function_tmp = choose_from_options(msg="Choose a function to run", options=options, fzf=True, multi=False)
28
28
  assert isinstance(choice_function_tmp, str), f"choice_function must be a string. Got {type(choice_function_tmp)}"
@@ -80,7 +80,7 @@ git pull originEnc master
80
80
  uv_project_dir = f"""{str(Path.home().joinpath("code/machineconfig"))}"""
81
81
  uv_with = None
82
82
  else:
83
- uv_with = ["machineconfig>=6.85"]
83
+ uv_with = ["machineconfig>=6.87"]
84
84
  uv_project_dir = None
85
85
 
86
86
  import tempfile
@@ -21,7 +21,7 @@ def create_from_function(
21
21
  suffixes = {".py"}
22
22
  choice_file = match_file_name(sub_string=path, search_root=PathExtended.cwd(), suffixes=suffixes)
23
23
  elif path_obj.is_dir():
24
- from machineconfig.scripts.python.helpers_fire.helpers4 import search_for_files_of_interest
24
+ from machineconfig.scripts.python.helpers_fire_command.file_wrangler import search_for_files_of_interest
25
25
  print(f"🔍 Searching recursively for Python, PowerShell and Shell scripts in directory `{path_obj}`")
26
26
  files = search_for_files_of_interest(path_obj)
27
27
  print(f"🔍 Got #{len(files)} results.")
@@ -5,7 +5,7 @@
5
5
  # mkdir ~/data/local
6
6
  # sudo mount -o nolock,noatime,nodiratime,proto=tcp,timeo=600,retrans=2,noac alex-p51s-5:/home/alex/data/local ./data/local
7
7
 
8
- uv run --python 3.14 --with "machineconfig>=6.85" python -m machineconfig.scripts.python.mount_nfs
8
+ uv run --python 3.14 --with "machineconfig>=6.87" python -m machineconfig.scripts.python.mount_nfs
9
9
  # Check if remote server is reachable and share folder exists
10
10
  if ! ping -c 1 "$remote_server" &> /dev/null; then
11
11
  echo "💥 Error: Remote server $remote_server is not reachable."
@@ -51,7 +51,7 @@ def select_layout(layouts_json_file: Path, selected_layouts_names: Optional[list
51
51
 
52
52
  def find_layout_file(layout_path: str, ) -> Path:
53
53
  from machineconfig.utils.path_extended import PathExtended
54
- from machineconfig.scripts.python.helpers_fire.helpers4 import search_for_files_of_interest
54
+ from machineconfig.scripts.python.helpers_fire_command.file_wrangler import search_for_files_of_interest
55
55
  from machineconfig.utils.options import choose_from_options
56
56
  from machineconfig.utils.path_helper import match_file_name, sanitize_path
57
57
  path_obj = sanitize_path(layout_path)
@@ -2,9 +2,7 @@
2
2
 
3
3
  from machineconfig.scripts.python.helpers_devops.cli_utils import download, merge_pdfs, get_machine_specs, init_project, compress_pdf
4
4
  import typer
5
- from typing import Annotated, Optional
6
- from pathlib import Path
7
-
5
+ from typing import Annotated
8
6
 
9
7
  def kill_process(
10
8
  # name: Annotated[Optional[str], typer.Option(..., "--name", "-n", help="Name of the process to kill")],
@@ -21,31 +19,20 @@ def kill_process(
21
19
  # )
22
20
 
23
21
 
24
- def add_dev_packages(repo_dir: Annotated[Optional[str], typer.Option(..., "--repo-dir", "-r", help="Path to the repository root directory")] = None):
25
- if repo_dir is None:
26
- r_dir = Path.cwd()
27
- else:
28
- r_dir = Path(repo_dir).resolve()
29
- if not r_dir.exists() or not r_dir.is_dir() or not (r_dir / "pyproject.toml").exists():
30
- typer.echo(f"❌ The provided repo directory `{r_dir}` is not valid or does not contain a `pyproject.toml` file.")
31
- raise typer.Exit(code=1)
32
- command = f"""
33
- cd "{r_dir}" || exit 1
34
- uv add nbformat ipdb ipykernel ipython pylint pyright mypy pyrefly ty pytest
35
- """
36
- from machineconfig.utils.code import run_shell_script
37
- typer.echo(f"➡️ Installing dev packages in repo at `{r_dir}`...")
38
- run_shell_script(command)
39
- typer.echo(f"✅ Dev packages installed successfully in repo at `{r_dir}`.")
40
- # TODO: see upgrade packages.
41
-
42
-
22
+ def upgrade_packages():
23
+ from machineconfig.utils.upgrade_packages import generate_uv_add_commands
24
+ from pathlib import Path
25
+ generate_uv_add_commands(pyproject_path=Path.cwd() / "pyproject.toml", output_path=Path.cwd() / "pyproject_init.sh")
43
26
 
44
27
 
45
28
  def get_app() -> typer.Typer:
46
29
  app = typer.Typer(help="🛠️ utilities operations", no_args_is_help=True, add_help_option=False, add_completion=False)
47
30
  app.command(name="kill-process", no_args_is_help=False, help="[k] Choose a process to kill")(kill_process)
48
31
  app.command(name="k", no_args_is_help=False, help="Choose a process to kill", hidden=True)(kill_process)
32
+
33
+ app.command(name="upgrade-packages", no_args_is_help=False, help="[up] Upgrade project dependencies.")(upgrade_packages)
34
+ app.command(name="up", no_args_is_help=False, hidden=True)(upgrade_packages)
35
+
49
36
  app.command(name="download", no_args_is_help=True, help="[d] Download a file from a URL and optionally decompress it.")(download)
50
37
  app.command(name="d", no_args_is_help=True, hidden=True)(download)
51
38
  app.command(name="get-machine-specs", no_args_is_help=False, help="[g] Get machine specifications.")(get_machine_specs)