This commit is contained in:
2025-08-19 10:25:11 +02:00
parent 69a947fa0b
commit d3440ccb1b
52 changed files with 113 additions and 113 deletions

View File

@@ -1,7 +1,7 @@
"""
Confidential Empire - Modular AI Gateway Platform
Enclava - Modular AI Platform
"""
__version__ = "1.0.0"
__author__ = "Confidential Empire Team"
__description__ = "Modular AI Gateway Platform with confidential AI processing"
__author__ = "Enclava Team"
__description__ = "Enclava - Modular AI Platform with confidential processing"

View File

@@ -12,7 +12,7 @@ class Settings(BaseSettings):
"""Application settings"""
# Application
APP_NAME: str = "Shifra"
APP_NAME: str = "Enclava"
APP_DEBUG: bool = False
APP_LOG_LEVEL: str = "INFO"
APP_HOST: str = "0.0.0.0"
@@ -33,7 +33,7 @@ class Settings(BaseSettings):
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
REFRESH_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7 days
SESSION_EXPIRE_MINUTES: int = 60 * 24 # 24 hours
API_KEY_PREFIX: str = "ce_"
API_KEY_PREFIX: str = "en_"
# Admin user provisioning
ADMIN_USER: str = "admin"
@@ -45,7 +45,7 @@ class Settings(BaseSettings):
# LiteLLM
LITELLM_BASE_URL: str = "http://localhost:4000"
LITELLM_MASTER_KEY: str = "empire-master-key"
LITELLM_MASTER_KEY: str = "enclava-master-key"
# API Keys for LLM providers
OPENAI_API_KEY: Optional[str] = None

View File

@@ -26,7 +26,7 @@ engine = create_async_engine(
connect_args={
"command_timeout": 5,
"server_settings": {
"application_name": "shifra_backend",
"application_name": "enclava_backend",
},
},
)
@@ -49,7 +49,7 @@ sync_engine = create_engine(
pool_recycle=3600, # Recycle connections every hour
pool_timeout=30, # Max time to get connection from pool
connect_args={
"application_name": "shifra_backend_sync",
"application_name": "enclava_backend_sync",
},
)

View File

