Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "tera-pilot"
version = "2.5.0"
description = """\
Tera Pilot v2.5.0 — TUI-first, local-first coding agent with multi-provider support, MCP,
multi-agent Heavy Code mode, Office Worker section, controlled backend integrations, optional
Rust native acceleration (sandbox / circuit breaker / compaction / interjection),
v2 agent runtime (asyncio ChatStateActor + three-tier compaction + sub-agent
v2 with toolset-level read-only guarantee), multi-provider consensus engine
(G15), signed Ed25519 audit trail (G16), automatic learning loop (G17),
web search/fetch with a read-only 'researcher' subagent role (G18), and a
browser-based Web UI served by a plain HTTP server (replaces the legacy
PySide6 / QWebEngineView desktop GUI)."""
readme = "README.md"
license = { file = "LICENSE" }
authors = [
    { name = "Tera Pilot Contributors" }
]
keywords = [
    "ai", "ide", "agent", "llm", "tera-pilot",
    "macos", "apple-silicon",
    "rust", "pyo3", "sandbox", "landlock",
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Topic :: Software Development :: Code Generators",
    "Topic :: Software Development :: IDEs",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Rust",
    "Operating System :: MacOS :: MacOS X",
    "Operating System :: POSIX :: Linux",
    "Environment :: Web Environment",
]
requires-python = ">=3.11"

dependencies = [
    # v2.2.4: GUI is served by a plain HTTP server (tera_pilot.web_server).
    # No Qt / PySide6 dependency — point a browser at the printed URL.
    # Utils
    "pydantic>=2.7.0",
    "toml>=0.10.2",
    "pyyaml>=6.0",
    "pygments>=2.18.0",
    "rich>=13.7.0",
    # Office Worker section — built-from-scratch Python wrapper over docx/xlsx/pptx
    "python-docx>=1.1.0",
    "openpyxl>=3.1.0",
    "python-pptx>=0.6.23",
    # v2.0: cryptography for EncryptedPromptStore (ChaCha20-Poly1305).
    # Optional — falls back to XOR if not installed (loud warning logged).
    "cryptography>=42.0.0",
    # HTTP client (used by providers, daemon, web search)
    "requests>=2.31.0",
    "aiohttp>=3.9.0",
    # AI provider SDKs
    "anthropic>=0.28.0",
    "openai>=1.30.0",
    "groq>=0.9.0",
    # TUI (Textual framework)
    "textual>=0.60.0",
]

[project.optional-dependencies]
# v2.2.0: the macOS optional group is now empty — the transparent-titlebar
# styling was a Qt/Cocoa feature that no longer applies. Kept as an empty
# list so existing `pip install tera-pilot[macos]` invocations don't error.
macos = []
# v2.0: optional Rust native acceleration. When installed (via maturin),
# `tera_pilot_native` extension is available and used automatically by
# `tera_pilot.agent.native`. Without it, pure-Python fallbacks are used.
native = [
    # Built and installed via maturin from tera-pilot-native/pyo3/.
    # We don't ship a wheel here — users build it themselves:
    #   cd tera-pilot-native && maturin develop --release
    # (Listing maturin as a dev dependency instead.)
]
dev = [
    "pytest>=8.0",
    "pytest-asyncio>=0.23",
    "black>=24.0",
    "mypy>=1.10",
    # v2.0: for building the Rust native extension.
    "maturin>=1.7.0",
]

[project.urls]
Homepage = "https://github.com/ilyaosovskoi/tera-pilot"
Repository = "https://github.com/ilyaosovskoi/tera-pilot"
Issues = "https://github.com/ilyaosovskoi/tera-pilot/issues"
Documentation = "https://github.com/ilyaosovskoi/tera-pilot#readme"

[project.scripts]
tera-pilot = "tera_pilot.cli:main"
tera-pilot-tui = "tera_pilot_tui.__main__:main"
# v2.0: ACP server entry point (for IDE integration via Agent Client Protocol).
tera-pilot-acp = "tera_pilot.agent.acp_server:cli_main"
# v2.0: Remote agent daemon — run tasks on server with HTTP API + SSE + messengers.
tera-pilot-daemon = "tera_pilot.daemon:main"
# v2.5.0: IDE bridge server for editor extensions (localhost, token auth).
tera-pilot-bridge = "tera_pilot.ide_bridge:main"

[tool.pytest.ini_options]
# The eval/ directory ships clean-copy fixture repos whose test_*.py
# files are workspace-local (they import modules that only exist inside
# the task's own repo) — never collect them as project tests.
testpaths = ["tests"]

[tool.setuptools.packages.find]
include = ["tera_pilot*", "tera_pilot_tui*"]

[tool.setuptools.package-data]
tera_pilot = [
    "assets/*", "assets/**/*",
    "web/*", "web/**/*",
    "skills/*", "skills/**/*",
    "agent/templates/*",
]
tera_pilot_tui = [
    "*.tcss",
    "backend_report_schema.json",
]

# ── py2app configuration for .dmg builds (DISABLED in v2.2.0) ───────────
# The Qt / PySide6 desktop GUI was removed in v2.2.0 — py2app packaging
# is no longer applicable. The Web UI ships as plain HTML/CSS/JS served
# by tera_pilot.web_server, so no special packaging is needed.
# [tool.py2app]
# app = ["tera_pilot/__main__.py"]
# iconfile = "assets/logo.icns"
# bundle-identifier = "io.tera_pilot.app"
# name = "Tera Pilot"
# version = "2.4.1"
# excludes = ["tkinter", "test", "tests", "unittest"]
# resources = ["assets", "tera_pilot/web"]
# plist-file = "Info.plist"