@sellable/mcp 0.1.268 → 0.1.269

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/index-dev.js CHANGED
File without changes
package/dist/index.js CHANGED
File without changes
package/dist/server.js CHANGED
@@ -9,7 +9,7 @@ import { getCampaignTableSchema, queueCampaignCells, reviseMessageTemplateAndRer
9
9
  import { createCampaign, duplicateCampaign, getCampaign, getCampaignMessagesPreview, getCampaigns, pauseCampaign, startCampaign, updateCampaign, updateCampaignBrief, } from "./tools/campaigns.js";
10
10
  import { queueCells, updateCell } from "./tools/cells.js";
11
11
  import { handleStartCliLogin, handleWaitForCliLogin, } from "./tools/cli-login.js";
12
- import { calculateLinkedInHookPreviewTool, capturePostIdeaTool, getPostDraftTool, getPostIdeaTool, getPublishedPostTool, listPostDraftIterationsTool, listPostDraftsTool, listPostIdeasTool, listPublishedPostsTool, markPostPublishedTool, renderLinkedInPostPreviewTool, saveHookResearchTool, savePostDraftTool, updatePostDraftTool, updatePublishedPostMetricsTool, } from "./tools/content-posts.js";
12
+ import { capturePostIdeaTool, getPostDraftTool, getPostIdeaTool, getPublishedPostTool, listPostDraftIterationsTool, listPostDraftsTool, listPostIdeasTool, listPublishedPostsTool, markPostPublishedTool, saveHookResearchTool, savePostDraftTool, updatePostDraftTool, updatePublishedPostMetricsTool, } from "./tools/content-posts.js";
13
13
  import { getCampaignContext, hydrateCampaignContextFromCampaign, markCampaignContextDirty, } from "./tools/context.js";
14
14
  import { addToCommentCampaign, addToConnectionCampaign, addToInmailCampaign, getEngagedPosts, getOrCreateDirectCampaignTable, pauseDirectCampaign, startDirectCampaign, } from "./tools/direct-campaigns.js";
15
15
  import { bootstrapEngage, bootstrapEngageMulti, } from "./tools/engage-bootstrap.js";
@@ -18,6 +18,7 @@ import { copySenderConfigTool, getEngageMemoryTool, migrateFlatConfigsTool, reco
18
18
  import { getEngageStateTool, setEngageStateTool, } from "./tools/engage-state.js";
19
19
  import { bulkEnrichWithProspeo, enrichWithProspeo, getProspeoCredits, } from "./tools/enrichment.js";
20
20
  import { getCampaignFramework } from "./tools/framework.js";
21
+ import { confirmHarvestJobCompanies, searchHarvestJobs, } from "./tools/harvest-jobs.js";
21
22
  import { cancelLeadImport, confirmLeadList, confirmProspeoCompanyAccounts, getProviderPrompt, importLeads, listDncEntriesTool, loadCsvDncEntriesTool, loadCsvDomains, loadCsvLinkedinLeads, lookupSalesNavFilter, saveDomainFilters, searchApollo, searchProspeo, searchProspeoCompanies, searchSalesNav, searchSignals, selectPromisingPosts, setHeadlineICPCriteria, } from "./tools/leads.js";
22
23
  import { fetchCompany, fetchCompanyPosts, fetchLinkedInPosts, fetchLinkedInProfile, fetchPostEngagers, getLinkedInProfile, getUserPosts, } from "./tools/linkedin.js";
23
24
  import { getCampaignNavigationState } from "./tools/navigation.js";
@@ -244,12 +245,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
244
245
  case "save_post_draft":
245
246
  result = savePostDraftTool(args);
246
247
  break;
247
- case "calculate_linkedin_hook_preview":
248
- result = calculateLinkedInHookPreviewTool(args);
249
- break;
250
- case "render_linkedin_post_preview":
251
- result = renderLinkedInPostPreviewTool(args);
252
- break;
253
248
  case "update_post_draft":
254
249
  result = updatePostDraftTool(args);
255
250
  break;
@@ -372,6 +367,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
372
367
  case "confirm_prospeo_company_accounts":
373
368
  result = await confirmProspeoCompanyAccounts(args);
374
369
  break;
370
+ case "search_harvest_jobs":
371
+ result = await searchHarvestJobs(args);
372
+ break;
373
+ case "confirm_harvest_job_companies":
374
+ result = await confirmHarvestJobCompanies(args);
375
+ break;
375
376
  case "load_csv_domains":
376
377
  result = await loadCsvDomains(args);
377
378
  break;
@@ -1,4 +1,4 @@
1
- type ContentKind = "idea" | "hook_research" | "draft" | "published_post" | "linkedin_preview";
1
+ type ContentKind = "idea" | "hook_research" | "draft" | "published_post";
2
2
  type ArtifactMetadata = {
3
3
  id: string;
4
4
  type: ContentKind;
@@ -94,19 +94,6 @@ export declare const contentPostToolDefinitions: ({
94
94
  body?: undefined;
95
95
  validationReceipt?: undefined;
96
96
  status?: undefined;
97
- postText?: undefined;
98
- sourceLabel?: undefined;
99
- measurementMode?: undefined;
100
- requireBrowserMeasurement?: undefined;
101
- clampLines?: undefined;
102
- mobileClampLines?: undefined;
103
- desktopClampLines?: undefined;
104
- mobileTextWidthPx?: undefined;
105
- desktopTextWidthPx?: undefined;
106
- renderId?: undefined;
107
- renderScreenshots?: undefined;
108
- requireScreenshots?: undefined;
109
- reviewClampLines?: undefined;
110
97
  updatedAt?: undefined;
111
98
  publishUrl?: undefined;
112
99
  activityId?: undefined;
@@ -206,19 +193,6 @@ export declare const contentPostToolDefinitions: ({
206
193
  body?: undefined;
207
194
  validationReceipt?: undefined;
208
195
  status?: undefined;
209
- postText?: undefined;
210
- sourceLabel?: undefined;
211
- measurementMode?: undefined;
212
- requireBrowserMeasurement?: undefined;
213
- clampLines?: undefined;
214
- mobileClampLines?: undefined;
215
- desktopClampLines?: undefined;
216
- mobileTextWidthPx?: undefined;
217
- desktopTextWidthPx?: undefined;
218
- renderId?: undefined;
219
- renderScreenshots?: undefined;
220
- requireScreenshots?: undefined;
221
- reviewClampLines?: undefined;
222
196
  updatedAt?: undefined;
223
197
  publishUrl?: undefined;
224
198
  activityId?: undefined;
@@ -241,7 +215,6 @@ export declare const contentPostToolDefinitions: ({
241
215
  properties: {
242
216
  draftId: {
243
217
  type: string;
244
- description?: undefined;
245
218
  };
246
219
  ideaId: {
247
220
  type: string;
@@ -286,19 +259,6 @@ export declare const contentPostToolDefinitions: ({
286
259
  selectedPatterns?: undefined;
287
260
  previewBudget?: undefined;
288
261
  notes?: undefined;
289
- postText?: undefined;
290
- sourceLabel?: undefined;
291
- measurementMode?: undefined;
292
- requireBrowserMeasurement?: undefined;
293
- clampLines?: undefined;
294
- mobileClampLines?: undefined;
295
- desktopClampLines?: undefined;
296
- mobileTextWidthPx?: undefined;
297
- desktopTextWidthPx?: undefined;
298
- renderId?: undefined;
299
- renderScreenshots?: undefined;
300
- requireScreenshots?: undefined;
301
- reviewClampLines?: undefined;
302
262
  updatedAt?: undefined;
303
263
  publishUrl?: undefined;
304
264
  activityId?: undefined;
@@ -319,171 +279,8 @@ export declare const contentPostToolDefinitions: ({
319
279
  inputSchema: {
320
280
  type: string;
321
281
  properties: {
322
- postText: {
323
- type: string;
324
- description: string;
325
- };
326
- draftId: {
327
- type: string;
328
- description: string;
329
- };
330
- sourceLabel: {
331
- type: string;
332
- };
333
- measurementMode: {
334
- type: string;
335
- enum: string[];
336
- description: string;
337
- };
338
- requireBrowserMeasurement: {
339
- type: string;
340
- description: string;
341
- };
342
- clampLines: {
343
- type: string;
344
- description: string;
345
- };
346
- mobileClampLines: {
347
- type: string;
348
- description: string;
349
- };
350
- desktopClampLines: {
351
- type: string;
352
- description: string;
353
- };
354
- mobileTextWidthPx: {
355
- type: string;
356
- description: string;
357
- };
358
- desktopTextWidthPx: {
359
- type: string;
360
- description: string;
361
- };
362
- rawSource?: undefined;
363
- title?: undefined;
364
- distilledBrief?: undefined;
365
- ideaId?: undefined;
366
- sourceType?: undefined;
367
- sourceUrl?: undefined;
368
- capturedAt?: undefined;
369
- researchId?: undefined;
370
- topic?: undefined;
371
- keywords?: undefined;
372
- sourcePosts?: undefined;
373
- selectedPatterns?: undefined;
374
- previewBudget?: undefined;
375
- notes?: undefined;
376
- createdAt?: undefined;
377
- hookResearchId?: undefined;
378
- priorDraftId?: undefined;
379
- iteration?: undefined;
380
- body?: undefined;
381
- validationReceipt?: undefined;
382
- status?: undefined;
383
- renderId?: undefined;
384
- renderScreenshots?: undefined;
385
- requireScreenshots?: undefined;
386
- reviewClampLines?: undefined;
387
- updatedAt?: undefined;
388
- publishUrl?: undefined;
389
- activityId?: undefined;
390
- publishedAt?: undefined;
391
- finalText?: undefined;
392
- updateDraftStatus?: undefined;
393
- publishedPostId?: undefined;
394
- year?: undefined;
395
- metrics?: undefined;
396
- note?: undefined;
397
- };
398
- required: never[];
399
- additionalProperties: boolean;
400
- };
401
- } | {
402
- name: string;
403
- description: string;
404
- inputSchema: {
405
- type: string;
406
- properties: {
407
- postText: {
408
- type: string;
409
- description: string;
410
- };
411
282
  draftId: {
412
283
  type: string;
413
- description: string;
414
- };
415
- renderId: {
416
- type: string;
417
- description: string;
418
- };
419
- sourceLabel: {
420
- type: string;
421
- };
422
- createdAt: {
423
- type: string;
424
- };
425
- renderScreenshots: {
426
- type: string;
427
- description: string;
428
- };
429
- requireScreenshots: {
430
- type: string;
431
- description: string;
432
- };
433
- reviewClampLines: {
434
- type: string;
435
- description: string;
436
- };
437
- rawSource?: undefined;
438
- title?: undefined;
439
- distilledBrief?: undefined;
440
- ideaId?: undefined;
441
- sourceType?: undefined;
442
- sourceUrl?: undefined;
443
- capturedAt?: undefined;
444
- researchId?: undefined;
445
- topic?: undefined;
446
- keywords?: undefined;
447
- sourcePosts?: undefined;
448
- selectedPatterns?: undefined;
449
- previewBudget?: undefined;
450
- notes?: undefined;
451
- hookResearchId?: undefined;
452
- priorDraftId?: undefined;
453
- iteration?: undefined;
454
- body?: undefined;
455
- validationReceipt?: undefined;
456
- status?: undefined;
457
- measurementMode?: undefined;
458
- requireBrowserMeasurement?: undefined;
459
- clampLines?: undefined;
460
- mobileClampLines?: undefined;
461
- desktopClampLines?: undefined;
462
- mobileTextWidthPx?: undefined;
463
- desktopTextWidthPx?: undefined;
464
- updatedAt?: undefined;
465
- publishUrl?: undefined;
466
- activityId?: undefined;
467
- publishedAt?: undefined;
468
- finalText?: undefined;
469
- updateDraftStatus?: undefined;
470
- publishedPostId?: undefined;
471
- year?: undefined;
472
- metrics?: undefined;
473
- note?: undefined;
474
- };
475
- required: never[];
476
- additionalProperties: boolean;
477
- };
478
- } | {
479
- name: string;
480
- description: string;
481
- inputSchema: {
482
- type: string;
483
- properties: {
484
- draftId: {
485
- type: string;
486
- description?: undefined;
487
284
  };
488
285
  hookResearchId: {
489
286
  type: string;
@@ -526,19 +323,6 @@ export declare const contentPostToolDefinitions: ({
526
323
  previewBudget?: undefined;
527
324
  notes?: undefined;
528
325
  createdAt?: undefined;
529
- postText?: undefined;
530
- sourceLabel?: undefined;
531
- measurementMode?: undefined;
532
- requireBrowserMeasurement?: undefined;
533
- clampLines?: undefined;
534
- mobileClampLines?: undefined;
535
- desktopClampLines?: undefined;
536
- mobileTextWidthPx?: undefined;
537
- desktopTextWidthPx?: undefined;
538
- renderId?: undefined;
539
- renderScreenshots?: undefined;
540
- requireScreenshots?: undefined;
541
- reviewClampLines?: undefined;
542
326
  publishUrl?: undefined;
543
327
  activityId?: undefined;
544
328
  publishedAt?: undefined;
@@ -560,7 +344,6 @@ export declare const contentPostToolDefinitions: ({
560
344
  properties: {
561
345
  draftId: {
562
346
  type: string;
563
- description?: undefined;
564
347
  };
565
348
  publishUrl: {
566
349
  type: string;
@@ -601,19 +384,6 @@ export declare const contentPostToolDefinitions: ({
601
384
  body?: undefined;
602
385
  validationReceipt?: undefined;
603
386
  status?: undefined;
604
- postText?: undefined;
605
- sourceLabel?: undefined;
606
- measurementMode?: undefined;
607
- requireBrowserMeasurement?: undefined;
608
- clampLines?: undefined;
609
- mobileClampLines?: undefined;
610
- desktopClampLines?: undefined;
611
- mobileTextWidthPx?: undefined;
612
- desktopTextWidthPx?: undefined;
613
- renderId?: undefined;
614
- renderScreenshots?: undefined;
615
- requireScreenshots?: undefined;
616
- reviewClampLines?: undefined;
617
387
  updatedAt?: undefined;
618
388
  publishedPostId?: undefined;
619
389
  year?: undefined;
@@ -666,19 +436,6 @@ export declare const contentPostToolDefinitions: ({
666
436
  body?: undefined;
667
437
  validationReceipt?: undefined;
668
438
  status?: undefined;
669
- postText?: undefined;
670
- sourceLabel?: undefined;
671
- measurementMode?: undefined;
672
- requireBrowserMeasurement?: undefined;
673
- clampLines?: undefined;
674
- mobileClampLines?: undefined;
675
- desktopClampLines?: undefined;
676
- mobileTextWidthPx?: undefined;
677
- desktopTextWidthPx?: undefined;
678
- renderId?: undefined;
679
- renderScreenshots?: undefined;
680
- requireScreenshots?: undefined;
681
- reviewClampLines?: undefined;
682
439
  updatedAt?: undefined;
683
440
  publishUrl?: undefined;
684
441
  activityId?: undefined;
@@ -698,7 +455,6 @@ export declare function ensureContentLayout(root?: string): {
698
455
  hookResearch: "linkedin/research/hooks";
699
456
  drafts: "linkedin/drafts";
700
457
  published: "linkedin/published";
701
- previews: "linkedin/previews";
702
458
  commentLibrary: "linkedin/comments/library";
703
459
  };
704
460
  };
@@ -773,182 +529,6 @@ export declare function savePostDraftTool(input: {
773
529
  updatedAt: string;
774
530
  preview: string;
775
531
  };
776
- type LinkedInHookPreviewSurface = {
777
- label: "mobile" | "desktop";
778
- textWidthPx: number;
779
- fontSizePx: number;
780
- lineHeightPx: number;
781
- clampLines: number;
782
- charGuardrail: number;
783
- renderedLines: string[];
784
- visibleLines: string[];
785
- visibleTextBlock: string;
786
- visibleTextBlockCharCount: number;
787
- withinCharGuardrail: boolean;
788
- lineCountBeforeClamp: number;
789
- blankLinesBeforeClamp: number;
790
- truncated: boolean;
791
- seeMoreWouldShow: boolean;
792
- hiddenTextStartsWith?: string;
793
- measurementBasis: "local_chrome_browser_layout" | "estimated_width_model";
794
- measurementWarning?: string;
795
- chromePath?: string;
796
- };
797
- export declare function calculateLinkedInHookPreviewTool(input: {
798
- postText?: string;
799
- draftId?: string;
800
- sourceLabel?: string;
801
- measurementMode?: "browser" | "estimated";
802
- requireBrowserMeasurement?: boolean;
803
- clampLines?: number;
804
- mobileClampLines?: number;
805
- desktopClampLines?: number;
806
- mobileTextWidthPx?: number;
807
- desktopTextWidthPx?: number;
808
- }): {
809
- basis: string;
810
- ruleConfidence: string;
811
- cssContractVersion: string;
812
- sourceLabel: string | undefined;
813
- draftId: string | undefined;
814
- ruleSummary: string;
815
- rules: {
816
- visibleUnit: string;
817
- defaultClampLines: number;
818
- fontSizePx: number;
819
- lineHeightPx: number;
820
- whiteSpace: string;
821
- overflowWrap: string;
822
- desktopCharGuardrail: number;
823
- mobileCharGuardrail: number;
824
- characterCountsAreGuardrailsOnly: boolean;
825
- notOfficialLinkedInApi: boolean;
826
- strongestEvidence: string;
827
- };
828
- mobile: LinkedInHookPreviewSurface;
829
- desktop: LinkedInHookPreviewSurface;
830
- diagnostics: {
831
- charCount: number;
832
- charCountIncludingNewlines: number;
833
- firstLineChars: number;
834
- firstTwoPhysicalLinesChars: number;
835
- physicalLineCount: number;
836
- contentLineCount: number;
837
- longestNonblankLineChars: number;
838
- blankLineCount: number;
839
- };
840
- };
841
- export declare function renderLinkedInPostPreviewTool(input: {
842
- postText?: string;
843
- draftId?: string;
844
- renderId?: string;
845
- sourceLabel?: string;
846
- createdAt?: string;
847
- renderScreenshots?: boolean;
848
- requireScreenshots?: boolean;
849
- reviewClampLines?: number;
850
- }): {
851
- id: string;
852
- path: string;
853
- artifactDir: string;
854
- absoluteArtifactDir: string;
855
- combinedHtmlPath: string;
856
- absoluteCombinedHtmlPath: string;
857
- mobile: {
858
- absoluteHtmlPath: string;
859
- absoluteScreenshotPath: string | undefined;
860
- textWidthPx: number;
861
- viewportWidthPx: number;
862
- fontSizePx: number;
863
- lineHeightPx: number;
864
- reviewClampLines: number;
865
- estimatedVisibleTextBlock: string;
866
- estimatedRenderedLines: string[];
867
- estimatedLineCountBeforeClamp: number;
868
- estimatedBlankLinesBeforeClamp: number;
869
- htmlPath: string;
870
- screenshotPath: string | undefined;
871
- };
872
- desktop: {
873
- absoluteHtmlPath: string;
874
- absoluteScreenshotPath: string | undefined;
875
- textWidthPx: number;
876
- viewportWidthPx: number;
877
- fontSizePx: number;
878
- lineHeightPx: number;
879
- reviewClampLines: number;
880
- estimatedVisibleTextBlock: string;
881
- estimatedRenderedLines: string[];
882
- estimatedLineCountBeforeClamp: number;
883
- estimatedBlankLinesBeforeClamp: number;
884
- htmlPath: string;
885
- screenshotPath: string | undefined;
886
- };
887
- screenshotStatus: {
888
- status: "rendered";
889
- chromePath: string;
890
- } | {
891
- status: "skipped";
892
- reason: string;
893
- } | {
894
- status: "failed";
895
- reason: string;
896
- chromePath?: string;
897
- };
898
- renderedPreview: {
899
- basis: string;
900
- cssContractVersion: string;
901
- generatedAt: string;
902
- sourceLabel: string;
903
- mobile: {
904
- textWidthPx: number;
905
- viewportWidthPx: number;
906
- fontSizePx: number;
907
- lineHeightPx: number;
908
- reviewClampLines: number;
909
- estimatedVisibleTextBlock: string;
910
- estimatedRenderedLines: string[];
911
- estimatedLineCountBeforeClamp: number;
912
- estimatedBlankLinesBeforeClamp: number;
913
- htmlPath: string;
914
- screenshotPath: string | undefined;
915
- };
916
- desktop: {
917
- textWidthPx: number;
918
- viewportWidthPx: number;
919
- fontSizePx: number;
920
- lineHeightPx: number;
921
- reviewClampLines: number;
922
- estimatedVisibleTextBlock: string;
923
- estimatedRenderedLines: string[];
924
- estimatedLineCountBeforeClamp: number;
925
- estimatedBlankLinesBeforeClamp: number;
926
- htmlPath: string;
927
- screenshotPath: string | undefined;
928
- };
929
- diagnostics: {
930
- charCount: number;
931
- charCountIncludingNewlines: number;
932
- firstLineChars: number;
933
- firstTwoPhysicalLinesChars: number;
934
- physicalLineCount: number;
935
- contentLineCount: number;
936
- longestNonblankLineChars: number;
937
- blankLineCount: number;
938
- };
939
- screenshotStatus: {
940
- status: "rendered";
941
- chromePath: string;
942
- } | {
943
- status: "skipped";
944
- reason: string;
945
- } | {
946
- status: "failed";
947
- reason: string;
948
- chromePath?: string;
949
- };
950
- };
951
- };
952
532
  export declare function updatePostDraftTool(input: {
953
533
  draftId: string;
954
534
  hookResearchId?: string;