@superagnt/attio-crm 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,21 +8,20 @@ Connect your Attio workspace to superagnt to automate CRM record management, lis
8
8
  openclaw plugins install @superagnt/attio-crm
9
9
  ```
10
10
 
11
- This package is the official **OpenClaw** plugin for the **Attio** integration via [superagnt](https://superagnt.com). Pair it with the [documentation](https://superagnt.com) and your superagnt API key.
11
+ This package is the official **OpenClaw** plugin for the **Attio** integration via [superagnt](https://superagnt.com). Pair it with the [documentation](https://superagnt.com/docs) and your superagnt API key.
12
12
 
13
- ## Live MCP mode (recommended)
13
+ ## Want the live MCP surface instead?
14
14
 
15
- Set a workspace MCP token and the plugin upgrades itself at load: it fetches
16
- the live tool list from the scoped MCP endpoint and proxies calls through it —
17
- the tool surface then grows with `agnt_tools_enable`, no plugin update needed.
15
+ This plugin ships a fixed, baked-in toolset that only needs your
16
+ `SUPERAGNT_API_KEY`. For the live workspace tool surface — the full value
17
+ layer (data sources plus workspace Postgres, schedules, canvases,
18
+ enrichment), growing server-side with no plugin update — install the
19
+ primary superagnt plugin instead:
18
20
 
19
21
  ```bash
