Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-skills/src/lexigram/ai/skills/constants.py: 92%
25 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""Constants for lexigram-ai-skills."""
3from __future__ import annotations
5import importlib.metadata
7try:
8 __version__: str = importlib.metadata.version("lexigram-ai-skills")
9except ImportError:
10 __version__ = "0.0.0"
13# -- Environment Variable Prefixes -------------------------------------------
15ENV_PREFIX: str = "LEX_AI_SKILLS__"
16ENV_NESTED_DELIMITER: str = "__"
18# -- Execution Defaults ------------------------------------------------------
20DEFAULT_TIMEOUT_S: float = 30.0
21DEFAULT_MAX_RETRIES: int = 2
22DEFAULT_MAX_CONCURRENT: int = 10
24# -- Cache Defaults ----------------------------------------------------------
26DEFAULT_CACHE_ENABLED: bool = True
27DEFAULT_CACHE_TTL_S: int = 3600
28DEFAULT_CACHE_BACKEND: str = "in_memory"
30# -- Discovery Defaults ------------------------------------------------------
32DEFAULT_ENFORCE_PERMISSIONS: bool = True
33DEFAULT_AUTO_DISCOVER: bool = False
34DEFAULT_ENABLE_BUILTIN: bool = True
35DEFAULT_BUILTIN_SKILLS: tuple[str, ...] = (
36 "current_datetime",
37 "math_calculate",
38 "text_summarize",
39)
41# -- Skill Path Defaults -------------------------------------------------------
43DEFAULT_SKILL_DIRECTORIES: dict[str, str] = {
44 "claude_code": "~/.claude/skills",
45 "opencode": "~/.opencode/skills",
46 "codex": "~/.codex/skills",
47 "gemini_cli": "~/.gemini/skills",
48 "aider": "~/.aider/skills",
49 "cursor": "~/.cursor/skills",
50 "copilot": "~/.github/skills",
51 "windsurf": "~/.windsurf/skills",
52 "custom": "./skills",
53}
55DEFAULT_SKILL_PATHS: tuple[str, ...] = (
56 "~/.claude/skills",
57 "~/.opencode/skills",
58 "./skills",
59)
61# -- Script Execution Defaults -------------------------------------------------
63DEFAULT_SCRIPT_TIMEOUT_SECONDS: int = 30
64DEFAULT_ALLOWED_SCRIPT_TYPES: tuple[str, ...] = ("py", "sh", "js")
65DEFAULT_MAX_FILE_SIZE_BYTES: int = 1024 * 1024 # 1MB
67# -- Progressive Disclosure -----------------------------------------------------
69DEFAULT_LAZY_LOAD_CONTEXT: bool = True
71__all__ = [
72 "DEFAULT_ALLOWED_SCRIPT_TYPES",
73 "DEFAULT_AUTO_DISCOVER",
74 "DEFAULT_BUILTIN_SKILLS",
75 "DEFAULT_CACHE_BACKEND",
76 "DEFAULT_CACHE_ENABLED",
77 "DEFAULT_CACHE_TTL_S",
78 "DEFAULT_ENABLE_BUILTIN",
79 "DEFAULT_ENFORCE_PERMISSIONS",
80 "DEFAULT_LAZY_LOAD_CONTEXT",
81 "DEFAULT_MAX_CONCURRENT",
82 "DEFAULT_MAX_FILE_SIZE_BYTES",
83 "DEFAULT_MAX_RETRIES",
84 "DEFAULT_SCRIPT_TIMEOUT_SECONDS",
85 "DEFAULT_SKILL_DIRECTORIES",
86 "DEFAULT_SKILL_PATHS",
87 "DEFAULT_TIMEOUT_S",
88 "ENV_NESTED_DELIMITER",
89 "ENV_PREFIX",
90 "__version__",
91]