signalwire-agents 1.0.5__tar.gz → 1.0.7__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 (149) hide show
  1. {signalwire_agents-1.0.5/signalwire_agents.egg-info → signalwire_agents-1.0.7}/PKG-INFO +1 -1
  2. signalwire_agents-1.0.7/man/sw-agent-init.1 +307 -0
  3. signalwire_agents-1.0.7/man/sw-search.1 +483 -0
  4. signalwire_agents-1.0.7/man/swaig-test.1 +308 -0
  5. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/pyproject.toml +9 -1
  6. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/__init__.py +1 -1
  7. signalwire_agents-1.0.7/signalwire_agents/cli/init_project.py +1225 -0
  8. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent_base.py +4 -3
  9. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7/signalwire_agents.egg-info}/PKG-INFO +1 -1
  10. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents.egg-info/SOURCES.txt +6 -1
  11. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents.egg-info/entry_points.txt +1 -0
  12. signalwire_agents-1.0.7/tests/test_examples.py +510 -0
  13. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/LICENSE +0 -0
  14. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/README.md +0 -0
  15. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/setup.cfg +0 -0
  16. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/setup.py +0 -0
  17. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/agent_server.py +0 -0
  18. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/agents/bedrock.py +0 -0
  19. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/__init__.py +0 -0
  20. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/build_search.py +0 -0
  21. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/config.py +0 -0
  22. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/core/__init__.py +0 -0
  23. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/core/agent_loader.py +0 -0
  24. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/core/argparse_helpers.py +0 -0
  25. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/core/dynamic_config.py +0 -0
  26. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/core/service_loader.py +0 -0
  27. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/execution/__init__.py +0 -0
  28. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/execution/datamap_exec.py +0 -0
  29. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/execution/webhook_exec.py +0 -0
  30. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/output/__init__.py +0 -0
  31. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/output/output_formatter.py +0 -0
  32. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/output/swml_dump.py +0 -0
  33. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/simulation/__init__.py +0 -0
  34. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/simulation/data_generation.py +0 -0
  35. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/simulation/data_overrides.py +0 -0
  36. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/simulation/mock_env.py +0 -0
  37. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/swaig_test_wrapper.py +0 -0
  38. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/test_swaig.py +0 -0
  39. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/cli/types.py +0 -0
  40. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/__init__.py +0 -0
  41. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/__init__.py +0 -0
  42. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/config/__init__.py +0 -0
  43. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/deployment/__init__.py +0 -0
  44. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/deployment/handlers/__init__.py +0 -0
  45. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/prompt/__init__.py +0 -0
  46. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/prompt/manager.py +0 -0
  47. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/routing/__init__.py +0 -0
  48. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/security/__init__.py +0 -0
  49. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/swml/__init__.py +0 -0
  50. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/tools/__init__.py +0 -0
  51. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/tools/decorator.py +0 -0
  52. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/agent/tools/registry.py +0 -0
  53. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/auth_handler.py +0 -0
  54. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/config_loader.py +0 -0
  55. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/contexts.py +0 -0
  56. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/data_map.py +0 -0
  57. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/function_result.py +0 -0
  58. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/logging_config.py +0 -0
  59. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/__init__.py +0 -0
  60. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/ai_config_mixin.py +0 -0
  61. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/auth_mixin.py +0 -0
  62. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/prompt_mixin.py +0 -0
  63. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/serverless_mixin.py +0 -0
  64. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/skill_mixin.py +0 -0
  65. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/state_mixin.py +0 -0
  66. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/tool_mixin.py +0 -0
  67. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/mixins/web_mixin.py +0 -0
  68. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/pom_builder.py +0 -0
  69. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/security/__init__.py +0 -0
  70. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/security/session_manager.py +0 -0
  71. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/security_config.py +0 -0
  72. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/skill_base.py +0 -0
  73. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/skill_manager.py +0 -0
  74. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/swaig_function.py +0 -0
  75. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/swml_builder.py +0 -0
  76. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/swml_handler.py +0 -0
  77. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/swml_renderer.py +0 -0
  78. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/core/swml_service.py +0 -0
  79. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/prefabs/__init__.py +0 -0
  80. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/prefabs/concierge.py +0 -0
  81. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/prefabs/faq_bot.py +0 -0
  82. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/prefabs/info_gatherer.py +0 -0
  83. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/prefabs/receptionist.py +0 -0
  84. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/prefabs/survey.py +0 -0
  85. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/schema.json +0 -0
  86. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/__init__.py +0 -0
  87. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/document_processor.py +0 -0
  88. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/index_builder.py +0 -0
  89. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/migration.py +0 -0
  90. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/models.py +0 -0
  91. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/pgvector_backend.py +0 -0
  92. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/query_processor.py +0 -0
  93. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/search_engine.py +0 -0
  94. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/search/search_service.py +0 -0
  95. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/README.md +0 -0
  96. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/__init__.py +0 -0
  97. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/api_ninjas_trivia/README.md +0 -0
  98. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/api_ninjas_trivia/__init__.py +0 -0
  99. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/api_ninjas_trivia/skill.py +0 -0
  100. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datasphere/README.md +0 -0
  101. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datasphere/__init__.py +0 -0
  102. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datasphere/skill.py +0 -0
  103. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datasphere_serverless/README.md +0 -0
  104. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datasphere_serverless/__init__.py +0 -0
  105. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datasphere_serverless/skill.py +0 -0
  106. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datetime/README.md +0 -0
  107. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datetime/__init__.py +0 -0
  108. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/datetime/skill.py +0 -0
  109. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/joke/README.md +0 -0
  110. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/joke/__init__.py +0 -0
  111. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/joke/skill.py +0 -0
  112. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/math/README.md +0 -0
  113. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/math/__init__.py +0 -0
  114. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/math/skill.py +0 -0
  115. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/mcp_gateway/README.md +0 -0
  116. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/mcp_gateway/__init__.py +0 -0
  117. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/mcp_gateway/skill.py +0 -0
  118. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/native_vector_search/README.md +0 -0
  119. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/native_vector_search/__init__.py +0 -0
  120. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/native_vector_search/skill.py +0 -0
  121. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/play_background_file/README.md +0 -0
  122. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/play_background_file/__init__.py +0 -0
  123. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/play_background_file/skill.py +0 -0
  124. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/registry.py +0 -0
  125. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/spider/README.md +0 -0
  126. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/spider/__init__.py +0 -0
  127. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/spider/skill.py +0 -0
  128. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/swml_transfer/README.md +0 -0
  129. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/swml_transfer/__init__.py +0 -0
  130. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/swml_transfer/skill.py +0 -0
  131. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/weather_api/README.md +0 -0
  132. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/weather_api/__init__.py +0 -0
  133. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/weather_api/skill.py +0 -0
  134. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/web_search/README.md +0 -0
  135. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/web_search/__init__.py +0 -0
  136. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/web_search/skill.py +0 -0
  137. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/wikipedia_search/README.md +0 -0
  138. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/wikipedia_search/__init__.py +0 -0
  139. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/skills/wikipedia_search/skill.py +0 -0
  140. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/utils/__init__.py +0 -0
  141. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/utils/pom_utils.py +0 -0
  142. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/utils/schema_utils.py +0 -0
  143. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/utils/token_generators.py +0 -0
  144. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/utils/validators.py +0 -0
  145. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/web/__init__.py +0 -0
  146. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents/web/web_service.py +0 -0
  147. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents.egg-info/dependency_links.txt +0 -0
  148. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/signalwire_agents.egg-info/requires.txt +0 -0
  149. {signalwire_agents-1.0.5 → signalwire_agents-1.0.7}/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: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT
