exaai-agent 2.0.8__tar.gz → 2.0.9__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 (149) hide show
  1. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/PKG-INFO +1 -1
  2. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/llm.py +1 -0
  3. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/llm_traffic_controller.py +4 -4
  4. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/request_queue.py +4 -4
  5. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/pyproject.toml +1 -1
  6. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/LICENSE +0 -0
  7. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/README.md +0 -0
  8. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/__init__.py +0 -0
  9. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/ExaaiAgent/__init__.py +0 -0
  10. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/ExaaiAgent/exaai_agent.py +0 -0
  11. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/ExaaiAgent/system_prompt.jinja +0 -0
  12. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/__init__.py +0 -0
  13. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/agent_supervisor.py +0 -0
  14. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/base_agent.py +0 -0
  15. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/scan_modes.py +0 -0
  16. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/shared_memory.py +0 -0
  17. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/agents/state.py +0 -0
  18. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/__init__.py +0 -0
  19. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/assets/tui_styles.tcss +0 -0
  20. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/cli.py +0 -0
  21. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/main.py +0 -0
  22. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/__init__.py +0 -0
  23. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/agents_graph_renderer.py +0 -0
  24. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/base_renderer.py +0 -0
  25. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/browser_renderer.py +0 -0
  26. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/file_edit_renderer.py +0 -0
  27. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/finish_renderer.py +0 -0
  28. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/notes_renderer.py +0 -0
  29. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/proxy_renderer.py +0 -0
  30. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/python_renderer.py +0 -0
  31. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/registry.py +0 -0
  32. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/reporting_renderer.py +0 -0
  33. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/scan_info_renderer.py +0 -0
  34. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/terminal_renderer.py +0 -0
  35. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/thinking_renderer.py +0 -0
  36. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/user_message_renderer.py +0 -0
  37. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tool_components/web_search_renderer.py +0 -0
  38. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/tui.py +0 -0
  39. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/interface/utils.py +0 -0
  40. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/__init__.py +0 -0
  41. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/config.py +0 -0
  42. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/fallback.py +0 -0
  43. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/memory_compressor.py +0 -0
  44. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/output_processor.py +0 -0
  45. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/llm/utils.py +0 -0
  46. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/README.md +0 -0
  47. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/__init__.py +0 -0
  48. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/auto_loader.py +0 -0
  49. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/cloud/.gitkeep +0 -0
  50. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/cloud/aws_cloud_security.jinja +0 -0
  51. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/coordination/root_agent.jinja +0 -0
  52. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/custom/.gitkeep +0 -0
  53. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/frameworks/fastapi.jinja +0 -0
  54. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/frameworks/modern_js_frameworks.jinja +0 -0
  55. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/frameworks/nextjs.jinja +0 -0
  56. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/protocols/graphql.jinja +0 -0
  57. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/reconnaissance/.gitkeep +0 -0
  58. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/technologies/firebase_firestore.jinja +0 -0
  59. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/technologies/supabase.jinja +0 -0
  60. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/advanced_recon.jinja +0 -0
  61. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/api_security.jinja +0 -0
  62. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/authentication_jwt.jinja +0 -0
  63. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/broken_function_level_authorization.jinja +0 -0
  64. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/business_logic.jinja +0 -0
  65. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/cache_poisoning.jinja +0 -0
  66. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/cloud_security.jinja +0 -0
  67. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/csrf.jinja +0 -0
  68. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/deserialization.jinja +0 -0
  69. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/graphql_security.jinja +0 -0
  70. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/high_impact_bugs.jinja +0 -0
  71. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/http_smuggling.jinja +0 -0
  72. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/idor.jinja +0 -0
  73. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/information_disclosure.jinja +0 -0
  74. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/insecure_file_uploads.jinja +0 -0
  75. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/mass_assignment.jinja +0 -0
  76. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/oauth_oidc.jinja +0 -0
  77. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/open_redirect.jinja +0 -0
  78. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/path_traversal_lfi_rfi.jinja +0 -0
  79. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/post_exploitation.jinja +0 -0
  80. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/privilege_escalation.jinja +0 -0
  81. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/prototype_pollution.jinja +0 -0
  82. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/race_conditions.jinja +0 -0
  83. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/rce.jinja +0 -0
  84. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/react2shell.jinja +0 -0
  85. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/reconnaissance_osint.jinja +0 -0
  86. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/sql_injection.jinja +0 -0
  87. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/ssrf.jinja +0 -0
  88. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/ssti.jinja +0 -0
  89. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/subdomain_takeover.jinja +0 -0
  90. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/waf_bypass.jinja +0 -0
  91. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/websocket_security.jinja +0 -0
  92. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/xss.jinja +0 -0
  93. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/prompts/vulnerabilities/xxe.jinja +0 -0
  94. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/runtime/__init__.py +0 -0
  95. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/runtime/docker_runtime.py +0 -0
  96. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/runtime/runtime.py +0 -0
  97. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/runtime/tool_manager.py +0 -0
  98. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/runtime/tool_server.py +0 -0
  99. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/telemetry/__init__.py +0 -0
  100. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/telemetry/tracer.py +0 -0
  101. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/__init__.py +0 -0
  102. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/agents_graph/__init__.py +0 -0
  103. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/agents_graph/agents_graph_actions.py +0 -0
  104. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/agents_graph/agents_graph_actions_schema.xml +0 -0
  105. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/argument_parser.py +0 -0
  106. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/browser/__init__.py +0 -0
  107. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/browser/browser_actions.py +0 -0
  108. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/browser/browser_actions_schema.xml +0 -0
  109. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/browser/browser_instance.py +0 -0
  110. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/browser/tab_manager.py +0 -0
  111. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/executor.py +0 -0
  112. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/file_edit/__init__.py +0 -0
  113. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/file_edit/file_edit_actions.py +0 -0
  114. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/file_edit/file_edit_actions_schema.xml +0 -0
  115. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/finish/__init__.py +0 -0
  116. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/finish/finish_actions.py +0 -0
  117. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/finish/finish_actions_schema.xml +0 -0
  118. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/notes/__init__.py +0 -0
  119. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/notes/notes_actions.py +0 -0
  120. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/notes/notes_actions_schema.xml +0 -0
  121. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/proxy/__init__.py +0 -0
  122. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/proxy/proxy_actions.py +0 -0
  123. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/proxy/proxy_actions_schema.xml +0 -0
  124. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/proxy/proxy_manager.py +0 -0
  125. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/python/__init__.py +0 -0
  126. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/python/python_actions.py +0 -0
  127. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/python/python_actions_schema.xml +0 -0
  128. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/python/python_instance.py +0 -0
  129. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/python/python_manager.py +0 -0
  130. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/registry.py +0 -0
  131. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/reporting/__init__.py +0 -0
  132. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/reporting/reporting_actions.py +0 -0
  133. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/reporting/reporting_actions_schema.xml +0 -0
  134. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/response_analyzer.py +0 -0
  135. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/smart_fuzzer.py +0 -0
  136. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/terminal/__init__.py +0 -0
  137. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/terminal/terminal_actions.py +0 -0
  138. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/terminal/terminal_actions_schema.xml +0 -0
  139. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/terminal/terminal_manager.py +0 -0
  140. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/terminal/terminal_session.py +0 -0
  141. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/thinking/__init__.py +0 -0
  142. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/thinking/thinking_actions.py +0 -0
  143. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/thinking/thinking_actions_schema.xml +0 -0
  144. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/tool_prompts.py +0 -0
  145. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/vuln_validator.py +0 -0
  146. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/waf_bypass.py +0 -0
  147. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/web_search/__init__.py +0 -0
  148. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/exaaiagnt/tools/web_search/web_search_actions.py +0 -0
  149. {exaai_agent-2.0.8 → exaai_agent-2.0.9}/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.8
