mbxai 1.0.11__tar.gz → 1.0.13__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 (26) hide show
  1. {mbxai-1.0.11 → mbxai-1.0.13}/PKG-INFO +1 -1
  2. {mbxai-1.0.11 → mbxai-1.0.13}/pyproject.toml +1 -1
  3. {mbxai-1.0.11 → mbxai-1.0.13}/setup.py +1 -1
  4. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/__init__.py +1 -1
  5. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/mcp/server.py +1 -1
  6. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/openrouter/client.py +11 -2
  7. {mbxai-1.0.11 → mbxai-1.0.13}/.gitignore +0 -0
  8. {mbxai-1.0.11 → mbxai-1.0.13}/LICENSE +0 -0
  9. {mbxai-1.0.11 → mbxai-1.0.13}/README.md +0 -0
  10. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/core.py +0 -0
  11. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/examples/mcp/mcp_client_example.py +0 -0
  12. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/examples/mcp/mcp_server_example.py +0 -0
  13. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/examples/openrouter_example.py +0 -0
  14. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/examples/parse_example.py +0 -0
  15. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/examples/parse_tool_example.py +0 -0
  16. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/examples/tool_client_example.py +0 -0
  17. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/mcp/__init__.py +0 -0
  18. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/mcp/client.py +0 -0
  19. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/mcp/example.py +0 -0
  20. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/openrouter/__init__.py +0 -0
  21. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/openrouter/config.py +0 -0
  22. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/openrouter/models.py +0 -0
  23. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/tools/__init__.py +0 -0
  24. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/tools/client.py +0 -0
  25. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/tools/example.py +0 -0
  26. {mbxai-1.0.11 → mbxai-1.0.13}/src/mbxai/tools/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mbxai
3
- Version: 1.0.11
3
+ Version: 1.0.13
4
4
  Summary: MBX AI SDK
5
5
  Project-URL: Homepage, https://www.mibexx.de
6
6
  Project-URL: Documentation, https://www.mibexx.de
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mbxai"
7
- version = "1.0.11"
7
+ version = "1.0.13"
8
8
  authors = [
9
9
  { name = "MBX AI" }
10
10
  ]
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="mbxai",
5
- version="1.0.11",
5
+ version="1.0.13",
6
6
  author="MBX AI",
7
7
  description="MBX AI SDK",
8
8
  long_description=open("README.md").read(),
@@ -2,4 +2,4 @@
2
2
  MBX AI package.
3
3
  """
4
4
 
5
- __version__ = "1.0.11"
5
+ __version__ = "1.0.13"
@@ -31,7 +31,7 @@ class MCPServer:
31
31
  self.app = FastAPI(
32
32
  title=self.name,
33
33
  description=self.description,
34
- version="1.0.11",
34
+ version="1.0.13",
35
35
  )
36
36
 
37
37
  # Initialize MCP server
@@ -90,6 +90,16 @@ def with_retry(max_retries: int = 3, initial_delay: float = 1.0, max_delay: floa
90
90
  return decorator
91
91
 
92
92
 
93
+ class CustomJSONEncoder(json.JSONEncoder):
94
+ """Custom JSON encoder to handle special types."""
95
+ def default(self, obj):
96
+ if hasattr(obj, '__name__'):
97
+ return obj.__name__
98
+ if hasattr(obj, '__dict__'):
99
+ return obj.__dict__
100
+ return str(obj)
101
+
102
+
93
103
  class OpenRouterClient:
94
104
  """Client for interacting with the OpenRouter API."""
95
105
 
@@ -336,7 +346,6 @@ class OpenRouterClient:
336
346
  # If there's no parsed attribute but there is content, try to parse it
337
347
  if not hasattr(response.choices[0].message, 'parsed') and hasattr(response.choices[0].message, 'content'):
338
348
  try:
339
- import json
340
349
  content = response.choices[0].message.content
341
350
  if isinstance(content, str):
342
351
  parsed = json.loads(content)
@@ -356,7 +365,7 @@ class OpenRouterClient:
356
365
  except Exception as e:
357
366
  stack_trace = traceback.format_exc()
358
367
  logger.error(f"Raising error: {e}")
359
- logger.error(f"Full request from ERROR:\n{json.dumps(request, indent=2)}")
368
+ logger.error(f"Full request from ERROR:\n{json.dumps(request, indent=2, cls=CustomJSONEncoder)}")
360
369
  logger.error(f"Error in parse completion: {str(e)}")
361
370
  logger.error(f"Stack trace:\n{stack_trace}")
362
371
 
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