machineconfig 3.99__py3-none-any.whl → 7.66__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.

Potentially problematic release.


This version of machineconfig might be problematic. Click here for more details.

Files changed (418) hide show
  1. machineconfig/__init__.py +0 -28
  2. machineconfig/cluster/remote/distribute.py +0 -1
  3. machineconfig/cluster/remote/file_manager.py +0 -2
  4. machineconfig/cluster/remote/script_execution.py +1 -2
  5. machineconfig/cluster/sessions_managers/{enhanced_command_runner.py → helpers/enhanced_command_runner.py} +4 -6
  6. machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +145 -0
  7. machineconfig/cluster/sessions_managers/utils/load_balancer.py +53 -0
  8. machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
  9. machineconfig/cluster/sessions_managers/wt_local.py +128 -330
  10. machineconfig/cluster/sessions_managers/wt_local_manager.py +53 -187
  11. machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
  12. machineconfig/cluster/sessions_managers/wt_remote_manager.py +49 -197
  13. machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +6 -19
  14. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  15. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  16. machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +4 -2
  17. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  18. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  19. machineconfig/cluster/sessions_managers/zellij_local.py +81 -375
  20. machineconfig/cluster/sessions_managers/zellij_local_manager.py +22 -172
  21. machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
  22. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +13 -10
  23. machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -8
  24. machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +5 -20
  25. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -9
  26. machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -1
  27. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +298 -0
  28. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +77 -0
  29. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +228 -0
  30. machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +165 -0
  31. machineconfig/jobs/{python → installer}/check_installations.py +2 -16
  32. machineconfig/jobs/installer/custom/boxes.py +61 -0
  33. machineconfig/jobs/installer/custom/gh.py +69 -53
  34. machineconfig/jobs/installer/custom/hx.py +77 -20
  35. machineconfig/jobs/installer/custom_dev/alacritty.py +45 -30
  36. machineconfig/jobs/installer/custom_dev/brave.py +43 -35
  37. machineconfig/jobs/installer/custom_dev/bypass_paywall.py +31 -20
  38. machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
  39. machineconfig/jobs/installer/custom_dev/code.py +33 -21
  40. machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
  41. machineconfig/jobs/installer/custom_dev/espanso.py +64 -41
  42. machineconfig/jobs/installer/custom_dev/goes.py +41 -36
  43. machineconfig/jobs/installer/custom_dev/lvim.py +49 -33
  44. machineconfig/jobs/installer/custom_dev/nerdfont.py +71 -47
  45. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +32 -26
  46. machineconfig/jobs/installer/custom_dev/redis.py +51 -33
  47. machineconfig/jobs/installer/custom_dev/sysabc.py +119 -0
  48. machineconfig/jobs/installer/custom_dev/wezterm.py +55 -39
  49. machineconfig/jobs/installer/custom_dev/winget.py +1 -0
  50. machineconfig/jobs/installer/installer_data.json +3406 -0
  51. machineconfig/jobs/installer/linux_scripts/brave.sh +4 -14
  52. machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +5 -17
  53. machineconfig/jobs/installer/linux_scripts/docker.sh +5 -17
  54. machineconfig/jobs/installer/linux_scripts/docker_start.sh +6 -14
  55. machineconfig/jobs/installer/linux_scripts/edge.sh +3 -11
  56. machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
  57. machineconfig/jobs/installer/linux_scripts/nerdfont.sh +5 -17
  58. machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
  59. machineconfig/jobs/installer/linux_scripts/ngrok.sh +6 -0
  60. machineconfig/jobs/installer/linux_scripts/q.sh +9 -0
  61. machineconfig/jobs/installer/linux_scripts/redis.sh +6 -17
  62. machineconfig/jobs/installer/linux_scripts/vscode.sh +5 -17
  63. machineconfig/jobs/installer/linux_scripts/wezterm.sh +4 -12
  64. machineconfig/jobs/installer/package_groups.py +255 -0
  65. machineconfig/logger.py +0 -1
  66. machineconfig/profile/backup.toml +49 -0
  67. machineconfig/profile/bash_shell_profiles.md +11 -0
  68. machineconfig/profile/create_helper.py +74 -0
  69. machineconfig/profile/create_links.py +288 -0
  70. machineconfig/profile/create_links_export.py +100 -0
  71. machineconfig/profile/create_shell_profile.py +136 -0
  72. machineconfig/profile/mapper.toml +258 -0
  73. machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +92 -0
  74. machineconfig/scripts/__init__.py +0 -4
  75. machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
  76. machineconfig/scripts/linux/wrap_mcfg +47 -0
  77. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  78. machineconfig/scripts/python/agents.py +198 -0
  79. machineconfig/scripts/python/ai/command_runner/command_runner.sh +9 -0
  80. machineconfig/scripts/python/ai/command_runner/prompt.txt +9 -0
  81. machineconfig/scripts/python/ai/generate_files.py +307 -42
  82. machineconfig/scripts/python/ai/initai.py +3 -28
  83. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +17 -18
  84. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +17 -18
  85. machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
  86. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +1 -1
  87. machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
  88. machineconfig/scripts/python/ai/solutions/generic.py +27 -4
  89. machineconfig/scripts/python/ai/vscode_tasks.py +37 -0
  90. machineconfig/scripts/python/cloud.py +29 -0
  91. machineconfig/scripts/python/croshell.py +117 -181
  92. machineconfig/scripts/python/define.py +31 -0
  93. machineconfig/scripts/python/devops.py +44 -124
  94. machineconfig/scripts/python/devops_navigator.py +10 -0
  95. machineconfig/scripts/python/env_manager/__init__.py +1 -0
  96. machineconfig/scripts/python/env_manager/path_manager_backend.py +47 -0
  97. machineconfig/scripts/python/env_manager/path_manager_tui.py +228 -0
  98. machineconfig/scripts/python/explore.py +49 -0
  99. machineconfig/scripts/python/fire_jobs.py +106 -244
  100. machineconfig/scripts/python/ftpx.py +125 -68
  101. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
  102. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +37 -0
  103. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
  104. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +42 -0
  105. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  106. machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +110 -0
  107. machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +34 -0
  108. machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +22 -0
  109. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
  110. machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
  111. machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -0
  112. machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +30 -23
  113. machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +11 -19
  114. machineconfig/scripts/python/{cloud_sync.py → helpers_cloud/cloud_sync.py} +12 -18
  115. machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +3 -3
  116. machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
  117. machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +17 -7
  118. machineconfig/scripts/python/helpers_devops/cli_config.py +95 -0
  119. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
  120. machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
  121. machineconfig/scripts/python/helpers_devops/cli_nw.py +134 -0
  122. machineconfig/scripts/python/helpers_devops/cli_repos.py +182 -0
  123. machineconfig/scripts/python/helpers_devops/cli_self.py +134 -0
  124. machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
  125. machineconfig/scripts/python/helpers_devops/cli_share_server.py +141 -0
  126. machineconfig/scripts/python/helpers_devops/cli_terminal.py +156 -0
  127. machineconfig/scripts/python/helpers_devops/cli_utils.py +96 -0
  128. machineconfig/scripts/python/{devops_backup_retrieve.py → helpers_devops/devops_backup_retrieve.py} +7 -10
  129. machineconfig/scripts/python/helpers_devops/devops_status.py +511 -0
  130. machineconfig/scripts/python/helpers_devops/devops_update_repos.py +269 -0
  131. machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +81 -0
  132. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
  133. machineconfig/scripts/python/{choose_wezterm_theme.py → helpers_devops/themes/choose_wezterm_theme.py} +2 -2
  134. machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  135. machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -87
  136. machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +145 -0
  137. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +110 -0
  138. machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  139. machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
  140. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfag +1 -1
  141. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +1 -1
  142. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfrga +1 -1
  143. machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
  144. machineconfig/scripts/python/helpers_navigator/command_builder.py +111 -0
  145. machineconfig/scripts/python/helpers_navigator/command_detail.py +44 -0
  146. machineconfig/scripts/python/helpers_navigator/command_tree.py +588 -0
  147. machineconfig/scripts/python/helpers_navigator/data_models.py +28 -0
  148. machineconfig/scripts/python/helpers_navigator/main_app.py +272 -0
  149. machineconfig/scripts/python/helpers_navigator/search_bar.py +15 -0
  150. machineconfig/scripts/python/helpers_repos/action.py +209 -0
  151. machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
  152. machineconfig/scripts/python/{repos_helper_clone.py → helpers_repos/clone.py} +6 -7
  153. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
  154. machineconfig/scripts/python/helpers_repos/count_lines.py +348 -0
  155. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +17 -0
  156. machineconfig/scripts/python/helpers_repos/entrypoint.py +77 -0
  157. machineconfig/scripts/python/helpers_repos/grource.py +340 -0
  158. machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +7 -4
  159. machineconfig/scripts/python/helpers_repos/sync.py +66 -0
  160. machineconfig/scripts/python/{repos_helper_update.py → helpers_repos/update.py} +3 -3
  161. machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
  162. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +58 -0
  163. machineconfig/scripts/python/helpers_utils/download.py +152 -0
  164. machineconfig/scripts/python/helpers_utils/path.py +108 -0
  165. machineconfig/scripts/python/interactive.py +79 -160
  166. machineconfig/scripts/python/machineconfig.py +63 -0
  167. machineconfig/scripts/python/msearch.py +21 -0
  168. machineconfig/scripts/python/nw/__init__.py +0 -0
  169. machineconfig/scripts/python/{devops_add_identity.py → nw/devops_add_identity.py} +1 -3
  170. machineconfig/scripts/python/{devops_add_ssh_key.py → nw/devops_add_ssh_key.py} +74 -44
  171. machineconfig/scripts/{linux → python/nw}/mount_nfs +1 -1
  172. machineconfig/scripts/python/{mount_nfs.py → nw/mount_nfs.py} +19 -16
  173. machineconfig/scripts/{linux → python/nw}/mount_nw_drive +1 -2
  174. machineconfig/scripts/python/{mount_ssh.py → nw/mount_ssh.py} +7 -8
  175. machineconfig/scripts/python/{onetimeshare.py → nw/onetimeshare.py} +0 -1
  176. machineconfig/scripts/python/nw/ssh_debug_linux.py +391 -0
  177. machineconfig/scripts/python/nw/ssh_debug_windows.py +338 -0
  178. machineconfig/scripts/python/{wifi_conn.py → nw/wifi_conn.py} +1 -53
  179. machineconfig/scripts/python/{wsl_windows_transfer.py → nw/wsl_windows_transfer.py} +6 -5
  180. machineconfig/scripts/python/sessions.py +167 -0
  181. machineconfig/scripts/python/terminal.py +127 -0
  182. machineconfig/scripts/python/utils.py +66 -0
  183. machineconfig/scripts/windows/{mount_nfs.ps1 → mounts/mount_nfs.ps1} +1 -3
  184. machineconfig/scripts/windows/{mount_ssh.ps1 → mounts/mount_ssh.ps1} +1 -1
  185. machineconfig/scripts/windows/{share_smb.ps1 → mounts/share_smb.ps1} +0 -6
  186. machineconfig/scripts/windows/wrap_mcfg.ps1 +60 -0
  187. machineconfig/settings/broot/br.sh +0 -4
  188. machineconfig/settings/broot/conf.toml +1 -1
  189. machineconfig/settings/helix/config.toml +16 -0
  190. machineconfig/settings/helix/languages.toml +13 -4
  191. machineconfig/settings/helix/yazi-picker.sh +12 -0
  192. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  193. machineconfig/settings/lf/linux/exe/previewer.sh +9 -3
  194. machineconfig/settings/lf/linux/lfrc +10 -12
  195. machineconfig/settings/lf/windows/fzf_edit.ps1 +2 -2
  196. machineconfig/settings/lf/windows/lfrc +18 -38
  197. machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
  198. machineconfig/settings/linters/.ruff.toml +1 -1
  199. machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
  200. machineconfig/settings/marimo/marimo.toml +80 -0
  201. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  202. machineconfig/settings/pistol/pistol.conf +1 -1
  203. machineconfig/settings/shells/bash/init.sh +55 -31
  204. machineconfig/settings/shells/nushell/config.nu +1 -34
  205. machineconfig/settings/shells/nushell/init.nu +127 -0
  206. machineconfig/settings/shells/pwsh/init.ps1 +60 -43
  207. machineconfig/settings/shells/starship/starship.toml +16 -0
  208. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  209. machineconfig/settings/shells/wt/settings.json +32 -17
  210. machineconfig/settings/shells/zsh/init.sh +89 -0
  211. machineconfig/settings/svim/linux/init.toml +0 -4
  212. machineconfig/settings/svim/windows/init.toml +0 -3
  213. machineconfig/settings/yazi/init.lua +57 -0
  214. machineconfig/settings/yazi/keymap_linux.toml +79 -0
  215. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  216. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  217. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  218. machineconfig/settings/yazi/yazi.toml +13 -0
  219. machineconfig/setup_linux/__init__.py +10 -0
  220. machineconfig/setup_linux/apps_desktop.sh +89 -0
  221. machineconfig/setup_linux/apps_gui.sh +64 -0
  222. machineconfig/setup_linux/{nix → others}/cli_installation.sh +9 -29
  223. machineconfig/setup_linux/ssh/openssh_all.sh +25 -0
  224. machineconfig/setup_linux/ssh/openssh_wsl.sh +38 -0
  225. machineconfig/setup_linux/uv.sh +15 -0
  226. machineconfig/setup_linux/web_shortcuts/interactive.sh +26 -6
  227. machineconfig/setup_mac/__init__.py +16 -0
  228. machineconfig/setup_mac/apps_gui.sh +248 -0
  229. machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
  230. machineconfig/setup_mac/uv.sh +36 -0
  231. machineconfig/setup_windows/__init__.py +8 -0
  232. machineconfig/setup_windows/others/power_options.ps1 +7 -0
  233. machineconfig/setup_windows/ssh/add-sshkey.ps1 +29 -0
  234. machineconfig/setup_windows/ssh/add_identity.ps1 +11 -0
  235. machineconfig/setup_windows/ssh/openssh-server.ps1 +37 -0
  236. machineconfig/setup_windows/uv.ps1 +10 -0
  237. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +27 -9
  238. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +16 -0
  239. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +37 -23
  240. machineconfig/utils/accessories.py +7 -5
  241. machineconfig/utils/cloud/onedrive/README.md +139 -0
  242. machineconfig/utils/code.py +140 -93
  243. machineconfig/utils/files/art/fat_croco.txt +10 -0
  244. machineconfig/utils/files/art/halfwit_croco.txt +9 -0
  245. machineconfig/utils/files/art/happy_croco.txt +22 -0
  246. machineconfig/utils/files/art/water_croco.txt +11 -0
  247. machineconfig/utils/files/ascii_art.py +118 -0
  248. machineconfig/utils/files/dbms.py +257 -0
  249. machineconfig/utils/files/headers.py +68 -0
  250. machineconfig/utils/files/ouch/__init__.py +0 -0
  251. machineconfig/utils/files/ouch/decompress.py +45 -0
  252. machineconfig/utils/files/read.py +95 -0
  253. machineconfig/utils/installer_utils/github_release_bulk.py +2 -12
  254. machineconfig/utils/installer_utils/installer_class.py +68 -126
  255. machineconfig/utils/installer_utils/installer_cli.py +181 -0
  256. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +38 -85
  257. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +69 -69
  258. machineconfig/utils/io.py +77 -23
  259. machineconfig/utils/links.py +309 -100
  260. machineconfig/utils/meta.py +255 -0
  261. machineconfig/utils/notifications.py +1 -1
  262. machineconfig/utils/options.py +10 -25
  263. machineconfig/utils/path_extended.py +94 -104
  264. machineconfig/utils/path_helper.py +75 -22
  265. machineconfig/utils/procs.py +50 -74
  266. machineconfig/utils/scheduler.py +94 -97
  267. machineconfig/utils/scheduling.py +0 -3
  268. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +5 -17
  269. machineconfig/utils/schemas/installer/installer_types.py +0 -1
  270. machineconfig/utils/schemas/layouts/layout_types.py +2 -1
  271. machineconfig/utils/source_of_truth.py +3 -6
  272. machineconfig/utils/ssh.py +742 -254
  273. machineconfig/utils/ssh_utils/utils.py +0 -0
  274. machineconfig/utils/terminal.py +3 -140
  275. machineconfig/utils/tst.py +20 -0
  276. machineconfig/utils/upgrade_packages.py +109 -28
  277. machineconfig/utils/ve.py +13 -5
  278. machineconfig-7.66.dist-info/METADATA +124 -0
  279. machineconfig-7.66.dist-info/RECORD +451 -0
  280. machineconfig-7.66.dist-info/entry_points.txt +15 -0
  281. machineconfig/cluster/templates/utils.py +0 -51
  282. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -49
  283. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -85
  284. machineconfig/jobs/installer/packages_custom_dev.json +0 -226
  285. machineconfig/jobs/installer/packages_custom_essential.json +0 -39
  286. machineconfig/jobs/installer/packages_github_dev.json +0 -1110
  287. machineconfig/jobs/installer/packages_github_essential.json +0 -804
  288. machineconfig/jobs/linux/msc/cli_agents.sh +0 -37
  289. machineconfig/jobs/python/create_bootable_media.py +0 -16
  290. machineconfig/jobs/python/python_cargo_build_share.py +0 -59
  291. machineconfig/jobs/python/python_ve_symlink.py +0 -29
  292. machineconfig/jobs/python/tasks.py +0 -3
  293. machineconfig/jobs/python/vscode/api.py +0 -49
  294. machineconfig/jobs/python/vscode/sync_code.py +0 -58
  295. machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -14
  296. machineconfig/jobs/windows/start_terminal.ps1 +0 -6
  297. machineconfig/jobs/windows/startup_file.cmd +0 -2
  298. machineconfig/profile/create.py +0 -170
  299. machineconfig/profile/shell.py +0 -176
  300. machineconfig/scripts/cloud/init.sh +0 -119
  301. machineconfig/scripts/linux/choose_wezterm_theme +0 -3
  302. machineconfig/scripts/linux/cloud_copy +0 -2
  303. machineconfig/scripts/linux/cloud_mount +0 -2
  304. machineconfig/scripts/linux/cloud_repo_sync +0 -2
  305. machineconfig/scripts/linux/cloud_sync +0 -2
  306. machineconfig/scripts/linux/croshell +0 -3
  307. machineconfig/scripts/linux/devops +0 -2
  308. machineconfig/scripts/linux/fire +0 -2
  309. machineconfig/scripts/linux/fire_agents +0 -2
  310. machineconfig/scripts/linux/ftpx +0 -2
  311. machineconfig/scripts/linux/fzf2g +0 -21
  312. machineconfig/scripts/linux/fzffg +0 -25
  313. machineconfig/scripts/linux/gh_models +0 -2
  314. machineconfig/scripts/linux/initai +0 -2
  315. machineconfig/scripts/linux/kill_process +0 -2
  316. machineconfig/scripts/linux/programs +0 -21
  317. machineconfig/scripts/linux/repos +0 -2
  318. machineconfig/scripts/linux/scheduler +0 -2
  319. machineconfig/scripts/linux/share_smb +0 -1
  320. machineconfig/scripts/linux/start_slidev +0 -2
  321. machineconfig/scripts/linux/start_terminals +0 -3
  322. machineconfig/scripts/linux/warp-cli.sh +0 -122
  323. machineconfig/scripts/linux/wifi_conn +0 -2
  324. machineconfig/scripts/linux/z_ls +0 -104
  325. machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
  326. machineconfig/scripts/python/cloud_repo_sync.py +0 -186
  327. machineconfig/scripts/python/devops_devapps_install.py +0 -159
  328. machineconfig/scripts/python/devops_update_repos.py +0 -180
  329. machineconfig/scripts/python/dotfile.py +0 -52
  330. machineconfig/scripts/python/fire_agents.py +0 -175
  331. machineconfig/scripts/python/fire_agents_help_launch.py +0 -143
  332. machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
  333. machineconfig/scripts/python/fire_jobs_args_helper.py +0 -75
  334. machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -74
  335. machineconfig/scripts/python/get_zellij_cmd.py +0 -15
  336. machineconfig/scripts/python/gh_models.py +0 -104
  337. machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -114
  338. machineconfig/scripts/python/repos.py +0 -80
  339. machineconfig/scripts/python/repos_helper_action.py +0 -335
  340. machineconfig/scripts/python/share_terminal.py +0 -104
  341. machineconfig/scripts/python/snapshot.py +0 -25
  342. machineconfig/scripts/python/start_terminals.py +0 -121
  343. machineconfig/scripts/python/t4.py +0 -17
  344. machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -1
  345. machineconfig/scripts/windows/cloud_copy.ps1 +0 -1
  346. machineconfig/scripts/windows/cloud_mount.ps1 +0 -1
  347. machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
  348. machineconfig/scripts/windows/cloud_sync.ps1 +0 -1
  349. machineconfig/scripts/windows/croshell.ps1 +0 -1
  350. machineconfig/scripts/windows/devops.ps1 +0 -1
  351. machineconfig/scripts/windows/dotfile.ps1 +0 -1
  352. machineconfig/scripts/windows/fire.ps1 +0 -1
  353. machineconfig/scripts/windows/ftpx.ps1 +0 -1
  354. machineconfig/scripts/windows/gpt.ps1 +0 -1
  355. machineconfig/scripts/windows/grep.ps1 +0 -2
  356. machineconfig/scripts/windows/initai.ps1 +0 -1
  357. machineconfig/scripts/windows/kill_process.ps1 +0 -1
  358. machineconfig/scripts/windows/nano.ps1 +0 -3
  359. machineconfig/scripts/windows/pomodoro.ps1 +0 -1
  360. machineconfig/scripts/windows/reload_path.ps1 +0 -3
  361. machineconfig/scripts/windows/repos.ps1 +0 -1
  362. machineconfig/scripts/windows/scheduler.ps1 +0 -1
  363. machineconfig/scripts/windows/snapshot.ps1 +0 -1
  364. machineconfig/scripts/windows/start_slidev.ps1 +0 -1
  365. machineconfig/scripts/windows/start_terminals.ps1 +0 -1
  366. machineconfig/scripts/windows/wifi_conn.ps1 +0 -2
  367. machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -46
  368. machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -76
  369. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  370. machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
  371. machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -93
  372. machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -11
  373. machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -52
  374. machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -18
  375. machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -36
  376. machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -16
  377. machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -11
  378. machineconfig/utils/ai/generate_file_checklist.py +0 -68
  379. machineconfig-3.99.dist-info/METADATA +0 -167
  380. machineconfig-3.99.dist-info/RECORD +0 -409
  381. machineconfig-3.99.dist-info/entry_points.txt +0 -18
  382. machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
  383. machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
  384. machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
  385. machineconfig/scripts/linux/{share_nfs → other/share_nfs} +0 -0
  386. machineconfig/scripts/linux/{start_docker → other/start_docker} +0 -0
  387. machineconfig/scripts/linux/{switch_ip → other/switch_ip} +0 -0
  388. machineconfig/{jobs/python → scripts/python/helpers_agents}/__init__.py +0 -0
  389. machineconfig/scripts/python/{helpers → helpers_agents/agentic_frameworks}/__init__.py +0 -0
  390. machineconfig/scripts/python/{fire_agents_help_search.py → helpers_agents/fire_agents_help_search.py} +0 -0
  391. machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_cloud/__init__.py} +0 -0
  392. machineconfig/scripts/python/{helpers → helpers_cloud}/cloud_helpers.py +1 -1
  393. /machineconfig/scripts/python/{helpers → helpers_cloud}/helpers5.py +0 -0
  394. /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_croshell/__init__.py} +0 -0
  395. /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
  396. /machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.py} +0 -0
  397. /machineconfig/scripts/python/{viewer.py → helpers_croshell/viewer.py} +0 -0
  398. /machineconfig/scripts/python/{viewer_template.py → helpers_croshell/viewer_template.py} +0 -0
  399. /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → helpers_devops/__init__.py} +0 -0
  400. /machineconfig/scripts/{windows/share_nfs.ps1 → python/helpers_devops/themes/__init__.py} +0 -0
  401. /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
  402. /machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -0
  403. /machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/skrg +0 -0
  404. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfb.ps1 +0 -0
  405. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfg.ps1 +0 -0
  406. /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfrga.bat +0 -0
  407. /machineconfig/scripts/{linux → python/nw}/mount_drive +0 -0
  408. /machineconfig/scripts/python/{mount_nw_drive.py → nw/mount_nw_drive.py} +0 -0
  409. /machineconfig/scripts/{linux → python/nw}/mount_smb +0 -0
  410. /machineconfig/scripts/windows/{mount_nw.ps1 → mounts/mount_nw.ps1} +0 -0
  411. /machineconfig/scripts/windows/{mount_smb.ps1 → mounts/mount_smb.ps1} +0 -0
  412. /machineconfig/scripts/windows/{share_cloud.cmd → mounts/share_cloud.cmd} +0 -0
  413. /machineconfig/scripts/windows/{unlock_bitlocker.ps1 → mounts/unlock_bitlocker.ps1} +0 -0
  414. /machineconfig/setup_linux/{web_shortcuts → others}/android.sh +0 -0
  415. /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
  416. /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
  417. {machineconfig-3.99.dist-info → machineconfig-7.66.dist-info}/WHEEL +0 -0
  418. {machineconfig-3.99.dist-info → machineconfig-7.66.dist-info}/top_level.txt +0 -0
