machineconfig 6.82__py3-none-any.whl → 8.51__py3-none-any.whl

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.
Files changed (461) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/remote/run_cluster.py +1 -1
  3. machineconfig/cluster/remote/run_remote.py +1 -1
  4. machineconfig/cluster/sessions_managers/utils/maker.py +29 -15
  5. machineconfig/cluster/sessions_managers/wt_local.py +17 -222
  6. machineconfig/cluster/sessions_managers/wt_local_manager.py +56 -194
  7. machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
  8. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  9. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  10. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  11. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  12. machineconfig/cluster/sessions_managers/zellij_local.py +1 -1
  13. machineconfig/cluster/sessions_managers/zellij_local_manager.py +4 -2
  14. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  15. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  16. machineconfig/jobs/installer/checks/check_installations.py +133 -0
  17. machineconfig/jobs/installer/checks/install_utils.py +132 -0
  18. machineconfig/jobs/installer/checks/report_utils.py +39 -0
  19. machineconfig/jobs/installer/checks/vt_utils.py +89 -0
  20. machineconfig/jobs/installer/installer_data.json +1500 -310
  21. machineconfig/jobs/installer/linux_scripts/docker.sh +6 -9
  22. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  23. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  24. machineconfig/jobs/installer/package_groups.py +62 -91
  25. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  26. machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +2 -3
  27. machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
  28. machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
  29. machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +14 -9
  30. machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
  31. machineconfig/jobs/installer/python_scripts/hx.py +214 -0
  32. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
  33. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +32 -26
  34. machineconfig/jobs/installer/python_scripts/sysabc.py +145 -0
  35. machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
  36. machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
  37. machineconfig/jobs/installer/python_scripts/yazi.py +139 -0
  38. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
  39. machineconfig/jobs/scripts/powershell_scripts/cmatrix.ps1 +52 -0
  40. machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
  41. machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
  42. machineconfig/jobs/scripts_dynamic/a.py +428 -0
  43. machineconfig/logger.py +1 -2
  44. machineconfig/profile/create_helper.py +56 -18
  45. machineconfig/profile/create_links.py +79 -21
  46. machineconfig/profile/create_links_export.py +87 -36
  47. machineconfig/profile/create_shell_profile.py +92 -127
  48. machineconfig/profile/mapper_data.toml +45 -0
  49. machineconfig/profile/mapper_dotfiles.toml +249 -0
  50. machineconfig/scripts/__init__.py +0 -4
  51. machineconfig/scripts/linux/wrap_mcfg +46 -0
  52. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  53. machineconfig/scripts/python/agents.py +85 -165
  54. machineconfig/scripts/python/ai/initai.py +4 -2
  55. machineconfig/scripts/python/ai/scripts/__init__.py +1 -0
  56. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  57. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  58. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +2 -0
  59. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +8 -6
  60. machineconfig/scripts/python/ai/solutions/claude/claude.py +1 -1
  61. machineconfig/scripts/python/ai/solutions/cline/cline.py +1 -1
  62. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  63. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  64. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  65. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +6 -6
  66. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +33 -0
  67. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  68. machineconfig/scripts/python/ai/solutions/crush/crush.py +1 -1
  69. machineconfig/scripts/python/ai/solutions/cursor/cursors.py +1 -1
  70. machineconfig/scripts/python/ai/solutions/gemini/gemini.py +1 -1
  71. machineconfig/scripts/python/ai/solutions/gemini/settings.json +3 -0
  72. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  73. machineconfig/scripts/python/ai/{solutions → utils}/generic.py +2 -15
  74. machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +13 -5
  75. machineconfig/scripts/python/cloud.py +58 -11
  76. machineconfig/scripts/python/croshell.py +10 -162
  77. machineconfig/scripts/python/devops.py +73 -36
  78. machineconfig/scripts/python/devops_navigator.py +16 -6
  79. machineconfig/scripts/python/fire_jobs.py +8 -222
  80. machineconfig/scripts/python/ftpx.py +7 -200
  81. machineconfig/scripts/python/graph/cli_graph.json +8743 -0
  82. machineconfig/scripts/python/{env_manager → helper_env}/path_manager_tui.py +2 -2
  83. machineconfig/scripts/python/helpers/helper_env/env_manager_tui.py +204 -0
  84. machineconfig/scripts/python/helpers/helper_env/path_manager_tui.py +228 -0
  85. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
  86. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
  87. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
  88. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
  89. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  90. machineconfig/scripts/python/helpers/helpers_agents/agents_impl.py +168 -0
  91. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_help_launch.py +38 -16
  92. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_helper_types.py +11 -14
  93. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
  94. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
  95. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +1 -0
  96. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +10 -0
  97. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/gemini/settings.json +12 -0
  98. machineconfig/scripts/python/helpers/helpers_agents/privacy/privacy.py +109 -0
  99. machineconfig/scripts/python/helpers/helpers_agents/templates/prompt.txt +10 -0
  100. machineconfig/scripts/python/helpers/helpers_agents/templates/template.sh +34 -0
  101. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_copy.py +32 -25
  102. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_mount.py +29 -22
  103. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_sync.py +9 -8
  104. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers2.py +1 -1
  105. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/crosh.py +3 -3
  106. machineconfig/scripts/python/helpers/helpers_croshell/croshell_impl.py +225 -0
  107. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/scheduler.py +4 -4
  108. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/start_slidev.py +12 -12
  109. machineconfig/scripts/python/helpers/helpers_devops/backup_config.py +149 -0
  110. machineconfig/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +262 -0
  111. machineconfig/scripts/python/helpers/helpers_devops/cli_config.py +98 -0
  112. machineconfig/scripts/python/helpers/helpers_devops/cli_config_dotfile.py +274 -0
  113. machineconfig/scripts/python/helpers/helpers_devops/cli_data.py +67 -0
  114. machineconfig/scripts/python/helpers/helpers_devops/cli_nw.py +201 -0
  115. machineconfig/scripts/python/helpers/helpers_devops/cli_repos.py +274 -0
  116. machineconfig/scripts/python/helpers/helpers_devops/cli_self.py +197 -0
  117. machineconfig/scripts/python/helpers/helpers_devops/cli_share_file.py +151 -0
  118. machineconfig/scripts/python/helpers/helpers_devops/cli_share_server.py +125 -0
  119. machineconfig/scripts/python/{helpers_devops/cli_terminal.py → helpers/helpers_devops/cli_share_terminal.py} +26 -22
  120. machineconfig/scripts/python/helpers/helpers_devops/cli_ssh.py +167 -0
  121. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_status.py +17 -23
  122. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_update_repos.py +1 -1
  123. machineconfig/scripts/python/{interactive.py → helpers/helpers_devops/interactive.py} +78 -71
  124. machineconfig/scripts/python/helpers/helpers_devops/run_script.py +197 -0
  125. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +41 -0
  126. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +48 -0
  127. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_wezterm_theme.py +4 -4
  128. machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers/helpers_fire_command/file_wrangler.py} +57 -20
  129. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_args_helper.py +1 -0
  130. machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +233 -0
  131. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_route_helper.py +26 -16
  132. machineconfig/scripts/python/helpers/helpers_msearch/__init__.py +5 -0
  133. machineconfig/scripts/python/helpers/helpers_msearch/msearch_impl.py +248 -0
  134. machineconfig/scripts/{linux → python/helpers/helpers_msearch/scripts_linux}/fzfg +6 -5
  135. machineconfig/scripts/python/helpers/helpers_msearch/scripts_linux/search_with_context.sh +48 -0
  136. machineconfig/scripts/python/helpers/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
  137. machineconfig/scripts/python/helpers/helpers_navigator/__init__.py +20 -0
  138. machineconfig/scripts/python/helpers/helpers_navigator/cli_graph_loader.py +234 -0
  139. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/command_builder.py +61 -13
  140. machineconfig/scripts/python/helpers/helpers_navigator/command_detail.py +153 -0
  141. machineconfig/scripts/python/helpers/helpers_navigator/command_tree.py +45 -0
  142. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/data_models.py +18 -11
  143. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/main_app.py +5 -5
  144. machineconfig/scripts/python/helpers/helpers_network/address.py +174 -0
  145. machineconfig/scripts/python/helpers/helpers_network/address_switch.py +78 -0
  146. machineconfig/scripts/python/helpers/helpers_network/ftpx_impl.py +276 -0
  147. machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_nfs.py +2 -2
  148. machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_ssh.py +3 -3
  149. machineconfig/scripts/python/helpers/helpers_network/ssh_add_identity.py +73 -0
  150. machineconfig/scripts/python/helpers/helpers_network/ssh_add_ssh_key.py +175 -0
  151. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_linux.py +319 -0
  152. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_windows.py +275 -0
  153. machineconfig/scripts/python/{nw → helpers/helpers_network}/wifi_conn.py +1 -53
  154. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action.py +3 -3
  155. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action_helper.py +3 -3
  156. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/clone.py +0 -1
  157. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/cloud_repo_sync.py +159 -48
  158. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/grource.py +4 -3
  159. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/record.py +33 -12
  160. machineconfig/scripts/python/helpers/helpers_repos/repo_analyzer_1.py +160 -0
  161. machineconfig/scripts/python/{helpers_repos/count_lines.py → helpers/helpers_repos/repo_analyzer_2.py} +156 -191
  162. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/update.py +0 -6
  163. machineconfig/scripts/python/helpers/helpers_search/ast_search.py +74 -0
  164. machineconfig/scripts/python/helpers/helpers_search/qr_code.py +166 -0
  165. machineconfig/scripts/python/helpers/helpers_search/repo_rag.py +325 -0
  166. machineconfig/scripts/python/helpers/helpers_search/script_help.py +81 -0
  167. machineconfig/scripts/python/helpers/helpers_search/symantic_search.py +25 -0
  168. machineconfig/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
  169. machineconfig/scripts/python/helpers/helpers_sessions/sessions_impl.py +186 -0
  170. machineconfig/scripts/python/{helpers_sessions → helpers/helpers_sessions}/sessions_multiprocess.py +20 -14
  171. machineconfig/scripts/python/helpers/helpers_terminal/__init__.py +0 -0
  172. machineconfig/scripts/python/helpers/helpers_terminal/terminal_impl.py +96 -0
  173. machineconfig/scripts/python/helpers/helpers_utils/download.py +150 -0
  174. machineconfig/scripts/python/helpers/helpers_utils/pdf.py +96 -0
  175. machineconfig/scripts/python/helpers/helpers_utils/python.py +210 -0
  176. machineconfig/scripts/python/helpers/helpers_utils/specs.py +246 -0
  177. machineconfig/scripts/python/mcfg_entry.py +143 -0
  178. machineconfig/scripts/python/msearch.py +26 -0
  179. machineconfig/scripts/python/sessions.py +69 -135
  180. machineconfig/scripts/python/terminal.py +58 -0
  181. machineconfig/scripts/python/utils.py +115 -38
  182. machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
  183. machineconfig/settings/atuin/config.toml +294 -0
  184. machineconfig/settings/atuin/themes/catppuccin-mocha-mauve.toml +12 -0
  185. machineconfig/settings/broot/conf.toml +1 -1
  186. machineconfig/settings/helix/config.toml +16 -0
  187. machineconfig/settings/helix/languages.toml +13 -4
  188. machineconfig/settings/helix/yazi-picker.sh +12 -0
  189. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  190. machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
  191. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  192. machineconfig/settings/lf/windows/lfrc +14 -16
  193. machineconfig/settings/linters/.ruff.toml +2 -1
  194. machineconfig/settings/marimo/marimo.toml +1 -1
  195. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  196. machineconfig/settings/mprocs/windows/mprocs.yaml +2 -2
  197. machineconfig/settings/shells/bash/init.sh +47 -12
  198. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  199. machineconfig/settings/shells/nushell/config.nu +25 -33
  200. machineconfig/settings/shells/nushell/env.nu +21 -8
  201. machineconfig/settings/shells/nushell/init.nu +138 -0
  202. machineconfig/settings/shells/pwsh/init.ps1 +111 -17
  203. machineconfig/settings/shells/pwsh/search_pwsh_history.ps1 +99 -0
  204. machineconfig/settings/shells/starship/starship.toml +16 -0
  205. machineconfig/settings/shells/wezterm/wezterm.lua +6 -1
  206. machineconfig/settings/shells/wt/settings.json +27 -18
  207. machineconfig/settings/shells/zsh/init.sh +42 -23
  208. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  209. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  210. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  211. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  212. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  213. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  214. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  215. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  216. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  217. machineconfig/settings/television/cable_unix/env.toml +17 -0
  218. machineconfig/settings/television/cable_unix/files.toml +11 -0
  219. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  220. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  221. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  222. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  223. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  224. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  225. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  226. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  227. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  228. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  229. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  230. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  231. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  232. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  233. machineconfig/settings/television/cable_unix/text.toml +17 -0
  234. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  235. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  236. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  237. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  238. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  239. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  240. machineconfig/settings/television/cable_windows/env.toml +17 -0
  241. machineconfig/settings/television/cable_windows/files.toml +14 -0
  242. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  243. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  244. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  245. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  246. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  247. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  248. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  249. machineconfig/settings/television/cable_windows/text.toml +17 -0
  250. machineconfig/settings/tv/config.toml +234 -0
  251. machineconfig/settings/tv/themes/catppuccin-mocha-sky.toml +22 -0
  252. machineconfig/settings/wsl/.wslconfig +5 -30
  253. machineconfig/settings/wt/__init__.py +0 -0
  254. machineconfig/settings/yazi/init.lua +61 -0
  255. machineconfig/settings/yazi/keymap_linux.toml +94 -0
  256. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  257. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  258. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  259. machineconfig/settings/yazi/theme.toml +4 -0
  260. machineconfig/settings/yazi/yazi_linux.toml +94 -0
  261. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  262. machineconfig/settings/zellij/layouts/st.kdl +40 -9
  263. machineconfig/settings/zellij/layouts/st2.kdl +1 -1
  264. machineconfig/setup_linux/__init__.py +2 -2
  265. machineconfig/setup_linux/apps_desktop.sh +8 -27
  266. machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
  267. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +34 -0
  268. machineconfig/setup_mac/__init__.py +1 -4
  269. machineconfig/setup_mac/apps_gui.sh +248 -0
  270. machineconfig/setup_windows/__init__.py +2 -5
  271. machineconfig/setup_windows/uv.ps1 +8 -1
  272. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -12
  273. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +31 -0
  274. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  275. machineconfig/type_hinting/sql/__init__.py +1 -0
  276. machineconfig/type_hinting/sql/base.py +216 -0
  277. machineconfig/type_hinting/sql/core_schema.py +64 -0
  278. machineconfig/type_hinting/sql/core_schema_typeddict.py +41 -0
  279. machineconfig/type_hinting/sql/typeddict_codegen.py +222 -0
  280. machineconfig/type_hinting/typedict/__init__.py +1 -0
  281. machineconfig/type_hinting/typedict/ast_utils.py +130 -0
  282. machineconfig/type_hinting/typedict/generator_helpers.py +319 -0
  283. machineconfig/type_hinting/typedict/generators.py +231 -0
  284. machineconfig/type_hinting/typedict/polars_schema.py +24 -0
  285. machineconfig/type_hinting/typedict/polars_schema_typeddict.py +63 -0
  286. machineconfig/utils/accessories.py +31 -4
  287. machineconfig/utils/code.py +163 -51
  288. machineconfig/utils/files/ascii_art.py +11 -15
  289. machineconfig/utils/files/headers.py +6 -7
  290. machineconfig/utils/files/read.py +8 -1
  291. machineconfig/utils/installer_utils/github_release_bulk.py +95 -138
  292. machineconfig/utils/installer_utils/github_release_scraper.py +99 -0
  293. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  294. machineconfig/utils/installer_utils/installer_class.py +53 -102
  295. machineconfig/utils/installer_utils/installer_cli.py +161 -0
  296. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  297. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +42 -91
  298. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +20 -65
  299. machineconfig/utils/io.py +94 -9
  300. machineconfig/utils/links.py +56 -38
  301. machineconfig/utils/meta.py +38 -21
  302. machineconfig/utils/options.py +81 -23
  303. machineconfig/utils/options_utils/__init__.py +0 -0
  304. machineconfig/utils/options_utils/options_tv_linux.py +211 -0
  305. machineconfig/utils/options_utils/options_tv_windows.py +88 -0
  306. machineconfig/utils/options_utils/tv_options.py +37 -0
  307. machineconfig/utils/path_extended.py +52 -102
  308. machineconfig/utils/path_helper.py +76 -23
  309. machineconfig/utils/procs.py +1 -1
  310. machineconfig/utils/scheduler.py +26 -53
  311. machineconfig/utils/scheduling.py +0 -2
  312. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  313. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  314. machineconfig/utils/source_of_truth.py +6 -1
  315. machineconfig/utils/ssh.py +216 -419
  316. machineconfig/utils/ssh_utils/abc.py +5 -0
  317. machineconfig/utils/ssh_utils/copy_from_here.py +116 -0
  318. machineconfig/utils/ssh_utils/copy_to_here.py +303 -0
  319. machineconfig/utils/ssh_utils/utils.py +158 -0
  320. machineconfig/utils/ssh_utils/wsl.py +147 -0
  321. machineconfig/utils/ssh_utils/wsl_helper.py +217 -0
  322. machineconfig/utils/terminal.py +1 -0
  323. machineconfig/utils/upgrade_packages.py +107 -35
  324. machineconfig/utils/ve.py +12 -4
  325. machineconfig-8.51.dist-info/METADATA +140 -0
  326. machineconfig-8.51.dist-info/RECORD +543 -0
  327. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/entry_points.txt +4 -1
  328. machineconfig/jobs/installer/check_installations.py +0 -248
  329. machineconfig/jobs/installer/custom/hx.py +0 -140
  330. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  331. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  332. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  333. machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -7
  334. machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -14
  335. machineconfig/profile/backup.toml +0 -49
  336. machineconfig/profile/mapper.toml +0 -256
  337. machineconfig/scripts/linux/fzf2g +0 -21
  338. machineconfig/scripts/linux/fzfag +0 -17
  339. machineconfig/scripts/linux/fzffg +0 -25
  340. machineconfig/scripts/linux/fzfrga +0 -21
  341. machineconfig/scripts/linux/mcfgs +0 -38
  342. machineconfig/scripts/linux/other/share_smb +0 -1
  343. machineconfig/scripts/linux/other/switch_ip +0 -20
  344. machineconfig/scripts/linux/skrg +0 -4
  345. machineconfig/scripts/linux/warp-cli.sh +0 -122
  346. machineconfig/scripts/linux/z_ls +0 -104
  347. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  348. machineconfig/scripts/python/helpers_devops/cli_config.py +0 -120
  349. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -77
  350. machineconfig/scripts/python/helpers_devops/cli_data.py +0 -25
  351. machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -73
  352. machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -181
  353. machineconfig/scripts/python/helpers_devops/cli_self.py +0 -122
  354. machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -104
  355. machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -221
  356. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -80
  357. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -3
  358. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
  359. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
  360. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
  361. machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
  362. machineconfig/scripts/python/helpers_fire/template.sh +0 -15
  363. machineconfig/scripts/python/helpers_navigator/__init__.py +0 -20
  364. machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -44
  365. machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -588
  366. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  367. machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -76
  368. machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
  369. machineconfig/scripts/python/mcfg.py +0 -48
  370. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  371. machineconfig/scripts/python/nw/devops_add_identity.py +0 -82
  372. machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -134
  373. machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -391
  374. machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -338
  375. machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
  376. machineconfig/scripts/windows/fzfb.ps1 +0 -3
  377. machineconfig/scripts/windows/fzfg.ps1 +0 -2
  378. machineconfig/scripts/windows/fzfrga.bat +0 -20
  379. machineconfig/scripts/windows/mcfgs.ps1 +0 -17
  380. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
  381. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  382. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  383. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  384. machineconfig/settings/yazi/yazi.toml +0 -4
  385. machineconfig/setup_linux/apps.sh +0 -66
  386. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  387. machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -30
  388. machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
  389. machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
  390. machineconfig/setup_mac/apps.sh +0 -73
  391. machineconfig/setup_mac/ssh/openssh_setup.sh +0 -114
  392. machineconfig/setup_windows/apps.ps1 +0 -62
  393. machineconfig/setup_windows/others/obs.ps1 +0 -4
  394. machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -29
  395. machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
  396. machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -37
  397. machineconfig/utils/installer_utils/installer.py +0 -225
  398. machineconfig/utils/tst.py +0 -20
  399. machineconfig-6.82.dist-info/METADATA +0 -82
  400. machineconfig-6.82.dist-info/RECORD +0 -441
  401. machineconfig/jobs/installer/{custom_dev → checks}/__init__.py +0 -0
  402. machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  403. machineconfig/{scripts/python/helpers_cloud → jobs/installer/python_scripts}/__init__.py +0 -0
  404. machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
  405. machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
  406. machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
  407. machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
  408. machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
  409. machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
  410. machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
  411. machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
  412. machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/android.sh +0 -0
  413. machineconfig/jobs/{installer/linux_scripts → scripts/bash_scripts}/lid.sh +0 -0
  414. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
  415. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
  416. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
  417. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
  418. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
  419. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
  420. machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
  421. machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
  422. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
  423. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
  424. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
  425. machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
  426. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
  427. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
  428. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
  429. machineconfig/scripts/python/{helpers_croshell → ai/utils}/__init__.py +0 -0
  430. machineconfig/scripts/python/ai/{solutions/_shared.py → utils/shared.py} +0 -0
  431. machineconfig/scripts/python/{helpers_devops → graph}/__init__.py +0 -0
  432. machineconfig/scripts/python/{helpers_devops/themes → helpers}/__init__.py +0 -0
  433. machineconfig/scripts/python/{env_manager → helpers/helper_env}/__init__.py +0 -0
  434. machineconfig/scripts/python/{env_manager → helpers/helper_env}/path_manager_backend.py +0 -0
  435. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/__init__.py +0 -0
  436. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/__init__.py +0 -0
  437. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_help_search.py +0 -0
  438. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_load_balancer.py +0 -0
  439. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents/templates}/template.ps1 +0 -0
  440. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_cloud}/__init__.py +0 -0
  441. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_helpers.py +1 -1
  442. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers5.py +0 -0
  443. /machineconfig/scripts/python/{helpers_sessions → helpers/helpers_croshell}/__init__.py +0 -0
  444. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/pomodoro.py +0 -0
  445. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer.py +0 -0
  446. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer_template.py +0 -0
  447. /machineconfig/scripts/python/{nw → helpers/helpers_devops}/__init__.py +0 -0
  448. /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/helpers/helpers_devops/themes}/__init__.py +0 -0
  449. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
  450. /machineconfig/scripts/python/{helpers_devops/themes/choose_starship_theme.ps1 → helpers/helpers_fire_command/__init__.py} +0 -0
  451. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/cloud_manager.py +0 -0
  452. /machineconfig/scripts/python/{helpers_fire_command/fire_jobs_streamlit_helper.py → helpers/helpers_fire_command/f.py} +0 -0
  453. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
  454. /machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/search_bar.py +0 -0
  455. /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers/helpers_network/__init__.py} +0 -0
  456. /machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_nw_drive.py +0 -0
  457. /machineconfig/scripts/python/{nw → helpers/helpers_network}/onetimeshare.py +0 -0
  458. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/sync.py +0 -0
  459. /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
  460. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/WHEEL +0 -0
  461. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/top_level.txt +0 -0
