linkedin-toolkit-mcp 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +80 -0
- package/dist/bridge.d.ts +95 -0
- package/dist/bridge.js +259 -0
- package/dist/bridge.js.map +1 -0
- package/dist/cli.d.ts +83 -0
- package/dist/cli.js +898 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +47 -0
- package/dist/config.js +149 -0
- package/dist/config.js.map +1 -0
- package/dist/contract.d.ts +6770 -0
- package/dist/contract.js +926 -0
- package/dist/contract.js.map +1 -0
- package/dist/db.d.ts +64 -0
- package/dist/db.js +542 -0
- package/dist/db.js.map +1 -0
- package/dist/fake-data.d.ts +277 -0
- package/dist/fake-data.js +789 -0
- package/dist/fake-data.js.map +1 -0
- package/dist/fake-extension.d.ts +51 -0
- package/dist/fake-extension.js +151 -0
- package/dist/fake-extension.js.map +1 -0
- package/dist/gen.d.ts +5 -0
- package/dist/gen.js +22 -0
- package/dist/gen.js.map +1 -0
- package/dist/http.d.ts +27 -0
- package/dist/http.js +329 -0
- package/dist/http.js.map +1 -0
- package/dist/openapi.d.ts +30 -0
- package/dist/openapi.js +306 -0
- package/dist/openapi.js.map +1 -0
- package/dist/prompts.d.ts +9 -0
- package/dist/prompts.js +65 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +7 -0
- package/dist/resources.js +73 -0
- package/dist/resources.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +38 -0
- package/dist/server.js.map +1 -0
- package/dist/toolkit.d.ts +82 -0
- package/dist/toolkit.js +171 -0
- package/dist/toolkit.js.map +1 -0
- package/dist/tools.d.ts +31 -0
- package/dist/tools.js +103 -0
- package/dist/tools.js.map +1 -0
- package/dist/webhooks.d.ts +52 -0
- package/dist/webhooks.js +112 -0
- package/dist/webhooks.js.map +1 -0
- package/openapi.json +8334 -0
- package/package.json +45 -0
- package/tools.json +1205 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The demo dataset behind `lit serve --fake`.
|
|
3
|
+
*
|
|
4
|
+
* Everyone and every company here is invented. No real person, company, URL or
|
|
5
|
+
* LinkedIn record appears, and nothing in this file ever reaches the network —
|
|
6
|
+
* it exists so the README recording, the examples and anyone evaluating the
|
|
7
|
+
* toolkit can drive every command without a LinkedIn account.
|
|
8
|
+
*/
|
|
9
|
+
import type { FakeHandlers } from './fake-extension.js';
|
|
10
|
+
/** What `status.get { verify: true }` reports in fake mode. */
|
|
11
|
+
export declare const FAKE_CLIENT_VERSION = "1.13.35548";
|
|
12
|
+
export declare const FAKE_VERIFIED_ENDPOINTS: string[];
|
|
13
|
+
export declare const FAKE_UNVERIFIED_ENDPOINTS: string[];
|
|
14
|
+
export declare const FAKE_BANNER = "FAKE MODE \u2014 no LinkedIn calls are made; demo data only";
|
|
15
|
+
type Seed = [
|
|
16
|
+
first: string,
|
|
17
|
+
last: string,
|
|
18
|
+
title: string,
|
|
19
|
+
company: string,
|
|
20
|
+
location: string,
|
|
21
|
+
degree: 1 | 2 | 3
|
|
22
|
+
];
|
|
23
|
+
export type FakeProfile = ReturnType<typeof makeProfile>;
|
|
24
|
+
declare function makeProfile(seed: Seed, index: number): {
|
|
25
|
+
publicId: string;
|
|
26
|
+
url: string;
|
|
27
|
+
firstName: string;
|
|
28
|
+
lastName: string;
|
|
29
|
+
fullName: string;
|
|
30
|
+
headline: string;
|
|
31
|
+
title: string;
|
|
32
|
+
company: string;
|
|
33
|
+
companyUrn: string;
|
|
34
|
+
location: string;
|
|
35
|
+
industry: string;
|
|
36
|
+
connectionDegree: 1 | 2 | 3;
|
|
37
|
+
capturedAt: number;
|
|
38
|
+
source: string;
|
|
39
|
+
};
|
|
40
|
+
export declare const FAKE_PROFILES: {
|
|
41
|
+
publicId: string;
|
|
42
|
+
url: string;
|
|
43
|
+
firstName: string;
|
|
44
|
+
lastName: string;
|
|
45
|
+
fullName: string;
|
|
46
|
+
headline: string;
|
|
47
|
+
title: string;
|
|
48
|
+
company: string;
|
|
49
|
+
companyUrn: string;
|
|
50
|
+
location: string;
|
|
51
|
+
industry: string;
|
|
52
|
+
connectionDegree: 1 | 2 | 3;
|
|
53
|
+
capturedAt: number;
|
|
54
|
+
source: string;
|
|
55
|
+
}[];
|
|
56
|
+
export declare const FAKE_COMPANIES: {
|
|
57
|
+
universalName: string;
|
|
58
|
+
name: string;
|
|
59
|
+
url: string;
|
|
60
|
+
industry: string;
|
|
61
|
+
size: string;
|
|
62
|
+
hq: string;
|
|
63
|
+
website: string;
|
|
64
|
+
description: string;
|
|
65
|
+
followerCount: number;
|
|
66
|
+
capturedAt: number;
|
|
67
|
+
}[];
|
|
68
|
+
type DemoStep = {
|
|
69
|
+
type: 'view' | 'follow' | 'invite' | 'message' | 'inmail' | 'like' | 'comment' | 'wait' | 'branch';
|
|
70
|
+
note?: string;
|
|
71
|
+
body?: string;
|
|
72
|
+
waitMs?: number;
|
|
73
|
+
};
|
|
74
|
+
type DemoCampaign = {
|
|
75
|
+
campaignId: string;
|
|
76
|
+
name: string;
|
|
77
|
+
steps: DemoStep[];
|
|
78
|
+
status: 'active' | 'paused' | 'completed';
|
|
79
|
+
createdAt: number;
|
|
80
|
+
settings: {
|
|
81
|
+
stopOnReply: boolean;
|
|
82
|
+
autopilot: boolean;
|
|
83
|
+
};
|
|
84
|
+
stats: {
|
|
85
|
+
enrolled: number;
|
|
86
|
+
sent: number;
|
|
87
|
+
accepted: number;
|
|
88
|
+
replied: number;
|
|
89
|
+
positive: number;
|
|
90
|
+
byStep: Record<string, Record<string, number>>;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/** The mutable half of the demo: lists, campaigns, the queue and the inbox. */
|
|
94
|
+
export type DemoState = ReturnType<typeof createDemoState>;
|
|
95
|
+
export declare function createDemoState(): {
|
|
96
|
+
lists: {
|
|
97
|
+
listId: string;
|
|
98
|
+
name: string;
|
|
99
|
+
tags: string[];
|
|
100
|
+
createdAt: number;
|
|
101
|
+
members: {
|
|
102
|
+
publicId: string;
|
|
103
|
+
profile: {
|
|
104
|
+
publicId: string;
|
|
105
|
+
url: string;
|
|
106
|
+
firstName: string;
|
|
107
|
+
lastName: string;
|
|
108
|
+
fullName: string;
|
|
109
|
+
headline: string;
|
|
110
|
+
title: string;
|
|
111
|
+
company: string;
|
|
112
|
+
companyUrn: string;
|
|
113
|
+
location: string;
|
|
114
|
+
industry: string;
|
|
115
|
+
connectionDegree: 1 | 2 | 3;
|
|
116
|
+
capturedAt: number;
|
|
117
|
+
source: string;
|
|
118
|
+
};
|
|
119
|
+
addedAt: number;
|
|
120
|
+
tags: string[];
|
|
121
|
+
contactedBefore: boolean;
|
|
122
|
+
signals: string[];
|
|
123
|
+
}[];
|
|
124
|
+
}[];
|
|
125
|
+
campaigns: DemoCampaign[];
|
|
126
|
+
queue: ({
|
|
127
|
+
id: string;
|
|
128
|
+
action: "outreach.invite";
|
|
129
|
+
params: {
|
|
130
|
+
publicId: string;
|
|
131
|
+
note: string;
|
|
132
|
+
body?: undefined;
|
|
133
|
+
postUrl?: undefined;
|
|
134
|
+
};
|
|
135
|
+
origin: "campaign";
|
|
136
|
+
profile: {
|
|
137
|
+
publicId: string;
|
|
138
|
+
url: string;
|
|
139
|
+
firstName: string;
|
|
140
|
+
lastName: string;
|
|
141
|
+
fullName: string;
|
|
142
|
+
headline: string;
|
|
143
|
+
title: string;
|
|
144
|
+
company: string;
|
|
145
|
+
companyUrn: string;
|
|
146
|
+
location: string;
|
|
147
|
+
industry: string;
|
|
148
|
+
connectionDegree: 1 | 2 | 3;
|
|
149
|
+
capturedAt: number;
|
|
150
|
+
source: string;
|
|
151
|
+
} | undefined;
|
|
152
|
+
createdAt: number;
|
|
153
|
+
status: "pending";
|
|
154
|
+
} | {
|
|
155
|
+
id: string;
|
|
156
|
+
action: "outreach.message";
|
|
157
|
+
params: {
|
|
158
|
+
publicId: string;
|
|
159
|
+
body: string;
|
|
160
|
+
note?: undefined;
|
|
161
|
+
postUrl?: undefined;
|
|
162
|
+
};
|
|
163
|
+
origin: "mcp";
|
|
164
|
+
profile: {
|
|
165
|
+
publicId: string;
|
|
166
|
+
url: string;
|
|
167
|
+
firstName: string;
|
|
168
|
+
lastName: string;
|
|
169
|
+
fullName: string;
|
|
170
|
+
headline: string;
|
|
171
|
+
title: string;
|
|
172
|
+
company: string;
|
|
173
|
+
companyUrn: string;
|
|
174
|
+
location: string;
|
|
175
|
+
industry: string;
|
|
176
|
+
connectionDegree: 1 | 2 | 3;
|
|
177
|
+
capturedAt: number;
|
|
178
|
+
source: string;
|
|
179
|
+
} | undefined;
|
|
180
|
+
createdAt: number;
|
|
181
|
+
status: "pending";
|
|
182
|
+
} | {
|
|
183
|
+
id: string;
|
|
184
|
+
action: "outreach.comment";
|
|
185
|
+
params: {
|
|
186
|
+
postUrl: string;
|
|
187
|
+
body: string;
|
|
188
|
+
publicId?: undefined;
|
|
189
|
+
note?: undefined;
|
|
190
|
+
};
|
|
191
|
+
origin: "mcp";
|
|
192
|
+
profile: {
|
|
193
|
+
publicId: string;
|
|
194
|
+
url: string;
|
|
195
|
+
firstName: string;
|
|
196
|
+
lastName: string;
|
|
197
|
+
fullName: string;
|
|
198
|
+
headline: string;
|
|
199
|
+
title: string;
|
|
200
|
+
company: string;
|
|
201
|
+
companyUrn: string;
|
|
202
|
+
location: string;
|
|
203
|
+
industry: string;
|
|
204
|
+
connectionDegree: 1 | 2 | 3;
|
|
205
|
+
capturedAt: number;
|
|
206
|
+
source: string;
|
|
207
|
+
} | undefined;
|
|
208
|
+
createdAt: number;
|
|
209
|
+
status: "pending";
|
|
210
|
+
})[];
|
|
211
|
+
threads: ({
|
|
212
|
+
threadId: string;
|
|
213
|
+
participants: {
|
|
214
|
+
publicId: string;
|
|
215
|
+
fullName: string;
|
|
216
|
+
}[];
|
|
217
|
+
lastMessageAt: number;
|
|
218
|
+
unread: boolean;
|
|
219
|
+
snippet: string;
|
|
220
|
+
sentiment: "positive";
|
|
221
|
+
} | {
|
|
222
|
+
threadId: string;
|
|
223
|
+
participants: {
|
|
224
|
+
publicId: string;
|
|
225
|
+
fullName: string;
|
|
226
|
+
}[];
|
|
227
|
+
lastMessageAt: number;
|
|
228
|
+
unread: boolean;
|
|
229
|
+
snippet: string;
|
|
230
|
+
sentiment: "neutral";
|
|
231
|
+
} | {
|
|
232
|
+
threadId: string;
|
|
233
|
+
participants: {
|
|
234
|
+
publicId: string;
|
|
235
|
+
fullName: string;
|
|
236
|
+
}[];
|
|
237
|
+
lastMessageAt: number;
|
|
238
|
+
unread: boolean;
|
|
239
|
+
snippet: string;
|
|
240
|
+
sentiment: "negative";
|
|
241
|
+
})[];
|
|
242
|
+
messages: {
|
|
243
|
+
messageId: string;
|
|
244
|
+
threadId: string;
|
|
245
|
+
fromPublicId: string;
|
|
246
|
+
body: string;
|
|
247
|
+
sentAt: number;
|
|
248
|
+
}[];
|
|
249
|
+
nextId: {
|
|
250
|
+
queue: number;
|
|
251
|
+
list: number;
|
|
252
|
+
campaign: number;
|
|
253
|
+
};
|
|
254
|
+
};
|
|
255
|
+
/** The three rows `lit research` demonstrates against. */
|
|
256
|
+
export declare const FAKE_RESEARCH_ROWS: ({
|
|
257
|
+
name: string;
|
|
258
|
+
company: string;
|
|
259
|
+
domain?: undefined;
|
|
260
|
+
linkedinUrl?: undefined;
|
|
261
|
+
} | {
|
|
262
|
+
name: string;
|
|
263
|
+
domain: string;
|
|
264
|
+
company?: undefined;
|
|
265
|
+
linkedinUrl?: undefined;
|
|
266
|
+
} | {
|
|
267
|
+
name: string;
|
|
268
|
+
linkedinUrl: string;
|
|
269
|
+
company?: undefined;
|
|
270
|
+
domain?: undefined;
|
|
271
|
+
})[];
|
|
272
|
+
/**
|
|
273
|
+
* Handlers for every action, over the demo dataset. Writes never send
|
|
274
|
+
* anything: they land in the approval queue exactly as Copilot mode does.
|
|
275
|
+
*/
|
|
276
|
+
export declare function createDemoHandlers(emit: (event: string, payload: unknown) => void): FakeHandlers;
|
|
277
|
+
export {};
|