omni-catalyst 1.0.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.
- package/LICENSE +21 -0
- package/README.md +1137 -0
- package/core/bin/core +85 -0
- package/core/bin/omni +21 -0
- package/core/cli/commands/--version.sh +8 -0
- package/core/cli/commands/brain.sh +1549 -0
- package/core/cli/commands/doctor.sh +834 -0
- package/core/cli/commands/env.sh +226 -0
- package/core/cli/commands/init.sh +1266 -0
- package/core/cli/commands/install.sh +759 -0
- package/core/cli/commands/list.sh +397 -0
- package/core/cli/commands/open.sh +71 -0
- package/core/cli/commands/pg.sh +761 -0
- package/core/cli/commands/reinstall.sh +694 -0
- package/core/cli/commands/show.sh +90 -0
- package/core/cli/commands/uninstall.sh +700 -0
- package/core/cli/commands/update.sh +754 -0
- package/core/cli/commands/voice.sh +170 -0
- package/core/cli/core.sh +82 -0
- package/core/cli/omni.sh +634 -0
- package/core/modules/ai.sh +152 -0
- package/core/modules/auto.sh +90 -0
- package/core/modules/db.sh +94 -0
- package/core/modules/deploy.sh +50 -0
- package/core/modules/dev.sh +126 -0
- package/core/modules/editor.sh +101 -0
- package/core/modules/lang.sh +100 -0
- package/core/modules/npm.sh +122 -0
- package/core/modules/shell.sh +312 -0
- package/core/modules/ui.sh +115 -0
- package/core/tools/ai/all.sh +63 -0
- package/core/tools/ai/antigravity-cli/README.md +45 -0
- package/core/tools/ai/antigravity-cli/bin/agy +28 -0
- package/core/tools/ai/antigravity-cli/helper/agy_helper.c +39 -0
- package/core/tools/ai/antigravity-cli/install.sh +469 -0
- package/core/tools/ai/claude-code/README.md +45 -0
- package/core/tools/ai/claude-code/bin/claude +29 -0
- package/core/tools/ai/claude-code/helper/claude_helper.c +42 -0
- package/core/tools/ai/claude-code/install.sh +278 -0
- package/core/tools/ai/codegraph/README.md +43 -0
- package/core/tools/ai/codegraph/bin/codegraph +3 -0
- package/core/tools/ai/codegraph/install.sh +149 -0
- package/core/tools/ai/codex/README.md +44 -0
- package/core/tools/ai/codex/install.sh +104 -0
- package/core/tools/ai/command-code/README.md +62 -0
- package/core/tools/ai/command-code/install.sh +136 -0
- package/core/tools/ai/engram/README.md +44 -0
- package/core/tools/ai/engram/install.sh +127 -0
- package/core/tools/ai/freebuff/README.md +52 -0
- package/core/tools/ai/freebuff/bin/freebuff +28 -0
- package/core/tools/ai/freebuff/helper/freebuff_helper.c +47 -0
- package/core/tools/ai/freebuff/install.sh +301 -0
- package/core/tools/ai/gemini-cli/README.md +46 -0
- package/core/tools/ai/gemini-cli/install.sh +111 -0
- package/core/tools/ai/gentle-ai/README.md +42 -0
- package/core/tools/ai/gentle-ai/install.sh +253 -0
- package/core/tools/ai/gentle-ai/termux-patches.go +256 -0
- package/core/tools/ai/gga/README.md +49 -0
- package/core/tools/ai/gga/install.sh +134 -0
- package/core/tools/ai/hermes-agent/README.md +50 -0
- package/core/tools/ai/hermes-agent/install.sh +80 -0
- package/core/tools/ai/heygen/README.md +24 -0
- package/core/tools/ai/heygen/install.sh +126 -0
- package/core/tools/ai/kilocode-cli/README.md +45 -0
- package/core/tools/ai/kilocode-cli/bin/kilocode +21 -0
- package/core/tools/ai/kilocode-cli/helper/kilocode_helper.c +47 -0
- package/core/tools/ai/kilocode-cli/install.sh +179 -0
- package/core/tools/ai/kimchi-code/README.md +8 -0
- package/core/tools/ai/kimchi-code/install.sh +120 -0
- package/core/tools/ai/kimi-code/README.md +45 -0
- package/core/tools/ai/kimi-code/install.sh +111 -0
- package/core/tools/ai/kiro-cli/README.md +23 -0
- package/core/tools/ai/kiro-cli/install.sh +127 -0
- package/core/tools/ai/mimocode/README.md +43 -0
- package/core/tools/ai/mimocode/bin/mimo +28 -0
- package/core/tools/ai/mimocode/helper/mimocode_helper.c +47 -0
- package/core/tools/ai/mimocode/install.sh +287 -0
- package/core/tools/ai/minimax-cli/README.md +45 -0
- package/core/tools/ai/minimax-cli/install.sh +111 -0
- package/core/tools/ai/mistral-vibe/README.md +46 -0
- package/core/tools/ai/mistral-vibe/install.sh +119 -0
- package/core/tools/ai/odysseus/README.md +35 -0
- package/core/tools/ai/odysseus/install.sh +163 -0
- package/core/tools/ai/ollama/README.md +44 -0
- package/core/tools/ai/ollama/install.sh +78 -0
- package/core/tools/ai/openclaude/README.md +46 -0
- package/core/tools/ai/openclaude/install.sh +110 -0
- package/core/tools/ai/openclaw/README.md +47 -0
- package/core/tools/ai/openclaw/install.sh +112 -0
- package/core/tools/ai/opencode/README.md +51 -0
- package/core/tools/ai/opencode/bin/opencode +28 -0
- package/core/tools/ai/opencode/helper/opencode_helper.c +57 -0
- package/core/tools/ai/opencode/install.sh +290 -0
- package/core/tools/ai/pi/README.md +46 -0
- package/core/tools/ai/pi/install.sh +104 -0
- package/core/tools/ai/qwen-code/README.md +45 -0
- package/core/tools/ai/qwen-code/install.sh +111 -0
- package/core/tools/ai/seedance/README.md +22 -0
- package/core/tools/ai/seedance/install.sh +134 -0
- package/core/tools/ai/veo3/README.md +36 -0
- package/core/tools/ai/veo3/install.sh +151 -0
- package/core/tools/auto/all.sh +57 -0
- package/core/tools/auto/n8n/README.md +47 -0
- package/core/tools/auto/n8n/install.sh +102 -0
- package/core/tools/db/all.sh +60 -0
- package/core/tools/db/mariadb/README.md +43 -0
- package/core/tools/db/mariadb/install.sh +65 -0
- package/core/tools/db/mongodb/README.md +42 -0
- package/core/tools/db/mongodb/install.sh +73 -0
- package/core/tools/db/postgresql/README.md +45 -0
- package/core/tools/db/postgresql/install.sh +65 -0
- package/core/tools/db/sqlite/README.md +44 -0
- package/core/tools/db/sqlite/install.sh +65 -0
- package/core/tools/deploy/all.sh +39 -0
- package/core/tools/deploy/netlify/install.sh +41 -0
- package/core/tools/deploy/railway/install.sh +47 -0
- package/core/tools/deploy/vercel/install.sh +43 -0
- package/core/tools/dev/all.sh +75 -0
- package/core/tools/dev/bat/README.md +44 -0
- package/core/tools/dev/bat/install.sh +82 -0
- package/core/tools/dev/bc/README.md +44 -0
- package/core/tools/dev/bc/install.sh +82 -0
- package/core/tools/dev/cloudflared/README.md +43 -0
- package/core/tools/dev/cloudflared/install.sh +82 -0
- package/core/tools/dev/curl/README.md +43 -0
- package/core/tools/dev/curl/install.sh +82 -0
- package/core/tools/dev/fzf/README.md +44 -0
- package/core/tools/dev/fzf/install.sh +82 -0
- package/core/tools/dev/gh/README.md +43 -0
- package/core/tools/dev/gh/install.sh +82 -0
- package/core/tools/dev/html2text/README.md +44 -0
- package/core/tools/dev/html2text/install.sh +82 -0
- package/core/tools/dev/imagemagick/README.md +44 -0
- package/core/tools/dev/imagemagick/install.sh +82 -0
- package/core/tools/dev/jq/README.md +44 -0
- package/core/tools/dev/jq/install.sh +82 -0
- package/core/tools/dev/lsd/README.md +44 -0
- package/core/tools/dev/lsd/install.sh +82 -0
- package/core/tools/dev/make/README.md +44 -0
- package/core/tools/dev/make/install.sh +82 -0
- package/core/tools/dev/ncurses/README.md +42 -0
- package/core/tools/dev/ncurses/install.sh +82 -0
- package/core/tools/dev/proot/README.md +43 -0
- package/core/tools/dev/proot/install.sh +82 -0
- package/core/tools/dev/shfmt/README.md +44 -0
- package/core/tools/dev/shfmt/install.sh +82 -0
- package/core/tools/dev/tmate/README.md +44 -0
- package/core/tools/dev/tmate/install.sh +82 -0
- package/core/tools/dev/translate/README.md +44 -0
- package/core/tools/dev/translate/install.sh +82 -0
- package/core/tools/dev/tree/README.md +44 -0
- package/core/tools/dev/tree/install.sh +82 -0
- package/core/tools/dev/udocker/README.md +44 -0
- package/core/tools/dev/udocker/install.sh +82 -0
- package/core/tools/dev/wget/README.md +44 -0
- package/core/tools/dev/wget/install.sh +82 -0
- package/core/tools/editor/all.sh +58 -0
- package/core/tools/editor/neovim/README.md +43 -0
- package/core/tools/editor/neovim/install.sh +66 -0
- package/core/tools/editor/nvchad/README.md +45 -0
- package/core/tools/editor/nvchad/install.sh +110 -0
- package/core/tools/lang/all.sh +63 -0
- package/core/tools/lang/clang/README.md +43 -0
- package/core/tools/lang/clang/install.sh +79 -0
- package/core/tools/lang/golang/README.md +43 -0
- package/core/tools/lang/golang/install.sh +79 -0
- package/core/tools/lang/nodejs/README.md +43 -0
- package/core/tools/lang/nodejs/install.sh +79 -0
- package/core/tools/lang/perl/README.md +43 -0
- package/core/tools/lang/perl/install.sh +79 -0
- package/core/tools/lang/php/README.md +43 -0
- package/core/tools/lang/php/install.sh +79 -0
- package/core/tools/lang/python/README.md +43 -0
- package/core/tools/lang/python/install.sh +79 -0
- package/core/tools/lang/rust/README.md +43 -0
- package/core/tools/lang/rust/install.sh +79 -0
- package/core/tools/npm/all.sh +67 -0
- package/core/tools/npm/live-server/README.md +43 -0
- package/core/tools/npm/live-server/install.sh +95 -0
- package/core/tools/npm/localtunnel/README.md +43 -0
- package/core/tools/npm/localtunnel/install.sh +111 -0
- package/core/tools/npm/markserv/README.md +43 -0
- package/core/tools/npm/markserv/install.sh +94 -0
- package/core/tools/npm/ncu/README.md +43 -0
- package/core/tools/npm/ncu/install.sh +94 -0
- package/core/tools/npm/nestjs/README.md +43 -0
- package/core/tools/npm/nestjs/install.sh +94 -0
- package/core/tools/npm/ngrok/README.md +44 -0
- package/core/tools/npm/ngrok/install.sh +94 -0
- package/core/tools/npm/prettier/README.md +43 -0
- package/core/tools/npm/prettier/install.sh +94 -0
- package/core/tools/npm/psqlformat/README.md +43 -0
- package/core/tools/npm/psqlformat/install.sh +94 -0
- package/core/tools/npm/turbopack/README.md +8 -0
- package/core/tools/npm/turbopack/install.sh +41 -0
- package/core/tools/npm/typescript/README.md +43 -0
- package/core/tools/npm/typescript/install.sh +94 -0
- package/core/tools/npm/vercel/README.md +43 -0
- package/core/tools/npm/vercel/install.sh +94 -0
- package/core/tools/shell/all.sh +67 -0
- package/core/tools/shell/better-npm/README.md +43 -0
- package/core/tools/shell/better-npm/install.sh +85 -0
- package/core/tools/shell/fzf-tab/README.md +44 -0
- package/core/tools/shell/fzf-tab/install.sh +85 -0
- package/core/tools/shell/history-substring/README.md +43 -0
- package/core/tools/shell/history-substring/install.sh +85 -0
- package/core/tools/shell/powerlevel10k/README.md +43 -0
- package/core/tools/shell/powerlevel10k/install.sh +85 -0
- package/core/tools/shell/you-should-use/README.md +43 -0
- package/core/tools/shell/you-should-use/install.sh +85 -0
- package/core/tools/shell/zsh-autopair/README.md +44 -0
- package/core/tools/shell/zsh-autopair/install.sh +85 -0
- package/core/tools/shell/zsh-autosuggestions/README.md +43 -0
- package/core/tools/shell/zsh-autosuggestions/install.sh +85 -0
- package/core/tools/shell/zsh-completions/README.md +43 -0
- package/core/tools/shell/zsh-completions/install.sh +85 -0
- package/core/tools/shell/zsh-defer/README.md +43 -0
- package/core/tools/shell/zsh-defer/install.sh +85 -0
- package/core/tools/shell/zsh-syntax-highlighting/README.md +43 -0
- package/core/tools/shell/zsh-syntax-highlighting/install.sh +72 -0
- package/core/tools/ui/all.sh +61 -0
- package/core/tools/ui/banner/README.md +42 -0
- package/core/tools/ui/banner/install.sh +151 -0
- package/core/tools/ui/cursor/README.md +42 -0
- package/core/tools/ui/cursor/install.sh +58 -0
- package/core/tools/ui/extra-keys/README.md +43 -0
- package/core/tools/ui/extra-keys/install.sh +62 -0
- package/core/tools/ui/font/README.md +43 -0
- package/core/tools/ui/font/install.sh +63 -0
- package/core/utils/banner.sh +519 -0
- package/core/utils/bootstrap.sh +25 -0
- package/core/utils/colors.sh +31 -0
- package/core/utils/dialogrc +30 -0
- package/core/utils/env.sh +53 -0
- package/core/utils/log.sh +598 -0
- package/install.sh +272 -0
- package/package.json +43 -0
package/core/cli/omni.sh
ADDED
|
@@ -0,0 +1,634 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Importar funciones de log y colores para el help
|
|
4
|
+
import "@/utils/log"
|
|
5
|
+
import "@/utils/colors"
|
|
6
|
+
|
|
7
|
+
omni_main() {
|
|
8
|
+
local cmd="$1"
|
|
9
|
+
shift || true
|
|
10
|
+
|
|
11
|
+
# si no se pasa comando
|
|
12
|
+
if [[ -z "$cmd" ]]; then
|
|
13
|
+
if [[ -t 0 ]]; then
|
|
14
|
+
omni_tui
|
|
15
|
+
else
|
|
16
|
+
omni_help
|
|
17
|
+
fi
|
|
18
|
+
return
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
local command_file="$OMNI_PATH/cli/commands/$cmd.sh"
|
|
22
|
+
|
|
23
|
+
# verificar si existe el comando
|
|
24
|
+
if [[ -f "$command_file" ]]; then
|
|
25
|
+
import "@/cli/commands/$cmd"
|
|
26
|
+
"${cmd}_main" "$@"
|
|
27
|
+
else
|
|
28
|
+
log_error "Command not found: $cmd"
|
|
29
|
+
echo
|
|
30
|
+
omni_help
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
omni_tui() {
|
|
36
|
+
local TUI_BIN=""
|
|
37
|
+
if command -v dialog &>/dev/null; then
|
|
38
|
+
TUI_BIN="dialog"
|
|
39
|
+
elif command -v whiptail &>/dev/null; then
|
|
40
|
+
TUI_BIN="whiptail"
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
if [[ -z "$TUI_BIN" ]] || [[ ! -t 0 ]] || [[ ! -w /dev/tty ]]; then
|
|
44
|
+
omni_fallback_tui
|
|
45
|
+
return
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
_tui_main_menu
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
_dialog_menu() {
|
|
52
|
+
local title="$1"
|
|
53
|
+
local prompt="$2"
|
|
54
|
+
shift 2
|
|
55
|
+
local options=("$@")
|
|
56
|
+
local choice
|
|
57
|
+
local menu_height=20
|
|
58
|
+
local menu_width=65
|
|
59
|
+
local list_height=$(( ${#options[@]} / 2 ))
|
|
60
|
+
if (( list_height > 18 )); then list_height=18; fi
|
|
61
|
+
if (( list_height < 6 )); then list_height=6; fi
|
|
62
|
+
if [[ "$TUI_BIN" == "dialog" ]]; then
|
|
63
|
+
choice=$(dialog --clear --backtitle "Omni v$OMNI_VERSION" --title "$title" --menu "$prompt" $menu_height $menu_width $list_height "${options[@]}" 2>&1 >/dev/tty)
|
|
64
|
+
else
|
|
65
|
+
choice=$(whiptail --backtitle "Omni v$OMNI_VERSION" --title "$title" --menu "$prompt" $menu_height $menu_width $list_height "${options[@]}" 2>&1 >/dev/tty)
|
|
66
|
+
fi
|
|
67
|
+
local exit_status=$?
|
|
68
|
+
echo "$choice"
|
|
69
|
+
return $exit_status
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
_dialog_checklist() {
|
|
73
|
+
local title="$1"
|
|
74
|
+
local prompt="$2"
|
|
75
|
+
shift 2
|
|
76
|
+
local options=("$@")
|
|
77
|
+
local selections
|
|
78
|
+
local list_height=$(( ${#options[@]} / 3 ))
|
|
79
|
+
if (( list_height > 18 )); then list_height=18; fi
|
|
80
|
+
if (( list_height < 6 )); then list_height=6; fi
|
|
81
|
+
if [[ "$TUI_BIN" == "dialog" ]]; then
|
|
82
|
+
selections=$(dialog --clear --backtitle "Omni v$OMNI_VERSION" --title "$title" --checklist "$prompt" 24 70 $list_height "${options[@]}" 2>&1 >/dev/tty)
|
|
83
|
+
else
|
|
84
|
+
selections=$(whiptail --backtitle "Omni v$OMNI_VERSION" --title "$title" --checklist "$prompt" 24 70 $list_height "${options[@]}" 2>&1 >/dev/tty)
|
|
85
|
+
fi
|
|
86
|
+
local exit_status=$?
|
|
87
|
+
echo "$selections"
|
|
88
|
+
return $exit_status
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
_dialog_input() {
|
|
92
|
+
local title="$1"
|
|
93
|
+
local prompt="$2"
|
|
94
|
+
local init_val="$3"
|
|
95
|
+
local text
|
|
96
|
+
if [[ "$TUI_BIN" == "dialog" ]]; then
|
|
97
|
+
text=$(dialog --clear --backtitle "Omni v$OMNI_VERSION" --title "$title" --inputbox "$prompt" 10 60 "$init_val" 2>&1 >/dev/tty)
|
|
98
|
+
else
|
|
99
|
+
text=$(whiptail --backtitle "Omni v$OMNI_VERSION" --title "$title" --inputbox "$prompt" 10 60 "$init_val" 2>&1 >/dev/tty)
|
|
100
|
+
fi
|
|
101
|
+
local exit_status=$?
|
|
102
|
+
echo "$text"
|
|
103
|
+
return $exit_status
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
_dialog_yesno() {
|
|
107
|
+
local title="$1"
|
|
108
|
+
local prompt="$2"
|
|
109
|
+
if [[ "$TUI_BIN" == "dialog" ]]; then
|
|
110
|
+
dialog --clear --backtitle "Omni v$OMNI_VERSION" --title "$title" --yesno "$prompt" 10 60 2>&1 >/dev/tty
|
|
111
|
+
else
|
|
112
|
+
whiptail --backtitle "Omni v$OMNI_VERSION" --title "$title" --yesno "$prompt" 10 60 2>&1 >/dev/tty
|
|
113
|
+
fi
|
|
114
|
+
return $?
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
_tui_main_menu() {
|
|
118
|
+
while true; do
|
|
119
|
+
local choice
|
|
120
|
+
choice=$(_dialog_menu "Main Menu" "Select an action to perform:" \
|
|
121
|
+
"brain" "Second Brain Manager" \
|
|
122
|
+
"env" "Environment Variables Manager" \
|
|
123
|
+
"install" "Install Packages/Modules" \
|
|
124
|
+
"pg" "PostgreSQL Database Manager" \
|
|
125
|
+
"init" "Project Initializer" \
|
|
126
|
+
"voice" "Speech-to-Agent" \
|
|
127
|
+
"doctor" "Run Diagnostics" \
|
|
128
|
+
"update" "Update Omni" \
|
|
129
|
+
"help" "Show Help Documentation" \
|
|
130
|
+
"exit" "Exit")
|
|
131
|
+
|
|
132
|
+
local exit_status=$?
|
|
133
|
+
if [[ $exit_status -ne 0 ]] || [[ "$choice" == "exit" ]] || [[ -z "$choice" ]]; then
|
|
134
|
+
clear
|
|
135
|
+
source "$OMNI_PATH/utils/banner.sh"
|
|
136
|
+
break
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
case "$choice" in
|
|
140
|
+
brain) _tui_brain_menu ;;
|
|
141
|
+
env) _tui_env_menu ;;
|
|
142
|
+
install) _tui_install_menu ;;
|
|
143
|
+
pg) _tui_pg_menu ;;
|
|
144
|
+
init) _tui_init_menu ;;
|
|
145
|
+
voice)
|
|
146
|
+
clear
|
|
147
|
+
omni_main "voice"
|
|
148
|
+
echo
|
|
149
|
+
read -p "Press Enter to return to menu..." temp
|
|
150
|
+
;;
|
|
151
|
+
doctor)
|
|
152
|
+
clear
|
|
153
|
+
omni_main "doctor"
|
|
154
|
+
echo
|
|
155
|
+
read -p "Press Enter to return to menu..." temp
|
|
156
|
+
;;
|
|
157
|
+
update)
|
|
158
|
+
clear
|
|
159
|
+
omni_main "update"
|
|
160
|
+
echo
|
|
161
|
+
read -p "Press Enter to return to menu..." temp
|
|
162
|
+
;;
|
|
163
|
+
help)
|
|
164
|
+
clear
|
|
165
|
+
omni_help
|
|
166
|
+
echo
|
|
167
|
+
read -p "Press Enter to return to menu..." temp
|
|
168
|
+
;;
|
|
169
|
+
esac
|
|
170
|
+
done
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
_tui_brain_menu() {
|
|
174
|
+
while true; do
|
|
175
|
+
local sub_choice
|
|
176
|
+
sub_choice=$(_dialog_menu "Second Brain Manager" "Select a brain operation:" \
|
|
177
|
+
"ask" "Ask a question (AI integrated)" \
|
|
178
|
+
"save" "Save a new memory" \
|
|
179
|
+
"search" "Search existing memories" \
|
|
180
|
+
"list" "List all memories" \
|
|
181
|
+
"init" "Initialize Brain" \
|
|
182
|
+
"graph" "View memory graph" \
|
|
183
|
+
"sync" "Sync memories" \
|
|
184
|
+
"reset" "Reset / Destroy Brain" \
|
|
185
|
+
"back" "Back to Main Menu")
|
|
186
|
+
|
|
187
|
+
local exit_status=$?
|
|
188
|
+
if [[ $exit_status -ne 0 ]] || [[ "$sub_choice" == "back" ]] || [[ -z "$sub_choice" ]]; then
|
|
189
|
+
break
|
|
190
|
+
fi
|
|
191
|
+
|
|
192
|
+
case "$sub_choice" in
|
|
193
|
+
ask)
|
|
194
|
+
local question
|
|
195
|
+
question=$(_dialog_input "Brain Ask" "Enter your question for the brain:")
|
|
196
|
+
if [[ $? -eq 0 ]] && [[ -n "$question" ]]; then
|
|
197
|
+
clear
|
|
198
|
+
omni_main "brain" "ask" "$question"
|
|
199
|
+
echo
|
|
200
|
+
read -p "Press Enter to return..." temp
|
|
201
|
+
fi
|
|
202
|
+
;;
|
|
203
|
+
save)
|
|
204
|
+
clear
|
|
205
|
+
omni_main "brain" "save"
|
|
206
|
+
echo
|
|
207
|
+
read -p "Press Enter to return..." temp
|
|
208
|
+
;;
|
|
209
|
+
search)
|
|
210
|
+
local query
|
|
211
|
+
query=$(_dialog_input "Search Memories" "Enter search query:")
|
|
212
|
+
if [[ $? -eq 0 ]] && [[ -n "$query" ]]; then
|
|
213
|
+
clear
|
|
214
|
+
omni_main "brain" "search" "$query"
|
|
215
|
+
echo
|
|
216
|
+
read -p "Press Enter to return..." temp
|
|
217
|
+
fi
|
|
218
|
+
;;
|
|
219
|
+
list)
|
|
220
|
+
clear
|
|
221
|
+
omni_main "brain" "list"
|
|
222
|
+
echo
|
|
223
|
+
read -p "Press Enter to return..." temp
|
|
224
|
+
;;
|
|
225
|
+
init)
|
|
226
|
+
clear
|
|
227
|
+
omni_main "brain" "init"
|
|
228
|
+
echo
|
|
229
|
+
read -p "Press Enter to return..." temp
|
|
230
|
+
;;
|
|
231
|
+
graph)
|
|
232
|
+
clear
|
|
233
|
+
omni_main "brain" "graph"
|
|
234
|
+
echo
|
|
235
|
+
read -p "Press Enter to return..." temp
|
|
236
|
+
;;
|
|
237
|
+
sync)
|
|
238
|
+
clear
|
|
239
|
+
omni_main "brain" "sync"
|
|
240
|
+
echo
|
|
241
|
+
read -p "Press Enter to return..." temp
|
|
242
|
+
;;
|
|
243
|
+
reset)
|
|
244
|
+
if _dialog_yesno "Reset Brain" "WARNING: This will delete ALL stored memories. Are you sure?"; then
|
|
245
|
+
clear
|
|
246
|
+
omni_main "brain" "reset"
|
|
247
|
+
echo
|
|
248
|
+
read -p "Press Enter to return..." temp
|
|
249
|
+
fi
|
|
250
|
+
;;
|
|
251
|
+
esac
|
|
252
|
+
done
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
_tui_env_menu() {
|
|
256
|
+
while true; do
|
|
257
|
+
local sub_choice
|
|
258
|
+
sub_choice=$(_dialog_menu "Environment Variables Manager" "Select an operation:" \
|
|
259
|
+
"set" "Set/Update a variable" \
|
|
260
|
+
"unset" "Remove a variable" \
|
|
261
|
+
"list" "List all user variables" \
|
|
262
|
+
"back" "Back to Main Menu")
|
|
263
|
+
|
|
264
|
+
local exit_status=$?
|
|
265
|
+
if [[ $exit_status -ne 0 ]] || [[ "$sub_choice" == "back" ]] || [[ -z "$sub_choice" ]]; then
|
|
266
|
+
break
|
|
267
|
+
fi
|
|
268
|
+
|
|
269
|
+
case "$sub_choice" in
|
|
270
|
+
set)
|
|
271
|
+
clear
|
|
272
|
+
omni_main "env" "set"
|
|
273
|
+
echo
|
|
274
|
+
read -p "Press Enter to return..." temp
|
|
275
|
+
;;
|
|
276
|
+
unset)
|
|
277
|
+
clear
|
|
278
|
+
omni_main "env" "unset"
|
|
279
|
+
echo
|
|
280
|
+
read -p "Press Enter to return..." temp
|
|
281
|
+
;;
|
|
282
|
+
list)
|
|
283
|
+
clear
|
|
284
|
+
omni_main "env" "ls"
|
|
285
|
+
echo
|
|
286
|
+
read -p "Press Enter to return..." temp
|
|
287
|
+
;;
|
|
288
|
+
esac
|
|
289
|
+
done
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
_tui_install_menu() {
|
|
293
|
+
while true; do
|
|
294
|
+
local target
|
|
295
|
+
target=$(_dialog_menu "Install Modules" "Select target module to install:" \
|
|
296
|
+
"ai" "AI Tools (OpenCode, Claude, Ollama, etc.)" \
|
|
297
|
+
"db" "Databases (PostgreSQL, MariaDB, SQLite, MongoDB)" \
|
|
298
|
+
"lang" "Programming Languages (Node, Python, Go, Rust, etc.)" \
|
|
299
|
+
"editor" "Code Editor (Neovim + NvChad)" \
|
|
300
|
+
"dev" "Development Tools (GitHub CLI, fzf, bat, etc.)" \
|
|
301
|
+
"npm" "Node.js Global npm Packages" \
|
|
302
|
+
"shell" "ZSH + Oh My Zsh + Plugins" \
|
|
303
|
+
"ui" "Termux UI (font, cursor, extra-keys, banner)" \
|
|
304
|
+
"auto" "Automation Tools (n8n)" \
|
|
305
|
+
"back" "Back to Main Menu")
|
|
306
|
+
|
|
307
|
+
local exit_status=$?
|
|
308
|
+
if [[ $exit_status -ne 0 ]] || [[ "$target" == "back" ]] || [[ -z "$target" ]]; then
|
|
309
|
+
break
|
|
310
|
+
fi
|
|
311
|
+
|
|
312
|
+
case "$target" in
|
|
313
|
+
ai|db|lang|dev|shell|ui)
|
|
314
|
+
_tui_install_checklist "$target"
|
|
315
|
+
;;
|
|
316
|
+
*)
|
|
317
|
+
if _dialog_yesno "Install Module" "Do you want to install module '$target' completely?"; then
|
|
318
|
+
clear
|
|
319
|
+
omni_main "install" "$target"
|
|
320
|
+
echo
|
|
321
|
+
read -p "Press Enter to return..." temp
|
|
322
|
+
fi
|
|
323
|
+
;;
|
|
324
|
+
esac
|
|
325
|
+
done
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
_tui_install_checklist() {
|
|
329
|
+
local target="$1"
|
|
330
|
+
local -a opts=()
|
|
331
|
+
|
|
332
|
+
case "$target" in
|
|
333
|
+
lang)
|
|
334
|
+
opts=(
|
|
335
|
+
"nodejs" "Node.js LTS" OFF
|
|
336
|
+
"python" "Python" OFF
|
|
337
|
+
"perl" "Perl" OFF
|
|
338
|
+
"php" "PHP" OFF
|
|
339
|
+
"rust" "Rust" OFF
|
|
340
|
+
"clang" "C/C++ (clang)" OFF
|
|
341
|
+
"golang" "Go (golang)" OFF
|
|
342
|
+
)
|
|
343
|
+
;;
|
|
344
|
+
db)
|
|
345
|
+
opts=(
|
|
346
|
+
"postgresql" "PostgreSQL" OFF
|
|
347
|
+
"mariadb" "MariaDB" OFF
|
|
348
|
+
"sqlite" "SQLite" OFF
|
|
349
|
+
"mongodb" "MongoDB" OFF
|
|
350
|
+
)
|
|
351
|
+
;;
|
|
352
|
+
ai)
|
|
353
|
+
opts=(
|
|
354
|
+
"qwen-code" "Qwen Code" OFF
|
|
355
|
+
"gemini-cli" "Gemini CLI" OFF
|
|
356
|
+
"claude-code" "Claude Code" OFF
|
|
357
|
+
"mistral-vibe" "Mistral Vibe" OFF
|
|
358
|
+
"openclaude" "OpenClaude" OFF
|
|
359
|
+
"openclaw" "OpenClaw" OFF
|
|
360
|
+
"ollama" "Ollama" OFF
|
|
361
|
+
"codex" "Codex CLI" OFF
|
|
362
|
+
"opencode" "OpenCode" OFF
|
|
363
|
+
"mimocode" "MiMo Code" OFF
|
|
364
|
+
"engram" "Engram" OFF
|
|
365
|
+
"codegraph" "CodeGraph" OFF
|
|
366
|
+
"pi" "Pi" OFF
|
|
367
|
+
"antigravity-cli" "Antigravity CLI" OFF
|
|
368
|
+
"gentle-ai" "Gentle AI" OFF
|
|
369
|
+
"minimax-cli" "Minimax CLI" OFF
|
|
370
|
+
"gga" "GGA" OFF
|
|
371
|
+
"hermes-agent" "Hermes Agent" OFF
|
|
372
|
+
"kimi-code" "Kimi Code" OFF
|
|
373
|
+
"command-code" "Command Code" OFF
|
|
374
|
+
"freebuff" "Freebuff" OFF
|
|
375
|
+
"kiro-cli" "Kiro CLI" OFF
|
|
376
|
+
"heygen" "HeyGen CLI" OFF
|
|
377
|
+
"seedance" "Seedance CLI" OFF
|
|
378
|
+
"veo3" "Veo 3 SDK" OFF
|
|
379
|
+
"odysseus" "Odysseus" OFF
|
|
380
|
+
)
|
|
381
|
+
;;
|
|
382
|
+
dev)
|
|
383
|
+
opts=(
|
|
384
|
+
"gh" "GitHub CLI" OFF
|
|
385
|
+
"wget" "Wget" OFF
|
|
386
|
+
"curl" "Curl" OFF
|
|
387
|
+
"fzf" "Fzf" OFF
|
|
388
|
+
"jq" "Jq" OFF
|
|
389
|
+
"tmux" "Tmux" OFF
|
|
390
|
+
"ranger" "Ranger" OFF
|
|
391
|
+
"htop" "Htop" OFF
|
|
392
|
+
"neofetch" "Neofetch" OFF
|
|
393
|
+
"git" "Git" OFF
|
|
394
|
+
)
|
|
395
|
+
;;
|
|
396
|
+
shell)
|
|
397
|
+
opts=(
|
|
398
|
+
"zsh" "ZSH shell" OFF
|
|
399
|
+
"ohmyzsh" "Oh My Zsh" OFF
|
|
400
|
+
"theme" "Powerlevel10k theme" OFF
|
|
401
|
+
"plugins" "Plugins (autosuggest, etc.)" OFF
|
|
402
|
+
)
|
|
403
|
+
;;
|
|
404
|
+
ui)
|
|
405
|
+
opts=(
|
|
406
|
+
"font" "Meslo Nerd Font" OFF
|
|
407
|
+
"cursor" "Green cursor" OFF
|
|
408
|
+
"extra-keys" "Custom Termux keys" OFF
|
|
409
|
+
"banner" "Startup banner" OFF
|
|
410
|
+
)
|
|
411
|
+
;;
|
|
412
|
+
esac
|
|
413
|
+
|
|
414
|
+
local selections
|
|
415
|
+
selections=$(_dialog_checklist "Install $target Tools" "Select tools to install (Space to select):" "${opts[@]}")
|
|
416
|
+
local exit_status=$?
|
|
417
|
+
|
|
418
|
+
if [[ $exit_status -eq 0 ]] && [[ -n "$selections" ]]; then
|
|
419
|
+
local -a clean_selections=()
|
|
420
|
+
for item in $selections; do
|
|
421
|
+
local cleaned="${item//\"/}"
|
|
422
|
+
cleaned="${cleaned//\'/}"
|
|
423
|
+
if [[ -n "$cleaned" ]]; then
|
|
424
|
+
clean_selections+=("--$cleaned")
|
|
425
|
+
fi
|
|
426
|
+
done
|
|
427
|
+
|
|
428
|
+
if [[ ${#clean_selections[@]} -gt 0 ]]; then
|
|
429
|
+
clear
|
|
430
|
+
log_info "Running: omni install $target ${clean_selections[*]}"
|
|
431
|
+
omni_main "install" "$target" "${clean_selections[@]}"
|
|
432
|
+
echo
|
|
433
|
+
read -p "Press Enter to return..." temp
|
|
434
|
+
fi
|
|
435
|
+
fi
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
_tui_pg_menu() {
|
|
439
|
+
while true; do
|
|
440
|
+
local sub_choice
|
|
441
|
+
sub_choice=$(_dialog_menu "PostgreSQL Database Manager" "Select a pg operation:" \
|
|
442
|
+
"status" "Check server status" \
|
|
443
|
+
"start" "Start PostgreSQL server" \
|
|
444
|
+
"stop" "Stop PostgreSQL server" \
|
|
445
|
+
"restart" "Restart PostgreSQL server" \
|
|
446
|
+
"init" "Initialize PostgreSQL database" \
|
|
447
|
+
"list" "List all databases" \
|
|
448
|
+
"create" "Create a new database" \
|
|
449
|
+
"drop" "Drop a database" \
|
|
450
|
+
"backup" "Backup a database" \
|
|
451
|
+
"restore" "Restore a database from backup" \
|
|
452
|
+
"shell" "Open psql shell" \
|
|
453
|
+
"back" "Back to Main Menu")
|
|
454
|
+
|
|
455
|
+
local exit_status=$?
|
|
456
|
+
if [[ $exit_status -ne 0 ]] || [[ "$sub_choice" == "back" ]] || [[ -z "$sub_choice" ]]; then
|
|
457
|
+
break
|
|
458
|
+
fi
|
|
459
|
+
|
|
460
|
+
case "$sub_choice" in
|
|
461
|
+
status|start|stop|restart|init|list)
|
|
462
|
+
clear
|
|
463
|
+
omni_main "pg" "$sub_choice"
|
|
464
|
+
echo
|
|
465
|
+
read -p "Press Enter to return..." temp
|
|
466
|
+
;;
|
|
467
|
+
create)
|
|
468
|
+
local db_name
|
|
469
|
+
db_name=$(_dialog_input "Create Database" "Enter new database name:")
|
|
470
|
+
if [[ $? -eq 0 ]] && [[ -n "$db_name" ]]; then
|
|
471
|
+
clear
|
|
472
|
+
omni_main "pg" "create" "$db_name"
|
|
473
|
+
echo
|
|
474
|
+
read -p "Press Enter to return..." temp
|
|
475
|
+
fi
|
|
476
|
+
;;
|
|
477
|
+
drop)
|
|
478
|
+
local db_name
|
|
479
|
+
db_name=$(_dialog_input "Drop Database" "Enter database name to drop:")
|
|
480
|
+
if [[ $? -eq 0 ]] && [[ -n "$db_name" ]]; then
|
|
481
|
+
if _dialog_yesno "Drop Database" "WARNING: This will permanently delete database '$db_name'. Are you sure?"; then
|
|
482
|
+
clear
|
|
483
|
+
omni_main "pg" "drop" "$db_name"
|
|
484
|
+
echo
|
|
485
|
+
read -p "Press Enter to return..." temp
|
|
486
|
+
fi
|
|
487
|
+
fi
|
|
488
|
+
;;
|
|
489
|
+
backup)
|
|
490
|
+
local db_name
|
|
491
|
+
db_name=$(_dialog_input "Backup Database" "Enter database name to backup (leave empty for interactive):")
|
|
492
|
+
if [[ $? -eq 0 ]]; then
|
|
493
|
+
clear
|
|
494
|
+
omni_main "pg" "backup" "$db_name"
|
|
495
|
+
echo
|
|
496
|
+
read -p "Press Enter to return..." temp
|
|
497
|
+
fi
|
|
498
|
+
;;
|
|
499
|
+
restore)
|
|
500
|
+
clear
|
|
501
|
+
omni_main "pg" "restore"
|
|
502
|
+
echo
|
|
503
|
+
read -p "Press Enter to return..." temp
|
|
504
|
+
;;
|
|
505
|
+
shell)
|
|
506
|
+
clear
|
|
507
|
+
omni_main "pg" "shell"
|
|
508
|
+
echo
|
|
509
|
+
read -p "Press Enter to return..." temp
|
|
510
|
+
;;
|
|
511
|
+
esac
|
|
512
|
+
done
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
_tui_init_menu() {
|
|
516
|
+
while true; do
|
|
517
|
+
local sub_choice
|
|
518
|
+
sub_choice=$(_dialog_menu "Project Initializer" "Select a template to configure current directory:" \
|
|
519
|
+
"next" "Next.js Project (Node.js)" \
|
|
520
|
+
"react" "React + Vite Project (Node.js)" \
|
|
521
|
+
"nest" "NestJS Project (Node.js)" \
|
|
522
|
+
"express" "Express.js API (Node.js)" \
|
|
523
|
+
"python" "Python FastAPI Project" \
|
|
524
|
+
"go" "Go Gin/Fiber Project" \
|
|
525
|
+
"rust" "Rust Axum/Actix Web Project" \
|
|
526
|
+
"back" "Back to Main Menu")
|
|
527
|
+
|
|
528
|
+
local exit_status=$?
|
|
529
|
+
if [[ $exit_status -ne 0 ]] || [[ "$sub_choice" == "back" ]] || [[ -z "$sub_choice" ]]; then
|
|
530
|
+
break
|
|
531
|
+
fi
|
|
532
|
+
|
|
533
|
+
clear
|
|
534
|
+
omni_main "init" "$sub_choice"
|
|
535
|
+
echo
|
|
536
|
+
read -p "Press Enter to return..." temp
|
|
537
|
+
done
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
omni_fallback_tui() {
|
|
541
|
+
clear
|
|
542
|
+
source "$OMNI_PATH/utils/banner.sh"
|
|
543
|
+
while true; do
|
|
544
|
+
echo
|
|
545
|
+
box "◈ OMNI TUI MENU ◈"
|
|
546
|
+
echo
|
|
547
|
+
log_info "Select an option to run:"
|
|
548
|
+
echo
|
|
549
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 1 "Second Brain Manager (brain)"
|
|
550
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 2 "Environment Variables Manager (env)"
|
|
551
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 3 "Install Packages/Modules (install)"
|
|
552
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 4 "PostgreSQL Database Manager (pg)"
|
|
553
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 5 "Project Initializer (init)"
|
|
554
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 6 "Speech-to-Agent (voice)"
|
|
555
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 7 "Run Diagnostics (doctor)"
|
|
556
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 8 "Update Omni (update)"
|
|
557
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 9 "Help & Documentation (help)"
|
|
558
|
+
printf " ${D_GREEN}%2d.${D_NC} %s\n" 10 "Exit"
|
|
559
|
+
echo
|
|
560
|
+
|
|
561
|
+
local choice
|
|
562
|
+
read -p " Enter choice (1-10): " choice
|
|
563
|
+
|
|
564
|
+
case "$choice" in
|
|
565
|
+
1) omni_main "brain" ;;
|
|
566
|
+
2) omni_main "env" ;;
|
|
567
|
+
3) omni_main "install" ;;
|
|
568
|
+
4) omni_main "pg" ;;
|
|
569
|
+
5) omni_main "init" ;;
|
|
570
|
+
6) omni_main "voice" ;;
|
|
571
|
+
7) omni_main "doctor" ;;
|
|
572
|
+
8) omni_main "update" ;;
|
|
573
|
+
9) omni_help ;;
|
|
574
|
+
10|q|exit) break ;;
|
|
575
|
+
*) log_warn "Invalid option. Please try again." ;;
|
|
576
|
+
esac
|
|
577
|
+
echo
|
|
578
|
+
read -p " Press Enter to return to menu..." temp
|
|
579
|
+
clear
|
|
580
|
+
source "$OMNI_PATH/utils/banner.sh"
|
|
581
|
+
done
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
omni_help() {
|
|
585
|
+
echo
|
|
586
|
+
box "◈ OMNI v${OMNI_VERSION} ◈"
|
|
587
|
+
echo
|
|
588
|
+
log_info "Usage: omni <command> [options]"
|
|
589
|
+
echo
|
|
590
|
+
separator_section "Available Commands"
|
|
591
|
+
echo
|
|
592
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "--version" "Show current version"
|
|
593
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "brain" "Second brain — save and search memories"
|
|
594
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "env" "Manage environment variables"
|
|
595
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "install" "Install modules and packages"
|
|
596
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "show" "Show tool documentation"
|
|
597
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "update" "Update modules or framework"
|
|
598
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "uninstall" "Remove installed modules"
|
|
599
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "reinstall" "Uninstall + install modules"
|
|
600
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "open" "Open documentation in browser"
|
|
601
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "list" "List available tools in modules"
|
|
602
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "pg" "PostgreSQL database manager"
|
|
603
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "init" "Configure existing projects"
|
|
604
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "voice" "Speech-to-agent via microphone"
|
|
605
|
+
printf " ${D_CYAN}%-12s${NC} %s\n" "doctor" "Diagnose Termux and framework environment"
|
|
606
|
+
echo
|
|
607
|
+
separator_section "Quick Start"
|
|
608
|
+
echo
|
|
609
|
+
list_item "Run: ${D_CYAN}omni${NC} to open the interactive menu"
|
|
610
|
+
list_item "Run: ${D_CYAN}omni open${NC} for official documentation"
|
|
611
|
+
list_item "Run: ${D_CYAN}omni install <module>${NC} to install modules"
|
|
612
|
+
echo
|
|
613
|
+
separator_section "Module Targets"
|
|
614
|
+
echo
|
|
615
|
+
log_info "Install, update, reinstall, uninstall, list, show or open:"
|
|
616
|
+
echo
|
|
617
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "lang" "Node, Python, Perl, PHP, Rust, C/C++, Go"
|
|
618
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "db" "PostgreSQL, MariaDB, SQLite, MongoDB"
|
|
619
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "ai" "OpenCode, Gentle AI, Claude Code, etc."
|
|
620
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "editor" "Neovim + NvChad + Plugins"
|
|
621
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "dev" "GitHub CLI, wget, curl, fzf, etc."
|
|
622
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "npm" "Node.js global npm packages"
|
|
623
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "shell" "ZSH + Oh My Zsh + 10 plugins"
|
|
624
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "ui" "Font, Cursor, Extra-keys, Banner"
|
|
625
|
+
printf " ${D_GREEN}%-10s${NC} %s\n" "auto" "Automation Tools (n8n)"
|
|
626
|
+
|
|
627
|
+
echo
|
|
628
|
+
separator_section "Help"
|
|
629
|
+
echo
|
|
630
|
+
list_item "Run ${D_CYAN}omni <command>${NC} for command-specific help"
|
|
631
|
+
list_item "Example: ${D_CYAN}omni pg${NC}, ${D_CYAN}omni init${NC}"
|
|
632
|
+
list_item "Docs: ${D_CYAN}omni open${NC} — israel marques 🇧🇷 (12y)"
|
|
633
|
+
echo
|
|
634
|
+
}
|