signalwire-agents 0.1.45__tar.gz → 0.1.46__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 (142) hide show
  1. {signalwire_agents-0.1.45/signalwire_agents.egg-info → signalwire_agents-0.1.46}/PKG-INFO +1 -1
  2. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/pyproject.toml +1 -1
  3. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/__init__.py +1 -1
  4. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/tools/registry.py +11 -1
  5. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent_base.py +19 -3
  6. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/swaig_function.py +8 -2
  7. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46/signalwire_agents.egg-info}/PKG-INFO +1 -1
  8. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/LICENSE +0 -0
  9. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/README.md +0 -0
  10. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/setup.cfg +0 -0
  11. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/setup.py +0 -0
  12. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/agent_server.py +0 -0
  13. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/agents/bedrock.py +0 -0
  14. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/__init__.py +0 -0
  15. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/build_search.py +0 -0
  16. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/config.py +0 -0
  17. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/core/__init__.py +0 -0
  18. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/core/agent_loader.py +0 -0
  19. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/core/argparse_helpers.py +0 -0
  20. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/core/dynamic_config.py +0 -0
  21. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/core/service_loader.py +0 -0
  22. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/execution/__init__.py +0 -0
  23. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/execution/datamap_exec.py +0 -0
  24. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/execution/webhook_exec.py +0 -0
  25. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/output/__init__.py +0 -0
  26. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/output/output_formatter.py +0 -0
  27. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/output/swml_dump.py +0 -0
  28. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/simulation/__init__.py +0 -0
  29. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/simulation/data_generation.py +0 -0
  30. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/simulation/data_overrides.py +0 -0
  31. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/simulation/mock_env.py +0 -0
  32. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/swaig_test_wrapper.py +0 -0
  33. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/test_swaig.py +0 -0
  34. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/cli/types.py +0 -0
  35. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/__init__.py +0 -0
  36. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/__init__.py +0 -0
  37. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/config/__init__.py +0 -0
  38. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/deployment/__init__.py +0 -0
  39. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/deployment/handlers/__init__.py +0 -0
  40. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/prompt/__init__.py +0 -0
  41. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/prompt/manager.py +0 -0
  42. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/routing/__init__.py +0 -0
  43. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/security/__init__.py +0 -0
  44. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/swml/__init__.py +0 -0
  45. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/tools/__init__.py +0 -0
  46. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/agent/tools/decorator.py +0 -0
  47. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/auth_handler.py +0 -0
  48. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/config_loader.py +0 -0
  49. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/contexts.py +0 -0
  50. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/data_map.py +0 -0
  51. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/function_result.py +0 -0
  52. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/logging_config.py +0 -0
  53. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/__init__.py +0 -0
  54. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/ai_config_mixin.py +0 -0
  55. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/auth_mixin.py +0 -0
  56. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/prompt_mixin.py +0 -0
  57. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/serverless_mixin.py +0 -0
  58. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/skill_mixin.py +0 -0
  59. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/state_mixin.py +0 -0
  60. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/tool_mixin.py +0 -0
  61. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/mixins/web_mixin.py +0 -0
  62. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/pom_builder.py +0 -0
  63. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/security/__init__.py +0 -0
  64. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/security/session_manager.py +0 -0
  65. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/security_config.py +0 -0
  66. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/skill_base.py +0 -0
  67. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/skill_manager.py +0 -0
  68. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/swml_builder.py +0 -0
  69. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/swml_handler.py +0 -0
  70. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/swml_renderer.py +0 -0
  71. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/core/swml_service.py +0 -0
  72. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/prefabs/__init__.py +0 -0
  73. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/prefabs/concierge.py +0 -0
  74. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/prefabs/faq_bot.py +0 -0
  75. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/prefabs/info_gatherer.py +0 -0
  76. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/prefabs/receptionist.py +0 -0
  77. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/prefabs/survey.py +0 -0
  78. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/schema.json +0 -0
  79. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/__init__.py +0 -0
  80. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/document_processor.py +0 -0
  81. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/index_builder.py +0 -0
  82. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/pgvector_backend.py +0 -0
  83. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/query_processor.py +0 -0
  84. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/search_engine.py +0 -0
  85. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/search/search_service.py +0 -0
  86. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/README.md +0 -0
  87. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/__init__.py +0 -0
  88. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/api_ninjas_trivia/README.md +0 -0
  89. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/api_ninjas_trivia/__init__.py +0 -0
  90. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/api_ninjas_trivia/skill.py +0 -0
  91. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datasphere/README.md +0 -0
  92. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datasphere/__init__.py +0 -0
  93. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datasphere/skill.py +0 -0
  94. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datasphere_serverless/README.md +0 -0
  95. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datasphere_serverless/__init__.py +0 -0
  96. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datasphere_serverless/skill.py +0 -0
  97. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datetime/README.md +0 -0
  98. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datetime/__init__.py +0 -0
  99. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/datetime/skill.py +0 -0
  100. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/joke/README.md +0 -0
  101. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/joke/__init__.py +0 -0
  102. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/joke/skill.py +0 -0
  103. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/math/README.md +0 -0
  104. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/math/__init__.py +0 -0
  105. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/math/skill.py +0 -0
  106. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/mcp_gateway/README.md +0 -0
  107. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/mcp_gateway/__init__.py +0 -0
  108. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/mcp_gateway/skill.py +0 -0
  109. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/native_vector_search/README.md +0 -0
  110. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/native_vector_search/__init__.py +0 -0
  111. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/native_vector_search/skill.py +0 -0
  112. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/play_background_file/README.md +0 -0
  113. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/play_background_file/__init__.py +0 -0
  114. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/play_background_file/skill.py +0 -0
  115. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/registry.py +0 -0
  116. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/spider/README.md +0 -0
  117. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/spider/__init__.py +0 -0
  118. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/spider/skill.py +0 -0
  119. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/swml_transfer/README.md +0 -0
  120. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/swml_transfer/__init__.py +0 -0
  121. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/swml_transfer/skill.py +0 -0
  122. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/weather_api/README.md +0 -0
  123. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/weather_api/__init__.py +0 -0
  124. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/weather_api/skill.py +0 -0
  125. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/web_search/README.md +0 -0
  126. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/web_search/__init__.py +0 -0
  127. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/web_search/skill.py +0 -0
  128. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/wikipedia_search/README.md +0 -0
  129. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/wikipedia_search/__init__.py +0 -0
  130. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/skills/wikipedia_search/skill.py +0 -0
  131. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/utils/__init__.py +0 -0
  132. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/utils/pom_utils.py +0 -0
  133. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/utils/schema_utils.py +0 -0
  134. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/utils/token_generators.py +0 -0
  135. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/utils/validators.py +0 -0
  136. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/web/__init__.py +0 -0
  137. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents/web/web_service.py +0 -0
  138. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents.egg-info/SOURCES.txt +0 -0
  139. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents.egg-info/dependency_links.txt +0 -0
  140. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents.egg-info/entry_points.txt +0 -0
  141. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/signalwire_agents.egg-info/requires.txt +0 -0
  142. {signalwire_agents-0.1.45 → signalwire_agents-0.1.46}/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.45
