machineconfig 3.99__tar.gz → 4.1__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 (419) hide show
  1. {machineconfig-3.99/src/machineconfig.egg-info → machineconfig-4.1}/PKG-INFO +1 -1
  2. {machineconfig-3.99 → machineconfig-4.1}/pyproject.toml +9 -11
  3. machineconfig-4.1/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +168 -0
  4. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_local.py +1 -1
  5. machineconfig-4.1/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +6 -0
  6. machineconfig-4.1/src/machineconfig/jobs/installer/linux_scripts/q.sh +8 -0
  7. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/packages_custom_dev.json +155 -1
  8. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/packages_github_dev.json +19 -2
  9. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/packages_github_essential.json +0 -17
  10. machineconfig-4.1/src/machineconfig/jobs/linux/msc/cli_agents.sh +16 -0
  11. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/devops_devapps_install.py +52 -41
  12. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_agents.py +0 -22
  13. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/share_terminal.py +37 -6
  14. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/installer.py +9 -9
  15. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/schemas/layouts/layout_types.py +2 -1
  16. {machineconfig-3.99 → machineconfig-4.1/src/machineconfig.egg-info}/PKG-INFO +1 -1
  17. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig.egg-info/SOURCES.txt +4 -1
  18. machineconfig-3.99/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -37
  19. {machineconfig-3.99 → machineconfig-4.1}/MANIFEST.in +0 -0
  20. {machineconfig-3.99 → machineconfig-4.1}/README.md +0 -0
  21. {machineconfig-3.99 → machineconfig-4.1}/setup.cfg +0 -0
  22. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/__init__.py +0 -0
  23. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/__init__.py +0 -0
  24. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  25. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  26. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/distribute.py +0 -0
  27. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  28. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/job_params.py +0 -0
  29. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  30. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  31. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  32. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  33. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  34. {machineconfig-3.99/src/machineconfig/cluster/sessions_managers → machineconfig-4.1/src/machineconfig/cluster/sessions_managers/utils}/enhanced_command_runner.py +0 -0
  35. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  36. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  37. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  38. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  39. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  40. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  41. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  42. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  43. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  44. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  45. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  46. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  47. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  48. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  49. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  50. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  51. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  52. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  53. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  54. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/templates/__init__.py +0 -0
  55. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  56. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/templates/run_cloud.py +0 -0
  57. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/templates/run_cluster.py +0 -0
  58. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/templates/run_remote.py +0 -0
  59. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/cluster/templates/utils.py +0 -0
  60. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/__init__.py +0 -0
  61. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/__init__.py +0 -0
  62. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  63. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  64. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  65. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  66. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  67. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  68. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  69. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  70. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  71. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  72. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  73. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  74. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  75. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  76. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  77. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  78. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  79. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  80. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  81. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  82. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  83. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  84. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  85. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  86. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  87. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  88. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  89. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/packages_custom_essential.json +0 -0
  90. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  91. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  92. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  93. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/__init__.py +0 -0
  94. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/check_installations.py +0 -0
  95. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
  96. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
  97. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  98. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/tasks.py +0 -0
  99. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  100. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  101. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  102. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  103. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  104. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  105. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  106. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  107. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  108. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/logger.py +0 -0
  109. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/__init__.py +0 -0
  110. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/create.py +0 -0
  111. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  112. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  113. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  114. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  115. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  116. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/profile/shell.py +0 -0
  117. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/__init__.py +0 -0
  118. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/cloud/init.sh +0 -0
  119. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  120. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  121. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  122. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  123. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  124. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/croshell +0 -0
  125. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/devops +0 -0
  126. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fire +0 -0
  127. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fire_agents +0 -0
  128. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/ftpx +0 -0
  129. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fzf2g +0 -0
  130. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fzfag +0 -0
  131. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fzffg +0 -0
  132. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fzfg +0 -0
  133. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/fzfrga +0 -0
  134. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/gh_models +0 -0
  135. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/initai +0 -0
  136. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/kill_process +0 -0
  137. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/mount_drive +0 -0
  138. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  139. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  140. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/mount_smb +0 -0
  141. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/programs +0 -0
  142. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/repos +0 -0
  143. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/scheduler +0 -0
  144. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  145. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/share_nfs +0 -0
  146. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/share_smb +0 -0
  147. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/skrg +0 -0
  148. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/start_docker +0 -0
  149. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/start_slidev +0 -0
  150. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/start_terminals +0 -0
  151. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/switch_ip +0 -0
  152. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  153. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  154. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/linux/z_ls +0 -0
  155. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/__init__.py +0 -0
  156. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  157. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  158. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  159. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  160. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  161. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  162. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  163. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  164. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  165. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  166. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  167. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  168. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  169. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  170. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  171. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  172. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  173. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  174. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  175. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  176. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  177. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  178. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  179. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  180. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  181. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  182. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  183. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  184. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  185. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  186. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  187. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  188. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  189. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/croshell.py +0 -0
  190. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/devops.py +0 -0
  191. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  192. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  193. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  194. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  195. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/dotfile.py +0 -0
  196. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
  197. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  198. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
  199. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  200. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  201. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -0
  202. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  203. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/ftpx.py +0 -0
  204. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  205. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/gh_models.py +0 -0
  206. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  207. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  208. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  209. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  210. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  211. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  212. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/interactive.py +0 -0
  213. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  214. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  215. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  216. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  217. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  218. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/repos.py +0 -0
  219. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  220. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  221. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  222. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  223. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/scheduler.py +0 -0
  224. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/snapshot.py +0 -0
  225. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  226. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  227. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/t4.py +0 -0
  228. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/viewer.py +0 -0
  229. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  230. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  231. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  232. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  233. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  234. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  235. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  236. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  237. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  238. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  239. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  240. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  241. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  242. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  243. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  244. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  245. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  246. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  247. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  248. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  249. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  250. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  251. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  252. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  253. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  254. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  255. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  256. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/repos.ps1 +0 -0
  257. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  258. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  259. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  260. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  261. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  262. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  263. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  264. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  265. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  266. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  267. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  268. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/__init__.py +0 -0
  269. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/broot/br.sh +0 -0
  270. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  271. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/broot/conf.toml +0 -0
  272. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/glow/glow.yml +0 -0
  273. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  274. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/helix/config.toml +0 -0
  275. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/helix/languages.toml +0 -0
  276. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/keras/keras.json +0 -0
  277. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  278. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  279. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  280. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  281. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  282. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  283. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  284. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  285. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  286. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  287. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/colors +0 -0
  288. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  289. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  290. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  291. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  292. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  293. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  294. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/icons +0 -0
  295. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  296. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  297. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  298. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  299. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  300. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  301. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  302. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  303. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  304. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  305. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  306. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/colors +0 -0
  307. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  308. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/icons +0 -0
  309. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  310. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  311. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  312. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  313. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  314. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  315. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  316. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/linters/.flake8 +0 -0
  317. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  318. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/linters/.pylintrc +0 -0
  319. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  320. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  321. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  322. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  323. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  324. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  325. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/mprocs/windows/other +0 -0
  326. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  327. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  328. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/procs/.procs.toml +0 -0
  329. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  330. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/rofi/config.rasi +0 -0
  331. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  332. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  333. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  334. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  335. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  336. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  337. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  338. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  339. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  340. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  341. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  342. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  343. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  344. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  345. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  346. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  347. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  348. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/streamlit/config.toml +0 -0
  349. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  350. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  351. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  352. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/tere/terecd.sh +0 -0
  353. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  354. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  355. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  356. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  357. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/yazi/theme.toml +0 -0
  358. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  359. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zed/settings.json +0 -0
  360. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  361. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  362. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/config.kdl +0 -0
  363. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  364. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  365. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  366. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  367. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  368. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  369. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/__init__.py +0 -0
  370. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  371. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  372. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  373. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  374. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -0
  375. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  376. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  377. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  378. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/__init__.py +0 -0
  379. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  380. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  381. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  382. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  383. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  384. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  385. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  386. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  387. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  388. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/__init__.py +0 -0
  389. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/accessories.py +0 -0
  390. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/ai/__init__.py +0 -0
  391. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  392. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  393. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  394. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/code.py +0 -0
  395. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  396. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  397. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  398. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  399. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/io.py +0 -0
  400. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/links.py +0 -0
  401. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/notifications.py +0 -0
  402. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/options.py +0 -0
  403. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/path_extended.py +0 -0
  404. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/path_helper.py +0 -0
  405. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/procs.py +0 -0
  406. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/scheduler.py +0 -0
  407. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/scheduling.py +0 -0
  408. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  409. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  410. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  411. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/source_of_truth.py +0 -0
  412. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/ssh.py +0 -0
  413. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/terminal.py +0 -0
  414. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/upgrade_packages.py +0 -0
  415. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig/utils/ve.py +0 -0
  416. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  417. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig.egg-info/entry_points.txt +0 -0
  418. {machineconfig-3.99 → machineconfig-4.1}/src/machineconfig.egg-info/requires.txt +0 -0
  419. {machineconfig-3.99 → machineconfig-4.1}/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: 3.99
