Skip to content

Commit 140eff3

Browse files
committed
Remove legacy install extras
Drop AbstractGateway's compatibility-only extras (http/server/etc) so the supported install surface is just base, apple, and gpu. Update docs + install-profile tests and regenerate llms-full.
1 parent a379b0c commit 140eff3

7 files changed

Lines changed: 52 additions & 108 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed
11+
12+
- Removed legacy compatibility install extras (`abstractgateway[http]`, `[server]`, `[multimodal]`, `[memory]`, `[voice]`, `[vision]`, `[telegram]`, `[visualflow]`, `[all]`, `[all-apple]`, `[all-gpu]`, `[server-nvidia]`). The supported install surface is now:
13+
- `pip install abstractgateway`
14+
- `pip install "abstractgateway[apple]"`
15+
- `pip install "abstractgateway[gpu]"`
16+
1017
## [0.2.20] - 2026-05-26
1118

1219
### Added

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,6 @@ pip install abstractgateway
200200

201201
- `abstractgateway[apple]`: full native macOS Python profile with Apple-local engines and all non-NVIDIA framework capabilities
202202
- `abstractgateway[gpu]`: full local GPU profile with vLLM/HuggingFace, local Diffusers image generation, local voice engines, music, and KG memory; this is also the NVIDIA Docker install profile
203-
- `abstractgateway[server]`, `[http]`, `[multimodal]`, `[memory]`, `[voice]`, `[vision]`, and `[all]`: compatibility aliases; the base package already includes the remote-light server stack
204-
- `abstractgateway[server-nvidia]`: compatibility alias for the GPU profile used by older NVIDIA Docker commands
205-
- `abstractgateway[telegram]` and `[visualflow]`: compatibility aliases; Telegram bridge and VisualFlow publishing use base install dependencies
206203
- `abstractgateway[docs]`: MkDocs site tooling
207204
- `abstractgateway[dev]`: local test/dev deps
208205

