signalwire-agents 0.1.23__py3-none-any.whl → 0.1.25__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 (64) hide show
  1. signalwire_agents/__init__.py +1 -1
  2. signalwire_agents/agent_server.py +2 -1
  3. signalwire_agents/cli/config.py +61 -0
  4. signalwire_agents/cli/core/__init__.py +1 -0
  5. signalwire_agents/cli/core/agent_loader.py +254 -0
  6. signalwire_agents/cli/core/argparse_helpers.py +164 -0
  7. signalwire_agents/cli/core/dynamic_config.py +62 -0
  8. signalwire_agents/cli/execution/__init__.py +1 -0
  9. signalwire_agents/cli/execution/datamap_exec.py +437 -0
  10. signalwire_agents/cli/execution/webhook_exec.py +125 -0
  11. signalwire_agents/cli/output/__init__.py +1 -0
  12. signalwire_agents/cli/output/output_formatter.py +132 -0
  13. signalwire_agents/cli/output/swml_dump.py +177 -0
  14. signalwire_agents/cli/simulation/__init__.py +1 -0
  15. signalwire_agents/cli/simulation/data_generation.py +365 -0
  16. signalwire_agents/cli/simulation/data_overrides.py +187 -0
  17. signalwire_agents/cli/simulation/mock_env.py +271 -0
  18. signalwire_agents/cli/test_swaig.py +522 -2539
  19. signalwire_agents/cli/types.py +72 -0
  20. signalwire_agents/core/agent/__init__.py +1 -3
  21. signalwire_agents/core/agent/config/__init__.py +1 -3
  22. signalwire_agents/core/agent/prompt/manager.py +25 -7
  23. signalwire_agents/core/agent/tools/decorator.py +2 -0
  24. signalwire_agents/core/agent/tools/registry.py +8 -0
  25. signalwire_agents/core/agent_base.py +492 -3053
  26. signalwire_agents/core/function_result.py +31 -42
  27. signalwire_agents/core/mixins/__init__.py +28 -0
  28. signalwire_agents/core/mixins/ai_config_mixin.py +373 -0
  29. signalwire_agents/core/mixins/auth_mixin.py +287 -0
  30. signalwire_agents/core/mixins/prompt_mixin.py +345 -0
  31. signalwire_agents/core/mixins/serverless_mixin.py +368 -0
  32. signalwire_agents/core/mixins/skill_mixin.py +55 -0
  33. signalwire_agents/core/mixins/state_mixin.py +219 -0
  34. signalwire_agents/core/mixins/tool_mixin.py +295 -0
  35. signalwire_agents/core/mixins/web_mixin.py +1130 -0
  36. signalwire_agents/core/skill_manager.py +3 -1
  37. signalwire_agents/core/swaig_function.py +10 -1
  38. signalwire_agents/core/swml_service.py +140 -58
  39. signalwire_agents/skills/README.md +452 -0
  40. signalwire_agents/skills/api_ninjas_trivia/README.md +215 -0
  41. signalwire_agents/skills/datasphere/README.md +210 -0
  42. signalwire_agents/skills/datasphere_serverless/README.md +258 -0
  43. signalwire_agents/skills/datetime/README.md +132 -0
  44. signalwire_agents/skills/joke/README.md +149 -0
  45. signalwire_agents/skills/math/README.md +161 -0
  46. signalwire_agents/skills/native_vector_search/skill.py +33 -13
  47. signalwire_agents/skills/play_background_file/README.md +218 -0
  48. signalwire_agents/skills/spider/README.md +236 -0
  49. signalwire_agents/skills/spider/__init__.py +4 -0
  50. signalwire_agents/skills/spider/skill.py +479 -0
  51. signalwire_agents/skills/swml_transfer/README.md +395 -0
  52. signalwire_agents/skills/swml_transfer/__init__.py +1 -0
  53. signalwire_agents/skills/swml_transfer/skill.py +257 -0
  54. signalwire_agents/skills/weather_api/README.md +178 -0
  55. signalwire_agents/skills/web_search/README.md +163 -0
  56. signalwire_agents/skills/wikipedia_search/README.md +228 -0
  57. {signalwire_agents-0.1.23.dist-info → signalwire_agents-0.1.25.dist-info}/METADATA +47 -2
  58. {signalwire_agents-0.1.23.dist-info → signalwire_agents-0.1.25.dist-info}/RECORD +62 -22
  59. {signalwire_agents-0.1.23.dist-info → signalwire_agents-0.1.25.dist-info}/entry_points.txt +1 -1
  60. signalwire_agents/core/agent/config/ephemeral.py +0 -176
  61. signalwire_agents-0.1.23.data/data/schema.json +0 -5611
  62. {signalwire_agents-0.1.23.dist-info → signalwire_agents-0.1.25.dist-info}/WHEEL +0 -0
  63. {signalwire_agents-0.1.23.dist-info → signalwire_agents-0.1.25.dist-info}/licenses/LICENSE +0 -0
  64. {signalwire_agents-0.1.23.dist-info → signalwire_agents-0.1.25.dist-info}/top_level.txt +0 -0