3
+ Version: 4.1
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 = "3.99"
9
+ version = "4.01"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -52,25 +52,23 @@ docs = [
52
52
 
53
53
  [project.scripts]
54
54
  devops = "machineconfig.scripts.python.devops:app"
55
+ fire = "machineconfig.scripts.python.fire_jobs:main_from_parser"
56
+ fire_agents = "machineconfig.scripts.python.fire_agents:main"
57
+ initai = "machineconfig.scripts.python.ai.initai:main"
58
+
55
59
  choose_wezterm_theme = "machineconfig.scripts.python.choose_wezterm_theme:main"
56
60
  cloud_copy = "machineconfig.scripts.python.cloud_copy:arg_parser"
57
61
  cloud_mount = "machineconfig.scripts.python.cloud_mount:arg_parser"
58
62
  cloud_repo_sync = "machineconfig.scripts.python.cloud_repo_sync:args_parser"
59
63
  cloud_sync = "machineconfig.scripts.python.cloud_sync:arg_parser"
60
- croshell = "machineconfig.scripts.python.croshell:arg_parser"
61
- fire = "machineconfig.scripts.python.fire_jobs:main_from_parser"
62
- fire_agents = "machineconfig.scripts.python.fire_agents:main"
63
64
  ftpx = "machineconfig.scripts.python.ftpx:main_from_parser"
64
- initai = "machineconfig.scripts.python.ai.initai:main"
65
- mount_nfs = "machineconfig.scripts.python.mount_nfs:main"
66
- mount_nw_drive = "machineconfig.scripts.python.mount_nw_drive:main"
67
65
  repos = "machineconfig.scripts.python.repos:main_from_parser"
68
66
  start_slidev = "machineconfig.scripts.python.start_slidev:arg_parser"
69
- wifi_conn = "machineconfig.scripts.python.wifi_conn:arg_parser"
70
67
  kill_process = "machineconfig.utils.procs:main"
71
- # ia = "machineconfig.scripts.python.interactive:main" # Used
72
- # install = "machineconfig.scripts.python.devops_devapps_install:main_with_parser"
73
- # share_terminal = "machineconfig.scripts.python.share_terminal:main_with_parser"
68
+ wifi_conn = "machineconfig.scripts.python.wifi_conn:arg_parser"
69
+ mount_nfs = "machineconfig.scripts.python.mount_nfs:main"
70
+ mount_nw_drive = "machineconfig.scripts.python.mount_nw_drive:main"
71
+ croshell = "machineconfig.scripts.python.croshell:arg_parser"
74
72
 
75
73
  [tool.setuptools]
76
74
  package-dir = {"" = "src"}
@@ -0,0 +1,168 @@
1
+
2
+ from machineconfig.utils.schemas.layouts.layout_types import TabConfig, LayoutConfig
3
+ from machineconfig.utils.accessories import split_list
4
+ from typing import Literal
5
+
6
+
7
+
8
+ def split_tabs_by_weight(tabs: list[TabConfig], max_weight: int) -> list[list[TabConfig]]:
9
+ """Split tabs into chunks where each chunk's total weight <= max_weight."""
10
+ chunks: list[list[TabConfig]] = []
11
+ current_chunk: list[TabConfig] = []
12
+ current_weight = 0
13
+ for tab in tabs:
14
+ tab_weight = tab.get("tabWeight", 1)
15
+ if current_weight + tab_weight > max_weight and current_chunk:
16
+ chunks.append(current_chunk)
17
+ current_chunk = [tab]
18
+ current_weight = tab_weight
19
+ else:
20
+ current_chunk.append(tab)
21
+ current_weight += tab_weight
22
+
23
+ if current_chunk:
24
+ chunks.append(current_chunk)
25
+
26
+ return chunks
27
+
28
+
29
+ def combine_tabs_into_super_tabs(tabs: list[TabConfig], num_super_tabs: int) -> list[TabConfig]:
30
+ """Combine tabs into num_super_tabs super tabs with combined commands."""
31
+ if len(tabs) <= num_super_tabs:
32
+ return tabs # No need to combine
33
+
34
+ tab_groups = split_list(tabs, to=num_super_tabs)
35
+ super_tabs: list[TabConfig] = []
36
+ for idx, group in enumerate(tab_groups):
37
+ if len(group) == 1:
38
+ super_tabs.append(group[0])
39
+ else:
40
+ combined_command = "; ".join(tab["command"] for tab in group)
41
+ combined_name = f"super_tab_{idx+1}"
42
+ # Use startDir of the first tab
43
+ start_dir = group[0]["startDir"]
44
+ # Sum weights
45
+ total_weight = sum(tab.get("tabWeight", 1) for tab in group)
46
+ super_tabs.append({
47
+ "tabName": combined_name,
48
+ "startDir": start_dir,
49
+ "command": combined_command,
50
+ "tabWeight": total_weight
51
+ })
52
+ return super_tabs
53
+
54
+
55
+ def combine_tabs_by_weight_into_super_tabs(tabs: list[TabConfig], max_weight: int) -> list[TabConfig]:
56
+ """Combine tabs into super tabs where each super tab has weight <= max_weight."""
57
+ tab_groups = split_tabs_by_weight(tabs, max_weight=max_weight)
58
+ super_tabs: list[TabConfig] = []
59
+ for idx, group in enumerate(tab_groups):
60
+ if len(group) == 1:
61
+ super_tabs.append(group[0])
62
+ else:
63
+ combined_command = "; ".join(tab["command"] for tab in group)
64
+ combined_name = f"super_tab_{idx+1}"
65
+ start_dir = group[0]["startDir"]
66
+ total_weight = sum(tab.get("tabWeight", 1) for tab in group)
67
+ super_tabs.append({
68
+ "tabName": combined_name,
69
+ "startDir": start_dir,
70
+ "command": combined_command,
71
+ "tabWeight": total_weight
72
+ })
73
+ return super_tabs
74
+
75
+
76
+ def restrict_num_tabs(layout_configs: list[LayoutConfig], max_thresh: int, threshold_type: Literal["number", "weight"], breaking_method: Literal["moreLayouts", "combineTabs"]) -> list[LayoutConfig]:
77
+ match threshold_type, breaking_method:
78
+ case "number", "moreLayouts":
79
+ return _restrict_num_tabs_helper1(layout_configs=layout_configs, max_thresh=max_thresh, threshold_type=threshold_type, breaking_method=breaking_method)
80
+ case "number", "combineTabs":
81
+ return _restrict_num_tabs_helper2(layout_configs=layout_configs, max_thresh=max_thresh, threshold_type=threshold_type, breaking_method=breaking_method)
82
+ case "weight", "moreLayouts":
83
+ return _restrict_num_tabs_helper3(layout_configs=layout_configs, max_thresh=max_thresh, threshold_type=threshold_type, breaking_method=breaking_method)
84
+ case "weight", "combineTabs":
85
+ return _restrict_num_tabs_helper4(layout_configs=layout_configs, max_thresh=max_thresh, threshold_type=threshold_type, breaking_method=breaking_method)
86
+ case _:
87
+ raise NotImplementedError(f"The combination {threshold_type}, {breaking_method} is not implemented")
88
+
89
+
90
+ def _restrict_num_tabs_helper1(layout_configs: list[LayoutConfig], max_thresh: int, threshold_type: Literal["number"], breaking_method: Literal["moreLayouts"]) -> list[LayoutConfig]:
91
+ """When threshold is exceeded, create more layouts with max_thresh tabs each."""
92
+ new_layout_configs: list[LayoutConfig] = []
93
+ for a_layout_config in layout_configs:
94
+ if len(a_layout_config["layoutTabs"]) > max_thresh:
95
+ print(f"Layout '{a_layout_config['layoutName']}' has too many tabs ({len(a_layout_config['layoutTabs'])} > {max_thresh}). Splitting into multiple layouts.")
96
+ tab_chunks = split_list(a_layout_config["layoutTabs"], every=max_thresh)
97
+ for idx, tab_chunk in enumerate(tab_chunks):
98
+ new_layout_configs.append({
99
+ "layoutName": f"{a_layout_config['layoutName']}_part{idx+1}",
100
+ "layoutTabs": tab_chunk
101
+ })
102
+ else:
103
+ print(f"Layout '{a_layout_config['layoutName']}' has acceptable number of tabs ({len(a_layout_config['layoutTabs'])} <= {max_thresh}). Keeping as is.")
104
+ new_layout_configs.append(a_layout_config)
105
+ return new_layout_configs
106
+
107
+
108
+ def _restrict_num_tabs_helper2(layout_configs: list[LayoutConfig], max_thresh: int, threshold_type: Literal["number"], breaking_method: Literal["combineTabs"]) -> list[LayoutConfig]:
109
+ """When threshold is exceeded, combine tabs into super tabs to reduce count to max_thresh."""
110
+ new_layout_configs: list[LayoutConfig] = []
111
+ for a_layout_config in layout_configs:
112
+ num_tabs = len(a_layout_config["layoutTabs"])
113
+ if num_tabs > max_thresh:
114
+ print(f"Layout '{a_layout_config['layoutName']}' has too many tabs ({num_tabs} > {max_thresh}). Combining into {max_thresh} super tabs.")
115
+ super_tabs = combine_tabs_into_super_tabs(a_layout_config["layoutTabs"], num_super_tabs=max_thresh)
116
+ new_layout_configs.append({
117
+ "layoutName": a_layout_config["layoutName"],
118
+ "layoutTabs": super_tabs
119
+ })
120
+ else:
121
+ print(f"Layout '{a_layout_config['layoutName']}' has acceptable number of tabs ({num_tabs} <= {max_thresh}). Keeping as is.")
122
+ new_layout_configs.append(a_layout_config)
123
+ return new_layout_configs
124
+
125
+
126
+ def _restrict_num_tabs_helper3(layout_configs: list[LayoutConfig], max_thresh: int, threshold_type: Literal["weight"], breaking_method: Literal["moreLayouts"]) -> list[LayoutConfig]:
127
+ """When threshold is exceeded, create more layouts with max_thresh total weight each."""
128
+ new_layout_configs: list[LayoutConfig] = []
129
+ for a_layout_config in layout_configs:
130
+ layout_weight = sum(tab.get("tabWeight", 1) for tab in a_layout_config["layoutTabs"])
131
+ if layout_weight > max_thresh:
132
+ print(f"Layout '{a_layout_config['layoutName']}' has too much weight ({layout_weight} > {max_thresh}). Splitting into multiple layouts.")
133
+ tab_chunks = split_tabs_by_weight(a_layout_config["layoutTabs"], max_weight=max_thresh)
134
+ for idx, tab_chunk in enumerate(tab_chunks):
135
+ new_layout_configs.append({
136
+ "layoutName": f"{a_layout_config['layoutName']}_part{idx+1}",
137
+ "layoutTabs": tab_chunk
138
+ })
139
+ else:
140
+ print(f"Layout '{a_layout_config['layoutName']}' has acceptable total weight ({layout_weight} <= {max_thresh}). Keeping as is.")
141
+ new_layout_configs.append(a_layout_config)
142
+ return new_layout_configs
143
+
144
+
145
+ def _restrict_num_tabs_helper4(layout_configs: list[LayoutConfig], max_thresh: int, threshold_type: Literal["weight"], breaking_method: Literal["combineTabs"]) -> list[LayoutConfig]:
146
+ """When threshold is exceeded, combine tabs into super tabs with weight <= max_thresh."""
147
+ new_layout_configs: list[LayoutConfig] = []
148
+ for a_layout_config in layout_configs:
149
+ layout_weight = sum(tab.get("tabWeight", 1) for tab in a_layout_config["layoutTabs"])
150
+ if layout_weight > max_thresh:
151
+ print(f"Layout '{a_layout_config['layoutName']}' has too much weight ({layout_weight} > {max_thresh}). Combining into super tabs with weight <= {max_thresh}.")
152
+ super_tabs = combine_tabs_by_weight_into_super_tabs(a_layout_config["layoutTabs"], max_weight=max_thresh)
153
+ new_layout_configs.append({
154
+ "layoutName": a_layout_config["layoutName"],
155
+ "layoutTabs": super_tabs
156
+ })
157
+ else:
158
+ print(f"Layout '{a_layout_config['layoutName']}' has acceptable total weight ({layout_weight} <= {max_thresh}). Keeping as is.")
159
+ new_layout_configs.append(a_layout_config)
160
+ return new_layout_configs
161
+
162
+
163
+ def run(layouts: list[LayoutConfig]):
164
+ from machineconfig.cluster.sessions_managers.zellij_local_manager import ZellijLocalManager
165
+ manager = ZellijLocalManager(session_layouts=layouts)
166
+ manager.start_all_sessions(poll_interval=2, poll_seconds=2)
167
+ manager.run_monitoring_routine(wait_ms=2000)
168
+ manager.kill_all_sessions()
@@ -456,7 +456,7 @@ def run_zellij_layout(layout_config: LayoutConfig):
456
456
  layout_path = created_zellij_layout(layout_config, None)
457
457
  session_name = layout_config["layoutName"]
458
458
  try:
459
- from machineconfig.cluster.sessions_managers.enhanced_command_runner import enhanced_zellij_session_start
459
+ from machineconfig.cluster.sessions_managers.utils.enhanced_command_runner import enhanced_zellij_session_start
460
460
 
461
461
  enhanced_zellij_session_start(session_name, layout_path)
462
462
  except ImportError:
@@ -0,0 +1,6 @@
1
+ curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
2
+ | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
3
+ && echo "deb https://ngrok-agent.s3.amazonaws.com bookworm main" \
4
+ | sudo tee /etc/apt/sources.list.d/ngrok.list \
5
+ && sudo apt update \
6
+ && sudo apt install ngrok
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ cd $HOME/Downloads
4
+ curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
5
+ unzip q.zip
6
+ ./q/install.sh # goes to ~/.local/bin.
7
+ rm q.zip
8
+ rm -rfd q
@@ -1,6 +1,24 @@
1
1
  {
2
2
  "version": "1",
3
3
  "installers": [
4
+ {
5
+ "appName": "ngrok",
6
+ "repoURL": "CMD",
7
+ "doc": "Secure introspectable tunnels to localhost",
8
+ "fileNamePattern": {
9
+ "amd64": {
10
+ "linux": "ngrok.sh",
11
+ "windows": "winget install ngrok -s msstore",
12
+ "macos": "brew install ngrok"
13
+ },
14
+ "arm64": {
15
+ "linux": "ngrok.sh",
16
+ "windows": "winget install ngrok -s msstore",
17
+ "macos": "brew install ngrok"
18
+ }
19
+ }
20
+
21
+ },
4
22
  {
5
23
  "appName": "Visual Studio Code",
6
24
  "repoURL": "CMD",
@@ -19,7 +37,7 @@
19
37
  }
20
38
  },
21
39
  {
22
- "appName": "aider-chat",
40
+ "appName": "aider",
23
41
  "repoURL": "CMD",
24
42
  "doc": "Aider Chat",
25
43
  "fileNamePattern": {
@@ -35,6 +53,142 @@
35
53
  }
36
54
  }
37
55
  },
56
+ {
57
+ "appName": "github-copilot-cli",
58
+ "repoURL": "CMD",
59
+ "doc": "Terminal-based CLI agents and tools for productivity and coding.",
60
+ "fileNamePattern": {
61
+ "amd64": {
62
+ "linux": "npm install -g @github/copilot",
63
+ "windows": "npm install -g @github/copilot",
64
+ "macos": "npm install -g @github/copilot"
65
+ },
66
+ "arm64": {
67
+ "linux": "npm install -g @github/copilot",
68
+ "windows": "npm install -g @github/copilot",
69
+ "macos": "npm install -g @github/copilot"
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "appName": "gemini",
75
+ "repoURL": "CMD",
76
+ "doc": "Terminal-based CLI agents and tools for productivity and coding.",
77
+ "fileNamePattern": {
78
+ "amd64": {
79
+ "linux": "npm install -g @google/gemini-cli",
80
+ "windows": "npm install -g @google/gemini-cli",
81
+ "macos": "npm install -g @google/gemini-cli"
82
+ },
83
+ "arm64": {
84
+ "linux": "npm install -g @google/gemini-cli",
85
+ "windows": "npm install -g @google/gemini-cli",
86
+ "macos": "npm install -g @google/gemini-cli"
87
+ }
88
+ }
89
+ },
90
+ {
91
+ "appName": "crush",
92
+ "repoURL": "CMD",
93
+ "doc": "Terminal-based CLI agents and tools for productivity and coding.",
94
+ "fileNamePattern": {
95
+ "amd64": {
96
+ "linux": "npm install -g @charmland/crush",
97
+ "windows": "npm install -g @charmland/crush",
98
+ "macos": "npm install -g @charmland/crush"
99
+ },
100
+ "arm64": {
101
+ "linux": "npm install -g @charmland/crush",
102
+ "windows": "npm install -g @charmland/crush",
103
+ "macos": "npm install -g @charmland/crush"
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "appName": "opencode-ai",
109
+ "repoURL": "CMD",
110
+ "doc": "Terminal-based CLI agents and tools for productivity and coding.",
111
+ "fileNamePattern": {
112
+ "amd64": {
113
+ "linux": "npm install -g opencode-ai@latest",
114
+ "windows": "npm install -g opencode-ai@latest",
115
+ "macos": "npm install -g opencode-ai@latest"
116
+ },
117
+ "arm64": {
118
+ "linux": "npm install -g opencode-ai@latest",
119
+ "windows": "npm install -g opencode-ai@latest",
120
+ "macos": "npm install -g opencode-ai@latest"
121
+ }
122
+ }
123
+ },
124
+ {
125
+ "appName": "warp",
126
+ "repoURL": "CMD",
127
+ "doc": "Modern terminal with AI-powered features",
128
+ "fileNamePattern": {
129
+ "amd64": {
130
+ "linux": "https://app.warp.dev/download/cli?os=linux&package=deb&arch=x86_64",
131
+ "windows": null,
132
+ "macos": null
133
+ },
134
+ "arm64": {
135
+ "linux": "https://app.warp.dev/download/cli?os=linux&package=deb&arch=aarch64",
136
+ "windows": null,
137
+ "macos": null
138
+ }
139
+ }
140
+ },
141
+ {
142
+ "appName": "q",
143
+ "repoURL": "CMD",
144
+ "doc": "Q desktop application",
145
+ "fileNamePattern": {
146
+ "amd64": {
147
+ "linux": "q.sh",
148
+ "windows": null,
149
+ "macos": null
150
+ },
151
+ "arm64": {
152
+ "linux": null,
153
+ "windows": null,
154
+ "macos": null
155
+ }
156
+ }
157
+ },
158
+ {
159
+ "appName": "cursor-cli",
160
+ "repoURL": "CMD",
161
+ "doc": "Cursor CLI installer",
162
+ "fileNamePattern": {
163
+ "amd64": {
164
+ "linux": "curl https://cursor.com/install -fsS | bash",
165
+ "windows": null,
166
+ "macos": null
167
+ },
168
+ "arm64": {
169
+ "linux": null,
170
+ "windows": null,
171
+ "macos": null
172
+ }
173
+ }
174
+ },
175
+ {
176
+ "appName": "droid",
177
+ "repoURL": "CMD",
178
+ "doc": "Factory AI CLI installer",
179
+ "fileNamePattern": {
180
+ "amd64": {
181
+ "linux": "curl -fsSL https://app.factory.ai/cli | sh",
182
+ "windows": null,
183
+ "macos": null
184
+ },
185
+ "arm64": {
186
+ "linux": null,
187
+ "windows": null,
188
+ "macos": null
189
+ }
190
+ }
191
+ },
38
192
  {
39
193
  "appName": "Alacritty",
40
194
  "repoURL": "CMD",
@@ -245,17 +245,34 @@
245
245
  "doc": "🗃️ TUI DB Visualizer",
246
246
  "fileNamePattern": {
247
247
  "amd64": {
248
- "linux": "rainfrog-{version}-x86_64-unknown-linux-gnu.tar.gz",
248
+ "linux": "rainfrog-{version}-x86_64-unknown-linux-musl.tar.gz",
249
249
  "macos": null,
250
250
  "windows": null
251
251
  },
252
252
  "arm64": {
253
- "linux": "rainfrog-{version}-aarch64-unknown-linux-gnu.tar.gz",
253
+ "linux": "rainfrog-{version}-aarch64-unknown-linux-musl.tar.gz",
254
254
  "macos": null,
255
255
  "windows": null
256
256
  }
257
257
  }
258
258
  },
259
+ {
260
+ "appName": "duckdb",
261
+ "repoURL": "https://github.com/duckdb/duckdb",
262
+ "doc": "🗃️ An in-process SQL OLAP database management system",
263
+ "fileNamePattern": {
264
+ "amd64": {
265
+ "linux": "duckdb_cli-linux-amd64.zip",
266
+ "macos": "duckdb_cli-osx-universal.zip",
267
+ "windows": "duckdb_cli-windows-amd64.zip"
268
+ },
269
+ "arm64": {
270
+ "linux": "duckdb_cli-linux-arm64.zip",
271
+ "macos": "duckdb_cli-osx-universal.zip",
272
+ "windows": "duckdb_cli-windows-arm64.zip"
273
+ }
274
+ }
275
+ },
259
276
  {
260
277
  "appName": "cpz",
261
278
  "repoURL": "https://github.com/SUPERCILEX/fuc",
@@ -409,23 +409,6 @@
409
409
  }
410
410
  }
411
411
  },
412
- {
413
- "appName": "gemini-cli",
414
- "repoURL": "CMD",
415
- "doc": "🤖 Gemini CLI is a command line interface for Google Gemini AI.",
416
- "fileNamePattern": {
417
- "amd64": {
418
- "linux": "npm install -g @google/gemini-cli",
419
- "macos": "npm install -g @google/gemini-cli",
420
- "windows": "npm install -g @google/gemini-cli"
421
- },
422
- "arm64": {
423
- "linux": "npm install -g @google/gemini-cli",
424
- "macos": "npm install -g @google/gemini-cli",
425
- "windows": "npm install -g @google/gemini-cli"
426
- }
427
- }
428
- },
429
412
  {
430
413
  "appName": "gitui",
431
414
  "repoURL": "https://github.com/gitui-org/gitui",
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+
3
+
4
+ # Vscode extensions for AI-assisted coding.
5
+ # Github copilot
6
+ # Roo
7
+ # Cline
8
+ # Kilocode
9
+ # Continue
10
+ # CodeGPT
11
+ # qodo (and cli)
12
+
13
+ # Editors based on AI
14
+ # Kiro
15
+ # Cursor
16
+ # Warp
@@ -8,6 +8,42 @@ from typing import Optional, Literal, TypeAlias, cast, get_args, Annotated
8
8
  WHICH_CAT: TypeAlias = Literal["essentials", "essentialsDev", "systymPackages", "precheckedPackages", "ia"]
9
9
 
10
10
 
11
+ def _handle_installer_not_found(search_term: str, all_installers: list["InstallerData"]) -> None: # type: ignore
12
+ """Handle installer not found with friendly suggestions using fuzzy matching."""
13
+ from difflib import get_close_matches
14
+
15
+ # Get all possible names (both exe names and app names)
16
+ all_names = []
17
+ for inst in all_installers:
18
+ exe_name = inst["appName"]
19
+ all_names.append(exe_name)
20
+
21
+ # Find close matches using fuzzy matching
22
+ close_matches = get_close_matches(search_term, all_names, n=5, cutoff=0.4)
23
+
24
+ print(f"\n❌ '{search_term}' was not found.")
25
+
26
+ if close_matches:
27
+ print("🤔 Did you mean one of these?")
28
+ for i, match in enumerate(close_matches, 1):
29
+ print(f" {i}. {match}")
30
+ else:
31
+ print("📋 Here are some available options:")
32
+ # Show first 10 installers as examples
33
+ sample_names = []
34
+ for inst in all_installers[:10]:
35
+ exe_name = inst["appName"]
36
+ sample_names.append(exe_name)
37
+ for i, name in enumerate(sample_names, 1):
38
+ print(f" {i}. {name}")
39
+
40
+ if len(all_installers) > 10:
41
+ print(f" ... and {len(all_installers) - 10} more")
42
+
43
+ print("\n💡 Use 'ia' to interactively browse all available installers.")
44
+ print(f"💡 Use one of the categories: {list(get_args(WHICH_CAT))}")
45
+
46
+
11
47
  def main_with_parser():
12
48
  import typer
13
49
  app = typer.Typer()
@@ -20,6 +56,7 @@ def main(which: Annotated[Optional[str], typer.Argument(help=f"Choose a category
20
56
  return get_programs_by_category(program_name=which) # type: ignore
21
57
  from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
22
58
  from machineconfig.utils.installer import get_installers
59
+ from machineconfig.utils.installer_utils.installer_class import Installer
23
60
  if which != "ia" and which is not None: # install by name
24
61
  total_messages: list[str] = []
25
62
  for a_which in which.split(",") if type(which) == str else which:
@@ -28,22 +65,16 @@ def main(which: Annotated[Optional[str], typer.Argument(help=f"Choose a category
28
65
  # Find installer by exe_name or name
29
66
  selected_installer = None
30
67
  for installer in all_installers:
31
- exe_name = installer.installer_data.get("exeName", "")
32
- app_name = installer.installer_data.get("appName", "")
68
+ exe_name = installer["appName"]
69
+ app_name = installer["appName"]
33
70
  if exe_name == a_which or app_name == a_which:
34
71
  selected_installer = installer
35
72
  break
36
73
 
37
74
  if selected_installer is None:
38
- available_names = [f"{inst.installer_data.get('exeName', 'unknown')} ({inst.installer_data.get('appName', 'unknown')})" for inst in all_installers[:10]] # Show first 10
39
- raise ValueError(f"{a_which=} not found. Available installers include: {available_names}")
40
-
41
- print(f"""
42
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
- ┃ 🔧 Installing: {a_which}
44
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━""")
45
- print(selected_installer)
46
- message = selected_installer.install_robust(version=None) # finish the task
75
+ _handle_installer_not_found(a_which, all_installers)
76
+ return None
77
+ message = Installer(selected_installer).install_robust(version=None) # finish the task
47
78
  total_messages.append(message)
48
79
  for a_message in total_messages:
49
80
  print(a_message)
@@ -55,58 +86,35 @@ def install_interactively():
55
86
  from machineconfig.utils.options import choose_from_options
56
87
  from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
57
88
  from machineconfig.utils.installer import get_installers
89
+ from machineconfig.utils.installer_utils.installer_class import Installer
58
90
  installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=["GITHUB_ESSENTIAL", "CUSTOM_ESSENTIAL", "GITHUB_DEV", "CUSTOM_DEV"])
59
- # Check installed programs with progress indicator
60
91
  with Progress(SpinnerColumn(), TextColumn("[progress.description]{task.description}")) as progress:
61
92
  task = progress.add_task("✅ Checking installed programs...", total=len(installers))
62
93
  installer_options = []
63
94
  for x in installers:
64
- installer_options.append(x.get_description())
95
+ installer_options.append(Installer(installer_data=x).get_description())
65
96
  progress.update(task, advance=1)
66
-
67
- # Add category options at the beginning for better visibility
68
97
  category_options = [f"📦 {cat}" for cat in get_args(WHICH_CAT)]
69
- options = category_options + ["─" * 50] + installer_options
70
-
98
+ options = category_options + ["─" * 50] + installer_options
71
99
  program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 essentials", fzf=True)
72
-
73
- total_commands = ""
74
100
  installation_messages: list[str] = []
75
101
  for _an_idx, a_program_name in enumerate(program_names):
76
- # Skip separator lines
77
102
  if a_program_name.startswith("─"):
78
103
  continue
79
-
80
- print(f"""
81
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
82
- ┃ 🔄 Processing: {a_program_name}
83
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━""")
84
-
85
- # Handle category options (remove emoji prefix)
86
104
  if a_program_name.startswith("📦 "):
87
105
  category_name = a_program_name[2:] # Remove "📦 " prefix
88
106
  if category_name in get_args(WHICH_CAT):
89
107
  get_programs_by_category(program_name=cast(WHICH_CAT, category_name))
90
108
  else:
91
- # Handle individual installer options
92
109
  installer_idx = installer_options.index(a_program_name)
93
- an_installer = installers[installer_idx]
94
- status_message = an_installer.install_robust(version=None) # finish the task - this returns a status message, not a command
110
+ an_installer_data = installers[installer_idx]
111
+ status_message = Installer(an_installer_data).install_robust(version=None) # finish the task - this returns a status message, not a command
95
112
  installation_messages.append(status_message)
96
-
97
- # Print all installation status messages
98
113
  print("\n📊 INSTALLATION SUMMARY:")
99
114
  print("=" * 50)
100
115
  for message in installation_messages:
101
116
  print(message)
102
117
 
103
- # Only run shell commands if there are any (from category installations)
104
- if total_commands.strip():
105
- import subprocess
106
-
107
- print("\n🚀 Running additional shell commands...")
108
- subprocess.run(total_commands, shell=True, check=True)
109
-
110
118
 
111
119
  def get_programs_by_category(program_name: WHICH_CAT):
112
120
  print(f"""
@@ -121,10 +129,10 @@ def get_programs_by_category(program_name: WHICH_CAT):
121
129
  match program_name:
122
130
  case "essentials":
123
131
  installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=["GITHUB_ESSENTIAL", "CUSTOM_ESSENTIAL"])
124
- install_all(installers=installers_)
132
+ install_all(installers_data=installers_)
125
133
  case "essentialsDev":
126
134
  installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=["GITHUB_DEV", "CUSTOM_DEV", "GITHUB_ESSENTIAL", "CUSTOM_ESSENTIAL"])
127
- install_all(installers=installers_)
135
+ install_all(installers_data=installers_)
128
136
  case "systymPackages":
129
137
  if system() == "Windows":
130
138
  options_system = parse_apps_installer_windows(LIBRARY_ROOT.joinpath("setup_windows/apps.ps1").read_text(encoding="utf-8"))
@@ -156,4 +164,7 @@ def get_programs_by_category(program_name: WHICH_CAT):
156
164
 
157
165
 
158
166
  if __name__ == "__main__":
167
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
168
+ from machineconfig.utils.installer_utils.installer_class import Installer
169
+ _ = InstallerData, Installer
159
170
  pass