signalwire-agents 0.1.38__py3-none-any.whl → 0.1.39__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.
@@ -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.38"
21
+ __version__ = "0.1.39"
22
22
 
23
23
  # Import core classes for easier access
24
24
  from .core.agent_base import AgentBase
@@ -121,9 +121,10 @@ class AgentBase(
121
121
  agent_id: Optional[str] = None,
122
122
  native_functions: Optional[List[str]] = None,
123
123
  schema_path: Optional[str] = None,
124
- suppress_logs: bool = False,
124
+ suppress_logs: bool = False,
125
125
  enable_post_prompt_override: bool = False,
126
- check_for_input_override: bool = False
126
+ check_for_input_override: bool = False,
127
+ config_file: Optional[str] = None
127
128
  ):
128
129
  """
129
130
  Initialize a new agent
@@ -147,6 +148,7 @@ class AgentBase(
147
148
  suppress_logs: Whether to suppress structured logs
148
149
  enable_post_prompt_override: Whether to enable post-prompt override
149
150
  check_for_input_override: Whether to enable check-for-input override
151
+ config_file: Optional path to configuration file
150
152
  """
151
153
  # Import SWMLService here to avoid circular imports
152
154
  from signalwire_agents.core.swml_service import SWMLService
@@ -154,14 +156,24 @@ class AgentBase(
154
156
  # If schema_path is not provided, we'll let SWMLService find it through its _find_schema_path method
155
157
  # which will be called in its __init__
156
158
 
159
+ # Load service configuration from config file before initializing SWMLService
160
+ service_config = self._load_service_config(config_file, name)
161
+
162
+ # Apply service config values, with constructor parameters taking precedence
163
+ final_route = route if route != "/" else service_config.get('route', route)
164
+ final_host = host if host != "0.0.0.0" else service_config.get('host', host)
165
+ final_port = port if port != 3000 else service_config.get('port', port)
166
+ final_name = service_config.get('name', name)
167
+
157
168
  # Initialize the SWMLService base class
158
169
  super().__init__(
159
- name=name,
160
- route=route,
161
- host=host,
162
- port=port,
170
+ name=final_name,
171
+ route=final_route,
172
+ host=final_host,
173
+ port=final_port,
163
174
  basic_auth=basic_auth,
164
- schema_path=schema_path
175
+ schema_path=schema_path,
176
+ config_file=config_file
165
177
  )
166
178
 
167
179
  # Log the schema path if found and not suppressing logs
@@ -262,6 +274,30 @@ class AgentBase(
262
274
  # Initialize contexts system
263
275
  self._contexts_builder = None
264
276
  self._contexts_defined = False
277
+
278
+ @staticmethod
279
+ def _load_service_config(config_file: Optional[str], service_name: str) -> dict:
280
+ """Load service configuration from config file if available"""
281
+ from signalwire_agents.core.config_loader import ConfigLoader
282
+
283
+ # Find config file
284
+ if not config_file:
285
+ config_file = ConfigLoader.find_config_file(service_name)
286
+
287
+ if not config_file:
288
+ return {}
289
+
290
+ # Load config
291
+ config_loader = ConfigLoader([config_file])
292
+ if not config_loader.has_config():
293
+ return {}
294
+
295
+ # Get service section
296
+ service_config = config_loader.get_section('service')
297
+ if service_config:
298
+ return service_config
299
+
300
+ return {}
265
301
 
266
302
  # Initialize SWAIG query params for dynamic config
267
303
  self._swaig_query_params = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire_agents
3
- Version: 0.1.38
3
+ Version: 0.1.39
4
4
  Summary: SignalWire AI Agents SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- signalwire_agents/__init__.py,sha256=uJBm4IkH_YLu_CKpB-ubtuIdISrQASQ1SFxjPKMdzrw,4845
1
+ signalwire_agents/__init__.py,sha256=CmDO1ZNIHORAgQqjBD2aRrWFtgvqcMtD5N9Xjg9XyvY,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
@@ -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=K5Rr45_GgKxd5p9wu3NVwJajR5gNxiHMUVTYeVIsJdg,46324
26
+ signalwire_agents/core/agent_base.py,sha256=tgcM9QJntrxRiNflTSf0FTlkZaA4DdN0VC04DfopHmQ,47846
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
@@ -125,9 +125,9 @@ signalwire_agents/utils/pom_utils.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_Pu
125
125
  signalwire_agents/utils/schema_utils.py,sha256=i4okv_O9bUApwT_jJf4Yoij3bLCrGrW3DC-vzSy2RuY,16392
126
126
  signalwire_agents/utils/token_generators.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
127
127
  signalwire_agents/utils/validators.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
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,,
128
+ signalwire_agents-0.1.39.dist-info/licenses/LICENSE,sha256=NYvAsB-rTcSvG9cqHt9EUHAWLiA9YzM4Qfz-mPdvDR0,1067
129
+ signalwire_agents-0.1.39.dist-info/METADATA,sha256=NGDHDBriddDff9ry1xXLbFTx4v40sK0bK6z6s1_Uxcc,41281
130
+ signalwire_agents-0.1.39.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
131
+ signalwire_agents-0.1.39.dist-info/entry_points.txt,sha256=ZDT65zfTO_YyDzi_hwQbCxIhrUfu_t8RpNXMMXlUPWI,144
132
+ signalwire_agents-0.1.39.dist-info/top_level.txt,sha256=kDGS6ZYv84K9P5Kyg9_S8P_pbUXoHkso0On_DB5bbWc,18
133
+ signalwire_agents-0.1.39.dist-info/RECORD,,