@framers/agentos 0.12.17 → 0.12.18

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.
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @fileoverview Plivo SMS Channel Adapter for AgentOS.
3
+ *
4
+ * Fills the `sms` channel slot using Plivo's Messaging API. Bidirectional:
5
+ *
6
+ * 1. **Outbound** — sends SMS via `POST /v1/Account/{authId}/Message/` using
7
+ * HTTP Basic auth (Auth ID / Auth Token).
8
+ * 2. **Inbound** — Plivo POSTs incoming messages to a configured message URL.
9
+ * The host application forwards the request to {@link handleIncomingWebhook},
10
+ * which verifies Plivo's inbound-message signature before emitting. Inbound
11
+ * messaging is signed under `X-Plivo-Signature-MA-V3`; the plain V3 and the
12
+ * V2 family are accepted as well.
13
+ *
14
+ * The adapter does NOT start its own HTTP server; the host wires a route
15
+ * (Express/Fastify/etc.) that forwards inbound requests here — the same
16
+ * pattern used by {@link WhatsAppChannelAdapter}.
17
+ *
18
+ * Voice for Plivo already ships separately under `telephony/providers/plivo.ts`;
19
+ * this adapter is SMS only.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const sms = new PlivoSmsChannelAdapter();
24
+ * await sms.initialize({
25
+ * platform: 'plivo',
26
+ * credential: process.env.PLIVO_AUTH_TOKEN!, // Auth Token
27
+ * params: {
28
+ * authId: process.env.PLIVO_AUTH_ID!,
29
+ * phoneNumber: '+14150000002', // Plivo sender number
30
+ * webhookUrl: 'https://myhost.example/plivo/inbound', // signed message URL
31
+ * },
32
+ * });
33
+ * ```
34
+ *
35
+ * @module @framers/agentos/channels/adapters/PlivoSmsChannelAdapter
36
+ */
37
+ import type { ChannelAuthConfig, ChannelCapability, ChannelPlatform, ChannelSendResult, MessageContent } from '../types.js';
38
+ import { BaseChannelAdapter } from './BaseChannelAdapter.js';
39
+ import type { RetryConfig } from './BaseChannelAdapter.js';
40
+ /**
41
+ * Channel adapter for SMS backed by Plivo.
42
+ *
43
+ * Capabilities: text. (MMS media is out of scope for this adapter.)
44
+ */
45
+ export declare class PlivoSmsChannelAdapter extends BaseChannelAdapter<PlivoSmsAuthParams> {
46
+ readonly platform: ChannelPlatform;
47
+ readonly displayName = "Plivo SMS";
48
+ readonly capabilities: readonly ChannelCapability[];
49
+ /** Plivo Auth ID (account id, used in the API path and Basic auth). */
50
+ private authId;
51
+ /** Plivo Auth Token (Basic auth password + inbound-webhook HMAC key). */
52
+ private authToken;
53
+ /** Sender number / short code / sender id used as `src`. */
54
+ private phoneNumber;
55
+ /** Externally-visible message URL Plivo signs, for inbound verification. */
56
+ private webhookUrl;
57
+ /** When true (default), inbound webhooks must carry a valid V3 signature. */
58
+ private verifySignatureEnabled;
59
+ /** Pre-computed `Authorization: Basic ...` header value. */
60
+ private authHeader;
61
+ /** Fetch implementation (injectable for tests). */
62
+ private readonly fetchImpl;
63
+ /**
64
+ * @param opts.fetchImpl - Override the global fetch (inject a mock in tests).
65
+ * @param opts.retryConfig - Connection retry tuning (see BaseChannelAdapter).
66
+ */
67
+ constructor(opts?: {
68
+ fetchImpl?: typeof fetch;
69
+ retryConfig?: Partial<RetryConfig>;
70
+ });
71
+ protected doConnect(auth: ChannelAuthConfig & {
72
+ params?: PlivoSmsAuthParams;
73
+ }): Promise<void>;
74
+ protected doSendMessage(conversationId: string, content: MessageContent): Promise<ChannelSendResult>;
75
+ protected doShutdown(): Promise<void>;
76
+ /**
77
+ * Handle an inbound Plivo SMS webhook. The host forwards Plivo's POST here.
78
+ *
79
+ * When signature verification is enabled (the default), the request must
80
+ * carry valid `X-Plivo-Signature-V3` / `-Nonce` headers and the URL Plivo
81
+ * signed; otherwise the message is dropped (fail closed).
82
+ *
83
+ * @param body - Parsed form/JSON body of Plivo's inbound-message POST.
84
+ * @param meta - Request metadata needed to verify the V3 signature.
85
+ */
86
+ handleIncomingWebhook(body: Record<string, unknown>, meta?: {
87
+ method?: string;
88
+ /** The exact externally-visible URL Plivo POSTed to (must byte-match). */
89
+ url?: string;
90
+ headers?: Record<string, string | string[] | undefined>;
91
+ }): void;
92
+ /**
93
+ * Verify an inbound request genuinely came from Plivo.
94
+ *
95
+ * Plivo sends more than one signature header and the one that matches depends
96
+ * on the channel. Inbound messaging (SMS) is signed under
97
+ * `X-Plivo-Signature-MA-V3`, while voice callbacks use the plain
98
+ * `X-Plivo-Signature-V3`; Plivo's public docs also still document the older V2
99
+ * scheme (`X-Plivo-Signature-MA-V2` / `X-Plivo-Signature-V2`). To be robust we
100
+ * accept the request if ANY family validates: the V3 family (body params folded
101
+ * into the signed string, keyed on `X-Plivo-Signature-V3-Nonce`) or the V2
102
+ * family (URL + nonce only, keyed on `X-Plivo-Signature-V2-Nonce`). Every
103
+ * candidate must still match cryptographically, so accepting several families
104
+ * cannot produce a false accept.
105
+ *
106
+ * Fails closed: missing URL/token, or no family matches → not from Plivo.
107
+ */
108
+ private isFromPlivo;
109
+ }
110
+ /**
111
+ * Compute Plivo's X-Plivo-Signature-V3 for a callback, matching the algorithm
112
+ * in `plivo-python`'s `signature_v3.py`.
113
+ *
114
+ * For a POST callback the signed string is:
115
+ * `{scheme}://{host}{path}?` + (query as sorted `k=v&…` + `.` if present)
116
+ * + sorted, separator-less `key`+`value` body params + `.` + nonce
117
+ * then `base64(HMAC_SHA256(authToken, signedString))`.
118
+ */
119
+ export declare function computePlivoV3Signature(input: {
120
+ method: string;
121
+ url: string;
122
+ nonce: string;
123
+ authToken: string;
124
+ params: Record<string, unknown>;
125
+ }): string;
126
+ /**
127
+ * Compute Plivo's V2-family signature (`X-Plivo-Signature-MA-V2` for messaging,
128
+ * `X-Plivo-Signature-V2` for voice). Unlike V3 it folds in no params: strip the
129
+ * query off the URL, append the V2 nonce, HMAC-SHA256 with the auth token, then
130
+ * base64. Matches `plivo-python`'s `validate_signature`.
131
+ */
132
+ export declare function computePlivoV2Signature(input: {
133
+ url: string;
134
+ nonce: string;
135
+ authToken: string;
136
+ }): string;
137
+ /** Platform-specific parameters for a Plivo SMS connection. */
138
+ export interface PlivoSmsAuthParams extends Record<string, string | undefined> {
139
+ /** Plivo Auth ID (account identifier). Required. */
140
+ authId?: string;
141
+ /** Plivo Auth Token. If omitted, the `credential` field is used. */
142
+ authToken?: string;
143
+ /** Plivo sender number / short code / sender id used as `src`. Required. */
144
+ phoneNumber?: string;
145
+ /** Externally-visible message URL Plivo signs; used to verify inbound webhooks. */
146
+ webhookUrl?: string;
147
+ /** Set to the string `'false'` to disable inbound signature verification. */
148
+ verifySignature?: string;
149
+ }
150
+ //# sourceMappingURL=PlivoSmsChannelAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlivoSmsChannelAdapter.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/adapters/PlivoSmsChannelAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,354 @@
1
+ /**
2
+ * @fileoverview Plivo SMS Channel Adapter for AgentOS.
3
+ *
4
+ * Fills the `sms` channel slot using Plivo's Messaging API. Bidirectional:
5
+ *
6
+ * 1. **Outbound** — sends SMS via `POST /v1/Account/{authId}/Message/` using
7
+ * HTTP Basic auth (Auth ID / Auth Token).
8
+ * 2. **Inbound** — Plivo POSTs incoming messages to a configured message URL.
9
+ * The host application forwards the request to {@link handleIncomingWebhook},
10
+ * which verifies Plivo's inbound-message signature before emitting. Inbound
11
+ * messaging is signed under `X-Plivo-Signature-MA-V3`; the plain V3 and the
12
+ * V2 family are accepted as well.
13
+ *
14
+ * The adapter does NOT start its own HTTP server; the host wires a route
15
+ * (Express/Fastify/etc.) that forwards inbound requests here — the same
16
+ * pattern used by {@link WhatsAppChannelAdapter}.
17
+ *
18
+ * Voice for Plivo already ships separately under `telephony/providers/plivo.ts`;
19
+ * this adapter is SMS only.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const sms = new PlivoSmsChannelAdapter();
24
+ * await sms.initialize({
25
+ * platform: 'plivo',
26
+ * credential: process.env.PLIVO_AUTH_TOKEN!, // Auth Token
27
+ * params: {
28
+ * authId: process.env.PLIVO_AUTH_ID!,
29
+ * phoneNumber: '+14150000002', // Plivo sender number
30
+ * webhookUrl: 'https://myhost.example/plivo/inbound', // signed message URL
31
+ * },
32
+ * });
33
+ * ```
34
+ *
35
+ * @module @framers/agentos/channels/adapters/PlivoSmsChannelAdapter
36
+ */
37
+ import { createHmac, timingSafeEqual } from 'node:crypto';
38
+ import { BaseChannelAdapter } from './BaseChannelAdapter.js';
39
+ // ============================================================================
40
+ // PlivoSmsChannelAdapter
41
+ // ============================================================================
42
+ /**
43
+ * Channel adapter for SMS backed by Plivo.
44
+ *
45
+ * Capabilities: text. (MMS media is out of scope for this adapter.)
46
+ */
47
+ export class PlivoSmsChannelAdapter extends BaseChannelAdapter {
48
+ /**
49
+ * @param opts.fetchImpl - Override the global fetch (inject a mock in tests).
50
+ * @param opts.retryConfig - Connection retry tuning (see BaseChannelAdapter).
51
+ */
52
+ constructor(opts) {
53
+ super(opts?.retryConfig);
54
+ this.platform = 'plivo';
55
+ this.displayName = 'Plivo SMS';
56
+ this.capabilities = ['text'];
57
+ /** When true (default), inbound webhooks must carry a valid V3 signature. */
58
+ this.verifySignatureEnabled = true;
59
+ this.fetchImpl = opts?.fetchImpl ?? globalThis.fetch;
60
+ }
61
+ // ── Abstract hook implementations ──
62
+ async doConnect(auth) {
63
+ const params = auth.params ?? {};
64
+ this.authId = params.authId;
65
+ this.authToken = params.authToken ?? auth.credential;
66
+ this.phoneNumber = params.phoneNumber;
67
+ this.webhookUrl = params.webhookUrl;
68
+ this.verifySignatureEnabled = params.verifySignature !== 'false';
69
+ if (!this.authId) {
70
+ throw new Error('Plivo authId is required for SMS.');
71
+ }
72
+ if (!this.authToken) {
73
+ throw new Error('Plivo Auth Token is required. Provide it as credential or params.authToken.');
74
+ }
75
+ if (!this.phoneNumber) {
76
+ throw new Error('A Plivo sender number (params.phoneNumber) is required.');
77
+ }
78
+ this.authHeader =
79
+ 'Basic ' + Buffer.from(`${this.authId}:${this.authToken}`).toString('base64');
80
+ // Verify credentials by fetching the account. Tolerate failure — the
81
+ // credentials may still be valid for messaging even if this GET fails.
82
+ try {
83
+ const resp = await this.fetchImpl(`https://api.plivo.com/v1/Account/${this.authId}/`, { headers: { Authorization: this.authHeader }, signal: AbortSignal.timeout(10000) });
84
+ if (resp.ok) {
85
+ const data = (await resp.json());
86
+ this.platformInfo = {
87
+ provider: 'plivo',
88
+ authId: this.authId,
89
+ phoneNumber: this.phoneNumber,
90
+ accountName: data.name,
91
+ };
92
+ console.log(`[Plivo SMS] Connected (${data.name ?? this.authId}, ${this.phoneNumber})`);
93
+ return;
94
+ }
95
+ if (resp.status === 401 || resp.status === 403) {
96
+ throw new Error(`[Plivo SMS] Authentication failed (HTTP ${resp.status}) — check authId/authToken.`);
97
+ }
98
+ console.warn(`[Plivo SMS] Account verification returned HTTP ${resp.status}.`);
99
+ }
100
+ catch (err) {
101
+ if (err instanceof Error && err.message.includes('Authentication failed')) {
102
+ throw err;
103
+ }
104
+ console.warn(`[Plivo SMS] Account verification failed: ${err}`);
105
+ }
106
+ this.platformInfo = { provider: 'plivo', authId: this.authId, phoneNumber: this.phoneNumber };
107
+ console.log(`[Plivo SMS] Connected (${this.phoneNumber})`);
108
+ }
109
+ async doSendMessage(conversationId, content) {
110
+ if (!this.authHeader || !this.authId || !this.phoneNumber) {
111
+ throw new Error('[Plivo SMS] Adapter is not connected.');
112
+ }
113
+ // SMS carries text only; collapse text blocks into one message body.
114
+ const text = content.blocks
115
+ .filter((b) => b.type === 'text')
116
+ .map((b) => b.text)
117
+ .join('\n')
118
+ .trim();
119
+ if (!text) {
120
+ throw new Error('[Plivo SMS] Only text content is supported and none was provided.');
121
+ }
122
+ const resp = await this.fetchImpl(`https://api.plivo.com/v1/Account/${this.authId}/Message/`, {
123
+ method: 'POST',
124
+ headers: {
125
+ Authorization: this.authHeader,
126
+ 'Content-Type': 'application/json',
127
+ },
128
+ body: JSON.stringify({
129
+ src: this.phoneNumber,
130
+ dst: conversationId,
131
+ text,
132
+ type: 'sms',
133
+ }),
134
+ signal: AbortSignal.timeout(10000),
135
+ });
136
+ if (!resp.ok) {
137
+ const errText = await resp.text().catch(() => String(resp.status));
138
+ throw new Error(`[Plivo SMS] Send failed — HTTP ${resp.status}: ${errText}`);
139
+ }
140
+ const data = (await resp.json());
141
+ const messageId = data.message_uuid?.[0] ?? data.api_id ?? '';
142
+ return { messageId, timestamp: new Date().toISOString() };
143
+ }
144
+ async doShutdown() {
145
+ this.authHeader = undefined;
146
+ this.authToken = undefined;
147
+ this.authId = undefined;
148
+ this.phoneNumber = undefined;
149
+ console.log('[Plivo SMS] Adapter shut down.');
150
+ }
151
+ // ── Public: inbound webhook ──
152
+ /**
153
+ * Handle an inbound Plivo SMS webhook. The host forwards Plivo's POST here.
154
+ *
155
+ * When signature verification is enabled (the default), the request must
156
+ * carry valid `X-Plivo-Signature-V3` / `-Nonce` headers and the URL Plivo
157
+ * signed; otherwise the message is dropped (fail closed).
158
+ *
159
+ * @param body - Parsed form/JSON body of Plivo's inbound-message POST.
160
+ * @param meta - Request metadata needed to verify the V3 signature.
161
+ */
162
+ handleIncomingWebhook(body, meta) {
163
+ if (this.status !== 'connected') {
164
+ console.warn('[Plivo SMS] Dropping inbound webhook — adapter not connected.');
165
+ return;
166
+ }
167
+ if (this.verifySignatureEnabled && !this.isFromPlivo(body, meta)) {
168
+ console.warn('[Plivo SMS] Dropping inbound webhook — signature missing or invalid.');
169
+ return;
170
+ }
171
+ const from = String(body.From ?? '');
172
+ const text = String(body.Text ?? '');
173
+ const messageUuid = String(body.MessageUUID ?? '');
174
+ if (!from || !messageUuid) {
175
+ console.warn('[Plivo SMS] Dropping inbound webhook — missing From or MessageUUID.');
176
+ return;
177
+ }
178
+ const channelMessage = {
179
+ messageId: messageUuid,
180
+ platform: 'plivo',
181
+ conversationId: from,
182
+ conversationType: 'direct',
183
+ sender: { id: from },
184
+ content: [{ type: 'text', text }],
185
+ text,
186
+ timestamp: new Date().toISOString(),
187
+ rawEvent: body,
188
+ };
189
+ this.emit({
190
+ type: 'message',
191
+ platform: 'plivo',
192
+ conversationId: from,
193
+ timestamp: channelMessage.timestamp,
194
+ data: channelMessage,
195
+ });
196
+ }
197
+ // ── Private: signature verification ──
198
+ /**
199
+ * Verify an inbound request genuinely came from Plivo.
200
+ *
201
+ * Plivo sends more than one signature header and the one that matches depends
202
+ * on the channel. Inbound messaging (SMS) is signed under
203
+ * `X-Plivo-Signature-MA-V3`, while voice callbacks use the plain
204
+ * `X-Plivo-Signature-V3`; Plivo's public docs also still document the older V2
205
+ * scheme (`X-Plivo-Signature-MA-V2` / `X-Plivo-Signature-V2`). To be robust we
206
+ * accept the request if ANY family validates: the V3 family (body params folded
207
+ * into the signed string, keyed on `X-Plivo-Signature-V3-Nonce`) or the V2
208
+ * family (URL + nonce only, keyed on `X-Plivo-Signature-V2-Nonce`). Every
209
+ * candidate must still match cryptographically, so accepting several families
210
+ * cannot produce a false accept.
211
+ *
212
+ * Fails closed: missing URL/token, or no family matches → not from Plivo.
213
+ */
214
+ isFromPlivo(body, meta) {
215
+ const headers = meta?.headers ?? {};
216
+ const url = meta?.url ?? this.webhookUrl;
217
+ const method = (meta?.method ?? 'POST').toUpperCase();
218
+ if (!url) {
219
+ console.warn('[Plivo SMS] Cannot verify inbound webhook — no request URL available. ' +
220
+ 'Set params.webhookUrl (or pass meta.url) when signature verification is enabled.');
221
+ return false;
222
+ }
223
+ if (!this.authToken)
224
+ return false;
225
+ // V3 family: MA-V3 for inbound messaging, plain V3 for voice. Params folded
226
+ // into the signed string, keyed on the V3 nonce.
227
+ const v3 = joinHeaders(headers, ['x-plivo-signature-ma-v3', 'x-plivo-signature-v3']);
228
+ const v3Nonce = headerValue(headers, 'x-plivo-signature-v3-nonce');
229
+ if (v3 && v3Nonce) {
230
+ try {
231
+ const expected = computePlivoV3Signature({
232
+ method,
233
+ url,
234
+ nonce: v3Nonce,
235
+ authToken: this.authToken,
236
+ params: body,
237
+ });
238
+ if (signatureMatches(v3, expected))
239
+ return true;
240
+ }
241
+ catch {
242
+ // malformed URL/input for V3 → fall through to the V2 family
243
+ }
244
+ }
245
+ // V2 family: MA-V2 for messaging, plain V2 for voice. URL + nonce only (no
246
+ // params), keyed on the V2 nonce.
247
+ const v2 = joinHeaders(headers, ['x-plivo-signature-ma-v2', 'x-plivo-signature-v2']);
248
+ const v2Nonce = headerValue(headers, 'x-plivo-signature-v2-nonce');
249
+ if (v2 && v2Nonce) {
250
+ try {
251
+ const expected = computePlivoV2Signature({ url, nonce: v2Nonce, authToken: this.authToken });
252
+ if (signatureMatches(v2, expected))
253
+ return true;
254
+ }
255
+ catch {
256
+ // malformed input → no family matched
257
+ }
258
+ }
259
+ return false;
260
+ }
261
+ }
262
+ // ============================================================================
263
+ // Signature helpers (exported for testing against the Plivo SDK golden fixture)
264
+ // ============================================================================
265
+ /**
266
+ * Compute Plivo's X-Plivo-Signature-V3 for a callback, matching the algorithm
267
+ * in `plivo-python`'s `signature_v3.py`.
268
+ *
269
+ * For a POST callback the signed string is:
270
+ * `{scheme}://{host}{path}?` + (query as sorted `k=v&…` + `.` if present)
271
+ * + sorted, separator-less `key`+`value` body params + `.` + nonce
272
+ * then `base64(HMAC_SHA256(authToken, signedString))`.
273
+ */
274
+ export function computePlivoV3Signature(input) {
275
+ const { method, url, nonce, authToken, params } = input;
276
+ const parsed = new URL(url);
277
+ const base = `${parsed.protocol}//${parsed.host}${parsed.pathname}`;
278
+ const isPost = method.toUpperCase() === 'POST';
279
+ let signed = base + '?';
280
+ // If the URL carried a query string, append it as sorted k=v&k=v.
281
+ if (parsed.search && parsed.search.length > 1) {
282
+ signed += [...parsed.searchParams.entries()]
283
+ .sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0))
284
+ .map(([k, v]) => `${k}=${v}`)
285
+ .join('&');
286
+ if (isPost)
287
+ signed += '.'; // separator between query and the POST params
288
+ }
289
+ // POST callbacks append sorted key+value body params, then '.' + nonce.
290
+ // GET callbacks are signed over the query string alone (params ARE the query).
291
+ if (isPost) {
292
+ signed += sortedParamsString(params) + '.' + nonce;
293
+ }
294
+ return createHmac('sha256', authToken).update(signed).digest('base64');
295
+ }
296
+ /**
297
+ * Compute Plivo's V2-family signature (`X-Plivo-Signature-MA-V2` for messaging,
298
+ * `X-Plivo-Signature-V2` for voice). Unlike V3 it folds in no params: strip the
299
+ * query off the URL, append the V2 nonce, HMAC-SHA256 with the auth token, then
300
+ * base64. Matches `plivo-python`'s `validate_signature`.
301
+ */
302
+ export function computePlivoV2Signature(input) {
303
+ const { url, nonce, authToken } = input;
304
+ const parsed = new URL(url);
305
+ const base = `${parsed.protocol}//${parsed.host}${parsed.pathname}`;
306
+ return createHmac('sha256', authToken).update(base + nonce).digest('base64');
307
+ }
308
+ /** Sorted, separator-less `key`+`value` concatenation (recurses dicts, sorts lists). */
309
+ function sortedParamsString(params) {
310
+ let out = '';
311
+ for (const key of Object.keys(params).sort()) {
312
+ const value = params[key];
313
+ if (Array.isArray(value)) {
314
+ for (const item of [...value].map(String).sort())
315
+ out += key + item;
316
+ }
317
+ else if (value !== null && typeof value === 'object') {
318
+ out += key + sortedParamsString(value);
319
+ }
320
+ else {
321
+ out += key + String(value);
322
+ }
323
+ }
324
+ return out;
325
+ }
326
+ /** Case-insensitive single-header lookup; for array-valued headers, takes the first. */
327
+ function headerValue(headers, name) {
328
+ for (const [k, v] of Object.entries(headers)) {
329
+ if (k.toLowerCase() !== name)
330
+ continue;
331
+ if (typeof v === 'string')
332
+ return v;
333
+ // Node/Express surface duplicated headers as arrays — use the first value.
334
+ if (Array.isArray(v) && typeof v[0] === 'string')
335
+ return v[0];
336
+ }
337
+ return undefined;
338
+ }
339
+ /** Comma-join the present values of several signature headers into one candidate list. */
340
+ function joinHeaders(headers, names) {
341
+ return names
342
+ .map((n) => headerValue(headers, n))
343
+ .filter((v) => !!v)
344
+ .join(',');
345
+ }
346
+ /** Constant-time check that `expected` equals any of the comma-separated candidates. */
347
+ function signatureMatches(candidates, expected) {
348
+ const expectedBuf = Buffer.from(expected);
349
+ return candidates.split(',').some((candidate) => {
350
+ const candBuf = Buffer.from(candidate.trim());
351
+ return candBuf.length === expectedBuf.length && timingSafeEqual(candBuf, expectedBuf);
352
+ });
353
+ }
354
+ //# sourceMappingURL=PlivoSmsChannelAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlivoSmsChannelAdapter.js","sourceRoot":"","sources":["../../../../src/io/channels/adapters/PlivoSmsChannelAdapter.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export { SlackChannelAdapter } from './SlackChannelAdapter.js';
19
19
  export type { SlackAuthParams } from './SlackChannelAdapter.js';
