77 lines
2.7 KiB
Bash
Executable File
77 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install pi-rtk (Token Reduction Kit) extension to pi agent
|
|
# Based on https://github.com/mcowger/pi-rtk
|
|
|
|
set -e
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
PI_DIR="${PI_DIR:-$HOME/.pi/agent}"
|
|
EXT_DIR="$PI_DIR/extensions"
|
|
SETTINGS_FILE="$PI_DIR/settings.json"
|
|
|
|
RTK_SOURCE="https://github.com/mcowger/pi-rtk.git"
|
|
RTK_DIR="$EXT_DIR/pi-rtk"
|
|
|
|
echo -e "${BLUE}╔══════════════════════════════════════════════════════╗${NC}"
|
|
echo -e "${BLUE}║ pi-rtk Installation ║${NC}"
|
|
echo -e "${BLUE}╚══════════════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
|
|
mkdir -p "$EXT_DIR"
|
|
|
|
# Clone or update pi-rtk
|
|
if [ -d "$RTK_DIR/.git" ]; then
|
|
echo -e "${YELLOW}Updating existing pi-rtk...${NC}"
|
|
cd "$RTK_DIR" && git pull --ff origin main
|
|
else
|
|
echo -e "${YELLOW}Cloning pi-rtk from GitHub...${NC}"
|
|
git clone --depth 1 "$RTK_SOURCE" "$RTK_DIR"
|
|
fi
|
|
|
|
# Update settings.json
|
|
echo -e "${YELLOW}Updating settings...${NC}"
|
|
python3 << 'PYEOF'
|
|
import json
|
|
import sys
|
|
|
|
settings_file = sys.argv[1]
|
|
pkg_name = sys.argv[2]
|
|
|
|
try:
|
|
with open(settings_file, 'r') as f:
|
|
settings = json.load(f)
|
|
except:
|
|
settings = {}
|
|
|
|
if 'packages' not in settings:
|
|
settings['packages'] = []
|
|
|
|
# Remove old pipeline extensions, keep only rtk
|
|
settings['packages'] = [p for p in settings['packages'] if 'pi-rtk' in p]
|
|
if pkg_name not in settings['packages']:
|
|
settings['packages'].append(pkg_name)
|
|
|
|
with open(settings_file, 'w') as f:
|
|
json.dump(settings, f, indent=2)
|
|
|
|
print(f"Added {pkg_name} to packages")
|
|
PYEOF
|
|
"$SETTINGS_FILE" "extensions/pi-rtk/index.ts"
|
|
|
|
echo ""
|
|
echo -e "${GREEN}╔══════════════════════════════════════════════════════╗${NC}"
|
|
echo -e "${GREEN}║ Installation Complete! ║${NC}"
|
|
echo -e "${GREEN}╚══════════════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
echo -e "RTK commands:"
|
|
echo -e " ${BLUE}/rtk-on${NC} / ${BLUE}/rtk-off${NC} - Enable/disable RTK"
|
|
echo -e " ${BLUE}/rtk-stats${NC} - Show token savings"
|
|
echo -e " ${BLUE}/rtk-what${NC} - Show current config"
|
|
echo -e " ${BLUE}/rtk-toggle-*${NC} - Toggle features (ansiStripping, truncation, etc.)"
|
|
echo ""
|
|
echo -e "${GREEN}Restart pi agent to load the extension${NC}" |