machineconfig 7.51__py3-none-any.whl → 7.52__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (54) hide show
  1. machineconfig/jobs/installer/custom_dev/brave.py +1 -1
  2. machineconfig/jobs/installer/custom_dev/code.py +4 -1
  3. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -9
  4. machineconfig/jobs/installer/custom_dev/sysabc.py +140 -0
  5. machineconfig/jobs/installer/custom_dev/wezterm.py +2 -15
  6. machineconfig/jobs/installer/installer_data.json +689 -9
  7. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  8. machineconfig/jobs/installer/package_groups.py +23 -72
  9. machineconfig/logger.py +0 -1
  10. machineconfig/profile/create_links_export.py +2 -2
  11. machineconfig/profile/mapper.toml +1 -4
  12. machineconfig/scripts/python/croshell.py +20 -43
  13. machineconfig/scripts/python/devops.py +1 -1
  14. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  15. machineconfig/scripts/python/fire_jobs.py +52 -39
  16. machineconfig/scripts/python/helpers_croshell/crosh.py +1 -1
  17. machineconfig/scripts/python/helpers_devops/cli_config.py +3 -19
  18. machineconfig/scripts/python/helpers_devops/cli_self.py +12 -6
  19. machineconfig/scripts/python/helpers_devops/cli_utils.py +1 -80
  20. machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +0 -17
  21. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +1 -1
  22. machineconfig/scripts/python/helpers_repos/clone.py +0 -1
  23. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
  24. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
  25. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +2 -2
  26. machineconfig/scripts/python/helpers_utils/path.py +106 -0
  27. machineconfig/scripts/python/interactive.py +9 -15
  28. machineconfig/scripts/python/sessions.py +2 -2
  29. machineconfig/scripts/python/utils.py +7 -3
  30. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  31. machineconfig/setup_linux/__init__.py +0 -1
  32. machineconfig/setup_linux/web_shortcuts/interactive.sh +11 -10
  33. machineconfig/setup_mac/__init__.py +2 -3
  34. machineconfig/setup_windows/__init__.py +0 -3
  35. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +11 -10
  36. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +15 -0
  37. machineconfig/utils/installer.py +11 -27
  38. machineconfig/utils/installer_utils/installer.py +9 -50
  39. machineconfig/utils/installer_utils/installer_abc.py +0 -68
  40. machineconfig/utils/io.py +0 -1
  41. machineconfig/utils/path_helper.py +57 -6
  42. machineconfig/utils/ssh.py +3 -3
  43. {machineconfig-7.51.dist-info → machineconfig-7.52.dist-info}/METADATA +5 -3
  44. {machineconfig-7.51.dist-info → machineconfig-7.52.dist-info}/RECORD +49 -51
  45. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  46. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  47. machineconfig/setup_linux/apps.sh +0 -66
  48. machineconfig/setup_mac/apps.sh +0 -73
  49. machineconfig/setup_windows/apps.ps1 +0 -62
  50. /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
  51. /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
  52. {machineconfig-7.51.dist-info → machineconfig-7.52.dist-info}/WHEEL +0 -0
  53. {machineconfig-7.51.dist-info → machineconfig-7.52.dist-info}/entry_points.txt +0 -0
  54. {machineconfig-7.51.dist-info → machineconfig-7.52.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,11 @@
1
1
  """Devops Devapps Install"""
2
2
 
3
- from machineconfig.utils.installer import dynamically_extract_installers_system_groups_from_scripts
4
3
  import typer
5
4
  from rich.console import Console
6
5
  from rich.panel import Panel
7
6
  from rich.table import Table
8
- from typing import Optional, cast, get_args, Annotated
9
- from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS, PACKAGE_GROUP2NAMES
7
+ from typing import Optional, Annotated
8
+ from machineconfig.jobs.installer.package_groups import PACKAGE_GROUP2NAMES
10
9
 
11
10
  console = Console()
12
11
 
@@ -36,7 +35,7 @@ def _handle_installer_not_found(search_term: str, all_names: list[str]) -> None:
36
35
  if len(all_names) > 10:
37
36
  console.print(f" [dim]... and {len(all_names) - 10} more[/dim]")
38
37
 
39
- panel = Panel(f"[bold blue]💡 Use 'ia' to interactively browse all available installers.[/bold blue]\n[bold blue]💡 Use one of the categories: {list(get_args(PACKAGE_GROUPS))}[/bold blue]", title="[yellow]Helpful Tips[/yellow]", border_style="yellow")
38
+ panel = Panel(f"[bold blue]💡 Use 'ia' to interactively browse all available installers.[/bold blue]\n[bold blue]💡 Use one of the categories: {list(PACKAGE_GROUP2NAMES.keys())}[/bold blue]", title="[yellow]Helpful Tips[/yellow]", border_style="yellow")
40
39
  console.print(panel)
41
40
 
42
41
 
@@ -63,7 +62,7 @@ def main(
63
62
  else:
64
63
  if group:
65
64
  typer.echo("❌ You must provide a group name when using the --group/-g option.")
66
- res = get_static_groups_combined_with_dynamic_groups_extracted()
65
+ res = get_group_name_to_repr()
67
66
  console.print("[bold blue]Here are the available groups:[/bold blue]")
68
67
  table = Table(show_header=True, header_style="bold magenta")
69
68
  table.add_column("Group", style="cyan", no_wrap=True)
@@ -87,16 +86,12 @@ def main(
87
86
  raise typer.Exit(1)
88
87
 
89
88
 
90
- def get_static_groups_combined_with_dynamic_groups_extracted():
89
+ def get_group_name_to_repr() -> dict[str, str]:
91
90
  # Build category options and maintain a mapping from display text to actual category name
92
91
  category_display_to_name: dict[str, str] = {}
93
92
  for group_name, group_values in PACKAGE_GROUP2NAMES.items():
94
93
  display = f"📦 {group_name:<20}" + " -- " + f"{'|'.join(group_values):<60}"
95
94
  category_display_to_name[display] = group_name
96
- options_system = dynamically_extract_installers_system_groups_from_scripts()
97
- for item in options_system:
98
- display = f"📦 {item['appName']:<20} -- {item['doc']:<60}"
99
- category_display_to_name[display] = item['appName']
100
95
  return category_display_to_name
101
96
 
102
97
 
@@ -110,9 +105,9 @@ def install_interactively():
110
105
  for x in installers:
111
106
  installer_options.append(Installer(installer_data=x).get_description())
112
107
 
113
- category_display_to_name = get_static_groups_combined_with_dynamic_groups_extracted()
108
+ category_display_to_name = get_group_name_to_repr()
114
109
  options = list(category_display_to_name.keys()) + ["─" * 50] + installer_options
115
- program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 essentials", fzf=True)
110
+ program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 termabc", fzf=True)
116
111
  installation_messages: list[str] = []
117
112
  for _an_idx, a_program_name in enumerate(program_names):
118
113
  if a_program_name.startswith("─"): # 50 dashes separator
@@ -120,7 +115,7 @@ def install_interactively():
120
115
  if a_program_name.startswith("📦 "):
121
116
  category_name = category_display_to_name.get(a_program_name)
122
117
  if category_name:
123
- install_group(package_group=cast(PACKAGE_GROUPS, category_name))
118
+ install_group(package_group=category_name)
124
119
  else:
125
120
  installer_idx = installer_options.index(a_program_name)
126
121
  an_installer_data = installers[installer_idx]
@@ -140,43 +135,7 @@ def install_group(package_group: str):
140
135
  installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=[package_group])
141
136
  install_bulk(installers_data=installers_)
142
137
  return
143
- options_system = dynamically_extract_installers_system_groups_from_scripts()
144
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
145
- from machineconfig.utils.code import run_shell_script
146
- for an_item in options_system:
147
- if an_item["appName"] == package_group:
148
- panel = Panel(f"[bold yellow]Installing programs from category: [green]{package_group}[/green][/bold yellow]", title="[bold blue]📦 Category Installation[/bold blue]", border_style="blue", padding=(1, 2))
149
- console.print(panel)
150
- program = an_item["fileNamePattern"][get_normalized_arch()][get_os_name()]
151
- if program is not None:
152
- run_shell_script(program)
153
- break
154
- else:
155
- console.print(f"❌ [red]Group '{package_group}' not found.[/red]", style="bold")
156
- _handle_installer_not_found(package_group, all_names=list(PACKAGE_GROUP2NAMES.keys()) + [item['appName'] for item in options_system])
157
-
158
-
159
- def choose_from_system_package_groups(options_system: dict[str, tuple[str, str]]) -> str:
160
- from machineconfig.utils.options import choose_from_options
161
- display_options = []
162
- for group_name, (description, _) in options_system.items():
163
- if description:
164
- display_options.append(f"{group_name:<20} - {description}")
165
- else:
166
- display_options.append(group_name)
167
- program_names = choose_from_options(multi=True, msg="", options=sorted(display_options), header="🚀 CHOOSE DEV APP", fzf=True)
168
- program = ""
169
- for display_name in program_names:
170
- # Extract the actual group name (everything before " - " if present)
171
- group_name = display_name.split(" - ")[0].strip() if " - " in display_name else display_name.strip()
172
- console.print(f"\n[bold cyan]⚙️ Installing: [yellow]{group_name}[/yellow][/bold cyan]", style="bold")
173
- _, sub_program = options_system[group_name] # Extract content from tuple
174
- if sub_program.startswith("#winget"):
175
- sub_program = sub_program[1:]
176
- program += "\n" + sub_program
177
- return program
178
-
179
-
138
+ print(f"❌ ERROR: Unknown package group: {package_group}. Available groups are: {list(PACKAGE_GROUP2NAMES.keys())}")
180
139
  def install_clis(clis_names: list[str]):
181
140
  from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
182
141
  from machineconfig.utils.installer import get_installers
@@ -191,71 +191,3 @@ def check_if_installed_already(exe_name: str, version: Optional[str], use_cache:
191
191
  return ("⚠️ NotInstalled", "None", version or "unknown")
192
192
 
193
193
 
194
- def parse_apps_installer_linux(txt: str) -> dict[str, tuple[str, str]]:
195
- """Parse Linux shell installation scripts into logical chunks.
196
-
197
- Splits scripts by # --GROUP:<name>:<description> comment signatures into a dictionary
198
- mapping block names to (description, shell script content) tuples.
199
-
200
- Returns:
201
- dict[str, tuple[str, str]]: Dictionary mapping block/section names to (description, installation_script) tuples
202
- """
203
- chunks = txt.split('# --GROUP:')
204
- res: dict[str, tuple[str, str]] = {}
205
-
206
- for chunk in chunks[1:]: # Skip first empty chunk before first group
207
- lines = chunk.split('\n')
208
- # First line contains the group name and description in format "NAME:DESCRIPTION"
209
- group_line = lines[0].strip()
210
-
211
- # Extract group name and description
212
- if ':' in group_line:
213
- parts = group_line.split(':', 1) # Split only on first colon
214
- group_name = parts[0].strip()
215
- group_description = parts[1].strip() if len(parts) > 1 else ""
216
- else:
217
- group_name = group_line
218
- group_description = ""
219
-
220
- # Rest is the content
221
- content = '\n'.join(lines[1:]).strip()
222
-
223
- if group_name and content:
224
- res[group_name] = (group_description, content)
225
-
226
- return res
227
-
228
-
229
- def parse_apps_installer_windows(txt: str) -> dict[str, tuple[str, str]]:
230
- """Parse Windows PowerShell installation scripts into logical chunks.
231
-
232
- Splits scripts by # --GROUP:<name>:<description> comment signatures into a dictionary
233
- mapping block names to (description, PowerShell script content) tuples.
234
-
235
- Returns:
236
- dict[str, tuple[str, str]]: Dictionary mapping block/section names to (description, installation_script) tuples
237
- """
238
- chunks = txt.split('# --GROUP:')
239
- res: dict[str, tuple[str, str]] = {}
240
-
241
- for chunk in chunks[1:]: # Skip first chunk before first group
242
- lines = chunk.split('\n')
243
- # First line contains the group name and description in format "NAME:DESCRIPTION"
244
- group_line = lines[0].strip()
245
-
246
- # Extract group name and description
247
- if ':' in group_line:
248
- parts = group_line.split(':', 1) # Split only on first colon
249
- group_name = parts[0].strip()
250
- group_description = parts[1].strip() if len(parts) > 1 else ""
251
- else:
252
- group_name = group_line
253
- group_description = ""
254
-
255
- # Rest is the content
256
- content = '\n'.join(lines[1:]).strip()
257
-
258
- if group_name and content:
259
- res[group_name] = (group_description, content)
260
-
261
- return res
machineconfig/utils/io.py CHANGED
@@ -1,4 +1,3 @@
1
- from __future__ import annotations
2
1
 
3
2
  from typing import Any, Union, Optional, Mapping
4
3
  from pathlib import Path
@@ -1,12 +1,11 @@
1
1
  from machineconfig.utils.path_extended import PathExtended
2
- from machineconfig.utils.options import choose_from_options
3
2
  from machineconfig.utils.source_of_truth import EXCLUDE_DIRS
4
3
  from rich.console import Console
5
4
  from rich.panel import Panel
6
5
  import platform
7
6
  import subprocess
8
7
  from pathlib import Path
9
-
8
+ from typing import Optional
10
9
 
11
10
  console = Console()
12
11
 
@@ -83,6 +82,7 @@ def match_file_name(sub_string: str, search_root: PathExtended, suffixes: set[st
83
82
  if len(reduced_scripts) == 1:
84
83
  return PathExtended(reduced_scripts[0])
85
84
  elif len(reduced_scripts) > 1:
85
+ from machineconfig.utils.options import choose_from_options
86
86
  choice = choose_from_options(multi=False, msg="Multiple matches found", options=reduced_scripts, fzf=True)
87
87
  return PathExtended(choice)
88
88
  print(f"Result: This still generated {len(reduced_scripts)} results.")
@@ -97,19 +97,27 @@ def match_file_name(sub_string: str, search_root: PathExtended, suffixes: set[st
97
97
  reduced_scripts = [a_potential_match for a_potential_match in partial_path_matches if sub_string in a_potential_match.as_posix()]
98
98
  if len(reduced_scripts) == 1:
99
99
  return PathExtended(reduced_scripts[0])
100
- print(f"Result: This still generated {len(reduced_scripts)} results.")
100
+ print(f"Result: This still generated {len(reduced_scripts)} results.")
101
+
101
102
  try:
102
- fzf_cmd = f"cd '{search_root_obj}'; fd --type file --strip-cwd-prefix | fzf --ignore-case --exact --query={sub_string}"
103
+
104
+ if len(partial_path_matches) == 0:
105
+ print("No partial path matches found, trying to do fd with --no-ignore ...")
106
+ fzf_cmd = f"cd '{search_root_obj}'; fd --no-ignore --type file --strip-cwd-prefix | fzf --ignore-case --exact --query={sub_string}"
107
+ else:
108
+ fzf_cmd = f"cd '{search_root_obj}'; fd --type file --strip-cwd-prefix | fzf --ignore-case --exact --query={sub_string}"
103
109
  console.print(Panel(f"🔍 Second attempt: SEARCH STRATEGY | Using fd to search for '{sub_string}' in '{search_root_obj}' ...\n{fzf_cmd}", title="Search Strategy", expand=False))
104
110
  search_res_raw = subprocess.run(fzf_cmd, stdout=subprocess.PIPE, text=True, check=True, shell=True).stdout
105
- search_res = search_res_raw.strip().split("\\n")[:-1]
111
+ search_res = search_res_raw.strip().split("\n")
106
112
  except subprocess.CalledProcessError as cpe:
107
113
  console.print(Panel(f"❌ ERROR | FZF search failed with '{sub_string}' in '{search_root_obj}'.\n{cpe}", title="Error", expand=False))
108
114
  import sys
109
-
110
115
  sys.exit(f"💥 FILE NOT FOUND | Path {sub_string} does not exist @ root {search_root_obj}. No search results.")
111
116
  if len(search_res) == 1:
112
117
  return search_root_obj.joinpath(search_res_raw)
118
+ elif len(search_res) == 0:
119
+ msg = Panel(f"💥 FILE NOT FOUND | Path {sub_string} does not exist @ root {search_root_obj}. No search results", title="File Not Found", expand=False)
120
+ raise FileNotFoundError(msg)
113
121
 
114
122
  print(f"⚠️ WARNING | Multiple search results found for `{sub_string}`:\n'{search_res}'")
115
123
  cmd = f"cd '{search_root_obj}'; fd --type file | fzf --select-1 --query={sub_string}"
@@ -121,3 +129,46 @@ def match_file_name(sub_string: str, search_root: PathExtended, suffixes: set[st
121
129
  msg = Panel(f"💥 FILE NOT FOUND | Path {sub_string} does not exist @ root {search_root_obj}. No search results", title="File Not Found", expand=False)
122
130
  raise FileNotFoundError(msg) from cpe
123
131
  return search_root_obj.joinpath(res)
132
+
133
+
134
+ def search_for_files_of_interest(path_obj: PathExtended, suffixes: set[str]):
135
+ if path_obj.joinpath(".venv").exists():
136
+ path_objects = path_obj.search("*", not_in=[".venv"])
137
+ files: list[PathExtended] = []
138
+ for a_path_obj in path_objects:
139
+ files += search_for_files_of_interest(path_obj=a_path_obj, suffixes=suffixes)
140
+ return files
141
+ if path_obj.is_file():
142
+ return [path_obj]
143
+ files: list[PathExtended] = []
144
+ for a_suffix in suffixes:
145
+ if a_suffix == ".py":
146
+ files += path_obj.search(pattern="*.py", r=True, not_in=["__init__.py"])
147
+ else:
148
+ files += path_obj.search(pattern=f"*{a_suffix}", r=True)
149
+ return files
150
+
151
+
152
+ def get_choice_file(path: str, suffixes: Optional[set[str]]):
153
+ path_obj = sanitize_path(path)
154
+ if suffixes is None:
155
+ import platform
156
+ if platform.system() == "Windows":
157
+ suffixes = {".py", ".ps1", ".sh"}
158
+ elif platform.system() in ["Linux", "Darwin"]:
159
+ suffixes = {".py", ".sh"}
160
+ else:
161
+ suffixes = {".py"}
162
+ if not path_obj.exists():
163
+ print(f"🔍 Searching for file matching `{path}` under `{PathExtended.cwd()}`, but only if suffix matches {suffixes}")
164
+ choice_file = match_file_name(sub_string=path, search_root=PathExtended.cwd(), suffixes=suffixes)
165
+ elif path_obj.is_dir():
166
+ print(f"🔍 Searching recursively for Python, PowerShell and Shell scripts in directory `{path_obj}`")
167
+ files = search_for_files_of_interest(path_obj, suffixes=suffixes)
168
+ print(f"🔍 Got #{len(files)} results.")
169
+ from machineconfig.utils.options import choose_from_options
170
+ choice_file = choose_from_options(multi=False, options=files, fzf=True, msg="Choose one option")
171
+ choice_file = PathExtended(choice_file)
172
+ else:
173
+ choice_file = path_obj
174
+ return choice_file
@@ -2,13 +2,13 @@ from typing import Callable, Optional, Any, Union, cast
2
2
  import os
3
3
  from pathlib import Path
4
4
  import platform
5
- from machineconfig.scripts.python.helpers_devops.cli_utils import MachineSpecs
5
+ from machineconfig.scripts.python.helpers_utils.path import MachineSpecs
6
6
  import rich.console
7
7
  from machineconfig.utils.terminal import Response
8
8
  from machineconfig.utils.accessories import pprint, randstr
9
9
  from machineconfig.utils.meta import lambda_to_python_script
10
10
  UV_RUN_CMD = "$HOME/.local/bin/uv run" if platform.system() != "Windows" else """& "$env:USERPROFILE/.local/bin/uv" run"""
11
- MACHINECONFIG_VERSION = "machineconfig>=7.51"
11
+ MACHINECONFIG_VERSION = "machineconfig>=7.52"
12
12
  DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
13
13
 
14
14
  class SSH:
@@ -113,7 +113,7 @@ class SSH:
113
113
  if self.progress and self.task is not None:
114
114
  self.progress.update(self.task, completed=transferred, total=total)
115
115
  self.tqdm_wrap = RichProgressWrapper
116
- from machineconfig.scripts.python.helpers_devops.cli_utils import get_machine_specs
116
+ from machineconfig.scripts.python.helpers_utils.path import get_machine_specs
117
117
  self.local_specs: MachineSpecs = get_machine_specs()
118
118
  resp = self.run_shell(command="""~/.local/bin/utils get-machine-specs """, verbose_output=False, description="Getting remote machine specs", strict_stderr=False, strict_return_code=False)
119
119
  json_str = resp.op
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 7.51
3
+ Version: 7.52
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -65,7 +65,9 @@ iex (iwr bit.ly/cfgwindows).Content
65
65
  iex (uvx machineconfig define)
66
66
  # Permanent install:
67
67
  powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Skip if UV is already installed
68
- uvx install --upgrade machineconfig
68
+ uv tool install --upgrade --python 3.14 machineconfig both
69
+ devops config copy-assets
70
+
69
71
  ```
70
72
 
71
73
  # Install On Linux and MacOS
@@ -77,7 +79,7 @@ uvx install --upgrade machineconfig
77
79
  . <(uvx machineconfig define)
78
80
  # Permanent install:
79
81
  curl -LsSf https://astral.sh/uv/install.sh | sh # Skip if UV is already installed
80
- uvx install --upgrade machineconfig
82
+ uv tool install --upgrade --upgrade 3.14 machineconfig
81
83
  ```
82
84
 
83
85
 
@@ -1,5 +1,5 @@
1
1
  machineconfig/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
2
- machineconfig/logger.py,sha256=XLckvZ8cPDpC5v75ESP3YNTputIrDYuvoYisj0YZtGw,1415
2
+ machineconfig/logger.py,sha256=4LrXsRpU6O8Wa9CLhWBJdJusSh9IrJoWIEzTbRr3IwY,1380
3
3
  machineconfig/cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  machineconfig/cluster/remote/cloud_manager.py,sha256=8f5mIkAnXNjhVswlv49bEgAGLJIv_e_tNbI_wgPBo0Q,26041
5
5
  machineconfig/cluster/remote/data_transfer.py,sha256=1QxIUetqlhmyl67icBx0nFZEZ7Z2DRjygXofKLMOz-0,4385
@@ -51,25 +51,26 @@ machineconfig/cluster/templates/cli_trogon.py,sha256=PFWGy8SFYIhT9r3ZV4oIEYfImsQ
51
51
  machineconfig/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  machineconfig/jobs/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  machineconfig/jobs/installer/check_installations.py,sha256=hkHmmT7Bx3_QWRn2v8dCKOzAapFzqHRzbe-Q08GLnKE,10743
54
- machineconfig/jobs/installer/installer_data.json,sha256=WJ0v1f86duVBp945xm52m7-mNmgDer3DCUA-aluTxCA,83436
55
- machineconfig/jobs/installer/package_groups.py,sha256=nRru-M8wiqdSs3U8TDOGFmA2xTV4gwFUeMJZ28xBrvw,5293
54
+ machineconfig/jobs/installer/installer_data.json,sha256=luCTMa15H3FIWO9cSc5Z2VTVud5lzV6wnk6oJKLPVm4,110054
55
+ machineconfig/jobs/installer/package_groups.py,sha256=QZ9Baup-CjWOc29uBGL-fFfXMzUTy_Gyy-pQit-ST7k,4642
56
56
  machineconfig/jobs/installer/custom/boxes.py,sha256=ws8QRbDn48oKhbQntr54I0nSfkwINbprjTy0HOpuX40,1974
57
57
  machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
58
58
  machineconfig/jobs/installer/custom/hx.py,sha256=8Vy7NNCiXsyG_xl78TAYPYpiISNCDFiVJJRSZceq1Fk,8729
59
59
  machineconfig/jobs/installer/custom_dev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  machineconfig/jobs/installer/custom_dev/alacritty.py,sha256=STXertp5pE6VVhcjAfZSKBxAC94S2HAzas646jwd4ow,2754
61
- machineconfig/jobs/installer/custom_dev/brave.py,sha256=kHgGRwgKrvpIlGzmdnWO6HJnSrnj8RlBEV_1Zz4s_Hw,2829
61
+ machineconfig/jobs/installer/custom_dev/brave.py,sha256=1WTUgEHlpzA9POK6hMeL4-ZxDs_PvLm9q_l19edI_K8,2887
62
62
  machineconfig/jobs/installer/custom_dev/bypass_paywall.py,sha256=ZF8yF2srljLChe1tOw_fEsalOkts4RpNwlzX9GtWh2g,1888
63
- machineconfig/jobs/installer/custom_dev/code.py,sha256=0Hb4ToMLQX4WWyG4xfUEJMTwN01ad5VZGogu3Llqtbc,2480
63
+ machineconfig/jobs/installer/custom_dev/code.py,sha256=YSmLCh4nxK9CHqeE5mOBAVkNRDRZVT8FAWggraHsiPA,2483
64
64
  machineconfig/jobs/installer/custom_dev/cursor.py,sha256=3xoFAYFdZqurSHXeEG-vbG0KU1TNQpBMaMgL1eW6X4k,4326
65
65
  machineconfig/jobs/installer/custom_dev/dubdb_adbc.py,sha256=okeKEVhgijS_iG-53StyzUJkPcSfIuI7HddJ0u4flds,829
66
66
  machineconfig/jobs/installer/custom_dev/espanso.py,sha256=H1rZb4xnjs72lL0_mB0M4d7NrDyVv1sAG3NOkOrCB64,4137
67
67
  machineconfig/jobs/installer/custom_dev/goes.py,sha256=SIRkpzkCeWMof0BnPuoEJy3KHNkVZs8J5DnoZJXb9TY,2130
68
68
  machineconfig/jobs/installer/custom_dev/lvim.py,sha256=2-wbh_IClTFcFkSYk9EsRiv88-isSNIVX6dNZ1L5m8Q,2985
69
69
  machineconfig/jobs/installer/custom_dev/nerdfont.py,sha256=dsPmiqP9AJCack7mNeJ8Qzo4dSOwC0bsupH0Hn3gqSg,4149
70
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py,sha256=RfCU9PHJbBG7TDHCFtTX80iIbSVNQiz6QYzt2qCC7XA,5994
70
+ machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py,sha256=bVUPigzov1v87tgKY-lWz3HDEHMI8dSTNDgB7--0o80,5620
71
71
  machineconfig/jobs/installer/custom_dev/redis.py,sha256=bReDLsgy37eJyTU4TXE7FQpKFi-_usQC7bwhfXvZuBU,3259
72
- machineconfig/jobs/installer/custom_dev/wezterm.py,sha256=73BzfUdY8mXM4l4jVFIBxR1qXSE4g_PAyxefanrVkFU,3555
72
+ machineconfig/jobs/installer/custom_dev/sysabc.py,sha256=XbktwRZjIb0lNEuVoxiCUprMnHTKJZgmCWydxwZYRSk,6458
73
+ machineconfig/jobs/installer/custom_dev/wezterm.py,sha256=GWVz4xJ419T2yT_uK7eH1lQjfu1db3CDKrD0Pd1ExYc,3190
73
74
  machineconfig/jobs/installer/custom_dev/winget.py,sha256=gLdwM20jKMf2bMV3BAcOg4MkuzwF09CU5OhXvLkPoHo,5738
74
75
  machineconfig/jobs/installer/linux_scripts/brave.sh,sha256=_al_D5iZSwtlDRTeqjjK37nEWai8mrHFk-cZeVws9MY,1389
75
76
  machineconfig/jobs/installer/linux_scripts/docker.sh,sha256=4NYWXCdvh6qlggVVH7FGe6jWkYuWoaJoDwLJvI4oRNQ,4471
@@ -81,23 +82,19 @@ machineconfig/jobs/installer/linux_scripts/network.sh,sha256=j3kRV2mFEZK05XL2UdR
81
82
  machineconfig/jobs/installer/linux_scripts/ngrok.sh,sha256=K-t62nhnAHxhppTmqjubIJRHozkNHfBxXGbn1Oz3w-A,287
82
83
  machineconfig/jobs/installer/linux_scripts/pgsql.sh,sha256=FbIteF6RVCcDdHl8seFFO7FuAX9siZpkwr9WVeKn5NA,1655
83
84
  machineconfig/jobs/installer/linux_scripts/q.sh,sha256=lPSHBeZm4z6xv5K3cYPiOkK0A-LaNSNJN2ysVb1Qa9Y,261
84
- machineconfig/jobs/installer/linux_scripts/redis.sh,sha256=GbElaDpkICLL6_XnkPev0UPZm4wQ8euGoOmrX2okneg,2064
85
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh,sha256=PTvo7KBpyxmWdpVoBK4cuPJ5slxJIPlVTfGQYnvKEQg,2508
85
+ machineconfig/jobs/installer/linux_scripts/redis.sh,sha256=-Ur541bMwjq6TKrmvy-S5c_qoR8GlRpE6923USDylm8,2097
86
86
  machineconfig/jobs/installer/linux_scripts/vscode.sh,sha256=fI6lNCWUjlstNE319Y-rUtimvLLb9GcNh3z9t1KRaaE,4541
87
87
  machineconfig/jobs/installer/linux_scripts/warp-cli.sh,sha256=dnMHZjyyYARwKFa1XZbIonLntIHTRGROyr2v4Eodd6s,2157
88
88
  machineconfig/jobs/installer/linux_scripts/wezterm.sh,sha256=hZBS0CopWr-VrGhFSVjoWATFzHqCt6V41_N8bImAQRc,1294
89
- machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1,sha256=UbOApUB0UiAHANOnGFHIP3zY_UCtWBhT5I6vqPhwqgE,618
90
89
  machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1,sha256=JsQfGAMkvirhiUmBNOifMlbum2PfHSs0-Akgj-J-WZw,3177
91
- machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1,sha256=91cL3K4H2saAuzOS1GxGicpc64ZDpgvPY39YPBWyxZI,269
92
- machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1,sha256=-7pElYiGFXUvO4dp6rW0LXmNo65h3hFTHJWyHbmO3Xc,745
93
90
  machineconfig/profile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
91
  machineconfig/profile/backup.toml,sha256=Hb25sIdKVvLqOF62NgiOpGZxd45I6IhsNHu623RtfQQ,766
95
92
  machineconfig/profile/bash_shell_profiles.md,sha256=mio0xkMTwO-F3fikWIfgcdQaPCmQrmkxJMNtZsTe9TI,514
96
93
  machineconfig/profile/create_helper.py,sha256=jBwgf2r6Wid9LNXw_O8JpVmm7Vk5sZJWlN0qeIkQhjE,2986
97
94
  machineconfig/profile/create_links.py,sha256=42U5dEu7fMnGBAqyhQ1VspFaZg3VssMMQSdpGEmpHnE,14199
98
- machineconfig/profile/create_links_export.py,sha256=vApd2YoFqqN9om8cvcyeAVOz1rvbOl9YDJg4WfhlaHM,4976
95
+ machineconfig/profile/create_links_export.py,sha256=ha2M_QOTeloEOdZ1OoQb8eWWMm-d2VOKNIKgYbI6ezg,4963
99
96
  machineconfig/profile/create_shell_profile.py,sha256=jjCwH3rNxVOcb9sgbZQsjYlKGfqhDvPxBDrkFLThT3c,7221
100
- machineconfig/profile/mapper.toml,sha256=FaB07P-558XAycqLLc17O0rT098lMPh3ILH7UgoauXQ,12793
97
+ machineconfig/profile/mapper.toml,sha256=9SOHwHbFCI6J9nGVk72RZZhSPBI2OWtfyTXcGz3cSaA,12701
101
98
  machineconfig/profile/records/generic/shares.toml,sha256=FduDztfyQtZcr5bfx-RSKhEEweweQSWfVXkKWnx8hCY,143
102
99
  machineconfig/profile/records/linux/apps_summary_report.csv,sha256=pw9djvaRUPalKDLn2sl3odcbD2_Zx3aEupsQ8UPfaaY,2738
103
100
  machineconfig/profile/records/linux/apps_summary_report.md,sha256=l77oofA6Rliql0ZgKGIZi8bstFoGyyGTxeS8p2PtOj0,5634
@@ -114,19 +111,19 @@ machineconfig/scripts/nu/wrap_mcfg.nu,sha256=9heiUHVkHjI_AMXT5QJJixk7ZK_hJNV_A8l
114
111
  machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
112
  machineconfig/scripts/python/agents.py,sha256=aVbLQDgpngXZm4taHcED4sAxyHvV2_Dz5VW3apPcQcY,10651
116
113
  machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yyeehw_cU8,1263
117
- machineconfig/scripts/python/croshell.py,sha256=2vSm3z9_E3KNFa4l94aFNXL1-y0SaoqKfq_qY-yPOSE,8379
114
+ machineconfig/scripts/python/croshell.py,sha256=SE8UQuZRCuQ4HkHuGYpmmSKS78guMOJFmgTdJ7UViW8,7104
118
115
  machineconfig/scripts/python/define.py,sha256=AtuVac6tJeDMcxtbWmQh1TH3dYAPSGFdO51b75zJVeI,717
119
- machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
116
+ machineconfig/scripts/python/devops.py,sha256=x7CnxOnZPSrCwjflnJ6sht1M7g0nzY2SxyPtmNputSA,2212
120
117
  machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
121
118
  machineconfig/scripts/python/explore.py,sha256=3kNglM1KYp57U8yrbWeHEslN458-xieRuFYsJAhrpIs,1247
122
- machineconfig/scripts/python/fire_jobs.py,sha256=r_V5ZpZhE2-Hn_f5pvzbulUTl7_2S4AI_M71WlD4Vlw,13701
119
+ machineconfig/scripts/python/fire_jobs.py,sha256=zLLgPfqCSpXBeU5kC4XEcojscZFy-K0K3dbbGqkTczU,13135
123
120
  machineconfig/scripts/python/ftpx.py,sha256=8tmhKBZgSuhFZZYaT4JAIgeXMKmxJhxg5aJQFbbdtDg,9857
124
- machineconfig/scripts/python/interactive.py,sha256=jFHpiQq_lisa51BS4-qUlWPJ1-pmHmPAfA6dixdsOzY,11745
121
+ machineconfig/scripts/python/interactive.py,sha256=2ETE45Ww9HHc6rudG-L9I2-N_mdOv9qMEdJ_05mhCz4,11268
125
122
  machineconfig/scripts/python/machineconfig.py,sha256=l211lxHRcQ6BH7x3FwQHSJCYbYs6RJL5e0POjyWAW9A,3048
126
123
  machineconfig/scripts/python/msearch.py,sha256=3NbwJFJtrvPSVyOfa6ogPjD-NVuRJHeAQ1WriDXCduU,737
127
- machineconfig/scripts/python/sessions.py,sha256=Q_fbprawvW1x_E6jKQ-Z2Z5MRurRaepKUvi5z1G4CUw,9531
124
+ machineconfig/scripts/python/sessions.py,sha256=Mex8Y2NM0Z3JiO7-qEKew9lA29FfUDo_tB3-1jJ79bs,9532
128
125
  machineconfig/scripts/python/terminal.py,sha256=PQ2C2flC2UngfeTNYhHLBiwj__kmE12gxZu2ivtr4Kg,5978
129
- machineconfig/scripts/python/utils.py,sha256=WHf7ahRjAW7dOfjJ83hpsWe5F-If-IdJCBMzTYSPbdM,3149
126
+ machineconfig/scripts/python/utils.py,sha256=9_-hCbLDrWMSCIfpHWcywG3lwN-hQeoa_OGOr5x_1WQ,3460
130
127
  machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
128
  machineconfig/scripts/python/ai/generate_files.py,sha256=VfjKdwgF8O6E4oiRtfWNliibLmmwGe7f9ld6wpOsXTw,14498
132
129
  machineconfig/scripts/python/ai/initai.py,sha256=P4-NCLJPWeNef_k-l4TQ92AB1Xm1k3xzdqSBIjmevnQ,1573
@@ -159,7 +156,7 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
159
156
  machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
160
157
  machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
161
158
  machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
162
- machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=ZcdyhdiQnDys8HxFRLOMQrnGYbHl0AMHBGs-Kg4uoRE,6932
159
+ machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=VJjbAodVQZJZG0dIN7gBNioNy7NDKxn0W6My_Bl69YU,6932
163
160
  machineconfig/scripts/python/helpers_agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
161
  machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py,sha256=YD6-rtudHNip8tx85amSmOZZIHBP9khq4az3dF41j6U,5934
165
162
  machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
@@ -182,23 +179,23 @@ machineconfig/scripts/python/helpers_cloud/cloud_sync.py,sha256=ThfI4rvKG6IPzAo3
182
179
  machineconfig/scripts/python/helpers_cloud/helpers2.py,sha256=3fXDiDlz5EDk_04YtPd-bjZcjUjmGTpgiQ1YMaGbD8g,7310
183
180
  machineconfig/scripts/python/helpers_cloud/helpers5.py,sha256=dPBvA9Tcyx9TMgM6On49A1CueGMhBdRzikDnlJGf3J0,1123
184
181
  machineconfig/scripts/python/helpers_croshell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
- machineconfig/scripts/python/helpers_croshell/crosh.py,sha256=FlK3qyMsbacM27Hq83JpXNOSlC4QSsF8B2665BEFs34,1620
182
+ machineconfig/scripts/python/helpers_croshell/crosh.py,sha256=enw3JpKQyYS7AzT6Ovap_7BLfNum9E_MKCGXK3AvUyQ,1643
186
183
  machineconfig/scripts/python/helpers_croshell/pomodoro.py,sha256=SPkfeoZGv8rylGiOyzQ7UK3aXZ3G2FIOuGkSuBUggOI,2019
187
184
  machineconfig/scripts/python/helpers_croshell/scheduler.py,sha256=rKhssuxkD697EY6qaV6CSdNhxpAQLDWO4fE8GMCQ9FA,3061
188
185
  machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPhwcbAvCyJyTBd2iumJB5wmPdcTXz_Yvh8,4897
189
186
  machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
190
187
  machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
191
188
  machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
- machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=Of2qPQ5RKGpxXXX6orlWSXQ4DLTnIy227oRgq_zAuOs,5922
189
+ machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=VLR7tH1SdR3ftWSNjyt0LHc1gRssYJXYvkLjtydxVOM,5007
193
190
  machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=SL6P3Ioib3P9OWG1GmULb5-l4ySYZ1RuuIDCHY4lCyU,3502
194
191
  machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
195
192
  machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=u_2l5Cc3dFnh0seKrbH9j-Z0bUCrgy45MOM6HCjgkQg,7562
196
193
  machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=mFrhosIFCCT70d82NYUxp9ta6BYeAHQNhsx7CEmWcg4,12478
197
- machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=sBfwq7uAwqV0vxINKc7G4Sx6JklYsvK4sTfXfoJ7KSM,6515
194
+ machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=tnSFKRNc3nwreNqknK_g4BEBKCVWASlSMPoqoHHVkdE,6993
198
195
  machineconfig/scripts/python/helpers_devops/cli_share_file.py,sha256=AL04784ncdP9ue5bKyqJfXrMksxjFKtuv_w353kQQsI,6298
199
196
  machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=S2xQ7sDVvfvGKcJNlquXj9Gc0ofk2EXnfvpRx2AWVD8,6278
200
197
  machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
201
- machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=E3UAqqna7rZD7u6j4K997trVPfR-e5x7uPCZANE63IY,11138
198
+ machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=711D0xntW9zKJne1YIIwjpuk_6mM90wfvBGlsxxVG44,8020
202
199
  machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py,sha256=Dn8luB6QJzxKiiFSC-NMqiYddWZoca3A8eOjMYZDzTc,5598
203
200
  machineconfig/scripts/python/helpers_devops/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
204
201
  machineconfig/scripts/python/helpers_devops/devops_update_repos.py,sha256=kSln8_-Wn7Qu0NaKdt-QTN_bBVyTIAWHH8xVYKK-vCM,10133
@@ -209,13 +206,13 @@ machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1,sha
209
206
  machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py,sha256=pRXAGe2IpysYshsaF8CKEwHI8EGPtLcM8PtiAqM7vmM,3425
210
207
  machineconfig/scripts/python/helpers_fire_command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
208
  machineconfig/scripts/python/helpers_fire_command/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
212
- machineconfig/scripts/python/helpers_fire_command/file_wrangler.py,sha256=tZS9qXOXiHltiZ9JHEs2serGEFm0uLbz7xh6ZBAa2l0,6946
209
+ machineconfig/scripts/python/helpers_fire_command/file_wrangler.py,sha256=wiUtzjNzxChYNqwiYnR8lixxpYG72q21VxT0MocqJNY,6305
213
210
  machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha256=teioVhLI-skNpbYOJGo7WJEnz_FHzyidHff174CZSg8,4359
214
211
  machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py,sha256=0aqH_ShEvmrzMC2oyWDds-CwtUqJNniNjp39-0wTpvQ,5391
215
212
  machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
213
  machineconfig/scripts/python/helpers_msearch/__init__.py,sha256=eZSLmDDBtML_JRn1BjU8IyzXEqjZ9-u3TYY6_hYsEKA,183
217
214
  machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag,sha256=u3EYNQ_WT8jP11V0DPXWWXmFj1rzgNBnRokVBdVZpmc,677
218
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg,sha256=v24TH1UpadimORxSH1EY3SRfiSAOVZyYXJUaifwc2qw,1188
215
+ machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg,sha256=Lqk5pMH1JiGeNzhUwdrz_zbWetOHeMp-m1wP0Ful3DE,1201
219
216
  machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga,sha256=9K84gLZbxar19FE2bjbgdTztmyFyyCH7lELr6S9PwyA,454
220
217
  machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg,sha256=JgQJGwxaChr148bDnpTB0rrqZMe2o2zGSDA9x_oUhWM,133
221
218
  machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1,sha256=Bmngm2aY8hnPa3iKAOK6EPDYdKzGLUc81wYOnJhNoqg,149
@@ -230,17 +227,18 @@ machineconfig/scripts/python/helpers_navigator/main_app.py,sha256=R1vOBMUKaiFHOg
230
227
  machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wdm7YpDBtfhwcPnSqDPFrV2LqbcSBWMT4,414
231
228
  machineconfig/scripts/python/helpers_repos/action.py,sha256=8je051kpGZ7A_GRsQyWKhPZ8xVW7tSm4bnPu6VjxaXk,9755
232
229
  machineconfig/scripts/python/helpers_repos/action_helper.py,sha256=XRCtkGkNrxauqUd9qkxtfJt02Mx2gejSYDLL0jyWn24,6176
233
- machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
234
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=Ew2L4VZ8Syk9DDjc8qXGb1KCvvFTOXAP8k82wtLyMQA,11271
230
+ machineconfig/scripts/python/helpers_repos/clone.py,sha256=9RZgs2OD2RUH6UiZKCuUvRyweDBomAm2lDG2qJmhry0,5436
231
+ machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=rdEhSET7wk-ykNa4RVAXksvveedqPpqy_9BkWY9UVh4,11271
235
232
  machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
236
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=LF4FgllgNp456OAlio2jaBbedB4CUzaZU1Ou2fyfY2c,607
233
+ machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=DN3QabwQQFwy0tx4QxL6hb3lSVrd2_NjjK6yZ-2qltM,607
237
234
  machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
238
235
  machineconfig/scripts/python/helpers_repos/grource.py,sha256=lHxyfsIQr4pbu71Ekqu-9nohR7LXbN2wufw7LPTyOgM,14639
239
236
  machineconfig/scripts/python/helpers_repos/record.py,sha256=FQo0swuJZOp0I2XGK-t1OQU4zJHmQ2z9zTpDD30Tmg4,11001
240
237
  machineconfig/scripts/python/helpers_repos/sync.py,sha256=P0P7Dog2uFDvwxcLP3YHPwm6AtvCm6QOz1BLqw53xOo,3259
241
238
  machineconfig/scripts/python/helpers_repos/update.py,sha256=cUIMUMm-50HrY6fzxSMZnFplhToVjVPZMm1j_otTha4,11060
242
239
  machineconfig/scripts/python/helpers_sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
243
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py,sha256=RPJ7cu9IIzjPw9OKEma1HEz7t5TPg1DMvVnFqoAagLE,3135
240
+ machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py,sha256=F6D-e0v405UFy-aj_pNWudxZkstPvjYR0UXLx-PR8Ms,3136
241
+ machineconfig/scripts/python/helpers_utils/path.py,sha256=lqMciHZ_YURnT6L8ygrIS01fDSlylM8xUu0JU4iNaKE,3982
244
242
  machineconfig/scripts/python/nw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
245
243
  machineconfig/scripts/python/nw/add_ssh_key.py,sha256=9JLmWu8pE7PAL5VuCFd19iVEdCR90LwY6_9P7gKQzEE,9373
246
244
  machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
@@ -261,7 +259,7 @@ machineconfig/scripts/windows/wrap_mcfg.ps1,sha256=tFCj4wK7B35Uf6kdGCRV7EIr1xZFT
261
259
  machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
262
260
  machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
263
261
  machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
264
- machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=2dJEvmiFE_38wPJeGFbPmBMvgN7anT5_g0B1omfyrAc,322
262
+ machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=LBQ-Qx0pqy36a-IDFE7ZLcntzdZN1b-sXo1lKQcpTJ8,322
265
263
  machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
266
264
  machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
267
265
  machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
@@ -375,8 +373,7 @@ machineconfig/settings/zellij/layouts/panes.kdl,sha256=KlhKtelBy4Z2ENV_pix4xE7NH
375
373
  machineconfig/settings/zellij/layouts/st.kdl,sha256=QXLRK7Wx05aKbKRHVmm4RspLYzPmEa44JMK1TwXQk58,523
376
374
  machineconfig/settings/zellij/layouts/st2.kdl,sha256=1FKTH3qQWYMWp_wPMreP7fKOTlVd4cfBy3J8fv4zCBc,1489
377
375
  machineconfig/settings/zellij/layouts/stacked_panes.kdl,sha256=usY8kKKwX1KUMXnWDivPg0i0drpM1Biw-tOnNZVjiZU,163
378
- machineconfig/setup_linux/__init__.py,sha256=5gT_vc6ze_RUMx9mk7_9kkOTyPPTo3MJFh2fq8MGToU,391
379
- machineconfig/setup_linux/apps.sh,sha256=XOEzhuwYNat83ybamUdnVhDaGf2wlQiT5wVNvz2aJYM,3262
376
+ machineconfig/setup_linux/__init__.py,sha256=Yx5W_0BHyt1iaibneHzEo27jd1DsfDl74j6mUJFn544,342
380
377
  machineconfig/setup_linux/apps_desktop.sh,sha256=L2b_pcw3GiQdoAaoMO7J4bVvUoG5Pnuy9kDhV8JqprU,3325
381
378
  machineconfig/setup_linux/apps_gui.sh,sha256=lFPYq7H2bRogPwW6QoEuSr9GnTjHS-jRM_eYg2rjOmM,2301
382
379
  machineconfig/setup_linux/uv.sh,sha256=cyegPmMMB7B3OnVx9KxZiU1JQU3Z_oqboUgwzmW2W40,487
@@ -385,14 +382,12 @@ machineconfig/setup_linux/others/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE3
385
382
  machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
386
383
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
387
384
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
388
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=T20CfLq7Rs018slMTkAQFJN3uTlI5gPt4o2VmW-mJjI,1581
389
- machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
390
- machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
385
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=7CU9mOFL1ynFTGqOuZtcHYJPiBL86HVNKyEob7PsM64,1593
386
+ machineconfig/setup_mac/__init__.py,sha256=PfdhwY4Ss-rfP7b4-9fvKwxCDtNAd-u1JdhFYnE7CwI,518
391
387
  machineconfig/setup_mac/apps_gui.sh,sha256=3alvddg918oMlJB2aUWJWpGGoaq5atlxcaOwhnyXlRI,9517
392
388
  machineconfig/setup_mac/uv.sh,sha256=CSN8oCBKS-LK1vJJqYOhAMcrouTf4Q_F3cpplc_ddMA,1157
393
389
  machineconfig/setup_mac/ssh/openssh_setup.sh,sha256=TxfySnwFYg1UQLXmJbEQ2gfEWIT084F5JvNZI9ncpc0,3537
394
- machineconfig/setup_windows/__init__.py,sha256=NnSVZkIBoxoMgkj-_KAqGonH3YziBIWXOKDEcmNAGTY,386
395
- machineconfig/setup_windows/apps.ps1,sha256=rc9M0T6pXK7QunucyF4o9KTULu5xUFOhWRC9uQJH8ho,11020
390
+ machineconfig/setup_windows/__init__.py,sha256=vBFYK6J3-N7tmbB5wqnJoHK7uMnCtI3Ln3BFHygxK9w,334
396
391
  machineconfig/setup_windows/uv.ps1,sha256=ukk1Abh-q-RfpoEqI2XTE2dcQJmHk0VFF6WqkK3TW8Q,350
397
392
  machineconfig/setup_windows/others/docker.ps1,sha256=M8NfsSxH8YlmY92J4rSe1xWOwTW8IFrdgb8cI8Riu2E,311
398
393
  machineconfig/setup_windows/others/obs.ps1,sha256=2andchcXpxS3rqZjGaMpY5VShxTAKWvw6eCrayjuaLo,30
@@ -400,25 +395,28 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
400
395
  machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
401
396
  machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
402
397
  machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
403
- machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=2ck9333VNdtp3iMvGCgURF0Q45g7MEcjKlV6jmEks08,1916
398
+ machineconfig/setup_windows/ssh/openssh-server_add_key.ps1,sha256=91cL3K4H2saAuzOS1GxGicpc64ZDpgvPY39YPBWyxZI,269
399
+ machineconfig/setup_windows/ssh/openssh-server_copy-ssh-id.ps1,sha256=-7pElYiGFXUvO4dp6rW0LXmNo65h3hFTHJWyHbmO3Xc,745
400
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=hxyXqZjknqGMy5VxEg9ilWa34vwCSt9n4IssNMNFn9A,1926
401
+ machineconfig/setup_windows/web_shortcuts/quick_init.ps1,sha256=8a5O6sFHkPxNpQxYn8hTqyS5otUZXDWLuMB0AJhJSgA,628
404
402
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
405
403
  machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
406
404
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
407
405
  machineconfig/utils/accessories.py,sha256=Rs8R0GUb2Ub6YimkgXHnI02CShS5BKlrZdCigVxfPlk,4339
408
406
  machineconfig/utils/code.py,sha256=oI5x0lZFj7MoGc32v-POhs1h20PGZnyCS5KUWRzYQZI,7825
409
- machineconfig/utils/installer.py,sha256=1ScBaTe_pRsfTYht9-LXmirgnNizNy8u1GgetUfEDO4,10351
410
- machineconfig/utils/io.py,sha256=3Z2dLf12sCXe2y2_2p2ypfIH5OCwqvKqcYjcHMgCZt0,6491
407
+ machineconfig/utils/installer.py,sha256=cXR0AWVuhAl1th37GlS7qBmEdKIqAaCIXAEiBYUu2as,9476
408
+ machineconfig/utils/io.py,sha256=6kXNd3t6FCHxZzmPOIKTCdXDRnSdHoy4IqcthwBbYGY,6456
411
409
  machineconfig/utils/links.py,sha256=m5-MfendBa8YiPPyS-lWiuu6Ru1-jU3hg3BYQgIaWg8,25012
412
410
  machineconfig/utils/meta.py,sha256=4ocYH3Zi6bVN6FVgXoGIfoasV6oxi67I9rQ8hvyYinc,9892
413
411
  machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
414
412
  machineconfig/utils/options.py,sha256=VWYx3EKJxIp-CJ8gDGYdjclKSc1tMUhyrC8v3seeneo,7447
415
413
  machineconfig/utils/path_extended.py,sha256=F9xjmuJ4JMqI6Ap2Hypvfz81BlBe-VsN0CfBaHWGEnQ,49293
416
- machineconfig/utils/path_helper.py,sha256=Yxj8qlf-g_254-dfvRx5rlisM2WA0P-BhZBEbmReeys,8095
414
+ machineconfig/utils/path_helper.py,sha256=VnsWxAKSniw-GZ5zUie56463vTjaFDyoMnH2Xf88HO8,10557
417
415
  machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,10957
418
416
  machineconfig/utils/scheduler.py,sha256=fguwvINyaupOxdU5Uadyxalh_jXTXDzt0ioEgjEOKcM,14705
419
417
  machineconfig/utils/scheduling.py,sha256=vcJgajeJPSWkJNlarYJSmLvasdOuCtBM4druOAB1Nwc,11089
420
418
  machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
421
- machineconfig/utils/ssh.py,sha256=JRXbxNejCpWl2ESLf9TmuKtNy9jZ7YeW1N3LS58fPJ8,39274
419
+ machineconfig/utils/ssh.py,sha256=OAdG1v2P4vcdrnip287J5Lx_FPCWa8tgJkmczpdRO5Y,39262
422
420
  machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
423
421
  machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
424
422
  machineconfig/utils/upgrade_packages.py,sha256=e4iJn_9vL2zCJxAR2dhKJjM0__ALKgI5yB1uBRxSjhQ,6994
@@ -439,16 +437,16 @@ machineconfig/utils/files/ouch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
439
437
  machineconfig/utils/files/ouch/decompress.py,sha256=7qPaEkMerBBXzeZyFn8hLODHZJv1aty-yGgwBxLgVys,1413
440
438
  machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
441
439
  machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
442
- machineconfig/utils/installer_utils/installer.py,sha256=HHjegZb8y1wpqe26S7laHc6DkCutfEDN4xe7wyeHV4U,11513
443
- machineconfig/utils/installer_utils/installer_abc.py,sha256=cXNDIhq1itdGUCxososxfJo029eMlVOj6hu8GY22gC4,11672
440
+ machineconfig/utils/installer_utils/installer.py,sha256=2xhzgAyifm5sHsb0y6d94UMWwRpGWMmsCCalsrnRHKA,9023
441
+ machineconfig/utils/installer_utils/installer_abc.py,sha256=_QihkKgi7-IGrQQoy8muD0iL_n65ebvqDgiv43sCudI,8984
444
442
  machineconfig/utils/installer_utils/installer_class.py,sha256=t9OlHF3br7zuYuLuO75voedRPrDmo9YOXSDxRNXe3Jk,17188
445
443
  machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=d3pwhmE-EuHPxaIoTTZeUdDUEK9QqtimV8zO3vV-7N4,2052
446
444
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
447
445
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
448
446
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
449
447
  machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
450
- machineconfig-7.51.dist-info/METADATA,sha256=_O1tnZBQLOXzZC7BQPtsf3KQpKiJybXhOnVu_4aFL3Y,3396
451
- machineconfig-7.51.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
452
- machineconfig-7.51.dist-info/entry_points.txt,sha256=_JNgkzaa_gVAWyZ6UwPwXXQqURRSvAGhrVQ1RiU2sHc,746
453
- machineconfig-7.51.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
454
- machineconfig-7.51.dist-info/RECORD,,
448
+ machineconfig-7.52.dist-info/METADATA,sha256=5EP7Tav_IS2J8azuDWuksYZ4we1zrvkCxTbwbYFdrN4,3466
449
+ machineconfig-7.52.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
450
+ machineconfig-7.52.dist-info/entry_points.txt,sha256=_JNgkzaa_gVAWyZ6UwPwXXQqURRSvAGhrVQ1RiU2sHc,746
451
+ machineconfig-7.52.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
452
+ machineconfig-7.52.dist-info/RECORD,,