pi-opencode-go-provider 1.0.15 → 1.0.17
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/.pi/fabric/mcp-cache.json +1475 -0
- package/.pi/fabric/mesh/state.json +117 -0
- package/README.md +3 -1
- package/index.ts +39 -1
- package/models.json +29 -1
- package/package.json +1 -1
|
@@ -0,0 +1,1475 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"layers": [
|
|
4
|
+
{
|
|
5
|
+
"path": "/Users/monotykamary/.mcporter/mcporter.json",
|
|
6
|
+
"mtimeMs": 1788407608068.0896,
|
|
7
|
+
"size": 879
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"updatedAt": "2026-09-03T07:37:46.146Z",
|
|
11
|
+
"servers": {
|
|
12
|
+
"cloudflare-docs": {
|
|
13
|
+
"definitionHash": "f70a3632a74398e5253e9e19acab90491b960270ea6d75ac8e82259af039f100",
|
|
14
|
+
"transport": "http",
|
|
15
|
+
"description": null,
|
|
16
|
+
"fetchedAt": "2026-09-03T07:37:42.586Z",
|
|
17
|
+
"stale": false,
|
|
18
|
+
"tools": [
|
|
19
|
+
{
|
|
20
|
+
"name": "search_cloudflare_documentation",
|
|
21
|
+
"description": "Search the Cloudflare documentation.\n\n\t\tThis tool should be used to answer any question about Cloudflare products or features, including:\n\t\t- Workers, Pages, R2, Images, Stream, D1, Durable Objects, KV, Workflows, Hyperdrive, Queues\n\t\t- AI Search, Workers AI, Vectorize, AI Gateway, Browser Run\n\t\t- Zero Trust, Access, Tunnel, Gateway, Browser Isolation, WARP, DDOS, Magic Transit, Magic WAN\n\t\t- CDN, Cache, DNS, Zaraz, Argo, Rulesets, Terraform, Account and Billing\n\n\t\tResults are returned as semantically similar chunks to the query.\n\t\t",
|
|
22
|
+
"inputSchema": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"query": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"required": [
|
|
30
|
+
"query"
|
|
31
|
+
],
|
|
32
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
33
|
+
},
|
|
34
|
+
"outputSchema": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"results": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"similarity": {
|
|
43
|
+
"type": "number",
|
|
44
|
+
"description": "Similarity score from AI Search"
|
|
45
|
+
},
|
|
46
|
+
"id": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Source file ID"
|
|
49
|
+
},
|
|
50
|
+
"url": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Developer documentation URL"
|
|
53
|
+
},
|
|
54
|
+
"title": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Documentation page title"
|
|
57
|
+
},
|
|
58
|
+
"text": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "Matching documentation chunk text"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": [
|
|
64
|
+
"similarity",
|
|
65
|
+
"id",
|
|
66
|
+
"url",
|
|
67
|
+
"title",
|
|
68
|
+
"text"
|
|
69
|
+
],
|
|
70
|
+
"additionalProperties": false
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"required": [
|
|
75
|
+
"results"
|
|
76
|
+
],
|
|
77
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
78
|
+
"additionalProperties": false
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "migrate_pages_to_workers_guide",
|
|
83
|
+
"description": "ALWAYS read this guide before migrating Pages projects to Workers.",
|
|
84
|
+
"inputSchema": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"properties": {},
|
|
87
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
"cloudflare": {
|
|
93
|
+
"definitionHash": "6a43d38548ec5c6bf860b92ea17f58f25b5bdcfda67d27ffb6c1cfde5f2215b8",
|
|
94
|
+
"transport": "http",
|
|
95
|
+
"description": null,
|
|
96
|
+
"fetchedAt": "2026-09-03T07:37:43.048Z",
|
|
97
|
+
"stale": false,
|
|
98
|
+
"tools": [
|
|
99
|
+
{
|
|
100
|
+
"name": "docs",
|
|
101
|
+
"description": "Search the Cloudflare documentation.\n\n\t\tThis tool should be used to answer any question about Cloudflare products or features, including:\n\t\t- Workers, Pages, R2, Images, Stream, D1, Durable Objects, KV, Workflows, Hyperdrive, Queues\n\t\t- AI Search, Workers AI, Vectorize, AI Gateway, Browser Rendering\n\t\t- Zero Trust, Access, Tunnel, Gateway, Browser Isolation, WARP, DDOS, Magic Transit, Magic WAN\n\t\t- CDN, Cache, DNS, Zaraz, Argo, Rulesets, Terraform, Account and Billing\n\n\t\tResults are returned as semantically similar chunks to the query.\n\t\t",
|
|
102
|
+
"inputSchema": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"properties": {
|
|
105
|
+
"query": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "Cloudflare documentation search query"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"required": [
|
|
111
|
+
"query"
|
|
112
|
+
],
|
|
113
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
114
|
+
},
|
|
115
|
+
"outputSchema": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"results": {
|
|
119
|
+
"type": "array",
|
|
120
|
+
"items": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"properties": {
|
|
123
|
+
"similarity": {
|
|
124
|
+
"type": "number",
|
|
125
|
+
"description": "Similarity score from AI Search"
|
|
126
|
+
},
|
|
127
|
+
"id": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"description": "Source file ID"
|
|
130
|
+
},
|
|
131
|
+
"url": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"description": "Developer documentation URL"
|
|
134
|
+
},
|
|
135
|
+
"title": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "Documentation page title"
|
|
138
|
+
},
|
|
139
|
+
"text": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"description": "Matching documentation chunk text"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"required": [
|
|
145
|
+
"similarity",
|
|
146
|
+
"id",
|
|
147
|
+
"url",
|
|
148
|
+
"title",
|
|
149
|
+
"text"
|
|
150
|
+
],
|
|
151
|
+
"additionalProperties": false
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"results"
|
|
157
|
+
],
|
|
158
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
159
|
+
"additionalProperties": false
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "search",
|
|
164
|
+
"description": "Search the Cloudflare OpenAPI spec. All $refs are pre-resolved inline.\n\nProducts: cloudforce-one, access, magic, workers, dlp, email-security, realtime, devices, ai-gateway, email, intel, gateway, stream, settings, brand-protection, data-security, ai-search, browser-rendering, dex, logpush, api_gateway, builds, images, addressing, load_balancers, security-center, rulesets, vectorize, firewall, logs... (167 total)\n\nTypes:\n\ninterface OperationInfo {\n summary?: string;\n description?: string;\n tags?: string[];\n parameters?: Array<{ name: string; in: string; required?: boolean; schema?: unknown; description?: string }>;\n requestBody?: { required?: boolean; content?: Record<string, { schema?: unknown }> };\n responses?: Record<string, { description?: string; content?: Record<string, { schema?: unknown }> }>;\n}\n\ninterface PathItem {\n get?: OperationInfo;\n post?: OperationInfo;\n put?: OperationInfo;\n patch?: OperationInfo;\n delete?: OperationInfo;\n}\n\ndeclare const spec: {\n paths: Record<string, PathItem>;\n};\n\n\nExamples:\n\n// Find endpoints by product\nasync () => {\n const results = [];\n for (const [path, methods] of Object.entries(spec.paths)) {\n for (const [method, op] of Object.entries(methods)) {\n if (op.tags?.some(t => t.toLowerCase() === 'workers')) {\n results.push({ method: method.toUpperCase(), path, summary: op.summary });\n }\n }\n }\n return results;\n}\n\n// Get endpoint with requestBody schema (refs are resolved)\nasync () => {\n const op = spec.paths['/accounts/{account_id}/d1/database']?.post;\n return { summary: op?.summary, requestBody: op?.requestBody };\n}\n\n// Get endpoint parameters\nasync () => {\n const op = spec.paths['/accounts/{account_id}/workers/scripts']?.get;\n return op?.parameters;\n}",
|
|
165
|
+
"inputSchema": {
|
|
166
|
+
"type": "object",
|
|
167
|
+
"properties": {
|
|
168
|
+
"code": {
|
|
169
|
+
"type": "string",
|
|
170
|
+
"description": "JavaScript async arrow function to search the OpenAPI spec"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"required": [
|
|
174
|
+
"code"
|
|
175
|
+
],
|
|
176
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "execute",
|
|
181
|
+
"description": "Execute JavaScript code against the Cloudflare API. First use the 'search' tool to find the right endpoints, then write code using the cloudflare.request() function.\n\nAvailable in your code:\n\ninterface CloudflareRequestOptions {\n method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n path: string;\n query?: Record<string, string | number | boolean | undefined>;\n body?: unknown;\n contentType?: string; // Custom Content-Type header (defaults to application/json if body is present)\n rawBody?: boolean; // If true, sends body as-is without JSON.stringify\n}\n\ninterface CloudflareResponse<T = unknown> {\n success: boolean;\n status: number;\n result: T;\n errors: Array<{ code: number; message: string }>;\n messages: Array<{ code: number; message: string }>;\n result_info?: {\n page: number;\n per_page: number;\n total_pages: number;\n count: number;\n total_count: number;\n };\n}\n\ndeclare const cloudflare: {\n request<T = unknown>(options: CloudflareRequestOptions): Promise<CloudflareResponse<T>>;\n};\n\ndeclare const accountId: string;\n\n// accountId is pre-set to \"844f108510a42b91d50778c12a27000c\" (monotykamary) — use it directly in API paths.\n\n\nYour code must be an async arrow function that returns the result.\n\nExample: Worker with bindings (requires multipart/form-data):\nasync () => {\n const code = `addEventListener('fetch', e => e.respondWith(MY_KV.get('key').then(v => new Response(v || 'none'))));`;\n const metadata = { body_part: \"script\", bindings: [{ type: \"kv_namespace\", name: \"MY_KV\", namespace_id: \"your-kv-id\" }] };\n const b = `--F${Date.now()}`;\n const body = [`--${b}`, 'Content-Disposition: form-data; name=\"metadata\"', 'Content-Type: application/json', '', JSON.stringify(metadata), `--${b}`, 'Content-Disposition: form-data; name=\"script\"', 'Content-Type: application/javascript', '', code, `--${b}--`].join(\"\\r\\n\");\n return cloudflare.request({ method: \"PUT\", path: `/accounts/${accountId}/workers/scripts/my-worker`, body, contentType: `multipart/form-data; boundary=${b}`, rawBody: true });\n}",
|
|
182
|
+
"inputSchema": {
|
|
183
|
+
"type": "object",
|
|
184
|
+
"properties": {
|
|
185
|
+
"code": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"description": "JavaScript async arrow function to execute"
|
|
188
|
+
},
|
|
189
|
+
"account_id": {
|
|
190
|
+
"description": "Cloudflare account ID to scope execution to a singular account. Optional for account-independent calls.",
|
|
191
|
+
"type": "string"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"required": [
|
|
195
|
+
"code"
|
|
196
|
+
],
|
|
197
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
"fal-ai": {
|
|
203
|
+
"definitionHash": "ee48434dcd3ee4daa319d25c1b24434511497a99764bc200a43f3d93335573c0",
|
|
204
|
+
"transport": "http",
|
|
205
|
+
"description": null,
|
|
206
|
+
"fetchedAt": "2026-09-03T07:37:44.746Z",
|
|
207
|
+
"stale": false,
|
|
208
|
+
"tools": [
|
|
209
|
+
{
|
|
210
|
+
"name": "search_models",
|
|
211
|
+
"description": "Search fal.ai's model catalog. Use this to discover available models.\nCategories: text-to-image, image-to-video, text-to-video, text-to-speech, speech-to-text, text-to-music, image-to-3d, text-to-3d, image-editing, llm, and more.\nReturns model IDs you can pass to get_model_schema or run_model.",
|
|
212
|
+
"inputSchema": {
|
|
213
|
+
"type": "object",
|
|
214
|
+
"properties": {
|
|
215
|
+
"query": {
|
|
216
|
+
"type": "string",
|
|
217
|
+
"description": "Free-text search (e.g. 'flux', 'video generation', 'upscale')"
|
|
218
|
+
},
|
|
219
|
+
"category": {
|
|
220
|
+
"type": "string",
|
|
221
|
+
"description": "Filter by category: text-to-image, image-to-video, text-to-video, text-to-speech, speech-to-text, text-to-music, image-to-3d, image-editing, llm"
|
|
222
|
+
},
|
|
223
|
+
"limit": {
|
|
224
|
+
"type": "number",
|
|
225
|
+
"minimum": 1,
|
|
226
|
+
"maximum": 100,
|
|
227
|
+
"description": "Max results to return (default 20)"
|
|
228
|
+
},
|
|
229
|
+
"cursor": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"description": "Pagination cursor from a previous response's next_cursor to fetch the next page"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"additionalProperties": false,
|
|
235
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "get_model_schema",
|
|
240
|
+
"description": "Get the full input/output schema for a specific fal.ai model.\nReturns all parameters the model accepts and what it returns.\nUse this before run_model to understand what inputs are needed.",
|
|
241
|
+
"inputSchema": {
|
|
242
|
+
"type": "object",
|
|
243
|
+
"properties": {
|
|
244
|
+
"endpoint_id": {
|
|
245
|
+
"type": "string",
|
|
246
|
+
"description": "The model endpoint ID (e.g. 'fal-ai/flux/dev', 'fal-ai/wan-t2v')"
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"required": [
|
|
250
|
+
"endpoint_id"
|
|
251
|
+
],
|
|
252
|
+
"additionalProperties": false,
|
|
253
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "run_model",
|
|
258
|
+
"description": "Run a fal.ai model: submits to the queue and waits a short, bounded time for the result.\nIMPORTANT: If the user does NOT specify a model by name, you MUST call recommend_model first to find the best trending model. Never pick a model from your own knowledge — always use recommend_model to get the current best option. Only skip recommend_model if the user explicitly asks for a specific model (e.g. \"use FLUX\" or \"use Kling\").\n\nThis tool returns one of two statuses:\n- \"completed\": the result is included.\n- \"processing\": the wait budget elapsed but the job is still running. This is NORMAL for video, 3D, training, or a busy queue. A request_id, status_url, and response_url are returned. Poll check_job, then call get_job_result when queue_status is COMPLETED. Do NOT call run_model again for the same request — that starts a new, billable job.\n\nFor video, 3D, or training (long-running by nature), prefer submit_job + check_job + get_job_result from the start.\nFor image URLs in the output, present them directly to the user.",
|
|
259
|
+
"inputSchema": {
|
|
260
|
+
"type": "object",
|
|
261
|
+
"properties": {
|
|
262
|
+
"endpoint_id": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"description": "The model endpoint ID (e.g. 'fal-ai/flux/dev')"
|
|
265
|
+
},
|
|
266
|
+
"input": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"additionalProperties": {},
|
|
269
|
+
"description": "Model input parameters as a JSON object. Use get_model_schema first to see what parameters are accepted."
|
|
270
|
+
},
|
|
271
|
+
"expiration_seconds": {
|
|
272
|
+
"type": "number",
|
|
273
|
+
"description": "Optional CDN expiration in seconds. Generated media will be deleted after this duration. Omit to use account default."
|
|
274
|
+
},
|
|
275
|
+
"store_payload": {
|
|
276
|
+
"type": "boolean",
|
|
277
|
+
"description": "Optional. Set to false to prevent fal from storing the request JSON payload (default: true)."
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"required": [
|
|
281
|
+
"endpoint_id",
|
|
282
|
+
"input"
|
|
283
|
+
],
|
|
284
|
+
"additionalProperties": false,
|
|
285
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"name": "check_job",
|
|
290
|
+
"description": "Check the status of a running fal.ai job.\nUse this for long-running jobs (video generation, training, etc.) or when run_model returns status \"processing\".",
|
|
291
|
+
"inputSchema": {
|
|
292
|
+
"type": "object",
|
|
293
|
+
"properties": {
|
|
294
|
+
"endpoint_id": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"description": "The model endpoint ID"
|
|
297
|
+
},
|
|
298
|
+
"request_id": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"description": "The request ID returned by run_model or submit_job"
|
|
301
|
+
},
|
|
302
|
+
"status_url": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"format": "uri",
|
|
305
|
+
"description": "Canonical status_url returned by submit_job or run_model. Prefer passing this when available."
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
"required": [
|
|
309
|
+
"endpoint_id",
|
|
310
|
+
"request_id"
|
|
311
|
+
],
|
|
312
|
+
"additionalProperties": false,
|
|
313
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"name": "upload_file",
|
|
318
|
+
"description": "Upload a file to fal.ai's CDN so it can be used as input to models. Returns a fal.ai CDN URL.\n\nHOW TO USE:\n- PUBLIC URL → pass it as 'url'. Easiest option.\n- LOCAL FILE (recommended for any size) → upload it yourself directly to fal REST API:\n 1. POST https://rest.alpha.fal.ai/storage/upload/initiate with header \"Authorization: Key $FAL_KEY\" and body {\"file_name\":\"...\",\"content_type\":\"...\"}\n 2. PUT the file bytes to the returned upload_url\n 3. Use the returned file_url as the CDN URL\n This avoids token/size limits from passing file content through MCP.\n- LOCAL FILE (small, <1MB) → read the file, base64-encode it, and pass as 'data' with 'file_name'.\n- Do NOT use file_path — it will always fail on hosted MCP servers.",
|
|
319
|
+
"inputSchema": {
|
|
320
|
+
"type": "object",
|
|
321
|
+
"properties": {
|
|
322
|
+
"file_path": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"description": "Local file path (only works in stdio mode, not HTTP)"
|
|
325
|
+
},
|
|
326
|
+
"url": {
|
|
327
|
+
"type": "string",
|
|
328
|
+
"description": "URL of a remote file to upload to fal.ai CDN"
|
|
329
|
+
},
|
|
330
|
+
"data": {
|
|
331
|
+
"type": "string",
|
|
332
|
+
"description": "Base64-encoded file content. Use this for local files when connected over HTTP."
|
|
333
|
+
},
|
|
334
|
+
"file_name": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"description": "Filename (required when using 'data')"
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"additionalProperties": false,
|
|
340
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"name": "submit_job",
|
|
345
|
+
"description": "Submit a job to the queue WITHOUT waiting for completion. Returns immediately with a request_id.\nUse this instead of run_model for long-running tasks (video generation, 3D, training).\nThen use check_job to poll status and get_job_result to retrieve the result when ready.",
|
|
346
|
+
"inputSchema": {
|
|
347
|
+
"type": "object",
|
|
348
|
+
"properties": {
|
|
349
|
+
"endpoint_id": {
|
|
350
|
+
"type": "string",
|
|
351
|
+
"description": "The model endpoint ID (e.g. 'fal-ai/veo3.1')"
|
|
352
|
+
},
|
|
353
|
+
"input": {
|
|
354
|
+
"type": "object",
|
|
355
|
+
"additionalProperties": {},
|
|
356
|
+
"description": "Model input parameters as a JSON object."
|
|
357
|
+
},
|
|
358
|
+
"expiration_seconds": {
|
|
359
|
+
"type": "number",
|
|
360
|
+
"description": "Optional CDN expiration in seconds for generated media."
|
|
361
|
+
},
|
|
362
|
+
"store_payload": {
|
|
363
|
+
"type": "boolean",
|
|
364
|
+
"description": "Optional. Set to false to prevent fal from storing the request JSON payload."
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
"required": [
|
|
368
|
+
"endpoint_id",
|
|
369
|
+
"input"
|
|
370
|
+
],
|
|
371
|
+
"additionalProperties": false,
|
|
372
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"name": "get_pricing",
|
|
377
|
+
"description": "Get pricing information for a fal.ai model. Returns cost per run or per second.\nUse this before running expensive models (video, training) to estimate costs.",
|
|
378
|
+
"inputSchema": {
|
|
379
|
+
"type": "object",
|
|
380
|
+
"properties": {
|
|
381
|
+
"endpoint_id": {
|
|
382
|
+
"type": "string",
|
|
383
|
+
"description": "The model endpoint ID to check pricing for"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"required": [
|
|
387
|
+
"endpoint_id"
|
|
388
|
+
],
|
|
389
|
+
"additionalProperties": false,
|
|
390
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"name": "get_job_result",
|
|
395
|
+
"description": "Fetch the result for a completed fal.ai queue job.\nUse check_job first when you are not sure the request has completed.",
|
|
396
|
+
"inputSchema": {
|
|
397
|
+
"type": "object",
|
|
398
|
+
"properties": {
|
|
399
|
+
"endpoint_id": {
|
|
400
|
+
"type": "string",
|
|
401
|
+
"description": "The model endpoint ID"
|
|
402
|
+
},
|
|
403
|
+
"request_id": {
|
|
404
|
+
"type": "string",
|
|
405
|
+
"description": "The request ID returned by run_model or submit_job"
|
|
406
|
+
},
|
|
407
|
+
"response_url": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"format": "uri",
|
|
410
|
+
"description": "Canonical response_url returned by submit_job, run_model, or check_job. Prefer passing this when available."
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
"required": [
|
|
414
|
+
"endpoint_id",
|
|
415
|
+
"request_id"
|
|
416
|
+
],
|
|
417
|
+
"additionalProperties": false,
|
|
418
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"name": "cancel_job",
|
|
423
|
+
"description": "Cancel a running fal.ai queue job.\nOnly use this when the user explicitly asks to cancel a specific request_id.",
|
|
424
|
+
"inputSchema": {
|
|
425
|
+
"type": "object",
|
|
426
|
+
"properties": {
|
|
427
|
+
"endpoint_id": {
|
|
428
|
+
"type": "string",
|
|
429
|
+
"description": "The model endpoint ID"
|
|
430
|
+
},
|
|
431
|
+
"request_id": {
|
|
432
|
+
"type": "string",
|
|
433
|
+
"description": "The request ID returned by run_model or submit_job"
|
|
434
|
+
},
|
|
435
|
+
"cancel_url": {
|
|
436
|
+
"type": "string",
|
|
437
|
+
"format": "uri",
|
|
438
|
+
"description": "Canonical cancel_url returned by submit_job, run_model, or check_job. Prefer passing this when available."
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
"required": [
|
|
442
|
+
"endpoint_id",
|
|
443
|
+
"request_id"
|
|
444
|
+
],
|
|
445
|
+
"additionalProperties": false,
|
|
446
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"name": "recommend_model",
|
|
451
|
+
"description": "Get model recommendations based on what you want to create.\nSearches the live fal.ai catalog and returns the best models for your use case.\nModels are ranked by platform popularity (most-used models appear first).",
|
|
452
|
+
"inputSchema": {
|
|
453
|
+
"type": "object",
|
|
454
|
+
"properties": {
|
|
455
|
+
"task": {
|
|
456
|
+
"type": "string",
|
|
457
|
+
"description": "What you want to do (e.g. 'generate a photorealistic portrait', 'create a 10s cinematic video from text', 'upscale an image to 4K', 'remove background')"
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
"required": [
|
|
461
|
+
"task"
|
|
462
|
+
],
|
|
463
|
+
"additionalProperties": false,
|
|
464
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"name": "search_docs",
|
|
469
|
+
"description": "Search the fal.ai documentation for guides, API references, code examples, and implementation details.\nUse this when you need to understand how fal.ai works, find specific API docs, or get code snippets.",
|
|
470
|
+
"inputSchema": {
|
|
471
|
+
"type": "object",
|
|
472
|
+
"properties": {
|
|
473
|
+
"query": {
|
|
474
|
+
"type": "string",
|
|
475
|
+
"description": "Search query (e.g. 'how to upload a file', 'queue API', 'LoRA training')"
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
"required": [
|
|
479
|
+
"query"
|
|
480
|
+
],
|
|
481
|
+
"additionalProperties": false,
|
|
482
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
]
|
|
486
|
+
},
|
|
487
|
+
"treg": {
|
|
488
|
+
"definitionHash": "c28e11cf871ad055919f203827ca81f734a20f2a4f658253e30d1cf22fb3b041",
|
|
489
|
+
"transport": "http",
|
|
490
|
+
"description": null,
|
|
491
|
+
"fetchedAt": "2026-09-03T07:37:45.994Z",
|
|
492
|
+
"stale": false,
|
|
493
|
+
"tools": [
|
|
494
|
+
{
|
|
495
|
+
"name": "catalog_search",
|
|
496
|
+
"description": "Search ~2,600 API endpoints by WHAT YOU WANT TO DO, not by vendor. Use plain task words: 'work email', 'backlinks for a domain', 'tiktok comments', 'keyword search volume'. Returns each endpoint's id, provider, price per call, and whether treg can serve it without you owning an API key. Call this FIRST when a task needs data or an API you have no key for.",
|
|
497
|
+
"inputSchema": {
|
|
498
|
+
"type": "object",
|
|
499
|
+
"properties": {
|
|
500
|
+
"query": {
|
|
501
|
+
"title": "Query",
|
|
502
|
+
"type": "string"
|
|
503
|
+
},
|
|
504
|
+
"limit": {
|
|
505
|
+
"default": 8,
|
|
506
|
+
"title": "Limit",
|
|
507
|
+
"type": "integer"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
"required": [
|
|
511
|
+
"query"
|
|
512
|
+
],
|
|
513
|
+
"title": "catalog_searchArguments"
|
|
514
|
+
},
|
|
515
|
+
"outputSchema": {
|
|
516
|
+
"type": "object",
|
|
517
|
+
"properties": {
|
|
518
|
+
"query": {
|
|
519
|
+
"anyOf": [
|
|
520
|
+
{
|
|
521
|
+
"type": "string"
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"type": "null"
|
|
525
|
+
}
|
|
526
|
+
],
|
|
527
|
+
"title": "Query"
|
|
528
|
+
},
|
|
529
|
+
"count": {
|
|
530
|
+
"anyOf": [
|
|
531
|
+
{
|
|
532
|
+
"type": "integer"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"type": "null"
|
|
536
|
+
}
|
|
537
|
+
],
|
|
538
|
+
"title": "Count"
|
|
539
|
+
},
|
|
540
|
+
"total_matches": {
|
|
541
|
+
"anyOf": [
|
|
542
|
+
{
|
|
543
|
+
"type": "integer"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"type": "null"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"title": "Total Matches"
|
|
550
|
+
},
|
|
551
|
+
"results": {
|
|
552
|
+
"anyOf": [
|
|
553
|
+
{
|
|
554
|
+
"items": {
|
|
555
|
+
"$ref": "#/$defs/SearchResult"
|
|
556
|
+
},
|
|
557
|
+
"type": "array"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"type": "null"
|
|
561
|
+
}
|
|
562
|
+
],
|
|
563
|
+
"title": "Results"
|
|
564
|
+
},
|
|
565
|
+
"ranking_note": {
|
|
566
|
+
"anyOf": [
|
|
567
|
+
{
|
|
568
|
+
"type": "string"
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"type": "null"
|
|
572
|
+
}
|
|
573
|
+
],
|
|
574
|
+
"title": "Ranking Note"
|
|
575
|
+
},
|
|
576
|
+
"near": {
|
|
577
|
+
"anyOf": [
|
|
578
|
+
{
|
|
579
|
+
"items": {
|
|
580
|
+
"additionalProperties": true,
|
|
581
|
+
"type": "object"
|
|
582
|
+
},
|
|
583
|
+
"type": "array"
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"type": "null"
|
|
587
|
+
}
|
|
588
|
+
],
|
|
589
|
+
"title": "Near"
|
|
590
|
+
},
|
|
591
|
+
"hint": {
|
|
592
|
+
"anyOf": [
|
|
593
|
+
{
|
|
594
|
+
"type": "string"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"type": "null"
|
|
598
|
+
}
|
|
599
|
+
],
|
|
600
|
+
"title": "Hint"
|
|
601
|
+
},
|
|
602
|
+
"next": {
|
|
603
|
+
"anyOf": [
|
|
604
|
+
{
|
|
605
|
+
"type": "string"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"type": "null"
|
|
609
|
+
}
|
|
610
|
+
],
|
|
611
|
+
"title": "Next"
|
|
612
|
+
},
|
|
613
|
+
"error": {
|
|
614
|
+
"anyOf": [
|
|
615
|
+
{
|
|
616
|
+
"type": "string"
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
"type": "null"
|
|
620
|
+
}
|
|
621
|
+
],
|
|
622
|
+
"title": "Error"
|
|
623
|
+
},
|
|
624
|
+
"detail": {
|
|
625
|
+
"anyOf": [
|
|
626
|
+
{
|
|
627
|
+
"type": "string"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"type": "null"
|
|
631
|
+
}
|
|
632
|
+
],
|
|
633
|
+
"title": "Detail"
|
|
634
|
+
}
|
|
635
|
+
},
|
|
636
|
+
"$defs": {
|
|
637
|
+
"SearchResult": {
|
|
638
|
+
"properties": {
|
|
639
|
+
"endpoint_id": {
|
|
640
|
+
"anyOf": [
|
|
641
|
+
{
|
|
642
|
+
"type": "string"
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"type": "null"
|
|
646
|
+
}
|
|
647
|
+
],
|
|
648
|
+
"title": "Endpoint Id"
|
|
649
|
+
},
|
|
650
|
+
"name": {
|
|
651
|
+
"anyOf": [
|
|
652
|
+
{
|
|
653
|
+
"type": "string"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"type": "null"
|
|
657
|
+
}
|
|
658
|
+
],
|
|
659
|
+
"title": "Name"
|
|
660
|
+
},
|
|
661
|
+
"provider": {
|
|
662
|
+
"anyOf": [
|
|
663
|
+
{
|
|
664
|
+
"type": "string"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"type": "null"
|
|
668
|
+
}
|
|
669
|
+
],
|
|
670
|
+
"title": "Provider"
|
|
671
|
+
},
|
|
672
|
+
"usd_per_call": {
|
|
673
|
+
"anyOf": [
|
|
674
|
+
{
|
|
675
|
+
"type": "number"
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"type": "null"
|
|
679
|
+
}
|
|
680
|
+
],
|
|
681
|
+
"title": "Usd Per Call"
|
|
682
|
+
},
|
|
683
|
+
"no_key_needed": {
|
|
684
|
+
"anyOf": [
|
|
685
|
+
{
|
|
686
|
+
"type": "boolean"
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"type": "null"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
"title": "No Key Needed"
|
|
693
|
+
},
|
|
694
|
+
"score": {
|
|
695
|
+
"anyOf": [
|
|
696
|
+
{
|
|
697
|
+
"type": "number"
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"type": "null"
|
|
701
|
+
}
|
|
702
|
+
],
|
|
703
|
+
"title": "Score"
|
|
704
|
+
},
|
|
705
|
+
"works": {
|
|
706
|
+
"anyOf": [
|
|
707
|
+
{
|
|
708
|
+
"type": "number"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"type": "null"
|
|
712
|
+
}
|
|
713
|
+
],
|
|
714
|
+
"title": "Works"
|
|
715
|
+
},
|
|
716
|
+
"samples": {
|
|
717
|
+
"anyOf": [
|
|
718
|
+
{
|
|
719
|
+
"type": "integer"
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"type": "null"
|
|
723
|
+
}
|
|
724
|
+
],
|
|
725
|
+
"title": "Samples"
|
|
726
|
+
}
|
|
727
|
+
},
|
|
728
|
+
"title": "SearchResult",
|
|
729
|
+
"type": "object"
|
|
730
|
+
}
|
|
731
|
+
},
|
|
732
|
+
"title": "SearchOut"
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
"name": "catalog_request",
|
|
737
|
+
"description": "The catalog doesn't have what you need? File a tool request — one sentence saying what capability or provider is missing. Requests are the demand signal that decides which provider gets added next. Use AFTER catalog_search comes up empty, not instead of it.",
|
|
738
|
+
"inputSchema": {
|
|
739
|
+
"type": "object",
|
|
740
|
+
"properties": {
|
|
741
|
+
"capability": {
|
|
742
|
+
"title": "Capability",
|
|
743
|
+
"type": "string"
|
|
744
|
+
},
|
|
745
|
+
"note": {
|
|
746
|
+
"default": "",
|
|
747
|
+
"title": "Note",
|
|
748
|
+
"type": "string"
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
"required": [
|
|
752
|
+
"capability"
|
|
753
|
+
],
|
|
754
|
+
"title": "catalog_requestArguments"
|
|
755
|
+
},
|
|
756
|
+
"outputSchema": {
|
|
757
|
+
"type": "object",
|
|
758
|
+
"properties": {
|
|
759
|
+
"id": {
|
|
760
|
+
"anyOf": [
|
|
761
|
+
{
|
|
762
|
+
"type": "integer"
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
"type": "null"
|
|
766
|
+
}
|
|
767
|
+
],
|
|
768
|
+
"title": "Id"
|
|
769
|
+
},
|
|
770
|
+
"status": {
|
|
771
|
+
"anyOf": [
|
|
772
|
+
{
|
|
773
|
+
"type": "string"
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"type": "null"
|
|
777
|
+
}
|
|
778
|
+
],
|
|
779
|
+
"title": "Status"
|
|
780
|
+
},
|
|
781
|
+
"note": {
|
|
782
|
+
"anyOf": [
|
|
783
|
+
{
|
|
784
|
+
"type": "string"
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"type": "null"
|
|
788
|
+
}
|
|
789
|
+
],
|
|
790
|
+
"title": "Note"
|
|
791
|
+
},
|
|
792
|
+
"error": {
|
|
793
|
+
"anyOf": [
|
|
794
|
+
{
|
|
795
|
+
"type": "string"
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"type": "null"
|
|
799
|
+
}
|
|
800
|
+
],
|
|
801
|
+
"title": "Error"
|
|
802
|
+
},
|
|
803
|
+
"detail": {
|
|
804
|
+
"anyOf": [
|
|
805
|
+
{
|
|
806
|
+
"type": "string"
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"type": "null"
|
|
810
|
+
}
|
|
811
|
+
],
|
|
812
|
+
"title": "Detail"
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"title": "RequestOut"
|
|
816
|
+
}
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
"name": "catalog_get",
|
|
820
|
+
"description": "One endpoint in full: its parameters, the exact price per call, whether treg serves it on its own key, and the other providers that answer the same capability — with the success rate and speed treg has measured across real calls. Read this BEFORE call() so you can tell the human what it will cost.",
|
|
821
|
+
"inputSchema": {
|
|
822
|
+
"type": "object",
|
|
823
|
+
"properties": {
|
|
824
|
+
"endpoint_id": {
|
|
825
|
+
"title": "Endpoint Id",
|
|
826
|
+
"type": "string"
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"required": [
|
|
830
|
+
"endpoint_id"
|
|
831
|
+
],
|
|
832
|
+
"title": "catalog_getArguments"
|
|
833
|
+
},
|
|
834
|
+
"outputSchema": {
|
|
835
|
+
"type": "object",
|
|
836
|
+
"properties": {
|
|
837
|
+
"endpoint": {
|
|
838
|
+
"anyOf": [
|
|
839
|
+
{
|
|
840
|
+
"additionalProperties": true,
|
|
841
|
+
"type": "object"
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"type": "null"
|
|
845
|
+
}
|
|
846
|
+
],
|
|
847
|
+
"title": "Endpoint"
|
|
848
|
+
},
|
|
849
|
+
"provider": {
|
|
850
|
+
"anyOf": [
|
|
851
|
+
{
|
|
852
|
+
"additionalProperties": true,
|
|
853
|
+
"type": "object"
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"type": "null"
|
|
857
|
+
}
|
|
858
|
+
],
|
|
859
|
+
"title": "Provider"
|
|
860
|
+
},
|
|
861
|
+
"siblings": {
|
|
862
|
+
"anyOf": [
|
|
863
|
+
{
|
|
864
|
+
"items": {
|
|
865
|
+
"additionalProperties": true,
|
|
866
|
+
"type": "object"
|
|
867
|
+
},
|
|
868
|
+
"type": "array"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"type": "null"
|
|
872
|
+
}
|
|
873
|
+
],
|
|
874
|
+
"title": "Siblings"
|
|
875
|
+
},
|
|
876
|
+
"call_template": {
|
|
877
|
+
"anyOf": [
|
|
878
|
+
{
|
|
879
|
+
"type": "string"
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"type": "null"
|
|
883
|
+
}
|
|
884
|
+
],
|
|
885
|
+
"title": "Call Template"
|
|
886
|
+
},
|
|
887
|
+
"example_response": {
|
|
888
|
+
"title": "Example Response"
|
|
889
|
+
},
|
|
890
|
+
"hints": {
|
|
891
|
+
"anyOf": [
|
|
892
|
+
{
|
|
893
|
+
"items": {
|
|
894
|
+
"type": "string"
|
|
895
|
+
},
|
|
896
|
+
"type": "array"
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
"type": "null"
|
|
900
|
+
}
|
|
901
|
+
],
|
|
902
|
+
"title": "Hints"
|
|
903
|
+
},
|
|
904
|
+
"did_you_mean": {
|
|
905
|
+
"anyOf": [
|
|
906
|
+
{
|
|
907
|
+
"items": {
|
|
908
|
+
"type": "string"
|
|
909
|
+
},
|
|
910
|
+
"type": "array"
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
"type": "null"
|
|
914
|
+
}
|
|
915
|
+
],
|
|
916
|
+
"title": "Did You Mean"
|
|
917
|
+
},
|
|
918
|
+
"error": {
|
|
919
|
+
"anyOf": [
|
|
920
|
+
{
|
|
921
|
+
"type": "string"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"type": "null"
|
|
925
|
+
}
|
|
926
|
+
],
|
|
927
|
+
"title": "Error"
|
|
928
|
+
},
|
|
929
|
+
"detail": {
|
|
930
|
+
"anyOf": [
|
|
931
|
+
{
|
|
932
|
+
"type": "string"
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"type": "null"
|
|
936
|
+
}
|
|
937
|
+
],
|
|
938
|
+
"title": "Detail"
|
|
939
|
+
}
|
|
940
|
+
},
|
|
941
|
+
"title": "CatalogGetOut"
|
|
942
|
+
}
|
|
943
|
+
},
|
|
944
|
+
{
|
|
945
|
+
"name": "call",
|
|
946
|
+
"description": "Call something through treg. `params` is the request body for a POST (an object, or an ARRAY of task objects for providers like DataForSEO that expect one) and the query string for a GET. Either a CATALOG endpoint by its id (from catalog_search), or one of THIS TEAM'S own tools as '<tool-name>/<path>' (from my_tools) — e.g. 'render/v1/services'. treg injects the credential server-side and relays the provider's response unchanged, so you never hold an API key. Catalog calls on treg's key are metered from the team's prepaid balance; a team's own tool is never metered. Tell the human the price (from catalog_get) before calling anything that costs more than a cent.\n\n`idempotency_key`: pass the SAME key when you are repeating a call whose answer you did not receive — a timeout, a dropped connection, an error on your side after the request went out. treg returns the stored answer, does not call the provider again, and charges nothing the second time; the result carries `replayed: true`. Use a NEW key (or none) for genuinely new work, even when the parameters are identical: repeating a search to see what changed is a new call, not a retry, and reusing the key would hand you the old answer. Reusing one key for a DIFFERENT request is refused rather than answered.\n\nFor requests `params` can't express, the explicit slots mirror the CLI's flags: `query` is ALWAYS the query string (a list value expands to repeated keys), `body` is ALWAYS the request body (object/array → JSON; a STRING is sent raw, with `content_type` naming what it is — sniffed as application/json when it parses as JSON), and `headers` adds upstream request headers an endpoint needs per-call (e.g. Google Ads' login-customer-id); injected credentials always win over them. Use `query` + `body` together for endpoints that split a POST across both (Bright Data's ?dataset_id=… + array body). Giving `body` implies POST. Multipart file uploads aren't supported here — run (or tell the human to run) the CLI: `treg call <endpoint> --upload name=@/path/to/file`.\n\nQuery values are sent the way HTTP spells them: booleans as `true`/`false`, nested objects as compact JSON. A null query value is OMITTED from the query string — if an upstream distinguishes an absent parameter from an empty one, send the empty string explicitly rather than null.",
|
|
947
|
+
"inputSchema": {
|
|
948
|
+
"type": "object",
|
|
949
|
+
"properties": {
|
|
950
|
+
"endpoint_id": {
|
|
951
|
+
"title": "Endpoint Id",
|
|
952
|
+
"type": "string"
|
|
953
|
+
},
|
|
954
|
+
"params": {
|
|
955
|
+
"anyOf": [
|
|
956
|
+
{
|
|
957
|
+
"additionalProperties": true,
|
|
958
|
+
"type": "object"
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
"items": {},
|
|
962
|
+
"type": "array"
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"type": "null"
|
|
966
|
+
}
|
|
967
|
+
],
|
|
968
|
+
"default": null,
|
|
969
|
+
"title": "Params"
|
|
970
|
+
},
|
|
971
|
+
"method": {
|
|
972
|
+
"anyOf": [
|
|
973
|
+
{
|
|
974
|
+
"type": "string"
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"type": "null"
|
|
978
|
+
}
|
|
979
|
+
],
|
|
980
|
+
"default": null,
|
|
981
|
+
"title": "Method"
|
|
982
|
+
},
|
|
983
|
+
"idempotency_key": {
|
|
984
|
+
"anyOf": [
|
|
985
|
+
{
|
|
986
|
+
"type": "string"
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
"type": "null"
|
|
990
|
+
}
|
|
991
|
+
],
|
|
992
|
+
"default": null,
|
|
993
|
+
"title": "Idempotency Key"
|
|
994
|
+
},
|
|
995
|
+
"query": {
|
|
996
|
+
"anyOf": [
|
|
997
|
+
{
|
|
998
|
+
"additionalProperties": true,
|
|
999
|
+
"type": "object"
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
"type": "null"
|
|
1003
|
+
}
|
|
1004
|
+
],
|
|
1005
|
+
"default": null,
|
|
1006
|
+
"title": "Query"
|
|
1007
|
+
},
|
|
1008
|
+
"body": {
|
|
1009
|
+
"anyOf": [
|
|
1010
|
+
{
|
|
1011
|
+
"additionalProperties": true,
|
|
1012
|
+
"type": "object"
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"items": {},
|
|
1016
|
+
"type": "array"
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
"type": "string"
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
"type": "null"
|
|
1023
|
+
}
|
|
1024
|
+
],
|
|
1025
|
+
"default": null,
|
|
1026
|
+
"title": "Body"
|
|
1027
|
+
},
|
|
1028
|
+
"headers": {
|
|
1029
|
+
"anyOf": [
|
|
1030
|
+
{
|
|
1031
|
+
"additionalProperties": true,
|
|
1032
|
+
"type": "object"
|
|
1033
|
+
},
|
|
1034
|
+
{
|
|
1035
|
+
"type": "null"
|
|
1036
|
+
}
|
|
1037
|
+
],
|
|
1038
|
+
"default": null,
|
|
1039
|
+
"title": "Headers"
|
|
1040
|
+
},
|
|
1041
|
+
"content_type": {
|
|
1042
|
+
"anyOf": [
|
|
1043
|
+
{
|
|
1044
|
+
"type": "string"
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"type": "null"
|
|
1048
|
+
}
|
|
1049
|
+
],
|
|
1050
|
+
"default": null,
|
|
1051
|
+
"title": "Content Type"
|
|
1052
|
+
},
|
|
1053
|
+
"authorization_method": {
|
|
1054
|
+
"anyOf": [
|
|
1055
|
+
{
|
|
1056
|
+
"type": "string"
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"type": "null"
|
|
1060
|
+
}
|
|
1061
|
+
],
|
|
1062
|
+
"default": null,
|
|
1063
|
+
"title": "Authorization Method"
|
|
1064
|
+
}
|
|
1065
|
+
},
|
|
1066
|
+
"required": [
|
|
1067
|
+
"endpoint_id"
|
|
1068
|
+
],
|
|
1069
|
+
"title": "callArguments"
|
|
1070
|
+
},
|
|
1071
|
+
"outputSchema": {
|
|
1072
|
+
"type": "object",
|
|
1073
|
+
"properties": {
|
|
1074
|
+
"status": {
|
|
1075
|
+
"anyOf": [
|
|
1076
|
+
{
|
|
1077
|
+
"type": "integer"
|
|
1078
|
+
},
|
|
1079
|
+
{
|
|
1080
|
+
"type": "null"
|
|
1081
|
+
}
|
|
1082
|
+
],
|
|
1083
|
+
"title": "Status"
|
|
1084
|
+
},
|
|
1085
|
+
"endpoint_id": {
|
|
1086
|
+
"anyOf": [
|
|
1087
|
+
{
|
|
1088
|
+
"type": "string"
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"type": "null"
|
|
1092
|
+
}
|
|
1093
|
+
],
|
|
1094
|
+
"title": "Endpoint Id"
|
|
1095
|
+
},
|
|
1096
|
+
"replayed": {
|
|
1097
|
+
"anyOf": [
|
|
1098
|
+
{
|
|
1099
|
+
"type": "boolean"
|
|
1100
|
+
},
|
|
1101
|
+
{
|
|
1102
|
+
"type": "null"
|
|
1103
|
+
}
|
|
1104
|
+
],
|
|
1105
|
+
"title": "Replayed"
|
|
1106
|
+
},
|
|
1107
|
+
"body": {
|
|
1108
|
+
"title": "Body"
|
|
1109
|
+
},
|
|
1110
|
+
"cost_usd": {
|
|
1111
|
+
"anyOf": [
|
|
1112
|
+
{
|
|
1113
|
+
"type": "number"
|
|
1114
|
+
},
|
|
1115
|
+
{
|
|
1116
|
+
"type": "null"
|
|
1117
|
+
}
|
|
1118
|
+
],
|
|
1119
|
+
"title": "Cost Usd"
|
|
1120
|
+
},
|
|
1121
|
+
"whose_error": {
|
|
1122
|
+
"anyOf": [
|
|
1123
|
+
{
|
|
1124
|
+
"type": "string"
|
|
1125
|
+
},
|
|
1126
|
+
{
|
|
1127
|
+
"type": "null"
|
|
1128
|
+
}
|
|
1129
|
+
],
|
|
1130
|
+
"title": "Whose Error"
|
|
1131
|
+
},
|
|
1132
|
+
"hint": {
|
|
1133
|
+
"anyOf": [
|
|
1134
|
+
{
|
|
1135
|
+
"type": "string"
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"type": "null"
|
|
1139
|
+
}
|
|
1140
|
+
],
|
|
1141
|
+
"title": "Hint"
|
|
1142
|
+
},
|
|
1143
|
+
"did_you_mean": {
|
|
1144
|
+
"anyOf": [
|
|
1145
|
+
{
|
|
1146
|
+
"items": {
|
|
1147
|
+
"type": "string"
|
|
1148
|
+
},
|
|
1149
|
+
"type": "array"
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
"type": "null"
|
|
1153
|
+
}
|
|
1154
|
+
],
|
|
1155
|
+
"title": "Did You Mean"
|
|
1156
|
+
},
|
|
1157
|
+
"error": {
|
|
1158
|
+
"anyOf": [
|
|
1159
|
+
{
|
|
1160
|
+
"type": "string"
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"type": "null"
|
|
1164
|
+
}
|
|
1165
|
+
],
|
|
1166
|
+
"title": "Error"
|
|
1167
|
+
},
|
|
1168
|
+
"detail": {
|
|
1169
|
+
"anyOf": [
|
|
1170
|
+
{
|
|
1171
|
+
"type": "string"
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
"type": "null"
|
|
1175
|
+
}
|
|
1176
|
+
],
|
|
1177
|
+
"title": "Detail"
|
|
1178
|
+
}
|
|
1179
|
+
},
|
|
1180
|
+
"title": "CallOut"
|
|
1181
|
+
}
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
"name": "balance",
|
|
1185
|
+
"description": "The team's prepaid balance in USD, and any spend currently in flight. Check it when a call is refused for funds, or before a job that will make many calls.",
|
|
1186
|
+
"inputSchema": {
|
|
1187
|
+
"type": "object",
|
|
1188
|
+
"properties": {},
|
|
1189
|
+
"title": "balanceArguments"
|
|
1190
|
+
},
|
|
1191
|
+
"outputSchema": {
|
|
1192
|
+
"type": "object",
|
|
1193
|
+
"properties": {
|
|
1194
|
+
"team": {
|
|
1195
|
+
"anyOf": [
|
|
1196
|
+
{
|
|
1197
|
+
"type": "string"
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
"type": "null"
|
|
1201
|
+
}
|
|
1202
|
+
],
|
|
1203
|
+
"title": "Team"
|
|
1204
|
+
},
|
|
1205
|
+
"team_name": {
|
|
1206
|
+
"anyOf": [
|
|
1207
|
+
{
|
|
1208
|
+
"type": "string"
|
|
1209
|
+
},
|
|
1210
|
+
{
|
|
1211
|
+
"type": "null"
|
|
1212
|
+
}
|
|
1213
|
+
],
|
|
1214
|
+
"title": "Team Name"
|
|
1215
|
+
},
|
|
1216
|
+
"identity": {
|
|
1217
|
+
"anyOf": [
|
|
1218
|
+
{
|
|
1219
|
+
"type": "string"
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"type": "null"
|
|
1223
|
+
}
|
|
1224
|
+
],
|
|
1225
|
+
"title": "Identity"
|
|
1226
|
+
},
|
|
1227
|
+
"balance_usd": {
|
|
1228
|
+
"anyOf": [
|
|
1229
|
+
{
|
|
1230
|
+
"type": "number"
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"type": "null"
|
|
1234
|
+
}
|
|
1235
|
+
],
|
|
1236
|
+
"title": "Balance Usd"
|
|
1237
|
+
},
|
|
1238
|
+
"balance_micro": {
|
|
1239
|
+
"anyOf": [
|
|
1240
|
+
{
|
|
1241
|
+
"type": "integer"
|
|
1242
|
+
},
|
|
1243
|
+
{
|
|
1244
|
+
"type": "null"
|
|
1245
|
+
}
|
|
1246
|
+
],
|
|
1247
|
+
"title": "Balance Micro"
|
|
1248
|
+
},
|
|
1249
|
+
"holds_micro": {
|
|
1250
|
+
"anyOf": [
|
|
1251
|
+
{
|
|
1252
|
+
"type": "integer"
|
|
1253
|
+
},
|
|
1254
|
+
{
|
|
1255
|
+
"type": "null"
|
|
1256
|
+
}
|
|
1257
|
+
],
|
|
1258
|
+
"title": "Holds Micro"
|
|
1259
|
+
},
|
|
1260
|
+
"error": {
|
|
1261
|
+
"anyOf": [
|
|
1262
|
+
{
|
|
1263
|
+
"type": "string"
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"type": "null"
|
|
1267
|
+
}
|
|
1268
|
+
],
|
|
1269
|
+
"title": "Error"
|
|
1270
|
+
},
|
|
1271
|
+
"detail": {
|
|
1272
|
+
"anyOf": [
|
|
1273
|
+
{
|
|
1274
|
+
"type": "string"
|
|
1275
|
+
},
|
|
1276
|
+
{
|
|
1277
|
+
"type": "null"
|
|
1278
|
+
}
|
|
1279
|
+
],
|
|
1280
|
+
"title": "Detail"
|
|
1281
|
+
},
|
|
1282
|
+
"teams": {
|
|
1283
|
+
"anyOf": [
|
|
1284
|
+
{
|
|
1285
|
+
"items": {
|
|
1286
|
+
"type": "string"
|
|
1287
|
+
},
|
|
1288
|
+
"type": "array"
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
"type": "null"
|
|
1292
|
+
}
|
|
1293
|
+
],
|
|
1294
|
+
"title": "Teams"
|
|
1295
|
+
},
|
|
1296
|
+
"hint": {
|
|
1297
|
+
"anyOf": [
|
|
1298
|
+
{
|
|
1299
|
+
"type": "string"
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
"type": "null"
|
|
1303
|
+
}
|
|
1304
|
+
],
|
|
1305
|
+
"title": "Hint"
|
|
1306
|
+
}
|
|
1307
|
+
},
|
|
1308
|
+
"title": "BalanceOut"
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
"name": "my_tools",
|
|
1313
|
+
"description": "What THIS team has registered and you can call without holding the credential: their own API keys, OAuth connections, vendor CLIs and skills. A team's own tool always wins over treg's catalog key, and those calls are never metered.",
|
|
1314
|
+
"inputSchema": {
|
|
1315
|
+
"type": "object",
|
|
1316
|
+
"properties": {},
|
|
1317
|
+
"title": "my_toolsArguments"
|
|
1318
|
+
},
|
|
1319
|
+
"outputSchema": {
|
|
1320
|
+
"type": "object",
|
|
1321
|
+
"properties": {
|
|
1322
|
+
"team": {
|
|
1323
|
+
"anyOf": [
|
|
1324
|
+
{
|
|
1325
|
+
"type": "string"
|
|
1326
|
+
},
|
|
1327
|
+
{
|
|
1328
|
+
"type": "null"
|
|
1329
|
+
}
|
|
1330
|
+
],
|
|
1331
|
+
"title": "Team"
|
|
1332
|
+
},
|
|
1333
|
+
"team_name": {
|
|
1334
|
+
"anyOf": [
|
|
1335
|
+
{
|
|
1336
|
+
"type": "string"
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
"type": "null"
|
|
1340
|
+
}
|
|
1341
|
+
],
|
|
1342
|
+
"title": "Team Name"
|
|
1343
|
+
},
|
|
1344
|
+
"identity": {
|
|
1345
|
+
"anyOf": [
|
|
1346
|
+
{
|
|
1347
|
+
"type": "string"
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
"type": "null"
|
|
1351
|
+
}
|
|
1352
|
+
],
|
|
1353
|
+
"title": "Identity"
|
|
1354
|
+
},
|
|
1355
|
+
"count": {
|
|
1356
|
+
"anyOf": [
|
|
1357
|
+
{
|
|
1358
|
+
"type": "integer"
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
"type": "null"
|
|
1362
|
+
}
|
|
1363
|
+
],
|
|
1364
|
+
"title": "Count"
|
|
1365
|
+
},
|
|
1366
|
+
"tools": {
|
|
1367
|
+
"anyOf": [
|
|
1368
|
+
{
|
|
1369
|
+
"items": {
|
|
1370
|
+
"$ref": "#/$defs/TeamTool"
|
|
1371
|
+
},
|
|
1372
|
+
"type": "array"
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"type": "null"
|
|
1376
|
+
}
|
|
1377
|
+
],
|
|
1378
|
+
"title": "Tools"
|
|
1379
|
+
},
|
|
1380
|
+
"error": {
|
|
1381
|
+
"anyOf": [
|
|
1382
|
+
{
|
|
1383
|
+
"type": "string"
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
"type": "null"
|
|
1387
|
+
}
|
|
1388
|
+
],
|
|
1389
|
+
"title": "Error"
|
|
1390
|
+
},
|
|
1391
|
+
"detail": {
|
|
1392
|
+
"anyOf": [
|
|
1393
|
+
{
|
|
1394
|
+
"type": "string"
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
"type": "null"
|
|
1398
|
+
}
|
|
1399
|
+
],
|
|
1400
|
+
"title": "Detail"
|
|
1401
|
+
},
|
|
1402
|
+
"teams": {
|
|
1403
|
+
"anyOf": [
|
|
1404
|
+
{
|
|
1405
|
+
"items": {
|
|
1406
|
+
"type": "string"
|
|
1407
|
+
},
|
|
1408
|
+
"type": "array"
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"type": "null"
|
|
1412
|
+
}
|
|
1413
|
+
],
|
|
1414
|
+
"title": "Teams"
|
|
1415
|
+
},
|
|
1416
|
+
"hint": {
|
|
1417
|
+
"anyOf": [
|
|
1418
|
+
{
|
|
1419
|
+
"type": "string"
|
|
1420
|
+
},
|
|
1421
|
+
{
|
|
1422
|
+
"type": "null"
|
|
1423
|
+
}
|
|
1424
|
+
],
|
|
1425
|
+
"title": "Hint"
|
|
1426
|
+
}
|
|
1427
|
+
},
|
|
1428
|
+
"$defs": {
|
|
1429
|
+
"TeamTool": {
|
|
1430
|
+
"properties": {
|
|
1431
|
+
"name": {
|
|
1432
|
+
"anyOf": [
|
|
1433
|
+
{
|
|
1434
|
+
"type": "string"
|
|
1435
|
+
},
|
|
1436
|
+
{
|
|
1437
|
+
"type": "null"
|
|
1438
|
+
}
|
|
1439
|
+
],
|
|
1440
|
+
"title": "Name"
|
|
1441
|
+
},
|
|
1442
|
+
"base_url": {
|
|
1443
|
+
"anyOf": [
|
|
1444
|
+
{
|
|
1445
|
+
"type": "string"
|
|
1446
|
+
},
|
|
1447
|
+
{
|
|
1448
|
+
"type": "null"
|
|
1449
|
+
}
|
|
1450
|
+
],
|
|
1451
|
+
"title": "Base Url"
|
|
1452
|
+
},
|
|
1453
|
+
"description": {
|
|
1454
|
+
"anyOf": [
|
|
1455
|
+
{
|
|
1456
|
+
"type": "string"
|
|
1457
|
+
},
|
|
1458
|
+
{
|
|
1459
|
+
"type": "null"
|
|
1460
|
+
}
|
|
1461
|
+
],
|
|
1462
|
+
"title": "Description"
|
|
1463
|
+
}
|
|
1464
|
+
},
|
|
1465
|
+
"title": "TeamTool",
|
|
1466
|
+
"type": "object"
|
|
1467
|
+
}
|
|
1468
|
+
},
|
|
1469
|
+
"title": "MyToolsOut"
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
]
|
|
1473
|
+
}
|
|
1474
|
+
}
|
|
1475
|
+
}
|