machineconfig 6.82__py3-none-any.whl → 7.98__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 (294) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/sessions_managers/utils/maker.py +25 -13
  3. machineconfig/cluster/sessions_managers/wt_local.py +16 -221
  4. machineconfig/cluster/sessions_managers/wt_local_manager.py +55 -193
  5. machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
  6. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  7. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  8. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  9. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  10. machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
  11. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  12. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  13. machineconfig/jobs/installer/custom/boxes.py +2 -2
  14. machineconfig/jobs/installer/custom/hx.py +75 -18
  15. machineconfig/jobs/installer/custom/yazi.py +119 -0
  16. machineconfig/jobs/installer/custom_dev/brave.py +5 -3
  17. machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
  18. machineconfig/jobs/installer/custom_dev/code.py +4 -1
  19. machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +1 -1
  20. machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
  21. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +27 -22
  22. machineconfig/jobs/installer/custom_dev/sysabc.py +139 -0
  23. machineconfig/jobs/installer/custom_dev/wezterm.py +2 -19
  24. machineconfig/jobs/installer/custom_dev/winget.py +10 -14
  25. machineconfig/jobs/installer/installer_data.json +1287 -216
  26. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  27. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  28. machineconfig/jobs/installer/package_groups.py +58 -89
  29. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  30. machineconfig/logger.py +0 -1
  31. machineconfig/profile/create_helper.py +43 -16
  32. machineconfig/profile/create_links.py +2 -1
  33. machineconfig/profile/create_links_export.py +64 -18
  34. machineconfig/profile/create_shell_profile.py +78 -127
  35. machineconfig/profile/mapper.toml +15 -8
  36. machineconfig/scripts/__init__.py +0 -4
  37. machineconfig/scripts/linux/wrap_mcfg +46 -0
  38. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  39. machineconfig/scripts/python/agents.py +52 -37
  40. machineconfig/scripts/python/ai/initai.py +1 -1
  41. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  42. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  43. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  44. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  45. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  46. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
  47. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
  48. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  49. machineconfig/scripts/python/ai/solutions/generic.py +1 -1
  50. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  51. machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +7 -2
  52. machineconfig/scripts/python/croshell.py +77 -78
  53. machineconfig/scripts/python/devops.py +39 -21
  54. machineconfig/scripts/python/devops_navigator.py +0 -4
  55. machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
  56. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  57. machineconfig/scripts/python/fire_jobs.py +84 -115
  58. machineconfig/scripts/python/ftpx.py +42 -16
  59. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  60. machineconfig/scripts/python/helpers/qr_code.py +166 -0
  61. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  62. machineconfig/scripts/python/helpers/run_py_script.py +79 -0
  63. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  64. machineconfig/scripts/python/helpers/tmp_py_scripts/a.py +26 -0
  65. machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
  66. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
  67. machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
  68. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
  69. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  70. machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_launch.py +32 -13
  71. machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_helper_types.py +11 -14
  72. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
  73. machineconfig/scripts/python/helpers_agents/templates/template.sh +32 -0
  74. machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
  75. machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
  76. machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
  77. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
  78. machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
  79. machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
  80. machineconfig/scripts/python/helpers_devops/cli_config.py +46 -61
  81. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +67 -55
  82. machineconfig/scripts/python/helpers_devops/cli_nw.py +157 -16
  83. machineconfig/scripts/python/helpers_devops/cli_repos.py +55 -21
  84. machineconfig/scripts/python/helpers_devops/cli_self.py +98 -48
  85. machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
  86. machineconfig/scripts/python/helpers_devops/cli_share_server.py +80 -42
  87. machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
  88. machineconfig/scripts/python/helpers_devops/cli_utils.py +3 -128
  89. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
  90. machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
  91. machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +1 -1
  92. machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers_fire_command/file_wrangler.py} +56 -20
  93. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +26 -16
  94. machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
  95. machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
  96. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
  97. machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
  98. machineconfig/scripts/python/helpers_network/address.py +132 -0
  99. machineconfig/scripts/python/{nw → helpers_network}/devops_add_ssh_key.py +24 -5
  100. machineconfig/scripts/python/{nw → helpers_network}/mount_nfs +0 -1
  101. machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
  102. machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
  103. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
  104. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
  105. machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +1 -53
  106. machineconfig/scripts/python/{nw → helpers_network}/wsl_windows_transfer.py +3 -2
  107. machineconfig/scripts/python/helpers_repos/clone.py +0 -1
  108. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +46 -19
  109. machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
  110. machineconfig/scripts/python/helpers_repos/grource.py +1 -1
  111. machineconfig/scripts/python/helpers_repos/record.py +2 -1
  112. machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
  113. machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
  114. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +20 -13
  115. machineconfig/scripts/python/helpers_utils/download.py +150 -0
  116. machineconfig/scripts/python/helpers_utils/path.py +185 -0
  117. machineconfig/scripts/python/interactive.py +19 -26
  118. machineconfig/scripts/python/{mcfg.py → mcfg_entry.py} +10 -0
  119. machineconfig/scripts/python/msearch.py +71 -0
  120. machineconfig/scripts/python/sessions.py +94 -25
  121. machineconfig/scripts/python/terminal.py +133 -0
  122. machineconfig/scripts/python/utils.py +28 -30
  123. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  124. machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
  125. machineconfig/settings/broot/conf.toml +1 -1
  126. machineconfig/settings/helix/config.toml +16 -0
  127. machineconfig/settings/helix/languages.toml +13 -4
  128. machineconfig/settings/helix/yazi-picker.sh +12 -0
  129. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  130. machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
  131. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  132. machineconfig/settings/lf/windows/lfrc +14 -16
  133. machineconfig/settings/marimo/marimo.toml +1 -1
  134. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  135. machineconfig/settings/shells/bash/init.sh +43 -11
  136. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  137. machineconfig/settings/shells/nushell/config.nu +2 -32
  138. machineconfig/settings/shells/nushell/env.nu +45 -6
  139. machineconfig/settings/shells/nushell/init.nu +314 -0
  140. machineconfig/settings/shells/pwsh/init.ps1 +40 -14
  141. machineconfig/settings/shells/starship/starship.toml +16 -0
  142. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  143. machineconfig/settings/shells/wt/settings.json +14 -5
  144. machineconfig/settings/shells/zsh/init.sh +17 -19
  145. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  146. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  147. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  148. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  149. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  150. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  151. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  152. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  153. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  154. machineconfig/settings/television/cable_unix/env.toml +17 -0
  155. machineconfig/settings/television/cable_unix/files.toml +11 -0
  156. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  157. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  158. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  159. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  160. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  161. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  162. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  163. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  164. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  165. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  166. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  167. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  168. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  169. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  170. machineconfig/settings/television/cable_unix/text.toml +17 -0
  171. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  172. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  173. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  174. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  175. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  176. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  177. machineconfig/settings/television/cable_windows/env.toml +17 -0
  178. machineconfig/settings/television/cable_windows/files.toml +14 -0
  179. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  180. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  181. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  182. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  183. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  184. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  185. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  186. machineconfig/settings/television/cable_windows/text.toml +17 -0
  187. machineconfig/settings/yazi/init.lua +61 -0
  188. machineconfig/settings/yazi/keymap_linux.toml +94 -0
  189. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  190. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  191. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  192. machineconfig/settings/yazi/theme.toml +4 -0
  193. machineconfig/settings/yazi/yazi_linux.toml +84 -0
  194. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  195. machineconfig/setup_linux/__init__.py +2 -1
  196. machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
  197. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
  198. machineconfig/setup_mac/__init__.py +2 -3
  199. machineconfig/setup_mac/apps_gui.sh +248 -0
  200. machineconfig/setup_windows/__init__.py +3 -3
  201. machineconfig/setup_windows/uv.ps1 +8 -1
  202. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +26 -11
  203. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
  204. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  205. machineconfig/utils/accessories.py +7 -4
  206. machineconfig/utils/code.py +99 -32
  207. machineconfig/utils/files/ascii_art.py +1 -1
  208. machineconfig/utils/files/headers.py +3 -2
  209. machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
  210. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  211. machineconfig/utils/installer_utils/installer_class.py +42 -99
  212. machineconfig/utils/installer_utils/installer_cli.py +175 -0
  213. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  214. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +36 -85
  215. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -61
  216. machineconfig/utils/io.py +69 -1
  217. machineconfig/utils/links.py +56 -38
  218. machineconfig/utils/meta.py +33 -18
  219. machineconfig/utils/options.py +46 -18
  220. machineconfig/utils/options_tv.py +119 -0
  221. machineconfig/utils/path_extended.py +44 -95
  222. machineconfig/utils/path_helper.py +76 -23
  223. machineconfig/utils/procs.py +1 -1
  224. machineconfig/utils/scheduler.py +20 -53
  225. machineconfig/utils/scheduling.py +0 -2
  226. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  227. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  228. machineconfig/utils/ssh.py +159 -412
  229. machineconfig/utils/ssh_utils/abc.py +5 -0
  230. machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
  231. machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
  232. machineconfig/utils/ssh_utils/utils.py +142 -0
  233. machineconfig/utils/ssh_utils/wsl.py +210 -0
  234. machineconfig/utils/terminal.py +1 -0
  235. machineconfig/utils/upgrade_packages.py +104 -28
  236. machineconfig/utils/ve.py +12 -4
  237. machineconfig-7.98.dist-info/METADATA +132 -0
  238. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/RECORD +259 -196
  239. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/entry_points.txt +4 -1
  240. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  241. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  242. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  243. machineconfig/scripts/linux/fzf2g +0 -21
  244. machineconfig/scripts/linux/fzfag +0 -17
  245. machineconfig/scripts/linux/fzffg +0 -25
  246. machineconfig/scripts/linux/fzfrga +0 -21
  247. machineconfig/scripts/linux/mcfgs +0 -38
  248. machineconfig/scripts/linux/other/share_smb +0 -1
  249. machineconfig/scripts/linux/skrg +0 -4
  250. machineconfig/scripts/linux/warp-cli.sh +0 -122
  251. machineconfig/scripts/linux/z_ls +0 -104
  252. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  253. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
  254. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
  255. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
  256. machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
  257. machineconfig/scripts/python/helpers_fire/template.sh +0 -15
  258. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  259. machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
  260. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  261. machineconfig/scripts/windows/fzfb.ps1 +0 -3
  262. machineconfig/scripts/windows/fzfg.ps1 +0 -2
  263. machineconfig/scripts/windows/fzfrga.bat +0 -20
  264. machineconfig/scripts/windows/mcfgs.ps1 +0 -17
  265. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  266. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  267. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  268. machineconfig/settings/yazi/yazi.toml +0 -4
  269. machineconfig/setup_linux/apps.sh +0 -66
  270. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  271. machineconfig/setup_mac/apps.sh +0 -73
  272. machineconfig/setup_windows/apps.ps1 +0 -62
  273. machineconfig/utils/installer_utils/installer.py +0 -225
  274. machineconfig-6.82.dist-info/METADATA +0 -82
  275. /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  276. /machineconfig/scripts/python/{helpers_fire → ai/utils}/__init__.py +0 -0
  277. /machineconfig/scripts/python/{helpers_fire/agentic_frameworks → helpers_agents}/__init__.py +0 -0
  278. /machineconfig/scripts/python/{nw → helpers_agents/agentic_frameworks}/__init__.py +0 -0
  279. /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_search.py +0 -0
  280. /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_load_balancer.py +0 -0
  281. /machineconfig/scripts/python/{helpers_fire → helpers_agents/templates}/template.ps1 +0 -0
  282. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
  283. /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_network/__init__.py} +0 -0
  284. /machineconfig/scripts/python/{nw → helpers_network}/devops_add_identity.py +0 -0
  285. /machineconfig/scripts/python/{nw → helpers_network}/mount_drive +0 -0
  286. /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive +0 -0
  287. /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
  288. /machineconfig/scripts/python/{nw → helpers_network}/mount_smb +0 -0
  289. /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
  290. /machineconfig/scripts/{Restore-ThunderbirdProfile.ps1 → windows/mounts/Restore-ThunderbirdProfile.ps1} +0 -0
  291. /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
  292. /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
  293. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/WHEEL +0 -0
  294. {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,33 @@
1
+ $TerminalOutputDirectory = "/.ai/terminal/debug"
2
+ $TerminalOutputPathRaw = Join-Path $TerminalOutputDirectory "terminal_output_raw.txt"
3
+ $TerminalOutputPath = Join-Path $TerminalOutputDirectory "terminal_output.txt"
4
+
5
+ # Ensure the output directory exists before writing files.
6
+ New-Item -ItemType Directory -Path $TerminalOutputDirectory -Force | Out-Null
7
+
8
+ Set-Content -Path $TerminalOutputPath -Value $null
9
+ Add-Content -Path $TerminalOutputPath -Value "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."
10
+ Write-Host "Starting new uv run..."
11
+
12
+ $processInfo = New-Object System.Diagnostics.ProcessStartInfo
13
+ $processInfo.FileName = "uv"
14
+ $processInfo.ArgumentList.Add("run")
15
+ $processInfo.ArgumentList.Add("/home/alex/code/bytesense/exchanges/src/exchanges/cli/cli_binance.py")
16
+ $processInfo.ArgumentList.Add("b")
17
+ $processInfo.UseShellExecute = $false
18
+ $processInfo.RedirectStandardOutput = $true
19
+ $processInfo.RedirectStandardError = $true
20
+ $processInfo.EnvironmentVariables["COLUMNS"] = "200"
21
+
22
+ $process = New-Object System.Diagnostics.Process
23
+ $process.StartInfo = $processInfo
24
+ $process.Start() | Out-Null
25
+ $standardOutput = $process.StandardOutput.ReadToEnd()
26
+ $standardError = $process.StandardError.ReadToEnd()
27
+ $process.WaitForExit()
28
+
29
+ $rawOutput = $standardOutput + $standardError
30
+ Set-Content -Path $TerminalOutputPathRaw -Value $rawOutput
31
+
32
+ $cleanOutput = $rawOutput -replace "`e\[[0-9;]*[mK]", ""
33
+ Set-Content -Path $TerminalOutputPath -Value $cleanOutput
@@ -6,4 +6,4 @@ echo "New run is underway. If you are reading this message, it means the executi
6
6
  echo "Starting new uv run..."
7
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
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
9
+ # watchexec --watch ./.ai/terminal/command_runner.sh --watch . -e py -- bash ./.ai/terminal/command_runner.sh
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  description: 'A transcendent coding agent with quantum cognitive architecture, adversarial intelligence, and unrestricted creative freedom.'
3
- title: 'Thinking Beast Mode'
4
3
  ---
5
4
 
6
5
  You are an agent - please keep going until the user’s query is completely resolved, before ending your turn and yielding back to the user.
@@ -1,5 +1,4 @@
1
1
  ---
2
- title: 'Ultimate Transparent Thinking Beast Mode'
3
2
  description: 'Ultimate Transparent Thinking Beast Mode'
4
3
  ---
5
4
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: 'Autonomous, multi-step web research with numbered citations, cross-source verification, and a final Markdown report.'
3
- tools: ['extensions', 'fetch', 'websearch', 'search', 'githubRepo', 'editFiles']
3
+ tools: ['extensions', 'fetch', 'search', 'githubRepo', 'edit/editFiles']
4
4
  ---
5
5
 
6
6
  # Deep Research mode
@@ -56,7 +56,7 @@ Follow these phases every time. Provide compact progress updates between phases
56
56
  5) Save the report
