quantalogic 0.50.1__tar.gz → 0.50.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 (148) hide show
  1. {quantalogic-0.50.1 → quantalogic-0.50.2}/PKG-INFO +4 -1
  2. {quantalogic-0.50.1 → quantalogic-0.50.2}/pyproject.toml +5 -4
  3. quantalogic-0.50.2/quantalogic/tools/__init__.py +110 -0
  4. quantalogic-0.50.1/quantalogic/tools/__init__.py +0 -101
  5. {quantalogic-0.50.1 → quantalogic-0.50.2}/LICENSE +0 -0
  6. {quantalogic-0.50.1 → quantalogic-0.50.2}/README.md +0 -0
  7. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/__init__.py +0 -0
  8. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/agent.py +0 -0
  9. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/agent_config.py +0 -0
  10. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/agent_factory.py +0 -0
  11. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/coding_agent.py +0 -0
  12. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/config.py +0 -0
  13. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/console_print_events.py +0 -0
  14. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/console_print_token.py +0 -0
  15. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/docs_cli.py +0 -0
  16. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/event_emitter.py +0 -0
  17. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/__init__.py +0 -0
  18. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/flow.py +0 -0
  19. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/flow_extractor.py +0 -0
  20. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/flow_generator.py +0 -0
  21. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/flow_manager.py +0 -0
  22. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/flow_manager_schema.py +0 -0
  23. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/flow/flow_yaml.md +0 -0
  24. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/generative_model.py +0 -0
  25. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/get_model_info.py +0 -0
  26. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/interactive_text_editor.py +0 -0
  27. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/main.py +0 -0
  28. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/memory.py +0 -0
  29. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/model_info.py +0 -0
  30. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/model_info_list.py +0 -0
  31. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/model_info_litellm.py +0 -0
  32. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/model_names.py +0 -0
  33. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/prompts.py +0 -0
  34. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/quantlitellm.py +0 -0
  35. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/search_agent.py +0 -0
  36. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/__init__.py +0 -0
  37. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/agent_server.py +0 -0
  38. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/models.py +0 -0
  39. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/routes.py +0 -0
  40. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/state.py +0 -0
  41. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/static/js/event_visualizer.js +0 -0
  42. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/static/js/quantalogic.js +0 -0
  43. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/server/templates/index.html +0 -0
  44. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/task_file_reader.py +0 -0
  45. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/task_runner.py +0 -0
  46. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tool_manager.py +0 -0
  47. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/agent_tool.py +0 -0
  48. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/composio/composio.py +0 -0
  49. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/database/generate_database_report_tool.py +0 -0
  50. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/database/sql_query_tool_advanced.py +0 -0
  51. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_docx_tool.py +0 -0
  52. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_epub_tool.py +0 -0
  53. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_html_tool.py +0 -0
  54. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_ipynb_tool.py +0 -0
  55. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_latex_tool.py +0 -0
  56. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_pdf_tool.py +0 -0
  57. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/document_tools/markdown_to_pptx_tool.py +0 -0
  58. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/download_http_file_tool.py +0 -0
  59. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/duckduckgo_search_tool.py +0 -0
  60. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/edit_whole_content_tool.py +0 -0
  61. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/elixir_tool.py +0 -0
  62. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/execute_bash_command_tool.py +0 -0
  63. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/alpha_vantage_tool.py +0 -0
  64. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/ccxt_tool.py +0 -0
  65. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/finance_llm_tool.py +0 -0
  66. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/google_finance.py +0 -0
  67. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/market_intelligence_tool.py +0 -0
  68. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/technical_analysis_tool.py +0 -0
  69. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/tradingview_tool.py +0 -0
  70. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/finance/yahoo_finance.py +0 -0
  71. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/git/bitbucket_clone_repo_tool.py +0 -0
  72. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/git/bitbucket_operations_tool.py +0 -0
  73. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/git/clone_repo_tool.py +0 -0
  74. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/git/git_operations_tool.py +0 -0
  75. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/google_packages/google_news_tool.py +0 -0
  76. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/grep_app_tool.py +0 -0
  77. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/image_generation/dalle_e.py +0 -0
  78. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/input_question_tool.py +0 -0
  79. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/jinja_tool.py +0 -0
  80. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/__init__.py +0 -0
  81. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/c_handler.py +0 -0
  82. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/cpp_handler.py +0 -0
  83. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/go_handler.py +0 -0
  84. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/java_handler.py +0 -0
  85. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/javascript_handler.py +0 -0
  86. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/python_handler.py +0 -0
  87. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/rust_handler.py +0 -0
  88. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/scala_handler.py +0 -0
  89. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/language_handlers/typescript_handler.py +0 -0
  90. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/list_directory_tool.py +0 -0
  91. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/llm_tool.py +0 -0
  92. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/llm_vision_tool.py +0 -0
  93. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/markitdown_tool.py +0 -0
  94. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/nasa_packages/models.py +0 -0
  95. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/nasa_packages/nasa_apod_tool.py +0 -0
  96. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/nasa_packages/nasa_neows_tool.py +0 -0
  97. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/nasa_packages/services.py +0 -0
  98. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/nodejs_tool.py +0 -0
  99. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/presentation_tools/presentation_llm_tool.py +0 -0
  100. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/product_hunt/product_hunt_tool.py +0 -0
  101. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/product_hunt/services.py +0 -0
  102. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/python_tool.py +0 -0
  103. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/rag_tool/__init__.py +0 -0
  104. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/rag_tool/document_metadata.py +0 -0
  105. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/rag_tool/query_response.py +0 -0
  106. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/rag_tool/rag_tool.py +0 -0
  107. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/rag_tool/rag_tool_beta.py +0 -0
  108. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/read_file_block_tool.py +0 -0
  109. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/read_file_tool.py +0 -0
  110. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/read_html_tool.py +0 -0
  111. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/replace_in_file_tool.py +0 -0
  112. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/ripgrep_tool.py +0 -0
  113. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/safe_python_interpreter_tool.py +0 -0
  114. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/search_definition_names.py +0 -0
  115. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/sequence_tool.py +0 -0
  116. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/serpapi_search_tool.py +0 -0
  117. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/sql_query_tool.py +0 -0
  118. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/task_complete_tool.py +0 -0
  119. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/tool.py +0 -0
  120. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/unified_diff_tool.py +0 -0
  121. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/utilities/csv_processor_tool.py +0 -0
  122. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/utilities/download_file_tool.py +0 -0
  123. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/utilities/mermaid_validator_tool.py +0 -0
  124. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/utils/__init__.py +0 -0
  125. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/utils/create_sample_database.py +0 -0
  126. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/utils/generate_database_report.py +0 -0
  127. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/wikipedia_search_tool.py +0 -0
  128. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/tools/write_file_tool.py +0 -0
  129. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/__init__.py +0 -0
  130. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/ask_user_validation.py +0 -0
  131. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/async_utils.py +0 -0
  132. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/check_version.py +0 -0
  133. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/download_http_file.py +0 -0
  134. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/get_all_models.py +0 -0
  135. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/get_coding_environment.py +0 -0
  136. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/get_environment.py +0 -0
  137. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/get_quantalogic_rules_content.py +0 -0
  138. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/git_ls.py +0 -0
  139. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/lm_studio_model_info.py +0 -0
  140. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/python_interpreter.py +0 -0
  141. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/read_file.py +0 -0
  142. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/read_http_text_content.py +0 -0
  143. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/utils/xml_utility.py +0 -0
  144. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/version.py +0 -0
  145. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/version_check.py +0 -0
  146. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/welcome_message.py +0 -0
  147. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/xml_parser.py +0 -0
  148. {quantalogic-0.50.1 → quantalogic-0.50.2}/quantalogic/xml_tool_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantalogic
