machineconfig 4.99__tar.gz → 5.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (423) hide show
  1. {machineconfig-4.99/src/machineconfig.egg-info → machineconfig-5.11}/PKG-INFO +21 -1
  2. {machineconfig-4.99 → machineconfig-5.11}/README.md +20 -0
  3. {machineconfig-4.99 → machineconfig-5.11}/pyproject.toml +7 -2
  4. machineconfig-5.11/src/machineconfig/scripts/python/count_lines.py +343 -0
  5. machineconfig-5.11/src/machineconfig/scripts/python/count_lines_frontend.py +12 -0
  6. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops.py +4 -2
  7. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/interactive.py +1 -1
  8. machineconfig-5.11/src/machineconfig/scripts/python/repos.py +219 -0
  9. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_record.py +3 -1
  10. {machineconfig-4.99 → machineconfig-5.11/src/machineconfig.egg-info}/PKG-INFO +21 -1
  11. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/SOURCES.txt +2 -2
  12. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/entry_points.txt +0 -1
  13. machineconfig-4.99/src/machineconfig/scripts/linux/repos +0 -2
  14. machineconfig-4.99/src/machineconfig/scripts/python/repos.py +0 -87
  15. machineconfig-4.99/src/machineconfig/scripts/windows/repos.ps1 +0 -1
  16. {machineconfig-4.99 → machineconfig-5.11}/MANIFEST.in +0 -0
  17. {machineconfig-4.99 → machineconfig-5.11}/setup.cfg +0 -0
  18. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/__init__.py +0 -0
  19. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/__init__.py +0 -0
  20. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  21. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  22. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/distribute.py +0 -0
  23. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  24. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/job_params.py +0 -0
  25. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  26. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  27. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  28. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  29. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  30. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  31. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  32. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  33. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/ffile.py +0 -0
  34. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  35. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  36. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  37. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  38. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  39. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  40. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  41. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  42. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  43. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  44. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  45. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  46. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  47. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  48. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  49. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  50. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  51. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  52. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  53. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  54. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  55. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  56. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  57. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/templates/__init__.py +0 -0
  58. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  59. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/__init__.py +0 -0
  60. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/__init__.py +0 -0
  61. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  62. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  63. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  64. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  65. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  66. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  67. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  68. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  69. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  70. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  71. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  72. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  73. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  74. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  75. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  76. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  77. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  78. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  79. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  80. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  81. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  82. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  83. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  84. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  85. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  86. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  87. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  88. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  89. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  90. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  91. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  92. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  93. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  94. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  95. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  96. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/__init__.py +0 -0
  97. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/check_installations.py +0 -0
  98. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
  99. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
  100. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  101. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/tasks.py +0 -0
  102. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  103. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  104. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  105. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  106. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  107. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  108. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  109. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  110. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  111. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/logger.py +0 -0
  112. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/__init__.py +0 -0
  113. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/create.py +0 -0
  114. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  115. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  116. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  117. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  118. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  119. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/shell.py +0 -0
  120. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/__init__.py +0 -0
  121. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/cloud/init.sh +0 -0
  122. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/agents +0 -0
  123. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  124. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  125. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  126. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  127. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  128. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/croshell +0 -0
  129. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/devops +0 -0
  130. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fire +0 -0
  131. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/ftpx +0 -0
  132. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzf2g +0 -0
  133. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzfag +0 -0
  134. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzffg +0 -0
  135. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzfg +0 -0
  136. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzfrga +0 -0
  137. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/gh_models +0 -0
  138. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/initai +0 -0
  139. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/kill_process +0 -0
  140. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_drive +0 -0
  141. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  142. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  143. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_smb +0 -0
  144. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/scheduler +0 -0
  145. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/sessions +0 -0
  146. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  147. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/share_nfs +0 -0
  148. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/share_smb +0 -0
  149. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/skrg +0 -0
  150. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/start_docker +0 -0
  151. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/start_slidev +0 -0
  152. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/start_terminals +0 -0
  153. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/switch_ip +0 -0
  154. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  155. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  156. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/z_ls +0 -0
  157. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/__init__.py +0 -0
  158. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/agents.py +0 -0
  159. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  160. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  161. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  162. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  163. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  164. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  165. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  166. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  167. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  168. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  169. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  170. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  171. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  172. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  173. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  174. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  175. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  176. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  177. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  178. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  179. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  180. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  181. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  182. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  183. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  184. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  185. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  186. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  187. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  188. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  189. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  190. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  191. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  192. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/croshell.py +0 -0
  193. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  194. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  195. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  196. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  197. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/dotfile.py +0 -0
  198. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
  199. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  200. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_helper_types.py +0 -0
  201. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
  202. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  203. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  204. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs_route_helper.py +0 -0
  205. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  206. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ftpx.py +0 -0
  207. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  208. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/gh_models.py +0 -0
  209. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  210. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  211. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  212. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  213. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  214. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  215. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  216. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  217. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  218. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  219. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  220. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  221. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  222. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  223. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/scheduler.py +0 -0
  224. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/sessions.py +0 -0
  225. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/share_terminal.py +0 -0
  226. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/snapshot.py +0 -0
  227. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  228. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  229. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/t4.py +0 -0
  230. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/viewer.py +0 -0
  231. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  232. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  233. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  234. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/agents.ps1 +0 -0
  235. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  236. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  237. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  238. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  239. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  240. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  241. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  242. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  243. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  244. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  245. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  246. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  247. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  248. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  249. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  250. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  251. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  252. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  253. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  254. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  255. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  256. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  257. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  258. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  259. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  260. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/sessions.ps1 +0 -0
  261. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  262. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  263. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  264. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  265. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  266. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  267. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  268. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  269. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  270. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  271. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/__init__.py +0 -0
  272. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/broot/br.sh +0 -0
  273. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  274. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/broot/conf.toml +0 -0
  275. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/glow/glow.yml +0 -0
  276. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  277. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/helix/config.toml +0 -0
  278. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/helix/languages.toml +0 -0
  279. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keras/keras.json +0 -0
  280. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  281. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  282. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  283. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  284. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  285. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  286. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  287. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  288. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  289. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  290. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/colors +0 -0
  291. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  292. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  293. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  294. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  295. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  296. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  297. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/icons +0 -0
  298. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  299. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  300. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  301. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  302. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  303. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  304. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  305. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  306. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  307. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  308. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  309. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/colors +0 -0
  310. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  311. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/icons +0 -0
  312. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  313. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  314. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  315. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  316. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  317. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  318. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  319. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.flake8 +0 -0
  320. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  321. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.pylintrc +0 -0
  322. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  323. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  324. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  325. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  326. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  327. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  328. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/mprocs/windows/other +0 -0
  329. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  330. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  331. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/procs/.procs.toml +0 -0
  332. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  333. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/rofi/config.rasi +0 -0
  334. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  335. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  336. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  337. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  338. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  339. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  340. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  341. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  342. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  343. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  344. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  345. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  346. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  347. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  348. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  349. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  350. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  351. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/streamlit/config.toml +0 -0
  352. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  353. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  354. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  355. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tere/terecd.sh +0 -0
  356. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  357. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  358. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  359. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  360. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/yazi/theme.toml +0 -0
  361. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  362. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zed/settings.json +0 -0
  363. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  364. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  365. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/config.kdl +0 -0
  366. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  367. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  368. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  369. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  370. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  371. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  372. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/__init__.py +0 -0
  373. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  374. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  375. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  376. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  377. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  378. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  379. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  380. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/__init__.py +0 -0
  381. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  382. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  383. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  384. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  385. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  386. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  387. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  388. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  389. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  390. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/__init__.py +0 -0
  391. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/accessories.py +0 -0
  392. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ai/__init__.py +0 -0
  393. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  394. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  395. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  396. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/code.py +0 -0
  397. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer.py +0 -0
  398. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  399. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  400. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  401. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  402. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  403. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/io.py +0 -0
  404. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/links.py +0 -0
  405. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/notifications.py +0 -0
  406. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/options.py +0 -0
  407. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/path_extended.py +0 -0
  408. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/path_helper.py +0 -0
  409. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/procs.py +0 -0
  410. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/scheduler.py +0 -0
  411. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/scheduling.py +0 -0
  412. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  413. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  414. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  415. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  416. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/source_of_truth.py +0 -0
  417. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ssh.py +0 -0
  418. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/terminal.py +0 -0
  419. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/upgrade_packages.py +0 -0
  420. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ve.py +0 -0
  421. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  422. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/requires.txt +0 -0
  423. {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 4.99
3
+ Version: 5.11
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -161,6 +161,26 @@ curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/ma
161
161
  short `curl bit.ly/cfgcroshelllinux -L | bash`
162
162
 
163
163
 
164
+ ## Repository management CLI
165
+
166
+ The DevOps CLI now exposes rich subcommands for working with git repositories. Run `python -m machineconfig.scripts.python.devops repos --help` to explore the hierarchy:
167
+
168
+ * Top-level actions: `push`, `pull`, `commit`, `all`, and `analyze`.
169
+ * These commands accept `--recursive/-r` and `--no-sync` to control nested repos and automatic `uv sync`.
170
+ * Sync workflows live under `sync`:
171
+ * `record` captures the current machine state into a `repos.json`.
172
+ * `capture` clones repos from a specification without changing commits.
173
+ * `checkout` aligns repositories to commits stored in the spec.
174
+ * `checkout-to-branch` switches repositories to the tracked branch.
175
+ * Each sync subcommand accepts `--cloud/-c` for fetching/saving specs from remote storage.
176
+
177
+ Example:
178
+
179
+ ```bash
180
+ python -m machineconfig.scripts.python.devops repos sync record ~/code --cloud my_remote
181
+ python -m machineconfig.scripts.python.devops repos pull ~/code --recursive
182
+ ```
183
+
164
184
  # Author
165
185
  Alex Al-Saffar. [email](mailto:programmer@usa.com)
166
186
 
@@ -127,6 +127,26 @@ curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/ma
127
127
  short `curl bit.ly/cfgcroshelllinux -L | bash`
128
128
 
129
129
 
130
+ ## Repository management CLI
131
+
132
+ The DevOps CLI now exposes rich subcommands for working with git repositories. Run `python -m machineconfig.scripts.python.devops repos --help` to explore the hierarchy:
133
+
134
+ * Top-level actions: `push`, `pull`, `commit`, `all`, and `analyze`.
135
+ * These commands accept `--recursive/-r` and `--no-sync` to control nested repos and automatic `uv sync`.
136
+ * Sync workflows live under `sync`:
137
+ * `record` captures the current machine state into a `repos.json`.
138
+ * `capture` clones repos from a specification without changing commits.
139
+ * `checkout` aligns repositories to commits stored in the spec.
140
+ * `checkout-to-branch` switches repositories to the tracked branch.
141
+ * Each sync subcommand accepts `--cloud/-c` for fetching/saving specs from remote storage.
142
+
143
+ Example:
144
+
145
+ ```bash
146
+ python -m machineconfig.scripts.python.devops repos sync record ~/code --cloud my_remote
147
+ python -m machineconfig.scripts.python.devops repos pull ~/code --recursive
148
+ ```
149
+
130
150
  # Author
131
151
  Alex Al-Saffar. [email](mailto:programmer@usa.com)
132
152
 
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "4.99"
9
+ version = "5.11"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -64,7 +64,6 @@ cloud_mount = "machineconfig.scripts.python.cloud_mount:arg_parser"
64
64
  cloud_repo_sync = "machineconfig.scripts.python.cloud_repo_sync:args_parser"
65
65
  cloud_sync = "machineconfig.scripts.python.cloud_sync:arg_parser"
66
66
  ftpx = "machineconfig.scripts.python.ftpx:main_from_parser"
67
- repos = "machineconfig.scripts.python.repos:main_from_parser"
68
67
 
69
68
  start_slidev = "machineconfig.scripts.python.start_slidev:arg_parser"
70
69
  kill_process = "machineconfig.utils.procs:main"
@@ -111,3 +110,9 @@ dev = [
111
110
  docs = [
112
111
  "pdoc>=15.0.2",
113
112
  ]
113
+ plot = [
114
+ "kaleido>=1.1.0",
115
+ "numpy>=2.3.3",
116
+ "plotly>=6.3.0",
117
+ "polars>=1.33.1",
118
+ ]
@@ -0,0 +1,343 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+ from git import Repo
5
+ from collections import defaultdict
6
+ from datetime import datetime
7
+
8
+ from pathlib import Path
9
+ from rich.progress import track
10
+ import polars as pl
11
+ import plotly.graph_objects as go
12
+ import plotly.express as px
13
+ import typer
14
+
15
+
16
+ if TYPE_CHECKING:
17
+ from typing import Any, Dict, List, Optional, Union
18
+
19
+
20
+ app = typer.Typer()
21
+
22
+
23
+ def count_lines_in_commit(commit: "Any") -> int:
24
+ total_lines = 0
25
+ for file in commit.stats.files:
26
+ if str(file).endswith(".py"):
27
+ blob = commit.tree / file
28
+ total_lines += len(blob.data_stream.read().decode("utf-8").splitlines())
29
+ return total_lines
30
+
31
+
32
+ def count_historical_loc(repo_path: str) -> int:
33
+ repo = Repo(repo_path)
34
+ file_line_counts: "Dict[str, int]" = defaultdict(int)
35
+ total_commits: int = sum(1 for _ in repo.iter_commits())
36
+ print(f"Total commits to process: {total_commits}")
37
+ for i, commit in enumerate(repo.iter_commits(), 1):
38
+ if i % 100 == 0 or i == total_commits:
39
+ print(f"Processing commit {i}/{total_commits} ({i / total_commits:.1%})")
40
+ try:
41
+ # Handle initial commits that have no parents
42
+ if not commit.parents:
43
+ # For initial commit, count all lines in Python files
44
+ for file in commit.stats.files:
45
+ if str(file).endswith(".py"):
46
+ file_line_counts[str(file)] += commit.stats.files[file]["insertions"]
47
+ else:
48
+ # For commits with parents, use stats
49
+ for file in commit.stats.files:
50
+ if str(file).endswith(".py"):
51
+ file_line_counts[str(file)] += commit.stats.files[file]["insertions"]
52
+ except Exception:
53
+ # If stats fail (e.g., corrupted parent), skip this commit
54
+ print(f"Warning: Could not get stats for commit {commit.hexsha[:8]}, skipping")
55
+ continue
56
+
57
+ print(f"\nProcessed files: {len(file_line_counts)}")
58
+ return sum(file_line_counts.values())
59
+
60
+ def count_python_lines(commit: "Any") -> int:
61
+ """Count total lines in Python files for a specific commit"""
62
+ total_lines = 0
63
+ try:
64
+ for blob in commit.tree.traverse():
65
+ if blob.path.endswith(".py"):
66
+ try:
67
+ content = blob.data_stream.read().decode("utf-8")
68
+ total_lines += len(content.splitlines())
69
+ except Exception as _e:
70
+ continue
71
+ except Exception as _e:
72
+ return 0
73
+ return total_lines
74
+ def get_default_branch(repo: Repo) -> str:
75
+ """Get the default branch name of the repository"""
76
+ try:
77
+ _ = repo.refs["main"]
78
+ return "main" # First try 'main'
79
+ except IndexError:
80
+ try:
81
+ _ = repo.refs["master"]
82
+ return "master" # Then try 'master'
83
+ except IndexError:
84
+ return repo.head.reference.name # If neither exists, get the branch the HEAD is pointing to
85
+
86
+
87
+ @app.command()
88
+ def count_historical(repo_path: str = typer.Argument(..., help="Path to the git repository")):
89
+ """Count total historical lines of Python code in the repository."""
90
+ print(f"Analyzing repository: {repo_path}")
91
+ total_loc: int = count_historical_loc(repo_path)
92
+ print(f"\nTotal historical lines of Python code: {total_loc}")
93
+
94
+
95
+ @app.command()
96
+ def analyze_over_time(repo_path: str = typer.Argument(..., help="Path to the git repository")):
97
+ """Analyze a git repository to track Python code size over time with visualization."""
98
+ repo: Repo = Repo(repo_path)
99
+ branch_name: str = get_default_branch(repo)
100
+ print(f"🔍 Using branch: {branch_name}")
101
+ commit_data: "List[Dict[str, Any]]" = []
102
+ print("⏳ Analyzing commits...")
103
+ try:
104
+ commits = list(repo.iter_commits(branch_name))
105
+ from datetime import timezone
106
+
107
+ for commit in track(commits, description="Processing commits..."):
108
+ commit_data.append({"hash": commit.hexsha, "dtmExit": datetime.fromtimestamp(commit.committed_date, tz=timezone.utc), "lines": count_python_lines(commit)})
109
+ except Exception as e:
110
+ print(f"❌ Error analyzing commits: {str(e)}")
111
+ return
112
+ df = pl.DataFrame(commit_data)
113
+ df = df.sort("dtmExit")
114
+ # Create interactive plotly figure with dark theme and all bells and whistles
115
+ fig = go.Figure()
116
+ # Add line chart with gradient fill and sparkle effect
117
+ fig.add_trace(go.Scatter(x=df["dtmExit"], y=df["lines"], mode="lines", line={"width": 3, "color": "#00b4ff"}, fill="tozeroy", fillcolor="rgba(0, 180, 255, 0.2)", name="Lines of Code", hovertemplate="<b>Date:</b> %{x}<br><b>Lines:</b> %{y:,}<extra></extra>"))
118
+ # Add markers for significant points (min, max, last)
119
+ min_idx = df["lines"].arg_min()
120
+ max_idx = df["lines"].arg_max()
121
+ min_point = df.slice(min_idx, 1).to_dicts()[0] if min_idx is not None else {}
122
+ max_point = df.slice(max_idx, 1).to_dicts()[0] if max_idx is not None else {}
123
+ last_point = df.slice(-1, 1).to_dicts()[0]
124
+
125
+ # Add markers for significant points
126
+ fig.add_trace(
127
+ go.Scatter(
128
+ x=[min_point["dtmExit"], max_point["dtmExit"], last_point["dtmExit"]],
129
+ y=[min_point["lines"], max_point["lines"], last_point["lines"]],
130
+ mode="markers",
131
+ marker={"size": [10, 14, 12], "color": ["#ff4f4f", "#4fff4f", "#4f4fff"], "line": {"width": 2, "color": "white"}, "symbol": ["circle", "star", "diamond"]},
132
+ name="Key Points",
133
+ hovertemplate="<b>%{text}</b><br>Date: %{x}<br>Lines: %{y:,}<extra></extra>",
134
+ text=[f"🔽 Min: {min_point['lines']:,} lines", f"🔼 Max: {max_point['lines']:,} lines", f"📊 Current: {last_point['lines']:,} lines"],
135
+ )
136
+ )
137
+
138
+ # Add annotation only for current point
139
+ # annotations = [
140
+ # {"x": last_point['date'], "y": last_point['lines'], "text": f"📊 Current: {last_point['lines']:,} lines", "showarrow": True, "arrowhead": 2, "arrowsize": 1,
141
+ # "arrowwidth": 2, "arrowcolor": "#ffffff", "font": {"size": 14, "color": "#ffffff"}, "bgcolor": "#00b4ff", "bordercolor": "#ffffff",
142
+ # "borderwidth": 1, "borderpad": 4, "ax": 40, "ay": -40}
143
+ # ]
144
+
145
+ # Update layout with dark theme and customizations
146
+ fig.update_layout(
147
+ title={"text": "✨ Python Code Base Size Over Time ✨", "y": 0.95, "x": 0.5, "xanchor": "center", "yanchor": "top", "font": {"size": 24, "color": "white"}},
148
+ xaxis_title="Date 📅",
149
+ yaxis_title="Lines of Code 📝",
150
+ hovermode="closest",
151
+ template="plotly_dark",
152
+ plot_bgcolor="rgba(25, 25, 35, 1)",
153
+ paper_bgcolor="rgba(15, 15, 25, 1)",
154
+ font={"family": "Arial, sans-serif", "size": 14, "color": "white"}, # annotations=annotations,
155
+ autosize=True,
156
+ height=700,
157
+ margin={"l": 80, "r": 80, "t": 100, "b": 80},
158
+ xaxis={"showgrid": True, "gridcolor": "rgba(80, 80, 100, 0.2)", "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickfont": {"size": 12}},
159
+ yaxis={"showgrid": True, "gridcolor": "rgba(80, 80, 100, 0.2)", "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickformat": ",", "tickfont": {"size": 12}},
160
+ )
161
+
162
+ # Add range slider for date selection
163
+ fig.update_xaxes(rangeslider_visible=True, rangeslider_thickness=0.05)
164
+
165
+ # Save as interactive HTML and static image
166
+ plot_dir = Path.home().joinpath("tmp_results", "tmp_images", Path(repo_path).name)
167
+ plot_dir.mkdir(parents=True, exist_ok=True)
168
+
169
+ html_path = plot_dir.joinpath("code_size_evolution.html")
170
+ png_path = plot_dir.joinpath("code_size_evolution.png")
171
+
172
+ fig.write_html(html_path, include_plotlyjs="cdn")
173
+ fig.write_image(png_path, width=1200, height=700, scale=2)
174
+
175
+ print(f"🖼️ Interactive plot saved as {html_path}")
176
+ print(f"🖼️ Static image saved as {png_path}")
177
+ # Print statistics
178
+ print("\n📊 Repository Statistics:")
179
+ print(f"📚 Total commits analyzed: {len(df)}")
180
+ print(f"🔙 Initial line count: {df['lines'][-1]:,}")
181
+ print(f"🔜 Final line count: {df['lines'][0]:,}")
182
+ print(f"📈 Net change: {df['lines'][0] - df['lines'][-1]:,} lines")
183
+
184
+
185
+ def _print_python_files_by_size_impl(repo_path: str) -> "Union[pl.DataFrame, Exception]":
186
+ try:
187
+ import os
188
+ if not os.path.exists(repo_path):
189
+ return ValueError(f"Repository path does not exist: {repo_path}")
190
+ # Initialize data storage
191
+ file_data: "List[Dict[str, Union[str, int]]]" = []
192
+
193
+ # Walk through the repository
194
+ for root, _, files in os.walk(repo_path):
195
+ # Skip .git directory and other hidden directories
196
+ if ".git" in Path(root).parts or any(part.startswith(".") for part in Path(root).parts):
197
+ continue
198
+
199
+ for file in files:
200
+ if file.endswith(".py"):
201
+ file_path = os.path.join(root, file)
202
+ try:
203
+ # Count lines in the file
204
+ with open(file_path, "r", encoding="utf-8", errors="replace") as f:
205
+ line_count = sum(1 for _ in f)
206
+
207
+ # Make path relative to repo_path for better display
208
+ rel_path = os.path.relpath(file_path, repo_path)
209
+ file_data.append({"filename": rel_path, "lines": line_count})
210
+ except Exception as e:
211
+ print(f"⚠️ Warning: Could not read {file_path}: {str(e)}")
212
+ continue
213
+
214
+ # Check if any files were found
215
+ if not file_data:
216
+ return ValueError("❌ No Python files found in the repository")
217
+
218
+ # Convert to DataFrame
219
+ df = pl.DataFrame(file_data)
220
+
221
+ # Sort DataFrame by line count (descending)
222
+ df = df.sort("lines", descending=True)
223
+ df = df.filter(pl.col("lines") > 0) # Filter out empty files
224
+
225
+ # Add total count
226
+ total_lines = int(df["lines"].sum())
227
+ file_count: int = len(df)
228
+
229
+ # Print the DataFrame
230
+ print("\n📊 Python Files Line Count (sorted max to min):")
231
+ print(df)
232
+ print(f"\n📁 Total Python files: {file_count}")
233
+ print(f"📝 Total lines of Python code: {total_lines:,}")
234
+
235
+ # Create visualizations with Plotly
236
+ # Only visualize top files (too many files make the chart unreadable)
237
+ top_n: int = min(20, len(df))
238
+ top_files_df = df.head(top_n).clone()
239
+
240
+ # Calculate percentage of total for top files
241
+ top_files_df = top_files_df.with_columns((pl.col("lines") / total_lines * 100).round(1).alias("percentage"))
242
+
243
+ # Shorten filenames for better display
244
+ import os
245
+
246
+ top_files_df = top_files_df.with_columns(pl.col("filename").map_elements(lambda x: os.path.basename(x) if len(x) > 25 else x, return_dtype=pl.Utf8).alias("short_name"))
247
+
248
+ # Create bar chart with hover info showing full path
249
+ fig = go.Figure()
250
+
251
+ # Add bars with gradient color based on line count
252
+ fig.add_trace(
253
+ go.Bar(
254
+ x=top_files_df["short_name"].to_list(),
255
+ y=top_files_df["lines"].to_list(),
256
+ text=[f"{x}%" for x in top_files_df["percentage"].to_list()],
257
+ textposition="auto",
258
+ hovertemplate="<b>%{customdata}</b><br>Lines: %{y:,}<br>Percentage: %{text}<extra></extra>",
259
+ customdata=top_files_df["filename"],
260
+ marker={"color": top_files_df["lines"], "colorscale": "Viridis", "showscale": True, "colorbar": {"title": "Lines", "thickness": 20, "tickformat": ","}, "line": {"width": 1, "color": "white"}},
261
+ opacity=0.9,
262
+ )
263
+ )
264
+
265
+ # Update layout with dark theme
266
+ fig.update_layout(
267
+ title={"text": f"🏆 Top {top_n} Python Files by Size", "y": 0.95, "x": 0.5, "xanchor": "center", "yanchor": "top", "font": {"size": 24, "color": "white"}},
268
+ xaxis_title="File Name 📄",
269
+ yaxis_title="Lines of Code 📝",
270
+ template="plotly_dark",
271
+ plot_bgcolor="rgba(25, 25, 35, 1)",
272
+ paper_bgcolor="rgba(15, 15, 25, 1)",
273
+ font={"family": "Arial, sans-serif", "size": 14, "color": "white"},
274
+ height=700,
275
+ margin={"l": 80, "r": 80, "t": 100, "b": 100},
276
+ xaxis={"tickangle": 45, "showgrid": False, "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickfont": {"size": 12}},
277
+ yaxis={"showgrid": True, "gridcolor": "rgba(80, 80, 100, 0.2)", "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickformat": ",", "tickfont": {"size": 12}},
278
+ )
279
+
280
+ # Define pie chart figure before conditionally using it
281
+ fig2: "Optional[go.Figure]" = None
282
+
283
+ # Add pie chart showing distribution
284
+ if len(df) > top_n:
285
+ # Prepare data for pie chart - top files plus "Others"
286
+ others_lines = df.slice(top_n)["lines"].sum()
287
+ pie_labels = list(top_files_df["short_name"]) + ["Others"]
288
+ pie_values = list(top_files_df["lines"]) + [others_lines]
289
+ pie_customdata = list(top_files_df["filename"]) + [f"Other {len(df) - top_n} files"]
290
+
291
+ fig2 = go.Figure()
292
+ fig2.add_trace(go.Pie(labels=pie_labels, values=pie_values, customdata=pie_customdata, textinfo="percent", hovertemplate="<b>%{customdata}</b><br>Lines: %{value:,}<br>Percentage: %{percent}<extra></extra>", marker={"colors": px.colors.sequential.Viridis, "line": {"color": "white", "width": 1}}, hole=0.4, sort=False))
293
+
294
+ fig2.update_layout(
295
+ title={"text": "🍩 Python Code Distribution by File", "y": 0.95, "x": 0.5, "xanchor": "center", "yanchor": "top", "font": {"size": 24, "color": "white"}},
296
+ template="plotly_dark",
297
+ plot_bgcolor="rgba(25, 25, 35, 1)",
298
+ paper_bgcolor="rgba(15, 15, 25, 1)",
299
+ font={"family": "Arial, sans-serif", "size": 14, "color": "white"},
300
+ height=700,
301
+ annotations=[{"text": f"Total<br>{total_lines:,}<br>lines", "x": 0.5, "y": 0.5, "font": {"size": 18, "color": "white"}, "showarrow": False}],
302
+ )
303
+
304
+ # Save visualizations
305
+ plot_dir = Path.home().joinpath("tmp_results", "tmp_images", Path(repo_path).name)
306
+ plot_dir.mkdir(parents=True, exist_ok=True)
307
+
308
+ # Bar chart
309
+ bar_html_path = plot_dir.joinpath("top_files_by_size.html")
310
+ bar_png_path = plot_dir.joinpath("top_files_by_size.png")
311
+ fig.write_html(bar_html_path, include_plotlyjs="cdn")
312
+ fig.write_image(bar_png_path, width=1200, height=700, scale=2)
313
+
314
+ print(f"\n🖼️ Interactive bar chart saved as {bar_html_path}")
315
+ print(f"🖼️ Static bar chart saved as {bar_png_path}")
316
+
317
+ # Pie chart if available
318
+ if fig2 is not None:
319
+ pie_html_path = plot_dir.joinpath("files_distribution_pie.html")
320
+ pie_png_path = plot_dir.joinpath("files_distribution_pie.png")
321
+ fig2.write_html(pie_html_path, include_plotlyjs="cdn")
322
+ fig2.write_image(pie_png_path, width=1200, height=700, scale=2)
323
+
324
+ print(f"🖼️ Interactive pie chart saved as {pie_html_path}")
325
+ print(f"🖼️ Static pie chart saved as {pie_png_path}")
326
+
327
+ return df
328
+
329
+ except Exception as e:
330
+ return Exception(f"❌ Error analyzing repository: {str(e)}")
331
+
332
+
333
+ @app.command()
334
+ def print_python_files_by_size(repo_path: str = typer.Argument(..., help="Path to the git repository")):
335
+ """Print Python files sorted by size with visualizations."""
336
+ result = _print_python_files_by_size_impl(repo_path)
337
+ if isinstance(result, Exception):
338
+ print(f"Error: {result}")
339
+ return
340
+
341
+
342
+ if __name__ == "__main__":
343
+ app()
@@ -0,0 +1,12 @@
1
+
2
+ import typer
3
+
4
+
5
+ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to the git repository")):
6
+ cmd = f"""uv run --python 3.13 --with machineconfig machineconfig.scripts.python.count_lines analyze-over-time {repo_path}"""
7
+ from machineconfig.utils.code import run_script
8
+ run_script(cmd)
9
+
10
+
11
+ if __name__ == "__main__":
12
+ pass
@@ -4,13 +4,15 @@ import machineconfig.utils.installer_utils.installer as installer_entry_point
4
4
  import machineconfig.scripts.python.share_terminal as share_terminal
5
5
  import machineconfig.scripts.python.repos as repos
6
6
 
7
+ from machineconfig import __version__
7
8
  import typer
8
9
 
9
- app = typer.Typer(help="🛠️ DevOps operations with emojis", no_args_is_help=True)
10
+
11
+ app = typer.Typer(help=f"🛠️ DevOps operations @ machineconfig {__version__}", no_args_is_help=True)
10
12
 
11
13
  app.command(name="install", help="📦 Install essential packages")(installer_entry_point.main)
12
14
  app.command(name="share-terminal", help="📡 Share terminal via web browser")(share_terminal.main)
13
- app.command(name="repos", help="📁 Manage git repositories")(repos.main)
15
+ app.add_typer(repos.app, name="repos", help="📁 Manage git repositories")
14
16
 
15
17
  ssh_app = typer.Typer(help="🔐 SSH operations subcommands", no_args_is_help=True)
16
18
  app.add_typer(ssh_app, name="ssh")
@@ -187,7 +187,7 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
187
187
  if "retrieve_repositories" in selected_options:
188
188
  console.print(Panel("📚 [bold bright_magenta]REPOSITORIES[/bold bright_magenta]\n[italic]Project code retrieval[/italic]", border_style="bright_magenta"))
189
189
  from machineconfig.scripts.python import repos as module
190
- module.main(directory=str(Path.home() / "code"), clone=True, cloud="odg1")
190
+ module.main(directory=str(Path.home() / "code"), capture=True, cloud="odg1")
191
191
 
192
192
  if "retrieve_data" in selected_options:
193
193
  console.print(Panel("💾 [bold bright_cyan]DATA RETRIEVAL[/bold bright_cyan]\n[italic]Backup restoration[/italic]", border_style="bright_cyan"))