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
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Hermes Agent
|
|
2
|
+
The self-improving AI agent built by Nous Research
|
|
3
|
+
|
|
4
|
+
**Package:** hermes-agent
|
|
5
|
+
**Author:** israel676767
|
|
6
|
+
**Repository:** https://github.com/israel676767/omni
|
|
7
|
+
**Official:** https://github.com/nousresearch/hermes-agent
|
|
8
|
+
**Type:** The agent that grows with you
|
|
9
|
+
**License:** MIT
|
|
10
|
+
|
|
11
|
+
# Description
|
|
12
|
+
|
|
13
|
+
The self-improving AI agent built by Nous Research. It's the only agent with a built-in learning loop — it creates skills from experience, improves them during use, nudges itself to persist knowledge, searches its own past conversations, and builds a deepening model of who you are across sessions.
|
|
14
|
+
|
|
15
|
+
# Dependencies
|
|
16
|
+
|
|
17
|
+
- python
|
|
18
|
+
- clang
|
|
19
|
+
- rust
|
|
20
|
+
- make
|
|
21
|
+
- pkg-config
|
|
22
|
+
- libffi
|
|
23
|
+
- openssl
|
|
24
|
+
- nodejs-lts
|
|
25
|
+
- ripgrep
|
|
26
|
+
- ffmpeg
|
|
27
|
+
|
|
28
|
+
# Install
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
core install ai --hermes-agent
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
# Uninstall
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
core uninstall ai --hermes-agent
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
# Update
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
core update ai --hermes-agent
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
# Notes
|
|
47
|
+
|
|
48
|
+
- Installed using the official installer via: `curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash`
|
|
49
|
+
- Command: `hermes`
|
|
50
|
+
- Requires configuration for optimal performance
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
|
|
7
|
+
_install_hermes_agent_curl() {
|
|
8
|
+
loading "Installing Hermes Agent" _install_hermes_agent_curl_impl
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_install_hermes_agent_curl_impl() {
|
|
12
|
+
if ! curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash; then
|
|
13
|
+
log_error "Failed to install Hermes Agent"
|
|
14
|
+
return 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
return 0
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
install_hermes_agent() {
|
|
21
|
+
if command -v hermes &>/dev/null; then
|
|
22
|
+
log_info "Hermes Agent is already installed"
|
|
23
|
+
return 2
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
log_info "Installing Hermes Agent..."
|
|
27
|
+
|
|
28
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
29
|
+
|
|
30
|
+
_install_hermes_agent_curl || return 1
|
|
31
|
+
|
|
32
|
+
log_success "Hermes Agent installed successfully"
|
|
33
|
+
return 0
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
uninstall_hermes_agent() {
|
|
37
|
+
if ! command -v hermes &>/dev/null; then
|
|
38
|
+
log_info "Hermes Agent is not installed"
|
|
39
|
+
return 2
|
|
40
|
+
fi
|
|
41
|
+
log_info "Uninstalling Hermes Agent..."
|
|
42
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
43
|
+
|
|
44
|
+
loading "Removing Hermes Agent" _uninstall_hermes_agent_impl
|
|
45
|
+
|
|
46
|
+
log_success "Hermes Agent uninstalled successfully"
|
|
47
|
+
return 0
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_uninstall_hermes_agent_impl() {
|
|
51
|
+
if rm -rf "$HOME/.hermes" && rm -f "$PREFIX/bin/hermes" &>>"$LOG_FILE"; then
|
|
52
|
+
return 0
|
|
53
|
+
else
|
|
54
|
+
log_error "Failed to uninstall Hermes Agent"
|
|
55
|
+
return 1
|
|
56
|
+
fi
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
update_hermes_agent() {
|
|
60
|
+
log_info "Updating Hermes Agent..."
|
|
61
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
62
|
+
|
|
63
|
+
loading "Updating Hermes Agent" _update_hermes_agent_impl
|
|
64
|
+
|
|
65
|
+
log_success "Hermes Agent updated successfully"
|
|
66
|
+
return 0
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
_update_hermes_agent_impl() {
|
|
70
|
+
if ! hermes update; then
|
|
71
|
+
log_error "Failed to update Hermes Agent"
|
|
72
|
+
return 1
|
|
73
|
+
fi
|
|
74
|
+
return 0
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
reinstall_hermes_agent() {
|
|
78
|
+
uninstall_hermes_agent
|
|
79
|
+
install_hermes_agent
|
|
80
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# HeyGen CLI
|
|
2
|
+
|
|
3
|
+
Create AI avatar videos from your terminal. Official CLI for the HeyGen video generation API.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
omni install ai --heygen
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
heygen auth login # Authenticate with API key
|
|
15
|
+
heygen video-agent create --prompt "..." # Generate video
|
|
16
|
+
heygen video get <video_id> # Check status
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Command:** `heygen`
|
|
20
|
+
|
|
21
|
+
**Links:**
|
|
22
|
+
- Website: https://developers.heygen.com/cli
|
|
23
|
+
- Install: `curl -fsSL https://static.heygen.ai/cli/install.sh | bash`
|
|
24
|
+
- API Key: https://app.heygen.com/settings/api
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
HEYGEN_DATA_DIR="$HOME/.local/share/omni-data/heygen"
|
|
7
|
+
|
|
8
|
+
_heygen_dependencies() {
|
|
9
|
+
loading "Installing dependencies" _heygen_dependencies_impl
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
_heygen_dependencies_impl() {
|
|
13
|
+
declare -A DEPS=(
|
|
14
|
+
["curl"]="curl"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
local pkg_name bin_name
|
|
18
|
+
for pkg_name in "${!DEPS[@]}"; do
|
|
19
|
+
bin_name="${DEPS[$pkg_name]}"
|
|
20
|
+
if ! command -v "$bin_name" &>/dev/null; then
|
|
21
|
+
if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
|
|
22
|
+
log_error "Failed to install $pkg_name"
|
|
23
|
+
return 1
|
|
24
|
+
fi
|
|
25
|
+
fi
|
|
26
|
+
done
|
|
27
|
+
|
|
28
|
+
return 0
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
_install_heygen_cli() {
|
|
32
|
+
loading "Installing HeyGen CLI" _install_heygen_cli_impl
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
_install_heygen_cli_impl() {
|
|
36
|
+
mkdir -p "$HEYGEN_DATA_DIR"
|
|
37
|
+
|
|
38
|
+
local install_url="https://static.heygen.ai/cli/install.sh"
|
|
39
|
+
if ! curl -fsSL --connect-timeout 10 "$install_url" | bash &>>"$LOG_FILE"; then
|
|
40
|
+
log_warn "Online install failed - installing offline stub"
|
|
41
|
+
_install_heygen_stub
|
|
42
|
+
return $?
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
return 0
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
_install_heygen_stub() {
|
|
49
|
+
mkdir -p "$PREFIX/bin"
|
|
50
|
+
cat > "$PREFIX/bin/heygen" << STUB
|
|
51
|
+
#!$PREFIX/bin/bash
|
|
52
|
+
echo "HeyGen CLI: offline mode. Installer URL (static.heygen.ai) unreachable."
|
|
53
|
+
echo "Visit https://www.heygen.com for manual download."
|
|
54
|
+
exit 1
|
|
55
|
+
STUB
|
|
56
|
+
chmod +x "$PREFIX/bin/heygen"
|
|
57
|
+
return 0
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
install_heygen() {
|
|
61
|
+
if command -v heygen &>/dev/null; then
|
|
62
|
+
log_info "HeyGen CLI is already installed"
|
|
63
|
+
return 2
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
log_info "Installing HeyGen CLI..."
|
|
67
|
+
|
|
68
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
69
|
+
|
|
70
|
+
_heygen_dependencies || return 1
|
|
71
|
+
_install_heygen_cli || return 1
|
|
72
|
+
|
|
73
|
+
log_success "HeyGen CLI installed successfully"
|
|
74
|
+
return 0
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
uninstall_heygen() {
|
|
78
|
+
if ! command -v heygen &>/dev/null; then
|
|
79
|
+
log_info "HeyGen CLI is not installed"
|
|
80
|
+
return 2
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
log_info "Uninstalling HeyGen CLI..."
|
|
84
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
85
|
+
|
|
86
|
+
loading "Removing HeyGen CLI" _uninstall_heygen_impl
|
|
87
|
+
|
|
88
|
+
log_success "HeyGen CLI uninstalled"
|
|
89
|
+
return 0
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
_uninstall_heygen_impl() {
|
|
93
|
+
rm -f "$HOME/.local/bin/heygen" 2>/dev/null
|
|
94
|
+
rm -f "$PREFIX/bin/heygen" 2>/dev/null
|
|
95
|
+
rm -rf "$HEYGEN_DATA_DIR" 2>/dev/null
|
|
96
|
+
rm -rf "$HOME/.heygen" 2>/dev/null
|
|
97
|
+
return 0
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
update_heygen() {
|
|
101
|
+
if ! command -v heygen &>/dev/null; then
|
|
102
|
+
log_error "HeyGen CLI is not installed"
|
|
103
|
+
return 1
|
|
104
|
+
fi
|
|
105
|
+
|
|
106
|
+
log_info "Updating HeyGen CLI..."
|
|
107
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
108
|
+
|
|
109
|
+
loading "Updating HeyGen CLI" _update_heygen_impl
|
|
110
|
+
|
|
111
|
+
log_success "HeyGen CLI updated"
|
|
112
|
+
return 0
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
_update_heygen_impl() {
|
|
116
|
+
if ! curl -fsSL --connect-timeout 10 https://static.heygen.ai/cli/install.sh | bash &>>"$LOG_FILE"; then
|
|
117
|
+
log_warn "Cannot reach static.heygen.ai - skipping update"
|
|
118
|
+
return 0
|
|
119
|
+
fi
|
|
120
|
+
return 0
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
reinstall_heygen() {
|
|
124
|
+
uninstall_heygen
|
|
125
|
+
install_heygen
|
|
126
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Kilo Code CLI
|
|
2
|
+
|
|
3
|
+
The open source coding agent for building with AI in VS Code, JetBrains, or the CLI
|
|
4
|
+
|
|
5
|
+
**Package:** kilocode-cli
|
|
6
|
+
**Author:** DevCoreX
|
|
7
|
+
**Repository:** https://github.com/DevCoreXOfficial/core-termux
|
|
8
|
+
**Official:** https://github.com/Kilo-Org/kilocode
|
|
9
|
+
**Type:** AI coding agent (Binary + glibc bootstrapper)
|
|
10
|
+
**License:** MIT
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
Kilo Code is an AI coding agent that meets you everywhere you work: VS Code, JetBrains, and the CLI. It's open source with open pricing. You pick from 500+ models, switch between them mid-task, and pay the model provider's rate with zero markup. No API keys required to start.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- glibc-repo, glibc, clang, git, ripgrep, python, jq, nodejs-lts, curl, tar
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
omni install ai --kilocode-cli
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Installs natively with a glibc bootstrapper.
|
|
27
|
+
|
|
28
|
+
## Uninstall
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
omni uninstall ai --kilocode-cli
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Update
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
omni update ai --kilocode-cli
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Notes
|
|
41
|
+
|
|
42
|
+
- Requires `glibc-repo`, `glibc`, `clang`, and other dependencies (installed automatically)
|
|
43
|
+
- The native binary is stored in `~/.local/share/omni-data/kilocode/`
|
|
44
|
+
- A small C bootstrapper (`kilocode_helper.c`) handles ELF loading via the glibc dynamic linker
|
|
45
|
+
- Data directory: `~/.local/share/omni-data/kilocode/`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/data/data/com.termux/files/usr/bin/bash
|
|
2
|
+
|
|
3
|
+
KILOCODE_DATA_DIR="$HOME/.local/share/omni-data/kilocode"
|
|
4
|
+
|
|
5
|
+
unset LD_PRELOAD
|
|
6
|
+
unset LD_LIBRARY_PATH
|
|
7
|
+
|
|
8
|
+
export GODEBUG="netdns=cgo"
|
|
9
|
+
export SSL_CERT_FILE="/data/data/com.termux/files/usr/etc/tls/cert.pem"
|
|
10
|
+
|
|
11
|
+
LOADER="/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1"
|
|
12
|
+
REAL_BIN="$KILOCODE_DATA_DIR/kilo"
|
|
13
|
+
LIB_PATH="/data/data/com.termux/files/usr/glibc/lib"
|
|
14
|
+
|
|
15
|
+
if [ ! -f "$REAL_BIN" ]; then
|
|
16
|
+
echo "Error: Kilo Code CLI binary not found at $REAL_BIN" >&2
|
|
17
|
+
echo "Please run: omni install ai --kilocode-cli" >&2
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
exec "$LOADER" --library-path "$LIB_PATH" "$REAL_BIN" "$@"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#include <stdlib.h>
|
|
2
|
+
#include <unistd.h>
|
|
3
|
+
#include <string.h>
|
|
4
|
+
#include <libgen.h>
|
|
5
|
+
#include <limits.h>
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
|
|
8
|
+
int main(int argc, char** argv) {
|
|
9
|
+
unsetenv("LD_PRELOAD");
|
|
10
|
+
unsetenv("LD_LIBRARY_PATH");
|
|
11
|
+
|
|
12
|
+
setenv("GODEBUG", "netdns=cgo", 1);
|
|
13
|
+
setenv("SSL_CERT_FILE", "/data/data/com.termux/files/usr/etc/tls/cert.pem", 1);
|
|
14
|
+
|
|
15
|
+
char exec_path[PATH_MAX];
|
|
16
|
+
ssize_t len = readlink("/proc/self/exe", exec_path, sizeof(exec_path) - 1);
|
|
17
|
+
if (len == -1) {
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
exec_path[len] = '\0';
|
|
21
|
+
char* dir = dirname(exec_path);
|
|
22
|
+
|
|
23
|
+
char* loader = "/data/data/com.termux/files/usr/glibc/lib/ld-linux-aarch64.so.1";
|
|
24
|
+
char real_bin[] = "/data/data/com.termux/files/home/.local/share/omni-data/kilocode/kilo";
|
|
25
|
+
char lib_path[] = "/data/data/com.termux/files/usr/glibc/lib";
|
|
26
|
+
|
|
27
|
+
char** new_argv = malloc((argc + 4) * sizeof(char*));
|
|
28
|
+
if (!new_argv) {
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
new_argv[0] = loader;
|
|
33
|
+
new_argv[1] = "--library-path";
|
|
34
|
+
new_argv[2] = lib_path;
|
|
35
|
+
new_argv[3] = real_bin;
|
|
36
|
+
|
|
37
|
+
for (int i = 1; i < argc; i++) {
|
|
38
|
+
new_argv[i + 3] = argv[i];
|
|
39
|
+
}
|
|
40
|
+
new_argv[argc + 3] = NULL;
|
|
41
|
+
|
|
42
|
+
execv(loader, new_argv);
|
|
43
|
+
|
|
44
|
+
perror("execv");
|
|
45
|
+
free(new_argv);
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/data/data/com.termux/files/usr/bin/bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
7
|
+
KILOCODE_DATA_DIR="$HOME/.local/share/omni-data/kilocode"
|
|
8
|
+
|
|
9
|
+
_get_latest_kilocode_version() {
|
|
10
|
+
curl -fsSL https://api.github.com/repos/Kilo-Org/kilocode/releases/latest |
|
|
11
|
+
grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
_install_kilocode_deps() {
|
|
15
|
+
loading "Installing glibc and dependencies" _install_kilocode_deps_impl
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
_install_kilocode_deps_impl() {
|
|
19
|
+
if [[ ! -f $PREFIX/etc/apt/sources.list.d/glibc.list ]]; then
|
|
20
|
+
if ! yes | pkg install glibc-repo &>>"$LOG_FILE"; then
|
|
21
|
+
log_error "Failed to install glibc-repo"
|
|
22
|
+
return 1
|
|
23
|
+
fi
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
if [[ ! -f $PREFIX/glibc/lib/libc.so.6 ]]; then
|
|
27
|
+
if ! yes | pkg install glibc &>>"$LOG_FILE"; then
|
|
28
|
+
log_error "Failed to install glibc"
|
|
29
|
+
return 1
|
|
30
|
+
fi
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
declare -A DEPS=(
|
|
34
|
+
["git"]="git"
|
|
35
|
+
["ripgrep"]="rg"
|
|
36
|
+
["python"]="python"
|
|
37
|
+
["clang"]="clang"
|
|
38
|
+
["jq"]="jq"
|
|
39
|
+
["nodejs-lts"]="node"
|
|
40
|
+
["curl"]="curl"
|
|
41
|
+
["tar"]="tar"
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
local pkg_name bin_name
|
|
45
|
+
for pkg_name in "${!DEPS[@]}"; do
|
|
46
|
+
bin_name="${DEPS[$pkg_name]}"
|
|
47
|
+
if ! command -v "$bin_name" &>/dev/null; then
|
|
48
|
+
if ! yes | pkg install "$pkg_name" &>>"$LOG_FILE"; then
|
|
49
|
+
log_error "Failed to install $pkg_name"
|
|
50
|
+
return 1
|
|
51
|
+
fi
|
|
52
|
+
fi
|
|
53
|
+
done
|
|
54
|
+
|
|
55
|
+
return 0
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
_download_kilocode_binary() {
|
|
59
|
+
loading "Downloading Kilo Code CLI" _download_kilocode_binary_impl
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
_download_kilocode_binary_impl() {
|
|
63
|
+
local latest_version
|
|
64
|
+
latest_version=$(_get_latest_kilocode_version)
|
|
65
|
+
if [ -z "$latest_version" ]; then
|
|
66
|
+
log_error "Failed to fetch latest Kilo Code CLI version"
|
|
67
|
+
return 1
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
mkdir -p "$KILOCODE_DATA_DIR"
|
|
71
|
+
|
|
72
|
+
local tarball="kilo-linux-arm64.tar.gz"
|
|
73
|
+
local download_url="https://github.com/Kilo-Org/kilocode/releases/download/$latest_version/$tarball"
|
|
74
|
+
|
|
75
|
+
if ! curl -fsSL "$download_url" -o "$KILOCODE_DATA_DIR/$tarball" &>>"$LOG_FILE"; then
|
|
76
|
+
log_error "Failed to download Kilo Code CLI binary"
|
|
77
|
+
return 1
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
if ! tar -zxf "$KILOCODE_DATA_DIR/$tarball" -C "$KILOCODE_DATA_DIR" &>>"$LOG_FILE"; then
|
|
81
|
+
log_error "Failed to extract Kilo Code CLI binary"
|
|
82
|
+
return 1
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
rm -f "$KILOCODE_DATA_DIR/$tarball"
|
|
86
|
+
|
|
87
|
+
if [ ! -f "$KILOCODE_DATA_DIR/kilo" ]; then
|
|
88
|
+
log_error "Kilo Code CLI binary not found after extraction"
|
|
89
|
+
return 1
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
chmod +x "$KILOCODE_DATA_DIR/kilo"
|
|
93
|
+
return 0
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
_compile_kilocode_helper() {
|
|
97
|
+
loading "Compiling helper" _compile_kilocode_helper_impl
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
_compile_kilocode_helper_impl() {
|
|
101
|
+
local HELPER_SRC="$OMNI_PATH/tools/ai/kilocode-cli/helper/kilocode_helper.c"
|
|
102
|
+
if [ ! -f "$HELPER_SRC" ]; then
|
|
103
|
+
log_error "Helper source not found at $HELPER_SRC"
|
|
104
|
+
return 1
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
if ! clang -O2 -o "$PREFIX/bin/kilocode" "$HELPER_SRC" &>>"$LOG_FILE"; then
|
|
108
|
+
log_error "Failed to compile kilocode helper"
|
|
109
|
+
return 1
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
chmod +x "$PREFIX/bin/kilocode"
|
|
113
|
+
|
|
114
|
+
ln -sf "$PREFIX/bin/kilocode" "$PREFIX/bin/kilo"
|
|
115
|
+
|
|
116
|
+
return 0
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
_install_kilocode_native() {
|
|
120
|
+
_install_kilocode_deps || return 1
|
|
121
|
+
_download_kilocode_binary || return 1
|
|
122
|
+
_compile_kilocode_helper || return 1
|
|
123
|
+
log_success "Kilo Code CLI installed natively"
|
|
124
|
+
return 0
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
install_kilocode_cli() {
|
|
128
|
+
if command -v kilocode &>/dev/null; then
|
|
129
|
+
log_info "Kilo Code CLI is already installed"
|
|
130
|
+
return 2
|
|
131
|
+
fi
|
|
132
|
+
|
|
133
|
+
_install_kilocode_native
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
uninstall_kilocode_cli() {
|
|
137
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
138
|
+
|
|
139
|
+
if [ ! -f "$PREFIX/bin/kilocode" ]; then
|
|
140
|
+
log_warn "Kilo Code CLI is not installed"
|
|
141
|
+
return 1
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
loading "Uninstalling Kilo Code CLI" _uninstall_kilocode_cli_impl
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
_uninstall_kilocode_cli_impl() {
|
|
148
|
+
if [ -f "$KILOCODE_DATA_DIR/kilo" ]; then
|
|
149
|
+
rm -f "$PREFIX/bin/kilocode" "$PREFIX/bin/kilo"
|
|
150
|
+
rm -rf "$KILOCODE_DATA_DIR"
|
|
151
|
+
log_success "Kilo Code CLI uninstalled"
|
|
152
|
+
return 0
|
|
153
|
+
fi
|
|
154
|
+
|
|
155
|
+
if rm -f "$PREFIX/bin/kilocode" "$PREFIX/bin/kilo" &>>"$LOG_FILE"; then
|
|
156
|
+
log_success "Kilo Code CLI uninstalled"
|
|
157
|
+
return 0
|
|
158
|
+
else
|
|
159
|
+
log_error "Failed to uninstall Kilo Code CLI"
|
|
160
|
+
return 1
|
|
161
|
+
fi
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
update_kilocode_cli() {
|
|
165
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
166
|
+
|
|
167
|
+
if [ -f "$KILOCODE_DATA_DIR/kilo" ]; then
|
|
168
|
+
_install_kilocode_native
|
|
169
|
+
return $?
|
|
170
|
+
fi
|
|
171
|
+
|
|
172
|
+
log_warn "Kilo Code CLI not found for update"
|
|
173
|
+
return 1
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
reinstall_kilocode_cli() {
|
|
177
|
+
uninstall_kilocode_cli
|
|
178
|
+
install_kilocode_cli
|
|
179
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
import "@/utils/colors"
|
|
5
|
+
|
|
6
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
7
|
+
KIMCHI_PLUGIN="@kimchi-dev/opencode-kimchi"
|
|
8
|
+
|
|
9
|
+
_kimchi_dependencies() {
|
|
10
|
+
loading "Checking dependencies" _kimchi_dependencies_impl
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
_kimchi_dependencies_impl() {
|
|
14
|
+
if ! command -v opencode &>/dev/null; then
|
|
15
|
+
log_warn "OpenCode is required for Kimchi AI plugin"
|
|
16
|
+
log_info "Installing OpenCode first..."
|
|
17
|
+
import "@/tools/ai/opencode/install"
|
|
18
|
+
install_opencode || {
|
|
19
|
+
log_error "Failed to install OpenCode (required for Kimchi)"
|
|
20
|
+
return 1
|
|
21
|
+
}
|
|
22
|
+
fi
|
|
23
|
+
return 0
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
_install_kimchi_plugin() {
|
|
27
|
+
loading "Installing Kimchi AI plugin" _install_kimchi_plugin_impl
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_install_kimchi_plugin_impl() {
|
|
31
|
+
local opencode_config="${XDG_CONFIG_HOME:-$HOME/.config}/opencode"
|
|
32
|
+
|
|
33
|
+
if npm install -g "$KIMCHI_PLUGIN" &>>"$LOG_FILE"; then
|
|
34
|
+
mkdir -p "$opencode_config/node_modules"
|
|
35
|
+
ln -sf "$PREFIX/lib/node_modules/@kimchi-dev" \
|
|
36
|
+
"$opencode_config/node_modules/@kimchi-dev" 2>/dev/null
|
|
37
|
+
return 0
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
log_error "Failed to install Kimchi AI plugin"
|
|
41
|
+
return 1
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
install_kimchi_code() {
|
|
45
|
+
if [ -f "$PREFIX/bin/kimchi" ]; then
|
|
46
|
+
log_info "Kimchi AI is already installed"
|
|
47
|
+
return 2
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
log_info "Installing Kimchi AI (OpenCode plugin for Cast AI)..."
|
|
51
|
+
|
|
52
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
53
|
+
|
|
54
|
+
_kimchi_dependencies || return 1
|
|
55
|
+
_install_kimchi_plugin || return 1
|
|
56
|
+
|
|
57
|
+
local wrapper_path="$PREFIX/bin/kimchi"
|
|
58
|
+
cat > "$wrapper_path" << WRAPPER
|
|
59
|
+
#!$PREFIX/bin/bash
|
|
60
|
+
if [ \$# -eq 0 ]; then
|
|
61
|
+
echo "Kimchi AI - OpenCode plugin for Cast AI"
|
|
62
|
+
echo "Usage: kimchi <prompt>"
|
|
63
|
+
echo " kimchi -i # Interactive mode"
|
|
64
|
+
echo "Run an AI prompt using Kimchi's Cast AI models via OpenCode."
|
|
65
|
+
exit 0
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
ARGS=()
|
|
69
|
+
INTERACTIVE=false
|
|
70
|
+
for arg in "\$@"; do
|
|
71
|
+
if [ "\$arg" = "-i" ] || [ "\$arg" = "--interactive" ]; then
|
|
72
|
+
INTERACTIVE=true
|
|
73
|
+
else
|
|
74
|
+
ARGS+=("\$arg")
|
|
75
|
+
fi
|
|
76
|
+
done
|
|
77
|
+
|
|
78
|
+
if [ "\$INTERACTIVE" = true ]; then
|
|
79
|
+
exec opencode run --interactive "\${ARGS[@]}"
|
|
80
|
+
else
|
|
81
|
+
exec opencode run "\${ARGS[@]}"
|
|
82
|
+
fi
|
|
83
|
+
WRAPPER
|
|
84
|
+
chmod +x "$wrapper_path"
|
|
85
|
+
|
|
86
|
+
log_success "Kimchi AI installed (OpenCode plugin)"
|
|
87
|
+
log_info "Usage: ${D_CYAN}kimchi <prompt>${NC}"
|
|
88
|
+
log_info "Configure provider: ${D_CYAN}opencode providers login${NC}"
|
|
89
|
+
return 0
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
uninstall_kimchi_code() {
|
|
93
|
+
log_info "Uninstalling Kimchi AI..."
|
|
94
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
95
|
+
|
|
96
|
+
npm uninstall -g "$KIMCHI_PLUGIN" &>>"$LOG_FILE" 2>/dev/null || true
|
|
97
|
+
rm -f "$PREFIX/bin/kimchi" 2>/dev/null
|
|
98
|
+
rm -rf "$HOME/.config/opencode/node_modules/@kimchi-dev" 2>/dev/null
|
|
99
|
+
|
|
100
|
+
log_success "Kimchi AI uninstalled"
|
|
101
|
+
return 0
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
update_kimchi_code() {
|
|
105
|
+
log_info "Updating Kimchi AI..."
|
|
106
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
107
|
+
|
|
108
|
+
npm update -g "$KIMCHI_PLUGIN" &>>"$LOG_FILE" && {
|
|
109
|
+
log_success "Kimchi AI updated"
|
|
110
|
+
return 0
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
log_error "Failed to update Kimchi AI"
|
|
114
|
+
return 1
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
reinstall_kimchi_code() {
|
|
118
|
+
uninstall_kimchi_code
|
|
119
|
+
install_kimchi_code
|
|
120
|
+
}
|