machineconfig 6.86__py3-none-any.whl → 6.87__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.
- machineconfig/scripts/python/agents.py +2 -15
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +7 -10
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +6 -7
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +3 -4
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +9 -10
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +4 -5
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +9 -6
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +4 -14
- machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
- machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +40 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- machineconfig/scripts/python/nw/mount_nfs +1 -1
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/setup_linux/web_shortcuts/interactive.sh +1 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +1 -1
- machineconfig/utils/ssh.py +1 -1
- {machineconfig-6.86.dist-info → machineconfig-6.87.dist-info}/METADATA +1 -1
- {machineconfig-6.86.dist-info → machineconfig-6.87.dist-info}/RECORD +23 -23
- {machineconfig-6.86.dist-info → machineconfig-6.87.dist-info}/WHEEL +0 -0
- {machineconfig-6.86.dist-info → machineconfig-6.87.dist-info}/entry_points.txt +0 -0
- {machineconfig-6.86.dist-info → machineconfig-6.87.dist-info}/top_level.txt +0 -0
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
from typing import cast, Optional, get_args, Annotated
|
|
7
7
|
import typer
|
|
8
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, HOST,
|
|
8
|
+
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, HOST, PROVIDER
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def create(
|
|
12
12
|
agent: Annotated[AGENTS, typer.Option(..., "--agents", "-a", help=f"Agent type. One of {', '.join(get_args(AGENTS)[:3])}")],
|
|
13
13
|
host: Annotated[HOST, typer.Option(..., "--host", "-h", help=f"Machine to run agents on. One of {', '.join(get_args(HOST))}")],
|
|
14
|
-
model: Annotated[
|
|
14
|
+
model: Annotated[str, typer.Option(..., "--model", "-m", help="Model to use (for crush agent).")],
|
|
15
15
|
provider: Annotated[PROVIDER, typer.Option(..., "--provider", "-p", help=f"Provider to use (for crush agent). One of {', '.join(get_args(PROVIDER)[:3])}")],
|
|
16
16
|
context_path: Annotated[Optional[Path], typer.Option(..., "--context-path", "-c", help="Path to the context file/folder, defaults to .ai/todo/")] = None,
|
|
17
17
|
separator: Annotated[str, typer.Option(..., "--separator", "-s", help="Separator for context")] = "\n",
|
|
@@ -26,20 +26,9 @@ def create(
|
|
|
26
26
|
|
|
27
27
|
from machineconfig.scripts.python.helpers_agents.fire_agents_help_launch import prep_agent_launch, get_agents_launch_layout
|
|
28
28
|
from machineconfig.scripts.python.helpers_agents.fire_agents_load_balancer import chunk_prompts
|
|
29
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import PROVIDER2MODEL
|
|
30
29
|
from machineconfig.utils.accessories import get_repo_root, randstr
|
|
31
30
|
import json
|
|
32
31
|
|
|
33
|
-
# validate model is valid for the provider
|
|
34
|
-
valid_models_for_provider = PROVIDER2MODEL.get(provider, [])
|
|
35
|
-
if model not in valid_models_for_provider:
|
|
36
|
-
available_models = "\n ".join(valid_models_for_provider) if valid_models_for_provider else "(none configured)"
|
|
37
|
-
raise typer.BadParameter(
|
|
38
|
-
f"Model '{model}' is not valid for provider '{provider}'.\n"
|
|
39
|
-
f"Valid models for '{provider}':\n {available_models}\n"
|
|
40
|
-
f"All available models: {', '.join(get_args(MODEL))}"
|
|
41
|
-
)
|
|
42
|
-
|
|
43
32
|
# validate mutual exclusive
|
|
44
33
|
prompt_options = [prompt, prompt_path]
|
|
45
34
|
provided_prompt = [opt for opt in prompt_options if opt is not None]
|
|
@@ -179,8 +168,6 @@ def get_app():
|
|
|
179
168
|
PROVIDER options: {', '.join(get_args(PROVIDER))}
|
|
180
169
|
{sep}
|
|
181
170
|
AGENT options: {', '.join(get_args(AGENTS))}
|
|
182
|
-
{sep}
|
|
183
|
-
MODEL options: {sep.join(get_args(MODEL))}
|
|
184
171
|
"""
|
|
185
172
|
agents_app.command("create", no_args_is_help=True, help=agents_full_help)(create)
|
|
186
173
|
agents_app.command("c", no_args_is_help=True, help="Create agents layout file, ready to run.", hidden=True)(create)
|
|
@@ -67,18 +67,19 @@ uv run --project {repo_root} --with marimo marimo edit --host 0.0.0.0 marimo_nb.
|
|
|
67
67
|
|
|
68
68
|
if choice_file.suffix == ".py":
|
|
69
69
|
from machineconfig.scripts.python.helpers_fire_command.fire_jobs_route_helper import get_command_streamlit
|
|
70
|
+
with_project = f"--project {repo_root} " if repo_root is not None else ""
|
|
70
71
|
if args.streamlit:
|
|
71
72
|
exe = get_command_streamlit(choice_file=choice_file, environment=args.environment, repo_root=repo_root)
|
|
72
|
-
exe = f"uv run {exe} "
|
|
73
|
-
elif args.jupyter: exe = "uv run jupyter-lab"
|
|
73
|
+
exe = f"uv run {with_project} {exe} "
|
|
74
|
+
elif args.jupyter: exe = f"uv run {with_project} jupyter-lab"
|
|
74
75
|
else:
|
|
75
76
|
if args.interactive:
|
|
76
77
|
_ve_root_from_file, ipy_profile = get_ve_path_and_ipython_profile(choice_file)
|
|
77
78
|
if ipy_profile is None:
|
|
78
79
|
ipy_profile = "default"
|
|
79
|
-
exe = f"uv run ipython -i --no-banner --profile {ipy_profile} "
|
|
80
|
+
exe = f"uv run {with_project} ipython -i --no-banner --profile {ipy_profile} "
|
|
80
81
|
else:
|
|
81
|
-
exe = "uv run python "
|
|
82
|
+
exe = f"uv run {with_project} python "
|
|
82
83
|
elif choice_file.suffix == ".ps1" or choice_file.suffix == ".sh": exe = "."
|
|
83
84
|
elif choice_file.suffix == "": exe = ""
|
|
84
85
|
else: raise NotImplementedError(f"File type {choice_file.suffix} not supported, in the sense that I don't know how to fire it.")
|
|
@@ -155,12 +156,8 @@ uv run --project {repo_root} --with marimo marimo edit --host 0.0.0.0 marimo_nb.
|
|
|
155
156
|
if args.git_pull:
|
|
156
157
|
command = f"\ngit -C {choice_file.parent} pull\n" + command
|
|
157
158
|
if args.PathExport:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
elif platform.system() == "Windows":
|
|
161
|
-
export_line = f"""$env:PYTHONPATH="{repo_root}""" + """:$env:PYTHONPATH" """
|
|
162
|
-
else:
|
|
163
|
-
raise NotImplementedError(f"Platform {platform.system()} not supported.")
|
|
159
|
+
from machineconfig.scripts.python.helpers_fire_command.file_wrangler import add_to_path
|
|
160
|
+
export_line = add_to_path(path_variable="PYTHONPATH", directory=str(repo_root))
|
|
164
161
|
command = export_line + "\n" + command
|
|
165
162
|
if args.loop:
|
|
166
163
|
if platform.system() in ["Linux", "Darwin"]:
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
# import shlex
|
|
4
|
-
from
|
|
5
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import HOST, PROVIDER, MODEL
|
|
4
|
+
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
|
|
6
5
|
|
|
7
6
|
|
|
8
|
-
def fire_crush(
|
|
9
|
-
match machine:
|
|
7
|
+
def fire_crush(ai_spec: AI_SPEC, prompt_path: Path, repo_root: Path) -> str:
|
|
8
|
+
match ai_spec["machine"]:
|
|
10
9
|
case "local":
|
|
11
10
|
cmd = f"""
|
|
12
11
|
crush run {prompt_path}
|
|
13
12
|
"""
|
|
14
13
|
case "docker":
|
|
15
|
-
assert api_key is not None, "API key is required for Crush agent in docker mode."
|
|
14
|
+
assert ai_spec["api_key"] is not None, "API key is required for Crush agent in docker mode."
|
|
16
15
|
json_path = Path(__file__).parent / "fire_crush.json"
|
|
17
16
|
json_template = json_path.read_text(encoding="utf-8")
|
|
18
|
-
json_filled = json_template.replace("{api_key}", api_key).replace("{model}", model).replace("{provider}", provider)
|
|
17
|
+
json_filled = json_template.replace("{api_key}", ai_spec["api_key"]).replace("{model}", ai_spec["model"]).replace("{provider}", ai_spec["provider"])
|
|
19
18
|
from machineconfig.utils.accessories import randstr
|
|
20
19
|
temp_config_file_local = Path.home().joinpath("tmp_results/tmp_files/crush_" + randstr(8) + ".json")
|
|
21
20
|
temp_config_file_local.parent.mkdir(parents=True, exist_ok=True)
|
|
@@ -23,7 +22,7 @@ crush run {prompt_path}
|
|
|
23
22
|
cmd = f"""
|
|
24
23
|
|
|
25
24
|
# -e "PATH_PROMPT=$PATH_PROMPT"
|
|
26
|
-
# opencode --model "{provider}/{model}" run {prompt_path}
|
|
25
|
+
# opencode --model "{ai_spec["provider"]}/{ai_spec["model"]}" run {prompt_path}
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
echo "Running prompt @ {prompt_path.relative_to(repo_root)} using Docker with Crush..."
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
# import shlex
|
|
5
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import
|
|
6
|
-
from typing import Optional
|
|
5
|
+
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
|
|
7
6
|
|
|
8
|
-
def fire_cursor(
|
|
9
|
-
match machine:
|
|
7
|
+
def fire_cursor(ai_spec: AI_SPEC, prompt_path: Path) -> str:
|
|
8
|
+
match ai_spec["machine"]:
|
|
10
9
|
case "local":
|
|
11
10
|
# Export the environment variable so it's available to subshells
|
|
12
11
|
cmd = f"""
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
import shlex
|
|
4
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import
|
|
5
|
-
from typing import Optional, Literal
|
|
4
|
+
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
|
|
6
5
|
|
|
7
6
|
|
|
8
|
-
def fire_gemini(
|
|
9
|
-
_ = provider
|
|
7
|
+
def fire_gemini(ai_spec: AI_SPEC, prompt_path: Path, repo_root: Path) -> str:
|
|
8
|
+
_ = ai_spec["provider"]
|
|
10
9
|
# model = "gemini-2.5-flash-lite"
|
|
11
10
|
# model = None # auto-select
|
|
12
11
|
# if model is None:
|
|
13
12
|
# model_arg = ""
|
|
14
13
|
# else:
|
|
15
|
-
model_arg = f"--model {shlex.quote(model)}"
|
|
14
|
+
model_arg = f"--model {shlex.quote(ai_spec['model'])}"
|
|
16
15
|
# Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
|
|
17
16
|
safe_path = shlex.quote(str(prompt_path))
|
|
18
17
|
|
|
19
|
-
match machine:
|
|
18
|
+
match ai_spec["machine"]:
|
|
20
19
|
case "local":
|
|
21
20
|
# Export the environment variable so it's available to subshells
|
|
22
|
-
if api_key is not None:
|
|
23
|
-
define_api_key = f"""export GEMINI_API_KEY="{shlex.quote(api_key)}" """
|
|
21
|
+
if ai_spec["api_key"] is not None:
|
|
22
|
+
define_api_key = f"""export GEMINI_API_KEY="{shlex.quote(ai_spec['api_key'])}" """
|
|
24
23
|
else:
|
|
25
24
|
define_api_key = "echo 'Warning: No GEMINI_API_KEY provided, hoping it is set in the environment.'"
|
|
26
25
|
cmd = f"""
|
|
@@ -31,10 +30,10 @@ gemini {model_arg} --yolo --prompt {safe_path}
|
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
case "docker":
|
|
34
|
-
assert api_key is not None, "When using docker, api_key must be provided."
|
|
33
|
+
assert ai_spec["api_key"] is not None, "When using docker, api_key must be provided."
|
|
35
34
|
cmd = f"""
|
|
36
35
|
docker run -it --rm \
|
|
37
|
-
-e GEMINI_API_KEY="{api_key}" \
|
|
36
|
+
-e GEMINI_API_KEY="{ai_spec['api_key']}" \
|
|
38
37
|
-v "{repo_root}:/workspace/{repo_root.name}" \
|
|
39
38
|
-w "/workspace/{repo_root.name}" \
|
|
40
39
|
statistician/machineconfig-ai:latest \
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
import shlex
|
|
4
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import
|
|
5
|
-
from typing import Optional, Literal
|
|
4
|
+
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AI_SPEC
|
|
6
5
|
|
|
7
6
|
|
|
8
|
-
def fire_qwen(
|
|
7
|
+
def fire_qwen(ai_spec: AI_SPEC, prompt_path: Path, repo_root: Path, config_dir: str | None) -> str:
|
|
9
8
|
# assert model == "qwen", "Only qwen is supported currently."
|
|
10
9
|
# assert provider == "qwen", "Only qwen is supported currently."
|
|
11
10
|
# model = "qwen"
|
|
@@ -14,12 +13,12 @@ def fire_qwen(config_dir: Optional[str], model: Literal["qwen"], provider: Liter
|
|
|
14
13
|
# if model is None:
|
|
15
14
|
# model_arg = ""
|
|
16
15
|
# else:
|
|
17
|
-
_ = provider
|
|
16
|
+
_ = ai_spec["provider"]
|
|
18
17
|
# model_arg = f"--model {shlex.quote(model)}"
|
|
19
18
|
# Need a real shell for the pipeline; otherwise '| gemini ...' is passed as args to 'cat'
|
|
20
19
|
safe_path = shlex.quote(str(prompt_path))
|
|
21
20
|
|
|
22
|
-
match machine:
|
|
21
|
+
match ai_spec["machine"]:
|
|
23
22
|
case "local":
|
|
24
23
|
# Export the environment variable so it's available to subshells
|
|
25
24
|
cmd = f"""
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import random
|
|
3
3
|
import shlex
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, AGENT_NAME_FORMATTER, HOST, PROVIDER,
|
|
5
|
+
from machineconfig.scripts.python.helpers_agents.fire_agents_helper_types import AGENTS, AGENT_NAME_FORMATTER, HOST, PROVIDER, AI_SPEC
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def get_api_keys(provider: PROVIDER) -> list[str]:
|
|
@@ -20,7 +20,7 @@ def get_api_keys(provider: PROVIDER) -> list[str]:
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
def prep_agent_launch(repo_root: Path, agents_dir: Path, prompts_material: list[str], prompt_prefix: str, keep_material_in_separate_file: bool,
|
|
23
|
-
machine: HOST, model:
|
|
23
|
+
machine: HOST, model: str, provider: PROVIDER, agent: AGENTS, *, job_name: str) -> None:
|
|
24
24
|
agents_dir.mkdir(parents=True, exist_ok=True)
|
|
25
25
|
prompt_folder = agents_dir / "prompts"
|
|
26
26
|
prompt_folder.mkdir(parents=True, exist_ok=True)
|
|
@@ -66,17 +66,20 @@ sleep 0.1
|
|
|
66
66
|
assert provider == "google", "Gemini agent only works with google provider."
|
|
67
67
|
api_keys = get_api_keys(provider="google")
|
|
68
68
|
api_key = api_keys[idx % len(api_keys)] if len(api_keys) > 0 else None
|
|
69
|
+
ai_spec: AI_SPEC = AI_SPEC(provider=provider, model="gemini-2.5-pro", agent=agent, machine=machine, api_key=api_key, api_name="gemini")
|
|
69
70
|
from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_gemini import fire_gemini
|
|
70
|
-
cmd = fire_gemini(
|
|
71
|
+
cmd = fire_gemini(ai_spec=ai_spec, prompt_path=prompt_path, repo_root=repo_root)
|
|
71
72
|
case "cursor-agent":
|
|
73
|
+
ai_spec: AI_SPEC = AI_SPEC(provider=provider, model=model, agent=agent, machine=machine, api_key=None, api_name="cursor")
|
|
72
74
|
from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_cursor_agents import fire_cursor
|
|
73
|
-
cmd = fire_cursor(
|
|
75
|
+
cmd = fire_cursor(ai_spec=ai_spec, prompt_path=prompt_path)
|
|
74
76
|
raise NotImplementedError("Cursor agent is not implemented yet, api key missing")
|
|
75
77
|
case "crush":
|
|
76
|
-
from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_crush import fire_crush
|
|
77
78
|
api_keys = get_api_keys(provider=provider)
|
|
78
79
|
api_key = api_keys[idx % len(api_keys)] if len(api_keys) > 0 else None
|
|
79
|
-
|
|
80
|
+
ai_spec: AI_SPEC = AI_SPEC(provider=provider, model=model, agent=agent, machine=machine, api_key=api_key, api_name="crush")
|
|
81
|
+
from machineconfig.scripts.python.helpers_agents.agentic_frameworks.fire_crush import fire_crush
|
|
82
|
+
cmd = fire_crush(ai_spec=ai_spec, prompt_path=prompt_path, repo_root=repo_root)
|
|
80
83
|
# case "q":
|
|
81
84
|
# from machineconfig.scripts.python.helpers_fire.fire_q import fire_q
|
|
82
85
|
# cmd = fire_q(api_key="", prompt_path=prompt_path, machine=machine)
|
|
@@ -19,24 +19,14 @@ from typing import Literal, TypeAlias, TypedDict
|
|
|
19
19
|
AGENTS: TypeAlias = Literal["cursor-agent", "gemini", "qwen-code", "copilot", "crush", "q", "opencode", "kilocode", "cline", "auggie", "warp", "droid"]
|
|
20
20
|
HOST: TypeAlias = Literal["local", "docker"]
|
|
21
21
|
PROVIDER: TypeAlias = Literal["azure", "google", "aws", "openai", "anthropic", "openrouter", "xai"]
|
|
22
|
-
MODEL: TypeAlias = Literal["zai/glm-4.6", "anthropic/sonnet-4.5", "google/gemini-2.5-pro", "openai/gpt-5-codex",
|
|
23
|
-
"openrouter/supernova", "openrouter/andromeda-alpha", "x-ai/grok-4-fast:free",
|
|
24
|
-
]
|
|
25
|
-
PROVIDER2MODEL: dict[PROVIDER, list[MODEL]] = {
|
|
26
|
-
"azure": ["zai/glm-4.6"],
|
|
27
|
-
"google": ["google/gemini-2.5-pro"],
|
|
28
|
-
"aws": [],
|
|
29
|
-
"openai": ["openai/gpt-5-codex"],
|
|
30
|
-
"anthropic": ["anthropic/sonnet-4.5"],
|
|
31
|
-
"openrouter": ["openrouter/supernova", "openrouter/andromeda-alpha"],
|
|
32
|
-
"xai": ["x-ai/grok-4-fast:free"]
|
|
33
|
-
}
|
|
34
22
|
|
|
35
23
|
class AI_SPEC(TypedDict):
|
|
36
24
|
provider: PROVIDER
|
|
37
|
-
model:
|
|
25
|
+
model: str
|
|
38
26
|
agent: AGENTS
|
|
39
|
-
machine: HOST
|
|
27
|
+
machine: HOST
|
|
28
|
+
api_key: str | None
|
|
29
|
+
api_name: str
|
|
40
30
|
|
|
41
31
|
|
|
42
32
|
AGENT_NAME_FORMATTER = "agent_{idx}_cmd.sh" # e.g., agent_0_cmd.sh
|
|
@@ -46,7 +46,7 @@ def path():
|
|
|
46
46
|
uv_with = ["textual"]
|
|
47
47
|
uv_project_dir = None
|
|
48
48
|
if not Path.home().joinpath("code/machineconfig").exists():
|
|
49
|
-
uv_with.append("machineconfig>=6.
|
|
49
|
+
uv_with.append("machineconfig>=6.87")
|
|
50
50
|
else:
|
|
51
51
|
uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
|
|
52
52
|
run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
|
|
@@ -41,9 +41,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
|
|
|
41
41
|
else:
|
|
42
42
|
import platform
|
|
43
43
|
if platform.system() == "Windows":
|
|
44
|
-
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.
|
|
44
|
+
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.87" """)
|
|
45
45
|
else:
|
|
46
|
-
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.
|
|
46
|
+
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.87" """)
|
|
47
47
|
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
48
48
|
if not no_copy_assets:
|
|
49
49
|
create_default_shell_profile() # involves copying assets too
|
|
@@ -68,7 +68,7 @@ def navigate():
|
|
|
68
68
|
path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
|
|
69
69
|
from machineconfig.utils.code import run_shell_script
|
|
70
70
|
if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
|
|
71
|
-
else: executable = """--with "machineconfig>=6.
|
|
71
|
+
else: executable = """--with "machineconfig>=6.87,textual" """
|
|
72
72
|
run_shell_script(f"""uv run {executable} {path}""")
|
|
73
73
|
|
|
74
74
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
1
|
from typing import Optional
|
|
3
2
|
import os
|
|
4
3
|
from machineconfig.utils.path_extended import PathExtended
|
|
4
|
+
import platform
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
def search_for_files_of_interest(path_obj: PathExtended):
|
|
@@ -125,3 +125,42 @@ def wrap_import_in_try_except(import_line: str, pyfile: str, repo_root: Optional
|
|
|
125
125
|
sys.path.append(repo_root)
|
|
126
126
|
exec(f"from {Path(pyfile).stem} import *")
|
|
127
127
|
print(fr"✅ Successfully imported `{pyfile}`")
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def add_to_path(path_variable: str, directory: str) -> str:
|
|
131
|
+
"""
|
|
132
|
+
Generate shell script to add directory to path_variable.
|
|
133
|
+
Handles both Windows (cmd) and Unix-like systems (bash/zsh).
|
|
134
|
+
Checks if variable exists before appending, otherwise creates it.
|
|
135
|
+
"""
|
|
136
|
+
system = platform.system()
|
|
137
|
+
|
|
138
|
+
if system == "Windows":
|
|
139
|
+
script = f"""# Check if {path_variable} is defined
|
|
140
|
+
if (Test-Path env:{path_variable}) {{
|
|
141
|
+
Write-Host "Adding {directory} to existing {path_variable}"
|
|
142
|
+
$currentValue = [Environment]::GetEnvironmentVariable("{path_variable}", "User")
|
|
143
|
+
$newValue = "$currentValue;{directory}"
|
|
144
|
+
[Environment]::SetEnvironmentVariable("{path_variable}", $newValue, "User")
|
|
145
|
+
$env:{path_variable} = $newValue
|
|
146
|
+
}} else {{
|
|
147
|
+
Write-Host "Creating new {path_variable} variable"
|
|
148
|
+
[Environment]::SetEnvironmentVariable("{path_variable}", "{directory}", "User")
|
|
149
|
+
$env:{path_variable} = "{directory}"
|
|
150
|
+
}}
|
|
151
|
+
Write-Host "{path_variable} is now: $env:{path_variable}\""""
|
|
152
|
+
return script
|
|
153
|
+
else:
|
|
154
|
+
script = f"""#!/bin/bash
|
|
155
|
+
# Check if {path_variable} is defined and not empty
|
|
156
|
+
if [ -z "${{{path_variable}}}" ]; then
|
|
157
|
+
echo "Creating new {path_variable} variable"
|
|
158
|
+
export {path_variable}="{directory}"
|
|
159
|
+
else
|
|
160
|
+
echo "Adding {directory} to existing {path_variable}"
|
|
161
|
+
export {path_variable}="${{{path_variable}}}:{directory}"
|
|
162
|
+
fi
|
|
163
|
+
echo "{path_variable} is now: ${{{path_variable}}}"
|
|
164
|
+
"""
|
|
165
|
+
return script
|
|
166
|
+
|
|
@@ -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>=6.
|
|
8
|
+
uv run --python 3.14 --with "machineconfig>=6.87" python -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 @@ $user = ''
|
|
|
7
7
|
$sharePath = ''
|
|
8
8
|
$driveLetter = ''
|
|
9
9
|
|
|
10
|
-
uv run --python 3.14 --with "machineconfig>=6.
|
|
10
|
+
uv run --python 3.14 --with "machineconfig>=6.87" python -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,7 +1,7 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
. <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
|
|
3
3
|
mcfg() {
|
|
4
|
-
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.
|
|
4
|
+
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.87" mcfg "$@"
|
|
5
5
|
}
|
|
6
6
|
alias d="mcfg devops"
|
|
7
7
|
alias c="mcfg cloud"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
4
4
|
function mcfg {
|
|
5
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.
|
|
5
|
+
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.87" mcfg $args
|
|
6
6
|
}
|
|
7
7
|
function d { mcfg devops @args }
|
|
8
8
|
function c { mcfg cloud @args }
|
machineconfig/utils/ssh.py
CHANGED
|
@@ -8,7 +8,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>=6.
|
|
11
|
+
MACHINECONFIG_VERSION = "machineconfig>=6.87"
|
|
12
12
|
DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
|
|
13
13
|
|
|
14
14
|
class SSH:
|
|
@@ -118,12 +118,12 @@ machineconfig/scripts/linux/other/share_nfs,sha256=LDQZQ9TV7z2y7RtNHiO4Wb513Mzty
|
|
|
118
118
|
machineconfig/scripts/linux/other/start_docker,sha256=_yDN_PPqgzSUnPT7dmniMTpL4IfeeaGy1a2OL3IJlDU,525
|
|
119
119
|
machineconfig/scripts/linux/other/switch_ip,sha256=NQfeKMBSbFY3eP6M-BadD-TQo5qMP96DTp77KHk2tU8,613
|
|
120
120
|
machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
-
machineconfig/scripts/python/agents.py,sha256=
|
|
121
|
+
machineconfig/scripts/python/agents.py,sha256=aVbLQDgpngXZm4taHcED4sAxyHvV2_Dz5VW3apPcQcY,10651
|
|
122
122
|
machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yyeehw_cU8,1263
|
|
123
123
|
machineconfig/scripts/python/croshell.py,sha256=QyQbVboNqDQHJkUeSsJvdT212t4TW46yat3GBzneqsQ,8649
|
|
124
124
|
machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
|
|
125
125
|
machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
|
|
126
|
-
machineconfig/scripts/python/fire_jobs.py,sha256=
|
|
126
|
+
machineconfig/scripts/python/fire_jobs.py,sha256=t_ciW_Uu9L6fzgrFianT6_mUHCJQeFV21VWsrYJRPRw,13875
|
|
127
127
|
machineconfig/scripts/python/ftpx.py,sha256=A13hL_tDYfcsaK9PkshK-0lrUS6KPhPCtwqWtLSo6IM,9764
|
|
128
128
|
machineconfig/scripts/python/interactive.py,sha256=zt3g6nGKR_Y5A57UnR4Y5-JpLzrpnCOSaqU1bnaikK0,11666
|
|
129
129
|
machineconfig/scripts/python/mcfg.py,sha256=TB5lZDZDImGqX4_mMSEv4ZoFigIPA0RXn-9H2cmPS6g,2457
|
|
@@ -162,18 +162,18 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
|
|
|
162
162
|
machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
163
163
|
machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
|
|
164
164
|
machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
|
|
165
|
-
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=
|
|
165
|
+
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=ItVcsmF6EFYSo_MoR7b1XEfydu1Hw91muE2k88SpXv8,6932
|
|
166
166
|
machineconfig/scripts/python/helpers_agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
|
-
machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py,sha256=
|
|
167
|
+
machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py,sha256=YD6-rtudHNip8tx85amSmOZZIHBP9khq4az3dF41j6U,5934
|
|
168
168
|
machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
|
|
169
|
-
machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py,sha256=
|
|
169
|
+
machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py,sha256=yLES5EVu-NNJ6_scZ22jvI8O9cDb3-tpNN606h4LctA,824
|
|
170
170
|
machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
|
|
171
171
|
machineconfig/scripts/python/helpers_agents/agentic_frameworks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
172
|
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json,sha256=YGuJF-qlMjhICPf0QnNfQlGNPsYrJJDlNcgmes0TFhM,252
|
|
173
|
-
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py,sha256=
|
|
174
|
-
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py,sha256=
|
|
175
|
-
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py,sha256=
|
|
176
|
-
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py,sha256=
|
|
173
|
+
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py,sha256=QcHVXodLRqso1Y71AhN06hfOckCQfDZfiCkaipOJyA8,1754
|
|
174
|
+
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py,sha256=4LD841Qk9PRP6I97oNlV_twixoERg4IVdZjvy49mGVk,529
|
|
175
|
+
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py,sha256=6FHDONsdvEjA97ZIB7sWP6w2TgjzheW7YEF95xDnc_A,1518
|
|
176
|
+
machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py,sha256=BIb3hdT4YQB931rhqKmTNz_qbHfurF1wimzrGeUCSRA,1636
|
|
177
177
|
machineconfig/scripts/python/helpers_agents/templates/prompt.txt,sha256=sX7Fh_hxaazNw-cv9hIw_XdL6WTcsiG53ILwoyZWv5o,257
|
|
178
178
|
machineconfig/scripts/python/helpers_agents/templates/template.ps1,sha256=9F7h9NMIJisunMIii2wETpgonQmiGLHLHfWg9k_QWKo,859
|
|
179
179
|
machineconfig/scripts/python/helpers_agents/templates/template.sh,sha256=RJRw5xZv0-NGJkKeuOiEeXFiaZ07RJJUlttJfs7il90,986
|
|
@@ -192,12 +192,12 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
|
|
|
192
192
|
machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
193
193
|
machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
194
194
|
machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
|
-
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=
|
|
195
|
+
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=rj8Y60RvpGfa7OhZQbrZisRDgeEDXx7Vc_DOWGLTF2I,7218
|
|
196
196
|
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=fluxRtD6hlbh131_RmeKr2Dy8tZpeC4H9-wp2sYt0dM,2486
|
|
197
197
|
machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
|
|
198
198
|
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=edeZPhQrm-hvOx80TPt9GNZXlXq9kkTaRSZSpNdku8w,6441
|
|
199
199
|
machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSPWiqSK3PZ1XADyx3llw_YkbxaKyE,12505
|
|
200
|
-
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=
|
|
200
|
+
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=vP0FBM1f7qT8A0AtYDdnzOTtcGoJJXbsKFjC41awmMg,6225
|
|
201
201
|
machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=q9pFJ6AxPuygMr3onMNOKEuuQHbVE_6Qoyo7xRT5FX0,4196
|
|
202
202
|
machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
|
|
203
203
|
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=B9pnosujOxZLpwzJO4YAqeO-2rvvOFIZgrUwGREZXfM,11118
|
|
@@ -211,7 +211,7 @@ machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.ps1,sha
|
|
|
211
211
|
machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py,sha256=pRXAGe2IpysYshsaF8CKEwHI8EGPtLcM8PtiAqM7vmM,3425
|
|
212
212
|
machineconfig/scripts/python/helpers_fire_command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
213
213
|
machineconfig/scripts/python/helpers_fire_command/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
|
|
214
|
-
machineconfig/scripts/python/helpers_fire_command/file_wrangler.py,sha256=
|
|
214
|
+
machineconfig/scripts/python/helpers_fire_command/file_wrangler.py,sha256=tZS9qXOXiHltiZ9JHEs2serGEFm0uLbz7xh6ZBAa2l0,6946
|
|
215
215
|
machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha256=teioVhLI-skNpbYOJGo7WJEnz_FHzyidHff174CZSg8,4359
|
|
216
216
|
machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py,sha256=0aqH_ShEvmrzMC2oyWDds-CwtUqJNniNjp39-0wTpvQ,5391
|
|
217
217
|
machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -225,7 +225,7 @@ machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wd
|
|
|
225
225
|
machineconfig/scripts/python/helpers_repos/action.py,sha256=8je051kpGZ7A_GRsQyWKhPZ8xVW7tSm4bnPu6VjxaXk,9755
|
|
226
226
|
machineconfig/scripts/python/helpers_repos/action_helper.py,sha256=XRCtkGkNrxauqUd9qkxtfJt02Mx2gejSYDLL0jyWn24,6176
|
|
227
227
|
machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
|
|
228
|
-
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=
|
|
228
|
+
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=pWZ11gkxRfN6PPOhPIgyZexA4jBZqMMzQjdT8mBL6OY,10450
|
|
229
229
|
machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
|
|
230
230
|
machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=vSDtrF4829jziwp6WZmGt9G8MJ9jY4hfXqtf0vhkYSE,607
|
|
231
231
|
machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
|
|
@@ -241,7 +241,7 @@ machineconfig/scripts/python/nw/add_ssh_key.py,sha256=9JLmWu8pE7PAL5VuCFd19iVEdC
|
|
|
241
241
|
machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
|
|
242
242
|
machineconfig/scripts/python/nw/devops_add_ssh_key.py,sha256=CkIl85hZLtG9k7yXLSzqi88YrilHV4hIUWHAPBwxWjw,8922
|
|
243
243
|
machineconfig/scripts/python/nw/mount_drive,sha256=zemKofv7hOmRN_V3qK0q580GkfWw3VdikyVVQyiu8j8,3514
|
|
244
|
-
machineconfig/scripts/python/nw/mount_nfs,sha256=
|
|
244
|
+
machineconfig/scripts/python/nw/mount_nfs,sha256=alchs6FVme2HpAIa316HvyO29ypnKsCEy64eZ09aEa0,1855
|
|
245
245
|
machineconfig/scripts/python/nw/mount_nfs.py,sha256=lOMDY4RS7tx8gsCazVR5tNNwFbaRyO2PJlnwBCDQgCM,3573
|
|
246
246
|
machineconfig/scripts/python/nw/mount_nw_drive,sha256=BqjGBCbwe5ZAsZDO3L0zHhh_gJfZy1CYOcqXA4Y-WkQ,2262
|
|
247
247
|
machineconfig/scripts/python/nw/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
|
|
@@ -260,7 +260,7 @@ machineconfig/scripts/windows/term.ps1,sha256=nme_OWis84qN-zI2c0rdysNcDIdoaEKajX
|
|
|
260
260
|
machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
|
|
261
261
|
machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
|
|
262
262
|
machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
|
|
263
|
-
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=
|
|
263
|
+
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=HiOurQAeM8XLj1LG398K4p7QLa1ItV3GMkxzL9yo8VI,322
|
|
264
264
|
machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
|
|
265
265
|
machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
|
|
266
266
|
machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
|
|
@@ -377,7 +377,7 @@ machineconfig/setup_linux/others/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE3
|
|
|
377
377
|
machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
|
|
378
378
|
machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
|
|
379
379
|
machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
380
|
-
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=
|
|
380
|
+
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=Q8fQ5Jgw2f_BVEhZjjLXcS2NQh1SBQzKbKB2kb720Ec,488
|
|
381
381
|
machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
|
|
382
382
|
machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
|
|
383
383
|
machineconfig/setup_mac/uv.sh,sha256=CSN8oCBKS-LK1vJJqYOhAMcrouTf4Q_F3cpplc_ddMA,1157
|
|
@@ -391,7 +391,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
|
|
|
391
391
|
machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
|
|
392
392
|
machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
|
|
393
393
|
machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
|
|
394
|
-
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=
|
|
394
|
+
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=XEjrxJXFDjTPORszOVX-Iijd3OL4NFww4NVGyCLmIoQ,616
|
|
395
395
|
machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
396
396
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
397
397
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -409,7 +409,7 @@ machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,
|
|
|
409
409
|
machineconfig/utils/scheduler.py,sha256=fguwvINyaupOxdU5Uadyxalh_jXTXDzt0ioEgjEOKcM,14705
|
|
410
410
|
machineconfig/utils/scheduling.py,sha256=vcJgajeJPSWkJNlarYJSmLvasdOuCtBM4druOAB1Nwc,11089
|
|
411
411
|
machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
|
|
412
|
-
machineconfig/utils/ssh.py,sha256=
|
|
412
|
+
machineconfig/utils/ssh.py,sha256=zsGHp4SOkFIGbqAwBzNRXKT-4JU9pWfDmCy_Q33FNAQ,39008
|
|
413
413
|
machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
|
|
414
414
|
machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
|
|
415
415
|
machineconfig/utils/upgrade_packages.py,sha256=3H-U-Le0kn7ACYf_RHMSDav2UGnWzZEqgaL9bC0Yn4s,3695
|
|
@@ -438,8 +438,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
438
438
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
439
439
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
440
440
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
441
|
-
machineconfig-6.
|
|
442
|
-
machineconfig-6.
|
|
443
|
-
machineconfig-6.
|
|
444
|
-
machineconfig-6.
|
|
445
|
-
machineconfig-6.
|
|
441
|
+
machineconfig-6.87.dist-info/METADATA,sha256=6qopnVYk46jmfz3hkQF7hsHUy9wItdGY4OImaXalFLA,2928
|
|
442
|
+
machineconfig-6.87.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
443
|
+
machineconfig-6.87.dist-info/entry_points.txt,sha256=uf_ZPJa02_y3Fw5Z7m22cq7PwxhYd1QV2FfPNZTl_dQ,519
|
|
444
|
+
machineconfig-6.87.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
445
|
+
machineconfig-6.87.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|