@superagnt/heyreach-outreach 2.0.2 → 2.0.4

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 HeyReach workspace to superagnt to automate LinkedIn outreach campa
8
8
  openclaw plugins install @superagnt/heyreach-outreach
9
9
  ```
10
10
 
11
- This package is the official **OpenClaw** plugin for the **HeyReach** 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 **HeyReach** 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 HeyReach LinkedIn outreach — manage campaigns, leads, lead lists, conversations, and analytics 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 (HeyReach)](https://superagnt.com/connections/heyreach) — setup and endpoints
69
+ - [Documentation](https://superagnt.com/docs) — getting started and concepts
70
+ - [Connection guide (HeyReach)](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 HeyReach integration (heyreach)."
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,35 +92,15 @@ 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_heyreach_auth_check_api_key',
306
97
  description: "Check API Key",
307
- inputSchema: {
98
+ parameters: {
308
99
  "type": "object",
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', '/auth/CheckApiKey', params)
315
106
  },
@@ -318,7 +109,7 @@ export default async function register(api) {
318
109
  api.registerTool({
319
110
  name: 'superagnt_connection_heyreach_campaign_get_all',
320
111
  description: "List campaigns",
321
- inputSchema: {
112
+ parameters: {
322
113
  "type": "object",
323
114
  "properties": {
324
115
  "offset": {
@@ -344,7 +135,7 @@ export default async function register(api) {
344
135
  }
345
136
  },
346
137
  execute: async (input) => {
347
- const key = await ensureApiKey()
138
+ const key = ensureApiKey()
348
139
  const params = parseToolInput(input)
349
140
  return callSuperagnt(key, 'POST', '/campaign/GetAll', undefined, params)
350
141
  },
@@ -353,7 +144,7 @@ export default async function register(api) {
353
144
  api.registerTool({
354
145
  name: 'superagnt_connection_heyreach_campaign_get_by_id',
355
146
  description: "Get campaign by ID",
356
- inputSchema: {
147
+ parameters: {
357
148
  "type": "object",
358
149
  "properties": {
359
150
  "campaignId": {
@@ -366,7 +157,7 @@ export default async function register(api) {
366
157
  ]
367
158
  },
368
159
  execute: async (input) => {
369
- const key = await ensureApiKey()
160
+ const key = ensureApiKey()
370
161
  const params = parseToolInput(input)
371
162
  return callSuperagnt(key, 'GET', '/campaign/GetById', params)
372
163
  },
@@ -375,7 +166,7 @@ export default async function register(api) {
375
166
  api.registerTool({
376
167
  name: 'superagnt_connection_heyreach_campaign_pause',
377
168
  description: "Pause campaign",
378
- inputSchema: {
169
+ parameters: {
379
170
  "type": "object",
380
171
  "properties": {
381
172
  "campaignId": {
@@ -388,7 +179,7 @@ export default async function register(api) {
388
179
  ]
389
180
  },
390
181
  execute: async (input) => {
391
- const key = await ensureApiKey()
182
+ const key = ensureApiKey()
392
183
  const params = parseToolInput(input)
393
184
  return callSuperagnt(key, 'POST', '/campaign/Pause', undefined, params)
394
185
  },
@@ -397,7 +188,7 @@ export default async function register(api) {
397
188
  api.registerTool({
398
189
  name: 'superagnt_connection_heyreach_campaign_resume',
399
190
  description: "Resume campaign",
400
- inputSchema: {
191
+ parameters: {
401
192
  "type": "object",
402
193
  "properties": {
403
194
  "campaignId": {
@@ -410,7 +201,7 @@ export default async function register(api) {
410
201
  ]
411
202
  },
412
203
  execute: async (input) => {
413
- const key = await ensureApiKey()
204
+ const key = ensureApiKey()
414
205
  const params = parseToolInput(input)
415
206
  return callSuperagnt(key, 'POST', '/campaign/Resume', undefined, params)
416
207
  },
@@ -419,7 +210,7 @@ export default async function register(api) {
419
210
  api.registerTool({
420
211
  name: 'superagnt_connection_heyreach_campaign_start',
421
212
  description: "Start campaign",
422
- inputSchema: {
213
+ parameters: {
423
214
  "type": "object",
424
215
  "properties": {
425
216
  "campaignId": {
@@ -432,7 +223,7 @@ export default async function register(api) {
432
223
  ]
433
224
  },
434
225
  execute: async (input) => {
435
- const key = await ensureApiKey()
226
+ const key = ensureApiKey()
436
227
  const params = parseToolInput(input)
437
228
  return callSuperagnt(key, 'POST', '/campaign/StartCampaign', undefined, params)
438
229
  },
@@ -441,7 +232,7 @@ export default async function register(api) {
441
232
  api.registerTool({
442
233
  name: 'superagnt_connection_heyreach_campaign_create',
443
234
  description: "Create campaign",
444
- inputSchema: {
235
+ parameters: {
445
236
  "type": "object",
446
237
  "properties": {
447
238
  "name": {
@@ -473,7 +264,7 @@ export default async function register(api) {
473
264
  ]
474
265
  },
475
266
  execute: async (input) => {
476
- const key = await ensureApiKey()
267
+ const key = ensureApiKey()
477
268
  const params = parseToolInput(input)
478
269
  return callSuperagnt(key, 'POST', '/campaign/Create', undefined, params)
479
270
  },
@@ -482,7 +273,7 @@ export default async function register(api) {
482
273
  api.registerTool({
483
274
  name: 'superagnt_connection_heyreach_campaign_create_from_template',
484
275
  description: "Create campaign from template",
485
- inputSchema: {
276
+ parameters: {
486
277
  "type": "object",
487
278
  "properties": {
488
279
  "campaignIdForTemplate": {
@@ -525,7 +316,7 @@ export default async function register(api) {
525
316
  ]
526
317
  },
527
318
  execute: async (input) => {
528
- const key = await ensureApiKey()
319
+ const key = ensureApiKey()
529
320
  const params = parseToolInput(input)
530
321
  return callSuperagnt(key, 'POST', '/campaign/CreateCampaignFromTemplate', undefined, params)
531
322
  },
@@ -534,7 +325,7 @@ export default async function register(api) {
534
325
  api.registerTool({
535
326
  name: 'superagnt_connection_heyreach_campaign_update_settings',
536
327
  description: "Update campaign settings",
537
- inputSchema: {
328
+ parameters: {
538
329
  "type": "object",
539
330
  "properties": {
540
331
  "campaignId": {
@@ -571,7 +362,7 @@ export default async function register(api) {
571
362
  ]
572
363
  },
573
364
  execute: async (input) => {
574
- const key = await ensureApiKey()
365
+ const key = ensureApiKey()
575
366
  const params = parseToolInput(input)
576
367
  return callSuperagnt(key, 'POST', '/campaign/UpdateSettings', undefined, params)
577
368
  },
@@ -580,7 +371,7 @@ export default async function register(api) {
580
371
  api.registerTool({
581
372
  name: 'superagnt_connection_heyreach_campaign_update_schedule',
582
373
  description: "Update campaign schedule",
583
- inputSchema: {
374
+ parameters: {
584
375
  "type": "object",
585
376
  "properties": {
586
377
  "campaignId": {
@@ -598,7 +389,7 @@ export default async function register(api) {
598
389
  ]
599
390
  },
600
391
  execute: async (input) => {
601
- const key = await ensureApiKey()
392
+ const key = ensureApiKey()
602
393
  const params = parseToolInput(input)
603
394
  return callSuperagnt(key, 'POST', '/campaign/UpdateSchedule', undefined, params)
604
395
  },
@@ -607,7 +398,7 @@ export default async function register(api) {
607
398
  api.registerTool({
608
399
  name: 'superagnt_connection_heyreach_campaign_update_accounts',
609
400
  description: "Update campaign sender accounts",
610
- inputSchema: {
401
+ parameters: {
611
402
  "type": "object",
612
403
  "properties": {
613
404
  "campaignId": {
@@ -625,7 +416,7 @@ export default async function register(api) {
625
416
  ]
626
417
  },
627
418
  execute: async (input) => {
628
- const key = await ensureApiKey()
419
+ const key = ensureApiKey()
629
420
  const params = parseToolInput(input)
630
421
  return callSuperagnt(key, 'POST', '/campaign/UpdateAccounts', undefined, params)
631
422
  },
@@ -634,7 +425,7 @@ export default async function register(api) {
634
425
  api.registerTool({
635
426
  name: 'superagnt_connection_heyreach_campaign_update_sequence',
636
427
  description: "Update campaign sequence",
637
- inputSchema: {
428
+ parameters: {
638
429
  "type": "object",
639
430
  "properties": {
640
431
  "campaignId": {
@@ -652,7 +443,7 @@ export default async function register(api) {
652
443
  ]
653
444
  },
654
445
  execute: async (input) => {
655
- const key = await ensureApiKey()
446
+ const key = ensureApiKey()
656
447
  const params = parseToolInput(input)
657
448
  return callSuperagnt(key, 'POST', '/campaign/UpdateSequence', undefined, params)
658
449
  },
@@ -661,7 +452,7 @@ export default async function register(api) {
661
452
  api.registerTool({
662
453
  name: 'superagnt_connection_heyreach_campaign_get_sequence',
663
454
  description: "Get campaign sequence",
664
- inputSchema: {
455
+ parameters: {
665
456
  "type": "object",
666
457
  "properties": {
667
458
  "campaignId": {
@@ -674,7 +465,7 @@ export default async function register(api) {
674
465
  ]
675
466
  },
676
467
  execute: async (input) => {
677
- const key = await ensureApiKey()
468
+ const key = ensureApiKey()
678
469
  const params = parseToolInput(input)
679
470
  return callSuperagnt(key, 'GET', '/campaign/GetCampaignSequence', params)
680
471
  },
@@ -683,7 +474,7 @@ export default async function register(api) {
683
474
  api.registerTool({
684
475
  name: 'superagnt_connection_heyreach_campaign_add_leads_v2',
685
476
  description: "Add leads to campaign",
686
- inputSchema: {
477
+ parameters: {
687
478
  "type": "object",
688
479
  "properties": {
689
480
  "campaignId": {
@@ -701,7 +492,7 @@ export default async function register(api) {
701
492
  ]
702
493
  },
703
494
  execute: async (input) => {
704
- const key = await ensureApiKey()
495
+ const key = ensureApiKey()
705
496
  const params = parseToolInput(input)
706
497
  return callSuperagnt(key, 'POST', '/campaign/AddLeadsToCampaignV2', undefined, params)
707
498
  },
@@ -710,7 +501,7 @@ export default async function register(api) {
710
501
  api.registerTool({
711
502
  name: 'superagnt_connection_heyreach_campaign_add_leads',
712
503
  description: "Add leads to campaign (v1, legacy)",
713
- inputSchema: {
504
+ parameters: {
714
505
  "type": "object",
715
506
  "properties": {
716
507
  "campaignId": {
@@ -736,7 +527,7 @@ export default async function register(api) {
736
527
  ]
737
528
  },
738
529
  execute: async (input) => {
739
- const key = await ensureApiKey()
530
+ const key = ensureApiKey()
740
531
  const params = parseToolInput(input)
741
532
  return callSuperagnt(key, 'POST', '/campaign/AddLeadsToCampaign', undefined, params)
742
533
  },
@@ -745,7 +536,7 @@ export default async function register(api) {
745
536
  api.registerTool({
746
537
  name: 'superagnt_connection_heyreach_campaign_stop_lead',
747
538
  description: "Stop lead in campaign",
748
- inputSchema: {
539
+ parameters: {
749
540
  "type": "object",
750
541
  "properties": {
751
542
  "campaignId": {
@@ -766,7 +557,7 @@ export default async function register(api) {
766
557
  ]
767
558
  },
768
559
  execute: async (input) => {
769
- const key = await ensureApiKey()
560
+ const key = ensureApiKey()
770
561
  const params = parseToolInput(input)
771
562
  return callSuperagnt(key, 'POST', '/campaign/StopLeadInCampaign', undefined, params)
772
563
  },
@@ -775,7 +566,7 @@ export default async function register(api) {
775
566
  api.registerTool({
776
567
  name: 'superagnt_connection_heyreach_campaign_get_leads',
777
568
  description: "Get leads in campaign",
778
- inputSchema: {
569
+ parameters: {
779
570
  "type": "object",
780
571
  "properties": {
781
572
  "campaignId": {
@@ -808,7 +599,7 @@ export default async function register(api) {
808
599
  ]
809
600
  },
810
601
  execute: async (input) => {
811
- const key = await ensureApiKey()
602
+ const key = ensureApiKey()
812
603
  const params = parseToolInput(input)
813
604
  return callSuperagnt(key, 'POST', '/campaign/GetLeadsFromCampaign', undefined, params)
814
605
  },
@@ -817,7 +608,7 @@ export default async function register(api) {
817
608
  api.registerTool({
818
609
  name: 'superagnt_connection_heyreach_campaign_get_for_lead',
819
610
  description: "Get campaigns for lead",
820
- inputSchema: {
611
+ parameters: {
821
612
  "type": "object",
822
613
  "properties": {
823
614
  "email": {
@@ -843,7 +634,7 @@ export default async function register(api) {
843
634
  }
844
635
  },
845
636
  execute: async (input) => {
846
- const key = await ensureApiKey()
637
+ const key = ensureApiKey()
847
638
  const params = parseToolInput(input)
848
639
  return callSuperagnt(key, 'POST', '/campaign/GetCampaignsForLead', undefined, params)
849
640
  },
@@ -852,7 +643,7 @@ export default async function register(api) {
852
643
  api.registerTool({
853
644
  name: 'superagnt_connection_heyreach_inbox_get_conversations_v2',
854
645
  description: "Get conversations",
855
- inputSchema: {
646
+ parameters: {
856
647
  "type": "object",
857
648
  "properties": {
858
649
  "offset": {
@@ -870,7 +661,7 @@ export default async function register(api) {
870
661
  }
871
662
  },
872
663
  execute: async (input) => {
873
- const key = await ensureApiKey()
664
+ const key = ensureApiKey()
874
665
  const params = parseToolInput(input)
875
666
  return callSuperagnt(key, 'POST', '/inbox/GetConversationsV2', undefined, params)
876
667
  },
@@ -879,7 +670,7 @@ export default async function register(api) {
879
670
  api.registerTool({
880
671
  name: 'superagnt_connection_heyreach_inbox_get_chatroom',
881
672
  description: "Get chatroom (single conversation thread)",
882
- inputSchema: {
673
+ parameters: {
883
674
  "type": "object",
884
675
  "properties": {
885
676
  "accountId": {
@@ -897,7 +688,7 @@ export default async function register(api) {
897
688
  ]
898
689
  },
899
690
  execute: async (input) => {
900
- const key = await ensureApiKey()
691
+ const key = ensureApiKey()
901
692
  const params = parseToolInput(input)
902
693
  return callSuperagnt(key, 'GET', '/inbox/GetChatroom/{accountId}/{conversationId}', params)
903
694
  },
@@ -906,7 +697,7 @@ export default async function register(api) {
906
697
  api.registerTool({
907
698
  name: 'superagnt_connection_heyreach_inbox_send_message',
908
699
  description: "Send message in conversation",
909
- inputSchema: {
700
+ parameters: {
910
701
  "type": "object",
911
702
  "properties": {
912
703
  "message": {
@@ -933,7 +724,7 @@ export default async function register(api) {
933
724
  ]
934
725
  },
935
726
  execute: async (input) => {
936
- const key = await ensureApiKey()
727
+ const key = ensureApiKey()
937
728
  const params = parseToolInput(input)
938
729
  return callSuperagnt(key, 'POST', '/inbox/SendMessage', undefined, params)
939
730
  },
@@ -942,7 +733,7 @@ export default async function register(api) {
942
733
  api.registerTool({
943
734
  name: 'superagnt_connection_heyreach_inbox_set_seen_status',
944
735
  description: "Set conversation seen status",
945
- inputSchema: {
736
+ parameters: {
946
737
  "type": "object",
947
738
  "properties": {
948
739
  "conversationId": {
@@ -965,7 +756,7 @@ export default async function register(api) {
965
756
  ]
966
757
  },
967
758
  execute: async (input) => {
968
- const key = await ensureApiKey()
759
+ const key = ensureApiKey()
969
760
  const params = parseToolInput(input)
970
761
  return callSuperagnt(key, 'POST', '/inbox/SetSeenStatus', undefined, params)
971
762
  },
@@ -974,7 +765,7 @@ export default async function register(api) {
974
765
  api.registerTool({
975
766
  name: 'superagnt_connection_heyreach_li_account_get_all',
976
767
  description: "List connected LinkedIn accounts",
977
- inputSchema: {
768
+ parameters: {
978
769
  "type": "object",
979
770
  "properties": {
980
771
  "offset": {
@@ -992,7 +783,7 @@ export default async function register(api) {
992
783
  }
993
784
  },
994
785
  execute: async (input) => {
995
- const key = await ensureApiKey()
786
+ const key = ensureApiKey()
996
787
  const params = parseToolInput(input)
997
788
  return callSuperagnt(key, 'POST', '/li_account/GetAll', undefined, params)
998
789
  },
@@ -1001,7 +792,7 @@ export default async function register(api) {
1001
792
  api.registerTool({
1002
793
  name: 'superagnt_connection_heyreach_li_account_get_by_id',
1003
794
  description: "Get connected LinkedIn account by ID",
1004
- inputSchema: {
795
+ parameters: {
1005
796
  "type": "object",
1006
797
  "properties": {
1007
798
  "accountId": {
@@ -1014,7 +805,7 @@ export default async function register(api) {
1014
805
  ]
1015
806
  },
1016
807
  execute: async (input) => {
1017
- const key = await ensureApiKey()
808
+ const key = ensureApiKey()
1018
809
  const params = parseToolInput(input)
1019
810
  return callSuperagnt(key, 'GET', '/li_account/GetById', params)
1020
811
  },
@@ -1023,7 +814,7 @@ export default async function register(api) {
1023
814
  api.registerTool({
1024
815
  name: 'superagnt_connection_heyreach_list_get_all',
1025
816
  description: "List lead/company lists",
1026
- inputSchema: {
817
+ parameters: {
1027
818
  "type": "object",
1028
819
  "properties": {
1029
820
  "offset": {
@@ -1045,7 +836,7 @@ export default async function register(api) {
1045
836
  }
1046
837
  },
1047
838
  execute: async (input) => {
1048
- const key = await ensureApiKey()
839
+ const key = ensureApiKey()
1049
840
  const params = parseToolInput(input)
1050
841
  return callSuperagnt(key, 'POST', '/list/GetAll', undefined, params)
1051
842
  },
@@ -1054,7 +845,7 @@ export default async function register(api) {
1054
845
  api.registerTool({
1055
846
  name: 'superagnt_connection_heyreach_list_get_by_id',
1056
847
  description: "Get list by ID",
1057
- inputSchema: {
848
+ parameters: {
1058
849
  "type": "object",
1059
850
  "properties": {
1060
851
  "listId": {
@@ -1067,7 +858,7 @@ export default async function register(api) {
1067
858
  ]
1068
859
  },
1069
860
  execute: async (input) => {
1070
- const key = await ensureApiKey()
861
+ const key = ensureApiKey()
1071
862
  const params = parseToolInput(input)
1072
863
  return callSuperagnt(key, 'GET', '/list/GetById', params)
1073
864
  },
@@ -1076,7 +867,7 @@ export default async function register(api) {
1076
867
  api.registerTool({
1077
868
  name: 'superagnt_connection_heyreach_list_create_empty',
1078
869
  description: "Create empty list",
1079
- inputSchema: {
870
+ parameters: {
1080
871
  "type": "object",
1081
872
  "properties": {
1082
873
  "name": {
@@ -1094,7 +885,7 @@ export default async function register(api) {
1094
885
  ]
1095
886
  },
1096
887
  execute: async (input) => {
1097
- const key = await ensureApiKey()
888
+ const key = ensureApiKey()
1098
889
  const params = parseToolInput(input)
1099
890
  return callSuperagnt(key, 'POST', '/list/CreateEmptyList', undefined, params)
1100
891
  },
@@ -1103,7 +894,7 @@ export default async function register(api) {
1103
894
  api.registerTool({
1104
895
  name: 'superagnt_connection_heyreach_list_get_leads',
1105
896
  description: "Get leads from a list",
1106
- inputSchema: {
897
+ parameters: {
1107
898
  "type": "object",
1108
899
  "properties": {
1109
900
  "listId": {
@@ -1144,7 +935,7 @@ export default async function register(api) {
1144
935
  ]
1145
936
  },
1146
937
  execute: async (input) => {
1147
- const key = await ensureApiKey()
938
+ const key = ensureApiKey()
1148
939
  const params = parseToolInput(input)
1149
940
  return callSuperagnt(key, 'POST', '/list/GetLeadsFromList', undefined, params)
1150
941
  },
@@ -1153,7 +944,7 @@ export default async function register(api) {
1153
944
  api.registerTool({
1154
945
  name: 'superagnt_connection_heyreach_list_get_companies',
1155
946
  description: "Get companies from a list",
1156
- inputSchema: {
947
+ parameters: {
1157
948
  "type": "object",
1158
949
  "properties": {
1159
950
  "listId": {
@@ -1178,7 +969,7 @@ export default async function register(api) {
1178
969
  ]
1179
970
  },
1180
971
  execute: async (input) => {
1181
- const key = await ensureApiKey()
972
+ const key = ensureApiKey()
1182
973
  const params = parseToolInput(input)
1183
974
  return callSuperagnt(key, 'POST', '/list/GetCompaniesFromList', undefined, params)
1184
975
  },
@@ -1187,7 +978,7 @@ export default async function register(api) {
1187
978
  api.registerTool({
1188
979
  name: 'superagnt_connection_heyreach_list_add_leads_v2',
1189
980
  description: "Add leads to list",
1190
- inputSchema: {
981
+ parameters: {
1191
982
  "type": "object",
1192
983
  "properties": {
1193
984
  "listId": {
@@ -1205,7 +996,7 @@ export default async function register(api) {
1205
996
  ]
1206
997
  },
1207
998
  execute: async (input) => {
1208
- const key = await ensureApiKey()
999
+ const key = ensureApiKey()
1209
1000
  const params = parseToolInput(input)
1210
1001
  return callSuperagnt(key, 'POST', '/list/AddLeadsToListV2', undefined, params)
1211
1002
  },
@@ -1214,7 +1005,7 @@ export default async function register(api) {
1214
1005
  api.registerTool({
1215
1006
  name: 'superagnt_connection_heyreach_list_add_leads',
1216
1007
  description: "Add leads to list (v1, legacy)",
1217
- inputSchema: {
1008
+ parameters: {
1218
1009
  "type": "object",
1219
1010
  "properties": {
1220
1011
  "listId": {
@@ -1232,7 +1023,7 @@ export default async function register(api) {
1232
1023
  ]
1233
1024
  },
1234
1025
  execute: async (input) => {
1235
- const key = await ensureApiKey()
1026
+ const key = ensureApiKey()
1236
1027
  const params = parseToolInput(input)
1237
1028
  return callSuperagnt(key, 'POST', '/list/AddLeadsToList', undefined, params)
1238
1029
  },
@@ -1241,7 +1032,7 @@ export default async function register(api) {
1241
1032
  api.registerTool({
1242
1033
  name: 'superagnt_connection_heyreach_list_delete_leads',
1243
1034
  description: "Delete leads from list by member ID",
1244
- inputSchema: {
1035
+ parameters: {
1245
1036
  "type": "object",
1246
1037
  "properties": {
1247
1038
  "listId": {
@@ -1259,7 +1050,7 @@ export default async function register(api) {
1259
1050
  ]
1260
1051
  },
1261
1052
  execute: async (input) => {
1262
- const key = await ensureApiKey()
1053
+ const key = ensureApiKey()
1263
1054
  const params = parseToolInput(input)
1264
1055
  return callSuperagnt(key, 'DELETE', '/list/DeleteLeadsFromList', undefined, params)
1265
1056
  },
@@ -1268,7 +1059,7 @@ export default async function register(api) {
1268
1059
  api.registerTool({
1269
1060
  name: 'superagnt_connection_heyreach_list_delete_leads_by_url',
1270
1061
  description: "Delete leads from list by profile URL",
1271
- inputSchema: {
1062
+ parameters: {
1272
1063
  "type": "object",
1273
1064
  "properties": {
1274
1065
  "listId": {
@@ -1286,7 +1077,7 @@ export default async function register(api) {
1286
1077
  ]
1287
1078
  },
1288
1079
  execute: async (input) => {
1289
- const key = await ensureApiKey()
1080
+ const key = ensureApiKey()
1290
1081
  const params = parseToolInput(input)
1291
1082
  return callSuperagnt(key, 'DELETE', '/list/DeleteLeadsFromListByProfileUrl', undefined, params)
1292
1083
  },
@@ -1295,7 +1086,7 @@ export default async function register(api) {
1295
1086
  api.registerTool({
1296
1087
  name: 'superagnt_connection_heyreach_list_get_for_lead',
1297
1088
  description: "Get lists a lead belongs to",
1298
- inputSchema: {
1089
+ parameters: {
1299
1090
  "type": "object",
1300
1091
  "properties": {
1301
1092
  "email": {
@@ -1321,7 +1112,7 @@ export default async function register(api) {
1321
1112
  }
1322
1113
  },
1323
1114
  execute: async (input) => {
1324
- const key = await ensureApiKey()
1115
+ const key = ensureApiKey()
1325
1116
  const params = parseToolInput(input)
1326
1117
  return callSuperagnt(key, 'POST', '/list/GetListsForLead', undefined, params)
1327
1118
  },
@@ -1330,7 +1121,7 @@ export default async function register(api) {
1330
1121
  api.registerTool({
1331
1122
  name: 'superagnt_connection_heyreach_lead_get_by_profile_url',
1332
1123
  description: "Get lead by profile URL",
1333
- inputSchema: {
1124
+ parameters: {
1334
1125
  "type": "object",
1335
1126
  "properties": {
1336
1127
  "profileUrl": {
@@ -1343,7 +1134,7 @@ export default async function register(api) {
1343
1134
  ]
1344
1135
  },
1345
1136
  execute: async (input) => {
1346
- const key = await ensureApiKey()
1137
+ const key = ensureApiKey()
1347
1138
  const params = parseToolInput(input)
1348
1139
  return callSuperagnt(key, 'POST', '/lead/GetLead', undefined, params)
1349
1140
  },
@@ -1352,7 +1143,7 @@ export default async function register(api) {
1352
1143
  api.registerTool({
1353
1144
  name: 'superagnt_connection_heyreach_lead_add_tags',
1354
1145
  description: "Add tags to lead",
1355
- inputSchema: {
1146
+ parameters: {
1356
1147
  "type": "object",
1357
1148
  "properties": {
1358
1149
  "leadProfileUrl": {
@@ -1377,7 +1168,7 @@ export default async function register(api) {
1377
1168
  ]
1378
1169
  },
1379
1170
  execute: async (input) => {
1380
- const key = await ensureApiKey()
1171
+ const key = ensureApiKey()
1381
1172
  const params = parseToolInput(input)
1382
1173
  return callSuperagnt(key, 'POST', '/lead/AddTags', undefined, params)
1383
1174
  },
@@ -1386,7 +1177,7 @@ export default async function register(api) {
1386
1177
  api.registerTool({
1387
1178
  name: 'superagnt_connection_heyreach_lead_replace_tags',
1388
1179
  description: "Replace lead tags",
1389
- inputSchema: {
1180
+ parameters: {
1390
1181
  "type": "object",
1391
1182
  "properties": {
1392
1183
  "leadProfileUrl": {
@@ -1411,7 +1202,7 @@ export default async function register(api) {
1411
1202
  ]
1412
1203
  },
1413
1204
  execute: async (input) => {
1414
- const key = await ensureApiKey()
1205
+ const key = ensureApiKey()
1415
1206
  const params = parseToolInput(input)
1416
1207
  return callSuperagnt(key, 'POST', '/lead/ReplaceTags', undefined, params)
1417
1208
  },
@@ -1420,7 +1211,7 @@ export default async function register(api) {
1420
1211
  api.registerTool({
1421
1212
  name: 'superagnt_connection_heyreach_lead_get_tags',
1422
1213
  description: "Get tags for a lead",
1423
- inputSchema: {
1214
+ parameters: {
1424
1215
  "type": "object",
1425
1216
  "properties": {
1426
1217
  "profileUrl": {
@@ -1433,7 +1224,7 @@ export default async function register(api) {
1433
1224
  ]
1434
1225
  },
1435
1226
  execute: async (input) => {
1436
- const key = await ensureApiKey()
1227
+ const key = ensureApiKey()
1437
1228
  const params = parseToolInput(input)
1438
1229
  return callSuperagnt(key, 'POST', '/lead/GetTags', undefined, params)
1439
1230
  },
@@ -1442,7 +1233,7 @@ export default async function register(api) {
1442
1233
  api.registerTool({
1443
1234
  name: 'superagnt_connection_heyreach_lead_tags_create',
1444
1235
  description: "Create workspace lead tags",
1445
- inputSchema: {
1236
+ parameters: {
1446
1237
  "type": "object",
1447
1238
  "properties": {
1448
1239
  "tags": {
@@ -1455,7 +1246,7 @@ export default async function register(api) {
1455
1246
  ]
1456
1247
  },
1457
1248
  execute: async (input) => {
1458
- const key = await ensureApiKey()
1249
+ const key = ensureApiKey()
1459
1250
  const params = parseToolInput(input)
1460
1251
  return callSuperagnt(key, 'POST', '/lead_tags/CreateTags', undefined, params)
1461
1252
  },
@@ -1464,7 +1255,7 @@ export default async function register(api) {
1464
1255
  api.registerTool({
1465
1256
  name: 'superagnt_connection_heyreach_stats_get_overall',
1466
1257
  description: "Get overall stats",
1467
- inputSchema: {
1258
+ parameters: {
1468
1259
  "type": "object",
1469
1260
  "properties": {
1470
1261
  "startDate": {
@@ -1486,7 +1277,7 @@ export default async function register(api) {
1486
1277
  }
1487
1278
  },
1488
1279
  execute: async (input) => {
1489
- const key = await ensureApiKey()
1280
+ const key = ensureApiKey()
1490
1281
  const params = parseToolInput(input)
1491
1282
  return callSuperagnt(key, 'POST', '/stats/GetOverallStats', undefined, params)
1492
1283
  },
@@ -1495,7 +1286,7 @@ export default async function register(api) {
1495
1286
  api.registerTool({
1496
1287
  name: 'superagnt_connection_heyreach_stats_get_by_campaign',
1497
1288
  description: "Get overall stats grouped by campaign",
1498
- inputSchema: {
1289
+ parameters: {
1499
1290
  "type": "object",
1500
1291
  "properties": {
1501
1292
  "startDate": {
@@ -1517,7 +1308,7 @@ export default async function register(api) {
1517
1308
  }
1518
1309
  },
1519
1310
  execute: async (input) => {
1520
- const key = await ensureApiKey()
1311
+ const key = ensureApiKey()
1521
1312
  const params = parseToolInput(input)
1522
1313
  return callSuperagnt(key, 'POST', '/stats/GetOverallStatsByCampaign', undefined, params)
1523
1314
  },
@@ -1526,7 +1317,7 @@ export default async function register(api) {
1526
1317
  api.registerTool({
1527
1318
  name: 'superagnt_connection_heyreach_network_get_for_sender',
1528
1319
  description: "Get sender's LinkedIn network",
1529
- inputSchema: {
1320
+ parameters: {
1530
1321
  "type": "object",
1531
1322
  "properties": {
1532
1323
  "senderId": {
@@ -1551,7 +1342,7 @@ export default async function register(api) {
1551
1342
  ]
1552
1343
  },
1553
1344
  execute: async (input) => {
1554
- const key = await ensureApiKey()
1345
+ const key = ensureApiKey()
1555
1346
  const params = parseToolInput(input)
1556
1347
  return callSuperagnt(key, 'POST', '/MyNetwork/GetMyNetworkForSender', undefined, params)
1557
1348
  },
@@ -1560,7 +1351,7 @@ export default async function register(api) {
1560
1351
  api.registerTool({
1561
1352
  name: 'superagnt_connection_heyreach_network_is_connection',
1562
1353
  description: "Check if a lead is a 1st-degree connection",
1563
- inputSchema: {
1354
+ parameters: {
1564
1355
  "type": "object",
1565
1356
  "properties": {
1566
1357
  "senderAccountId": {
@@ -1581,7 +1372,7 @@ export default async function register(api) {
1581
1372
  ]
1582
1373
  },
1583
1374
  execute: async (input) => {
1584
- const key = await ensureApiKey()
1375
+ const key = ensureApiKey()
1585
1376
  const params = parseToolInput(input)
1586
1377
  return callSuperagnt(key, 'POST', '/MyNetwork/IsConnection', undefined, params)
1587
1378
  },
@@ -1590,7 +1381,7 @@ export default async function register(api) {
1590
1381
  api.registerTool({
1591
1382
  name: 'superagnt_connection_heyreach_webhook_create',
1592
1383
  description: "Create webhook subscription",
1593
- inputSchema: {
1384
+ parameters: {
1594
1385
  "type": "object",
1595
1386
  "properties": {
1596
1387
  "webhookName": {
@@ -1621,7 +1412,7 @@ export default async function register(api) {
1621
1412
  ]
1622
1413
  },
1623
1414
  execute: async (input) => {
1624
- const key = await ensureApiKey()
1415
+ const key = ensureApiKey()
1625
1416
  const params = parseToolInput(input)
1626
1417
  return callSuperagnt(key, 'POST', '/webhooks/CreateWebhook', undefined, params)
1627
1418
  },
@@ -1630,7 +1421,7 @@ export default async function register(api) {
1630
1421
  api.registerTool({
1631
1422
  name: 'superagnt_connection_heyreach_webhook_get_by_id',
1632
1423
  description: "Get webhook by ID",
1633
- inputSchema: {
1424
+ parameters: {
1634
1425
  "type": "object",
1635
1426
  "properties": {
1636
1427
  "webhookId": {
@@ -1647,7 +1438,7 @@ export default async function register(api) {
1647
1438
  ]
1648
1439
  },
1649
1440
  execute: async (input) => {
1650
- const key = await ensureApiKey()
1441
+ const key = ensureApiKey()
1651
1442
  const params = parseToolInput(input)
1652
1443
  return callSuperagnt(key, 'GET', '/webhooks/GetWebhookById', params)
1653
1444
  },
@@ -1656,7 +1447,7 @@ export default async function register(api) {
1656
1447
  api.registerTool({
1657
1448
  name: 'superagnt_connection_heyreach_webhook_get_all',
1658
1449
  description: "List webhooks",
1659
- inputSchema: {
1450
+ parameters: {
1660
1451
  "type": "object",
1661
1452
  "properties": {
1662
1453
  "offset": {
@@ -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, 'POST', '/webhooks/GetAllWebhooks', undefined, params)
1680
1471
  },
@@ -1683,7 +1474,7 @@ export default async function register(api) {
1683
1474
  api.registerTool({
1684
1475
  name: 'superagnt_connection_heyreach_webhook_update',
1685
1476
  description: "Update webhook subscription",
1686
- inputSchema: {
1477
+ parameters: {
1687
1478
  "type": "object",
1688
1479
  "properties": {
1689
1480
  "webhookId": {
@@ -1720,7 +1511,7 @@ export default async function register(api) {
1720
1511
  ]
1721
1512
  },
1722
1513
  execute: async (input) => {
1723
- const key = await ensureApiKey()
1514
+ const key = ensureApiKey()
1724
1515
  const params = parseToolInput(input)
1725
1516
  return callSuperagnt(key, 'PATCH', '/webhooks/UpdateWebhook', undefined, params)
1726
1517
  },
@@ -1729,7 +1520,7 @@ export default async function register(api) {
1729
1520
  api.registerTool({
1730
1521
  name: 'superagnt_connection_heyreach_webhook_delete',
1731
1522
  description: "Delete webhook subscription",
1732
- inputSchema: {
1523
+ parameters: {
1733
1524
  "type": "object",
1734
1525
  "properties": {
1735
1526
  "webhookId": {
@@ -1742,7 +1533,7 @@ export default async function register(api) {
1742
1533
  ]
1743
1534
  },
1744
1535
  execute: async (input) => {
1745
- const key = await ensureApiKey()
1536
+ const key = ensureApiKey()
1746
1537
  const params = parseToolInput(input)
1747
1538
  return callSuperagnt(key, 'DELETE', '/webhooks/DeleteWebhook', undefined, params)
1748
1539
  },
@@ -1751,7 +1542,7 @@ export default async function register(api) {
1751
1542
  api.registerTool({
1752
1543
  name: 'superagnt_connection_heyreach_org_workspaces_get_all',
1753
1544
  description: "List workspaces (organization-scoped key)",
1754
- inputSchema: {
1545
+ parameters: {
1755
1546
  "type": "object",
1756
1547
  "properties": {
1757
1548
  "Offset": {
@@ -1765,7 +1556,7 @@ export default async function register(api) {
1765
1556
  }
1766
1557
  },
1767
1558
  execute: async (input) => {
1768
- const key = await ensureApiKey()
1559
+ const key = ensureApiKey()
1769
1560
  const params = parseToolInput(input)
1770
1561
  return callSuperagnt(key, 'GET', '/management/organizations/workspaces', params)
1771
1562
  },
@@ -1774,7 +1565,7 @@ export default async function register(api) {
1774
1565
  api.registerTool({
1775
1566
  name: 'superagnt_connection_heyreach_org_workspaces_create',
1776
1567
  description: "Create workspace",
1777
- inputSchema: {
1568
+ parameters: {
1778
1569
  "type": "object",
1779
1570
  "properties": {
1780
1571
  "workspaceName": {
@@ -1791,7 +1582,7 @@ export default async function register(api) {
1791
1582
  ]
1792
1583
  },
1793
1584
  execute: async (input) => {
1794
- const key = await ensureApiKey()
1585
+ const key = ensureApiKey()
1795
1586
  const params = parseToolInput(input)
1796
1587
  return callSuperagnt(key, 'POST', '/management/organizations/workspaces', undefined, params)
1797
1588
  },
@@ -1800,7 +1591,7 @@ export default async function register(api) {
1800
1591
  api.registerTool({
1801
1592
  name: 'superagnt_connection_heyreach_org_workspaces_update',
1802
1593
  description: "Update workspace",
1803
- inputSchema: {
1594
+ parameters: {
1804
1595
  "type": "object",
1805
1596
  "properties": {
1806
1597
  "workspaceId": {
@@ -1821,7 +1612,7 @@ export default async function register(api) {
1821
1612
  ]
1822
1613
  },
1823
1614
  execute: async (input) => {
1824
- const key = await ensureApiKey()
1615
+ const key = ensureApiKey()
1825
1616
  const params = parseToolInput(input)
1826
1617
  return callSuperagnt(key, 'PATCH', '/management/organizations/workspaces/{workspaceId}', undefined, params)
1827
1618
  },
@@ -1830,7 +1621,7 @@ export default async function register(api) {
1830
1621
  api.registerTool({
1831
1622
  name: 'superagnt_connection_heyreach_org_workspace_api_keys_get',
1832
1623
  description: "Get workspace API keys",
1833
- inputSchema: {
1624
+ parameters: {
1834
1625
  "type": "object",
1835
1626
  "properties": {
1836
1627
  "workspaceId": {
@@ -1843,7 +1634,7 @@ export default async function register(api) {
1843
1634
  ]
1844
1635
  },
1845
1636
  execute: async (input) => {
1846
- const key = await ensureApiKey()
1637
+ const key = ensureApiKey()
1847
1638
  const params = parseToolInput(input)
1848
1639
  return callSuperagnt(key, 'GET', '/management/organizations/api-keys/workspaces/{workspaceId}', params)
1849
1640
  },
@@ -1852,7 +1643,7 @@ export default async function register(api) {
1852
1643
  api.registerTool({
1853
1644
  name: 'superagnt_connection_heyreach_org_workspace_api_keys_create',
1854
1645
  description: "Create workspace API key",
1855
- inputSchema: {
1646
+ parameters: {
1856
1647
  "type": "object",
1857
1648
  "properties": {
1858
1649
  "workspaceId": {
@@ -1870,7 +1661,7 @@ export default async function register(api) {
1870
1661
  ]
1871
1662
  },
1872
1663
  execute: async (input) => {
1873
- const key = await ensureApiKey()
1664
+ const key = ensureApiKey()
1874
1665
  const params = parseToolInput(input)
1875
1666
  return callSuperagnt(key, 'POST', '/management/organizations/api-keys/workspaces/{workspaceId}', undefined, params)
1876
1667
  },
@@ -1879,7 +1670,7 @@ export default async function register(api) {
1879
1670
  api.registerTool({
1880
1671
  name: 'superagnt_connection_heyreach_org_users_get_all',
1881
1672
  description: "List users in the organization",
1882
- inputSchema: {
1673
+ parameters: {
1883
1674
  "type": "object",
1884
1675
  "properties": {
1885
1676
  "offset": {
@@ -1901,7 +1692,7 @@ export default async function register(api) {
1901
1692
  }
1902
1693
  },
1903
1694
  execute: async (input) => {
1904
- const key = await ensureApiKey()
1695
+ const key = ensureApiKey()
1905
1696
  const params = parseToolInput(input)
1906
1697
  return callSuperagnt(key, 'POST', '/management/organizations/users', undefined, params)
1907
1698
  },
@@ -1910,7 +1701,7 @@ export default async function register(api) {
1910
1701
  api.registerTool({
1911
1702
  name: 'superagnt_connection_heyreach_org_user_get_by_id',
1912
1703
  description: "Get user by ID",
1913
- inputSchema: {
1704
+ parameters: {
1914
1705
  "type": "object",
1915
1706
  "properties": {
1916
1707
  "userId": {
@@ -1923,7 +1714,7 @@ export default async function register(api) {
1923
1714
  ]
1924
1715
  },
1925
1716
  execute: async (input) => {
1926
- const key = await ensureApiKey()
1717
+ const key = ensureApiKey()
1927
1718
  const params = parseToolInput(input)
1928
1719
  return callSuperagnt(key, 'GET', '/management/organizations/users/{userId}', params)
1929
1720
  },
@@ -1932,7 +1723,7 @@ export default async function register(api) {
1932
1723
  api.registerTool({
1933
1724
  name: 'superagnt_connection_heyreach_org_workspace_users_get_all',
1934
1725
  description: "List users in workspace",
1935
- inputSchema: {
1726
+ parameters: {
1936
1727
  "type": "object",
1937
1728
  "properties": {
1938
1729
  "workspaceId": {
@@ -1961,7 +1752,7 @@ export default async function register(api) {
1961
1752
  ]
1962
1753
  },
1963
1754
  execute: async (input) => {
1964
- const key = await ensureApiKey()
1755
+ const key = ensureApiKey()
1965
1756
  const params = parseToolInput(input)
1966
1757
  return callSuperagnt(key, 'POST', '/management/organizations/users/workspaces/{workspaceId}', undefined, params)
1967
1758
  },
@@ -1970,7 +1761,7 @@ export default async function register(api) {
1970
1761
  api.registerTool({
1971
1762
  name: 'superagnt_connection_heyreach_org_invite_admins',
1972
1763
  description: "Invite admins",
1973
- inputSchema: {
1764
+ parameters: {
1974
1765
  "type": "object",
1975
1766
  "properties": {
1976
1767
  "inviterEmail": {
@@ -1988,7 +1779,7 @@ export default async function register(api) {
1988
1779
  ]
1989
1780
  },
1990
1781
  execute: async (input) => {
1991
- const key = await ensureApiKey()
1782
+ const key = ensureApiKey()
1992
1783
  const params = parseToolInput(input)
1993
1784
  return callSuperagnt(key, 'POST', '/management/organizations/users/invite/admins', undefined, params)
1994
1785
  },
@@ -1997,7 +1788,7 @@ export default async function register(api) {
1997
1788
  api.registerTool({
1998
1789
  name: 'superagnt_connection_heyreach_org_invite_managers',
1999
1790
  description: "Invite managers",
2000
- inputSchema: {
1791
+ parameters: {
2001
1792
  "type": "object",
2002
1793
  "properties": {
2003
1794
  "inviterEmail": {
@@ -2020,7 +1811,7 @@ export default async function register(api) {
2020
1811
  ]
2021
1812
  },
2022
1813
  execute: async (input) => {
2023
- const key = await ensureApiKey()
1814
+ const key = ensureApiKey()
2024
1815
  const params = parseToolInput(input)
2025
1816
  return callSuperagnt(key, 'POST', '/management/organizations/users/invite/managers', undefined, params)
2026
1817
  },
@@ -2029,7 +1820,7 @@ export default async function register(api) {
2029
1820
  api.registerTool({
2030
1821
  name: 'superagnt_connection_heyreach_org_invite_members',
2031
1822
  description: "Invite members",
2032
- inputSchema: {
1823
+ parameters: {
2033
1824
  "type": "object",
2034
1825
  "properties": {
2035
1826
  "inviterEmail": {
@@ -2057,12 +1848,9 @@ export default async function register(api) {
2057
1848
  ]
2058
1849
  },
2059
1850
  execute: async (input) => {
2060
- const key = await ensureApiKey()
1851
+ const key = ensureApiKey()
2061
1852
  const params = parseToolInput(input)
2062
1853
  return callSuperagnt(key, 'POST', '/management/organizations/users/invite/members', undefined, params)
2063
1854
  },
2064
1855
  })
2065
-
2066
- promptState.toolCount = 59
2067
- promptState.ready = true
2068
1856
  }
@@ -2,7 +2,70 @@
2
2
  "id": "heyreach-outreach",
3
3
  "name": "HeyReach Integration",
4
4
  "description": "OpenClaw plugin for HeyReach LinkedIn outreach — manage campaigns, leads, lead lists, conversations, and analytics with your superagnt API key.",
5
- "version": "2.0.2",
5
+ "version": "2.0.4",
6
+ "contracts": {
7
+ "tools": [
8
+ "superagnt_connection_heyreach_auth_check_api_key",
9
+ "superagnt_connection_heyreach_campaign_get_all",
10
+ "superagnt_connection_heyreach_campaign_get_by_id",
11
+ "superagnt_connection_heyreach_campaign_pause",
12
+ "superagnt_connection_heyreach_campaign_resume",
13
+ "superagnt_connection_heyreach_campaign_start",
14
+ "superagnt_connection_heyreach_campaign_create",
15
+ "superagnt_connection_heyreach_campaign_create_from_template",
16
+ "superagnt_connection_heyreach_campaign_update_settings",
17
+ "superagnt_connection_heyreach_campaign_update_schedule",
18
+ "superagnt_connection_heyreach_campaign_update_accounts",
19
+ "superagnt_connection_heyreach_campaign_update_sequence",
20
+ "superagnt_connection_heyreach_campaign_get_sequence",
21
+ "superagnt_connection_heyreach_campaign_add_leads_v2",
22
+ "superagnt_connection_heyreach_campaign_add_leads",
23
+ "superagnt_connection_heyreach_campaign_stop_lead",
24
+ "superagnt_connection_heyreach_campaign_get_leads",
25
+ "superagnt_connection_heyreach_campaign_get_for_lead",
26
+ "superagnt_connection_heyreach_inbox_get_conversations_v2",
27
+ "superagnt_connection_heyreach_inbox_get_chatroom",
28
+ "superagnt_connection_heyreach_inbox_send_message",
29
+ "superagnt_connection_heyreach_inbox_set_seen_status",
30
+ "superagnt_connection_heyreach_li_account_get_all",
31
+ "superagnt_connection_heyreach_li_account_get_by_id",
32
+ "superagnt_connection_heyreach_list_get_all",
33
+ "superagnt_connection_heyreach_list_get_by_id",
34
+ "superagnt_connection_heyreach_list_create_empty",
35
+ "superagnt_connection_heyreach_list_get_leads",
36
+ "superagnt_connection_heyreach_list_get_companies",
37
+ "superagnt_connection_heyreach_list_add_leads_v2",
38
+ "superagnt_connection_heyreach_list_add_leads",
39
+ "superagnt_connection_heyreach_list_delete_leads",
40
+ "superagnt_connection_heyreach_list_delete_leads_by_url",
41
+ "superagnt_connection_heyreach_list_get_for_lead",
42
+ "superagnt_connection_heyreach_lead_get_by_profile_url",
43
+ "superagnt_connection_heyreach_lead_add_tags",
44
+ "superagnt_connection_heyreach_lead_replace_tags",
45
+ "superagnt_connection_heyreach_lead_get_tags",
46
+ "superagnt_connection_heyreach_lead_tags_create",
47
+ "superagnt_connection_heyreach_stats_get_overall",
48
+ "superagnt_connection_heyreach_stats_get_by_campaign",
49
+ "superagnt_connection_heyreach_network_get_for_sender",
50
+ "superagnt_connection_heyreach_network_is_connection",
51
+ "superagnt_connection_heyreach_webhook_create",
52
+ "superagnt_connection_heyreach_webhook_get_by_id",
53
+ "superagnt_connection_heyreach_webhook_get_all",
54
+ "superagnt_connection_heyreach_webhook_update",
55
+ "superagnt_connection_heyreach_webhook_delete",
56
+ "superagnt_connection_heyreach_org_workspaces_get_all",
57
+ "superagnt_connection_heyreach_org_workspaces_create",
58
+ "superagnt_connection_heyreach_org_workspaces_update",
59
+ "superagnt_connection_heyreach_org_workspace_api_keys_get",
60
+ "superagnt_connection_heyreach_org_workspace_api_keys_create",
61
+ "superagnt_connection_heyreach_org_users_get_all",
62
+ "superagnt_connection_heyreach_org_user_get_by_id",
63
+ "superagnt_connection_heyreach_org_workspace_users_get_all",
64
+ "superagnt_connection_heyreach_org_invite_admins",
65
+ "superagnt_connection_heyreach_org_invite_managers",
66
+ "superagnt_connection_heyreach_org_invite_members"
67
+ ]
68
+ },
6
69
  "configSchema": {
7
70
  "type": "object",
8
71
  "properties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superagnt/heyreach-outreach",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "type": "module",
5
5
  "description": "OpenClaw plugin for HeyReach LinkedIn outreach — manage campaigns, leads, lead lists, conversations, and analytics with your superagnt API key.",
6
6
  "main": "index.js",