@@ -0,0 +1,307 @@
1
+ .\" Man page for sw-agent-init
2
+ .\" Copyright (c) 2025 SignalWire
3
+ .\" Licensed under the MIT License
4
+ .TH SW-AGENT-INIT 1 "November 2025" "SignalWire Agents SDK 1.0.6" "SignalWire Commands"
5
+ .SH NAME
6
+ sw-agent-init \- create a new SignalWire AI agent project
7
+ .SH SYNOPSIS
8
+ .B sw-agent-init
9
+ .RI [ options ]
10
+ .br
11
+ .B sw-agent-init
12
+ .I project_name
13
+ .RI [ options ]
14
+ .SH DESCRIPTION
15
+ .B sw-agent-init
16
+ is an interactive command-line tool for creating new SignalWire AI agent
17
+ projects. It generates a complete project structure with all the necessary
18
+ files to get started building voice AI agents.
19
+ .PP
20
+ When run without arguments, the tool enters interactive mode and prompts
21
+ for project configuration. When given a project name, it runs in quick
22
+ mode with sensible defaults.
23
+ .PP
24
+ The generated project includes:
25
+ .IP \(bu 2
26
+ Agent module with sample SWAIG function
27
+ .IP \(bu 2
28
+ Main application entry point
29
+ .IP \(bu 2
30
+ Environment configuration (.env)
31
+ .IP \(bu 2
32
+ Test scaffolding with pytest
33
+ .IP \(bu 2
34
+ Optional web UI for browser-based testing
35
+ .IP \(bu 2
36
+ Debug webhook handlers
37
+ .IP \(bu 2
38
+ README documentation
39
+ .SH ARGUMENTS
40
+ .TP
41
+ .I project_name
42
+ Name of the project to create. If not provided, the tool enters
43
+ interactive mode and prompts for a name.
44
+ .SH OPTIONS
45
+ .TP
46
+ .BR \-h ", " \-\-help
47
+ Display help message and exit.
48
+ .TP
49
+ .BI \-\-type " TYPE"
50
+ Agent type to create. Valid values:
51
+ .RS
52
+ .IP \(bu 2
53
+ .B basic
54
+ \- Minimal agent with example tool (default)
55
+ .IP \(bu 2
56
+ .B full
57
+ \- Complete setup with debug webhooks, web UI, and all features
58
+ .RE
59
+ .TP
60
+ .B \-\-no\-venv
61
+ Skip virtual environment creation. By default, a Python virtual
62
+ environment is created in the project directory.
63
+ .TP
64
+ .BI \-\-dir " DIRECTORY"
65
+ Parent directory for the project. The project will be created as
66
+ a subdirectory. Default is the current directory.
67
+ .SH INTERACTIVE MODE
68
+ When run without a project name, the tool prompts for:
69
+ .SS Project Configuration
70
+ .IP \(bu 2
71
+ .B Project name
72
+ \- Name of the project directory
73
+ .IP \(bu 2
74
+ .B Project directory
75
+ \- Where to create the project
76
+ .IP \(bu 2
77
+ .B Agent type
78
+ \- Basic or full setup
79
+ .SS Feature Selection
80
+ The following features can be enabled or disabled:
81
+ .IP \(bu 2
82
+ .B Debug webhooks
83
+ \- Console output for real-time call data
84
+ .IP \(bu 2
85
+ .B Post-prompt summary
86
+ \- Call summary handling
87
+ .IP \(bu 2
88
+ .B Web UI
89
+ \- Browser-based agent testing interface
90
+ .IP \(bu 2
91
+ .B Example SWAIG tool
92
+ \- Sample get_info function
93
+ .IP \(bu 2
94
+ .B Test scaffolding
95
+ \- pytest-based tests
96
+ .IP \(bu 2
97
+ .B Basic authentication
98
+ \- Secure webhook endpoints
99
+ .SS Credentials
100
+ The tool checks for existing SignalWire credentials in environment
101
+ variables:
102
+ .IP \(bu 2
103
+ .B SIGNALWIRE_SPACE_NAME
104
+ .IP \(bu 2
105
+ .B SIGNALWIRE_PROJECT_ID
106
+ .IP \(bu 2
107
+ .B SIGNALWIRE_TOKEN
108
+ .PP
109
+ If found, they are offered as defaults. Otherwise, you can enter them
110
+ manually or skip and configure later.
111
+ .SH PROJECT STRUCTURE
112
+ A generated project has the following structure:
113
+ .PP
114
+ .RS
115
+ .nf
116
+ project_name/
117
+ \(lm\(em\(em agents/
118
+ \(bv \(lm\(em\(em __init__.py
119
+ \(bv \(gra\(em\(em main_agent.py # Agent implementation
120
+ \(lm\(em\(em skills/
121
+ \(bv \(gra\(em\(em __init__.py # Custom skills
122
+ \(lm\(em\(em tests/
123
+ \(bv \(lm\(em\(em __init__.py
124
+ \(bv \(gra\(em\(em test_agent.py # Unit tests
125
+ \(lm\(em\(em web/
126
+ \(bv \(gra\(em\(em index.html # Web UI (if enabled)
127
+ \(lm\(em\(em .env # Environment config
128
+ \(lm\(em\(em .env.example # Example config
129
+ \(lm\(em\(em .gitignore
130
+ \(lm\(em\(em .venv/ # Virtual environment
131
+ \(lm\(em\(em app.py # Entry point
132
+ \(lm\(em\(em README.md
133
+ \(gra\(em\(em requirements.txt
134
+ .fi
135
+ .RE
136
+ .SH GENERATED FILES
137
+ .SS agents/main_agent.py
138
+ The main agent class with:
139
+ .IP \(bu 2
140
+ Voice and language configuration
141
+ .IP \(bu 2
142
+ Prompt sections (role, guidelines)
143
+ .IP \(bu 2
144
+ Example SWAIG tool using the @tool decorator
145
+ .IP \(bu 2
146
+ Debug webhook configuration (if enabled)
147
+ .IP \(bu 2
148
+ Basic authentication support (if enabled)
149
+ .SS app.py
150
+ Application entry point that:
151
+ .IP \(bu 2
152
+ Loads environment variables from .env
153
+ .IP \(bu 2
154
+ Creates and configures the AgentServer
155
+ .IP \(bu 2
156
+ Registers webhook endpoints
157
+ .IP \(bu 2
158
+ Serves static files from web/ directory
159
+ .IP \(bu 2
160
+ Pretty-prints debug data to console
161
+ .SS .env
162
+ Environment configuration with:
163
+ .IP \(bu 2
164
+ SignalWire credentials
165
+ .IP \(bu 2
166
+ Server host and port
167
+ .IP \(bu 2
168
+ Basic auth credentials (auto-generated secure password)
169
+ .IP \(bu 2
170
+ Debug level settings
171
+ .IP \(bu 2
172
+ Public URL configuration
173
+ .SS tests/test_agent.py
174
+ Test suite that verifies:
175
+ .IP \(bu 2
176
+ Agent loads without errors
177
+ .IP \(bu 2
178
+ SWML structure is valid
179
+ .IP \(bu 2
180
+ SWAIG functions are defined correctly
181
+ .IP \(bu 2
182
+ Functions execute and return expected results
183
+ .SH EXAMPLES
184
+ .SS Interactive Mode
185
+ Run without arguments for guided setup:
186
+ .PP
187
+ .RS
188
+ .nf
189
+ sw-agent-init
190
+ .fi
191
+ .RE
192
+ .SS Quick Mode
193
+ Create a basic agent project:
194
+ .PP
195
+ .RS
196
+ .nf
197
+ sw-agent-init myagent
198
+ .fi
199
+ .RE
200
+ .PP
201
+ Create a full-featured project:
202
+ .PP
203
+ .RS
204
+ .nf
205
+ sw-agent-init myagent --type full
206
+ .fi
207
+ .RE
208
+ .PP
209
+ Create without virtual environment:
210
+ .PP
211
+ .RS
212
+ .nf
213
+ sw-agent-init myagent --no-venv
214
+ .fi
215
+ .RE
216
+ .PP
217
+ Create in a specific directory:
218
+ .PP
219
+ .RS
220
+ .nf
221
+ sw-agent-init myagent --dir /opt/projects
222
+ .fi
223
+ .RE
224
+ .SS After Creation
225
+ Start the agent:
226
+ .PP
227
+ .RS
228
+ .nf
229
+ cd myagent
230
+ source .venv/bin/activate
231
+ python app.py
232
+ .fi
233
+ .RE
234
+ .PP
235
+ Run tests:
236
+ .PP
237
+ .RS
238
+ .nf
239
+ cd myagent
240
+ source .venv/bin/activate
241
+ pytest tests/ -v
242
+ .fi
243
+ .RE
244
+ .PP
245
+ Test with swaig-test:
246
+ .PP
247
+ .RS
248
+ .nf
249
+ swaig-test agents/main_agent.py --list-tools
250
+ swaig-test agents/main_agent.py --exec get_info --topic "test"
251
+ swaig-test agents/main_agent.py --dump-swml
252
+ .fi
253
+ .RE
254
+ .SH AGENT TYPES
255
+ .SS Basic Agent
256
+ The basic agent type includes:
257
+ .IP \(bu 2
258
+ Minimal agent with single example tool
259
+ .IP \(bu 2
260
+ Basic prompt configuration
261
+ .IP \(bu 2
262
+ Test scaffolding
263
+ .IP \(bu 2
264
+ Simple app.py without extra features
265
+ .SS Full Agent
266
+ The full agent type includes everything in basic, plus:
267
+ .IP \(bu 2
268
+ Debug webhook endpoints (/debug, /post_prompt)
269
+ .IP \(bu 2
270
+ Pretty-printed console output for call events
271
+ .IP \(bu 2
272
+ Web UI for browser-based testing
273
+ .IP \(bu 2
274
+ Basic authentication for endpoints
275
+ .IP \(bu 2
276
+ Post-prompt summary configuration
277
+ .IP \(bu 2
278
+ Static file serving
279
+ .SH ENVIRONMENT
280
+ The following environment variables affect credential defaults:
281
+ .TP
282
+ .B SIGNALWIRE_SPACE_NAME
283
+ SignalWire space name. If set, used as default in interactive mode.
284
+ .TP
285
+ .B SIGNALWIRE_PROJECT_ID
286
+ SignalWire project ID. If set, used as default in interactive mode.
287
+ .TP
288
+ .B SIGNALWIRE_TOKEN
289
+ SignalWire API token. If set, used as default in interactive mode.
290
+ .SH EXIT STATUS
291
+ .TP
292
+ .B 0
293
+ Project created successfully.
294
+ .TP
295
+ .B 1
296
+ An error occurred. Check stderr for details.
297
+ .SH SEE ALSO
298
+ .BR swaig-test (1),
299
+ .BR sw-search (1),
300
+ .BR pytest (1)
301
+ .PP
302
+ SignalWire AI Agents SDK documentation:
303
+ .I https://github.com/signalwire/signalwire-agents
304
+ .SH AUTHORS
305
+ SignalWire Team <info@signalwire.com>
306
+ .SH COPYRIGHT
307
+ Copyright (c) 2025 SignalWire. Licensed under the MIT License.