re-uploading work

This commit is contained in:
2026-02-04 17:46:30 -06:00
commit 3b14c65998
1388 changed files with 381262 additions and 0 deletions

237
scripts/load-core-pack.sh Executable file
View File

@@ -0,0 +1,237 @@
#!/bin/bash
# Wrapper script for loading the core pack into Attune database
# Usage: ./scripts/load-core-pack.sh [options]
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# Colors for output
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Default values
DATABASE_URL="${DATABASE_URL:-postgresql://postgres:postgres@localhost:5432/attune}"
PACKS_DIR="${ATTUNE_PACKS_DIR:-$PROJECT_ROOT/packs}"
PYTHON_BIN="python3"
# Function to print colored messages
info() {
echo -e "${BLUE}${NC} $1"
}
success() {
echo -e "${GREEN}${NC} $1"
}
error() {
echo -e "${RED}${NC} $1"
}
warning() {
echo -e "${YELLOW}${NC} $1"
}
# Parse command line arguments
DRY_RUN=false
VERBOSE=false
while [[ $# -gt 0 ]]; do
case $1 in
--database-url)
DATABASE_URL="$2"
shift 2
;;
--pack-dir)
PACKS_DIR="$2"
shift 2
;;
--python)
PYTHON_BIN="$2"
shift 2
;;
--dry-run)
DRY_RUN=true
shift
;;
-v|--verbose)
VERBOSE=true
shift
;;
-h|--help)
cat << EOF
Usage: $0 [options]
Load the Attune core pack into the database.
Options:
--database-url URL PostgreSQL connection string
(default: postgresql://postgres:postgres@localhost:5432/attune)
--pack-dir DIR Base directory for packs (default: ./packs)
--python PATH Path to Python interpreter (default: python3)
--dry-run Show what would be done without making changes
-v, --verbose Show detailed output
-h, --help Show this help message
Environment Variables:
DATABASE_URL PostgreSQL connection string
ATTUNE_PACKS_DIR Base directory for packs
Examples:
# Load core pack with default settings
$0
# Use custom database URL
$0 --database-url "postgresql://user:pass@db:5432/attune"
# Dry run to see what would happen
$0 --dry-run
EOF
exit 0
;;
*)
error "Unknown option: $1"
echo "Use --help for usage information"
exit 1
;;
esac
done
# Print banner
echo ""
echo "═══════════════════════════════════════════════════════════"
echo " Attune Core Pack Loader"
echo "═══════════════════════════════════════════════════════════"
echo ""
# Check prerequisites
info "Checking prerequisites..."
# Check Python
if ! command -v "$PYTHON_BIN" &> /dev/null; then
error "Python 3 is required but not found: $PYTHON_BIN"
echo " Install Python 3.8+ and try again"
exit 1
fi
success "Python 3 found: $($PYTHON_BIN --version)"
# Check Python packages
MISSING_PACKAGES=()
if ! "$PYTHON_BIN" -c "import psycopg2" 2>/dev/null; then
MISSING_PACKAGES+=("psycopg2-binary")
fi
if ! "$PYTHON_BIN" -c "import yaml" 2>/dev/null; then
MISSING_PACKAGES+=("pyyaml")
fi
if [ ${#MISSING_PACKAGES[@]} -gt 0 ]; then
warning "Missing required Python packages: ${MISSING_PACKAGES[*]}"
echo ""
echo "Install them with:"
echo " pip install ${MISSING_PACKAGES[*]}"
echo ""
read -p "Install now? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
info "Installing packages..."
pip install "${MISSING_PACKAGES[@]}"
success "Packages installed"
else
error "Required packages not installed"
exit 1
fi
fi
success "Python packages installed"
# Check database connectivity
info "Testing database connection..."
if ! pg_isready -d "$DATABASE_URL" -q 2>/dev/null; then
# Try psql as fallback
if ! psql "$DATABASE_URL" -c "SELECT 1" >/dev/null 2>&1; then
error "Cannot connect to database"
echo " DATABASE_URL: $DATABASE_URL"
echo ""
echo "Troubleshooting:"
echo " - Check PostgreSQL is running"
echo " - Verify DATABASE_URL is correct"
echo " - Ensure database exists"
exit 1
fi
fi
success "Database connection OK"
# Check packs directory
info "Checking packs directory..."
if [ ! -d "$PACKS_DIR/core" ]; then
error "Core pack directory not found: $PACKS_DIR/core"
exit 1
fi
success "Core pack directory found"
# Check pack.yaml exists
if [ ! -f "$PACKS_DIR/core/pack.yaml" ]; then
error "pack.yaml not found in core pack directory"
exit 1
fi
success "pack.yaml found"
echo ""
info "Configuration:"
echo " Database URL: $DATABASE_URL"
echo " Packs Directory: $PACKS_DIR"
echo " Core Pack: $PACKS_DIR/core"
echo ""
# Run the Python loader
LOADER_SCRIPT="$SCRIPT_DIR/load_core_pack.py"
if [ ! -f "$LOADER_SCRIPT" ]; then
error "Loader script not found: $LOADER_SCRIPT"
exit 1
fi
LOADER_ARGS=(
"--database-url" "$DATABASE_URL"
"--pack-dir" "$PACKS_DIR"
)
if [ "$DRY_RUN" = true ]; then
LOADER_ARGS+=("--dry-run")
fi
if [ "$VERBOSE" = true ]; then
info "Running loader with verbose output..."
"$PYTHON_BIN" "$LOADER_SCRIPT" "${LOADER_ARGS[@]}"
else
"$PYTHON_BIN" "$LOADER_SCRIPT" "${LOADER_ARGS[@]}"
fi
LOADER_EXIT_CODE=$?
echo ""
if [ $LOADER_EXIT_CODE -eq 0 ]; then
echo "═══════════════════════════════════════════════════════════"
success "Core pack loaded successfully!"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo "Next steps:"
echo " 1. Verify: attune pack show core"
echo " 2. List actions: attune action list --pack core"
echo " 3. Create a rule using core triggers and actions"
echo ""
else
echo "═══════════════════════════════════════════════════════════"
error "Failed to load core pack"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo "Check the error messages above for details"
exit $LOADER_EXIT_CODE
fi