wizelit-sdk 0.1.23__tar.gz → 0.1.25__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. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/PKG-INFO +1 -1
  2. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/pyproject.toml +1 -1
  3. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/__init__.py +2 -2
  4. wizelit_sdk-0.1.25/src/wizelit_sdk/agent_wrapper/__init__.py +8 -0
  5. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/agent_wrapper/agent_wrapper.py +10 -9
  6. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/agent_wrapper/job.py +3 -3
  7. wizelit_sdk-0.1.25/tests/test_agent_wrapper_import.py +6 -0
  8. wizelit_sdk-0.1.25/tests/test_utils.py +18 -0
  9. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/uv.lock +1 -1
  10. wizelit_sdk-0.1.23/src/wizelit_sdk/agent_wrapper/__init__.py +0 -9
  11. wizelit_sdk-0.1.23/tests/test_agent_wrapper_import.py +0 -6
  12. wizelit_sdk-0.1.23/tests/test_utils.py +0 -23
  13. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/.editorconfig +0 -0
  14. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/.gitignore +0 -0
  15. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/CHANGELOG.md +0 -0
  16. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/INITIALIZATION_INSTRUCTION.MD +0 -0
  17. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/Makefile +0 -0
  18. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/README.md +0 -0
  19. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/activate.sh +0 -0
  20. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/__init__.py +0 -0
  21. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/agent_wrapper/streaming.py +0 -0
  22. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/agent_wrapper/utils.py +0 -0
  23. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/database.py +0 -0
  24. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/models/__init__.py +0 -0
  25. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/models/base.py +0 -0
  26. {wizelit_sdk-0.1.23 → wizelit_sdk-0.1.25}/src/wizelit_sdk/models/job.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wizelit-sdk
3
- Version: 0.1.23
3
+ Version: 0.1.25
4
4
  Summary: Wizelit Agent Wrapper - Internal utility package
5
5
  Author-email: Your Name <your.email@company.com>
6
6
  Requires-Python: >=3.10
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "wizelit-sdk"
7
- version = "0.1.23"
7
+ version = "0.1.25"
8
8
  description = "Wizelit Agent Wrapper - Internal utility package"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1,11 +1,11 @@
1
1
  """Wizelit SDK package."""
2
2
 
3
- from wizelit_sdk.agent_wrapper import WizelitAgentWrapper
3
+ from wizelit_sdk.agent_wrapper import WizelitAgent
4
4
  from wizelit_sdk.database import DatabaseManager
5
5
  from wizelit_sdk.agent_wrapper.job import Job
6
6
  from wizelit_sdk.agent_wrapper.streaming import LogStreamer
7
7
  from wizelit_sdk.models.base import BaseModel
8
8
  from wizelit_sdk.models.job import JobModel, JobLogModel, JobStatus
9
9
 
10
- __all__ = ["WizelitAgentWrapper", "DatabaseManager", "Job", "LogStreamer", "BaseModel", "JobModel", "JobLogModel", "JobStatus"]
10
+ __all__ = ["WizelitAgent", "DatabaseManager", "Job", "LogStreamer", "BaseModel", "JobModel", "JobLogModel", "JobStatus"]
11
11
 
@@ -0,0 +1,8 @@
1
+ """Agent Wrapper - Internal utility package."""
2
+
3
+ # Import main functions
4
+ from .agent_wrapper import WizelitAgent
5
+ from .job import Job
6
+ from .streaming import LogStreamer
7
+
8
+ __all__ = ["WizelitAgent", "Job", "LogStreamer"]
@@ -3,7 +3,7 @@ import asyncio
3
3
  import inspect
4
4
  import logging
5
5
  import os
6
- from typing import Callable, Any, Optional, Literal, Dict, TYPE_CHECKING
6
+ from typing import Callable, Any, Optional, Literal, Dict, TYPE_CHECKING, Union
7
7
  from contextvars import ContextVar
8
8
  from fastmcp import FastMCP, Context
9
9
  from fastmcp.dependencies import CurrentContext
@@ -34,7 +34,7 @@ class CurrentJob:
34
34
  return _current_job.get()
35
35
 
36
36
 
