File size: 1,486 Bytes
80a4a65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d00336f
80a4a65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d00336f
80a4a65
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""Core constants and small pure-Python helpers.

Nothing in this package performs I/O — only constants, mappings, and
deterministic utility functions safe to import from anywhere.
"""

from .constants import (
    CYBER_SECURITY_TOPICS,
    MODULE_TOPIC_MAP,
    TOPIC_KEYWORDS,
    FALLBACK_HTML,
    HELP_TEXT,
    WEB_EXPLOIT_MODULES,
    CERT_REQUIRED_COMPLETIONS,
    CERT_VERIFY_BASE_URL,
)
from .config import (
    SUPABASE_URL,
    SUPABASE_ANON_KEY,
    SUPABASE_EDGE_URL,
    GROQ_API_KEY,
    GROQ_API_URL,
    GROQ_MODEL,
    MISTRAL_API_KEY,
    MISTRAL_MODEL,
    MISTRAL_API_URL,
    CHALLENGE_FILES_BUCKET,
)
from .text import parse_json_safe
from .security import (
    normalize_vuln_key,
    normalize_str,
    ip_matches,
    ioc_matches,
    timestamp_close,
)
from .module_router import challenge_type_for_module

__all__ = [
    # constants
    "CYBER_SECURITY_TOPICS",
    "MODULE_TOPIC_MAP",
    "TOPIC_KEYWORDS",
    "FALLBACK_HTML",
    "HELP_TEXT",
    "WEB_EXPLOIT_MODULES",
    "CERT_REQUIRED_COMPLETIONS",
    "CERT_VERIFY_BASE_URL",
    # config
    "SUPABASE_URL",
    "SUPABASE_ANON_KEY",
    "SUPABASE_EDGE_URL",
    "GROQ_API_KEY",
    "GROQ_API_URL",
    "GROQ_MODEL",
    "MISTRAL_API_KEY",
    "MISTRAL_MODEL",
    "MISTRAL_API_URL",
    "CHALLENGE_FILES_BUCKET",
    # helpers
    "parse_json_safe",
    "normalize_vuln_key",
    "normalize_str",
    "ip_matches",
    "ioc_matches",
    "timestamp_close",
    "challenge_type_for_module",
]