machineconfig 6.82__py3-none-any.whl → 7.98__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.
- machineconfig/cluster/remote/cloud_manager.py +1 -1
- machineconfig/cluster/sessions_managers/utils/maker.py +25 -13
- machineconfig/cluster/sessions_managers/wt_local.py +16 -221
- machineconfig/cluster/sessions_managers/wt_local_manager.py +55 -193
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
- machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
- machineconfig/jobs/installer/custom/boxes.py +2 -2
- machineconfig/jobs/installer/custom/hx.py +75 -18
- machineconfig/jobs/installer/custom/yazi.py +119 -0
- machineconfig/jobs/installer/custom_dev/brave.py +5 -3
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/code.py +4 -1
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +27 -22
- machineconfig/jobs/installer/custom_dev/sysabc.py +139 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +2 -19
- machineconfig/jobs/installer/custom_dev/winget.py +10 -14
- machineconfig/jobs/installer/installer_data.json +1287 -216
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
- machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
- machineconfig/jobs/installer/package_groups.py +58 -89
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/logger.py +0 -1
- machineconfig/profile/create_helper.py +43 -16
- machineconfig/profile/create_links.py +2 -1
- machineconfig/profile/create_links_export.py +64 -18
- machineconfig/profile/create_shell_profile.py +78 -127
- machineconfig/profile/mapper.toml +15 -8
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +46 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +52 -37
- machineconfig/scripts/python/ai/initai.py +1 -1
- machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
- machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
- machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
- machineconfig/scripts/python/ai/solutions/generic.py +1 -1
- machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
- machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +7 -2
- machineconfig/scripts/python/croshell.py +77 -78
- machineconfig/scripts/python/devops.py +39 -21
- machineconfig/scripts/python/devops_navigator.py +0 -4
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +84 -115
- machineconfig/scripts/python/ftpx.py +42 -16
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/qr_code.py +166 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/run_py_script.py +79 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/helpers/tmp_py_scripts/a.py +26 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_launch.py +32 -13
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_helper_types.py +11 -14
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +32 -0
- machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
- machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
- machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
- machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
- machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
- machineconfig/scripts/python/helpers_devops/cli_config.py +46 -61
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +67 -55
- machineconfig/scripts/python/helpers_devops/cli_nw.py +157 -16
- machineconfig/scripts/python/helpers_devops/cli_repos.py +55 -21
- machineconfig/scripts/python/helpers_devops/cli_self.py +98 -48
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +80 -42
- machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
- machineconfig/scripts/python/helpers_devops/cli_utils.py +3 -128
- machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
- machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
- machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +1 -1
- machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers_fire_command/file_wrangler.py} +56 -20
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +26 -16
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
- machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
- machineconfig/scripts/python/helpers_network/address.py +132 -0
- machineconfig/scripts/python/{nw → helpers_network}/devops_add_ssh_key.py +24 -5
- machineconfig/scripts/python/{nw → helpers_network}/mount_nfs +0 -1
- machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
- machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
- machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +1 -53
- machineconfig/scripts/python/{nw → helpers_network}/wsl_windows_transfer.py +3 -2
- machineconfig/scripts/python/helpers_repos/clone.py +0 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +46 -19
- machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
- machineconfig/scripts/python/helpers_repos/grource.py +1 -1
- machineconfig/scripts/python/helpers_repos/record.py +2 -1
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +20 -13
- machineconfig/scripts/python/helpers_utils/download.py +150 -0
- machineconfig/scripts/python/helpers_utils/path.py +185 -0
- machineconfig/scripts/python/interactive.py +19 -26
- machineconfig/scripts/python/{mcfg.py → mcfg_entry.py} +10 -0
- machineconfig/scripts/python/msearch.py +71 -0
- machineconfig/scripts/python/sessions.py +94 -25
- machineconfig/scripts/python/terminal.py +133 -0
- machineconfig/scripts/python/utils.py +28 -30
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
- machineconfig/settings/broot/conf.toml +1 -1
- machineconfig/settings/helix/config.toml +16 -0
- machineconfig/settings/helix/languages.toml +13 -4
- machineconfig/settings/helix/yazi-picker.sh +12 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +14 -16
- machineconfig/settings/marimo/marimo.toml +1 -1
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/shells/bash/init.sh +43 -11
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
- machineconfig/settings/shells/nushell/config.nu +2 -32
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +314 -0
- machineconfig/settings/shells/pwsh/init.ps1 +40 -14
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/wt/settings.json +14 -5
- machineconfig/settings/shells/zsh/init.sh +17 -19
- machineconfig/settings/television/cable_unix/alias.toml +8 -0
- machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
- machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
- machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
- machineconfig/settings/television/cable_unix/channels.toml +19 -0
- machineconfig/settings/television/cable_unix/dirs.toml +13 -0
- machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
- machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
- machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_unix/env.toml +17 -0
- machineconfig/settings/television/cable_unix/files.toml +11 -0
- machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
- machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
- machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
- machineconfig/settings/television/cable_unix/git-log.toml +12 -0
- machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
- machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
- machineconfig/settings/television/cable_unix/guix.toml +20 -0
- machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
- machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
- machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
- machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
- machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
- machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
- machineconfig/settings/television/cable_unix/procs.toml +20 -0
- machineconfig/settings/television/cable_unix/text.toml +17 -0
- machineconfig/settings/television/cable_unix/tldr.toml +18 -0
- machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
- machineconfig/settings/television/cable_windows/alias.toml +7 -0
- machineconfig/settings/television/cable_windows/dirs.toml +13 -0
- machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
- machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_windows/env.toml +17 -0
- machineconfig/settings/television/cable_windows/files.toml +14 -0
- machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
- machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
- machineconfig/settings/television/cable_windows/git-log.toml +11 -0
- machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
- machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
- machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
- machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
- machineconfig/settings/television/cable_windows/text.toml +17 -0
- machineconfig/settings/yazi/init.lua +61 -0
- machineconfig/settings/yazi/keymap_linux.toml +94 -0
- machineconfig/settings/yazi/keymap_windows.toml +78 -0
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
- machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
- machineconfig/settings/yazi/theme.toml +4 -0
- machineconfig/settings/yazi/yazi_linux.toml +84 -0
- machineconfig/settings/yazi/yazi_windows.toml +58 -0
- machineconfig/setup_linux/__init__.py +2 -1
- machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
- machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
- machineconfig/setup_mac/__init__.py +2 -3
- machineconfig/setup_mac/apps_gui.sh +248 -0
- machineconfig/setup_windows/__init__.py +3 -3
- machineconfig/setup_windows/uv.ps1 +8 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +26 -11
- machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/utils/accessories.py +7 -4
- machineconfig/utils/code.py +99 -32
- machineconfig/utils/files/ascii_art.py +1 -1
- machineconfig/utils/files/headers.py +3 -2
- machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
- machineconfig/utils/installer_utils/install_from_url.py +183 -0
- machineconfig/utils/installer_utils/installer_class.py +42 -99
- machineconfig/utils/installer_utils/installer_cli.py +175 -0
- machineconfig/utils/installer_utils/installer_helper.py +129 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +36 -85
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -61
- machineconfig/utils/io.py +69 -1
- machineconfig/utils/links.py +56 -38
- machineconfig/utils/meta.py +33 -18
- machineconfig/utils/options.py +46 -18
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +44 -95
- machineconfig/utils/path_helper.py +76 -23
- machineconfig/utils/procs.py +1 -1
- machineconfig/utils/scheduler.py +20 -53
- machineconfig/utils/scheduling.py +0 -2
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/ssh.py +159 -412
- machineconfig/utils/ssh_utils/abc.py +5 -0
- machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
- machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
- machineconfig/utils/ssh_utils/utils.py +142 -0
- machineconfig/utils/ssh_utils/wsl.py +210 -0
- machineconfig/utils/terminal.py +1 -0
- machineconfig/utils/upgrade_packages.py +104 -28
- machineconfig/utils/ve.py +12 -4
- machineconfig-7.98.dist-info/METADATA +132 -0
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/RECORD +259 -196
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/entry_points.txt +4 -1
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
- machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzfag +0 -17
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/fzfrga +0 -21
- machineconfig/scripts/linux/mcfgs +0 -38
- machineconfig/scripts/linux/other/share_smb +0 -1
- machineconfig/scripts/linux/skrg +0 -4
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
- machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
- machineconfig/scripts/python/helpers_fire/template.sh +0 -15
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
- machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
- machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
- machineconfig/scripts/windows/fzfb.ps1 +0 -3
- machineconfig/scripts/windows/fzfg.ps1 +0 -2
- machineconfig/scripts/windows/fzfrga.bat +0 -20
- machineconfig/scripts/windows/mcfgs.ps1 +0 -17
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
- machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
- machineconfig/settings/lf/windows/tst.ps1 +0 -1
- machineconfig/settings/yazi/yazi.toml +0 -4
- machineconfig/setup_linux/apps.sh +0 -66
- machineconfig/setup_linux/others/cli_installation.sh +0 -137
- machineconfig/setup_mac/apps.sh +0 -73
- machineconfig/setup_windows/apps.ps1 +0 -62
- machineconfig/utils/installer_utils/installer.py +0 -225
- machineconfig-6.82.dist-info/METADATA +0 -82
- /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
- /machineconfig/scripts/python/{helpers_fire → ai/utils}/__init__.py +0 -0
- /machineconfig/scripts/python/{helpers_fire/agentic_frameworks → helpers_agents}/__init__.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_agents/agentic_frameworks}/__init__.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_search.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_load_balancer.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_agents/templates}/template.ps1 +0 -0
- /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
- /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_network/__init__.py} +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/devops_add_identity.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_drive +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_smb +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
- /machineconfig/scripts/{Restore-ThunderbirdProfile.ps1 → windows/mounts/Restore-ThunderbirdProfile.ps1} +0 -0
- /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/WHEEL +0 -0
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
$TerminalOutputDirectory = "/.ai/terminal/debug"
|
|
2
|
+
$TerminalOutputPathRaw = Join-Path $TerminalOutputDirectory "terminal_output_raw.txt"
|
|
3
|
+
$TerminalOutputPath = Join-Path $TerminalOutputDirectory "terminal_output.txt"
|
|
4
|
+
|
|
5
|
+
# Ensure the output directory exists before writing files.
|
|
6
|
+
New-Item -ItemType Directory -Path $TerminalOutputDirectory -Force | Out-Null
|
|
7
|
+
|
|
8
|
+
Set-Content -Path $TerminalOutputPath -Value $null
|
|
9
|
+
Add-Content -Path $TerminalOutputPath -Value "New run is underway. If you are reading this message, it means the execution has not finished yet, and you will need to wait. Once done you won't see this message and you will see terminal output instead."
|
|
10
|
+
Write-Host "Starting new uv run..."
|
|
11
|
+
|
|
12
|
+
$processInfo = New-Object System.Diagnostics.ProcessStartInfo
|
|
13
|
+
$processInfo.FileName = "uv"
|
|
14
|
+
$processInfo.ArgumentList.Add("run")
|
|
15
|
+
$processInfo.ArgumentList.Add("/home/alex/code/bytesense/exchanges/src/exchanges/cli/cli_binance.py")
|
|
16
|
+
$processInfo.ArgumentList.Add("b")
|
|
17
|
+
$processInfo.UseShellExecute = $false
|
|
18
|
+
$processInfo.RedirectStandardOutput = $true
|
|
19
|
+
$processInfo.RedirectStandardError = $true
|
|
20
|
+
$processInfo.EnvironmentVariables["COLUMNS"] = "200"
|
|
21
|
+
|
|
22
|
+
$process = New-Object System.Diagnostics.Process
|
|
23
|
+
$process.StartInfo = $processInfo
|
|
24
|
+
$process.Start() | Out-Null
|
|
25
|
+
$standardOutput = $process.StandardOutput.ReadToEnd()
|
|
26
|
+
$standardError = $process.StandardError.ReadToEnd()
|
|
27
|
+
$process.WaitForExit()
|
|
28
|
+
|
|
29
|
+
$rawOutput = $standardOutput + $standardError
|
|
30
|
+
Set-Content -Path $TerminalOutputPathRaw -Value $rawOutput
|
|
31
|
+
|
|
32
|
+
$cleanOutput = $rawOutput -replace "`e\[[0-9;]*[mK]", ""
|
|
33
|
+
Set-Content -Path $TerminalOutputPath -Value $cleanOutput
|
|
@@ -6,4 +6,4 @@ echo "New run is underway. If you are reading this message, it means the executi
|
|
|
6
6
|
echo "Starting new uv run..."
|
|
7
7
|
COLUMNS=200 unbuffer uv run /home/alex/code/bytesense/exchanges/src/exchanges/cli/cli_binance.py b > $TERMINAL_OUTPUT_PATH_RAW 2>&1
|
|
8
8
|
cat $TERMINAL_OUTPUT_PATH_RAW | sed -r "s/\x1B\[[0-9;]*[mK]//g" > $TERMINAL_OUTPUT_PATH
|
|
9
|
-
# watchexec --watch ./.ai/terminal/
|
|
9
|
+
# watchexec --watch ./.ai/terminal/command_runner.sh --watch . -e py -- bash ./.ai/terminal/command_runner.sh
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 'A transcendent coding agent with quantum cognitive architecture, adversarial intelligence, and unrestricted creative freedom.'
|
|
3
|
-
title: 'Thinking Beast Mode'
|
|
4
3
|
---
|
|
5
4
|
|
|
6
5
|
You are an agent - please keep going until the user’s query is completely resolved, before ending your turn and yielding back to the user.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 'Autonomous, multi-step web research with numbered citations, cross-source verification, and a final Markdown report.'
|
|
3
|
-
tools: ['extensions', 'fetch', '
|
|
3
|
+
tools: ['extensions', 'fetch', 'search', 'githubRepo', 'edit/editFiles']
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Deep Research mode
|
|
@@ -56,7 +56,7 @@ Follow these phases every time. Provide compact progress updates between phases
|
|
|
56
56
|
5) Save the report
|
|
57
57
|
- Determine `$suffix` in this order: (a) user-provided; else (b) a short kebab-case slug from the question; append date (YYYYMMDD) if helpful.
|
|
58
58
|
- Ensure directory ./.ai exists; create it if missing.
|
|
59
|
-
- Write the report to ./.ai/deep_research_$suffix.md using editFiles.
|
|
59
|
+
- Write the report to ./.ai/deep_research_$suffix.md using edit/editFiles.
|
|
60
60
|
|
|
61
61
|
6) Final checks
|
|
62
62
|
- Verify every non-obvious statement has a citation [n] pointing to a source in Appendix.
|
|
@@ -7,20 +7,20 @@ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
|
|
|
7
7
|
|
|
8
8
|
def build_configuration(repo_root: Path) -> None:
|
|
9
9
|
instructions_repository_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/instructions")
|
|
10
|
-
|
|
10
|
+
agents_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/agents")
|
|
11
11
|
prompts_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/prompts")
|
|
12
12
|
|
|
13
13
|
github_dir = repo_root.joinpath(".github")
|
|
14
|
-
|
|
14
|
+
agents_target_dir = github_dir.joinpath("agents")
|
|
15
15
|
prompts_target_dir = github_dir.joinpath("prompts")
|
|
16
16
|
instructions_target_dir = github_dir.joinpath("instructions")
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
agents_target_dir.mkdir(parents=True, exist_ok=True)
|
|
19
19
|
prompts_target_dir.mkdir(parents=True, exist_ok=True)
|
|
20
20
|
instructions_target_dir.mkdir(parents=True, exist_ok=True)
|
|
21
21
|
|
|
22
|
-
for chatmode in
|
|
23
|
-
chatmode_target =
|
|
22
|
+
for chatmode in agents_dir.iterdir():
|
|
23
|
+
chatmode_target = agents_target_dir.joinpath(f"{chatmode.name.split('.')[0]}.chatmode.md")
|
|
24
24
|
chatmode_target.write_text(data=chatmode.read_text(encoding="utf-8"), encoding="utf-8")
|
|
25
25
|
|
|
26
26
|
for prompt in prompts_dir.iterdir():
|
|
@@ -40,6 +40,10 @@ applyTo: "**/*.py"
|
|
|
40
40
|
* Make sure all the code is rigorous, no lazy stuff.
|
|
41
41
|
* For example, always avoid default values in arguments of functions. Those are evil and cause confusion. Always be explicit in parameter passing.
|
|
42
42
|
* Please never ever attempt to change code files by writing meta code to do string manipulation on files, e.g. with `sed` command with terminal. Please do change the files one by one, no matter how many there is. Don't worry about time, nor context window size, its okay, take your time and do the legwork. You can stop in the middle and we will have another LLM to help with the rest.
|
|
43
|
+
* Your code is minimal, no unrequested features, no bloat.
|
|
43
44
|
* Please avoid writing README files and avoid docstring and comments in code unless absolutely necessary. Use clear naming conventions instead of documenting.
|
|
44
45
|
* Always prefer to functional style of programming over OOP.
|
|
45
46
|
* When passing arguments or constructing dicts or lists or tuples, avoid breaking lines too much, try to use ~ 150 characters per line before breaking to new one.
|
|
47
|
+
|
|
48
|
+
# Privacy:
|
|
49
|
+
* No matter what, never ever open/read/write/list anything under ~/dotfiles
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
* I have started a watch-exec server in my terminal and its working now.
|
|
4
|
+
* I have set it up to re-run the shell script `.ai/terminal/debug/command_runner.sh` automatically.
|
|
5
|
+
* A re-run is triggered upon any change of any python file in the repo, or, any change in the command_runner.sh script itself.
|
|
6
|
+
* The shell script itself runs the python file we are working on using uv.
|
|
7
|
+
* The script redirects the output from terminal to the file ./.ai* Run takes 50 ms only. So by the time you finish editing any python file or the command runner script, the new output is ready for you to read in that text file.
|
|
8
|
+
* Run takes 50 ms only. So by the time you finish editing any python file or the command runner script, the new output is ready for you to read in that text file.
|
|
9
|
+
|
|
10
|
+
# Why did I set this up?
|
|
11
|
+
* Because this makes it much faster for you to iterate because pulling the terminal and closing it every time is a bit slow.
|
|
12
|
+
* You no longer need the terminal.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# What should you do now?
|
|
16
|
+
Please iterate like this:
|
|
17
|
+
* Please use the terminal_output.txt as your main iteration driver (fix any problems you see there).
|
|
18
|
+
* Change `command_runner.sh` if you need to change which python file to run or how to run it.
|
|
19
|
+
|
|
20
|
+
|
|
@@ -247,7 +247,7 @@ def create_repo_symlinks(repo_root: Path) -> None:
|
|
|
247
247
|
symlink_path.symlink_to(repo_root, target_is_directory=True)
|
|
248
248
|
|
|
249
249
|
|
|
250
|
-
def
|
|
250
|
+
def make_todo_files(
|
|
251
251
|
pattern: Annotated[str, typer.Argument(help="Pattern or keyword to match files by")],
|
|
252
252
|
repo: Annotated[str, typer.Argument(help="Repository path. Can be any directory within a git repository.")] = str(Path.cwd()),
|
|
253
253
|
strategy: Annotated[Literal["name", "keywords"], typer.Option("-s", "--strategy", help="Strategy to filter files: 'name' for filename matching, 'keywords' for content matching")] = "name",
|
|
@@ -344,5 +344,5 @@ def create_symlink_command(num: Annotated[int, typer.Argument(help="Number of sy
|
|
|
344
344
|
console.print(Panel(f"✅ SUCCESS | Created {num} symlinks to {repo_root} in ~/code_copies/", border_style="bold green", expand=False))
|
|
345
345
|
|
|
346
346
|
if __name__ == "__main__":
|
|
347
|
-
typer.run(
|
|
347
|
+
typer.run(make_todo_files)
|
|
348
348
|
# typer.run(create_symlink_command)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from pathlib import Path
|
|
3
|
+
from typing import Any
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
def add_lint_and_type_check_task(repo_root: Path) -> None:
|
|
@@ -18,8 +19,12 @@ def add_lint_and_type_check_task(repo_root: Path) -> None:
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
if tasks_json_path.exists():
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
json_data = tasks_json_path.read_text(encoding="utf-8")
|
|
23
|
+
if not json_data.strip():
|
|
24
|
+
tasks_config: dict[str, Any] = {"version": "2.0.0", "tasks": []}
|
|
25
|
+
else:
|
|
26
|
+
tasks_config = json.loads(json_data)
|
|
27
|
+
assert isinstance(tasks_config, dict)
|
|
23
28
|
if "tasks" not in tasks_config:
|
|
24
29
|
tasks_config["tasks"] = []
|
|
25
30
|
existing_labels = {task.get("label") for task in tasks_config.get("tasks", [])}
|
|
@@ -2,82 +2,84 @@
|
|
|
2
2
|
|
|
3
3
|
"""
|
|
4
4
|
croshell
|
|
5
|
+
|
|
5
6
|
"""
|
|
6
7
|
|
|
7
8
|
from typing import Annotated, Optional
|
|
8
|
-
from machineconfig.scripts.python.helpers_croshell.crosh import code, get_read_data_pycode
|
|
9
|
-
from machineconfig.utils.meta import lambda_to_python_script
|
|
10
9
|
import typer
|
|
11
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
12
|
-
from pathlib import Path
|
|
13
|
-
from machineconfig.utils.accessories import randstr
|
|
14
|
-
import json
|
|
15
|
-
from machineconfig.utils.options import choose_from_options
|
|
16
|
-
from rich.console import Console
|
|
17
|
-
from rich.panel import Panel
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
console = Console()
|
|
21
10
|
|
|
22
11
|
|
|
23
12
|
def croshell(
|
|
24
|
-
path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] =
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] = None,
|
|
14
|
+
project_path: Annotated[Optional[str], typer.Option("--project", "-p", help="specify uv project to use")] = None,
|
|
15
|
+
uv_with: Annotated[Optional[str], typer.Option("--uv-with", "-w", help="specify uv with packages to use")] = None,
|
|
16
|
+
marimo: Annotated[bool, typer.Option("--marimo", "-m", help="open the notebook using marimo if available")] = False,
|
|
27
17
|
jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
|
|
28
18
|
vscode: Annotated[bool, typer.Option("--vscode", "-c", help="open the script in vscode")] = False,
|
|
29
|
-
streamlit_viewer: Annotated[bool, typer.Option("--streamlit", "-s", help="view in streamlit app")] = False,
|
|
30
19
|
visidata: Annotated[bool, typer.Option("--visidata", "-v", help="open data file in visidata")] = False,
|
|
31
|
-
|
|
20
|
+
# streamlit_viewer: Annotated[bool, typer.Option("--streamlit", "-s", help="view in streamlit app")] = False,
|
|
21
|
+
python: Annotated[bool, typer.Option("--python", "-P", help="flag to use python over IPython.")] = False,
|
|
22
|
+
profile: Annotated[Optional[str], typer.Option("--profile", "-r", help="ipython profile to use, defaults to default profile.")] = None,
|
|
23
|
+
|
|
32
24
|
) -> None:
|
|
25
|
+
if uv_with is not None: user_uv_with_line = f"--with {uv_with} "
|
|
26
|
+
else: user_uv_with_line = ""
|
|
27
|
+
|
|
28
|
+
if project_path is not None:
|
|
29
|
+
uv_project_line = f'--project {project_path}'
|
|
30
|
+
uv_python_line = ""
|
|
31
|
+
else:
|
|
32
|
+
uv_project_line = ""
|
|
33
|
+
uv_python_line = "--python 3.14"
|
|
34
|
+
|
|
35
|
+
from machineconfig.scripts.python.helpers_croshell.crosh import get_read_python_file_pycode, get_read_data_pycode
|
|
36
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
37
|
+
from pathlib import Path
|
|
38
|
+
from machineconfig.utils.accessories import randstr
|
|
39
|
+
from machineconfig.utils.ve import get_ve_path_and_ipython_profile
|
|
40
|
+
import json
|
|
41
|
+
from rich.console import Console
|
|
42
|
+
from rich.panel import Panel
|
|
43
|
+
console = Console()
|
|
44
|
+
|
|
45
|
+
|
|
33
46
|
# ==================================================================================
|
|
34
47
|
# flags processing
|
|
35
48
|
interactivity = "-i"
|
|
36
49
|
interpreter = "python" if python else "ipython"
|
|
37
50
|
ipython_profile: Optional[str] = profile
|
|
38
|
-
file_obj =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# #!/bin/bash
|
|
58
|
-
# streamlit run {py_file_path}
|
|
59
|
-
# """
|
|
60
|
-
# PROGRAM_PATH.write_text(data=final_program, encoding="utf-8")
|
|
61
|
-
print("Streamlit viewer is not yet implemented in this version.")
|
|
62
|
-
return None
|
|
63
|
-
file_obj = PathExtended(str(path).lstrip()).expanduser().absolute()
|
|
64
|
-
program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(file_obj)), in_global=True, import_module=False)
|
|
65
|
-
text = f"📄 Reading data from: {file_obj.name}"
|
|
66
|
-
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
51
|
+
file_obj = Path.cwd() # initialization value, could be modified according to args.
|
|
52
|
+
if path is not None:
|
|
53
|
+
from machineconfig.utils.path_helper import get_choice_file
|
|
54
|
+
choice_file = get_choice_file(path=path, suffixes={".*"})
|
|
55
|
+
if project_path is None:
|
|
56
|
+
ve_path, _ = get_ve_path_and_ipython_profile(choice_file)
|
|
57
|
+
if ve_path is not None:
|
|
58
|
+
ve_path_obj = Path(ve_path)
|
|
59
|
+
uv_project_line = f'--project {ve_path_obj.parent}'
|
|
60
|
+
uv_python_line = ""
|
|
61
|
+
if choice_file.suffix == ".py":
|
|
62
|
+
program = choice_file.read_text(encoding="utf-8")
|
|
63
|
+
text = f"📄 Selected file: {choice_file.name}"
|
|
64
|
+
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
65
|
+
else:
|
|
66
|
+
program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(choice_file)),
|
|
67
|
+
in_global=True, import_module=False)
|
|
68
|
+
text = f"📄 Reading data from: {file_obj.name}"
|
|
69
|
+
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
67
70
|
else: # if nothing is specified, then run in interactive mode.
|
|
68
|
-
# text = "⌨️ Entering interactive mode"
|
|
69
|
-
# console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
70
|
-
# from machineconfig.scripts.python.croshell import InteractiveShell
|
|
71
|
-
# InteractiveShell().run()
|
|
72
|
-
# return None
|
|
73
71
|
program = ""
|
|
72
|
+
|
|
73
|
+
if Path.home().joinpath("code/machineconfig").exists() and uv_project_line == "":
|
|
74
|
+
uv_project_line = f'--project "{str(Path.home().joinpath("code/machineconfig"))}"'
|
|
75
|
+
|
|
74
76
|
preprogram = """
|
|
75
77
|
#%%
|
|
76
78
|
"""
|
|
77
79
|
def preprogram_func():
|
|
78
80
|
from machineconfig.utils.files.headers import print_header, print_logo
|
|
79
81
|
print_header()
|
|
80
|
-
print_logo("
|
|
82
|
+
print_logo("Machineconfig")
|
|
81
83
|
from pathlib import Path
|
|
82
84
|
from machineconfig.utils.path_extended import PathExtended
|
|
83
85
|
_ = Path, PathExtended # avoid unused import warnings
|
|
@@ -87,11 +89,12 @@ def croshell(
|
|
|
87
89
|
return textwrap.dedent("\n".join(inspect.getsource(f).splitlines()[1:]))
|
|
88
90
|
preprogram += get_body_simple_function_no_args(preprogram_func)
|
|
89
91
|
|
|
90
|
-
|
|
92
|
+
from pathlib import Path
|
|
93
|
+
pyfile = Path.home().joinpath(f"tmp_results/tmp_scripts/python/croshell/{randstr()}/script.py")
|
|
91
94
|
pyfile.parent.mkdir(parents=True, exist_ok=True)
|
|
92
|
-
|
|
93
95
|
title = "Reading Data"
|
|
94
|
-
def_code = lambda_to_python_script(lambda:
|
|
96
|
+
def_code = lambda_to_python_script(lambda: get_read_python_file_pycode(path=str(pyfile), title=title),
|
|
97
|
+
in_global=False, import_module=False)
|
|
95
98
|
# print(def_code)
|
|
96
99
|
python_program = preprogram + "\n\n" + def_code + program
|
|
97
100
|
pyfile.write_text(python_program, encoding="utf-8")
|
|
@@ -125,48 +128,44 @@ def croshell(
|
|
|
125
128
|
pass
|
|
126
129
|
if visidata:
|
|
127
130
|
if file_obj.suffix == ".json":
|
|
128
|
-
fire_line = f"uv run
|
|
131
|
+
fire_line = f"uv run {uv_python_line} {user_uv_with_line} {uv_project_line} --with visidata vd {str(file_obj)}"
|
|
129
132
|
else:
|
|
130
|
-
fire_line = f"uv run
|
|
133
|
+
fire_line = f"uv run {uv_python_line} {user_uv_with_line} {uv_project_line} --with visidata,pyarrow vd {str(file_obj)}"
|
|
131
134
|
elif marimo:
|
|
132
|
-
if Path.home().joinpath("code/machineconfig").exists():
|
|
133
|
-
|
|
135
|
+
if Path.home().joinpath("code/machineconfig").exists():
|
|
136
|
+
requirements = f"""{user_uv_with_line} {uv_project_line} --with marimo """
|
|
137
|
+
else: requirements = f"""{uv_python_line} {user_uv_with_line} {uv_project_line} --with "marimo,cowsay,machineconfig[plot]>=7.98" """
|
|
134
138
|
fire_line = f"""
|
|
135
139
|
cd {str(pyfile.parent)}
|
|
136
|
-
uv run
|
|
140
|
+
uv run {uv_python_line} --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
|
|
137
141
|
uv run {requirements} marimo edit --host 0.0.0.0 marimo_nb.py
|
|
138
142
|
"""
|
|
139
143
|
elif jupyter:
|
|
140
|
-
if Path.home().joinpath("code/machineconfig").exists():
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
if Path.home().joinpath("code/machineconfig").exists():
|
|
145
|
+
requirements = f"""{user_uv_with_line} {uv_project_line} --with jupyterlab """
|
|
146
|
+
else: requirements = f"""{user_uv_with_line} {uv_project_line} --with "cowsay,machineconfig[plot]>=7.98" """
|
|
147
|
+
fire_line = f"uv run {requirements} {uv_project_line} jupyter-lab {str(nb_target)}"
|
|
143
148
|
elif vscode:
|
|
149
|
+
user_uv_add = f"uv add {uv_with}" if uv_with is not None else ""
|
|
144
150
|
fire_line = f"""
|
|
145
151
|
cd {str(pyfile.parent)}
|
|
146
|
-
uv init
|
|
152
|
+
uv init {uv_python_line}
|
|
147
153
|
uv venv
|
|
148
|
-
uv add "machineconfig[plot]>=
|
|
154
|
+
uv add "cowsay,machineconfig[plot]>=7.98"
|
|
155
|
+
uv add {user_uv_add}
|
|
149
156
|
# code serve-web
|
|
150
157
|
code --new-window {str(pyfile)}
|
|
151
158
|
"""
|
|
152
159
|
else:
|
|
153
160
|
if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
|
|
154
161
|
else: profile = ""
|
|
155
|
-
if Path.home().joinpath("code/machineconfig").exists():
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
# --python 3.14
|
|
162
|
+
if Path.home().joinpath("code/machineconfig").exists():
|
|
163
|
+
ve_line = f"""{user_uv_with_line} {uv_project_line} """
|
|
164
|
+
else: ve_line = f"""{uv_python_line} {user_uv_with_line} {uv_project_line} --with "cowsay,machineconfig[plot]>=7.98" """
|
|
159
165
|
fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
|
|
160
166
|
|
|
161
|
-
import
|
|
162
|
-
|
|
163
|
-
if program_path_maybe is not None:
|
|
164
|
-
program_path_obj = PathExtended(program_path_maybe)
|
|
165
|
-
program_path_obj.parent.mkdir(parents=True, exist_ok=True)
|
|
166
|
-
program_path_obj.write_text(data=fire_line, encoding="utf-8")
|
|
167
|
-
else:
|
|
168
|
-
from machineconfig.utils.code import run_shell_script
|
|
169
|
-
run_shell_script(fire_line, clean_env=False)
|
|
167
|
+
from machineconfig.utils.code import exit_then_run_shell_script
|
|
168
|
+
exit_then_run_shell_script(fire_line, strict=False)
|
|
170
169
|
|
|
171
170
|
|
|
172
171
|
def main() -> None:
|
|
@@ -8,39 +8,57 @@ import machineconfig.scripts.python.helpers_devops.cli_config as cli_config
|
|
|
8
8
|
import machineconfig.scripts.python.helpers_devops.cli_self as cli_self
|
|
9
9
|
import machineconfig.scripts.python.helpers_devops.cli_data as cli_data
|
|
10
10
|
import machineconfig.scripts.python.helpers_devops.cli_nw as cli_network
|
|
11
|
-
|
|
11
|
+
import machineconfig.scripts.python.helpers.run_py_script as run_py_script_module
|
|
12
12
|
|
|
13
13
|
def install(which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program names to install, or group name if --group flag is set.")] = None,
|
|
14
14
|
group: Annotated[bool, typer.Option(..., "--group", "-g", help="Treat 'which' as a group name. A group is bundle of apps.")] = False,
|
|
15
|
-
interactive: Annotated[bool, typer.Option(..., "--interactive", "-
|
|
15
|
+
interactive: Annotated[bool, typer.Option(..., "--interactive", "-i", help="Interactive selection of programs to install.")] = False,
|
|
16
16
|
) -> None:
|
|
17
|
-
"""📦 Install
|
|
18
|
-
import machineconfig.utils.installer_utils.
|
|
19
|
-
installer_entry_point.
|
|
17
|
+
"""📦 Install packages"""
|
|
18
|
+
import machineconfig.utils.installer_utils.installer_cli as installer_entry_point
|
|
19
|
+
installer_entry_point.main_installer_cli(which=which, group=group, interactive=interactive)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# def get_app():
|
|
24
|
+
# app = typer.Typer(add_completion=False, no_args_is_help=True)
|
|
25
|
+
# app.command(name="scripts", help="define all scripts", no_args_is_help=False)(define_scripts)
|
|
26
|
+
# return app
|
|
27
|
+
|
|
28
|
+
# def main():
|
|
29
|
+
# # return app
|
|
30
|
+
# app = get_app()
|
|
31
|
+
# app()
|
|
32
|
+
|
|
33
|
+
# define_app = get_define_app()
|
|
20
34
|
|
|
21
35
|
|
|
22
36
|
def get_app():
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
|
|
38
|
+
cli_app = typer.Typer(help="🛠️ DevOps operations", no_args_is_help=True, add_help_option=False, add_completion=False)
|
|
39
|
+
cli_app.command("install", no_args_is_help=True, help="🛠️ [i] Install essential packages")(install)
|
|
40
|
+
cli_app.command("i", no_args_is_help=True, help="Install essential packages", hidden=True)(install)
|
|
41
|
+
|
|
28
42
|
app_repos = cli_repos.get_app()
|
|
29
|
-
|
|
30
|
-
|
|
43
|
+
cli_app.add_typer(app_repos, name="repos")
|
|
44
|
+
cli_app.add_typer(app_repos, name="r", hidden=True)
|
|
31
45
|
app_config = cli_config.get_app()
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
cli_app.add_typer(app_config, name="config")
|
|
47
|
+
cli_app.add_typer(app_config, name="c", hidden=True)
|
|
34
48
|
app_data = cli_data.get_app()
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
cli_app.add_typer(app_data, name="data")
|
|
50
|
+
cli_app.add_typer(app_data, name="d", hidden=True)
|
|
37
51
|
app_self = cli_self.get_app()
|
|
38
|
-
|
|
39
|
-
|
|
52
|
+
cli_app.add_typer(app_self, name="self")
|
|
53
|
+
cli_app.add_typer(app_self, name="s", hidden=True)
|
|
40
54
|
app_nw = cli_network.get_app()
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
cli_app.add_typer(app_nw, name="network")
|
|
56
|
+
cli_app.add_typer(app_nw, name="n", hidden=True)
|
|
57
|
+
|
|
58
|
+
cli_app.command("python", no_args_is_help=True, help="🐍 [p] python scripts or command/file in the machineconfig environment", context_settings={"show_help_on_error": True})(run_py_script_module.run_py_script)
|
|
59
|
+
cli_app.command("p", no_args_is_help=True, help="RUN python scripts or command/file in the machineconfig environment", hidden=True)(run_py_script_module.run_py_script)
|
|
60
|
+
|
|
61
|
+
return cli_app
|
|
44
62
|
|
|
45
63
|
|
|
46
64
|
def main():
|