generated from coulomb/repo-seed
WP-0001 — Foundation & GAAF Baseline - SCOPE.md, ARCHITECTURE-LAYERS.md, contracts/ tree - .claude/rules/ stubs filled (architecture, stack, boundary) - 57 tests (pytest), pyproject.toml with ruff+mypy, CI workflow WP-0002 — Core Extensions (FR-4 + FR-3) - FR-4: BudgetTracker (thread-safe) + LLMBudgetExceededError + optional RunConfig.budget_tracker + enforcement in all adapters - FR-3: async_execute_prompt on LLMAdapter ABC (asyncio.to_thread fallback) + native asyncio.create_subprocess_exec in ClaudeCodeAdapter 81 tests passing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
## Stack
|
|
|
|
- **Language:** Python 3.10+
|
|
- **Key deps (runtime):** `toml` (TOML config parsing)
|
|
- **Key deps (dev):** `pytest`, `ruff`, `mypy`
|
|
- **HTTP:** stdlib `urllib` via `_http.py` (no requests/httpx runtime dep)
|
|
- **Build:** setuptools / uv
|
|
|
|
## Dev Commands
|
|
|
|
```bash
|
|
# Install (editable, with dev extras)
|
|
uv pip install -e ".[dev]"
|
|
# or
|
|
pip install -e ".[dev]"
|
|
|
|
# Run tests
|
|
uv run pytest
|
|
# or
|
|
pytest
|
|
|
|
# Lint
|
|
uv run ruff check .
|
|
|
|
# Type check
|
|
uv run mypy llm_connect
|
|
|
|
# Run a single test file
|
|
uv run pytest tests/test_models.py -v
|
|
|
|
# Build package (dry run)
|
|
uv build --no-sources
|
|
```
|
|
|
|
## Project layout
|
|
|
|
```
|
|
llm_connect/ source package
|
|
adapter.py LLMAdapter ABC + Mock/ErrorLLMAdapter
|
|
models.py RunConfig, LLMResponse
|
|
exceptions.py LLMError hierarchy
|
|
factory.py create_adapter()
|
|
openai.py OpenAIAdapter
|
|
gemini.py GeminiAdapter
|
|
openrouter.py OpenRouterAdapter
|
|
claude_code.py ClaudeCodeAdapter
|
|
embedding_adapter.py EmbeddingAdapter ABC
|
|
embedding_openai.py OpenAICompatibleEmbeddingAdapter
|
|
embedding_cache.py EmbeddingCache
|
|
embedding_factory.py create_embedding_adapter()
|
|
toml_config.py 7-level TOML config resolution
|
|
config.py LLMConfig, resolve_api_key, find_project_root
|
|
_http.py shared HTTP POST utility
|
|
_token_estimator.py rough token count estimate
|
|
similarity.py cosine similarity utilities
|
|
tests/ pytest test suite
|
|
contracts/ GAAF-2026 contract docs
|
|
workplans/ workplan files (LLM-WP-NNNN)
|
|
```
|