machineconfig 5.64__py3-none-any.whl → 5.66__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 (32) hide show
  1. machineconfig/scripts/python/agents.py +12 -48
  2. machineconfig/scripts/python/ai/generate_files.py +197 -42
  3. machineconfig/scripts/python/croshell.py +5 -5
  4. machineconfig/scripts/python/devops_helpers/cli_config.py +1 -1
  5. machineconfig/scripts/python/devops_helpers/cli_self.py +3 -3
  6. machineconfig/scripts/python/devops_navigator.py +1 -890
  7. machineconfig/scripts/python/entry.py +17 -12
  8. machineconfig/scripts/python/fire_jobs.py +4 -4
  9. machineconfig/scripts/python/ftpx.py +4 -4
  10. machineconfig/scripts/python/helper_navigator/__init__.py +20 -0
  11. machineconfig/scripts/python/helper_navigator/command_builder.py +111 -0
  12. machineconfig/scripts/python/helper_navigator/command_detail.py +44 -0
  13. machineconfig/scripts/python/helper_navigator/command_tree.py +470 -0
  14. machineconfig/scripts/python/helper_navigator/data_models.py +28 -0
  15. machineconfig/scripts/python/helper_navigator/main_app.py +262 -0
  16. machineconfig/scripts/python/helper_navigator/search_bar.py +15 -0
  17. machineconfig/scripts/python/helpers_fire/template.sh +1 -0
  18. machineconfig/scripts/python/interactive.py +2 -2
  19. machineconfig/scripts/python/nw/mount_nfs +1 -1
  20. machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +1 -1
  21. machineconfig/scripts/python/sessions.py +1 -1
  22. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  23. machineconfig/setup_linux/web_shortcuts/interactive.sh +7 -7
  24. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +7 -7
  25. machineconfig/utils/ssh.py +2 -2
  26. {machineconfig-5.64.dist-info → machineconfig-5.66.dist-info}/METADATA +1 -2
  27. {machineconfig-5.64.dist-info → machineconfig-5.66.dist-info}/RECORD +30 -24
  28. machineconfig-5.66.dist-info/entry_points.txt +9 -0
  29. machineconfig/utils/ai/generate_file_checklist.py +0 -68
  30. machineconfig-5.64.dist-info/entry_points.txt +0 -9
  31. {machineconfig-5.64.dist-info → machineconfig-5.66.dist-info}/WHEEL +0 -0
  32. {machineconfig-5.64.dist-info → machineconfig-5.66.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,262 @@
1
+ """
2
+ Main TUI application for navigating machineconfig commands.
3
+ """
4
+
5
+ import subprocess
6
+ from textual.app import App, ComposeResult
7
+ from textual.widgets import Header, Footer, Input, Tree
8
+ from textual.binding import Binding
9
+ from machineconfig.scripts.python.helper_navigator.command_builder import CommandBuilderScreen
10
+ from machineconfig.scripts.python.helper_navigator.command_tree import CommandTree
11
+ from machineconfig.scripts.python.helper_navigator.command_detail import CommandDetail
12
+ from machineconfig.scripts.python.helper_navigator.search_bar import SearchBar
13
+ from machineconfig.scripts.python.helper_navigator.data_models import CommandInfo
14
+
15
+
16
+ class CommandNavigatorApp(App[None]):
17
+ """TUI application for navigating machineconfig commands."""
18
+
19
+ CSS = """
20
+ Screen {
21
+ layout: grid;
22
+ grid-size: 2 3;
23
+ grid-rows: auto 1fr auto;
24
+ }
25
+
26
+ Header {
27
+ column-span: 2;
28
+ background: $boost;
29
+ color: $text;
30
+ }
31
+
32
+ #search-bar {
33
+ column-span: 2;
34
+ padding: 1;
35
+ background: $surface;
36
+ height: auto;
37
+ }
38
+
39
+ .search-label {
40
+ width: auto;
41
+ padding-right: 1;
42
+ }
43
+
44
+ #search-input {
45
+ width: 1fr;
46
+ }
47
+
48
+ #command-tree {
49
+ row-span: 1;
50
+ border: solid $primary;
51
+ padding: 1;
52
+ }
53
+
54
+ #command-detail {
55
+ row-span: 1;
56
+ border: solid $primary;
57
+ padding: 1;
58
+ }
59
+
60
+ Footer {
61
+ column-span: 2;
62
+ background: $boost;
63
+ }
64
+
65
+ Button {
66
+ margin: 1;
67
+ }
68
+
69
+ CommandBuilderScreen {
70
+ align: center middle;
71
+ }
72
+
73
+ CommandBuilderScreen > VerticalScroll {
74
+ width: 80;
75
+ height: auto;
76
+ max-height: 90%;
77
+ background: $surface;
78
+ border: thick $primary;
79
+ padding: 2;
80
+ }
81
+
82
+ CommandBuilderScreen .title {
83
+ margin-bottom: 1;
84
+ }
85
+
86
+ CommandBuilderScreen Label {
87
+ margin-top: 1;
88
+ margin-bottom: 0;
89
+ }
90
+
91
+ CommandBuilderScreen Input {
92
+ margin-bottom: 1;
93
+ }
94
+
95
+ CommandBuilderScreen .buttons {
96
+ margin-top: 2;
97
+ height: auto;
98
+ align: center middle;
99
+ }
100
+ """
101
+
102
+ BINDINGS = [
103
+ Binding("q", "quit", "Quit", priority=True),
104
+ Binding("c", "copy_command", "Copy Command"),
105
+ Binding("/", "focus_search", "Search"),
106
+ Binding("?", "help", "Help"),
107
+ Binding("r", "run_command", "Run Command"),
108
+ Binding("b", "build_command", "Build Command"),
109
+ ]
110
+
111
+ def compose(self) -> ComposeResult:
112
+ """Create child widgets for the app."""
113
+ yield Header(show_clock=True)
114
+ yield SearchBar(id="search-bar")
115
+ yield CommandTree("📚 machineconfig Commands", id="command-tree")
116
+ yield CommandDetail(id="command-detail")
117
+ yield Footer()
118
+
119
+ def on_mount(self) -> None:
120
+ """Actions when app is mounted."""
121
+ self.title = "machineconfig Command Navigator"
122
+ self.sub_title = "Navigate and explore all available commands"
123
+ tree = self.query_one(CommandTree)
124
+ tree.focus()
125
+
126
+ def on_tree_node_selected(self, event: Tree.NodeSelected[CommandInfo]) -> None:
127
+ """Handle tree node selection."""
128
+ command_info = event.node.data
129
+ detail_widget = self.query_one("#command-detail", CommandDetail)
130
+ detail_widget.update_command(command_info)
131
+
132
+ def on_input_changed(self, event: Input.Changed) -> None:
133
+ """Handle search input changes."""
134
+ if event.input.id != "search-input":
135
+ return
136
+
137
+ search_term = event.value.lower()
138
+ tree = self.query_one(CommandTree)
139
+
140
+ if not search_term:
141
+ # Show all nodes - expand all root children
142
+ for node in tree.root.children:
143
+ node.expand()
144
+ return
145
+
146
+ # Filter nodes based on search term
147
+ def filter_tree(node): # type: ignore
148
+ if node.data and not node.data.is_group:
149
+ match = (search_term in node.data.name.lower() or
150
+ search_term in node.data.description.lower() or
151
+ search_term in node.data.command.lower())
152
+ return match
153
+ return False
154
+
155
+ # Expand parents of matching nodes by walking through all nodes
156
+ def walk_nodes(node): # type: ignore
157
+ """Recursively walk through tree nodes."""
158
+ yield node
159
+ for child in node.children:
160
+ yield from walk_nodes(child)
161
+
162
+ for node in walk_nodes(tree.root):
163
+ if filter_tree(node):
164
+ parent = node.parent
165
+ while parent and parent != tree.root:
166
+ parent.expand()
167
+ parent = parent.parent # type: ignore
168
+
169
+ def action_copy_command(self) -> None:
170
+ """Copy the selected command to clipboard."""
171
+ tree = self.query_one(CommandTree)
172
+ if tree.cursor_node and tree.cursor_node.data:
173
+ command = tree.cursor_node.data.command
174
+ try:
175
+ import pyperclip # type: ignore
176
+ pyperclip.copy(command)
177
+ self.notify(f"Copied: {command}", severity="information")
178
+ except ImportError:
179
+ self.notify("Install pyperclip to enable clipboard support", severity="warning")
180
+
181
+ def action_run_command(self) -> None:
182
+ """Run the selected command without arguments."""
183
+ tree = self.query_one(CommandTree)
184
+ if tree.cursor_node and tree.cursor_node.data:
185
+ command_info = tree.cursor_node.data
186
+ if command_info.is_group:
187
+ self.notify("Cannot run command groups directly", severity="warning")
188
+ return
189
+
190
+ self._execute_command(command_info.command)
191
+
192
+ def action_build_command(self) -> None:
193
+ """Open command builder for selected command."""
194
+ tree = self.query_one(CommandTree)
195
+ if tree.cursor_node and tree.cursor_node.data:
196
+ command_info = tree.cursor_node.data
197
+ if command_info.is_group:
198
+ self.notify("Cannot build command for groups", severity="warning")
199
+ return
200
+
201
+ self.push_screen(CommandBuilderScreen(command_info), self._handle_builder_result)
202
+
203
+ def _handle_builder_result(self, result: str | None) -> None:
204
+ """Handle result from command builder."""
205
+ if not result:
206
+ return
207
+
208
+ if result.startswith("EXECUTE:"):
209
+ command = result[8:]
210
+ self._execute_command(command)
211
+ elif result.startswith("COPY:"):
212
+ command = result[5:]
213
+ self._copy_to_clipboard(command)
214
+
215
+ def _execute_command(self, command: str) -> None:
216
+ """Execute a shell command."""
217
+ try:
218
+ self.notify(f"Executing: {command}", severity="information")
219
+ result = subprocess.run(command, shell=True, capture_output=True, text=True, timeout=30)
220
+
221
+ if result.returncode == 0:
222
+ output = result.stdout.strip()
223
+ if output:
224
+ self.notify(f"Success: {output[:100]}...", severity="information", timeout=5)
225
+ else:
226
+ self.notify("Command executed successfully", severity="information")
227
+ else:
228
+ error = result.stderr.strip() or "Unknown error"
229
+ self.notify(f"Error: {error[:100]}...", severity="error", timeout=10)
230
+ except subprocess.TimeoutExpired:
231
+ self.notify("Command timed out after 30 seconds", severity="warning")
232
+ except Exception as e:
233
+ self.notify(f"Failed to execute: {str(e)}", severity="error")
234
+
235
+ def _copy_to_clipboard(self, command: str) -> None:
236
+ """Copy command to clipboard."""
237
+ try:
238
+ import pyperclip # type: ignore
239
+ pyperclip.copy(command)
240
+ self.notify(f"Copied: {command}", severity="information")
241
+ except ImportError:
242
+ self.notify("Install pyperclip to enable clipboard support", severity="warning")
243
+
244
+ def action_focus_search(self) -> None:
245
+ """Focus the search input."""
246
+ search_input = self.query_one("#search-input", Input)
247
+ search_input.focus()
248
+
249
+ def action_help(self) -> None:
250
+ """Show help information."""
251
+ help_text = """
252
+ Navigation:
253
+ - ↑↓: Navigate tree
254
+ - Enter: Expand/collapse node
255
+ - /: Focus search
256
+ - c: Copy command to clipboard
257
+ - r: Run command directly (no args)
258
+ - b: Build command with arguments
259
+ - q: Quit
260
+ - ?: Show this help
261
+ """
262
+ self.notify(help_text, severity="information", timeout=10)
@@ -0,0 +1,15 @@
1
+ """
2
+ Search bar widget for filtering commands.
3
+ """
4
+
5
+ from textual.app import ComposeResult
6
+ from textual.containers import Horizontal
7
+ from textual.widgets import Label, Input
8
+
9
+
10
+ class SearchBar(Horizontal):
11
+ """Search bar widget."""
12
+
13
+ def compose(self) -> ComposeResult:
14
+ yield Label("🔍 Search: ", classes="search-label")
15
+ yield Input(placeholder="Type to search commands...", id="search-input")
@@ -10,6 +10,7 @@ PROMPT_PATH="$REPO_ROOT/src/machineconfig/scripts/python/helpers_fire/prompt.txt
10
10
  AGENTS_DIR="$REPO_ROOT/.ai/agents/$JOB_NAME"
11
11
  LAYOUT_PATH_UNBALANCED="$REPO_ROOT/.ai/agents/$JOB_NAME/layout_unbalanced.json"
12
12
 
13
+ # agents make-todo --output-path $CONTEXT_PATH
13
14
  agents create \
14
15
  --context-path "$CONTEXT_PATH" \
15
16
  --tasks-per-prompt 1 \
@@ -130,9 +130,9 @@ def execute_installations(selected_options: list[str]) -> None:
130
130
  console.print(Panel("🐍 [bold green]PYTHON ENVIRONMENT[/bold green]\n[italic]Virtual environment setup[/italic]", border_style="green"))
131
131
  import platform
132
132
  if platform.system() == "Windows":
133
- run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig""")
133
+ run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig>=5.65""")
134
134
  else:
