Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

# === Docker Compose ===
# Host ports (change if collisions with other projects)
DB_HOST_PORT="5411"
REDIS_HOST_PORT="6311"
API_HOST_PORT="8011"
FRONTEND_HOST_PORT="3011"

Expand All @@ -19,10 +21,10 @@ REDIS_PASSWORD="ailine_redis_dev"
AILINE_REDIS_URL="redis://:ailine_redis_dev@localhost:6311/0"

# === LLM Provider Keys ===
ANTHROPIC_API_KEY="sk-ant-..."
OPENAI_API_KEY="sk-proj-..."
GEMINI_API_KEY="AIza..."
OPENROUTER_API_KEY="sk-or-v1-..."
ANTHROPIC_API_KEY=""
OPENAI_API_KEY=""
GEMINI_API_KEY=""
OPENROUTER_API_KEY=""

# === Models ===
AILINE_PLANNER_MODEL="anthropic:claude-opus-4-6"
Expand Down Expand Up @@ -62,9 +64,17 @@ ELEVENLABS_API_KEY=""
GOOGLE_TTS_KEY=""
HANDTALK_API_KEY=""

# === Dev Mode (enables X-Teacher-ID header bypass for local dev) ===
AILINE_DEV_MODE="false"

# === Demo Mode ===
AILINE_DEMO_MODE="0"

# === Rate Limiting ===
AILINE_RATE_LIMIT_RPM="60"
# Comma-separated IPs of trusted reverse proxies (for X-Forwarded-For)
AILINE_TRUSTED_PROXIES=""

# === Server ===
HOST="0.0.0.0"
PORT="8011"
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:
- uses: astral-sh/setup-uv@v5
with:
version: "latest"
enable-cache: true
cache-dependency-glob: "runtime/uv.lock"

- name: Install dependencies
working-directory: runtime
Expand All @@ -43,6 +45,8 @@ jobs:
- uses: astral-sh/setup-uv@v5
with:
version: "latest"
enable-cache: true
cache-dependency-glob: "runtime/uv.lock"

- name: Install dependencies
working-directory: runtime
Expand All @@ -60,6 +64,8 @@ jobs:
- uses: astral-sh/setup-uv@v5
with:
version: "latest"
enable-cache: true
cache-dependency-glob: "runtime/uv.lock"

- name: Install dependencies
working-directory: runtime
Expand Down Expand Up @@ -89,6 +95,8 @@ jobs:
- uses: astral-sh/setup-uv@v5
with:
version: "latest"
enable-cache: true
cache-dependency-glob: "agents/uv.lock"

- name: Install dependencies
working-directory: agents
Expand Down Expand Up @@ -122,7 +130,7 @@ jobs:

- name: Install dependencies
working-directory: frontend
run: pnpm install
run: pnpm install --frozen-lockfile

- name: Lint
working-directory: frontend
Expand All @@ -145,7 +153,7 @@ jobs:

- name: Install dependencies
working-directory: frontend
run: pnpm install
run: pnpm install --frozen-lockfile

- name: Typecheck
working-directory: frontend
Expand All @@ -168,7 +176,7 @@ jobs:

- name: Install dependencies
working-directory: frontend
run: pnpm install
run: pnpm install --frozen-lockfile

- name: Run unit tests
working-directory: frontend
Expand Down Expand Up @@ -205,7 +213,7 @@ jobs:

- name: Install frontend deps
working-directory: frontend
run: pnpm install
run: pnpm install --frozen-lockfile

- name: Audit npm deps
working-directory: frontend
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ SmartRouter uses weighted complexity scoring to pick the optimal model per reque

### 4. Production Engineering — Built to Run, Not Just to Demo

Hexagonal architecture with zero framework imports in the domain core. 60 ADRs documenting every significant decision. Tenant isolation via JWT + composite foreign keys + vector store filtering. RFC 7807 error responses. OpenTelemetry tracing. SSE terminal guarantee (every pipeline run reaches a final state — no stuck spinners). 3,087 tests across 4 layers.
Hexagonal architecture with zero framework imports in the domain core. 60 ADRs documenting every significant decision. Tenant isolation via JWT + composite foreign keys + vector store filtering. RFC 7807 error responses. OpenTelemetry tracing. SSE terminal guarantee (every pipeline run reaches a final state — no stuck spinners). 3,300+ tests across 4 layers.

### 5. Social Impact at Scale

Expand Down Expand Up @@ -263,7 +263,7 @@ cd runtime && uv run pytest -m live_llm -v --timeout=120
|----------|-------------|
| [Judge Packet](docs/judge-packet.md) | 1-page project summary for judges |
| [Demo Script](docs/demo-script.md) | 3-minute "Meet Ana" demo narrative |
| [Feature Map](docs/feature-map.md) | 145 features across 12 capability areas |
| [Feature Map](docs/feature-map.md) | 190+ features across 12 capability areas |
| [Architecture Diagrams](docs/architecture-diagram.md) | 8 Mermaid diagrams |
| [System Design](control_docs/SYSTEM_DESIGN.md) | Architecture, data flows, 60 ADR log |
| [Test Strategy](control_docs/TEST.md) | Test matrix, coverage targets, how to run |
Expand Down
3 changes: 3 additions & 0 deletions agents/ailine_agents/agents/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@
from .executor import build_executor_agent, get_executor_agent
from .planner import build_planner_agent, get_planner_agent
from .quality_gate import build_quality_gate_agent, get_quality_gate_agent
from .skill_crafter import build_skill_crafter_agent, get_skill_crafter_agent
from .tutor import build_tutor_agent, get_tutor_agent

__all__ = [
"build_executor_agent",
"build_planner_agent",
"build_quality_gate_agent",
"build_skill_crafter_agent",
"build_tutor_agent",
"get_executor_agent",
"get_planner_agent",
"get_quality_gate_agent",
"get_skill_crafter_agent",
"get_tutor_agent",
]
Loading
Loading