| 1 | """ |
| 2 | nanobot - A lightweight AI agent framework |
| 3 | """ |
| 4 | |
| 5 | import tomllib |
| 6 | from importlib.metadata import PackageNotFoundError |
| 7 | from importlib.metadata import version as _pkg_version |
| 8 | from pathlib import Path |
| 9 | |
| 10 | |
| 11 | def _read_pyproject_version() -> str | None: |
| 12 | """Read the source-tree version when package metadata is unavailable.""" |
| 13 | pyproject = Path(__file__).resolve().parent.parent / "pyproject.toml" |
| 14 | if not pyproject.exists(): |
| 15 | return None |
| 16 | data = tomllib.loads(pyproject.read_text(encoding="utf-8")) |
| 17 | return data.get("project", {}).get("version") |
| 18 | |
| 19 | |
| 20 | def _resolve_version() -> str: |
| 21 | try: |
| 22 | return _pkg_version("echo-director-agent") |
| 23 | except PackageNotFoundError: |
| 24 | # Source checkouts often import nanobot without installed dist-info. |
| 25 | return _read_pyproject_version() or "0.1.5.post2" |
| 26 | |
| 27 | |
| 28 | __version__ = _resolve_version() |
| 29 | __logo__ = "🐈" |
| 30 | |
| 31 | from nanobot.nanobot import Nanobot, RunResult # noqa: E402 |
| 32 | |
| 33 | __all__ = ["Nanobot", "RunResult"] |
| 34 |