@noodleseed/one 0.190.3 → 0.192.0
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.
- package/dist/commands/whatsapp-ops.d.ts.map +1 -1
- package/dist/commands/whatsapp-ops.js +28 -3
- package/dist/commands/whatsapp-ops.js.map +1 -1
- package/dist/commands/whatsapp-output.d.ts.map +1 -1
- package/dist/commands/whatsapp-output.js +13 -0
- package/dist/commands/whatsapp-output.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/channel-coordinator.d.ts +7 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/channel-coordinator.js +58 -3
- package/node_modules/@noodle-borg/assistant-gateway/dist/channel-store.d.ts +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/channel-types.d.ts +4 -1
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-channels.js +39 -23
- package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts +2 -6
- package/node_modules/@noodle-borg/protocol/dist/v2/handler.js +2 -156
- package/node_modules/@noodle-borg/protocol/dist/v2/platform-handler.d.ts +15 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/platform-handler.js +157 -0
- package/node_modules/@noodle-borg/service/dist/channels/runtime.js +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/whatsapp.js +21 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-channels.d.ts +36 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-channels.js +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/sms.d.ts +33 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/sms.js +18 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp-ops.d.ts","sourceRoot":"","sources":["../../src/commands/whatsapp-ops.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAanD,KAAK,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"whatsapp-ops.d.ts","sourceRoot":"","sources":["../../src/commands/whatsapp-ops.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAanD,KAAK,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAsDhD,UAAU,SAAS;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,CAAC;CACvD;AACD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,SAAS,CAuNX;AACD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,cAA0B,EAChC,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,MAAM,CAAC,CAqGjB"}
|
|
@@ -11,7 +11,7 @@ const CHANNELS = ['whatsapp', 'instagram', 'sms'];
|
|
|
11
11
|
const CHANNEL_FLAGS = {
|
|
12
12
|
whatsapp: ['provider', 'phoneNumberId', 'wabaId', 'webhookSecret'],
|
|
13
13
|
instagram: ['instagramAccountId', 'pageId'],
|
|
14
|
-
sms: ['accountSid', 'phoneNumberSid', 'phoneNumber'],
|
|
14
|
+
sms: ['accountSid', 'phoneNumberSid', 'phoneNumber', 'participantAccess'],
|
|
15
15
|
};
|
|
16
16
|
const LIMIT_FLAGS = {
|
|
17
17
|
'--per-minute': 'perMinute',
|
|
@@ -40,6 +40,7 @@ const VALUES = {
|
|
|
40
40
|
'--account-sid': 'accountSid',
|
|
41
41
|
'--phone-number-sid': 'phoneNumberSid',
|
|
42
42
|
'--phone-number': 'phoneNumber',
|
|
43
|
+
'--participant-access': 'participantAccess',
|
|
43
44
|
'--api-key-secret': 'apiKeySecret',
|
|
44
45
|
'--webhook-secret': 'webhookSecret',
|
|
45
46
|
'--capabilities': 'capabilities',
|
|
@@ -104,6 +105,7 @@ export function channelOperation(channel, rest, protectedPhone) {
|
|
|
104
105
|
accountSid: flags.accountSid,
|
|
105
106
|
phoneNumberSid: flags.phoneNumberSid,
|
|
106
107
|
phoneNumber: flags.phoneNumber,
|
|
108
|
+
participantAccess: flags.participantAccess,
|
|
107
109
|
apiKeySecret: flags.apiKeySecret,
|
|
108
110
|
supportEmail: flags.supportEmail,
|
|
109
111
|
capabilities: capabilities(),
|
|
@@ -178,6 +180,28 @@ export function channelOperation(channel, rest, protectedPhone) {
|
|
|
178
180
|
}
|
|
179
181
|
if (noun === 'usage' && !action)
|
|
180
182
|
return get('/usage', wire.WhatsAppUsageClientResponseSchema);
|
|
183
|
+
if (channel === 'sms' && noun === 'participants' && action === 'list')
|
|
184
|
+
return get('/participants', wire.SmsParticipantsResponseSchema);
|
|
185
|
+
if (channel === 'sms' && noun === 'participants' && action === 'allow') {
|
|
186
|
+
if (!flags.phoneStdin || !protectedPhone || flags.participantId)
|
|
187
|
+
throw new Error('participants allow requires --phone-stdin with a piped E.164 number');
|
|
188
|
+
return {
|
|
189
|
+
path: '/participants',
|
|
190
|
+
method: 'POST',
|
|
191
|
+
body: wire.SmsParticipantRequestSchema.parse({
|
|
192
|
+
expectedRevision: revision(),
|
|
193
|
+
phone: protectedPhone,
|
|
194
|
+
}),
|
|
195
|
+
response: wire.SmsParticipantResponseSchema,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
if (channel === 'sms' && noun === 'participants' && action === 'remove')
|
|
199
|
+
return {
|
|
200
|
+
path: `/participants/${participant()}`,
|
|
201
|
+
method: 'DELETE',
|
|
202
|
+
body: wire.SmsParticipantRemoveRequestSchema.parse({ expectedRevision: revision() }),
|
|
203
|
+
response: wire.SmsParticipantResponseSchema,
|
|
204
|
+
};
|
|
181
205
|
if (noun === 'webhook' && action === 'inspect')
|
|
182
206
|
return get('/webhook', wire.WhatsAppWebhookClientResponseSchema);
|
|
183
207
|
if (noun === 'webhook' && action === 'configure')
|
|
@@ -247,10 +271,11 @@ export async function runChannels(rest, env = process.env, home = homedir(), fet
|
|
|
247
271
|
try {
|
|
248
272
|
let protectedPhone;
|
|
249
273
|
if (rest.includes('--phone-stdin')) {
|
|
250
|
-
if (!['block', 'unblock'].includes(rest[1] ?? '') ||
|
|
274
|
+
if (!(['block', 'unblock'].includes(rest[1] ?? '') ||
|
|
275
|
+
(channel === 'sms' && rest[1] === 'participants' && rest[2] === 'allow')) ||
|
|
251
276
|
(rest[1] === 'block' && rest.includes('--participant-id')) ||
|
|
252
277
|
process.stdin.isTTY)
|
|
253
|
-
throw new Error('--phone-stdin requires piped E.164 input for block,
|
|
278
|
+
throw new Error('--phone-stdin requires piped E.164 input for block, unblock, or SMS participants allow');
|
|
254
279
|
let value = '';
|
|
255
280
|
for await (const chunk of process.stdin) {
|
|
256
281
|
value += String(chunk);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp-ops.js","sourceRoot":"","sources":["../../src/commands/whatsapp-ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"whatsapp-ops.js","sourceRoot":"","sources":["../../src/commands/whatsapp-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp-output.d.ts","sourceRoot":"","sources":["../../src/commands/whatsapp-output.ts"],"names":[],"mappings":"AAuBA,sGAAsG;AACtG,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,EACzC,MAAM,EAAE,OAAO,GACd,MAAM,
|
|
1
|
+
{"version":3,"file":"whatsapp-output.d.ts","sourceRoot":"","sources":["../../src/commands/whatsapp-output.ts"],"names":[],"mappings":"AAuBA,sGAAsG;AACtG,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,EACzC,MAAM,EAAE,OAAO,GACd,MAAM,CAyGR"}
|
|
@@ -45,6 +45,9 @@ export function formatChannelResult(channel, result) {
|
|
|
45
45
|
? `Account: ${value.instagramAccountId} via Page ${value.pageId}`
|
|
46
46
|
: `Provider: ${value.provider}${'wabaId' in value && value.wabaId ? ` (WABA ${value.wabaId})` : ''}`,
|
|
47
47
|
`Deployment: ${value.deploymentId}`,
|
|
48
|
+
...('participantAccess' in value
|
|
49
|
+
? [`Participant access: ${value.participantAccess ?? 'open'}`]
|
|
50
|
+
: []),
|
|
48
51
|
`Capabilities: ${value.capabilities.map((cap) => `${cap.kind}:${cap.name}`).join(', ') || 'none'}`,
|
|
49
52
|
`Limits: ${value.limits.perMinute}/minute, ${value.limits.perHour}/hour, ${value.limits.perDay}/day per sender; ${value.limits.channelPerDay}/day per channel.`,
|
|
50
53
|
`Daily inference ceiling: $${(value.limits.dailyMicroUsd / 1_000_000).toFixed(2)} USD.`,
|
|
@@ -75,6 +78,16 @@ export function formatChannelResult(channel, result) {
|
|
|
75
78
|
{ header: 'Code', get: (row) => row.code ?? '' },
|
|
76
79
|
], events.data.data, stdoutTableOptions()) + (events.data.next ? `\nNext: --after ${events.data.next}` : ''));
|
|
77
80
|
const blocks = wire.WhatsAppBlocksClientResponseSchema.safeParse(result);
|
|
81
|
+
if (channel === 'sms') {
|
|
82
|
+
const allowed = wire.SmsParticipantsResponseSchema.safeParse(result);
|
|
83
|
+
if (allowed.success)
|
|
84
|
+
return allowed.data.data.length
|
|
85
|
+
? `Allowed participant IDs:\n${allowed.data.data.join('\n')}`
|
|
86
|
+
: 'No SMS participants allowed.';
|
|
87
|
+
const changed = wire.SmsParticipantResponseSchema.safeParse(result);
|
|
88
|
+
if (changed.success)
|
|
89
|
+
return `Participant ${changed.data.data.participantId} updated.`;
|
|
90
|
+
}
|
|
78
91
|
if (blocks.success)
|
|
79
92
|
return ((blocks.data.data
|
|
80
93
|
.map((item) => `${item.participantId}: Borg ${item.local ? 'blocked' : 'unblocked'}${item.optedOut === undefined ? '' : `; recipient ${item.optedOut ? 'opted out (send START to resume)' : 'opted in'}`}; provider ${item.provider ? `${item.provider.desired}/${item.provider.state}` : 'not requested'}; ${item.until ? `until ${new Date(item.until).toISOString()}` : 'no local expiry'}`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp-output.js","sourceRoot":"","sources":["../../src/commands/whatsapp-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"whatsapp-output.js","sourceRoot":"","sources":["../../src/commands/whatsapp-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@ export declare class ChannelCoordinator {
|
|
|
42
42
|
accountSid: string;
|
|
43
43
|
phoneNumberSid: string;
|
|
44
44
|
phoneNumber: string;
|
|
45
|
+
participantAccess?: "open" | "allowlist" | undefined;
|
|
45
46
|
id: string;
|
|
46
47
|
tenant: TenantRef;
|
|
47
48
|
apiKeySecret: string;
|
|
@@ -111,6 +112,7 @@ export declare class ChannelCoordinator {
|
|
|
111
112
|
accountSid: string;
|
|
112
113
|
phoneNumberSid: string;
|
|
113
114
|
phoneNumber: string;
|
|
115
|
+
participantAccess?: "open" | "allowlist" | undefined;
|
|
114
116
|
id: string;
|
|
115
117
|
tenant: TenantRef;
|
|
116
118
|
apiKeySecret: string;
|
|
@@ -175,6 +177,7 @@ export declare class ChannelCoordinator {
|
|
|
175
177
|
accountSid: string;
|
|
176
178
|
phoneNumberSid: string;
|
|
177
179
|
phoneNumber: string;
|
|
180
|
+
participantAccess?: "open" | "allowlist" | undefined;
|
|
178
181
|
id: string;
|
|
179
182
|
tenant: TenantRef;
|
|
180
183
|
apiKeySecret: string;
|
|
@@ -211,6 +214,9 @@ export declare class ChannelCoordinator {
|
|
|
211
214
|
readyRevision?: number | undefined;
|
|
212
215
|
readyAt?: number | undefined;
|
|
213
216
|
}>;
|
|
217
|
+
/** The phone is resolved to this binding's opaque participant id by the authenticated route. */
|
|
218
|
+
allowSmsParticipant(id: string, participantId: string, allowed: boolean, actor: string, key: string, revision: number): Promise<void>;
|
|
219
|
+
allowedSmsParticipants(id: string): Promise<string[]>;
|
|
214
220
|
block(id: string, participantId: string, actor: string, key: string, until: number | null): Promise<void>;
|
|
215
221
|
unblock(id: string, participantId: string, actor: string, key: string): Promise<void>;
|
|
216
222
|
blocks(id: string, after?: string): Promise<ChannelBlock[]>;
|
|
@@ -247,6 +253,7 @@ export declare class ChannelCoordinator {
|
|
|
247
253
|
accountSid: string;
|
|
248
254
|
phoneNumberSid: string;
|
|
249
255
|
phoneNumber: string;
|
|
256
|
+
participantAccess?: "open" | "allowlist" | undefined;
|
|
250
257
|
id: string;
|
|
251
258
|
tenant: TenantRef;
|
|
252
259
|
apiKeySecret: string;
|
|
@@ -10,6 +10,11 @@ export async function requireChannel(tx, id) {
|
|
|
10
10
|
return readChannelBinding(binding);
|
|
11
11
|
}
|
|
12
12
|
export async function channelBlocked(tx, id, participant, now) {
|
|
13
|
+
const binding = await requireChannel(tx, id);
|
|
14
|
+
if (binding.channel === 'sms' &&
|
|
15
|
+
binding.participantAccess === 'allowlist' &&
|
|
16
|
+
!(await channelValue(tx, id, `allow:${participant}`)))
|
|
17
|
+
return true;
|
|
13
18
|
const block = await channelValue(tx, id, `block:${participant}`);
|
|
14
19
|
const optout = await channelValue(tx, id, `optout:${participant}`);
|
|
15
20
|
return optout?.blocked === true || (!!block && (block.until === null || block.until > now));
|
|
@@ -49,9 +54,17 @@ function configuredAsset(input) {
|
|
|
49
54
|
throw new ChannelError('provider_configuration_invalid');
|
|
50
55
|
return channelAssetKey('whatsapp', input.phoneNumberId);
|
|
51
56
|
}
|
|
52
|
-
function configuredBinding(input, id, state) {
|
|
57
|
+
function configuredBinding(input, id, prior, state) {
|
|
53
58
|
if (input.channel === 'sms')
|
|
54
|
-
return {
|
|
59
|
+
return {
|
|
60
|
+
...input,
|
|
61
|
+
id,
|
|
62
|
+
provider: 'twilio',
|
|
63
|
+
participantAccess: input.participantAccess ??
|
|
64
|
+
(prior?.channel === 'sms' ? prior.participantAccess : undefined) ??
|
|
65
|
+
'open',
|
|
66
|
+
...state,
|
|
67
|
+
};
|
|
55
68
|
if (input.channel === 'instagram')
|
|
56
69
|
return { ...input, id, provider: 'meta', ...state };
|
|
57
70
|
const { provider, channel: _whatsapp, ...configured } = input;
|
|
@@ -115,7 +128,7 @@ export class ChannelCoordinator {
|
|
|
115
128
|
if (owner && owner !== id)
|
|
116
129
|
throw new ChannelError('asset_in_use');
|
|
117
130
|
const now = this.now();
|
|
118
|
-
const binding = configuredBinding(input, id, {
|
|
131
|
+
const binding = configuredBinding(input, id, existing, {
|
|
119
132
|
revision: revision + 1,
|
|
120
133
|
generation: (existing?.generation ?? 0) + 1,
|
|
121
134
|
state: 'paused',
|
|
@@ -193,6 +206,48 @@ export class ChannelCoordinator {
|
|
|
193
206
|
return publicChannelBinding(updated);
|
|
194
207
|
}));
|
|
195
208
|
}
|
|
209
|
+
/** The phone is resolved to this binding's opaque participant id by the authenticated route. */
|
|
210
|
+
async allowSmsParticipant(id, participantId, allowed, actor, key, revision) {
|
|
211
|
+
if (!/^p_[a-f0-9]{64}$/.test(participantId))
|
|
212
|
+
throw new ChannelError('participant_invalid');
|
|
213
|
+
await this.store.transaction([id], (tx) => mutation(tx, id, key, { participantId, allowed, actor, revision }, this.now(), async () => {
|
|
214
|
+
const binding = await requireChannel(tx, id);
|
|
215
|
+
if (binding.channel !== 'sms')
|
|
216
|
+
throw new ChannelError('channel_invalid');
|
|
217
|
+
if (binding.state !== 'paused')
|
|
218
|
+
throw new ChannelError('pause_before_participant_change');
|
|
219
|
+
if (binding.revision !== revision)
|
|
220
|
+
throw new ChannelError('revision_conflict');
|
|
221
|
+
if (binding.participantAccess !== 'allowlist')
|
|
222
|
+
throw new ChannelError('allowlist_not_enabled');
|
|
223
|
+
if (allowed &&
|
|
224
|
+
!(await tx.get(id, `allow:${participantId}`)) &&
|
|
225
|
+
(await tx.list(id, { kind: 'allow', limit: 100 })).length >= 100)
|
|
226
|
+
throw new ChannelError('participant_limit');
|
|
227
|
+
if (allowed)
|
|
228
|
+
await tx.put(id, channelRow(`allow:${participantId}`, 'allow', true, this.now()));
|
|
229
|
+
else
|
|
230
|
+
await tx.remove(id, `allow:${participantId}`);
|
|
231
|
+
await tx.put(id, channelBindingRow({
|
|
232
|
+
...binding,
|
|
233
|
+
revision: revision + 1,
|
|
234
|
+
generation: binding.generation + 1,
|
|
235
|
+
readyAt: undefined,
|
|
236
|
+
readyRevision: undefined,
|
|
237
|
+
actor,
|
|
238
|
+
updatedAt: this.now(),
|
|
239
|
+
}, this.now()));
|
|
240
|
+
return null;
|
|
241
|
+
}));
|
|
242
|
+
}
|
|
243
|
+
async allowedSmsParticipants(id) {
|
|
244
|
+
return this.store.transaction([id], async (tx) => {
|
|
245
|
+
const binding = await requireChannel(tx, id);
|
|
246
|
+
if (binding.channel !== 'sms')
|
|
247
|
+
throw new ChannelError('channel_invalid');
|
|
248
|
+
return (await tx.list(id, { kind: 'allow', limit: 100 })).map((row) => row.id.slice(6));
|
|
249
|
+
});
|
|
250
|
+
}
|
|
196
251
|
async block(id, participantId, actor, key, until) {
|
|
197
252
|
if (!/^p_[a-f0-9]{64}$/.test(participantId) ||
|
|
198
253
|
(until !== null && (!Number.isSafeInteger(until) || until <= this.now())))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Private channel journal. Each binding is a transaction/lease authority, not a browser session. */
|
|
2
2
|
export interface ChannelRow {
|
|
3
3
|
readonly id: string;
|
|
4
|
-
readonly kind: 'binding' | 'asset' | 'participant' | 'event' | 'counter' | 'spend' | 'block' | 'optout' | 'mutation' | 'interaction';
|
|
4
|
+
readonly kind: 'binding' | 'asset' | 'participant' | 'event' | 'counter' | 'spend' | 'block' | 'allow' | 'optout' | 'mutation' | 'interaction';
|
|
5
5
|
readonly state?: string;
|
|
6
6
|
readonly updatedAt: number;
|
|
7
7
|
readonly expiresAt?: number;
|
|
@@ -74,6 +74,8 @@ export interface SmsBinding extends ChannelBindingBase {
|
|
|
74
74
|
readonly accountSid: string;
|
|
75
75
|
readonly phoneNumberSid: string;
|
|
76
76
|
readonly phoneNumber: string;
|
|
77
|
+
/** Absent on pre-alpha rows and treated as open for compatibility. */
|
|
78
|
+
readonly participantAccess?: 'open' | 'allowlist' | undefined;
|
|
77
79
|
}
|
|
78
80
|
export type ChannelBinding = WhatsAppBinding | InstagramBinding | SmsBinding;
|
|
79
81
|
type ChannelConfigureBase = Pick<ChannelBindingBase, 'tenant' | 'apiKeySecret' | 'deploymentId' | 'capabilities' | 'supportEmail'> & {
|
|
@@ -86,7 +88,7 @@ export type WhatsAppConfigure = ChannelConfigureBase & Pick<WhatsAppBinding, 'ph
|
|
|
86
88
|
readonly provider?: ChannelProvider | undefined;
|
|
87
89
|
};
|
|
88
90
|
export type InstagramConfigure = ChannelConfigureBase & Pick<InstagramBinding, 'channel' | 'instagramAccountId' | 'pageId'>;
|
|
89
|
-
export type SmsConfigure = ChannelConfigureBase & Pick<SmsBinding, 'channel' | 'accountSid' | 'phoneNumberSid' | 'phoneNumber'>;
|
|
91
|
+
export type SmsConfigure = ChannelConfigureBase & Pick<SmsBinding, 'channel' | 'accountSid' | 'phoneNumberSid' | 'phoneNumber' | 'participantAccess'>;
|
|
90
92
|
export type ChannelConfigure = WhatsAppConfigure | InstagramConfigure | SmsConfigure;
|
|
91
93
|
export interface ChannelAddress {
|
|
92
94
|
readonly kind: 'phone' | 'opaque';
|
|
@@ -195,6 +197,7 @@ export declare function publicChannelBinding(binding: ChannelBinding): {
|
|
|
195
197
|
accountSid: string;
|
|
196
198
|
phoneNumberSid: string;
|
|
197
199
|
phoneNumber: string;
|
|
200
|
+
participantAccess?: "open" | "allowlist" | undefined;
|
|
198
201
|
id: string;
|
|
199
202
|
tenant: TenantRef;
|
|
200
203
|
apiKeySecret: string;
|
|
@@ -86,32 +86,48 @@ export const CHANNELS_COMMAND = {
|
|
|
86
86
|
arguments: [],
|
|
87
87
|
flags: [],
|
|
88
88
|
subcommands: [
|
|
89
|
-
group('sms', 'Configure a Twilio SMS number and control two-way text messaging.',
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
flag('account-sid', 'Twilio Account SID (AC...).'),
|
|
93
|
-
flag('phone-number-sid', 'Twilio IncomingPhoneNumber SID (PN...).'),
|
|
94
|
-
flag('phone-number', 'Business sending number in E.164 format.'),
|
|
95
|
-
flag('api-key-secret', 'Managed secret name for the Twilio account Auth Token.'),
|
|
96
|
-
flag('capabilities', 'Comma-separated knowledge:name or tool:name selections.'),
|
|
97
|
-
flag('support-email', 'Contact shown when an answer cannot be completed.'),
|
|
98
|
-
...limits,
|
|
99
|
-
]), [
|
|
100
|
-
leaf('block', 'Block locally; Twilio opt-outs remain separately enforced.', [
|
|
101
|
-
participant,
|
|
102
|
-
blockScope,
|
|
103
|
-
flag('phone-stdin', 'Read a phone number securely from standard input.', 'boolean'),
|
|
104
|
-
flag('until', 'Expiry as an ISO timestamp.'),
|
|
105
|
-
flag('indefinite', 'Retain this block until removed.', 'boolean'),
|
|
89
|
+
group('sms', 'Configure a Twilio SMS number and control two-way text messaging.', [
|
|
90
|
+
...operations(leaf('configure', 'Save a paused SMS binding using a managed Twilio Auth Token reference.', [
|
|
91
|
+
revision,
|
|
106
92
|
...mutation,
|
|
93
|
+
flag('account-sid', 'Twilio Account SID (AC...).'),
|
|
94
|
+
flag('phone-number-sid', 'Twilio IncomingPhoneNumber SID (PN...).'),
|
|
95
|
+
flag('phone-number', 'Business sending number in E.164 format.'),
|
|
96
|
+
flag('participant-access', 'open (default) or allowlist for a private test.'),
|
|
97
|
+
flag('api-key-secret', 'Managed secret name for the Twilio account Auth Token.'),
|
|
98
|
+
flag('capabilities', 'Comma-separated knowledge:name or tool:name selections.'),
|
|
99
|
+
flag('support-email', 'Contact shown when an answer cannot be completed.'),
|
|
100
|
+
...limits,
|
|
101
|
+
]), [
|
|
102
|
+
leaf('block', 'Block locally; Twilio opt-outs remain separately enforced.', [
|
|
103
|
+
participant,
|
|
104
|
+
blockScope,
|
|
105
|
+
flag('phone-stdin', 'Read a phone number securely from standard input.', 'boolean'),
|
|
106
|
+
flag('until', 'Expiry as an ISO timestamp.'),
|
|
107
|
+
flag('indefinite', 'Retain this block until removed.', 'boolean'),
|
|
108
|
+
...mutation,
|
|
109
|
+
]),
|
|
110
|
+
leaf('unblock', 'Remove a local block; does not override a recipient opt-out.', [
|
|
111
|
+
participant,
|
|
112
|
+
blockScope,
|
|
113
|
+
flag('phone-stdin', 'Supply the number if retained context expired.', 'boolean'),
|
|
114
|
+
...mutation,
|
|
115
|
+
]),
|
|
107
116
|
]),
|
|
108
|
-
|
|
109
|
-
participant,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
117
|
+
group('participants', 'Manage binding-scoped SMS test participants while paused.', [
|
|
118
|
+
leaf('list', 'List opaque allowed participant identifiers.'),
|
|
119
|
+
leaf('allow', 'Allow one E.164 number read from standard input.', [
|
|
120
|
+
flag('phone-stdin', 'Read the test number securely from standard input.', 'boolean'),
|
|
121
|
+
revision,
|
|
122
|
+
...mutation,
|
|
123
|
+
]),
|
|
124
|
+
leaf('remove', 'Remove an allowed participant by opaque identifier.', [
|
|
125
|
+
participant,
|
|
126
|
+
revision,
|
|
127
|
+
...mutation,
|
|
128
|
+
]),
|
|
113
129
|
]),
|
|
114
|
-
])
|
|
130
|
+
]),
|
|
115
131
|
group('whatsapp', 'Configure a 360dialog or Meta Cloud API number, test readiness, and control public messaging.', operations(leaf('configure', 'Save a paused binding using managed secret references.', [
|
|
116
132
|
revision,
|
|
117
133
|
...mutation,
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { McpHttpHandler } from '@modelcontextprotocol/server';
|
|
2
2
|
import type { ProtocolRequestContext, ServedArtifact } from '../sdk-server.js';
|
|
3
|
-
|
|
3
|
+
export { createPlatformDualEraMcpHandler } from './platform-handler.js';
|
|
4
4
|
/**
|
|
5
5
|
* The single Noodle MCP entry: SDK-owned era classification/dispatch with a narrow Noodle response seam.
|
|
6
6
|
*/
|
|
7
7
|
export declare function createDualEraMcpHandler(target: ServedArtifact, context?: ProtocolRequestContext): McpHttpHandler;
|
|
8
|
-
/** Platform-wide SDK v2 handler used by artifact and first-party MCP surfaces alike. */
|
|
9
|
-
export declare function createPlatformDualEraMcpHandler(factory: McpServerFactory, platformOptions?: {
|
|
10
|
-
readonly protocolMode?: McpProtocolMode;
|
|
11
|
-
}): McpHttpHandler;
|
|
12
8
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
|
-
import { createMcpHandler, isLegacyRequest, } from '@modelcontextprotocol/server';
|
|
3
2
|
import { notify } from '../observation.js';
|
|
4
3
|
import { RequestStateManager, requestStateSecretBox } from '../request-state.js';
|
|
4
|
+
import { createPlatformDualEraMcpHandlerInternal } from './platform-handler.js';
|
|
5
5
|
import { protocolErrorObservation } from './response-observation.js';
|
|
6
6
|
import { buildDualEraMcpServer } from './server.js';
|
|
7
|
-
|
|
7
|
+
export { createPlatformDualEraMcpHandler } from './platform-handler.js';
|
|
8
8
|
/**
|
|
9
9
|
* The single Noodle MCP entry: SDK-owned era classification/dispatch with a narrow Noodle response seam.
|
|
10
10
|
*/
|
|
@@ -24,40 +24,6 @@ export function createDualEraMcpHandler(target, context = {}) {
|
|
|
24
24
|
finish: (request) => requestObservations.delete(request),
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
/** Platform-wide SDK v2 handler used by artifact and first-party MCP surfaces alike. */
|
|
28
|
-
export function createPlatformDualEraMcpHandler(factory, platformOptions = {}) {
|
|
29
|
-
return createPlatformDualEraMcpHandlerInternal(factory, platformOptions);
|
|
30
|
-
}
|
|
31
|
-
function createPlatformDualEraMcpHandlerInternal(factory, platformOptions = {}, hooks) {
|
|
32
|
-
const sdkHandler = createMcpHandler(factory, { legacy: 'stateless' });
|
|
33
|
-
return {
|
|
34
|
-
...sdkHandler,
|
|
35
|
-
fetch: async (request, options) => {
|
|
36
|
-
hooks?.begin(request);
|
|
37
|
-
try {
|
|
38
|
-
const legacy = await isLegacyRequest(request.clone(), options?.parsedBody);
|
|
39
|
-
const requestBody = await readRequestBody(request, options?.parsedBody);
|
|
40
|
-
if (platformOptions.protocolMode === 'legacy-only' && !legacy) {
|
|
41
|
-
return new Response(JSON.stringify({
|
|
42
|
-
jsonrpc: '2.0',
|
|
43
|
-
id: requestId(requestBody),
|
|
44
|
-
error: { code: -32601, message: 'Method not found' },
|
|
45
|
-
}), { status: 200, headers: { 'content-type': 'application/json' } });
|
|
46
|
-
}
|
|
47
|
-
const response = await sdkHandler.fetch(request, {
|
|
48
|
-
...options,
|
|
49
|
-
...(requestBody === undefined ? {} : { parsedBody: requestBody }),
|
|
50
|
-
});
|
|
51
|
-
const shaped = await shapeNoodleResponse(response, requestBody, legacy);
|
|
52
|
-
await observeResponseBestEffort(hooks, request, requestBody, shaped);
|
|
53
|
-
return shaped;
|
|
54
|
-
}
|
|
55
|
-
finally {
|
|
56
|
-
hooks?.finish(request);
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
27
|
const processRequestState = new RequestStateManager(requestStateSecretBox(randomBytes(32)));
|
|
62
28
|
function requestProtocolContext(context, requestContext) {
|
|
63
29
|
return {
|
|
@@ -79,26 +45,6 @@ function observedProtocolContext(context, requestContext, requestObservations) {
|
|
|
79
45
|
},
|
|
80
46
|
};
|
|
81
47
|
}
|
|
82
|
-
async function observeResponseBestEffort(hooks, request, requestBody, response) {
|
|
83
|
-
try {
|
|
84
|
-
await hooks?.observeResponse(request, requestBody, response);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// Protocol analytics must never change the response it observes.
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
async function readRequestBody(request, parsedBody) {
|
|
91
|
-
if (parsedBody !== undefined)
|
|
92
|
-
return parsedBody;
|
|
93
|
-
if (request.method.toUpperCase() !== 'POST')
|
|
94
|
-
return undefined;
|
|
95
|
-
try {
|
|
96
|
-
return await request.clone().json();
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
48
|
async function readResponseBody(response) {
|
|
103
49
|
const contentType = response.headers.get('content-type');
|
|
104
50
|
if (contentType?.split(';', 1)[0]?.trim().toLowerCase() !== 'application/json')
|
|
@@ -110,104 +56,4 @@ async function readResponseBody(response) {
|
|
|
110
56
|
return undefined;
|
|
111
57
|
}
|
|
112
58
|
}
|
|
113
|
-
async function shapeNoodleResponse(response, requestBody, legacy) {
|
|
114
|
-
const contentType = response.headers.get('content-type');
|
|
115
|
-
if (legacy && contentType?.split(';', 1)[0]?.trim().toLowerCase() === 'text/event-stream') {
|
|
116
|
-
const eventStream = await response.text();
|
|
117
|
-
const eventData = firstServerSentEventData(eventStream);
|
|
118
|
-
if (eventData === undefined)
|
|
119
|
-
return copyResponse(response, eventStream);
|
|
120
|
-
const headers = new Headers(response.headers);
|
|
121
|
-
headers.set('content-type', 'application/json');
|
|
122
|
-
return shapeNoodleResponse(new Response(eventData, {
|
|
123
|
-
status: response.status,
|
|
124
|
-
statusText: response.statusText,
|
|
125
|
-
headers,
|
|
126
|
-
}), requestBody, legacy);
|
|
127
|
-
}
|
|
128
|
-
if (contentType?.split(';', 1)[0]?.trim().toLowerCase() !== 'application/json')
|
|
129
|
-
return response;
|
|
130
|
-
const text = await response.text();
|
|
131
|
-
let body;
|
|
132
|
-
try {
|
|
133
|
-
body = JSON.parse(text);
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
return copyResponse(response, text);
|
|
137
|
-
}
|
|
138
|
-
if (!isRecord(body))
|
|
139
|
-
return copyResponse(response, text);
|
|
140
|
-
const method = requestMethod(requestBody);
|
|
141
|
-
const id = requestId(requestBody);
|
|
142
|
-
const error = isRecord(body.error) ? body.error : undefined;
|
|
143
|
-
const result = isRecord(body.result) ? body.result : undefined;
|
|
144
|
-
let status = response.status;
|
|
145
|
-
if (!legacy && method === 'initialize') {
|
|
146
|
-
status = 400;
|
|
147
|
-
body = {
|
|
148
|
-
jsonrpc: '2.0',
|
|
149
|
-
error: {
|
|
150
|
-
code: -32022,
|
|
151
|
-
message: 'Unsupported protocol version',
|
|
152
|
-
data: {
|
|
153
|
-
supported: [...SERVED_MCP_PROTOCOL_VERSIONS],
|
|
154
|
-
requested: '2026-07-28',
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
id,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
else if (error?.code === -32022 && isRecord(error.data)) {
|
|
161
|
-
error.data.supported = [...SERVED_MCP_PROTOCOL_VERSIONS];
|
|
162
|
-
}
|
|
163
|
-
else if (legacy && error !== undefined && typeof error.code === 'number') {
|
|
164
|
-
const code = method === 'resources/read' && error.code === -32602 ? -32002 : error.code;
|
|
165
|
-
const rawMessage = typeof error.message === 'string'
|
|
166
|
-
? error.message.replace(/^MCP error -?\d+: /, '')
|
|
167
|
-
: 'Protocol error';
|
|
168
|
-
body = {
|
|
169
|
-
jsonrpc: '2.0',
|
|
170
|
-
id,
|
|
171
|
-
error: {
|
|
172
|
-
code,
|
|
173
|
-
message: `MCP error ${code}: ${rawMessage}`,
|
|
174
|
-
...(error.data === undefined ? {} : { data: error.data }),
|
|
175
|
-
},
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
else if (!legacy && method === 'server/discover' && result !== undefined) {
|
|
179
|
-
result.supportedVersions = [...SERVED_MCP_PROTOCOL_VERSIONS];
|
|
180
|
-
}
|
|
181
|
-
return copyResponse(response, JSON.stringify(body), status);
|
|
182
|
-
}
|
|
183
|
-
function copyResponse(response, body, status = response.status) {
|
|
184
|
-
return new Response(body, {
|
|
185
|
-
status,
|
|
186
|
-
statusText: response.statusText,
|
|
187
|
-
headers: response.headers,
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
function firstServerSentEventData(body) {
|
|
191
|
-
for (const event of body.split(/\r?\n\r?\n/)) {
|
|
192
|
-
const data = event
|
|
193
|
-
.split(/\r?\n/)
|
|
194
|
-
.filter((line) => line.startsWith('data:'))
|
|
195
|
-
.map((line) => line.slice(5).trimStart())
|
|
196
|
-
.join('\n');
|
|
197
|
-
if (data.length > 0)
|
|
198
|
-
return data;
|
|
199
|
-
}
|
|
200
|
-
return undefined;
|
|
201
|
-
}
|
|
202
|
-
function requestMethod(body) {
|
|
203
|
-
return isRecord(body) && typeof body.method === 'string' ? body.method : undefined;
|
|
204
|
-
}
|
|
205
|
-
function requestId(body) {
|
|
206
|
-
if (!isRecord(body))
|
|
207
|
-
return null;
|
|
208
|
-
return typeof body.id === 'string' || typeof body.id === 'number' ? body.id : null;
|
|
209
|
-
}
|
|
210
|
-
function isRecord(value) {
|
|
211
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
212
|
-
}
|
|
213
59
|
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type McpHttpHandler, type McpServerFactory } from '@modelcontextprotocol/server';
|
|
2
|
+
import { type McpProtocolMode } from './versions.js';
|
|
3
|
+
/** Platform-wide SDK v2 handler used by artifact and first-party MCP surfaces alike. */
|
|
4
|
+
export declare function createPlatformDualEraMcpHandler(factory: McpServerFactory, platformOptions?: {
|
|
5
|
+
readonly protocolMode?: McpProtocolMode;
|
|
6
|
+
}): McpHttpHandler;
|
|
7
|
+
export interface PlatformHandlerHooks {
|
|
8
|
+
readonly begin: (request: Request) => void;
|
|
9
|
+
readonly observeResponse: (request: Request, requestBody: unknown, response: Response) => void | Promise<void>;
|
|
10
|
+
readonly finish: (request: Request) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createPlatformDualEraMcpHandlerInternal(factory: McpServerFactory, platformOptions?: {
|
|
13
|
+
readonly protocolMode?: McpProtocolMode;
|
|
14
|
+
}, hooks?: PlatformHandlerHooks): McpHttpHandler;
|
|
15
|
+
//# sourceMappingURL=platform-handler.d.ts.map
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { createMcpHandler, isLegacyRequest, } from '@modelcontextprotocol/server';
|
|
2
|
+
import { SERVED_MCP_PROTOCOL_VERSIONS } from './versions.js';
|
|
3
|
+
/** Platform-wide SDK v2 handler used by artifact and first-party MCP surfaces alike. */
|
|
4
|
+
export function createPlatformDualEraMcpHandler(factory, platformOptions = {}) {
|
|
5
|
+
return createPlatformDualEraMcpHandlerInternal(factory, platformOptions);
|
|
6
|
+
}
|
|
7
|
+
export function createPlatformDualEraMcpHandlerInternal(factory, platformOptions = {}, hooks) {
|
|
8
|
+
const sdkHandler = createMcpHandler(factory, { legacy: 'stateless' });
|
|
9
|
+
return {
|
|
10
|
+
...sdkHandler,
|
|
11
|
+
fetch: async (request, options) => {
|
|
12
|
+
hooks?.begin(request);
|
|
13
|
+
try {
|
|
14
|
+
const legacy = await isLegacyRequest(request.clone(), options?.parsedBody);
|
|
15
|
+
const requestBody = await readRequestBody(request, options?.parsedBody);
|
|
16
|
+
if (platformOptions.protocolMode === 'legacy-only' && !legacy) {
|
|
17
|
+
return new Response(JSON.stringify({
|
|
18
|
+
jsonrpc: '2.0',
|
|
19
|
+
id: requestId(requestBody),
|
|
20
|
+
error: { code: -32601, message: 'Method not found' },
|
|
21
|
+
}), { status: 200, headers: { 'content-type': 'application/json' } });
|
|
22
|
+
}
|
|
23
|
+
const response = await sdkHandler.fetch(request, {
|
|
24
|
+
...options,
|
|
25
|
+
...(requestBody === undefined ? {} : { parsedBody: requestBody }),
|
|
26
|
+
});
|
|
27
|
+
const shaped = await shapeNoodleResponse(response, requestBody, legacy);
|
|
28
|
+
await observeResponseBestEffort(hooks, request, requestBody, shaped);
|
|
29
|
+
return shaped;
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
hooks?.finish(request);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async function observeResponseBestEffort(hooks, request, requestBody, response) {
|
|
38
|
+
try {
|
|
39
|
+
await hooks?.observeResponse(request, requestBody, response);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Protocol analytics must never change the response it observes.
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function readRequestBody(request, parsedBody) {
|
|
46
|
+
if (parsedBody !== undefined)
|
|
47
|
+
return parsedBody;
|
|
48
|
+
if (request.method.toUpperCase() !== 'POST')
|
|
49
|
+
return undefined;
|
|
50
|
+
try {
|
|
51
|
+
return await request.clone().json();
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function shapeNoodleResponse(response, requestBody, legacy) {
|
|
58
|
+
const contentType = response.headers.get('content-type');
|
|
59
|
+
if (legacy && contentType?.split(';', 1)[0]?.trim().toLowerCase() === 'text/event-stream') {
|
|
60
|
+
const eventStream = await response.text();
|
|
61
|
+
const eventData = firstServerSentEventData(eventStream);
|
|
62
|
+
if (eventData === undefined)
|
|
63
|
+
return copyResponse(response, eventStream);
|
|
64
|
+
const headers = new Headers(response.headers);
|
|
65
|
+
headers.set('content-type', 'application/json');
|
|
66
|
+
return shapeNoodleResponse(new Response(eventData, {
|
|
67
|
+
status: response.status,
|
|
68
|
+
statusText: response.statusText,
|
|
69
|
+
headers,
|
|
70
|
+
}), requestBody, legacy);
|
|
71
|
+
}
|
|
72
|
+
if (contentType?.split(';', 1)[0]?.trim().toLowerCase() !== 'application/json')
|
|
73
|
+
return response;
|
|
74
|
+
const text = await response.text();
|
|
75
|
+
let body;
|
|
76
|
+
try {
|
|
77
|
+
body = JSON.parse(text);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return copyResponse(response, text);
|
|
81
|
+
}
|
|
82
|
+
if (!isRecord(body))
|
|
83
|
+
return copyResponse(response, text);
|
|
84
|
+
const method = requestMethod(requestBody);
|
|
85
|
+
const id = requestId(requestBody);
|
|
86
|
+
const error = isRecord(body.error) ? body.error : undefined;
|
|
87
|
+
const result = isRecord(body.result) ? body.result : undefined;
|
|
88
|
+
let status = response.status;
|
|
89
|
+
if (!legacy && method === 'initialize') {
|
|
90
|
+
status = 400;
|
|
91
|
+
body = {
|
|
92
|
+
jsonrpc: '2.0',
|
|
93
|
+
error: {
|
|
94
|
+
code: -32022,
|
|
95
|
+
message: 'Unsupported protocol version',
|
|
96
|
+
data: {
|
|
97
|
+
supported: [...SERVED_MCP_PROTOCOL_VERSIONS],
|
|
98
|
+
requested: '2026-07-28',
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
id,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
else if (error?.code === -32022 && isRecord(error.data)) {
|
|
105
|
+
error.data.supported = [...SERVED_MCP_PROTOCOL_VERSIONS];
|
|
106
|
+
}
|
|
107
|
+
else if (legacy && error !== undefined && typeof error.code === 'number') {
|
|
108
|
+
const code = method === 'resources/read' && error.code === -32602 ? -32002 : error.code;
|
|
109
|
+
const rawMessage = typeof error.message === 'string'
|
|
110
|
+
? error.message.replace(/^MCP error -?\d+: /, '')
|
|
111
|
+
: 'Protocol error';
|
|
112
|
+
body = {
|
|
113
|
+
jsonrpc: '2.0',
|
|
114
|
+
id,
|
|
115
|
+
error: {
|
|
116
|
+
code,
|
|
117
|
+
message: `MCP error ${code}: ${rawMessage}`,
|
|
118
|
+
...(error.data === undefined ? {} : { data: error.data }),
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
else if (!legacy && method === 'server/discover' && result !== undefined) {
|
|
123
|
+
result.supportedVersions = [...SERVED_MCP_PROTOCOL_VERSIONS];
|
|
124
|
+
}
|
|
125
|
+
return copyResponse(response, JSON.stringify(body), status);
|
|
126
|
+
}
|
|
127
|
+
function copyResponse(response, body, status = response.status) {
|
|
128
|
+
return new Response(body, {
|
|
129
|
+
status,
|
|
130
|
+
statusText: response.statusText,
|
|
131
|
+
headers: response.headers,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function firstServerSentEventData(body) {
|
|
135
|
+
for (const event of body.split(/\r?\n\r?\n/)) {
|
|
136
|
+
const data = event
|
|
137
|
+
.split(/\r?\n/)
|
|
138
|
+
.filter((line) => line.startsWith('data:'))
|
|
139
|
+
.map((line) => line.slice(5).trimStart())
|
|
140
|
+
.join('\n');
|
|
141
|
+
if (data.length > 0)
|
|
142
|
+
return data;
|
|
143
|
+
}
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
function requestMethod(body) {
|
|
147
|
+
return isRecord(body) && typeof body.method === 'string' ? body.method : undefined;
|
|
148
|
+
}
|
|
149
|
+
function requestId(body) {
|
|
150
|
+
if (!isRecord(body))
|
|
151
|
+
return null;
|
|
152
|
+
return typeof body.id === 'string' || typeof body.id === 'number' ? body.id : null;
|
|
153
|
+
}
|
|
154
|
+
function isRecord(value) {
|
|
155
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=platform-handler.js.map
|
|
@@ -123,6 +123,11 @@ export class WhatsAppRuntime {
|
|
|
123
123
|
if (!this.options.worker.ready())
|
|
124
124
|
throw new ChannelError('worker_unavailable');
|
|
125
125
|
});
|
|
126
|
+
if (binding.channel === 'sms' && binding.participantAccess === 'allowlist')
|
|
127
|
+
await check('private_participants', async () => {
|
|
128
|
+
if (!(await this.channels.allowedSmsParticipants(id)).length)
|
|
129
|
+
throw new ChannelError('no_allowed_participants');
|
|
130
|
+
});
|
|
126
131
|
let target;
|
|
127
132
|
await check('deployment', async () => {
|
|
128
133
|
target = await this.target(binding);
|
|
@@ -203,6 +208,9 @@ export class WhatsAppRuntime {
|
|
|
203
208
|
bindingId: binding.id,
|
|
204
209
|
revision: binding.revision,
|
|
205
210
|
capabilities: binding.capabilities.map((cap) => `${cap.kind}:${cap.name}`),
|
|
211
|
+
...(binding.provider === 'twilio'
|
|
212
|
+
? { participantAccess: binding.participantAccess ?? 'open' }
|
|
213
|
+
: {}),
|
|
206
214
|
};
|
|
207
215
|
if (binding.state !== 'enabled')
|
|
208
216
|
return { ...view, status: 'paused' };
|
|
@@ -183,6 +183,27 @@ async function operate(req, res, url, tenant, channel, path, runtime, grants) {
|
|
|
183
183
|
await audit('limits_changed');
|
|
184
184
|
return respond(res, bindingSchema, updated);
|
|
185
185
|
}
|
|
186
|
+
if (channel === 'sms' && path === 'participants' && read)
|
|
187
|
+
return respond(res, wire.SmsParticipantsResponseSchema, await channels.allowedSmsParticipants(id));
|
|
188
|
+
if (channel === 'sms' && path === 'participants' && req.method === 'POST') {
|
|
189
|
+
const parsed = await body(req, wire.SmsParticipantRequestSchema);
|
|
190
|
+
const participantId = channelParticipantId(await channels.internal(id), {
|
|
191
|
+
kind: 'phone',
|
|
192
|
+
value: parsed.phone,
|
|
193
|
+
});
|
|
194
|
+
await channels.allowSmsParticipant(id, participantId, true, identity.subject, idempotency, parsed.expectedRevision);
|
|
195
|
+
await audit('participant_allowed');
|
|
196
|
+
return respond(res, wire.SmsParticipantResponseSchema, { participantId });
|
|
197
|
+
}
|
|
198
|
+
if (channel === 'sms' && path.startsWith('participants/') && req.method === 'DELETE') {
|
|
199
|
+
const participantId = path.slice('participants/'.length);
|
|
200
|
+
if (!participant.test(participantId))
|
|
201
|
+
throw new ChannelError('request_invalid');
|
|
202
|
+
const parsed = await body(req, wire.SmsParticipantRemoveRequestSchema);
|
|
203
|
+
await channels.allowSmsParticipant(id, participantId, false, identity.subject, idempotency, parsed.expectedRevision);
|
|
204
|
+
await audit('participant_removed');
|
|
205
|
+
return respond(res, wire.SmsParticipantResponseSchema, { participantId });
|
|
206
|
+
}
|
|
186
207
|
if (path === 'usage' && read)
|
|
187
208
|
return respond(res, wire.WhatsAppUsageResponseSchema, await channels.usage(id));
|
|
188
209
|
if (path === 'webhook' && (read || req.method === 'POST')) {
|
|
@@ -44,6 +44,10 @@ export declare const ApplicationChannelsProjectionSchema: z.ZodObject<{
|
|
|
44
44
|
ready: "ready";
|
|
45
45
|
paused: "paused";
|
|
46
46
|
}>;
|
|
47
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
48
|
+
open: "open";
|
|
49
|
+
allowlist: "allowlist";
|
|
50
|
+
}>>;
|
|
47
51
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
48
52
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
49
53
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -55,6 +59,10 @@ export declare const ApplicationChannelsProjectionSchema: z.ZodObject<{
|
|
|
55
59
|
ready: "ready";
|
|
56
60
|
paused: "paused";
|
|
57
61
|
}>;
|
|
62
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
63
|
+
open: "open";
|
|
64
|
+
allowlist: "allowlist";
|
|
65
|
+
}>>;
|
|
58
66
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
59
67
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
60
68
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -66,6 +74,10 @@ export declare const ApplicationChannelsProjectionSchema: z.ZodObject<{
|
|
|
66
74
|
ready: "ready";
|
|
67
75
|
paused: "paused";
|
|
68
76
|
}>;
|
|
77
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
78
|
+
open: "open";
|
|
79
|
+
allowlist: "allowlist";
|
|
80
|
+
}>>;
|
|
69
81
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
70
82
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
71
83
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -120,6 +132,10 @@ export declare const ApplicationChannelsResponseSchema: z.ZodObject<{
|
|
|
120
132
|
ready: "ready";
|
|
121
133
|
paused: "paused";
|
|
122
134
|
}>;
|
|
135
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
136
|
+
open: "open";
|
|
137
|
+
allowlist: "allowlist";
|
|
138
|
+
}>>;
|
|
123
139
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
124
140
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
125
141
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -131,6 +147,10 @@ export declare const ApplicationChannelsResponseSchema: z.ZodObject<{
|
|
|
131
147
|
ready: "ready";
|
|
132
148
|
paused: "paused";
|
|
133
149
|
}>;
|
|
150
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
151
|
+
open: "open";
|
|
152
|
+
allowlist: "allowlist";
|
|
153
|
+
}>>;
|
|
134
154
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
135
155
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
136
156
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -142,6 +162,10 @@ export declare const ApplicationChannelsResponseSchema: z.ZodObject<{
|
|
|
142
162
|
ready: "ready";
|
|
143
163
|
paused: "paused";
|
|
144
164
|
}>;
|
|
165
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
166
|
+
open: "open";
|
|
167
|
+
allowlist: "allowlist";
|
|
168
|
+
}>>;
|
|
145
169
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
146
170
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
147
171
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -172,6 +196,10 @@ export declare const ApplicationChannelsClientResponseSchema: z.ZodObject<{
|
|
|
172
196
|
ready: "ready";
|
|
173
197
|
paused: "paused";
|
|
174
198
|
}>;
|
|
199
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
200
|
+
open: "open";
|
|
201
|
+
allowlist: "allowlist";
|
|
202
|
+
}>>;
|
|
175
203
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
176
204
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
177
205
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -183,6 +211,10 @@ export declare const ApplicationChannelsClientResponseSchema: z.ZodObject<{
|
|
|
183
211
|
ready: "ready";
|
|
184
212
|
paused: "paused";
|
|
185
213
|
}>;
|
|
214
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
215
|
+
open: "open";
|
|
216
|
+
allowlist: "allowlist";
|
|
217
|
+
}>>;
|
|
186
218
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
187
219
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
188
220
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -194,6 +226,10 @@ export declare const ApplicationChannelsClientResponseSchema: z.ZodObject<{
|
|
|
194
226
|
ready: "ready";
|
|
195
227
|
paused: "paused";
|
|
196
228
|
}>;
|
|
229
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
230
|
+
open: "open";
|
|
231
|
+
allowlist: "allowlist";
|
|
232
|
+
}>>;
|
|
197
233
|
bindingId: z.ZodOptional<z.ZodString>;
|
|
198
234
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
199
235
|
capabilities: z.ZodArray<z.ZodString>;
|
|
@@ -42,6 +42,7 @@ const assistant = z
|
|
|
42
42
|
/** One messaging channel (WhatsApp, Instagram, SMS) of the application, without provider identifiers. */
|
|
43
43
|
const messaging = z.strictObject({
|
|
44
44
|
status,
|
|
45
|
+
participantAccess: z.enum(['open', 'allowlist']).optional(),
|
|
45
46
|
bindingId: z.string().max(256).optional(),
|
|
46
47
|
revision: z.number().int().positive().optional(),
|
|
47
48
|
capabilities: z.array(z.string().max(256)).max(64),
|
|
@@ -9,6 +9,10 @@ export declare const SmsConfigureRequestSchema: z.ZodObject<{
|
|
|
9
9
|
name: z.ZodString;
|
|
10
10
|
}, z.core.$strict>>;
|
|
11
11
|
supportEmail: z.ZodEmail;
|
|
12
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
13
|
+
open: "open";
|
|
14
|
+
allowlist: "allowlist";
|
|
15
|
+
}>>;
|
|
12
16
|
limits: z.ZodOptional<z.ZodObject<{
|
|
13
17
|
perMinute: z.ZodOptional<z.ZodNumber>;
|
|
14
18
|
perHour: z.ZodOptional<z.ZodNumber>;
|
|
@@ -72,6 +76,27 @@ export declare const SmsBindingSchema: z.ZodObject<{
|
|
|
72
76
|
phoneNumber: z.ZodString;
|
|
73
77
|
channel: z.ZodLiteral<"sms">;
|
|
74
78
|
provider: z.ZodLiteral<"twilio">;
|
|
79
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
80
|
+
open: "open";
|
|
81
|
+
allowlist: "allowlist";
|
|
82
|
+
}>>;
|
|
83
|
+
}, z.core.$strict>;
|
|
84
|
+
export declare const SmsParticipantRequestSchema: z.ZodObject<{
|
|
85
|
+
expectedRevision: z.ZodNumber;
|
|
86
|
+
phone: z.ZodString;
|
|
87
|
+
}, z.core.$strict>;
|
|
88
|
+
export declare const SmsParticipantRemoveRequestSchema: z.ZodObject<{
|
|
89
|
+
expectedRevision: z.ZodNumber;
|
|
90
|
+
}, z.core.$strict>;
|
|
91
|
+
export declare const SmsParticipantsResponseSchema: z.ZodObject<{
|
|
92
|
+
ok: z.ZodLiteral<true>;
|
|
93
|
+
data: z.ZodArray<z.ZodString>;
|
|
94
|
+
}, z.core.$strict>;
|
|
95
|
+
export declare const SmsParticipantResponseSchema: z.ZodObject<{
|
|
96
|
+
ok: z.ZodLiteral<true>;
|
|
97
|
+
data: z.ZodObject<{
|
|
98
|
+
participantId: z.ZodString;
|
|
99
|
+
}, z.core.$strict>;
|
|
75
100
|
}, z.core.$strict>;
|
|
76
101
|
export declare const SmsBindingResponseSchema: z.ZodObject<{
|
|
77
102
|
ok: z.ZodLiteral<true>;
|
|
@@ -121,6 +146,10 @@ export declare const SmsBindingResponseSchema: z.ZodObject<{
|
|
|
121
146
|
phoneNumber: z.ZodString;
|
|
122
147
|
channel: z.ZodLiteral<"sms">;
|
|
123
148
|
provider: z.ZodLiteral<"twilio">;
|
|
149
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
150
|
+
open: "open";
|
|
151
|
+
allowlist: "allowlist";
|
|
152
|
+
}>>;
|
|
124
153
|
}, z.core.$strict>>;
|
|
125
154
|
}, z.core.$strict>;
|
|
126
155
|
export declare const SmsBindingClientResponseSchema: z.ZodObject<{
|
|
@@ -147,6 +176,10 @@ export declare const SmsBindingClientResponseSchema: z.ZodObject<{
|
|
|
147
176
|
phoneNumber: z.ZodString;
|
|
148
177
|
channel: z.ZodLiteral<"sms">;
|
|
149
178
|
provider: z.ZodLiteral<"twilio">;
|
|
179
|
+
participantAccess: z.ZodOptional<z.ZodEnum<{
|
|
180
|
+
open: "open";
|
|
181
|
+
allowlist: "allowlist";
|
|
182
|
+
}>>;
|
|
150
183
|
tenant: z.ZodObject<{
|
|
151
184
|
org: z.ZodString;
|
|
152
185
|
app: z.ZodString;
|
|
@@ -12,6 +12,7 @@ export const SmsConfigureRequestSchema = z.strictObject({
|
|
|
12
12
|
apiKeySecret: shape.apiKeySecret,
|
|
13
13
|
capabilities: shape.capabilities.max(64),
|
|
14
14
|
supportEmail: z.email().max(254),
|
|
15
|
+
participantAccess: z.enum(['open', 'allowlist']).optional(),
|
|
15
16
|
limits: WhatsAppLimitsSchema.partial().optional(),
|
|
16
17
|
});
|
|
17
18
|
export const SmsBindingSchema = WhatsAppBindingSchema.omit({
|
|
@@ -22,8 +23,25 @@ export const SmsBindingSchema = WhatsAppBindingSchema.omit({
|
|
|
22
23
|
}).extend({
|
|
23
24
|
channel: z.literal('sms'),
|
|
24
25
|
provider: z.literal('twilio'),
|
|
26
|
+
participantAccess: z.enum(['open', 'allowlist']).optional(),
|
|
25
27
|
...asset,
|
|
26
28
|
});
|
|
29
|
+
const participantId = z.string().regex(/^p_[a-f0-9]{64}$/);
|
|
30
|
+
export const SmsParticipantRequestSchema = z.strictObject({
|
|
31
|
+
expectedRevision: shape.revision,
|
|
32
|
+
phone: z.string().regex(/^\+[1-9]\d{5,14}$/),
|
|
33
|
+
});
|
|
34
|
+
export const SmsParticipantRemoveRequestSchema = z.strictObject({
|
|
35
|
+
expectedRevision: shape.revision,
|
|
36
|
+
});
|
|
37
|
+
export const SmsParticipantsResponseSchema = z.strictObject({
|
|
38
|
+
ok: z.literal(true),
|
|
39
|
+
data: z.array(participantId).max(100),
|
|
40
|
+
});
|
|
41
|
+
export const SmsParticipantResponseSchema = z.strictObject({
|
|
42
|
+
ok: z.literal(true),
|
|
43
|
+
data: z.strictObject({ participantId }),
|
|
44
|
+
});
|
|
27
45
|
export const SmsBindingResponseSchema = z.strictObject({
|
|
28
46
|
ok: z.literal(true),
|
|
29
47
|
data: SmsBindingSchema.nullable(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noodleseed/one",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.192.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
|
|
6
6
|
"license": "Apache-2.0",
|