Update CLAUDE.md with project architecture and patterns

This commit is contained in:
Manohar Gupta 2026-05-10 13:22:40 +05:30
parent e7411ee31f
commit 5943ab19eb

100
CLAUDE.md
View file

@ -1,34 +1,92 @@
# AI Integration Debugging Guide # CLAUDE.md
## Problem: "Invalid model name" This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Commands
```bash ```bash
# Check available models # Development
curl -s "https://llm.manohargupta.com/v1/models" \ pnpm dev # Start dev server at http://localhost:3000
-H "Authorization: Bearer sk-tiger-gateway-..." pnpm build # Production build
pnpm start # Start production server
# Database (drizzle)
pnpm db:push # Push schema to database
pnpm db:generate # Generate drizzle types
pnpm db:studio # Open DB studio (or use direct SQL)
# Docker
docker-compose -f docker-compose.dev.yml up -d # Start local Postgres
``` ```
Use model name from response: `minimax-2.7` (not `tiger-minimax`) **Note:** Running from `/Users/manohar_air/MyProjects/Tia/tia` directory.
## Problem: Empty response ## Architecture
Add debug logging and check server health: ### Tech Stack
```bash
curl -s "https://llm.manohargupta.com/health" - **Framework:** Next.js 16 with App Router (src/app/)
- **Database:** PostgreSQL 16 with pgvector + Drizzle ORM
- **Auth:** NextAuth v5 (beta) with magic links
- **AI:** LiteLLM gateway → MiniMax model (minimax-2.7)
- **Storage:** Cloudflare R2 for media uploads
- **Styling:** Tailwind CSS v4
### Project Structure
```
src/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes (auth, logs, ai, growth, etc.)
│ ├── page.tsx # Home (Quick Log + AI card)
│ ├── ai/ # AI chat page with sidebar
│ ├── medical/ # Vaccination tracking
│ ├── growth/ # Growth charts
│ ├── memories/ # Photo gallery
│ ├── menu/ # Navigation menu
│ ├── onboarding/ # First-time setup
│ └── login/ # Magic link login
├── libs/ # Shared utilities (if any)
└── styles/ # Global styles
drizzle/ # Database migrations
docs/ # Design docs
``` ```
## Problem: Network errors ### Database
- Use full domain: `https://llm.manohargupta.com` (not internal hostname) - **Migrations:** SQL files in `drizzle/` (not using drizzle-kit push)
- Add `https://` prefix - **Apply:** `psql` directly or via docker-compose exec
- **RLS:** Row-level security for multi-family isolation
## Test Script ### Data Models
```bash - **Family:** Parent account container
curl -s -X POST "https://llm.manohargupta.com/v1/chat/completions" \ - **Members:** Adults in family (mom, dad, etc.)
-H "Content-Type: application/json" \ - **Children:** Baby profiles with birth date
-H "Authorization: Bearer sk-tiger-gateway-YOUR_KEY" \ - **Logs:** Feed, sleep, diaper entries with timestamps
-d '{"model":"minimax-2.7","messages":[{"role":"user","content":"hi"}]}' - **Vaccinations:** IAP schedule tracking
``` - **Growth:** Weight/height over time
- **Memories:** Photos with vision AI tags
See `/docs/debugging.md` for full guide. ### Key Patterns
**Offline Queue:** Uses localStorage (`tia_offline_queue`) for failed API calls, retries when online.
**Chat Sessions:** Stored in localStorage (`tia_chat_sessions`) as array of sessions with messages. Shared between home page AI card and /ai page.
**API Routes:** Return standard JSON `{ entries: [...] }` format for lists.
**AI Integration:**
- Route: `/api/ai` → LiteLLM at `https://llm.manohargupta.com`
- Model: `minimax-2.7`
- See `/docs/debugging.md` for troubleshooting
## Environment Variables
See `.env.example` for all required vars. Key ones:
- `DATABASE_URL` - PostgreSQL connection
- `AUTH_SECRET` - NextAuth secret
- `LITELLM_BASE_URL` - AI gateway URL
- `LITELLM_API_KEY` - AI API key