37
- class WizelitAgentWrapper:
37
+ class WizelitAgent:
38
38
  """
39
39
  Main wrapper class that converts Python functions into MCP server tools.
40
40
  Built on top of fast-mcp with enhanced streaming and agent framework support.
@@ -87,7 +87,7 @@ class WizelitAgentWrapper:
87
87
  print(f"Warning: Failed to initialize log streamer: {e}")
88
88
 
89
89
  print(
90
- f"WizelitAgentWrapper initialized with name: {name}, transport: {transport}, host: {host}, port: {port}"
90
+ f"WizelitAgent initialized with name: {name}, transport: {transport}, host: {host}, port: {port}"
91
91
  )
92
92
 
93
93
  def ingest(
@@ -362,9 +362,10 @@ class WizelitAgentWrapper:
362
362
  return result
363
363
 
364
364
  except Exception as e:
365
- # Mark job as failed (only if job exists)
366
- if job is not None:
367
- job.status = "failed"
365
+ # Mark job as failed when a job instance exists
366
+ active_job = job or _current_job.get()
367
+ if active_job is not None:
368
+ active_job.status = "failed"
368
369
 
369
370
  # Stream error information
370
371
  await ctx.report_progress(
@@ -483,7 +484,7 @@ class WizelitAgentWrapper:
483
484
  return None
484
485
 
485
486
  try:
486
- from models.job import JobModel
487
+ from wizelit_sdk.models.job import JobModel
487
488
  from sqlalchemy import select
488
489
 
489
490
  async with self._db_manager.get_session() as session:
@@ -532,7 +533,7 @@ class WizelitAgentWrapper:
532
533
  return None
533
534
 
534
535
  try:
535
- from models.job import JobLogModel
536
+ from wizelit_sdk.models.job import JobLogModel
536
537
  from sqlalchemy import select
537
538
 
538
539
  async with self._db_manager.get_session() as session:
@@ -579,7 +580,7 @@ class WizelitAgentWrapper:
579
580
  return True
580
581
 
581
582
  def set_job_result(
582
- self, job_id: str, result: Optional[str | dict[str, Any]]
583
+ self, job_id: str, result: Optional[Union[str, dict[str, Any]]]
583
584
  ) -> bool:
584
585
  """
585
586
  Set the result of a job by job_id.
@@ -60,7 +60,7 @@ class DatabaseLogHandler(logging.Handler):
60
60
  """
61
61
  try:
62
62
  # Import here to avoid circular dependency
63
- from models.job import JobLogModel
63
+ from wizelit_sdk.models.job import JobLogModel
64
64
  from datetime import datetime
65
65
 
66
66
  async def write_log():
@@ -274,7 +274,7 @@ class Job:
274
274
  try:
275
275
  result = await coro
276
276
  # Store string results for convenience
277
- if isinstance(result, str|dict):
277
+ if isinstance(result, (str, dict)):
278
278
  self.result = result
279
279
  if self._status == "running":
280
280
  self.status = "completed"
@@ -351,7 +351,7 @@ class Job:
351
351
  return
352
352
 
353
353
  try:
354
- from models.job import JobModel
354
+ from wizelit_sdk.models.job import JobModel
355
355
 
356
356
  async with self._db_manager.get_session() as session:
357
357
  # Check if job already exists
@@ -0,0 +1,6 @@
1
+ def test_imports():
2
+ # Simple import smoke test to ensure public symbols are available
3
+ from wizelit_sdk.agent_wrapper import WizelitAgent, Job # type: ignore
4
+
5
+ assert WizelitAgent is not None
6
+ assert Job is not None
@@ -0,0 +1,18 @@
1
+ """Public API tests for agent_wrapper."""
2
+
3
+ import wizelit_sdk.agent_wrapper as agent_wrapper
4
+
5
+
6
+ def test_agent_wrapper_public_api_is_minimal():
7
+ """Ensure placeholder utilities are not exposed via the public API."""
8
+ assert not hasattr(agent_wrapper, "greet")
9
+ assert not hasattr(agent_wrapper, "greet_many")
10
+ assert not hasattr(agent_wrapper, "greet_many3")
11
+
12
+
13
+ def test_agent_wrapper_exports_core_symbols():
14
+ """Ensure core classes remain publicly available."""
15
+ assert agent_wrapper.WizelitAgent is not None
16
+ assert agent_wrapper.Job is not None
17
+ assert agent_wrapper.LogStreamer is not None
18
+
@@ -2038,7 +2038,7 @@ wheels = [
2038
2038
 
2039
2039
  [[package]]
2040
2040
  name = "wizelit-sdk"
2041
- version = "0.1.23"
2041
+ version = "0.1.25"
2042
2042
  source = { editable = "." }
2043
2043
  dependencies = [
2044
2044
  { name = "asyncpg" },
@@ -1,9 +0,0 @@
1
- """Agent Wrapper - Internal utility package."""
2
-
3
- # Import main functions
4
- from .utils import greet, greet_many, greet_many3
5
- from .agent_wrapper import WizelitAgentWrapper
6
- from .job import Job
7
- from .streaming import LogStreamer
8
-
9
- __all__ = ["greet", "greet_many", "greet_many3", "WizelitAgentWrapper", "Job", "LogStreamer"]
@@ -1,6 +0,0 @@
1
- def test_imports():
2
- # Simple import smoke test to ensure public symbols are available
3
- from wizelit_sdk.agent_wrapper import WizelitAgentWrapper, Job # type: ignore
4
-
5
- assert WizelitAgentWrapper is not None
6
- assert Job is not None
@@ -1,23 +0,0 @@
1
- """Tests for utility functions."""
2
-
3
- import pytest
4
- from wizelit_sdk.agent_wrapper import greet
5
-
6
-
7
- def test_greet_with_name():
8
- """Test greet function with a name."""
9
- result = greet("Alice")
10
- assert result == "Hello, Alice!"
11
-
12
-
13
- def test_greet_default():
14
- """Test greet function with default name."""
15
- result = greet()
16
- assert result == "Hello, World!"
17
-
18
-
19
- def test_greet_empty_string():
20
- """Test greet function with empty string."""
21
- result = greet("")
22
- assert result == "Hello, !"
23
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes