karnel-termux 4.8.0 → 4.9.0

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.
Files changed (190) hide show
  1. package/README.md +9 -3
  2. package/install.sh +2 -2
  3. package/karnel/cli/commands/backup.sh +5 -2
  4. package/karnel/cli/commands/doctor/fixes.sh +111 -13
  5. package/karnel/cli/commands/doctor.sh +104 -10
  6. package/karnel/cli/commands/init.sh +2 -2
  7. package/karnel/cli/commands/install.sh +26 -44
  8. package/karnel/cli/commands/list.sh +74 -13
  9. package/karnel/cli/commands/open.sh +18 -2
  10. package/karnel/cli/commands/reinstall.sh +68 -46
  11. package/karnel/cli/commands/restore.sh +16 -0
  12. package/karnel/cli/commands/search.sh +1 -0
  13. package/karnel/cli/commands/start.sh +7 -2
  14. package/karnel/cli/commands/uninstall.sh +38 -0
  15. package/karnel/cli/commands/update.sh +34 -0
  16. package/karnel/cli/commands/voice.sh +11 -6
  17. package/karnel/cli/karnel.sh +81 -45
  18. package/karnel/modules/ai.sh +21 -6
  19. package/karnel/modules/deploy.sh +4 -0
  20. package/karnel/modules/games.sh +81 -4
  21. package/karnel/modules/network.sh +88 -0
  22. package/karnel/modules/shell.sh +1 -1
  23. package/karnel/modules/ui.sh +4 -0
  24. package/karnel/modules/utils.sh +88 -0
  25. package/karnel/modules/voice.sh +8 -2
  26. package/karnel/tools/ai/all.sh +1 -0
  27. package/karnel/tools/ai/antigravity-cli/install.sh +0 -0
  28. package/karnel/tools/ai/claude-code/install.sh +0 -0
  29. package/karnel/tools/ai/cline/install.sh +8 -8
  30. package/karnel/tools/ai/codegraph/install.sh +8 -5
  31. package/karnel/tools/ai/codex/install.sh +0 -0
  32. package/karnel/tools/ai/command-code/install.sh +0 -0
  33. package/karnel/tools/ai/copilot-termux/install.sh +0 -0
  34. package/karnel/tools/ai/crush/install.sh +0 -0
  35. package/karnel/tools/ai/ctx7/install.sh +0 -0
  36. package/karnel/tools/ai/engram/install.sh +5 -2
  37. package/karnel/tools/ai/freebuff/install.sh +0 -0
  38. package/karnel/tools/ai/gemini-cli/install.sh +0 -0
  39. package/karnel/tools/ai/gentle-ai/install.sh +1 -1
  40. package/karnel/tools/ai/hermes-agent/install.sh +0 -0
  41. package/karnel/tools/ai/kilocode-cli/install.sh +0 -0
  42. package/karnel/tools/ai/kimchi-code/install.sh +3 -1
  43. package/karnel/tools/ai/kimi-code/install.sh +0 -0
  44. package/karnel/tools/ai/kiro/install.sh +0 -0
  45. package/karnel/tools/ai/mimocode/install.sh +0 -0
  46. package/karnel/tools/ai/minimax-cli/install.sh +0 -0
  47. package/karnel/tools/ai/mistral-vibe/install.sh +0 -0
  48. package/karnel/tools/ai/odysseus/install.sh +0 -0
  49. package/karnel/tools/ai/ollama/install.sh +0 -0
  50. package/karnel/tools/ai/openclaude/install.sh +0 -0
  51. package/karnel/tools/ai/openclaw/install.sh +0 -0
  52. package/karnel/tools/ai/opencode/install.sh +0 -0
  53. package/karnel/tools/ai/openspec/install.sh +0 -0
  54. package/karnel/tools/ai/pi/install.sh +0 -0
  55. package/karnel/tools/ai/qoder/README.md +50 -0
  56. package/karnel/tools/ai/qoder/bin/qodercli +28 -0
  57. package/karnel/tools/ai/qoder/helper/qoder_helper.c +47 -0
  58. package/karnel/tools/ai/qoder/install.sh +367 -0
  59. package/karnel/tools/ai/qwen-code/install.sh +0 -0
  60. package/karnel/tools/auto/all.sh +1 -1
  61. package/karnel/tools/auto/n8n/install.sh +0 -0
  62. package/karnel/tools/db/all.sh +1 -1
  63. package/karnel/tools/db/mariadb/install.sh +0 -0
  64. package/karnel/tools/db/mongodb/install.sh +0 -0
  65. package/karnel/tools/db/postgresql/install.sh +0 -0
  66. package/karnel/tools/db/sqlite/install.sh +0 -0
  67. package/karnel/tools/deploy/all.sh +2 -2
  68. package/karnel/tools/deploy/netlify/install.sh +0 -0
  69. package/karnel/tools/deploy/railway/install.sh +0 -0
  70. package/karnel/tools/deploy/vercel/install.sh +0 -0
  71. package/karnel/tools/dev/all.sh +1 -21
  72. package/karnel/tools/dev/bat/install.sh +0 -0
  73. package/karnel/tools/dev/bc/install.sh +0 -0
  74. package/karnel/tools/dev/cloudflared/install.sh +0 -0
  75. package/karnel/tools/dev/curl/install.sh +0 -0
  76. package/karnel/tools/dev/fzf/install.sh +0 -0
  77. package/karnel/tools/dev/gh/install.sh +0 -0
  78. package/karnel/tools/dev/html2text/install.sh +0 -0
  79. package/karnel/tools/dev/imagemagick/install.sh +0 -0
  80. package/karnel/tools/dev/jq/install.sh +0 -0
  81. package/karnel/tools/dev/lsd/install.sh +0 -0
  82. package/karnel/tools/dev/make/install.sh +0 -0
  83. package/karnel/tools/dev/ncurses/install.sh +0 -0
  84. package/karnel/tools/dev/proot/install.sh +0 -0
  85. package/karnel/tools/dev/shfmt/install.sh +0 -0
  86. package/karnel/tools/dev/snyk/install.sh +0 -0
  87. package/karnel/tools/dev/tmate/install.sh +0 -0
  88. package/karnel/tools/dev/translate/install.sh +0 -0
  89. package/karnel/tools/dev/tree/install.sh +0 -0
  90. package/karnel/tools/dev/udocker/install.sh +0 -0
  91. package/karnel/tools/dev/wget/install.sh +0 -0
  92. package/karnel/tools/editor/all.sh +1 -1
  93. package/karnel/tools/editor/code-server/install.sh +0 -0
  94. package/karnel/tools/games/all.sh +1 -1
  95. package/karnel/tools/games/arcade/install.sh +0 -0
  96. package/karnel/tools/games/buzz/install.sh +0 -0
  97. package/karnel/tools/games/ctfgod/install.sh +0 -0
  98. package/karnel/tools/games/detective/install.sh +0 -0
  99. package/karnel/tools/games/pet-friends/install.sh +0 -0
  100. package/karnel/tools/games/tamagotchi/install.sh +0 -0
  101. package/karnel/tools/lang/all.sh +2 -1
  102. package/karnel/tools/lang/bun/bin/bun +27 -0
  103. package/karnel/tools/lang/bun/install.sh +318 -0
  104. package/karnel/tools/lang/bun/src/bun-shim.c +352 -0
  105. package/karnel/tools/lang/bun/src/bun_wrapper.c +55 -0
  106. package/karnel/tools/lang/clang/install.sh +0 -0
  107. package/karnel/tools/lang/golang/install.sh +0 -0
  108. package/karnel/tools/lang/nodejs/install.sh +0 -0
  109. package/karnel/tools/lang/perl/install.sh +0 -0
  110. package/karnel/tools/lang/php/install.sh +0 -0
  111. package/karnel/tools/lang/python/install.sh +0 -0
  112. package/karnel/tools/lang/rust/install.sh +0 -0
  113. package/karnel/tools/network/all.sh +65 -0
  114. package/karnel/tools/network/dark/README.md +45 -0
  115. package/karnel/tools/network/dark/dark.py +709 -0
  116. package/karnel/tools/network/dark/install.sh +51 -0
  117. package/karnel/tools/network/dedsec-network/README.md +42 -0
  118. package/karnel/tools/network/dedsec-network/dedsec-network.py +709 -0
  119. package/karnel/tools/network/dedsec-network/install.sh +50 -0
  120. package/karnel/tools/npm/all.sh +1 -1
  121. package/karnel/tools/npm/live-server/install.sh +0 -0
  122. package/karnel/tools/npm/localtunnel/install.sh +0 -0
  123. package/karnel/tools/npm/markserv/install.sh +0 -0
  124. package/karnel/tools/npm/ncu/install.sh +0 -0
  125. package/karnel/tools/npm/nestjs/install.sh +0 -0
  126. package/karnel/tools/npm/ngrok/install.sh +0 -0
  127. package/karnel/tools/npm/prettier/install.sh +0 -0
  128. package/karnel/tools/npm/psqlformat/install.sh +0 -0
  129. package/karnel/tools/npm/turbopack/install.sh +0 -0
  130. package/karnel/tools/npm/typescript/install.sh +0 -0
  131. package/karnel/tools/npm/vercel/install.sh +0 -0
  132. package/karnel/tools/osint/all.sh +1 -1
  133. package/karnel/tools/osint/robin/common.sh +0 -0
  134. package/karnel/tools/osint/robin/install.sh +0 -0
  135. package/karnel/tools/shell/all.sh +1 -1
  136. package/karnel/tools/shell/better-npm/install.sh +0 -0
  137. package/karnel/tools/shell/fzf-tab/install.sh +0 -0
  138. package/karnel/tools/shell/history-substring/install.sh +0 -0
  139. package/karnel/tools/shell/powerlevel10k/install.sh +0 -0
  140. package/karnel/tools/shell/you-should-use/install.sh +0 -0
  141. package/karnel/tools/shell/zsh-autopair/install.sh +0 -0
  142. package/karnel/tools/shell/zsh-autosuggestions/install.sh +0 -0
  143. package/karnel/tools/shell/zsh-completions/install.sh +0 -0
  144. package/karnel/tools/shell/zsh-defer/install.sh +0 -0
  145. package/karnel/tools/shell/zsh-syntax-highlighting/install.sh +0 -0
  146. package/karnel/tools/ui/all.sh +1 -1
  147. package/karnel/tools/ui/banner/install.sh +0 -0
  148. package/karnel/tools/ui/cursor/install.sh +0 -0
  149. package/karnel/tools/ui/extra-keys/install.sh +0 -0
  150. package/karnel/tools/ui/font/install.sh +0 -0
  151. package/karnel/tools/utils/all.sh +88 -0
  152. package/karnel/tools/utils/applaunch/README.md +43 -0
  153. package/karnel/tools/{dev → utils}/applaunch/install.sh +3 -3
  154. package/karnel/tools/utils/fconv/README.md +41 -0
  155. package/karnel/tools/{dev → utils}/fconv/install.sh +3 -3
  156. package/karnel/tools/utils/filecheck/README.md +41 -0
  157. package/karnel/tools/{dev → utils}/filecheck/install.sh +3 -3
  158. package/karnel/tools/utils/httptmux/README.md +42 -0
  159. package/karnel/tools/{dev → utils}/httptmux/install.sh +0 -0
  160. package/karnel/tools/utils/notes/README.md +41 -0
  161. package/karnel/tools/{dev → utils}/notes/install.sh +3 -3
  162. package/karnel/tools/utils/passman/README.md +42 -0
  163. package/karnel/tools/{dev → utils}/passman/install.sh +3 -3
  164. package/karnel/tools/utils/qrcode/README.md +41 -0
  165. package/karnel/tools/utils/qrcode/install.sh +50 -0
  166. package/karnel/tools/utils/qrcode/qrcode.py +89 -0
  167. package/karnel/tools/utils/splash/README.md +41 -0
  168. package/karnel/tools/{dev → utils}/splash/install.sh +3 -3
  169. package/karnel/tools/utils/treex/README.md +41 -0
  170. package/karnel/tools/{dev → utils}/treex/install.sh +3 -3
  171. package/karnel/tools/utils/websites/README.md +41 -0
  172. package/karnel/tools/{dev → utils}/websites/install.sh +3 -3
  173. package/karnel/tools/utils/zork/README.md +43 -0
  174. package/karnel/tools/{dev → utils}/zork/install.sh +3 -3
  175. package/karnel/utils/banner.sh +8 -6
  176. package/karnel/utils/bootstrap.sh +1 -1
  177. package/karnel/utils/env.sh +1 -1
  178. package/karnel/utils/log.sh +0 -1
  179. package/package.json +1 -1
  180. package/scripts/completion.bash +3 -3
  181. package/scripts/completion.zsh +0 -12
  182. package/karnel/cli/commands/doctor/system.sh +0 -89
  183. /package/karnel/tools/{dev → utils}/applaunch/applaunch.py +0 -0
  184. /package/karnel/tools/{dev → utils}/fconv/fconv.py +0 -0
  185. /package/karnel/tools/{dev → utils}/filecheck/filecheck.py +0 -0
  186. /package/karnel/tools/{dev → utils}/notes/notes.py +0 -0
  187. /package/karnel/tools/{dev → utils}/passman/passman.py +0 -0
  188. /package/karnel/tools/{dev → utils}/splash/splash.py +0 -0
  189. /package/karnel/tools/{dev → utils}/treex/treex.py +0 -0
  190. /package/karnel/tools/{dev → utils}/websites/websites.py +0 -0