@@ -1,36 +1,60 @@
1
- signalwire_agents/__init__.py,sha256=qoxGmyDqxL0MFMTTml8l0N0RID5KwVHdC5GaYdlZdnM,2707
2
- signalwire_agents/agent_server.py,sha256=JBDhfmKVKI6233AaHoYmsoH-C12bRCfvfZPMt0_wBFg,26840
1
+ signalwire_agents/__init__.py,sha256=AwHVonFdDJ9C3IoIp_OWPPl-DwzxklaOTwzOLQQQCzk,2707
2
+ signalwire_agents/agent_server.py,sha256=x9HyWia8D3r6KMqY-Q4DtNVivfJWLTx8B-KzUI8okuA,26880
3
3
  signalwire_agents/schema.json,sha256=M8Mn6pQda2P9jhbmkALrLr1wt-fRuhYRqdmEi9Rbhqk,178075
4
4
  signalwire_agents/cli/__init__.py,sha256=Iy2BfWDWBEZoA1cyHTDsooBSVMx4vH5Ddhr3sEuFe8c,197
5
5
  signalwire_agents/cli/build_search.py,sha256=KLQJBqVSADFyGcKAi0KLwU_UoUd5rtRoKAdfcH91u70,28652
6
- signalwire_agents/cli/test_swaig.py,sha256=IWjFULRM-KhYanwdVfVZalnLBkwxHTLcffggYNkfATI,109758
6
+ signalwire_agents/cli/config.py,sha256=SeUcI7bNr_eCdn3oPfdEwDrVIkl7kdmqPvPbQgREm7Q,1862
7
+ signalwire_agents/cli/test_swaig.py,sha256=5cYX7V5U5uwvOebi0zGdOQzD5zzC8kLPt3QdgkihtmI,30255
8
+ signalwire_agents/cli/types.py,sha256=fjj3LV6upZDzplxqOYHyi3lxIkKKTWNPUtKt9yPGYXs,1619
9
+ signalwire_agents/cli/core/__init__.py,sha256=hfGAdbsh-TWkN8KvQGAlfHIs9D-KfG5W6peP47pjV08,38
10
+ signalwire_agents/cli/core/agent_loader.py,sha256=55wXgJhIZX8gDP0d-EVqTrVYiZgXDGBJq9wErwL46e8,10394
11
+ signalwire_agents/cli/core/argparse_helpers.py,sha256=x0OmsLzHikZDY4zmv_40RkiwS3377xUJUJT4y_8flEE,6284
12
+ signalwire_agents/cli/core/dynamic_config.py,sha256=K5DPttmAo1sFM5a6zVsUE_B4nlgyufLLAJ1MfmNk6bE,2495
13
+ signalwire_agents/cli/execution/__init__.py,sha256=CK1XG7zxUqLxey4yrYIbko3dhDV9YVCypaZg0JvhXLc,32
14
+ signalwire_agents/cli/execution/datamap_exec.py,sha256=Oykhcz7L92mZTczEDt2vc-d0wiHKCTFzdhcMD4snFSQ,20198
15
+ signalwire_agents/cli/execution/webhook_exec.py,sha256=NCC8hyUhK_f_7IaVOC84yJWyRRm8mnfdBjJPoNTSYzI,4519
16
+ signalwire_agents/cli/output/__init__.py,sha256=KA_odlDmJFp7Bat7Z5gjWb1RdbMCDVGov4vWF0OS8qI,43
17
+ signalwire_agents/cli/output/output_formatter.py,sha256=MidaaCrhOuLJ3L_nsbNFTh92E_uOKeJruuR0pakNZZ0,5577
18
+ signalwire_agents/cli/output/swml_dump.py,sha256=S0lPhm1-XiZk0TU2SfOPTMRa5iGubStHI6MbQsiAXaw,6449
19
+ signalwire_agents/cli/simulation/__init__.py,sha256=D-9DVP3Xat3eTxgX-L63cSdtM5X8nGA54bcPGlEm600,45
20
+ signalwire_agents/cli/simulation/data_generation.py,sha256=ueQ8Ga5mng8jd87dzxN5rzwbbzboMpd6vB7_yUwjGHE,11727
21
+ signalwire_agents/cli/simulation/data_overrides.py,sha256=nXJp2x7QsCRvCjrhwkaEq-kXu0aKOywhVcx02S6S7Hk,5959
22
+ signalwire_agents/cli/simulation/mock_env.py,sha256=S6uGDGEO-4dXAyCJEZO1hkwiyJmYXBZx5o8XT0as0fc,9950
7
23
  signalwire_agents/core/__init__.py,sha256=xjPq8DmUnWYUG28sd17n430VWPmMH9oZ9W14gYwG96g,806
