machineconfig 6.83__tar.gz → 6.85__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 (455) hide show
  1. {machineconfig-6.83/src/machineconfig.egg-info → machineconfig-6.85}/PKG-INFO +1 -1
  2. {machineconfig-6.83 → machineconfig-6.85}/pyproject.toml +2 -1
  3. machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_local.py +226 -0
  4. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +33 -174
  5. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +39 -197
  6. machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  7. machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  8. machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  9. machineconfig-6.85/src/machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  10. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/mcfgs +1 -1
  11. machineconfig-6.85/src/machineconfig/scripts/linux/term +39 -0
  12. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/vscode_tasks.py +7 -2
  13. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  14. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/fire_jobs.py +30 -65
  15. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
  16. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_nw.py +50 -0
  17. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
  18. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_utils.py +1 -1
  19. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/helpers4.py +15 -0
  20. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
  21. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nfs +1 -1
  22. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/wifi_conn.py +1 -53
  23. machineconfig-6.85/src/machineconfig/scripts/python/terminal.py +110 -0
  24. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/utils.py +2 -0
  25. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  26. machineconfig-6.85/src/machineconfig/scripts/windows/term.ps1 +48 -0
  27. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/bash/init.sh +2 -0
  28. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/pwsh/init.ps1 +1 -0
  29. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +2 -1
  30. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +2 -1
  31. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/code.py +21 -14
  32. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer.py +0 -1
  33. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/options.py +12 -2
  34. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/path_helper.py +1 -1
  35. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/scheduling.py +0 -2
  36. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ssh.py +2 -2
  37. {machineconfig-6.83 → machineconfig-6.85/src/machineconfig.egg-info}/PKG-INFO +1 -1
  38. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/SOURCES.txt +7 -3
  39. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/entry_points.txt +1 -0
  40. machineconfig-6.83/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -431
  41. machineconfig-6.83/src/machineconfig/scripts/linux/other/share_smb +0 -1
  42. machineconfig-6.83/src/machineconfig/scripts/linux/warp-cli.sh +0 -122
  43. machineconfig-6.83/src/machineconfig/scripts/linux/z_ls +0 -104
  44. {machineconfig-6.83 → machineconfig-6.85}/MANIFEST.in +0 -0
  45. {machineconfig-6.83 → machineconfig-6.85}/README.md +0 -0
  46. {machineconfig-6.83 → machineconfig-6.85}/setup.cfg +0 -0
  47. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/__init__.py +0 -0
  48. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/__init__.py +0 -0
  49. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
  50. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
  51. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/distribute.py +0 -0
  52. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/file_manager.py +0 -0
  53. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/job_params.py +0 -0
  54. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
  55. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
  56. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
  57. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
  58. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/run_remote.py +0 -0
  59. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/script_execution.py +0 -0
  60. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
  61. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
  62. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
  63. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
  64. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
  65. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/utils/maker.py +0 -0
  66. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
  67. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
  68. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
  69. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
  70. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
  71. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
  72. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
  73. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
  74. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
  75. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
  76. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
  77. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
  78. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
  79. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
  80. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
  81. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
  82. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
  83. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +0 -0
  84. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +0 -0
  85. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +0 -0
  86. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +0 -0
  87. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/templates/__init__.py +0 -0
  88. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
  89. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/__init__.py +0 -0
  90. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/__init__.py +0 -0
  91. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/check_installations.py +0 -0
  92. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom/boxes.py +0 -0
  93. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
  94. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
  95. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
  96. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
  97. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
  98. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
  99. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
  100. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
  101. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +0 -0
  102. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
  103. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
  104. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
  105. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
  106. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
  107. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
  108. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
  109. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
  110. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/installer_data.json +0 -0
  111. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
  112. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
  113. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
  114. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
  115. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/lid.sh +0 -0
  116. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
  117. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/network.sh +0 -0
  118. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
  119. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
  120. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
  121. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
  122. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
  123. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
  124. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
  125. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
  126. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/package_groups.py +0 -0
  127. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -0
  128. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
  129. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -0
  130. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -0
  131. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/logger.py +0 -0
  132. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/__init__.py +0 -0
  133. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/backup.toml +0 -0
  134. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/bash_shell_profiles.md +0 -0
  135. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_helper.py +0 -0
  136. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_links.py +0 -0
  137. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_links_export.py +0 -0
  138. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/create_shell_profile.py +0 -0
  139. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/mapper.toml +0 -0
  140. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/generic/shares.toml +0 -0
  141. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
  142. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
  143. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
  144. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
  145. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +0 -0
  146. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/__init__.py +0 -0
  147. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzf2g +0 -0
  148. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzfag +0 -0
  149. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzffg +0 -0
  150. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzfg +0 -0
  151. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/fzfrga +0 -0
  152. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/share_cloud.sh +0 -0
  153. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/share_nfs +0 -0
  154. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/start_docker +0 -0
  155. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/other/switch_ip +0 -0
  156. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/linux/skrg +0 -0
  157. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/__init__.py +0 -0
  158. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/agents.py +0 -0
  159. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
  160. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/command_runner/command_runner.sh +0 -0
  161. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -0
  162. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
  163. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/initai.py +0 -0
  164. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
  165. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
  166. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  167. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
  168. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
  169. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
  170. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
  171. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  172. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
  173. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  174. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  175. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
  176. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  177. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  178. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
  179. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
  180. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
  181. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  182. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
  183. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
  184. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
  185. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  186. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
  187. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  188. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/cloud.py +0 -0
  189. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/croshell.py +0 -0
  190. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/devops.py +0 -0
  191. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/devops_navigator.py +0 -0
  192. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/env_manager/__init__.py +0 -0
  193. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/env_manager/path_manager_backend.py +0 -0
  194. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/ftpx.py +0 -0
  195. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/__init__.py +0 -0
  196. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_copy.py +0 -0
  197. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +0 -0
  198. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_mount.py +0 -0
  199. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/cloud_sync.py +0 -0
  200. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/helpers2.py +0 -0
  201. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_cloud/helpers5.py +0 -0
  202. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/__init__.py +0 -0
  203. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/crosh.py +0 -0
  204. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/pomodoro.py +0 -0
  205. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/scheduler.py +0 -0
  206. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/start_slidev.py +0 -0
  207. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/viewer.py +0 -0
  208. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_croshell/viewer_template.py +0 -0
  209. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/__init__.py +0 -0
  210. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -0
  211. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_data.py +0 -0
  212. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -0
  213. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -0
  214. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/cli_terminal.py +0 -0
  215. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -0
  216. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/devops_status.py +0 -0
  217. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/devops_update_repos.py +0 -0
  218. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/__init__.py +0 -0
  219. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
  220. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -0
  221. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
  222. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +0 -0
  223. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
  224. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py +0 -0
  225. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json +0 -0
  226. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -0
  227. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_cursor_agents.py +0 -0
  228. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -0
  229. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -0
  230. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +0 -0
  231. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py +0 -0
  232. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -0
  233. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py +0 -0
  234. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/prompt.txt +0 -0
  235. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
  236. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire/template.sh +0 -0
  237. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  238. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/cloud_manager.py +0 -0
  239. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  240. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  241. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  242. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/__init__.py +0 -0
  243. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/command_builder.py +0 -0
  244. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -0
  245. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -0
  246. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/data_models.py +0 -0
  247. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/main_app.py +0 -0
  248. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_navigator/search_bar.py +0 -0
  249. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/action.py +0 -0
  250. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/action_helper.py +0 -0
  251. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/clone.py +0 -0
  252. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/count_lines.py +0 -0
  253. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -0
  254. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -0
  255. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/grource.py +0 -0
  256. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/record.py +0 -0
  257. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -0
  258. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/sync.py +0 -0
  259. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_repos/update.py +0 -0
  260. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
  261. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +0 -0
  262. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/interactive.py +0 -0
  263. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/mcfg.py +0 -0
  264. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/__init__.py +0 -0
  265. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/add_ssh_key.py +0 -0
  266. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/devops_add_identity.py +0 -0
  267. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -0
  268. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_drive +0 -0
  269. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nfs.py +0 -0
  270. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nw_drive +0 -0
  271. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_nw_drive.py +0 -0
  272. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_smb +0 -0
  273. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/mount_ssh.py +0 -0
  274. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/onetimeshare.py +0 -0
  275. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -0
  276. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -0
  277. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -0
  278. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/python/sessions.py +0 -0
  279. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
  280. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
  281. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
  282. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mcfgs.ps1 +0 -0
  283. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_nfs.ps1 +0 -0
  284. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_nw.ps1 +0 -0
  285. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/mount_smb.ps1 +0 -0
  286. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/share_cloud.cmd +0 -0
  287. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/share_smb.ps1 +0 -0
  288. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1 +0 -0
  289. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/__init__.py +0 -0
  290. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/broot/br.sh +0 -0
  291. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
  292. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/broot/conf.toml +0 -0
  293. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/glow/glow.yml +0 -0
  294. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  295. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/helix/config.toml +0 -0
  296. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/helix/languages.toml +0 -0
  297. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keras/keras.json +0 -0
  298. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
  299. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
  300. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  301. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  302. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  303. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  304. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  305. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  306. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  307. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  308. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/colors +0 -0
  309. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
  310. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
  311. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  312. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
  313. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
  314. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
  315. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/icons +0 -0
  316. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/linux/lfrc +0 -0
  317. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  318. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  319. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  320. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  321. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  322. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  323. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  324. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
  325. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
  326. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  327. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/colors +0 -0
  328. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
  329. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/icons +0 -0
  330. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  331. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
  332. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/lfrc +0 -0
  333. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
  334. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
  335. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
  336. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
  337. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.flake8 +0 -0
  338. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.mypy.ini +0 -0
  339. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.pylintrc +0 -0
  340. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/linters/.ruff.toml +0 -0
  341. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
  342. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
  343. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
  344. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  345. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/marimo/marimo.toml +0 -0
  346. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
  347. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/mprocs/windows/other +0 -0
  348. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/pistol/pistol.conf +0 -0
  349. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/presenterm/config.yaml +0 -0
  350. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/procs/.procs.toml +0 -0
  351. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
  352. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/rofi/config.rasi +0 -0
  353. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
  354. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
  355. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  356. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
  357. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  358. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  359. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  360. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
  361. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
  362. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
  363. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  364. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
  365. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
  366. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
  367. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/wt/settings.json +0 -0
  368. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/shells/zsh/init.sh +0 -0
  369. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/streamlit/config.toml +0 -0
  370. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/svim/linux/init.toml +0 -0
  371. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/svim/windows/init.toml +0 -0
  372. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
  373. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tere/terecd.sh +0 -0
  374. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
  375. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
  376. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/wsl/.wslconfig +0 -0
  377. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/yazi/keymap.toml +0 -0
  378. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/yazi/theme.toml +0 -0
  379. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/yazi/yazi.toml +0 -0
  380. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zed/settings.json +0 -0
  381. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/commands/monitor +0 -0
  382. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
  383. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/config.kdl +0 -0
  384. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
  385. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/hist +0 -0
  386. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
  387. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
  388. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
  389. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
  390. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/__init__.py +0 -0
  391. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/apps.sh +0 -0
  392. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/apps_desktop.sh +0 -0
  393. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/apps_gui.sh +0 -0
  394. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/others/android.sh +0 -0
  395. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/others/cli_installation.sh +0 -0
  396. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
  397. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/ssh/openssh_all.sh +0 -0
  398. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -0
  399. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_linux/uv.sh +0 -0
  400. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/__init__.py +0 -0
  401. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/apps.sh +0 -0
  402. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/ssh/openssh_setup.sh +0 -0
  403. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_mac/uv.sh +0 -0
  404. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/__init__.py +0 -0
  405. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/apps.ps1 +0 -0
  406. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
  407. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
  408. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/others/power_options.ps1 +0 -0
  409. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -0
  410. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/ssh/add_identity.ps1 +0 -0
  411. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -0
  412. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/uv.ps1 +0 -0
  413. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
  414. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
  415. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/__init__.py +0 -0
  416. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/accessories.py +0 -0
  417. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ai/__init__.py +0 -0
  418. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/cloud/onedrive/README.md +0 -0
  419. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
  420. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
  421. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/fat_croco.txt +0 -0
  422. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/halfwit_croco.txt +0 -0
  423. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/happy_croco.txt +0 -0
  424. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/art/water_croco.txt +0 -0
  425. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/ascii_art.py +0 -0
  426. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/dbms.py +0 -0
  427. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/headers.py +0 -0
  428. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/ouch/__init__.py +0 -0
  429. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/ouch/decompress.py +0 -0
  430. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/files/read.py +0 -0
  431. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
  432. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
  433. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/installer.py +0 -0
  434. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
  435. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
  436. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/io.py +0 -0
  437. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/links.py +0 -0
  438. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/meta.py +0 -0
  439. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/notifications.py +0 -0
  440. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/path_extended.py +0 -0
  441. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/procs.py +0 -0
  442. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/scheduler.py +0 -0
  443. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  444. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
  445. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
  446. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
  447. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/source_of_truth.py +0 -0
  448. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ssh_utils/utils.py +0 -0
  449. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/terminal.py +0 -0
  450. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/tst.py +0 -0
  451. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/upgrade_packages.py +0 -0
  452. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig/utils/ve.py +0 -0
  453. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/dependency_links.txt +0 -0
  454. {machineconfig-6.83 → machineconfig-6.85}/src/machineconfig.egg-info/requires.txt +0 -0
  455. {machineconfig-6.83 → machineconfig-6.85}/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: 6.83
