mojentic 0.5.7__py3-none-any.whl → 0.6.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.
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mojentic
3
- Version: 0.5.7
3
+ Version: 0.6.0
4
4
  Summary: Mojentic is an agentic framework that aims to provide a simple and flexible way to assemble teams of agents to solve complex problems.
5
5
  Author-email: Stacey Vetzal <stacey@vetzal.com>
6
- Project-URL: Homepage, https://github.com/mojility/mojentic
7
- Project-URL: Issues, https://github.com/mojility/mojentic/issues
6
+ Project-URL: Homepage, https://github.com/svetzal/mojentic
7
+ Project-URL: Issues, https://github.com/svetzal/mojentic/issues
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Operating System :: OS Independent
@@ -22,15 +22,26 @@ Requires-Dist: parsedatetime
22
22
  Requires-Dist: pytz
23
23
  Requires-Dist: serpapi
24
24
  Requires-Dist: colorama
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
27
+ Requires-Dist: pytest-spec; extra == "dev"
28
+ Requires-Dist: pytest-cov; extra == "dev"
29
+ Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
30
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
31
+ Requires-Dist: mkdocs; extra == "dev"
32
+ Requires-Dist: mkdocstrings[python]; extra == "dev"
33
+ Requires-Dist: griffe-fieldz; extra == "dev"
34
+ Requires-Dist: mkdocs-material; extra == "dev"
35
+ Requires-Dist: pymdown-extensions; extra == "dev"
25
36
  Dynamic: license-file
26
37
 
27
38
  # Mojentic
28
39
 
29
40
  Mojentic is a framework that provides a simple and flexible way to interact with Large Language Models (LLMs). It offers integration with various LLM providers and includes tools for structured output generation, task automation, and more. The future direction is to facilitate a team of agents, but the current focus is on robust LLM interaction capabilities.
30
41
 