20
20
  export { WhatsAppChannelAdapter } from './WhatsAppChannelAdapter.js';
21
21
  export type { WhatsAppAuthParams } from './WhatsAppChannelAdapter.js';
22
+ export { PlivoSmsChannelAdapter, computePlivoV3Signature } from './PlivoSmsChannelAdapter.js';
23
+ export type { PlivoSmsAuthParams } from './PlivoSmsChannelAdapter.js';
22
24
  export { WebChatChannelAdapter } from './WebChatChannelAdapter.js';
23
25
  export type { WebChatAuthParams } from './WebChatChannelAdapter.js';
24
26
  export { TwitterChannelAdapter } from './TwitterChannelAdapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/io/channels/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -14,6 +14,7 @@ export { TelegramChannelAdapter } from './TelegramChannelAdapter.js';
14
14
  export { DiscordChannelAdapter } from './DiscordChannelAdapter.js';
15
15
  export { SlackChannelAdapter } from './SlackChannelAdapter.js';
16
16
  export { WhatsAppChannelAdapter } from './WhatsAppChannelAdapter.js';
17
+ export { PlivoSmsChannelAdapter, computePlivoV3Signature } from './PlivoSmsChannelAdapter.js';
17
18
  export { WebChatChannelAdapter } from './WebChatChannelAdapter.js';
