Skip to content

Commit 737d8b4

Browse files
lpalboucursoragent
andcommitted
Prepare v2.13.27 release.
Update AbstractVision/Voice/Music capability plugin floors to the latest released versions and refresh packaging/docs references. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 087dadf commit 737d8b4

11 files changed

Lines changed: 57 additions & 49 deletions

File tree

CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [2.13.27] - 2026-05-23
11+
12+
### Changed
13+
- **Capability plugin floors**: updated optional capability plugin install floors to `abstractvoice>=0.10.15`, `abstractvision>=0.3.13`, and `abstractmusic>=0.1.12` (plus matching turnkey profiles and docs references).
14+
15+
### Verified
16+
- **Hermetic test suite**: `pytest` passes with local/provider/live tests disabled (CI-style defaults).
17+
1018
## [2.13.26] - 2026-05-23
1119

1220
### Changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ Text-only `generate(...)` is unchanged. For advanced/provider-specific work,
358358
the direct `llm.vision.*`, `llm.voice.*`, `llm.audio.*`, and `llm.music.*` facades remain
359359
available. Configure `abstractvision` and `abstractvoice` backends first for
360360
real generation; configure `abstractmusic` for music generation. With
361-
`abstractmusic>=0.1.8`, the default music backend is the lightweight remote
361+
`abstractmusic>=0.1.12`, the default music backend is the lightweight remote
362362
ACE Music path; set `ACEMUSIC_API_KEY` before use. Local music engines remain
363363
optional plugin extras.
364364

abstractcore/server/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Runtime note: omitted `task` on `/acore/models/load` keeps the existing text-gen
6262
| **Audio Translations** | `/v1/audio/translations` | `file` | Translate audio (not yet supported) |
6363
| **Text-to-Speech** | `/v1/audio/speech`, `/{provider}/v1/audio/speech` | `input`, optional `model`/`provider`/`base_url` | Generate audio (optional) |
6464
| **Voice Clone** | `/v1/voice/clone`, `/{provider}/v1/voice/clone` | `file`, optional `model`/`provider`/`base_url` | Create a compatible custom voice (optional) |
65-
| **Text-to-Music** | `/v1/audio/music` | `prompt` | Generate music/audio through optional AbstractMusic backends; `abstractmusic>=0.1.8` supports remote ACE Music with `ACEMUSIC_API_KEY` |
65+
| **Text-to-Music** | `/v1/audio/music` | `prompt` | Generate music/audio through optional AbstractMusic backends; `abstractmusic>=0.1.12` supports remote ACE Music with `ACEMUSIC_API_KEY` |
6666
| **Documents** | `/v1/chat/completions` | `content: [text, file_url]` | PDF/CSV processing |
6767
| **Tools** | `/v1/chat/completions` | `tools`, `tool_choice` | Function calling |
6868
| **Embeddings** | `/v1/embeddings` | `model`, `input` | Text embeddings |