8
- signalwire_agents/core/agent_base.py,sha256=DW-lTFMCQPH0C7l4KY4CNWUy9qFv-braV299XJfueOQ,148353
24
+ signalwire_agents/core/agent_base.py,sha256=5U_Wrcairdz42w6E9N_Sw5G3kPV8ad46v9qQDzbDoIg,44651
9
25
  signalwire_agents/core/contexts.py,sha256=RQGIZGR92AC90nv8_hGa8S4YGY-SmMa1giR4g7jLgQI,21283
10
26
  signalwire_agents/core/data_map.py,sha256=0qp3VcrRS0RtZPApoAaGgM-udLBb1ysnyMJuWd6sSew,17134
11
- signalwire_agents/core/function_result.py,sha256=GGmd2gAB9uJFFyldrhC86LCmpCnccU1bb-3gZVW2rxE,45360
27
+ signalwire_agents/core/function_result.py,sha256=MZZUoAHN8AXry-OBNA6Od5l-bKvMM2ruvnqHLbNhSiQ,44959
12
28
  signalwire_agents/core/logging_config.py,sha256=x4d_RAjBjVpJOFA2vXnPP2dNr13BZHz091J5rGpC77Y,13142
13
29
  signalwire_agents/core/pom_builder.py,sha256=ywuiIfP8BeLBPo_G4X1teZlG6zTCMkW71CZnmyoDTAQ,6636
14
30
  signalwire_agents/core/skill_base.py,sha256=lOpVTLhD9NjStF7Lxh6bAQUGa3DpNYV4agXJRakRuX0,4258
15
- signalwire_agents/core/skill_manager.py,sha256=JxFOzvQWM3Z0zuWIxiBknCrDuuPWYNWFGLCltOdAGpY,7369
16
- signalwire_agents/core/swaig_function.py,sha256=OwzGiLAzpFQ5kXLFOYZ5eB4mszcaBhS5U_ZOLRCbQg8,6765
31
+ signalwire_agents/core/skill_manager.py,sha256=zTuotT8rne_kx9j8lyGe7b8UM8fS0vthwuztax6vhwA,7375
32
+ signalwire_agents/core/swaig_function.py,sha256=VFIYQWltvYMrUfN_lfda-YzuQ2PqF2vhb-PegAliwCc,7076
17
33
  signalwire_agents/core/swml_builder.py,sha256=tJBFDAVTENEfjGLp2h9_AKOYt5O9FrSYLI-nZZVwM1E,15604
18
34
  signalwire_agents/core/swml_handler.py,sha256=hFDq41dQWL3EdFbq6h0hizE1dIqdVeiTeCrujbZsPzo,8397
19
35
  signalwire_agents/core/swml_renderer.py,sha256=-WAB_5ss836a8nBo5zlb6SaQKFNF4XIo1odWIXM4eE8,6860
20
- signalwire_agents/core/swml_service.py,sha256=vErLbASHQccXUn6ZwC-JKo5oZ04qyACdDp57m46gzco,46649
21
- signalwire_agents/core/agent/__init__.py,sha256=Erlq7Sl4Xm9NWBbihJgQMpUhuz5XaxJZeoI7Kw7XoF4,313
22
- signalwire_agents/core/agent/config/__init__.py,sha256=CiUpolsfdwvgsUikvTtkBf8JFp240qvauP7je6d3en0,311
23
- signalwire_agents/core/agent/config/ephemeral.py,sha256=zoCA8-BE9jR-qvntUlabXozPHTTzgF9RdDA5SR5heeE,6423
36
+ signalwire_agents/core/swml_service.py,sha256=Tlyr2p1cPFoF3SPi8enFLiYkXepitH2LodOFawPpHos,50181
37
+ signalwire_agents/core/agent/__init__.py,sha256=qccTmLD9b24tZDAoIPEY6vJ2p1R_ArZ_ZCKbBlKvPQ8,239
38
+ signalwire_agents/core/agent/config/__init__.py,sha256=5XvTfnYeeGdoLr4tJjbe1OhF26nOcR5VTDIhtMGCu3I,244
24
39
  signalwire_agents/core/agent/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