18
19
  // P0: Social media platforms
19
20
  export { TwitterChannelAdapter } from './TwitterChannelAdapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/io/channels/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,+BAA+B;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,mCAAmC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/io/channels/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,+BAA+B;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAG9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,mCAAmC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -33,4 +33,6 @@ export { TeamsChannelAdapter } from './adapters/TeamsChannelAdapter.js';
33
33
  export type { TeamsAuthParams } from './adapters/TeamsChannelAdapter.js';
34
34
  export { GoogleChatChannelAdapter } from './adapters/GoogleChatChannelAdapter.js';
35
35
  export type { GoogleChatAuthParams } from './adapters/GoogleChatChannelAdapter.js';
36
+ export { PlivoSmsChannelAdapter } from './adapters/PlivoSmsChannelAdapter.js';
37
+ export type { PlivoSmsAuthParams } from './adapters/PlivoSmsChannelAdapter.js';
36
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/channels/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,YAAY,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/channels/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,YAAY,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -22,4 +22,6 @@ export { IRCChannelAdapter } from './adapters/IRCChannelAdapter.js';
22
22
  export { SignalChannelAdapter } from './adapters/SignalChannelAdapter.js';
23
23
  export { TeamsChannelAdapter } from './adapters/TeamsChannelAdapter.js';