@@ -25,6 +25,10 @@ reinstall_main() {
25
25
  list_item "ui - Reinstall Termux UI"
26
26
  list_item "auto - Reinstall automation tools"
27
27
  list_item "games - Reinstall games"
28
+ list_item "network - Reinstall network tools"
29
+ list_item "utils - Reinstall utility scripts"
30
+ list_item "deploy - Reinstall deploy CLIs"
31
+ list_item "voice - Reinstall voice command"
28
32
  list_item "osint - Reinstall OSINT tools"
29
33
  echo
30
34
  log_info "Reinstall specific tools with flags:"
@@ -40,6 +44,7 @@ reinstall_main() {
40
44
 
41
45
  local module_target=""
42
46
  local -a tool_flags=()
47
+ local -a invalid_args=()
43
48
 
44
49
  for arg in "$@"; do
45
50
  if [[ "$arg" == --* ]]; then
@@ -47,9 +52,20 @@ reinstall_main() {
47
52
  tool_flags+=("$flag")
48
53
  elif [[ -z "$module_target" ]]; then
49
54
  module_target="$arg"
55
+ else
56
+ invalid_args+=("$arg")
50
57
  fi
51
58
  done
52
59
 
60
+ if [[ ${#invalid_args[@]} -gt 0 ]]; then
61
+ log_error "Invalid arguments: ${invalid_args[*]}"
62
+ echo
63
+ log_info "To reinstall specific tools, use -- before the name:"
64
+ log_info " ${D_CYAN}karnel reinstall $module_target --${invalid_args[0]}${NC}"
65
+ echo
66
+ return 1
67
+ fi
68
+
53
69
  if [[ -z "$module_target" ]]; then
54
70
  log_error "No target specified"
55
71
  echo "Run 'karnel reinstall' to see available targets"
@@ -107,10 +123,26 @@ _reinstall_full_module() {
107
123
  import "@/tools/games/all"
108
124
  reinstall_all_games
109
125
  ;;
126
+ deploy)
127
+ import "@/modules/deploy"
128
+ reinstall_deploy
129
+ ;;
130
+ voice)
131
+ import "@/modules/voice"
132
+ reinstall_voice
133
+ ;;
110
134
  osint)
111
135
  import "@/modules/osint"
112
136
  reinstall_osint
113
137
  ;;
138
+ network)
139
+ import "@/modules/network"
140
+ reinstall_network
141
+ ;;
142
+ utils)
143
+ import "@/modules/utils"
144
+ reinstall_utils
145
+ ;;
114
146
  *)
115
147
  log_warn "Unknown reinstall target: $target"
116
148
  echo "Run 'karnel reinstall' to see available targets"
@@ -171,8 +203,8 @@ _reinstall_specific_tools() {
171
203
  reinstall_kilocode_cli
172
204
  case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
173
205
  ;;
174
- kimchi)
175
- reinstall_kimchi
206
+ kimchi-code)
207
+ reinstall_kimchi_code
176
208
  case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