@@ -109,15 +109,12 @@ echo """✅ INSTALLATION COMPLETE | Docker has been installed successfully
109
109
  For systemd systems: systemctl start dockerd
110
110
  For WSL without systemd: sudo service docker start
111
111
  - For more information, visit: https://docs.docker.com/engine/install/linux-postinstall/
112
+
113
+ sudo systemctl start docker
114
+ sudo systemctl enable docker
115
+ sudo usermod -aG docker alex
116
+ logout
117
+
112
118
  """
113
119
 
114
120
  # Additional notes:
115
- # - In older WSL, after installation, 'docker run hello-world' may fail with connection error
116
- # See: https://stackoverflow.com/questions/44678725/cannot-connect-to-the-docker-daemon-at-unix-var-run-docker-sock-is-the-docker
117
- #
118
- # - No internet in WSL docker instance: add /etc/docker/daemon.json
119
- # See: https://github.com/MicrosoftDocs/WSL/issues/422
120
- #
121
- # - For Databricks environments only:
122
- # sudo nala install fuse-overlayfs
123
-
@@ -1,9 +1,12 @@
1
1
  #!/bin/bash
2
2
 
3
- mkdir -p $HOME/Downloads || true
4
- cd $HOME/Downloads
5
- curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
6
- unzip q.zip
7
- ./q/install.sh # goes to ~/.local/bin.
8
- rm q.zip
9
- rm -rfd q
3
+ # mkdir -p $HOME/Downloads || true
4
+ # cd $HOME/Downloads
5
+ # curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
6
+ # unzip q.zip
7
+ # ./q/install.sh # goes to ~/.local/bin.
8
+ # rm q.zip
9
+ # rm -rfd q
10
+
11
+ # This is a clean installation that inloves only binary movement, no bashrc manipulation.
12
+ devops install "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip"
@@ -45,6 +45,7 @@ sudo nala update
45
45
  # Install Redis
