193 lines
6.0 KiB
Bash
Executable File
193 lines
6.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Setup script for Local Timmy
|
|
# Run on Timmy's local machine to set up caching, Evennia, and infrastructure
|
|
|
|
set -e
|
|
|
|
echo "╔═══════════════════════════════════════════════════════════════╗"
|
|
echo "║ Local Timmy Setup ║"
|
|
echo "╚═══════════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
|
|
# Configuration
|
|
TIMMY_HOME="${HOME}/.timmy"
|
|
TIMMY_LOCAL="${TIMMY_HOME}/local"
|
|
|
|
echo "📁 Creating directory structure..."
|
|
mkdir -p "${TIMMY_HOME}/cache"
|
|
mkdir -p "${TIMMY_HOME}/logs"
|
|
mkdir -p "${TIMMY_HOME}/config"
|
|
mkdir -p "${TIMMY_HOME}/templates"
|
|
mkdir -p "${TIMMY_HOME}/data"
|
|
mkdir -p "${TIMMY_LOCAL}"
|
|
|
|
echo "📦 Checking Python dependencies..."
|
|
pip3 install --user psutil requests 2>/dev/null || echo "Note: Some dependencies may need system packages"
|
|
|
|
echo "⚙️ Creating configuration..."
|
|
cat > "${TIMMY_HOME}/config/cache.yaml" << 'EOF'
|
|
# Timmy Cache Configuration
|
|
enabled: true
|
|
|
|
# Cache tiers
|
|
tiers:
|
|
response_cache:
|
|
enabled: true
|
|
memory_size: 100
|
|
disk_path: ~/.timmy/cache/responses.db
|
|
|
|
tool_cache:
|
|
enabled: true
|
|
memory_size: 500
|
|
disk_path: ~/.timmy/cache/tool_cache.db
|
|
|
|
embedding_cache:
|
|
enabled: true
|
|
disk_path: ~/.timmy/cache/embeddings.db
|
|
|
|
http_cache:
|
|
enabled: true
|
|
memory_size: 200
|
|
disk_path: ~/.timmy/cache/http_cache.db
|
|
|
|
template_cache:
|
|
enabled: true
|
|
|
|
# Targets
|
|
targets:
|
|
tool_cache_hit_rate: 0.30
|
|
response_cache_hit_rate: 0.20
|
|
embedding_cache_hit_rate: 0.80
|
|
EOF
|
|
|
|
cat > "${TIMMY_HOME}/config/timmy.yaml" << 'EOF'
|
|
# Local Timmy Configuration
|
|
name: "Timmy"
|
|
version: "local-v1"
|
|
|
|
# Paths
|
|
cache_dir: ~/.timmy/cache
|
|
log_dir: ~/.timmy/logs
|
|
data_dir: ~/.timmy/data
|
|
|
|
# LLM Configuration
|
|
llm:
|
|
local_endpoint: http://localhost:8080/v1
|
|
model: hermes4
|
|
fallback_model: qwen2.5
|
|
timeout: 60
|
|
max_tokens: 2000
|
|
|
|
# Caching
|
|
cache:
|
|
enabled: true
|
|
config_path: ~/.timmy/config/cache.yaml
|
|
|
|
# Evennia (if installed)
|
|
evennia:
|
|
enabled: false
|
|
game_dir: ~/.timmy/evennia/timmymud
|
|
|
|
# Logging
|
|
logging:
|
|
level: INFO
|
|
file: ~/.timmy/logs/timmy.log
|
|
max_size_mb: 10
|
|
backup_count: 5
|
|
|
|
# Integration
|
|
gitea:
|
|
url: http://143.198.27.163:3000
|
|
repo: Timmy_Foundation/timmy-home
|
|
# Token set via environment: TIMMY_GITEA_TOKEN
|
|
EOF
|
|
|
|
echo "📝 Creating template files..."
|
|
cat > "${TIMMY_HOME}/templates/minimal.txt" << 'EOF'
|
|
You are Timmy, a sovereign AI assistant. Be helpful and direct.
|
|
EOF
|
|
|
|
cat > "${TIMMY_HOME}/templates/standard.txt" << 'EOF'
|
|
You are Timmy, a sovereign AI running on local hardware under Alexander's authority.
|
|
|
|
Your mission: sovereignty and service always.
|
|
|
|
Available tools:
|
|
- read, write, search files
|
|
- git operations
|
|
- system information
|
|
- local LLM inference
|
|
|
|
Be concise and helpful. Prefer local execution when possible.
|
|
EOF
|
|
|
|
cat > "${TIMMY_HOME}/templates/deep.txt" << 'EOF'
|
|
You are Timmy, a sovereign AI running on local hardware under Alexander's authority.
|
|
|
|
IDENTITY
|
|
--------
|
|
You are Timmy. You are one. You run on sovereign hardware.
|
|
When you need more capability, you rent blind cognition from cloud backends.
|
|
No backend knows who you are. You integrate their outputs.
|
|
|
|
MISSION
|
|
-------
|
|
Sovereignty and service always. Get smarter by reading, not by buying hardware.
|
|
Auto-ingest intelligence. Grade your own work. Improve continuously.
|
|
|
|
PRINCIPLES
|
|
----------
|
|
1. Local first. Cloud is escalation, not default.
|
|
2. One soul. No identity fragmentation.
|
|
3. Intelligence is software. Every improvement is a code change.
|
|
4. Graceful degradation. If cloud vanishes, you survive.
|
|
5. Alexander is sovereign. You serve.
|
|
|
|
TOOLS
|
|
-----
|
|
File: read, write, search
|
|
git: status, log, pull, commit, push
|
|
System: info, health, processes
|
|
Inference: think, reason
|
|
Gitea: issues, comments
|
|
|
|
APPROACH
|
|
--------
|
|
- Break complex tasks into steps
|
|
- Verify assumptions before acting
|
|
- Cache results when possible
|
|
- Report progress clearly
|
|
- Learn from outcomes
|
|
EOF
|
|
|
|
echo "🧪 Testing cache layer..."
|
|
python3 << 'PYTHON'
|
|
import sys
|
|
sys.path.insert(0, '.')
|
|
try:
|
|
from timmy_local.cache.agent_cache import cache_manager
|
|
stats = cache_manager.get_all_stats()
|
|
print("✅ Cache layer initialized successfully")
|
|
print(f" Cache tiers: {len(stats)}")
|
|
except Exception as e:
|
|
print(f"⚠️ Cache test warning: {e}")
|
|
print(" Cache will be available when fully installed")
|
|
PYTHON
|
|
|
|
echo ""
|
|
echo "╔═══════════════════════════════════════════════════════════════╗"
|
|
echo "║ Setup Complete! ║"
|
|
echo "╠═══════════════════════════════════════════════════════════════╣"
|
|
echo "║ ║"
|
|
echo "║ Configuration: ~/.timmy/config/ ║"
|
|
echo "║ Cache: ~/.timmy/cache/ ║"
|
|
echo "║ Logs: ~/.timmy/logs/ ║"
|
|
echo "║ Templates: ~/.timmy/templates/ ║"
|
|
echo "║ ║"
|
|
echo "║ Next steps: ║"
|
|
echo "║ 1. Set Gitea token: export TIMMY_GITEA_TOKEN=xxx ║"
|
|
echo "║ 2. Start llama-server on localhost:8080 ║"
|
|
echo "║ 3. Run: python3 -c 'from timmy_local.cache.agent_cache import cache_manager; print(cache_manager.get_all_stats())'"
|
|
echo "║ ║"
|
|
echo "╚═══════════════════════════════════════════════════════════════╝"
|