177
209
  ;;
178
210
  mimocode)
@@ -235,6 +267,26 @@ _reinstall_specific_tools() {
235
267
  reinstall_copilot_termux
236
268
  case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
237
269
  ;;
270
+ kiro)
271
+ reinstall_kiro
272
+ case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
273
+ ;;
274
+ crush)
275
+ reinstall_crush
276
+ case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
277
+ ;;
278
+ cline)
279
+ reinstall_cline
280
+ case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
281
+ ;;
282
+ odysseus)
283
+ reinstall_odysseus
284
+ case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
285
+ ;;
286
+ omni-route)
287
+ reinstall_omni_route
288
+ case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
289
+ ;;
238
290
  *)
239
291
  log_warn "Unknown AI tool: --$tool"
240
292
  ;;
@@ -387,49 +439,9 @@ _reinstall_specific_tools() {
387
439
  reinstall_snyk
388
440
  case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
389
441
  ;;
390
- httptmux)
391
- reinstall_httptmux
392
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
393
- ;;
394
- zork)
395
- reinstall_zork
396
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
397
- ;;
398
- fconv)
399
- reinstall_fconv
400
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
401
- ;;
402
- filecheck)
403
- reinstall_filecheck
404
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
405
- ;;
406
- websites)
407
- reinstall_websites
408
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
409
- ;;
410
- notes)
411
- reinstall_notes
412
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
413
- ;;
414
- treex)
415
- reinstall_treex
416
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
417
- ;;
418
- passman)
419
- reinstall_passman
420
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
421
- ;;
422
- applaunch)
423
- reinstall_applaunch
424
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
425
- ;;
426
- splash)
427
- reinstall_splash
428
- case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
429
- ;;
430
- *)
431
- log_warn "Unknown tool: --$tool"
432
- ;;
442
+ *)
443
+ log_warn "Unknown tool: --$tool"
444
+ ;;
433
445
  esac
