signalwire-agents 0.1.37__py3-none-any.whl → 0.1.38__py3-none-any.whl

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 (28) hide show
  1. signalwire_agents/__init__.py +1 -1
  2. signalwire_agents/cli/build_search.py +95 -19
  3. signalwire_agents/core/agent_base.py +38 -0
  4. signalwire_agents/core/mixins/ai_config_mixin.py +120 -0
  5. signalwire_agents/core/skill_manager.py +47 -0
  6. signalwire_agents/search/index_builder.py +105 -10
  7. signalwire_agents/search/pgvector_backend.py +523 -0
  8. signalwire_agents/search/search_engine.py +41 -4
  9. signalwire_agents/search/search_service.py +86 -35
  10. signalwire_agents/skills/api_ninjas_trivia/skill.py +37 -1
  11. signalwire_agents/skills/datasphere/skill.py +82 -0
  12. signalwire_agents/skills/datasphere_serverless/skill.py +82 -0
  13. signalwire_agents/skills/joke/skill.py +21 -0
  14. signalwire_agents/skills/mcp_gateway/skill.py +82 -0
  15. signalwire_agents/skills/native_vector_search/README.md +210 -0
  16. signalwire_agents/skills/native_vector_search/skill.py +197 -7
  17. signalwire_agents/skills/play_background_file/skill.py +36 -0
  18. signalwire_agents/skills/registry.py +36 -0
  19. signalwire_agents/skills/spider/skill.py +113 -0
  20. signalwire_agents/skills/swml_transfer/skill.py +90 -0
  21. signalwire_agents/skills/weather_api/skill.py +28 -0
  22. signalwire_agents/skills/wikipedia_search/skill.py +22 -0
  23. {signalwire_agents-0.1.37.dist-info → signalwire_agents-0.1.38.dist-info}/METADATA +53 -1
  24. {signalwire_agents-0.1.37.dist-info → signalwire_agents-0.1.38.dist-info}/RECORD +28 -26
  25. {signalwire_agents-0.1.37.dist-info → signalwire_agents-0.1.38.dist-info}/WHEEL +0 -0
  26. {signalwire_agents-0.1.37.dist-info → signalwire_agents-0.1.38.dist-info}/entry_points.txt +0 -0
  27. {signalwire_agents-0.1.37.dist-info → signalwire_agents-0.1.38.dist-info}/licenses/LICENSE +0 -0
  28. {signalwire_agents-0.1.37.dist-info → signalwire_agents-0.1.38.dist-info}/top_level.txt +0 -0
@@ -27,6 +27,96 @@ class SWMLTransferSkill(SkillBase):
27
27
  # Enable multiple instances support
28
28
  SUPPORTS_MULTIPLE_INSTANCES = True
29
29
 
