docs(P01): complete minimal-voice-loop phase
---ci--- phase: 1 milestone: v0.1 status: complete requirements: covered: [REQ-VOICE-01, REQ-VOICE-02, REQ-VOICE-03, REQ-VOICE-04, REQ-SCEN-01, REQ-STATE-01, REQ-LLM-01, REQ-LLM-02, REQ-DEBRIEF-01, REQ-ORCH-01, REQ-ORCH-02, REQ-SCEN-FMT-01, REQ-NFR-LAT-01, REQ-NFR-SAFE-01, REQ-NFR-COST-01] partial: [] ---/ci---
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=68", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "praxis-server"
|
||||
version = "0.1.0"
|
||||
description = "Praxis — voice-first AI apprenticeship platform (v0.1 foundation: minimal viable voice loop)"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
license = { text = "Proprietary" }
|
||||
authors = [{ name = "Praxis v0.1 (CIAgent)" }]
|
||||
|
||||
dependencies = [
|
||||
# Orchestration — Pipecat (D-017) with the three native service extras + WebRTC transport
|
||||
"pipecat-ai[deepgram,cartesia,piper,webrtc]>=1.6.0",
|
||||
# LLM access — Ollama Cloud direct API (D-020). Pipecat's OLLamaLLMService uses the
|
||||
# OpenAI-compatible client; we point base_url at https://ollama.com/v1 + bearer key.
|
||||
"openai>=1.40",
|
||||
# Scenario format — YAML DSL → Pydantic (D-018)
|
||||
"pydantic>=2.7",
|
||||
"pyyaml>=6.0",
|
||||
# Learner state — SQLite (D-007), async access
|
||||
"aiosqlite>=0.20",
|
||||
# Config
|
||||
"python-dotenv>=1.0",
|
||||
# Latency probes — HTTP client for the integrated e2e probe
|
||||
"httpx>=0.27",
|
||||
"websockets>=12.0",
|
||||
# Audio probe fixture generation (synthesized PCM) for the ASR probe
|
||||
"numpy>=1.26",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pytest>=8.0",
|
||||
"pytest-asyncio>=0.23",
|
||||
"pytest-cov>=5.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
praxis-server = "server.__main__:main"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["."]
|
||||
include = ["server*", "db*", "scenarios*"]
|
||||
exclude = ["client*", "tests*", "scripts*"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
asyncio_mode = "auto"
|
||||
testpaths = ["tests"]
|
||||
python_files = ["test_*.py"]
|
||||
addopts = "-ra -q"
|
||||
|
||||
[tool.coverage.run]
|
||||
source = ["server", "db"]
|
||||
Reference in New Issue
Block a user