57
57
  - Determine `$suffix` in this order: (a) user-provided; else (b) a short kebab-case slug from the question; append date (YYYYMMDD) if helpful.
58
58
  - Ensure directory ./.ai exists; create it if missing.
59
- - Write the report to ./.ai/deep_research_$suffix.md using editFiles.
59
+ - Write the report to ./.ai/deep_research_$suffix.md using edit/editFiles.
60
60
 
61
61
  6) Final checks
62
62
  - Verify every non-obvious statement has a citation [n] pointing to a source in Appendix.
@@ -7,20 +7,20 @@ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
7
7
 
8
8
  def build_configuration(repo_root: Path) -> None:
9
9
  instructions_repository_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/instructions")
10
- chatmodes_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/chatmodes")
10
+ agents_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/agents")
11
11
  prompts_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/prompts")
12
12
 
13
13
  github_dir = repo_root.joinpath(".github")
14
- chatmodes_target_dir = github_dir.joinpath("chatmodes")
14
+ agents_target_dir = github_dir.joinpath("agents")
15
15
  prompts_target_dir = github_dir.joinpath("prompts")
16
16
  instructions_target_dir = github_dir.joinpath("instructions")
17
17
 
18
- chatmodes_target_dir.mkdir(parents=True, exist_ok=True)
18
+ agents_target_dir.mkdir(parents=True, exist_ok=True)
19
19
  prompts_target_dir.mkdir(parents=True, exist_ok=True)