docs/configuration.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ compatibility (runs bundles produced by AbstractFlow; does not require the `abst
1212
Optional extras (see `pyproject.toml`):
1313
- `abstractgateway[apple]`: full native macOS Python profile with Apple-local engines and all non-NVIDIA framework capabilities; this is for native macOS, not Docker
1414
- `abstractgateway[gpu]`: full native/container GPU profile with local GPU engines and all relevant framework capabilities; the NVIDIA Docker image uses this profile
15-
- `abstractgateway[http]`, `[server]`, `[multimodal]`, `[memory]`, `[voice]`, `[vision]`, `[all]`: compatibility aliases because the base install now includes the remote-light server stack
16-
- `abstractgateway[server-nvidia]`: compatibility alias for the GPU profile used by older NVIDIA Docker commands
17-
- `abstractgateway[visualflow]`: deprecated compatibility alias (VisualFlow directory mode was removed; does nothing)
18-
- `abstractgateway[telegram]`: compatibility alias; Telegram bridge support uses base install dependencies
1915
- `abstractgateway[docs]`: MkDocs site tooling
2016
- `abstractgateway[dev]`: local dev/test deps
2117

@@ -200,14 +196,14 @@ and hybrid runtimes report `prompt_cache_local_only`.
200196

201197
### Multimodal provider/plugin controls
202198

203-
The `server`, `multimodal`, and `all` extras install the lightweight AbstractCore
204-
plugin surface for generated images, generated videos, generated voice, STT, and music
205-
capabilities. Voice generation, transcription, generated images, and generated
206-
music have direct Gateway endpoints; generated images are also exposed through
207-
Runtime/Core workflows and through `POST /api/gateway/runs/{run_id}/images/generate`
208-
and `POST /api/gateway/runs/{run_id}/images/edit` when a Runtime/Core image
209-
backend is configured or provider/model are supplied on the request. Local
210-
heavy engines remain explicit opt-ins in the provider packages.
199+
The base install already includes the Gateway HTTP/SSE server and the Runtime
200+
multimodal integration layer. Direct Gateway routes for voice/audio, image/video,
201+
and music become available when the corresponding lower-layer capability
202+
packages are installed on the gateway host (or when Gateway is configured to
203+
proxy to a remote AbstractCore server).
204+
205+
Local heavy engines remain explicit opt-ins in the provider packages; Gateway
206+
does not implicitly install them.
211207

212208
- `output.text` capability route: default text model for bundle LLM nodes
213209
- `OPENAI_COMPATIBLE_BASE_URL` / `OPENAI_COMPATIBLE_API_KEY`: OpenAI-compatible text endpoint for AbstractCore providers

docs/getting-started.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ pip install "abstractgateway[apple]"
3838
pip install "abstractgateway[gpu]"
3939
```
4040

41-
Compatibility extras such as `abstractgateway[http]`, `[server]`, `[memory]`,
42-
`[multimodal]`, `[voice]`, `[vision]`, and `[all]` remain accepted, but the
43-
base install already contains the remote-light server stack.
44-
4541
With the base install and a configured provider stack, Gateway can surface
4642
run-scoped direct TTS, STT, image generation, image edit, and music generation
4743
for higher apps through one shared capability contract.

llms-full.txt

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,6 @@ pip install abstractgateway
210210

211211
- `abstractgateway[apple]`: full native macOS Python profile with Apple-local engines and all non-NVIDIA framework capabilities
212212
- `abstractgateway[gpu]`: full local GPU profile with vLLM/HuggingFace, local Diffusers image generation, local voice engines, music, and KG memory; this is also the NVIDIA Docker install profile
213-
- `abstractgateway[server]`, `[http]`, `[multimodal]`, `[memory]`, `[voice]`, `[vision]`, and `[all]`: compatibility aliases; the base package already includes the remote-light server stack
214-
- `abstractgateway[server-nvidia]`: compatibility alias for the GPU profile used by older NVIDIA Docker commands
215-
- `abstractgateway[telegram]` and `[visualflow]`: compatibility aliases; Telegram bridge and VisualFlow publishing use base install dependencies
216213
- `abstractgateway[docs]`: MkDocs site tooling
217214
- `abstractgateway[dev]`: local test/dev deps
218215

@@ -357,10 +354,6 @@ pip install "abstractgateway[apple]"
357354
pip install "abstractgateway[gpu]"
358355
```
359356

360-
Compatibility extras such as `abstractgateway[http]`, `[server]`, `[memory]`,
361-
`[multimodal]`, `[voice]`, `[vision]`, and `[all]` remain accepted, but the
362-
base install already contains the remote-light server stack.
363-
364357
With the base install and a configured provider stack, Gateway can surface
365358
run-scoped direct TTS, STT, image generation, image edit, and music generation
366359
for higher apps through one shared capability contract.
@@ -1736,10 +1729,6 @@ compatibility (runs bundles produced by AbstractFlow; does not require the `abst
17361729
Optional extras (see `pyproject.toml`):
17371730
- `abstractgateway[apple]`: full native macOS Python profile with Apple-local engines and all non-NVIDIA framework capabilities; this is for native macOS, not Docker
17381731
- `abstractgateway[gpu]`: full native/container GPU profile with local GPU engines and all relevant framework capabilities; the NVIDIA Docker image uses this profile
1739-
- `abstractgateway[http]`, `[server]`, `[multimodal]`, `[memory]`, `[voice]`, `[vision]`, `[all]`: compatibility aliases because the base install now includes the remote-light server stack
1740-
- `abstractgateway[server-nvidia]`: compatibility alias for the GPU profile used by older NVIDIA Docker commands
1741-
- `abstractgateway[visualflow]`: deprecated compatibility alias (VisualFlow directory mode was removed; does nothing)
1742-
- `abstractgateway[telegram]`: compatibility alias; Telegram bridge support uses base install dependencies
17431732
- `abstractgateway[docs]`: MkDocs site tooling
17441733
- `abstractgateway[dev]`: local dev/test deps
17451734

@@ -1924,14 +1913,14 @@ and hybrid runtimes report `prompt_cache_local_only`.
19241913

19251914
### Multimodal provider/plugin controls
19261915

1927-
The `server`, `multimodal`, and `all` extras install the lightweight AbstractCore
1928-
plugin surface for generated images, generated videos, generated voice, STT, and music
1929-
capabilities. Voice generation, transcription, generated images, and generated
1930-
music have direct Gateway endpoints; generated images are also exposed through
1931-
Runtime/Core workflows and through `POST /api/gateway/runs/{run_id}/images/generate`
1932-
and `POST /api/gateway/runs/{run_id}/images/edit` when a Runtime/Core image
1933-
backend is configured or provider/model are supplied on the request. Local
1934-
heavy engines remain explicit opt-ins in the provider packages.
1916+
The base install already includes the Gateway HTTP/SSE server and the Runtime
1917+
multimodal integration layer. Direct Gateway routes for voice/audio, image/video,
1918+
and music become available when the corresponding lower-layer capability
1919+
packages are installed on the gateway host (or when Gateway is configured to
1920+
proxy to a remote AbstractCore server).
1921+
1922+
Local heavy engines remain explicit opt-ins in the provider packages; Gateway
1923+
does not implicitly install them.
19351924

19361925
- `output.text` capability route: default text model for bundle LLM nodes
19371926
- `OPENAI_COMPATIBLE_BASE_URL` / `OPENAI_COMPATIBLE_API_KEY`: OpenAI-compatible text endpoint for AbstractCore providers

pyproject.toml

Lines changed: 8 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,14 @@ dependencies = [
2525
]
2626

2727
[project.optional-dependencies]
28-
# The base package is the remote-light server install. These extras remain as
29-
# compatibility aliases for existing install commands.
30-
http = []
31-
server = []
32-
multimodal = []
33-
memory = []
34-
35-
# Native Apple Gateway profile. This is for direct macOS Python installs, not
36-
# Docker, because MLX/Metal-backed engines need the host Apple runtime. As the
28+
# Supported install profiles.
29+
# - Base install (`pip install abstractgateway`) is the remote-light HTTP/SSE server.
30+
# - `apple` / `gpu` select hardware-local stacks for the gateway host.
31+
#
32+
# Tooling extras for contributors: `dev`, `docs`.
33+
34+
# Native Apple Gateway profile. This is for direct macOS Python installs (not
35+
# Docker), because MLX/Metal-backed engines need the host Apple runtime. As the
3736
# deployment entry point, Gateway's `apple` profile installs the full native
3837
# Apple stack and all relevant non-NVIDIA framework capabilities.
3938
apple = [
@@ -49,41 +48,6 @@ gpu = [
4948
"abstractagent[all-gpu]>=0.3.8",
5049
"AbstractMemory[all-gpu]>=0.2.6",
5150
]
52-
53-
# Native macOS aggregate profile for full local+remote Gateway installs.
54-
all-apple = [
55-
"AbstractRuntime[multimodal,mcp-worker,all-apple]>=0.4.24",
56-
"abstractagent[all-apple]>=0.3.8",
57-
"AbstractMemory[all-apple]>=0.2.6",
58-
]
59-
60-
# Full GPU aggregate profile for CUDA/ROCm-style local engine hosts.
61-
all-gpu = [
62-
"AbstractRuntime[multimodal,mcp-worker,all-gpu]>=0.4.24",
63-
"abstractagent[all-gpu]>=0.3.8",
64-
"AbstractMemory[all-gpu]>=0.2.6",
65-
]
66-
67-
# Compatibility alias for historical Docker builds. New NVIDIA Docker builds use
68-
# `abstractgateway[gpu]`.
69-
server-nvidia = [
70-
"AbstractRuntime[multimodal,mcp-worker,all-gpu]>=0.4.24",
71-
"abstractagent[all-gpu]>=0.3.8",
72-
"AbstractMemory[all-gpu]>=0.2.6",
73-
]
74-
75-
# Voice/audio capabilities (TTS + STT) via AbstractVoice.
76-
voice = []
77-
78-
# Generative vision capabilities via AbstractCore's AbstractVision plugin.
79-
vision = []
80-
81-
# Compatibility alias (deprecated): VisualFlow directory mode was removed.
82-
visualflow = []
83-
84-
# Telegram's AbstractCore tool integration is already present in the base
85-
# remote-light server install.
86-
telegram = []
8751
dev = [
8852
"pytest>=7.0.0",
8953
"httpx>=0.27.0",
@@ -94,11 +58,6 @@ docs = [
9458
"mkdocs-material>=9.0.0",
9559
]
9660

97-
# Compatibility alias. The base install is already the remote-light
98-
# batteries-included server; hardware-local engines are selected by `apple` or
99-
# `gpu`.
100-
all = []
101-
10261
[project.scripts]
10362
abstractgateway = "abstractgateway.cli:main"
10463
abstractgateway-config = "abstractgateway.config_cli:main"

tests/test_gateway_install_profiles.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,29 @@ def test_base_install_is_remote_light_server() -> None:
4343
def test_entrypoint_profiles_cascade_lower_package_extras() -> None:
4444
extras = _pyproject()["project"]["optional-dependencies"]
4545

46-
assert extras["http"] == []
47-
assert extras["server"] == []
48-
assert extras["multimodal"] == []
49-
assert extras["memory"] == []
50-
assert extras["voice"] == []
51-
assert extras["vision"] == []
52-
assert extras["visualflow"] == []
53-
assert extras["telegram"] == []
54-
assert extras["all"] == []
46+
# Legacy compatibility aliases were removed; keep the user-facing install
47+
# surface minimal and unambiguous.
48+
for legacy in (
49+
"http",
50+
"server",
51+
"multimodal",
52+
"memory",
53+
"voice",
54+
"vision",
55+
"visualflow",
56+
"telegram",
57+
"all",
58+
"all-apple",
59+
"all-gpu",
60+
"server-nvidia",
61+
):
62+
assert legacy not in extras
63+
5564
assert "apple" in extras
5665
assert "gpu" in extras
57-
assert "all-apple" in extras
58-
assert "all-gpu" in extras
66+
# Tooling extras remain for contributors/CI.
67+
assert "dev" in extras
68+
assert "docs" in extras
5969

6070
apple = "\n".join(extras["apple"])
6171
assert "AbstractRuntime[multimodal,mcp-worker,all-apple]>=0.4.24" in apple
@@ -75,16 +85,6 @@ def test_entrypoint_profiles_cascade_lower_package_extras() -> None:
7585
assert "abstractvoice" not in gpu
7686
assert "abstractmusic" not in gpu
7787

78-
assert extras["all-apple"] == extras["apple"]
79-
assert extras["all-gpu"] == extras["gpu"]
80-
81-
nvidia = "\n".join(extras["server-nvidia"])
82-
assert nvidia == gpu
83-
84-
assert "AbstractMemory[all-apple]>=0.2.6" in extras["all-apple"]
85-
assert "AbstractMemory[all-gpu]>=0.2.6" in extras["all-gpu"]
86-
assert "AbstractMemory[all-gpu]>=0.2.6" in extras["server-nvidia"]
87-
8888

8989
def test_config_entrypoint_is_published() -> None:
9090
scripts = _pyproject()["project"]["scripts"]

0 commit comments

Comments
 (0)