30
+ @classmethod
31
+ def get_parameter_schema(cls) -> Dict[str, Dict[str, Any]]:
32
+ """Get parameter schema for SWML Transfer skill"""
33
+ schema = super().get_parameter_schema()
34
+ schema.update({
35
+ "transfers": {
36
+ "type": "object",
37
+ "description": "Transfer configurations mapping patterns to destinations",
38
+ "required": True,
39
+ "additionalProperties": {
40
+ "type": "object",
41
+ "properties": {
42
+ "url": {
43
+ "type": "string",
44
+ "description": "SWML endpoint URL for agent transfer"
45
+ },
46
+ "address": {
47
+ "type": "string",
48
+ "description": "Phone number or SIP address for direct connect"
49
+ },
50
+ "message": {
51
+ "type": "string",
52
+ "description": "Message to say before transferring",
53
+ "default": "Transferring you now..."
54
+ },
55
+ "return_message": {
56
+ "type": "string",
57
+ "description": "Message when returning from transfer",
58
+ "default": "The transfer is complete. How else can I help you?"
59
+ },
60
+ "post_process": {
61
+ "type": "boolean",
62
+ "description": "Whether to process message with AI before saying",
63
+ "default": True
64
+ },
65
+ "final": {
66
+ "type": "boolean",
67
+ "description": "Whether transfer is permanent (true) or temporary (false)",
68
+ "default": True
69
+ },
70
+ "from_addr": {
71
+ "type": "string",
72
+ "description": "Caller ID for connect action (optional)"
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "description": {
78
+ "type": "string",
79
+ "description": "Description for the transfer tool",
80
+ "default": "Transfer call based on pattern matching",
81
+ "required": False
82
+ },
83
+ "parameter_name": {
84
+ "type": "string",
85
+ "description": "Name of the parameter that accepts the transfer type",
86
+ "default": "transfer_type",
87
+ "required": False
88
+ },
89
+ "parameter_description": {
90
+ "type": "string",
91
+ "description": "Description for the transfer type parameter",
92
+ "default": "The type of transfer to perform",
93
+ "required": False
94
+ },
95
+ "default_message": {
96
+ "type": "string",
97
+ "description": "Message when no pattern matches",
98
+ "default": "Please specify a valid transfer type.",
99
+ "required": False
100
+ },
101
+ "default_post_process": {
102
+ "type": "boolean",
103
+ "description": "Whether to process default message with AI",
104
+ "default": False,
105
+ "required": False
106
+ },
107
+ "required_fields": {
108
+ "type": "object",
109
+ "description": "Additional required fields to collect before transfer",
110
+ "default": {},
111
+ "required": False,
112
+ "additionalProperties": {
113
+ "type": "string",
114
+ "description": "Field description"
115
+ }
116
+ }
117
+ })
118
+ return schema
119
+
30
120
  def get_instance_key(self) -> str:
31
121
  """
32
122
  Get the key used to track this skill instance
@@ -44,6 +44,34 @@ class WeatherApiSkill(SkillBase):
44
44
  SUPPORTS_MULTIPLE_INSTANCES = False
45
45
  REQUIRED_ENV_VARS = [] # API key can be passed via params
46
46
 
47
+ @classmethod
48
+ def get_parameter_schema(cls) -> Dict[str, Dict[str, Any]]:
49
+ """Get parameter schema for weather API skill"""
50
+ schema = super().get_parameter_schema()
51
+ schema.update({
52
+ "api_key": {
53
+ "type": "string",
54
+ "description": "WeatherAPI.com API key",
55
+ "required": True,
56
+ "hidden": True,
57
+ "env_var": "WEATHER_API_KEY"
58
+ },
59
+ "tool_name": {
60
+ "type": "string",
61
+ "description": "Custom name for the weather tool",
62
+ "default": "get_weather",
63
+ "required": False
64
+ },
65
+ "temperature_unit": {
66
+ "type": "string",
67
+ "description": "Temperature unit to display",
68
+ "default": "fahrenheit",
69
+ "required": False,
70
+ "enum": ["fahrenheit", "celsius"]
71
+ }
72
+ })
73
+ return schema
74
+
47
75
  def __init__(self, agent, params: Dict[str, Any] = None):
48
76
  """
49
77
  Initialize the skill with configuration parameters.
@@ -37,6 +37,28 @@ class WikipediaSearchSkill(SkillBase):
37
37
  # Does not support multiple instances
38
38
  SUPPORTS_MULTIPLE_INSTANCES = False
39
39
 
40
+ @classmethod
41
+ def get_parameter_schema(cls) -> Dict[str, Dict[str, Any]]:
42
+ """Get parameter schema for Wikipedia search skill"""
43
+ schema = super().get_parameter_schema()
44
+ schema.update({
45
+ "num_results": {
46
+ "type": "integer",
47
+ "description": "Maximum number of Wikipedia articles to return",
48
+ "default": 1,
49
+ "required": False,
50
+ "minimum": 1,
51
+ "maximum": 5
52
+ },
53
+ "no_results_message": {
54
+ "type": "string",
55
+ "description": "Custom message when no Wikipedia articles are found",
56
+ "default": "I couldn't find any Wikipedia articles for '{query}'. Try rephrasing your search or using different keywords.",
57
+ "required": False
58
+ }
59
+ })
60
+ return schema
61
+
40
62
  def setup(self) -> bool:
41
63
  """
42
64
  Setup the Wikipedia search skill.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire_agents
3
- Version: 0.1.37
3
+ Version: 0.1.38
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT
@@ -70,6 +70,11 @@ Requires-Dist: striprtf>=0.0.26; extra == "search-all"
70
70
  Requires-Dist: openpyxl>=3.1.0; extra == "search-all"
71
71
  Requires-Dist: python-pptx>=0.6.21; extra == "search-all"
72
72
  Requires-Dist: python-magic>=0.4.27; extra == "search-all"
73
+ Requires-Dist: psycopg2-binary>=2.9.0; extra == "search-all"
74
+ Requires-Dist: pgvector>=0.2.0; extra == "search-all"
75
+ Provides-Extra: pgvector
76
+ Requires-Dist: psycopg2-binary>=2.9.0; extra == "pgvector"
77
+ Requires-Dist: pgvector>=0.2.0; extra == "pgvector"
73
78
  Provides-Extra: all
74
79
  Requires-Dist: sentence-transformers>=2.2.0; extra == "all"
75
80
  Requires-Dist: scikit-learn>=1.3.0; extra == "all"
@@ -643,6 +648,53 @@ if __name__ == "__main__":
643
648
  agent.serve(host="0.0.0.0", port=8000)
644
649
  ```
645
650
 
651
+ ### Customizing LLM Parameters
652
+
653
+ The SDK allows you to customize LLM parameters for both the main prompt and post-prompt, giving you fine control over the AI's behavior:
654
+
655
+ ```python
656
+ from signalwire_agents import AgentBase
657
+
658
+ class PreciseAgent(AgentBase):
659
+ def __init__(self):
660
+ super().__init__(name="precise", route="/precise")
661
+
662
+ # Configure the agent's personality
663
+ self.prompt_add_section("Role", "You are a precise technical assistant.")
664
+ self.prompt_add_section("Instructions", "Provide accurate, detailed information.")
665
+
666
+ # Set custom LLM parameters for the main prompt
667
+ self.set_prompt_llm_params(
668
+ temperature=0.3, # Low temperature for more consistent responses
669
+ top_p=0.9, # Slightly reduced for focused responses
670
+ barge_confidence=0.7, # Moderate interruption threshold
671
+ presence_penalty=0.1, # Slight penalty for repetition
672
+ frequency_penalty=0.2 # Encourage varied vocabulary
673
+ )
674
+
675
+ # Set post-prompt for summaries
676
+ self.set_post_prompt("Provide a concise summary of the key points discussed.")
677
+
678
+ # Different parameters for post-prompt (summaries should be even more focused)
679
+ self.set_post_prompt_llm_params(
680
+ temperature=0.2, # Very low for consistent summaries
681
+ top_p=0.85 # More focused token selection
682
+ )
683
+
684
+ agent = PreciseAgent()
685
+ agent.serve()
686
+ ```
687
+
688
+ #### Available LLM Parameters
689
+
690
+ - **temperature** (0.0-1.5): Controls randomness. Lower = more focused, higher = more creative
691
+ - **top_p** (0.0-1.0): Nucleus sampling. Lower = more focused on likely tokens
692
+ - **barge_confidence** (0.0-1.0): ASR confidence to interrupt. Higher = harder to interrupt
693
+ - **presence_penalty** (-2.0-2.0): Topic diversity. Positive = new topics
694
+ - **frequency_penalty** (-2.0-2.0): Repetition control. Positive = varied vocabulary
695
+
696
+ For more details on LLM parameter tuning, see [LLM Parameters Guide](docs/llm_parameters.md).
697
+
646
698
  ### Using Prefab Agents
647
699
 
648
700
  ```python
@@ -1,8 +1,8 @@
1
- signalwire_agents/__init__.py,sha256=Q6aAHGpnIR3oOHNhDmf1Uv_fv9_ouhN0FA8lXn8RbS8,4845
1
+ signalwire_agents/__init__.py,sha256=uJBm4IkH_YLu_CKpB-ubtuIdISrQASQ1SFxjPKMdzrw,4845
2
2
  signalwire_agents/agent_server.py,sha256=x9HyWia8D3r6KMqY-Q4DtNVivfJWLTx8B-KzUI8okuA,26880
3
3
  signalwire_agents/schema.json,sha256=6-7ccbt39iM1CO36dOfvupRPfd0gnQ0XoAdyo-EFyjo,238042
4
4
  signalwire_agents/cli/__init__.py,sha256=XbxAQFaCIdGXIXJiriVBWoFPOJsC401u21588nO4TG8,388
5
- signalwire_agents/cli/build_search.py,sha256=KLQJBqVSADFyGcKAi0KLwU_UoUd5rtRoKAdfcH91u70,28652
5
+ signalwire_agents/cli/build_search.py,sha256=Mqs9gSh43-0vv_4qrFEADt2b4dJqlGTfIFORK3ZlQPk,31895
6
6
  signalwire_agents/cli/config.py,sha256=2i4e0BArdKsaXxjeueYYRNke7GWicHPYC2wuitVrP7A,2541
7
7
  signalwire_agents/cli/swaig_test_wrapper.py,sha256=t63HQpEc1Up5AcysEHP1OsEQcgSMKH-9H1L2IhFso18,1533
8
8
  signalwire_agents/cli/test_swaig.py,sha256=-v-XjTUWZNxmMJuOF5_cB1Jz8x8emJoqgqS_8jLeT4Y,31487
@@ -23,7 +23,7 @@ signalwire_agents/cli/simulation/data_generation.py,sha256=pxa9aJ6XkI0O8yAIGvBTU
23
23
  signalwire_agents/cli/simulation/data_overrides.py,sha256=3_3pT6j-q2gRufPX2bZ1BrmY7u1IdloLooKAJil33vI,6319
24
24
  signalwire_agents/cli/simulation/mock_env.py,sha256=fvaR_xdLMm8AbpNUbTJOFG9THcti3Zds-0QNDbKMaYk,10249
25
25
  signalwire_agents/core/__init__.py,sha256=xjPq8DmUnWYUG28sd17n430VWPmMH9oZ9W14gYwG96g,806
26
- signalwire_agents/core/agent_base.py,sha256=CMMtYlCsMEL-5caoXfjGYMIiRtm8HE67v95Y8ODm6sY,44506
26
+ signalwire_agents/core/agent_base.py,sha256=K5Rr45_GgKxd5p9wu3NVwJajR5gNxiHMUVTYeVIsJdg,46324
27
27
  signalwire_agents/core/auth_handler.py,sha256=jXrof9WZ1W9qqlQT9WElcmSRafL2kG7207x5SqWN9MU,8481
28
28
  signalwire_agents/core/config_loader.py,sha256=rStVRRUaeMGrMc44ocr0diMQQARZhbKqwMqQ6kqUNos,8722
29
29
  signalwire_agents/core/contexts.py,sha256=g9FgOGMfGCUWlm57YZcv7CvOf-Ub9FdKZIOMu14ADfE,24428
@@ -33,7 +33,7 @@ signalwire_agents/core/logging_config.py,sha256=x4d_RAjBjVpJOFA2vXnPP2dNr13BZHz0
33
33
  signalwire_agents/core/pom_builder.py,sha256=ywuiIfP8BeLBPo_G4X1teZlG6zTCMkW71CZnmyoDTAQ,6636
34
34
  signalwire_agents/core/security_config.py,sha256=iAnAzKEJQiXL6mMpDaYm3Sjkxwm4x2N9HD6DeWSI8yI,12536
35
35
  signalwire_agents/core/skill_base.py,sha256=1b_4ht_T1BVnfzHYqoILb3idrrPYMs5-G-adHo2IVss,6903
36
- signalwire_agents/core/skill_manager.py,sha256=9E2mPcn8-97t4OAnHCSdUEOW0nyr_g4zkWe9OQrU48g,7938
36
+ signalwire_agents/core/skill_manager.py,sha256=D4erpz0tmSYLqyfeteNNIY0VRWDtX0rDw3n7Z_f0W5U,10493
37
37
  signalwire_agents/core/swaig_function.py,sha256=VFIYQWltvYMrUfN_lfda-YzuQ2PqF2vhb-PegAliwCc,7076
38
38
  signalwire_agents/core/swml_builder.py,sha256=tJBFDAVTENEfjGLp2h9_AKOYt5O9FrSYLI-nZZVwM1E,15604
39
39
  signalwire_agents/core/swml_handler.py,sha256=hFDq41dQWL3EdFbq6h0hizE1dIqdVeiTeCrujbZsPzo,8397
@@ -52,7 +52,7 @@ signalwire_agents/core/agent/tools/__init__.py,sha256=eOcmyeGm6qogT3wsBx7QvdjmTb
52
52
  signalwire_agents/core/agent/tools/decorator.py,sha256=pC6j1114GwVBd2U3h23I9gKLtu8AgeiuWV0lUzz682U,2961
53
53
  signalwire_agents/core/agent/tools/registry.py,sha256=CgsCUMWBV4Use1baNl2KLYS2ewKjjOwm28kC_T7R6mU,7459
54
54
  signalwire_agents/core/mixins/__init__.py,sha256=NsFpfF7TDP_lNR0Riw4Nbvt4fDbv_A3OoVbBqRrtXQM,652
55
- signalwire_agents/core/mixins/ai_config_mixin.py,sha256=t_Hbmox7NbV-aRjnYQSWbp-HGwCsJCJaRp2lkkf4YOo,13155
55
+ signalwire_agents/core/mixins/ai_config_mixin.py,sha256=kT-xVVWMIE6RQe6qQFCRYxli345bxOs5uS1dCtMTeTc,18232
56
56
  signalwire_agents/core/mixins/auth_mixin.py,sha256=Y9kR423-76U_pKL7KXzseeXX2a-4WxNWyo3odS7TDQM,9879
57
57
  signalwire_agents/core/mixins/prompt_mixin.py,sha256=2cAJpp3Ka-fmgpAg201xeTy-xps99k0vlP7YyqZiCnw,13374
58
58
  signalwire_agents/core/mixins/serverless_mixin.py,sha256=QIIbl_-16XFJi5aqrWpNzORbyCJQmhaplWXnW6U9i68,16137
@@ -70,62 +70,64 @@ signalwire_agents/prefabs/receptionist.py,sha256=em0uk_F0tmePvzE6Hi9HFlL3MHChH0R
70
70
  signalwire_agents/prefabs/survey.py,sha256=a-0-xAnQYhdX4Lzgyna14lpNfaCV-rLUFkQF6QOCQAY,14534
71
71
  signalwire_agents/search/__init__.py,sha256=x7saU_MDbhoOIzcvCT1-gnqyH2rrMpzB4ZUqk-av-lI,3958
72
72
  signalwire_agents/search/document_processor.py,sha256=J4OG640qbqGslbVevvD4J2cbTmFCZiGJ1bLX2yDayaE,43699
73
- signalwire_agents/search/index_builder.py,sha256=MHqrLZfNjWAM7EtL1L4wqrS1ICXKI_GPrHtIFHn35kQ,25174
73
+ signalwire_agents/search/index_builder.py,sha256=EqvX-yjcSYAsNFaFnkzQewUVISl1v452OEgfuwwQsZ4,29268
74
+ signalwire_agents/search/pgvector_backend.py,sha256=7OerJvzCGQigbb_RnV2M5PEOHR2EUMBn4n2bHML08I0,19172
74
75
  signalwire_agents/search/query_processor.py,sha256=WMm_jjArQ6-Jpy0Cc0sUI4saidOtDRKx_XLv0qi3N3k,16739
75
- signalwire_agents/search/search_engine.py,sha256=KFF33aPsBdwb2N1aTJmAA0xo3KPANoXjwV53uSxih9o,14798
76
- signalwire_agents/search/search_service.py,sha256=zidaQb2aRusAODU8C6Nw65ZlTy3DjJ2-bMJavhMl7vk,15608
76
+ signalwire_agents/search/search_engine.py,sha256=rGRTs8qRX4biXhsOg7jnt6YvoetoN_KG3ByKwtX7h6o,16635
77
+ signalwire_agents/search/search_service.py,sha256=lni6tRFonv0EHNpSI2gsdoCrSi9D3Khxi_wLy9X3JyY,18310
77
78
  signalwire_agents/skills/README.md,sha256=sM1_08IsKdRDCzYHPLzppJbaK5MvRelsVL6Kd9A9Ubo,12193
78
79
  signalwire_agents/skills/__init__.py,sha256=9AMEcyk2tDaGiUjwVIson_tVWxV4oU_2NnGGNTbHuyQ,533
79
- signalwire_agents/skills/registry.py,sha256=nV8chVLEDZwZO8p_szAizKdirBy_uj9GkyepJfumCW4,18486
80
+ signalwire_agents/skills/registry.py,sha256=zURdeAaccZyUSwLRl8K4ILXICMV3ouYQIA4rUBq6b5E,20792
80
81
  signalwire_agents/skills/api_ninjas_trivia/README.md,sha256=SoyS7VFh3eVIiVnQ5gfTfs0a_gAlLwnmT2W2FrbNU0A,6762
81
82
  signalwire_agents/skills/api_ninjas_trivia/__init__.py,sha256=zN305bBQkzlJyUNsPUMPt3gDJbvc-Iigkdh0rBou_RE,267
82
- signalwire_agents/skills/api_ninjas_trivia/skill.py,sha256=phioqvXivdoklg7tHE998Ac5S6-0Q90X8OmEjSIGprM,7397
83
+ signalwire_agents/skills/api_ninjas_trivia/skill.py,sha256=ajJm0Vd07Oz3h0sHP0rRyckAXAbFRtcP7ws9GiAhfjw,8626
83
84
  signalwire_agents/skills/datasphere/README.md,sha256=7G5t0V04SlnJ39U-3zOoIOfkNFrVEo-s45lCUlYmJGo,7351
84
85
  signalwire_agents/skills/datasphere/__init__.py,sha256=SJJlmeMSeezjINPgkuWN1XzDPN_Z3GzZ_StzO1BtxQs,257
85
- signalwire_agents/skills/datasphere/skill.py,sha256=L6GrGwej3sKPcHljKBNf4it5g4DaGzR18KlQx65_XKg,9598
86
+ signalwire_agents/skills/datasphere/skill.py,sha256=EQ7ODzTt591wBlTDTn4ogX8LTeygiU8YHFQTx3F0f2c,12682
86
87
  signalwire_agents/skills/datasphere_serverless/README.md,sha256=FErV97NEdYD_N1wZxkLqy6DSml5B9mCJmEgCUdGxh6A,9299
87
88
  signalwire_agents/skills/datasphere_serverless/__init__.py,sha256=jpMNDcGiXsVbSCVUrc_AwLARqEtVu4dPYZPJSJ-K3rc,261
88
- signalwire_agents/skills/datasphere_serverless/skill.py,sha256=zgEoTY8Jm6YKJBzM1kn3j7tf492K-NiKG7DbE3GReeE,6787
89
+ signalwire_agents/skills/datasphere_serverless/skill.py,sha256=i57VkMo2gU5YE9Z2lIxFfZtYkvkwMpnek49eSSfMFS0,9882
89
90
  signalwire_agents/skills/datetime/README.md,sha256=95SzVz-Pcm9MPqZ4D3sSYKMwdpsDNwwCpWFRK027-Pc,4534
90
91
  signalwire_agents/skills/datetime/__init__.py,sha256=Irajm2sUhmQVFgais-J-q-3d58tNnJ4nbLmnphr90nI,234
91
92
  signalwire_agents/skills/datetime/skill.py,sha256=mA-dxBhZOIbMygBQ3Z4jmFCH-zsD8HnjcWC4asp6Gl0,4370
92
93
  signalwire_agents/skills/joke/README.md,sha256=xUa2_0Pk9neli-UJxI4BPt3Fb1_5Xa3m8RuDlrkfBao,3594
93
94
  signalwire_agents/skills/joke/__init__.py,sha256=8Rc5_nj30bdga2n9H9JSI2WzMn40pjApd-y-tk5WIkI,244
94
- signalwire_agents/skills/joke/skill.py,sha256=AFaf6fMy0sxUPJHvcnf3CWMuPqpJP4ODscUexMadEcU,3381
95
+ signalwire_agents/skills/joke/skill.py,sha256=BKPA50iht8I_mVBJ-PIQHjJJz1m0V2w5J69AfVMx23o,4092
95
96
  signalwire_agents/skills/math/README.md,sha256=Nrv7PxkFPSxdnAN6856Fp1CfvsUwdncpRFFDERxmMe0,5335
96
97
  signalwire_agents/skills/math/__init__.py,sha256=F7emZqBpAAkqJZxA3RNTzRSAXE5e2xu8PtFOPHebfKo,230
97
98
  signalwire_agents/skills/math/skill.py,sha256=-h0DRX_nFkeSzLfaiOKv0zHScdXiQuz4rkLShanKwmc,3800
98
99
  signalwire_agents/skills/mcp_gateway/README.md,sha256=t-71TTWlEvjgWLTcT3v4kMw9zlrKXTAC_sCjb1haNew,5826
99
100
  signalwire_agents/skills/mcp_gateway/__init__.py,sha256=zLgOa7s0sIQphTNJjvasIAW7llxAApez7moC_e1tzP0,236
100
- signalwire_agents/skills/mcp_gateway/skill.py,sha256=iS5ET9jYKnwuYsuFd-aqUJfLUhvX--RG2FfCq8BZ340,14050
101
+ signalwire_agents/skills/mcp_gateway/skill.py,sha256=rtXs8CayjWH8WOrpjGMbbG11dJCNK2RUA06Ysc1cK8g,17167
102
+ signalwire_agents/skills/native_vector_search/README.md,sha256=eFVRoDwZlZwbBXUKyKrvfC6AL4T8MXj0B-IgIdBZF70,5526
101
103
  signalwire_agents/skills/native_vector_search/__init__.py,sha256=RofpN3Sd-vyWeUCTYH2dRVrl7h6YuyG5OK772UQ-KFk,220
102
- signalwire_agents/skills/native_vector_search/skill.py,sha256=Ck74rnlZ1HtnmEWRhZW1bSF_-PzpV3q-sNOu_LmeDQ0,18934
104
+ signalwire_agents/skills/native_vector_search/skill.py,sha256=OK1dMRG04iaqKS-wuOJh4ye8Vkw4gmrU7aHGLUOtl_M,26890
103
105
  signalwire_agents/skills/play_background_file/README.md,sha256=omJ_jY5Co6Mk-gJt_hoSl40wemmTbzae3DBll6HL0B4,7026
104
106
  signalwire_agents/skills/play_background_file/__init__.py,sha256=iETc6e-0Cai3RUTQWhg9BieWi3NF3_DWWBKdYXcd4ok,273
105
- signalwire_agents/skills/play_background_file/skill.py,sha256=w_FrhFIigOMW8HJgRNABl0uE-xJ__LTLxZdZaSWryhk,7355
107
+ signalwire_agents/skills/play_background_file/skill.py,sha256=HgPc2FIvXKJHZ7gO2QEzQe6-uUBPrw_6sRJJpU83GTY,8822
106
108
  signalwire_agents/skills/spider/README.md,sha256=yBa09JzgLikG3STbDNbRCKUM3l3XU5-D923I2g8CTVc,6909
107
109
  signalwire_agents/skills/spider/__init__.py,sha256=bZcCGLX5Cz18qY8rOvAAync6BRtketxaU19l6YcA_iI,285
108
- signalwire_agents/skills/spider/skill.py,sha256=nF4QmUzuS_6WABxPzEkg1CVv9ylEIL-Ptc7BYt-EFB8,19167
110
+ signalwire_agents/skills/spider/skill.py,sha256=w4dj0M8RZSfJtzL-jPXvr_roqawwnFKQD5GDKreel1Y,23137
109
111
  signalwire_agents/skills/swml_transfer/README.md,sha256=2Y6CH5Bm9kI5IYCLczIQIYlaYUq6VX_S4Irct2CQMmQ,14681
110
112
  signalwire_agents/skills/swml_transfer/__init__.py,sha256=YyfxRpbgT4ZpEjGolwffKqjUzX4VqDNLdqfSoA0D0IY,238
111
- signalwire_agents/skills/swml_transfer/skill.py,sha256=Me_m0Edn76_KA1bAiJLDNPqv-hXR-6MTNeVKok8eVUk,10834
113
+ signalwire_agents/skills/swml_transfer/skill.py,sha256=8n_t76-fyC6tOIdSLGa6IXyv8SGU7_nipZxaJHLek6c,14717
112
114
  signalwire_agents/skills/weather_api/README.md,sha256=buzCtrhxXAxZ8k7Qt_lR62E_tqnpXmXRsTarb_F43zg,6439
113
115
  signalwire_agents/skills/weather_api/__init__.py,sha256=WCS--GFBX8straIZPuGAmTDZ7t-y7VI6ioB1Kf8eeP4,257
114
- signalwire_agents/skills/weather_api/skill.py,sha256=-0gFgTVau2Pxljq9_fmNDnzgUI0JBXtdOCIAdHc8fLs,6217
116
+ signalwire_agents/skills/weather_api/skill.py,sha256=QegE9tNC1MdJ1FOwG7aIA1nCuQ5bmZJ3h9AWEj2V-vI,7196
115
117
  signalwire_agents/skills/web_search/README.md,sha256=Y95cxEScMzhmslUJF8u_Nh15FbEBuus4P-E8_kk2an0,5438
116
118
  signalwire_agents/skills/web_search/__init__.py,sha256=kv4CzmF1lldRZcL_HivieslP7gtTFvxcfprKG4n6b-Q,236
117
119
  signalwire_agents/skills/web_search/skill.py,sha256=EGu6ff9aAb2W323_XDCcVDW1wbAKTZYK8HQOT__iqtE,12660
118
120
  signalwire_agents/skills/wikipedia_search/README.md,sha256=KFIQ8XhqrTG8NRs72dIbjJacy2DlYEXLtxgy23gyRi4,7585
119
121
  signalwire_agents/skills/wikipedia_search/__init__.py,sha256=yJ6iYTSyJC96mwwUsI_FneFhDBcLYD4xEerBKlWLTb8,375
120
- signalwire_agents/skills/wikipedia_search/skill.py,sha256=8HhV8E4yDMe-p3qCxgEYFrL5hNvnJ6KbQzYumpgI7-k,7068
122
+ signalwire_agents/skills/wikipedia_search/skill.py,sha256=4sirBiEXn0Sd1YOnyinUFjACFq0y-CtzbdnDGnGzOAA,7949
121
123
  signalwire_agents/utils/__init__.py,sha256=1KVsHzwgfktSXHe3vqSRGImjtIE58szwD2FHHoFBtvY,601
122
124
  signalwire_agents/utils/pom_utils.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
123
125
  signalwire_agents/utils/schema_utils.py,sha256=i4okv_O9bUApwT_jJf4Yoij3bLCrGrW3DC-vzSy2RuY,16392
124
126
  signalwire_agents/utils/token_generators.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
125
127
  signalwire_agents/utils/validators.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
126
- signalwire_agents-0.1.37.dist-info/licenses/LICENSE,sha256=NYvAsB-rTcSvG9cqHt9EUHAWLiA9YzM4Qfz-mPdvDR0,1067
127
- signalwire_agents-0.1.37.dist-info/METADATA,sha256=7LjR6KSokIXEFD4Fj4ckOEd4_zxJl1oWRbsew1s6Gv0,38983
128
- signalwire_agents-0.1.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
129
- signalwire_agents-0.1.37.dist-info/entry_points.txt,sha256=ZDT65zfTO_YyDzi_hwQbCxIhrUfu_t8RpNXMMXlUPWI,144
130
- signalwire_agents-0.1.37.dist-info/top_level.txt,sha256=kDGS6ZYv84K9P5Kyg9_S8P_pbUXoHkso0On_DB5bbWc,18
131
- signalwire_agents-0.1.37.dist-info/RECORD,,
128
+ signalwire_agents-0.1.38.dist-info/licenses/LICENSE,sha256=NYvAsB-rTcSvG9cqHt9EUHAWLiA9YzM4Qfz-mPdvDR0,1067
129
+ signalwire_agents-0.1.38.dist-info/METADATA,sha256=rWoI6_goc0eZXUAUMbyXadK_NfBQXQL74kcbHBorfrU,41281
130
+ signalwire_agents-0.1.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
131
+ signalwire_agents-0.1.38.dist-info/entry_points.txt,sha256=ZDT65zfTO_YyDzi_hwQbCxIhrUfu_t8RpNXMMXlUPWI,144
132
+ signalwire_agents-0.1.38.dist-info/top_level.txt,sha256=kDGS6ZYv84K9P5Kyg9_S8P_pbUXoHkso0On_DB5bbWc,18
133
+ signalwire_agents-0.1.38.dist-info/RECORD,,