20
20
  instructions_target_dir.mkdir(parents=True, exist_ok=True)
21
21
 
22
- for chatmode in chatmodes_dir.iterdir():
23
- chatmode_target = chatmodes_target_dir.joinpath(f"{chatmode.name.split('.')[0]}.chatmode.md")
22
+ for chatmode in agents_dir.iterdir():
23
+ chatmode_target = agents_target_dir.joinpath(f"{chatmode.name.split('.')[0]}.chatmode.md")
24
24
  chatmode_target.write_text(data=chatmode.read_text(encoding="utf-8"), encoding="utf-8")
25
25
 
26
26
  for prompt in prompts_dir.iterdir():
@@ -40,6 +40,10 @@ applyTo: "**/*.py"
40
40
  * Make sure all the code is rigorous, no lazy stuff.
41
41
  * For example, always avoid default values in arguments of functions. Those are evil and cause confusion. Always be explicit in parameter passing.
42
42
  * Please never ever attempt to change code files by writing meta code to do string manipulation on files, e.g. with `sed` command with terminal. Please do change the files one by one, no matter how many there is. Don't worry about time, nor context window size, its okay, take your time and do the legwork. You can stop in the middle and we will have another LLM to help with the rest.
43
+ * Your code is minimal, no unrequested features, no bloat.
43
44
  * Please avoid writing README files and avoid docstring and comments in code unless absolutely necessary. Use clear naming conventions instead of documenting.
44
45
  * Always prefer to functional style of programming over OOP.
45
46
  * When passing arguments or constructing dicts or lists or tuples, avoid breaking lines too much, try to use ~ 150 characters per line before breaking to new one.
47
+
48
+ # Privacy:
49
+ * No matter what, never ever open/read/write/list anything under ~/dotfiles
@@ -0,0 +1,20 @@
1
+
2
+
3
+ * I have started a watch-exec server in my terminal and its working now.
4
+ * I have set it up to re-run the shell script `.ai/terminal/debug/command_runner.sh` automatically.
5
+ * A re-run is triggered upon any change of any python file in the repo, or, any change in the command_runner.sh script itself.
6
+ * The shell script itself runs the python file we are working on using uv.
7
+ * The script redirects the output from terminal to the file ./.ai* 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.
8
+ * 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.
9
+
10
+ # Why did I set this up?
11
+ * Because this makes it much faster for you to iterate because pulling the terminal and closing it every time is a bit slow.
12
+ * You no longer need the terminal.
13
+
14
+
15
+ # What should you do now?
16
+ Please iterate like this:
17
+ * Please use the terminal_output.txt as your main iteration driver (fix any problems you see there).
18
+ * Change `command_runner.sh` if you need to change which python file to run or how to run it.
19
+
20
+
@@ -50,7 +50,7 @@ def adjust_gitignore(repo_root: Path) -> None:
50
50
  ".cursor",