3
+ Version: 0.1.46
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.45"
7
+ version = "0.1.46"
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.45"
21
+ __version__ = "0.1.46"
22
22
 
23
23
  # Import core classes for easier access
24
24
  from .core.agent_base import AgentBase
@@ -40,6 +40,8 @@ class ToolRegistry:
40
40
  handler: Callable,
41
41
  secure: bool = True,
42
42
  fillers: Optional[Dict[str, List[str]]] = None,
43
+ wait_file: Optional[str] = None,
44
+ wait_file_loops: Optional[int] = None,
43
45
  webhook_url: Optional[str] = None,
44
46
  required: Optional[List[str]] = None,
45
47
  **swaig_fields
@@ -53,7 +55,9 @@ class ToolRegistry:
53
55
  parameters: JSON Schema of parameters
54
56
  handler: Function to call when invoked
55
57
  secure: Whether to require token validation
56
- fillers: Optional dict mapping language codes to arrays of filler phrases
58
+ fillers: Optional dict mapping language codes to arrays of filler phrases (deprecated)
59
+ wait_file: Optional URL to audio file to play while function executes
60
+ wait_file_loops: Optional number of times to loop the wait_file
57
61
  webhook_url: Optional external webhook URL to use instead of local handling
58
62
  required: Optional list of required parameter names
59
63
  **swaig_fields: Additional SWAIG fields to include in function definition
@@ -71,6 +75,8 @@ class ToolRegistry:
71
75
  handler=handler,
72
76
  secure=secure,
73
77
  fillers=fillers,
78
+ wait_file=wait_file,
79
+ wait_file_loops=wait_file_loops,
74
80
  webhook_url=webhook_url,
75
81
  required=required,