46
46
  echo "📥 Installing Redis..."
47
47
  sudo nala install redis -y
48
+ sudo nala install redis-tools -y
48
49
 
49
50
  echo """✅ INSTALLATION COMPLETE | Redis has been installed successfully
50
51
 
@@ -1,13 +1,19 @@
1
- from typing import Literal, TypeAlias, Union
1
+
2
+ GUI = [
3
+ "brave",
4
+ "code",
5
+ "git",
6
+ # "wezterm", # needs admin
7
+ ]
2
8
 
3
9
  # AI/LLM Tools - AI-powered coding and chat assistants
4
10
  AGENTS = [
5
11
  "aider",
12
+ "aichat",
6
13
  "copilot",
7
14
  "gemini",
8
15
  "crush",
9
16
  "opencode-ai",
10
- "ollama",
11
17
  "chatgpt",
12
18
  "mods",
13
19
  "q",
@@ -17,6 +23,9 @@ AGENTS = [
17
23
  "kilocode",
18
24
  "cline",
19
25
  "auggie",
26
+ # "codex",
27
+ # "gorilla",
28
+ # "ollama",
20
29
  ]
21
30
 
22
31
 
@@ -54,9 +63,14 @@ PACKAGES_CODE_EDITORS = [
54
63
  # Database Tools - Database clients and visualizers
55
64
  PACKAGES_DATABASE = [
56
65
  "SqliteBrowser",
66
+ "sqlite3",
67
+ "redis",
68
+ "redis-cli",
69
+ "postgresql-client",
70
+ "duckdb",
57
71
  "DBeaver",
58
72
  "rainfrog",
59
- "duckdb",
73
+
60
74
  ]
61
75
 
62
76
 
@@ -103,6 +117,7 @@ PACKAGES_DEV_UTILS = [
103
117
 
104
118
  # Code Analysis, Git & Docs - Code analysis, statistics, documentation, and Git tools
105
119
  PACKAGES_CODE_ANALYSIS = [
120
+ "nano",
106
121
  "lazygit",
107
122
  "onefetch",
108
123
  "gitcs",
@@ -136,22 +151,24 @@ PACKAGES_PRODUCTIVITY = [
136
151
  "hx",
137
152
  ]
138
153
 
139
- # Miscellaneous Tools - Other tools
140
- PACKAGES_MISC_DEV = [
154
+
155
+ TERMINAL_EYE_CANDY = [
141
156
  "lolcatjs",
142
157
  "figlet-cli",
143
158
  "boxes",
144
- "Gorilla",
145
- "Redis",
146
- "transmission",
147
- "exa",
148
- "bytehound",
149
- "atuin",
150
- "xcrawl3r",
151
- "obsidian",
152
- "istio",
153
- "cointop",
154
- "nnn",
159
+ "cowsay",
160
+ # "transmission",
161
+ # "bytehound",
162
+ # "xcrawl3r",
163
+ # "obsidian",
164
+ # "istio",
165
+ # "cointop",
166
+ # sudo nala install cowsay -y || true
167
+ # sudo nala install lolcat -y || true
168
+ # sudo nala install boxes -y || true
169
+ # sudo nala install figlet -y || true
170
+ # sudo nala install fortune -y || true
171
+ # sudo nala install toilet -y || true
155
172
  ]
156
173
 
157
174
 
@@ -175,10 +192,11 @@ PACKAGES_SYSTEM_MONITORS = [
175
192
 
176
193
  # Search & Archive Tools - File and content search utilities, archive management
177
194
  PACKAGES_FILE = [
195
+
178
196
  "nerdfont",
179
- "winget",
180
197
  "fd",
181
198
  "fzf",
199
+ "tv",
182
200
  "broot",
183
201
  "rg",
184
202
  "rga",
@@ -187,11 +205,13 @@ PACKAGES_FILE = [
187
205
  "pistol",
188
206
  "bat",
189
207
  "viu",
190
- "xplr",
191
- "joshuto",
192
- "lf",
193
- "tere",
208
+ # "xplr",
209
+ # "joshuto",
210
+ # "lf",
211
+ # "nnn",
194
212
  "yazi",
213
+ "tere",
214
+ # "exa",
195
215
  "lsd",
196
216
  "zoxide",
197
217
  "diskonaut",
@@ -206,82 +226,33 @@ PACKAGES_TERMINAL_SHELL = [
206
226
  "zellij",
207
227
  "mprocs",
208
228
  "mcfly",
229
+ "atuin",
209
230
  "starship",
210
231
  "gotty",
211
232
  "ttyd",
212
233
  "rclone",
234
+ "cb"
213
235
  ]
214
236
 
215
237
 
216
238
 
217
-
218
-
219
- PACKAGE_GROUPS: TypeAlias = Literal[
220
- "ESSENTIAL",
221
- "DEV",
222
- "AGENTS",
223
- "TUNNELING",
224
- "TERMINAL_EMULATORS",
225
- "BROWSERS",
226
- "CODE_EDITORS",
227
- "PRESENTATION",
228
- "DATABASE",
229
- "DOC_CONVERSION",
230
- "MEDIA",
231
- "FILE_SHARING",
232
- "GIT_DOCKER_TOOLS",
233
- "DEV_UTILS",
234
- "CODE_ANALYSIS",
235
- "PRODUCTIVITY",
236
- "MISC_DEV",
237
- "SYSTEM_MONITORS",
238
- "FILE_TOOLS",
239
- "FILE_VIEWERS",
240
- "SEARCH",
241
- "TERMINAL_SHELL",
242
- "CLOUD_UTILS",
243
- "WEB_TERMINAL",
244
- ]
245
-
246
-
247
-
248
- # Main ESSENTIAL package list - combines all subgroups
249
- ESSENTIAL = [
250
- *PACKAGES_CODE_ANALYSIS,
251
- *PACKAGES_SYSTEM_MONITORS,
252
- *PACKAGES_TERMINAL_SHELL,
253
- *PACKAGES_FILE,
254
- ]
255
- DEV = [
256
- *PACKAGES_TERMINAL_EMULATORS,
257
- *PACKAGES_BROWSERS,
258
- *PACKAGES_CODE_EDITORS,
259
- *PACKAGES_DATABASE,
260
- *PACKAGES_MEDIA,
261
- *PACKAGES_FILE_SHARING,
262
- *PACKAGES_DEV_UTILS,
263
- *PACKAGES_CODE_ANALYSIS,
264
- *PACKAGES_PRODUCTIVITY,
265
- *PACKAGES_MISC_DEV,
266
- ]
267
-
268
- PACKAGE_GROUP2NAMES: dict[PACKAGE_GROUPS, list[str]] = {
269
- "ESSENTIAL": ESSENTIAL,
270
- "DEV": DEV,
271
- "AGENTS": AGENTS,
272
- "TERMINAL_EMULATORS": PACKAGES_TERMINAL_EMULATORS,
273
- "BROWSERS": PACKAGES_BROWSERS,
274
- "CODE_EDITORS": PACKAGES_CODE_EDITORS,
275
- "DATABASE": PACKAGES_DATABASE,
276
- "MEDIA": PACKAGES_MEDIA,
277
- "FILE_SHARING": PACKAGES_FILE_SHARING,
278
- "DEV_UTILS": PACKAGES_DEV_UTILS,
279
- "CODE_ANALYSIS": PACKAGES_CODE_ANALYSIS,
280
- "PRODUCTIVITY": PACKAGES_PRODUCTIVITY,
281
- "MISC_DEV": PACKAGES_MISC_DEV,
282
- "SYSTEM_MONITORS": PACKAGES_SYSTEM_MONITORS,
283
- "SEARCH": PACKAGES_FILE,
284
- "TERMINAL_SHELL": PACKAGES_TERMINAL_SHELL,
239
+ PACKAGE_GROUP2NAMES: dict[str, list[str]] = {
240
+ "sysabc": ["sysabc"],
241
+ "termabc": [*PACKAGES_CODE_ANALYSIS, *PACKAGES_SYSTEM_MONITORS, *PACKAGES_TERMINAL_SHELL, *PACKAGES_FILE,],
242
+ "gui": GUI,
243
+ "dev": [*PACKAGES_TERMINAL_EMULATORS, *PACKAGES_BROWSERS, *PACKAGES_CODE_EDITORS, *PACKAGES_DATABASE, *PACKAGES_MEDIA, *PACKAGES_FILE_SHARING, *PACKAGES_DEV_UTILS, *PACKAGES_CODE_ANALYSIS, *PACKAGES_PRODUCTIVITY, *TERMINAL_EYE_CANDY,],
244
+ "dev-utils": PACKAGES_DEV_UTILS,
245
+ "term-eye-candy": TERMINAL_EYE_CANDY,
246
+ "agents": AGENTS,
247
+ "terminal-emulator": PACKAGES_TERMINAL_EMULATORS,
248
+ "shell": PACKAGES_TERMINAL_SHELL,
249
+ "browsers": PACKAGES_BROWSERS,
250
+ "code-editors": PACKAGES_CODE_EDITORS,
251
+ "code-analysis": PACKAGES_CODE_ANALYSIS,
252
+ "db": PACKAGES_DATABASE,
253
+ "media": PACKAGES_MEDIA,
254
+ "file-sharing": PACKAGES_FILE_SHARING,
255
+ "productivity": PACKAGES_PRODUCTIVITY,
256
+ "sys-monitor": PACKAGES_SYSTEM_MONITORS,
257
+ "search": PACKAGES_FILE,
285
258
  }
286
-
287
- _ = Union, Literal
@@ -6,6 +6,19 @@ $objShell = New-Object -ComObject Shell.Application
6
6
  $objFolder = $objShell.Namespace($FONTS)
7
7
  $Fontdir = Get-ChildItem -Path $Path -File
8
8
 
9
+ $invalidCharPattern = "[{0}]" -f ([Regex]::Escape(([string]::Join('', [System.IO.Path]::GetInvalidFileNameChars()))))
10
+
11
+ function Get-FontBaseNameSafe {
12
+ param([string]$Input)
13
+ if ([string]::IsNullOrWhiteSpace($Input)) { return "" }
14
+ $candidate = ($Input -split ',')[0].Trim()
15
+ try { return [System.IO.Path]::GetFileNameWithoutExtension($candidate) }
16
+ catch {
17
+ $sanitized = [Regex]::Replace($candidate, $invalidCharPattern, '')
18
+ return ($sanitized -replace '\\.[^.]+$')
19
+ }
20
+ }
21
+
9
22
  # Normalization helper: remove spaces, underscores, hyphens, 'nerd', 'font', and collapse 'nf' for broad matching
10
23
  function Normalize-FontName {
11
24
  param([string]$Name)
@@ -17,47 +30,129 @@ function Normalize-FontName {
17
30
  return $n
18
31
  }
19
32
 
33
+ function Get-FontIdentityForms {
34
+ param([string]$Name)
35
+ if ([string]::IsNullOrWhiteSpace($Name)) { return @() }
36
+ $normalized = Normalize-FontName $Name
37
+ if ([string]::IsNullOrWhiteSpace($normalized)) { return @() }
38
+
39
+ $forms = @()
40
+ $forms += $normalized
41
+
42
+ $stylePattern = '(regular|italic|oblique|bold|bolditalic|semibold|semilight|light|extrabold|extralight|medium|thin|black|book|ultra|heavy|demi|retina|condensed|narrow|windowscompatible|complete|windowscomp|compatibility)+$'
43
+ $stem = $normalized
44
+ while ($stem -match $stylePattern) {
45
+ $stem = [Regex]::Replace($stem, $stylePattern, '')
46
+ if ([string]::IsNullOrWhiteSpace($stem)) { break }
47
+ $forms += $stem
48
+ }
49
+
50
+ $stemForVariants = $stem
51
+ foreach ($tail in @('mono', 'propo')) {
52
+ $tmp = $stemForVariants
53
+ while (-not [string]::IsNullOrWhiteSpace($tmp) -and $tmp.EndsWith($tail)) {
54
+ $tmp = $tmp.Substring(0, $tmp.Length - $tail.Length)
55
+ if ([string]::IsNullOrWhiteSpace($tmp)) { break }
56
+ $forms += $tmp
57
+ }
58
+ }
59
+
60
+ return ($forms | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique)
61
+ }
62
+
63
+ function Test-FontFormsOverlapFuzzy {
64
+ param(
65
+ [string[]]$CandidateForms,
66
+ [string[]]$ExistingForms
67
+ )
68
+ foreach ($candidate in $CandidateForms) {
69
+ if ([string]::IsNullOrWhiteSpace($candidate)) { continue }
70
+ foreach ($existing in $ExistingForms) {
71
+ if ([string]::IsNullOrWhiteSpace($existing)) { continue }
72
+ if ($existing.Contains($candidate) -or $candidate.Contains($existing)) { return $true }
73
+ }
74
+ }
75
+ return $false
76
+ }
77
+
78
+ function Merge-UniqueForms {
79
+ param(
80
+ [string[]]$Existing,
81
+ [string[]]$Additional
82
+ )
83
+ return (($Existing + $Additional) | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique)
84
+ }
85
+
20
86
  # Cache installed font basenames once (raw + normalized map)
21
87
  $installedFontFiles = Get-ChildItem C:\Windows\Fonts -File
22
- $installedFonts = @{}
23
- foreach ($f in $installedFontFiles) { $installedFonts[(Normalize-FontName $f.BaseName)] = 1 }
88
+ $installedFonts = @()
89
+ foreach ($f in $installedFontFiles) {
90
+ $installedFonts = Merge-UniqueForms $installedFonts (Get-FontIdentityForms $f.BaseName)
91
+ }
24
92
 
25
- Write-Host "Existing related fonts detected:" ($installedFonts.Keys | Where-Object { $_ -match 'caskaydiacove|cascadiacode' } | Sort-Object | Get-Unique) -ForegroundColor DarkGray
93
+ $relatedInstalled = $installedFonts | Where-Object { $_ -match 'caskaydiacove|cascadiacode' } | Sort-Object | Get-Unique
94
+ Write-Host "Existing related fonts detected:" $relatedInstalled -ForegroundColor DarkGray
95
+
96
+ $registryFonts = @()
97
+ $fontReg = $null
98
+ try {
99
+ $fontReg = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' -ErrorAction Stop
100
+ } catch {
101
+ Write-Host "Registry font list unavailable: $($_.Exception.Message)" -ForegroundColor DarkYellow
102
+ }
103
+ if ($null -ne $fontReg) {
104
+ foreach ($prop in $fontReg.PSObject.Properties) {
105
+ $val = ($prop.Value | Out-String).Trim()
106
+ $nm = ($prop.Name | Out-String).Trim()
107
+ $registryFonts = Merge-UniqueForms $registryFonts (Get-FontIdentityForms (Get-FontBaseNameSafe $val))
108
+ $registryFonts = Merge-UniqueForms $registryFonts (Get-FontIdentityForms (Get-FontBaseNameSafe $nm))
109
+ }
110
+ }
26
111
 
27
112
  foreach ($File in $Fontdir) {
28
- if ($File.Name -notmatch 'pfb$') {
29
- $candidateRaw = $File.BaseName
30
- $candidateNorm = Normalize-FontName $candidateRaw
31
-
32
- # 1. Exact file existence check (handles .ttf/.otf pairs) before invoking Shell CopyHere.
33
- $destFile = Join-Path -Path 'C:\Windows\Fonts' -ChildPath $File.Name
34
- if (Test-Path -LiteralPath $destFile) { Write-Host "Skip (file exists) $($File.Name)" -ForegroundColor Green; continue }
35
-
36
- # 2. Registry check: Fonts are registered under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
37
- try {
38
- $fontReg = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' -ErrorAction Stop
39
- $regMatch = $false
40
- foreach ($prop in $fontReg.PSObject.Properties) {
41
- $val = ($prop.Value | Out-String).Trim()
42
- $nm = ($prop.Name | Out-String).Trim()
43
- $valNorm = Normalize-FontName ( [System.IO.Path]::GetFileNameWithoutExtension($val) )
44
- $nmNorm = Normalize-FontName $nm
45
- if ($valNorm -eq $candidateNorm -or $nmNorm -eq $candidateNorm -or $nmNorm -match [Regex]::Escape($candidateNorm)) { $regMatch = $true; break }
46
- }
47
- if ($regMatch) {
48
- Write-Host "Skip (registry) $($File.Name)" -ForegroundColor Green
49
- continue
50
- }
51
- } catch {
52
- Write-Host "Registry font query failed: $($_.Exception.Message) (continuing)" -ForegroundColor DarkYellow
53
- }
113
+ if ($File.Name -match 'pfb$') { continue }
54
114
 
55
- # 3. Original heuristic set: in-memory list
56
- if ($installedFonts.ContainsKey($candidateNorm)) { Write-Host "Skip (norm map) $($File.Name)" -ForegroundColor Green; continue }
57
- if ($installedFonts.Keys | Where-Object { $_ -match [Regex]::Escape($candidateNorm) }) { Write-Host "Skip (norm regex) $($File.Name)" -ForegroundColor Green; continue }
115
+ $candidateForms = Get-FontIdentityForms $File.BaseName
116
+ if ($candidateForms.Count -eq 0) { $candidateForms = @(Normalize-FontName $File.BaseName) }
117
+ $candidateNorm = if ($candidateForms.Count -gt 0) { $candidateForms[0] } else { '' }
58
118
 
59
- Write-Host "Installing font (no matches) $($File.Name) | norm=$candidateNorm" -ForegroundColor Yellow
60
- $objFolder.CopyHere($File.FullName)
119
+ # 1. Exact file existence check (handles .ttf/.otf pairs) before invoking Shell CopyHere.
120
+ $destFile = Join-Path -Path 'C:\Windows\Fonts' -ChildPath $File.Name
121
+ if (Test-Path -LiteralPath $destFile) {
122
+ Write-Host "Skip (file exists) $($File.Name)" -ForegroundColor Green
123
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
124
+ continue
61
125
  }
126
+
127
+ # 2. Registry check: Fonts are registered under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
128
+ if ($registryFonts.Count -gt 0) {
129
+ $exactRegMatch = $candidateForms | Where-Object { $registryFonts -contains $_ }
130
+ if ($exactRegMatch.Count -gt 0) {
131
+ Write-Host "Skip (registry) $($File.Name)" -ForegroundColor Green
132
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
133
+ continue
134
+ }
135
+ if (Test-FontFormsOverlapFuzzy $candidateForms $registryFonts) {
136
+ Write-Host "Skip (registry family) $($File.Name)" -ForegroundColor Green
137
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
138
+ continue
139
+ }
140
+ }
141
+
142
+ # 3. Original heuristic set: in-memory list
143
+ if (($candidateForms | Where-Object { $installedFonts -contains $_ }).Count -gt 0) {
144
+ Write-Host "Skip (installed map) $($File.Name)" -ForegroundColor Green
145
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
146
+ continue
147
+ }
148
+ if (Test-FontFormsOverlapFuzzy $candidateForms $installedFonts) {
149
+ Write-Host "Skip (installed family) $($File.Name)" -ForegroundColor Green
150
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
151
+ continue
152
+ }
153
+
154
+ Write-Host "Installing font (no matches) $($File.Name) | norm=$candidateNorm" -ForegroundColor Yellow
155
+ $objFolder.CopyHere($File.FullName)
156
+ $installedFonts = Merge-UniqueForms $installedFonts $candidateForms
62
157
  }
63
158
  Write-Host "Font installation script completed." -ForegroundColor Cyan
@@ -5,7 +5,7 @@ from typing import Optional
5
5
 
6
6
  from rich.console import Console
7
7
  from rich.panel import Panel
8
- from machineconfig.utils.installer_utils.installer_abc import WINDOWS_INSTALL_PATH
8
+ from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
9
9
 
10
10
  from machineconfig.utils.installer_utils.installer_class import Installer
11
11
  from machineconfig.utils.schemas.installer.installer_types import InstallerData
@@ -40,8 +40,7 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
40
40
  )
41
41
 
42
42
  installer = Installer(installer_data=installer_data_modified)
43
- downloaded, _version_to_be_installed = installer.download(version=version)
44
- decomp_path = downloaded.decompress()
43
+ decomp_path, _version_to_be_installed = installer.binary_download(version=version)
45
44
  from pathlib import Path
46
45
  for item in decomp_path.rglob("*"):
47
46
  if "boxes.exe" in item.name:
@@ -27,7 +27,7 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
27
27
  console.print("🪟 Installing Brave Browser on Windows using winget...", style="bold")
28
28
  program = """