135
- run_shell_script("""$HOME/.local/bin/uv tool install machineconfig""")
135
+ run_shell_script("""$HOME/.local/bin/uv tool install machineconfig>=5.65""")
136
136
  if "install_ssh_server" in selected_options:
137
137
  console.print(Panel("🔒 [bold red]SSH SERVER[/bold red]\n[italic]Remote access setup[/italic]", border_style="red"))
138
138
  import platform
@@ -5,7 +5,7 @@
5
5
  # mkdir ~/data/local
6
6
  # sudo mount -o nolock,noatime,nodiratime,proto=tcp,timeo=600,retrans=2,noac alex-p51s-5:/home/alex/data/local ./data/local
7
7
 
8
- uv run --python 3.14 --with machineconfig>=5.6python -m machineconfig.scripts.python.mount_nfs
8
+ uv run --python 3.14 --with machineconfig>=5.65python -m machineconfig.scripts.python.mount_nfs
9
9
  # Check if remote server is reachable and share folder exists
10
10
  if ! ping -c 1 "$remote_server" &> /dev/null; then
11
11
  echo "💥 Error: Remote server $remote_server is not reachable."
@@ -7,7 +7,7 @@ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to
7
7
  from pathlib import Path
8
8
  count_lines_path = Path(count_lines.__file__)
