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,136 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
COMMAND_CODE_DATA_DIR="$HOME/.local/share/omni-data/command-code"
|
|
7
|
+
|
|
8
|
+
_command_code_dependencies() {
|
|
9
|
+
loading "Installing dependencies" _command_code_dependencies_impl
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
_command_code_dependencies_impl() {
|
|
13
|
+
declare -A DEPS=(
|
|
14
|
+
["nodejs-lts"]="node"
|
|
15
|
+
["git"]="git"
|
|
16
|
+
["ripgrep"]="rg"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
local pkg_name bin_name
|
|
20
|
+
for pkg_name in "${!DEPS[@]}"; do
|
|
21
|
+
bin_name="${DEPS[$pkg_name]}"
|
|
22
|
+
if ! command -v "$bin_name" &>/dev/null; then
|
|
23
|
+
if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
|
|
24
|
+
log_error "Failed to install $pkg_name"
|
|
25
|
+
return 1
|
|
26
|
+
fi
|
|
27
|
+
fi
|
|
28
|
+
done
|
|
29
|
+
|
|
30
|
+
return 0
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
_install_command_code_npm() {
|
|
34
|
+
loading "Installing command-code via npm" _install_command_code_npm_impl
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
_install_command_code_npm_impl() {
|
|
38
|
+
mkdir -p "$COMMAND_CODE_DATA_DIR"
|
|
39
|
+
|
|
40
|
+
if ! (cd "$COMMAND_CODE_DATA_DIR" && npm init -y &>>"$LOG_FILE"); then
|
|
41
|
+
log_error "Failed to initialize npm project"
|
|
42
|
+
return 1
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
if ! (cd "$COMMAND_CODE_DATA_DIR" && npm install command-code@latest &>>"$LOG_FILE"); then
|
|
46
|
+
log_error "Failed to install command-code package"
|
|
47
|
+
return 1
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
return 0
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
_install_command_code_wrappers() {
|
|
54
|
+
loading "Creating command-code and cmdc wrappers" _install_command_code_wrappers_impl
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
_install_command_code_wrappers_impl() {
|
|
58
|
+
local wrapper_content='#!'"$PREFIX"'/bin/bash
|
|
59
|
+
|
|
60
|
+
exec node '"$COMMAND_CODE_DATA_DIR"'/node_modules/command-code/dist/index.mjs "$@"'
|
|
61
|
+
|
|
62
|
+
echo "$wrapper_content" >"$PREFIX/bin/command-code"
|
|
63
|
+
chmod +x "$PREFIX/bin/command-code"
|
|
64
|
+
|
|
65
|
+
ln -sf "$PREFIX/bin/command-code" "$PREFIX/bin/cmdc"
|
|
66
|
+
|
|
67
|
+
return 0
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
install_command_code() {
|
|
71
|
+
if command -v command-code &>/dev/null; then
|
|
72
|
+
log_info "Command Code is already installed"
|
|
73
|
+
return 2
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
log_info "Installing Command Code..."
|
|
77
|
+
|
|
78
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
79
|
+
|
|
80
|
+
_command_code_dependencies || return 1
|
|
81
|
+
_install_command_code_npm || return 1
|
|
82
|
+
_install_command_code_wrappers || return 1
|
|
83
|
+
|
|
84
|
+
log_success "Command Code installed successfully"
|
|
85
|
+
return 0
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
uninstall_command_code() {
|
|
89
|
+
if ! command -v command-code &>/dev/null; then
|
|
90
|
+
log_info "Command Code is not installed"
|
|
91
|
+
return 2
|
|
92
|
+
fi
|
|
93
|
+
log_info "Uninstalling Command Code..."
|
|
94
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
95
|
+
|
|
96
|
+
loading "Removing Command Code files" _uninstall_command_code_impl
|
|
97
|
+
|
|
98
|
+
log_success "Command Code uninstalled"
|
|
99
|
+
return 0
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
_uninstall_command_code_impl() {
|
|
103
|
+
rm -f "$PREFIX/bin/command-code"
|
|
104
|
+
rm -f "$PREFIX/bin/cmdc"
|
|
105
|
+
rm -rf "$COMMAND_CODE_DATA_DIR"
|
|
106
|
+
return 0
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
update_command_code() {
|
|
110
|
+
log_info "Updating Command Code..."
|
|
111
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
112
|
+
|
|
113
|
+
if [ ! -d "$COMMAND_CODE_DATA_DIR" ]; then
|
|
114
|
+
log_warn "Command Code is not installed"
|
|
115
|
+
return 1
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
loading "Updating command-code package" _update_command_code_impl
|
|
119
|
+
|
|
120
|
+
log_success "Command Code updated"
|
|
121
|
+
return 0
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
_update_command_code_impl() {
|
|
125
|
+
if (cd "$COMMAND_CODE_DATA_DIR" && npm update command-code &>>"$LOG_FILE"); then
|
|
126
|
+
return 0
|
|
127
|
+
else
|
|
128
|
+
log_error "Failed to update Command Code"
|
|
129
|
+
return 1
|
|
130
|
+
fi
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
reinstall_command_code() {
|
|
134
|
+
uninstall_command_code
|
|
135
|
+
install_command_code
|
|
136
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Engram
|
|
2
|
+
|
|
3
|
+
Persistent memory system for AI coding agents
|
|
4
|
+
|
|
5
|
+
**Package:** engram
|
|
6
|
+
**Author:** israel676767
|
|
7
|
+
**Repository:** https://github.com/israel676767/omni
|
|
8
|
+
**Official:** https://github.com/Gentleman-Programming/engram
|
|
9
|
+
**Type:** AI memory system (Go binary)
|
|
10
|
+
**License:** MIT
|
|
11
|
+
|
|
12
|
+
## Description
|
|
13
|
+
|
|
14
|
+
Engram is a persistent memory system designed for AI coding agents. It provides long-term memory storage and retrieval, allowing AI assistants to maintain context across sessions. Built with Go for performance and reliability.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
- golang, git, sqlite
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
core install ai --engram
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Uninstall
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
core uninstall ai --engram
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Update
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
core update ai --engram
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- Built from source using Go
|
|
41
|
+
- Source cloned to `$OMNI_DATA/engram/`
|
|
42
|
+
- Binary installed to `$PREFIX/bin/engram`
|
|
43
|
+
- Requires Go toolchain (installed automatically)
|
|
44
|
+
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
import "@/utils/log"
|
|
4
|
+
|
|
5
|
+
LOG_FILE="$OMNI_CACHE/install_ai.log"
|
|
6
|
+
|
|
7
|
+
_engram_dependencies() {
|
|
8
|
+
loading "Installing dependencies" _engram_dependencies_impl
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_engram_dependencies_impl() {
|
|
12
|
+
declare -A DEPS=(
|
|
13
|
+
["golang"]="go"
|
|
14
|
+
["git"]="git"
|
|
15
|
+
["sqlite"]="sqlite"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
local pkg_name bin_name
|
|
19
|
+
for pkg_name in "${!DEPS[@]}"; do
|
|
20
|
+
bin_name="${DEPS[$pkg_name]}"
|
|
21
|
+
if ! command -v "$bin_name" &>/dev/null; then
|
|
22
|
+
if ! pkg install "$pkg_name" -y &>>"$LOG_FILE"; then
|
|
23
|
+
log_error "Failed to install $pkg_name"
|
|
24
|
+
return 1
|
|
25
|
+
fi
|
|
26
|
+
fi
|
|
27
|
+
done
|
|
28
|
+
|
|
29
|
+
return 0
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_clone_engram_repo() {
|
|
33
|
+
loading "Cloning engram repository" _clone_engram_repo_impl
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_clone_engram_repo_impl() {
|
|
37
|
+
if ! git clone --quiet https://github.com/Gentleman-Programming/engram "$OMNI_DATA/engram" &>>"$LOG_FILE"; then
|
|
38
|
+
log_error "Failed to clone engram repository"
|
|
39
|
+
return 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
return 0
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
_build_engram() {
|
|
46
|
+
loading "Building engram binary" _build_engram_impl
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
_build_engram_impl() {
|
|
50
|
+
if ! go build -C "$OMNI_DATA/engram/cmd/engram" -o $PREFIX/bin/engram &>>"$LOG_FILE"; then
|
|
51
|
+
log_error "Failed to build engram"
|
|
52
|
+
return 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
return 0
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
install_engram() {
|
|
59
|
+
if command -v engram &>/dev/null; then
|
|
60
|
+
log_info "Engram is already installed"
|
|
61
|
+
return 2
|
|
62
|
+
fi
|
|
63
|
+
log_info "Installing Engram..."
|
|
64
|
+
|
|
65
|
+
export GOPATH="$HOME/.local/go"
|
|
66
|
+
export GOCACHE="$HOME/.cache/go"
|
|
67
|
+
export GOMODCACHE="$GOPATH/pkg/mod"
|
|
68
|
+
|
|
69
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
70
|
+
|
|
71
|
+
_engram_dependencies || return 1
|
|
72
|
+
_clone_engram_repo || return 1
|
|
73
|
+
_build_engram || return 1
|
|
74
|
+
|
|
75
|
+
log_success "Engram installed"
|
|
76
|
+
return 0
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
uninstall_engram() {
|
|
80
|
+
if ! command -v engram &>/dev/null; then
|
|
81
|
+
log_info "Engram is not installed"
|
|
82
|
+
return 2
|
|
83
|
+
fi
|
|
84
|
+
log_info "Uninstalling Engram..."
|
|
85
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
86
|
+
|
|
87
|
+
loading "Removing Engram" _uninstall_engram_impl
|
|
88
|
+
|
|
89
|
+
log_success "Engram uninstalled"
|
|
90
|
+
return 0
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
_uninstall_engram_impl() {
|
|
94
|
+
if rm -rf "$OMNI_DATA/engram" && rm "$PREFIX/bin/engram" &>>"$LOG_FILE"; then
|
|
95
|
+
return 0
|
|
96
|
+
else
|
|
97
|
+
log_error "Failed to uninstall Engram"
|
|
98
|
+
return 1
|
|
99
|
+
fi
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
update_engram() {
|
|
103
|
+
log_info "Updating Engram..."
|
|
104
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
105
|
+
|
|
106
|
+
loading "Updating Engram" _update_engram_impl
|
|
107
|
+
|
|
108
|
+
log_success "Engram updated"
|
|
109
|
+
return 0
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
_update_engram_impl() {
|
|
113
|
+
export GOPATH="$HOME/.local/go"
|
|
114
|
+
export GOCACHE="$HOME/.cache/go"
|
|
115
|
+
export GOMODCACHE="$GOPATH/pkg/mod"
|
|
116
|
+
|
|
117
|
+
if ! git -C "$OMNI_DATA/engram" pull &>>"$LOG_FILE" && go build -C "$OMNI_DATA/engram/cmd/engram" -o $PREFIX/bin/engram &>>"$LOG_FILE"; then
|
|
118
|
+
log_error "Failed to update Engram"
|
|
119
|
+
return 1
|
|
120
|
+
fi
|
|
121
|
+
return 0
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
reinstall_engram() {
|
|
125
|
+
uninstall_engram
|
|
126
|
+
install_engram
|
|
127
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Freebuff
|
|
2
|
+
|
|
3
|
+
A 100% free coding agent, right from your terminal
|
|
4
|
+
|
|
5
|
+
**Package:** freebuff
|
|
6
|
+
**Author:** israel676767
|
|
7
|
+
**Repository:** https://github.com/israel676767/omni
|
|
8
|
+
**Official:** https://freebuff.com
|
|
9
|
+
**Releases:** https://github.com/CodebuffAI/codebuff
|
|
10
|
+
**Type:** AI coding agent (Binary + glibc bootstrapper)
|
|
11
|
+
**License:** MIT
|
|
12
|
+
|
|
13
|
+
## Description
|
|
14
|
+
|
|
15
|
+
Freebuff is the free coding agent: a free CLI coding agent and Freebuff Web, the free way to build full-stack apps. No subscription, no setup, no lock-in. Omni Catalyst offers two installation methods: native with glibc support for best performance, or via proot-distro Ubuntu container for maximum compatibility.
|
|
16
|
+
|
|
17
|
+
## Dependencies
|
|
18
|
+
|
|
19
|
+
- **Native mode:** glibc-repo, glibc, clang, git, curl, tar
|
|
20
|
+
- **Proot mode:** proot-distro, curl, ca-certificates, tar
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
core install ai --freebuff
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
You will be prompted to choose:
|
|
29
|
+
|
|
30
|
+
1. **Native (recommended)** — Compiles a glibc bootstrapper and downloads the latest Freebuff binary from GitHub releases
|
|
31
|
+
2. **Proot-distro (alternative)** — Runs Freebuff inside an Ubuntu proot-distro container
|
|
32
|
+
|
|
33
|
+
## Uninstall
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
core uninstall ai --freebuff
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Update
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
core update ai --freebuff
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Notes
|
|
46
|
+
|
|
47
|
+
- **Native mode** requires `glibc-repo`, `glibc`, `clang`, and other dependencies (installed automatically)
|
|
48
|
+
- The native binary is stored in `~/.local/share/omni-data/freebuff/`
|
|
49
|
+
- A small C bootstrapper (`freebuff_helper.c`) handles ELF loading via the glibc dynamic linker
|
|
50
|
+
- **Proot mode** uses `proot-distro ubuntu` and downloads the binary directly inside the container
|
|
51
|
+
- Version is fetched automatically from GitHub releases (`CodebuffAI/codebuff-community`)
|
|
52
|
+
- Data directory: `~/.local/share/omni-data/freebuff/`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/data/data/com.termux/files/usr/bin/bash
|
|
2
|
+
|
|
3
|
+
UBUNTU_ROOTFS="__UBUNTU_ROOTFS__"
|
|
4
|
+
|
|
5
|
+
EXCLUDE_REGEX="^(PATH|LD_PRELOAD|LD_LIBRARY_PATH|PREFIX|HOME|PWD|OLDPWD|SHELL|IFS|_|SHLVL|PROMPT_COMMAND|TERMCAP|LS_COLORS|TERM)="
|
|
6
|
+
|
|
7
|
+
ENV_ARGS=()
|
|
8
|
+
while IFS= read -r line; do
|
|
9
|
+
if [[ -n "$line" && ! "$line" =~ $EXCLUDE_REGEX ]]; then
|
|
10
|
+
ENV_ARGS+=("--env" "$line")
|
|
11
|
+
fi
|
|
12
|
+
done < <(env)
|
|
13
|
+
|
|
14
|
+
ENV_ARGS+=(
|
|
15
|
+
"--env" "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"
|
|
16
|
+
"--env" "TERM=$TERM"
|
|
17
|
+
"--env" "HOME=/root"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
unset LD_PRELOAD
|
|
21
|
+
proot-distro login \
|
|
22
|
+
"${ENV_ARGS[@]}" \
|
|
23
|
+
--termux-home \
|
|
24
|
+
--shared-tmp \
|
|
25
|
+
--bind "$UBUNTU_ROOTFS/root/.freebuff:/root/.freebuff" \
|
|
26
|
+
--work-dir $PWD \
|
|
27
|
+
ubuntu \
|
|
28
|
+
-- /root/.freebuff/freebuff "$@"
|
|
@@ -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/freebuff/freebuff";
|
|
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
|
+
}
|