solana-agent 30.0.8__tar.gz → 31.0.0__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.
- {solana_agent-30.0.8 → solana_agent-31.0.0}/PKG-INFO +10 -10
- {solana_agent-30.0.8 → solana_agent-31.0.0}/pyproject.toml +12 -12
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/factories/agent_factory.py +0 -42
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/repositories/memory.py +18 -10
- {solana_agent-30.0.8 → solana_agent-31.0.0}/LICENSE +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/README.md +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/adapters/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/adapters/mongodb_adapter.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/adapters/openai_adapter.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/adapters/pinecone_adapter.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/cli.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/client/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/client/solana_agent.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/domains/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/domains/agent.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/domains/routing.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/factories/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/guardrails/pii.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/client/client.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/guardrails/guardrails.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/plugins/plugins.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/providers/data_storage.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/providers/llm.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/providers/memory.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/providers/vector_storage.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/services/agent.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/services/knowledge_base.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/services/query.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/services/routing.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/plugins/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/plugins/manager.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/plugins/registry.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/plugins/tools/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/plugins/tools/auto_tool.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/repositories/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/services/__init__.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/services/agent.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/services/knowledge_base.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/services/query.py +0 -0
- {solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/services/routing.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: solana-agent
|
3
|
-
Version:
|
3
|
+
Version: 31.0.0
|
4
4
|
Summary: AI Agents for Solana
|
5
5
|
License: MIT
|
6
6
|
Keywords: solana,solana ai,solana agent,ai,ai agent,ai agents
|
@@ -14,20 +14,20 @@ Classifier: Programming Language :: Python :: 3
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
17
|
-
Requires-Dist: instructor (==1.
|
18
|
-
Requires-Dist: llama-index-core (==0.
|
19
|
-
Requires-Dist: llama-index-embeddings-openai (==0.
|
20
|
-
Requires-Dist: logfire (==
|
21
|
-
Requires-Dist: openai (==1.
|
22
|
-
Requires-Dist: pillow (==11.
|
17
|
+
Requires-Dist: instructor (==1.10.0)
|
18
|
+
Requires-Dist: llama-index-core (==0.13.0)
|
19
|
+
Requires-Dist: llama-index-embeddings-openai (==0.5.0)
|
20
|
+
Requires-Dist: logfire (==4.2.0)
|
21
|
+
Requires-Dist: openai (==1.99.3)
|
22
|
+
Requires-Dist: pillow (==11.3.0)
|
23
23
|
Requires-Dist: pinecone (==7.3.0)
|
24
24
|
Requires-Dist: pydantic (>=2)
|
25
|
-
Requires-Dist: pymongo (==4.
|
26
|
-
Requires-Dist: pypdf (==5.
|
25
|
+
Requires-Dist: pymongo (==4.14.0)
|
26
|
+
Requires-Dist: pypdf (==5.9.0)
|
27
27
|
Requires-Dist: rich (>=13,<14.0)
|
28
28
|
Requires-Dist: scrubadub (==2.0.1)
|
29
29
|
Requires-Dist: typer (==0.16.0)
|
30
|
-
Requires-Dist: zep-cloud (==
|
30
|
+
Requires-Dist: zep-cloud (==3.1.0)
|
31
31
|
Project-URL: Documentation, https://docs.solana-agent.com
|
32
32
|
Project-URL: Homepage, https://solana-agent.com
|
33
33
|
Project-URL: Repository, https://github.com/truemagic-coder/solana-agent
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "solana-agent"
|
3
|
-
version = "
|
3
|
+
version = "31.0.0"
|
4
4
|
description = "AI Agents for Solana"
|
5
5
|
authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
|
6
6
|
license = "MIT"
|
@@ -24,25 +24,25 @@ python_paths = [".", "tests"]
|
|
24
24
|
|
25
25
|
[tool.poetry.dependencies]
|
26
26
|
python = ">=3.12,<4.0"
|
27
|
-
openai = "1.
|
27
|
+
openai = "1.99.3"
|
28
28
|
pydantic = ">=2"
|
29
|
-
pymongo = "4.
|
30
|
-
zep-cloud = "
|
31
|
-
instructor = "1.
|
29
|
+
pymongo = "4.14.0"
|
30
|
+
zep-cloud = "3.1.0"
|
31
|
+
instructor = "1.10.0"
|
32
32
|
pinecone = "7.3.0"
|
33
|
-
llama-index-core = "0.
|
34
|
-
llama-index-embeddings-openai = "0.
|
35
|
-
pypdf = "5.
|
33
|
+
llama-index-core = "0.13.0"
|
34
|
+
llama-index-embeddings-openai = "0.5.0"
|
35
|
+
pypdf = "5.9.0"
|
36
36
|
scrubadub = "2.0.1"
|
37
|
-
logfire = "
|
37
|
+
logfire = "4.2.0"
|
38
38
|
typer = "0.16.0"
|
39
39
|
rich = ">=13,<14.0"
|
40
|
-
pillow = "11.
|
40
|
+
pillow = "11.3.0"
|
41
41
|
|
42
42
|
[tool.poetry.group.dev.dependencies]
|
43
43
|
pytest = "^8.4.0"
|
44
44
|
pytest-cov = "^6.1.1"
|
45
|
-
pytest-asyncio = "^1.
|
45
|
+
pytest-asyncio = "^1.1.0"
|
46
46
|
pytest-mock = "^3.14.0"
|
47
47
|
pytest-github-actions-annotate-failures = "^0.3.0"
|
48
48
|
sphinx = "^8.2.3"
|
@@ -50,7 +50,7 @@ sphinx-rtd-theme = "^3.0.2"
|
|
50
50
|
myst-parser = "^4.0.1"
|
51
51
|
sphinx-autobuild = "^2024.10.3"
|
52
52
|
mongomock = "^4.3.0"
|
53
|
-
ruff = "^0.
|
53
|
+
ruff = "^0.12.8"
|
54
54
|
|
55
55
|
[tool.poetry.scripts]
|
56
56
|
solana-agent = "solana_agent.cli:app"
|
@@ -174,48 +174,6 @@ class SolanaAgentFactory:
|
|
174
174
|
agent_service=agent_service,
|
175
175
|
)
|
176
176
|
|
177
|
-
if "gemini" in config and "api_key" in config["gemini"]:
|
178
|
-
# Create primary services
|
179
|
-
agent_service = AgentService(
|
180
|
-
llm_provider=llm_adapter,
|
181
|
-
business_mission=business_mission,
|
182
|
-
config=config,
|
183
|
-
api_key=config["gemini"]["api_key"],
|
184
|
-
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
|
185
|
-
model="gemini-2.5-flash-preview-05-20",
|
186
|
-
output_guardrails=output_guardrails,
|
187
|
-
) # pragma: no cover
|
188
|
-
|
189
|
-
# Create routing service
|
190
|
-
routing_service = RoutingService(
|
191
|
-
llm_provider=llm_adapter,
|
192
|
-
agent_service=agent_service,
|
193
|
-
api_key=config["gemini"]["api_key"],
|
194
|
-
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
|
195
|
-
model="gemini-2.5-flash-preview-05-20",
|
196
|
-
) # pragma: no cover
|
197
|
-
|
198
|
-
elif "ollama" in config and "api_key" in config["ollama"]:
|
199
|
-
# Create primary services
|
200
|
-
agent_service = AgentService(
|
201
|
-
llm_provider=llm_adapter,
|
202
|
-
business_mission=business_mission,
|
203
|
-
config=config,
|
204
|
-
api_key=config["ollama"]["api_key"],
|
205
|
-
base_url="http://localhost:11434/v1",
|
206
|
-
model="gemma3:4b-it-qat",
|
207
|
-
output_guardrails=output_guardrails,
|
208
|
-
) # pragma: no cover
|
209
|
-
|
210
|
-
# Create routing service
|
211
|
-
routing_service = RoutingService(
|
212
|
-
llm_provider=llm_adapter,
|
213
|
-
agent_service=agent_service,
|
214
|
-
api_key=config["ollama"]["api_key"],
|
215
|
-
base_url="http://localhost:11434/v1",
|
216
|
-
model="gemma3:4b-it-qat",
|
217
|
-
) # pragma: no cover
|
218
|
-
|
219
177
|
# Debug the agent service tool registry
|
220
178
|
logger.debug( # Use logger.debug
|
221
179
|
f"Agent service tools after initialization: {agent_service.tool_registry.list_all_tools()}"
|
@@ -43,7 +43,7 @@ class MemoryRepository(MemoryProvider):
|
|
43
43
|
|
44
44
|
async def store(self, user_id: str, messages: List[Dict[str, Any]]) -> None:
|
45
45
|
"""Store messages in both Zep and MongoDB."""
|
46
|
-
if not user_id:
|
46
|
+
if not user_id or user_id == "" or not isinstance(user_id, str):
|
47
47
|
raise ValueError("User ID cannot be None or empty")
|
48
48
|
if not messages or not isinstance(messages, list):
|
49
49
|
raise ValueError("Messages must be a non-empty list")
|
@@ -92,20 +92,24 @@ class MemoryRepository(MemoryProvider):
|
|
92
92
|
|
93
93
|
# Convert messages to Zep format
|
94
94
|
zep_messages = []
|
95
|
+
|
95
96
|
for msg in messages:
|
96
97
|
if "role" in msg and "content" in msg:
|
97
98
|
content = self._truncate(deepcopy(msg["content"]))
|
99
|
+
role_type = "user" if msg["role"] == "user" else "assistant"
|
98
100
|
zep_msg = Message(
|
99
|
-
role=msg["role"],
|
100
101
|
content=content,
|
101
|
-
role_type
|
102
|
+
role=role_type,
|
102
103
|
)
|
103
104
|
zep_messages.append(zep_msg)
|
104
105
|
|
105
106
|
# Add messages to Zep memory
|
106
107
|
if zep_messages:
|
107
108
|
try:
|
108
|
-
await self.zep.
|
109
|
+
await self.zep.thread.add_messages(
|
110
|
+
thread_id=user_id,
|
111
|
+
messages=zep_messages,
|
112
|
+
)
|
109
113
|
except Exception:
|
110
114
|
try:
|
111
115
|
try:
|
@@ -116,14 +120,18 @@ class MemoryRepository(MemoryProvider):
|
|
116
120
|
) # Use logger.error
|
117
121
|
|
118
122
|
try:
|
119
|
-
await self.zep.
|
120
|
-
|
123
|
+
await self.zep.thread.create(
|
124
|
+
thread_id=user_id,
|
125
|
+
user_id=user_id,
|
121
126
|
)
|
122
127
|
except Exception as e:
|
123
128
|
logger.error(
|
124
|
-
f"Zep
|
129
|
+
f"Zep thread creation error: {e}"
|
125
130
|
) # Use logger.error
|
126
|
-
await self.zep.
|
131
|
+
await self.zep.thread.add_messages(
|
132
|
+
thread_id=user_id,
|
133
|
+
messages=zep_messages,
|
134
|
+
)
|
127
135
|
except Exception as e:
|
128
136
|
logger.error(f"Zep memory addition error: {e}") # Use logger.error
|
129
137
|
return
|
@@ -133,7 +141,7 @@ class MemoryRepository(MemoryProvider):
|
|
133
141
|
try:
|
134
142
|
memories = ""
|
135
143
|
if self.zep:
|
136
|
-
memory = await self.zep.
|
144
|
+
memory = await self.zep.thread.get_user_context(thread_id=user_id)
|
137
145
|
if memory and memory.context:
|
138
146
|
memories = memory.context
|
139
147
|
|
@@ -155,7 +163,7 @@ class MemoryRepository(MemoryProvider):
|
|
155
163
|
return
|
156
164
|
|
157
165
|
try:
|
158
|
-
await self.zep.
|
166
|
+
await self.zep.thread.delete(thread_id=user_id)
|
159
167
|
except Exception as e:
|
160
168
|
logger.error(f"Zep memory deletion error: {e}") # Use logger.error
|
161
169
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/guardrails/guardrails.py
RENAMED
File without changes
|
File without changes
|
{solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/providers/data_storage.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/providers/vector_storage.py
RENAMED
File without changes
|
File without changes
|
{solana_agent-30.0.8 → solana_agent-31.0.0}/solana_agent/interfaces/services/knowledge_base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|