machineconfig 4.99__tar.gz → 5.0__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 (422) hide show
  1. {machineconfig-4.99/src/machineconfig.egg-info → machineconfig-5.0}/PKG-INFO +1 -1
  2. {machineconfig-4.99 → machineconfig-5.0}/pyproject.toml +7 -1
  3. machineconfig-5.0/src/machineconfig/scripts/python/count_lines.py +343 -0
  4. machineconfig-5.0/src/machineconfig/scripts/python/count_lines_frontend.py +12 -0
  5. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/devops.py +3 -1
  6. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/repos.py +13 -0
  7. {machineconfig-4.99 → machineconfig-5.0/src/machineconfig.egg-info}/PKG-INFO +1 -1
  8. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig.egg-info/SOURCES.txt +2 -0
  9. {machineconfig-4.99 → machineconfig-5.0}/MANIFEST.in +0 -0
  10. {machineconfig-4.99 → machineconfig-5.0}/README.md +0 -0
  11. {machineconfig-4.99 → machineconfig-5.0}/setup.cfg +0 -0
  12. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/__init__.py +0 -0
  13. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/__init__.py +0 -0
  14. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  15. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  16. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/distribute.py +0 -0
  17. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  18. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/job_params.py +0 -0
  19. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  20. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  21. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  22. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  23. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  24. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  25. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  26. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  27. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/ffile.py +0 -0
  28. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  29. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  30. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  31. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  32. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  33. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  34. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  35. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  36. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  37. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  38. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  39. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  40. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  41. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  42. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  43. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  44. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  45. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  46. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  47. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  48. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  49. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  50. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  51. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/templates/__init__.py +0 -0
  52. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  53. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/__init__.py +0 -0
  54. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/__init__.py +0 -0
  55. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  56. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  57. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  58. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  59. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  60. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  61. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  62. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  63. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  64. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  65. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  66. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  67. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  68. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  69. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  70. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  71. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  72. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  73. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  74. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  75. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  76. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  77. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  78. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  79. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  80. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  81. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  82. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  83. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  84. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  85. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  86. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  87. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  88. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  89. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  90. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/__init__.py +0 -0
  91. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/check_installations.py +0 -0
  92. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
  93. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
  94. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  95. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/tasks.py +0 -0
  96. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  97. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  98. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  99. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  100. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  101. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  102. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  103. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
  104. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
  105. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/logger.py +0 -0
  106. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/__init__.py +0 -0
  107. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/create.py +0 -0
  108. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  109. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  110. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  111. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  112. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  113. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/profile/shell.py +0 -0
  114. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/__init__.py +0 -0
  115. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/cloud/init.sh +0 -0
  116. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/agents +0 -0
  117. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
  118. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/cloud_copy +0 -0
  119. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/cloud_mount +0 -0
  120. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
  121. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/cloud_sync +0 -0
  122. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/croshell +0 -0
  123. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/devops +0 -0
  124. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/fire +0 -0
  125. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/ftpx +0 -0
  126. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/fzf2g +0 -0
  127. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/fzfag +0 -0
  128. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/fzffg +0 -0
  129. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/fzfg +0 -0
  130. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/fzfrga +0 -0
  131. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/gh_models +0 -0
  132. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/initai +0 -0
  133. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/kill_process +0 -0
  134. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/mount_drive +0 -0
  135. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/mount_nfs +0 -0
  136. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
  137. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/mount_smb +0 -0
  138. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/repos +0 -0
  139. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/scheduler +0 -0
  140. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/sessions +0 -0
  141. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
  142. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/share_nfs +0 -0
  143. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/share_smb +0 -0
  144. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/skrg +0 -0
  145. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/start_docker +0 -0
  146. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/start_slidev +0 -0
  147. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/start_terminals +0 -0
  148. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/switch_ip +0 -0
  149. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  150. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/wifi_conn +0 -0
  151. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/linux/z_ls +0 -0
  152. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/__init__.py +0 -0
  153. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/agents.py +0 -0
  154. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  155. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  156. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  157. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  158. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  159. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  160. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  161. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  162. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  163. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  164. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  165. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  166. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  167. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  168. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  169. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
  170. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  171. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  172. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  173. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  174. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  175. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  176. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  177. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  178. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  179. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  180. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  181. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
  182. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
  183. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
  184. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
  185. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
  186. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
  187. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/croshell.py +0 -0
  188. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
  189. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
  190. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
  191. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
  192. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/dotfile.py +0 -0
  193. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
  194. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
  195. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_agents_helper_types.py +0 -0
  196. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
  197. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  198. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
  199. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_jobs_route_helper.py +0 -0
  200. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
  201. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/ftpx.py +0 -0
  202. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
  203. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/gh_models.py +0 -0
  204. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
  205. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
  206. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
  207. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
  208. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
  209. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
  210. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/interactive.py +0 -0
  211. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
  212. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
  213. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
  214. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
  215. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/pomodoro.py +0 -0
  216. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
  217. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
  218. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/repos_helper_record.py +0 -0
  219. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
  220. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/scheduler.py +0 -0
  221. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/sessions.py +0 -0
  222. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/share_terminal.py +0 -0
  223. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/snapshot.py +0 -0
  224. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/start_slidev.py +0 -0
  225. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/start_terminals.py +0 -0
  226. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/t4.py +0 -0
  227. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/viewer.py +0 -0
  228. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/viewer_template.py +0 -0
  229. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
  230. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
  231. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/agents.ps1 +0 -0
  232. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
  233. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
  234. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
  235. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
  236. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
  237. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
  238. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
  239. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
  240. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
  241. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
  242. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  243. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  244. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  245. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
  246. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
  247. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
  248. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
  249. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
  250. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
  251. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
  252. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
  253. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
  254. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
  255. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
  256. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/repos.ps1 +0 -0
  257. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
  258. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/sessions.ps1 +0 -0
  259. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
  260. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  261. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
  262. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
  263. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
  264. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
  265. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
  266. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
  267. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
  268. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
  269. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/__init__.py +0 -0
  270. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/broot/br.sh +0 -0
  271. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  272. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/broot/conf.toml +0 -0
  273. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/glow/glow.yml +0 -0
  274. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  275. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/helix/config.toml +0 -0
  276. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/helix/languages.toml +0 -0
  277. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/keras/keras.json +0 -0
  278. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  279. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  280. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  281. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  282. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  283. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  284. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  285. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  286. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  287. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  288. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/colors +0 -0
  289. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  290. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  291. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  292. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  293. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  294. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  295. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/icons +0 -0
  296. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  297. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  298. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  299. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  300. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  301. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  302. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  303. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  304. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  305. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  306. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  307. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/colors +0 -0
  308. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  309. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/icons +0 -0
  310. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  311. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  312. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  313. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  314. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  315. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  316. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  317. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/linters/.flake8 +0 -0
  318. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  319. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/linters/.pylintrc +0 -0
  320. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  321. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  322. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  323. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  324. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  325. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  326. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/mprocs/windows/other +0 -0
  327. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  328. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  329. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/procs/.procs.toml +0 -0
  330. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  331. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/rofi/config.rasi +0 -0
  332. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  333. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  334. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  335. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  336. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  337. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  338. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  339. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  340. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  341. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  342. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  343. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  344. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  345. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  346. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  347. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  348. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  349. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/streamlit/config.toml +0 -0
  350. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  351. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  352. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  353. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/tere/terecd.sh +0 -0
  354. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  355. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  356. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  357. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  358. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/yazi/theme.toml +0 -0
  359. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  360. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zed/settings.json +0 -0
  361. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  362. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  363. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/config.kdl +0 -0
  364. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  365. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  366. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  367. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  368. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  369. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  370. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/__init__.py +0 -0
  371. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  372. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  373. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
  374. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  375. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
  376. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  377. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
  378. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/__init__.py +0 -0
  379. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  380. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  381. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
  382. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
  383. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
  384. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  385. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
  386. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  387. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  388. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/__init__.py +0 -0
  389. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/accessories.py +0 -0
  390. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/ai/__init__.py +0 -0
  391. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
  392. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  393. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  394. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/code.py +0 -0
  395. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/installer.py +0 -0
  396. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  397. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  398. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  399. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  400. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  401. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/io.py +0 -0
  402. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/links.py +0 -0
  403. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/notifications.py +0 -0
  404. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/options.py +0 -0
  405. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/path_extended.py +0 -0
  406. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/path_helper.py +0 -0
  407. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/procs.py +0 -0
  408. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/scheduler.py +0 -0
  409. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/scheduling.py +0 -0
  410. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  411. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  412. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  413. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  414. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/source_of_truth.py +0 -0
  415. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/ssh.py +0 -0
  416. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/terminal.py +0 -0
  417. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/upgrade_packages.py +0 -0
  418. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig/utils/ve.py +0 -0
  419. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  420. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig.egg-info/entry_points.txt +0 -0
  421. {machineconfig-4.99 → machineconfig-5.0}/src/machineconfig.egg-info/requires.txt +0 -0
  422. {machineconfig-4.99 → machineconfig-5.0}/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.0
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "machineconfig"
9
- version = "4.99"
9
+ version = "5.0"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -111,3 +111,9 @@ dev = [
111
111
  docs = [
112
112
  "pdoc>=15.0.2",
113
113
  ]
114
+ plot = [
115
+ "kaleido>=1.1.0",
116
+ "numpy>=2.3.3",
117
+ "plotly>=6.3.0",
118
+ "polars>=1.33.1",
119
+ ]
@@ -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,9 +4,11 @@ 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)
@@ -11,6 +11,12 @@ from typing import Annotated, Optional
11
11
  from pathlib import Path