@@ -36,7 +36,7 @@ async def lifespan(app: FastAPI):
"""
Application lifespan handler
"""
logger.info("Starting Confidential Empire platform...")
logger.info("Starting Enclava platform...")
# Initialize database
await init_db()
@@ -85,7 +85,7 @@ async def lifespan(app: FastAPI):
# Create FastAPI application
app = FastAPI(
title=settings.APP_NAME,
description="Modular AI Gateway Platform with confidential AI processing",
description="Enclava - Modular AI Platform with confidential processing",
version="1.0.0",
openapi_url="/api/v1/openapi.json",
docs_url="/api/v1/docs",
@@ -201,7 +201,7 @@ async def health_check():
async def root():
"""Root endpoint"""
return {
"message": "Confidential Empire - Modular AI Gateway Platform",
"message": "Enclava - Modular AI Platform",
"version": "1.0.0",
"docs": "/api/v1/docs",
}

View File

@@ -12,7 +12,7 @@ This module provides AI chatbot capabilities with:
from .main import ChatbotModule, create_module
__version__ = "1.0.0"
__author__ = "AI Gateway Team"
__author__ = "Enclava Team"
# Export main classes for easy importing
__all__ = [

View File

@@ -803,7 +803,7 @@ class ChatbotModule(BaseModule):
try:
# Try to verify the collection exists in Qdrant
from qdrant_client import QdrantClient
qdrant_client = QdrantClient(host="shifra-qdrant", port=6333)
qdrant_client = QdrantClient(host="enclava-qdrant", port=6333)
collections = qdrant_client.get_collections()
collection_names = [c.name for c in collections.collections]

View File

@@ -1,7 +1,7 @@
name: chatbot
version: 1.0.0
description: "AI Chatbot with RAG integration and customizable prompts"
author: "AI Gateway Team"
author: "Enclava Team"
category: "conversation"
# Module lifecycle

View File

@@ -13,8 +13,8 @@ from typing import Dict, List, Tuple
# Test configuration
PLATFORM_URL = "http://localhost:58000/api/v1/llm/chat/completions"
LITELLM_URL = "http://localhost:54000/chat/completions"
API_KEY = "ce_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
LITELLM_KEY = "shifra-master-key" # From docker-compose.yml
API_KEY = "en_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
LITELLM_KEY = "enclava-master-key" # From docker-compose.yml
TEST_PROMPT = "What is the capital of France? Give a brief answer."
MODEL = "ollama-deepseek-r1"

View File

@@ -8,8 +8,8 @@ import requests
import json
# Configuration
API_KEY = "ce_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
LITELLM_KEY = "shifra-master-key"
API_KEY = "en_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
LITELLM_KEY = "enclava-master-key"
TEST_PROMPT = "What is 2+2? Answer briefly."
MODEL = "ollama-deepseek-r1"

View File

@@ -1,26 +1,26 @@
name: shifra
name: enclava
services:
# Main application backend
shifra-backend:
enclava-backend:
build:
context: ./backend
dockerfile: Dockerfile
environment:
- DATABASE_URL=postgresql://shifra_user:shifra_pass@shifra-postgres:5432/shifra_db
- REDIS_URL=redis://shifra-redis:6379
- QDRANT_HOST=shifra-qdrant
- DATABASE_URL=postgresql://enclava_user:enclava_pass@enclava-postgres:5432/enclava_db
- REDIS_URL=redis://enclava-redis:6379
- QDRANT_HOST=enclava-qdrant
- LITELLM_BASE_URL=http://litellm-proxy:4000
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY:-shifra-master-key}
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY:-enclava-master-key}
- JWT_SECRET=${JWT_SECRET:-your-jwt-secret-here}
- PRIVATEMODE_API_KEY=${PRIVATEMODE_API_KEY:-}
- ADMIN_USER=${ADMIN_USER:-admin}
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin123}
- LOG_LLM_PROMPTS=${LOG_LLM_PROMPTS:-false}
depends_on:
- shifra-postgres
- shifra-redis
- shifra-qdrant
- enclava-postgres
- enclava-redis
- enclava-qdrant
- litellm-proxy
ports:
- "58000:8000"
@@ -28,51 +28,51 @@ services:
- ./backend:/app
- ./logs:/app/logs
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
# Next.js frontend
shifra-frontend:
enclava-frontend:
image: node:18-alpine
working_dir: /app
command: sh -c "npm install && npm run dev"
environment:
- NEXT_PUBLIC_API_URL=http://localhost:58000
- NEXT_PUBLIC_WS_URL=ws://localhost:58000
- INTERNAL_API_URL=http://shifra-backend:8000
- INTERNAL_API_URL=http://enclava-backend:8000
depends_on:
- shifra-backend
- enclava-backend
ports:
- "53000:3000"
volumes:
- ./frontend:/app
- /app/node_modules
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
# PostgreSQL database
shifra-postgres:
enclava-postgres:
image: postgres:16
environment:
- POSTGRES_DB=shifra_db
- POSTGRES_USER=shifra_user
- POSTGRES_PASSWORD=shifra_pass
- POSTGRES_DB=enclava_db
- POSTGRES_USER=enclava_user
- POSTGRES_PASSWORD=enclava_pass
volumes:
- shifra-postgres-data:/var/lib/postgresql/data
- enclava-postgres-data:/var/lib/postgresql/data
- ./backend/migrations:/docker-entrypoint-initdb.d
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
# Redis for caching and message queue
shifra-redis:
enclava-redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- shifra-redis-data:/data
- enclava-redis-data:/data
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
# LiteLLM proxy for unified LLM API
@@ -81,9 +81,9 @@ services:
environment:
- UI_USERNAME=admin
- UI_PASSWORD=${LITELLM_UI_PASSWORD:-admin123}
- DATABASE_URL=postgresql://shifra_user:shifra_pass@shifra-postgres:5432/shifra_db
- DATABASE_URL=postgresql://enclava_user:enclava_pass@enclava-postgres:5432/enclava_db
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
#- OLLAMA_BASE_URL=http://shifra-ollama-proxy:11434/v1
#- OLLAMA_BASE_URL=http://enclava-ollama-proxy:11434/v1
#- OLLAMA_API_KEY=ollama
- PRIVATEMODE_API_KEY=${PRIVATEMODE_API_KEY:-}
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY}
@@ -92,15 +92,15 @@ services:
- ./litellm_config.yaml:/app/config.yaml
command: --config /app/config.yaml --port 4000 --num_workers 1
depends_on:
- shifra-postgres
- enclava-postgres
ports:
- "54000:4000"
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
# Ollama Free Model Proxy
#shifra-ollama-proxy:
#enclava-ollama-proxy:
# build:
# context: /home/lio/cloud/code/ollama-free-model-proxy
# dockerfile: Dockerfile
@@ -109,10 +109,10 @@ services:
# - FREE_MODE=true
# - TOOL_USE_ONLY=false
# volumes:
# - shifra-ollama-data:/data
# - enclava-ollama-data:/data
# working_dir: /data
# networks:
# - conf-ai-net
# - enclava-net
# restart: unless-stopped
#healthcheck:
# test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:11434/"]
@@ -122,7 +122,7 @@ services:
# start_period: 40s
# Qdrant vector database
shifra-qdrant:
enclava-qdrant:
image: qdrant/qdrant:latest
environment:
- QDRANT__SERVICE__HTTP_PORT=6333
@@ -131,9 +131,9 @@ services:
- "56333:6333" # HTTP API and Web Interface
- "56334:6334" # GRPC API (optional)
volumes:
- shifra-qdrant-data:/qdrant/storage
- enclava-qdrant-data:/qdrant/storage
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
# Privatemode.ai service (optional - for confidential models)
@@ -151,15 +151,15 @@ services:
ports:
- "58080:8080"
networks:
- conf-ai-net
- enclava-net
restart: unless-stopped
volumes:
shifra-postgres-data:
shifra-redis-data:
shifra-qdrant-data:
# shifra-ollama-data:
enclava-postgres-data:
enclava-redis-data:
enclava-qdrant-data:
# enclava-ollama-data:
networks:
conf-ai-net:
enclava-net:
driver: bridge

