Coverage for src / lexigram / contracts / core / constants.py: 0%
52 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-15 18:57 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-15 18:57 +0800
1"""Entry-point group constants for Lexigram extensibility.
3These constants define the standard entry-point groups used across the
4Lexigram ecosystem for provider auto-discovery via ``importlib.metadata``.
6Usage::
8 from importlib.metadata import entry_points
9 from lexigram.contracts.core.constants import EP_AI_SUBSYSTEMS
11 for ep in entry_points(group=EP_AI_SUBSYSTEMS):
12 provider_cls = ep.load()
13 ...
14"""
16from __future__ import annotations
18import importlib.metadata
20try:
21 __version__: str = importlib.metadata.version("lexigram-contracts")
22except ImportError:
23 __version__ = "0.0.0"
26# ---------------------------------------------------------------------------
27# Configuration Environment Variable Prefix
28# ---------------------------------------------------------------------------
30ENV_PREFIX: str = "LEX_CONTRACTS__"
31"""Environment variable prefix for contracts configuration (minimal usage)."""
33# ---------------------------------------------------------------------------
34# General provider / module discovery
35# ---------------------------------------------------------------------------
37EP_PROVIDERS = "lexigram.providers"
38"""Auto-registering general-purpose providers."""
40EP_MODULES = "lexigram.modules"
41"""Core module auto-discovery."""
43EP_MIDDLEWARE = "lexigram.middleware"
44"""HTTP and event middleware auto-registration."""
46# ---------------------------------------------------------------------------
47# AI subsystem discovery
48# ---------------------------------------------------------------------------
50EP_AI_SUBSYSTEMS = "lexigram.ai.subsystems"
51"""AI sub-package providers (LLM, Vector, RAG, Agents, Memory, etc.)."""
53EP_AI_TOOLS = "lexigram.ai.tools"
54"""AI tool and skill providers."""
56EP_AI_STRATEGIES = "lexigram.ai.strategies"
57"""Agent reasoning strategy implementations."""
59EP_AI_GUARDS = "lexigram.ai.guards"
60"""AI content safety guard implementations."""
62EP_AI_BACKENDS_MEMORY = "lexigram.ai.backends.memory"
63"""Pluggable memory storage backends."""
65EP_AI_BACKENDS_EMBEDDING = "lexigram.ai.backends.embedding"
66"""Pluggable embedding and chunking backends."""
68# ---------------------------------------------------------------------------
69# Plugin discovery
70# ---------------------------------------------------------------------------
72EP_PLUGINS = "lexigram.plugins"
73"""Metadata-only plugin descriptors for admin-manageable enable/disable."""
75# ---------------------------------------------------------------------------
76# Infrastructure backend discovery
77# ---------------------------------------------------------------------------
79EP_CACHE_BACKENDS = "lexigram.cache.backends"
80"""Cache backend implementations (Redis, Memcached, in-memory, etc.)."""
82EP_DB_BACKENDS = "lexigram.sql.backends"
83"""Database client implementations."""
85EP_SEARCH_BACKENDS = "lexigram.search.backends"
86"""Search engine backend implementations."""
88EP_MESSAGING_BACKENDS = "lexigram.messaging.backends"
89"""Message queue backend implementations."""
91EP_MONITORING_BACKENDS = "lexigram.monitoring.backends"
92"""Observability backend implementations."""
94EP_TASKS_BACKENDS = "lexigram.tasks.backends"
95"""Background task queue backend implementations."""
97EP_STORAGE_BACKENDS = "lexigram.storage.backends"
98"""Object storage backend implementations."""
100# ---------------------------------------------------------------------------
101# Strategy discovery
102# ---------------------------------------------------------------------------
104EP_CHUNKING_STRATEGIES = "lexigram.chunking.strategies"
105"""RAG document chunking strategy implementations."""
107EP_RETRIEVAL_STRATEGIES = "lexigram.retrieval.strategies"
108"""RAG retrieval and ranking strategy implementations."""
110EP_AGENT_STRATEGIES = "lexigram.agent.strategies"
111"""Agent reasoning strategy implementations."""
113EP_AUTH_STRATEGIES = "lexigram.auth.strategies"
114"""Authentication method implementations."""
116# ---------------------------------------------------------------------------
117# Catalogue
118# ---------------------------------------------------------------------------
120ALL_ENTRY_POINT_GROUPS: dict[str, str] = {
121 EP_PROVIDERS: "General-purpose auto-registering providers",
122 EP_MODULES: "Core module auto-discovery",
123 EP_MIDDLEWARE: "HTTP/event middleware auto-registration",
124 EP_PLUGINS: "Metadata-only plugin descriptors",
125 EP_AI_SUBSYSTEMS: "AI sub-package providers",
126 EP_AI_TOOLS: "AI tools and skills",
127 EP_AI_STRATEGIES: "Agent reasoning strategies",
128 EP_AI_GUARDS: "Content safety guards",
129 EP_AI_BACKENDS_MEMORY: "Memory storage backends",
130 EP_AI_BACKENDS_EMBEDDING: "Embedding/chunking backends",
131 EP_CACHE_BACKENDS: "Cache backend implementations",
132 EP_DB_BACKENDS: "Database client implementations",
133 EP_SEARCH_BACKENDS: "Search engine backends",
134 EP_MESSAGING_BACKENDS: "Message queue backends",
135 EP_MONITORING_BACKENDS: "Observability backends",
136 EP_TASKS_BACKENDS: "Background task queue backends",
137 EP_STORAGE_BACKENDS: "Object storage backends",
138 EP_CHUNKING_STRATEGIES: "RAG chunking strategies",
139 EP_RETRIEVAL_STRATEGIES: "RAG retrieval strategies",
140 EP_AGENT_STRATEGIES: "Agent reasoning strategies",
141 EP_AUTH_STRATEGIES: "Authentication strategies",
142}
144__all__ = [
145 "ALL_ENTRY_POINT_GROUPS",
146 "ENV_PREFIX",
147 "EP_AGENT_STRATEGIES",
148 "EP_AI_BACKENDS_EMBEDDING",
149 "EP_AI_BACKENDS_MEMORY",
150 "EP_AI_GUARDS",
151 "EP_AI_STRATEGIES",
152 "EP_AI_SUBSYSTEMS",
153 "EP_AI_TOOLS",
154 "EP_AUTH_STRATEGIES",
155 "EP_CACHE_BACKENDS",
156 "EP_CHUNKING_STRATEGIES",
157 "EP_DB_BACKENDS",
158 "EP_MESSAGING_BACKENDS",
159 "EP_MIDDLEWARE",
160 "EP_MODULES",
161 "EP_MONITORING_BACKENDS",
162 "EP_PLUGINS",
163 "EP_PROVIDERS",
164 "EP_RETRIEVAL_STRATEGIES",
165 "EP_SEARCH_BACKENDS",
166 "EP_STORAGE_BACKENDS",
167 "EP_TASKS_BACKENDS",
168 "__version__",
169]