12
12
 
13
13
 
14
+ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to the git repository")):
15
+ cmd = f"""uv run --python 3.13 --with machineconfig machineconfig.scripts.python.count_lines analyze-over-time {repo_path}"""
16
+ from machineconfig.utils.code import run_script
17
+ run_script(cmd)
18
+
19
+
14
20
  def main(
15
21
  directory: Annotated[Optional[str], typer.Argument(help="📁 Folder containing repos to record or a specs JSON file to follow.")] = None,
16
22
  push: Annotated[bool, typer.Option("--push", help="🚀 Push changes.")] = False,
@@ -24,11 +30,18 @@ def main(
24
30
  recursive: Annotated[bool, typer.Option("--recursive", "-r", help="🔍 Recursive flag.")] = False,
25
31
  no_sync: Annotated[bool, typer.Option("--no-sync", help="🚫 Disable automatic uv sync after pulls.")] = False,
26
32
  cloud: Annotated[Optional[str], typer.Option("--cloud", "-c", help="☁️ Cloud storage option.")] = None,
33
+ analyze: Annotated[bool, typer.Option("--analyze", help="📊 Analyze repository development over time.")] = False,
27
34
  ) -> None:
28
35
  print("\n" + "=" * 50)
29
36
  print("📂 Welcome to the Repository Manager")
30
37
  print("=" * 50 + "\n")
31
38
 
39
+ if analyze:
40
+ from machineconfig.scripts.python.count_lines_frontend import analyze_repo_development
41
+ analyze_repo_development(repo_path=directory if directory is not None else ".")
42
+ return
43
+ # app.command(name="analyze-repo", help="📊 Analyze code repository over time")(analyze_repo_development)
44
+
32
45
  from machineconfig.utils.io import read_ini
33
46
  from machineconfig.utils.source_of_truth import CONFIG_PATH, DEFAULTS_PATH
34
47
  from machineconfig.utils.path_extended import PathExtended
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 4.99
3
+ Version: 5.0
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -155,6 +155,8 @@ src/machineconfig/scripts/python/cloud_manager.py
155
155
  src/machineconfig/scripts/python/cloud_mount.py
156
156
  src/machineconfig/scripts/python/cloud_repo_sync.py
157
157
  src/machineconfig/scripts/python/cloud_sync.py
158
+ src/machineconfig/scripts/python/count_lines.py
159
+ src/machineconfig/scripts/python/count_lines_frontend.py
158
160
  src/machineconfig/scripts/python/croshell.py
159
161
  src/machineconfig/scripts/python/devops.py
160
162
  src/machineconfig/scripts/python/devops_add_identity.py
File without changes
File without changes
File without changes