signalwire-agents 0.1.9__tar.gz → 0.1.10__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 (50) hide show
  1. {signalwire_agents-0.1.9/signalwire_agents.egg-info → signalwire_agents-0.1.10}/PKG-INFO +9 -1
  2. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/README.md +8 -0
  3. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/pyproject.toml +1 -1
  4. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/__init__.py +1 -1
  5. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/skill_base.py +40 -0
  6. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/datetime/skill.py +2 -2
  7. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/math/skill.py +1 -1
  8. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/web_search/skill.py +3 -14
  9. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10/signalwire_agents.egg-info}/PKG-INFO +9 -1
  10. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/LICENSE +0 -0
  11. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/schema.json +0 -0
  12. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/setup.cfg +0 -0
  13. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/setup.py +0 -0
  14. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/agent_server.py +0 -0
  15. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/__init__.py +0 -0
  16. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/agent_base.py +0 -0
  17. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/function_result.py +0 -0
  18. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/pom_builder.py +0 -0
  19. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/security/__init__.py +0 -0
  20. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/security/session_manager.py +0 -0
  21. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/skill_manager.py +0 -0
  22. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/state/__init__.py +0 -0
  23. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/state/file_state_manager.py +0 -0
  24. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/state/state_manager.py +0 -0
  25. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/swaig_function.py +0 -0
  26. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/swml_builder.py +0 -0
  27. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/swml_handler.py +0 -0
  28. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/swml_renderer.py +0 -0
  29. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/core/swml_service.py +0 -0
  30. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/prefabs/__init__.py +0 -0
  31. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/prefabs/concierge.py +0 -0
  32. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/prefabs/faq_bot.py +0 -0
  33. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/prefabs/info_gatherer.py +0 -0
  34. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/prefabs/receptionist.py +0 -0
  35. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/prefabs/survey.py +0 -0
  36. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/schema.json +0 -0
  37. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/__init__.py +0 -0
  38. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/datetime/__init__.py +0 -0
  39. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/math/__init__.py +0 -0
  40. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/registry.py +0 -0
  41. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/skills/web_search/__init__.py +0 -0
  42. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/utils/__init__.py +0 -0
  43. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/utils/pom_utils.py +0 -0
  44. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/utils/schema_utils.py +0 -0
  45. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/utils/token_generators.py +0 -0
  46. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents/utils/validators.py +0 -0
  47. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents.egg-info/SOURCES.txt +0 -0
  48. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents.egg-info/dependency_links.txt +0 -0
  49. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents.egg-info/requires.txt +0 -0
  50. {signalwire_agents-0.1.9 → signalwire_agents-0.1.10}/signalwire_agents.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire_agents
3
- Version: 0.1.9
3
+ Version: 0.1.10
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  Project-URL: Homepage, https://github.com/signalwire/signalwire-ai-agents
@@ -67,6 +67,14 @@ agent.add_skill("web_search", {
67
67
  "delay": 0.5 # Small delay between requests
68
68
  })
69
69
 
70
+ # Advanced: Customize SWAIG function properties
71
+ agent.add_skill("math", {
72
+ "swaig_fields": {
73
+ "secure": False, # Override security settings
74
+ "fillers": {"en-US": ["Calculating..."]} # Custom filler phrases
75
+ }
76
+ })
77
+
70
78
  agent.serve()
71
79
  ```
72
80
 
@@ -37,6 +37,14 @@ agent.add_skill("web_search", {
37
37
  "delay": 0.5 # Small delay between requests
38
38
  })
39
39
 
40
+ # Advanced: Customize SWAIG function properties
41
+ agent.add_skill("math", {
42
+ "swaig_fields": {
43
+ "secure": False, # Override security settings
44
+ "fillers": {"en-US": ["Calculating..."]} # Custom filler phrases
45
+ }
46
+ })
47
+
40
48
  agent.serve()
41
49
  ```
42
50
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "signalwire_agents"
7
- version = "0.1.9"
7
+ version = "0.1.10"
8
8
  description = "SignalWire AI Agents SDK"
