"""Template files for agentkit init"""

AGENTKIT_YAML = """\
# AgentKit Configuration
# See https://github.com/fischer/agentkit for documentation

server:
  host: "0.0.0.0"
  port: 8001
  workers: 1
  api_key: null  # Set to enable API key authentication
  rate_limit: 60  # Requests per minute

llm:
  default_provider: "openai"
  providers:
    openai:
      api_key: "${OPENAI_API_KEY}"
      base_url: "https://api.openai.com/v1"
      models:
        gpt-4o:
          alias: "default"
        gpt-4o-mini:
          alias: "fast"
    deepseek:
      api_key: "${DEEPSEEK_API_KEY}"
      base_url: "https://api.deepseek.com/v1"
      models:
        deepseek-chat:
          alias: "deepseek"

memory:
  semantic:
    backend: "pgvector"
    connection: "${DATABASE_URL:-postgresql+asyncpg://agentkit:agentkit@localhost:5432/agentkit}"
  episodic:
    backend: "redis"
    connection: "${REDIS_URL:-redis://localhost:6379/0}"
  working:
    backend: "redis"
    connection: "${REDIS_URL:-redis://localhost:6379/1}"

skills:
  auto_discover: true
  paths:
    - "./skills"

logging:
  level: "INFO"
  format: "text"  # "text" or "json"
"""

ENV_EXAMPLE = """\
# AgentKit Environment Variables
# Copy this file to .env and fill in your values

# LLM API Keys (at least one required)
OPENAI_API_KEY=sk-your-openai-key
DEEPSEEK_API_KEY=sk-your-deepseek-key

# Database (required for semantic memory)
DATABASE_URL=postgresql+asyncpg://agentkit:agentkit@localhost:5432/agentkit

# Redis (required for episodic/working memory)
REDIS_URL=redis://localhost:6379/0

# Server (optional)
AGENTKIT_API_KEY=  # Set to enable API key authentication
"""

DOCKER_COMPOSE = """\
version: "3.8"

services:
  agentkit:
    build: .
    command: serve --host 0.0.0.0 --port 8001
    ports:
      - "8001:8001"
    env_file: .env
    depends_on:
      redis:
        condition: service_healthy
      postgres:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8001/api/v1/health')"]
      interval: 30s
      timeout: 10s
      retries: 3

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  postgres:
    image: pgvector/pgvector:pg15
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: agentkit
      POSTGRES_PASSWORD: agentkit
      POSTGRES_DB: agentkit
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U agentkit"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  pgdata:
"""

EXAMPLE_SKILL = """\
# Example Skill Configuration
name: example_skill
description: "An example skill for demonstration"
agent_type: assistant
mode: llm_generate
version: "1.0"

prompt: |
  You are a helpful assistant. Respond to the user's request clearly and concisely.

tools: []

quality_gate:
  enabled: false

evolution:
  enabled: false
"""
