@sellable/mcp 0.1.41 → 0.1.43
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/dist/tools/auth.js
CHANGED
|
@@ -138,8 +138,8 @@ export async function getAuthStatus() {
|
|
|
138
138
|
"5) Call `mcp__sellable__wait_for_cli_login({ sessionId })` using the sessionId returned by start_cli_login. " +
|
|
139
139
|
"6) If the result is `error.type === 'tool_timeout_guard'`, IMMEDIATELY re-call wait_for_cli_login with the SAME sessionId — do not narrate, do not call start_cli_login again. Loop until you get a different result. " +
|
|
140
140
|
"7) On `ok: true`, the user is signed in and `~/.sellable/config.json` has been written. Branch on `isReturningUser`: " +
|
|
141
|
-
"if true, say `You're in — {activeWorkspaceName} workspace, ready to roll.\\n\\nNow — paste the LinkedIn profile URL of the person you'll be sending
|
|
142
|
-
"if false, say `You're set up — your {activeWorkspaceName} workspace is ready.\\n\\nNow — paste the LinkedIn profile URL of the person you'll be sending
|
|
141
|
+
"if true, say `You're in — {activeWorkspaceName} workspace, ready to roll.\\n\\nNow — paste the LinkedIn profile URL of the person you'll be sending this campaign from. Usually that's you. If someone else will send this campaign, paste their profile instead.\\n\\ne.g. https://www.linkedin.com/in/your-handle`; " +
|
|
142
|
+
"if false, say `You're set up — your {activeWorkspaceName} workspace is ready.\\n\\nNow — paste the LinkedIn profile URL of the person you'll be sending this campaign from. Usually that's you. If someone else will send this campaign, paste their profile instead.\\n\\ne.g. https://www.linkedin.com/in/your-handle`";
|
|
143
143
|
if (error instanceof SellableApiError && error.isAuthError) {
|
|
144
144
|
return {
|
|
145
145
|
...base,
|
package/package.json
CHANGED
|
@@ -70,9 +70,8 @@ instruction loading, file lookup, plugin cache versions, missing linked files,
|
|
|
70
70
|
or tool discovery. Start in product language:
|
|
71
71
|
|
|
72
72
|
```text
|
|
73
|
-
I’ll help you launch this as a Sellable campaign. First I’ll confirm
|
|
74
|
-
|
|
75
|
-
brief before anything is created.
|
|
73
|
+
I’ll help you launch this as a Sellable campaign. First I’ll confirm the sender
|
|
74
|
+
and company, then draft the campaign brief for your approval.
|
|
76
75
|
```
|
|
77
76
|
|
|
78
77
|
If a linked/local skill file is stale or missing, silently use the installed
|
|
@@ -181,7 +180,9 @@ senders. If there is any likely connected sender, use
|
|
|
181
180
|
recent company, then ask a structured confirmation question:
|
|
182
181
|
|
|
183
182
|
```text
|
|
184
|
-
|
|
183
|
+
Workspace: {workspace}
|
|
184
|
+
|
|
185
|
+
I found {matched sender} connected here.
|
|
185
186
|
|
|
186
187
|
Is that you, and is this campaign for {company}?
|
|
187
188
|
```
|
|
@@ -212,11 +213,11 @@ with the structured question tool. Ask in normal chat for the user's LinkedIn
|
|
|
212
213
|
URL or the company they want to send on behalf of so you can research context:
|
|
213
214
|
|
|
214
215
|
```text
|
|
215
|
-
|
|
216
|
+
Workspace: {workspace}
|
|
216
217
|
|
|
217
|
-
First, paste your LinkedIn URL or the company website
|
|
218
|
-
|
|
219
|
-
|
|
218
|
+
First, paste your LinkedIn URL or the company website. I’ll use it to confirm
|
|
219
|
+
the sender and company, then we’ll choose the target, offer, proof, and lead
|
|
220
|
+
source.
|
|
220
221
|
```
|
|
221
222
|
|
|
222
223
|
If there is no strong sender match, do not show a structured choice that says
|
|
@@ -226,7 +227,7 @@ current or most recent company, and then confirm who we are sending from. The
|
|
|
226
227
|
customer-facing shape should be:
|
|
227
228
|
|
|
228
229
|
```text
|
|
229
|
-
|
|
230
|
+
Workspace: {workspace}
|
|
230
231
|
|
|
231
232
|
First, what’s your LinkedIn URL? If you’d rather start from the company, paste
|
|
232
233
|
the company website instead.
|
|
@@ -236,6 +237,8 @@ After the user pastes a URL/domain, do the lightweight lookup. For a LinkedIn pr
|
|
|
236
237
|
`mcp__sellable__fetch_linkedin_profile` and infer the user's current or most
|
|
237
238
|
recent company from the profile. For a company website, call
|
|
238
239
|
`mcp__sellable__fetch_company` when possible, otherwise one web lookup.
|
|
240
|
+
Before the lookup, use concise progress copy:
|
|
241
|
+
`Got it — I’ll look it up and confirm the sender + company.`
|
|
239
242
|
|
|
240
243
|
If `mcp__sellable__list_senders` did not already run, call it once after the
|
|
241
244
|
lookup to see whether the fetched user appears to match a connected sender. If
|
|
@@ -270,14 +273,11 @@ second context read so the four setup questions feel specific.
|
|
|
270
273
|
Before the identity gate, use this customer-facing shape:
|
|
271
274
|
|
|
272
275
|
```text
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
First I’ll check whether you already have a connected LinkedIn account here. If
|
|
276
|
-
I can’t confirm it, I’ll ask for your LinkedIn URL or company website and use
|
|
277
|
-
that to understand the company before we choose the target, offer, proof, and
|
|
278
|
-
lead source.
|
|
276
|
+
Workspace: {workspace}
|
|
279
277
|
|
|
280
|
-
|
|
278
|
+
First I’ll check for a connected LinkedIn sender. If I can’t confirm one, I’ll
|
|
279
|
+
ask for your LinkedIn URL or company website before we choose the target, offer,
|
|
280
|
+
proof, and lead source.
|
|
281
281
|
```
|
|
282
282
|
|
|
283
283
|
Do not silently ask approval questions as plain chat when `request_user_input` is
|
|
@@ -410,7 +410,7 @@ updates.
|
|
|
410
410
|
```text
|
|
411
411
|
You're in — {activeWorkspaceName} workspace, ready to roll.
|
|
412
412
|
|
|
413
|
-
Now — paste the LinkedIn profile URL of the person you'll be sending
|
|
413
|
+
Now — paste the LinkedIn profile URL of the person you'll be sending this campaign from. Usually that's you. If someone else will send this campaign, paste their profile instead.
|
|
414
414
|
|
|
415
415
|
e.g. https://www.linkedin.com/in/your-handle
|
|
416
416
|
```
|
|
@@ -421,7 +421,7 @@ updates.
|
|
|
421
421
|
```text
|
|
422
422
|
You're set up — your {activeWorkspaceName} workspace is ready.
|
|
423
423
|
|
|
424
|
-
Now — paste the LinkedIn profile URL of the person you'll be sending
|
|
424
|
+
Now — paste the LinkedIn profile URL of the person you'll be sending this campaign from. Usually that's you. If someone else will send this campaign, paste their profile instead.
|
|
425
425
|
|
|
426
426
|
e.g. https://www.linkedin.com/in/your-handle
|
|
427
427
|
```
|
|
@@ -154,7 +154,9 @@ Validated draft directory:
|
|
|
154
154
|
or most recent company, then ask a structured confirmation question:
|
|
155
155
|
|
|
156
156
|
```text
|
|
157
|
-
|
|
157
|
+
Workspace: {workspace}
|
|
158
|
+
|
|
159
|
+
I found {matched sender} connected here.
|
|
158
160
|
|
|
159
161
|
Is that you, and is this campaign for {company}?
|
|
160
162
|
```
|
|
@@ -185,11 +187,11 @@ Validated draft directory:
|
|
|
185
187
|
company they want to send on behalf of so you can research context:
|
|
186
188
|
|
|
187
189
|
```text
|
|
188
|
-
|
|
190
|
+
Workspace: {workspace}
|
|
189
191
|
|
|
190
|
-
First, paste your LinkedIn URL or the company website
|
|
191
|
-
|
|
192
|
-
|
|
192
|
+
First, paste your LinkedIn URL or the company website. I’ll use it to confirm
|
|
193
|
+
the sender and company, then we’ll choose the target, offer, proof, and lead
|
|
194
|
+
source.
|
|
193
195
|
```
|
|
194
196
|
|
|
195
197
|
If there is no strong sender match, do not show a structured choice that says
|
|
@@ -199,7 +201,7 @@ Validated draft directory:
|
|
|
199
201
|
customer-facing shape should be:
|
|
200
202
|
|
|
201
203
|
```text
|
|
202
|
-
|
|
204
|
+
Workspace: {workspace}
|
|
203
205
|
|
|
204
206
|
First, what’s your LinkedIn URL? If you’d rather start from the company, paste
|
|
205
207
|
the company website instead.
|
|
@@ -209,6 +211,8 @@ Validated draft directory:
|
|
|
209
211
|
`fetch_linkedin_profile` and infer the user's current or most recent company
|
|
210
212
|
from the profile. For a company website, call `fetch_company` when possible,
|
|
211
213
|
otherwise one web lookup.
|
|
214
|
+
Before the lookup, use concise progress copy:
|
|
215
|
+
`Got it — I’ll look it up and confirm the sender + company.`
|
|
212
216
|
|
|
213
217
|
If `list_senders` did not already run, call it once after the lookup to see
|
|
214
218
|
whether the fetched user appears to match a connected sender. If there is a
|
|
@@ -245,14 +249,11 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
|
|
|
245
249
|
- Before the identity gate, use this customer-facing shape:
|
|
246
250
|
|
|
247
251
|
```text
|
|
248
|
-
|
|
252
|
+
Workspace: {workspace}
|
|
249
253
|
|
|
250
|
-
First I’ll check
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
and lead source.
|
|
254
|
-
|
|
255
|
-
Then I’ll turn that into a campaign brief for you to approve before anything is created.
|
|
254
|
+
First I’ll check for a connected LinkedIn sender. If I can’t confirm one, I’ll
|
|
255
|
+
ask for your LinkedIn URL or company website before we choose the target,
|
|
256
|
+
offer, proof, and lead source.
|
|
256
257
|
```
|
|
257
258
|
|
|
258
259
|
- Fast Intake Mode is mandatory for hosted/rehearsal net-new runs. Ask the
|