machineconfig 3.2__py3-none-any.whl → 3.5__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 (122) hide show
  1. machineconfig/cluster/sessions_managers/wt_local_manager.py +1 -1
  2. machineconfig/cluster/sessions_managers/wt_remote_manager.py +1 -1
  3. machineconfig/cluster/sessions_managers/zellij_local.py +2 -2
  4. machineconfig/cluster/sessions_managers/zellij_local_manager.py +1 -1
  5. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +1 -1
  6. machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +17 -7
  7. machineconfig/cluster/templates/utils.py +1 -1
  8. machineconfig/jobs/linux/msc/cli_agents.sh +18 -2
  9. machineconfig/jobs/python/python_ve_symlink.py +1 -1
  10. machineconfig/jobs/python/vscode/api.py +1 -1
  11. machineconfig/jobs/python/vscode/select_interpreter.py +2 -2
  12. machineconfig/jobs/python/vscode/sync_code.py +1 -1
  13. machineconfig/jobs/python_custom_installers/archive/ngrok.py +7 -6
  14. machineconfig/jobs/python_custom_installers/dev/aider.py +9 -1
  15. machineconfig/jobs/python_custom_installers/dev/alacritty.py +2 -1
  16. machineconfig/jobs/python_custom_installers/dev/brave.py +10 -1
  17. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +12 -4
  18. machineconfig/jobs/python_custom_installers/dev/code.py +10 -3
  19. machineconfig/jobs/python_custom_installers/dev/cursor.py +2 -1
  20. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +7 -6
  21. machineconfig/jobs/python_custom_installers/dev/espanso.py +14 -6
  22. machineconfig/jobs/python_custom_installers/dev/goes.py +10 -1
  23. machineconfig/jobs/python_custom_installers/dev/lvim.py +9 -1
  24. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +9 -1
  25. machineconfig/jobs/python_custom_installers/dev/redis.py +2 -2
  26. machineconfig/jobs/python_custom_installers/dev/wezterm.py +3 -1
  27. machineconfig/jobs/python_custom_installers/dev/winget.py +2 -1
  28. machineconfig/jobs/python_custom_installers/docker.py +9 -1
  29. machineconfig/jobs/python_custom_installers/gh.py +11 -2
  30. machineconfig/jobs/python_custom_installers/hx.py +10 -9
  31. machineconfig/jobs/python_custom_installers/warp-cli.py +9 -1
  32. machineconfig/jobs/python_generic_installers/config.json +601 -412
  33. machineconfig/jobs/python_generic_installers/config.json.bak +414 -0
  34. machineconfig/jobs/python_generic_installers/dev/config.json +822 -562
  35. machineconfig/jobs/python_generic_installers/dev/config.json.bak +565 -0
  36. machineconfig/jobs/python_linux_installers/archive/config.json +16 -8
  37. machineconfig/jobs/python_linux_installers/archive/config.json.bak +10 -0
  38. machineconfig/jobs/python_linux_installers/config.json +134 -99
  39. machineconfig/jobs/python_linux_installers/config.json.bak +110 -0
  40. machineconfig/jobs/python_linux_installers/dev/config.json +273 -203
  41. machineconfig/jobs/python_linux_installers/dev/config.json.bak +206 -0
  42. machineconfig/jobs/python_windows_installers/config.json +74 -48
  43. machineconfig/jobs/python_windows_installers/config.json.bak +56 -0
  44. machineconfig/jobs/python_windows_installers/dev/config.json +3 -2
  45. machineconfig/jobs/python_windows_installers/dev/config.json.bak +3 -0
  46. machineconfig/profile/create.py +3 -3
  47. machineconfig/profile/shell.py +1 -1
  48. machineconfig/scripts/python/ai/mcinit.py +23 -67
  49. machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
  50. machineconfig/scripts/python/ai/solutions/_shared.py +5 -0
  51. machineconfig/scripts/python/ai/solutions/claude/claude.py +8 -0
  52. machineconfig/scripts/python/ai/solutions/cline/cline.py +10 -0
  53. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +35 -0
  54. machineconfig/scripts/python/ai/solutions/copilot/privacy.md +4 -0
  55. machineconfig/scripts/python/ai/solutions/crush/crush.json +216 -0
  56. machineconfig/scripts/python/ai/solutions/crush/crush.py +25 -0
  57. machineconfig/scripts/python/ai/solutions/crush/privacy.md +2 -0
  58. machineconfig/scripts/python/ai/solutions/cursor/cursors.py +10 -0
  59. machineconfig/scripts/python/ai/solutions/gemini/gemini.py +14 -0
  60. machineconfig/scripts/python/ai/solutions/generic.py +41 -0
  61. machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +3 -0
  62. machineconfig/scripts/python/ai/solutions/opencode/opencode.json +4 -0
  63. machineconfig/scripts/python/ai/solutions/opencode/opencode.py +1 -0
  64. machineconfig/scripts/python/choose_wezterm_theme.py +1 -1
  65. machineconfig/scripts/python/cloud_copy.py +2 -2
  66. machineconfig/scripts/python/cloud_mount.py +2 -2
  67. machineconfig/scripts/python/cloud_repo_sync.py +3 -2
  68. machineconfig/scripts/python/croshell.py +12 -7
  69. machineconfig/scripts/python/devops.py +1 -0
  70. machineconfig/scripts/python/devops_add_identity.py +1 -1
  71. machineconfig/scripts/python/devops_add_ssh_key.py +1 -1
  72. machineconfig/scripts/python/devops_backup_retrieve.py +4 -3
  73. machineconfig/scripts/python/devops_devapps_install.py +39 -17
  74. machineconfig/scripts/python/devops_update_repos.py +2 -2
  75. machineconfig/scripts/python/dotfile.py +1 -1
  76. machineconfig/scripts/python/fire_agents.py +7 -3
  77. machineconfig/scripts/python/fire_agents_help_launch.py +2 -2
  78. machineconfig/scripts/python/fire_jobs.py +8 -8
  79. machineconfig/scripts/python/fire_jobs_layout_helper.py +2 -2
  80. machineconfig/scripts/python/ftpx.py +2 -2
  81. machineconfig/scripts/python/helpers/cloud_helpers.py +2 -1
  82. machineconfig/scripts/python/helpers/helpers2.py +4 -3
  83. machineconfig/scripts/python/helpers/helpers4.py +1 -1
  84. machineconfig/scripts/python/helpers/repo_sync_helpers.py +2 -2
  85. machineconfig/scripts/python/mount_nfs.py +1 -1
  86. machineconfig/scripts/python/mount_ssh.py +1 -1
  87. machineconfig/scripts/python/repos.py +6 -3
  88. machineconfig/scripts/python/repos_helper_clone.py +121 -0
  89. machineconfig/scripts/python/repos_helper_record.py +2 -2
  90. machineconfig/scripts/python/start_slidev.py +1 -1
  91. machineconfig/scripts/python/wsl_windows_transfer.py +1 -1
  92. machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +9 -8
  93. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +3 -3
  94. machineconfig/utils/{utils2.py → accessories.py} +13 -27
  95. machineconfig/utils/code.py +2 -2
  96. machineconfig/utils/installer.py +47 -33
  97. machineconfig/utils/installer_utils/installer_abc.py +2 -5
  98. machineconfig/utils/installer_utils/installer_class.py +109 -103
  99. machineconfig/utils/io.py +94 -0
  100. machineconfig/utils/links.py +2 -2
  101. machineconfig/utils/notifications.py +0 -9
  102. machineconfig/utils/{path_reduced.py → path_extended.py} +2 -2
  103. machineconfig/utils/{path.py → path_helper.py} +1 -1
  104. machineconfig/utils/procs.py +2 -1
  105. machineconfig/utils/{utils5.py → scheduler.py} +3 -8
  106. machineconfig/utils/schemas/installer/installer_types.py +20 -0
  107. machineconfig/utils/ssh.py +2 -2
  108. machineconfig/utils/terminal.py +12 -2
  109. machineconfig/utils/ve.py +2 -16
  110. {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/METADATA +1 -4
  111. {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/RECORD +121 -97
  112. machineconfig/utils/io_save.py +0 -95
  113. /machineconfig/scripts/python/ai/{chatmodes → solutions/copilot/chatmodes}/Thinking-Beast-Mode.chatmode.md +0 -0
  114. /machineconfig/scripts/python/ai/{chatmodes → solutions/copilot/chatmodes}/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
  115. /machineconfig/scripts/python/ai/{chatmodes → solutions/copilot/chatmodes}/deepResearch.chatmode.md +0 -0
  116. /machineconfig/scripts/python/ai/{instructions → solutions/copilot/instructions}/python/dev.instructions.md +0 -0
  117. /machineconfig/scripts/python/ai/{prompts → solutions/copilot/prompts}/allLintersAndTypeCheckers.prompt.md +0 -0
  118. /machineconfig/scripts/python/ai/{prompts → solutions/copilot/prompts}/research-report-skeleton.prompt.md +0 -0
  119. /machineconfig/scripts/python/ai/{configs/.gemini → solutions/gemini}/settings.json +0 -0
  120. {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/WHEEL +0 -0
  121. {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/entry_points.txt +0 -0
  122. {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,206 @@
1
+ {
2
+ "ytui-music": {
3
+ "repo_url": "https://github.com/sudipghimire533/ytui-music",
4
+ "doc": "🎵 A terminal based YouTube music player written in Rust.",
5
+ "filename_template_windows_amd_64": "",
6
+ "filename_template_windows_arm_64": "",
7
+ "filename_template_linux_amd_64": "ytui_music-linux-amd64",
8
+ "filename_template_linux_arm_64": "",
9
+ "filename_template_macos_amd_64": "",
10
+ "filename_template_macos_arm_64": "",
11
+ "strip_v": true,
12
+ "exe_name": "ytui-music"
13
+ },
14
+ "youtube-tui": {
15
+ "repo_url": "https://github.com/Siriusmart/youtube-tui",
16
+ "doc": "🎵 A terminal based YouTube music player written in Rust.",
17
+ "filename_template_windows_amd_64": "",
18
+ "filename_template_windows_arm_64": "",
19
+ "filename_template_linux_amd_64": "youtube-tui-full_arch-x86_64",
20
+ "filename_template_linux_arm_64": "",
21
+ "filename_template_macos_amd_64": "",
22
+ "filename_template_macos_arm_64": "",
23
+ "strip_v": true,
24
+ "exe_name": "youtube-tui"
25
+ },
26
+ "termusic": {
27
+ "repo_url": "https://github.com/tramhao/termusic",
28
+ "doc": "🎵 A terminal-based music player written in Rust.",
29
+ "filename_template_windows_amd_64": "termusic-{}-x86_64-windows.zip",
30
+ "filename_template_windows_arm_64": "",
31
+ "filename_template_linux_amd_64": "termusic-{}-x86_64-linux.tar.xz",
32
+ "filename_template_linux_arm_64": "",
33
+ "filename_template_macos_amd_64": "termusic-{}-x86_64-macos.tar.xz",
34
+ "filename_template_macos_arm_64": "",
35
+ "strip_v": false,
36
+ "exe_name": "termusic"
37
+ },
38
+ "kronos": {
39
+ "repo_url": "https://github.com/TrevorSatori/kronos",
40
+ "doc": "🎵 A Customizable Terminal Music Player For Offline Listening",
41
+ "filename_template_windows_amd_64": "",
42
+ "filename_template_windows_arm_64": "",
43
+ "filename_template_linux_amd_64": "Kronos",
44
+ "filename_template_linux_arm_64": "",
45
+ "filename_template_macos_amd_64": "",
46
+ "filename_template_macos_arm_64": "",
47
+ "strip_v": true,
48
+ "exe_name": "kronos"
49
+ },
50
+ "transmission": {
51
+ "repo_url": "https://github.com/transmission/transmission",
52
+ "doc": "📥 A fast, easy, and free BitTorrent client.",
53
+ "filename_template_windows_amd_64": "transmission-{}-x64.msi",
54
+ "filename_template_windows_arm_64": "",
55
+ "filename_template_linux_amd_64": "transmission-{}.tar.xz",
56
+ "filename_template_linux_arm_64": "",
57
+ "filename_template_macos_amd_64": "Transmission-{}.dmg",
58
+ "filename_template_macos_arm_64": "Transmission-{}.dmg",
59
+ "strip_v": true,
60
+ "exe_name": "transmission"
61
+ },
62
+ "nnn": {
63
+ "repo_url": "https://github.com/jarun/nnn",
64
+ "doc": "📂 A terminal-based file manager.",
65
+ "filename_template_windows_amd_64": "",
66
+ "filename_template_windows_arm_64": "",
67
+ "filename_template_linux_amd_64": "",
68
+ "filename_template_linux_arm_64": "",
69
+ "filename_template_macos_amd_64": "",
70
+ "filename_template_macos_arm_64": "",
71
+ "strip_v": false,
72
+ "exe_name": "nnn"
73
+ },
74
+ "exa": {
75
+ "repo_url": "https://github.com/ogham/exa",
76
+ "doc": "📂 A modern replacement for ls. lsd alternative.",
77
+ "filename_template_windows_amd_64": "",
78
+ "filename_template_windows_arm_64": "",
79
+ "filename_template_linux_amd_64": "exa-linux-x86_64-{}.zip",
80
+ "filename_template_linux_arm_64": "exa-linux-armv7-{}.zip",
81
+ "filename_template_macos_amd_64": "exa-macos-x86_64-{}.zip",
82
+ "filename_template_macos_arm_64": "",
83
+ "strip_v": false,
84
+ "exe_name": "exa"
85
+ },
86
+ "bytehound": {
87
+ "repo_url": "https://github.com/koute/bytehound",
88
+ "doc": "🔍 Inspecting the memory usage of a running process",
89
+ "filename_template_windows_amd_64": "",
90
+ "filename_template_windows_arm_64": "",
91
+ "filename_template_linux_amd_64": "bytehound-x86_64-unknown-linux-gnu.tgz",
92
+ "filename_template_linux_arm_64": "",
93
+ "filename_template_macos_amd_64": "",
94
+ "filename_template_macos_arm_64": "",
95
+ "strip_v": false,
96
+ "exe_name": "bytehound"
97
+ },
98
+ "atuin": {
99
+ "repo_url": "https://github.com/atuinsh/atuin",
100
+ "doc": "🔍 Shell history search tool. Mcfly alternative",
101
+ "filename_template_windows_amd_64": "",
102
+ "filename_template_windows_arm_64": "",
103
+ "filename_template_linux_amd_64": "atuin-x86_64-unknown-linux-gnu.tar.gz",
104
+ "filename_template_linux_arm_64": "atuin-aarch64-unknown-linux-gnu.tar.gz",
105
+ "filename_template_macos_amd_64": "atuin-x86_64-apple-darwin.tar.gz",
106
+ "filename_template_macos_arm_64": "atuin-aarch64-apple-darwin.tar.gz",
107
+ "strip_v": false,
108
+ "exe_name": "atuin"
109
+ },
110
+ "browsh": {
111
+ "repo_url": "https://github.com/browsh-org/browsh",
112
+ "doc": "🌐 browser in the shell",
113
+ "filename_template_windows_amd_64": "browsh_{}_windows_amd64.exe",
114
+ "filename_template_windows_arm_64": "browsh_{}_windows_arm64.exe",
115
+ "filename_template_linux_amd_64": "browsh_{}_linux_amd64",
116
+ "filename_template_linux_arm_64": "browsh_{}_linux_arm64",
117
+ "filename_template_macos_amd_64": "browsh_{}_darwin_amd64",
118
+ "filename_template_macos_arm_64": "browsh_{}_darwin_arm64",
119
+ "strip_v": true,
120
+ "exe_name": "browsh"
121
+ },
122
+ "carbonyl": {
123
+ "repo_url": "https://github.com/fathyb/carbonyl",
124
+ "doc": "A Chromium based browser built to run in a terminal",
125
+ "filename_template_windows_amd_64": "",
126
+ "filename_template_windows_arm_64": "",
127
+ "filename_template_linux_amd_64": "carbonyl.linux-x86_64.zip",
128
+ "filename_template_linux_arm_64": "carbonyl.linux-arm64.zip",
129
+ "filename_template_macos_amd_64": "carbonyl.macos-x86_64.zip",
130
+ "filename_template_macos_arm_64": "carbonyl.macos-arm64.zip",
131
+ "strip_v": true,
132
+ "exe_name": "carbonyl"
133
+ },
134
+ "patat": {
135
+ "repo_url": "https://github.com/jaspervdj/patat",
136
+ "doc": "🎯 Terminal-based presentations using Pandoc. Presenterm alternative.",
137
+ "filename_template_windows_amd_64": "",
138
+ "filename_template_windows_arm_64": "",
139
+ "filename_template_linux_amd_64": "patat-{}-linux-x86_64.tar.gz",
140
+ "filename_template_linux_arm_64": "",
141
+ "filename_template_macos_amd_64": "",
142
+ "filename_template_macos_arm_64": "patat-{}-darwin-arm64.zip",
143
+ "strip_v": false,
144
+ "exe_name": "patat"
145
+ },
146
+ "SqliteBrowser": {
147
+ "repo_url": "https://github.com/sqlitebrowser/sqlitebrowser",
148
+ "doc": "🗃️ A visual tool to create, design, and edit database files compatible with SQLite.",
149
+ "filename_template_windows_amd_64": "DB.Browser.for.SQLite-{}-win64.zip",
150
+ "filename_template_windows_arm_64": "",
151
+ "filename_template_linux_amd_64": "DB.Browser.for.SQLite-{}-x86.64-v2.AppImage",
152
+ "filename_template_linux_arm_64": "",
153
+ "filename_template_macos_amd_64": "DB.Browser.for.SQLite-{}.dmg",
154
+ "filename_template_macos_arm_64": "DB.Browser.for.SQLite-{}.dmg",
155
+ "strip_v": false,
156
+ "exe_name": "sqlite_browser"
157
+ },
158
+ "DBeaver": {
159
+ "repo_url": "https://github.com/dbeaver/dbeaver",
160
+ "doc": "🗃️ Free universal database tool and SQL client.",
161
+ "filename_template_windows_amd_64": "dbeaver-ce-{}-win32.win32.x86_64.zip",
162
+ "filename_template_windows_arm_64": "",
163
+ "filename_template_linux_amd_64": "dbeaver-ce-{}-linux.gtk.x86_64.tar.gz",
164
+ "filename_template_linux_arm_64": "dbeaver-ce-{}-linux.gtk.aarch64.tar.gz",
165
+ "filename_template_macos_amd_64": "dbeaver-ce-{}-macos-cocoa.x86_64.tar.gz",
166
+ "filename_template_macos_arm_64": "dbeaver-ce-{}-macos-cocoa.aarch64.tar.gz",
167
+ "strip_v": true,
168
+ "exe_name": "dbeaver"
169
+ },
170
+ "rainfrog": {
171
+ "repo_url": "https://github.com/achristmascarl/rainfrog",
172
+ "doc": "🗃️ TUI DB Visualizer",
173
+ "filename_template_windows_amd_64": "rainfrog-{}-x86_64-pc-windows-msvc.tar.gz",
174
+ "filename_template_windows_arm_64": "rainfrog-{}-aarch64-pc-windows-msvc.tar.gz",
175
+ "filename_template_linux_amd_64": "rainfrog-{}-x86_64-unknown-linux-musl.tar.gz",
176
+ "filename_template_linux_arm_64": "rainfrog-{}-aarch64-unknown-linux-musl.tar.gz",
177
+ "filename_template_macos_amd_64": "rainfrog-{}-x86_64-apple-darwin.tar.gz",
178
+ "filename_template_macos_arm_64": "rainfrog-{}-aarch64-apple-darwin.tar.gz",
179
+ "strip_v": false,
180
+ "exe_name": "rainfrog"
181
+ },
182
+ "cpz": {
183
+ "repo_url": "https://github.com/SUPERCILEX/fuc",
184
+ "doc": "📋 Fast copy",
185
+ "filename_template_windows_amd_64": "x86_64-pc-windows-msvc-cpz.exe",
186
+ "filename_template_windows_arm_64": "aarch64-pc-windows-msvc-cpz.exe",
187
+ "filename_template_linux_amd_64": "x86_64-unknown-linux-musl-cpz",
188
+ "filename_template_linux_arm_64": "aarch64-unknown-linux-gnu-cpz",
189
+ "filename_template_macos_amd_64": "x86_64-apple-darwin-cpz",
190
+ "filename_template_macos_arm_64": "aarch64-apple-darwin-cpz",
191
+ "strip_v": true,
192
+ "exe_name": "cpz"
193
+ },
194
+ "rmz": {
195
+ "repo_url": "https://github.com/SUPERCILEX/fuc",
196
+ "doc": "🗑️ Fast remove",
197
+ "filename_template_windows_amd_64": "x86_64-pc-windows-msvc-rmz.exe",
198
+ "filename_template_windows_arm_64": "aarch64-pc-windows-msvc-rmz.exe",
199
+ "filename_template_linux_amd_64": "x86_64-unknown-linux-musl-rmz",
200
+ "filename_template_linux_arm_64": "aarch64-unknown-linux-gnu-rmz",
201
+ "filename_template_macos_amd_64": "x86_64-apple-darwin-rmz",
202
+ "filename_template_macos_arm_64": "aarch64-apple-darwin-rmz",
203
+ "strip_v": true,
204
+ "exe_name": "rmz"
205
+ }
206
+ }
@@ -1,56 +1,82 @@
1
1
  {
2
- "speedtest": {
3
- "repo_url": "https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-win64.zip",
4
- "doc": "🚀 Test your internet connection speed and ping using speedtest.net from the CLI",
5
- "filename_template_windows_amd_64": "speedtest",
6
- "filename_template_windows_arm_64": "speedtest",
7
- "filename_template_linux_amd_64": "speedtest",
8
- "strip_v": false,
9
- "exe_name": "speedtest"
2
+ "version": "1",
3
+ "installers": [
4
+ {
5
+ "appName": "speedtest",
6
+ "repoURL": "https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-win64.zip",
7
+ "doc": "🚀 Test your internet connection speed and ping using speedtest.net from the CLI",
8
+ "filenameTemplate": {
9
+ "amd64": {
10
+ "windows": "speedtest",
11
+ "linux": "speedtest"
12
+ },
13
+ "arm64": {
14
+ "windows": "speedtest"
15
+ }
16
+ },
17
+ "stripVersion": false,
18
+ "exeName": "speedtest"
10
19
  },
11
- "boxes": {
12
- "repo_url": "https://github.com/ascii-boxes/boxes",
13
- "doc": "📦 ASCI draws boxes around text.",
14
- "filename_template_windows_amd_64": "boxes-{}-intel-win32.zip",
15
- "filename_template_windows_arm_64": "",
16
- "filename_template_linux_amd_64": "",
17
- "strip_v": true,
18
- "exe_name": "boxes"
20
+ {
21
+ "appName": "boxes",
22
+ "repoURL": "https://github.com/ascii-boxes/boxes",
23
+ "doc": "📦 ASCI draws boxes around text.",
24
+ "filenameTemplate": {
25
+ "amd64": {
26
+ "windows": "boxes-{}-intel-win32.zip"
27
+ },
28
+ "arm64": {}
29
+ },
30
+ "stripVersion": true,
31
+ "exeName": "boxes"
19
32
  },
20
- "ugrep": {
21
- "repo_url": "https://github.com/Genivia/ugrep",
22
- "doc": "🔍 A fast, portable, feature-rich command-line search tool",
23
- "filename_template_windows_amd_64": "ugrep-windows-x64.zip",
24
- "filename_template_windows_arm_64": "",
25
- "filename_template_linux_amd_64": "",
26
- "strip_v": true,
27
- "exe_name": "ugrep"
33
+ {
34
+ "appName": "ugrep",
35
+ "repoURL": "https://github.com/Genivia/ugrep",
36
+ "doc": "🔍 A fast, portable, feature-rich command-line search tool",
37
+ "filenameTemplate": {
38
+ "amd64": {
39
+ "windows": "ugrep-windows-x64.zip"
40
+ },
41
+ "arm64": {}
42
+ },
43
+ "stripVersion": true,
44
+ "exeName": "ugrep"
28
45
  },
29
- "zoomit": {
30
- "repo_url": "https://download.sysinternals.com/files/ZoomIt.zip",
31
- "doc": "🔍 A screen zoom and annotation tool for presentations",
32
- "filename_template_windows_amd_64": "",
33
- "filename_template_windows_arm_64": "",
34
- "filename_template_linux_amd_64": "",
35
- "strip_v": false,
36
- "exe_name": "ZoomIt.exe"
46
+ {
47
+ "appName": "zoomit",
48
+ "repoURL": "https://download.sysinternals.com/files/ZoomIt.zip",
49
+ "doc": "🔍 A screen zoom and annotation tool for presentations",
50
+ "filenameTemplate": {
51
+ "amd64": {},
52
+ "arm64": {}
53
+ },
54
+ "stripVersion": false,
55
+ "exeName": "ZoomIt.exe"
37
56
  },
38
- "ntop": {
39
- "repo_url": "https://github.com/gsass1/NTop",
40
- "doc": "📊 Like htop, for Windows",
41
- "filename_template_windows_amd_64": "ntop.exe",
42
- "filename_template_windows_arm_64": "",
43
- "filename_template_linux_amd_64": "",
44
- "strip_v": false,
45
- "exe_name": "ntop.exe"
57
+ {
58
+ "appName": "ntop",
59
+ "repoURL": "https://github.com/gsass1/NTop",
60
+ "doc": "📊 Like htop, for Windows",
61
+ "filenameTemplate": {
62
+ "amd64": {
63
+ "windows": "ntop.exe"
64
+ },
65
+ "arm64": {}
66
+ },
67
+ "stripVersion": false,
68
+ "exeName": "ntop.exe"
46
69
  },
47
- "devtunnel": {
48
- "repo_url": "winget install --Id Microsoft.devtunnel --scope user",
49
- "doc": "🔄 devtunnel secure introspectable tunnels to localhost",
50
- "filename_template_windows_amd_64": "",
51
- "filename_template_windows_arm_64": "",
52
- "filename_template_linux_amd_64": "",
53
- "strip_v": false,
54
- "exe_name": "devtunnel"
70
+ {
71
+ "appName": "devtunnel",
72
+ "repoURL": "winget install --Id Microsoft.devtunnel --scope user",
73
+ "doc": "🔄 devtunnel secure introspectable tunnels to localhost",
74
+ "filenameTemplate": {
75
+ "amd64": {},
76
+ "arm64": {}
77
+ },
78
+ "stripVersion": false,
79
+ "exeName": "devtunnel"
55
80
  }
81
+ ]
56
82
  }
@@ -0,0 +1,56 @@
1
+ {
2
+ "speedtest": {
3
+ "repo_url": "https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-win64.zip",
4
+ "doc": "🚀 Test your internet connection speed and ping using speedtest.net from the CLI",
5
+ "filename_template_windows_amd_64": "speedtest",
6
+ "filename_template_windows_arm_64": "speedtest",
7
+ "filename_template_linux_amd_64": "speedtest",
8
+ "strip_v": false,
9
+ "exe_name": "speedtest"
10
+ },
11
+ "boxes": {
12
+ "repo_url": "https://github.com/ascii-boxes/boxes",
13
+ "doc": "📦 ASCI draws boxes around text.",
14
+ "filename_template_windows_amd_64": "boxes-{}-intel-win32.zip",
15
+ "filename_template_windows_arm_64": "",
16
+ "filename_template_linux_amd_64": "",
17
+ "strip_v": true,
18
+ "exe_name": "boxes"
19
+ },
20
+ "ugrep": {
21
+ "repo_url": "https://github.com/Genivia/ugrep",
22
+ "doc": "🔍 A fast, portable, feature-rich command-line search tool",
23
+ "filename_template_windows_amd_64": "ugrep-windows-x64.zip",
24
+ "filename_template_windows_arm_64": "",
25
+ "filename_template_linux_amd_64": "",
26
+ "strip_v": true,
27
+ "exe_name": "ugrep"
28
+ },
29
+ "zoomit": {
30
+ "repo_url": "https://download.sysinternals.com/files/ZoomIt.zip",
31
+ "doc": "🔍 A screen zoom and annotation tool for presentations",
32
+ "filename_template_windows_amd_64": "",
33
+ "filename_template_windows_arm_64": "",
34
+ "filename_template_linux_amd_64": "",
35
+ "strip_v": false,
36
+ "exe_name": "ZoomIt.exe"
37
+ },
38
+ "ntop": {
39
+ "repo_url": "https://github.com/gsass1/NTop",
40
+ "doc": "📊 Like htop, for Windows",
41
+ "filename_template_windows_amd_64": "ntop.exe",
42
+ "filename_template_windows_arm_64": "",
43
+ "filename_template_linux_amd_64": "",
44
+ "strip_v": false,
45
+ "exe_name": "ntop.exe"
46
+ },
47
+ "devtunnel": {
48
+ "repo_url": "winget install --Id Microsoft.devtunnel --scope user",
49
+ "doc": "🔄 devtunnel secure introspectable tunnels to localhost",
50
+ "filename_template_windows_amd_64": "",
51
+ "filename_template_windows_arm_64": "",
52
+ "filename_template_linux_amd_64": "",
53
+ "strip_v": false,
54
+ "exe_name": "devtunnel"
55
+ }
56
+ }
@@ -1,3 +1,4 @@
1
1
  {
2
-
3
- }
2
+ "version": "1",
3
+ "installers": []
4
+ }
@@ -6,17 +6,17 @@ This script Takes away all config files from the computer, place them in one dir
6
6
 
7
7
  from rich.console import Console
8
8
 
9
- from machineconfig.utils.path_reduced import PathExtended as PathExtended
9
+ from machineconfig.utils.path_extended import PathExtended as PathExtended
10
10
  from machineconfig.utils.links import symlink_func, symlink_copy
11
11
  from machineconfig.utils.options import display_options
12
12
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT, REPO_ROOT
13
- from machineconfig.utils.utils2 import read_toml
14
13
  from machineconfig.profile.shell import create_default_shell_profile
15
14
 
16
15
  import platform
17
16
  import os
18
17
  import ctypes
19
18
  import subprocess
19
+ import tomllib
20
20
  from typing import Optional, Any, TypedDict
21
21
 
22
22
  system = platform.system() # Linux or Windows
@@ -39,7 +39,7 @@ class SymlinkMapper(TypedDict):
39
39
 
40
40
 
41
41
  def apply_mapper(choice: Optional[str] = None):
42
- symlink_mapper: dict[str, dict[str, SymlinkMapper]] = read_toml(LIBRARY_ROOT.joinpath("profile/mapper.toml"))
42
+ symlink_mapper: dict[str, dict[str, SymlinkMapper]] = tomllib.loads(LIBRARY_ROOT.joinpath("profile/mapper.toml").read_text(encoding="utf-8"))
43
43
  prioritize_to_this = True
44
44
  exclude: list[str] = [] # "wsl_linux", "wsl_windows"
45
45
 
@@ -1,6 +1,6 @@
1
1
  """shell"""
2
2
 
3
- from machineconfig.utils.path_reduced import PathExtended as PathExtended
3
+ from machineconfig.utils.path_extended import PathExtended as PathExtended
4
4
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT
5
5
 
6
6
  import platform
@@ -1,17 +1,16 @@
1
1
  from pathlib import Path
2
- from machineconfig.utils.ve import get_repo_root
3
2
 
4
- installations = """
5
- uv add --upgrade-package pylint pyright mypy pyrefly ty --dev # linters and type checkers
6
- uv add --upgrade-package pytest --dev
7
- """
3
+ from machineconfig.scripts.python.ai.solutions import generic
4
+ from machineconfig.scripts.python.ai.solutions.claude import claude
5
+ from machineconfig.scripts.python.ai.solutions.cline import cline
6
+ from machineconfig.scripts.python.ai.solutions.copilot import github_copilot
7
+ from machineconfig.scripts.python.ai.solutions.crush import crush
8
+ from machineconfig.scripts.python.ai.solutions.cursor import cursors
9
+ from machineconfig.scripts.python.ai.solutions.gemini import gemini
10
+ from machineconfig.utils.accessories import get_repo_root
8
11
 
9
12
 
10
13
  def add_ai_configs(repo_root: Path) -> None:
11
- import machineconfig as mc
12
-
13
- mc_root = Path(mc.__file__).parent
14
-
15
14
  repo_root_resolved = get_repo_root(repo_root)
16
15
  if repo_root_resolved is not None:
17
16
  repo_root = repo_root_resolved # this means you can run the command from any subdirectory of the repo.
@@ -22,6 +21,9 @@ def add_ai_configs(repo_root: Path) -> None:
22
21
  command_to_run = """
23
22
  uv init --python 3.13
24
23
  uv venv
24
+ uv add --upgrade-package pylint pyright mypy pyrefly ty --dev # linters and type checkers
25
+ uv add --upgrade-package pytest --dev
26
+
25
27
  """
26
28
  import subprocess
27
29
 
@@ -30,66 +32,20 @@ uv venv
30
32
  print("Terminating mcinit ...")
31
33
  return
32
34
 
33
- instructions_repository_dir = mc_root.joinpath("scripts/python/ai/instructions")
34
- chatmodes_dir = mc_root.joinpath("scripts/python/ai/chatmodes")
35
- prompts_dir = mc_root.joinpath("scripts/python/ai/prompts")
36
- # python_rules_file = instructions_repository_dir.joinpath("python/dev.md")
37
-
38
- # VSCODE:
39
- # as per: https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
40
- # Copilot Chat on github website chat & basic guideline.
41
- repo_root.joinpath(".github/chatmodes").mkdir(parents=True, exist_ok=True)
42
- repo_root.joinpath(".github/prompts").mkdir(parents=True, exist_ok=True)
43
- repo_root.joinpath(".github/instructions").mkdir(parents=True, exist_ok=True)
44
- for a_chatmode in chatmodes_dir.iterdir():
45
- repo_root.joinpath(".github/chatmodes", a_chatmode.name.split(".")[0] + ".chatmode.md").write_text(data=a_chatmode.read_text(encoding="utf-8"), encoding="utf-8")
46
- for a_prompt in prompts_dir.iterdir():
47
- repo_root.joinpath(".github/prompts", a_prompt.name.split(".")[0] + ".prompt.md").write_text(data=a_prompt.read_text(encoding="utf-8"), encoding="utf-8")
48
- for an_instruction in instructions_repository_dir.rglob("*.md"):
49
- repo_root.joinpath(".github/instructions", an_instruction.name.split(".")[0] + ".instruction.md").write_text(data=an_instruction.read_text(encoding="utf-8"), encoding="utf-8")
50
- tmp = repo_root.joinpath(".github/copilot-instructions.md")
51
-
52
- generic_instructions = instructions_repository_dir.joinpath("python/dev.instructions.md")
53
- tmp.write_text(data=generic_instructions.read_text(encoding="utf-8"), encoding="utf-8")
54
-
55
- # CURSOR, GEMINI, CLAUDE CODE, CRUSH, CLINE.
56
- tmp = repo_root.joinpath(".cursor/rules/python_dev.mdc")
57
- tmp.parent.mkdir(parents=True, exist_ok=True)
58
- tmp.write_text(data=generic_instructions.read_text(encoding="utf-8"), encoding="utf-8")
59
- tmp = repo_root.joinpath("CLAUDE.md")
60
- tmp.write_text(data=generic_instructions.read_text(encoding="utf-8"), encoding="utf-8")
61
- tmp = repo_root.joinpath("CRUSH.md")
62
- tmp.write_text(data=generic_instructions.read_text(encoding="utf-8"), encoding="utf-8")
63
-
64
- tmp = repo_root.joinpath("GEMINI.md")
65
- tmp.write_text(data=generic_instructions.read_text(encoding="utf-8"), encoding="utf-8")
66
- gemini_settings = mc_root.joinpath("scripts/python/ai/configs/.gemini/settings.json")
67
- repo_root.joinpath(".gemini").mkdir(parents=True, exist_ok=True)
68
- repo_root.joinpath(".gemini/settings.json").write_text(data=gemini_settings.read_text(encoding="utf-8"), encoding="utf-8")
69
-
70
- tmp = repo_root.joinpath(".clinerules")
71
- tmp.mkdir(parents=True, exist_ok=True)
72
- tmp.joinpath("python_dev.md").write_text(data=generic_instructions.read_text(encoding="utf-8"), encoding="utf-8")
73
-
74
- # OTHERS
75
- scripts_dir = mc_root.joinpath("scripts/python/ai/scripts")
76
- repo_root.joinpath(".scripts").mkdir(parents=True, exist_ok=True)
77
- for a_script in scripts_dir.iterdir():
78
- repo_root.joinpath(".scripts", a_script.name).write_text(data=a_script.read_text(encoding="utf-8"), encoding="utf-8")
79
-
80
35
  dot_ai_dir = repo_root.joinpath(".ai")
81
36
  dot_ai_dir.mkdir(parents=True, exist_ok=True)
82
- dot_git_ignore_path = repo_root.joinpath(".gitignore")
83
- if dot_git_ignore_path.exists():
84
- dot_git_ignore_content = dot_git_ignore_path.read_text(encoding="utf-8")
85
- to_add: list[str] = []
86
- to_check_for: list[str] = [".links", "notebooks", ".ai", ".scripts", "GEMINI.md", "CLAUDE.md", ".cursor", ".github/instructions", ".github/chatmodes", ".github/prompts"]
87
- for item in to_check_for:
88
- if item not in dot_git_ignore_content:
89
- to_add.append(item)
90
- # if "*.ipynb"
91
- if len(to_add) > 0:
92
- dot_git_ignore_path.write_text(data=dot_git_ignore_content + "\n" + "\n".join(to_add), encoding="utf-8")
37
+ dot_scripts_dir = repo_root.joinpath(".scripts")
38
+ dot_scripts_dir.mkdir(parents=True, exist_ok=True)
39
+ generic.create_dot_scripts(repo_root=repo_root)
40
+ generic.adjust_gitignore(repo_root=repo_root)
41
+
42
+ github_copilot.build_configuration(repo_root=repo_root)
43
+ cursors.build_configuration(repo_root=repo_root)
44
+ gemini.build_configuration(repo_root=repo_root)
45
+ claude.build_configuration(repo_root=repo_root)
46
+ crush.build_configuration(repo_root=repo_root)
47
+ cline.build_configuration(repo_root=repo_root)
48
+
93
49
 
94
50
 
95
51
  def main() -> None:
File without changes
@@ -0,0 +1,5 @@
1
+ from pathlib import Path
2
+ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
3
+
4
+ def get_generic_instructions_path() -> Path:
5
+ return LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md")
@@ -0,0 +1,8 @@
1
+ from pathlib import Path
2
+
3
+ from machineconfig.scripts.python.ai.solutions._shared import get_generic_instructions_path
4
+
5
+
6
+ def build_configuration(repo_root: Path) -> None:
7
+ instructions_path = get_generic_instructions_path()
8
+ repo_root.joinpath("CLAUDE.md").write_text(data=instructions_path.read_text(encoding="utf-8"), encoding="utf-8")
@@ -0,0 +1,10 @@
1
+ from pathlib import Path
2
+
3
+ from machineconfig.scripts.python.ai.solutions._shared import get_generic_instructions_path
4
+
5
+
6
+ def build_configuration(repo_root: Path) -> None:
7
+ instructions_path = get_generic_instructions_path()
8
+ cline_dir = repo_root.joinpath(".clinerules")
9
+ cline_dir.mkdir(parents=True, exist_ok=True)
10
+ cline_dir.joinpath("python_dev.md").write_text(data=instructions_path.read_text(encoding="utf-8"), encoding="utf-8")
@@ -0,0 +1,35 @@
1
+ from pathlib import Path
2
+
3
+ from machineconfig.scripts.python.ai.solutions._shared import get_generic_instructions_path
4
+ from machineconfig.utils.source_of_truth import LIBRARY_ROOT
5
+
6
+
7
+
8
+ def build_configuration(repo_root: Path) -> None:
9
+ instructions_repository_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/instructions")
10
+ chatmodes_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/chatmodes")
11
+ prompts_dir = LIBRARY_ROOT.joinpath("scripts/python/ai/solutions/copilot/prompts")
12
+
13
+ github_dir = repo_root.joinpath(".github")
14
+ chatmodes_target_dir = github_dir.joinpath("chatmodes")
15
+ prompts_target_dir = github_dir.joinpath("prompts")
16
+ instructions_target_dir = github_dir.joinpath("instructions")
17
+
18
+ chatmodes_target_dir.mkdir(parents=True, exist_ok=True)
19
+ prompts_target_dir.mkdir(parents=True, exist_ok=True)
20
+ instructions_target_dir.mkdir(parents=True, exist_ok=True)
21
+
22
+ for chatmode in chatmodes_dir.iterdir():
23
+ chatmode_target = chatmodes_target_dir.joinpath(f"{chatmode.name.split('.')[0]}.chatmode.md")
24
+ chatmode_target.write_text(data=chatmode.read_text(encoding="utf-8"), encoding="utf-8")
25
+
26
+ for prompt in prompts_dir.iterdir():
27
+ prompt_target = prompts_target_dir.joinpath(f"{prompt.name.split('.')[0]}.prompt.md")
28
+ prompt_target.write_text(data=prompt.read_text(encoding="utf-8"), encoding="utf-8")
29
+
30
+ for instruction in instructions_repository_dir.rglob("*.md"):
31
+ instruction_target = instructions_target_dir.joinpath(f"{instruction.name.split('.')[0]}.instruction.md")
32
+ instruction_target.write_text(data=instruction.read_text(encoding="utf-8"), encoding="utf-8")
33
+
34
+ generic_instructions_path = get_generic_instructions_path()
35
+ github_dir.joinpath("copilot-instructions.md").write_text(data=generic_instructions_path.read_text(encoding="utf-8"), encoding="utf-8")
@@ -0,0 +1,4 @@
1
+
2
+ # Go to settings of github copilot and disable telemetry usage and report
3
+ # simliarly, disable using data for training.
4
+ # remember to do this per account.