9
9
  # --project $HOME/code/ machineconfig --group plot
10
- cmd = f"""uv run --python 3.14 --with machineconfig[plot]>=5.6 {count_lines_path} analyze-over-time {repo_path}"""
10
+ cmd = f"""uv run --python 3.14 --with machineconfig[plot]>=5.65 {count_lines_path} analyze-over-time {repo_path}"""
11
11
  from machineconfig.utils.code import run_shell_script
12
12
  run_shell_script(cmd)
13
13
 
@@ -145,7 +145,7 @@ def get_app():
145
145
  return layouts_app
146
146
 
147
147
 
148
- def main_from_parser():
148
+ def main():
149
149
  layouts_app = get_app()
150
150
  layouts_app()
151
151
 
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with machineconfig>=5.6python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with machineconfig>=5.65python -m machineconfig.scripts.python.mount_ssh
11
11
 
12
12
  net use T: \\sshfs.kr\$user@$host.local
13
13
  # this worked: net use T: \\sshfs\alex@alex-p51s-5.local
@@ -1,25 +1,25 @@
1
1
  #!/bin/bash
2
2
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
3
3
  devops() {
4
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6 devops "$@"
4
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65 devops "$@"
5
5
  }
6
6
  agents() {
7
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6 agents "$@"
7
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65 agents "$@"
8
8
  }