abstractcore/utils/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
"""
1111

1212
# Package version - update this when releasing new versions
13-
__version__ = "2.13.26"
13+
__version__ = "2.13.27"

docs/capabilities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ The server exposes the same deep catalogs through:
123123
- `GET /v1/audio/music/providers`
124124
- `GET /v1/audio/music/models`
125125

126-
For `abstractmusic>=0.1.8`, the default lightweight music backend is the
126+
For `abstractmusic>=0.1.12`, the default lightweight music backend is the
127127
remote ACE Music API path (`provider="acemusic"` or `/acemusic/v1/audio/music`).
128128
Set `ACEMUSIC_API_KEY` in the server or Python environment. The server music
129129
route accepts `wav`, `mp3`, and `flac`; individual backends may support fewer

docs/huggingface-model-compatibility.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ install every optional Transformers quantization runtime, because those runtimes
2121
platform-specific and can carry dependency pins that conflict with the rest of the local stack.
2222
Fresh installs resolve the newest compatible Transformers release allowed by AbstractCore's
2323
dependency range. Very new architectures such as Gemma4 require a recent Transformers build.
24-
Audio/voice extras use `abstractvoice>=0.10.14` and `omnivoice>=0.1.5`.
24+
Audio/voice extras use `abstractvoice>=0.10.15` and `omnivoice>=0.1.5`.
2525

2626
## Quantized Transformers Checkpoints
2727

docs/server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,7 @@ The returned `voice_id` / `id` can be used as the `voice` value in
743743
| `response_format` or `format` | no | Server contract supports `wav`, `mp3`, and `flac`; backend support can be narrower. |
744744
| extra top-level fields | no | Best-effort passthrough to the installed music capability plugin. |
745745

746-
With `abstractmusic>=0.1.8`, the base install includes the remote ACE Music
746+
With `abstractmusic>=0.1.12`, the base install includes the remote ACE Music
747747
backend. Configure `ACEMUSIC_API_KEY` in the server environment, optionally set
748748
`ACEMUSIC_BASE_URL`, and use `provider="acemusic"` or the `/acemusic/v1/audio/music`
749749
path. Local ACE-Step/Diffusers routes remain opt-in AbstractMusic extras.

llms-full.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
> This is the "full context" companion to `llms.txt`: a single, self-contained guide for agents and developers using AbstractCore. It intentionally avoids GitHub link hubs; only a few external references are included (API-key signup pages).
44

55
Last updated: 2026-05-23
6-
Package version: 2.13.26
6+
Package version: 2.13.27
77
Supported Python: 3.9+; GitHub CI tests 3.9, 3.10, 3.11, 3.12, and 3.13.
88

99
## How to use this file (agents)
@@ -651,7 +651,7 @@ AbstractCore supports optional capability plugins discovered via Python entry po
651651
- install `abstractvoice` -> enables `llm.voice` and `llm.audio` (TTS/STT)
652652
- install `abstractvision` -> enables `llm.vision` (generative vision; often via an OpenAI-compatible images endpoint)
653653
- install `abstractcore[music]` -> enables `llm.music` and music output routing for text-to-music through `abstractmusic`
654-
- current plugin floors in this source: `abstractvoice>=0.10.14`, `abstractvision>=0.3.9`, `abstractmusic>=0.1.8`
654+
- current plugin floors in this source: `abstractvoice>=0.10.15`, `abstractvision>=0.3.13`, `abstractmusic>=0.1.12`
655655

656656
Server note:
657657
- the server can optionally expose `/v1/images/*` (requires `abstractvision`)
@@ -10202,7 +10202,7 @@ python -m abstractcore.utils.cli --prompt "What's in @document.pdf and @image.jp
1020210202
To keep the default `abstractcore` install dependency-light while still enabling deterministic modality APIs, AbstractCore supports optional **capability plugins**:
1020310203
- `abstractvoice` provides `core.voice` + `core.audio` (TTS/STT).
1020410204
- `abstractvision` provides `core.vision` (T2I/I2I/T2V/I2V; backend-pluggable).
10205-
- `abstractmusic` can provide `core.music` (text-to-music) when installed; `abstractmusic>=0.1.8` includes the remote ACE Music backend through `ACEMUSIC_API_KEY`.
10205+
- `abstractmusic` can provide `core.music` (text-to-music) when installed; `abstractmusic>=0.1.12` includes the remote ACE Music backend through `ACEMUSIC_API_KEY`.
1020610206

1020710207
Discovery:
1020810208
- `llm.capabilities.status()` returns a JSON-safe snapshot (which backends are available/selected, plus install hints).

llms.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> Unified Python interface for cloud + local LLM providers with streaming, tool calling, structured output, media handling (images/audio/video + documents), embeddings, and an optional OpenAI-compatible HTTP server. Default install stays lightweight; features are enabled via extras.
44

5-
Last reviewed against source: 2026-05-23. Package version in source: 2.13.26. Supported Python: 3.9+; GitHub CI tests 3.9, 3.10, 3.11, 3.12, and 3.13.
5+
Last reviewed against source: 2026-05-23. Package version in source: 2.13.27. Supported Python: 3.9+; GitHub CI tests 3.9, 3.10, 3.11, 3.12, and 3.13.
66

77
This is the curated, high-signal index for agents. For a self-contained handbook with the important details inlined, read `llms-full.txt`.
88

@@ -61,7 +61,7 @@ Quick start:
6161
- [Provider registry](abstractcore/providers/registry.py): provider IDs, defaults, install extras
6262
- [Provider setup guide](docs/prerequisites.md): env vars + examples for OpenAI/Anthropic/Ollama/LMStudio/MLX/HuggingFace/vLLM/OpenRouter/Portkey/OpenAI-compatible
6363
- Install profile vocabulary: `abstractcore[apple]` is the hardware alias for the MLX local LLM stack, `abstractcore[gpu]` is the hardware alias for the vLLM local LLM stack, and `abstractcore[all-apple]` / `abstractcore[all-gpu]` are larger aggregate profiles.
64-
- Optional media plugin floors in this source: `abstractvoice>=0.10.14`, `abstractvision>=0.3.9`, and `abstractmusic>=0.1.8`.
64+
- Optional media plugin floors in this source: `abstractvoice>=0.10.15`, `abstractvision>=0.3.13`, and `abstractmusic>=0.1.12`.
6565

6666
## Server (OpenAI-compatible `/v1`)
6767

pyproject.toml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,12 @@ media = [
214214
]
215215

216216
voice = [
217-
"abstractvoice>=0.10.14",
217+
"abstractvoice>=0.10.15",
218218
"omnivoice>=0.1.5",
219219
]
220220

221221
audio = [
222-
"abstractvoice>=0.10.14",
222+
"abstractvoice>=0.10.15",
223223
"omnivoice>=0.1.5",
224224
]
225225

@@ -266,15 +266,15 @@ all = [
266266
"pymupdf-layout>=1.26.6,<2.0.0",
267267
"unstructured[docx,pptx,xlsx,odt,rtf]>=0.10.0,<1.0.0",
268268
"pandas>=1.0.0,<3.0.0",
269-
"abstractvoice>=0.10.14",
269+
"abstractvoice>=0.10.15",
270270
"omnivoice>=0.1.5",
271-
"abstractmusic>=0.1.8",
271+
"abstractmusic>=0.1.12",
272272
# Server
273273
"fastapi>=0.100.0,<1.0.0",
274274
"uvicorn[standard]>=0.23.0,<1.0.0",
275275
"python-multipart>=0.0.6,<1.0.0",
276276
"sse-starlette>=1.6.0,<2.0.0",
277-
"abstractvision>=0.3.9",
277+
"abstractvision>=0.3.13",
278278
]
279279

280280
all-apple = [
@@ -309,15 +309,15 @@ all-apple = [
309309
"pymupdf-layout>=1.26.6,<2.0.0",
310310
"unstructured[docx,pptx,xlsx,odt,rtf]>=0.10.0,<1.0.0",
311311
"pandas>=1.0.0,<3.0.0",
312-
"abstractvoice[all-apple]>=0.10.14",
312+
"abstractvoice[all-apple]>=0.10.15",
313313
"omnivoice>=0.1.5",
314-
"abstractmusic[all-apple]>=0.1.8",
314+
"abstractmusic[all-apple]>=0.1.12",
315315
# Server
316316
"fastapi>=0.100.0,<1.0.0",
317317
"uvicorn[standard]>=0.23.0,<1.0.0",
318318
"python-multipart>=0.0.6,<1.0.0",
319319
"sse-starlette>=1.6.0,<2.0.0",
320-
"abstractvision[all-apple]>=0.3.9",
320+
"abstractvision[all-apple]>=0.3.13",
321321
]
322322

323323
all-gpu = [
@@ -348,15 +348,15 @@ all-gpu = [
348348
"pymupdf-layout>=1.26.6,<2.0.0",
349349
"unstructured[docx,pptx,xlsx,odt,rtf]>=0.10.0,<1.0.0",
350350
"pandas>=1.0.0,<3.0.0",
351-
"abstractvoice[all-gpu]>=0.10.14",
351+
"abstractvoice[all-gpu]>=0.10.15",
352352
"omnivoice>=0.1.5",
353-
"abstractmusic[all-gpu]>=0.1.8",
353+
"abstractmusic[all-gpu]>=0.1.12",
354354
# Server
355355
"fastapi>=0.100.0,<1.0.0",
356356
"uvicorn[standard]>=0.23.0,<1.0.0",
357357
"python-multipart>=0.0.6,<1.0.0",
358358
"sse-starlette>=1.6.0,<2.0.0",
359-
"abstractvision[all-gpu]>=0.3.9",
359+
"abstractvision[all-gpu]>=0.3.13",
360360
]
361361

362362
# Legacy broad bundle kept for existing users. New installs should usually
@@ -388,15 +388,15 @@ all-non-mlx = [
388388
"pymupdf-layout>=1.26.6,<2.0.0",
389389
"unstructured[docx,pptx,xlsx,odt,rtf]>=0.10.0,<1.0.0",
390390
"pandas>=1.0.0,<3.0.0",
391-
"abstractvoice>=0.10.14",
391+
"abstractvoice>=0.10.15",
392392
"omnivoice>=0.1.5",
393-
"abstractmusic>=0.1.8",
393+
"abstractmusic>=0.1.12",
394394
# Server
395395
"fastapi>=0.100.0,<1.0.0",
396396
"uvicorn[standard]>=0.23.0,<1.0.0",
397397
"python-multipart>=0.0.6,<1.0.0",
398398
"sse-starlette>=1.6.0,<2.0.0",
399-
"abstractvision>=0.3.9",
399+
"abstractvision>=0.3.13",
400400
]
401401

402402
# Development dependencies
@@ -425,23 +425,23 @@ server = [
425425
# Vision (optional) - delegates to AbstractVision.
426426
# Kept as a separate extra for installs that want vision without the HTTP server.
427427
vision = [
428-
"abstractvision>=0.3.9",
428+
"abstractvision>=0.3.13",
429429
]
430430

431431
vision-diffusers = [
432-
"abstractvision[huggingface]>=0.3.9",
432+
"abstractvision[huggingface]>=0.3.13",
433433
]
434434

435435
vision-sdcpp = [
436-
"abstractvision[sdcpp]>=0.3.9",
436+
"abstractvision[sdcpp]>=0.3.13",
437437
]
438438

439439
vision-local = [
440-
"abstractvision[local]>=0.3.9",
440+
"abstractvision[local]>=0.3.13",
441441
]
442442

443443
music = [
444-
"abstractmusic>=0.1.8",
444+
"abstractmusic>=0.1.12",
445445
]
446446

447447
# Testing dependencies
@@ -506,14 +506,14 @@ full-dev = [
506506
"pymupdf-layout>=1.26.6,<2.0.0",
507507
"unstructured[docx,pptx,xlsx,odt,rtf]>=0.10.0,<1.0.0",
508508
"pandas>=1.0.0,<3.0.0",
509-
"abstractvoice>=0.10.14",
509+
"abstractvoice>=0.10.15",
510510
"omnivoice>=0.1.5",
511-
"abstractmusic>=0.1.8",
511+
"abstractmusic>=0.1.12",
512512
"fastapi>=0.100.0,<1.0.0",
513513
"uvicorn[standard]>=0.23.0,<1.0.0",
514514
"python-multipart>=0.0.6,<1.0.0",
515515
"sse-starlette>=1.6.0,<2.0.0",
516-
"abstractvision>=0.3.9",
516+
"abstractvision>=0.3.13",
517517
# Tooling
518518
"pytest>=7.0.0",
519519
"pytest-asyncio>=0.21.0",

0 commit comments

Comments
 (0)