29
29
 
30
- winget install --Name "Brave Browser" --Id Brave.Brave --source winget --accept-package-agreements --accept-source-agreements
30
+ winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
31
31
 
32
32
  """
33
33
  elif platform.system() in ["Linux", "Darwin"]:
@@ -70,9 +70,11 @@ winget install --Name "Brave Browser" --Id Brave.Brave --source winget --accept-
70
70
  )
71
71
 
72
72
  console.print("🔄 EXECUTING | Running Brave Browser installation...", style="bold yellow")
73
+ from machineconfig.utils.code import print_code, run_shell_script
73
74
  try:
74
- subprocess.run(program, shell=True, text=True, check=True)
75
- console.print("✅ Brave Browser installation completed successfully", style="bold green")
75
+ print_code(code=program, lexer="shell", desc="Installation Script Preview")
76
+ run_shell_script(program, display_script=True, clean_env=False)
77
+ console.print("✅ Installation completed successfully!", style="bold green")
76
78
  except subprocess.CalledProcessError as e:
77
79
  console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
78
80
  raise
@@ -0,0 +1,23 @@
1
+
2
+ from typing import Optional
3
+ import platform
4
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
5
+
6
+
7
+ def main(installer_data: InstallerData, version: Optional[str]):
8
+ _ = installer_data, version
9
+ system = platform.system()
10
+ if system == "Windows":
11
+ raise NotImplementedError("Installer is not yet implemented for Windows.")
12
+ elif system == "Linux":
13
+ from pathlib import Path
14
+ import machineconfig.jobs.installer as module
15
+ program = Path(module.__file__).parent.joinpath("linux_scripts/cloudflare_warp_cli.sh").read_text(encoding="utf-8")
16
+ elif system == "Darwin":
17
+ program = "brew install --cask cloudflare-warp"
18
+ else:
19
+ raise NotImplementedError(f"Unsupported platform: {system}")
20
+ import subprocess
21
+ subprocess.run(program, shell=True, check=True)
22
+ return f"Cloudflare WARP CLI installed successfully on {system}."
23
+
@@ -2,7 +2,6 @@
2
2
 
3
3
  from typing import Optional
4
4
  import platform
5
- import subprocess
6
5
  from rich import box
7
6
  from rich.console import Console
8
7
  from rich.panel import Panel
@@ -32,7 +31,10 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
32
31
  install_script = """brew install --cask visual-studio-code"""
33
32
  elif platform.system() == "Windows":
34
33
  console.print("🪟 Installing VS Code on Windows using winget...", style="bold")
35
- install_script = """winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements"""
34
+ install_script = """
35
+ winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
36
+
37
+ """
36
38
  else:
37
39
  error_msg = f"Unsupported platform: {platform.system()}"
38
40
  console.print(
@@ -47,13 +49,16 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
47
49
  raise NotImplementedError(error_msg)
48
50
  _ = version
49
51
 
50
- console.print("🔄 EXECUTING | Running VS Code installation...", style="bold yellow")
51
- try:
52
- subprocess.run(install_script, shell=True, text=True, check=True)
53
- console.print("✅ VS Code installation completed successfully", style="bold green")
54
- except subprocess.CalledProcessError as e:
55
- console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
56
- raise
52
+ # import subprocess
53
+ # console.print("🔄 EXECUTING | Running VS Code installation...", style="bold yellow")
54
+ # try:
55
+ # subprocess.run(install_script, shell=True, text=True, check=True)
56
+ # console.print("✅ VS Code installation completed successfully", style="bold green")
57
+ # except subprocess.CalledProcessError as e:
58
+ # console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
59
+ # raise
60
+ from machineconfig.utils.code import run_shell_script
61
+ run_shell_script(install_script, display_script=True, clean_env=False)
57
62
 
58
63
 
59
64
  if __name__ == "__main__":
@@ -25,6 +25,6 @@ installer_data: InstallerData = {
25
25
 
26
26
  def main(installer_data: InstallerData, version: Optional[str]) -> None:
27
27
  _ = version
28
- from machineconfig.utils.installer import Installer
28
+ from machineconfig.utils.installer_utils.installer_runner import Installer
29
29
  installer = Installer(installer_data)
30
30
  installer.install(version=None)