40
  signalwire_agents/core/agent/deployment/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
41
  signalwire_agents/core/agent/prompt/__init__.py,sha256=4pKL3P7q9uAEtbwOKSJ_supaDn8LZl2uKXuWM72f_Pg,288
27
- signalwire_agents/core/agent/prompt/manager.py,sha256=8f1EptDiIDKFEefOabttLUeS2eZ8D7OzMp3QXkquZeY,9390
42
+ signalwire_agents/core/agent/prompt/manager.py,sha256=0jNTufykxuz8O2w-gsHeTxWH-f36suawWjNF5JYZ_X0,10074
28
43
  signalwire_agents/core/agent/routing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
44
  signalwire_agents/core/agent/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
45
  signalwire_agents/core/agent/swml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
46
  signalwire_agents/core/agent/tools/__init__.py,sha256=eOcmyeGm6qogT3wsBx7QvdjmTbc1p5hnPR6uIlvTLxI,339
32
- signalwire_agents/core/agent/tools/decorator.py,sha256=jtm-WcW940Vx102sRw1FLRM4TEet5lUfQlIAaduMR98,2866
33
- signalwire_agents/core/agent/tools/registry.py,sha256=h8lMmShs9LcmuvtcyV424NlRbvOF68Q4CW6-OMXrnNk,6915
47
+ signalwire_agents/core/agent/tools/decorator.py,sha256=pC6j1114GwVBd2U3h23I9gKLtu8AgeiuWV0lUzz682U,2961
48
+ signalwire_agents/core/agent/tools/registry.py,sha256=CgsCUMWBV4Use1baNl2KLYS2ewKjjOwm28kC_T7R6mU,7459
49
+ signalwire_agents/core/mixins/__init__.py,sha256=NsFpfF7TDP_lNR0Riw4Nbvt4fDbv_A3OoVbBqRrtXQM,652
50
+ signalwire_agents/core/mixins/ai_config_mixin.py,sha256=t_Hbmox7NbV-aRjnYQSWbp-HGwCsJCJaRp2lkkf4YOo,13155
51
+ signalwire_agents/core/mixins/auth_mixin.py,sha256=Y9kR423-76U_pKL7KXzseeXX2a-4WxNWyo3odS7TDQM,9879
52
+ signalwire_agents/core/mixins/prompt_mixin.py,sha256=2cAJpp3Ka-fmgpAg201xeTy-xps99k0vlP7YyqZiCnw,13374
53
+ signalwire_agents/core/mixins/serverless_mixin.py,sha256=QIIbl_-16XFJi5aqrWpNzORbyCJQmhaplWXnW6U9i68,16137
54
+ signalwire_agents/core/mixins/skill_mixin.py,sha256=Qz3RKPmq_iMY4NecyxOHk3dW3W-O4iEm2ahhMjAcqRs,1861
55
+ signalwire_agents/core/mixins/state_mixin.py,sha256=GMYaPBCDqCj0O4Ol6owVnl7kK8OXe3l4BTd-ViOqDCg,9272
56
+ signalwire_agents/core/mixins/tool_mixin.py,sha256=zVmBAfZpusdkZrYgSThTZt6O7YKi7UBQqZZEcWBDmvo,11333
57
+ signalwire_agents/core/mixins/web_mixin.py,sha256=BUzmTkPIHGfitzbn1p94SDSqp-7x_IesjliypagB4oI,50324
34
58
  signalwire_agents/core/security/__init__.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
35
59
  signalwire_agents/core/security/session_manager.py,sha256=s5hXYcFnrsYFoyo-zcN7EJy-wInZQI_cWTBHX9MxHR4,9164
36
60
  signalwire_agents/core/state/__init__.py,sha256=qpYIfQBApet6VQsy6diS3yu0lMxCBC6REOUk5l1McUw,379
