machineconfig 5.81__tar.gz → 5.83__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 (434) hide show
  1. {machineconfig-5.81/src/machineconfig.egg-info → machineconfig-5.83}/PKG-INFO +1 -1
  2. {machineconfig-5.81 → machineconfig-5.83}/pyproject.toml +1 -1
  3. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +95 -3
  4. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/ssh.py +30 -13
  5. machineconfig-5.83/src/machineconfig/utils/tst.py +20 -0
  6. {machineconfig-5.81 → machineconfig-5.83/src/machineconfig.egg-info}/PKG-INFO +1 -1
  7. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig.egg-info/SOURCES.txt +1 -0
  8. {machineconfig-5.81 → machineconfig-5.83}/MANIFEST.in +0 -0
  9. {machineconfig-5.81 → machineconfig-5.83}/README.md +0 -0
  10. {machineconfig-5.81 → machineconfig-5.83}/setup.cfg +0 -0
  11. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/__init__.py +0 -0
  12. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/__init__.py +0 -0
  13. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  14. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  15. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/distribute.py +0 -0
  16. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  17. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/job_params.py +0 -0
  18. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  19. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  20. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  21. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  22. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  23. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  24. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  25. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  26. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper.py +0 -0
  27. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper_restart.py +0 -0
  28. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_helper_with_panes.py +0 -0
  29. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/helpers/zellij_local_manager_helper.py +0 -0
  30. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
  31. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  32. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
  33. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
  34. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
  35. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  36. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
  37. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  38. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  39. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  40. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  41. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  42. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  43. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  44. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  45. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  46. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  47. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  48. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  49. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  50. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  51. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  52. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  53. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/templates/__init__.py +0 -0
  54. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  55. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/__init__.py +0 -0
  56. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/__init__.py +0 -0
  57. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  58. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  59. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  60. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  61. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  62. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  63. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  64. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  65. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  66. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  67. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  68. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  69. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  70. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  71. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  72. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  73. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  74. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  75. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  76. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  77. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  78. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  79. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  80. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  81. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  82. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  83. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  84. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  85. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  86. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  87. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  88. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  89. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  90. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  91. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
  92. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
  93. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
  94. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/python/__init__.py +0 -0
  95. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
  96. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/python/vscode/api.py +0 -0
  97. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
  98. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
  99. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
  100. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
  101. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  102. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  103. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/logger.py +0 -0
  104. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/__init__.py +0 -0
  105. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/backup.toml +0 -0
  106. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  107. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/create_helper.py +0 -0
  108. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/create_links.py +0 -0
  109. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/create_links_export.py +0 -0
  110. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/create_shell_profile.py +0 -0
  111. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/mapper.toml +0 -0
  112. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  113. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  114. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  115. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  116. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  117. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  118. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/__init__.py +0 -0
  119. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/fzf2g +0 -0
  120. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/fzfag +0 -0
  121. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/fzffg +0 -0
  122. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/fzfg +0 -0
  123. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/fzfrga +0 -0
  124. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  125. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  126. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/other/share_smb +0 -0
  127. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  128. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  129. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/skrg +0 -0
  130. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
  131. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/linux/z_ls +0 -0
  132. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/__init__.py +0 -0
  133. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/agents.py +0 -0
  134. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  135. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  136. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  137. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  138. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  139. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  140. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  141. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  142. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  143. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  144. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  145. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  146. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  147. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  148. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  149. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  150. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  151. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  152. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  153. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  154. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  155. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  156. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  157. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  158. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  159. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  160. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  161. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  162. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  163. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ai/vscode_tasks.py +0 -0
  164. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud.py +0 -0
  165. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/__init__.py +0 -0
  166. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/cloud_copy.py +0 -0
  167. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/cloud_helpers.py +0 -0
  168. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/cloud_mount.py +0 -0
  169. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/cloud_sync.py +0 -0
  170. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/helpers2.py +0 -0
  171. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/cloud_helpers/helpers5.py +0 -0
  172. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell.py +0 -0
  173. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell_helpers/__init__.py +0 -0
  174. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell_helpers/pomodoro.py +0 -0
  175. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell_helpers/scheduler.py +0 -0
  176. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell_helpers/start_slidev.py +0 -0
  177. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell_helpers/viewer.py +0 -0
  178. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/croshell_helpers/viewer_template.py +0 -0
  179. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops.py +0 -0
  180. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/__init__.py +0 -0
  181. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_config.py +0 -0
  182. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +0 -0
  183. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_data.py +0 -0
  184. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_nw.py +0 -0
  185. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_repos.py +0 -0
  186. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_self.py +0 -0
  187. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -0
  188. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/cli_terminal.py +0 -0
  189. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py +0 -0
  190. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/devops_status.py +0 -0
  191. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/devops_update_repos.py +0 -0
  192. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/themes/__init__.py +0 -0
  193. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/themes/choose_pwsh_theme.ps1 +0 -0
  194. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py +0 -0
  195. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  196. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/entry.py +0 -0
  197. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  198. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  199. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +0 -0
  200. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
  201. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/ftpx.py +0 -0
  202. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/__init__.py +0 -0
  203. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/command_builder.py +0 -0
  204. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/command_detail.py +0 -0
  205. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/command_tree.py +0 -0
  206. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/data_models.py +0 -0
  207. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/main_app.py +0 -0
  208. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helper_navigator/search_bar.py +0 -0
  209. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
  210. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
  211. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
  212. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
  213. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
  214. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
  215. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
  216. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
  217. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
  218. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
  219. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
  220. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +0 -0
  221. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
  222. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
  223. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -0
  224. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  225. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  226. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  227. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  228. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  229. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_repos/__init__.py +0 -0
  230. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +0 -0
  231. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  232. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
  233. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/interactive.py +0 -0
  234. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  235. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
  236. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
  237. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
  238. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  239. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_nfs +0 -0
  240. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  241. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  242. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  243. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  244. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  245. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  246. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/wifi_conn.py +0 -0
  247. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  248. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/action.py +0 -0
  249. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/clone.py +0 -0
  250. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/count_lines.py +0 -0
  251. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +0 -0
  252. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/entrypoint.py +0 -0
  253. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/record.py +0 -0
  254. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/sync.py +0 -0
  255. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/repos_helpers/update.py +0 -0
  256. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/sessions.py +0 -0
  257. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/sessions_helpers/__init__.py +0 -0
  258. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/python/sessions_helpers/sessions_multiprocess.py +0 -0
  259. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  260. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  261. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  262. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  263. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  264. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  265. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -0
  266. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  267. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  268. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  269. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/__init__.py +0 -0
  270. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/broot/br.sh +0 -0
  271. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  272. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/broot/conf.toml +0 -0
  273. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/glow/glow.yml +0 -0
  274. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  275. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/helix/config.toml +0 -0
  276. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/helix/languages.toml +0 -0
  277. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/keras/keras.json +0 -0
  278. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  279. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  280. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  281. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  282. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  283. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  284. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  285. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  286. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  287. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  288. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/colors +0 -0
  289. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  290. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  291. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  292. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  293. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  294. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  295. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/icons +0 -0
  296. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  297. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  298. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  299. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  300. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  301. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  302. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  303. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  304. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  305. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  306. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  307. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/colors +0 -0
  308. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  309. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/icons +0 -0
  310. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  311. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  312. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  313. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  314. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  315. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  316. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  317. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/linters/.flake8 +0 -0
  318. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  319. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/linters/.pylintrc +0 -0
  320. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  321. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  322. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  323. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  324. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  325. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  326. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/mprocs/windows/other +0 -0
  327. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  328. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  329. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/procs/.procs.toml +0 -0
  330. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  331. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/rofi/config.rasi +0 -0
  332. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  333. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  334. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  335. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/bash/init.sh +0 -0
  336. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  337. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  338. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  339. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  340. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  341. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  342. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  343. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
  344. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  345. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  346. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  347. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  348. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  349. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/streamlit/config.toml +0 -0
  350. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  351. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  352. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  353. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/tere/terecd.sh +0 -0
  354. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  355. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  356. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  357. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  358. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/yazi/theme.toml +0 -0
  359. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  360. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zed/settings.json +0 -0
  361. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  362. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  363. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/config.kdl +0 -0
  364. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  365. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  366. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  367. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  368. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  369. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  370. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/__init__.py +0 -0
  371. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/apps.sh +0 -0
  372. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  373. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  374. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
  375. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  376. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  377. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  378. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/uv.sh +0 -0
  379. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
  380. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
  381. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/__init__.py +0 -0
  382. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  383. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  384. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  385. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  386. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  387. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  388. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  389. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/uv.ps1 +0 -0
  390. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
  391. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  392. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  393. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/__init__.py +0 -0
  394. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/accessories.py +0 -0
  395. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/ai/__init__.py +0 -0
  396. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  397. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  398. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  399. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/code.py +0 -0
  400. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/files/ascii_art.py +0 -0
  401. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/files/dbms.py +0 -0
  402. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/files/headers.py +0 -0
  403. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  404. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  405. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/files/read.py +0 -0
  406. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/installer.py +0 -0
  407. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  408. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  409. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  410. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  411. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  412. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/io.py +0 -0
  413. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/links.py +0 -0
  414. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/meta.py +0 -0
  415. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/notifications.py +0 -0
  416. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/options.py +0 -0
  417. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/path_extended.py +0 -0
  418. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/path_helper.py +0 -0
  419. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/procs.py +0 -0
  420. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/scheduler.py +0 -0
  421. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/scheduling.py +0 -0
  422. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  423. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  424. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  425. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  426. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/source_of_truth.py +0 -0
  427. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  428. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/terminal.py +0 -0
  429. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/upgrade_packages.py +0 -0
  430. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig/utils/ve.py +0 -0
  431. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  432. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig.egg-info/entry_points.txt +0 -0
  433. {machineconfig-5.81 → machineconfig-5.83}/src/machineconfig.egg-info/requires.txt +0 -0
  434. {machineconfig-5.81 → machineconfig-5.83}/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: 5.81