9
9
  authors = [
10
10
  {name = "SignalWire Team", email = "info@signalwire.com"}
@@ -14,7 +14,7 @@ SignalWire AI Agents SDK
14
14
  A package for building AI agents using SignalWire's AI and SWML capabilities.
15
15
  """
16
16
 
17
- __version__ = "0.1.9"
17
+ __version__ = "0.1.10"
18
18
 
19
19
  # Import core classes for easier access
20
20
  from signalwire_agents.core.agent_base import AgentBase
@@ -34,6 +34,9 @@ class SkillBase(ABC):
34
34
  self.params = params or {}
35
35
  self.logger = logging.getLogger(f"skill.{self.SKILL_NAME}")
36
36
 
37
+ # Extract swaig_fields from params for merging into tool definitions
38
+ self.swaig_fields = self.params.pop('swaig_fields', {})
39
+
37
40
  @abstractmethod
38
41
  def setup(self) -> bool:
39
42
  """
@@ -47,6 +50,43 @@ class SkillBase(ABC):
47
50
  """Register SWAIG tools with the agent"""
48
51
  pass
49
52
 
53
+ def define_tool_with_swaig_fields(
54
+ self,
55
+ name: str,
56
+ description: str,
57
+ parameters: Dict[str, Any],
58
+ handler,
59
+ **additional_kwargs
60
+ ):
61
+ """
62
+ Helper method to define a tool with swaig_fields merged in
63
+
64
+ Args:
65
+ name: Function name
66
+ description: Function description
67
+ parameters: Function parameters schema
68
+ handler: Function handler
69
+ **additional_kwargs: Additional keyword arguments for define_tool
70
+
71
+ This method automatically merges the swaig_fields from skill params
72
+ into the tool definition, allowing the skill loader to customize
73
+ SWAIG function properties.
74
+ """
75
+ # Start with the additional kwargs passed to this method
76
+ tool_kwargs = additional_kwargs.copy()
77
+
78
+ # Merge in the swaig_fields from params (swaig_fields take precedence)
79
+ tool_kwargs.update(self.swaig_fields)
80
+
81
+ # Call the agent's define_tool with all parameters
82
+ self.agent.define_tool(
83
+ name=name,
84
+ description=description,
85
+ parameters=parameters,
86
+ handler=handler,
87
+ **tool_kwargs
88
+ )
89
+
50
90
  def get_hints(self) -> List[str]:
51
91
  """Return speech recognition hints for this skill"""
52
92
  return []
@@ -30,7 +30,7 @@ class DateTimeSkill(SkillBase):
30
30
  def register_tools(self) -> None:
31
31
  """Register datetime tools with the agent"""
32
32
 
33
- self.agent.define_tool(
33
+ self.define_tool_with_swaig_fields(
34
34
  name="get_current_time",
35
35
  description="Get the current time, optionally in a specific timezone",
36
36
  parameters={
@@ -42,7 +42,7 @@ class DateTimeSkill(SkillBase):
42
42
  handler=self._get_time_handler
43
43
  )
44
44
 
45
- self.agent.define_tool(
45
+ self.define_tool_with_swaig_fields(
46
46
  name="get_current_date",
47
47
  description="Get the current date",
48
48
  parameters={
@@ -29,7 +29,7 @@ class MathSkill(SkillBase):
29
29
  def register_tools(self) -> None:
30
30
  """Register math tools with the agent"""
31
31
 
32
- self.agent.define_tool(
32
+ self.define_tool_with_swaig_fields(
33
33
  name="calculate",
34
34
  description="Perform a mathematical calculation with basic operations (+, -, *, /, %, **)",
35
35
  parameters={
@@ -149,19 +149,13 @@ class WebSearchSkill(SkillBase):
149
149
 
150
150
  def register_tools(self) -> None:
151
151
  """Register web search tool with the agent"""
152
- self.agent.define_tool(
152
+ self.define_tool_with_swaig_fields(
153
153
  name="web_search",
154
154
  description="Search the web for information on any topic and return detailed results with content from multiple sources",
155
155
  parameters={
156
156
  "query": {
157
157
  "type": "string",
158
158
  "description": "The search query - what you want to find information about"
159
- },
160
- "num_results": {
161
- "type": "integer",
162
- "description": f"Number of web pages to search and extract content from (1-10, default: {self.default_num_results})",
163
- "minimum": 1,
164
- "maximum": 10
165
159
  }
166
160
  },
167
161
  handler=self._web_search_handler
@@ -170,19 +164,14 @@ class WebSearchSkill(SkillBase):
170
164
  def _web_search_handler(self, args, raw_data):
171
165
  """Handler for web search tool"""
172
166
  query = args.get("query", "").strip()
173
- num_results = args.get("num_results", self.default_num_results)
174
167
 
175
168
  if not query:
176
169
  return SwaigFunctionResult(
177
170
  "Please provide a search query. What would you like me to search for?"
178
171
  )
179
172
 
180
- # Validate num_results
181
- try:
182
- num_results = int(num_results)
183
- num_results = max(1, min(num_results, 10))
184
- except (ValueError, TypeError):
185
- num_results = self.default_num_results
173
+ # Use the configured number of results (no longer a parameter)
174
+ num_results = self.default_num_results
186
175
 
187
176
  self.logger.info(f"Web search requested: '{query}' ({num_results} results)")
188
177
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire_agents
3
- Version: 0.1.9
3
+ Version: 0.1.10
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  Project-URL: Homepage, https://github.com/signalwire/signalwire-ai-agents
@@ -67,6 +67,14 @@ agent.add_skill("web_search", {
67
67
  "delay": 0.5 # Small delay between requests
68
68
  })
69
69
 
70
+ # Advanced: Customize SWAIG function properties
71
+ agent.add_skill("math", {
72
+ "swaig_fields": {
73
+ "secure": False, # Override security settings
74
+ "fillers": {"en-US": ["Calculating..."]} # Custom filler phrases
75
+ }
76
+ })
77
+
70
78
  agent.serve()
71
79
  ```
72
80