9
9
  cloud() {
10
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6 cloud "$@"
10
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65 cloud "$@"
11
11
  }
12
12
  croshell() {
13
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6 croshell "$@"
13
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65 croshell "$@"
14
14
  }
15
15
  fire() {
16
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6fire "$@"
16
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65fire "$@"
17
17
  }
18
18
  ftpx() {
19
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6ftpx "$@"
19
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65ftpx "$@"
20
20
  }
21
21
  sessions() {
22
- "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.6sessions "$@"
22
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig>=5.65sessions "$@"
23
23
  }
24
24
 
25
25
  echo "devops command is now defined in this shell session."
@@ -2,30 +2,30 @@
2
2
 
3
3
  iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
4
4
  function devops {
5
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 devops $args
5
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 devops $args
6
6
  }
7
7
 
8
8
  function cloud {
9
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 cloud $args
9
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 cloud $args
10
10
  }
11
11
 
12
12
  function croshell {
13
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 croshell $args
13
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 croshell $args
14
14
  }
15
15
 
16
16
  function agents {
17
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 agents $args
17
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 agents $args
18
18
  }
19
19
 
20
20
  function fire {
21
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 fire $args
21
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 fire $args
22
22
  }
23
23
 
24
24
  function ftpx {
25
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 ftpx $args
25
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 ftpx $args
26
26
  }
27
27
 
28
28
  function sessions {
29
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.6 sessions $args
29
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with machineconfig>=5.65 sessions $args
30
30
  }
31
31
 
@@ -223,7 +223,7 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
223
223
  cmd_path.write_text(cmd, encoding="utf-8")
224
224
  self.copy_from_here(source=cmd_path, target=None)
