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

1"""Constants for lexigram-ai-skills.""" 

2 

3from __future__ import annotations 

4 

5import importlib.metadata 

6 

7try: 

8 __version__: str = importlib.metadata.version("lexigram-ai-skills") 

9except ImportError: 

10 __version__ = "0.0.0" 

11 

12 

13# -- Environment Variable Prefixes ------------------------------------------- 

14 

15ENV_PREFIX: str = "LEX_AI_SKILLS__" 

16ENV_NESTED_DELIMITER: str = "__" 

17 

18# -- Execution Defaults ------------------------------------------------------ 

19 

20DEFAULT_TIMEOUT_S: float = 30.0 

21DEFAULT_MAX_RETRIES: int = 2 

22DEFAULT_MAX_CONCURRENT: int = 10 

23 

24# -- Cache Defaults ---------------------------------------------------------- 

25 

26DEFAULT_CACHE_ENABLED: bool = True 

27DEFAULT_CACHE_TTL_S: int = 3600 

28DEFAULT_CACHE_BACKEND: str = "in_memory" 

29 

30# -- Discovery Defaults ------------------------------------------------------ 

31 

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) 

40 

41# -- Skill Path Defaults ------------------------------------------------------- 

42 

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} 

54 

55DEFAULT_SKILL_PATHS: tuple[str, ...] = ( 

56 "~/.claude/skills", 

57 "~/.opencode/skills", 

58 "./skills", 

59) 

60 

61# -- Script Execution Defaults ------------------------------------------------- 

62 

63DEFAULT_SCRIPT_TIMEOUT_SECONDS: int = 30 

64DEFAULT_ALLOWED_SCRIPT_TYPES: tuple[str, ...] = ("py", "sh", "js") 

65DEFAULT_MAX_FILE_SIZE_BYTES: int = 1024 * 1024 # 1MB 

66 

67# -- Progressive Disclosure ----------------------------------------------------- 

68 

69DEFAULT_LAZY_LOAD_CONTEXT: bool = True 

70 

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]