@@ -48,28 +72,45 @@ signalwire_agents/search/index_builder.py,sha256=MHqrLZfNjWAM7EtL1L4wqrS1ICXKI_G
48
72
  signalwire_agents/search/query_processor.py,sha256=WMm_jjArQ6-Jpy0Cc0sUI4saidOtDRKx_XLv0qi3N3k,16739
49
73
  signalwire_agents/search/search_engine.py,sha256=KFF33aPsBdwb2N1aTJmAA0xo3KPANoXjwV53uSxih9o,14798
50
74
  signalwire_agents/search/search_service.py,sha256=Src_REgjkcddHBDCaLv2BMJnDSxcE4XV_1U8YStJOh8,8719
75
+ signalwire_agents/skills/README.md,sha256=sM1_08IsKdRDCzYHPLzppJbaK5MvRelsVL6Kd9A9Ubo,12193
51
76
  signalwire_agents/skills/__init__.py,sha256=j0HambEKTkrFNP2vsaSmfrMJNDabq4EuvYJqRKZXfxU,342
52
77
  signalwire_agents/skills/registry.py,sha256=lnr0XFOQ5YC_WgsAT6Id3RMAJ2-nf2ZCdqB7z_huLQI,4889
78
+ signalwire_agents/skills/api_ninjas_trivia/README.md,sha256=SoyS7VFh3eVIiVnQ5gfTfs0a_gAlLwnmT2W2FrbNU0A,6762
53
79
  signalwire_agents/skills/api_ninjas_trivia/__init__.py,sha256=HFHBTgOoySlFPLN0thxuhaYFJbK7PUoS_uIHXI1m_xY,76
54
80
  signalwire_agents/skills/api_ninjas_trivia/skill.py,sha256=PzVGM8ep80o-AzPfZIiXlWMghs0f28T1DVYZRQQOG3A,7206
81
+ signalwire_agents/skills/datasphere/README.md,sha256=7G5t0V04SlnJ39U-3zOoIOfkNFrVEo-s45lCUlYmJGo,7351
55
82
  signalwire_agents/skills/datasphere/__init__.py,sha256=SJJlmeMSeezjINPgkuWN1XzDPN_Z3GzZ_StzO1BtxQs,257
56
83
  signalwire_agents/skills/datasphere/skill.py,sha256=L6GrGwej3sKPcHljKBNf4it5g4DaGzR18KlQx65_XKg,9598
84
+ signalwire_agents/skills/datasphere_serverless/README.md,sha256=FErV97NEdYD_N1wZxkLqy6DSml5B9mCJmEgCUdGxh6A,9299
57
85
  signalwire_agents/skills/datasphere_serverless/__init__.py,sha256=65hu8_0eqiczLSZ-aJgASpMQqTUjzTQUI1fC8GI7qTI,70
58
86
  signalwire_agents/skills/datasphere_serverless/skill.py,sha256=zgEoTY8Jm6YKJBzM1kn3j7tf492K-NiKG7DbE3GReeE,6787
87
+ signalwire_agents/skills/datetime/README.md,sha256=95SzVz-Pcm9MPqZ4D3sSYKMwdpsDNwwCpWFRK027-Pc,4534
59
88
  signalwire_agents/skills/datetime/__init__.py,sha256=coPaY-k2EyZWuYckGunhSJ65Y1Jwz66h-iOo0QWb5WY,43
60
89
  signalwire_agents/skills/datetime/skill.py,sha256=aBBdcPV5xWX6uWi9W0VqZ0kKOqC3JHrAhG1bZn58ro8,3900
90
+ signalwire_agents/skills/joke/README.md,sha256=xUa2_0Pk9neli-UJxI4BPt3Fb1_5Xa3m8RuDlrkfBao,3594
61
91
  signalwire_agents/skills/joke/__init__.py,sha256=R-iS9UMMvOdpkxL9aooVik16eCddJw14Rz4PmFqCdsM,53
62
92
  signalwire_agents/skills/joke/skill.py,sha256=AFaf6fMy0sxUPJHvcnf3CWMuPqpJP4ODscUexMadEcU,3381
93
+ signalwire_agents/skills/math/README.md,sha256=Nrv7PxkFPSxdnAN6856Fp1CfvsUwdncpRFFDERxmMe0,5335
63
94
  signalwire_agents/skills/math/__init__.py,sha256=lGAFWEmJH2fuwkuZUdDTY5dmucrIwtjfNT8bE2hOSP8,39
64
95
  signalwire_agents/skills/math/skill.py,sha256=5sErd5x1rFHJg2GlmdJB3LvrmvTNOrZsA2jRnG67Zw8,3342