31
- [![GitHub](https://img.shields.io/github/license/mojility/mojentic)](LICENSE.md)
42
+ [![GitHub](https://img.shields.io/github/license/svetzal/mojentic)](LICENSE.md)
32
43
  [![Python Version](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org/downloads/)
33
- [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](https://mojility.github.io/mojentic/)
44
+ [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](https://svetzal.github.io/mojentic/)
34
45
 
35
46
  ## 🚀 Features
36
47
 
@@ -57,7 +68,7 @@ pip install mojentic
57
68
  Or install from source
58
69
 
59
70
  ```bash
60
- git clone https://github.com/mojility/mojentic.git
71
+ git clone https://github.com/svetzal/mojentic.git
61
72
  cd mojentic
62
73
  pip install -e .
63
74
  ```
@@ -123,18 +134,17 @@ The primary focus is currently on the `llm` module, which provides robust capabi
123
134
 
124
135
  ## 📚 Documentation
125
136
 
126
- Visit [the documentation](https://mojility.github.io/mojentic/) for comprehensive guides, API reference, and examples.
137
+ Visit [the documentation](https://svetzal.github.io/mojentic/) for comprehensive guides, API reference, and examples.
127
138
 
128
139
  ## 🧪 Development
129
140
 
130
141
  ```bash
131
142
  # Clone the repository
132
- git clone https://github.com/mojility/mojentic.git
143
+ git clone https://github.com/svetzal/mojentic.git
133
144
  cd mojentic
134
145
 
135
146
  # Install dependencies
136
- pip install -r requirements.txt
137
- pip install -r dev-requirements.txt
147
+ pip install -e ".[dev]"
138
148
 
139
149
  # Run tests
140
150
  pytest
@@ -22,7 +22,7 @@ _examples/list_models.py,sha256=8noMpGeXOdX5Pf0NXCt_CRurOKEg_5luhWveGntBhe8,578
22
22
  _examples/oversized_embeddings.py,sha256=_z2JoqZn0g7VtRsFVWIkngVqzjhQQvCEUYWVxs1I7MM,284
23
23
  _examples/raw.py,sha256=Y2wvgynFuoUs28agE4ijsLYec8VRjiReklqlCH2lERs,442
24
24
  _examples/react.py,sha256=VQ-5MmjUXoHzBFPTV_JrocuOkDzZ8oyUUSYLlEToJ_0,939
25
- _examples/recursive_agent.py,sha256=NHmX8iQc1y43AKh1ZlAdV9OZ18qVaRRmSaKALE_KI6k,2966
25
+ _examples/recursive_agent.py,sha256=lFmGXpAeNYmKZSCBsGgnKd8wptzFnDLcjFNcdDNUImU,3018
26
26
  _examples/routed_send_response.py,sha256=FHhTy7y2f7GY_WAWZYqOnFqF1xeJTBuS5EjfJGsJ3S8,4146
27
27
  _examples/simple_llm.py,sha256=Cpjj1S8wXLovta1OcutTqp-fls-zVY4l5TAkbEqpA0s,1231
28
28
  _examples/simple_llm_repl.py,sha256=bpk7S1-yQ-oZdRD_0ICV37NQxntgvgjiFD5KdIU40Ig,1406
@@ -31,6 +31,7 @@ _examples/simple_tool.py,sha256=9hRo2YZk7NmprTIkLmEyueCbZ0Ls1Ey4l4eDvvgoWy8,1288
31
31
  _examples/solver_chat_session.py,sha256=4mTsgQVJWwujDFX6NUIK6kKr45E09Q4yIkZF-FdoTtg,2148
32
32
  _examples/streaming.py,sha256=P1CGvm11yi_tojnha2Qmp_OFB5A3T-F5dWIzxEclNhM,1137
33
33
  _examples/tell_user_example.py,sha256=gPGS_3KAHUIFsnvkDXX6u1mVqlsB67zsyNdGuEho60o,1274
34
+ _examples/tracer_demo.py,sha256=IG9llYs9ARFbjkK-acW091S73z0jr2ZS_0GWps88dAQ,3994
34
35
  _examples/working_memory.py,sha256=xbCHb6Y0Um6ai5T9fWAX4oQOcCQJDinsn902qm8q48E,1935
35
36
  _examples/react/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
37
  _examples/react/formatters.py,sha256=nbgWve0YGKaRY6P4tXV84PYw8YDN4neefiq7mR2I_tI,1065
@@ -41,7 +42,7 @@ _examples/react/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
41
42
  _examples/react/models/base.py,sha256=F3hR023XQofs3Op37sruuONxAU7eRjGnLnf4515BeYU,1239
42
43
  _examples/react/models/events.py,sha256=0lRY0D5VrSkIGEKnSEQQBRyxxMQl71yxPkdMBuVBKHw,1062
43
44
  mojentic/__init__.py,sha256=Jrllv5OKZKjkfVNLRJV6yT3NZA8ZELSrqj3798H4cDs,1172
44
- mojentic/dispatcher.py,sha256=NwgyLnZ2f9Et30LBgMAVSsVyIP74pU7LOuRsiuGzBao,1993
45
+ mojentic/dispatcher.py,sha256=Jx73v1799pYqzdLBDnq1tbPzXVEs3xArwtMhZvByyH8,2760
45
46
  mojentic/event.py,sha256=P0kgI0Si41ifCTLNtpfkks0OktlK4wuAj3oMCDtdUyo,330
46
47
  mojentic/router.py,sha256=7z2xqgpsuHmA32HfH3rAgDk3zLhUBxz8DHPt2vDlVOU,377
47
48
  mojentic/router_spec.py,sha256=CRYeKEa7dz_yN8ABAi5DgY5C0mJW7she3Kw0NzxoHx4,876
@@ -54,17 +55,15 @@ mojentic/agents/correlation_aggregator_agent.py,sha256=okdq92rMNwIXTgnuwwn3zp4Jz
54
55
  mojentic/agents/iterative_problem_solver.py,sha256=RLt8MCM99d-Z26EhC5UnmE0M97EM475VGBVsNio8DSA,4329
55
56
  mojentic/agents/output_agent.py,sha256=I9GHcWvQhWxEcvjzj47scKo_QF8_6yR17ZUEHhwC94Y,231
56
57
  mojentic/agents/simple_recursive_agent.py,sha256=DcJFttTAYurRIObTL8kfbHUs5uvuqh6prEgA5nmxCLo,9950
57
- mojentic/audit/event_store.py,sha256=uw5ploNym9CvI-WDeW3Y4qHJupPWBQaGrfrubxOfmpA,130
58
- mojentic/audit/event_store_spec.py,sha256=mCryZGWNXP9CmukvD3hUyQGs_7afjwbTK3RdT831Lzc,594
59
58
  mojentic/context/__init__.py,sha256=MKMP7ViQg8gMtLFvn9pf47XMc5beA5Wx95K4dEw93z8,55
60
59
  mojentic/context/shared_working_memory.py,sha256=Zt9MNGErEkDIUAaHvyhEOiTaEobI9l0MV4Z59lQFBr0,396
61
60
  mojentic/llm/__init__.py,sha256=mwdPpTRofw7_KSlW6ZQmcM-GSpyISWyI2bxphKpV7A0,180
62
61
  mojentic/llm/chat_session.py,sha256=H2gY0mZYVym8jC69VHsmKaRZ9T87Suyw0-TW5r850nA,3992
63
62
  mojentic/llm/chat_session_spec.py,sha256=8-jj-EHV2WwWuvo3t8I75kSEAYiG1nR-OEwkkLTi_z0,3872
64
- mojentic/llm/llm_broker.py,sha256=8dEgqU-cPesPk4-jx36oPnvKxB34bLONbpyAW_2L-es,5884
63
+ mojentic/llm/llm_broker.py,sha256=8h1J6Avue_iJhGzMTVuF3Zmgek--P_Q4iVRJT8-_b14,8823
65
64
  mojentic/llm/llm_broker_spec.py,sha256=40lzmYm_6Zje6z5MQ7_o3gSBThLsNW_l_1mZTUVll6A,5342
66
65
  mojentic/llm/message_composers.py,sha256=Fo9o7UGZOOIYoGI_DyOfP_oMiEiCMQz-zdWdTKtozVk,12108
67
- mojentic/llm/message_composers_spec.py,sha256=VbaDR-fXWogI5ONSpkzvgPY9Tv9HQX6eEqB8J0ev2jQ,11641
66
+ mojentic/llm/message_composers_spec.py,sha256=RNW14Zb-kIBWT5Wy9cZQyxHPrcRIaBFjBYCR9N-m0kE,12109
68
67
  mojentic/llm/gateways/__init__.py,sha256=u7hXzngoRw_qbsJeiCH2NQ8vC2hF5DnqcXsfLVVPSSw,104
69
68
  mojentic/llm/gateways/anthropic.py,sha256=SsyNjq9QaXaqiMM43C9fwLp57hpgFtwNPJUnOAYVrtc,1788
70
69
  mojentic/llm/gateways/anthropic_messages_adapter.py,sha256=K6kEZeVt7E1endbGMLsh5l9SxC3Y5dnvbcejVqi_qUs,3003
@@ -76,8 +75,8 @@ mojentic/llm/gateways/ollama.py,sha256=629fpZhC0zVCYqj360-PKTT4mQOLec5nzzvfMtS_m
76
75
  mojentic/llm/gateways/ollama_messages_adapter.py,sha256=kUN_p2FyN88_trXMcL-Xsn9xPBU7pGKlJwTUEUCf6G4,1404
77
76
  mojentic/llm/gateways/ollama_messages_adapter_spec.py,sha256=gVRbWDrHOa1EiZ0CkEWe0pGn-GKRqdGb-x56HBQeYSE,4981
78
77
  mojentic/llm/gateways/openai.py,sha256=NQECA41PS21RhXjwQdbH3DAP15WqkEl22UlS1ka_lLM,5434
79
- mojentic/llm/gateways/openai_message_adapter_spec.py,sha256=IgXyio15nXn11MiFpUnAxm5fFpPU9m-c4qerd9gbpBA,6473
80
- mojentic/llm/gateways/openai_messages_adapter.py,sha256=Qwidv7C-wXDOEV8NYNjgIbHnJSlkcoK10FaeLos5zTc,2882
78
+ mojentic/llm/gateways/openai_message_adapter_spec.py,sha256=ITBSV5njldV_x0NPgjmg8Okf9KzevQJ8dTXM-t6ubcg,6612
79
+ mojentic/llm/gateways/openai_messages_adapter.py,sha256=9Btcr77RzlqZIdkNuGDGitk9D7SQTv4GsdKXaN2Fuv4,3863
81
80
  mojentic/llm/gateways/tokenizer_gateway.py,sha256=ztuqfunlJ6xmyUPPHcC_69-kegiNJD6jdSEde7hDh2w,485
82
81
  mojentic/llm/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
82
  mojentic/llm/registry/llm_registry.py,sha256=beyrgGrkXx5ZckUJzC1nQ461vra0fF6s_qRaEdi5bsg,2508
@@ -89,8 +88,8 @@ mojentic/llm/tools/current_datetime.py,sha256=JkIFlBBnvE4CMcgZizqITVTtNfL7zeeLxD
89
88
  mojentic/llm/tools/date_resolver.py,sha256=VDxX59PTHo0PstDxaJUo3SF7vkvQoG92bo6j8ABq8y4,2185
90
89
  mojentic/llm/tools/date_resolver_spec.py,sha256=OaRvJyhSN8sgi75euk4E5ImaqUmvQdgZKY8u_NOiPWE,1185
91
90
  mojentic/llm/tools/file_manager.py,sha256=X8Uw4XtdH_Ol2EB3SN11-GYlC1diJ1cAywU9_EuCjCg,3788
92
- mojentic/llm/tools/llm_tool.py,sha256=En88CSBMSKegXMe1A2eaWnEiYYuKkK2x-cD384B33is,758
93
- mojentic/llm/tools/llm_tool_spec.py,sha256=mj9nX10v8jKC5ahscmmKVe3IMNdBpRqc6C6LmROLkZw,2059
91
+ mojentic/llm/tools/llm_tool.py,sha256=MhPkRkM0GihZ8_82Y7Xn3zhfuA_Ic0zmC9ouHXMWTT0,1660
92
+ mojentic/llm/tools/llm_tool_spec.py,sha256=OPudmuqSxkJBUaL0-qABri-tvrAyb6QI9Ac5B5iTo3I,2112
94
93
  mojentic/llm/tools/organic_web_search.py,sha256=X_WQSSFgeMp5jlm0tnqGOHDIZ2KHDvz3k6GF-XqsuN4,1301
95
94
  mojentic/llm/tools/tell_user_tool.py,sha256=bF_PTfF0-skCi_Exw6EPpdfoNUZRJ4MWg-XCe4VYd6s,999
96
95
  mojentic/llm/tools/tool_wrapper.py,sha256=6YZOhckgNsSUc7YK6bKjODjRTwi6wcH9bdcySUDPt3Q,1391
@@ -112,10 +111,18 @@ mojentic/llm/tools/ephemeral_task_manager/prepend_task_tool.py,sha256=GGqPTdBTkj
112
111
  mojentic/llm/tools/ephemeral_task_manager/prepend_task_tool_spec.py,sha256=lUCnejAON9g0DDNS64EVHwapPjF8b87RsXPUVvvG0b4,1174
113
112
  mojentic/llm/tools/ephemeral_task_manager/start_task_tool.py,sha256=VH8Wa4-ZmkMIsyLuLXJx4pGidiT0KeT55DnujFpK-0o,2414
114
113
  mojentic/llm/tools/ephemeral_task_manager/start_task_tool_spec.py,sha256=oDeVPPfquM2ojwG0aaNnbWCB_LRgm8runtG-CumZkLg,1490
114
+ mojentic/tracer/__init__.py,sha256=075nYiRvYTzkzombGY-31Gy0JMPM7Zn645F6_j5-k6I,445
115
+ mojentic/tracer/event_store.py,sha256=eqbze4YRuiMDr8TCtMNHi-U_6-CLgstOHkLmtM5hc6Q,3691
116
+ mojentic/tracer/event_store_spec.py,sha256=OWXWbeMCYU9dfySmbpmDA4KmwLlSaFy4ZpRt6BsTkFE,6522
117
+ mojentic/tracer/null_tracer.py,sha256=nBVs3CiVdbFXoiwtth6eh3m3z1Gggs6yEIBqX4QbW-U,6338
118
+ mojentic/tracer/tracer_events.py,sha256=DWv2PEU1CiUC1UnDScu9_DESEiTRIwpw0EMymFg4FJw,5383
119
+ mojentic/tracer/tracer_events_spec.py,sha256=v84P3IjVr0_TGjwJD1w2SSNlTDJj0a4P8tMkDrsbOTA,3549
120
+ mojentic/tracer/tracer_system.py,sha256=iBU4aHNYMSaIMh1q5CHcItufzYE6GXdw2wNtXu4NQRk,9415
121
+ mojentic/tracer/tracer_system_spec.py,sha256=r5_GYEN78t0nJFawKvya8eyIUbmSgenyflPld-7Y448,7968
115
122
  mojentic/utils/__init__.py,sha256=lqECkkoFvHFttDnafRE1vvh0Dmna_lwupMToP5VvX5k,115
116
123
  mojentic/utils/formatting.py,sha256=bPrwwdluXdQ8TsFxfWtHNOeMWKNvAfABSoUnnA1g7c8,947
117
- mojentic-0.5.7.dist-info/licenses/LICENSE.md,sha256=txSgV8n5zY1W3NiF5HHsCwlaW0e8We1cSC6TuJUqxXA,1060
118
- mojentic-0.5.7.dist-info/METADATA,sha256=X6AdtcNt3_haoPVzJv_WijbYkovQlUhjIHV51uf6DEs,4956
119
- mojentic-0.5.7.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
120
- mojentic-0.5.7.dist-info/top_level.txt,sha256=Q-BvPQ8Eu1jnEqK8Xkr6A9C8Xa1z38oPZRHuA5MCTqg,19
121
- mojentic-0.5.7.dist-info/RECORD,,
124
+ mojentic-0.6.0.dist-info/licenses/LICENSE.md,sha256=txSgV8n5zY1W3NiF5HHsCwlaW0e8We1cSC6TuJUqxXA,1060
125
+ mojentic-0.6.0.dist-info/METADATA,sha256=jZvs5Umlb93eIs366WDSch4GYJ2x_p6a038wLS7EreY,5383
126
+ mojentic-0.6.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
127
+ mojentic-0.6.0.dist-info/top_level.txt,sha256=Q-BvPQ8Eu1jnEqK8Xkr6A9C8Xa1z38oPZRHuA5MCTqg,19
128
+ mojentic-0.6.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,6 +0,0 @@
1
- class EventStore:
2
- def __init__(self):
3
- self.events = []
4
-
5
- def store(self, event):
6
- self.events.append(event)
@@ -1,26 +0,0 @@
1
- from mojentic import Event
2
- from mojentic.audit.event_store import EventStore
3
-
4
-
5
- class DescribeEventStore:
6
- """
7
- The immutable event store is key to the auditability of agent interactions.
8
- """
9
-
10
- def should_store_an_event(self):
11
- """
12
- Given an event
13
- When asked to store the event
14
- Then the event should be stored
15
- """
16
- # Given
17
- event = Event(
18
- source=DescribeEventStore,
19
- )
20
- event_store = EventStore()
21
-
22
- # When
23
- event_store.store(event)
24
-
25
- # Then
26
- assert event in event_store.events