3
+ Version: 2.0.9
4
4
  Summary: ExaAi - Advanced AI Security Agent for Comprehensive Penetration Testing
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -17,6 +17,7 @@ from litellm.utils import supports_prompt_caching
17
17
 
18
18
  from exaaiagnt.llm.config import LLMConfig
19
19
  from exaaiagnt.llm.memory_compressor import MemoryCompressor
20
+ from exaaiagnt.llm.request_queue import get_global_queue
20
21
  from exaaiagnt.llm.llm_traffic_controller import get_traffic_controller, RequestPriority
21
22
  from exaaiagnt.llm.utils import _truncate_to_first_function, parse_tool_invocations
22
23
  from exaaiagnt.prompts import load_prompt_modules
@@ -73,8 +73,8 @@ class AdaptiveLLMController:
73
73
  # Rate limiting state
74
74
  self._last_request_time = 0.0
75
75
  self._consecutive_rate_limits = 0
76
- self._base_delay = 2.0 # Base delay between requests
77
- self._current_delay = 2.0
76
+ self._base_delay = 4.0 # Base delay between requests
77
+ self._current_delay = 4.0
78
78
  self._max_delay = 30.0
79
79
 
80
80
  # Statistics
@@ -88,8 +88,8 @@ class AdaptiveLLMController:
88
88
  self._tool_execution_lock = asyncio.Lock()
89
89
 
90
90
  # Configuration
91
- self._max_retries = 3
92
- self._rate_limit_wait = 6.0 # Wait time after rate limit
91
+ self._max_retries = 10 # Increased for Gemini
92
+ self._rate_limit_wait = 15.0 # Longer wait after rate limit
93
93
  self._enable_verbose_logging = False
94
94
 
95
95
  self._initialized = True
@@ -65,8 +65,8 @@ class LLMRequestQueue:
65
65
 
66
66
  def __init__(
67
67
  self,
68
- max_concurrent: int = 4,
69
- delay_between_requests: float = 2.0,
68
+ max_concurrent: int = 2,
69
+ delay_between_requests: float = 4.0,
70
70
  request_timeout: int = 300,
71
71
  ):
72
72
  # Load configuration from environment
@@ -161,8 +161,8 @@ class LLMRequestQueue:
161
161
  self._semaphore.release()
162
162
 
163
163
  @retry(
164
- stop=stop_after_attempt(10), # Increased from 7 to 10
165
- wait=wait_exponential(multiplier=2, min=5, max=120), # Better backoff
164
+ stop=stop_after_attempt(15), # Increased for rate limits
165
+ wait=wait_exponential(multiplier=3, min=10, max=180), # Longer delays
166
166
  retry=retry_if_exception(should_retry_exception),
167
167
  before_sleep=before_sleep_log(logger, logging.WARNING),
168
168
  reraise=True,
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "exaai-agent"
3
- version = "2.0.8"
3
+ version = "2.0.9"
4
4
  description = "ExaAi - Advanced AI Security Agent for Comprehensive Penetration Testing"
5
5
  authors = ["ExaAi Team <mahmedhleli@gmail.com>"]
6
6
  readme = "README.md"
File without changes
File without changes