quantalogic 0.59.3__py3-none-any.whl → 0.61.0__py3-none-any.whl

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 (81) hide show
  1. quantalogic/agent.py +268 -24
  2. quantalogic/agent_config.py +5 -5
  3. quantalogic/agent_factory.py +2 -2
  4. quantalogic/codeact/__init__.py +0 -0
  5. quantalogic/codeact/agent.py +499 -0
  6. quantalogic/codeact/cli.py +232 -0
  7. quantalogic/codeact/constants.py +9 -0
  8. quantalogic/codeact/events.py +78 -0
  9. quantalogic/codeact/llm_util.py +76 -0
  10. quantalogic/codeact/prompts/error_format.j2 +11 -0
  11. quantalogic/codeact/prompts/generate_action.j2 +26 -0
  12. quantalogic/codeact/prompts/generate_program.j2 +39 -0
  13. quantalogic/codeact/prompts/response_format.j2 +11 -0
  14. quantalogic/codeact/tools_manager.py +135 -0
  15. quantalogic/codeact/utils.py +135 -0
  16. quantalogic/coding_agent.py +2 -2
  17. quantalogic/create_custom_agent.py +26 -78
  18. quantalogic/prompts/chat_system_prompt.j2 +10 -7
  19. quantalogic/prompts/code_2_system_prompt.j2 +190 -0
  20. quantalogic/prompts/code_system_prompt.j2 +142 -0
  21. quantalogic/prompts/doc_system_prompt.j2 +178 -0
  22. quantalogic/prompts/legal_2_system_prompt.j2 +218 -0
  23. quantalogic/prompts/legal_system_prompt.j2 +140 -0
  24. quantalogic/prompts/system_prompt.j2 +6 -2
  25. quantalogic/prompts/tools_prompt.j2 +2 -4
  26. quantalogic/prompts.py +23 -4
  27. quantalogic/python_interpreter/__init__.py +23 -0
  28. quantalogic/python_interpreter/assignment_visitors.py +63 -0
  29. quantalogic/python_interpreter/base_visitors.py +20 -0
  30. quantalogic/python_interpreter/class_visitors.py +22 -0
  31. quantalogic/python_interpreter/comprehension_visitors.py +172 -0
  32. quantalogic/python_interpreter/context_visitors.py +59 -0
  33. quantalogic/python_interpreter/control_flow_visitors.py +88 -0
  34. quantalogic/python_interpreter/exception_visitors.py +109 -0
  35. quantalogic/python_interpreter/exceptions.py +39 -0
  36. quantalogic/python_interpreter/execution.py +202 -0
  37. quantalogic/python_interpreter/function_utils.py +386 -0
  38. quantalogic/python_interpreter/function_visitors.py +209 -0
  39. quantalogic/python_interpreter/import_visitors.py +28 -0
  40. quantalogic/python_interpreter/interpreter_core.py +358 -0
  41. quantalogic/python_interpreter/literal_visitors.py +74 -0
  42. quantalogic/python_interpreter/misc_visitors.py +148 -0
  43. quantalogic/python_interpreter/operator_visitors.py +108 -0
  44. quantalogic/python_interpreter/scope.py +10 -0
  45. quantalogic/python_interpreter/visit_handlers.py +110 -0
  46. quantalogic/server/agent_server.py +1 -1
  47. quantalogic/tools/__init__.py +6 -3
  48. quantalogic/tools/action_gen.py +366 -0
  49. quantalogic/tools/duckduckgo_search_tool.py +1 -0
  50. quantalogic/tools/execute_bash_command_tool.py +114 -57
  51. quantalogic/tools/file_tracker_tool.py +49 -0
  52. quantalogic/tools/google_packages/google_news_tool.py +3 -0
  53. quantalogic/tools/image_generation/dalle_e.py +89 -137
  54. quantalogic/tools/python_tool.py +13 -0
  55. quantalogic/tools/rag_tool/__init__.py +2 -9
  56. quantalogic/tools/rag_tool/document_rag_sources_.py +728 -0
  57. quantalogic/tools/rag_tool/ocr_pdf_markdown.py +144 -0
  58. quantalogic/tools/replace_in_file_tool.py +1 -1
  59. quantalogic/tools/{search_definition_names.py → search_definition_names_tool.py} +2 -2
  60. quantalogic/tools/terminal_capture_tool.py +293 -0
  61. quantalogic/tools/tool.py +120 -22
  62. quantalogic/tools/utilities/__init__.py +2 -0
  63. quantalogic/tools/utilities/download_file_tool.py +3 -5
  64. quantalogic/tools/utilities/llm_tool.py +283 -0
  65. quantalogic/tools/utilities/selenium_tool.py +296 -0
  66. quantalogic/tools/utilities/vscode_tool.py +1 -1
  67. quantalogic/tools/web_navigation/__init__.py +5 -0
  68. quantalogic/tools/web_navigation/web_tool.py +145 -0
  69. quantalogic/tools/write_file_tool.py +72 -36
  70. quantalogic/utils/__init__.py +0 -1
  71. quantalogic/utils/test_python_interpreter.py +119 -0
  72. {quantalogic-0.59.3.dist-info → quantalogic-0.61.0.dist-info}/METADATA +7 -2
  73. {quantalogic-0.59.3.dist-info → quantalogic-0.61.0.dist-info}/RECORD +76 -35
  74. quantalogic/tools/rag_tool/document_metadata.py +0 -15
  75. quantalogic/tools/rag_tool/query_response.py +0 -20
  76. quantalogic/tools/rag_tool/rag_tool.py +0 -566
  77. quantalogic/tools/rag_tool/rag_tool_beta.py +0 -264
  78. quantalogic/utils/python_interpreter.py +0 -905
  79. {quantalogic-0.59.3.dist-info → quantalogic-0.61.0.dist-info}/LICENSE +0 -0
  80. {quantalogic-0.59.3.dist-info → quantalogic-0.61.0.dist-info}/WHEEL +0 -0
  81. {quantalogic-0.59.3.dist-info → quantalogic-0.61.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,119 @@
1
+ import asyncio
2
+
3
+ from quantalogic.python_interpreter import AsyncExecutionResult, execute_async
4
+
5
+
6
+ async def test_square_calculation() -> None:
7
+ """Test the square calculation using execute_async with entry_point."""
8
+ # Python code as a string that defines multiple functions
9
+ square_code = """
10
+ def calculate_square(x):
11
+ return x * x
12
+
13
+ async def async_square(x, delay=0.1):
14
+ await asyncio.sleep(delay)
15
+ return x * x
16
+ """
17
+
18
+ # Test synchronous function with entry_point
19
+ sync_result = await execute_async(
20
+ code=square_code,
21
+ entry_point="calculate_square",
22
+ args=(5,),
23
+ timeout=5.0,
24
+ allowed_modules=['asyncio']
25
+ )
26
+ print("Synchronous Square Test:")
27
+ print_execution_result(sync_result)
28
+
29
+ # Test asynchronous function with entry_point
30
+ async_result = await execute_async(
31
+ code=square_code,
32
+ entry_point="async_square",
33
+ args=(5,),
34
+ kwargs={"delay": 0.2},
35
+ timeout=5.0,
36
+ allowed_modules=['asyncio']
37
+ )
38
+ print("Asynchronous Square Test:")
39
+ print_execution_result(async_result)
40
+
41
+
42
+ async def test_arithmetic_operations() -> None:
43
+ """Test arithmetic operations with multiple arguments."""
44
+ # Python code with a function taking multiple arguments
45
+ arithmetic_code = """
46
+ def add_and_multiply(a, b, c=2):
47
+ return (a + b) * c
48
+
49
+ async def async_add_and_multiply(a, b, c=2, delay=0.1):
50
+ await asyncio.sleep(delay)
51
+ return (a + b) * c
52
+ """
53
+
54
+ # Test synchronous function
55
+ sync_result = await execute_async(
56
+ code=arithmetic_code,
57
+ entry_point="add_and_multiply",
58
+ args=(3, 4),
59
+ kwargs={"c": 5},
60
+ timeout=5.0,
61
+ allowed_modules=['asyncio']
62
+ )
63
+ print("Synchronous Add and Multiply Test:")
64
+ print_execution_result(sync_result)
65
+
66
+ # Test asynchronous function
67
+ async_result = await execute_async(
68
+ code=arithmetic_code,
69
+ entry_point="async_add_and_multiply",
70
+ args=(3, 4),
71
+ kwargs={"c": 5, "delay": 0.15},
72
+ timeout=5.0,
73
+ allowed_modules=['asyncio']
74
+ )
75
+ print("Asynchronous Add and Multiply Test:")
76
+ print_execution_result(async_result)
77
+
78
+
79
+ async def test_module_execution() -> None:
80
+ """Test execution of the entire module without an entry_point."""
81
+ # Python code that runs top-level statements
82
+ module_code = """
83
+ x = 1 + 2
84
+ y = x * 3
85
+ result = y
86
+ """
87
+
88
+ # Execute without specifying an entry_point
89
+ result = await execute_async(
90
+ code=module_code,
91
+ timeout=5.0,
92
+ allowed_modules=['asyncio']
93
+ )
94
+ print("Module Execution Test (no entry_point):")
95
+ print_execution_result(result)
96
+
97
+
98
+ def print_execution_result(result: AsyncExecutionResult) -> None:
99
+ """Print detailed information about an execution result."""
100
+ print("===== Execution Result =====")
101
+ if result.error:
102
+ print(f"❌ Error: {result.error}")
103
+ else:
104
+ print("✅ Execution successful!")
105
+ print(f"Result type: {type(result.result).__name__}")
106
+ print(f"Result value: {result.result}")
107
+ print(f"Execution time: {result.execution_time:.4f} seconds")
108
+ print("============================")
109
+
110
+
111
+ async def main() -> None:
112
+ """Run all tests."""
113
+ await test_square_calculation()
114
+ await test_arithmetic_operations()
115
+ await test_module_execution()
116
+
117
+
118
+ if __name__ == '__main__':
119
+ asyncio.run(main())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantalogic
3
- Version: 0.59.3
3
+ Version: 0.61.0
4
4
  Summary: QuantaLogic ReAct Agents
5
5
  Author: Raphaël MANSUY
6
6
  Author-email: raphael.mansuy@gmail.com
@@ -11,6 +11,8 @@ Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
14
+ Requires-Dist: boto3 (>=1.34.0,<2.0.0)
15
+ Requires-Dist: botocore (>=1.29.123,<2.0.0)
14
16
  Requires-Dist: click (>=8.1.8,<9.0.0)
15
17
  Requires-Dist: duckduckgo-search (>=7.2.1,<8.0.0)
16
18
  Requires-Dist: faker (>=36.1.1,<37.0.0)
@@ -19,14 +21,17 @@ Requires-Dist: google-search-results (>=2.4.2,<3.0.0)
19
21
  Requires-Dist: html2text (>=2024.2.26,<2025.0.0)
20
22
  Requires-Dist: instructor (>=1.7.2,<2.0.0)
21
23
  Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
22
- Requires-Dist: litellm (>=1.56.4,<2.0.0)
24
+ Requires-Dist: litellm (>=1.59.0,<2.0.0)
23
25
  Requires-Dist: loguru (>=0.7.3,<0.8.0)
24
26
  Requires-Dist: markdownify (>=0.14.1,<0.15.0)
25
27
  Requires-Dist: markitdown (>=0.0.1a3,<0.0.2)
26
28
  Requires-Dist: networkx (>=3.2.1,<4.0.0)
29
+ Requires-Dist: openai (>=1.68.0,<2.0.0)
27
30
  Requires-Dist: pathspec (>=0.12.1,<0.13.0)
28
31
  Requires-Dist: prompt-toolkit (>=3.0.48,<4.0.0)
32
+ Requires-Dist: psutil (>=7.0.0,<8.0.0)
29
33
  Requires-Dist: pydantic (>=2.10.4,<3.0.0)
34
+ Requires-Dist: pytest-asyncio (>=0.25.3,<0.26.0)
30
35
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
31
36
  Requires-Dist: requests (>=2.32.3,<3.0.0)
32
37
  Requires-Dist: rich (>=13.9.4,<14.0.0)
@@ -1,12 +1,24 @@
1
1
  quantalogic/__init__.py,sha256=qFbvfHOd_chAu536pH816E3uo6CdyAgXCpQOwMXXVnY,1076
2
- quantalogic/agent.py,sha256=frl4w5AFIqgGomNK4cy3qalmlGzOam_TRlw-xmxEsIs,62610
3
- quantalogic/agent_config.py,sha256=fPyMfm77BzimyfyFkTzb2ZdyZtGlr2fq5aTRETu77Vs,8202
4
- quantalogic/agent_factory.py,sha256=NrgN7cSppmwh7QkP4Tak9f9TmRZAoAOUbRb3_bUgGq8,6870
5
- quantalogic/coding_agent.py,sha256=A-firiPWQjMC56B329Ne606_v2GsoF5-nxcuz3rVbYM,5496
2
+ quantalogic/agent.py,sha256=VChZXFLEsIIrBtXVQZ-FGZ72GCUXDL3g9br8Vo1t5V8,75072
3
+ quantalogic/agent_config.py,sha256=65dvgJ1rwC0eEysMtTv_Dsjln4WS0IvAIcn6r39Zq4k,8222
4
+ quantalogic/agent_factory.py,sha256=soActorasOqs5g6NmlyeEjRYbJceIGGg7wuUS-vA898,6878
5
+ quantalogic/codeact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ quantalogic/codeact/agent.py,sha256=oajib7OsfBp230sg_IjmknqYsFz_lSURC39fj5brsP4,22454
7
+ quantalogic/codeact/cli.py,sha256=FBqnqPUobq6ySuTL9oTLyXSenHC6V7wsCWAbNDK_xec,10810
8
+ quantalogic/codeact/constants.py,sha256=_xJ2QwP5wUE9vwSDm0JTSMC4GVjXAaxHTwcZBjDCoKk,244
9
+ quantalogic/codeact/events.py,sha256=4itxGsz54Te9vim13JC8QhacnLQ8cqtOOIyOWUrKFi0,1530
10
+ quantalogic/codeact/llm_util.py,sha256=9HqN0prWyAgdt6FYtdzjWoIoPpDavHQ7EIIfJr2Fi8w,2749
11
+ quantalogic/codeact/prompts/error_format.j2,sha256=_8fNWxDr3U1Fq8SdzwRIBNsNG1WvPL9IAaos9Enf1C0,258
12
+ quantalogic/codeact/prompts/generate_action.j2,sha256=v0LXFxz6L2EwIPesu_mYSVqyNctjHOCIfdawHCb2rtc,1289
13
+ quantalogic/codeact/prompts/generate_program.j2,sha256=05_1bAwIJLLBKt4o9c7sRWLHIoiHPyGl9OquieMZT5g,2048
14
+ quantalogic/codeact/prompts/response_format.j2,sha256=TwO43dEG-3justNigpX4yyzGR1TGS3YDlpJQq8Z5Vf4,355
15
+ quantalogic/codeact/tools_manager.py,sha256=l2cpHLuQP-MW0uP8d2e6IdMToeveaIOdilwDGPjPciY,4464
16
+ quantalogic/codeact/utils.py,sha256=B7Xowk4id6Sgoyl0eBJsi6JiKa-BAwnj0a5z70vrV1M,5308
17
+ quantalogic/coding_agent.py,sha256=i4QYY1Q7AXfJFCVfrowxukH33nuqByUOX6bt-hAcGDE,5504
6
18
  quantalogic/config.py,sha256=bmPI2rvQ9M8Zdl1H7K588JgJdnkxSE0L5_i5aBqsagA,564
7
19
  quantalogic/console_print_events.py,sha256=yDtfOr7s5r_gLTgwkl_XoKSkUqNRZhqqq4hwR_oJsUw,2050
8
20
  quantalogic/console_print_token.py,sha256=5IRVoPhwWZtSc4LpNoAsCQhCB_RnAW9chycGgyD3_5U,437
9
- quantalogic/create_custom_agent.py,sha256=e-InULqXFFUOfgZ9TqgsVkDTZTpVCGOPS-5wx5VQedY,21474
21
+ quantalogic/create_custom_agent.py,sha256=g9qh6w436wkiOYVii6f3SPRRY0wyPQ_bL07WnD1JSx0,19989
10
22
  quantalogic/docs_cli.py,sha256=Ie6NwKQuxLKwVQ-cjhFMCttXeiHDjGhNY4hSmMtc0Qg,1664
11
23
  quantalogic/event_emitter.py,sha256=wxzXrNhGiXAaa4EX7qTZEa81i3Mn4JKaU_T6E05QclE,16805
12
24
  quantalogic/flow/__init__.py,sha256=MD5FAdD6jnVnTPMIOmToKjFxHBQvLmOCT0VeaWhASBc,1295
@@ -30,20 +42,44 @@ quantalogic/model_info.py,sha256=j7QqvjEFQDGpDOgQs8uTkVyI3a50Oa_nrsQjyxizTLc,272
30
42
  quantalogic/model_info_list.py,sha256=Xeeb7QS4xEpe9ke7Guh0CxEx-Hl59U4kC-qzVts-eAU,2437
31
43
  quantalogic/model_info_litellm.py,sha256=Uoo8ZATjqH6POnTE3Ee3kfHfFllPYp8LkvJwlJjFZH8,2089
32
44
  quantalogic/model_names.py,sha256=UZlz25zG9B2dpfwdw_e1Gw5qFsKQ7iME9FJh9Ts4u6s,938
33
- quantalogic/prompts/chat_system_prompt.j2,sha256=BiWI9PF9Wd37kIrXWuA9UAKgxGZwA9ggVrZVDgc7m38,1365
45
+ quantalogic/prompts/chat_system_prompt.j2,sha256=DhYEdWRsNzLb4EVqD814dkre52E5Zy1XD1dHufbvvgw,1454
46
+ quantalogic/prompts/code_2_system_prompt.j2,sha256=soB10T85nRiXJkng-waA3g4A4bhh4_ejDey3qCiw8OA,7802
47
+ quantalogic/prompts/code_system_prompt.j2,sha256=A-aZtUBLBlHqFqk4JM1N-xco4j4IVwzzEk8dPQBUAxU,5338
48
+ quantalogic/prompts/doc_system_prompt.j2,sha256=6VAfYAM4z2Dkc5zbTIA-rWF5_IpBSe0uylx4lR90evc,7803
49
+ quantalogic/prompts/legal_2_system_prompt.j2,sha256=8aktOQFLr8n1bmbkOHJOgaovhEq4vIHH1rS6thMZXqI,11164
50
+ quantalogic/prompts/legal_system_prompt.j2,sha256=OSrV2KWF7CvzprZsoIIzVwVctjltEC29karVd_fIOSA,6568
34
51
  quantalogic/prompts/memory_compaction_prompt.j2,sha256=Xsy9XKN7zxL4wNnNjWWlUjYjmtktgtee5dDG4dSvRW8,569
35
52
  quantalogic/prompts/observation_response_format.j2,sha256=lvyveAJbXbc94aIvHgppKyaD9Tf7X5bCTGWjh51BDjI,1655
36
53
  quantalogic/prompts/repeated_tool_call_error.j2,sha256=IRENR3a3D28Dtys-kGDP-x_uSkJnxeQZ5-jYHWv_3G4,319
37
- quantalogic/prompts/system_prompt.j2,sha256=y1Le6UNRItQyrfSdg8kZBwtjIx_8znxhYF7VLpHqwPQ,2477
54
+ quantalogic/prompts/system_prompt.j2,sha256=p4aujPnlhvYrKuZQAjC4Ck7O96QCITcBItdG1XhFQrE,2683
38
55
  quantalogic/prompts/task_prompt.j2,sha256=RFKgF-6opuUu-dma5TT8O_V60n3GCPi6-ott4LUcJXw,280
39
56
  quantalogic/prompts/task_summary_prompt.j2,sha256=fcjV96nqi6jsfR8l6uyep20rCaOi-zOReKmvoAnwz7c,205
40
- quantalogic/prompts/tools_prompt.j2,sha256=6kHmyDFmDAZJy01dybJ-ZqnHouwjiHrxM8OEtXLN35o,528
57
+ quantalogic/prompts/tools_prompt.j2,sha256=ZjvTAZtAk-FmzDb1QuyDJg1hzo-FqayQ7wN_ytHAi2s,385
41
58
  quantalogic/prompts/variables_prompt.j2,sha256=N3OsMbzy3PfEUqYZVF_34wVidhh2ghVToSgdRCv2qgM,231
42
- quantalogic/prompts.py,sha256=bSaODtMUhPeIMt4BsOdjA6-9Efadu8LH6msdGnbLvxE,1112
59
+ quantalogic/prompts.py,sha256=zqmyosq4hdYpzHI-FG0m5CKV2wQnjgyMJf6Vo1ZaLW4,1982
60
+ quantalogic/python_interpreter/__init__.py,sha256=cNYxH9jy5QEAPZo44zmJzy3Kci14e0lL2h20Cbrs7RQ,675
61
+ quantalogic/python_interpreter/assignment_visitors.py,sha256=t6ttdYuwjcz8VtqJS5vMaaUUG6GbEhoNmnNDUj8dZiI,2771
62
+ quantalogic/python_interpreter/base_visitors.py,sha256=aD1pc3DbdlPdjQ3yJTYhBqNpN6tant7NOHXShts8coo,765
63
+ quantalogic/python_interpreter/class_visitors.py,sha256=FUgBVg_TmpAdLdLlYlPnruSm8iViijW3gTBQveJjkpI,862
64
+ quantalogic/python_interpreter/comprehension_visitors.py,sha256=AdPn047QUeoG5D1VD4wU2JuXS2KBTwLOIGbApmx9s7A,8468
65
+ quantalogic/python_interpreter/context_visitors.py,sha256=_4-Xfk0wzsla2rSIJZYEyYK4yIK7yRZWX6-HNBFSWTs,2137
66
+ quantalogic/python_interpreter/control_flow_visitors.py,sha256=trJ0Led1pPWKyseQF7BbIF5LFopkOiRDSVHz9Hi7-hI,3662
67
+ quantalogic/python_interpreter/exception_visitors.py,sha256=dbRuk2CaEZN-tYrzcRxZQh_UdLfpcW7wwrG8iQoGeE8,4571
68
+ quantalogic/python_interpreter/exceptions.py,sha256=mL4G9a0PZrvW_hAjkweMohvN8ryZsZOiIOolZUDSq9Y,1296
69
+ quantalogic/python_interpreter/execution.py,sha256=bggzv-GMnFe0Pkt00T4IlPUnDMsuqcHO1Qo0Wq6rEbs,8420
70
+ quantalogic/python_interpreter/function_utils.py,sha256=1LCEqCDt0p0uBTeC6rcre84r_j06jc6HuWLZ5Fc8m8M,18133
71
+ quantalogic/python_interpreter/function_visitors.py,sha256=WcGBWXZ_A7vekkrejL2XTuVPyqsKymK4svJr6-kR-OI,11317
72
+ quantalogic/python_interpreter/import_visitors.py,sha256=AgqFM8SO1wuJluDRsDGBwm-FQ5K374pQrXgbXXEBgPI,1331
73
+ quantalogic/python_interpreter/interpreter_core.py,sha256=PV_XFx0xhUG9ACvhz3FGat2FSaXK3C031HjRizHbox0,16646
74
+ quantalogic/python_interpreter/literal_visitors.py,sha256=TX9-02rn093OFTDvKkhp0PbTsXqIU1voBfbxs-TXfu0,3715
75
+ quantalogic/python_interpreter/misc_visitors.py,sha256=_olOaGD04icqKDqeEFUPIY5Nq0cH5pdGkq-8T6xbilM,6758
76
+ quantalogic/python_interpreter/operator_visitors.py,sha256=WTf4EfwE88lMoTKjuL8UBNpbwJ8Z6DTdrwvVffVw-Ic,4048
77
+ quantalogic/python_interpreter/scope.py,sha256=HSSbtDAMeDbE5LjSckTHvFlhcOUGv8UzxpI4NgUbp5U,257
78
+ quantalogic/python_interpreter/visit_handlers.py,sha256=dGh7BxwGArnBnmwxVzpV6l_uXQ5J6esUm2xKtXne30M,2610
43
79
  quantalogic/quantlitellm.py,sha256=nf-awyOxP0ANoAPGHNvHfdLu8gNn65L39gl7x4saIQc,5550
44
80
  quantalogic/search_agent.py,sha256=tr0cwscJ4wu_G1aumjFyvGHQ0eQv5OL5sxj17s6Ocls,2470
45
81
  quantalogic/server/__init__.py,sha256=8sz_PYAUCrkM6JM5EAUeIzNM4NPW6j6UT72JVkc21WQ,91
46
- quantalogic/server/agent_server.py,sha256=1u5rpiCNAssi7_9KMBlBlyHz7abHodcyt2seGTtyNDo,22949
82
+ quantalogic/server/agent_server.py,sha256=7kj-HBRBBkdUT0pCyX6peTUZc-3VG_IY1XgtV8hespk,22949
47
83
  quantalogic/server/models.py,sha256=_j6dAx3L_w0kiP55vcC5uykJJRfChV2K3uL_xAPnsms,1447
48
84
  quantalogic/server/routes.py,sha256=00nFe6s0T4Gv8vCp0wQFjWGo1tC8FViH8h0koAJdWs4,4216
49
85
  quantalogic/server/state.py,sha256=TwtL0BTp_LT-fynF1IR4k8WVXuxXWtSv3NgWG9fuUME,7369
@@ -53,7 +89,8 @@ quantalogic/server/templates/index.html,sha256=nDnXJoQEm1vXbhXtgaYk0G5VXj0wwzE6K
53
89
  quantalogic/task_file_reader.py,sha256=oPcB4vTxJ__Y8o7VVABIPOkVw3tGDMdQYwdK27PERlE,1440
54
90
  quantalogic/task_runner.py,sha256=NB7TqNuwCstCAsTkjGcJSQRapNk8-iXe7d_2qf-fs1s,15815
55
91
  quantalogic/tool_manager.py,sha256=vNA7aBKgdU3wpw_goom6i9rg_64pNZapNxvg4cUhhCI,6983
56
- quantalogic/tools/__init__.py,sha256=lpfUu6S61dr4WYW4izUkpob7s5NLhkmmR5Zdi9iYrIc,2274
92
+ quantalogic/tools/__init__.py,sha256=NU_M6VYYaAbSUtb2Qdu1lsYaDh0G3f_8jnrZTsBD0eY,2390
93
+ quantalogic/tools/action_gen.py,sha256=M16voPq7tMR1qiCKTaZAusmVchFbBIluuBbLQH9kEG4,15580
57
94
  quantalogic/tools/agent_tool.py,sha256=MXCXxWHRch7VK4UWhtRP1jeI8Np9Ne2CUGo8vm1oZiM,3064
58
95
  quantalogic/tools/composio/__init__.py,sha256=Yo9ygNx0qQILVhIfRgqpO8fgnCgp5WoZMd3Hm5D20GY,429
59
96
  quantalogic/tools/composio/composio.py,sha256=icVHA_Scr1pViBhahGGBGBRBl9JSB3hGSqpgQzAIUH8,17627
@@ -69,10 +106,11 @@ quantalogic/tools/document_tools/markdown_to_latex_tool.py,sha256=SxQ9gdDm2KuAuI
69
106
  quantalogic/tools/document_tools/markdown_to_pdf_tool.py,sha256=EZOXPlF2pn10XzzOVFXqOopSP35tqXuj-YrFzeS5xQg,21077
70
107
  quantalogic/tools/document_tools/markdown_to_pptx_tool.py,sha256=Bg79e1us2GAjB8vUa3COk2XgXM_FUQF28zWBIitYAC8,11085
71
108
  quantalogic/tools/download_http_file_tool.py,sha256=wTfanbXjIRi5-qrbluuLvNmDNhvmYAnlMVb3dO8C2ss,2210
72
- quantalogic/tools/duckduckgo_search_tool.py,sha256=oY-aW7zbo1f39DmjwGfaXVxXRi3pKgIuTPR1vCqsX9I,6991
109
+ quantalogic/tools/duckduckgo_search_tool.py,sha256=FRHgHehRek4SkcKC4lxEzAEIhQ8-ege5COteXj3Ci98,7027
73
110
  quantalogic/tools/edit_whole_content_tool.py,sha256=nXmpAvojvqvAcqNMy1kUKZ1ocboky_ZcnCR4SNCSPgw,2360
74
111
  quantalogic/tools/elixir_tool.py,sha256=fzPPtAW-Koy9KB0r5k2zV1f1U0WphL-LXPPOBkeNkug,7652
75
- quantalogic/tools/execute_bash_command_tool.py,sha256=YK_cMuODJDOYheZKGmlpZTxJdVbimFLCUlND2_zmyMg,6869
112
+ quantalogic/tools/execute_bash_command_tool.py,sha256=dNQmi-hjVzwdQNa6xHqvqOo4V02qefuO5dm5NnuJZqI,9620
113
+ quantalogic/tools/file_tracker_tool.py,sha256=4PWBVB7MzhFlLE62bDGVhoC2Gpn2VzdMFT5lRsyADEI,1700
76
114
  quantalogic/tools/finance/__init__.py,sha256=b_RMQw6fHr9Rsptk0M3AUrXgewhC1kJa8v59FP5zNpc,933
77
115
  quantalogic/tools/finance/alpha_vantage_tool.py,sha256=2nAOTGlxKePM2VnBOtDTfHJH4WgM8ys81WDGV2SDIgo,16526
78
116
  quantalogic/tools/finance/ccxt_tool.py,sha256=kCLrAzy-Zc0Bz7Ey8Jdi9RhyaQp6L7d2Q3Mnu_lPueU,15411
@@ -88,10 +126,10 @@ quantalogic/tools/git/bitbucket_operations_tool.py,sha256=6Vdelau1VSTYREtuQgHlV-
88
126
  quantalogic/tools/git/clone_repo_tool.py,sha256=FA_29pmEsy_71YSrt94M0rAUNt_rEo4TDvq2Y7-uinU,7565
89
127
  quantalogic/tools/git/git_operations_tool.py,sha256=tZqY7fXXfiLkArV_18pEmqreqF6n6BALo0jFy4Hjzfs,20610
90
128
  quantalogic/tools/google_packages/__init__.py,sha256=BIf2t1oJQTCfbh7qZZAzQGIHVQyWiZQ559OwmYrG1A0,452
91
- quantalogic/tools/google_packages/google_news_tool.py,sha256=q9ztwUdF2phcSMAceoIIBJXMjVxwCvbFdxNF3xjkAxM,11730
129
+ quantalogic/tools/google_packages/google_news_tool.py,sha256=3ktgtXauJt8EzUAXZTqJyx1WEC51ex7_XBKJhQp35Ic,11857
92
130
  quantalogic/tools/grep_app_tool.py,sha256=qAKgqMTtoH82bEZkiNlIk5oDSgVckFgxVXhU7ieTJwc,18672
93
131
  quantalogic/tools/image_generation/__init__.py,sha256=7_ckDTy0ZHW34S9ZIQJqeRCZisdBbAtH-1CLO-8_yUI,455
94
- quantalogic/tools/image_generation/dalle_e.py,sha256=SYvKZ1VbdslIKUKBy3nC0jD680-ujabBQr6iK5IFAXY,10968
132
+ quantalogic/tools/image_generation/dalle_e.py,sha256=F6RGPmiS0eq-BjeJrwkrCCbQMGypNGz9SUHzJCI8SQI,8711
95
133
  quantalogic/tools/input_question_tool.py,sha256=UoTlNhdmdr-eyiVtVCG2qJe_R4bU_ag-DzstSdmYkvM,1848
96
134
  quantalogic/tools/jinja_tool.py,sha256=i49F6lSdTx5KMgP5Y9KKYprcc_OEc11TvEqqtDA5mas,2849
97
135
  quantalogic/tools/language_handlers/__init__.py,sha256=5FSwHqTXzRL52Eme4yocw1RzOqWCVq7a5FyLEd7uSEM,1161
@@ -119,36 +157,39 @@ quantalogic/tools/presentation_tools/presentation_llm_tool.py,sha256=5fuUDE1IzeA
119
157
  quantalogic/tools/product_hunt/__init__.py,sha256=v729REf13ioQNg4SH6ZTkAMo5TfgAawcUEIz1sKwIcA,446
120
158
  quantalogic/tools/product_hunt/product_hunt_tool.py,sha256=vtjnV6v46BcNYlxudUCq5JIkjznQFUt8Kx9VD4KEPa8,8533
121
159
  quantalogic/tools/product_hunt/services.py,sha256=ym10ZW4q8w03wIkZDnwl9d_nCoOz2WAj3N6C0qY0dfI,2280
122
- quantalogic/tools/python_tool.py,sha256=70HLbfU2clOBgj4axDOtIKzXwEBMNGEAX1nGSf-KNNQ,18156
123
- quantalogic/tools/rag_tool/__init__.py,sha256=Yb_TSapUHvgvwvUYThiGTPhB5qaM-NM65oFu_O_NygA,629
124
- quantalogic/tools/rag_tool/document_metadata.py,sha256=amnnqL5POzFbc7rVq2kJ2egYS3k5P-m4HyA5AbekIq0,376
125
- quantalogic/tools/rag_tool/query_response.py,sha256=0T9N80kNR8ZgjA7WzFBisIqdIgUiFfGeUPzYvxAHSU0,549
126
- quantalogic/tools/rag_tool/rag_tool.py,sha256=FEccrd_IorVi1b3FzEu2huZPavSlaF-0p0IiWIGON74,21073
127
- quantalogic/tools/rag_tool/rag_tool_beta.py,sha256=6ydWH5N2-M06p1XAsfxC8GREktIOz6AAsFTPGEZUnbU,9525
160
+ quantalogic/tools/python_tool.py,sha256=ae-OeXOafGoRVUp1leBhRgz2fVt0Q-WVcjlVQO60tlE,18619
161
+ quantalogic/tools/rag_tool/__init__.py,sha256=OzQ7_MxMvHupkt-1XAm5hAK8Saz2u2LxEH_v0k6yJSA,406
162
+ quantalogic/tools/rag_tool/document_rag_sources_.py,sha256=WYtiAZA0P546pBYtz0pCmN8SizsUA7PIrp9dKKp7naw,28575
163
+ quantalogic/tools/rag_tool/ocr_pdf_markdown.py,sha256=SqHvAWToSM0nLLLor5jVElPC6dBm94_ihio-Z-Q2WTI,5479
128
164
  quantalogic/tools/read_file_block_tool.py,sha256=FTcDAUOOPQOvWRjnRI6nMI1Upus90klR4PC0pbPP_S8,5266
129
165
  quantalogic/tools/read_file_tool.py,sha256=l6k-SOIV9krpXAmUTkxzua51S-KHgzGqkcDlD5AD8K0,2710
130
166
  quantalogic/tools/read_html_tool.py,sha256=KmXTeSrQZj0L-OAwl3xZQybdAhhyAeK3wgblhXgf3oM,10999
131
- quantalogic/tools/replace_in_file_tool.py,sha256=8cbM0MqNpQynNwbkHR7kqYoG-1JBxDjpMjHHVCwiS8w,13854
167
+ quantalogic/tools/replace_in_file_tool.py,sha256=gux6uCXk4gvIMynw7NMAGPvdWKuSIc9JWTWZyuR5OgQ,13853
132
168
  quantalogic/tools/ripgrep_tool.py,sha256=sRzHaWac9fa0cCGhECJN04jw_Ko0O3u45KDWzMIYcvY,14291
133
169
  quantalogic/tools/safe_python_interpreter_tool.py,sha256=eqwI0sHNt4mTvd8witCc0cecydKJNXNN3HNFfr4sCkI,8036
134
- quantalogic/tools/search_definition_names.py,sha256=zqtaqq8aS5jdDQOkbd4wMUPFyL6Bq-4q9NWyLKdXL1E,18771
170
+ quantalogic/tools/search_definition_names_tool.py,sha256=uoQC7oXNNmesxYAll5TXx9HckYHgHCp3BVjo1KvWidQ,18779
135
171
  quantalogic/tools/sequence_tool.py,sha256=Hb2FSjWWACvXZX7rmJXPk5lnnnqaDeRTbhQQRtCd8hI,11169
136
172
  quantalogic/tools/serpapi_search_tool.py,sha256=sX-Noch77kGP2XiwislPNFyy3_4TH6TwMK6C81L3q9Y,5316
137
173
  quantalogic/tools/sql_query_tool.py,sha256=jEDZLlxOsB2bzsWlEqsqvTKiyovnRuk0XvgtwW7-WSQ,6055
138
174
  quantalogic/tools/task_complete_tool.py,sha256=L8tuyVoN07Q2hOsxx17JTW0C5Jd_N-C0i_0PtCUQUKU,929
139
- quantalogic/tools/tool.py,sha256=FLF4Y1nqjArVUYakD0w3WcDxkRJkbSBQzTG6Sp72Z4Q,15592
175
+ quantalogic/tools/terminal_capture_tool.py,sha256=I3Ik9JSgHUPb5eV7ArZv9PISofkWWLh_7fCqX4RJRAg,10567
176
+ quantalogic/tools/tool.py,sha256=q94f1b5k44taJTckTJegTRkP_QNN4YB6xhz_0TExvWU,19731
140
177
  quantalogic/tools/unified_diff_tool.py,sha256=o7OiYnCM5MjbPlQTpB2OmkMQRI9zjdToQmgVkhiTvOI,14148
141
- quantalogic/tools/utilities/__init__.py,sha256=Ra61ITv4SNmMFcj5CLEkAZW9Vl9uv8Mi2qI_kr2psfo,672
178
+ quantalogic/tools/utilities/__init__.py,sha256=cOsQLYzJDnTY7mUjYaMSF_jmb5kez34MQc9xCWxm2NE,733
142
179
  quantalogic/tools/utilities/csv_processor_tool.py,sha256=Mu_EPVj6iYAclNaVX_vbkekxcNwPYwy7dW1SCY22EwY,9023
143
- quantalogic/tools/utilities/download_file_tool.py,sha256=x60wpFeMMHmcipgrMnS04l7OnQd3C8MPNyB9Oar7h8Y,6681
180
+ quantalogic/tools/utilities/download_file_tool.py,sha256=DN93jRTVC01MzBYgUEezKqpE0S7TOyFwk3G86IH3WtE,6544
181
+ quantalogic/tools/utilities/llm_tool.py,sha256=tb0uaqJBNZqNmekX1Is-wHov1B3BDVRJPJBjQ4vmnZM,10328
144
182
  quantalogic/tools/utilities/mermaid_validator_tool.py,sha256=Brd6pt8OxpUgf8dm6kHqJJs_IU8V4Kc-8VDP-n1eCUM,25886
145
- quantalogic/tools/utilities/vscode_tool.py,sha256=RNDUtWxutlJ_cATgFM-oMSsGKipwhQ-PJDluJ1yxggs,4362
183
+ quantalogic/tools/utilities/selenium_tool.py,sha256=UrfQSF62UoADPuRPqP8x9_jIL6YyPIhaT589I6D5Lfw,10449
184
+ quantalogic/tools/utilities/vscode_tool.py,sha256=M248_464I3FWHuvrTVPbrF6czXe0n45_o315TFRD-6U,4363
146
185
  quantalogic/tools/utils/__init__.py,sha256=-NtMSwxRt_G79Oo_DcDaCdLU2vLvuXIoCd34TOYEUmI,334
147
186
  quantalogic/tools/utils/create_sample_database.py,sha256=h5c_uxv3eztQvHlloTZxzWt5gEzai8zfnR8-_QrUqxU,3724
148
187
  quantalogic/tools/utils/generate_database_report.py,sha256=3PT34ClMvZ2O62-24cp_5lOyZHY_pBjVObMHpfyVi-s,10140
188
+ quantalogic/tools/web_navigation/__init__.py,sha256=O7SkVqbGwN4zt8Sm3H8AHF9451FSgI5h0J3fDj1rFS4,142
189
+ quantalogic/tools/web_navigation/web_tool.py,sha256=AxAxQLUNwCElqxP2ceOOjHVY80ck-Md-uNsjHdR9ErA,4721
149
190
  quantalogic/tools/wikipedia_search_tool.py,sha256=LXQSPH8961Efw2QNxKe-cD5ZiIYD3ufEgrxH4y5uB74,5180
150
- quantalogic/tools/write_file_tool.py,sha256=_mx9_Zjg2oMAAVzlcHEKjZVZUxQVgbRfcoMKgWnoZcg,3764
151
- quantalogic/utils/__init__.py,sha256=hsS3hXH5lsBQcZh2QBANY1Af2Zs1jtrgxA7kXJEWi58,680
191
+ quantalogic/tools/write_file_tool.py,sha256=qyRhDwE77rakRb_CuAC00V0E2vqIRNxwKD4PHLGgyW8,5230
192
+ quantalogic/utils/__init__.py,sha256=E442CJQuTohKzgI0Wrd4NZEpKascFjz6F4Vy8Y1c_0Y,634
152
193
  quantalogic/utils/ask_user_validation.py,sha256=kSr7TXPTpsLR9zgwpGWgvffx8-cKAC_rdFRdLqwC22A,1176
153
194
  quantalogic/utils/async_utils.py,sha256=FOizWRbHdsZwoD36dNErzunfwPlE7zDprS6RXcWuWSo,963
154
195
  quantalogic/utils/check_version.py,sha256=aDTEvIn5XNNBIQ0tVOqcY3hcoznRmpsnNuwES6je1MQ,1133
@@ -159,17 +200,17 @@ quantalogic/utils/get_environment.py,sha256=7wWruSHYTUlnQWW27qU3WFYZnncqqqdofsxA
159
200
  quantalogic/utils/get_quantalogic_rules_content.py,sha256=fnEFTyClXzpI0MLaM-gB9R6l4CJlu2NnaYiR09ciJC8,673
160
201
  quantalogic/utils/git_ls.py,sha256=hJLAoFyx1MgaFJKu6ZO7NEA5xvvqIcpfJ2g9DFCPR5c,5776
161
202
  quantalogic/utils/lm_studio_model_info.py,sha256=74LrRljuVAIzgFHqO-l9jRuawx8nu3UdDeGoO_bLJwI,1792
162
- quantalogic/utils/python_interpreter.py,sha256=H08GpYQshcob_W7e8GmgdKYFAbBhWAR6pGR83tviOM4,36430
163
203
  quantalogic/utils/read_file.py,sha256=tSRVHk8dIP4nNLL89v5kRki4hOTjVyjbmuEb2zwvwCY,2077
164
204
  quantalogic/utils/read_http_text_content.py,sha256=n3IayT5KcqctIVVF2gOQQAMf3Ow6eenlVgfXTpLcQbw,4410
205
+ quantalogic/utils/test_python_interpreter.py,sha256=Mw3dB11AGCqU8Ff70mg1M91l2TrC6z4fHvno74FkyOA,3393
165
206
  quantalogic/utils/xml_utility.py,sha256=gLB0vpbpxbfc297Fy37Zd3O_-sbt6DoRUZrSkhPq4FU,5345
166
207
  quantalogic/version.py,sha256=ea_cRutaQk5_lwlLbUUvPFuOT7Of7-gAsDl7wdveS-g,107
167
208
  quantalogic/version_check.py,sha256=JyQFTNMDWtpHCLnN-BiakzB2cyXf6kUFsTjvmSruZi4,1623
168
209
  quantalogic/welcome_message.py,sha256=o4tHdgabNuIV9kbIDPgS3_2yzJhayK30oKad2UouYDc,3020
169
210
  quantalogic/xml_parser.py,sha256=bLLwIwO-VEHWF3heNS7nuPC8wgdYw9F_fVZZNW1figY,11728
170
211
  quantalogic/xml_tool_parser.py,sha256=hGHA1q20JUoTNTbZYmi4FTdA5I25-AGEIP8DwZgQCNA,3897
171
- quantalogic-0.59.3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
172
- quantalogic-0.59.3.dist-info/METADATA,sha256=6g6N-9X7YIIZf1gfO0Gvj-o0Bk07fqQZjo-eVhfNISE,32744
173
- quantalogic-0.59.3.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
174
- quantalogic-0.59.3.dist-info/entry_points.txt,sha256=h74O_Q3qBRCrDR99qvwB4BpBGzASPUIjCfxHq6Qnups,183
175
- quantalogic-0.59.3.dist-info/RECORD,,
212
+ quantalogic-0.61.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
213
+ quantalogic-0.61.0.dist-info/METADATA,sha256=htzdPnOadswC70Yh7pfSyOVhsM364yrtwOZufiMJSCc,32955
214
+ quantalogic-0.61.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
215
+ quantalogic-0.61.0.dist-info/entry_points.txt,sha256=h74O_Q3qBRCrDR99qvwB4BpBGzASPUIjCfxHq6Qnups,183
216
+ quantalogic-0.61.0.dist-info/RECORD,,
@@ -1,15 +0,0 @@
1
- from datetime import datetime
2
- from typing import Any, Dict
3
-
4
- from pydantic import BaseModel, Field
5
-
6
-
7
- class DocumentMetadata(BaseModel):
8
- """Metadata for indexed documents."""
9
- source_path: str
10
- file_type: str
11
- creation_date: datetime
12
- last_modified: datetime
13
- chunk_size: int
14
- overlap: int
15
- custom_metadata: Dict[str, Any] = Field(default_factory=dict)
@@ -1,20 +0,0 @@
1
- from typing import Any, Dict, List
2
-
3
- from pydantic import BaseModel
4
-
5
-
6
- class QueryResponse(BaseModel):
7
- """Structured query response with source attribution."""
8
- answer: str
9
- sources: List[Dict[str, Any]]
10
- relevance_scores: List[float]
11
- total_chunks_searched: int
12
- query_time_ms: float
13
-
14
- def __len__(self) -> int:
15
- """Support len() operation by returning length of the answer."""
16
- return len(self.answer)
17
-
18
- def __str__(self) -> str:
19
- """String representation of the response."""
20
- return self.answer