@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.
Files changed (3) hide show
  1. package/SKILL.md +45 -22
  2. package/package.json +2 -2
  3. 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. Every LLM entry today reads images; the two
326
- `grok-voice-*` realtime entries do not, and an agent on one of them cannot be
327
- sent a photo at all. If a user wants image input, check `vision` before picking
328
- the model rather than changing anything on the agent.
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-4o-transcribe`) → it has no endpointer at all, so
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 `recipient_ids` or `selection: "all_drafts"` and
1181
- returns a **send** you can steer:
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 (1 second to
1185
- 1 hour) and `send_daily_cap` bounds how many may leave per local day. Anything
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` gives **every unsent row back as a draft**, ready for
1189
- another send. It is also the ONLY way to change what a scheduled send
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 Monday" is
1194
- told apart from "stuck". `patch_email_send` reaches a live send within five
1195
- minutes, so raising a spent cap or removing a window needs no cancel.
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, `failure_reason`, `sent_today` (against
1237
- `send_daily_cap`), `drafted_versions`, `stale_redraftable` and the drafting cost
1238
- so far.
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.2",
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": "./dist/index.js"
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 these rows. **This mails real people and cannot be undone.**",
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 for whenever you resume.",
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, and give every row it has not sent back as a draft.",
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 language models a provider offers too many of to list.",
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",