signalwire-agents 0.1.41__tar.gz → 0.1.43__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 (140) hide show
  1. {signalwire_agents-0.1.41/signalwire_agents.egg-info → signalwire_agents-0.1.43}/PKG-INFO +1 -1
  2. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/pyproject.toml +1 -1
  3. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/__init__.py +1 -1
  4. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/output/output_formatter.py +13 -1
  5. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent_base.py +17 -1
  6. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/function_result.py +81 -0
  7. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43/signalwire_agents.egg-info}/PKG-INFO +1 -1
  8. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/LICENSE +0 -0
  9. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/README.md +0 -0
  10. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/setup.cfg +0 -0
  11. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/setup.py +0 -0
  12. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/agent_server.py +0 -0
  13. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/agents/bedrock.py +0 -0
  14. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/__init__.py +0 -0
  15. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/build_search.py +0 -0
  16. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/config.py +0 -0
  17. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/core/__init__.py +0 -0
  18. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/core/agent_loader.py +0 -0
  19. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/core/argparse_helpers.py +0 -0
  20. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/core/dynamic_config.py +0 -0
  21. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/core/service_loader.py +0 -0
  22. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/execution/__init__.py +0 -0
  23. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/execution/datamap_exec.py +0 -0
  24. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/execution/webhook_exec.py +0 -0
  25. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/output/__init__.py +0 -0
  26. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/output/swml_dump.py +0 -0
  27. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/simulation/__init__.py +0 -0
  28. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/simulation/data_generation.py +0 -0
  29. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/simulation/data_overrides.py +0 -0
  30. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/simulation/mock_env.py +0 -0
  31. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/swaig_test_wrapper.py +0 -0
  32. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/test_swaig.py +0 -0
  33. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/cli/types.py +0 -0
  34. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/__init__.py +0 -0
  35. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/__init__.py +0 -0
  36. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/config/__init__.py +0 -0
  37. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/deployment/__init__.py +0 -0
  38. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/deployment/handlers/__init__.py +0 -0
  39. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/prompt/__init__.py +0 -0
  40. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/prompt/manager.py +0 -0
  41. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/routing/__init__.py +0 -0
  42. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/security/__init__.py +0 -0
  43. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/swml/__init__.py +0 -0
  44. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/tools/__init__.py +0 -0
  45. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/tools/decorator.py +0 -0
  46. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/agent/tools/registry.py +0 -0
  47. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/auth_handler.py +0 -0
  48. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/config_loader.py +0 -0
  49. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/contexts.py +0 -0
  50. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/data_map.py +0 -0
  51. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/logging_config.py +0 -0
  52. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/__init__.py +0 -0
  53. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/ai_config_mixin.py +0 -0
  54. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/auth_mixin.py +0 -0
  55. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/prompt_mixin.py +0 -0
  56. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/serverless_mixin.py +0 -0
  57. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/skill_mixin.py +0 -0
  58. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/state_mixin.py +0 -0
  59. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/tool_mixin.py +0 -0
  60. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/mixins/web_mixin.py +0 -0
  61. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/pom_builder.py +0 -0
  62. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/security/__init__.py +0 -0
  63. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/security/session_manager.py +0 -0
  64. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/security_config.py +0 -0
  65. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/skill_base.py +0 -0
  66. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/skill_manager.py +0 -0
  67. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/swaig_function.py +0 -0
  68. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/swml_builder.py +0 -0
  69. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/swml_handler.py +0 -0
  70. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/swml_renderer.py +0 -0
  71. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/core/swml_service.py +0 -0
  72. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/prefabs/__init__.py +0 -0
  73. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/prefabs/concierge.py +0 -0
  74. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/prefabs/faq_bot.py +0 -0
  75. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/prefabs/info_gatherer.py +0 -0
  76. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/prefabs/receptionist.py +0 -0
  77. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/prefabs/survey.py +0 -0
  78. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/schema.json +0 -0
  79. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/__init__.py +0 -0
  80. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/document_processor.py +0 -0
  81. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/index_builder.py +0 -0
  82. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/pgvector_backend.py +0 -0
  83. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/query_processor.py +0 -0
  84. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/search_engine.py +0 -0
  85. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/search/search_service.py +0 -0
  86. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/README.md +0 -0
  87. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/__init__.py +0 -0
  88. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/api_ninjas_trivia/README.md +0 -0
  89. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/api_ninjas_trivia/__init__.py +0 -0
  90. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/api_ninjas_trivia/skill.py +0 -0
  91. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datasphere/README.md +0 -0
  92. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datasphere/__init__.py +0 -0
  93. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datasphere/skill.py +0 -0
  94. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datasphere_serverless/README.md +0 -0
  95. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datasphere_serverless/__init__.py +0 -0
  96. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datasphere_serverless/skill.py +0 -0
  97. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datetime/README.md +0 -0
  98. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datetime/__init__.py +0 -0
  99. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/datetime/skill.py +0 -0
  100. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/joke/README.md +0 -0
  101. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/joke/__init__.py +0 -0
  102. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/joke/skill.py +0 -0
  103. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/math/README.md +0 -0
  104. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/math/__init__.py +0 -0
  105. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/math/skill.py +0 -0
  106. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/mcp_gateway/README.md +0 -0
  107. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/mcp_gateway/__init__.py +0 -0
  108. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/mcp_gateway/skill.py +0 -0
  109. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/native_vector_search/README.md +0 -0
  110. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/native_vector_search/__init__.py +0 -0
  111. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/native_vector_search/skill.py +0 -0
  112. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/play_background_file/README.md +0 -0
  113. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/play_background_file/__init__.py +0 -0
  114. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/play_background_file/skill.py +0 -0
  115. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/registry.py +0 -0
  116. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/spider/README.md +0 -0
  117. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/spider/__init__.py +0 -0
  118. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/spider/skill.py +0 -0
  119. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/swml_transfer/README.md +0 -0
  120. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/swml_transfer/__init__.py +0 -0
  121. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/swml_transfer/skill.py +0 -0
  122. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/weather_api/README.md +0 -0
  123. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/weather_api/__init__.py +0 -0
  124. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/weather_api/skill.py +0 -0
  125. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/web_search/README.md +0 -0
  126. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/web_search/__init__.py +0 -0
  127. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/web_search/skill.py +0 -0
  128. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/wikipedia_search/README.md +0 -0
  129. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/wikipedia_search/__init__.py +0 -0
  130. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/skills/wikipedia_search/skill.py +0 -0
  131. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/utils/__init__.py +0 -0
  132. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/utils/pom_utils.py +0 -0
  133. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/utils/schema_utils.py +0 -0
  134. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/utils/token_generators.py +0 -0
  135. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents/utils/validators.py +0 -0
  136. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents.egg-info/SOURCES.txt +0 -0
  137. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents.egg-info/dependency_links.txt +0 -0
  138. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents.egg-info/entry_points.txt +0 -0
  139. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/signalwire_agents.egg-info/requires.txt +0 -0
  140. {signalwire_agents-0.1.41 → signalwire_agents-0.1.43}/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.41
