Abstractcore

Latest version: v2.13.14

Safety actively analyzes 924004 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 11

2.13.14

Fixed
- Generated image, voice, and transcription output specs now pass per-call media model selectors through capability plugins while keeping runtime LLM provider routing out of plugin kwargs.
- Media classification now honors dict `content_type` metadata so artifact-backed, extensionless audio remains valid for transcription.

Changed
- Raised AbstractVision and AbstractVoice capability floors to `abstractvision>=0.3.5` and `abstractvoice>=0.9.4`.

2.13.13

Added
- Added a Voice capability `list_stt_models()` contract and `/v1/audio/transcriptions/models` server catalog route so Gateway and thin clients can discover speech-to-text models instead of hard-coding defaults.

Changed
- Raised AbstractVoice capability floors to `abstractvoice>=0.9.3` for voice-enabled install profiles.

2.13.12

Changed
- **Capability plugin floors**: optional vision/voice/music install profiles now
require `abstractvision>=0.3.3`, `abstractvoice>=0.9.2`, and
`abstractmusic>=0.1.1`.
- **Native aggregate profiles**: `abstractcore[all-apple]` now cascades to
`abstractvision[all-apple]`, `abstractvoice[all-apple]`, and
`abstractmusic[all-apple]`; `abstractcore[all-gpu]` now cascades to the
matching `all-gpu` capability packages.
- **Profile boundary**: `abstractcore[apple]` remains the MLX local LLM alias
and `abstractcore[gpu]` remains the vLLM local LLM alias. Full media/capability
installs use `all-apple` or `all-gpu`.

2.13.11

Added
- **Capability catalog discovery**: added `llm.vision.list_provider_models(...)`,
`llm.voice.list_profiles(...)`, `llm.voice.list_tts_models()`, and
`llm.voice.voice_catalog()` facade methods over optional capability plugins.
- **Server media catalog routes**: added `GET /v1/vision/provider_models`,
`GET /v1/audio/voices`, and `GET /v1/audio/speech/models` so thin clients can
discover image models, TTS models, and voice profiles without importing
AbstractVision or AbstractVoice directly.

Changed
- **Plugin compatibility floors**: optional voice/audio extras now require
`abstractvoice>=0.9.1`; optional vision extras now require
`abstractvision>=0.3.2` so Core can rely on the released plugin catalog
boundary while keeping local engines behind explicit plugin extras.
- **Install profile alignment**: added `abstractcore[apple]` as the hardware
alias for the MLX local LLM stack and `abstractcore[gpu]` as the hardware
alias for the vLLM local LLM stack, while keeping `all-apple` and `all-gpu`
as broader aggregate profiles.

Fixed
- **Audio catalog route HTTP status preservation**: `/v1/audio/voices` and
`/v1/audio/speech/models` now preserve route-level `HTTPException` statuses
for server-held credential auth failures and invalid/disallowed `base_url`
overrides instead of wrapping them as `502` catalog failures.

2.13.10

Fixed
- **Task-only text generation selectors**: `generate(...)` and `agenerate(...)` calls with
`output={"task": "text_generation"}` now normalize through the public output selector contract as
`modality="text"` and follow the normal chat/text generation path instead of being treated as
generated media or non-chat dispatch.

Changed
- **Backlog completion**: moved the task-only text generation output-normalization proposal to
completed with an implementation report, acceptance-criteria results, and validation notes.

2.13.9

Added
- **Public output selector contract for runtimes**: added `abstractcore.core.output_specs` so AbstractRuntime and other durable callers can identify and normalize `generate(..., output=...)` selectors without importing private provider helpers or maintaining a drift-prone mirror of AbstractCore dispatch semantics.
- **Output routing guardrail helpers**: exposed helpers for selector detection, output-spec normalization, generated-media detection, non-chat dispatch detection, runtime metadata stripping, and backend plugin kwargs extraction.
- **Selector contract tests**: added parity tests for string, dict, list, unsupported, alias-normalization, transcription, generated-media, non-chat-dispatch, and runtime-metadata cases.

Changed
- **Provider selector delegation**: `BaseProvider._is_acore_output_request(...)`, `_normalize_output_spec(...)`, `_normalize_output_specs(...)`, and `_output_plugin_kwargs(...)` now delegate to the public Core helper module while preserving existing behavior and compatibility quirks, including the current string-vs-dict `"audio"` selector behavior.
- **Backlog completion**: moved the public output selector proposal to completed with an implementation report and validation notes.

Page 1 of 11

© 2026 Safety CLI Cybersecurity Inc. All Rights Reserved.