65
96
  signalwire_agents/skills/native_vector_search/__init__.py,sha256=buvncVoH5u8MJA0SLlz1JQgIuyBTQW5aql-ydnc7Wh8,29
66
- signalwire_agents/skills/native_vector_search/skill.py,sha256=6rIsyoXPAuzl_C550On2Hp0mQm5a5c8q7yiePjowefQ,18161
97
+ signalwire_agents/skills/native_vector_search/skill.py,sha256=Ck74rnlZ1HtnmEWRhZW1bSF_-PzpV3q-sNOu_LmeDQ0,18934
98
+ signalwire_agents/skills/play_background_file/README.md,sha256=omJ_jY5Co6Mk-gJt_hoSl40wemmTbzae3DBll6HL0B4,7026
67
99
  signalwire_agents/skills/play_background_file/__init__.py,sha256=exCFsX6Mi0l4YBQfiSv5NdUAimv9YqVokK5M4x0nlV4,82
68
100
  signalwire_agents/skills/play_background_file/skill.py,sha256=iQO8Xd1U92gff5O1lEuhL3dXcAUkQbcfoUSgKWuf_FM,7164
101
+ signalwire_agents/skills/spider/README.md,sha256=yBa09JzgLikG3STbDNbRCKUM3l3XU5-D923I2g8CTVc,6909
102
+ signalwire_agents/skills/spider/__init__.py,sha256=O0Xvgj2KWOdeyb2U-q1QFVUzPv1yylsreRDxmB4ns5E,94
103
+ signalwire_agents/skills/spider/skill.py,sha256=l9a2Re0-vb1UeRevXsDb_2qxuMfaOo7bE8M-0Ly837M,18976
104
+ signalwire_agents/skills/swml_transfer/README.md,sha256=2Y6CH5Bm9kI5IYCLczIQIYlaYUq6VX_S4Irct2CQMmQ,14681
105
+ signalwire_agents/skills/swml_transfer/__init__.py,sha256=V8upr8xlgXMB4xHzSWCcEAw6cpZxGB0mjrFdqHCSQJU,47
106
+ signalwire_agents/skills/swml_transfer/skill.py,sha256=Me_m0Edn76_KA1bAiJLDNPqv-hXR-6MTNeVKok8eVUk,10834
107
+ signalwire_agents/skills/weather_api/README.md,sha256=buzCtrhxXAxZ8k7Qt_lR62E_tqnpXmXRsTarb_F43zg,6439
69
108
  signalwire_agents/skills/weather_api/__init__.py,sha256=ezHyWbpvMoEopWG5_vI6u8Ugo0BsmR_gWvtPwzQWoe0,66
70
109
  signalwire_agents/skills/weather_api/skill.py,sha256=lTLRUFcgJvhZewZlwaMbLubAB7yVjAxpGG2wbqi9yS4,6026
110
+ signalwire_agents/skills/web_search/README.md,sha256=Y95cxEScMzhmslUJF8u_Nh15FbEBuus4P-E8_kk2an0,5438
71
111
  signalwire_agents/skills/web_search/__init__.py,sha256=wJlptYDExYw-nxZJVzlTLOgkKkDOLUUt1ZdoLt44ixs,45
72
112
  signalwire_agents/skills/web_search/skill.py,sha256=6EwoNABxEH5UkEdXsPT72PQzoVlFUbWsFJR6NuyhglI,10363
113
+ signalwire_agents/skills/wikipedia_search/README.md,sha256=KFIQ8XhqrTG8NRs72dIbjJacy2DlYEXLtxgy23gyRi4,7585
73
114
  signalwire_agents/skills/wikipedia_search/__init__.py,sha256=8Db_aE0ly7QoXg7n2RDvCqKupkyR-UYlK9uFUnGNCE8,184
74
115
  signalwire_agents/skills/wikipedia_search/skill.py,sha256=Q_HWJoG2RkQuZMgWxD9czuzEor79Gy1tjo6ywVzec84,6877
75
116
  signalwire_agents/utils/__init__.py,sha256=1KVsHzwgfktSXHe3vqSRGImjtIE58szwD2FHHoFBtvY,601
@@ -77,10 +118,9 @@ signalwire_agents/utils/pom_utils.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_Pu
77
118
  signalwire_agents/utils/schema_utils.py,sha256=i4okv_O9bUApwT_jJf4Yoij3bLCrGrW3DC-vzSy2RuY,16392
78
119
  signalwire_agents/utils/token_generators.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