3
+ Version: 0.1.43
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "signalwire_agents"
7
- version = "0.1.41"
7
+ version = "0.1.43"
8
8
  description = "SignalWire AI Agents SDK"
9
9
  authors = [
10
10
  {name = "SignalWire Team", email = "info@signalwire.com"}
@@ -18,7 +18,7 @@ A package for building AI agents using SignalWire's AI and SWML capabilities.
18
18
  from .core.logging_config import configure_logging
19
19
  configure_logging()
20
20
 
21
- __version__ = "0.1.41"
21
+ __version__ = "0.1.43"
22
22
 
23
23
  # Import core classes for easier access
24
24
  from .core.agent_base import AgentBase
@@ -231,7 +231,19 @@ def format_result(result: Any) -> str:
231
231
  from signalwire_agents.core.function_result import SwaigFunctionResult
232
232
 
233
233
  if isinstance(result, SwaigFunctionResult):
234
- return f"SwaigFunctionResult: {result.response}"
234
+ output = [f"SwaigFunctionResult: {result.response}"]
235
+
236
+ # Show actions if present
237
+ if hasattr(result, 'action') and result.action:
238
+ output.append("\nActions:")
239
+ for action in result.action:
240
+ output.append(json.dumps(action, indent=2))
241
+
242
+ # Show post_process flag if set
243
+ if hasattr(result, 'post_process') and result.post_process:
244
+ output.append(f"\nPost-process: {result.post_process}")
245
+
246
+ return "\n".join(output)
235
247
  elif isinstance(result, dict):
236
248
  if 'response' in result:
237
249
  return f"Response: {result['response']}"
@@ -1003,6 +1003,19 @@ class AgentBase(
1003
1003
  ephemeral_agent._global_data = copy.deepcopy(self._global_data)
1004
1004
  ephemeral_agent._function_includes = copy.deepcopy(self._function_includes)
1005
1005
 
1006
+ # Deep copy LLM parameters
1007
+ ephemeral_agent._prompt_llm_params = copy.deepcopy(self._prompt_llm_params)
1008
+ ephemeral_agent._post_prompt_llm_params = copy.deepcopy(self._post_prompt_llm_params)
1009
+
1010
+ # Copy internal fillers if they exist
1011
+ if hasattr(self, '_internal_fillers'):
1012
+ ephemeral_agent._internal_fillers = copy.deepcopy(self._internal_fillers)
1013
+
1014
+ # Copy contexts builder state if it exists
1015
+ if hasattr(self, '_contexts_builder'):
1016
+ ephemeral_agent._contexts_builder = copy.deepcopy(self._contexts_builder)
1017
+ ephemeral_agent._contexts_defined = self._contexts_defined
1018
+
1006
1019
  # Deep copy the POM object if it exists to prevent sharing prompt sections
1007
1020
  if hasattr(self, 'pom') and self.pom:
1008
1021
  ephemeral_agent.pom = copy.deepcopy(self.pom)
@@ -1020,9 +1033,12 @@ class AgentBase(
1020
1033
 
1021
1034
  # Create new prompt manager for the ephemeral agent
1022
1035
  ephemeral_agent._prompt_manager = PromptManager(ephemeral_agent)
1023
- # Copy the prompt sections data
1036
+ # Copy ALL PromptManager state
1024
1037
  if hasattr(self._prompt_manager, '_sections'):
1025
1038
  ephemeral_agent._prompt_manager._sections = copy.deepcopy(self._prompt_manager._sections)
1039
+ ephemeral_agent._prompt_manager._prompt_text = copy.deepcopy(self._prompt_manager._prompt_text)
1040
+ ephemeral_agent._prompt_manager._post_prompt_text = copy.deepcopy(self._prompt_manager._post_prompt_text)
1041
+ ephemeral_agent._prompt_manager._contexts = copy.deepcopy(self._prompt_manager._contexts)
1026
1042
 
1027
1043
  # Create new tool registry for the ephemeral agent
1028
1044
  ephemeral_agent._tool_registry = ToolRegistry(ephemeral_agent)
@@ -260,6 +260,87 @@ class SwaigFunctionResult:
260
260
  """
261
261
  return self.add_action("set_global_data", data)
262
262
 
263
+ def swml_user_event(self, event_data: Dict[str, Any]) -> 'SwaigFunctionResult':
264
+ """
265
+ Send a user event through SWML to update the client UI.
266
+
267
+ This is a convenience method for sending user events to connected clients,
268
+ commonly used for real-time UI updates in interactive applications.
269
+
270
+ Args:
271
+ event_data: Dictionary containing the event type and any associated data
272
+ Example: {"type": "cards_dealt", "player_hand": [...], "score": 21}
273
+
274
+ Returns:
275
+ Self for method chaining
276
+
277
+ Example:
278
+ result = (
279
+ SwaigFunctionResult("You have blackjack!")
280
+ .swml_user_event({
281
+ "type": "cards_dealt",
282
+ "player_hand": player_cards,
283
+ "dealer_hand": dealer_cards,
284
+ "player_score": 21
285
+ })
286
+ )
287
+ """
288
+ swml_action = {
289
+ "sections": {
290
+ "main": [{
291
+ "user_event": {
292
+ "event": event_data
293
+ }
294
+ }]
295
+ },
296
+ "version": "1.0.0"
297
+ }
298
+
299
+ return self.add_action("SWML", swml_action)
300
+
301
+ def swml_change_step(self, step_name: str) -> 'SwaigFunctionResult':
302
+ """
303
+ Change the conversation step in the AI agent's workflow.
304
+
305
+ This is a convenience method for transitioning between conversation steps,
306
+ allowing dynamic workflow control based on user interactions or game state.
307
+
308
+ Args:
309
+ step_name: Name of the step to transition to (e.g., "betting", "playing", "hand_complete")
310
+
311
+ Returns:
312
+ Self for method chaining
313
+
314
+ Example:
315
+ result = (
316
+ SwaigFunctionResult("Starting a new hand")
317
+ .swml_change_step("betting")
318
+ .swml_user_event({"type": "game_reset", "chips": 1000})
319
+ )
320
+ """
321
+ return self.add_action("change_step", step_name)
322
+
323
+ def swml_change_context(self, context_name: str) -> 'SwaigFunctionResult':
324
+ """
325
+ Change the conversation context in the AI agent's workflow.
326
+
327
+ This is a convenience method for switching between different conversation contexts,
328
+ useful for agents that handle multiple distinct workflows or service modes.
329
+
330
+ Args:
331
+ context_name: Name of the context to transition to (e.g., "support", "sales", "technical")
332
+
333
+ Returns:
334
+ Self for method chaining
335
+
336
+ Example:
337
+ result = (
338
+ SwaigFunctionResult("Transferring you to technical support")
339
+ .swml_change_context("technical_support")
340
+ )
341
+ """
342
+ return self.add_action("change_context", context_name)
343
+
263
344
  def execute_swml(self, swml_content, transfer: bool = False) -> 'SwaigFunctionResult':
264
345
  """
265
346
  Execute SWML content with optional transfer behavior.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire_agents
3
- Version: 0.1.41
3
+ Version: 0.1.43
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT