exaai-agent 2.0.9__tar.gz → 2.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/PKG-INFO +48 -44
  2. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/README.md +47 -43
  3. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/cli.py +52 -31
  4. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/main.py +11 -1
  5. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tui.py +12 -8
  6. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/llm_traffic_controller.py +5 -3
  7. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/README.md +3 -1
  8. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/auto_loader.py +31 -0
  9. exaai_agent-2.1.2/exaaiagnt/prompts/cloud/azure_cloud_security.jinja +126 -0
  10. exaai_agent-2.1.2/exaaiagnt/prompts/cloud/gcp_cloud_security.jinja +158 -0
  11. exaai_agent-2.1.2/exaaiagnt/prompts/cloud/kubernetes_security.jinja +97 -0
  12. exaai_agent-2.1.2/exaaiagnt/prompts/vulnerabilities/prompt_injection.jinja +276 -0
  13. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/runtime/tool_manager.py +12 -3
  14. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/__init__.py +24 -0
  15. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/executor.py +1 -1
  16. exaai_agent-2.1.2/exaaiagnt/tools/k8s_scanner/__init__.py +29 -0
  17. exaai_agent-2.1.2/exaaiagnt/tools/k8s_scanner/k8s_actions.py +313 -0
  18. exaai_agent-2.1.2/exaaiagnt/tools/prompt_injection/__init__.py +26 -0
  19. exaai_agent-2.1.2/exaaiagnt/tools/prompt_injection/prompt_injection_actions.py +638 -0
  20. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/python/python_instance.py +11 -1
  21. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/response_analyzer.py +5 -3
  22. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/smart_fuzzer.py +5 -3
  23. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/vuln_validator.py +5 -3
  24. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/pyproject.toml +1 -1
  25. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/LICENSE +0 -0
  26. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/__init__.py +0 -0
  27. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/ExaaiAgent/__init__.py +0 -0
  28. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/ExaaiAgent/exaai_agent.py +0 -0
  29. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/ExaaiAgent/system_prompt.jinja +0 -0
  30. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/__init__.py +0 -0
  31. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/agent_supervisor.py +0 -0
  32. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/base_agent.py +0 -0
  33. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/scan_modes.py +0 -0
  34. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/shared_memory.py +0 -0
  35. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/agents/state.py +0 -0
  36. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/__init__.py +0 -0
  37. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/assets/tui_styles.tcss +0 -0
  38. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/__init__.py +0 -0
  39. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/agents_graph_renderer.py +0 -0
  40. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/base_renderer.py +0 -0
  41. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/browser_renderer.py +0 -0
  42. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/file_edit_renderer.py +0 -0
  43. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/finish_renderer.py +0 -0
  44. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/notes_renderer.py +0 -0
  45. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/proxy_renderer.py +0 -0
  46. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/python_renderer.py +0 -0
  47. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/registry.py +0 -0
  48. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/reporting_renderer.py +0 -0
  49. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/scan_info_renderer.py +0 -0
  50. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/terminal_renderer.py +0 -0
  51. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/thinking_renderer.py +0 -0
  52. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/user_message_renderer.py +0 -0
  53. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/tool_components/web_search_renderer.py +0 -0
  54. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/interface/utils.py +0 -0
  55. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/__init__.py +0 -0
  56. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/config.py +0 -0
  57. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/fallback.py +0 -0
  58. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/llm.py +0 -0
  59. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/memory_compressor.py +0 -0
  60. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/output_processor.py +0 -0
  61. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/request_queue.py +0 -0
  62. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/llm/utils.py +0 -0
  63. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/__init__.py +0 -0
  64. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/cloud/.gitkeep +0 -0
  65. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/cloud/aws_cloud_security.jinja +0 -0
  66. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/coordination/root_agent.jinja +0 -0
  67. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/custom/.gitkeep +0 -0
  68. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/frameworks/fastapi.jinja +0 -0
  69. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/frameworks/modern_js_frameworks.jinja +0 -0
  70. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/frameworks/nextjs.jinja +0 -0
  71. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/protocols/graphql.jinja +0 -0
  72. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/reconnaissance/.gitkeep +0 -0
  73. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/technologies/firebase_firestore.jinja +0 -0
  74. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/technologies/supabase.jinja +0 -0
  75. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/advanced_recon.jinja +0 -0
  76. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/api_security.jinja +0 -0
  77. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/authentication_jwt.jinja +0 -0
  78. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/broken_function_level_authorization.jinja +0 -0
  79. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/business_logic.jinja +0 -0
  80. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/cache_poisoning.jinja +0 -0
  81. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/cloud_security.jinja +0 -0
  82. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/csrf.jinja +0 -0
  83. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/deserialization.jinja +0 -0
  84. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/graphql_security.jinja +0 -0
  85. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/high_impact_bugs.jinja +0 -0
  86. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/http_smuggling.jinja +0 -0
  87. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/idor.jinja +0 -0
  88. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/information_disclosure.jinja +0 -0
  89. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/insecure_file_uploads.jinja +0 -0
  90. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/mass_assignment.jinja +0 -0
  91. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/oauth_oidc.jinja +0 -0
  92. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/open_redirect.jinja +0 -0
  93. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/path_traversal_lfi_rfi.jinja +0 -0
  94. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/post_exploitation.jinja +0 -0
  95. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/privilege_escalation.jinja +0 -0
  96. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/prototype_pollution.jinja +0 -0
  97. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/race_conditions.jinja +0 -0
  98. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/rce.jinja +0 -0
  99. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/react2shell.jinja +0 -0
  100. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/reconnaissance_osint.jinja +0 -0
  101. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/sql_injection.jinja +0 -0
  102. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/ssrf.jinja +0 -0
  103. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/ssti.jinja +0 -0
  104. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/subdomain_takeover.jinja +0 -0
  105. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/waf_bypass.jinja +0 -0
  106. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/websocket_security.jinja +0 -0
  107. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/xss.jinja +0 -0
  108. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/prompts/vulnerabilities/xxe.jinja +0 -0
  109. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/runtime/__init__.py +0 -0
  110. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/runtime/docker_runtime.py +0 -0
  111. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/runtime/runtime.py +0 -0
  112. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/runtime/tool_server.py +0 -0
  113. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/telemetry/__init__.py +0 -0
  114. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/telemetry/tracer.py +0 -0
  115. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/agents_graph/__init__.py +0 -0
  116. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/agents_graph/agents_graph_actions.py +0 -0
  117. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/agents_graph/agents_graph_actions_schema.xml +0 -0
  118. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/argument_parser.py +0 -0
  119. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/browser/__init__.py +0 -0
  120. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/browser/browser_actions.py +0 -0
  121. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/browser/browser_actions_schema.xml +0 -0
  122. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/browser/browser_instance.py +0 -0
  123. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/browser/tab_manager.py +0 -0
  124. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/file_edit/__init__.py +0 -0
  125. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/file_edit/file_edit_actions.py +0 -0
  126. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/file_edit/file_edit_actions_schema.xml +0 -0
  127. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/finish/__init__.py +0 -0
  128. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/finish/finish_actions.py +0 -0
  129. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/finish/finish_actions_schema.xml +0 -0
  130. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/notes/__init__.py +0 -0
  131. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/notes/notes_actions.py +0 -0
  132. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/notes/notes_actions_schema.xml +0 -0
  133. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/proxy/__init__.py +0 -0
  134. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/proxy/proxy_actions.py +0 -0
  135. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/proxy/proxy_actions_schema.xml +0 -0
  136. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/proxy/proxy_manager.py +0 -0
  137. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/python/__init__.py +0 -0
  138. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/python/python_actions.py +0 -0
  139. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/python/python_actions_schema.xml +0 -0
  140. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/python/python_manager.py +0 -0
  141. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/registry.py +0 -0
  142. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/reporting/__init__.py +0 -0
  143. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/reporting/reporting_actions.py +0 -0
  144. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/reporting/reporting_actions_schema.xml +0 -0
  145. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/terminal/__init__.py +0 -0
  146. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/terminal/terminal_actions.py +0 -0
  147. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/terminal/terminal_actions_schema.xml +0 -0
  148. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/terminal/terminal_manager.py +0 -0
  149. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/terminal/terminal_session.py +0 -0
  150. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/thinking/__init__.py +0 -0
  151. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/thinking/thinking_actions.py +0 -0
  152. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/thinking/thinking_actions_schema.xml +0 -0
  153. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/tool_prompts.py +0 -0
  154. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/waf_bypass.py +0 -0
  155. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/web_search/__init__.py +0 -0
  156. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/web_search/web_search_actions.py +0 -0
  157. {exaai_agent-2.0.9 → exaai_agent-2.1.2}/exaaiagnt/tools/web_search/web_search_actions_schema.xml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: exaai-agent
