chore: scaffold clm package and tooling
This commit is contained in:
1 parent
91e03d0916
commit
99aabadb4b
9 files changed
+124
No files matched your search
+14
@@ -0,0 +1,14 @@
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
.venv/
|
||||
dist/
|
||||
*.egg-info/
|
||||
.pytest_cache/
|
||||
.mypy_cache/
|
||||
.ruff_cache/
|
||||
.coverage
|
||||
htmlcov/
|
||||
.clm/sessions/
|
||||
.clm/manifests/
|
||||
*.jsonl
|
||||
.DS_Store
|
||||
@@ -0,0 +1,30 @@
|
||||
# CLM — Context Lifecycle Management
|
||||
|
||||
Automated Context Lifecycle Management for LLM Agents.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python ≥ 3.12
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
uv venv && source .venv/bin/activate
|
||||
uv pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## CLI
|
||||
|
||||
```bash
|
||||
clm --help
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
pytest
|
||||
```
|
||||
|
||||
## Version
|
||||
|
||||
`0.1.0a1` (MVP alpha)
|
||||
@@ -0,0 +1,46 @@
|
||||
[project]
|
||||
name = "clm"
|
||||
version = "0.1.0a1"
|
||||
description = "Automated Context Lifecycle Management for LLM Agents"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = [
|
||||
"pydantic>=2.7",
|
||||
"pydantic-settings>=2.3",
|
||||
"typer>=0.12",
|
||||
"rich>=13.7",
|
||||
"pyyaml>=6.0",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pytest>=8.2",
|
||||
"pytest-cov>=5.0",
|
||||
"ruff>=0.5",
|
||||
"mypy>=1.10",
|
||||
"types-PyYAML>=6.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
clm = "clm.cli.app:app"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/clm"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests"]
|
||||
pythonpath = ["src"]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 100
|
||||
target-version = "py312"
|
||||
|
||||
[tool.mypy]
|
||||
python_version = "3.12"
|
||||
strict = true
|
||||
packages = ["clm"]
|
||||
mypy_path = "src"
|
||||
@@ -0,0 +1,3 @@
|
||||
"""CLM — Context Lifecycle Management for LLM Agents."""
|
||||
|
||||
__version__ = "0.1.0a1"
|
||||
Whitespace-only changes.
@@ -0,0 +1,14 @@
|
||||
"""CLI entry point for CLM."""
|
||||
|
||||
import typer
|
||||
|
||||
app = typer.Typer(
|
||||
name="clm",
|
||||
help="Context Lifecycle Management for LLM Agents",
|
||||
no_args_is_help=True,
|
||||
)
|
||||
|
||||
|
||||
@app.callback()
|
||||
def main() -> None:
|
||||
"""Context Lifecycle Management for LLM Agents."""
|
||||
Whitespace-only changes.
@@ -0,0 +1,12 @@
|
||||
from pathlib import Path
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def tmp_clm_home(tmp_path: Path) -> Path:
|
||||
home = tmp_path / ".clm"
|
||||
(home / "memory" / "topics").mkdir(parents=True)
|
||||
(home / "memory" / "logs").mkdir(parents=True)
|
||||
(home / "sessions").mkdir(parents=True)
|
||||
(home / "manifests").mkdir(parents=True)
|
||||
return home
|
||||
@@ -0,0 +1,5 @@
|
||||
import clm
|
||||
|
||||
|
||||
def test_version():
|
||||
assert clm.__version__ == "0.1.0a1"
|
||||
Reference in new issue
Block a user