79
120
  signalwire_agents/utils/validators.py,sha256=4Mr7baQ_xR_hfJ72YxQRAT_GFa663YjFX_PumJ35Xds,191
80
- signalwire_agents-0.1.23.data/data/schema.json,sha256=M8Mn6pQda2P9jhbmkALrLr1wt-fRuhYRqdmEi9Rbhqk,178075
81
- signalwire_agents-0.1.23.dist-info/licenses/LICENSE,sha256=NYvAsB-rTcSvG9cqHt9EUHAWLiA9YzM4Qfz-mPdvDR0,1067
82
- signalwire_agents-0.1.23.dist-info/METADATA,sha256=RZen3d6VeVM6kk_MedzUU2U1rBlaei3srtJNcqkcIuQ,35935
83
- signalwire_agents-0.1.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
- signalwire_agents-0.1.23.dist-info/entry_points.txt,sha256=7RBxC9wwFdsqP7g1F4JzsJ3AIHsjGtb3h0mxEGmANlI,151
85
- signalwire_agents-0.1.23.dist-info/top_level.txt,sha256=kDGS6ZYv84K9P5Kyg9_S8P_pbUXoHkso0On_DB5bbWc,18
86
- signalwire_agents-0.1.23.dist-info/RECORD,,
121
+ signalwire_agents-0.1.25.dist-info/licenses/LICENSE,sha256=NYvAsB-rTcSvG9cqHt9EUHAWLiA9YzM4Qfz-mPdvDR0,1067
122
+ signalwire_agents-0.1.25.dist-info/METADATA,sha256=18UrkQC-tsdNY9xzxD6n8s_uAdPQ6VllLPRDZZBPXS8,37922
123
+ signalwire_agents-0.1.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
+ signalwire_agents-0.1.25.dist-info/entry_points.txt,sha256=sfdeRaTSs9J56pqFdcZGRTxQcTuecb8IMx8gqleJ6s0,136
125
+ signalwire_agents-0.1.25.dist-info/top_level.txt,sha256=kDGS6ZYv84K9P5Kyg9_S8P_pbUXoHkso0On_DB5bbWc,18
126
+ signalwire_agents-0.1.25.dist-info/RECORD,,
@@ -1,3 +1,3 @@
1
1
  [console_scripts]
2
2
  sw-search = signalwire_agents.cli.build_search:console_entry_point
