mirror of
https://github.com/zvx-echo6/meshai.git
synced 2026-08-26 17:31:34 +00:00
Audit confirmed the Rich TUI (`meshai --config`) is a strict subset of the dashboard GUI (covers FEWER sections) and nothing depends on it for bootstrap. Strip it so the dashboard is the single config surface. - delete meshai/cli/configurator.py (~1435 lines); cli/__init__ minimal - main.py: drop --config + run_configurator dispatch (keep --config-file); bootstrap log now points to config.example.yaml / the dashboard - docker-entrypoint.sh: remove the ttyd `meshai --config` block on :7682 (default-config heredoc + bot exec loop untouched) - docker-compose.yml + Dockerfile: drop the 7682 port + ttyd install (EXPOSE 8080) - README / config.py header / config.example.yaml: de-reference the TUI - drop `rich` from pyproject + requirements (grep-verified unused) Close the only GUI config gap the audit found: - Config.tsx weather tab: add openmeteo.url + wttr.url inputs (backend already round-trips the nested WeatherConfig dataclasses) Bootstrap intact: config.example.yaml copy, entrypoint default-config write, and defaulted Config() when no file exists all remain. `python3 -m meshai` and `--config-file` unchanged. TS/import validated at Docker build. Co-authored-by: Matt Johnson <mj@k7zvx.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
71 lines
1.7 KiB
TOML
71 lines
1.7 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "meshai"
|
|
version = "0.1.0"
|
|
description = "LLM-powered Meshtastic mesh network assistant"
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
requires-python = ">=3.10"
|
|
authors = [
|
|
{name = "K7ZVX", email = "matt@echo6.co"}
|
|
]
|
|
keywords = ["meshtastic", "llm", "mesh", "lora", "chatbot"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: End Users/Desktop",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Communications",
|
|
]
|
|
|
|
dependencies = [
|
|
"meshtastic>=2.3.0",
|
|
"meshcore>=2.3.7",
|
|
"pyyaml>=6.0",
|
|
"aiosqlite>=0.19.0",
|
|
"openai>=1.0.0",
|
|
"anthropic>=0.18.0",
|
|
"google-genai>=1.0.0",
|
|
"httpx>=0.25.0",
|
|
"fastapi>=0.110.0",
|
|
"uvicorn[standard]>=0.27.0",
|
|
"aiomqtt>=2.0.0",
|
|
"nats-py>=2.0.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.0.0",
|
|
"pytest-asyncio>=0.21.0",
|
|
"black>=23.0.0",
|
|
"ruff>=0.1.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
meshai = "meshai.main:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/zvx-echo6/meshai"
|
|
Repository = "https://github.com/zvx-echo6/meshai"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["meshai*"]
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
target-version = ["py310"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310"
|
|
select = ["E", "F", "I", "N", "W", "UP"]
|