225
225
  return self.run(
226
- cmd=f"""$HOME/.local/bin/uv run --with machineconfig>=5.6python {cmd_path.relative_to(Path.home())}""" + '"',
226
+ cmd=f"""$HOME/.local/bin/uv run --with machineconfig>=5.65python {cmd_path.relative_to(Path.home())}""" + '"',
227
227
  desc=desc or f"run_py on {self.get_remote_repr()}",
228
228
  verbose=verbose,
229
229
  strict_err=strict_err,
@@ -243,7 +243,7 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
243
243
  """
244
244
  cmd_path.write_text(cmd_total, encoding="utf-8")
245
245
  self.copy_from_here(source=cmd_path, target=None)
246
- _resp = self.run(f"""$HOME/.local/bin/uv run --with machineconfig>=5.6python {cmd_path}""", desc=desc, verbose=verbose, strict_err=True, strict_returncode=True).op.split("\n")[-1]
246
+ _resp = self.run(f"""$HOME/.local/bin/uv run --with machineconfig>=5.65python {cmd_path}""", desc=desc, verbose=verbose, strict_err=True, strict_returncode=True).op.split("\n")[-1]
247
247
  res = self.copy_to_here(source=None, target=return_path)
248
248
  import pickle
249
249
  return pickle.loads(res.read_bytes())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.64
3
+ Version: 5.66
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -27,7 +27,6 @@ Requires-Dist: pyjson5>=1.6.9
27
27
  Requires-Dist: questionary>=2.1.1
28
28
  Requires-Dist: typer-slim>=0.19.2
29
29
  Requires-Dist: typer>=0.19.2
30
- Requires-Dist: textual>=6.2.1
31
30
  Provides-Extra: windows
32
31
  Requires-Dist: pywin32; extra == "windows"
33
32
  Provides-Extra: plot
@@ -120,18 +120,18 @@ machineconfig/scripts/linux/other/share_smb,sha256=HZX8BKgMlS9JzkGIYnxTsPvoxEBBu
120
120
  machineconfig/scripts/linux/other/start_docker,sha256=_yDN_PPqgzSUnPT7dmniMTpL4IfeeaGy1a2OL3IJlDU,525
121
121
  machineconfig/scripts/linux/other/switch_ip,sha256=NQfeKMBSbFY3eP6M-BadD-TQo5qMP96DTp77KHk2tU8,613
122
122
  machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
- machineconfig/scripts/python/agents.py,sha256=kYoax1_GM6zPyIdPea63D5gdAP7RQnc_xwiC4iDwJKk,10543
123
+ machineconfig/scripts/python/agents.py,sha256=hWft2sX7ruBU7nmvBfdrjtqNE4Stpu29W12KI-qhPRQ,8721
124
124
  machineconfig/scripts/python/cloud.py,sha256=_05zIiBzG4fKhFytg9mjvMBv4qMUtQJL0RtpYUJFZ3Y,920
125
- machineconfig/scripts/python/croshell.py,sha256=GawpJM3A4Nqsh2sKZXqRGbQq-GrN1g9XBCoiQBjIm4E,7189
125
+ machineconfig/scripts/python/croshell.py,sha256=WGTsrk-ywJgotsZoWeFjUlY52r3YfmQa1gZHTBmZOA4,7186
126
126
  machineconfig/scripts/python/devops.py,sha256=U0_6h9R-1b9PBQraTVoYAzrhGdtjbwyVjlJl4iyeF2E,1583
127
- machineconfig/scripts/python/devops_navigator.py,sha256=_PlZrFrxbNHC1tRTx2n57pteUFdkszH9GtKq2JxEm4E,34940
128
- machineconfig/scripts/python/entry.py,sha256=zSWjQEpD4kimaU2yuNhlPJN3VhEFmpm6oebc_gp3GIg,1245
129
- machineconfig/scripts/python/fire_jobs.py,sha256=SRyE7spsvy8fQGwLyOMqI4o2ltqSEXCvkJNpId0BzWY,13617
130
- machineconfig/scripts/python/ftpx.py,sha256=WCdKT6B47fc6E7atBVS-U72Ez8GTy0GDOY-Q6luDT7Q,9423
131
- machineconfig/scripts/python/interactive.py,sha256=IRveYja_9omEEhRyM1M6_SlljPY2Eo_GGoK9tTi1nsk,11778
132
- machineconfig/scripts/python/sessions.py,sha256=v7MvX0LOOzABHSAsKjx416b5VpNFyoERCN0XCSqiOyw,9092
127
+ machineconfig/scripts/python/devops_navigator.py,sha256=4O9_-ACeP748NcMjWQXZF7mBQpMPxqCGhLvPG3DMi4Q,236
128
+ machineconfig/scripts/python/entry.py,sha256=hBqrwVDgUH-tISrscELh_FwVN576W1sb-RBO4ZVWRqU,1371
129
+ machineconfig/scripts/python/fire_jobs.py,sha256=O5DrckUGLxGblOcLf_iXU31pmCSpTg-c0hQZxQKD1os,13591
130
+ machineconfig/scripts/python/ftpx.py,sha256=Kgp0dKX_ULqLV2SP7-G9S_3yjpCqmNUu86X9fsYi4Rg,9399
131
+ machineconfig/scripts/python/interactive.py,sha256=Ulxi1Abku8-FtIU7fVtB9PK2cYM3QdH8WuOb9seSCTw,11790
132
+ machineconfig/scripts/python/sessions.py,sha256=PaMqJvlTbBdz_q5KxLiPwmpDGZvieg0ZTwqOxaoFfrA,9080
133
133
  machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
- machineconfig/scripts/python/ai/generate_files.py,sha256=Vfjgd0skJu-WTgqUxmOVFzaNMfSFBaFmY5oGGVY7MZY,2860
134
+ machineconfig/scripts/python/ai/generate_files.py,sha256=5nFiXc__J_8jy77y2B6jWMleCso2zP4Z3YQpZENqH5s,9829
135
135
  machineconfig/scripts/python/ai/initai.py,sha256=53MuUgk92avRPM-U3dy6o_pnEj2thlurC8U6dz41_W0,2089
136
136
  machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1,sha256=m_z4vzLrvi6bgTZumN8twcbIWb9i8ZHfVJPE8jPdxyc,5074
137
137
  machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh,sha256=Mt9D0LSEwbvVaq_wxTAch4NLyFUuDGHjn6rtEt_9alU,4615
@@ -171,12 +171,12 @@ machineconfig/scripts/python/croshell_helpers/start_slidev.py,sha256=HfJReOusTPh
171
171
  machineconfig/scripts/python/croshell_helpers/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
172
172
  machineconfig/scripts/python/croshell_helpers/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
173
173
  machineconfig/scripts/python/devops_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
- machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=9gh7dcAm9JguYYqQWLC9qpVJ8Q47TGDZadmjVfYlGAQ,3961
174
+ machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=9-dfbtZEZc_NOeP7KxruP-OavIGBzJJJAI0cRx36p_g,3953
175
175
  machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py,sha256=rjTys4FNf9_feP9flWM7Zvq17dxWmetSiGaHPxp25nk,2737
176
176
  machineconfig/scripts/python/devops_helpers/cli_data.py,sha256=f_2espL92n6SoNb5sFVMvrK7LA29HzfrFAKhxKaud1M,510
177
177
  machineconfig/scripts/python/devops_helpers/cli_nw.py,sha256=4Ko4dA8YXqiRJvuOuwZv3YOvnSJQ7-A11ezJ8EztDis,2068
178
178
  machineconfig/scripts/python/devops_helpers/cli_repos.py,sha256=GQJaCSnvNbIo_CmpYBDZOUyi0kPgn8VCr3a5Dnfy0_w,9681
179
- machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=ca5SKL8_UwY07rX2dL5jwgMBXQvZxcCdXlMhMfOSLnA,2284
179
+ machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=c0-DTkImxDPQyraxCTGO4z0pHAt-brC1pQw5nKLLVoI,2288
180
180
  machineconfig/scripts/python/devops_helpers/cli_share_server.py,sha256=285OzxttCx7YsrpOkaapMKP1eVGHmG5TkkaSQnY7i3c,3976
181
181
  machineconfig/scripts/python/devops_helpers/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
182
182
  machineconfig/scripts/python/devops_helpers/devops_add_identity.py,sha256=wvjNgqsLmqD2SxbNCW_usqfp0LI-TDvcJJKGOWt2oFw,3775
@@ -190,6 +190,13 @@ machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py,sha25
190
190
  machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
191
191
  machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
192
192
  machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=YAZb1KOVpkfTzwApk-KYPplwvDELeU62OIDdg82m-eQ,6748
193
+ machineconfig/scripts/python/helper_navigator/__init__.py,sha256=6YBy1l9ISjHE0LctVwSRMV_OFq29FOInwXFN0Ff7owM,758
194
+ machineconfig/scripts/python/helper_navigator/command_builder.py,sha256=tMIonhYPWpdPGaiGPRg8JDCvyW0h2uxL15uL_JyWsnk,4617
195
+ machineconfig/scripts/python/helper_navigator/command_detail.py,sha256=i4MdiCOVaXdRmLqr4K-F1Mk1u93bl5heIN97cRPCnzg,1692
196
+ machineconfig/scripts/python/helper_navigator/command_tree.py,sha256=EcyQmQJNW5HA1Zq_wwl6-uWwyrP1vd0hOWyDQny79Tc,19501
197
+ machineconfig/scripts/python/helper_navigator/data_models.py,sha256=62CIZ01rfCD2mKX_ihEVuhNzZ8FDnRSEIIQuyKOtmOg,533
198
+ machineconfig/scripts/python/helper_navigator/main_app.py,sha256=SCH2o7B-7clIMf9wTDs7yHtayPDqxP9atOQ0v6uaQr8,8621
199
+ machineconfig/scripts/python/helper_navigator/search_bar.py,sha256=kDi8Jhxap8wdm7YpDBtfhwcPnSqDPFrV2LqbcSBWMT4,414
193
200
  machineconfig/scripts/python/helpers_fire/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
201
  machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py,sha256=vgJMzSyLRTik2lnKYZsNzwoAF-z8Tp1aVi4wMvIJzPs,5627
195
202
  machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
@@ -198,7 +205,7 @@ machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py,sha256=mp
198
205
  machineconfig/scripts/python/helpers_fire/helpers4.py,sha256=iKR5vVJygaDIpFXhcdma9jOpyxKtUhmqcmalFxJmY0w,4749
199
206
  machineconfig/scripts/python/helpers_fire/prompt.txt,sha256=Ni6r-Dh0Ez2XwfOZl3MOMDhfn6BJ2z4IdK3wFvA3c_o,116
200
207
  machineconfig/scripts/python/helpers_fire/template.ps1,sha256=NWkYlM4_l9eT52lS9NdOxmEn548gyy-bl1Q3AU3YKxY,1085
201
- machineconfig/scripts/python/helpers_fire/template.sh,sha256=anCu6c5TwV6rdgn8t-ffWIWQ8SomjQg8kDkhcgNB87A,1125
208
+ machineconfig/scripts/python/helpers_fire/template.sh,sha256=ohK-hlH4IdUl827CacLmMLB8i5OgmY6q00ETd7bN9GQ,1172
202
209
  machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
210
  machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json,sha256=YGuJF-qlMjhICPf0QnNfQlGNPsYrJJDlNcgmes0TFhM,252
204
211
  machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py,sha256=-yRdVcKX_1XTUzWKNoNW9rjmn_NsJuk1pB5EKC4TKpU,1622
@@ -216,7 +223,7 @@ machineconfig/scripts/python/helpers_repos/grource.py,sha256=IywQ1NDPcLXM5Tr9xhm
216
223
  machineconfig/scripts/python/helpers_repos/secure_repo.py,sha256=G_quiKOLNkWD5UG8ekexgh9xbpW4Od-J1pLJbLLWnpg,993
217
224
  machineconfig/scripts/python/nw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
225
  machineconfig/scripts/python/nw/mount_drive,sha256=zemKofv7hOmRN_V3qK0q580GkfWw3VdikyVVQyiu8j8,3514
219
- machineconfig/scripts/python/nw/mount_nfs,sha256=W2j_db7QHKINJHEWtw9uMbSc2A5juHWD7fU6-gu9Nb4,1851
226
+ machineconfig/scripts/python/nw/mount_nfs,sha256=tqeI0eqW2KjReOjCAjMfF2nlivshTDi3egB-iCcQ9gI,1852
220
227
  machineconfig/scripts/python/nw/mount_nfs.py,sha256=aECrL64j9g-9rF49sVJAjGmzaoGgcMnl3g9v17kQF4c,3239
221
228
  machineconfig/scripts/python/nw/mount_nw_drive,sha256=BqjGBCbwe5ZAsZDO3L0zHhh_gJfZy1CYOcqXA4Y-WkQ,2262
222
229
  machineconfig/scripts/python/nw/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
@@ -228,7 +235,7 @@ machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=534zlYe3Xsr0mqegA
228
235
  machineconfig/scripts/python/repos_helpers/action.py,sha256=t6x9K43Uy7r5aRpdODfsN-5UoMrYXEG2cVw-Y8l9prw,14847
229
236
  machineconfig/scripts/python/repos_helpers/clone.py,sha256=9vGb9NCXT0lkerPzOJjmFfhU8LSzE-_1LDvjkhgnal0,5461
230
237
  machineconfig/scripts/python/repos_helpers/count_lines.py,sha256=ZLEajCLmlFFY969BehabqGOB9_kkpATO3Lt09L7KULk,15968
231
- machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=XlGwKNN4RIUyI_T7JJReWZ7anbjuuP2jLiTDteNxtKc,565
238
+ machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=MLdquCMrc75vUiX3RtzUnWJbN5hyyAmWxBsNKcq73ec,566
232
239
  machineconfig/scripts/python/repos_helpers/entrypoint.py,sha256=C-_D03abE0TkVCJ4jZoliUMAhRRkZ77mcwMoPOuieJQ,2827
233
240
  machineconfig/scripts/python/repos_helpers/record.py,sha256=3T5VmMbvywScZhTW2j4cGLK0T2LSWxKfnXkRTxkuLP4,10994
234
241
  machineconfig/scripts/python/repos_helpers/sync.py,sha256=CLLWy2n2gY9beXPF-mblOQ6R7cKoenkJjMiX7tHQsBk,3091
@@ -241,7 +248,7 @@ machineconfig/scripts/windows/fzfrga.bat,sha256=rU_KBMO6ii2EZ0akMnmDk9vpuhKSUZqk
241
248
  machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
242
249
  machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
243
250
  machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
244
- machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=jg-FjEm2JdjrF1CPq4G3hnXsRKkDgLmiWrgP8I4XL7Q,318
251
+ machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=KS7vIrvLqWNP08JH9R6b_hXfegADd1O0eYrEEzfiW7g,319
245
252
  machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
246
253
  machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
247
254
  machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
@@ -356,7 +363,7 @@ machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKG
356
363
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
357
364
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
358
365
  machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
359
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=gMn74zeDGp940-8dpq3irOE3j1lucUodKZmkpBhs18k,856
366
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=prIudL9ywdaDXko6qMoSEj3Hn0Vd4axtclrCnzcgHoc,863
360
367
  machineconfig/setup_windows/__init__.py,sha256=NnSVZkIBoxoMgkj-_KAqGonH3YziBIWXOKDEcmNAGTY,386
361
368
  machineconfig/setup_windows/apps.ps1,sha256=G5GqZ9G0aiQr_A-HaahtRdzpaTTdW6n3DRKMZWDTSPc,11214
362
369
  machineconfig/setup_windows/uv.ps1,sha256=mzkFJUQ57dukVQtY7WqAQIVUDMcixnkir8aNM_TYrl4,350
@@ -366,7 +373,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
366
373
  machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
367
374
  machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
368
375
  machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
369
- machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=ip168kzXFM49Gpre-PGaOnJS8w-XtTRYxOj54eL1NMs,898
376
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=hDXBz9v1zgx8bNHF44adKak3koiYEh8jO-VXkUWYzFA,905
370
377
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
371
378
  machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
372
379
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -384,12 +391,11 @@ machineconfig/utils/procs.py,sha256=w75oGKfR7FpT1pGTGd2XscnEOO0IHBWxohLbi69hLqg,
384
391
  machineconfig/utils/scheduler.py,sha256=jZ_1yghqA3-aINPRmE_76gboqJc0UElroR7urNOfXKs,14940
385
392
  machineconfig/utils/scheduling.py,sha256=RF1iXJpqf4Dg18jdZWtBixz97KAHC6VKYqTFSpdLWuc,11188
386
393
  machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
387
- machineconfig/utils/ssh.py,sha256=-kcc4ZM8HDf33zc2vwXJmSvj5Z_H8bGt2XjJkzGZits,22241
394
+ machineconfig/utils/ssh.py,sha256=9Bp3G2KJyMkJGbSNYmH1wJTH0bMkU85PXaHYaSH2pB4,22243
388
395
  machineconfig/utils/terminal.py,sha256=IlmOByfQG-vjhaFFxxzU5rWzP5_qUzmalRfuey3PAmc,11801
389
396
  machineconfig/utils/upgrade_packages.py,sha256=H96zVJEWXJW07nh5vhjuSCrPtXGqoUb7xeJsFYYdmCI,3330
390
397
  machineconfig/utils/ve.py,sha256=L-6PBXnQGXThiwWgheJMQoisAZOZA6SVCbGw2J-GFnI,2414
391
398
  machineconfig/utils/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
392
- machineconfig/utils/ai/generate_file_checklist.py,sha256=ajbmhcBToRugl75c_KZRq2XJumxKgIqQhyf7_YtF5q4,2729
393
399
  machineconfig/utils/cloud/onedrive/README.md,sha256=i20oRG110AN0yLF3DARHfWXDJjPBiSgWI8CP2HQAqrk,3774
394
400
  machineconfig/utils/cloud/onedrive/setup_oauth.py,sha256=ZTVkqgrwbV_EoPvyT8dyOTUE0ur3BW4sa9o6QYtt5Bo,2341
395
401
  machineconfig/utils/cloud/onedrive/transaction.py,sha256=m-aNcnWj_gfZVvJOSpkdIqjZxU_3nXx2CA-qKbQgP3I,26232
@@ -408,8 +414,8 @@ machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=Xbi59rU35AzR
408
414
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
409
415
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
410
416
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
411
- machineconfig-5.64.dist-info/METADATA,sha256=fO5FVp9Z-NmPHBu7RcUoLeLU3tnvfj3JBWFMjhWN6EY,3133
412
- machineconfig-5.64.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
413
- machineconfig-5.64.dist-info/entry_points.txt,sha256=cv54Fx9yQ-NKHFaOV-cGZXYg-pjBxJG0IIIdPFGZXfA,471
414
- machineconfig-5.64.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
415
- machineconfig-5.64.dist-info/RECORD,,
417
+ machineconfig-5.66.dist-info/METADATA,sha256=BdV63xX7hcbFUOPR31m0wbyRF5oK3fnC2edq8ux033w,3103
418
+ machineconfig-5.66.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
419
+ machineconfig-5.66.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
420
+ machineconfig-5.66.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
421
+ machineconfig-5.66.dist-info/RECORD,,
@@ -0,0 +1,9 @@
1
+ [console_scripts]
2
+ agents = machineconfig.scripts.python.agents:main
3
+ cloud = machineconfig.scripts.python.cloud:main
4
+ croshell = machineconfig.scripts.python.croshell:main
5
+ devops = machineconfig.scripts.python.devops:main
6
+ fire = machineconfig.scripts.python.fire_jobs:main
7
+ ftpx = machineconfig.scripts.python.ftpx:main
8
+ mcfg = machineconfig.scripts.python.entry:main
9
+ sessions = machineconfig.scripts.python.sessions:main