Teknium
ef67037f8e
feat: add SMS (Telnyx) platform adapter
Implement SMS as a first-class messaging platform following
ADDING_A_PLATFORM.md checklist. All 16 integration points covered:
- gateway/platforms/sms.py: Core adapter with aiohttp webhook server,
Telnyx REST API send, markdown stripping, 1600-char chunking,
echo loop prevention, multi-number reply-from tracking
- gateway/config.py: Platform.SMS enum + env override block
- gateway/run.py: Adapter factory + auth maps (SMS_ALLOWED_USERS,
SMS_ALLOW_ALL_USERS)
- toolsets.py: hermes-sms toolset + included in hermes-gateway
- cron/scheduler.py: SMS in platform_map for cron delivery
- tools/send_message_tool.py: SMS routing + _send_sms() standalone sender
- tools/cronjob_tools.py: 'sms' in deliver description
- gateway/channel_directory.py: SMS in session-based discovery
- agent/prompt_builder.py: SMS platform hint (plain text, concise)
- hermes_cli/status.py: SMS in platforms status display
- hermes_cli/gateway.py: SMS in setup wizard with Telnyx instructions
- pyproject.toml: sms optional dependency group (aiohttp>=3.9.0)
- tests/gateway/test_sms.py: Unit tests for config, format, truncate,
echo prevention, requirements, toolset integration
Co-authored-by: sunsakis <teo@sunsakis.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 02:52:34 -07:00
..
2026-03-16 05:19:36 -07:00
2026-03-16 12:36:29 -07:00
2026-03-16 23:48:14 -07:00
2026-03-14 14:27:20 +03:00
2026-03-17 02:52:34 -07:00
2026-03-17 02:51:40 -07:00
2026-03-12 16:23:34 -04:00
2026-03-15 05:20:17 -07:00
2026-03-14 22:11:34 -07:00
2026-03-17 02:34:35 -07:00
2026-03-17 02:02:33 -07:00
2026-03-16 00:23:47 -07:00
2026-03-14 02:33:31 -07:00
2026-03-10 15:22:44 -07:00
2026-03-17 01:50:59 -07:00
2026-03-12 01:23:28 -07:00
2026-03-15 08:02:29 -07:00
2026-03-14 11:03:20 -07:00
2026-03-16 22:53:32 -07:00
2026-03-17 01:07:11 +03:00
2026-03-14 19:38:55 -07:00
2026-03-14 19:38:55 -07:00
2026-03-17 02:40:34 -07:00
2026-03-14 22:31:51 -07:00
2026-03-14 22:31:51 -07:00
2026-03-01 19:59:24 -08:00
2026-03-02 17:18:15 +11:00
2026-03-14 21:11:37 -07:00
2026-03-13 23:59:12 -07:00
2026-03-14 11:57:44 -07:00
2026-03-14 06:31:32 -07:00
2026-03-12 08:35:45 -07:00
2026-03-10 17:31:00 -07:00
2026-03-15 19:03:34 -07:00
2026-03-16 04:34:45 -07:00
2026-03-13 21:53:54 -07:00
2026-03-14 21:28:51 -07:00
2026-03-17 02:05:26 -07:00
2026-03-14 19:33:59 -07:00
2026-03-16 12:36:29 -07:00
2026-03-14 21:19:22 -07:00
2026-03-13 03:14:04 -07:00
2026-03-14 15:00:45 +03:00
2026-03-16 06:43:57 -07:00
2026-03-17 02:05:26 -07:00
2026-03-08 20:22:33 -07:00
2026-03-13 21:34:01 -07:00
2026-03-17 05:06:11 +03:00
2026-03-15 08:02:29 -07:00
2026-03-09 21:01:40 -07:00
2026-03-15 21:59:53 -07:00
2026-03-01 19:59:24 -08:00
2026-03-11 21:38:29 -07:00
2026-03-09 02:19:32 -07:00
2026-03-11 21:06:54 -07:00
2026-03-15 04:01:56 -07:00
2026-03-01 03:12:37 -05:00
2026-03-16 04:42:48 -07:00
2026-03-16 00:23:47 -07:00
2026-03-12 08:35:45 -07:00
2026-03-13 21:56:12 -07:00
2026-03-13 23:39:51 -07:00
2026-03-10 17:12:34 -07:00
2026-03-05 18:46:30 -08:00
2026-03-16 06:35:46 -07:00
2026-03-09 17:31:54 +03:00
2026-03-16 07:17:36 -07:00
2026-03-17 00:12:16 -07:00
2026-03-17 01:47:32 -07:00
2026-03-12 15:05:42 -04:00
2026-03-12 05:38:19 -07:00
2026-03-12 08:35:45 -07:00
2026-03-08 17:45:45 -07:00
2026-03-17 02:04:36 -07:00
2026-03-16 06:35:46 -07:00
2026-03-17 02:13:26 -07:00
2026-03-13 04:42:26 +03:00
2026-03-16 06:15:09 -07:00
2026-03-16 23:48:14 -07:00
2026-03-14 06:19:28 -07:00
2026-03-09 23:27:19 -07:00
2026-03-14 11:03:25 -07:00
2026-03-14 21:51:27 -07:00
2026-03-14 21:51:27 -07:00