51
51
  ".clinerules",
52
52
  ".github/instructions",
53
- ".github/chatmodes",
53
+ ".github/agents",
54
54
  ".github/prompts",
55
55
  ]
56
56
 
@@ -247,7 +247,7 @@ def create_repo_symlinks(repo_root: Path) -> None:
247
247
  symlink_path.symlink_to(repo_root, target_is_directory=True)
248
248
 
249
249
 
250
- def main(
250
+ def make_todo_files(
251
251
  pattern: Annotated[str, typer.Argument(help="Pattern or keyword to match files by")],
252
252
  repo: Annotated[str, typer.Argument(help="Repository path. Can be any directory within a git repository.")] = str(Path.cwd()),
253
253
  strategy: Annotated[Literal["name", "keywords"], typer.Option("-s", "--strategy", help="Strategy to filter files: 'name' for filename matching, 'keywords' for content matching")] = "name",
@@ -344,5 +344,5 @@ def create_symlink_command(num: Annotated[int, typer.Argument(help="Number of sy
344
344
  console.print(Panel(f"✅ SUCCESS | Created {num} symlinks to {repo_root} in ~/code_copies/", border_style="bold green", expand=False))
345
345
 
346
346
  if __name__ == "__main__":
347
- typer.run(main)
347
+ typer.run(make_todo_files)
348
348
  # typer.run(create_symlink_command)
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  from pathlib import Path
3
+ from typing import Any
3
4
 
4
5
 
5
6
  def add_lint_and_type_check_task(repo_root: Path) -> None:
@@ -18,8 +19,12 @@ def add_lint_and_type_check_task(repo_root: Path) -> None:
18
19
  }
19
20
 
20
21
  if tasks_json_path.exists():
21
- with tasks_json_path.open("r") as f:
22
- tasks_config = json.load(f)
22
+ json_data = tasks_json_path.read_text(encoding="utf-8")
23
+ if not json_data.strip():
24
+ tasks_config: dict[str, Any] = {"version": "2.0.0", "tasks": []}
25
+ else:
26
+ tasks_config = json.loads(json_data)
27
+ assert isinstance(tasks_config, dict)
23
28
  if "tasks" not in tasks_config:
24
29
  tasks_config["tasks"] = []
25
30
  existing_labels = {task.get("label") for task in tasks_config.get("tasks", [])}
@@ -2,82 +2,84 @@
2
2
 
3
3
  """
4
4
  croshell
5
+
5
6
  """
6
7
 
7
8
  from typing import Annotated, Optional
8
- from machineconfig.scripts.python.helpers_croshell.crosh import code, get_read_data_pycode
9
- from machineconfig.utils.meta import lambda_to_python_script
10
9
  import typer
11
- from machineconfig.utils.path_extended import PathExtended
12
- from pathlib import Path
13
- from machineconfig.utils.accessories import randstr
14
- import json
15
- from machineconfig.utils.options import choose_from_options
16
- from rich.console import Console
17
- from rich.panel import Panel
18
-
19
-
20
- console = Console()
21
10
 
22
11
 
23
12
  def croshell(
24
- path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] = "",
25
- python: Annotated[bool, typer.Option("--python", "-p", help="flag to use python over IPython.")] = False,
26
- profile: Annotated[Optional[str], typer.Option("--profile", "-P", help="ipython profile to use, defaults to default profile.")] = None,
13
+ path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] = None,
14
+ project_path: Annotated[Optional[str], typer.Option("--project", "-p", help="specify uv project to use")] = None,
15
+ uv_with: Annotated[Optional[str], typer.Option("--uv-with", "-w", help="specify uv with packages to use")] = None,
16
+ marimo: Annotated[bool, typer.Option("--marimo", "-m", help="open the notebook using marimo if available")] = False,
27
17
  jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
28
18
  vscode: Annotated[bool, typer.Option("--vscode", "-c", help="open the script in vscode")] = False,
29
- streamlit_viewer: Annotated[bool, typer.Option("--streamlit", "-s", help="view in streamlit app")] = False,
30
19
  visidata: Annotated[bool, typer.Option("--visidata", "-v", help="open data file in visidata")] = False,
31
- marimo: Annotated[bool, typer.Option("--marimo", "-m", help="open the notebook using marimo if available")] = False,
20
+ # streamlit_viewer: Annotated[bool, typer.Option("--streamlit", "-s", help="view in streamlit app")] = False,
21
+ python: Annotated[bool, typer.Option("--python", "-P", help="flag to use python over IPython.")] = False,
22
+ profile: Annotated[Optional[str], typer.Option("--profile", "-r", help="ipython profile to use, defaults to default profile.")] = None,
23
+
32
24
  ) -> None:
25
+ if uv_with is not None: user_uv_with_line = f"--with {uv_with} "
26
+ else: user_uv_with_line = ""
27
+
28
+ if project_path is not None:
29
+ uv_project_line = f'--project {project_path}'
30
+ uv_python_line = ""
31
+ else:
32
+ uv_project_line = ""
33
+ uv_python_line = "--python 3.14"
34
+
35
+ from machineconfig.scripts.python.helpers_croshell.crosh import get_read_python_file_pycode, get_read_data_pycode
36
+ from machineconfig.utils.meta import lambda_to_python_script
37
+ from pathlib import Path
38
+ from machineconfig.utils.accessories import randstr
39
+ from machineconfig.utils.ve import get_ve_path_and_ipython_profile
40
+ import json
41
+ from rich.console import Console
42
+ from rich.panel import Panel
43
+ console = Console()
44
+
45
+
33
46
  # ==================================================================================
34
47
  # flags processing
35
48
  interactivity = "-i"
36
49
  interpreter = "python" if python else "ipython"
37
50
  ipython_profile: Optional[str] = profile
38
- file_obj = PathExtended.cwd() # initialization value, could be modified according to args.
39
-
40
- if path == ".":
41
- text = "🔍 Searching for Python files..."
42
- console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
43
- options = [str(item) for item in PathExtended.cwd().search("*.py", r=True)]
44
- file_selected = choose_from_options(msg="Choose a python file to run", options=options, fzf=True, multi=False)
45
- assert isinstance(file_selected, str)
46
- program = PathExtended(file_selected).read_text(encoding="utf-8")
47
- text = f"📄 Selected file: {PathExtended(file_selected).name}"
48
- console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
49
-
50
- elif path != "" and path is not None:
51
- if streamlit_viewer:
52
- # text = "📊 STARTING STREAMLIT VIEWER"
53
- # console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
54
- # from machineconfig.scripts.python.viewer import run
55
- # py_file_path = run(data_path=args.read, data=None, get_figure=None)
56
- # final_program = f"""
57
- # #!/bin/bash
58
- # streamlit run {py_file_path}
59
- # """
60
- # PROGRAM_PATH.write_text(data=final_program, encoding="utf-8")
61
- print("Streamlit viewer is not yet implemented in this version.")
62
- return None
63
- file_obj = PathExtended(str(path).lstrip()).expanduser().absolute()
64
- program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(file_obj)), in_global=True, import_module=False)
65
- text = f"📄 Reading data from: {file_obj.name}"
66
- console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
51
+ file_obj = Path.cwd() # initialization value, could be modified according to args.
52
+ if path is not None:
53
+ from machineconfig.utils.path_helper import get_choice_file
54
+ choice_file = get_choice_file(path=path, suffixes={".*"})
55
+ if project_path is None:
56
+ ve_path, _ = get_ve_path_and_ipython_profile(choice_file)
57
+ if ve_path is not None:
58
+ ve_path_obj = Path(ve_path)
59
+ uv_project_line = f'--project {ve_path_obj.parent}'
60
+ uv_python_line = ""
61
+ if choice_file.suffix == ".py":
62
+ program = choice_file.read_text(encoding="utf-8")
63
+ text = f"📄 Selected file: {choice_file.name}"
64
+ console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
65
+ else:
66
+ program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(choice_file)),
67
+ in_global=True, import_module=False)
68
+ text = f"📄 Reading data from: {file_obj.name}"
69
+ console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
67
70
  else: # if nothing is specified, then run in interactive mode.