3
- Version: 0.50.1
3
+ Version: 0.50.2
4
4
  Summary: QuantaLogic ReAct Agents
5
5
  Author: Raphaël MANSUY
6
6
  Author-email: raphael.mansuy@gmail.com
@@ -9,11 +9,14 @@ Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Programming Language :: Python :: 3.12
10
10
  Classifier: Programming Language :: Python :: 3.13
11
11
  Requires-Dist: click (>=8.1.8,<9.0.0)
12
+ Requires-Dist: instructor (>=1.7.2,<2.0.0)
12
13
  Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
13
14
  Requires-Dist: litellm (>=1.56.4,<2.0.0)
14
15
  Requires-Dist: loguru (>=0.7.3,<0.8.0)
16
+ Requires-Dist: pathspec (>=0.12.1,<0.13.0)
15
17
  Requires-Dist: prompt-toolkit (>=3.0.48,<4.0.0)
16
18
  Requires-Dist: pydantic (>=2.10.4,<3.0.0)
19
+ Requires-Dist: requests (>=2.32.3,<3.0.0)
17
20
  Requires-Dist: rich (>=13.9.4,<14.0.0)
18
21
  Requires-Dist: tenacity (>=9.0.0,<10.0.0)
19
22
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "quantalogic"
3
- version = "0.50.1"
3
+ version = "0.50.2"
4
4
  description = "QuantaLogic ReAct Agents"
