@talqing/mcp 0.1.0 → 0.2.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/README.md +36 -17
- package/SKILL.md +25 -11
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/tools.json +22 -96
package/README.md
CHANGED
|
@@ -9,13 +9,13 @@ the CoPilot can build, your coding agent can build.
|
|
|
9
9
|
|
|
10
10
|
## What you get
|
|
11
11
|
|
|
12
|
-
One operation for everything
|
|
13
|
-
their operation trees, integrations and triggers, knowledge
|
|
14
|
-
ready, carrier accounts and phone numbers, secrets, provider
|
|
15
|
-
|
|
16
|
-
transcripts, cost and latency. Each one
|
|
17
|
-
arguments mirror that HTTP call: path and
|
|
18
|
-
request body under `body`.
|
|
12
|
+
One operation for everything a workspace is built out of. Agents and agent
|
|
13
|
+
tasks, tools and their operation trees, integrations and triggers, knowledge
|
|
14
|
+
bases from crawl to ready, carrier accounts and phone numbers, secrets, provider
|
|
15
|
+
keys and webhooks; then placing outbound calls, running call and email batches,
|
|
16
|
+
talking to text agents, and reading back transcripts, cost and latency. Each one
|
|
17
|
+
maps to a Talqing API endpoint, and its arguments mirror that HTTP call: path and
|
|
18
|
+
query parameters at the top level, request body under `body`.
|
|
19
19
|
|
|
20
20
|
A few request types are large enough that carrying them in every tool that
|
|
21
21
|
accepts one would cost more context than the whole rest of the server — an
|
|
@@ -34,11 +34,19 @@ ready-to-paste command for each client — the snippets below are what it shows.
|
|
|
34
34
|
The token authenticates as you, acts with your current role, and reaches only
|
|
35
35
|
your workspace.
|
|
36
36
|
|
|
37
|
+
**`TALQING_BASE_URL` names a region** — `https://api.in.talqing.com`,
|
|
38
|
+
`https://api.us.talqing.com` — and everything this server can reach belongs to
|
|
39
|
+
that one: an agent, its calls, its phone numbers and its credit balance are all
|
|
40
|
+
the region's. One token reaches every region — it names your workspace, not a
|
|
41
|
+
place — so working in another region is the same token and a different base URL.
|
|
42
|
+
The dashboard's snippet always carries the region you are currently looking at;
|
|
43
|
+
switch region there and copy it again.
|
|
44
|
+
|
|
37
45
|
**Claude Code**
|
|
38
46
|
|
|
39
47
|
```bash
|
|
40
48
|
claude mcp add talqing \
|
|
41
|
-
-e TALQING_BASE_URL=https://api.
|
|
49
|
+
-e TALQING_BASE_URL=https://api.in.talqing.com \
|
|
42
50
|
-e TALQING_API_KEY=tq_your_token \
|
|
43
51
|
-- npx -y @talqing/mcp
|
|
44
52
|
```
|
|
@@ -47,7 +55,7 @@ claude mcp add talqing \
|
|
|
47
55
|
|
|
48
56
|
```bash
|
|
49
57
|
codex mcp add talqing \
|
|
50
|
-
--env TALQING_BASE_URL=https://api.
|
|
58
|
+
--env TALQING_BASE_URL=https://api.in.talqing.com \
|
|
51
59
|
--env TALQING_API_KEY=tq_your_token \
|
|
52
60
|
-- npx -y @talqing/mcp
|
|
53
61
|
```
|
|
@@ -59,7 +67,7 @@ codex mcp add talqing \
|
|
|
59
67
|
[mcp_servers.talqing]
|
|
60
68
|
command = "npx"
|
|
61
69
|
args = ["-y", "@talqing/mcp"]
|
|
62
|
-
env = { TALQING_BASE_URL = "https://api.
|
|
70
|
+
env = { TALQING_BASE_URL = "https://api.in.talqing.com", TALQING_API_KEY = "tq_your_token" }
|
|
63
71
|
```
|
|
64
72
|
|
|
65
73
|
**Any other MCP client** — a stdio server, configured the usual way:
|
|
@@ -71,7 +79,7 @@ env = { TALQING_BASE_URL = "https://api.your-talqing-host.com", TALQING_API_KEY
|
|
|
71
79
|
"command": "npx",
|
|
72
80
|
"args": ["-y", "@talqing/mcp"],
|
|
73
81
|
"env": {
|
|
74
|
-
"TALQING_BASE_URL": "https://api.
|
|
82
|
+
"TALQING_BASE_URL": "https://api.in.talqing.com",
|
|
75
83
|
"TALQING_API_KEY": "tq_your_token"
|
|
76
84
|
}
|
|
77
85
|
}
|
|
@@ -91,9 +99,20 @@ the rest, exactly as they would through the dashboard.
|
|
|
91
99
|
Operations are annotated so clients can tell reads from writes — `readOnlyHint`
|
|
92
100
|
on every GET, `destructiveHint` on every delete.
|
|
93
101
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
102
|
+
Four things are deliberately out of reach:
|
|
103
|
+
|
|
104
|
+
- **Sign-in, organizations, members and roles, and personal access tokens.**
|
|
105
|
+
Those live on a separate control API that this server holds no URL for, so an
|
|
106
|
+
AI builder cannot mint itself a credential, and who is in the workspace stays
|
|
107
|
+
where a human is in the loop.
|
|
108
|
+
- **Buying credits.** Reading the balance would be harmless; starting a payment
|
|
109
|
+
spends the workspace's money, and neither belongs on a coding agent's surface.
|
|
110
|
+
- **Streaming endpoints**, which are not tool-shaped. Every one has a polling
|
|
111
|
+
equivalent here — `list_conversation_items` for a conversation, `get_kb` for a
|
|
112
|
+
knowledge build — so nothing is unreachable.
|
|
113
|
+
- **Deleting a call or its recording.** Every other `delete_*` removes
|
|
114
|
+
configuration you could write again; this one destroys the record of something
|
|
115
|
+
that happened, and can take a contact's memory of past calls with it.
|
|
97
116
|
|
|
98
117
|
Some operations act on the real world. `create_outbound_call` rings a phone and
|
|
99
118
|
costs money, and a message to a connected channel is one somebody receives.
|
|
@@ -116,7 +135,7 @@ cd mcp && npm install && npm run build
|
|
|
116
135
|
"command": "node",
|
|
117
136
|
"args": ["/absolute/path/to/talqing/mcp/dist/index.js"],
|
|
118
137
|
"env": {
|
|
119
|
-
"TALQING_BASE_URL": "https://api.
|
|
138
|
+
"TALQING_BASE_URL": "https://api.in.talqing.com",
|
|
120
139
|
"TALQING_API_KEY": "tq_your_token"
|
|
121
140
|
}
|
|
122
141
|
}
|
|
@@ -135,8 +154,8 @@ cannot drift from the product:
|
|
|
135
154
|
PYTHONPATH=backend python openapi/export.py
|
|
136
155
|
```
|
|
137
156
|
|
|
138
|
-
`tools.json` comes from `backend/api/operations.py`, the same registry
|
|
139
|
-
CoPilot binds its tools from; `SKILL.md` comes from
|
|
157
|
+
`tools.json` comes from `backend/api/dataplane/operations.py`, the same registry
|
|
158
|
+
the CoPilot binds its tools from; `SKILL.md` comes from
|
|
140
159
|
`backend/services/copilot/skill.md`, the same text the CoPilot is prompted with.
|
|
141
160
|
Edit those, re-run the export, and both surfaces move together.
|
|
142
161
|
|
package/SKILL.md
CHANGED
|
@@ -27,6 +27,12 @@ request body under `body`. Every operation acts as the signed-in user, inside
|
|
|
27
27
|
their workspace only, with their role's permissions. Managing who is in the
|
|
28
28
|
workspace is the one thing that stays in the dashboard.
|
|
29
29
|
|
|
30
|
+
**Everything here belongs to one region.** A workspace exists in every region and
|
|
31
|
+
its resources do not: an agent, its calls, its phone numbers and its credit
|
|
32
|
+
balance all live in the region whose API you are pointed at. One token reaches
|
|
33
|
+
every region — it names the workspace, not a place — so working in another one is
|
|
34
|
+
the same token and a different base URL.
|
|
35
|
+
|
|
30
36
|
## What an agent is
|
|
31
37
|
|
|
32
38
|
An agent is a single object, `config`, plus what you attach to it:
|
|
@@ -35,7 +41,8 @@ An agent is a single object, `config`, plus what you attach to it:
|
|
|
35
41
|
- **`channel`** — `voice` (phone/web call), `video` (a voice agent wearing an
|
|
36
42
|
Anam avatar) or `text` (chat). The channel decides which model slots exist.
|
|
37
43
|
- **`prompt`** — the system prompt. This is where the agent's behaviour lives.
|
|
38
|
-
- **`greeting`** — the line spoken on connect
|
|
44
|
+
- **`greeting`** — the line spoken on connect, and on the way in from a
|
|
45
|
+
handoff. Voice and video only.
|
|
39
46
|
|
|
40
47
|
Both are personalized per session: `{{userdata.field}}` is substituted from
|
|
41
48
|
the session's userdata when the agent starts, so *"You are speaking with
|
|
@@ -152,8 +159,8 @@ An agent is a single object, `config`, plus what you attach to it:
|
|
|
152
159
|
`{"integration_id": "..."}` naming an active, MCP-capable integration. Which
|
|
153
160
|
of a server's tools may be called is the integration's own `allowed_tools`,
|
|
154
161
|
not this list. As with `tools`, an entry may instead carry `{"mcp": {name,
|
|
155
|
-
url, headers, allowed_tools}}`, which is created as a
|
|
156
|
-
and replaced by its id.
|
|
162
|
+
url, headers, allowed_tools, tools_namespace}}`, which is created as a
|
|
163
|
+
`custom_mcp` integration and replaced by its id.
|
|
157
164
|
- **`handoffs`** — where this agent may pass the conversation next, each
|
|
158
165
|
`{"name": "Billing", "agent_id": "...", "description": "...", "context":
|
|
159
166
|
"transcript" | "summary" | "none", "recent_turns": 2, "summary_prompt": "...",
|
|
@@ -770,9 +777,10 @@ before hanging up — logging the outcome, posting a lead — goes **before** th
|
|
|
770
777
|
|
|
771
778
|
Each hook points at a **published tool id**, or null.
|
|
772
779
|
|
|
773
|
-
- **`on_enter`** — a session opens.
|
|
774
|
-
|
|
775
|
-
|
|
780
|
+
- **`on_enter`** — a session opens. It finishes *before* the greeting, which
|
|
781
|
+
waits for it and reads whatever it published to userdata; on text, when the
|
|
782
|
+
conversation window opens. A handoff target runs it and then speaks its own
|
|
783
|
+
greeting — or, having none, opens with a generated line instead.
|
|
776
784
|
- **`on_exit`** — the session closes: call end or handoff on voice and video;
|
|
777
785
|
on text, `end_call`, a closed window, or about a minute idle.
|
|
778
786
|
- **`on_user_turn_completed`** — after every user turn, before the LLM replies.
|
|
@@ -915,6 +923,14 @@ every turn, and a voice agent picking from ninety of them is slower and less
|
|
|
915
923
|
accurate than one picking from six. Unlike the attachment, that approval is
|
|
916
924
|
live: narrowing it reaches every already-published agent on its next turn.
|
|
917
925
|
|
|
926
|
+
The model does not see a server's tool names raw. Each is prefixed with the
|
|
927
|
+
integration's `tools_namespace` — `<namespace>_<tool>`, defaulting to the
|
|
928
|
+
provider key for a hosted provider and to nothing for a custom server. Read it
|
|
929
|
+
back off the integration, or read `exposed_name` from
|
|
930
|
+
`list_integration_mcp_tools`, and **write prompts against the exposed name**;
|
|
931
|
+
`allowed_tools` still approves the server's own names. Two attached servers
|
|
932
|
+
sharing a namespace fails publish.
|
|
933
|
+
|
|
918
934
|
**Channel integrations** (Telegram) deploy an agent to a messaging
|
|
919
935
|
channel through *triggers*, not MCP attachment. A trigger binds an inbound event
|
|
920
936
|
to a published text agent and decides what happens with the reply.
|
|
@@ -1018,8 +1034,9 @@ afterwards will not forgive us:
|
|
|
1018
1034
|
- **Every row runs the task as it stands right now.** Editing it while a batch
|
|
1019
1035
|
is drafting changes every row generated after that moment, and there is no way
|
|
1020
1036
|
to get the old wording back.
|
|
1021
|
-
- **
|
|
1022
|
-
|
|
1037
|
+
- **Talqing reports what it sent, not what landed.** Deliveries, bounces and
|
|
1038
|
+
spam complaints live in the Resend dashboard, and watching them there is how a
|
|
1039
|
+
sending domain survives.
|
|
1023
1040
|
|
|
1024
1041
|
### The column space
|
|
1025
1042
|
|
|
@@ -1091,9 +1108,6 @@ or on the first `configuration` failure (a deleted task, a field map an edit
|
|
|
1091
1108
|
broke) or the first account-level send failure (a revoked key, an unverified
|
|
1092
1109
|
domain) — because those will fail identically for every remaining row.
|
|
1093
1110
|
|
|
1094
|
-
`delivery_status` on a row is Resend's verdict, separate from ours: `sent` is
|
|
1095
|
-
what we did, `delivered` / `bounced` / `complained` is what happened next.
|
|
1096
|
-
|
|
1097
1111
|
## Knowledge bases
|
|
1098
1112
|
|
|
1099
1113
|
A knowledge base gives an agent grounded answers over crawled content. Attach
|
package/dist/index.js
CHANGED
|
@@ -29,9 +29,13 @@ function required(name, hint) {
|
|
|
29
29
|
return value;
|
|
30
30
|
}
|
|
31
31
|
const BASE_URL = required("TALQING_BASE_URL", "set it to your Talqing API URL, e.g. https://api.your-talqing-host.com").replace(/\/+$/, "");
|
|
32
|
-
const API_KEY = required("TALQING_API_KEY", "create a personal access token in the dashboard under
|
|
32
|
+
const API_KEY = required("TALQING_API_KEY", "create a personal access token in the dashboard under Organization → API Tokens");
|
|
33
33
|
const { tools: operations } = JSON.parse(readPackageFile("tools.json"));
|
|
34
34
|
const byName = new Map(operations.map((operation) => [operation.name, operation]));
|
|
35
|
+
/* Read, not restated. A client shows this version when it reports the server it
|
|
36
|
+
connected to, and a second copy of the number is one `npm version` away from
|
|
37
|
+
being wrong. */
|
|
38
|
+
const { version: VERSION } = JSON.parse(readPackageFile("package.json"));
|
|
35
39
|
/** The skill, minus its frontmatter — handed to the client as server instructions. */
|
|
36
40
|
function instructions() {
|
|
37
41
|
const markdown = readPackageFile("SKILL.md");
|
|
@@ -108,7 +112,7 @@ async function call(name, args) {
|
|
|
108
112
|
}
|
|
109
113
|
return { content: [{ type: "text", text: text || "{}" }] };
|
|
110
114
|
}
|
|
111
|
-
const server = new Server({ name: "talqing", version:
|
|
115
|
+
const server = new Server({ name: "talqing", version: VERSION }, { capabilities: { tools: {} }, instructions: instructions() });
|
|
112
116
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
113
117
|
tools: operations.map(describe),
|
|
114
118
|
}));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,oCAAoC,CAAC;AAc5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEzE,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAG,QAAQ,CACvB,kBAAkB,EAClB,wEAAwE,CACzE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,MAAM,OAAO,GAAG,QAAQ,CACtB,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/tools.json
CHANGED
|
@@ -2,20 +2,6 @@
|
|
|
2
2
|
"api_prefix": "/v1",
|
|
3
3
|
"api_version": "1.0.0",
|
|
4
4
|
"tools": [
|
|
5
|
-
{
|
|
6
|
-
"description": "Who this credential is: the signed-in user, their role, and the organization.\n\nEverything else you can reach is scoped to that organization, and `role`\n(`ADMIN`, `EDITOR` or `VIEWER`) decides whether writes will be accepted. A\nuser may belong to several organizations with a different role in each; this\nreports the one this credential is for.",
|
|
7
|
-
"method": "GET",
|
|
8
|
-
"name": "me",
|
|
9
|
-
"parameters": {
|
|
10
|
-
"additionalProperties": false,
|
|
11
|
-
"properties": {},
|
|
12
|
-
"required": [],
|
|
13
|
-
"type": "object"
|
|
14
|
-
},
|
|
15
|
-
"path": "/v1/auth/me",
|
|
16
|
-
"read_only": true,
|
|
17
|
-
"role": "read"
|
|
18
|
-
},
|
|
19
5
|
{
|
|
20
6
|
"description": "List the workspace's agents, newest edit first.\n\nEach item carries the full draft config and the published version number\n(null while the agent has never been published).",
|
|
21
7
|
"method": "GET",
|
|
@@ -1009,6 +995,17 @@
|
|
|
1009
995
|
"additionalProperties": true,
|
|
1010
996
|
"type": "object"
|
|
1011
997
|
},
|
|
998
|
+
"tools_namespace": {
|
|
999
|
+
"anyOf": [
|
|
1000
|
+
{
|
|
1001
|
+
"pattern": "^$|^[a-z][a-z0-9_]{0,23}$",
|
|
1002
|
+
"type": "string"
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
"type": "null"
|
|
1006
|
+
}
|
|
1007
|
+
]
|
|
1008
|
+
},
|
|
1012
1009
|
"webhook_config": {
|
|
1013
1010
|
"additionalProperties": true,
|
|
1014
1011
|
"type": "object"
|
|
@@ -1154,6 +1151,17 @@
|
|
|
1154
1151
|
}
|
|
1155
1152
|
]
|
|
1156
1153
|
},
|
|
1154
|
+
"tools_namespace": {
|
|
1155
|
+
"anyOf": [
|
|
1156
|
+
{
|
|
1157
|
+
"pattern": "^$|^[a-z][a-z0-9_]{0,23}$",
|
|
1158
|
+
"type": "string"
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
"type": "null"
|
|
1162
|
+
}
|
|
1163
|
+
]
|
|
1164
|
+
},
|
|
1157
1165
|
"webhook_config": {
|
|
1158
1166
|
"anyOf": [
|
|
1159
1167
|
{
|
|
@@ -5659,88 +5667,6 @@
|
|
|
5659
5667
|
"read_only": false,
|
|
5660
5668
|
"role": "admin"
|
|
5661
5669
|
},
|
|
5662
|
-
{
|
|
5663
|
-
"description": "List personal access tokens: your own, or every one in the organization\nif you are an admin.\n\nWho holds which credential is organization-admin information, so an EDITOR\nor VIEWER sees only what they created. Plaintext token values are never\nreturned. A token with `kind: mcp` was issued automatically for the\ndashboard's MCP setup; the rest were created by hand.",
|
|
5664
|
-
"method": "GET",
|
|
5665
|
-
"name": "list_tokens",
|
|
5666
|
-
"parameters": {
|
|
5667
|
-
"additionalProperties": false,
|
|
5668
|
-
"properties": {
|
|
5669
|
-
"limit": {
|
|
5670
|
-
"default": 200,
|
|
5671
|
-
"maximum": 200,
|
|
5672
|
-
"minimum": 1,
|
|
5673
|
-
"type": "integer"
|
|
5674
|
-
},
|
|
5675
|
-
"offset": {
|
|
5676
|
-
"default": 0,
|
|
5677
|
-
"minimum": 0,
|
|
5678
|
-
"type": "integer"
|
|
5679
|
-
}
|
|
5680
|
-
},
|
|
5681
|
-
"required": [],
|
|
5682
|
-
"type": "object"
|
|
5683
|
-
},
|
|
5684
|
-
"path": "/v1/tokens",
|
|
5685
|
-
"read_only": true,
|
|
5686
|
-
"role": "read"
|
|
5687
|
-
},
|
|
5688
|
-
{
|
|
5689
|
-
"description": "Create a personal access token for driving this API without the dashboard.\n\nThe token authenticates as its creator and acts with that user's live role,\nso it can never do more than they can. It does not expire; deleting it is\nthe revocation. The plaintext value is returned once here and never again \u2014\ntreat it like a password and do not echo it back into a conversation.",
|
|
5690
|
-
"method": "POST",
|
|
5691
|
-
"name": "create_token",
|
|
5692
|
-
"parameters": {
|
|
5693
|
-
"$defs": {
|
|
5694
|
-
"CreateTokenRequest": {
|
|
5695
|
-
"properties": {
|
|
5696
|
-
"name": {
|
|
5697
|
-
"maxLength": 100,
|
|
5698
|
-
"minLength": 1,
|
|
5699
|
-
"type": "string"
|
|
5700
|
-
}
|
|
5701
|
-
},
|
|
5702
|
-
"required": [
|
|
5703
|
-
"name"
|
|
5704
|
-
],
|
|
5705
|
-
"type": "object"
|
|
5706
|
-
}
|
|
5707
|
-
},
|
|
5708
|
-
"additionalProperties": false,
|
|
5709
|
-
"properties": {
|
|
5710
|
-
"body": {
|
|
5711
|
-
"$ref": "#/$defs/CreateTokenRequest"
|
|
5712
|
-
}
|
|
5713
|
-
},
|
|
5714
|
-
"required": [
|
|
5715
|
-
"body"
|
|
5716
|
-
],
|
|
5717
|
-
"type": "object"
|
|
5718
|
-
},
|
|
5719
|
-
"path": "/v1/tokens",
|
|
5720
|
-
"read_only": false,
|
|
5721
|
-
"role": "read"
|
|
5722
|
-
},
|
|
5723
|
-
{
|
|
5724
|
-
"description": "Revoke a token immediately and permanently.\n\nOwners can delete their own; organization admins can delete any in the\norganization. Deleting an `mcp` token rotates it: the owner's next dashboard\nvisit issues a replacement, and anything still configured with the old one\nstops working.",
|
|
5725
|
-
"method": "DELETE",
|
|
5726
|
-
"name": "delete_token",
|
|
5727
|
-
"parameters": {
|
|
5728
|
-
"additionalProperties": false,
|
|
5729
|
-
"properties": {
|
|
5730
|
-
"token_id": {
|
|
5731
|
-
"format": "uuid",
|
|
5732
|
-
"type": "string"
|
|
5733
|
-
}
|
|
5734
|
-
},
|
|
5735
|
-
"required": [
|
|
5736
|
-
"token_id"
|
|
5737
|
-
],
|
|
5738
|
-
"type": "object"
|
|
5739
|
-
},
|
|
5740
|
-
"path": "/v1/tokens/{token_id}",
|
|
5741
|
-
"read_only": false,
|
|
5742
|
-
"role": "read"
|
|
5743
|
-
},
|
|
5744
5670
|
{
|
|
5745
5671
|
"description": "The full JSON Schema of one of the five large request types.\n\nAn argument whose description ends in `describe_schema('X')` carries only a\nplaceholder for its shape \u2014 fetch the real one here before writing it.\n\n- `AgentConfig` \u2014 a whole agent definition; what `create_agent` takes.\n- `AgentOverride` \u2014 the same tree, every field optional, for one call.\n- `AgentTeam` \u2014 several agents on one call, handing off to each other.\n- `TaskConfig` \u2014 an agent task: inputs, output shape, model stack.\n- `ToolOperations` \u2014 the operation tree a custom tool runs.\n\nThese compose, so a document you fetch may itself defer to another.",
|
|
5746
5672
|
"method": "GET",
|