3
+ Version: 5.83
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 = "5.81"
9
+ version = "5.83"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -83,6 +83,27 @@ def ssh_debug_linux() -> dict[str, dict[str, str | bool]]:
83
83
  results["ssh_service"] = {"status": "warning", "message": "systemctl not found, cannot check service status", "action": "Check SSH service manually"}
84
84
  console.print(Panel("⚠️ systemctl not found\n💡 Check SSH service status manually", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
85
85
 
86
+ console.print(Panel("🌐 Checking network interfaces and IP addresses...", title="[bold blue]Network Interfaces[/bold blue]", border_style="blue"))
87
+
88
+ try:
89
+ ip_addr_check = subprocess.run(["ip", "addr", "show"], capture_output=True, text=True, check=False)
90
+ if ip_addr_check.returncode == 0:
91
+ ip_output = ip_addr_check.stdout
92
+ import re
93
+ inet_pattern = re.compile(r'inet\s+(\d+\.\d+\.\d+\.\d+)/\d+.*scope\s+global')
94
+ ip_addresses = inet_pattern.findall(ip_output)
95
+
96
+ if ip_addresses:
97
+ results["network_interfaces"] = {"status": "ok", "message": f"Found {len(ip_addresses)} network interface(s)", "action": ""}
98
+ console.print(Panel("✅ Network interfaces found:\n" + "\n".join([f" • {ip}" for ip in ip_addresses]), title="[bold green]IP Addresses[/bold green]", border_style="green"))
99
+ else:
100
+ results["network_interfaces"] = {"status": "warning", "message": "No global IP addresses found", "action": "Check network configuration"}
101
+ issues_found.append("No network IP addresses")
102
+ console.print(Panel("⚠️ No global IP addresses found\n💡 This machine may not be reachable on the network\n💡 Check: ip addr show", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
103
+ except FileNotFoundError:
104
+ results["network_interfaces"] = {"status": "warning", "message": "ip command not found", "action": "Check network manually"}
105
+ console.print(Panel("⚠️ 'ip' command not found\n💡 Try: ifconfig", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
106
+
86
107
  console.print(Panel("🔌 Checking SSH port and listening status...", title="[bold blue]Network Status[/bold blue]", border_style="blue"))
87
108
 
88
109
  sshd_config_paths = [PathExtended("/etc/ssh/sshd_config"), PathExtended("/etc/sshd_config")]
@@ -129,8 +150,20 @@ def ssh_debug_linux() -> dict[str, dict[str, str | bool]]:
129
150
  if listening_check.returncode == 0:
130
151
  listening_output = listening_check.stdout
131
152
  if f":{ssh_port}" in listening_output:
132
- results["ssh_listening"] = {"status": "ok", "message": f"SSH is listening on port {ssh_port}", "action": ""}
133
- console.print(Panel(f" SSH is listening on port {ssh_port}", title="[bold green]OK[/bold green]", border_style="green"))
153
+ ssh_lines = [line for line in listening_output.split("\n") if f":{ssh_port}" in line]
154
+ listening_on_all = any("0.0.0.0" in line or "[::]" in line for line in ssh_lines)
155
+ listening_on_localhost_only = all("127.0.0.1" in line or "[::1]" in line for line in ssh_lines)
156
+
157
+ if listening_on_localhost_only:
158
+ results["ssh_listening"] = {"status": "error", "message": f"SSH is listening ONLY on localhost (127.0.0.1:{ssh_port}), not accessible from network", "action": "Edit /etc/ssh/sshd_config, check ListenAddress, restart SSH"}
159
+ issues_found.append("SSH listening only on localhost")
160
+ console.print(Panel(f"❌ SSH is listening ONLY on localhost (127.0.0.1:{ssh_port})\n💡 This prevents external connections!\n💡 Check /etc/ssh/sshd_config for 'ListenAddress'\n💡 Remove or comment out 'ListenAddress 127.0.0.1'\n💡 Or change to 'ListenAddress 0.0.0.0'\n💡 Then: sudo systemctl restart ssh", title="[bold red]Critical Issue[/bold red]", border_style="red"))
161
+ elif listening_on_all:
162
+ results["ssh_listening"] = {"status": "ok", "message": f"SSH is listening on all interfaces (0.0.0.0:{ssh_port})", "action": ""}
163
+ console.print(Panel(f"✅ SSH is listening on all interfaces (0.0.0.0:{ssh_port})\n✅ Should be accessible from network", title="[bold green]OK[/bold green]", border_style="green"))
164
+ else:
165
+ results["ssh_listening"] = {"status": "ok", "message": f"SSH is listening on port {ssh_port}", "action": ""}
166
+ console.print(Panel(f"✅ SSH is listening on port {ssh_port}\n\nListening on:\n" + "\n".join([f" {line.strip()}" for line in ssh_lines[:3]]), title="[bold green]OK[/bold green]", border_style="green"))
134
167
  else:
135
168
  results["ssh_listening"] = {"status": "error", "message": f"SSH is NOT listening on port {ssh_port}", "action": "Check if SSH service is running and configured correctly"}
136
169
  issues_found.append(f"SSH not listening on port {ssh_port}")
@@ -206,7 +239,9 @@ def ssh_debug_linux() -> dict[str, dict[str, str | bool]]:
206
239
  hosts_deny = PathExtended("/etc/hosts.deny")
207
240
  if hosts_deny.exists():
208
241
  hosts_deny_content = hosts_deny.read_text(encoding="utf-8")
209
- if "sshd" in hosts_deny_content.lower() or "all" in hosts_deny_content.lower():
242
+ active_lines = [line.strip() for line in hosts_deny_content.splitlines() if line.strip() and not line.strip().startswith("#")]
243
+ active_content_lower = " ".join(active_lines).lower()
244
+ if "sshd" in active_content_lower or "all" in active_content_lower:
210
245
  results["hosts_deny"] = {"status": "error", "message": "/etc/hosts.deny may be blocking SSH connections", "action": "Review /etc/hosts.deny and remove SSH blocks"}
211
246
  issues_found.append("/etc/hosts.deny blocking SSH")
212
247
  console.print(Panel("❌ /etc/hosts.deny may be blocking SSH\n💡 Check: cat /etc/hosts.deny\n💡 Remove any lines blocking 'sshd' or 'ALL'", title="[bold red]Critical Issue[/bold red]", border_style="red"))
@@ -285,6 +320,30 @@ def ssh_debug_linux() -> dict[str, dict[str, str | bool]]:
285
320
  results["ssh_logs"] = {"status": "warning", "message": "SSH log files not found", "action": "Check journalctl: sudo journalctl -u ssh"}
286
321
  console.print(Panel("⚠️ SSH log files not found\n💡 Check: sudo journalctl -u ssh -n 50", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
287
322
 
323
+ console.print(Panel("🧪 Testing local SSH connection...", title="[bold blue]Connection Test[/bold blue]", border_style="blue"))
324
+
325
+ try:
326
+ local_user = os.environ.get("USER", os.environ.get("USERNAME", "unknown"))
327
+ ssh_test = subprocess.run(["ssh", "-o", "ConnectTimeout=5", "-o", "StrictHostKeyChecking=no", "-o", "BatchMode=yes", f"{local_user}@localhost", "echo", "test"], capture_output=True, text=True, check=False, timeout=10)
328
+
329
+ if ssh_test.returncode == 0:
330
+ results["local_ssh_test"] = {"status": "ok", "message": "Local SSH connection successful", "action": ""}
331
+ console.print(Panel("✅ Local SSH connection works\n✅ SSH server is functional", title="[bold green]OK[/bold green]", border_style="green"))
332
+ else:
333
+ error_output = ssh_test.stderr
334
+ results["local_ssh_test"] = {"status": "warning", "message": f"Local SSH test failed: {error_output[:100]}", "action": "Check SSH keys and configuration"}
335
+ console.print(Panel(f"⚠️ Local SSH test failed\n💡 Error: {error_output[:200]}\n💡 This may be normal if key authentication is not set up for localhost", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
336
+ except subprocess.TimeoutExpired:
337
+ results["local_ssh_test"] = {"status": "error", "message": "Local SSH connection timed out", "action": "SSH may be hanging or not responding"}
338
+ issues_found.append("SSH connection timeout")
339
+ console.print(Panel("❌ Local SSH connection timed out\n💡 SSH server may not be responding\n💡 Check: sudo systemctl status ssh", title="[bold red]Critical Issue[/bold red]", border_style="red"))
340
+ except FileNotFoundError:
341
+ results["local_ssh_test"] = {"status": "warning", "message": "ssh client not found", "action": "Install SSH client"}
342
+ console.print(Panel("⚠️ SSH client not installed\n💡 Install: sudo apt install openssh-client", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
343
+ except Exception as test_error:
344
+ results["local_ssh_test"] = {"status": "warning", "message": f"Could not test SSH: {str(test_error)}", "action": ""}
345
+ console.print(Panel(f"⚠️ Could not test SSH connection: {str(test_error)}", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
346
+
288
347
  console.print(Panel("📊 DIAGNOSTIC SUMMARY", box=box.DOUBLE_EDGE, title_align="left"))
289
348
 
290
349
  if issues_found:
@@ -292,6 +351,39 @@ def ssh_debug_linux() -> dict[str, dict[str, str | bool]]:
292
351
  else:
293
352
  console.print(Panel("✅ No critical issues detected\n\nIf you still cannot connect:\n• Check client-side configuration\n• Verify network connectivity\n• Ensure correct username and hostname\n• Check if public key is correctly added to authorized_keys", title="[bold green]All Checks Passed[/bold green]", border_style="green"))
294
353
 
354
+ console.print(Panel("🔗 CONNECTION INFORMATION", box=box.DOUBLE_EDGE, title_align="left"))
355
+
356
+ try:
357
+ current_user = os.environ.get("USER", os.environ.get("USERNAME", "unknown"))
358
+ hostname_result = subprocess.run(["hostname"], capture_output=True, text=True, check=False)
359
+ hostname = hostname_result.stdout.strip() if hostname_result.returncode == 0 else "unknown"
360
+
361
+ ip_addr_result = subprocess.run(["ip", "addr", "show"], capture_output=True, text=True, check=False)
362
+ connection_ips: list[str] = []
363
+ if ip_addr_result.returncode == 0:
364
+ import re
365
+ inet_pattern = re.compile(r'inet\s+(\d+\.\d+\.\d+\.\d+)/\d+.*scope\s+global')
366
+ connection_ips = inet_pattern.findall(ip_addr_result.stdout)
367
+
368
+ connection_info = f"👤 Username: {current_user}\n🖥️ Hostname: {hostname}\n🔌 SSH Port: {ssh_port}\n"
369
+
370
+ if connection_ips:
371
+ connection_info += "\n🌐 This machine can be accessed via SSH from other machines on the same network using:\n\n"
372
+ for ip in connection_ips:
373
+ connection_info += f" ssh {current_user}@{ip}\n"
374
+ if ssh_port != "22":
375
+ connection_info += f"\n (Port {ssh_port} should be used: ssh -p {ssh_port} {current_user}@<IP>)\n"
376
+ else:
377
+ connection_info += "\n⚠️ No network IP addresses found - this machine may not be reachable from the network"
378
+
379
+ connection_info += "\n\n💡 From another machine on the same network, use one of the commands above"
380
+ connection_info += "\n💡 Ensure your public key is in ~/.ssh/authorized_keys on this machine"
381
+ connection_info += "\n💡 Or use password authentication if enabled in sshd_config"
382
+
383
+ console.print(Panel(connection_info, title="[bold cyan]SSH Connection Details[/bold cyan]", border_style="cyan"))
384
+ except Exception as conn_error:
385
+ console.print(Panel(f"⚠️ Could not gather connection information: {str(conn_error)}", title="[bold yellow]Connection Info[/bold yellow]", border_style="yellow"))
386
+
295
387
  return results
296
388
 
297
389
 
@@ -1,4 +1,4 @@
1
- from typing import Optional, Any, Union
1
+ from typing import Callable, Optional, Any, Union
2
2
  import os
3
3
  from pathlib import Path
4
4
  import rich.console
@@ -6,7 +6,7 @@ from machineconfig.utils.terminal import Response, MACHINE
6
6
  from machineconfig.utils.accessories import pprint
7
7
 
8
8
  UV_RUN_CMD = "$HOME/.local/bin/uv run"
9
- MACHINECONFIG_VERSION = """ "machineconfig>=5.74" """
9
+ MACHINECONFIG_VERSION = "machineconfig>=5.74"
10
10
  DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
11
11
 
12
12
 
@@ -186,15 +186,32 @@ class SSH:
186
186
  res.capture().print_if_unsuccessful(desc=description, strict_err=strict_stderr, strict_returncode=strict_return_code, assert_success=False)
187
187
  self.terminal_responses.append(res)
188
188
  return res
189
- def run_py(self, python_code: str, description: str, verbose_output: bool, strict_stderr: bool, strict_return_code: bool) -> Response:
189
+ def run_py(self, python_code: str, dependencies: list[str], venv_path: Optional[str],
190
+ description: str, verbose_output: bool, strict_stderr: bool, strict_return_code: bool) -> Response:
190
191
  from machineconfig.utils.accessories import randstr
191
192
  cmd_path = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/runpy_{randstr()}.py")
192
193
  cmd_path.parent.mkdir(parents=True, exist_ok=True)
193
194
  cmd_path.write_text(python_code, encoding="utf-8")
194
195
  self.copy_from_here(source_path=cmd_path, target_path=None, compress_with_zip=False, recursive=False, overwrite_existing=False)
195
- uv_cmd = f"""{UV_RUN_CMD} --with {MACHINECONFIG_VERSION} python {cmd_path.relative_to(Path.home())}"""
196
+ if len(dependencies) > 0:
197
+ with_clause = " --with " + '"', ",".join(dependencies) + '"'
198
+ else:
199
+ with_clause = ""
200
+ uv_cmd = f"""{UV_RUN_CMD} {with_clause} python {cmd_path.relative_to(Path.home())}"""
201
+ if venv_path is not None:
202
+ if self.get_remote_machine() == "Windows":
203
+ venv_export = f"$env:UV_PROJECT_ENVIRONMENT='{venv_path}';"
204
+ uv_cmd = venv_export + uv_cmd
205
+ else:
206
+ venv_export = f"UV_PROJECT_ENVIRONMENT={venv_path}"
207
+ uv_cmd = venv_export + " " + uv_cmd
196
208
  return self.run_shell(command=uv_cmd, verbose_output=verbose_output, description=description or f"run_py on {self.get_remote_repr(add_machine=False)}", strict_stderr=strict_stderr, strict_return_code=strict_return_code)
197
209
 
210
+ def run_py_func(self, func: Callable[..., Any], dependencies: list[str], venv_path: Optional[str]) -> Response:
211
+ from machineconfig.utils.meta import function_to_script
212
+ command = function_to_script(func=func, call_with_kwargs={})
213
+ return self.run_py(python_code=command, dependencies=dependencies, venv_path=venv_path, description=f"run_py_func {func.__name__} on {self.get_remote_repr(add_machine=False)}", verbose_output=True, strict_stderr=True, strict_return_code=True)
214
+
198
215
  def _simple_sftp_get(self, remote_path: str, local_path: Path) -> None:
199
216
  """Simple SFTP get without any recursion or path expansion - for internal use only."""
200
217
  if self.sftp is None:
@@ -225,7 +242,7 @@ class SSH:
225
242
  from machineconfig.utils.accessories import randstr
226
243
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
227
244
  command = function_to_script(func=create_target_dir, call_with_kwargs={"target_dir_path": Path(target_path).as_posix(), "overwrite": overwrite_existing, "json_output_path": remote_json_output})
228
- response = self.run_py(python_code=command, description=f"Creating target directory `{Path(target_path).parent.as_posix()}` @ {self.get_remote_repr(add_machine=False)}", verbose_output=False, strict_stderr=False, strict_return_code=False)
245
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description=f"Creating target directory `{Path(target_path).parent.as_posix()}` @ {self.get_remote_repr(add_machine=False)}", verbose_output=False, strict_stderr=False, strict_return_code=False)
229
246
  remote_json_path = response.op.strip()
230
247
  if not remote_json_path:
231
248
  raise RuntimeError(f"Failed to create target directory {target_path} - no response from remote")
@@ -308,7 +325,7 @@ class SSH:
308
325
  archive_path.unlink()
309
326
  from machineconfig.utils.meta import function_to_script
310
327
  command = function_to_script(func=unzip_archive, call_with_kwargs={"zip_file_path": remotepath.as_posix(), "overwrite_flag": overwrite_existing})
311
- _resp = self.run_py(python_code=command, description=f"UNZIPPING {remotepath.as_posix()}", verbose_output=False, strict_stderr=True, strict_return_code=True)
328
+ _resp = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description=f"UNZIPPING {remotepath.as_posix()}", verbose_output=False, strict_stderr=True, strict_return_code=True)
312
329
  source_obj.unlink()
313
330
  print("\n")
314
331
  return source_obj
@@ -329,7 +346,7 @@ class SSH:
329
346
  from machineconfig.utils.accessories import randstr
330
347
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
331
348
  command = function_to_script(func=check_is_dir, call_with_kwargs={"path_to_check": str(source_path), "json_output_path": remote_json_output})
332
- response = self.run_py(python_code=command, description=f"Check if source `{source_path}` is a dir", verbose_output=False, strict_stderr=False, strict_return_code=False)
349
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description=f"Check if source `{source_path}` is a dir", verbose_output=False, strict_stderr=False, strict_return_code=False)
333
350
  remote_json_path = response.op.strip()
334
351
  if not remote_json_path:
335
352
  raise RuntimeError(f"Failed to check if {source_path} is directory - no response from remote")
@@ -363,7 +380,7 @@ class SSH:
363
380
  from machineconfig.utils.accessories import randstr
364
381
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
365
382
  command = function_to_script(func=expand_source, call_with_kwargs={"path_to_expand": str(source_path), "json_output_path": remote_json_output})
366
- response = self.run_py(python_code=command, description="Resolving source path by expanding user", verbose_output=False, strict_stderr=False, strict_return_code=False)
383
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description="Resolving source path by expanding user", verbose_output=False, strict_stderr=False, strict_return_code=False)
367
384
  remote_json_path = response.op.strip()
368
385
  if not remote_json_path:
369
386
  raise RuntimeError(f"Could not resolve source path {source_path} - no response from remote")
@@ -412,7 +429,7 @@ class SSH:
412
429
  from machineconfig.utils.accessories import randstr
413
430
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
414
431
  command = function_to_script(func=search_files, call_with_kwargs={"directory_path": expanded_source, "json_output_path": remote_json_output})
415
- response = self.run_py(python_code=command, description="Searching for files in source", verbose_output=False, strict_stderr=False, strict_return_code=False)
432
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description="Searching for files in source", verbose_output=False, strict_stderr=False, strict_return_code=False)
416
433
  remote_json_path = response.op.strip()
417
434
  if not remote_json_path:
418
435
  raise RuntimeError(f"Could not resolve source path {source} - no response from remote")
@@ -450,7 +467,7 @@ class SSH:
450
467
  from machineconfig.utils.accessories import randstr
451
468
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
452
469
  command = function_to_script(func=collapse_to_home_dir, call_with_kwargs={"absolute_path": expanded_source, "json_output_path": remote_json_output})
453
- response = self.run_py(python_code=command, description="Finding default target via relative source path", verbose_output=False, strict_stderr=False, strict_return_code=False)
470
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description="Finding default target via relative source path", verbose_output=False, strict_stderr=False, strict_return_code=False)
454
471
  remote_json_path_dir = response.op.strip()
455
472
  if not remote_json_path_dir:
456
473
  raise RuntimeError("Could not resolve target path - no response from remote")
@@ -502,7 +519,7 @@ class SSH:
502
519
  from machineconfig.utils.accessories import randstr
503
520
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
504
521
  command = function_to_script(func=zip_source, call_with_kwargs={"path_to_zip": expanded_source, "json_output_path": remote_json_output})
505
- response = self.run_py(python_code=command, description=f"Zipping source file {source}", verbose_output=False, strict_stderr=False, strict_return_code=False)
522
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description=f"Zipping source file {source}", verbose_output=False, strict_stderr=False, strict_return_code=False)
506
523
  remote_json_path = response.op.strip()
507
524
  if not remote_json_path:
508
525
  raise RuntimeError(f"Could not zip {source} - no response from remote")
@@ -541,7 +558,7 @@ class SSH:
541
558
  from machineconfig.utils.accessories import randstr
542
559
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
543
560
  command = function_to_script(func=collapse_to_home, call_with_kwargs={"absolute_path": expanded_source, "json_output_path": remote_json_output})
544
- response = self.run_py(python_code=command, description="Finding default target via relative source path", verbose_output=False, strict_stderr=False, strict_return_code=False)
561
+ response = self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description="Finding default target via relative source path", verbose_output=False, strict_stderr=False, strict_return_code=False)
545
562
  remote_json_path = response.op.strip()
546
563
  if not remote_json_path:
547
564
  raise RuntimeError("Could not resolve target path - no response from remote")
@@ -597,7 +614,7 @@ class SSH:
597
614
 
598
615
  from machineconfig.utils.meta import function_to_script
599
616
  command = function_to_script(func=delete_temp_zip, call_with_kwargs={"path_to_delete": expanded_source})
600
- self.run_py(python_code=command, description="Cleaning temp zip files @ remote.", verbose_output=False, strict_stderr=True, strict_return_code=True)
617
+ self.run_py(python_code=command, dependencies=[MACHINECONFIG_VERSION], venv_path=None, description="Cleaning temp zip files @ remote.", verbose_output=False, strict_stderr=True, strict_return_code=True)
601
618
 
602
619
  print("\n")
603
620
  return target_obj
@@ -0,0 +1,20 @@
1
+ from typing import Callable, ParamSpec, TypeVar, Any, Dict
2
+
3
+ P = ParamSpec('P')
4
+ R = TypeVar('R')
5
+
6
+ def typed_function(func: Callable[P, R], signature_dict: Dict[str, Any]) -> Callable[P, R]:
7
+ """
8
+ Returns the function with its signature preserved using ParamSpec.
9
+
10
+ The signature_dict is passed for potential future use or documentation,
11
+ but is not currently used in the implementation.
12
+
13
+ Args:
14
+ func: The function whose signature is to be preserved.
15
+ signature_dict: A dictionary describing the function's signature (not used).
16
+
17
+ Returns:
18
+ The original function, typed with ParamSpec to preserve its signature.
19
+ """
20
+ return func
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.81
3
+ Version: 5.83
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -407,6 +407,7 @@ src/machineconfig/utils/scheduling.py
407
407
  src/machineconfig/utils/source_of_truth.py
408
408
  src/machineconfig/utils/ssh.py
409
409
  src/machineconfig/utils/terminal.py
410
+ src/machineconfig/utils/tst.py
410
411
  src/machineconfig/utils/upgrade_packages.py
411
412
  src/machineconfig/utils/ve.py
412
413
  src/machineconfig/utils/ai/__init__.py
File without changes
File without changes
File without changes