5
5
  authors = ["Raphaël MANSUY <raphael.mansuy@gmail.com>"]
6
6
  readme = "README.md"
@@ -17,6 +17,9 @@ tenacity = "^9.0.0"
17
17
  prompt-toolkit = "^3.0.48"
18
18
  click = "^8.1.8"
19
19
  jinja2 = "^3.1.5"
20
+ instructor = "^1.7.2"
21
+ requests = "^2.32.3"
22
+ pathspec = "^0.12.1"
20
23
 
21
24
  # Optional group for file-related tools
22
25
  [tool.poetry.group.file-tools]
@@ -76,7 +79,6 @@ llama-index-embeddings-bedrock = "^0.5.0"
76
79
  llama-index-vector-stores-chroma = "^0.4.1"
77
80
  llama-index-vector-stores-faiss = "^0.3.0"
78
81
  llmlingua = "^0.2.2"
79
- instructor = "^1.7.2"
80
82
 
81
83
  # Optional group for web and API tools
82
84
  [tool.poetry.group.web-tools]
@@ -87,7 +89,7 @@ boto3 = "^1.35.86"
87
89
  uvicorn = "^0.34.0"
88
90
  fastapi = "^0.115.6"
89
91
  websocket = "^0.2.1"
90
- requests = "^2.32.3"
92
+
91
93
  beautifulsoup4 = "^4.12.3"
92
94
  html2text = "^2024.2.26"
93
95
  python-multipart = "^0.0.20"
@@ -128,7 +130,6 @@ mkdocs = "^1.6.0"
128
130
  optional = true
129
131
 
130
132
  [tool.poetry.group.utilities.dependencies]
131
- pathspec = "^0.12.1"
132
133
  google-auth = "^2.20.0"
133
134
  toml = "^0.10.2"
134
135
  types-requests = "^2.32.0.20241016"