434
446
  done
435
447
 
@@ -561,8 +573,12 @@ _reinstall_specific_tools() {
561
573
 
562
574
  for tool in "${tools[@]}"; do
563
575
  case "$tool" in
576
+ bun)
577
+ reinstall_bun
578
+ case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
579
+ ;;
564
580
  nodejs)
565
- reinstall_npmjs
581
+ reinstall_nodejs
566
582
  case $? in 0) ((reinstalled_count++));; 1) ((failed_count++));; esac
567
583
  ;;
568
584
  python)
@@ -769,6 +785,12 @@ _reinstall_specific_tools() {
769
785
  _robin_print_disclaimer
770
786
  _batch_tool_action "osint" "reinstall" "${tools[@]}"
771
787
  ;;
788
+ network)
789
+ _batch_tool_action "network" "reinstall" "${tools[@]}"
790
+ ;;
791
+ utils)
792
+ _batch_tool_action "utils" "reinstall" "${tools[@]}"
793
+ ;;
772
794
  *)
773
795
  log_warn "Unknown reinstall target: $module"
774
796
  echo "Run 'karnel reinstall' to see available targets"
@@ -47,6 +47,22 @@ restore_main() {
47
47
  echo
48
48
  log_info "Restoring: $(basename "$file")"
49
49
  [[ -f "$manifest" ]] && log_info "$(wc -l < "$manifest") tools to reinstall"
50
+
51
+ # Checksum verification
52
+ local checksum_file="$file.sha256"
53
+ if [[ -f "$checksum_file" ]]; then
54
+ log_info "Verifying checksum..."
55
+ if sha256sum -c "$checksum_file" &>/dev/null; then
56
+ log_success "Checksum verified"
57
+ else
58
+ log_error "Checksum mismatch! Backup may be corrupted"
59
+ read_confirm "Continue anyway?" confirm
60
+ [[ "$confirm" != "y" ]] && { log_info "Cancelled"; return 1; }
61
+ fi
62
+ else
63
+ log_warn "No checksum file found (pre-checksum backup)"
64
+ fi
65
+
50
66
  echo
51
67
 
52
68
  read_confirm "Proceed with restore?" confirm
@@ -44,6 +44,7 @@ search_main() {
44
44
  echo
45
45
  separator_section "Brain Memories"
46
46
  echo
47
+ any_found=false
47
48
  if [[ -d "$KARNEL_DATA/brain" ]]; then
48
49
  while IFS= read -r file; do
49
50
  local title
@@ -43,6 +43,11 @@ _start_editor() {
43
43
 
44
44
  local port="${1:-8080}"
45
45
 
46
+ if ! [[ "$port" =~ ^[0-9]+$ ]] || (( port < 1024 || port > 65535 )); then
47
+ log_error "Invalid port: $port (must be between 1024 and 65535)"
48
+ return 1
49
+ fi
50
+
46
51
  echo
47
52
  box "Starting code-server"
48
53
  echo
@@ -50,10 +55,10 @@ _start_editor() {
50
55
  log_info "Port: $port"
51
56
  log_info "Password set via --auth password flag"
52
57
  echo
53
- log_success "Open http://localhost:$port in your browser"
58
+ log_success "Open http://127.0.0.1:$port in your browser"
54
59
  echo
55
60
  log_info "Press Ctrl+C to stop"
56
61
  echo
57
62
 
58
- code-server . --bind-addr "0.0.0.0:$port" --auth password
63
+ code-server . --bind-addr "127.0.0.1:$port" --auth password
59
64
  }
@@ -24,6 +24,11 @@ uninstall_main() {
24
24
  list_item "shell - Remove ZSH + Oh My Zsh"
25
25
  list_item "ui - Restore Termux UI to default"
26
26
  list_item "auto - Remove automation tools"
27
+ list_item "network - Remove network tools"
28
+ list_item "utils - Remove utility scripts"
29
+ list_item "games - Remove games"
30
+ list_item "deploy - Remove deploy CLIs"
31
+ list_item "voice - Remove voice command"
27
32
  list_item "osint - Remove OSINT tools"
28
33
  echo
29
34
  log_info "Uninstall specific tools with flags:"
@@ -40,6 +45,7 @@ uninstall_main() {
40
45
  # Separate module target from tool flags
41
46
  local module_target=""
42
47
  local -a tool_flags=()
48
+ local -a invalid_args=()
43
49
 
44
50
  for arg in "$@"; do
45
51
  if [[ "$arg" == --* ]]; then
@@ -47,9 +53,21 @@ uninstall_main() {
47
53
  tool_flags+=("$flag")
48
54
  elif [[ -z "$module_target" ]]; then
49
55
  module_target="$arg"
56
+ else
57
+ invalid_args+=("$arg")
50
58
  fi
51
59
  done
52
60
 
61
+ # If there are invalid arguments, show error and abort
62
+ if [[ ${#invalid_args[@]} -gt 0 ]]; then
63
+ log_error "Invalid arguments: ${invalid_args[*]}"
64
+ echo
65
+ log_info "To uninstall specific tools, use -- before the name:"
66
+ log_info " ${D_CYAN}karnel uninstall $module_target --${invalid_args[0]}${NC}"
67
+ echo
68
+ return 1
69
+ fi
70
+
53
71
  # If no module target specified, show error
54
72
  if [[ -z "$module_target" ]]; then
55
73
  log_error "No target specified"
@@ -111,6 +129,26 @@ _uninstall_full_module() {
111
129
  import "@/modules/osint"
112
130
  uninstall_osint
113
131
  ;;
132
+ network)
133
+ import "@/modules/network"
134
+ uninstall_network
135
+ ;;
136
+ utils)
137
+ import "@/modules/utils"
138
+ uninstall_utils
139
+ ;;
140
+ games)
141
+ import "@/tools/games/all"
142
+ uninstall_all_games
143
+ ;;
144
+ deploy)
145
+ import "@/modules/deploy"
146
+ uninstall_deploy
147
+ ;;
148
+ voice)
149
+ import "@/modules/voice"
150
+ uninstall_voice
151
+ ;;
114
152
  *)
115
153
  log_warn "Unknown uninstall target: $target"
116
154
  echo "Run 'karnel uninstall' to see available targets"
@@ -25,6 +25,11 @@ update_main() {
25
25
  list_item "shell - Update ZSH plugins"
26
26
  list_item "ui - Update Termux UI"
27
27
  list_item "auto - Update Automation Tools"
28
+ list_item "network - Update network tools"
29
+ list_item "utils - Update utility scripts"
30
+ list_item "games - Update games"
31
+ list_item "deploy - Update deploy CLIs"
32
+ list_item "voice - Update voice command"
28
33
  list_item "osint - Update OSINT tools"
29
34
  echo
30
35
  log_info "Update specific tools with flags:"
@@ -39,6 +44,7 @@ update_main() {
39
44
  # Separate module target from tool flags
40
45
  local module_target=""
41
46
  local -a tool_flags=()
47
+ local -a invalid_args=()
42
48
 
43
49
  for arg in "$@"; do
44
50
  if [[ "$arg" == --* ]]; then
@@ -46,9 +52,21 @@ update_main() {
46
52
  tool_flags+=("$flag")
47
53
  elif [[ -z "$module_target" ]]; then
48
54
  module_target="$arg"
55
+ else
56
+ invalid_args+=("$arg")
49
57
  fi
50
58
  done
51
59
 
60
+ # If there are invalid arguments, show error and abort
61
+ if [[ ${#invalid_args[@]} -gt 0 ]]; then
62
+ log_error "Invalid arguments: ${invalid_args[*]}"
63
+ echo
64
+ log_info "To update specific tools, use -- before the name:"
65
+ log_info " ${D_CYAN}karnel update $module_target --${invalid_args[0]}${NC}"
66
+ echo
67
+ return 1
68
+ fi
69
+
52
70
  # If no module target specified, show error
53
71
  if [[ -z "$module_target" ]]; then
54
72
  log_error "No target specified"
@@ -117,6 +135,22 @@ _update_full_module() {
117
135
  import "@/modules/osint"
118
136
  update_osint
119
137
  ;;
138
+ network)
139
+ import "@/modules/network"
140
+ update_network
141
+ ;;
142
+ utils)
143
+ import "@/modules/utils"
144
+ update_utils
145
+ ;;
146
+ deploy)
147
+ import "@/modules/deploy"
148
+ update_deploy
149
+ ;;
150
+ voice)
151
+ import "@/modules/voice"
152
+ update_voice
153
+ ;;
120
154
  *)
121
155
  log_warn "Unknown update target: $target"
122
156
  echo "Run 'karnel update' to see available targets"
@@ -52,14 +52,13 @@ voice_help() {
52
52
  }
53
53
 
54
54
  voice_main() {
55
- local agent="${1:-}"
56
55
  local lang=""
57
56
  local skip_edit=false
58
57
  local no_clip=false
59
58
  local extra_args=()
60
- local parsed=false
59
+ local agent=""
61
60
 
62
- # Parse options before agent
61
+ # Parse all arguments: flags can appear anywhere
63
62
  while [[ $# -gt 0 ]]; do
64
63
  case "$1" in
65
64
  --lang) lang="${2:-}"; shift 2 ;;
@@ -67,14 +66,20 @@ voice_main() {
67
66
  --no-clip) no_clip=true; shift ;;
68
67
  --help|-h) voice_help; return ;;
69
68
  --) shift; break ;;
70
- *) break ;;
69
+ -*)
70
+ log_warn "Unknown option: $1"
71
+ shift
72
+ ;;
73
+ *)
74
+ [[ -z "$agent" ]] && agent="$1"
75
+ shift
76
+ ;;
71
77
  esac
72
78
  done
73
79
 
74
- agent="${1:-}"
75
80
  [[ -z "$agent" ]] && { voice_help; return; }
76
81
 
77
- if [[ -z "$agent" ]] || [[ "$agent" == "--help" ]] || [[ "$agent" == "-h" ]]; then
82
+ if [[ "$agent" == "--help" ]] || [[ "$agent" == "-h" ]]; then
78
83
  voice_help
79
84
  return
80
85
  fi