20
- export SUPERAGNT_MCP_TOKEN=... # from the MCP server card in the dashboard
22
+ openclaw plugins install @superagnt/superagnt
21
23
  ```
22
24
 
23
- Without the token the plugin uses its built-in toolset with your
24
- `SUPERAGNT_API_KEY` — no behavior change from previous versions.
25
-
26
25
  ## Overview
27
26
 
28
27
  OpenClaw plugin for Attio CRM — manage records, lists, notes, tasks, meetings, and call recordings with your superagnt API key.
@@ -67,8 +66,8 @@ Set `SUPERAGNT_API_KEY` in your environment, or complete browser login when the
67
66
 
68
67
  ## Documentation
69
68
 
70
- - [Documentation](https://superagnt.com) — getting started and concepts
71
- - [Connection guide (Attio)](https://superagnt.com/connections/attio) — setup and endpoints
69
+ - [Documentation](https://superagnt.com/docs) — getting started and concepts
70
+ - [Connection guide (Attio)](https://superagnt.com/docs) — setup and endpoints
72
71
  - [Dashboard](https://app.superagnt.com/dashboard) — API keys and usage
73
72
 
74
73
  ## Related
package/index.js CHANGED
@@ -28,194 +28,6 @@ function readAgntConfig() {
28
28
 
29
29
  // ── End Auth Module ──────────────────────────────────────────────────────────
30
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
31
  function parseToolInput(input) {
220
32
  if (input == null) return {}
221
33
  if (typeof input === 'object' && !Array.isArray(input)) return input
@@ -267,9 +79,8 @@ async function callSuperagnt(apiKey, method, path, query, body) {
267
79
  return res.json()
268
80
  }
269
81
 
270
- export default async function register(api) {
82
+ export default function register(api) {
271
83
  const apiKey = api.pluginConfig.apiKey || process.env.SUPERAGNT_API_KEY || readAgntConfig()?.apiKey
272
- const mcpToken = api.pluginConfig.mcpToken || process.env.SUPERAGNT_MCP_TOKEN
273
84
 
274
85
  function ensureApiKey() {
275
86
  if (apiKey) return apiKey
@@ -281,26 +92,6 @@ export default async function register(api) {
281
92
  )
282
93
  }
283
94
 
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
95
  api.registerTool({
305
96
  name: 'superagnt_connection_attio_get_v2_objects',
306
97
  description: "List objects",
@@ -309,7 +100,7 @@ export default async function register(api) {
309
100
  "properties": {}
310
101
  },
311
102
  execute: async (input) => {
312
- const key = await ensureApiKey()
103
+ const key = ensureApiKey()
313
104
  const params = parseToolInput(input)
314
105
  return callSuperagnt(key, 'GET', '/v2/objects', params)
315
106
  },
@@ -331,7 +122,7 @@ export default async function register(api) {
331
122
  ]
332
123
  },
333
124
  execute: async (input) => {
334
- const key = await ensureApiKey()
125
+ const key = ensureApiKey()
335
126
  const params = parseToolInput(input)
336
127
  return callSuperagnt(key, 'POST', '/v2/objects', undefined, params)
337
128
  },
@@ -353,7 +144,7 @@ export default async function register(api) {
353
144
  ]
354
145
  },
355
146
  execute: async (input) => {
356
- const key = await ensureApiKey()
147
+ const key = ensureApiKey()
357
148
  const params = parseToolInput(input)
358
149
  return callSuperagnt(key, 'GET', '/v2/objects/{object}', params)
359
150
  },
@@ -380,7 +171,7 @@ export default async function register(api) {
380
171
  ]
381
172
  },
382
173
  execute: async (input) => {
383
- const key = await ensureApiKey()
174
+ const key = ensureApiKey()
384
175
  const params = parseToolInput(input)
385
176
  return callSuperagnt(key, 'PATCH', '/v2/objects/{object}', undefined, params)
386
177
  },
@@ -414,7 +205,7 @@ export default async function register(api) {
414
205
  ]
415
206
  },
416
207
  execute: async (input) => {
417
- const key = await ensureApiKey()
208
+ const key = ensureApiKey()
418
209
  const params = parseToolInput(input)
419
210
  return callSuperagnt(key, 'GET', '/v2/objects/{object}/views', params)
420
211
  },
@@ -453,7 +244,7 @@ export default async function register(api) {
453
244
  ]
454
245
  },
455
246
  execute: async (input) => {
456
- const key = await ensureApiKey()
247
+ const key = ensureApiKey()
457
248
  const params = parseToolInput(input)
458
249
  return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes', params)
459
250
  },
@@ -485,7 +276,7 @@ export default async function register(api) {
485
276
  ]
486
277
  },
487
278
  execute: async (input) => {
488
- const key = await ensureApiKey()
279
+ const key = ensureApiKey()
489
280
  const params = parseToolInput(input)
490
281
  return callSuperagnt(key, 'POST', '/v2/{target}/{identifier}/attributes', undefined, params)
491
282
  },
@@ -517,7 +308,7 @@ export default async function register(api) {
517
308
  ]
518
309
  },
519
310
  execute: async (input) => {
520
- const key = await ensureApiKey()
311
+ const key = ensureApiKey()
521
312
  const params = parseToolInput(input)
522
313
  return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes/{attribute}', params)
523
314
  },
@@ -554,7 +345,7 @@ export default async function register(api) {
554
345
  ]
555
346
  },
556
347
  execute: async (input) => {
557
- const key = await ensureApiKey()
348
+ const key = ensureApiKey()
558
349
  const params = parseToolInput(input)
559
350
  return callSuperagnt(key, 'PATCH', '/v2/{target}/{identifier}/attributes/{attribute}', undefined, params)
560
351
  },
@@ -590,7 +381,7 @@ export default async function register(api) {
590
381
  ]
591
382
  },
592
383
  execute: async (input) => {
593
- const key = await ensureApiKey()
384
+ const key = ensureApiKey()
594
385
  const params = parseToolInput(input)
595
386
  return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes/{attribute}/options', params)
596
387
  },
@@ -627,7 +418,7 @@ export default async function register(api) {
627
418
  ]
628
419
  },
629
420
  execute: async (input) => {
630
- const key = await ensureApiKey()
421
+ const key = ensureApiKey()
631
422
  const params = parseToolInput(input)
632
423
  return callSuperagnt(key, 'POST', '/v2/{target}/{identifier}/attributes/{attribute}/options', undefined, params)
633
424
  },
@@ -669,7 +460,7 @@ export default async function register(api) {
669
460
  ]
670
461
  },
671
462
  execute: async (input) => {
672
- const key = await ensureApiKey()
463
+ const key = ensureApiKey()
673
464
  const params = parseToolInput(input)
674
465
  return callSuperagnt(key, 'PATCH', '/v2/{target}/{identifier}/attributes/{attribute}/options/{option}', undefined, params)
675
466
  },
@@ -705,7 +496,7 @@ export default async function register(api) {
705
496
  ]
706
497
  },
707
498
  execute: async (input) => {
708
- const key = await ensureApiKey()
499
+ const key = ensureApiKey()
709
500
  const params = parseToolInput(input)
710
501
  return callSuperagnt(key, 'GET', '/v2/{target}/{identifier}/attributes/{attribute}/statuses', params)
711
502
  },
@@ -742,7 +533,7 @@ export default async function register(api) {
742
533
  ]
743
534
  },
744
535
  execute: async (input) => {
745
- const key = await ensureApiKey()
536
+ const key = ensureApiKey()
746
537
  const params = parseToolInput(input)
747
538
  return callSuperagnt(key, 'POST', '/v2/{target}/{identifier}/attributes/{attribute}/statuses', undefined, params)
748
539
  },
@@ -784,7 +575,7 @@ export default async function register(api) {
784
575
  ]
785
576
  },
786
577
  execute: async (input) => {
787
- const key = await ensureApiKey()
578
+ const key = ensureApiKey()
788
579
  const params = parseToolInput(input)
789
580
  return callSuperagnt(key, 'PATCH', '/v2/{target}/{identifier}/attributes/{attribute}/statuses/{status}', undefined, params)
790
581
  },
@@ -826,7 +617,7 @@ export default async function register(api) {
826
617
  ]
827
618
  },
828
619
  execute: async (input) => {
829
- const key = await ensureApiKey()
620
+ const key = ensureApiKey()
830
621
  const params = parseToolInput(input)
831
622
  return callSuperagnt(key, 'POST', '/v2/objects/{object}/records/query', undefined, params)
832
623
  },
@@ -853,7 +644,7 @@ export default async function register(api) {
853
644
  ]
854
645
  },
855
646
  execute: async (input) => {
856
- const key = await ensureApiKey()
647
+ const key = ensureApiKey()
857
648
  const params = parseToolInput(input)
858
649
  return callSuperagnt(key, 'POST', '/v2/objects/{object}/records', undefined, params)
859
650
  },
@@ -885,7 +676,7 @@ export default async function register(api) {
885
676
  ]
886
677
  },
887
678
  execute: async (input) => {
888
- const key = await ensureApiKey()
679
+ const key = ensureApiKey()
889
680
  const params = parseToolInput(input)
890
681
  return callSuperagnt(key, 'PUT', '/v2/objects/{object}/records', undefined, params)
891
682
  },
@@ -912,7 +703,7 @@ export default async function register(api) {
912
703
  ]
913
704
  },
914
705
  execute: async (input) => {
915
- const key = await ensureApiKey()
706
+ const key = ensureApiKey()
916
707
  const params = parseToolInput(input)
917
708
  return callSuperagnt(key, 'GET', '/v2/objects/{object}/records/{record_id}', params)
918
709
  },
@@ -944,7 +735,7 @@ export default async function register(api) {
944
735
  ]
945
736
  },
946
737
  execute: async (input) => {
947
- const key = await ensureApiKey()
738
+ const key = ensureApiKey()
948
739
  const params = parseToolInput(input)
949
740
  return callSuperagnt(key, 'PUT', '/v2/objects/{object}/records/{record_id}', undefined, params)
950
741
  },
@@ -976,7 +767,7 @@ export default async function register(api) {
976
767
  ]
977
768
  },
978
769
  execute: async (input) => {
979
- const key = await ensureApiKey()
770
+ const key = ensureApiKey()
980
771
  const params = parseToolInput(input)
981
772
  return callSuperagnt(key, 'PATCH', '/v2/objects/{object}/records/{record_id}', undefined, params)
982
773
  },
@@ -1003,7 +794,7 @@ export default async function register(api) {
1003
794
  ]
1004
795
  },
1005
796
  execute: async (input) => {
1006
- const key = await ensureApiKey()
797
+ const key = ensureApiKey()
1007
798
  const params = parseToolInput(input)
1008
799
  return callSuperagnt(key, 'DELETE', '/v2/objects/{object}/records/{record_id}', undefined, params)
1009
800
  },
@@ -1047,7 +838,7 @@ export default async function register(api) {
1047
838
  ]
1048
839
  },
1049
840
  execute: async (input) => {
1050
- const key = await ensureApiKey()
841
+ const key = ensureApiKey()
1051
842
  const params = parseToolInput(input)
1052
843
  return callSuperagnt(key, 'GET', '/v2/objects/{object}/records/{record_id}/attributes/{attribute}/values', params)
1053
844
  },
@@ -1082,7 +873,7 @@ export default async function register(api) {
1082
873
  ]
1083
874
  },
1084
875
  execute: async (input) => {
1085
- const key = await ensureApiKey()
876
+ const key = ensureApiKey()
1086
877
  const params = parseToolInput(input)
1087
878
  return callSuperagnt(key, 'GET', '/v2/objects/{object}/records/{record_id}/entries', params)
1088
879
  },
@@ -1118,7 +909,7 @@ export default async function register(api) {
1118
909
  ]
1119
910
  },
1120
911
  execute: async (input) => {
1121
- const key = await ensureApiKey()
912
+ const key = ensureApiKey()
1122
913
  const params = parseToolInput(input)
1123
914
  return callSuperagnt(key, 'POST', '/v2/objects/records/search', undefined, params)
1124
915
  },
@@ -1132,7 +923,7 @@ export default async function register(api) {
1132
923
  "properties": {}
1133
924
  },
1134
925
  execute: async (input) => {
1135
- const key = await ensureApiKey()
926
+ const key = ensureApiKey()
1136
927
  const params = parseToolInput(input)
1137
928
  return callSuperagnt(key, 'GET', '/v2/lists', params)
1138
929
  },
@@ -1154,7 +945,7 @@ export default async function register(api) {
1154
945
  ]
1155
946
  },
1156
947
  execute: async (input) => {
1157
- const key = await ensureApiKey()
948
+ const key = ensureApiKey()
1158
949
  const params = parseToolInput(input)
1159
950
  return callSuperagnt(key, 'POST', '/v2/lists', undefined, params)
1160
951
  },
@@ -1176,7 +967,7 @@ export default async function register(api) {
1176
967
  ]
1177
968
  },
1178
969
  execute: async (input) => {
1179
- const key = await ensureApiKey()
970
+ const key = ensureApiKey()
1180
971
  const params = parseToolInput(input)
1181
972
  return callSuperagnt(key, 'GET', '/v2/lists/{list}', params)
1182
973
  },
@@ -1203,7 +994,7 @@ export default async function register(api) {
1203
994
  ]
1204
995
  },
1205
996
  execute: async (input) => {
1206
- const key = await ensureApiKey()
997
+ const key = ensureApiKey()
1207
998
  const params = parseToolInput(input)
1208
999
  return callSuperagnt(key, 'PATCH', '/v2/lists/{list}', undefined, params)
1209
1000
  },
@@ -1237,7 +1028,7 @@ export default async function register(api) {
1237
1028
  ]
1238
1029
  },
1239
1030
  execute: async (input) => {
1240
- const key = await ensureApiKey()
1031
+ const key = ensureApiKey()
1241
1032
  const params = parseToolInput(input)
1242
1033
  return callSuperagnt(key, 'GET', '/v2/lists/{list}/views', params)
1243
1034
  },
@@ -1279,7 +1070,7 @@ export default async function register(api) {
1279
1070
  ]
1280
1071
  },
1281
1072
  execute: async (input) => {
1282
- const key = await ensureApiKey()
1073
+ const key = ensureApiKey()
1283
1074
  const params = parseToolInput(input)
1284
1075
  return callSuperagnt(key, 'POST', '/v2/lists/{list}/entries/query', undefined, params)
1285
1076
  },
@@ -1306,7 +1097,7 @@ export default async function register(api) {
1306
1097
  ]
1307
1098
  },
1308
1099
  execute: async (input) => {
1309
- const key = await ensureApiKey()
1100
+ const key = ensureApiKey()
1310
1101
  const params = parseToolInput(input)
1311
1102
  return callSuperagnt(key, 'POST', '/v2/lists/{list}/entries', undefined, params)
1312
1103
  },
@@ -1333,7 +1124,7 @@ export default async function register(api) {
1333
1124
  ]
1334
1125
  },
1335
1126
  execute: async (input) => {
1336
- const key = await ensureApiKey()
1127
+ const key = ensureApiKey()
1337
1128
  const params = parseToolInput(input)
1338
1129
  return callSuperagnt(key, 'PUT', '/v2/lists/{list}/entries', undefined, params)
1339
1130
  },
@@ -1360,7 +1151,7 @@ export default async function register(api) {
1360
1151
  ]
1361
1152
  },
1362
1153
  execute: async (input) => {
1363
- const key = await ensureApiKey()
1154
+ const key = ensureApiKey()
1364
1155
  const params = parseToolInput(input)
1365
1156
  return callSuperagnt(key, 'GET', '/v2/lists/{list}/entries/{entry_id}', params)
1366
1157
  },
@@ -1392,7 +1183,7 @@ export default async function register(api) {
1392
1183
  ]
1393
1184
  },
1394
1185
  execute: async (input) => {
1395
- const key = await ensureApiKey()
1186
+ const key = ensureApiKey()
1396
1187
  const params = parseToolInput(input)
1397
1188
  return callSuperagnt(key, 'PUT', '/v2/lists/{list}/entries/{entry_id}', undefined, params)
1398
1189
  },
@@ -1424,7 +1215,7 @@ export default async function register(api) {
1424
1215
  ]
1425
1216
  },
1426
1217
  execute: async (input) => {
1427
- const key = await ensureApiKey()
1218
+ const key = ensureApiKey()
1428
1219
  const params = parseToolInput(input)
1429
1220
  return callSuperagnt(key, 'PATCH', '/v2/lists/{list}/entries/{entry_id}', undefined, params)
1430
1221
  },
@@ -1451,7 +1242,7 @@ export default async function register(api) {
1451
1242
  ]
1452
1243
  },
1453
1244
  execute: async (input) => {
1454
- const key = await ensureApiKey()
1245
+ const key = ensureApiKey()
1455
1246
  const params = parseToolInput(input)
1456
1247
  return callSuperagnt(key, 'DELETE', '/v2/lists/{list}/entries/{entry_id}', undefined, params)
1457
1248
  },
@@ -1495,7 +1286,7 @@ export default async function register(api) {
1495
1286
  ]
1496
1287
  },
1497
1288
  execute: async (input) => {
1498
- const key = await ensureApiKey()
1289
+ const key = ensureApiKey()
1499
1290
  const params = parseToolInput(input)
1500
1291
  return callSuperagnt(key, 'GET', '/v2/lists/{list}/entries/{entry_id}/attributes/{attribute}/values', params)
1501
1292
  },
@@ -1509,7 +1300,7 @@ export default async function register(api) {
1509
1300
  "properties": {}
1510
1301
  },
1511
1302
  execute: async (input) => {
1512
- const key = await ensureApiKey()
1303
+ const key = ensureApiKey()
1513
1304
  const params = parseToolInput(input)
1514
1305
  return callSuperagnt(key, 'GET', '/v2/workspace_members', params)
1515
1306
  },
@@ -1531,7 +1322,7 @@ export default async function register(api) {
1531
1322
  ]
1532
1323
  },
1533
1324
  execute: async (input) => {
1534
- const key = await ensureApiKey()
1325
+ const key = ensureApiKey()
1535
1326
  const params = parseToolInput(input)
1536
1327
  return callSuperagnt(key, 'GET', '/v2/workspace_members/{workspace_member_id}', params)
1537
1328
  },
@@ -1562,7 +1353,7 @@ export default async function register(api) {
1562
1353
  }
1563
1354
  },
1564
1355
  execute: async (input) => {
1565
- const key = await ensureApiKey()
1356
+ const key = ensureApiKey()
1566
1357
  const params = parseToolInput(input)
1567
1358
  return callSuperagnt(key, 'GET', '/v2/notes', params)
1568
1359
  },
@@ -1584,7 +1375,7 @@ export default async function register(api) {
1584
1375
  ]
1585
1376
  },
1586
1377
  execute: async (input) => {
1587
- const key = await ensureApiKey()
1378
+ const key = ensureApiKey()
1588
1379
  const params = parseToolInput(input)
1589
1380
  return callSuperagnt(key, 'POST', '/v2/notes', undefined, params)
1590
1381
  },
@@ -1606,7 +1397,7 @@ export default async function register(api) {
1606
1397
  ]
1607
1398
  },
1608
1399
  execute: async (input) => {
1609
- const key = await ensureApiKey()
1400
+ const key = ensureApiKey()
1610
1401
  const params = parseToolInput(input)
1611
1402
  return callSuperagnt(key, 'GET', '/v2/notes/{note_id}', params)
1612
1403
  },
@@ -1628,7 +1419,7 @@ export default async function register(api) {
1628
1419
  ]
1629
1420
  },
1630
1421
  execute: async (input) => {
1631
- const key = await ensureApiKey()
1422
+ const key = ensureApiKey()
1632
1423
  const params = parseToolInput(input)
1633
1424
  return callSuperagnt(key, 'DELETE', '/v2/notes/{note_id}', undefined, params)
1634
1425
  },
@@ -1674,7 +1465,7 @@ export default async function register(api) {
1674
1465
  }
1675
1466
  },
1676
1467
  execute: async (input) => {
1677
- const key = await ensureApiKey()
1468
+ const key = ensureApiKey()
1678
1469
  const params = parseToolInput(input)
1679
1470
  return callSuperagnt(key, 'GET', '/v2/tasks', params)
1680
1471
  },
@@ -1696,7 +1487,7 @@ export default async function register(api) {
1696
1487
  ]
1697
1488
  },
1698
1489
  execute: async (input) => {
1699
- const key = await ensureApiKey()
1490
+ const key = ensureApiKey()
1700
1491
  const params = parseToolInput(input)
1701
1492
  return callSuperagnt(key, 'POST', '/v2/tasks', undefined, params)
1702
1493
  },
@@ -1718,7 +1509,7 @@ export default async function register(api) {
1718
1509
  ]
1719
1510
  },
1720
1511
  execute: async (input) => {
1721
- const key = await ensureApiKey()
1512
+ const key = ensureApiKey()
1722
1513
  const params = parseToolInput(input)
1723
1514
  return callSuperagnt(key, 'GET', '/v2/tasks/{task_id}', params)
1724
1515
  },
@@ -1745,7 +1536,7 @@ export default async function register(api) {
1745
1536
  ]
1746
1537
  },
1747
1538
  execute: async (input) => {
1748
- const key = await ensureApiKey()
1539
+ const key = ensureApiKey()
1749
1540
  const params = parseToolInput(input)
1750
1541
  return callSuperagnt(key, 'PATCH', '/v2/tasks/{task_id}', undefined, params)
1751
1542
  },
@@ -1767,7 +1558,7 @@ export default async function register(api) {
1767
1558
  ]
1768
1559
  },
1769
1560
  execute: async (input) => {
1770
- const key = await ensureApiKey()
1561
+ const key = ensureApiKey()
1771
1562
  const params = parseToolInput(input)
1772
1563
  return callSuperagnt(key, 'DELETE', '/v2/tasks/{task_id}', undefined, params)
1773
1564
  },
@@ -1806,7 +1597,7 @@ export default async function register(api) {
1806
1597
  }
1807
1598
  },
1808
1599
  execute: async (input) => {
1809
- const key = await ensureApiKey()
1600
+ const key = ensureApiKey()
1810
1601
  const params = parseToolInput(input)
1811
1602
  return callSuperagnt(key, 'GET', '/v2/threads', params)
1812
1603
  },
@@ -1828,7 +1619,7 @@ export default async function register(api) {
1828
1619
  ]
1829
1620
  },
1830
1621
  execute: async (input) => {
1831
- const key = await ensureApiKey()
1622
+ const key = ensureApiKey()
1832
1623
  const params = parseToolInput(input)
1833
1624
  return callSuperagnt(key, 'GET', '/v2/threads/{thread_id}', params)
1834
1625
  },
@@ -1850,7 +1641,7 @@ export default async function register(api) {
1850
1641
  ]
1851
1642
  },
1852
1643
  execute: async (input) => {
1853
- const key = await ensureApiKey()
1644
+ const key = ensureApiKey()
1854
1645
  const params = parseToolInput(input)
1855
1646
  return callSuperagnt(key, 'POST', '/v2/comments', undefined, params)
1856
1647
  },
@@ -1872,7 +1663,7 @@ export default async function register(api) {
1872
1663
  ]
1873
1664
  },
1874
1665
  execute: async (input) => {
1875
- const key = await ensureApiKey()
1666
+ const key = ensureApiKey()
1876
1667
  const params = parseToolInput(input)
1877
1668
  return callSuperagnt(key, 'GET', '/v2/comments/{comment_id}', params)
1878
1669
  },
@@ -1894,7 +1685,7 @@ export default async function register(api) {
1894
1685
  ]
1895
1686
  },
1896
1687
  execute: async (input) => {
1897
- const key = await ensureApiKey()
1688
+ const key = ensureApiKey()
1898
1689
  const params = parseToolInput(input)
1899
1690
  return callSuperagnt(key, 'DELETE', '/v2/comments/{comment_id}', undefined, params)
1900
1691
  },
@@ -1951,7 +1742,7 @@ export default async function register(api) {
1951
1742
  }
1952
1743
  },
1953
1744
  execute: async (input) => {
1954
- const key = await ensureApiKey()
1745
+ const key = ensureApiKey()
1955
1746
  const params = parseToolInput(input)
1956
1747
  return callSuperagnt(key, 'GET', '/v2/meetings', params)
1957
1748
  },
@@ -1973,7 +1764,7 @@ export default async function register(api) {
1973
1764
  ]
1974
1765
  },
1975
1766
  execute: async (input) => {
1976
- const key = await ensureApiKey()
1767
+ const key = ensureApiKey()
1977
1768
  const params = parseToolInput(input)
1978
1769
  return callSuperagnt(key, 'POST', '/v2/meetings', undefined, params)
1979
1770
  },
@@ -1995,7 +1786,7 @@ export default async function register(api) {
1995
1786
  ]
1996
1787
  },
1997
1788
  execute: async (input) => {
1998
- const key = await ensureApiKey()
1789
+ const key = ensureApiKey()
1999
1790
  const params = parseToolInput(input)
2000
1791
  return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}', params)
2001
1792
  },
@@ -2025,7 +1816,7 @@ export default async function register(api) {
2025
1816
  ]
2026
1817
  },
2027
1818
  execute: async (input) => {
2028
- const key = await ensureApiKey()
1819
+ const key = ensureApiKey()
2029
1820
  const params = parseToolInput(input)
2030
1821
  return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}/call_recordings', params)
2031
1822
  },
@@ -2052,7 +1843,7 @@ export default async function register(api) {
2052
1843
  ]
2053
1844
  },
2054
1845
  execute: async (input) => {
2055
- const key = await ensureApiKey()
1846
+ const key = ensureApiKey()
2056
1847
  const params = parseToolInput(input)
2057
1848
  return callSuperagnt(key, 'POST', '/v2/meetings/{meeting_id}/call_recordings', undefined, params)
2058
1849
  },
@@ -2079,7 +1870,7 @@ export default async function register(api) {
2079
1870
  ]
2080
1871
  },
2081
1872
  execute: async (input) => {
2082
- const key = await ensureApiKey()
1873
+ const key = ensureApiKey()
2083
1874
  const params = parseToolInput(input)
2084
1875
  return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}', params)
2085
1876
  },
@@ -2106,7 +1897,7 @@ export default async function register(api) {
2106
1897
  ]
2107
1898
  },
2108
1899
  execute: async (input) => {
2109
- const key = await ensureApiKey()
1900
+ const key = ensureApiKey()
2110
1901
  const params = parseToolInput(input)
2111
1902
  return callSuperagnt(key, 'DELETE', '/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}', undefined, params)
2112
1903
  },
@@ -2137,7 +1928,7 @@ export default async function register(api) {
2137
1928
  ]
2138
1929
  },
2139
1930
  execute: async (input) => {
2140
- const key = await ensureApiKey()
1931
+ const key = ensureApiKey()
2141
1932
  const params = parseToolInput(input)
2142
1933
  return callSuperagnt(key, 'GET', '/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}/transcript', params)
2143
1934
  },
@@ -2180,7 +1971,7 @@ export default async function register(api) {
2180
1971
  ]
2181
1972
  },
2182
1973
  execute: async (input) => {
2183
- const key = await ensureApiKey()
1974
+ const key = ensureApiKey()
2184
1975
  const params = parseToolInput(input)
2185
1976
  return callSuperagnt(key, 'GET', '/v2/files', params)
2186
1977
  },
@@ -2194,7 +1985,7 @@ export default async function register(api) {
2194
1985
  "properties": {}
2195
1986
  },
2196
1987
  execute: async (input) => {
2197
- const key = await ensureApiKey()
1988
+ const key = ensureApiKey()
2198
1989
  const params = parseToolInput(input)
2199
1990
  return callSuperagnt(key, 'POST', '/v2/files', undefined, params)
2200
1991
  },
@@ -2208,7 +1999,7 @@ export default async function register(api) {
2208
1999
  "properties": {}
2209
2000
  },
2210
2001
  execute: async (input) => {
2211
- const key = await ensureApiKey()
2002
+ const key = ensureApiKey()
2212
2003
  const params = parseToolInput(input)
2213
2004
  return callSuperagnt(key, 'POST', '/v2/files/upload', undefined, params)
2214
2005
  },
@@ -2230,7 +2021,7 @@ export default async function register(api) {
2230
2021
  ]
2231
2022
  },
2232
2023
  execute: async (input) => {
2233
- const key = await ensureApiKey()
2024
+ const key = ensureApiKey()
2234
2025
  const params = parseToolInput(input)
2235
2026
  return callSuperagnt(key, 'GET', '/v2/files/{file_id}', params)
2236
2027
  },
@@ -2252,7 +2043,7 @@ export default async function register(api) {
2252
2043
  ]
2253
2044
  },
2254
2045
  execute: async (input) => {
2255
- const key = await ensureApiKey()
2046
+ const key = ensureApiKey()
2256
2047
  const params = parseToolInput(input)
2257
2048
  return callSuperagnt(key, 'DELETE', '/v2/files/{file_id}', undefined, params)
2258
2049
  },
@@ -2274,7 +2065,7 @@ export default async function register(api) {
2274
2065
  ]
2275
2066
  },
2276
2067
  execute: async (input) => {
2277
- const key = await ensureApiKey()
2068
+ const key = ensureApiKey()
2278
2069
  const params = parseToolInput(input)
2279
2070
  return callSuperagnt(key, 'GET', '/v2/files/{file_id}/download', params)
2280
2071
  },
@@ -2288,7 +2079,7 @@ export default async function register(api) {
2288
2079
  "properties": {}
2289
2080
  },
2290
2081
  execute: async (input) => {
2291
- const key = await ensureApiKey()
2082
+ const key = ensureApiKey()
2292
2083
  const params = parseToolInput(input)
2293
2084
  return callSuperagnt(key, 'GET', '/scim/v2/Schemas', params)
2294
2085
  },
@@ -2302,7 +2093,7 @@ export default async function register(api) {
2302
2093
  "properties": {}
2303
2094
  },
2304
2095
  execute: async (input) => {
2305
- const key = await ensureApiKey()
2096
+ const key = ensureApiKey()
2306
2097
  const params = parseToolInput(input)
2307
2098
  return callSuperagnt(key, 'GET', '/scim/v2/Users', params)
2308
2099
  },
@@ -2316,7 +2107,7 @@ export default async function register(api) {
2316
2107
  "properties": {}
2317
2108
  },
2318
2109
  execute: async (input) => {
2319
- const key = await ensureApiKey()
2110
+ const key = ensureApiKey()
2320
2111
  const params = parseToolInput(input)
2321
2112
  return callSuperagnt(key, 'POST', '/scim/v2/Users', undefined, params)
2322
2113
  },
@@ -2330,7 +2121,7 @@ export default async function register(api) {
2330
2121
  "properties": {}
2331
2122
  },
2332
2123
  execute: async (input) => {
2333
- const key = await ensureApiKey()
2124
+ const key = ensureApiKey()
2334
2125
  const params = parseToolInput(input)
2335
2126
  return callSuperagnt(key, 'GET', '/scim/v2/Groups', params)
2336
2127
  },
@@ -2344,7 +2135,7 @@ export default async function register(api) {
2344
2135
  "properties": {}
2345
2136
  },
2346
2137
  execute: async (input) => {
2347
- const key = await ensureApiKey()
2138
+ const key = ensureApiKey()
2348
2139
  const params = parseToolInput(input)
2349
2140
  return callSuperagnt(key, 'POST', '/scim/v2/Groups', undefined, params)
2350
2141
  },
@@ -2358,7 +2149,7 @@ export default async function register(api) {
2358
2149
  "properties": {}
2359
2150
  },
2360
2151
  execute: async (input) => {
2361
- const key = await ensureApiKey()
2152
+ const key = ensureApiKey()
2362
2153
  const params = parseToolInput(input)
2363
2154
  return callSuperagnt(key, 'GET', '/scim/v2/Users/{user_id}', params)
2364
2155
  },
@@ -2372,7 +2163,7 @@ export default async function register(api) {
2372
2163
  "properties": {}
2373
2164
  },
2374
2165
  execute: async (input) => {
2375
- const key = await ensureApiKey()
2166
+ const key = ensureApiKey()
2376
2167
  const params = parseToolInput(input)
2377
2168
  return callSuperagnt(key, 'PUT', '/scim/v2/Users/{user_id}', undefined, params)
2378
2169
  },
@@ -2386,7 +2177,7 @@ export default async function register(api) {
2386
2177
  "properties": {}
2387
2178
  },
2388
2179
  execute: async (input) => {
2389
- const key = await ensureApiKey()
2180
+ const key = ensureApiKey()
2390
2181
  const params = parseToolInput(input)
2391
2182
  return callSuperagnt(key, 'PATCH', '/scim/v2/Users/{user_id}', undefined, params)
2392
2183
  },
@@ -2400,7 +2191,7 @@ export default async function register(api) {
2400
2191
  "properties": {}
2401
2192
  },
2402
2193
  execute: async (input) => {
2403
- const key = await ensureApiKey()
2194
+ const key = ensureApiKey()
2404
2195
  const params = parseToolInput(input)
2405
2196
  return callSuperagnt(key, 'DELETE', '/scim/v2/Users/{user_id}', undefined, params)
2406
2197
  },
@@ -2414,7 +2205,7 @@ export default async function register(api) {
2414
2205
  "properties": {}
2415
2206
  },
2416
2207
  execute: async (input) => {
2417
- const key = await ensureApiKey()
2208
+ const key = ensureApiKey()
2418
2209
  const params = parseToolInput(input)
2419
2210
  return callSuperagnt(key, 'GET', '/scim/v2/Groups/{workspace_team_id}', params)
2420
2211
  },
@@ -2428,7 +2219,7 @@ export default async function register(api) {
2428
2219
  "properties": {}
2429
2220
  },
2430
2221
  execute: async (input) => {
2431
- const key = await ensureApiKey()
2222
+ const key = ensureApiKey()
2432
2223
  const params = parseToolInput(input)
2433
2224
  return callSuperagnt(key, 'PUT', '/scim/v2/Groups/{workspace_team_id}', undefined, params)
2434
2225
  },
@@ -2442,7 +2233,7 @@ export default async function register(api) {
2442
2233
  "properties": {}
2443
2234
  },
2444
2235
  execute: async (input) => {
2445
- const key = await ensureApiKey()
2236
+ const key = ensureApiKey()
2446
2237
  const params = parseToolInput(input)
2447
2238
  return callSuperagnt(key, 'PATCH', '/scim/v2/Groups/{workspace_team_id}', undefined, params)
2448
2239
  },
@@ -2456,7 +2247,7 @@ export default async function register(api) {
2456
2247
  "properties": {}
2457
2248
  },
2458
2249
  execute: async (input) => {
2459
- const key = await ensureApiKey()
2250
+ const key = ensureApiKey()
2460
2251
  const params = parseToolInput(input)
2461
2252
  return callSuperagnt(key, 'DELETE', '/scim/v2/Groups/{workspace_team_id}', undefined, params)
2462
2253
  },
@@ -2479,7 +2270,7 @@ export default async function register(api) {
2479
2270
  }
2480
2271
  },
2481
2272
  execute: async (input) => {
2482
- const key = await ensureApiKey()
2273
+ const key = ensureApiKey()
2483
2274
  const params = parseToolInput(input)
2484
2275
  return callSuperagnt(key, 'GET', '/v2/webhooks', params)
2485
2276
  },
@@ -2501,7 +2292,7 @@ export default async function register(api) {
2501
2292
  ]
2502
2293
  },
2503
2294
  execute: async (input) => {
2504
- const key = await ensureApiKey()
2295
+ const key = ensureApiKey()
2505
2296
  const params = parseToolInput(input)
2506
2297
  return callSuperagnt(key, 'POST', '/v2/webhooks', undefined, params)
2507
2298
  },
@@ -2523,7 +2314,7 @@ export default async function register(api) {
2523
2314
  ]
2524
2315
  },
2525
2316
  execute: async (input) => {
2526
- const key = await ensureApiKey()
2317
+ const key = ensureApiKey()
2527
2318
  const params = parseToolInput(input)
2528
2319
  return callSuperagnt(key, 'GET', '/v2/webhooks/{webhook_id}', params)
2529
2320
  },
@@ -2550,7 +2341,7 @@ export default async function register(api) {
2550
2341
  ]
2551
2342
  },
2552
2343
  execute: async (input) => {
2553
- const key = await ensureApiKey()
2344
+ const key = ensureApiKey()
2554
2345
  const params = parseToolInput(input)
2555
2346
  return callSuperagnt(key, 'PATCH', '/v2/webhooks/{webhook_id}', undefined, params)
2556
2347
  },
@@ -2572,7 +2363,7 @@ export default async function register(api) {
2572
2363
  ]
2573
2364
  },
2574
2365
  execute: async (input) => {
2575
- const key = await ensureApiKey()
2366
+ const key = ensureApiKey()
2576
2367
  const params = parseToolInput(input)
2577
2368
  return callSuperagnt(key, 'DELETE', '/v2/webhooks/{webhook_id}', undefined, params)
2578
2369
  },
@@ -2586,12 +2377,9 @@ export default async function register(api) {
2586
2377
  "properties": {}
2587
2378
  },
2588
2379
  execute: async (input) => {
2589
- const key = await ensureApiKey()
2380
+ const key = ensureApiKey()
2590
2381
  const params = parseToolInput(input)
2591
2382
  return callSuperagnt(key, 'GET', '/v2/self', params)
2592
2383
  },
2593
2384
  })
2594
-
2595
- promptState.toolCount = 87
2596
- promptState.ready = true
2597
2385
  }
@@ -2,7 +2,98 @@
2
2
  "id": "attio-crm",
3
3
  "name": "Attio Integration",
4
4
  "description": "OpenClaw plugin for Attio CRM — manage records, lists, notes, tasks, meetings, and call recordings with your superagnt API key.",
5
- "version": "2.0.2",
5
+ "version": "2.0.3",
6
+ "contracts": {
7
+ "tools": [
8
+ "superagnt_connection_attio_get_v2_objects",
9
+ "superagnt_connection_attio_post_v2_objects",
10
+ "superagnt_connection_attio_get_v2_objects__object_",
11
+ "superagnt_connection_attio_patch_v2_objects__object_",
12
+ "superagnt_connection_attio_get_v2_objects__object__views",
13
+ "superagnt_connection_attio_list_attributes",
14
+ "superagnt_connection_attio_create_attribute",
15
+ "superagnt_connection_attio_get_attribute",
16
+ "superagnt_connection_attio_update_attribute",
17
+ "superagnt_connection_attio_list_attribute_options",
18
+ "superagnt_connection_attio_create_attribute_option",
19
+ "superagnt_connection_attio_update_attribute_option",
20
+ "superagnt_connection_attio_list_attribute_statuses",
21
+ "superagnt_connection_attio_create_attribute_status",
22
+ "superagnt_connection_attio_update_attribute_status",
23
+ "superagnt_connection_attio_list_records",
24
+ "superagnt_connection_attio_post_v2_objects__object__records",
25
+ "superagnt_connection_attio_put_v2_objects__object__records",
26
+ "superagnt_connection_attio_get_record",
27
+ "superagnt_connection_attio_overwrite_record",
28
+ "superagnt_connection_attio_update_record",
29
+ "superagnt_connection_attio_delete_record",
30
+ "superagnt_connection_attio_list_record_attribute_values",
31
+ "superagnt_connection_attio_list_record_list_entries",
32
+ "superagnt_connection_attio_post_v2_objects_records_search",
33
+ "superagnt_connection_attio_get_v2_lists",
34
+ "superagnt_connection_attio_post_v2_lists",
35
+ "superagnt_connection_attio_get_v2_lists__list_",
36
+ "superagnt_connection_attio_patch_v2_lists__list_",
37
+ "superagnt_connection_attio_get_v2_lists__list__views",
38
+ "superagnt_connection_attio_list_list_entries",
39
+ "superagnt_connection_attio_post_v2_lists__list__entries",
40
+ "superagnt_connection_attio_put_v2_lists__list__entries",
41
+ "superagnt_connection_attio_get_list_entry",
42
+ "superagnt_connection_attio_overwrite_list_entry",
43
+ "superagnt_connection_attio_update_list_entry",
44
+ "superagnt_connection_attio_delete_list_entry",
45
+ "superagnt_connection_attio_list_list_entry_attribute_values",
46
+ "superagnt_connection_attio_get_v2_workspace_members",
47
+ "superagnt_connection_attio_get_workspace_member",
48
+ "superagnt_connection_attio_get_v2_notes",
49
+ "superagnt_connection_attio_post_v2_notes",
50
+ "superagnt_connection_attio_get_v2_notes__note_id_",
51
+ "superagnt_connection_attio_delete_v2_notes__note_id_",
52
+ "superagnt_connection_attio_get_v2_tasks",
53
+ "superagnt_connection_attio_post_v2_tasks",
54
+ "superagnt_connection_attio_get_v2_tasks__task_id_",
55
+ "superagnt_connection_attio_patch_v2_tasks__task_id_",
56
+ "superagnt_connection_attio_delete_v2_tasks__task_id_",
57
+ "superagnt_connection_attio_get_v2_threads",
58
+ "superagnt_connection_attio_get_v2_threads__thread_id_",
59
+ "superagnt_connection_attio_post_v2_comments",
60
+ "superagnt_connection_attio_get_v2_comments__comment_id_",
61
+ "superagnt_connection_attio_delete_v2_comments__comment_id_",
62
+ "superagnt_connection_attio_get_v2_meetings",
63
+ "superagnt_connection_attio_post_v2_meetings",
64
+ "superagnt_connection_attio_get_v2_meetings__meeting_id_",
65
+ "superagnt_connection_attio_list_call_recordings",
66
+ "superagnt_connection_attio_create_call_recording",
67
+ "superagnt_connection_attio_get_call_recording",
68
+ "superagnt_connection_attio_delete_call_recording",
69
+ "superagnt_connection_attio_get_call_recording_transcript",
70
+ "superagnt_connection_attio_get_v2_files",
71
+ "superagnt_connection_attio_post_v2_files",
72
+ "superagnt_connection_attio_post_v2_files_upload",
73
+ "superagnt_connection_attio_get_v2_files__file_id_",
74
+ "superagnt_connection_attio_delete_v2_files__file_id_",
75
+ "superagnt_connection_attio_get_v2_files__file_id__download",
76
+ "superagnt_connection_attio_get_scim_v2_Schemas",
77
+ "superagnt_connection_attio_get_scim_v2_Users",
78
+ "superagnt_connection_attio_post_scim_v2_Users",
79
+ "superagnt_connection_attio_get_scim_v2_Groups",
80
+ "superagnt_connection_attio_post_scim_v2_Groups",
81
+ "superagnt_connection_attio_get_scim_v2_Users__user_id_",
82
+ "superagnt_connection_attio_put_scim_v2_Users__user_id_",
83
+ "superagnt_connection_attio_patch_scim_v2_Users__user_id_",
84
+ "superagnt_connection_attio_delete_scim_v2_Users__user_id_",
85
+ "superagnt_connection_attio_scim_get_group",
86
+ "superagnt_connection_attio_scim_replace_group",
87
+ "superagnt_connection_attio_scim_patch_group",
88
+ "superagnt_connection_attio_scim_delete_group",
89
+ "superagnt_connection_attio_get_v2_webhooks",
90
+ "superagnt_connection_attio_post_v2_webhooks",
91
+ "superagnt_connection_attio_get_v2_webhooks__webhook_id_",
92
+ "superagnt_connection_attio_patch_v2_webhooks__webhook_id_",
93
+ "superagnt_connection_attio_delete_v2_webhooks__webhook_id_",
94
+ "superagnt_connection_attio_get_v2_self"
95
+ ]
96
+ },
6
97
  "configSchema": {
7
98
  "type": "object",
8
99
  "properties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superagnt/attio-crm",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "type": "module",
5
5
  "description": "OpenClaw plugin for Attio CRM — manage records, lists, notes, tasks, meetings, and call recordings with your superagnt API key.",
6
6
  "main": "index.js",