76
82
  **swaig_fields
@@ -132,6 +138,8 @@ class ToolRegistry:
132
138
  parameters = tool_params_copy.pop("parameters", {})
133
139
  secure = tool_params_copy.pop("secure", True)
134
140
  fillers = tool_params_copy.pop("fillers", None)
141
+ wait_file = tool_params_copy.pop("wait_file", None)
142
+ wait_file_loops = tool_params_copy.pop("wait_file_loops", None)
135
143
  webhook_url = tool_params_copy.pop("webhook_url", None)
136
144
  required = tool_params_copy.pop("required", None)
137
145
 
@@ -143,6 +151,8 @@ class ToolRegistry:
143
151
  handler=attr.__get__(self.agent, cls), # Bind the method to this instance
144
152
  secure=secure,
145
153
  fillers=fillers,
154
+ wait_file=wait_file,
155
+ wait_file_loops=wait_file_loops,
146
156
  webhook_url=webhook_url,
147
157
  required=required,
148
158
  **tool_params_copy # Pass through any additional swaig_fields
@@ -692,9 +692,25 @@ class AgentBase(
692
692
  "parameters": func._ensure_parameter_structure()
693
693
  }
694
694
 
695
- # Add fillers if present
696
- if func.fillers:
697
- function_entry["fillers"] = func.fillers
695
+ # Add wait_file if present (SignalWire SWML expects wait_file, not fillers)
696
+ if hasattr(func, 'wait_file') and func.wait_file:
697
+ wait_file_url = func.wait_file
698
+ # If wait_file is a relative URL, convert it to absolute using agent's base URL
699
+ if wait_file_url and not wait_file_url.startswith(('http://', 'https://', '//')):
700
+ # Build full URL using the agent's base URL
701
+ base_url = agent_to_use._get_base_url(include_auth=False)
702
+ # Handle relative paths appropriately
703
+ if not wait_file_url.startswith('/'):
704
+ wait_file_url = '/' + wait_file_url
705
+ wait_file_url = f"{base_url}{wait_file_url}"
706
+ function_entry["wait_file"] = wait_file_url
707
+ elif func.fillers:
708
+ # Backward compatibility: use fillers as wait_file if wait_file not specified
709
+ function_entry["wait_file"] = func.fillers
710
+
711
+ # Add wait_file_loops if present
712
+ if hasattr(func, 'wait_file_loops') and func.wait_file_loops is not None:
713
+ function_entry["wait_file_loops"] = func.wait_file_loops
698
714
 
699
715
  # Handle webhook URL
700
716
  if hasattr(func, 'webhook_url') and func.webhook_url:
@@ -30,6 +30,8 @@ class SWAIGFunction:
30
30
  parameters: Dict[str, Dict] = None,
31
31
  secure: bool = False,
32
32
  fillers: Optional[Dict[str, List[str]]] = None,
33
+ wait_file: Optional[str] = None,
34
+ wait_file_loops: Optional[int] = None,
33
35
  webhook_url: Optional[str] = None,
34
36
  required: Optional[List[str]] = None,
35
37
  **extra_swaig_fields
@@ -43,7 +45,9 @@ class SWAIGFunction:
43
45
  description: Human-readable description of the function
44
46
  parameters: Dictionary of parameters, keys are parameter names, values are param definitions
45
47
  secure: Whether this function requires token validation
46
- fillers: Optional dictionary of filler phrases by language code
48
+ fillers: Optional dictionary of filler phrases by language code (deprecated, use wait_file)
49
+ wait_file: Optional URL to audio file to play while function executes
50
+ wait_file_loops: Optional number of times to loop the wait_file
47
51
  webhook_url: Optional external webhook URL to use instead of local handling
48
52
  required: Optional list of required parameter names
49
53
  **extra_swaig_fields: Additional SWAIG fields to include in function definition
@@ -53,7 +57,9 @@ class SWAIGFunction:
53
57
  self.description = description
54
58
  self.parameters = parameters or {}
55
59
  self.secure = secure
56
- self.fillers = fillers
60
+ self.fillers = fillers # Keep for backward compatibility
61
+ self.wait_file = wait_file or fillers # Use wait_file if provided, else fall back to fillers
62
+ self.wait_file_loops = wait_file_loops
57
63
  self.webhook_url = webhook_url
58
64
  self.required = required or []
59
65
  self.extra_swaig_fields = extra_swaig_fields
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire_agents
3
- Version: 0.1.45
3
+ Version: 0.1.46
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT