From 94af6fca13ab8c5e38c545a3ba9d50fe848b7fe7 Mon Sep 17 00:00:00 2001 From: LUIS NOVO Date: Sat, 18 Oct 2025 14:10:31 -0300 Subject: [PATCH] remove: claude --- .claude/CLAUDE.md | 140 ------------------------------------ .claude/commands/quality.md | 4 -- 2 files changed, 144 deletions(-) delete mode 100644 .claude/CLAUDE.md delete mode 100644 .claude/commands/quality.md diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md deleted file mode 100644 index 4fd01cf..0000000 --- a/.claude/CLAUDE.md +++ /dev/null @@ -1,140 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview - -Open Notebook is an open-source, privacy-focused alternative to Google's Notebook LM. It's a research assistant that allows users to manage research, generate AI-assisted notes, and interact with content through Streamlit UI and REST API, backed by SurrealDB. - -## Development Commands - -### Environment Setup -```bash -# Copy environment templates -cp .env.example .env -cp .env.example docker.env - -# Install dependencies -uv sync -uv pip install python-magic -``` - -### Running the Application -```bash -# Start SurrealDB (required) -make database -# or: docker compose up -d surrealdb - -# Start API backend (port 5055) -make api -# or: uv run run_api.py -# or: uv run --env-file .env uvicorn api.main:app --host 0.0.0.0 --port 5055 - -# Start Streamlit UI (port 8502) -make run -# or: uv run --env-file .env streamlit run app_home.py -``` - -### Code Quality -```bash -# Run linter with auto-fix -make ruff -# or: ruff check . --fix - -# Run type checking -make lint -# or: uv run python -m mypy . -``` - -### Docker Commands -```bash -# Full stack deployment -docker compose --profile multi up - -# Build multi-platform image -make docker-build - -# Release with version tag -make docker-release -``` - -## Architecture Overview - -### Three-Layer Architecture -1. **Frontend**: Streamlit UI (`app_home.py` and `/pages/`) -2. **API**: FastAPI backend (`/api/`) on port 5055 -3. **Database**: SurrealDB graph database - -### Key Directories -- `/open_notebook/domain/`: Domain models (notebook, models, transformation) -- `/open_notebook/graphs/`: LangGraph processing (chat, ask, source, transformation) -- `/open_notebook/database/`: SurrealDB repository pattern -- `/api/`: REST API endpoints -- `/pages/`: Streamlit UI pages -- `/migrations/`: Database migrations - -### Data Storage -- `/data/uploads/`: User-uploaded files -- `/data/podcasts/`: Generated podcasts -- `/data/sqlite-db/`: LangGraph checkpoints -- `/surreal_data/`: SurrealDB files - -## AI Provider Integration - -The project uses the Esperanto library for multi-provider AI support: -- Language models: OpenAI, Anthropic, Google, Groq, Ollama, Mistral, DeepSeek, xAI, OpenRouter -- Embeddings: OpenAI, Google, Ollama, Mistral, Voyage -- Speech: OpenAI, Groq, ElevenLabs, Google TTS - -Model configuration is centralized through `ModelManager` class in `/open_notebook/domain/models.py`. - -## Database Operations - -Uses SurrealDB with async operations: -```python -# Create record -await repo_create(table: str, data: dict) - -# Upsert (merge) record -await repo_upsert(table: str, record_id: Union[str, RecordID], data: dict) - -# Query -await repo_query("SELECT * FROM table WHERE field = $value", {"value": "example"}) - -# Delete -await repo_delete(record_id) -``` - -### Database Migrations - -Database schema migrations run **automatically** when the API starts up. The migration system: -- Uses `AsyncMigrationManager` from `/open_notebook/database/async_migrate.py` -- Runs in the FastAPI `lifespan` event handler in `/api/main.py` -- Checks current database version against available migrations in `/migrations/` -- Executes pending migrations sequentially on startup -- Tracks migration state in the `_sbl_migrations` table -- Fails fast if migrations encounter errors (preventing API startup with outdated schema) - -**Important**: Database migrations are now handled by the API. The Streamlit UI migration check (`pages/stream_app/utils.py:check_migration()`) is deprecated and does nothing. Always ensure the API is running before using the React frontend or Streamlit UI. - -**Troubleshooting**: -- If the API fails to start, check logs for migration errors -- Verify SurrealDB is running: `docker compose ps surrealdb` -- Check database connection settings in `.env` -- Migration files must exist in `/migrations/` directory -- For manual migration rollback, use down migration files (not automated) - -## Content Processing Pipeline - -1. Content ingestion (files, URLs, text) via `/open_notebook/graphs/source.py` -2. Text extraction using Content-Core library -3. Embedding generation for semantic search -4. Transformation workflows in `/open_notebook/graphs/transformation.py` - -## Testing Approach - -Check README or search codebase for test configuration before running tests. The project uses `uv` for all Python operations. - -## API Documentation - -Interactive API docs available at http://localhost:5055/docs when API is running. Comprehensive endpoints for notebooks, sources, notes, search, models, transformations, and embeddings. \ No newline at end of file diff --git a/.claude/commands/quality.md b/.claude/commands/quality.md deleted file mode 100644 index 8598731..0000000 --- a/.claude/commands/quality.md +++ /dev/null @@ -1,4 +0,0 @@ - -Please run the linter on the @frontend/ app - -And run ruff on the python files. \ No newline at end of file