3
+ Version: 6.85
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 = "6.83"
9
+ version = "6.85"
10
10
  description = "Dotfiles management package"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -70,6 +70,7 @@ croshell = "machineconfig.scripts.python.croshell:main"
70
70
  ftpx = "machineconfig.scripts.python.ftpx:main"
71
71
  utils = "machineconfig.scripts.python.utils:main"
72
72
  mcfg = "machineconfig.scripts.python.mcfg:main"
73
+ terminal = "machineconfig.scripts.python.terminal:main"
73
74
 
74
75
  [tool.setuptools]
75
76
  package-dir = {"" = "src"}
@@ -0,0 +1,226 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Windows Terminal local layout generator and session manager.
4
+ Equivalent to zellij_local.py but for Windows Terminal.
5
+
6
+ https://github.com/ruby9455/app_management/tree/main/app_management
7
+
8
+ """
9
+
10
+ import subprocess
11
+ import platform
12
+ from typing import Optional, Any
13
+ from pathlib import Path
14
+ import logging
15
+
16
+ from rich.console import Console
17
+ from rich.panel import Panel
18
+ from rich.table import Table
19
+
20
+ from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
21
+ from machineconfig.cluster.sessions_managers.wt_utils.wt_helpers import (
22
+ generate_random_suffix,
23
+ # escape_for_wt,
24
+ validate_layout_config,
25
+ generate_wt_command_string,
26
+ check_wt_session_status,
27
+ check_command_status,
28
+ )
29
+
30
+ logging.basicConfig(level=logging.INFO)
31
+ logger = logging.getLogger(__name__)
32
+ console = Console()
33
+
34
+ # Check if we're on Windows
35
+ IS_WINDOWS = platform.system().lower() == "windows"
36
+ POWERSHELL_CMD = "powershell" if IS_WINDOWS else "pwsh" # Use pwsh on non-Windows systems
37
+ TMP_LAYOUT_DIR = Path.home() / "tmp_results" / "wt_layouts"
38
+
39
+
40
+ class WTLayoutGenerator:
41
+ def __init__(self, layout_config: LayoutConfig, session_name: str):
42
+ self.session_name: str = session_name
43
+ self.layout_config: LayoutConfig = layout_config.copy()
44
+ self.script_path: Optional[str] = None
45
+
46
+ def create_layout_file(self) -> bool:
47
+ """Create Windows Terminal layout file and return success status."""
48
+ validate_layout_config(self.layout_config)
49
+ tab_count = len(self.layout_config['layoutTabs'])
50
+ layout_name = self.layout_config['layoutName']
51
+ console.print(f"[bold cyan]📋 Creating Windows Terminal layout[/bold cyan] [bright_green]'{layout_name}' with {tab_count} tabs[/bright_green]")
52
+
53
+ for tab in self.layout_config['layoutTabs']:
54
+ console.print(f" [yellow]→[/yellow] [bold]{tab['tabName']}[/bold] [dim]in[/dim] [blue]{tab['startDir']}[/blue]")
55
+
56
+ wt_command = generate_wt_command_string(self.layout_config, self.session_name)
57
+
58
+ random_suffix = generate_random_suffix(8)
59
+ script_content = f"""# Windows Terminal layout for {self.session_name}
60
+ # Generated with random suffix: {random_suffix}
61
+ {wt_command}
62
+ """
63
+ tmp_dir = Path(TMP_LAYOUT_DIR)
64
+ tmp_dir.mkdir(parents=True, exist_ok=True)
65
+ script_file = tmp_dir / f"wt_layout_{self.session_name}_{random_suffix}.ps1"
66
+ script_file.write_text(script_content, encoding="utf-8")
67
+ self.script_path = str(script_file.absolute())
68
+
69
+ console.print(f"[bold green]✅ Layout created successfully:[/bold green] [cyan]{self.script_path}[/cyan]")
70
+ return True
71
+
72
+ def get_wt_layout_preview(self, layout_config: LayoutConfig) -> str:
73
+ """Generate preview of the Windows Terminal command that would be created."""
74
+ validate_layout_config(layout_config)
75
+ return generate_wt_command_string(layout_config, "preview")
76
+
77
+ def check_all_commands_status(self) -> dict[str, dict[str, Any]]:
78
+ if not self.layout_config:
79
+ logger.warning("No layout config tracked. Make sure to create a layout first.")
80
+ return {}
81
+
82
+ status_report = {}
83
+ for tab in self.layout_config["layoutTabs"]:
84
+ tab_name = tab["tabName"]
85
+ status_report[tab_name] = check_command_status(tab_name, self.layout_config)
86
+
87
+ return status_report
88
+
89
+ def get_status_report(self) -> dict[str, Any]:
90
+ """Get status report for this layout including Windows Terminal and commands."""
91
+ wt_status = check_wt_session_status(self.session_name or "default")
92
+ commands_status = self.check_all_commands_status()
93
+
94
+ running_count = sum(1 for status in commands_status.values() if status.get("running", False))
95
+ total_count = len(commands_status)
96
+
97
+ return {
98
+ "wt_session": wt_status,
99
+ "commands": commands_status,
100
+ "summary": {"total_commands": total_count, "running_commands": running_count, "stopped_commands": total_count - running_count, "session_healthy": wt_status.get("session_exists", False)},
101
+ }
102
+
103
+ def print_status_report(self) -> None:
104
+ """Print a comprehensive status report for this Windows Terminal layout."""
105
+ status = self.get_status_report()
106
+ wt_session = status["wt_session"]
107
+ commands = status["commands"]
108
+ summary = status["summary"]
109
+
110
+ console.print()
111
+ console.print(Panel.fit("� WINDOWS TERMINAL LAYOUT STATUS REPORT", style="bold cyan"))
112
+
113
+ # Windows Terminal session status
114
+ if wt_session.get("wt_running", False):
115
+ if wt_session.get("session_exists", False):
116
+ session_windows = wt_session.get("session_windows", [])
117
+ all_windows = wt_session.get("all_windows", [])
118
+ console.print(f"[bold green]✅ Windows Terminal session[/bold green] [yellow]'{self.session_name}'[/yellow] [green]is running[/green]")
119
+ console.print(f" Session windows: {len(session_windows)}")
120
+ console.print(f" Total WT windows: {len(all_windows)}")
121
+ else:
122
+ console.print(f"[bold yellow]⚠️ Windows Terminal is running but session[/bold yellow] [yellow]'{self.session_name}'[/yellow] [yellow]not found[/yellow]")
123
+ else:
124
+ error_msg = wt_session.get("error", "Unknown error")
125
+ console.print(f"[bold red]❌ Windows Terminal session issue:[/bold red] [red]{error_msg}[/red]")
126
+
127
+ console.print()
128
+
129
+ # Commands status table
130
+ table = Table(title="📋 COMMAND STATUS", show_header=True, header_style="bold magenta")
131
+ table.add_column("Tab", style="cyan", no_wrap=True)
132
+ table.add_column("Status", justify="center")
133
+ table.add_column("PID", justify="center", style="dim")
134
+ table.add_column("Command", style="green", max_width=40)
135
+
136
+ for tab_name, cmd_status in commands.items():
137
+ if cmd_status.get("running", False):
138
+ status_text = "[bold green]✅ Running[/bold green]"
139
+ processes = cmd_status.get("processes", [])
140
+ if processes:
141
+ proc = processes[0]
142
+ pid = str(proc.get("pid", "N/A"))
143
+ else:
144
+ pid = "N/A"
145
+ else:
146
+ status_text = "[bold red]❌ Stopped[/bold red]"
147
+ pid = "N/A"
148
+
149
+ command = cmd_status.get("command", "Unknown")
150
+ if len(command) > 35:
151
+ command = command[:32] + "..."
152
+
153
+ table.add_row(tab_name, status_text, pid, command)
154
+
155
+ console.print(table)
156
+ console.print()
157
+
158
+ # Summary panel
159
+ summary_text = f"""[bold]Total commands:[/bold] {summary['total_commands']}
160
+ [green]Running:[/green] {summary['running_commands']}
161
+ [red]Stopped:[/red] {summary['stopped_commands']}
162
+ [yellow]Session healthy:[/yellow] {"✅" if summary['session_healthy'] else "❌"}"""
163
+
164
+ console.print(Panel(summary_text, title="📊 Summary", style="blue"))
165
+
166
+
167
+ def create_wt_layout(layout_config: LayoutConfig, output_path: str) -> str:
168
+ session_name = layout_config["layoutName"]
169
+ generator = WTLayoutGenerator(layout_config=layout_config, session_name=session_name)
170
+ generator.create_layout_file()
171
+
172
+ if generator.script_path is None:
173
+ raise RuntimeError("Script path was not set after creating layout file")
174
+
175
+ logger.info(f"Windows Terminal PowerShell script created: {generator.script_path}")
176
+ return generator.script_path
177
+
178
+
179
+ def run_wt_layout(layout_config: LayoutConfig) -> None:
180
+ """Create and run a Windows Terminal layout."""
181
+ session_name = layout_config["layoutName"]
182
+ generator = WTLayoutGenerator(layout_config=layout_config, session_name=session_name)
183
+ generator.create_layout_file()
184
+ if generator.script_path is None:
185
+ raise RuntimeError("Script path was not set after creating layout file")
186
+ # Execute the script
187
+ cmd = f'powershell -ExecutionPolicy Bypass -File "{generator.script_path}"'
188
+ result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
189
+ if result.returncode == 0:
190
+ print(f"Windows Terminal layout is running @ {layout_config['layoutName']}")
191
+ else:
192
+ logger.error(f"Failed to run Windows Terminal layout: {result.stderr}")
193
+ raise RuntimeError(f"Failed to run layout: {result.stderr}")
194
+
195
+
196
+ def run_command_in_wt_tab(command: str, tab_name: str, cwd: Optional[str]) -> str:
197
+ """Create a command to run in a new Windows Terminal tab."""
198
+ cwd_part = f'-d "{cwd}"' if cwd else ""
199
+ return f"""
200
+ echo "Creating new Windows Terminal tab: {tab_name}"
201
+ wt new-tab --title "{tab_name}" {cwd_part} "{command}"
202
+ """
203
+
204
+
205
+ if __name__ == "__main__":
206
+ sample_layout: LayoutConfig = {"layoutName": "TestLayout",
207
+ "layoutTabs": [
208
+ {"tabName": "Frontend", "startDir": "~/code", "command": "btm"},
209
+ {"tabName": "Monitor", "startDir": "~", "command": "lf"}
210
+ ]}
211
+ try:
212
+ session_name = sample_layout["layoutName"]
213
+ generator = WTLayoutGenerator(layout_config=sample_layout, session_name=session_name)
214
+ generator.create_layout_file()
215
+
216
+ print(f"✅ Windows Terminal layout created: {generator.script_path}")
217
+ preview = generator.get_wt_layout_preview(generator.layout_config)
218
+ print(f"📋 Command Preview:\n{preview}")
219
+ print("🔍 Current status:")
220
+ generator.print_status_report()
221
+ print("▶️ To run this layout, execute:")
222
+ print(f' powershell -ExecutionPolicy Bypass -File "{generator.script_path}"')
223
+ except Exception as e:
224
+ print(f"❌ Error: {e}")
225
+ import traceback
226
+ traceback.print_exc()
@@ -1,7 +1,5 @@
1
1
  #!/usr/bin/env python3
2
2
  from datetime import datetime
3
- import json
4
- import uuid
5
3
  import logging
6
4
  import subprocess
7
5
  from pathlib import Path
@@ -9,9 +7,14 @@ from typing import Optional, Any
9
7
  from rich.console import Console
10
8
  from machineconfig.utils.scheduler import Scheduler
11
9
  from machineconfig.cluster.sessions_managers.wt_local import WTLayoutGenerator
10
+ from machineconfig.cluster.sessions_managers.wt_utils.wt_helpers import check_wt_session_status
12
11
  from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
13
- from machineconfig.cluster.sessions_managers.zellij_utils.monitoring_types import (
14
- StartResult, GlobalSummary, ActiveSessionInfo
12
+ from machineconfig.cluster.sessions_managers.zellij_utils.monitoring_types import StartResult, ActiveSessionInfo
13
+ from machineconfig.cluster.sessions_managers.wt_utils.manager_persistence import (
14
+ generate_session_id, save_json_file, load_json_file, list_saved_sessions_in_dir, delete_session_dir, ensure_session_dir_exists
15
+ )
16
+ from machineconfig.cluster.sessions_managers.wt_utils.status_reporting import (
17
+ print_global_summary, print_session_health_status, print_commands_status, calculate_session_summary, calculate_global_summary_from_status
15
18
  )
16
19
 
17
20
 
@@ -129,104 +132,29 @@ class WTLocalManager:
129
132
  return "\n".join(commands)
130
133
 
131
134
  def check_all_sessions_status(self) -> dict[str, dict[str, Any]]:
132
- """Check the status of all sessions and their commands."""
133
135
  status_report = {}
134
-
135
136
  for manager in self.managers:
136
137
  session_name = manager.session_name or "default"
137
-
138
- # Get session status
139
- session_status = WTLayoutGenerator.check_wt_session_status(session_name)
140
-
141
- # Get commands status for this session
138
+ session_status = check_wt_session_status(session_name)
142
139
  commands_status = manager.check_all_commands_status()
143
-
144
- # Calculate summary for this session
145
- running_count = sum(1 for status in commands_status.values() if status.get("running", False))
146
- total_count = len(commands_status)
147
-
148
- status_report[session_name] = {
149
- "session_status": session_status,
150
- "commands_status": commands_status,
151
- "summary": {"total_commands": total_count, "running_commands": running_count, "stopped_commands": total_count - running_count, "session_healthy": session_status.get("session_exists", False)},
152
- }
153
-
140
+ summary = calculate_session_summary(commands_status, session_status.get("session_exists", False))
141
+ status_report[session_name] = {"session_status": session_status, "commands_status": commands_status, "summary": summary}
154
142
  return status_report
155
143
 
156
- def get_global_summary(self) -> GlobalSummary:
157
- """Get a global summary across all sessions."""
144
+ def get_global_summary(self) -> dict[str, Any]:
158
145
  all_status = self.check_all_sessions_status()
159
-
160
- total_sessions = len(all_status)
161
- healthy_sessions = sum(1 for status in all_status.values() if status["summary"]["session_healthy"])
162
- total_commands = sum(status["summary"]["total_commands"] for status in all_status.values())
163
- total_running = sum(status["summary"]["running_commands"] for status in all_status.values())
164
-
165
- return {
166
- "total_sessions": total_sessions,
167
- "healthy_sessions": healthy_sessions,
168
- "unhealthy_sessions": total_sessions - healthy_sessions,
169
- "total_commands": total_commands,
170
- "running_commands": total_running,
171
- "stopped_commands": total_commands - total_running,
172
- "all_sessions_healthy": healthy_sessions == total_sessions,
173
- "all_commands_running": total_running == total_commands,
174
- }
146
+ return calculate_global_summary_from_status(all_status, include_remote_machines=False)
175
147
 
176
148
  def print_status_report(self) -> None:
177
- """Print a comprehensive status report for all sessions."""
178
149
  all_status = self.check_all_sessions_status()
179
150
  global_summary = self.get_global_summary()
180
-
181
- print("=" * 80)
182
- print("🖥️ WINDOWS TERMINAL LOCAL MANAGER STATUS REPORT")
183
- print("=" * 80)
184
-
185
- # Global summary
186
- print("🌐 GLOBAL SUMMARY:")
187
- print(f" Total sessions: {global_summary['total_sessions']}")
188
- print(f" Healthy sessions: {global_summary['healthy_sessions']}")
189
- print(f" Total commands: {global_summary['total_commands']}")
190
- print(f" Running commands: {global_summary['running_commands']}")
191
- print(f" All healthy: {'✅' if global_summary['all_sessions_healthy'] else '❌'}")
192
- print()
193
-
194
- # Per-session details
151
+ print_global_summary(global_summary, "WINDOWS TERMINAL LOCAL MANAGER STATUS REPORT")
195
152
  for session_name, status in all_status.items():
196
- session_status = status["session_status"]
197
- commands_status = status["commands_status"]
198
- summary = status["summary"]
199
-
200
153
  print(f"🪟 SESSION: {session_name}")
201
154
  print("-" * 60)
202
-
203
- # Session health
204
- if session_status.get("wt_running", False):
205
- if session_status.get("session_exists", False):
206
- session_windows = session_status.get("session_windows", [])
207
- all_windows = session_status.get("all_windows", [])
208
- print("✅ Windows Terminal is running")
209
- print(f" Session windows: {len(session_windows)}")
210
- print(f" Total WT windows: {len(all_windows)}")
211
- else:
212
- print("⚠️ Windows Terminal is running but no session windows found")
213
- else:
214
- print(f"❌ Windows Terminal session issue: {session_status.get('error', 'Unknown error')}")
215
-
216
- # Commands in this session
217
- print(f" Commands ({summary['running_commands']}/{summary['total_commands']} running):")
218
- for tab_name, cmd_status in commands_status.items():
219
- status_icon = "✅" if cmd_status.get("running", False) else "❌"
220
- cmd_text = cmd_status.get("command", "Unknown")[:50]
221
- if len(cmd_status.get("command", "")) > 50:
222
- cmd_text += "..."
223
- console.print(f" {status_icon} {tab_name}: {cmd_text}")
224
-
225
- if cmd_status.get("processes"):
226
- for proc in cmd_status["processes"][:2]: # Show first 2 processes
227
- console.print(f" [dim]└─[/dim] PID {proc['pid']}: {proc['name']}")
155
+ print_session_health_status(status["session_status"], remote_name=None)
156
+ print_commands_status(status["commands_status"], status["summary"])
228
157
  print()
229
-
230
158
  print("=" * 80)
231
159
 
232
160
  def run_monitoring_routine(self, wait_ms: int = 30000) -> None:
@@ -288,126 +216,59 @@ class WTLocalManager:
288
216
  sched.run(max_cycles=None)
289
217
 
290
218
  def save(self, session_id: Optional[str] = None) -> str:
291
- """Save the manager state to disk."""
292
219
  if session_id is None:
293
- session_id = str(uuid.uuid4())[:8]
294
-
295
- # Create session directory
220
+ session_id = generate_session_id()
296
221
  session_dir = TMP_SERIALIZATION_DIR / session_id
297
- session_dir.mkdir(parents=True, exist_ok=True)
298
-
299
- # Save the session2wt_tabs configuration
300
- config_file = session_dir / "session_layouts.json"
301
- text = json.dumps(self.session_layouts, indent=2, ensure_ascii=False)
302
- config_file.write_text(text, encoding="utf-8")
303
-
304
- # Save metadata
222
+ ensure_session_dir_exists(session_dir)
223
+ save_json_file(session_dir / "session_layouts.json", self.session_layouts, "session layouts")
305
224
  metadata = {"session_name_prefix": self.session_name_prefix, "created_at": str(datetime.now()), "num_managers": len(self.managers), "sessions": [item["layoutName"] for item in self.session_layouts], "manager_type": "WTLocalManager"}
306
- metadata_file = session_dir / "metadata.json"
307
- text = json.dumps(metadata, indent=2, ensure_ascii=False)
308
- metadata_file.write_text(text, encoding="utf-8")
309
-
310
- # Save each manager's state
225
+ save_json_file(session_dir / "metadata.json", metadata, "metadata")
311
226
  managers_dir = session_dir / "managers"
312
227
  managers_dir.mkdir(exist_ok=True)
313
-
314
228
  for i, manager in enumerate(self.managers):
315
229
  manager_data = {"session_name": manager.session_name, "layout_config": manager.layout_config, "script_path": manager.script_path}
316
- manager_file = managers_dir / f"manager_{i}_{manager.session_name}.json"
317
- text = json.dumps(manager_data, indent=2, ensure_ascii=False)
318
- manager_file.write_text(text, encoding="utf-8")
319
-
230
+ save_json_file(managers_dir / f"manager_{i}_{manager.session_name}.json", manager_data, f"manager {i}")
320
231
  logger.info(f"✅ Saved WTLocalManager session to: {session_dir}")
321
232
  return session_id
322
233
 
323
234
  @classmethod
324
235
  def load(cls, session_id: str) -> "WTLocalManager":
325
- """Load a saved manager state from disk."""
326
236
  session_dir = TMP_SERIALIZATION_DIR / session_id
327
-
328
237
  if not session_dir.exists():
329
238
  raise FileNotFoundError(f"Session directory not found: {session_dir}")
330
-
331
- # Load configuration
332
- config_file = session_dir / "session_layouts.json"
333
- if not config_file.exists():
334
- raise FileNotFoundError(f"Configuration file not found: {config_file}")
335
-
336
- text = config_file.read_text(encoding="utf-8")
337
- session_layouts = json.loads(text)
338
-
339
- # Load metadata
340
- metadata_file = session_dir / "metadata.json"
341
- session_name_prefix = "LocalWTMgr" # default fallback
342
- if metadata_file.exists():
343
- text = metadata_file.read_text(encoding="utf-8")
344
- metadata = json.loads(text)
345
- session_name_prefix = metadata.get("session_name_prefix", "LocalWTMgr")
346
-
347
- # Create new instance
239
+ loaded_data = load_json_file(session_dir / "session_layouts.json", "Configuration file")
240
+ session_layouts = loaded_data if isinstance(loaded_data, list) else [] # type: ignore[arg-type]
241
+ metadata_data = load_json_file(session_dir / "metadata.json", "Metadata file") if (session_dir / "metadata.json").exists() else {}
242
+ metadata = metadata_data if isinstance(metadata_data, dict) else {} # type: ignore[arg-type]
243
+ session_name_prefix = metadata.get("session_name_prefix", "LocalWTMgr") # type: ignore[union-attr]
348
244
  instance = cls(session_layouts=session_layouts, session_name_prefix=session_name_prefix)
349
-
350
- # Load saved manager states
351
245
  managers_dir = session_dir / "managers"
352
246
  if managers_dir.exists():
353
247
  instance.managers = []
354
- manager_files = sorted(managers_dir.glob("manager_*.json"))
355
-
356
- for manager_file in manager_files:
248
+ for manager_file in sorted(managers_dir.glob("manager_*.json")):
357
249
  try:
358
- text = manager_file.read_text(encoding="utf-8")
359
- manager_data = json.loads(text)
360
-
361
- # Recreate the manager
362
- manager = WTLayoutGenerator(layout_config=manager_data["layout_config"], session_name=manager_data["session_name"])
363
- manager.script_path = manager_data["script_path"]
364
-
250
+ loaded_manager_data = load_json_file(manager_file, "Manager data")
251
+ manager_data = loaded_manager_data if isinstance(loaded_manager_data, dict) else {} # type: ignore[arg-type]
252
+ manager = WTLayoutGenerator(layout_config=manager_data["layout_config"], session_name=manager_data["session_name"]) # type: ignore[typeddict-item]
253
+ manager.script_path = manager_data["script_path"] # type: ignore[typeddict-item]
365
254
  instance.managers.append(manager)
366
-
367
255
  except Exception as e:
368
256
  logger.warning(f"Failed to load manager from {manager_file}: {e}")
369
-
370
257
  logger.info(f"✅ Loaded WTLocalManager session from: {session_dir}")
371
258
  return instance
372
259
 
373
260
  @staticmethod
374
261
  def list_saved_sessions() -> list[str]:
375
- """List all saved session IDs."""
376
- if not TMP_SERIALIZATION_DIR.exists():
377
- return []
378
-
379
- sessions = []
380
- for item in TMP_SERIALIZATION_DIR.iterdir():
381
- if item.is_dir() and (item / "metadata.json").exists():
382
- sessions.append(item.name)
383
-
384
- return sorted(sessions)
262
+ return list_saved_sessions_in_dir(TMP_SERIALIZATION_DIR)
385
263
 
386
264
  @staticmethod
387
265
  def delete_session(session_id: str) -> bool:
388
- """Delete a saved session."""
389
- session_dir = TMP_SERIALIZATION_DIR / session_id
390
-
391
- if not session_dir.exists():
392
- logger.warning(f"Session directory not found: {session_dir}")
393
- return False
394
-
395
- try:
396
- import shutil
397
-
398
- shutil.rmtree(session_dir)
399
- logger.info(f"✅ Deleted session: {session_id}")
400
- return True
401
- except Exception as e:
402
- logger.error(f"Failed to delete session {session_id}: {e}")
403
- return False
266
+ return delete_session_dir(TMP_SERIALIZATION_DIR / session_id, session_id)
404
267
 
405
268
  def list_active_sessions(self) -> list[ActiveSessionInfo]:
406
- """List currently active Windows Terminal sessions managed by this instance."""
407
- active_sessions = []
269
+ active_sessions: list[ActiveSessionInfo] = []
408
270
 
409
271
  try:
410
- # Get all running Windows Terminal processes
411
272
  result = subprocess.run(
412
273
  ["powershell", "-Command", 'Get-Process -Name "WindowsTerminal" -ErrorAction SilentlyContinue | Select-Object Id, ProcessName, StartTime, MainWindowTitle | ConvertTo-Json -Depth 2'], capture_output=True, text=True, timeout=10
413
274
  )
@@ -419,7 +280,6 @@ class WTLocalManager:
419
280
  if not isinstance(all_processes, list):
420
281
  all_processes = [all_processes]
421
282
 
422
- # Filter to only our managed sessions
423
283
  for manager in self.managers:
424
284
  session_name = manager.session_name
425
285
  session_windows = []
@@ -435,7 +295,6 @@ class WTLocalManager:
435
295
  "is_active": len(session_windows) > 0,
436
296
  "tab_count": len(manager.layout_config["layoutTabs"]) if manager.layout_config else 0,
437
297
  "tabs": [tab["tabName"] for tab in manager.layout_config["layoutTabs"]] if manager.layout_config else [],
438
- "windows": session_windows,
439
298
  }
440
299
  )
441
300