Metadata-Version: 2.4
Name: llm-catalog-core
Version: 0.2.0
Summary: Gateway-agnostic core for llm-catalog: config schema, resolver, GatewayTransport, and LiteLLM codegen. Knows nothing about any runtime adapter.
Keywords: llm,catalog,gateway,httpx,config
Author: Shinsuke Mori
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Dist: pydantic>=2.7
Requires-Dist: pyyaml>=6.0
Requires-Dist: httpx>=0.27
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/sincekmori/llm-catalog
Project-URL: Repository, https://github.com/sincekmori/llm-catalog
Project-URL: Issues, https://github.com/sincekmori/llm-catalog/issues
Project-URL: Changelog, https://github.com/sincekmori/llm-catalog/blob/main/packages/llm-catalog-core/CHANGELOG.md
Description-Content-Type: text/markdown

# llm-catalog-core

Gateway-agnostic core for [llm-catalog](https://github.com/sincekmori/llm-catalog).
It holds the config schema, loader/validation, role resolution, the path-rewriting `GatewayTransport`, and native LiteLLM codegen.

This package knows nothing about any runtime adapter, so installing it pulls in neither Pydantic AI nor LiteLLM.
Use it directly when you only need resolution or codegen.
Otherwise install one of the adapter distributions (`llm-catalog-pydantic-ai`, `llm-catalog-litellm`), which depend on this.

```python
from llm_catalog.core import Catalog

cat = Catalog.from_file("catalog.yaml")
rm = cat.resolve_role("fast")   # -> ResolvedModel (no adapter types)
print(rm.backend, rm.slug, rm.base_url)
```

See the [repository README](https://github.com/sincekmori/llm-catalog) for the full picture, the public/private boundary, and the verification notes.

import namespace: `llm_catalog.core`
