solana-agent 25.0.2__tar.gz → 26.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.
Files changed (35) hide show
  1. {solana_agent-25.0.2 → solana_agent-26.0.0}/PKG-INFO +3 -22
  2. {solana_agent-25.0.2 → solana_agent-26.0.0}/README.md +2 -21
  3. {solana_agent-25.0.2 → solana_agent-26.0.0}/pyproject.toml +1 -1
  4. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/adapters/llm_adapter.py +2 -3
  5. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/client/solana_agent.py +1 -1
  6. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/repositories/memory.py +21 -8
  7. {solana_agent-25.0.2 → solana_agent-26.0.0}/LICENSE +0 -0
  8. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/__init__.py +0 -0
  9. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/adapters/__init__.py +0 -0
  10. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/adapters/mongodb_adapter.py +0 -0
  11. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/client/__init__.py +0 -0
  12. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/domains/__init__.py +0 -0
  13. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/domains/agent.py +0 -0
  14. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/domains/routing.py +0 -0
  15. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/factories/__init__.py +0 -0
  16. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/factories/agent_factory.py +0 -0
  17. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/__init__.py +0 -0
  18. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/client/client.py +0 -0
  19. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/plugins/plugins.py +0 -0
  20. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/providers/data_storage.py +0 -0
  21. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/providers/llm.py +0 -0
  22. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/providers/memory.py +0 -0
  23. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/services/agent.py +0 -0
  24. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/services/query.py +0 -0
  25. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/interfaces/services/routing.py +0 -0
  26. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/plugins/__init__.py +0 -0
  27. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/plugins/manager.py +0 -0
  28. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/plugins/registry.py +0 -0
  29. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/plugins/tools/__init__.py +0 -0
  30. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/plugins/tools/auto_tool.py +0 -0
  31. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/repositories/__init__.py +0 -0
  32. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/services/__init__.py +0 -0
  33. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/services/agent.py +0 -0
  34. {solana_agent-25.0.2 → solana_agent-26.0.0}/solana_agent/services/query.py +0 -0
  35. {solana_agent-25.0.2 → solana_agent-26.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: 25.0.2
3
+ Version: 26.0.0
4
4
  Summary: Agentic IQ
5
5
  License: MIT
6
6
  Keywords: ai,openai,ai agents,agi
@@ -82,8 +82,8 @@ Build your AI business in three lines of code!
82
82
 
83
83
  ### LLMs
84
84
 
85
- * [gpt-4o-mini](https://platform.openai.com/docs/models/gpt-4o-mini) or [gemini-2.0-flash](https://ai.google.dev/gemini-api/docs/models#gemini-2.0-flash)
86
- * [gpt-4o-mini-tts](https://platform.openai.com/docs/models/gpt-4o-mini-tts)
85
+ * [gemini-2.0-flash](https://ai.google.dev/gemini-api/docs/models#gemini-2.0-flash) or [gpt-4o-mini](https://platform.openai.com/docs/models/gpt-4o-mini)
86
+ * [tts-1](https://platform.openai.com/docs/models/tts-1)
87
87
  * [gpt-4o-mini-transcribe](https://platform.openai.com/docs/models/gpt-4o-mini-transcribe)
88
88
 
89
89
 
@@ -313,25 +313,6 @@ config = {
313
313
  }
314
314
  ```
315
315
 
316
- ### Customize Speech
317
-
318
- This is an audio to audio example using the `audio_instructions` parameter.
319
-
320
- You can prompt to control aspects of speech, including:
321
-
322
- * Accent
323
- * Emotional range
324
- * Intonation
325
- * Impressions
326
- * Speed of speech
327
- * Tone
328
- * Whispering
329
-
330
- ```python
331
- async for response in solana_agent.process("user123", audio_content, output_format="audio", audio_voice="nova", audio_input_format="webm", audio_output_format="aac", audio_instructions="You speak with an American southern accent"):
332
- print(response, end="")
333
- ```
334
-
335
316
  ## Tools
336
317
 
337
318
  Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools. Tools available via plugins integrate automatically with Solana Agent.
@@ -57,8 +57,8 @@ Build your AI business in three lines of code!
57
57
 
58
58
  ### LLMs
59
59
 
60
- * [gpt-4o-mini](https://platform.openai.com/docs/models/gpt-4o-mini) or [gemini-2.0-flash](https://ai.google.dev/gemini-api/docs/models#gemini-2.0-flash)
61
- * [gpt-4o-mini-tts](https://platform.openai.com/docs/models/gpt-4o-mini-tts)
60
+ * [gemini-2.0-flash](https://ai.google.dev/gemini-api/docs/models#gemini-2.0-flash) or [gpt-4o-mini](https://platform.openai.com/docs/models/gpt-4o-mini)
61
+ * [tts-1](https://platform.openai.com/docs/models/tts-1)
62
62
  * [gpt-4o-mini-transcribe](https://platform.openai.com/docs/models/gpt-4o-mini-transcribe)
63
63
 
64
64
 
@@ -288,25 +288,6 @@ config = {
288
288
  }
289
289
  ```
290
290
 
291
- ### Customize Speech
292
-
293
- This is an audio to audio example using the `audio_instructions` parameter.
294
-
295
- You can prompt to control aspects of speech, including:
296
-
297
- * Accent
298
- * Emotional range
299
- * Intonation
300
- * Impressions
301
- * Speed of speech
302
- * Tone
303
- * Whispering
304
-
305
- ```python
306
- async for response in solana_agent.process("user123", audio_content, output_format="audio", audio_voice="nova", audio_input_format="webm", audio_output_format="aac", audio_instructions="You speak with an American southern accent"):
307
- print(response, end="")
308
- ```
309
-
310
291
  ## Tools
311
292
 
312
293
  Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools. Tools available via plugins integrate automatically with Solana Agent.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solana-agent"
3
- version = "25.0.2"
3
+ version = "26.0.0"
4
4
  description = "Agentic IQ"
5
5
  authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
6
6
  license = "MIT"
@@ -23,7 +23,7 @@ class OpenAIAdapter(LLMProvider):
23
23
  self.parse_model = "gpt-4o-mini"
24
24
  self.text_model = "gpt-4o-mini"
25
25
  self.transcription_model = "gpt-4o-mini-transcribe"
26
- self.tts_model = "gpt-4o-mini-tts"
26
+ self.tts_model = "tts-1"
27
27
 
28
28
  async def tts(
29
29
  self,
@@ -38,7 +38,7 @@ class OpenAIAdapter(LLMProvider):
38
38
 
39
39
  Args:
40
40
  text: Text to convert to speech
41
- instructions: Optional instructions for speech generation
41
+ instructions: Not used in this implementation
42
42
  voice: Voice to use for synthesis
43
43
  response_format: Audio format
44
44
 
@@ -49,7 +49,6 @@ class OpenAIAdapter(LLMProvider):
49
49
  async with self.client.audio.speech.with_streaming_response.create(
50
50
  model=self.tts_model,
51
51
  voice=voice,
52
- instructions=instructions,
53
52
  input=text,
54
53
  response_format=response_format
55
54
  ) as stream:
@@ -65,7 +65,7 @@ class SolanaAgent(SolanaAgentInterface):
65
65
  prompt: Optional prompt for the agent
66
66
  output_format: Response format ("text" or "audio")
67
67
  audio_voice: Voice to use for audio output
68
- audio_instructions: Audio voice instructions
68
+ audio_instructions: Not used in this version
69
69
  audio_output_format: Audio output format
70
70
  audio_input_format: Audio input format
71
71
  router: Optional routing service for processing
@@ -121,17 +121,30 @@ class MemoryRepository(MemoryProvider):
121
121
 
122
122
  async def retrieve(self, user_id: str) -> str:
123
123
  """Retrieve memory context from Zep only."""
124
- if not self.zep:
125
- return ""
126
-
127
124
  try:
128
- memory = await self.zep.memory.get(session_id=user_id)
129
- if memory is None or not hasattr(memory, 'context') or memory.context is None:
130
- return ""
131
- return memory.context
125
+ memories = ""
126
+ if self.zep:
127
+ memory = await self.zep.memory.get(session_id=user_id)
128
+ if memory and memory.context:
129
+ memories = memory.context
130
+ if self.mongo:
131
+ mongo_memory = self.mongo.find(
132
+ self.collection,
133
+ {"user_id": user_id},
134
+ sort=[("timestamp", -1)],
135
+ limit=3
136
+ )
137
+ if mongo_memory:
138
+ # Concatenate MongoDB memory with Zep memory
139
+ mongo_memory = [
140
+ f"{msg['user_message']} {msg['assistant_message']}"
141
+ for msg in mongo_memory
142
+ ]
143
+ memories += " ".join(mongo_memory)
144
+ return memories
132
145
 
133
146
  except Exception as e:
134
- print(f"Error retrieving Zep memory: {e}")
147
+ print(f"Error retrieving memories: {e}")
135
148
  return ""
136
149
 
137
150
  async def delete(self, user_id: str) -> None:
File without changes