24
24
  export { GoogleChatChannelAdapter } from './adapters/GoogleChatChannelAdapter.js';
25
+ // SMS
26
+ export { PlivoSmsChannelAdapter } from './adapters/PlivoSmsChannelAdapter.js';
25
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/channels/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,oBAAoB;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/channels/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,oBAAoB;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,MAAM;AACN,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -13,7 +13,7 @@
13
13
  * concrete adapters can use any string, but well-known platforms get
14
14
  * first-class type support.
15
15
  */
16
- export type ChannelPlatform = 'telegram' | 'whatsapp' | 'discord' | 'slack' | 'webchat' | 'signal' | 'imessage' | 'google-chat' | 'teams' | 'matrix' | 'zalo' | 'email' | 'sms' | 'nostr' | 'twitch' | 'line' | 'feishu' | 'mattermost' | 'nextcloud-talk' | 'tlon' | 'irc' | 'zalouser' | 'twitter' | 'instagram' | 'reddit' | 'pinterest' | 'tiktok' | 'youtube' | 'linkedin' | 'facebook' | 'threads' | 'bluesky' | 'mastodon' | 'devto' | 'hashnode' | 'medium' | 'wordpress' | 'farcaster' | 'lemmy' | 'google-business' | (string & {});
16
+ export type ChannelPlatform = 'telegram' | 'whatsapp' | 'discord' | 'slack' | 'webchat' | 'signal' | 'imessage' | 'google-chat' | 'teams' | 'matrix' | 'zalo' | 'email' | 'sms' | 'plivo' | 'nostr' | 'twitch' | 'line' | 'feishu' | 'mattermost' | 'nextcloud-talk' | 'tlon' | 'irc' | 'zalouser' | 'twitter' | 'instagram' | 'reddit' | 'pinterest' | 'tiktok' | 'youtube' | 'linkedin' | 'facebook' | 'threads' | 'bluesky' | 'mastodon' | 'devto' | 'hashnode' | 'medium' | 'wordpress' | 'farcaster' | 'lemmy' | 'google-business' | (string & {});
17
17
  /**
18
18
  * Capabilities that a channel adapter can declare. Consumers can check
19
19
  * capabilities before attempting actions that not all platforms support.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/io/channels/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/io/channels/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.12.17",
3
+ "version": "0.12.18",
4
4
  "description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
5
5
  "homepage": "https://agentos.sh",
6
6
  "repository": {