View File

@@ -6,7 +6,7 @@ const nextConfig = {
},
env: {
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000',
NEXT_PUBLIC_APP_NAME: process.env.NEXT_PUBLIC_APP_NAME || 'AI Gateway',
NEXT_PUBLIC_APP_NAME: process.env.NEXT_PUBLIC_APP_NAME || 'Enclava',
},
async headers() {
return [

View File

@@ -1,11 +1,11 @@
{
"name": "ai-gateway-frontend",
"name": "enclava-frontend",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ai-gateway-frontend",
"name": "enclava-frontend",
"version": "0.1.0",
"dependencies": {
"@hookform/resolvers": "^3.3.2",

View File

@@ -1,5 +1,5 @@
{
"name": "ai-gateway-frontend",
"name": "enclava-frontend",
"version": "0.1.0",
"private": true,
"scripts": {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
const REQUEST_TIMEOUT = 30000 // 30 seconds
interface ChatRequestBody {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function DELETE(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function PUT(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function DELETE(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from "next/server"
const BACKEND_URL = process.env.INTERNAL_API_URL || "http://shifra-backend:8000"
const BACKEND_URL = process.env.INTERNAL_API_URL || "http://enclava-backend:8000"
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function PUT(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
export async function DELETE(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
export async function GET(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
export async function DELETE(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(
request: NextRequest,

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function GET(request: NextRequest) {
try {

View File

@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
export async function POST(request: NextRequest) {
try {

View File

@@ -205,7 +205,7 @@ function DashboardContent() {
Welcome back, {user.name}
</h1>
<p className="text-empire-gold/60 mt-1">
Manage your AI gateway and modules
Manage your Enclava platform and modules
</p>
</div>
<Button className="bg-empire-gold hover:bg-empire-gold/90 text-empire-dark">

View File

@@ -17,22 +17,22 @@ export const viewport: Viewport = {
export const metadata: Metadata = {
metadataBase: new URL('http://localhost:3000'),
title: 'AI Gateway Platform',
title: 'Enclava Platform',
description: 'Secure AI processing platform with plugin-based architecture and confidential computing',
keywords: ['AI', 'Gateway', 'Confidential Computing', 'LLM', 'TEE'],
authors: [{ name: 'AI Gateway Team' }],
keywords: ['AI', 'Enclava', 'Confidential Computing', 'LLM', 'TEE'],
authors: [{ name: 'Enclava Team' }],
robots: 'index, follow',
openGraph: {
type: 'website',
locale: 'en_US',
url: 'http://localhost:3000',
title: 'AI Gateway Platform',
title: 'Enclava Platform',
description: 'Secure AI processing platform with plugin-based architecture and confidential computing',
siteName: 'AI Gateway',
siteName: 'Enclava',
},
twitter: {
card: 'summary_large_image',
title: 'AI Gateway Platform',
title: 'Enclava Platform',
description: 'Secure AI processing platform with plugin-based architecture and confidential computing',
},
}

View File

@@ -675,7 +675,7 @@ function LLMPageContent() {
<CardHeader>
<CardTitle>Available Models</CardTitle>
<CardDescription>
Models available through your LLM gateway.
Models available through your LLM platform.
</CardDescription>
</CardHeader>
<CardContent>
@@ -691,7 +691,7 @@ function LLMPageContent() {
))}
{models.length === 0 && (
<div className="col-span-full text-center py-8 text-muted-foreground">
No models available. Check your LLM gateway configuration.
No models available. Check your LLM platform configuration.
</div>
)}
</div>

View File

@@ -30,7 +30,7 @@ export default function LoginPage() {
await login(email, password)
toast({
title: "Login successful",
description: "Welcome to Confidential Empire",
description: "Welcome to Enclava",
})
router.push("/dashboard")
} catch (error) {
@@ -54,10 +54,10 @@ export default function LoginPage() {
</div>
</div>
<CardTitle className="text-2xl font-bold text-empire-gold">
Confidential Empire
Enclava
</CardTitle>
<CardDescription>
Sign in to your secure AI gateway
Sign in to your secure AI platform
</CardDescription>
</CardHeader>
<CardContent>

View File

@@ -43,7 +43,7 @@ export default function HomePage() {
<div className="w-8 h-8 bg-empire-gold rounded-lg flex items-center justify-center">
<Shield className="w-5 h-5 text-empire-dark" />
</div>
<span className="text-xl font-bold text-empire-gold">AI Gateway</span>
<span className="text-xl font-bold text-empire-gold">Enclava</span>
</div>
<nav className="hidden md:flex items-center space-x-6">
<a href="#features" className="text-empire-gold/60 hover:text-empire-gold">
@@ -78,9 +78,9 @@ export default function HomePage() {
AI Processing Platform
</Badge>
<h1 className="text-4xl md:text-6xl font-bold mb-6 text-empire-gold">
Secure AI Gateway with{' '}
Secure AI Platform with{' '}
<span className="bg-gradient-to-r from-empire-gold to-empire-gold/80 bg-clip-text text-transparent">
Secure Computing
Confidential Computing
</span>
</h1>
<p className="text-xl text-empire-gold/60 mb-8">
@@ -206,7 +206,7 @@ export default function HomePage() {
<div className="text-center mb-16">
<h2 className="text-3xl font-bold mb-4 text-empire-gold">Available Modules</h2>
<p className="text-empire-gold/60 max-w-2xl mx-auto">
Extend your AI gateway with powerful modules for enhanced functionality
Extend your Enclava platform with powerful modules for enhanced functionality
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
@@ -278,7 +278,7 @@ export default function HomePage() {
<div className="w-6 h-6 bg-empire-gold rounded flex items-center justify-center">
<Shield className="w-4 h-4 text-empire-dark" />
</div>
<span className="font-semibold text-empire-gold">AI Gateway</span>
<span className="font-semibold text-empire-gold">Enclava</span>
</div>
<div className="flex items-center space-x-6 text-sm text-empire-gold/60">
<a href="/docs" className="hover:text-empire-gold">Documentation</a>
@@ -288,7 +288,7 @@ export default function HomePage() {
</div>
</div>
<div className="mt-8 pt-8 border-t border-empire-gold/20 text-center text-sm text-empire-gold/60">
<p>&copy; 2024 AI Gateway. All rights reserved.</p>
<p>&copy; 2024 Enclava. All rights reserved.</p>
</div>
</div>
</footer>

View File

@@ -69,7 +69,7 @@ const Navigation = () => {
<Link href={user ? "/dashboard" : "/"} className="mr-6 flex items-center space-x-2">
<div className="h-6 w-6 rounded bg-gradient-to-br from-empire-600 to-empire-800" />
<span className="hidden font-bold sm:inline-block">
AI Gateway
Enclava
</span>
</Link>
{user && (