From df53903cebecd208d1b2168d00f491c5ba1216ff Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 28 May 2026 10:22:03 -0500 Subject: [PATCH] feat: scaffold project structure Add pyproject.toml, pytest.ini, .env.example, app package layout (shared/pipeline/api/cron), and test skeleton. Co-Authored-By: Claude Sonnet 4.6 --- .env.example | 12 ++++++++++++ app/__init__.py | 0 app/api/__init__.py | 0 app/api/routes/__init__.py | 0 app/cron/__init__.py | 0 app/pipeline/__init__.py | 0 app/shared/__init__.py | 0 pyproject.toml | 33 +++++++++++++++++++++++++++++++++ pytest.ini | 3 +++ tests/__init__.py | 0 tests/routes/__init__.py | 0 11 files changed, 48 insertions(+) create mode 100644 .env.example create mode 100644 app/__init__.py create mode 100644 app/api/__init__.py create mode 100644 app/api/routes/__init__.py create mode 100644 app/cron/__init__.py create mode 100644 app/pipeline/__init__.py create mode 100644 app/shared/__init__.py create mode 100644 pyproject.toml create mode 100644 pytest.ini create mode 100644 tests/__init__.py create mode 100644 tests/routes/__init__.py diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..c9b8238 --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +DB_PATH=/data/linkedstorm.db +CLIPS_DIR=/data/clips +SPEACHES_URL=http://192.168.86.150:8000 +OLLAMA_URL=http://192.168.86.150:11434 +OLLAMA_MODEL=qwen2.5:14b +LIVEKIT_URL=ws://192.168.86.150:7880 +LIVEKIT_API_KEY=devkey +LIVEKIT_API_SECRET=devsecret +PIPELINE_INTERNAL_URL=http://linkedstorm-pipeline:8300 +CLIP_RETENTION_DAYS=30 +SPEAKER_KNOWN_THRESHOLD=0.85 +SPEAKER_AMBIGUOUS_THRESHOLD=0.60 diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/__init__.py b/app/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/routes/__init__.py b/app/api/routes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/cron/__init__.py b/app/cron/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/pipeline/__init__.py b/app/pipeline/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/shared/__init__.py b/app/shared/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0e8a9ee --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,33 @@ +[build-system] +requires = ["setuptools>=68"] +build-backend = "setuptools.backends.legacy:build" + +[project] +name = "linkedstorm" +version = "0.1.0" +requires-python = ">=3.12" +dependencies = [ + "fastapi==0.115.0", + "uvicorn[standard]==0.30.6", + "pydantic-settings==2.4.0", + "httpx==0.27.2", + "websockets==13.1", + "resemblyzer==0.1.1.dev0", + "silero-vad==5.1.2", + "torch==2.4.1", + "numpy==1.26.4", + "livekit-api==0.7.2", + "scipy==1.14.1", +] + +[project.optional-dependencies] +dev = [ + "pytest==8.3.3", + "pytest-asyncio==0.24.0", + "pytest-mock==3.14.0", + "httpx==0.27.2", +] + +[tool.setuptools.packages.find] +where = ["."] +include = ["app*"] diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..78c5011 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +asyncio_mode = auto +testpaths = tests diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/routes/__init__.py b/tests/routes/__init__.py new file mode 100644 index 0000000..e69de29