@talqing/mcp 0.5.0 → 0.7.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/SKILL.md +32 -12
- package/package.json +1 -1
- package/tools.json +31 -3
package/SKILL.md
CHANGED
|
@@ -1144,8 +1144,16 @@ overrides of anything else — one batch is one agent, one number, one clock.
|
|
|
1144
1144
|
weekdays it may dial in, so a list uploaded at 23:00 can start at 11:00
|
|
1145
1145
|
tomorrow, stop at 18:00 and resume at 10:00 on the next weekday untouched. A
|
|
1146
1146
|
window may cross midnight; the days then name the evening it starts on.
|
|
1147
|
-
`next_dial_at` on the batch says when it will dial next
|
|
1148
|
-
"waiting for Monday"
|
|
1147
|
+
`next_dial_at` on the batch says when it will dial next and `next_dial_reason`
|
|
1148
|
+
why (`start`, `window`, `daily_cap`), which is how you tell "waiting for Monday"
|
|
1149
|
+
apart from "stuck".
|
|
1150
|
+
|
|
1151
|
+
**Pace.** `dial_gap_seconds` is the minimum wait between starting two calls (0,
|
|
1152
|
+
the default, dials as slots free). `dial_daily_cap` limits calls placed per
|
|
1153
|
+
local day, retries included: `{kind: "fixed", limit}` or a ramp, `{kind: "ramp",
|
|
1154
|
+
start, end, step, interval_days}`, which rises by `step` every `interval_days`
|
|
1155
|
+
days the batch actually dialled. For a new caller ID suggest a ramp rather than
|
|
1156
|
+
a flat limit. `dialed_today` is measured against `dial_daily_cap_today`.
|
|
1149
1157
|
|
|
1150
1158
|
**Say these two things before creating one**, because a user who discovers
|
|
1151
1159
|
either from an invoice will not forgive us:
|
|
@@ -1159,8 +1167,8 @@ either from an invoice will not forgive us:
|
|
|
1159
1167
|
**Steering it.** `pause_call_batch` stops new calls and lets live ones finish;
|
|
1160
1168
|
`resume_call_batch` carries on. `cancel_call_batch` is final and there is no
|
|
1161
1169
|
delete — a batch is the record of money spent. `add_call_batch_recipients`
|
|
1162
|
-
appends to a
|
|
1163
|
-
re-uploading an exported list never calls anyone twice.
|
|
1170
|
+
appends to a batch — a completed one starts dialling again — and skips numbers
|
|
1171
|
+
it already holds, so re-uploading an exported list never calls anyone twice.
|
|
1164
1172
|
|
|
1165
1173
|
**Watching it.** `get_call_batch` has live counts and `failure_reason`; a batch
|
|
1166
1174
|
that stops itself did so after ten consecutive setup failures (an unpublished
|
|
@@ -1180,8 +1188,8 @@ afterwards will not forgive us:
|
|
|
1180
1188
|
- **Resend's terms prohibit unsolicited email, cold outreach, purchased lists
|
|
1181
1189
|
and scraped contact data**, and require that every recipient has explicitly
|
|
1182
1190
|
opted in. This runs on *their* Resend account under *their* agreement.
|
|
1183
|
-
- **
|
|
1184
|
-
|
|
1191
|
+
- **Creating a batch only drafts.** Nothing is sent until someone creates a
|
|
1192
|
+
send — and a send of every row mails drafts nobody reviewed.
|
|
1185
1193
|
- **Every row runs the task's CURRENT PUBLISHED version**, re-read as drafting
|
|
1186
1194
|
goes, so publishing mid-batch changes every row drafted after that moment. Which version
|
|
1187
1195
|
wrote which rows is on the batch as `drafted_versions`, and
|
|
@@ -1242,7 +1250,10 @@ row. `create_email_send` takes a `scope` and returns a **send** you can steer:
|
|
|
1242
1250
|
- `start_at` schedules it, `window` (on its own `timezone`) holds it to business
|
|
1243
1251
|
hours, `send_gap_seconds` is the minimum wait between two emails of the
|
|
1244
1252
|
**batch** (1 second to 1 hour) and `send_daily_cap` bounds how many the batch
|
|
1245
|
-
may send per local day
|
|
1253
|
+
may send per local day: `{kind: "fixed", limit}`, or a ramp, `{kind: "ramp",
|
|
1254
|
+
start, end, step, interval_days}`, which rises by `step` every `interval_days`
|
|
1255
|
+
days the batch actually sent (a weekend or a pause earns nothing). Anything
|
|
1256
|
+
omitted comes from the batch.
|
|
1246
1257
|
- A draft a live send covers reads `queued`, and is still a draft: it can be
|
|
1247
1258
|
edited, skipped or redrafted until the send takes it.
|
|
1248
1259
|
- `pause_email_send` stops on the next email; `resume_email_send` carries on.
|
|
@@ -1254,9 +1265,10 @@ row. `create_email_send` takes a `scope` and returns a **send** you can steer:
|
|
|
1254
1265
|
within five minutes, so raising a spent cap or removing a window needs no
|
|
1255
1266
|
cancel.
|
|
1256
1267
|
|
|
1257
|
-
**The safeguard here is a RATE, not a row count.** `send_daily_cap` (
|
|
1258
|
-
default, per batch, `null` for uncapped) is what stands between a
|
|
1259
|
-
and a sending domain nobody trusts again.
|
|
1268
|
+
**The safeguard here is a RATE, not a row count.** `send_daily_cap` (a fixed
|
|
1269
|
+
200 by default, per batch, `null` for uncapped) is what stands between a
|
|
1270
|
+
5 000-row list and a sending domain nobody trusts again. For a new sending
|
|
1271
|
+
domain, suggest a ramp (say 10 rising to 50) rather than a flat cap. Before creating a send, say how many
|
|
1260
1272
|
emails it is and roughly how long it will take at the pace it has — and if the
|
|
1261
1273
|
user asks to raise or remove the cap, say what it is for rather than just doing
|
|
1262
1274
|
it.
|
|
@@ -1288,6 +1300,10 @@ count before running `all`. A person's edited cells survive unless
|
|
|
1288
1300
|
the new draft. Read `draft_failures` before redrafting `failed`: a task that
|
|
1289
1301
|
declined a row on purpose will most likely decline it again.
|
|
1290
1302
|
|
|
1303
|
+
`add_email_batch_recipients` appends rows, skipping duplicates, and a drafted
|
|
1304
|
+
batch drafts again. If the latest send is a finished send of every row it
|
|
1305
|
+
reopens and mails them unreviewed (`standing_send_id`), so say so first.
|
|
1306
|
+
|
|
1291
1307
|
**One address is mailed at most once per batch**, enforced when the row is
|
|
1292
1308
|
claimed for sending: the second row settles `skipped` with
|
|
1293
1309
|
`duplicate_recipient`. There is no cross-batch dedup and no suppression list of
|
|
@@ -1297,7 +1313,7 @@ ours — Resend keeps one and auto-suppresses hard bounces and complaints.
|
|
|
1297
1313
|
|
|
1298
1314
|
`get_email_batch` carries live counts, `skips` (why rows were skipped),
|
|
1299
1315
|
`draft_failures` (why drafts failed, most common first), `failure_reason`,
|
|
1300
|
-
`sent_today` (against `
|
|
1316
|
+
`sent_today` (against `send_daily_cap_today`), `drafted_versions`,
|
|
1301
1317
|
`stale_redraftable` / `stale_sent` and the drafting cost so far. Measure
|
|
1302
1318
|
progress against what can be reached: `unfillable` rows are never drafted, and
|
|
1303
1319
|
skipped, failed or cancelled rows are never sent.
|
|
@@ -1321,7 +1337,9 @@ gives a sender's approved templates — header, body, footer, buttons and variab
|
|
|
1321
1337
|
names; one with `unsupported_reason` cannot be used.
|
|
1322
1338
|
`create_whatsapp_batch` maps `to_column` and every variable onto CSV columns. A
|
|
1323
1339
|
row with a bad or repeated phone, or a blank mapped cell, is kept and skipped
|
|
1324
|
-
with the reason, so read the returned `counts`.
|
|
1340
|
+
with the reason, so read the returned `counts`. `send_daily_cap` takes the same
|
|
1341
|
+
object an email batch's does (a fixed 250 by default); for a new sender suggest
|
|
1342
|
+
a ramp.
|
|
1325
1343
|
|
|
1326
1344
|
**Say these before creating one:**
|
|
1327
1345
|
|
|
@@ -1331,6 +1349,8 @@ with the reason, so read the returned `counts`.
|
|
|
1331
1349
|
templates any one person receives.
|
|
1332
1350
|
- **You cannot send it.** `send_whatsapp_batch` and `resume_whatsapp_batch` are
|
|
1333
1351
|
a person's to press, on the batch page. Create the batch, point them at it.
|
|
1352
|
+
- **`add_whatsapp_batch_recipients` on a sending or completed batch messages
|
|
1353
|
+
the new rows at once**, with nobody pressing anything. Get an explicit yes.
|
|
1334
1354
|
|
|
1335
1355
|
Replies are answered by the agent on the sender's
|
|
1336
1356
|
`whatsapp.message.inbound` trigger, which sees the row's columns as
|
package/package.json
CHANGED
package/tools.json
CHANGED
|
@@ -1081,7 +1081,7 @@
|
|
|
1081
1081
|
"role": "read"
|
|
1082
1082
|
},
|
|
1083
1083
|
{
|
|
1084
|
-
"description": "Change a batch's policy while it runs. The next pass
|
|
1084
|
+
"description": "Change a batch's policy while it runs or after it completes. The next pass reads it.",
|
|
1085
1085
|
"method": "PATCH",
|
|
1086
1086
|
"name": "patch_call_batch",
|
|
1087
1087
|
"parameters": {
|
|
@@ -1109,7 +1109,7 @@
|
|
|
1109
1109
|
"role": "read"
|
|
1110
1110
|
},
|
|
1111
1111
|
{
|
|
1112
|
-
"description": "Append people to a batch, including one that
|
|
1112
|
+
"description": "Append people to a batch, including one that has finished \u2014 it resumes.",
|
|
1113
1113
|
"method": "POST",
|
|
1114
1114
|
"name": "add_call_batch_recipients",
|
|
1115
1115
|
"parameters": {
|
|
@@ -1123,7 +1123,7 @@
|
|
|
1123
1123
|
"role": "write"
|
|
1124
1124
|
},
|
|
1125
1125
|
{
|
|
1126
|
-
"description": "Stop placing new calls
|
|
1126
|
+
"description": "Stop placing new calls; calls in progress run to their end.",
|
|
1127
1127
|
"method": "POST",
|
|
1128
1128
|
"name": "pause_call_batch",
|
|
1129
1129
|
"parameters": {
|
|
@@ -1290,6 +1290,20 @@
|
|
|
1290
1290
|
"read_only": true,
|
|
1291
1291
|
"role": "read"
|
|
1292
1292
|
},
|
|
1293
|
+
{
|
|
1294
|
+
"description": "Append rows to a batch; a drafted batch resumes. Duplicates are skipped and reported.",
|
|
1295
|
+
"method": "POST",
|
|
1296
|
+
"name": "add_email_batch_recipients",
|
|
1297
|
+
"parameters": {
|
|
1298
|
+
"additionalProperties": true,
|
|
1299
|
+
"description": "Arguments not inlined: call describe_function('add_email_batch_recipients').",
|
|
1300
|
+
"properties": {},
|
|
1301
|
+
"type": "object"
|
|
1302
|
+
},
|
|
1303
|
+
"path": "/v1/email/batches/{batch_id}/recipients",
|
|
1304
|
+
"read_only": false,
|
|
1305
|
+
"role": "write"
|
|
1306
|
+
},
|
|
1293
1307
|
{
|
|
1294
1308
|
"description": "Edit cells on one row before it is sent.",
|
|
1295
1309
|
"method": "PATCH",
|
|
@@ -1556,6 +1570,20 @@
|
|
|
1556
1570
|
"read_only": true,
|
|
1557
1571
|
"role": "read"
|
|
1558
1572
|
},
|
|
1573
|
+
{
|
|
1574
|
+
"description": "Append rows; repeated numbers are skipped. **Messages them if sending or completed.**",
|
|
1575
|
+
"method": "POST",
|
|
1576
|
+
"name": "add_whatsapp_batch_recipients",
|
|
1577
|
+
"parameters": {
|
|
1578
|
+
"additionalProperties": true,
|
|
1579
|
+
"description": "Arguments not inlined: call describe_function('add_whatsapp_batch_recipients').",
|
|
1580
|
+
"properties": {},
|
|
1581
|
+
"type": "object"
|
|
1582
|
+
},
|
|
1583
|
+
"path": "/v1/whatsapp/batches/{batch_id}/recipients",
|
|
1584
|
+
"read_only": false,
|
|
1585
|
+
"role": "write"
|
|
1586
|
+
},
|
|
1559
1587
|
{
|
|
1560
1588
|
"description": "Edit cells on a row not yet sent, its phone included. An empty value clears the edit.",
|
|
1561
1589
|
"method": "PATCH",
|