@talqing/mcp 0.3.2 → 0.3.3
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 +45 -22
- package/package.json +2 -2
- package/tools.json +19 -5
package/SKILL.md
CHANGED
|
@@ -209,6 +209,10 @@ An agent is a single object, `config`, plus what you attach to it:
|
|
|
209
209
|
Leaving it out resolves `name` against the team defined on the call that runs
|
|
210
210
|
the agent, which publishes with a warning rather than an error.
|
|
211
211
|
|
|
212
|
+
One model cannot be handed off from at all: `openai/gpt-live-1` refuses new
|
|
213
|
+
instructions once a call is connected, so an agent with both that realtime
|
|
214
|
+
model and a handoff destination is refused on save. Every other model is fine.
|
|
215
|
+
|
|
212
216
|
**`context` is what the next agent starts from** — the same three words an
|
|
213
217
|
agent's own `conversation.context` uses for what a new *call* starts from.
|
|
214
218
|
|
|
@@ -322,10 +326,11 @@ voice. Read it before choosing; do not assume a model exists.
|
|
|
322
326
|
People can attach a photo to a web chat, a web voice call or a web video call,
|
|
323
327
|
and the agent sees it. **There is no setting for this** — whether an agent can
|
|
324
328
|
read images is decided by the model it runs, and `vision` on that model's catalog
|
|
325
|
-
entry is where it says so.
|
|
326
|
-
`
|
|
327
|
-
sent a photo at all. If a
|
|
328
|
-
|
|
329
|
+
entry is where it says so. Most entries read images; `gemini-3.8-flash`,
|
|
330
|
+
`gemini-3.7-flash`, `openai/gpt-live-1` and the two `grok-voice-*` realtime
|
|
331
|
+
entries do not, and an agent on one of them cannot be sent a photo at all. If a
|
|
332
|
+
user wants image input, check `vision` before picking the model rather than
|
|
333
|
+
changing anything on the agent.
|
|
329
334
|
|
|
330
335
|
A phone call carries no files, so this is web only.
|
|
331
336
|
|
|
@@ -505,7 +510,7 @@ do not promise the user one — change the models or the language instead:
|
|
|
505
510
|
Saaras endpoint on their own schedule and ignore that window entirely, so on
|
|
506
511
|
those two the setting is a floor.
|
|
507
512
|
- **Batch speech-to-text** (`streaming: false` — xAI `xai-stt-batch`, ElevenLabs
|
|
508
|
-
`scribe_v2`, OpenAI `gpt-
|
|
513
|
+
`scribe_v2`, OpenAI `gpt-transcribe`) → it has no endpointer at all, so
|
|
509
514
|
LiveKit's audio end-of-turn model takes over when `config.language` is one of
|
|
510
515
|
the fourteen it was trained on: Arabic, Chinese, Dutch, English, French,
|
|
511
516
|
German, Hindi, Indonesian, Italian, Japanese, Korean, Portuguese, Spanish,
|
|
@@ -1167,6 +1172,12 @@ collides with an output field name (one of the two would be unreachable); a
|
|
|
1167
1172
|
those rows at draft time with `missing_vars` — one row, not the batch, and with
|
|
1168
1173
|
no tokens spent. Flag blank cells in a required column before creating.
|
|
1169
1174
|
|
|
1175
|
+
**A row that can never be sent is never drafted.** If a mapped column the task
|
|
1176
|
+
does NOT write is blank (or `to` is not an address), the row is `skipped` with
|
|
1177
|
+
`skip_reason: "unfillable"` the moment the batch is created, and costs nothing.
|
|
1178
|
+
`skips.unfillable` counts them. Filling the cell in with
|
|
1179
|
+
`patch_email_batch_recipient` brings the row back to drafting.
|
|
1180
|
+
|
|
1170
1181
|
### Two jobs, and a human between them
|
|
1171
1182
|
|
|
1172
1183
|
**Drafting** starts on `start_at` (or immediately), runs `draft_concurrency` rows
|
|
@@ -1177,22 +1188,29 @@ the last row lands. It has no business-hours window: nobody receives a draft. It
|
|
|
1177
1188
|
to review"*, never "finished": it says nothing about what has been sent.
|
|
1178
1189
|
|
|
1179
1190
|
**Sending** is separate, only ever happens when a person asks, and is its own
|
|
1180
|
-
row. `create_email_send` takes `
|
|
1181
|
-
|
|
1182
|
-
|
|
1191
|
+
row. `create_email_send` takes a `scope` and returns a **send** you can steer:
|
|
1192
|
+
|
|
1193
|
+
- `scope: "selected"` with `recipient_ids` sends exactly those rows.
|
|
1194
|
+
- `scope: "all"` is a standing send: every row of the batch as it finishes
|
|
1195
|
+
drafting, including rows not drafted yet — so **it mails drafts nobody has
|
|
1196
|
+
read**. Say so, and get an explicit yes, before creating one. It waits while
|
|
1197
|
+
drafting runs (`next_send_reason: "drafting"`) and ends once drafting has and
|
|
1198
|
+
every draft has gone. It cannot be live beside any other send of the batch —
|
|
1199
|
+
that is a 409 naming the live send.
|
|
1183
1200
|
- `start_at` schedules it, `window` (on its own `timezone`) holds it to business
|
|
1184
|
-
hours, `send_gap_seconds` is the minimum wait between two emails
|
|
1185
|
-
1 hour) and `send_daily_cap` bounds how many
|
|
1186
|
-
omitted comes from the batch.
|
|
1201
|
+
hours, `send_gap_seconds` is the minimum wait between two emails of the
|
|
1202
|
+
**batch** (1 second to 1 hour) and `send_daily_cap` bounds how many the batch
|
|
1203
|
+
may send per local day. Anything omitted comes from the batch.
|
|
1204
|
+
- A draft a live send covers reads `queued`, and is still a draft: it can be
|
|
1205
|
+
edited, skipped or redrafted until the send takes it.
|
|
1187
1206
|
- `pause_email_send` stops on the next email; `resume_email_send` carries on.
|
|
1188
|
-
- `cancel_email_send`
|
|
1189
|
-
|
|
1190
|
-
contains: a send's rows are fixed when it is created, and there is no verb for
|
|
1191
|
-
pulling rows out of one.
|
|
1207
|
+
- `cancel_email_send` ends it; its unsent rows are simply drafts again. A send's
|
|
1208
|
+
scope never changes, so cancel and create another to change what it covers.
|
|
1192
1209
|
- `get_email_send` carries `next_send_at` and `next_send_reason` (`start`,
|
|
1193
|
-
`window`, `daily_cap`, `retry`, `gap`), which is how "waiting for
|
|
1194
|
-
told apart from "stuck". `patch_email_send` reaches a live send
|
|
1195
|
-
minutes, so raising a spent cap or removing a window needs no
|
|
1210
|
+
`window`, `daily_cap`, `retry`, `gap`, `drafting`), which is how "waiting for
|
|
1211
|
+
Monday" is told apart from "stuck". `patch_email_send` reaches a live send
|
|
1212
|
+
within five minutes, so raising a spent cap or removing a window needs no
|
|
1213
|
+
cancel.
|
|
1196
1214
|
|
|
1197
1215
|
**The safeguard here is a RATE, not a row count.** `send_daily_cap` (200 by
|
|
1198
1216
|
default, per batch, `null` for uncapped) is what stands between a 5 000-row list
|
|
@@ -1224,7 +1242,9 @@ action that revives a batch that already finished drafting. Its `selection` is
|
|
|
1224
1242
|
task wrote them), `not_sent`, or `all` — which names every row it refuses.
|
|
1225
1243
|
**Each redrafted row runs the task again and is billed again**, so say the row
|
|
1226
1244
|
count before running `all`. A person's edited cells survive unless
|
|
1227
|
-
`clear_overrides` is set.
|
|
1245
|
+
`clear_overrides` is set. A `queued` row is redrafted too, and its send takes
|
|
1246
|
+
the new draft. Read `draft_failures` before redrafting `failed`: a task that
|
|
1247
|
+
declined a row on purpose will most likely decline it again.
|
|
1228
1248
|
|
|
1229
1249
|
**One address is mailed at most once per batch**, enforced when the row is
|
|
1230
1250
|
claimed for sending: the second row settles `skipped` with
|
|
@@ -1233,9 +1253,12 @@ ours — Resend keeps one and auto-suppresses hard bounces and complaints.
|
|
|
1233
1253
|
|
|
1234
1254
|
### Watching it
|
|
1235
1255
|
|
|
1236
|
-
`get_email_batch` carries live counts, `
|
|
1237
|
-
`
|
|
1238
|
-
|
|
1256
|
+
`get_email_batch` carries live counts, `skips` (why rows were skipped),
|
|
1257
|
+
`draft_failures` (why drafts failed, most common first), `failure_reason`,
|
|
1258
|
+
`sent_today` (against `send_daily_cap`), `drafted_versions`,
|
|
1259
|
+
`stale_redraftable` / `stale_sent` and the drafting cost so far. Measure
|
|
1260
|
+
progress against what can be reached: `unfillable` rows are never drafted, and
|
|
1261
|
+
skipped, failed or cancelled rows are never sent.
|
|
1239
1262
|
|
|
1240
1263
|
**Stopping itself comes in two shapes, and they need different advice.** Ten
|
|
1241
1264
|
consecutive failures **pause** a batch or a send: everything is where it was and
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@talqing/mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "MCP server for building Talqing AI voice, video and text agents from Claude Code, Codex, or any MCP client.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://talqing.com",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"type": "module",
|
|
19
19
|
"bin": {
|
|
20
|
-
"talqing-mcp": "
|
|
20
|
+
"talqing-mcp": "dist/index.js"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"dist",
|
package/tools.json
CHANGED
|
@@ -1319,7 +1319,7 @@
|
|
|
1319
1319
|
"role": "write"
|
|
1320
1320
|
},
|
|
1321
1321
|
{
|
|
1322
|
-
"description": "Put skipped rows back. `selection: \"all_eligible\"` means every skipped row.",
|
|
1322
|
+
"description": "Put skipped rows back. `selection: \"all_eligible\"` means every row a person skipped; an `unfillable` row is restored by filling in its cell instead.",
|
|
1323
1323
|
"method": "POST",
|
|
1324
1324
|
"name": "restore_email_batch_recipients",
|
|
1325
1325
|
"parameters": {
|
|
@@ -1347,7 +1347,7 @@
|
|
|
1347
1347
|
"role": "write"
|
|
1348
1348
|
},
|
|
1349
1349
|
{
|
|
1350
|
-
"description": "Send
|
|
1350
|
+
"description": "Send rows. **This mails real people and cannot be undone.**",
|
|
1351
1351
|
"method": "POST",
|
|
1352
1352
|
"name": "create_email_send",
|
|
1353
1353
|
"parameters": {
|
|
@@ -1403,7 +1403,7 @@
|
|
|
1403
1403
|
"role": "write"
|
|
1404
1404
|
},
|
|
1405
1405
|
{
|
|
1406
|
-
"description": "Stop sending. It takes hold on the next email, and nothing is lost \u2014 the rows stay queued
|
|
1406
|
+
"description": "Stop sending. It takes hold on the next email, and nothing is lost \u2014 the rows stay queued, and editable, until you resume.",
|
|
1407
1407
|
"method": "POST",
|
|
1408
1408
|
"name": "pause_email_send",
|
|
1409
1409
|
"parameters": {
|
|
@@ -1431,7 +1431,7 @@
|
|
|
1431
1431
|
"role": "write"
|
|
1432
1432
|
},
|
|
1433
1433
|
{
|
|
1434
|
-
"description": "Stop this send
|
|
1434
|
+
"description": "Stop this send for good. Every row it has not sent stays a draft, exactly as it was, ready for another send \u2014 not a destructive action.",
|
|
1435
1435
|
"method": "POST",
|
|
1436
1436
|
"name": "cancel_email_send",
|
|
1437
1437
|
"parameters": {
|
|
@@ -1823,7 +1823,7 @@
|
|
|
1823
1823
|
"role": "read"
|
|
1824
1824
|
},
|
|
1825
1825
|
{
|
|
1826
|
-
"description": "Search the
|
|
1826
|
+
"description": "Search the models a provider offers too many of to list.",
|
|
1827
1827
|
"method": "GET",
|
|
1828
1828
|
"name": "search_models",
|
|
1829
1829
|
"parameters": {
|
|
@@ -1836,6 +1836,20 @@
|
|
|
1836
1836
|
"read_only": true,
|
|
1837
1837
|
"role": "read"
|
|
1838
1838
|
},
|
|
1839
|
+
{
|
|
1840
|
+
"description": "The hosts that can serve one OpenRouter language model; fastest first when the workspace has an OpenRouter key. Each `host` is a valid entry for `llm.hosts`.",
|
|
1841
|
+
"method": "GET",
|
|
1842
|
+
"name": "list_model_hosts",
|
|
1843
|
+
"parameters": {
|
|
1844
|
+
"additionalProperties": true,
|
|
1845
|
+
"description": "Arguments not inlined: call describe_function('list_model_hosts').",
|
|
1846
|
+
"properties": {},
|
|
1847
|
+
"type": "object"
|
|
1848
|
+
},
|
|
1849
|
+
"path": "/v1/catalog/models/hosts",
|
|
1850
|
+
"read_only": true,
|
|
1851
|
+
"role": "read"
|
|
1852
|
+
},
|
|
1839
1853
|
{
|
|
1840
1854
|
"description": "The Anam avatar gallery \u2014 the faces a video agent can wear.",
|
|
1841
1855
|
"method": "GET",
|