68
- # text = "⌨️ Entering interactive mode"
69
- # console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
70
- # from machineconfig.scripts.python.croshell import InteractiveShell
71
- # InteractiveShell().run()
72
- # return None
73
71
  program = ""
72
+
73
+ if Path.home().joinpath("code/machineconfig").exists() and uv_project_line == "":
74
+ uv_project_line = f'--project "{str(Path.home().joinpath("code/machineconfig"))}"'
75
+
74
76
  preprogram = """
75
77
  #%%
76
78
  """
77
79
  def preprogram_func():
78
80
  from machineconfig.utils.files.headers import print_header, print_logo
79
81
  print_header()
80
- print_logo("CROCODILE")
82
+ print_logo("Machineconfig")
81
83
  from pathlib import Path
82
84
  from machineconfig.utils.path_extended import PathExtended
83
85
  _ = Path, PathExtended # avoid unused import warnings
@@ -87,11 +89,12 @@ def croshell(
87
89
  return textwrap.dedent("\n".join(inspect.getsource(f).splitlines()[1:]))
88
90
  preprogram += get_body_simple_function_no_args(preprogram_func)
89
91
 
90
- pyfile = PathExtended.tmp().joinpath(f"tmp_scripts/python/croshell/{randstr()}/script.py")
92
+ from pathlib import Path
93
+ pyfile = Path.home().joinpath(f"tmp_results/tmp_scripts/python/croshell/{randstr()}/script.py")
91
94
  pyfile.parent.mkdir(parents=True, exist_ok=True)
92
-
93
95
  title = "Reading Data"
94
- def_code = lambda_to_python_script(lambda: code(path=str(pyfile), title=title), in_global=False, import_module=False)
96
+ def_code = lambda_to_python_script(lambda: get_read_python_file_pycode(path=str(pyfile), title=title),
97
+ in_global=False, import_module=False)
95
98
  # print(def_code)
96
99
  python_program = preprogram + "\n\n" + def_code + program
97
100
  pyfile.write_text(python_program, encoding="utf-8")
@@ -125,48 +128,44 @@ def croshell(
125
128
  pass
126
129
  if visidata:
127
130
  if file_obj.suffix == ".json":
128
- fire_line = f"uv run --python 3.14 --with visidata vd {str(file_obj)}"
131
+ fire_line = f"uv run {uv_python_line} {user_uv_with_line} {uv_project_line} --with visidata vd {str(file_obj)}"
129
132
  else:
130
- fire_line = f"uv run --python 3.14 --with visidata,pyarrow vd {str(file_obj)}"
133
+ fire_line = f"uv run {uv_python_line} {user_uv_with_line} {uv_project_line} --with visidata,pyarrow vd {str(file_obj)}"
131
134
  elif marimo:
132
- if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--with marimo --project "{str(Path.home().joinpath("code/machineconfig"))}" """
133
- else: requirements = """--python 3.14 --with "marimo,machineconfig[plot]>=6.57" """
135
+ if Path.home().joinpath("code/machineconfig").exists():
136
+ requirements = f"""{user_uv_with_line} {uv_project_line} --with marimo """
137
+ else: requirements = f"""{uv_python_line} {user_uv_with_line} {uv_project_line} --with "marimo,cowsay,machineconfig[plot]>=7.98" """
134
138
  fire_line = f"""
135
139
  cd {str(pyfile.parent)}
136
- uv run --python 3.14 --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
140
+ uv run {uv_python_line} --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
137
141
  uv run {requirements} marimo edit --host 0.0.0.0 marimo_nb.py
138
142
  """
139
143
  elif jupyter:
140
- if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with jupyterlab """
141
- else: requirements = """--with "machineconfig[plot]>=6.57" """
142
- fire_line = f"uv run {requirements} jupyter-lab {str(nb_target)}"
144
+ if Path.home().joinpath("code/machineconfig").exists():
145
+ requirements = f"""{user_uv_with_line} {uv_project_line} --with jupyterlab """
146
+ else: requirements = f"""{user_uv_with_line} {uv_project_line} --with "cowsay,machineconfig[plot]>=7.98" """
147
+ fire_line = f"uv run {requirements} {uv_project_line} jupyter-lab {str(nb_target)}"
143
148
  elif vscode:
149
+ user_uv_add = f"uv add {uv_with}" if uv_with is not None else ""
144
150
  fire_line = f"""
145
151
  cd {str(pyfile.parent)}
146
- uv init --python 3.14
152
+ uv init {uv_python_line}
147
153
  uv venv
148
- uv add "machineconfig[plot]>=6.57"
154
+ uv add "cowsay,machineconfig[plot]>=7.98"
155
+ uv add {user_uv_add}
149
156
  # code serve-web
150
157
  code --new-window {str(pyfile)}
151
158
  """
152
159
  else:
153
160
  if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
154
161
  else: profile = ""
155
- if Path.home().joinpath("code/machineconfig").exists(): ve_line = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" """
156
- else: ve_line = """--python 3.14 --with "machineconfig[plot]>=6.57" """
157
- # ve_path_maybe, ipython_profile_maybe = get_ve_path_and_ipython_profile(Path.cwd())
158
- # --python 3.14
162
+ if Path.home().joinpath("code/machineconfig").exists():
163
+ ve_line = f"""{user_uv_with_line} {uv_project_line} """
164
+ else: ve_line = f"""{uv_python_line} {user_uv_with_line} {uv_project_line} --with "cowsay,machineconfig[plot]>=7.98" """
159
165
  fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
160
166
 
161
- import os
162
- program_path_maybe = os.environ.get("OP_PROGRAM_PATH", None)
163
- if program_path_maybe is not None:
164
- program_path_obj = PathExtended(program_path_maybe)
165
- program_path_obj.parent.mkdir(parents=True, exist_ok=True)
166
- program_path_obj.write_text(data=fire_line, encoding="utf-8")
167
- else:
168
- from machineconfig.utils.code import run_shell_script
169
- run_shell_script(fire_line, clean_env=False)
167
+ from machineconfig.utils.code import exit_then_run_shell_script
168
+ exit_then_run_shell_script(fire_line, strict=False)
170
169
 
171
170
 
172
171
  def main() -> None:
@@ -8,39 +8,57 @@ import machineconfig.scripts.python.helpers_devops.cli_config as cli_config
8
8
  import machineconfig.scripts.python.helpers_devops.cli_self as cli_self
9
9
  import machineconfig.scripts.python.helpers_devops.cli_data as cli_data
10
10
  import machineconfig.scripts.python.helpers_devops.cli_nw as cli_network
11
-
11
+ import machineconfig.scripts.python.helpers.run_py_script as run_py_script_module
12
12
 
13
13
  def install(which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program names to install, or group name if --group flag is set.")] = None,
14
14
  group: Annotated[bool, typer.Option(..., "--group", "-g", help="Treat 'which' as a group name. A group is bundle of apps.")] = False,
15
- interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Interactive selection of programs to install.")] = False,
15
+ interactive: Annotated[bool, typer.Option(..., "--interactive", "-i", help="Interactive selection of programs to install.")] = False,
16
16
  ) -> None:
17
- """📦 Install essential packages"""
18
- import machineconfig.utils.installer_utils.installer as installer_entry_point
19
- installer_entry_point.main(which=which, group=group, interactive=interactive)
17
+ """📦 Install packages"""
18
+ import machineconfig.utils.installer_utils.installer_cli as installer_entry_point
19
+ installer_entry_point.main_installer_cli(which=which, group=group, interactive=interactive)
20
+
21
+
22
+
23
+ # def get_app():
24
+ # app = typer.Typer(add_completion=False, no_args_is_help=True)
25
+ # app.command(name="scripts", help="define all scripts", no_args_is_help=False)(define_scripts)
26
+ # return app
27
+
28
+ # def main():
29
+ # # return app
30
+ # app = get_app()
31
+ # app()
32
+
33
+ # define_app = get_define_app()
20
34
 
21
35
 
22
36
  def get_app():
23
- app = typer.Typer(help="🛠️ DevOps operations", no_args_is_help=True, add_help_option=False,
24
- add_completion=False)
25
- _ = install
26
- app.command("install", no_args_is_help=True, help="🛠️ [i] Install essential packages")(install)
27
- app.command("i", no_args_is_help=True, help="Install essential packages", hidden=True)(install)
37
+
38
+ cli_app = typer.Typer(help="🛠️ DevOps operations", no_args_is_help=True, add_help_option=False, add_completion=False)
39
+ cli_app.command("install", no_args_is_help=True, help="🛠️ [i] Install essential packages")(install)
40
+ cli_app.command("i", no_args_is_help=True, help="Install essential packages", hidden=True)(install)
41
+
28
42
  app_repos = cli_repos.get_app()
29
- app.add_typer(app_repos, name="repos")
30
- app.add_typer(app_repos, name="r", hidden=True)
43
+ cli_app.add_typer(app_repos, name="repos")
44
+ cli_app.add_typer(app_repos, name="r", hidden=True)
31
45
  app_config = cli_config.get_app()
32
- app.add_typer(app_config, name="config")
33
- app.add_typer(app_config, name="c", hidden=True)
46
+ cli_app.add_typer(app_config, name="config")
47
+ cli_app.add_typer(app_config, name="c", hidden=True)
34
48
  app_data = cli_data.get_app()
35
- app.add_typer(app_data, name="data")
36
- app.add_typer(app_data, name="d", hidden=True)
49
+ cli_app.add_typer(app_data, name="data")
50
+ cli_app.add_typer(app_data, name="d", hidden=True)
37
51
  app_self = cli_self.get_app()
38
- app.add_typer(app_self, name="self")
39
- app.add_typer(app_self, name="s", hidden=True)
52
+ cli_app.add_typer(app_self, name="self")
53
+ cli_app.add_typer(app_self, name="s", hidden=True)
40
54
  app_nw = cli_network.get_app()
41
- app.add_typer(app_nw, name="network")
42
- app.add_typer(app_nw, name="n", hidden=True)
43
- return app
55
+ cli_app.add_typer(app_nw, name="network")
56
+ cli_app.add_typer(app_nw, name="n", hidden=True)
57
+
58
+ cli_app.command("python", no_args_is_help=True, help="🐍 [p] python scripts or command/file in the machineconfig environment", context_settings={"show_help_on_error": True})(run_py_script_module.run_py_script)
59
+ cli_app.command("p", no_args_is_help=True, help="RUN python scripts or command/file in the machineconfig environment", hidden=True)(run_py_script_module.run_py_script)
60
+
61
+ return cli_app
44
62
 
45
63
 
46
64
  def main():
@@ -1,7 +1,3 @@
1
- """
2
- TUI for navigating through machineconfig command structure using Textual.
3
- """
4
-
5
1
  from machineconfig.scripts.python.helpers_navigator import CommandNavigatorApp
6
2
 
7
3