Port fristhon/telminal (MIT) into the aurelio monorepo as a self-hosted Telegram shell bot for the fleet gateway (CT-217). - telminal/ package: config (env + state file, refuses empty admins), core orchestrator (event handlers, router, watchers, interactive mode, file up/download, xterm.js image render), process (pexpect PTY + streaming + inline control buttons), telegram (Telethon wrapper, swappable for tests), cli (entry point reading TELEGRAM_* env), utils, values. - aurelio hardening vs upstream: no first-run random token auth (explicit admin allowlist required); cd sandbox validated against working root; secrets from env mirroring the CT-217 gateway .env. - 35 real tests (pty capture/control-char, router, watchers, perms, sandbox, fake-client orchestration) -- all green. - deployment: systemd/telminal.service, .env.example entries, README, AGENTS.md. Verified: pytest 35 passed; CLI refuses start with missing env / no admins.
28 lines
716 B
TOML
28 lines
716 B
TOML
[build-system]
|
|
requires = ["setuptools>=61.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "telminal"
|
|
version = "1.0.0"
|
|
description = "A Terminal in Telegram — run a sandboxed shell on the aurelio fleet from Telegram."
|
|
readme = "README.md"
|
|
license = { text = "MIT" }
|
|
requires-python = ">=3.9"
|
|
authors = [{ name = "fristhon (original), Portugal Futurista (aurelio port)" }]
|
|
keywords = ["telegram", "terminal", "pty", "bot", "aurelio"]
|
|
dependencies = [
|
|
"telethon>=1.24",
|
|
"pexpect>=4.8",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
image = ["pyppeteer>=0.2.6"]
|
|
dev = ["pytest>=7.0"]
|
|
|
|
[project.scripts]
|
|
telminal = "telminal.cli:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["telminal*"]
|