3
- swaig-test = signalwire_agents.cli.test_swaig:console_entry_point
3
+ swaig-test = signalwire_agents.cli.test_swaig:main
@@ -1,176 +0,0 @@
1
- """
2
- Copyright (c) 2025 SignalWire
3
-
4
- This file is part of the SignalWire AI Agents SDK.
5
-
6
- Licensed under the MIT License.
7
- See LICENSE file in the project root for full license information.
8
- """
9
-
10
- """Ephemeral agent configuration for dynamic per-request settings."""
11
-
12
- from typing import Dict, Any, Optional, List
13
-
14
-
15
- class EphemeralAgentConfig:
16
- """
17
- An ephemeral configurator object that mimics AgentBase's configuration interface.
18
-
19
- This allows dynamic configuration callbacks to use the same familiar methods
20
- they would use during agent initialization, but for per-request configuration.
21
- """
22
-
23
- def __init__(self):
24
- # Initialize all configuration containers
25
- self._hints = []
26
- self._languages = []
27
- self._pronounce = []
28
- self._params = {}
29
- self._global_data = {}
30
- self._prompt_sections = []
31
- self._raw_prompt = None
32
- self._post_prompt = None
33
- self._function_includes = []
34
- self._native_functions = []
35
-
36
- # Mirror all the AgentBase configuration methods
37
-
38
- def add_hint(self, hint: str) -> 'EphemeralAgentConfig':
39
- """Add a simple string hint"""
40
- if isinstance(hint, str) and hint:
41
- self._hints.append(hint)
42
- return self
43
-
44
- def add_hints(self, hints: List[str]) -> 'EphemeralAgentConfig':
45
- """Add multiple string hints"""
46
- if hints and isinstance(hints, list):
47
- for hint in hints:
48
- if isinstance(hint, str) and hint:
49
- self._hints.append(hint)
50
- return self
51
-
52
- def add_language(self, name: str, code: str, voice: str, **kwargs) -> 'EphemeralAgentConfig':
53
- """Add a language configuration"""
54
- language = {
55
- "name": name,
56
- "code": code,
57
- "voice": voice
58
- }
59
-
60
- # Handle additional parameters
61
- for key, value in kwargs.items():
62
- if key in ["engine", "model", "speech_fillers", "function_fillers", "fillers"]:
63
- language[key] = value
64
-
65
- self._languages.append(language)
66
- return self
67
-
68
- def add_pronunciation(self, replace: str, with_text: str, ignore_case: bool = False) -> 'EphemeralAgentConfig':
69
- """Add a pronunciation rule"""
70
- if replace and with_text:
71
- rule = {"replace": replace, "with": with_text}
72
- if ignore_case:
73
- rule["ignore_case"] = True
74
- self._pronounce.append(rule)
75
- return self
76
-
77
- def set_param(self, key: str, value: Any) -> 'EphemeralAgentConfig':
78
- """Set a single AI parameter"""
79
- if key:
80
- self._params[key] = value
81
- return self
82
-
83
- def set_params(self, params: Dict[str, Any]) -> 'EphemeralAgentConfig':
84
- """Set multiple AI parameters"""
85
- if params and isinstance(params, dict):
86
- self._params.update(params)
87
- return self
88
-
89
- def set_global_data(self, data: Dict[str, Any]) -> 'EphemeralAgentConfig':
90
- """Set global data"""
91
- if data and isinstance(data, dict):
92
- self._global_data = data
93
- return self
94
-
95
- def update_global_data(self, data: Dict[str, Any]) -> 'EphemeralAgentConfig':
96
- """Update global data"""
97
- if data and isinstance(data, dict):
98
- self._global_data.update(data)
99
- return self
100
-
101
- def set_prompt_text(self, text: str) -> 'EphemeralAgentConfig':
102
- """Set raw prompt text"""
103
- self._raw_prompt = text
104
- return self
105
-
106
- def set_post_prompt(self, text: str) -> 'EphemeralAgentConfig':
107
- """Set post-prompt text"""
108
- self._post_prompt = text
109
- return self
110
-
111
- def prompt_add_section(self, title: str, body: str = "", bullets: Optional[List[str]] = None, **kwargs) -> 'EphemeralAgentConfig':
112
- """Add a prompt section"""
113
- section = {
114
- "title": title,
115
- "body": body
116
- }
117
- if bullets:
118
- section["bullets"] = bullets
119
-
120
- # Handle additional parameters
121
- for key, value in kwargs.items():
122
- if key in ["numbered", "numbered_bullets", "subsections"]:
123
- section[key] = value
124
-
125
- self._prompt_sections.append(section)
126
- return self
127
-
128
- def set_native_functions(self, function_names: List[str]) -> 'EphemeralAgentConfig':
129
- """Set native functions"""
130
- if function_names and isinstance(function_names, list):
131
- self._native_functions = [name for name in function_names if isinstance(name, str)]
132
- return self
133
-
134
- def add_function_include(self, url: str, functions: List[str], meta_data: Optional[Dict[str, Any]] = None) -> 'EphemeralAgentConfig':
135
- """Add a function include"""
136
- if url and functions and isinstance(functions, list):
137
- include = {"url": url, "functions": functions}
138
- if meta_data and isinstance(meta_data, dict):
139
- include["meta_data"] = meta_data
140
- self._function_includes.append(include)
141
- return self
142
-
143
- def extract_config(self) -> Dict[str, Any]:
144
- """
145
- Extract the configuration as a dictionary for applying to the real agent.
146
-
147
- Returns:
148
- Dictionary containing all the configuration changes
149
- """
150
- config = {}
151
-
152
- if self._hints:
153
- config["hints"] = self._hints
154
- if self._languages:
155
- config["languages"] = self._languages
156
- if self._pronounce:
157
- config["pronounce"] = self._pronounce
158
- if self._params:
159
- config["params"] = self._params
160
- if self._global_data:
161
- config["global_data"] = self._global_data
162
- if self._function_includes:
163
- config["function_includes"] = self._function_includes
164
- if self._native_functions:
165
- config["native_functions"] = self._native_functions
166
-
167
- # Handle prompt sections - these should be applied to the agent's POM, not as raw config
168
- # The calling code should use these to build the prompt properly
169
- if self._prompt_sections:
170
- config["_ephemeral_prompt_sections"] = self._prompt_sections
171
- if self._raw_prompt:
172
- config["_ephemeral_raw_prompt"] = self._raw_prompt
173
- if self._post_prompt:
174
- config["_ephemeral_post_prompt"] = self._post_prompt
175
-
176
- return config