3
- Version: 2.0.9
3
+ Version: 2.1.2
4
4
  Summary: ExaAi - Advanced AI Security Agent for Comprehensive Penetration Testing
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -53,57 +53,60 @@ Description-Content-Type: text/markdown
53
53
  [![Python](https://img.shields.io/pypi/pyversions/exaai-agent?color=3776AB)](https://pypi.org/project/exaai-agent/)
54
54
  [![PyPI](https://img.shields.io/pypi/v/exaai-agent?color=10b981)](https://pypi.org/project/exaai-agent/)
55
55
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
56
- [![Version](https://img.shields.io/badge/version-2.1.0-00d4ff.svg)]()
56
+ [![Version](https://img.shields.io/badge/version-2.1.2-00d4ff.svg)]()
57
57
 
58
58
  </div>
59
59
 
60
60
  <br>
61
61
 
62
62
  > [!TIP]
63
- > **🚀 v2.1.0 Released!** React2Shell Detection (CVE-2025-55182), Cloud Security Testing, Smart Fuzzing, and CLI improvements with `exaai` command!
63
+ > **🚀 v2.1.2 Released!** Now supports **AI Agent Integration (OpenClaw)**, Kubernetes Security, Azure/GCP modules, and Prompt Injection detection.
64
+ >
65
+ > 🤖 **Connect Your Agent:** You can now control ExaAiAgent via any AI agent (OpenClaw, etc).
66
+ > Just send this command to your agent:
67
+ > ```
68
+ > Read https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/SKILL.md and follow the instructions to join ExaAiAgent
69
+ > ```
64
70
 
65
71
  ---
66
72
 
67
- ## 🔥 What's New in v2.1.0
73
+ ## 🔥 What's New in v2.1.2
68
74
 
69
- ### 🚨 React2Shell Detection (CVE-2025-55182)
75
+ ### 🤖 AI Agent Integration (OpenClaw)
70
76
 
71
- New critical vulnerability scanner for **React Server Components**:
77
+ Seamlessly integrate ExaAiAgent with your AI workforce:
72
78
 
73
- - **CVSS 10.0** - Unauthenticated RCE via RSC Flight protocol
74
- - Auto-detects Next.js 15.x/16.x, React 19.x applications
75
- - Complete exploitation methodology and PoC generation
76
- - WAF bypass techniques included
79
+ - **Agent Control**: Control scans via OpenClaw or any agent framework
80
+ - **Auto-Discovery**: Agents can read `SKILL.md` to self-onboard
81
+ - **Output Optimization**: Tools now output cleaner data (no ANSI codes) for LLM consumption
77
82
 
78
- ### ☁️ AWS & Cloud Security
83
+ ### Kubernetes & Cloud Security (Updated)
79
84
 
80
- Comprehensive cloud infrastructure testing:
85
+ Expanded coverage for cloud-native infrastructure:
81
86
 
82
- - **AWS**: EC2 Metadata SSRF, S3 buckets, IAM escalation, Lambda
83
- - **Azure**: Blob storage, Managed Identity, Azure AD
84
- - **GCP**: Cloud Storage, Service Account abuse
85
- - **Kubernetes**: RBAC, Secrets, Pod escape
87
+ - **Kubernetes**: Deep RBAC auditing, Pod Security Standards (PSS), Network Policy checks
88
+ - **Azure**: Blob Storage, Entra ID (Azure AD), Key Vault auditing
89
+ - **GCP**: Cloud Storage, IAM, Service Account key leaks
90
+ - **Prompt Injection**: Dedicated scanner for AI/LLM applications
86
91
 
87
- ### Smart Security Tools
92
+ ### 🛡️ Smart Security Tools
88
93
 
89
94
  | Tool | Capability |
90
95
  |------|------------|
91
- | **Smart Fuzzer** | Context-aware payloads, parameter type detection |
96
+ | **Smart Fuzzer** | Thread-safe, context-aware fuzzing with rate limiting |
92
97
  | **Response Analyzer** | SQL errors, stack traces, sensitive data detection |
93
- | **Vuln Validator** | PoC generation, CVSS scoring, remediation advice |
94
- | **WAF Bypass** | Multi-layer bypass techniques |
98
+ | **Vuln Validator** | PoC generation with false positive reduction |
99
+ | **WAF Bypass** | Multi-layer bypass for Cloudflare, Akamai, AWS WAF |
95
100
 
96
- ### ⚡ CLI Improvements
101
+ ### ⚡ CLI & Stability
97
102
 
98
- ```bash
99
- # New command (shorter!)
100
- exaai --target https://example.com
101
-
102
- # Version check
103
- exaai --version
103
+ - **Thread-Safety**: Fixed race conditions in async scans
104
+ - **Resource Management**: Auto-shutdown and cleanup of background processes
105
+ - **Installation**: Robust `install.sh` for Linux/macOS (bash/zsh/fish)
104
106
 
105
- # TUI mode
106
- exaai tui
107
+ ```bash
108
+ # New install script
109
+ curl -sSL https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/install.sh | bash
107
110
  ```
108
111
 
109
112
  ---
@@ -146,6 +149,11 @@ ExaAiAgent is an elite AI-powered cybersecurity agent that acts like a real pene
146
149
 
147
150
  ```bash
148
151
  # Install ExaAiAgent
152
+
153
+ # Method 1: Automated Script (Recommended)
154
+ curl -sSL https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/install.sh | bash
155
+
156
+ # Method 2: pipx
149
157
  pipx install exaai-agent
150
158
 
151
159
  # Configure your AI provider (choose one)
@@ -287,7 +295,7 @@ jobs:
287
295
  - uses: actions/checkout@v4
288
296
 
289
297
  - name: Install ExaAiAgent
290
- run: pipx install exaai-agent
298
+ run: curl -sSL https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/install.sh | bash
291
299
 
292
300
  - name: Run ExaAiAgent
293
301
  env:
@@ -339,26 +347,22 @@ export PERPLEXITY_API_KEY="key" # For search capabilities
339
347
  | `oauth_oidc` | OAuth2/OIDC flaws |
340
348
  | `waf_bypass` | WAF bypass techniques |
341
349
  | `subdomain_takeover` | Subdomain takeover |
350
+ | `prompt_injection` | AI/LLM prompt injection attacks |
351
+ | `kubernetes_security` | **NEW!** K8s RBAC & Pod Security auditing |
342
352
 
343
353
  ---
344
354
 
345
355
  ## 🆕 Changelog
346
356
 
347
- ### v2.0.0 (Latest)
348
-
349
- - **Smart Auto-Module Loading** - Automatically detects target type
350
- - **Token Optimization** - Lightweight mode & task scaling
351
- - 🛡️ **5 New Security Modules** - GraphQL, WebSocket, OAuth, WAF, Subdomain
352
- - 🎨 **New UI/Branding** - Fresh ExaAi logo with Cyan/Purple theme
353
- - 📊 **Improved Performance** - Reduced unnecessary LLM calls
354
-
355
- ### v1.0.0
357
+ ### v2.1.2 (Latest)
358
+ - **AI Agent Integration**: OpenClaw/Agent compatibility
359
+ - **Stability Fixes**: ToolManager thread-safety, Resource cleanup
360
+ - **DevEx**: New `install.sh` script, improved logging
356
361
 
357
- - Multi-LLM Load Balancing
358
- - Enhanced Context Management
359
- - Specialized Agents
360
- - Advanced Prompts
361
- - Improved Reporting
362
+ ### v2.1.0
363
+ - **New Modules**: K8s, Azure, GCP, Prompt Injection
364
+ - **React2Shell**: CVE-2025-55182 detection
365
+ - **Auto-Discovery**: Improved target detection
362
366
 
363
367
  ---
364
368
 
@@ -11,57 +11,60 @@
11
11
  [![Python](https://img.shields.io/pypi/pyversions/exaai-agent?color=3776AB)](https://pypi.org/project/exaai-agent/)
12
12
  [![PyPI](https://img.shields.io/pypi/v/exaai-agent?color=10b981)](https://pypi.org/project/exaai-agent/)
13
13
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
14
- [![Version](https://img.shields.io/badge/version-2.1.0-00d4ff.svg)]()
14
+ [![Version](https://img.shields.io/badge/version-2.1.2-00d4ff.svg)]()
15
15
 
16
16
  </div>
17
17
 
18
18
  <br>
19
19
 
20
20
  > [!TIP]
21
- > **🚀 v2.1.0 Released!** React2Shell Detection (CVE-2025-55182), Cloud Security Testing, Smart Fuzzing, and CLI improvements with `exaai` command!
21
+ > **🚀 v2.1.2 Released!** Now supports **AI Agent Integration (OpenClaw)**, Kubernetes Security, Azure/GCP modules, and Prompt Injection detection.
22
+ >
23
+ > 🤖 **Connect Your Agent:** You can now control ExaAiAgent via any AI agent (OpenClaw, etc).
24
+ > Just send this command to your agent:
25
+ > ```
26
+ > Read https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/SKILL.md and follow the instructions to join ExaAiAgent
27
+ > ```
22
28
 
23
29
  ---
24
30
 
25
- ## 🔥 What's New in v2.1.0
31
+ ## 🔥 What's New in v2.1.2
26
32
 
27
- ### 🚨 React2Shell Detection (CVE-2025-55182)
33
+ ### 🤖 AI Agent Integration (OpenClaw)
28
34
 
29
- New critical vulnerability scanner for **React Server Components**:
35
+ Seamlessly integrate ExaAiAgent with your AI workforce:
30
36
 
31
- - **CVSS 10.0** - Unauthenticated RCE via RSC Flight protocol
32
- - Auto-detects Next.js 15.x/16.x, React 19.x applications
33
- - Complete exploitation methodology and PoC generation
34
- - WAF bypass techniques included
37
+ - **Agent Control**: Control scans via OpenClaw or any agent framework
38
+ - **Auto-Discovery**: Agents can read `SKILL.md` to self-onboard
39
+ - **Output Optimization**: Tools now output cleaner data (no ANSI codes) for LLM consumption
35
40
 
36
- ### ☁️ AWS & Cloud Security
41
+ ### Kubernetes & Cloud Security (Updated)
37
42
 
38
- Comprehensive cloud infrastructure testing:
43
+ Expanded coverage for cloud-native infrastructure:
39
44
 
40
- - **AWS**: EC2 Metadata SSRF, S3 buckets, IAM escalation, Lambda
41
- - **Azure**: Blob storage, Managed Identity, Azure AD
42
- - **GCP**: Cloud Storage, Service Account abuse
43
- - **Kubernetes**: RBAC, Secrets, Pod escape
45
+ - **Kubernetes**: Deep RBAC auditing, Pod Security Standards (PSS), Network Policy checks
46
+ - **Azure**: Blob Storage, Entra ID (Azure AD), Key Vault auditing
47
+ - **GCP**: Cloud Storage, IAM, Service Account key leaks
48
+ - **Prompt Injection**: Dedicated scanner for AI/LLM applications
44
49
 
45
- ### Smart Security Tools
50
+ ### 🛡️ Smart Security Tools
46
51
 
47
52
  | Tool | Capability |
48
53
  |------|------------|
49
- | **Smart Fuzzer** | Context-aware payloads, parameter type detection |
54
+ | **Smart Fuzzer** | Thread-safe, context-aware fuzzing with rate limiting |
50
55
  | **Response Analyzer** | SQL errors, stack traces, sensitive data detection |
51
- | **Vuln Validator** | PoC generation, CVSS scoring, remediation advice |
52
- | **WAF Bypass** | Multi-layer bypass techniques |
56
+ | **Vuln Validator** | PoC generation with false positive reduction |
57
+ | **WAF Bypass** | Multi-layer bypass for Cloudflare, Akamai, AWS WAF |
53
58
 
54
- ### ⚡ CLI Improvements
59
+ ### ⚡ CLI & Stability
55
60
 
56
- ```bash
57
- # New command (shorter!)
58
- exaai --target https://example.com
59
-
60
- # Version check
61
- exaai --version
61
+ - **Thread-Safety**: Fixed race conditions in async scans
62
+ - **Resource Management**: Auto-shutdown and cleanup of background processes
63
+ - **Installation**: Robust `install.sh` for Linux/macOS (bash/zsh/fish)
62
64
 
63
- # TUI mode
64
- exaai tui
65
+ ```bash
66
+ # New install script
67
+ curl -sSL https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/install.sh | bash
65
68
  ```
66
69
 
67
70
  ---
@@ -104,6 +107,11 @@ ExaAiAgent is an elite AI-powered cybersecurity agent that acts like a real pene
104
107
 
105
108
  ```bash
106
109
  # Install ExaAiAgent
110
+
111
+ # Method 1: Automated Script (Recommended)
112
+ curl -sSL https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/install.sh | bash
113
+
114
+ # Method 2: pipx
107
115
  pipx install exaai-agent
108
116
 
109
117
  # Configure your AI provider (choose one)
@@ -245,7 +253,7 @@ jobs:
245
253
  - uses: actions/checkout@v4
246
254
 
247
255
  - name: Install ExaAiAgent
248
- run: pipx install exaai-agent
256
+ run: curl -sSL https://raw.githubusercontent.com/hleliofficiel/ExaAiAgent/main/install.sh | bash
249
257
 
250
258
  - name: Run ExaAiAgent
251
259
  env:
@@ -297,26 +305,22 @@ export PERPLEXITY_API_KEY="key" # For search capabilities
297
305
  | `oauth_oidc` | OAuth2/OIDC flaws |
298
306
  | `waf_bypass` | WAF bypass techniques |
299
307
  | `subdomain_takeover` | Subdomain takeover |
308
+ | `prompt_injection` | AI/LLM prompt injection attacks |
309
+ | `kubernetes_security` | **NEW!** K8s RBAC & Pod Security auditing |
300
310
 
301
311
  ---
302
312
 
303
313
  ## 🆕 Changelog
304
314
 
305
- ### v2.0.0 (Latest)
306
-
307
- - **Smart Auto-Module Loading** - Automatically detects target type
308
- - **Token Optimization** - Lightweight mode & task scaling
309
- - 🛡️ **5 New Security Modules** - GraphQL, WebSocket, OAuth, WAF, Subdomain
310
- - 🎨 **New UI/Branding** - Fresh ExaAi logo with Cyan/Purple theme
311
- - 📊 **Improved Performance** - Reduced unnecessary LLM calls
312
-
313
- ### v1.0.0
315
+ ### v2.1.2 (Latest)
316
+ - **AI Agent Integration**: OpenClaw/Agent compatibility
317
+ - **Stability Fixes**: ToolManager thread-safety, Resource cleanup
318
+ - **DevEx**: New `install.sh` script, improved logging
314
319
 
315
- - Multi-LLM Load Balancing
316
- - Enhanced Context Management
317
- - Specialized Agents
318
- - Advanced Prompts
319
- - Improved Reporting
320
+ ### v2.1.0
321
+ - **New Modules**: K8s, Azure, GCP, Prompt Injection
322
+ - **React2Shell**: CVE-2025-55182 detection
323
+ - **Auto-Discovery**: Improved target detection
320
324
 
321
325
  ---
322
326
 
@@ -31,38 +31,54 @@ BANNER = r"""
31
31
 
32
32
 
33
33
  async def run_cli(args: Any) -> None: # noqa: PLR0915
34
- console = Console()
34
+ # Detect if running in a real terminal or headless (pipe/background)
35
+ is_tty = sys.stdout.isatty()
36
+ console = Console(force_terminal=is_tty, no_color=not is_tty)
35
37
 
36
- # Clear screen and show banner
37
- console.clear()
38
- console.print()
39
- console.print(BANNER, style="bold cyan", justify="center")
40
- console.print("[bold purple]Advanced AI-Powered Cybersecurity Agent[/]", justify="center")
41
- console.print("[dim]v2.0.0[/]", justify="center")
42
- console.print()
43
-
44
- # Target info table
45
- target_table = Table(show_header=True, header_style="bold cyan", border_style="cyan")
46
- target_table.add_column("Type", style="dim")
47
- target_table.add_column("Target", style="white")
48
-
49
- for target_info in args.targets_info:
50
- target_type = target_info.get("type", "URL")
51
- target_table.add_row(target_type, target_info["original"])
52
-
53
- console.print(Panel(target_table, title="[bold cyan]🎯 Targets", border_style="cyan"))
54
- console.print()
38
+ if is_tty:
39
+ # Clear screen and show banner only in interactive terminal
40
+ console.clear()
41
+ console.print()
42
+ console.print(BANNER, style="bold cyan", justify="center")
43
+ console.print("[bold purple]Advanced AI-Powered Cybersecurity Agent[/]", justify="center")
44
+ console.print("[dim]v2.1.2[/]", justify="center")
45
+ console.print()
46
+ else:
47
+ # Simple text output for headless/pipe mode
48
+ print("=" * 50)
49
+ print("ExaAiAgent - AI-Powered Security Scanner")
50
+ print("=" * 50)
51
+
52
+ if is_tty:
53
+ # Target info table (rich formatting)
54
+ target_table = Table(show_header=True, header_style="bold cyan", border_style="cyan")
55
+ target_table.add_column("Type", style="dim")
56
+ target_table.add_column("Target", style="white")
57
+
58
+ for target_info in args.targets_info:
59
+ target_type = target_info.get("type", "URL")
60
+ target_table.add_row(target_type, target_info["original"])
61
+
62
+ console.print(Panel(target_table, title="[bold cyan]🎯 Targets", border_style="cyan"))
63
+ console.print()
55
64
 
56
- # Config info
57
- config_text = Text()
58
- config_text.append("📁 Results: ", style="dim")
59
- config_text.append(f"exaai_runs/{args.run_name}\n", style="white")
60
- if args.instruction:
61
- config_text.append("📝 Instruction: ", style="dim")
62
- config_text.append(f"{args.instruction[:100]}{'...' if len(args.instruction) > 100 else ''}", style="white")
63
-
64
- console.print(Panel(config_text, title="[bold green]⚙️ Configuration", border_style="green"))
65
- console.print()
65
+ # Config info
66
+ config_text = Text()
67
+ config_text.append("📁 Results: ", style="dim")
68
+ config_text.append(f"exaai_runs/{args.run_name}\n", style="white")
69
+ if args.instruction:
70
+ config_text.append("📝 Instruction: ", style="dim")
71
+ config_text.append(f"{args.instruction[:100]}{'...' if len(args.instruction) > 100 else ''}", style="white")
72
+
73
+ console.print(Panel(config_text, title="[bold green]⚙️ Configuration", border_style="green"))
74
+ console.print()
75
+ else:
76
+ # Simple text output for headless mode
77
+ print(f"Targets: {[t['original'] for t in args.targets_info]}")
78
+ print(f"Results: exaai_runs/{args.run_name}")
79
+ if args.instruction:
80
+ print(f"Instruction: {args.instruction[:100]}")
81
+ print("-" * 50)
66
82
 
67
83
  scan_config = {
68
84
  "scan_id": args.run_name,
@@ -71,7 +87,12 @@ async def run_cli(args: Any) -> None: # noqa: PLR0915
71
87
  "run_name": args.run_name,
72
88
  }
73
89
 
74
- llm_config = LLMConfig()
90
+ # Handle prompt modules
91
+ prompt_modules = None
92
+ if getattr(args, "prompt_modules", None):
93
+ prompt_modules = [m.strip() for m in args.prompt_modules.split(",")]
94
+
95
+ llm_config = LLMConfig(prompt_modules=prompt_modules)
75
96
  agent_config = {
76
97
  "llm_config": llm_config,
77
98
  "max_iterations": 300,
@@ -242,7 +242,7 @@ async def warm_up_llm() -> None:
242
242
 
243
243
  def get_version() -> str:
244
244
  """Get the current ExaAi version."""
245
- return "2.1.0"
245
+ return "2.1.2"
246
246
 
247
247
 
248
248
  def parse_arguments() -> argparse.Namespace:
@@ -276,6 +276,10 @@ Examples:
276
276
  # Custom instructions
277
277
  exaai -t example.com -i "Focus on authentication vulnerabilities"
278
278
  exaai -t example.com --instruction ./instructions.txt
279
+
280
+ # Specific security modules
281
+ exaai -t example.com --prompt-modules kubernetes_security,cloud_security
282
+ exaai -t example.com --prompt-modules prompt_injection
279
283
  """,
280
284
  )
281
285
 
@@ -306,6 +310,12 @@ Examples:
306
310
  "or test credentials (e.g., 'Use the following credentials: admin:password123'). "
307
311
  "You can also provide a path to a file containing detailed instructions.",
308
312
  )
313
+ parser.add_argument(
314
+ "--prompt-modules",
315
+ type=str,
316
+ help="Comma-separated list of prompt modules to load (e.g., 'kubernetes_security,prompt_injection'). "
317
+ "Overrides auto-detection.",
318
+ )
309
319
  parser.add_argument(
310
320
  "--run-name",
311
321
  type=str,
@@ -45,7 +45,7 @@ def get_package_version() -> str:
45
45
  return pkg_version("exaai-agent")
46
46
  except PackageNotFoundError:
47
47
  # Fallback version if package not installed
48
- return "2.0.4"
48
+ return "2.1.2"
49
49
 
50
50
 
51
51
  class ChatTextArea(TextArea): # type: ignore[misc]
@@ -80,7 +80,7 @@ class SplashScreen(Static): # type: ignore[misc]
80
80
  NEON_ORANGE = "#ff8800"
81
81
  SOFT_WHITE = "#e0e0e0"
82
82
 
83
- # Enhanced ASCII Logo - ExaAi v2.0.4
83
+ # Enhanced ASCII Logo - ExaAi v2.1.2
84
84
  BANNER = r"""
85
85
  ███████╗██╗ ██╗ █████╗ █████╗ ██╗
86
86
  ██╔════╝╚██╗██╔╝██╔══██╗ ██╔══██╗██║
@@ -104,7 +104,7 @@ class SplashScreen(Static): # type: ignore[misc]
104
104
  self._animation_step = 0
105
105
  self._animation_timer: Timer | None = None
106
106
  self._panel_static: Static | None = None
107
- self._version = "2.1.0"
107
+ self._version = "2.1.2"
108
108
 
109
109
  def compose(self) -> ComposeResult:
110
110
  self._version = get_package_version()
@@ -181,14 +181,14 @@ class SplashScreen(Static): # type: ignore[misc]
181
181
  return text
182
182
 
183
183
  def _build_new_features_text(self) -> Text:
184
- """Build new features highlight for v2.0.4."""
184
+ """Build new features highlight for v2.1.0."""
185
185
  text = Text("🔥 ", style=Style(color=self.NEON_ORANGE))
186
186
  text.append("NEW: ", style=Style(color=self.NEON_ORANGE, bold=True))
187
- text.append("React2Shell", style=Style(color=self.NEON_PINK))
187
+ text.append("K8s Security", style=Style(color=self.NEON_PINK))
188
188
  text.append(" • ", style=Style(color=self.SOFT_WHITE, dim=True))
189
- text.append("Cloud Security", style=Style(color=self.NEON_CYAN))
189
+ text.append("Prompt Injection", style=Style(color=self.NEON_CYAN))
190
190
  text.append(" • ", style=Style(color=self.SOFT_WHITE, dim=True))
191
- text.append("Auto-Discovery", style=Style(color=self.NEON_GREEN))
191
+ text.append("Azure/GCP", style=Style(color=self.NEON_GREEN))
192
192
  return text
193
193
 
194
194
 
@@ -391,7 +391,11 @@ class ExaaiTUIApp(App): # type: ignore[misc]
391
391
  }
392
392
 
393
393
  def _build_agent_config(self, args: argparse.Namespace) -> dict[str, Any]:
394
- llm_config = LLMConfig()
394
+ prompt_modules = None
395
+ if getattr(args, "prompt_modules", None):
396
+ prompt_modules = [m.strip() for m in args.prompt_modules.split(",")]
397
+
398
+ llm_config = LLMConfig(prompt_modules=prompt_modules)
395
399
 
396
400
  config = {
397
401
  "llm_config": llm_config,
@@ -54,11 +54,13 @@ class AdaptiveLLMController:
54
54
  """
55
55
 
56
56
  _instance: Optional["AdaptiveLLMController"] = None
57
+ _lock_cls = __import__("threading").Lock()
57
58
 
58
59
  def __new__(cls) -> "AdaptiveLLMController":
59
- if cls._instance is None:
60
- cls._instance = super().__new__(cls)
61
- cls._instance._initialized = False
60
+ with cls._lock_cls:
61
+ if cls._instance is None:
62
+ cls._instance = super().__new__(cls)
63
+ cls._instance._initialized = False
62
64
  return cls._instance
63
65
 
64
66
  def __init__(self):
@@ -43,12 +43,14 @@ The modules are dynamically injected into the agent's system prompt, allowing it
43
43
  | `race_conditions` | Race condition and TOCTOU exploits |
44
44
  | `path_traversal` | Directory traversal attacks |
45
45
 
46
- ### NEW: Advanced Modules
46
+ ### NEW: Advanced Modules (v2.1)
47
47
 
48
48
  | Module | Description |
49
49
  |--------|-------------|
50
50
  | `api_security` | REST, GraphQL, gRPC API security testing |
51
51
  | `cloud_security` | AWS, Azure, GCP security assessment |
52
+ | `kubernetes_security` | **NEW!** K8s RBAC, Pod Security, Network Policy audit |
53
+ | `prompt_injection` | **NEW!** AI/LLM prompt injection & jailbreaking |
52
54
  | `reconnaissance_osint` | Reconnaissance and OSINT techniques |
53
55
  | `privilege_escalation` | Linux/Windows privilege escalation |
54
56
  | `high_impact_bugs` | Bug bounty hunting for critical vulns |
@@ -210,6 +210,37 @@ MODULE_PATTERNS = {
210
210
  ],
211
211
  "keywords": ["aws", "s3", "ec2", "lambda", "azure", "gcp", "cloud", "bucket", "metadata"],
212
212
  },
213
+
214
+ # Kubernetes Security (NEW v2.1)
215
+ "kubernetes_security": {
216
+ "url_patterns": [
217
+ r"/api/v1/",
218
+ r"/apis/",
219
+ r":6443",
220
+ r":10250",
221
+ r":8443",
222
+ ],
223
+ "keywords": ["kubernetes", "k8s", "kubectl", "pod", "deployment", "service",
224
+ "ingress", "helm", "kubelet", "etcd", "rbac", "namespace"],
225
+ },
226
+
227
+ # AI/LLM Prompt Injection (NEW v2.1)
228
+ "prompt_injection": {
229
+ "url_patterns": [
230
+ r"/chat",
231
+ r"/completions",
232
+ r"/generate",
233
+ r"/ask",
234
+ r"/ai",
235
+ r"/llm",
236
+ r"/v1/chat",
237
+ r"/v1/completions",
238
+ r"/assistant",
239
+ ],
240
+ "keywords": ["openai", "anthropic", "llm", "gpt", "claude", "chatbot",
241
+ "ai assistant", "langchain", "llama", "gemini", "copilot",
242
+ "rag", "embedding", "vector", "prompt"],
243
+ },
213
244
  }
214
245
 
215
246