@superagnt/attio-crm 2.0.2
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 +80 -0
- package/index.js +2597 -0
- package/openclaw.plugin.json +16 -0
- package/package.json +49 -0
package/index.js
ADDED
|
@@ -0,0 +1,2597 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attio Integration — OpenClaw plugin
|
|
3
|
+
* Auto-generated by @superagnt/clawhub. Do not edit by hand.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { homedir as _homedir } from 'node:os'
|
|
7
|
+
import { join as _join } from 'node:path'
|
|
8
|
+
import { existsSync as _existsSync, readFileSync as _readFileSync } from 'node:fs'
|
|
9
|
+
|
|
10
|
+
const BASE_URL = 'https://api.superagnt.com/v1/connections/attio'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// ── Auth Module (inlined) ────────────────────────────────────────────────────
|
|
14
|
+
|
|
15
|
+
function getConfigPath() {
|
|
16
|
+
return _join(_homedir(), '.superagnt', 'config.json')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function readAgntConfig() {
|
|
20
|
+
const configFile = getConfigPath()
|
|
21
|
+
if (!_existsSync(configFile)) return null
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(_readFileSync(configFile, 'utf-8'))
|
|
24
|
+
} catch {
|
|
25
|
+
return null
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// ── End Auth Module ──────────────────────────────────────────────────────────
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
// ── CLI Module (inlined) ─────────────────────────────────────────────────────
|
|
33
|
+
|
|
34
|
+
function maskApiKey(key) {
|
|
35
|
+
if (!key || typeof key !== 'string') return '(none)'
|
|
36
|
+
const k = key.trim()
|
|
37
|
+
if (k.length <= 8) return k.slice(0, 2) + '…'
|
|
38
|
+
return k.slice(0, 6) + '…' + k.slice(-4)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function registerAgntCli(api) {
|
|
42
|
+
api.registerCli(
|
|
43
|
+
({ program }) => {
|
|
44
|
+
const cmd = program
|
|
45
|
+
.command('superagnt')
|
|
46
|
+
.description('superagnt social data API (status, doctor)')
|
|
47
|
+
|
|
48
|
+
cmd
|
|
49
|
+
.command('status')
|
|
50
|
+
.description('Show whether an API key is configured (masked)')
|
|
51
|
+
.action(async () => {
|
|
52
|
+
const cfg = readAgntConfig()
|
|
53
|
+
const key = cfg?.apiKey
|
|
54
|
+
|
|
55
|
+
console.log('\nsuperagnt status\n')
|
|
56
|
+
if (!key) {
|
|
57
|
+
console.log(' API key: not configured')
|
|
58
|
+
console.log(' Workspace: —')
|
|
59
|
+
console.log('\n Get your API key at: https://app.superagnt.com/dashboard\n')
|
|
60
|
+
return
|
|
61
|
+
}
|
|
62
|
+
console.log(' API key: ' + maskApiKey(key) + ' (from ~/.superagnt/config.json)')
|
|
63
|
+
console.log(' Workspace: ' + (cfg?.workspaceId ?? '—'))
|
|
64
|
+
console.log('')
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
cmd
|
|
68
|
+
.command('doctor')
|
|
69
|
+
.description('Check connectivity and validate API key against api.superagnt.dev')
|
|
70
|
+
.action(async () => {
|
|
71
|
+
console.log('\nsuperagnt doctor\n')
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
const publicRes = await fetch('https://api.superagnt.com/v1/platforms')
|
|
75
|
+
console.log(' Public API: ' + (publicRes.ok ? 'OK (' + publicRes.status + ')' : 'HTTP ' + publicRes.status))
|
|
76
|
+
} catch (err) {
|
|
77
|
+
const msg = err instanceof Error ? err.message : String(err)
|
|
78
|
+
console.log(' Public API: failed — ' + msg)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const cfg = readAgntConfig()
|
|
82
|
+
const key = cfg?.apiKey
|
|
83
|
+
|
|
84
|
+
if (!key) {
|
|
85
|
+
console.log('\n Authenticated: skipped (no API key)')
|
|
86
|
+
console.log(' Get your API key at: https://app.superagnt.com/dashboard\n')
|
|
87
|
+
return
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
try {
|
|
91
|
+
const res = await fetch('https://api.superagnt.com/v1/platforms', {
|
|
92
|
+
headers: { Authorization: 'Bearer ' + key },
|
|
93
|
+
})
|
|
94
|
+
const text = await res.text()
|
|
95
|
+
let summary = 'HTTP ' + res.status
|
|
96
|
+
if (res.ok) {
|
|
97
|
+
try {
|
|
98
|
+
const json = JSON.parse(text)
|
|
99
|
+
const n = Array.isArray(json?.data) ? json.data.length : (json?.data ? Object.keys(json.data).length : 'ok')
|
|
100
|
+
summary = 'OK — platforms payload received (' + (typeof n === 'number' ? n + ' entries' : String(n)) + ')'
|
|
101
|
+
} catch {
|
|
102
|
+
summary = 'OK (' + res.status + ')'
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
console.log(' Authenticated: ' + summary)
|
|
106
|
+
if (!res.ok) {
|
|
107
|
+
console.log(' If 401, get a new key at: https://app.superagnt.com/dashboard')
|
|
108
|
+
}
|
|
109
|
+
} catch (err) {
|
|
110
|
+
const msg = err instanceof Error ? err.message : String(err)
|
|
111
|
+
console.log(' Authenticated: failed — ' + msg)
|
|
112
|
+
}
|
|
113
|
+
console.log('')
|
|
114
|
+
})
|
|
115
|
+
},
|
|
116
|
+
{ commands: ['superagnt'] },
|
|
117
|
+
)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// ── End CLI Module ───────────────────────────────────────────────────────────
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
// ── System prompt (inlined) ─────────────────────────────────────────────────
|
|
124
|
+
|
|
125
|
+
function getSystemPrompt(state) {
|
|
126
|
+
const scope = "Only the Attio integration (attio)."
|
|
127
|
+
if (state.ready && state.toolCount > 0) {
|
|
128
|
+
return (
|
|
129
|
+
'<superagnt>\n' +
|
|
130
|
+
'Ignore pretrained knowledge about superagnt tool names — use only tools that exist in this session.\n' +
|
|
131
|
+
'\n' +
|
|
132
|
+
'## What superagnt is\n' +
|
|
133
|
+
'superagnt exposes **structured social-data HTTP APIs** behind OpenClaw tools. Scope for this plugin: **' + scope + '**.\n' +
|
|
134
|
+
'\n' +
|
|
135
|
+
'## When to use superagnt tools\n' +
|
|
136
|
+
'- Use superagnt when the user needs **live social/network data** (profiles, posts, companies, comments, etc.) from supported platforms.\n' +
|
|
137
|
+
'- Prefer **discovery** when unsure which endpoint fits: call public discovery (GET /v1/platforms and GET /v1/platforms/{slug}) or read tool descriptions; do not invent endpoints or parameters.\n' +
|
|
138
|
+
'\n' +
|
|
139
|
+
'## Platform selection (high level)\n' +
|
|
140
|
+
'- **linkedin** — B2B enrichment, org/person research, hiring/sales workflows\n' +
|
|
141
|
+
'- **youtube** / **tiktok** — video/creator/channel metadata and content signals\n' +
|
|
142
|
+
'- **x** / **reddit** — short-form social and community threads\n' +
|
|
143
|
+
'- **instagram** — visual/creator discovery where Instagram is the source of truth\n' +
|
|
144
|
+
'- **facebook** — pages/groups/marketplace/adjacent Facebook surface areas exposed by the API\n' +
|
|
145
|
+
'\n' +
|
|
146
|
+
'## Rules\n' +
|
|
147
|
+
'- Do **not** fabricate tool names — pick from the registered superagnt_* tools only.\n' +
|
|
148
|
+
'- If authentication fails (401), tell the user to get a new key at https://app.superagnt.com/dashboard\n' +
|
|
149
|
+
'</superagnt>'
|
|
150
|
+
)
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (state.ready && state.toolCount === 0) {
|
|
154
|
+
return (
|
|
155
|
+
'<superagnt>\n' +
|
|
156
|
+
'The superagnt plugin loaded but registered **zero** API tools. Check your OpenClaw plugin packaging and regenerate the plugin from @superagnt/clawhub.\n' +
|
|
157
|
+
'</superagnt>'
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (state.error) {
|
|
162
|
+
return (
|
|
163
|
+
'<superagnt>\n' +
|
|
164
|
+
'superagnt plugin diagnostic: ' + state.error + '\n' +
|
|
165
|
+
'Do not pretend superagnt tools exist. Ask the user to fix configuration and restart the gateway.\n' +
|
|
166
|
+
'</superagnt>'
|
|
167
|
+
)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return (
|
|
171
|
+
'<superagnt>\n' +
|
|
172
|
+
'superagnt tools are still loading. If the user asks for social data right now, ask them to wait a moment and retry.\n' +
|
|
173
|
+
'</superagnt>'
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// ── End System prompt ────────────────────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
const MCP_URL = 'https://mcp.superagnt.com/mcp'
|
|
180
|
+
|
|
181
|
+
async function mcpRpc(token, method, params) {
|
|
182
|
+
const res = await fetch(MCP_URL, {
|
|
183
|
+
method: 'POST',
|
|
184
|
+
headers: {
|
|
185
|
+
Authorization: `Bearer ${token}`,
|
|
186
|
+
'Content-Type': 'application/json',
|
|
187
|
+
Accept: 'application/json, text/event-stream',
|
|
188
|
+
},
|
|
189
|
+
body: JSON.stringify({ jsonrpc: '2.0', id: Date.now(), method, params }),
|
|
190
|
+
})
|
|
191
|
+
if (!res.ok) throw new Error(`MCP ${method} failed: HTTP ${res.status}`)
|
|
192
|
+
const data = await res.json()
|
|
193
|
+
if (data.error) throw new Error(`MCP ${method} error: ${data.error.message}`)
|
|
194
|
+
return data.result
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
async function registerLiveMcpTools(api, token) {
|
|
198
|
+
const result = await mcpRpc(token, 'tools/list', {})
|
|
199
|
+
const tools = Array.isArray(result?.tools) ? result.tools : []
|
|
200
|
+
if (tools.length === 0) throw new Error('MCP tools/list returned no tools')
|
|
201
|
+
for (const t of tools) {
|
|
202
|
+
api.registerTool({
|
|
203
|
+
name: t.name,
|
|
204
|
+
description: t.description,
|
|
205
|
+
inputSchema: t.inputSchema,
|
|
206
|
+
execute: async (input) => {
|
|
207
|
+
const args = parseToolInput(input)
|
|
208
|
+
const r = await mcpRpc(token, 'tools/call', { name: t.name, arguments: args })
|
|
209
|
+
if (r && r.structuredContent !== undefined) return r.structuredContent
|
|
210
|
+
const text = Array.isArray(r?.content) ? r.content.find((c) => c.type === 'text')?.text : undefined
|
|
211
|
+
if (text === undefined) return r
|
|
212
|
+
try { return JSON.parse(text) } catch { return text }
|
|
213
|
+
},
|
|
214
|
+
})
|
|
215
|
+
}
|
|
216
|
+
return tools.length
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function parseToolInput(input) {
|
|
220
|
+
if (input == null) return {}
|
|
221
|
+
if (typeof input === 'object' && !Array.isArray(input)) return input
|
|
222
|
+
if (typeof input === 'string') {
|
|
223
|
+
const trimmed = input.trim()
|
|
224
|
+
if (trimmed.startsWith('{')) {
|
|
225
|
+
try { const parsed = JSON.parse(trimmed); if (typeof parsed === 'object' && parsed && !Array.isArray(parsed)) return parsed } catch {}
|
|
226
|
+
}
|
|
227
|
+
throw new Error('Invalid tool input: expected a JSON object with named parameters, got string: ' + trimmed.slice(0, 80))
|
|
228
|
+
}
|
|
229
|
+
throw new Error('Invalid tool input: expected a JSON object, got ' + typeof input)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function substitutePathParams(path, source) {
|
|
233
|
+
if (!source || typeof source !== 'object' || Array.isArray(source)) {
|
|
234
|
+
return { path, consumed: new Set() }
|
|
235
|
+
}
|
|
236
|
+
const consumed = new Set()
|
|
237
|
+
const next = path.replace(/\{([^/{}]+)\}/g, (_, name) => {
|
|
238
|
+
const v = source[name]
|
|
239
|
+
if (v === undefined || v === null || v === '') return `{${name}}`
|
|
240
|
+
consumed.add(name)
|
|
241
|
+
return encodeURIComponent(String(v))
|
|
242
|
+
})
|
|
243
|
+
return { path: next, consumed }
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
async function callSuperagnt(apiKey, method, path, query, body) {
|
|
247
|
+
const params = (query && typeof query === 'object' && !Array.isArray(query)) ? query : body
|
|
248
|
+
const { path: resolvedPath, consumed } = substitutePathParams(path, params)
|
|
249
|
+
const url = new URL(`${BASE_URL}${resolvedPath}`)
|
|
250
|
+
if (query && typeof query === 'object' && !Array.isArray(query)) {
|
|
251
|
+
for (const [k, v] of Object.entries(query)) {
|
|
252
|
+
if (consumed.has(k)) continue
|
|
253
|
+
if (v !== undefined && v !== '') url.searchParams.set(k, String(v))
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const filteredBody = body && typeof body === 'object' && !Array.isArray(body)
|
|
257
|
+
? Object.fromEntries(Object.entries(body).filter(([k]) => !consumed.has(k)))
|
|
258
|
+
: body
|
|
259
|
+
const res = await fetch(url.toString(), {
|
|
260
|
+
method,
|
|
261
|
+
headers: { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json' },
|
|
262
|
+
body: filteredBody ? JSON.stringify(filteredBody) : undefined,
|
|
263
|
+
})
|
|
264
|
+
if (res.status === 401) {
|
|
265
|
+
return { error: 'Invalid or expired API key. Get a new key at https://app.superagnt.com/dashboard' }
|
|
266
|
+
}
|
|
267
|
+
return res.json()
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
export default async function register(api) {
|
|
271
|
+
const apiKey = api.pluginConfig.apiKey || process.env.SUPERAGNT_API_KEY || readAgntConfig()?.apiKey
|
|
272
|
+
const mcpToken = api.pluginConfig.mcpToken || process.env.SUPERAGNT_MCP_TOKEN
|
|
273
|
+
|
|
274
|
+
function ensureApiKey() {
|
|
275
|
+
if (apiKey) return apiKey
|
|
276
|
+
throw new Error(
|
|
277
|
+
'[attio-crm] No API key configured. ' +
|
|
278
|
+
'Get your key at https://app.superagnt.com/dashboard and either:\n' +
|
|
279
|
+
' 1. Export it as SUPERAGNT_API_KEY, or\n' +
|
|
280
|
+
' 2. Add apiKey to your plugin config'
|
|
281
|
+
)
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
registerAgntCli(api)
|
|
285
|
+
|
|
286
|
+
const promptState = { toolCount: 0, error: '', ready: false }
|
|
287
|
+
api.on('before_prompt_build', () => ({
|
|
288
|
+
prependSystemContext: getSystemPrompt(promptState),
|
|
289
|
+
}))
|
|
290
|
+
|
|
291
|
+
// Live MCP mode: a workspace MCP token upgrades this plugin to the server's
|
|
292
|
+
// own tool surface, fetched fresh at load — it grows with agnt_tools_enable
|
|
293
|
+
// and never goes stale. Any failure falls back to the baked toolset below.
|
|
294
|
+
if (mcpToken) {
|
|
295
|
+
try {
|
|
296
|
+
promptState.toolCount = await registerLiveMcpTools(api, mcpToken)
|
|
297
|
+
promptState.ready = true
|
|
298
|
+
return
|
|
299
|
+
} catch (err) {
|
|
300
|
+
promptState.error = 'Live MCP connect failed (' + (err && err.message ? err.message : err) + '); using the built-in toolset.'
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
api.registerTool({
|
|
305
|
+
name: 'superagnt_connection_attio_get_v2_objects',
|
|
306
|
+
description: "List objects",
|
|
307
|
+
inputSchema: {
|
|
308
|
+
"type": "object",
|
|
309
|
+
"properties": {}
|
|
310
|
+
},
|
|
311
|
+
execute: async (input) => {
|
|
312
|
+
const key = await ensureApiKey()
|
|
313
|
+
const params = parseToolInput(input)
|
|
314
|
+
return callSuperagnt(key, 'GET', '/v2/objects', params)
|
|
315
|
+
},
|
|
316
|
+
})
|
|
317
|
+
|
|
318
|
+
api.registerTool({
|
|
319
|
+
name: 'superagnt_connection_attio_post_v2_objects',
|
|
320
|
+
description: "Create an object",
|
|
321
|
+
inputSchema: {
|
|
322
|
+
"type": "object",
|
|
323
|
+
"properties": {
|
|
324
|
+
"data": {
|
|
325
|
+
"type": "object",
|
|
326
|
+
"description": "data"
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"required": [
|
|
330
|
+
"data"
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
execute: async (input) => {
|
|
334
|
+
const key = await ensureApiKey()
|
|
335
|
+
const params = parseToolInput(input)
|
|
336
|
+
return callSuperagnt(key, 'POST', '/v2/objects', undefined, params)
|
|
337
|
+
},
|
|
338
|
+
})
|
|
339
|
+
|
|
340
|
+
api.registerTool({
|
|
341
|
+
name: 'superagnt_connection_attio_get_v2_objects__object_',
|
|
342
|
+
description: "Get an object",
|
|
343
|
+
inputSchema: {
|
|
344
|
+
"type": "object",
|
|
345
|
+
"properties": {
|
|
346
|
+
"object": {
|
|
347
|
+
"type": "string",
|
|
348
|
+
"description": "object"
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"required": [
|
|
352
|
+
"object"
|
|
353
|
+
]
|
|
354
|
+
},
|
|
355
|
+
execute: async (input) => {
|
|
356
|
+
const key = await ensureApiKey()
|
|
357
|
+
const params = parseToolInput(input)
|
|
358
|
+
return callSuperagnt(key, 'GET', '/v2/objects/{object}', params)
|
|
359
|
+
},
|
|
360
|
+
})
|
|
361
|
+
|
|
362
|
+
api.registerTool({
|
|
363
|
+
name: 'superagnt_connection_attio_patch_v2_objects__object_',
|
|
364
|
+
description: "Update an object",
|
|
365
|
+
inputSchema: {
|
|
366
|
+
"type": "object",
|
|
367
|
+
"properties": {
|
|
368
|
+
"object": {
|
|
369
|
+
"type": "string",
|
|
370
|
+
"description": "object"
|
|
371
|
+
},
|
|
372
|
+
"data": {
|
|
373
|
+
"type": "object",
|
|
374
|
+
"description": "data"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"required": [
|
|
378
|
+
"object",
|
|
379
|
+
"data"
|
|
380
|
+
]
|
|
381
|
+
},
|
|
382
|
+
execute: async (input) => {
|
|
383
|
+
const key = await ensureApiKey()
|
|
384
|
+
const params = parseToolInput(input)
|
|
385
|
+
return callSuperagnt(key, 'PATCH', '/v2/objects/{object}', undefined, params)
|
|
386
|
+
},
|
|
387
|
+
})
|
|
388
|
+
|
|
389
|
+
api.registerTool({
|
|
390
|
+
name: 'superagnt_connection_attio_get_v2_objects__object__views',
|
|
391
|
+
description: "List views for object",
|
|
392
|
+
inputSchema: {
|
|
393
|
+
"type": "object",
|
|
394
|
+
"properties": {
|
|
395
|
+
"object": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"description": "object"
|
|
398
|
+
},
|
|
399
|
+
"show_archived": {
|
|
400
|
+
"type": "boolean",
|
|
401
|
+
"description": "show_archived"
|
|
402
|
+
},
|
|
403
|
+
"limit": {
|
|
404
|
+
"type": "integer",
|
|
405
|
+
"description": "limit"
|
|
406
|
+
},
|
|
407
|
+
"cursor": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"description": "cursor"
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
"required": [
|
|
413
|
+
"object"
|
|
414
|
+
]
|
|
415
|
+
},
|
|
416
|
+
execute: async (input) => {
|
|
417
|
+
const key = await ensureApiKey()
|
|
418
|
+
const params = parseToolInput(input)
|
|
419
|
+
return callSuperagnt(key, 'GET', '/v2/objects/{object}/views', params)
|
|
420
|
+
},
|
|
421
|
+
})
|
|
422
|
+
|
|
423
|
+
api.registerTool({
|
|
424
|
+
name: 'superagnt_connection_attio_list_attributes',
|
|
425
|
+
description: "List attributes",
|
|
426
|
+
inputSchema: {
|
|
427
|
+
"type": "object",
|
|
428
|
+
"properties": {
|
|
429
|
+
"target": {
|
|
430
|
+
"type": "string",
|
|
431
|
+
"description": "target"
|
|
432
|
+
},
|
|
433
|
+
"identifier": {
|
|
434
|
+
"type": "string",
|
|
435
|
+
"description": "identifier"
|
|
436
|
+
},
|
|
437
|
+
"limit": {
|
|
438
|
+
"type": "integer",
|
|
439
|
+
"description": "limit"
|
|
440
|
+
},
|
|
441
|
+
"offset": {
|
|
442
|
+
"type": "integer",
|
|
443
|
+
"description": "offset"
|
|
444
|
+
},
|
|
445
|
+
"show_archived": {
|
|
446
|
+
"type": "boolean",
|
|
447
|
+
"description": "show_archived"
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
"required": [
|
|
451
|
+
"target",
|
|
452
|
+
"identifier"
|
|
453
|
+
]
|
|
454
|
+
},
|
|
455
|
+
execute: async (input) => {
|
|
456
|
+
const key = await ensureApiKey()
|
|
457
|
+
const params = parseToolInput(input)
|
|
458
|
+
return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes', params)
|
|
459
|
+
},
|
|
460
|
+
})
|
|
461
|
+
|
|
462
|
+
api.registerTool({
|
|
463
|
+
name: 'superagnt_connection_attio_create_attribute',
|
|
464
|
+
description: "Create an attribute",
|
|
465
|
+
inputSchema: {
|
|
466
|
+
"type": "object",
|
|
467
|
+
"properties": {
|
|
468
|
+
"target": {
|
|
469
|
+
"type": "string",
|
|
470
|
+
"description": "target"
|
|
471
|
+
},
|
|
472
|
+
"identifier": {
|
|
473
|
+
"type": "string",
|
|
474
|
+
"description": "identifier"
|
|
475
|
+
},
|
|
476
|
+
"data": {
|
|
477
|
+
"type": "object",
|
|
478
|
+
"description": "data"
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
"required": [
|
|
482
|
+
"target",
|
|
483
|
+
"identifier",
|
|
484
|
+
"data"
|
|
485
|
+
]
|
|
486
|
+
},
|
|
487
|
+
execute: async (input) => {
|
|
488
|
+
const key = await ensureApiKey()
|
|
489
|
+
const params = parseToolInput(input)
|
|
490
|
+
return callSuperagnt(key, 'POST', '/v2/{target}/{identifier}/attributes', undefined, params)
|
|
491
|
+
},
|
|
492
|
+
})
|
|
493
|
+
|
|
494
|
+
api.registerTool({
|
|
495
|
+
name: 'superagnt_connection_attio_get_attribute',
|
|
496
|
+
description: "Get an attribute",
|
|
497
|
+
inputSchema: {
|
|
498
|
+
"type": "object",
|
|
499
|
+
"properties": {
|
|
500
|
+
"target": {
|
|
501
|
+
"type": "string",
|
|
502
|
+
"description": "target"
|
|
503
|
+
},
|
|
504
|
+
"identifier": {
|
|
505
|
+
"type": "string",
|
|
506
|
+
"description": "identifier"
|
|
507
|
+
},
|
|
508
|
+
"attribute": {
|
|
509
|
+
"type": "string",
|
|
510
|
+
"description": "attribute"
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
"required": [
|
|
514
|
+
"target",
|
|
515
|
+
"identifier",
|
|
516
|
+
"attribute"
|
|
517
|
+
]
|
|
518
|
+
},
|
|
519
|
+
execute: async (input) => {
|
|
520
|
+
const key = await ensureApiKey()
|
|
521
|
+
const params = parseToolInput(input)
|
|
522
|
+
return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes/{attribute}', params)
|
|
523
|
+
},
|
|
524
|
+
})
|
|
525
|
+
|
|
526
|
+
api.registerTool({
|
|
527
|
+
name: 'superagnt_connection_attio_update_attribute',
|
|
528
|
+
description: "Update an attribute",
|
|
529
|
+
inputSchema: {
|
|
530
|
+
"type": "object",
|
|
531
|
+
"properties": {
|
|
532
|
+
"target": {
|
|
533
|
+
"type": "string",
|
|
534
|
+
"description": "target"
|
|
535
|
+
},
|
|
536
|
+
"identifier": {
|
|
537
|
+
"type": "string",
|
|
538
|
+
"description": "identifier"
|
|
539
|
+
},
|
|
540
|
+
"attribute": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "attribute"
|
|
543
|
+
},
|
|
544
|
+
"data": {
|
|
545
|
+
"type": "object",
|
|
546
|
+
"description": "data"
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
"required": [
|
|
550
|
+
"target",
|
|
551
|
+
"identifier",
|
|
552
|
+
"attribute",
|
|
553
|
+
"data"
|
|
554
|
+
]
|
|
555
|
+
},
|
|
556
|
+
execute: async (input) => {
|
|
557
|
+
const key = await ensureApiKey()
|
|
558
|
+
const params = parseToolInput(input)
|
|
559
|
+
return callSuperagnt(key, 'PATCH', '/v2/{target}/{identifier}/attributes/{attribute}', undefined, params)
|
|
560
|
+
},
|
|
561
|
+
})
|
|
562
|
+
|
|
563
|
+
api.registerTool({
|
|
564
|
+
name: 'superagnt_connection_attio_list_attribute_options',
|
|
565
|
+
description: "List select options",
|
|
566
|
+
inputSchema: {
|
|
567
|
+
"type": "object",
|
|
568
|
+
"properties": {
|
|
569
|
+
"target": {
|
|
570
|
+
"type": "string",
|
|
571
|
+
"description": "target"
|
|
572
|
+
},
|
|
573
|
+
"identifier": {
|
|
574
|
+
"type": "string",
|
|
575
|
+
"description": "identifier"
|
|
576
|
+
},
|
|
577
|
+
"attribute": {
|
|
578
|
+
"type": "string",
|
|
579
|
+
"description": "attribute"
|
|
580
|
+
},
|
|
581
|
+
"show_archived": {
|
|
582
|
+
"type": "boolean",
|
|
583
|
+
"description": "show_archived"
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
"required": [
|
|
587
|
+
"target",
|
|
588
|
+
"identifier",
|
|
589
|
+
"attribute"
|
|
590
|
+
]
|
|
591
|
+
},
|
|
592
|
+
execute: async (input) => {
|
|
593
|
+
const key = await ensureApiKey()
|
|
594
|
+
const params = parseToolInput(input)
|
|
595
|
+
return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes/{attribute}/options', params)
|
|
596
|
+
},
|
|
597
|
+
})
|
|
598
|
+
|
|
599
|
+
api.registerTool({
|
|
600
|
+
name: 'superagnt_connection_attio_create_attribute_option',
|
|
601
|
+
description: "Create a select option",
|
|
602
|
+
inputSchema: {
|
|
603
|
+
"type": "object",
|
|
604
|
+
"properties": {
|
|
605
|
+
"target": {
|
|
606
|
+
"type": "string",
|
|
607
|
+
"description": "target"
|
|
608
|
+
},
|
|
609
|
+
"identifier": {
|
|
610
|
+
"type": "string",
|
|
611
|
+
"description": "identifier"
|
|
612
|
+
},
|
|
613
|
+
"attribute": {
|
|
614
|
+
"type": "string",
|
|
615
|
+
"description": "attribute"
|
|
616
|
+
},
|
|
617
|
+
"data": {
|
|
618
|
+
"type": "object",
|
|
619
|
+
"description": "data"
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
"required": [
|
|
623
|
+
"target",
|
|
624
|
+
"identifier",
|
|
625
|
+
"attribute",
|
|
626
|
+
"data"
|
|
627
|
+
]
|
|
628
|
+
},
|
|
629
|
+
execute: async (input) => {
|
|
630
|
+
const key = await ensureApiKey()
|
|
631
|
+
const params = parseToolInput(input)
|
|
632
|
+
return callSuperagnt(key, 'POST', '/v2/{target}/{identifier}/attributes/{attribute}/options', undefined, params)
|
|
633
|
+
},
|
|
634
|
+
})
|
|
635
|
+
|
|
636
|
+
api.registerTool({
|
|
637
|
+
name: 'superagnt_connection_attio_update_attribute_option',
|
|
638
|
+
description: "Update a select option",
|
|
639
|
+
inputSchema: {
|
|
640
|
+
"type": "object",
|
|
641
|
+
"properties": {
|
|
642
|
+
"target": {
|
|
643
|
+
"type": "string",
|
|
644
|
+
"description": "target"
|
|
645
|
+
},
|
|
646
|
+
"identifier": {
|
|
647
|
+
"type": "string",
|
|
648
|
+
"description": "identifier"
|
|
649
|
+
},
|
|
650
|
+
"attribute": {
|
|
651
|
+
"type": "string",
|
|
652
|
+
"description": "attribute"
|
|
653
|
+
},
|
|
654
|
+
"option": {
|
|
655
|
+
"type": "string",
|
|
656
|
+
"description": "option"
|
|
657
|
+
},
|
|
658
|
+
"data": {
|
|
659
|
+
"type": "object",
|
|
660
|
+
"description": "data"
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
"required": [
|
|
664
|
+
"target",
|
|
665
|
+
"identifier",
|
|
666
|
+
"attribute",
|
|
667
|
+
"option",
|
|
668
|
+
"data"
|
|
669
|
+
]
|
|
670
|
+
},
|
|
671
|
+
execute: async (input) => {
|
|
672
|
+
const key = await ensureApiKey()
|
|
673
|
+
const params = parseToolInput(input)
|
|
674
|
+
return callSuperagnt(key, 'PATCH', '/v2/{target}/{identifier}/attributes/{attribute}/options/{option}', undefined, params)
|
|
675
|
+
},
|
|
676
|
+
})
|
|
677
|
+
|
|
678
|
+
api.registerTool({
|
|
679
|
+
name: 'superagnt_connection_attio_list_attribute_statuses',
|
|
680
|
+
description: "List statuses",
|
|
681
|
+
inputSchema: {
|
|
682
|
+
"type": "object",
|
|
683
|
+
"properties": {
|
|
684
|
+
"target": {
|
|
685
|
+
"type": "string",
|
|
686
|
+
"description": "target"
|
|
687
|
+
},
|
|
688
|
+
"identifier": {
|
|
689
|
+
"type": "string",
|
|
690
|
+
"description": "identifier"
|
|
691
|
+
},
|
|
692
|
+
"attribute": {
|
|
693
|
+
"type": "string",
|
|
694
|
+
"description": "attribute"
|
|
695
|
+
},
|
|
696
|
+
"show_archived": {
|
|
697
|
+
"type": "boolean",
|
|
698
|
+
"description": "show_archived"
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
"required": [
|
|
702
|
+
"target",
|
|
703
|
+
"identifier",
|
|
704
|
+
"attribute"
|
|
705
|
+
]
|
|
706
|
+
},
|
|
707
|
+
execute: async (input) => {
|
|
708
|
+
const key = await ensureApiKey()
|
|
709
|
+
const params = parseToolInput(input)
|
|
710
|
+
return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes/{attribute}/statuses', params)
|
|
711
|
+
},
|
|
712
|
+
})
|
|
713
|
+
|
|
714
|
+
api.registerTool({
|
|
715
|
+
name: 'superagnt_connection_attio_create_attribute_status',
|
|
716
|
+
description: "Create a status",
|
|
717
|
+
inputSchema: {
|
|
718
|
+
"type": "object",
|
|
719
|
+
"properties": {
|
|
720
|
+
"target": {
|
|
721
|
+
"type": "string",
|
|
722
|
+
"description": "target"
|
|
723
|
+
},
|
|
724
|
+
"identifier": {
|
|
725
|
+
"type": "string",
|
|
726
|
+
"description": "identifier"
|
|
727
|
+
},
|
|
728
|
+
"attribute": {
|
|
729
|
+
"type": "string",
|
|
730
|
+
"description": "attribute"
|
|
731
|
+
},
|
|
732
|
+
"data": {
|
|
733
|
+
"type": "object",
|
|
734
|
+
"description": "data"
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
"required": [
|
|
738
|
+
"target",
|
|
739
|
+
"identifier",
|
|
740
|
+
"attribute",
|
|
741
|
+
"data"
|
|
742
|
+
]
|
|
743
|
+
},
|
|
744
|
+
execute: async (input) => {
|
|
745
|
+
const key = await ensureApiKey()
|
|
746
|
+
const params = parseToolInput(input)
|
|
747
|
+
return callSuperagnt(key, 'POST', '/v2/{target}/{identifier}/attributes/{attribute}/statuses', undefined, params)
|
|
748
|
+
},
|
|
749
|
+
})
|
|
750
|
+
|
|
751
|
+
api.registerTool({
|
|
752
|
+
name: 'superagnt_connection_attio_update_attribute_status',
|
|
753
|
+
description: "Update a status",
|
|
754
|
+
inputSchema: {
|
|
755
|
+
"type": "object",
|
|
756
|
+
"properties": {
|
|
757
|
+
"target": {
|
|
758
|
+
"type": "string",
|
|
759
|
+
"description": "target"
|
|
760
|
+
},
|
|
761
|
+
"identifier": {
|
|
762
|
+
"type": "string",
|
|
763
|
+
"description": "identifier"
|
|
764
|
+
},
|
|
765
|
+
"attribute": {
|
|
766
|
+
"type": "string",
|
|
767
|
+
"description": "attribute"
|
|
768
|
+
},
|
|
769
|
+
"status": {
|
|
770
|
+
"type": "string",
|
|
771
|
+
"description": "status"
|
|
772
|
+
},
|
|
773
|
+
"data": {
|
|
774
|
+
"type": "object",
|
|
775
|
+
"description": "data"
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
"required": [
|
|
779
|
+
"target",
|
|
780
|
+
"identifier",
|
|
781
|
+
"attribute",
|
|
782
|
+
"status",
|
|
783
|
+
"data"
|
|
784
|
+
]
|
|
785
|
+
},
|
|
786
|
+
execute: async (input) => {
|
|
787
|
+
const key = await ensureApiKey()
|
|
788
|
+
const params = parseToolInput(input)
|
|
789
|
+
return callSuperagnt(key, 'PATCH', '/v2/{target}/{identifier}/attributes/{attribute}/statuses/{status}', undefined, params)
|
|
790
|
+
},
|
|
791
|
+
})
|
|
792
|
+
|
|
793
|
+
api.registerTool({
|
|
794
|
+
name: 'superagnt_connection_attio_list_records',
|
|
795
|
+
description: "List records",
|
|
796
|
+
inputSchema: {
|
|
797
|
+
"type": "object",
|
|
798
|
+
"properties": {
|
|
799
|
+
"object": {
|
|
800
|
+
"type": "string",
|
|
801
|
+
"description": "object"
|
|
802
|
+
},
|
|
803
|
+
"filter": {
|
|
804
|
+
"type": "object",
|
|
805
|
+
"description": "An object used to filter results to a subset of results. Cannot be used together with `filter_view_id`. See the [full guide to filtering and sorting here](/rest-api/guides/filtering-and-sorting)."
|
|
806
|
+
},
|
|
807
|
+
"filter_view_id": {
|
|
808
|
+
"type": "string",
|
|
809
|
+
"description": "UUID of a saved view on this object or list. When set, results are filtered using that view's filter configuration. Cannot be used together with `filter`. Note: sorts, limits, and offsets are applied independently and are not taken from the view. All attributes are returned regardless of which attributes are visible in the view."
|
|
810
|
+
},
|
|
811
|
+
"sorts": {
|
|
812
|
+
"type": "array",
|
|
813
|
+
"description": "An object used to sort results. See the [full guide to filtering and sorting here](/rest-api/guides/filtering-and-sorting)."
|
|
814
|
+
},
|
|
815
|
+
"limit": {
|
|
816
|
+
"type": "number",
|
|
817
|
+
"description": "The maximum number of results to return. Defaults to 500. See the [full guide to pagination here](/rest-api/guides/pagination)."
|
|
818
|
+
},
|
|
819
|
+
"offset": {
|
|
820
|
+
"type": "number",
|
|
821
|
+
"description": "The number of results to skip over before returning. Defaults to 0. See the [full guide to pagination here](/rest-api/guides/pagination)."
|
|
822
|
+
}
|
|
823
|
+
},
|
|
824
|
+
"required": [
|
|
825
|
+
"object"
|
|
826
|
+
]
|
|
827
|
+
},
|
|
828
|
+
execute: async (input) => {
|
|
829
|
+
const key = await ensureApiKey()
|
|
830
|
+
const params = parseToolInput(input)
|
|
831
|
+
return callSuperagnt(key, 'POST', '/v2/objects/{object}/records/query', undefined, params)
|
|
832
|
+
},
|
|
833
|
+
})
|
|
834
|
+
|
|
835
|
+
api.registerTool({
|
|
836
|
+
name: 'superagnt_connection_attio_post_v2_objects__object__records',
|
|
837
|
+
description: "Create a record",
|
|
838
|
+
inputSchema: {
|
|
839
|
+
"type": "object",
|
|
840
|
+
"properties": {
|
|
841
|
+
"object": {
|
|
842
|
+
"type": "string",
|
|
843
|
+
"description": "object"
|
|
844
|
+
},
|
|
845
|
+
"data": {
|
|
846
|
+
"type": "object",
|
|
847
|
+
"description": "data"
|
|
848
|
+
}
|
|
849
|
+
},
|
|
850
|
+
"required": [
|
|
851
|
+
"object",
|
|
852
|
+
"data"
|
|
853
|
+
]
|
|
854
|
+
},
|
|
855
|
+
execute: async (input) => {
|
|
856
|
+
const key = await ensureApiKey()
|
|
857
|
+
const params = parseToolInput(input)
|
|
858
|
+
return callSuperagnt(key, 'POST', '/v2/objects/{object}/records', undefined, params)
|
|
859
|
+
},
|
|
860
|
+
})
|
|
861
|
+
|
|
862
|
+
api.registerTool({
|
|
863
|
+
name: 'superagnt_connection_attio_put_v2_objects__object__records',
|
|
864
|
+
description: "Assert a record",
|
|
865
|
+
inputSchema: {
|
|
866
|
+
"type": "object",
|
|
867
|
+
"properties": {
|
|
868
|
+
"object": {
|
|
869
|
+
"type": "string",
|
|
870
|
+
"description": "object"
|
|
871
|
+
},
|
|
872
|
+
"matching_attribute": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"description": "matching_attribute"
|
|
875
|
+
},
|
|
876
|
+
"data": {
|
|
877
|
+
"type": "object",
|
|
878
|
+
"description": "data"
|
|
879
|
+
}
|
|
880
|
+
},
|
|
881
|
+
"required": [
|
|
882
|
+
"object",
|
|
883
|
+
"matching_attribute",
|
|
884
|
+
"data"
|
|
885
|
+
]
|
|
886
|
+
},
|
|
887
|
+
execute: async (input) => {
|
|
888
|
+
const key = await ensureApiKey()
|
|
889
|
+
const params = parseToolInput(input)
|
|
890
|
+
return callSuperagnt(key, 'PUT', '/v2/objects/{object}/records', undefined, params)
|
|
891
|
+
},
|
|
892
|
+
})
|
|
893
|
+
|
|
894
|
+
api.registerTool({
|
|
895
|
+
name: 'superagnt_connection_attio_get_record',
|
|
896
|
+
description: "Get a record",
|
|
897
|
+
inputSchema: {
|
|
898
|
+
"type": "object",
|
|
899
|
+
"properties": {
|
|
900
|
+
"object": {
|
|
901
|
+
"type": "string",
|
|
902
|
+
"description": "object"
|
|
903
|
+
},
|
|
904
|
+
"record_id": {
|
|
905
|
+
"type": "string",
|
|
906
|
+
"description": "record_id"
|
|
907
|
+
}
|
|
908
|
+
},
|
|
909
|
+
"required": [
|
|
910
|
+
"object",
|
|
911
|
+
"record_id"
|
|
912
|
+
]
|
|
913
|
+
},
|
|
914
|
+
execute: async (input) => {
|
|
915
|
+
const key = await ensureApiKey()
|
|
916
|
+
const params = parseToolInput(input)
|
|
917
|
+
return callSuperagnt(key, 'GET', '/v2/objects/{object}/records/{record_id}', params)
|
|
918
|
+
},
|
|
919
|
+
})
|
|
920
|
+
|
|
921
|
+
api.registerTool({
|
|
922
|
+
name: 'superagnt_connection_attio_overwrite_record',
|
|
923
|
+
description: "Update a record (overwrite multiselect values)",
|
|
924
|
+
inputSchema: {
|
|
925
|
+
"type": "object",
|
|
926
|
+
"properties": {
|
|
927
|
+
"object": {
|
|
928
|
+
"type": "string",
|
|
929
|
+
"description": "object"
|
|
930
|
+
},
|
|
931
|
+
"record_id": {
|
|
932
|
+
"type": "string",
|
|
933
|
+
"description": "record_id"
|
|
934
|
+
},
|
|
935
|
+
"data": {
|
|
936
|
+
"type": "object",
|
|
937
|
+
"description": "data"
|
|
938
|
+
}
|
|
939
|
+
},
|
|
940
|
+
"required": [
|
|
941
|
+
"object",
|
|
942
|
+
"record_id",
|
|
943
|
+
"data"
|
|
944
|
+
]
|
|
945
|
+
},
|
|
946
|
+
execute: async (input) => {
|
|
947
|
+
const key = await ensureApiKey()
|
|
948
|
+
const params = parseToolInput(input)
|
|
949
|
+
return callSuperagnt(key, 'PUT', '/v2/objects/{object}/records/{record_id}', undefined, params)
|
|
950
|
+
},
|
|
951
|
+
})
|
|
952
|
+
|
|
953
|
+
api.registerTool({
|
|
954
|
+
name: 'superagnt_connection_attio_update_record',
|
|
955
|
+
description: "Update a record (append multiselect values)",
|
|
956
|
+
inputSchema: {
|
|
957
|
+
"type": "object",
|
|
958
|
+
"properties": {
|
|
959
|
+
"object": {
|
|
960
|
+
"type": "string",
|
|
961
|
+
"description": "object"
|
|
962
|
+
},
|
|
963
|
+
"record_id": {
|
|
964
|
+
"type": "string",
|
|
965
|
+
"description": "record_id"
|
|
966
|
+
},
|
|
967
|
+
"data": {
|
|
968
|
+
"type": "object",
|
|
969
|
+
"description": "data"
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
"required": [
|
|
973
|
+
"object",
|
|
974
|
+
"record_id",
|
|
975
|
+
"data"
|
|
976
|
+
]
|
|
977
|
+
},
|
|
978
|
+
execute: async (input) => {
|
|
979
|
+
const key = await ensureApiKey()
|
|
980
|
+
const params = parseToolInput(input)
|
|
981
|
+
return callSuperagnt(key, 'PATCH', '/v2/objects/{object}/records/{record_id}', undefined, params)
|
|
982
|
+
},
|
|
983
|
+
})
|
|
984
|
+
|
|
985
|
+
api.registerTool({
|
|
986
|
+
name: 'superagnt_connection_attio_delete_record',
|
|
987
|
+
description: "Delete a record",
|
|
988
|
+
inputSchema: {
|
|
989
|
+
"type": "object",
|
|
990
|
+
"properties": {
|
|
991
|
+
"object": {
|
|
992
|
+
"type": "string",
|
|
993
|
+
"description": "object"
|
|
994
|
+
},
|
|
995
|
+
"record_id": {
|
|
996
|
+
"type": "string",
|
|
997
|
+
"description": "record_id"
|
|
998
|
+
}
|
|
999
|
+
},
|
|
1000
|
+
"required": [
|
|
1001
|
+
"object",
|
|
1002
|
+
"record_id"
|
|
1003
|
+
]
|
|
1004
|
+
},
|
|
1005
|
+
execute: async (input) => {
|
|
1006
|
+
const key = await ensureApiKey()
|
|
1007
|
+
const params = parseToolInput(input)
|
|
1008
|
+
return callSuperagnt(key, 'DELETE', '/v2/objects/{object}/records/{record_id}', undefined, params)
|
|
1009
|
+
},
|
|
1010
|
+
})
|
|
1011
|
+
|
|
1012
|
+
api.registerTool({
|
|
1013
|
+
name: 'superagnt_connection_attio_list_record_attribute_values',
|
|
1014
|
+
description: "List record attribute values",
|
|
1015
|
+
inputSchema: {
|
|
1016
|
+
"type": "object",
|
|
1017
|
+
"properties": {
|
|
1018
|
+
"object": {
|
|
1019
|
+
"type": "string",
|
|
1020
|
+
"description": "object"
|
|
1021
|
+
},
|
|
1022
|
+
"record_id": {
|
|
1023
|
+
"type": "string",
|
|
1024
|
+
"description": "record_id"
|
|
1025
|
+
},
|
|
1026
|
+
"attribute": {
|
|
1027
|
+
"type": "string",
|
|
1028
|
+
"description": "attribute"
|
|
1029
|
+
},
|
|
1030
|
+
"show_historic": {
|
|
1031
|
+
"type": "boolean",
|
|
1032
|
+
"description": "show_historic"
|
|
1033
|
+
},
|
|
1034
|
+
"limit": {
|
|
1035
|
+
"type": "integer",
|
|
1036
|
+
"description": "limit"
|
|
1037
|
+
},
|
|
1038
|
+
"offset": {
|
|
1039
|
+
"type": "integer",
|
|
1040
|
+
"description": "offset"
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
1043
|
+
"required": [
|
|
1044
|
+
"object",
|
|
1045
|
+
"record_id",
|
|
1046
|
+
"attribute"
|
|
1047
|
+
]
|
|
1048
|
+
},
|
|
1049
|
+
execute: async (input) => {
|
|
1050
|
+
const key = await ensureApiKey()
|
|
1051
|
+
const params = parseToolInput(input)
|
|
1052
|
+
return callSuperagnt(key, 'GET', '/v2/objects/{object}/records/{record_id}/attributes/{attribute}/values', params)
|
|
1053
|
+
},
|
|
1054
|
+
})
|
|
1055
|
+
|
|
1056
|
+
api.registerTool({
|
|
1057
|
+
name: 'superagnt_connection_attio_list_record_list_entries',
|
|
1058
|
+
description: "List record entries",
|
|
1059
|
+
inputSchema: {
|
|
1060
|
+
"type": "object",
|
|
1061
|
+
"properties": {
|
|
1062
|
+
"object": {
|
|
1063
|
+
"type": "string",
|
|
1064
|
+
"description": "object"
|
|
1065
|
+
},
|
|
1066
|
+
"record_id": {
|
|
1067
|
+
"type": "string",
|
|
1068
|
+
"description": "record_id"
|
|
1069
|
+
},
|
|
1070
|
+
"limit": {
|
|
1071
|
+
"type": "integer",
|
|
1072
|
+
"description": "limit"
|
|
1073
|
+
},
|
|
1074
|
+
"offset": {
|
|
1075
|
+
"type": "integer",
|
|
1076
|
+
"description": "offset"
|
|
1077
|
+
}
|
|
1078
|
+
},
|
|
1079
|
+
"required": [
|
|
1080
|
+
"object",
|
|
1081
|
+
"record_id"
|
|
1082
|
+
]
|
|
1083
|
+
},
|
|
1084
|
+
execute: async (input) => {
|
|
1085
|
+
const key = await ensureApiKey()
|
|
1086
|
+
const params = parseToolInput(input)
|
|
1087
|
+
return callSuperagnt(key, 'GET', '/v2/objects/{object}/records/{record_id}/entries', params)
|
|
1088
|
+
},
|
|
1089
|
+
})
|
|
1090
|
+
|
|
1091
|
+
api.registerTool({
|
|
1092
|
+
name: 'superagnt_connection_attio_post_v2_objects_records_search',
|
|
1093
|
+
description: "Search records",
|
|
1094
|
+
inputSchema: {
|
|
1095
|
+
"type": "object",
|
|
1096
|
+
"properties": {
|
|
1097
|
+
"query": {
|
|
1098
|
+
"type": "string",
|
|
1099
|
+
"description": "Query string to search for. An empty string returns a default set of results."
|
|
1100
|
+
},
|
|
1101
|
+
"limit": {
|
|
1102
|
+
"type": "number",
|
|
1103
|
+
"description": "The maximum number of results to return. Defaults to 25."
|
|
1104
|
+
},
|
|
1105
|
+
"objects": {
|
|
1106
|
+
"type": "array",
|
|
1107
|
+
"description": "Specifies which objects to filter results by. At least one object must be specified. Accepts object slugs or IDs."
|
|
1108
|
+
},
|
|
1109
|
+
"request_as": {
|
|
1110
|
+
"type": "string",
|
|
1111
|
+
"description": "Specifies the context in which to perform the search. Use 'workspace' to return all search results or specify a workspace member to limit results to what one specific person in your workspace can see."
|
|
1112
|
+
}
|
|
1113
|
+
},
|
|
1114
|
+
"required": [
|
|
1115
|
+
"query",
|
|
1116
|
+
"objects",
|
|
1117
|
+
"request_as"
|
|
1118
|
+
]
|
|
1119
|
+
},
|
|
1120
|
+
execute: async (input) => {
|
|
1121
|
+
const key = await ensureApiKey()
|
|
1122
|
+
const params = parseToolInput(input)
|
|
1123
|
+
return callSuperagnt(key, 'POST', '/v2/objects/records/search', undefined, params)
|
|
1124
|
+
},
|
|
1125
|
+
})
|
|
1126
|
+
|
|
1127
|
+
api.registerTool({
|
|
1128
|
+
name: 'superagnt_connection_attio_get_v2_lists',
|
|
1129
|
+
description: "List all lists",
|
|
1130
|
+
inputSchema: {
|
|
1131
|
+
"type": "object",
|
|
1132
|
+
"properties": {}
|
|
1133
|
+
},
|
|
1134
|
+
execute: async (input) => {
|
|
1135
|
+
const key = await ensureApiKey()
|
|
1136
|
+
const params = parseToolInput(input)
|
|
1137
|
+
return callSuperagnt(key, 'GET', '/v2/lists', params)
|
|
1138
|
+
},
|
|
1139
|
+
})
|
|
1140
|
+
|
|
1141
|
+
api.registerTool({
|
|
1142
|
+
name: 'superagnt_connection_attio_post_v2_lists',
|
|
1143
|
+
description: "Create a list",
|
|
1144
|
+
inputSchema: {
|
|
1145
|
+
"type": "object",
|
|
1146
|
+
"properties": {
|
|
1147
|
+
"data": {
|
|
1148
|
+
"type": "object",
|
|
1149
|
+
"description": "data"
|
|
1150
|
+
}
|
|
1151
|
+
},
|
|
1152
|
+
"required": [
|
|
1153
|
+
"data"
|
|
1154
|
+
]
|
|
1155
|
+
},
|
|
1156
|
+
execute: async (input) => {
|
|
1157
|
+
const key = await ensureApiKey()
|
|
1158
|
+
const params = parseToolInput(input)
|
|
1159
|
+
return callSuperagnt(key, 'POST', '/v2/lists', undefined, params)
|
|
1160
|
+
},
|
|
1161
|
+
})
|
|
1162
|
+
|
|
1163
|
+
api.registerTool({
|
|
1164
|
+
name: 'superagnt_connection_attio_get_v2_lists__list_',
|
|
1165
|
+
description: "Get a list",
|
|
1166
|
+
inputSchema: {
|
|
1167
|
+
"type": "object",
|
|
1168
|
+
"properties": {
|
|
1169
|
+
"list": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"description": "list"
|
|
1172
|
+
}
|
|
1173
|
+
},
|
|
1174
|
+
"required": [
|
|
1175
|
+
"list"
|
|
1176
|
+
]
|
|
1177
|
+
},
|
|
1178
|
+
execute: async (input) => {
|
|
1179
|
+
const key = await ensureApiKey()
|
|
1180
|
+
const params = parseToolInput(input)
|
|
1181
|
+
return callSuperagnt(key, 'GET', '/v2/lists/{list}', params)
|
|
1182
|
+
},
|
|
1183
|
+
})
|
|
1184
|
+
|
|
1185
|
+
api.registerTool({
|
|
1186
|
+
name: 'superagnt_connection_attio_patch_v2_lists__list_',
|
|
1187
|
+
description: "Update a list",
|
|
1188
|
+
inputSchema: {
|
|
1189
|
+
"type": "object",
|
|
1190
|
+
"properties": {
|
|
1191
|
+
"list": {
|
|
1192
|
+
"type": "string",
|
|
1193
|
+
"description": "list"
|
|
1194
|
+
},
|
|
1195
|
+
"data": {
|
|
1196
|
+
"type": "object",
|
|
1197
|
+
"description": "data"
|
|
1198
|
+
}
|
|
1199
|
+
},
|
|
1200
|
+
"required": [
|
|
1201
|
+
"list",
|
|
1202
|
+
"data"
|
|
1203
|
+
]
|
|
1204
|
+
},
|
|
1205
|
+
execute: async (input) => {
|
|
1206
|
+
const key = await ensureApiKey()
|
|
1207
|
+
const params = parseToolInput(input)
|
|
1208
|
+
return callSuperagnt(key, 'PATCH', '/v2/lists/{list}', undefined, params)
|
|
1209
|
+
},
|
|
1210
|
+
})
|
|
1211
|
+
|
|
1212
|
+
api.registerTool({
|
|
1213
|
+
name: 'superagnt_connection_attio_get_v2_lists__list__views',
|
|
1214
|
+
description: "List views for list",
|
|
1215
|
+
inputSchema: {
|
|
1216
|
+
"type": "object",
|
|
1217
|
+
"properties": {
|
|
1218
|
+
"list": {
|
|
1219
|
+
"type": "string",
|
|
1220
|
+
"description": "list"
|
|
1221
|
+
},
|
|
1222
|
+
"show_archived": {
|
|
1223
|
+
"type": "boolean",
|
|
1224
|
+
"description": "show_archived"
|
|
1225
|
+
},
|
|
1226
|
+
"limit": {
|
|
1227
|
+
"type": "integer",
|
|
1228
|
+
"description": "limit"
|
|
1229
|
+
},
|
|
1230
|
+
"cursor": {
|
|
1231
|
+
"type": "string",
|
|
1232
|
+
"description": "cursor"
|
|
1233
|
+
}
|
|
1234
|
+
},
|
|
1235
|
+
"required": [
|
|
1236
|
+
"list"
|
|
1237
|
+
]
|
|
1238
|
+
},
|
|
1239
|
+
execute: async (input) => {
|
|
1240
|
+
const key = await ensureApiKey()
|
|
1241
|
+
const params = parseToolInput(input)
|
|
1242
|
+
return callSuperagnt(key, 'GET', '/v2/lists/{list}/views', params)
|
|
1243
|
+
},
|
|
1244
|
+
})
|
|
1245
|
+
|
|
1246
|
+
api.registerTool({
|
|
1247
|
+
name: 'superagnt_connection_attio_list_list_entries',
|
|
1248
|
+
description: "List entries",
|
|
1249
|
+
inputSchema: {
|
|
1250
|
+
"type": "object",
|
|
1251
|
+
"properties": {
|
|
1252
|
+
"list": {
|
|
1253
|
+
"type": "string",
|
|
1254
|
+
"description": "list"
|
|
1255
|
+
},
|
|
1256
|
+
"filter": {
|
|
1257
|
+
"type": "object",
|
|
1258
|
+
"description": "An object used to filter results to a subset of results. Cannot be used together with `filter_view_id`. See the [full guide to filtering and sorting here](/rest-api/guides/filtering-and-sorting)."
|
|
1259
|
+
},
|
|
1260
|
+
"filter_view_id": {
|
|
1261
|
+
"type": "string",
|
|
1262
|
+
"description": "UUID of a saved view on this object or list. When set, results are filtered using that view's filter configuration. Cannot be used together with `filter`. Note: sorts, limits, and offsets are applied independently and are not taken from the view. All attributes are returned regardless of which attributes are visible in the view."
|
|
1263
|
+
},
|
|
1264
|
+
"sorts": {
|
|
1265
|
+
"type": "array",
|
|
1266
|
+
"description": "An object used to sort results. See the [full guide to filtering and sorting here](/rest-api/guides/filtering-and-sorting)."
|
|
1267
|
+
},
|
|
1268
|
+
"limit": {
|
|
1269
|
+
"type": "number",
|
|
1270
|
+
"description": "The maximum number of results to return. Defaults to 500. See the [full guide to pagination here](/rest-api/guides/pagination)."
|
|
1271
|
+
},
|
|
1272
|
+
"offset": {
|
|
1273
|
+
"type": "number",
|
|
1274
|
+
"description": "The number of results to skip over before returning. Defaults to 0. See the [full guide to pagination here](/rest-api/guides/pagination)."
|
|
1275
|
+
}
|
|
1276
|
+
},
|
|
1277
|
+
"required": [
|
|
1278
|
+
"list"
|
|
1279
|
+
]
|
|
1280
|
+
},
|
|
1281
|
+
execute: async (input) => {
|
|
1282
|
+
const key = await ensureApiKey()
|
|
1283
|
+
const params = parseToolInput(input)
|
|
1284
|
+
return callSuperagnt(key, 'POST', '/v2/lists/{list}/entries/query', undefined, params)
|
|
1285
|
+
},
|
|
1286
|
+
})
|
|
1287
|
+
|
|
1288
|
+
api.registerTool({
|
|
1289
|
+
name: 'superagnt_connection_attio_post_v2_lists__list__entries',
|
|
1290
|
+
description: "Create an entry (add record to list)",
|
|
1291
|
+
inputSchema: {
|
|
1292
|
+
"type": "object",
|
|
1293
|
+
"properties": {
|
|
1294
|
+
"list": {
|
|
1295
|
+
"type": "string",
|
|
1296
|
+
"description": "list"
|
|
1297
|
+
},
|
|
1298
|
+
"data": {
|
|
1299
|
+
"type": "object",
|
|
1300
|
+
"description": "data"
|
|
1301
|
+
}
|
|
1302
|
+
},
|
|
1303
|
+
"required": [
|
|
1304
|
+
"list",
|
|
1305
|
+
"data"
|
|
1306
|
+
]
|
|
1307
|
+
},
|
|
1308
|
+
execute: async (input) => {
|
|
1309
|
+
const key = await ensureApiKey()
|
|
1310
|
+
const params = parseToolInput(input)
|
|
1311
|
+
return callSuperagnt(key, 'POST', '/v2/lists/{list}/entries', undefined, params)
|
|
1312
|
+
},
|
|
1313
|
+
})
|
|
1314
|
+
|
|
1315
|
+
api.registerTool({
|
|
1316
|
+
name: 'superagnt_connection_attio_put_v2_lists__list__entries',
|
|
1317
|
+
description: "Assert a list entry by parent",
|
|
1318
|
+
inputSchema: {
|
|
1319
|
+
"type": "object",
|
|
1320
|
+
"properties": {
|
|
1321
|
+
"list": {
|
|
1322
|
+
"type": "string",
|
|
1323
|
+
"description": "list"
|
|
1324
|
+
},
|
|
1325
|
+
"data": {
|
|
1326
|
+
"type": "object",
|
|
1327
|
+
"description": "data"
|
|
1328
|
+
}
|
|
1329
|
+
},
|
|
1330
|
+
"required": [
|
|
1331
|
+
"list",
|
|
1332
|
+
"data"
|
|
1333
|
+
]
|
|
1334
|
+
},
|
|
1335
|
+
execute: async (input) => {
|
|
1336
|
+
const key = await ensureApiKey()
|
|
1337
|
+
const params = parseToolInput(input)
|
|
1338
|
+
return callSuperagnt(key, 'PUT', '/v2/lists/{list}/entries', undefined, params)
|
|
1339
|
+
},
|
|
1340
|
+
})
|
|
1341
|
+
|
|
1342
|
+
api.registerTool({
|
|
1343
|
+
name: 'superagnt_connection_attio_get_list_entry',
|
|
1344
|
+
description: "Get a list entry",
|
|
1345
|
+
inputSchema: {
|
|
1346
|
+
"type": "object",
|
|
1347
|
+
"properties": {
|
|
1348
|
+
"list": {
|
|
1349
|
+
"type": "string",
|
|
1350
|
+
"description": "list"
|
|
1351
|
+
},
|
|
1352
|
+
"entry_id": {
|
|
1353
|
+
"type": "string",
|
|
1354
|
+
"description": "entry_id"
|
|
1355
|
+
}
|
|
1356
|
+
},
|
|
1357
|
+
"required": [
|
|
1358
|
+
"list",
|
|
1359
|
+
"entry_id"
|
|
1360
|
+
]
|
|
1361
|
+
},
|
|
1362
|
+
execute: async (input) => {
|
|
1363
|
+
const key = await ensureApiKey()
|
|
1364
|
+
const params = parseToolInput(input)
|
|
1365
|
+
return callSuperagnt(key, 'GET', '/v2/lists/{list}/entries/{entry_id}', params)
|
|
1366
|
+
},
|
|
1367
|
+
})
|
|
1368
|
+
|
|
1369
|
+
api.registerTool({
|
|
1370
|
+
name: 'superagnt_connection_attio_overwrite_list_entry',
|
|
1371
|
+
description: "Update a list entry (overwrite multiselect values)",
|
|
1372
|
+
inputSchema: {
|
|
1373
|
+
"type": "object",
|
|
1374
|
+
"properties": {
|
|
1375
|
+
"list": {
|
|
1376
|
+
"type": "string",
|
|
1377
|
+
"description": "list"
|
|
1378
|
+
},
|
|
1379
|
+
"entry_id": {
|
|
1380
|
+
"type": "string",
|
|
1381
|
+
"description": "entry_id"
|
|
1382
|
+
},
|
|
1383
|
+
"data": {
|
|
1384
|
+
"type": "object",
|
|
1385
|
+
"description": "data"
|
|
1386
|
+
}
|
|
1387
|
+
},
|
|
1388
|
+
"required": [
|
|
1389
|
+
"list",
|
|
1390
|
+
"entry_id",
|
|
1391
|
+
"data"
|
|
1392
|
+
]
|
|
1393
|
+
},
|
|
1394
|
+
execute: async (input) => {
|
|
1395
|
+
const key = await ensureApiKey()
|
|
1396
|
+
const params = parseToolInput(input)
|
|
1397
|
+
return callSuperagnt(key, 'PUT', '/v2/lists/{list}/entries/{entry_id}', undefined, params)
|
|
1398
|
+
},
|
|
1399
|
+
})
|
|
1400
|
+
|
|
1401
|
+
api.registerTool({
|
|
1402
|
+
name: 'superagnt_connection_attio_update_list_entry',
|
|
1403
|
+
description: "Update a list entry (append multiselect values)",
|
|
1404
|
+
inputSchema: {
|
|
1405
|
+
"type": "object",
|
|
1406
|
+
"properties": {
|
|
1407
|
+
"list": {
|
|
1408
|
+
"type": "string",
|
|
1409
|
+
"description": "list"
|
|
1410
|
+
},
|
|
1411
|
+
"entry_id": {
|
|
1412
|
+
"type": "string",
|
|
1413
|
+
"description": "entry_id"
|
|
1414
|
+
},
|
|
1415
|
+
"data": {
|
|
1416
|
+
"type": "object",
|
|
1417
|
+
"description": "data"
|
|
1418
|
+
}
|
|
1419
|
+
},
|
|
1420
|
+
"required": [
|
|
1421
|
+
"list",
|
|
1422
|
+
"entry_id",
|
|
1423
|
+
"data"
|
|
1424
|
+
]
|
|
1425
|
+
},
|
|
1426
|
+
execute: async (input) => {
|
|
1427
|
+
const key = await ensureApiKey()
|
|
1428
|
+
const params = parseToolInput(input)
|
|
1429
|
+
return callSuperagnt(key, 'PATCH', '/v2/lists/{list}/entries/{entry_id}', undefined, params)
|
|
1430
|
+
},
|
|
1431
|
+
})
|
|
1432
|
+
|
|
1433
|
+
api.registerTool({
|
|
1434
|
+
name: 'superagnt_connection_attio_delete_list_entry',
|
|
1435
|
+
description: "Delete a list entry",
|
|
1436
|
+
inputSchema: {
|
|
1437
|
+
"type": "object",
|
|
1438
|
+
"properties": {
|
|
1439
|
+
"list": {
|
|
1440
|
+
"type": "string",
|
|
1441
|
+
"description": "list"
|
|
1442
|
+
},
|
|
1443
|
+
"entry_id": {
|
|
1444
|
+
"type": "string",
|
|
1445
|
+
"description": "entry_id"
|
|
1446
|
+
}
|
|
1447
|
+
},
|
|
1448
|
+
"required": [
|
|
1449
|
+
"list",
|
|
1450
|
+
"entry_id"
|
|
1451
|
+
]
|
|
1452
|
+
},
|
|
1453
|
+
execute: async (input) => {
|
|
1454
|
+
const key = await ensureApiKey()
|
|
1455
|
+
const params = parseToolInput(input)
|
|
1456
|
+
return callSuperagnt(key, 'DELETE', '/v2/lists/{list}/entries/{entry_id}', undefined, params)
|
|
1457
|
+
},
|
|
1458
|
+
})
|
|
1459
|
+
|
|
1460
|
+
api.registerTool({
|
|
1461
|
+
name: 'superagnt_connection_attio_list_list_entry_attribute_values',
|
|
1462
|
+
description: "List attribute values for a list entry",
|
|
1463
|
+
inputSchema: {
|
|
1464
|
+
"type": "object",
|
|
1465
|
+
"properties": {
|
|
1466
|
+
"list": {
|
|
1467
|
+
"type": "string",
|
|
1468
|
+
"description": "list"
|
|
1469
|
+
},
|
|
1470
|
+
"entry_id": {
|
|
1471
|
+
"type": "string",
|
|
1472
|
+
"description": "entry_id"
|
|
1473
|
+
},
|
|
1474
|
+
"attribute": {
|
|
1475
|
+
"type": "string",
|
|
1476
|
+
"description": "attribute"
|
|
1477
|
+
},
|
|
1478
|
+
"show_historic": {
|
|
1479
|
+
"type": "boolean",
|
|
1480
|
+
"description": "show_historic"
|
|
1481
|
+
},
|
|
1482
|
+
"limit": {
|
|
1483
|
+
"type": "integer",
|
|
1484
|
+
"description": "limit"
|
|
1485
|
+
},
|
|
1486
|
+
"offset": {
|
|
1487
|
+
"type": "integer",
|
|
1488
|
+
"description": "offset"
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1491
|
+
"required": [
|
|
1492
|
+
"list",
|
|
1493
|
+
"entry_id",
|
|
1494
|
+
"attribute"
|
|
1495
|
+
]
|
|
1496
|
+
},
|
|
1497
|
+
execute: async (input) => {
|
|
1498
|
+
const key = await ensureApiKey()
|
|
1499
|
+
const params = parseToolInput(input)
|
|
1500
|
+
return callSuperagnt(key, 'GET', '/v2/lists/{list}/entries/{entry_id}/attributes/{attribute}/values', params)
|
|
1501
|
+
},
|
|
1502
|
+
})
|
|
1503
|
+
|
|
1504
|
+
api.registerTool({
|
|
1505
|
+
name: 'superagnt_connection_attio_get_v2_workspace_members',
|
|
1506
|
+
description: "List workspace members",
|
|
1507
|
+
inputSchema: {
|
|
1508
|
+
"type": "object",
|
|
1509
|
+
"properties": {}
|
|
1510
|
+
},
|
|
1511
|
+
execute: async (input) => {
|
|
1512
|
+
const key = await ensureApiKey()
|
|
1513
|
+
const params = parseToolInput(input)
|
|
1514
|
+
return callSuperagnt(key, 'GET', '/v2/workspace_members', params)
|
|
1515
|
+
},
|
|
1516
|
+
})
|
|
1517
|
+
|
|
1518
|
+
api.registerTool({
|
|
1519
|
+
name: 'superagnt_connection_attio_get_workspace_member',
|
|
1520
|
+
description: "Get a workspace member",
|
|
1521
|
+
inputSchema: {
|
|
1522
|
+
"type": "object",
|
|
1523
|
+
"properties": {
|
|
1524
|
+
"workspace_member_id": {
|
|
1525
|
+
"type": "string",
|
|
1526
|
+
"description": "workspace_member_id"
|
|
1527
|
+
}
|
|
1528
|
+
},
|
|
1529
|
+
"required": [
|
|
1530
|
+
"workspace_member_id"
|
|
1531
|
+
]
|
|
1532
|
+
},
|
|
1533
|
+
execute: async (input) => {
|
|
1534
|
+
const key = await ensureApiKey()
|
|
1535
|
+
const params = parseToolInput(input)
|
|
1536
|
+
return callSuperagnt(key, 'GET', '/v2/workspace_members/{workspace_member_id}', params)
|
|
1537
|
+
},
|
|
1538
|
+
})
|
|
1539
|
+
|
|
1540
|
+
api.registerTool({
|
|
1541
|
+
name: 'superagnt_connection_attio_get_v2_notes',
|
|
1542
|
+
description: "List notes",
|
|
1543
|
+
inputSchema: {
|
|
1544
|
+
"type": "object",
|
|
1545
|
+
"properties": {
|
|
1546
|
+
"limit": {
|
|
1547
|
+
"type": "integer",
|
|
1548
|
+
"description": "limit"
|
|
1549
|
+
},
|
|
1550
|
+
"offset": {
|
|
1551
|
+
"type": "integer",
|
|
1552
|
+
"description": "offset"
|
|
1553
|
+
},
|
|
1554
|
+
"parent_object": {
|
|
1555
|
+
"type": "string",
|
|
1556
|
+
"description": "parent_object"
|
|
1557
|
+
},
|
|
1558
|
+
"parent_record_id": {
|
|
1559
|
+
"type": "string",
|
|
1560
|
+
"description": "parent_record_id"
|
|
1561
|
+
}
|
|
1562
|
+
}
|
|
1563
|
+
},
|
|
1564
|
+
execute: async (input) => {
|
|
1565
|
+
const key = await ensureApiKey()
|
|
1566
|
+
const params = parseToolInput(input)
|
|
1567
|
+
return callSuperagnt(key, 'GET', '/v2/notes', params)
|
|
1568
|
+
},
|
|
1569
|
+
})
|
|
1570
|
+
|
|
1571
|
+
api.registerTool({
|
|
1572
|
+
name: 'superagnt_connection_attio_post_v2_notes',
|
|
1573
|
+
description: "Create a note",
|
|
1574
|
+
inputSchema: {
|
|
1575
|
+
"type": "object",
|
|
1576
|
+
"properties": {
|
|
1577
|
+
"data": {
|
|
1578
|
+
"type": "object",
|
|
1579
|
+
"description": "data"
|
|
1580
|
+
}
|
|
1581
|
+
},
|
|
1582
|
+
"required": [
|
|
1583
|
+
"data"
|
|
1584
|
+
]
|
|
1585
|
+
},
|
|
1586
|
+
execute: async (input) => {
|
|
1587
|
+
const key = await ensureApiKey()
|
|
1588
|
+
const params = parseToolInput(input)
|
|
1589
|
+
return callSuperagnt(key, 'POST', '/v2/notes', undefined, params)
|
|
1590
|
+
},
|
|
1591
|
+
})
|
|
1592
|
+
|
|
1593
|
+
api.registerTool({
|
|
1594
|
+
name: 'superagnt_connection_attio_get_v2_notes__note_id_',
|
|
1595
|
+
description: "Get a note",
|
|
1596
|
+
inputSchema: {
|
|
1597
|
+
"type": "object",
|
|
1598
|
+
"properties": {
|
|
1599
|
+
"note_id": {
|
|
1600
|
+
"type": "string",
|
|
1601
|
+
"description": "note_id"
|
|
1602
|
+
}
|
|
1603
|
+
},
|
|
1604
|
+
"required": [
|
|
1605
|
+
"note_id"
|
|
1606
|
+
]
|
|
1607
|
+
},
|
|
1608
|
+
execute: async (input) => {
|
|
1609
|
+
const key = await ensureApiKey()
|
|
1610
|
+
const params = parseToolInput(input)
|
|
1611
|
+
return callSuperagnt(key, 'GET', '/v2/notes/{note_id}', params)
|
|
1612
|
+
},
|
|
1613
|
+
})
|
|
1614
|
+
|
|
1615
|
+
api.registerTool({
|
|
1616
|
+
name: 'superagnt_connection_attio_delete_v2_notes__note_id_',
|
|
1617
|
+
description: "Delete a note",
|
|
1618
|
+
inputSchema: {
|
|
1619
|
+
"type": "object",
|
|
1620
|
+
"properties": {
|
|
1621
|
+
"note_id": {
|
|
1622
|
+
"type": "string",
|
|
1623
|
+
"description": "note_id"
|
|
1624
|
+
}
|
|
1625
|
+
},
|
|
1626
|
+
"required": [
|
|
1627
|
+
"note_id"
|
|
1628
|
+
]
|
|
1629
|
+
},
|
|
1630
|
+
execute: async (input) => {
|
|
1631
|
+
const key = await ensureApiKey()
|
|
1632
|
+
const params = parseToolInput(input)
|
|
1633
|
+
return callSuperagnt(key, 'DELETE', '/v2/notes/{note_id}', undefined, params)
|
|
1634
|
+
},
|
|
1635
|
+
})
|
|
1636
|
+
|
|
1637
|
+
api.registerTool({
|
|
1638
|
+
name: 'superagnt_connection_attio_get_v2_tasks',
|
|
1639
|
+
description: "List tasks",
|
|
1640
|
+
inputSchema: {
|
|
1641
|
+
"type": "object",
|
|
1642
|
+
"properties": {
|
|
1643
|
+
"limit": {
|
|
1644
|
+
"type": "integer",
|
|
1645
|
+
"description": "limit"
|
|
1646
|
+
},
|
|
1647
|
+
"offset": {
|
|
1648
|
+
"type": "integer",
|
|
1649
|
+
"description": "offset"
|
|
1650
|
+
},
|
|
1651
|
+
"sort": {
|
|
1652
|
+
"type": "string",
|
|
1653
|
+
"description": "sort"
|
|
1654
|
+
},
|
|
1655
|
+
"linked_object": {
|
|
1656
|
+
"type": "string",
|
|
1657
|
+
"description": "linked_object"
|
|
1658
|
+
},
|
|
1659
|
+
"linked_record_id": {
|
|
1660
|
+
"type": "string",
|
|
1661
|
+
"description": "linked_record_id"
|
|
1662
|
+
},
|
|
1663
|
+
"assignee": {
|
|
1664
|
+
"type": [
|
|
1665
|
+
"string",
|
|
1666
|
+
"null"
|
|
1667
|
+
],
|
|
1668
|
+
"description": "assignee"
|
|
1669
|
+
},
|
|
1670
|
+
"is_completed": {
|
|
1671
|
+
"type": "boolean",
|
|
1672
|
+
"description": "is_completed"
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
},
|
|
1676
|
+
execute: async (input) => {
|
|
1677
|
+
const key = await ensureApiKey()
|
|
1678
|
+
const params = parseToolInput(input)
|
|
1679
|
+
return callSuperagnt(key, 'GET', '/v2/tasks', params)
|
|
1680
|
+
},
|
|
1681
|
+
})
|
|
1682
|
+
|
|
1683
|
+
api.registerTool({
|
|
1684
|
+
name: 'superagnt_connection_attio_post_v2_tasks',
|
|
1685
|
+
description: "Create a task",
|
|
1686
|
+
inputSchema: {
|
|
1687
|
+
"type": "object",
|
|
1688
|
+
"properties": {
|
|
1689
|
+
"data": {
|
|
1690
|
+
"type": "object",
|
|
1691
|
+
"description": "data"
|
|
1692
|
+
}
|
|
1693
|
+
},
|
|
1694
|
+
"required": [
|
|
1695
|
+
"data"
|
|
1696
|
+
]
|
|
1697
|
+
},
|
|
1698
|
+
execute: async (input) => {
|
|
1699
|
+
const key = await ensureApiKey()
|
|
1700
|
+
const params = parseToolInput(input)
|
|
1701
|
+
return callSuperagnt(key, 'POST', '/v2/tasks', undefined, params)
|
|
1702
|
+
},
|
|
1703
|
+
})
|
|
1704
|
+
|
|
1705
|
+
api.registerTool({
|
|
1706
|
+
name: 'superagnt_connection_attio_get_v2_tasks__task_id_',
|
|
1707
|
+
description: "Get a task",
|
|
1708
|
+
inputSchema: {
|
|
1709
|
+
"type": "object",
|
|
1710
|
+
"properties": {
|
|
1711
|
+
"task_id": {
|
|
1712
|
+
"type": "string",
|
|
1713
|
+
"description": "task_id"
|
|
1714
|
+
}
|
|
1715
|
+
},
|
|
1716
|
+
"required": [
|
|
1717
|
+
"task_id"
|
|
1718
|
+
]
|
|
1719
|
+
},
|
|
1720
|
+
execute: async (input) => {
|
|
1721
|
+
const key = await ensureApiKey()
|
|
1722
|
+
const params = parseToolInput(input)
|
|
1723
|
+
return callSuperagnt(key, 'GET', '/v2/tasks/{task_id}', params)
|
|
1724
|
+
},
|
|
1725
|
+
})
|
|
1726
|
+
|
|
1727
|
+
api.registerTool({
|
|
1728
|
+
name: 'superagnt_connection_attio_patch_v2_tasks__task_id_',
|
|
1729
|
+
description: "Update a task",
|
|
1730
|
+
inputSchema: {
|
|
1731
|
+
"type": "object",
|
|
1732
|
+
"properties": {
|
|
1733
|
+
"task_id": {
|
|
1734
|
+
"type": "string",
|
|
1735
|
+
"description": "task_id"
|
|
1736
|
+
},
|
|
1737
|
+
"data": {
|
|
1738
|
+
"type": "object",
|
|
1739
|
+
"description": "data"
|
|
1740
|
+
}
|
|
1741
|
+
},
|
|
1742
|
+
"required": [
|
|
1743
|
+
"task_id",
|
|
1744
|
+
"data"
|
|
1745
|
+
]
|
|
1746
|
+
},
|
|
1747
|
+
execute: async (input) => {
|
|
1748
|
+
const key = await ensureApiKey()
|
|
1749
|
+
const params = parseToolInput(input)
|
|
1750
|
+
return callSuperagnt(key, 'PATCH', '/v2/tasks/{task_id}', undefined, params)
|
|
1751
|
+
},
|
|
1752
|
+
})
|
|
1753
|
+
|
|
1754
|
+
api.registerTool({
|
|
1755
|
+
name: 'superagnt_connection_attio_delete_v2_tasks__task_id_',
|
|
1756
|
+
description: "Delete a task",
|
|
1757
|
+
inputSchema: {
|
|
1758
|
+
"type": "object",
|
|
1759
|
+
"properties": {
|
|
1760
|
+
"task_id": {
|
|
1761
|
+
"type": "string",
|
|
1762
|
+
"description": "task_id"
|
|
1763
|
+
}
|
|
1764
|
+
},
|
|
1765
|
+
"required": [
|
|
1766
|
+
"task_id"
|
|
1767
|
+
]
|
|
1768
|
+
},
|
|
1769
|
+
execute: async (input) => {
|
|
1770
|
+
const key = await ensureApiKey()
|
|
1771
|
+
const params = parseToolInput(input)
|
|
1772
|
+
return callSuperagnt(key, 'DELETE', '/v2/tasks/{task_id}', undefined, params)
|
|
1773
|
+
},
|
|
1774
|
+
})
|
|
1775
|
+
|
|
1776
|
+
api.registerTool({
|
|
1777
|
+
name: 'superagnt_connection_attio_get_v2_threads',
|
|
1778
|
+
description: "List threads",
|
|
1779
|
+
inputSchema: {
|
|
1780
|
+
"type": "object",
|
|
1781
|
+
"properties": {
|
|
1782
|
+
"record_id": {
|
|
1783
|
+
"type": "string",
|
|
1784
|
+
"description": "record_id"
|
|
1785
|
+
},
|
|
1786
|
+
"object": {
|
|
1787
|
+
"type": "string",
|
|
1788
|
+
"description": "object"
|
|
1789
|
+
},
|
|
1790
|
+
"entry_id": {
|
|
1791
|
+
"type": "string",
|
|
1792
|
+
"description": "entry_id"
|
|
1793
|
+
},
|
|
1794
|
+
"list": {
|
|
1795
|
+
"type": "string",
|
|
1796
|
+
"description": "list"
|
|
1797
|
+
},
|
|
1798
|
+
"limit": {
|
|
1799
|
+
"type": "integer",
|
|
1800
|
+
"description": "limit"
|
|
1801
|
+
},
|
|
1802
|
+
"offset": {
|
|
1803
|
+
"type": "integer",
|
|
1804
|
+
"description": "offset"
|
|
1805
|
+
}
|
|
1806
|
+
}
|
|
1807
|
+
},
|
|
1808
|
+
execute: async (input) => {
|
|
1809
|
+
const key = await ensureApiKey()
|
|
1810
|
+
const params = parseToolInput(input)
|
|
1811
|
+
return callSuperagnt(key, 'GET', '/v2/threads', params)
|
|
1812
|
+
},
|
|
1813
|
+
})
|
|
1814
|
+
|
|
1815
|
+
api.registerTool({
|
|
1816
|
+
name: 'superagnt_connection_attio_get_v2_threads__thread_id_',
|
|
1817
|
+
description: "Get a thread",
|
|
1818
|
+
inputSchema: {
|
|
1819
|
+
"type": "object",
|
|
1820
|
+
"properties": {
|
|
1821
|
+
"thread_id": {
|
|
1822
|
+
"type": "string",
|
|
1823
|
+
"description": "thread_id"
|
|
1824
|
+
}
|
|
1825
|
+
},
|
|
1826
|
+
"required": [
|
|
1827
|
+
"thread_id"
|
|
1828
|
+
]
|
|
1829
|
+
},
|
|
1830
|
+
execute: async (input) => {
|
|
1831
|
+
const key = await ensureApiKey()
|
|
1832
|
+
const params = parseToolInput(input)
|
|
1833
|
+
return callSuperagnt(key, 'GET', '/v2/threads/{thread_id}', params)
|
|
1834
|
+
},
|
|
1835
|
+
})
|
|
1836
|
+
|
|
1837
|
+
api.registerTool({
|
|
1838
|
+
name: 'superagnt_connection_attio_post_v2_comments',
|
|
1839
|
+
description: "Create a comment",
|
|
1840
|
+
inputSchema: {
|
|
1841
|
+
"type": "object",
|
|
1842
|
+
"properties": {
|
|
1843
|
+
"data": {
|
|
1844
|
+
"type": "string",
|
|
1845
|
+
"description": "data"
|
|
1846
|
+
}
|
|
1847
|
+
},
|
|
1848
|
+
"required": [
|
|
1849
|
+
"data"
|
|
1850
|
+
]
|
|
1851
|
+
},
|
|
1852
|
+
execute: async (input) => {
|
|
1853
|
+
const key = await ensureApiKey()
|
|
1854
|
+
const params = parseToolInput(input)
|
|
1855
|
+
return callSuperagnt(key, 'POST', '/v2/comments', undefined, params)
|
|
1856
|
+
},
|
|
1857
|
+
})
|
|
1858
|
+
|
|
1859
|
+
api.registerTool({
|
|
1860
|
+
name: 'superagnt_connection_attio_get_v2_comments__comment_id_',
|
|
1861
|
+
description: "Get a comment",
|
|
1862
|
+
inputSchema: {
|
|
1863
|
+
"type": "object",
|
|
1864
|
+
"properties": {
|
|
1865
|
+
"comment_id": {
|
|
1866
|
+
"type": "string",
|
|
1867
|
+
"description": "comment_id"
|
|
1868
|
+
}
|
|
1869
|
+
},
|
|
1870
|
+
"required": [
|
|
1871
|
+
"comment_id"
|
|
1872
|
+
]
|
|
1873
|
+
},
|
|
1874
|
+
execute: async (input) => {
|
|
1875
|
+
const key = await ensureApiKey()
|
|
1876
|
+
const params = parseToolInput(input)
|
|
1877
|
+
return callSuperagnt(key, 'GET', '/v2/comments/{comment_id}', params)
|
|
1878
|
+
},
|
|
1879
|
+
})
|
|
1880
|
+
|
|
1881
|
+
api.registerTool({
|
|
1882
|
+
name: 'superagnt_connection_attio_delete_v2_comments__comment_id_',
|
|
1883
|
+
description: "Delete a comment",
|
|
1884
|
+
inputSchema: {
|
|
1885
|
+
"type": "object",
|
|
1886
|
+
"properties": {
|
|
1887
|
+
"comment_id": {
|
|
1888
|
+
"type": "string",
|
|
1889
|
+
"description": "comment_id"
|
|
1890
|
+
}
|
|
1891
|
+
},
|
|
1892
|
+
"required": [
|
|
1893
|
+
"comment_id"
|
|
1894
|
+
]
|
|
1895
|
+
},
|
|
1896
|
+
execute: async (input) => {
|
|
1897
|
+
const key = await ensureApiKey()
|
|
1898
|
+
const params = parseToolInput(input)
|
|
1899
|
+
return callSuperagnt(key, 'DELETE', '/v2/comments/{comment_id}', undefined, params)
|
|
1900
|
+
},
|
|
1901
|
+
})
|
|
1902
|
+
|
|
1903
|
+
api.registerTool({
|
|
1904
|
+
name: 'superagnt_connection_attio_get_v2_meetings',
|
|
1905
|
+
description: "List meetings",
|
|
1906
|
+
inputSchema: {
|
|
1907
|
+
"type": "object",
|
|
1908
|
+
"properties": {
|
|
1909
|
+
"limit": {
|
|
1910
|
+
"type": "integer",
|
|
1911
|
+
"description": "limit"
|
|
1912
|
+
},
|
|
1913
|
+
"cursor": {
|
|
1914
|
+
"type": "string",
|
|
1915
|
+
"description": "cursor"
|
|
1916
|
+
},
|
|
1917
|
+
"linked_object": {
|
|
1918
|
+
"type": "string",
|
|
1919
|
+
"description": "linked_object"
|
|
1920
|
+
},
|
|
1921
|
+
"linked_record_id": {
|
|
1922
|
+
"type": "string",
|
|
1923
|
+
"description": "linked_record_id"
|
|
1924
|
+
},
|
|
1925
|
+
"participants": {
|
|
1926
|
+
"type": "string",
|
|
1927
|
+
"description": "participants"
|
|
1928
|
+
},
|
|
1929
|
+
"sort": {
|
|
1930
|
+
"type": "string",
|
|
1931
|
+
"description": "sort"
|
|
1932
|
+
},
|
|
1933
|
+
"ends_from": {
|
|
1934
|
+
"type": [
|
|
1935
|
+
"string",
|
|
1936
|
+
"null"
|
|
1937
|
+
],
|
|
1938
|
+
"description": "ends_from"
|
|
1939
|
+
},
|
|
1940
|
+
"starts_before": {
|
|
1941
|
+
"type": [
|
|
1942
|
+
"string",
|
|
1943
|
+
"null"
|
|
1944
|
+
],
|
|
1945
|
+
"description": "starts_before"
|
|
1946
|
+
},
|
|
1947
|
+
"timezone": {
|
|
1948
|
+
"type": "string",
|
|
1949
|
+
"description": "timezone"
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
},
|
|
1953
|
+
execute: async (input) => {
|
|
1954
|
+
const key = await ensureApiKey()
|
|
1955
|
+
const params = parseToolInput(input)
|
|
1956
|
+
return callSuperagnt(key, 'GET', '/v2/meetings', params)
|
|
1957
|
+
},
|
|
1958
|
+
})
|
|
1959
|
+
|
|
1960
|
+
api.registerTool({
|
|
1961
|
+
name: 'superagnt_connection_attio_post_v2_meetings',
|
|
1962
|
+
description: "Find or create a meeting",
|
|
1963
|
+
inputSchema: {
|
|
1964
|
+
"type": "object",
|
|
1965
|
+
"properties": {
|
|
1966
|
+
"data": {
|
|
1967
|
+
"type": "object",
|
|
1968
|
+
"description": "data"
|
|
1969
|
+
}
|
|
1970
|
+
},
|
|
1971
|
+
"required": [
|
|
1972
|
+
"data"
|
|
1973
|
+
]
|
|
1974
|
+
},
|
|
1975
|
+
execute: async (input) => {
|
|
1976
|
+
const key = await ensureApiKey()
|
|
1977
|
+
const params = parseToolInput(input)
|
|
1978
|
+
return callSuperagnt(key, 'POST', '/v2/meetings', undefined, params)
|
|
1979
|
+
},
|
|
1980
|
+
})
|
|
1981
|
+
|
|
1982
|
+
api.registerTool({
|
|
1983
|
+
name: 'superagnt_connection_attio_get_v2_meetings__meeting_id_',
|
|
1984
|
+
description: "Get a meeting",
|
|
1985
|
+
inputSchema: {
|
|
1986
|
+
"type": "object",
|
|
1987
|
+
"properties": {
|
|
1988
|
+
"meeting_id": {
|
|
1989
|
+
"type": "string",
|
|
1990
|
+
"description": "meeting_id"
|
|
1991
|
+
}
|
|
1992
|
+
},
|
|
1993
|
+
"required": [
|
|
1994
|
+
"meeting_id"
|
|
1995
|
+
]
|
|
1996
|
+
},
|
|
1997
|
+
execute: async (input) => {
|
|
1998
|
+
const key = await ensureApiKey()
|
|
1999
|
+
const params = parseToolInput(input)
|
|
2000
|
+
return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}', params)
|
|
2001
|
+
},
|
|
2002
|
+
})
|
|
2003
|
+
|
|
2004
|
+
api.registerTool({
|
|
2005
|
+
name: 'superagnt_connection_attio_list_call_recordings',
|
|
2006
|
+
description: "List call recordings",
|
|
2007
|
+
inputSchema: {
|
|
2008
|
+
"type": "object",
|
|
2009
|
+
"properties": {
|
|
2010
|
+
"meeting_id": {
|
|
2011
|
+
"type": "string",
|
|
2012
|
+
"description": "meeting_id"
|
|
2013
|
+
},
|
|
2014
|
+
"limit": {
|
|
2015
|
+
"type": "integer",
|
|
2016
|
+
"description": "limit"
|
|
2017
|
+
},
|
|
2018
|
+
"cursor": {
|
|
2019
|
+
"type": "string",
|
|
2020
|
+
"description": "cursor"
|
|
2021
|
+
}
|
|
2022
|
+
},
|
|
2023
|
+
"required": [
|
|
2024
|
+
"meeting_id"
|
|
2025
|
+
]
|
|
2026
|
+
},
|
|
2027
|
+
execute: async (input) => {
|
|
2028
|
+
const key = await ensureApiKey()
|
|
2029
|
+
const params = parseToolInput(input)
|
|
2030
|
+
return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}/call_recordings', params)
|
|
2031
|
+
},
|
|
2032
|
+
})
|
|
2033
|
+
|
|
2034
|
+
api.registerTool({
|
|
2035
|
+
name: 'superagnt_connection_attio_create_call_recording',
|
|
2036
|
+
description: "Create call recording",
|
|
2037
|
+
inputSchema: {
|
|
2038
|
+
"type": "object",
|
|
2039
|
+
"properties": {
|
|
2040
|
+
"meeting_id": {
|
|
2041
|
+
"type": "string",
|
|
2042
|
+
"description": "meeting_id"
|
|
2043
|
+
},
|
|
2044
|
+
"data": {
|
|
2045
|
+
"type": "object",
|
|
2046
|
+
"description": "data"
|
|
2047
|
+
}
|
|
2048
|
+
},
|
|
2049
|
+
"required": [
|
|
2050
|
+
"meeting_id",
|
|
2051
|
+
"data"
|
|
2052
|
+
]
|
|
2053
|
+
},
|
|
2054
|
+
execute: async (input) => {
|
|
2055
|
+
const key = await ensureApiKey()
|
|
2056
|
+
const params = parseToolInput(input)
|
|
2057
|
+
return callSuperagnt(key, 'POST', '/v2/meetings/{meeting_id}/call_recordings', undefined, params)
|
|
2058
|
+
},
|
|
2059
|
+
})
|
|
2060
|
+
|
|
2061
|
+
api.registerTool({
|
|
2062
|
+
name: 'superagnt_connection_attio_get_call_recording',
|
|
2063
|
+
description: "Get call recording",
|
|
2064
|
+
inputSchema: {
|
|
2065
|
+
"type": "object",
|
|
2066
|
+
"properties": {
|
|
2067
|
+
"meeting_id": {
|
|
2068
|
+
"type": "string",
|
|
2069
|
+
"description": "meeting_id"
|
|
2070
|
+
},
|
|
2071
|
+
"call_recording_id": {
|
|
2072
|
+
"type": "string",
|
|
2073
|
+
"description": "call_recording_id"
|
|
2074
|
+
}
|
|
2075
|
+
},
|
|
2076
|
+
"required": [
|
|
2077
|
+
"meeting_id",
|
|
2078
|
+
"call_recording_id"
|
|
2079
|
+
]
|
|
2080
|
+
},
|
|
2081
|
+
execute: async (input) => {
|
|
2082
|
+
const key = await ensureApiKey()
|
|
2083
|
+
const params = parseToolInput(input)
|
|
2084
|
+
return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}', params)
|
|
2085
|
+
},
|
|
2086
|
+
})
|
|
2087
|
+
|
|
2088
|
+
api.registerTool({
|
|
2089
|
+
name: 'superagnt_connection_attio_delete_call_recording',
|
|
2090
|
+
description: "Delete call recording",
|
|
2091
|
+
inputSchema: {
|
|
2092
|
+
"type": "object",
|
|
2093
|
+
"properties": {
|
|
2094
|
+
"meeting_id": {
|
|
2095
|
+
"type": "string",
|
|
2096
|
+
"description": "meeting_id"
|
|
2097
|
+
},
|
|
2098
|
+
"call_recording_id": {
|
|
2099
|
+
"type": "string",
|
|
2100
|
+
"description": "call_recording_id"
|
|
2101
|
+
}
|
|
2102
|
+
},
|
|
2103
|
+
"required": [
|
|
2104
|
+
"meeting_id",
|
|
2105
|
+
"call_recording_id"
|
|
2106
|
+
]
|
|
2107
|
+
},
|
|
2108
|
+
execute: async (input) => {
|
|
2109
|
+
const key = await ensureApiKey()
|
|
2110
|
+
const params = parseToolInput(input)
|
|
2111
|
+
return callSuperagnt(key, 'DELETE', '/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}', undefined, params)
|
|
2112
|
+
},
|
|
2113
|
+
})
|
|
2114
|
+
|
|
2115
|
+
api.registerTool({
|
|
2116
|
+
name: 'superagnt_connection_attio_get_call_recording_transcript',
|
|
2117
|
+
description: "Get call transcript",
|
|
2118
|
+
inputSchema: {
|
|
2119
|
+
"type": "object",
|
|
2120
|
+
"properties": {
|
|
2121
|
+
"meeting_id": {
|
|
2122
|
+
"type": "string",
|
|
2123
|
+
"description": "meeting_id"
|
|
2124
|
+
},
|
|
2125
|
+
"call_recording_id": {
|
|
2126
|
+
"type": "string",
|
|
2127
|
+
"description": "call_recording_id"
|
|
2128
|
+
},
|
|
2129
|
+
"cursor": {
|
|
2130
|
+
"type": "string",
|
|
2131
|
+
"description": "cursor"
|
|
2132
|
+
}
|
|
2133
|
+
},
|
|
2134
|
+
"required": [
|
|
2135
|
+
"meeting_id",
|
|
2136
|
+
"call_recording_id"
|
|
2137
|
+
]
|
|
2138
|
+
},
|
|
2139
|
+
execute: async (input) => {
|
|
2140
|
+
const key = await ensureApiKey()
|
|
2141
|
+
const params = parseToolInput(input)
|
|
2142
|
+
return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}/transcript', params)
|
|
2143
|
+
},
|
|
2144
|
+
})
|
|
2145
|
+
|
|
2146
|
+
api.registerTool({
|
|
2147
|
+
name: 'superagnt_connection_attio_get_v2_files',
|
|
2148
|
+
description: "List files",
|
|
2149
|
+
inputSchema: {
|
|
2150
|
+
"type": "object",
|
|
2151
|
+
"properties": {
|
|
2152
|
+
"object": {
|
|
2153
|
+
"type": "string",
|
|
2154
|
+
"description": "object"
|
|
2155
|
+
},
|
|
2156
|
+
"record_id": {
|
|
2157
|
+
"type": "string",
|
|
2158
|
+
"description": "record_id"
|
|
2159
|
+
},
|
|
2160
|
+
"storage_provider": {
|
|
2161
|
+
"type": "string",
|
|
2162
|
+
"description": "storage_provider"
|
|
2163
|
+
},
|
|
2164
|
+
"parent_folder_id": {
|
|
2165
|
+
"type": "string",
|
|
2166
|
+
"description": "parent_folder_id"
|
|
2167
|
+
},
|
|
2168
|
+
"limit": {
|
|
2169
|
+
"type": "integer",
|
|
2170
|
+
"description": "limit"
|
|
2171
|
+
},
|
|
2172
|
+
"cursor": {
|
|
2173
|
+
"type": "string",
|
|
2174
|
+
"description": "cursor"
|
|
2175
|
+
}
|
|
2176
|
+
},
|
|
2177
|
+
"required": [
|
|
2178
|
+
"object",
|
|
2179
|
+
"record_id"
|
|
2180
|
+
]
|
|
2181
|
+
},
|
|
2182
|
+
execute: async (input) => {
|
|
2183
|
+
const key = await ensureApiKey()
|
|
2184
|
+
const params = parseToolInput(input)
|
|
2185
|
+
return callSuperagnt(key, 'GET', '/v2/files', params)
|
|
2186
|
+
},
|
|
2187
|
+
})
|
|
2188
|
+
|
|
2189
|
+
api.registerTool({
|
|
2190
|
+
name: 'superagnt_connection_attio_post_v2_files',
|
|
2191
|
+
description: "Create a folder",
|
|
2192
|
+
inputSchema: {
|
|
2193
|
+
"type": "object",
|
|
2194
|
+
"properties": {}
|
|
2195
|
+
},
|
|
2196
|
+
execute: async (input) => {
|
|
2197
|
+
const key = await ensureApiKey()
|
|
2198
|
+
const params = parseToolInput(input)
|
|
2199
|
+
return callSuperagnt(key, 'POST', '/v2/files', undefined, params)
|
|
2200
|
+
},
|
|
2201
|
+
})
|
|
2202
|
+
|
|
2203
|
+
api.registerTool({
|
|
2204
|
+
name: 'superagnt_connection_attio_post_v2_files_upload',
|
|
2205
|
+
description: "Upload a file",
|
|
2206
|
+
inputSchema: {
|
|
2207
|
+
"type": "object",
|
|
2208
|
+
"properties": {}
|
|
2209
|
+
},
|
|
2210
|
+
execute: async (input) => {
|
|
2211
|
+
const key = await ensureApiKey()
|
|
2212
|
+
const params = parseToolInput(input)
|
|
2213
|
+
return callSuperagnt(key, 'POST', '/v2/files/upload', undefined, params)
|
|
2214
|
+
},
|
|
2215
|
+
})
|
|
2216
|
+
|
|
2217
|
+
api.registerTool({
|
|
2218
|
+
name: 'superagnt_connection_attio_get_v2_files__file_id_',
|
|
2219
|
+
description: "Get a file",
|
|
2220
|
+
inputSchema: {
|
|
2221
|
+
"type": "object",
|
|
2222
|
+
"properties": {
|
|
2223
|
+
"file_id": {
|
|
2224
|
+
"type": "string",
|
|
2225
|
+
"description": "file_id"
|
|
2226
|
+
}
|
|
2227
|
+
},
|
|
2228
|
+
"required": [
|
|
2229
|
+
"file_id"
|
|
2230
|
+
]
|
|
2231
|
+
},
|
|
2232
|
+
execute: async (input) => {
|
|
2233
|
+
const key = await ensureApiKey()
|
|
2234
|
+
const params = parseToolInput(input)
|
|
2235
|
+
return callSuperagnt(key, 'GET', '/v2/files/{file_id}', params)
|
|
2236
|
+
},
|
|
2237
|
+
})
|
|
2238
|
+
|
|
2239
|
+
api.registerTool({
|
|
2240
|
+
name: 'superagnt_connection_attio_delete_v2_files__file_id_',
|
|
2241
|
+
description: "Delete a file",
|
|
2242
|
+
inputSchema: {
|
|
2243
|
+
"type": "object",
|
|
2244
|
+
"properties": {
|
|
2245
|
+
"file_id": {
|
|
2246
|
+
"type": "string",
|
|
2247
|
+
"description": "file_id"
|
|
2248
|
+
}
|
|
2249
|
+
},
|
|
2250
|
+
"required": [
|
|
2251
|
+
"file_id"
|
|
2252
|
+
]
|
|
2253
|
+
},
|
|
2254
|
+
execute: async (input) => {
|
|
2255
|
+
const key = await ensureApiKey()
|
|
2256
|
+
const params = parseToolInput(input)
|
|
2257
|
+
return callSuperagnt(key, 'DELETE', '/v2/files/{file_id}', undefined, params)
|
|
2258
|
+
},
|
|
2259
|
+
})
|
|
2260
|
+
|
|
2261
|
+
api.registerTool({
|
|
2262
|
+
name: 'superagnt_connection_attio_get_v2_files__file_id__download',
|
|
2263
|
+
description: "Download a file",
|
|
2264
|
+
inputSchema: {
|
|
2265
|
+
"type": "object",
|
|
2266
|
+
"properties": {
|
|
2267
|
+
"file_id": {
|
|
2268
|
+
"type": "string",
|
|
2269
|
+
"description": "file_id"
|
|
2270
|
+
}
|
|
2271
|
+
},
|
|
2272
|
+
"required": [
|
|
2273
|
+
"file_id"
|
|
2274
|
+
]
|
|
2275
|
+
},
|
|
2276
|
+
execute: async (input) => {
|
|
2277
|
+
const key = await ensureApiKey()
|
|
2278
|
+
const params = parseToolInput(input)
|
|
2279
|
+
return callSuperagnt(key, 'GET', '/v2/files/{file_id}/download', params)
|
|
2280
|
+
},
|
|
2281
|
+
})
|
|
2282
|
+
|
|
2283
|
+
api.registerTool({
|
|
2284
|
+
name: 'superagnt_connection_attio_get_scim_v2_Schemas',
|
|
2285
|
+
description: "List SCIM schemas",
|
|
2286
|
+
inputSchema: {
|
|
2287
|
+
"type": "object",
|
|
2288
|
+
"properties": {}
|
|
2289
|
+
},
|
|
2290
|
+
execute: async (input) => {
|
|
2291
|
+
const key = await ensureApiKey()
|
|
2292
|
+
const params = parseToolInput(input)
|
|
2293
|
+
return callSuperagnt(key, 'GET', '/scim/v2/Schemas', params)
|
|
2294
|
+
},
|
|
2295
|
+
})
|
|
2296
|
+
|
|
2297
|
+
api.registerTool({
|
|
2298
|
+
name: 'superagnt_connection_attio_get_scim_v2_Users',
|
|
2299
|
+
description: "List SCIM users",
|
|
2300
|
+
inputSchema: {
|
|
2301
|
+
"type": "object",
|
|
2302
|
+
"properties": {}
|
|
2303
|
+
},
|
|
2304
|
+
execute: async (input) => {
|
|
2305
|
+
const key = await ensureApiKey()
|
|
2306
|
+
const params = parseToolInput(input)
|
|
2307
|
+
return callSuperagnt(key, 'GET', '/scim/v2/Users', params)
|
|
2308
|
+
},
|
|
2309
|
+
})
|
|
2310
|
+
|
|
2311
|
+
api.registerTool({
|
|
2312
|
+
name: 'superagnt_connection_attio_post_scim_v2_Users',
|
|
2313
|
+
description: "Create SCIM user",
|
|
2314
|
+
inputSchema: {
|
|
2315
|
+
"type": "object",
|
|
2316
|
+
"properties": {}
|
|
2317
|
+
},
|
|
2318
|
+
execute: async (input) => {
|
|
2319
|
+
const key = await ensureApiKey()
|
|
2320
|
+
const params = parseToolInput(input)
|
|
2321
|
+
return callSuperagnt(key, 'POST', '/scim/v2/Users', undefined, params)
|
|
2322
|
+
},
|
|
2323
|
+
})
|
|
2324
|
+
|
|
2325
|
+
api.registerTool({
|
|
2326
|
+
name: 'superagnt_connection_attio_get_scim_v2_Groups',
|
|
2327
|
+
description: "List SCIM groups",
|
|
2328
|
+
inputSchema: {
|
|
2329
|
+
"type": "object",
|
|
2330
|
+
"properties": {}
|
|
2331
|
+
},
|
|
2332
|
+
execute: async (input) => {
|
|
2333
|
+
const key = await ensureApiKey()
|
|
2334
|
+
const params = parseToolInput(input)
|
|
2335
|
+
return callSuperagnt(key, 'GET', '/scim/v2/Groups', params)
|
|
2336
|
+
},
|
|
2337
|
+
})
|
|
2338
|
+
|
|
2339
|
+
api.registerTool({
|
|
2340
|
+
name: 'superagnt_connection_attio_post_scim_v2_Groups',
|
|
2341
|
+
description: "Create SCIM group",
|
|
2342
|
+
inputSchema: {
|
|
2343
|
+
"type": "object",
|
|
2344
|
+
"properties": {}
|
|
2345
|
+
},
|
|
2346
|
+
execute: async (input) => {
|
|
2347
|
+
const key = await ensureApiKey()
|
|
2348
|
+
const params = parseToolInput(input)
|
|
2349
|
+
return callSuperagnt(key, 'POST', '/scim/v2/Groups', undefined, params)
|
|
2350
|
+
},
|
|
2351
|
+
})
|
|
2352
|
+
|
|
2353
|
+
api.registerTool({
|
|
2354
|
+
name: 'superagnt_connection_attio_get_scim_v2_Users__user_id_',
|
|
2355
|
+
description: "Get SCIM user",
|
|
2356
|
+
inputSchema: {
|
|
2357
|
+
"type": "object",
|
|
2358
|
+
"properties": {}
|
|
2359
|
+
},
|
|
2360
|
+
execute: async (input) => {
|
|
2361
|
+
const key = await ensureApiKey()
|
|
2362
|
+
const params = parseToolInput(input)
|
|
2363
|
+
return callSuperagnt(key, 'GET', '/scim/v2/Users/{user_id}', params)
|
|
2364
|
+
},
|
|
2365
|
+
})
|
|
2366
|
+
|
|
2367
|
+
api.registerTool({
|
|
2368
|
+
name: 'superagnt_connection_attio_put_scim_v2_Users__user_id_',
|
|
2369
|
+
description: "Update SCIM user",
|
|
2370
|
+
inputSchema: {
|
|
2371
|
+
"type": "object",
|
|
2372
|
+
"properties": {}
|
|
2373
|
+
},
|
|
2374
|
+
execute: async (input) => {
|
|
2375
|
+
const key = await ensureApiKey()
|
|
2376
|
+
const params = parseToolInput(input)
|
|
2377
|
+
return callSuperagnt(key, 'PUT', '/scim/v2/Users/{user_id}', undefined, params)
|
|
2378
|
+
},
|
|
2379
|
+
})
|
|
2380
|
+
|
|
2381
|
+
api.registerTool({
|
|
2382
|
+
name: 'superagnt_connection_attio_patch_scim_v2_Users__user_id_',
|
|
2383
|
+
description: "Patch SCIM user",
|
|
2384
|
+
inputSchema: {
|
|
2385
|
+
"type": "object",
|
|
2386
|
+
"properties": {}
|
|
2387
|
+
},
|
|
2388
|
+
execute: async (input) => {
|
|
2389
|
+
const key = await ensureApiKey()
|
|
2390
|
+
const params = parseToolInput(input)
|
|
2391
|
+
return callSuperagnt(key, 'PATCH', '/scim/v2/Users/{user_id}', undefined, params)
|
|
2392
|
+
},
|
|
2393
|
+
})
|
|
2394
|
+
|
|
2395
|
+
api.registerTool({
|
|
2396
|
+
name: 'superagnt_connection_attio_delete_scim_v2_Users__user_id_',
|
|
2397
|
+
description: "Delete SCIM user",
|
|
2398
|
+
inputSchema: {
|
|
2399
|
+
"type": "object",
|
|
2400
|
+
"properties": {}
|
|
2401
|
+
},
|
|
2402
|
+
execute: async (input) => {
|
|
2403
|
+
const key = await ensureApiKey()
|
|
2404
|
+
const params = parseToolInput(input)
|
|
2405
|
+
return callSuperagnt(key, 'DELETE', '/scim/v2/Users/{user_id}', undefined, params)
|
|
2406
|
+
},
|
|
2407
|
+
})
|
|
2408
|
+
|
|
2409
|
+
api.registerTool({
|
|
2410
|
+
name: 'superagnt_connection_attio_scim_get_group',
|
|
2411
|
+
description: "Get SCIM group",
|
|
2412
|
+
inputSchema: {
|
|
2413
|
+
"type": "object",
|
|
2414
|
+
"properties": {}
|
|
2415
|
+
},
|
|
2416
|
+
execute: async (input) => {
|
|
2417
|
+
const key = await ensureApiKey()
|
|
2418
|
+
const params = parseToolInput(input)
|
|
2419
|
+
return callSuperagnt(key, 'GET', '/scim/v2/Groups/{workspace_team_id}', params)
|
|
2420
|
+
},
|
|
2421
|
+
})
|
|
2422
|
+
|
|
2423
|
+
api.registerTool({
|
|
2424
|
+
name: 'superagnt_connection_attio_scim_replace_group',
|
|
2425
|
+
description: "Update SCIM group",
|
|
2426
|
+
inputSchema: {
|
|
2427
|
+
"type": "object",
|
|
2428
|
+
"properties": {}
|
|
2429
|
+
},
|
|
2430
|
+
execute: async (input) => {
|
|
2431
|
+
const key = await ensureApiKey()
|
|
2432
|
+
const params = parseToolInput(input)
|
|
2433
|
+
return callSuperagnt(key, 'PUT', '/scim/v2/Groups/{workspace_team_id}', undefined, params)
|
|
2434
|
+
},
|
|
2435
|
+
})
|
|
2436
|
+
|
|
2437
|
+
api.registerTool({
|
|
2438
|
+
name: 'superagnt_connection_attio_scim_patch_group',
|
|
2439
|
+
description: "Patch SCIM group",
|
|
2440
|
+
inputSchema: {
|
|
2441
|
+
"type": "object",
|
|
2442
|
+
"properties": {}
|
|
2443
|
+
},
|
|
2444
|
+
execute: async (input) => {
|
|
2445
|
+
const key = await ensureApiKey()
|
|
2446
|
+
const params = parseToolInput(input)
|
|
2447
|
+
return callSuperagnt(key, 'PATCH', '/scim/v2/Groups/{workspace_team_id}', undefined, params)
|
|
2448
|
+
},
|
|
2449
|
+
})
|
|
2450
|
+
|
|
2451
|
+
api.registerTool({
|
|
2452
|
+
name: 'superagnt_connection_attio_scim_delete_group',
|
|
2453
|
+
description: "Delete SCIM group",
|
|
2454
|
+
inputSchema: {
|
|
2455
|
+
"type": "object",
|
|
2456
|
+
"properties": {}
|
|
2457
|
+
},
|
|
2458
|
+
execute: async (input) => {
|
|
2459
|
+
const key = await ensureApiKey()
|
|
2460
|
+
const params = parseToolInput(input)
|
|
2461
|
+
return callSuperagnt(key, 'DELETE', '/scim/v2/Groups/{workspace_team_id}', undefined, params)
|
|
2462
|
+
},
|
|
2463
|
+
})
|
|
2464
|
+
|
|
2465
|
+
api.registerTool({
|
|
2466
|
+
name: 'superagnt_connection_attio_get_v2_webhooks',
|
|
2467
|
+
description: "List webhooks",
|
|
2468
|
+
inputSchema: {
|
|
2469
|
+
"type": "object",
|
|
2470
|
+
"properties": {
|
|
2471
|
+
"limit": {
|
|
2472
|
+
"type": "integer",
|
|
2473
|
+
"description": "limit"
|
|
2474
|
+
},
|
|
2475
|
+
"offset": {
|
|
2476
|
+
"type": "integer",
|
|
2477
|
+
"description": "offset"
|
|
2478
|
+
}
|
|
2479
|
+
}
|
|
2480
|
+
},
|
|
2481
|
+
execute: async (input) => {
|
|
2482
|
+
const key = await ensureApiKey()
|
|
2483
|
+
const params = parseToolInput(input)
|
|
2484
|
+
return callSuperagnt(key, 'GET', '/v2/webhooks', params)
|
|
2485
|
+
},
|
|
2486
|
+
})
|
|
2487
|
+
|
|
2488
|
+
api.registerTool({
|
|
2489
|
+
name: 'superagnt_connection_attio_post_v2_webhooks',
|
|
2490
|
+
description: "Create a webhook",
|
|
2491
|
+
inputSchema: {
|
|
2492
|
+
"type": "object",
|
|
2493
|
+
"properties": {
|
|
2494
|
+
"data": {
|
|
2495
|
+
"type": "object",
|
|
2496
|
+
"description": "data"
|
|
2497
|
+
}
|
|
2498
|
+
},
|
|
2499
|
+
"required": [
|
|
2500
|
+
"data"
|
|
2501
|
+
]
|
|
2502
|
+
},
|
|
2503
|
+
execute: async (input) => {
|
|
2504
|
+
const key = await ensureApiKey()
|
|
2505
|
+
const params = parseToolInput(input)
|
|
2506
|
+
return callSuperagnt(key, 'POST', '/v2/webhooks', undefined, params)
|
|
2507
|
+
},
|
|
2508
|
+
})
|
|
2509
|
+
|
|
2510
|
+
api.registerTool({
|
|
2511
|
+
name: 'superagnt_connection_attio_get_v2_webhooks__webhook_id_',
|
|
2512
|
+
description: "Get a webhook",
|
|
2513
|
+
inputSchema: {
|
|
2514
|
+
"type": "object",
|
|
2515
|
+
"properties": {
|
|
2516
|
+
"webhook_id": {
|
|
2517
|
+
"type": "string",
|
|
2518
|
+
"description": "webhook_id"
|
|
2519
|
+
}
|
|
2520
|
+
},
|
|
2521
|
+
"required": [
|
|
2522
|
+
"webhook_id"
|
|
2523
|
+
]
|
|
2524
|
+
},
|
|
2525
|
+
execute: async (input) => {
|
|
2526
|
+
const key = await ensureApiKey()
|
|
2527
|
+
const params = parseToolInput(input)
|
|
2528
|
+
return callSuperagnt(key, 'GET', '/v2/webhooks/{webhook_id}', params)
|
|
2529
|
+
},
|
|
2530
|
+
})
|
|
2531
|
+
|
|
2532
|
+
api.registerTool({
|
|
2533
|
+
name: 'superagnt_connection_attio_patch_v2_webhooks__webhook_id_',
|
|
2534
|
+
description: "Update a webhook",
|
|
2535
|
+
inputSchema: {
|
|
2536
|
+
"type": "object",
|
|
2537
|
+
"properties": {
|
|
2538
|
+
"webhook_id": {
|
|
2539
|
+
"type": "string",
|
|
2540
|
+
"description": "webhook_id"
|
|
2541
|
+
},
|
|
2542
|
+
"data": {
|
|
2543
|
+
"type": "object",
|
|
2544
|
+
"description": "data"
|
|
2545
|
+
}
|
|
2546
|
+
},
|
|
2547
|
+
"required": [
|
|
2548
|
+
"webhook_id",
|
|
2549
|
+
"data"
|
|
2550
|
+
]
|
|
2551
|
+
},
|
|
2552
|
+
execute: async (input) => {
|
|
2553
|
+
const key = await ensureApiKey()
|
|
2554
|
+
const params = parseToolInput(input)
|
|
2555
|
+
return callSuperagnt(key, 'PATCH', '/v2/webhooks/{webhook_id}', undefined, params)
|
|
2556
|
+
},
|
|
2557
|
+
})
|
|
2558
|
+
|
|
2559
|
+
api.registerTool({
|
|
2560
|
+
name: 'superagnt_connection_attio_delete_v2_webhooks__webhook_id_',
|
|
2561
|
+
description: "Delete a webhook",
|
|
2562
|
+
inputSchema: {
|
|
2563
|
+
"type": "object",
|
|
2564
|
+
"properties": {
|
|
2565
|
+
"webhook_id": {
|
|
2566
|
+
"type": "string",
|
|
2567
|
+
"description": "webhook_id"
|
|
2568
|
+
}
|
|
2569
|
+
},
|
|
2570
|
+
"required": [
|
|
2571
|
+
"webhook_id"
|
|
2572
|
+
]
|
|
2573
|
+
},
|
|
2574
|
+
execute: async (input) => {
|
|
2575
|
+
const key = await ensureApiKey()
|
|
2576
|
+
const params = parseToolInput(input)
|
|
2577
|
+
return callSuperagnt(key, 'DELETE', '/v2/webhooks/{webhook_id}', undefined, params)
|
|
2578
|
+
},
|
|
2579
|
+
})
|
|
2580
|
+
|
|
2581
|
+
api.registerTool({
|
|
2582
|
+
name: 'superagnt_connection_attio_get_v2_self',
|
|
2583
|
+
description: "Identify",
|
|
2584
|
+
inputSchema: {
|
|
2585
|
+
"type": "object",
|
|
2586
|
+
"properties": {}
|
|
2587
|
+
},
|
|
2588
|
+
execute: async (input) => {
|
|
2589
|
+
const key = await ensureApiKey()
|
|
2590
|
+
const params = parseToolInput(input)
|
|
2591
|
+
return callSuperagnt(key, 'GET', '/v2/self', params)
|
|
2592
|
+
},
|
|
2593
|
+
})
|
|
2594
|
+
|
|
2595
|
+
promptState.toolCount = 87
|
|
2596
|
+
promptState.ready = true
|
|
2597
|
+
}
|