@@ -1,16 +1,13 @@
1
1
  #!/bin/bash
2
- #=======================================================================
2
+ # https://temp.sh/
3
3
  # 📤 CLOUD FILE SHARING SCRIPT 📤
4
- #=======================================================================
5
4
  # This script uploads files or directories to transfer.sh for easy sharing
6
5
  # Usage: share_cloud <file|directory> or command | share_cloud <file_name>
7
6
 
8
7
  # Check if arguments are provided
9
8
  if [ $# -eq 0 ]; then
10
- echo """ #=======================================================================
11
- ❌ ERROR | No arguments specified
12
- #=======================================================================
13
-
9
+ echo """ ❌ ERROR | No arguments specified
10
+
14
11
  📋 USAGE:
15
12
  share_cloud <file|directory>
16
13
  command | share_cloud <file_name>
@@ -18,6 +15,8 @@ if [ $# -eq 0 ]; then
18
15
  return 1
19
16
  fi
20
17
 
18
+ # https://temp.sh/
19
+
21
20
  # Process the input
22
21
  if tty -s; then
23
22
  # Direct file/directory upload mode
@@ -26,19 +25,15 @@ if tty -s; then
26
25
 
27
26
  # Check if the file exists
28
27
  if [ ! -e "$file" ]; then
29
- echo """ #=======================================================================
30
- ❌ ERROR | File not found
31
- #=======================================================================
32
-
28
+ echo """ ❌ ERROR | File not found
29
+
33
30
  🔍 File \"$file\" does not exist
34
31
  """>&2
35
32
  return 1
36
33
  fi
37
34
 
38
- echo """ #=======================================================================
39
- 📤 UPLOADING | Sharing file to transfer.sh
40
- #=======================================================================
41
- """
35
+ echo """ 📤 UPLOADING | Sharing file to transfer.sh
36
+ """
42
37
 
43
38
  # Handle directories by creating a zip archive
44
39
  if [ -d "$file" ]; then
@@ -53,23 +48,17 @@ if tty -s; then
53
48
  else
54
49
  # Pipe mode - reading from stdin
55
50
  file_name=$1
56
- echo """ #=======================================================================
57
- 📤 UPLOADING | Sharing from stdin to transfer.sh
58
- #=======================================================================
59
- """
51
+ echo """ 📤 UPLOADING | Sharing from stdin to transfer.sh
52
+ """
60
53
  echo "📋 Creating file \"$file_name\" from piped input..."
61
54
  curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name" | tee /dev/null
62
55
 
63
56
  # Display QR code for the URL
64
- echo """ #=======================================================================
65
- 📱 QR CODE | Scan with mobile device to access file
66
- #=======================================================================
67
- """
57
+ echo """ 📱 QR CODE | Scan with mobile device to access file
58
+ """
68
59
  qr "https://transfer.sh/$file_name"
69
60
  fi
70
61
 
71
- echo """#=======================================================================
72
- ✅ UPLOAD COMPLETE | File is available at the URL above
73
- #=======================================================================
62
+ echo """✅ UPLOAD COMPLETE | File is available at the URL above
74
63
  """
75
64
  echo "⚠️ NOTE: Files are automatically deleted after 14 days"
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env bash
2
+
3
+
4
+ wrap_in_shell_script() {
5
+ # set -euo pipefail
6
+ # ANSI color/style codes
7
+ BOLD="\033[1m"
8
+ RESET="\033[0m"
9
+ GREEN="\033[32m"
10
+ YELLOW="\033[33m"
11
+ BLUE="\033[34m"
12
+ RED="\033[31m"
13
+
14
+ local command="$1"
15
+ shift
16
+ local RANDOM_NAME=$(uuidgen | tr -d '-' | head -c 16)
17
+ local OP_DIR="$HOME/tmp_results/tmp_scripts/machineconfig"
18
+ local OP_PROGRAM_PATH="$OP_DIR/${RANDOM_NAME}.sh"
19
+ export OP_PROGRAM_PATH
20
+ local timestamp=$(date -u +"%Y-%m-%d %H:%M:%SZ")
21
+ printf "%b\n" "${BOLD}${BLUE}🛠️ machineconfig — running ${command}${RESET}"
22
+ printf "%b\n" "${BLUE}Timestamp:${RESET} ${timestamp}"
23
+ printf "%b\n" "${BLUE}Op program path:${RESET} ${OP_PROGRAM_PATH}"
24
+
25
+ # Forward arguments to the command
26
+ "$command" "$@"
27
+
28
+ if [[ -f "$OP_PROGRAM_PATH" ]]; then
29
+ printf "%b\n" "${GREEN}🚀 Taking over from python script @ ${OP_PROGRAM_PATH}${RESET}"
30
+ bat --style=full --theme=OneHalfDark --paging=never "$OP_PROGRAM_PATH"
31
+ printf "%b\n" "${GREEN}▶ Running...${RESET}"
32
+ . "$OP_PROGRAM_PATH"
33
+ status=$?
34
+ if [[ $status -eq 0 ]]; then
35
+ printf "%b\n" "${GREEN}✅ '${command}' execution completed.${RESET}"
36
+ else
37
+ printf "%b\n" "${YELLOW}⚠️ Program exited with status ${status}${RESET}"
38
+ fi
39
+ else
40
+ printf "%b\n" "${GREEN}✅ '${command}' execution completed.${RESET}"
41
+ fi
42
+ }
43
+
44
+ if [[ $# -gt 0 ]]; then
45
+ wrap_in_shell_script "$@"
46
+ fi
47
+
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env nu
2
+
3
+ def wrap-in-shell-script [command: string ...args: string] -> nothing {
4
+ # ANSI color/style codes
5
+ let bold = (char ansi_reset | str append "\e[1m")
6
+ let reset = "\e[0m"
7
+ let green = "\e[32m"
8
+ let yellow = "\e[33m"
9
+ let blue = "\e[34m"
10
+ let red = "\e[31m"
11
+
12
+ let random_name = (date now | format date "%s%N" | sha256sum | str substring 0..16)
13
+ let op_dir = $"($env.HOME)/tmp_results/tmp_scripts/machineconfig"
14
+ let op_program_path = $"($op_dir)/($random_name).sh"
15
+
16
+ $env.OP_PROGRAM_PATH = $op_program_path
17
+
18
+ let timestamp = (date now --utc | format date "%Y-%m-%d %H:%M:%SZ")
19
+
20
+ print $"($bold)($blue)🛠️ machineconfig — running ($command)($reset)"
21
+ print $"($blue)Timestamp:($reset) ($timestamp)"
22
+ print $"($blue)Op program path:($reset) ($op_program_path)"
23
+
24
+ # Forward arguments to the command
25
+ let result = (
26
+ try {
27
+ nu -c $"($command) ($args | str join ' ')"
28
+ } catch {
29
+ $"Error running command: ($in)"
30
+ }
31
+ )
32
+
33
+ if ($op_program_path | path exists) {
34
+ print $"($green)🚀 Taking over from python script @ ($op_program_path)($reset)"
35
+
36
+ if (which bat | is-empty | not) {
37
+ bat --style=plain --paging=never $op_program_path
38
+ } else {
39
+ open $op_program_path
40
+ }
41
+
42
+ print $"($green)▶ Running...($reset)"
43
+
44
+ let status = (
45
+ try {
46
+ bash $op_program_path
47
+ 0
48
+ } catch {
49
+ 1
50
+ }
51
+ )
52
+
53
+ if ($status == 0) {
54
+ print $"($green)✅ '($command)' execution completed.($reset)"
55
+ } else {
56
+ print $"($yellow)⚠️ Program exited with status ($status)($reset)"
57
+ }
58
+ } else {
59
+ print $"($green)✅ '($command)' execution completed.($reset)"
60
+ }
61
+ }
62
+
63
+ def main [] {
64
+ if ($nu.env.args | length) > 0 {
65
+ wrap-in-shell-script ...$nu.env.args
66
+ }
67
+ }
68
+
69
+ main
@@ -0,0 +1,198 @@
1
+ """Utilitfrom pathlib import Path
2
+
3
+ """
4
+
5
+ from pathlib import Path
6
+ from typing import cast, Optional, get_args, Annotated
7
+ import typer
8
+ from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, HOST, PROVIDER
9
+
10
+
11
+ def create(
12
+ agent: Annotated[AGENTS, typer.Option(..., "--agents", "-a", help=f"Agent type. One of {', '.join(get_args(AGENTS)[:3])}")],
13
+ host: Annotated[HOST, typer.Option(..., "--host", "-h", help=f"Machine to run agents on. One of {', '.join(get_args(HOST))}")],
14
+ model: Annotated[str, typer.Option(..., "--model", "-m", help="Model to use (for crush agent).")],
15
+ provider: Annotated[PROVIDER, typer.Option(..., "--provider", "-p", help=f"Provider to use (for crush agent). One of {', '.join(get_args(PROVIDER)[:3])}")],
16
+ context_path: Annotated[Optional[Path], typer.Option(..., "--context-path", "-c", help="Path to the context file/folder, defaults to .ai/todo/")] = None,
17
+ separator: Annotated[str, typer.Option(..., "--separator", "-s", help="Separator for context")] = "\n",
18
+ agent_load: Annotated[int, typer.Option(..., "--agent-load", "-al", help="Number of tasks per prompt")] = 13,
19
+ prompt: Annotated[Optional[str], typer.Option(..., "--prompt", "-P", help="Prompt prefix as string")] = None,
20
+ prompt_path: Annotated[Optional[Path], typer.Option(..., "--prompt-path", "-pp", help="Path to prompt file")] = None,
21
+ job_name: Annotated[str, typer.Option(..., "--job-name", "-j", help="Job name")] = "AI_Agents",
22
+ separate: Annotated[bool, typer.Option(..., "--separate", "-S", help="Keep prompt material in separate file to the context.")] = True,
23
+ output_path: Annotated[Optional[Path], typer.Option(..., "--output-path", "-o", help="Path to write the layout.json file")] = None,
24
+ agents_dir: Annotated[Optional[Path], typer.Option(..., "--agents-dir", "-ad", help="Directory to store agent files. If not provided, will be constructed automatically.")] = None,
25
+ ):
26
+
27
+ from machineconfig.scripts.python.helpers_agents.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout
28
+ from machineconfig.scripts.python.helpers_agents.fire_agents_load_balancer import chunk_prompts
29
+ from machineconfig.utils.accessories import get_repo_root, randstr
30
+ import json
31
+
32
+ # validate mutual exclusive
33
+ prompt_options = [prompt, prompt_path]
34
+ provided_prompt = [opt for opt in prompt_options if opt is not None]
35
+ if len(provided_prompt) != 1:
36
+ raise typer.BadParameter("Exactly one of --prompt or --prompt-path must be provided")
37
+
38
+ repo_root = get_repo_root(Path.cwd())
39
+ if repo_root is None:
40
+ typer.echo("💥 Could not determine the repository root. Please run this script from within a git repository.")
41
+ raise typer.Exit(1)
42
+ typer.echo(f"Operating @ {repo_root}")
43
+
44
+ if context_path is None:
45
+ context_path = repo_root / ".ai" / "todo"
46
+
47
+ context_path_resolved = context_path.expanduser().resolve()
48
+ if not context_path_resolved.exists():
49
+ raise typer.BadParameter(f"Path does not exist: {context_path_resolved}")
50
+
51
+ if context_path_resolved.is_file():
52
+ prompt_material_re_splitted = chunk_prompts(context_path_resolved, tasks_per_prompt=agent_load, joiner=separator)
53
+ elif context_path_resolved.is_dir():
54
+ files = [f for f in context_path_resolved.rglob("*") if f.is_file()]
55
+ if not files:
56
+ raise typer.BadParameter(f"No files found in directory: {context_path_resolved}")
57
+ concatenated = separator.join(f.read_text(encoding="utf-8") for f in files)
58
+ prompt_material_re_splitted = [concatenated]
59
+ else:
60
+ raise typer.BadParameter(f"Path is neither file nor directory: {context_path_resolved}")
61
+
62
+ if prompt_path is not None:
63
+ prompt_prefix = prompt_path.read_text(encoding="utf-8")
64
+ else:
65
+ prompt_prefix = cast(str, prompt)
66
+ agent_selected = agent
67
+ if agents_dir is None: agents_dir = repo_root / ".ai" / f"tmp_prompts/{job_name}_{randstr()}"
68
+ else:
69
+ import shutil
70
+ if agents_dir.exists():
71
+ shutil.rmtree(agents_dir)
72
+ prep_agent_launch(repo_root=repo_root, agents_dir=agents_dir, prompts_material=prompt_material_re_splitted,
73
+ keep_material_in_separate_file=separate,
74
+ prompt_prefix=prompt_prefix, machine=host, agent=agent_selected, model=model, provider=provider,
75
+ job_name=job_name)
76
+ layoutfile = get_agents_launch_layout(session_root=agents_dir)
77
+ regenerate_py_code = f"""
78
+ #!/usr/bin/env uv run --python 3.14 --with machineconfig
79
+ agents create "{context_path_resolved}" \\
80
+ --prompt-path "{prompt_path or ''}" \\
81
+ --agent "{agent_selected}" \\
82
+ --host "{host}" \\
83
+ --job-name "{job_name}" \\
84
+ --agent_load {agent_load} \\
85
+ --separator "{separator}" \\
86
+ {"--separate" if separate else ""}
87
+ """
88
+ (agents_dir / "aa_agents_relaunch.sh").write_text(data=regenerate_py_code, encoding="utf-8")
89
+ layout_output_path = output_path if output_path is not None else agents_dir / "layout.json"
90
+ layout_output_path.parent.mkdir(parents=True, exist_ok=True)
91
+ layout_output_path.write_text(data=json.dumps(layoutfile, indent=4), encoding="utf-8")
92
+ typer.echo(f"Created agents in {agents_dir}")
93
+ typer.echo(f"Ceated layout in {layout_output_path}")
94
+
95
+
96
+ def collect(
97
+ agent_dir: Annotated[str, typer.Argument(..., help="Path to the agent directory containing the prompts folder")],
98
+ output_path: Annotated[str, typer.Argument(..., help="Path to write the concatenated material files")],
99
+ separator: Annotated[str, typer.Option(..., help="Separator to use when concatenating material files")] = "\n",
100
+ ) -> None:
101
+ """Collect all material files from an agent directory and concatenate them."""
102
+ if not Path(agent_dir).exists() or not Path(agent_dir).is_dir():
103
+ raise typer.BadParameter(f"Agent directory does not exist or is not a directory: {agent_dir}")
104
+
105
+ prompts_dir = Path(agent_dir) / "prompts"
106
+ if not prompts_dir.exists():
107
+ raise typer.BadParameter(f"Prompts directory not found: {prompts_dir}")
108
+
109
+ material_files = []
110
+ for agent_subdir in prompts_dir.iterdir():
111
+ if agent_subdir.is_dir() and agent_subdir.name.startswith("agent_"):
112
+ material_file = agent_subdir / f"{agent_subdir.name}_material.txt"
113
+ if material_file.exists():
114
+ material_files.append(material_file)
115
+
116
+ if not material_files:
117
+ typer.echo("No material files found in the agent directory.")
118
+ return
119
+
120
+ # Sort by agent index for consistent ordering
121
+ material_files.sort(key=lambda x: int(x.parent.name.split("_")[-1]))
122
+
123
+ # Read and concatenate all material files
124
+ concatenated_content = []
125
+ for material_file in material_files:
126
+ content = material_file.read_text(encoding="utf-8")
127
+ concatenated_content.append(content)
128
+
129
+ result = separator.join(concatenated_content)
130
+
131
+ # Write to output file
132
+ Path(output_path).parent.mkdir(parents=True, exist_ok=True)
133
+ Path(output_path).write_text(result, encoding="utf-8")
134
+ typer.echo(f"Concatenated material written to {output_path}")
135
+
136
+
137
+ def template():
138
+ from platform import system
139
+ import machineconfig.scripts.python.helpers_agents as module
140
+ if system() == "Linux" or system() == "Darwin":
141
+ template_path = Path(module.__file__).parent / "templates/template.sh"
142
+ elif system() == "Windows":
143
+ template_path = Path(module.__file__).parent / "templates/template.ps1"
144
+ else:
145
+ raise typer.BadParameter(f"Unsupported OS: {system()}")
146
+
147
+ from machineconfig.utils.accessories import get_repo_root
148
+ repo_root = get_repo_root(Path.cwd())
149
+ if repo_root is None:
150
+ typer.echo("💥 Could not determine the repository root. Please run this script from within a git repository.")
151
+ raise typer.Exit(1)
152
+ save_path = repo_root / ".ai" / "agents" / "template_fire_agents.sh"
153
+ save_path.parent.mkdir(parents=True, exist_ok=True)
154
+ save_path.write_text(template_path.read_text(encoding="utf-8"), encoding="utf-8")
155
+ typer.echo(f"Template bash script written to {save_path}")
156
+
157
+
158
+ def init_config():
159
+ from machineconfig.scripts.python.ai.initai import add_ai_configs
160
+ add_ai_configs(repo_root=Path.cwd())
161
+
162
+ def get_app():
163
+ agents_app = typer.Typer(help="🤖 AI Agents management subcommands", no_args_is_help=True, add_help_option=False, add_completion=False)
164
+ sep = "\n"
165
+ agents_full_help = f"""
166
+ [c] Create agents layout file, ready to run.
167
+ {sep}
168
+ PROVIDER options: {', '.join(get_args(PROVIDER))}
169
+ {sep}
170
+ AGENT options: {', '.join(get_args(AGENTS))}
171
+ """
172
+ agents_app.command("create", no_args_is_help=True, help=agents_full_help)(create)
173
+ agents_app.command("c", no_args_is_help=True, help="Create agents layout file, ready to run.", hidden=True)(create)
174
+ agents_app.command("collect", no_args_is_help=True, help="[T] Collect all agent materials into a single file.")(collect)
175
+ agents_app.command("T", no_args_is_help=True, help="Collect all agent materials into a single file.", hidden=True)(collect)
176
+ agents_app.command("make-template", no_args_is_help=False, help="[t] Create a template for fire agents")(template)
177
+ agents_app.command("t", no_args_is_help=False, help="Create a template for fire agents", hidden=True)(template)
178
+ agents_app.command("make-config", no_args_is_help=False, help="[g] Initialize AI configurations in the current repository")(init_config)
179
+ agents_app.command("g", no_args_is_help=False, help="Initialize AI configurations in the current repository", hidden=True)(init_config)
180
+ from machineconfig.scripts.python.ai.generate_files import main
181
+ agents_app.command("make-todo", no_args_is_help=True, help="[d] Generate a markdown file listing all Python files in the repo")(main)
182
+ agents_app.command("d", no_args_is_help=True, help="Generate a markdown file listing all Python files in the repo", hidden=True)(main)
183
+ from machineconfig.scripts.python.ai.generate_files import create_symlink_command
184
+ agents_app.command(name="make-symlinks", no_args_is_help=True, help="[s] Create symlinks to the current repo in ~/code_copies/")(create_symlink_command)
185
+ agents_app.command(name="s", no_args_is_help=True, help="Create symlinks to the current repo in ~/code_copies/", hidden=True)(create_symlink_command)
186
+ return agents_app
187
+
188
+
189
+ def main():
190
+ agents_app = get_app()
191
+ # from trogon.typer import init_tui
192
+ # agents_app_tui = init_tui(agents_app)
193
+ agents_app()
194
+ # agents_app_tui()
195
+
196
+
197
+ if __name__ == "__main__": # pragma: no cover
198
+ pass
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+ TERMINAL_OUTPUT_PATH_RAW="/.ai/terminal/debug/terminal_output_raw.txt"
3
+ TERMINAL_OUTPUT_PATH="/.ai/terminal/debug/terminal_output.txt"
4
+ > $TERMINAL_OUTPUT_PATH
5
+ echo "New run is underway. If you are reading this message, it means the execution has not finished yet, and you will need to wait. Once done you won't see this message and you will see terminal output instead." >> $TERMINAL_OUTPUT_PATH
6
+ echo "Starting new uv run..."
7
+ COLUMNS=200 unbuffer uv run /home/alex/code/bytesense/exchanges/src/exchanges/cli/cli_binance.py b > $TERMINAL_OUTPUT_PATH_RAW 2>&1
8
+ cat $TERMINAL_OUTPUT_PATH_RAW | sed -r "s/\x1B\[[0-9;]*[mK]//g" > $TERMINAL_OUTPUT_PATH
9
+ # watchexec --watch ./.ai/terminal/make_output.sh --watch . -e py -- bash ./.ai/terminal/make_output.sh
@@ -0,0 +1,9 @@
1
+
2
+ I have started a watch-exec server in my terminal and its working now.
3
+ I have set it up to re-run thi script `.ai/terminal/debug/command_runner.sh` automatically.
4
+ A re-run is triggered upon any change of any python file in the repo, or, any change in the make_output.sh script itself.
5
+ The script redirects the output from terminal to the file ./.ai/debug/terminal_output.txt
6
+ Run takes 50 ms only. So by the time you finish editing any python file or the command runner script, the new output is ready for you to read in that text file,
7
+ this makes it much faster for you to iterate because pulling the terminal and closing it every time is a bit slow.
8
+ Please use the terminal_output.txt as your main iteration driver.
9
+ please fix the mistakes that you can see in terminal output.