forked from enderofwings/NexusOS
feat: add portable NexusOS CLI and packaging
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
[build-system]
|
||||
requires = ["hatchling>=1.26"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "nexusos-ai"
|
||||
dynamic = ["version"]
|
||||
description = "Local-first AI assistant runtime, web UI, and portable CLI"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11"
|
||||
authors = [{name = "EnderOfWings"}]
|
||||
keywords = ["ai", "assistant", "ollama", "local-ai", "termux"]
|
||||
classifiers = [
|
||||
"Development Status :: 4 - Beta",
|
||||
"Environment :: Console",
|
||||
"Framework :: FastAPI",
|
||||
"Operating System :: Android",
|
||||
"Operating System :: Microsoft :: Windows",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Topic :: Communications :: Chat",
|
||||
]
|
||||
dependencies = [
|
||||
"fastapi>=0.115,<1",
|
||||
"httpx>=0.27,<1",
|
||||
"pydantic>=2.7,<3",
|
||||
"python-dotenv>=1,<2",
|
||||
"PyYAML>=6,<7",
|
||||
"uvicorn>=0.30,<1",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
documents = ["pypdf>=5,<7", "python-docx>=1.1,<2"]
|
||||
process = ["psutil>=5.9,<8"]
|
||||
vector = ["sqlite-vec>=0.1,<1"]
|
||||
voice = ["faster-whisper>=1.1,<2"]
|
||||
mail = ["imap-tools>=1.7,<2"]
|
||||
desktop = [
|
||||
"psutil>=5.9,<8",
|
||||
"pywebview>=5,<7; platform_system == 'Windows'",
|
||||
]
|
||||
standard = [
|
||||
"pypdf>=5,<7",
|
||||
"python-docx>=1.1,<2",
|
||||
"psutil>=5.9,<8",
|
||||
"sqlite-vec>=0.1,<1",
|
||||
]
|
||||
dev = [
|
||||
"build>=1.2,<2",
|
||||
"pytest>=8,<10",
|
||||
"twine>=7,<8",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
nexus = "management.cli:entrypoint"
|
||||
ncp = "management.cli:entrypoint"
|
||||
nexusos = "management.cli:entrypoint"
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://git.enderofwings.com/enderofwings/NexusOS"
|
||||
Issues = "https://git.enderofwings.com/enderofwings/NexusOS/issues"
|
||||
Repository = "https://git.enderofwings.com/enderofwings/NexusOS"
|
||||
|
||||
[tool.hatch.version]
|
||||
path = "VERSION"
|
||||
pattern = "^(?P<version>[^\\s]+)$"
|
||||
|
||||
[tool.hatch.build]
|
||||
skip-excluded-dirs = true
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["synapse", "management"]
|
||||
|
||||
[tool.hatch.build.targets.wheel.force-include]
|
||||
"VERSION" = "synapse/_resources/VERSION"
|
||||
"interface/web/dist" = "synapse/_resources/web"
|
||||
"data/playbooks" = "synapse/_resources/playbooks"
|
||||
"assets/n-small.png" = "synapse/_resources/assets/n-small.png"
|
||||
"assets/themes/NexusOS-icons-src/nexus-underlay.svg" = "synapse/_resources/assets/themes/NexusOS-icons-src/nexus-underlay.svg"
|
||||
"assets/themes/NexusOS-icons-src/nexus-underlay-ring.svg" = "synapse/_resources/assets/themes/NexusOS-icons-src/nexus-underlay-ring.svg"
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = [
|
||||
"/assets/n-small.png",
|
||||
"/assets/themes/NexusOS-icons-src/nexus-underlay.svg",
|
||||
"/assets/themes/NexusOS-icons-src/nexus-underlay-ring.svg",
|
||||
"/data/playbooks",
|
||||
"/docs",
|
||||
"/interface/web/dist",
|
||||
"/management",
|
||||
"/scripts",
|
||||
"/synapse",
|
||||
"/tests",
|
||||
"/README.md",
|
||||
"/VERSION",
|
||||
"/pyproject.toml",
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.sdist.force-include]
|
||||
"interface/web/dist" = "interface/web/dist"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests", "management"]
|
||||
Reference in New Issue
Block a user