@@ -0,0 +1,110 @@
1
+ """Tools for the QuantaLogic agent."""
2
+
3
+ import importlib
4
+ import sys
5
+ from typing import Any, Dict
6
+
7
+
8
+ class LazyLoader:
9
+ """
10
+ Lazily import a module only when its attributes are accessed.
11
+ This helps reduce startup time by deferring imports until needed.
12
+ """
13
+ def __init__(self, module_path: str, optional: bool = False):
14
+ self.module_path = module_path
15
+ self._module = None
16
+ self.optional = optional
17
+
18
+ def __getattr__(self, name: str) -> Any:
19
+ if self._module is None:
20
+ try:
21
+ self._module = importlib.import_module(self.module_path)
22
+ except ImportError as e:
23
+ if self.optional:
24
+ # If the tool is optional, log a warning but don't raise an error
25
+ print(f"Warning: Optional tool {self.module_path} could not be imported: {e}")
26
+ return None
27
+ raise
28
+
29
+ return getattr(self._module, name)
30
+
31
+
32
+ # Map of tool names to their import paths and optional status
33
+ _TOOL_IMPORTS = {
34
+ "AgentTool": (".agent_tool", False),
35
+ "ComposioTool": (".composio.composio", False),
36
+ "GenerateDatabaseReportTool": (".database.generate_database_report_tool", False),
37
+ "SQLQueryToolAdvanced": (".database.sql_query_tool_advanced", False),
38
+ "MarkdownToDocxTool": (".document_tools.markdown_to_docx_tool", True),
39
+ "MarkdownToEpubTool": (".document_tools.markdown_to_epub_tool", True),
40
+ "MarkdownToHtmlTool": (".document_tools.markdown_to_html_tool", True),
41
+ "MarkdownToIpynbTool": (".document_tools.markdown_to_ipynb_tool", True),
42
+ "MarkdownToLatexTool": (".document_tools.markdown_to_latex_tool", True),
43
+ "MarkdownToPdfTool": (".document_tools.markdown_to_pdf_tool", True),
44
+ "MarkdownToPptxTool": (".document_tools.markdown_to_pptx_tool", True),
45
+ "DownloadHttpFileTool": (".download_http_file_tool", False),
46
+ "DuckDuckGoSearchTool": (".duckduckgo_search_tool", False),
47
+ "EditWholeContentTool": (".edit_whole_content_tool", False),
48
+ "ElixirTool": (".elixir_tool", False),
49
+ "ExecuteBashCommandTool": (".execute_bash_command_tool", False),
50
+ "BitbucketCloneTool": (".git.bitbucket_clone_repo_tool", False),
51
+ "BitbucketOperationsTool": (".git.bitbucket_operations_tool", False),
52
+ "CloneRepoTool": (".git.clone_repo_tool", False),
53
+ "GitOperationsTool": (".git.git_operations_tool", False),
54
+ "GoogleNewsTool": (".google_packages.google_news_tool", False),
55
+ "GrepAppTool": (".grep_app_tool", False),
56
+ "LLMImageGenerationTool": (".image_generation.dalle_e", False),
57
+ "InputQuestionTool": (".input_question_tool", False),
58
+ "JinjaTool": (".jinja_tool", False),
59
+ "ListDirectoryTool": (".list_directory_tool", False),
60
+ "LLMTool": (".llm_tool", False),
61
+ "LLMVisionTool": (".llm_vision_tool", False),
62
+ "MarkitdownTool": (".markitdown_tool", False),
63
+ "NasaApodTool": (".nasa_packages.nasa_apod_tool", False),
64
+ "NasaNeoWsTool": (".nasa_packages.nasa_neows_tool", False),
65
+ "NodeJsTool": (".nodejs_tool", False),
66
+ "PresentationLLMTool": (".presentation_tools.presentation_llm_tool", False),
67
+ "ProductHuntTool": (".product_hunt.product_hunt_tool", False),
68
+ "PythonTool": (".python_tool", False),
69
+ "RagTool": (".rag_tool.rag_tool", False),
70
+ "ReadFileBlockTool": (".read_file_block_tool", False),
71
+ "ReadFileTool": (".read_file_tool", False),
72
+ "ReadHTMLTool": (".read_html_tool", False),
73
+ "ReplaceInFileTool": (".replace_in_file_tool", False),
74
+ "RipgrepTool": (".ripgrep_tool", False),
75
+ "SafePythonInterpreterTool": (".safe_python_interpreter_tool", False),
76
+ "SearchDefinitionNames": (".search_definition_names", False),
77
+ "SequenceTool": (".sequence_tool", False),
78
+ "SerpApiSearchTool": (".serpapi_search_tool", False),
79
+ "SQLQueryTool": (".sql_query_tool", False),
80
+ "TaskCompleteTool": (".task_complete_tool", False),
81
+ "Tool": (".tool", False),
82
+ "ToolArgument": (".tool", False),
83
+ "UnifiedDiffTool": (".unified_diff_tool", False),
84
+ "CSVProcessorTool": (".utilities.csv_processor_tool", False),
85
+ "PrepareDownloadTool": (".utilities.download_file_tool", False),
86
+ "MermaidValidatorTool": (".utilities.mermaid_validator_tool", False),
87
+ "WikipediaSearchTool": (".wikipedia_search_tool", False),
88
+ "WriteFileTool": (".write_file_tool", False),
89
+ }
90
+
91
+ # Create lazy loaders for each module path
92
+ _lazy_modules: Dict[str, LazyLoader] = {}
93
+ for tool, (path, optional) in _TOOL_IMPORTS.items():
94
+ full_path = f"{__package__}{path}"
95
+ if full_path not in _lazy_modules:
96
+ _lazy_modules[full_path] = LazyLoader(full_path, optional)
97
+
98
+ # Set up attributes for lazy loading
99
+ _tools_to_lazy_modules = {}
100
+ for tool, (path, optional) in _TOOL_IMPORTS.items():
101
+ full_path = f"{__package__}{path}"
102
+ _tools_to_lazy_modules[tool] = _lazy_modules[full_path]
103
+
104
+ # Define __all__ so that import * works properly
105
+ __all__ = list(_TOOL_IMPORTS.keys())
106
+
107
+ # Set up lazy loading for each tool
108
+ for tool, lazy_module in _tools_to_lazy_modules.items():
109
+ # This will create properties that lazily load the requested tool
110
+ setattr(sys.modules[__name__], tool, getattr(lazy_module, tool))
@@ -1,101 +0,0 @@
1
- """Tools for the QuantaLogic agent."""
2
-
3
- import importlib
4
- import sys
5
- from typing import Any, Dict
6
-
7
-
8
- class LazyLoader:
9
- """
10
- Lazily import a module only when its attributes are accessed.
11
- This helps reduce startup time by deferring imports until needed.
12
- """
13
- def __init__(self, module_path: str):
14
- self.module_path = module_path
15
- self._module = None
16
-
17
- def __getattr__(self, name: str) -> Any:
18
- if self._module is None:
19
- self._module = importlib.import_module(self.module_path)
20
- return getattr(self._module, name)
21
-
22
-
23
- # Map of tool names to their import paths
24
- _TOOL_IMPORTS = {
25
- "AgentTool": ".agent_tool",
26
- "ComposioTool": ".composio.composio",
27
- "GenerateDatabaseReportTool": ".database.generate_database_report_tool",
28
- "SQLQueryToolAdvanced": ".database.sql_query_tool_advanced",
29
- "MarkdownToDocxTool": ".document_tools.markdown_to_docx_tool",
30
- "MarkdownToEpubTool": ".document_tools.markdown_to_epub_tool",
31
- "MarkdownToHtmlTool": ".document_tools.markdown_to_html_tool",
32
- "MarkdownToIpynbTool": ".document_tools.markdown_to_ipynb_tool",
33
- "MarkdownToLatexTool": ".document_tools.markdown_to_latex_tool",
34
- "MarkdownToPdfTool": ".document_tools.markdown_to_pdf_tool",
35
- "MarkdownToPptxTool": ".document_tools.markdown_to_pptx_tool",
36
- "DownloadHttpFileTool": ".download_http_file_tool",
37
- "DuckDuckGoSearchTool": ".duckduckgo_search_tool",
38
- "EditWholeContentTool": ".edit_whole_content_tool",
39
- "ElixirTool": ".elixir_tool",
40
- "ExecuteBashCommandTool": ".execute_bash_command_tool",
41
- "BitbucketCloneTool": ".git.bitbucket_clone_repo_tool",
42
- "BitbucketOperationsTool": ".git.bitbucket_operations_tool",
43
- "CloneRepoTool": ".git.clone_repo_tool",
44
- "GitOperationsTool": ".git.git_operations_tool",
45
- "GoogleNewsTool": ".google_packages.google_news_tool",
46
- "GrepAppTool": ".grep_app_tool",
47
- "LLMImageGenerationTool": ".image_generation.dalle_e",
48
- "InputQuestionTool": ".input_question_tool",
49
- "JinjaTool": ".jinja_tool",
50
- "ListDirectoryTool": ".list_directory_tool",
51
- "LLMTool": ".llm_tool",
52
- "LLMVisionTool": ".llm_vision_tool",
53
- "MarkitdownTool": ".markitdown_tool",
54
- "NasaApodTool": ".nasa_packages.nasa_apod_tool",
55
- "NasaNeoWsTool": ".nasa_packages.nasa_neows_tool",
56
- "NodeJsTool": ".nodejs_tool",
57
- "PresentationLLMTool": ".presentation_tools.presentation_llm_tool",
58
- "ProductHuntTool": ".product_hunt.product_hunt_tool",
59
- "PythonTool": ".python_tool",
60
- "RagTool": ".rag_tool.rag_tool",
61
- "ReadFileBlockTool": ".read_file_block_tool",
62
- "ReadFileTool": ".read_file_tool",
63
- "ReadHTMLTool": ".read_html_tool",
64
- "ReplaceInFileTool": ".replace_in_file_tool",
65
- "RipgrepTool": ".ripgrep_tool",
66
- "SafePythonInterpreterTool": ".safe_python_interpreter_tool",
67
- "SearchDefinitionNames": ".search_definition_names",
68
- "SequenceTool": ".sequence_tool",
69
- "SerpApiSearchTool": ".serpapi_search_tool",
70
- "SQLQueryTool": ".sql_query_tool",
71
- "TaskCompleteTool": ".task_complete_tool",
72
- "Tool": ".tool",
73
- "ToolArgument": ".tool",
74
- "UnifiedDiffTool": ".unified_diff_tool",
75
- "CSVProcessorTool": ".utilities.csv_processor_tool",
76
- "PrepareDownloadTool": ".utilities.download_file_tool",
77
- "MermaidValidatorTool": ".utilities.mermaid_validator_tool",
78
- "WikipediaSearchTool": ".wikipedia_search_tool",
79
- "WriteFileTool": ".write_file_tool",
80
- }
81
-
82
- # Create lazy loaders for each module path
83
- _lazy_modules: Dict[str, LazyLoader] = {}
84
- for tool, path in _TOOL_IMPORTS.items():
85
- full_path = f"{__package__}{path}"
86
- if full_path not in _lazy_modules:
87
- _lazy_modules[full_path] = LazyLoader(full_path)
88
-
89
- # Set up attributes for lazy loading
90
- _tools_to_lazy_modules = {}
91
- for tool, path in _TOOL_IMPORTS.items():
92
- full_path = f"{__package__}{path}"
93
- _tools_to_lazy_modules[tool] = _lazy_modules[full_path]
94
-
95
- # Define __all__ so that import * works properly
96
- __all__ = list(_TOOL_IMPORTS.keys())
97
-
98
- # Set up lazy loading for each tool
99
- for tool, lazy_module in _tools_to_lazy_modules.items():
100
- # This will create properties that lazily load the requested tool
101
- setattr(sys.modules[__name__], tool, getattr(lazy_module, tool))
File without changes
File without changes