@reaudit/mcp-server 1.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.
Files changed (119) hide show
  1. package/LICENSE +33 -0
  2. package/README.md +399 -0
  3. package/dist/auth/oauth-client.d.ts +43 -0
  4. package/dist/auth/oauth-client.d.ts.map +1 -0
  5. package/dist/auth/oauth-client.js +340 -0
  6. package/dist/auth/oauth-client.js.map +1 -0
  7. package/dist/auth/token-store.d.ts +41 -0
  8. package/dist/auth/token-store.d.ts.map +1 -0
  9. package/dist/auth/token-store.js +176 -0
  10. package/dist/auth/token-store.js.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +480 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/api-client.d.ts +970 -0
  16. package/dist/lib/api-client.d.ts.map +1 -0
  17. package/dist/lib/api-client.js +441 -0
  18. package/dist/lib/api-client.js.map +1 -0
  19. package/dist/lib/confirmation.d.ts +92 -0
  20. package/dist/lib/confirmation.d.ts.map +1 -0
  21. package/dist/lib/confirmation.js +224 -0
  22. package/dist/lib/confirmation.js.map +1 -0
  23. package/dist/lib/error-handler.d.ts +57 -0
  24. package/dist/lib/error-handler.d.ts.map +1 -0
  25. package/dist/lib/error-handler.js +235 -0
  26. package/dist/lib/error-handler.js.map +1 -0
  27. package/dist/lib/offline-mode.d.ts +107 -0
  28. package/dist/lib/offline-mode.d.ts.map +1 -0
  29. package/dist/lib/offline-mode.js +356 -0
  30. package/dist/lib/offline-mode.js.map +1 -0
  31. package/dist/lib/progress-tracker.d.ts +87 -0
  32. package/dist/lib/progress-tracker.d.ts.map +1 -0
  33. package/dist/lib/progress-tracker.js +238 -0
  34. package/dist/lib/progress-tracker.js.map +1 -0
  35. package/dist/prompts/index.d.ts +24 -0
  36. package/dist/prompts/index.d.ts.map +1 -0
  37. package/dist/prompts/index.js +305 -0
  38. package/dist/prompts/index.js.map +1 -0
  39. package/dist/resources/index.d.ts +44 -0
  40. package/dist/resources/index.d.ts.map +1 -0
  41. package/dist/resources/index.js +125 -0
  42. package/dist/resources/index.js.map +1 -0
  43. package/dist/tools/account.d.ts +25 -0
  44. package/dist/tools/account.d.ts.map +1 -0
  45. package/dist/tools/account.js +69 -0
  46. package/dist/tools/account.js.map +1 -0
  47. package/dist/tools/action-grids.d.ts +414 -0
  48. package/dist/tools/action-grids.d.ts.map +1 -0
  49. package/dist/tools/action-grids.js +271 -0
  50. package/dist/tools/action-grids.js.map +1 -0
  51. package/dist/tools/analytics-query.d.ts +126 -0
  52. package/dist/tools/analytics-query.d.ts.map +1 -0
  53. package/dist/tools/analytics-query.js +106 -0
  54. package/dist/tools/analytics-query.js.map +1 -0
  55. package/dist/tools/analytics.d.ts +57 -0
  56. package/dist/tools/analytics.d.ts.map +1 -0
  57. package/dist/tools/analytics.js +122 -0
  58. package/dist/tools/analytics.js.map +1 -0
  59. package/dist/tools/audits.d.ts +123 -0
  60. package/dist/tools/audits.d.ts.map +1 -0
  61. package/dist/tools/audits.js +226 -0
  62. package/dist/tools/audits.js.map +1 -0
  63. package/dist/tools/calendar.d.ts +57 -0
  64. package/dist/tools/calendar.d.ts.map +1 -0
  65. package/dist/tools/calendar.js +109 -0
  66. package/dist/tools/calendar.js.map +1 -0
  67. package/dist/tools/content-generation.d.ts +211 -0
  68. package/dist/tools/content-generation.d.ts.map +1 -0
  69. package/dist/tools/content-generation.js +363 -0
  70. package/dist/tools/content-generation.js.map +1 -0
  71. package/dist/tools/content.d.ts +92 -0
  72. package/dist/tools/content.d.ts.map +1 -0
  73. package/dist/tools/content.js +130 -0
  74. package/dist/tools/content.js.map +1 -0
  75. package/dist/tools/indexing.d.ts +132 -0
  76. package/dist/tools/indexing.d.ts.map +1 -0
  77. package/dist/tools/indexing.js +190 -0
  78. package/dist/tools/indexing.js.map +1 -0
  79. package/dist/tools/optimization.d.ts +70 -0
  80. package/dist/tools/optimization.d.ts.map +1 -0
  81. package/dist/tools/optimization.js +106 -0
  82. package/dist/tools/optimization.js.map +1 -0
  83. package/dist/tools/projects.d.ts +67 -0
  84. package/dist/tools/projects.d.ts.map +1 -0
  85. package/dist/tools/projects.js +113 -0
  86. package/dist/tools/projects.js.map +1 -0
  87. package/dist/tools/prompts.d.ts +306 -0
  88. package/dist/tools/prompts.d.ts.map +1 -0
  89. package/dist/tools/prompts.js +378 -0
  90. package/dist/tools/prompts.js.map +1 -0
  91. package/dist/tools/publishing.d.ts +135 -0
  92. package/dist/tools/publishing.d.ts.map +1 -0
  93. package/dist/tools/publishing.js +209 -0
  94. package/dist/tools/publishing.js.map +1 -0
  95. package/dist/tools/reports.d.ts +252 -0
  96. package/dist/tools/reports.d.ts.map +1 -0
  97. package/dist/tools/reports.js +183 -0
  98. package/dist/tools/reports.js.map +1 -0
  99. package/dist/tools/social.d.ts +224 -0
  100. package/dist/tools/social.d.ts.map +1 -0
  101. package/dist/tools/social.js +291 -0
  102. package/dist/tools/social.js.map +1 -0
  103. package/dist/tools/sources.d.ts +221 -0
  104. package/dist/tools/sources.d.ts.map +1 -0
  105. package/dist/tools/sources.js +308 -0
  106. package/dist/tools/sources.js.map +1 -0
  107. package/dist/tools/strategy.d.ts +345 -0
  108. package/dist/tools/strategy.d.ts.map +1 -0
  109. package/dist/tools/strategy.js +392 -0
  110. package/dist/tools/strategy.js.map +1 -0
  111. package/dist/tools/usage.d.ts +101 -0
  112. package/dist/tools/usage.d.ts.map +1 -0
  113. package/dist/tools/usage.js +184 -0
  114. package/dist/tools/usage.js.map +1 -0
  115. package/dist/tools/visibility.d.ts +95 -0
  116. package/dist/tools/visibility.d.ts.map +1 -0
  117. package/dist/tools/visibility.js +163 -0
  118. package/dist/tools/visibility.js.map +1 -0
  119. package/package.json +54 -0
@@ -0,0 +1,970 @@
1
+ /**
2
+ * Reaudit API Client
3
+ *
4
+ * HTTP client for communicating with the Reaudit MCP API.
5
+ */
6
+ export interface Project {
7
+ id: string;
8
+ name: string;
9
+ domain: string | null;
10
+ brandName: string;
11
+ industry: string | null;
12
+ createdAt: string;
13
+ updatedAt: string;
14
+ }
15
+ export interface AccountInfo {
16
+ user: {
17
+ id: string;
18
+ email: string;
19
+ name: string | null;
20
+ };
21
+ subscription: {
22
+ tier: string;
23
+ status: string;
24
+ currentPeriodEnd: string;
25
+ };
26
+ usage: {
27
+ prompts: {
28
+ used: number;
29
+ limit: number;
30
+ resetsAt: string;
31
+ unlimited: boolean;
32
+ };
33
+ content: {
34
+ used: number;
35
+ limit: number;
36
+ resetsAt: string;
37
+ unlimited: boolean;
38
+ };
39
+ images: {
40
+ used: number;
41
+ limit: number;
42
+ resetsAt: string;
43
+ unlimited: boolean;
44
+ };
45
+ audits: {
46
+ used: number;
47
+ limit: number;
48
+ resetsAt: string;
49
+ unlimited: boolean;
50
+ };
51
+ };
52
+ }
53
+ export interface VisibilityScore {
54
+ brandName: string;
55
+ visibilityScore: number;
56
+ period: string;
57
+ metrics: {
58
+ totalMentions: number;
59
+ citationsReceived: number;
60
+ citationRate: number;
61
+ avgSentiment: number;
62
+ };
63
+ platformBreakdown: Array<{
64
+ platform: string;
65
+ mentions: number;
66
+ avgSentiment: number;
67
+ }>;
68
+ sentimentDistribution: {
69
+ positive: number;
70
+ neutral: number;
71
+ negative: number;
72
+ };
73
+ }
74
+ export interface BrandMention {
75
+ id: string;
76
+ platform: string;
77
+ prompt: string;
78
+ excerpt: string;
79
+ sentiment: number;
80
+ sentimentLabel: string;
81
+ citationCount: number;
82
+ timestamp: string;
83
+ }
84
+ export interface CompetitorComparison {
85
+ brandName: string;
86
+ yourMetrics: {
87
+ mentions: number;
88
+ avgSentiment: number;
89
+ citations: number;
90
+ rank: number;
91
+ totalCompetitors: number;
92
+ };
93
+ competitors: Array<{
94
+ name: string;
95
+ domain: string;
96
+ mentions: number;
97
+ avgSentiment: number;
98
+ citations: number;
99
+ }>;
100
+ period: string;
101
+ }
102
+ export interface AuditSummary {
103
+ id: string;
104
+ url: string;
105
+ domain: string;
106
+ status: string;
107
+ pageTitle: string | null;
108
+ currentScore: number | null;
109
+ potentialScore: number | null;
110
+ processingTime: string | null;
111
+ createdAt: string;
112
+ }
113
+ export interface AuditDetails {
114
+ id: string;
115
+ url: string;
116
+ domain: string;
117
+ status: string;
118
+ pageTitle: string;
119
+ pageDescription: string;
120
+ scores: {
121
+ current: number;
122
+ potential: number;
123
+ pageSpeed: number | null;
124
+ accessibility: number | null;
125
+ };
126
+ focusKeyphrase: string;
127
+ metaDescription: string;
128
+ recommendations: Array<{
129
+ title: string;
130
+ description: string;
131
+ priority: number;
132
+ impact: string;
133
+ category: string;
134
+ effort: string;
135
+ }>;
136
+ technicalIssues: Array<{
137
+ issue: string;
138
+ impact: string;
139
+ solution: string;
140
+ }>;
141
+ contentSuggestions: Array<{
142
+ suggestion: string;
143
+ benefit: string;
144
+ }>;
145
+ pageSpeed: {
146
+ performance: number;
147
+ fcp: string;
148
+ lcp: string;
149
+ tbt: string;
150
+ cls: string;
151
+ } | null;
152
+ contentQuality: {
153
+ overall: number;
154
+ clarity: number;
155
+ factuality: number;
156
+ answerability: number;
157
+ } | null;
158
+ createdAt: string;
159
+ processingTime: string | null;
160
+ }
161
+ export interface KnowledgeBaseResult {
162
+ projectId: string;
163
+ query: string;
164
+ results: Array<{
165
+ rank: number;
166
+ content: string;
167
+ source: string | null;
168
+ title: string | null;
169
+ }>;
170
+ stats: {
171
+ totalPages: number;
172
+ totalChunks: number;
173
+ };
174
+ message?: string;
175
+ }
176
+ export interface ContentSuggestion {
177
+ id: string;
178
+ title: string;
179
+ description: string;
180
+ type: string;
181
+ priority: number;
182
+ status: string;
183
+ targetKeywords: string[];
184
+ estimatedImpact: string;
185
+ createdAt: string;
186
+ }
187
+ export interface CalendarEvent {
188
+ id: string;
189
+ type: 'social_media' | 'wordpress' | 'blog' | 'strategy_planned';
190
+ platform: string;
191
+ title: string;
192
+ status: string;
193
+ date: string;
194
+ url?: string;
195
+ strategyName?: string;
196
+ weekNumber?: number;
197
+ pillar?: string;
198
+ funnelStage?: string;
199
+ }
200
+ export interface CalendarStats {
201
+ total: number;
202
+ socialMedia: number;
203
+ wordpress: number;
204
+ blog: number;
205
+ strategyPlanned: number;
206
+ planned: number;
207
+ scheduled: number;
208
+ published: number;
209
+ }
210
+ export interface Strategy {
211
+ id: string;
212
+ name: string;
213
+ description?: string;
214
+ status: 'draft' | 'in_progress' | 'completed' | 'archived';
215
+ currentModule: number;
216
+ currentStep: number;
217
+ completionPercentage: number;
218
+ businessContext: {
219
+ companyName: string;
220
+ industry: string;
221
+ productService: string;
222
+ targetMarket: string;
223
+ };
224
+ projectId?: string;
225
+ createdAt: string;
226
+ updatedAt: string;
227
+ }
228
+ export interface StrategyContentItem {
229
+ id: string;
230
+ platform: string;
231
+ format?: string;
232
+ topic: string;
233
+ pillar?: string;
234
+ funnelStage?: string;
235
+ status: 'planned' | 'draft' | 'scheduled' | 'published';
236
+ plannedDate: string;
237
+ weekNumber?: number;
238
+ dayOfWeek?: string;
239
+ weekTheme?: string;
240
+ notes?: string;
241
+ hasGeneratedContent: boolean;
242
+ generatedContentId?: string;
243
+ }
244
+ export interface GeneratedContent {
245
+ id: string;
246
+ title: string;
247
+ slug: string;
248
+ content?: string;
249
+ markdownContent?: string;
250
+ excerpt: string;
251
+ metaTitle?: string;
252
+ metaDescription: string;
253
+ contentType: string;
254
+ keyword: string;
255
+ topic: string;
256
+ wordCount: number;
257
+ seoScore?: number;
258
+ readabilityScore?: number;
259
+ keywordDensity?: number;
260
+ sentiment?: string;
261
+ suggestedTags?: string[];
262
+ suggestedCategories?: string[];
263
+ focusKeyphrase?: string;
264
+ schemaMarkup?: string;
265
+ structuredData?: Record<string, unknown>;
266
+ headings?: {
267
+ h1?: string[];
268
+ h2?: string[];
269
+ h3?: string[];
270
+ };
271
+ internalLinks?: Array<{
272
+ text: string;
273
+ url: string;
274
+ }>;
275
+ imagePrompts?: string[];
276
+ faq?: Array<{
277
+ question: string;
278
+ answer: string;
279
+ }>;
280
+ hasSchemaMarkup?: boolean;
281
+ knowledgeBaseContext?: Array<{
282
+ content: string;
283
+ source: string | null;
284
+ title: string | null;
285
+ }>;
286
+ internalLinkSuggestionsUsed?: number;
287
+ semanticVariantsUsed?: number;
288
+ webSearchUsed?: {
289
+ citationsCount: number;
290
+ researchLength: number;
291
+ };
292
+ language: string;
293
+ provider: string;
294
+ projectId?: string;
295
+ generatedAt: string;
296
+ }
297
+ export interface CitationSource {
298
+ url: string;
299
+ title: string;
300
+ domain: string;
301
+ type: 'Brand' | 'Third-party';
302
+ frequency: number;
303
+ models: string[];
304
+ prompts: string[];
305
+ promptCount: number;
306
+ lastCited: string;
307
+ }
308
+ export interface AuthorInfo {
309
+ name?: string;
310
+ email?: string;
311
+ bio?: string;
312
+ imageUrl?: string;
313
+ socialLinks?: Record<string, string>;
314
+ articleTitle?: string;
315
+ articleExcerpt?: string;
316
+ confidence?: number;
317
+ }
318
+ export interface OutreachOpportunity {
319
+ id: string;
320
+ articleUrl: string;
321
+ articleTitle: string;
322
+ articleDomain: string;
323
+ authorName?: string;
324
+ authorEmail?: string;
325
+ authorBio?: string;
326
+ authorSocialLinks?: Record<string, string>;
327
+ status: string;
328
+ discoveredFrom: string;
329
+ notes?: string;
330
+ tags?: string[];
331
+ createdAt: string;
332
+ }
333
+ export interface IndexingConnection {
334
+ id: string;
335
+ siteUrl: string;
336
+ siteName: string;
337
+ sitemapUrl?: string;
338
+ sourceType: string;
339
+ indexNowEnabled: boolean;
340
+ indexNowKeyVerified: boolean;
341
+ indexNowKey?: string;
342
+ gscEnabled: boolean;
343
+ stats?: {
344
+ totalUrls: number;
345
+ indexedUrls: number;
346
+ lastSyncAt?: string;
347
+ };
348
+ isActive: boolean;
349
+ lastError?: string;
350
+ lastErrorAt?: string;
351
+ project?: {
352
+ id: string;
353
+ name: string;
354
+ };
355
+ createdAt: string;
356
+ updatedAt: string;
357
+ }
358
+ export interface SocialConnection {
359
+ id: string;
360
+ platform: string;
361
+ platformUsername?: string;
362
+ platformUserId?: string;
363
+ isVerified: boolean;
364
+ totalPublished: number;
365
+ totalScheduled: number;
366
+ totalFailed: number;
367
+ lastPublishedAt?: string;
368
+ createdAt: string;
369
+ }
370
+ export interface SocialPost {
371
+ id: string;
372
+ platform: string;
373
+ text: string;
374
+ status: string;
375
+ scheduledFor?: string;
376
+ publishedAt?: string;
377
+ platformUrl?: string;
378
+ createdAt: string;
379
+ }
380
+ /**
381
+ * API Client class
382
+ */
383
+ export declare class ReauditAPIClient {
384
+ private baseUrl;
385
+ private oauthClient;
386
+ private httpClient;
387
+ constructor(baseUrl: string);
388
+ /**
389
+ * Make an authenticated API request with automatic retry
390
+ */
391
+ private request;
392
+ listProjects(): Promise<{
393
+ projects: Project[];
394
+ count: number;
395
+ }>;
396
+ getAccount(): Promise<AccountInfo>;
397
+ getVisibilityScore(projectId: string): Promise<VisibilityScore>;
398
+ getBrandMentions(projectId: string, options?: {
399
+ platform?: string;
400
+ limit?: number;
401
+ days?: number;
402
+ }): Promise<{
403
+ brandName: string;
404
+ mentions: BrandMention[];
405
+ count: number;
406
+ period: string;
407
+ }>;
408
+ getCompetitorComparison(projectId: string): Promise<CompetitorComparison>;
409
+ listAudits(options?: {
410
+ projectId?: string;
411
+ limit?: number;
412
+ status?: string;
413
+ }): Promise<{
414
+ audits: AuditSummary[];
415
+ count: number;
416
+ }>;
417
+ getAuditDetails(auditId: string): Promise<AuditDetails>;
418
+ getAuditRecommendations(auditId: string, options?: {
419
+ category?: string;
420
+ impact?: string;
421
+ }): Promise<{
422
+ auditId: string;
423
+ url: string;
424
+ currentScore: number;
425
+ totalRecommendations: number;
426
+ byImpact: {
427
+ critical: any[];
428
+ high: any[];
429
+ medium: any[];
430
+ low: any[];
431
+ };
432
+ summary: {
433
+ critical: number;
434
+ high: number;
435
+ medium: number;
436
+ low: number;
437
+ };
438
+ }>;
439
+ searchKnowledgeBase(projectId: string, query: string, topK?: number): Promise<KnowledgeBaseResult>;
440
+ getContentSuggestions(projectId: string, options?: {
441
+ status?: string;
442
+ limit?: number;
443
+ }): Promise<{
444
+ projectId: string;
445
+ suggestions: ContentSuggestion[];
446
+ count: number;
447
+ }>;
448
+ getCitationAnalytics(projectId: string, days?: number): Promise<{
449
+ brandName: string;
450
+ period: string;
451
+ summary: {
452
+ totalCitations: number;
453
+ mentionsWithCitations: number;
454
+ avgCitationsPerMention: number;
455
+ };
456
+ dailyTrends: Array<{
457
+ date: string;
458
+ citations: number;
459
+ mentions: number;
460
+ }>;
461
+ topCitedDomains: Array<{
462
+ domain: string;
463
+ count: number;
464
+ }>;
465
+ byPlatform: Array<{
466
+ platform: string;
467
+ citations: number;
468
+ mentions: number;
469
+ }>;
470
+ }>;
471
+ getWordPressAnalytics(projectId: string, days?: number): Promise<{
472
+ projectId: string;
473
+ domain: string;
474
+ period: string;
475
+ summary: {
476
+ totalBotVisits: number;
477
+ uniqueBotTypes: number;
478
+ };
479
+ botBreakdown: Array<{
480
+ botType: string;
481
+ visits: number;
482
+ uniquePages: number;
483
+ }>;
484
+ topCrawledPages: Array<{
485
+ url: string;
486
+ visits: number;
487
+ bots: string[];
488
+ }>;
489
+ dailyTrends: Array<Record<string, any>>;
490
+ }>;
491
+ getTokenUsage(days?: number): Promise<{
492
+ period: string;
493
+ totalTokens: number;
494
+ totalCost: number;
495
+ totalCostFormatted: string;
496
+ byOperation: Array<{
497
+ operation: string;
498
+ tokens: number;
499
+ cost: number;
500
+ count: number;
501
+ }>;
502
+ byDay: Array<{
503
+ date: string;
504
+ tokens: number;
505
+ cost: number;
506
+ }>;
507
+ budget?: {
508
+ tokenLimit?: number;
509
+ costLimit?: number;
510
+ percentUsed: number;
511
+ alertThreshold: number;
512
+ };
513
+ }>;
514
+ getBudgetStatus(): Promise<{
515
+ hasLimits: boolean;
516
+ settings: {
517
+ monthlyTokenLimit?: number;
518
+ monthlyCostLimit?: number;
519
+ monthlyCostLimitFormatted?: string;
520
+ alertThreshold: number;
521
+ pauseOnLimit: boolean;
522
+ notifyOnAlert: boolean;
523
+ } | null;
524
+ currentPeriod: string | null;
525
+ usage: {
526
+ tokens: number;
527
+ cost: number;
528
+ costFormatted: string;
529
+ tokenLimit?: number;
530
+ costLimit?: number;
531
+ percentUsed: number;
532
+ } | null;
533
+ status: {
534
+ allowed: boolean;
535
+ reason?: string;
536
+ alertSent: boolean;
537
+ limitReached: boolean;
538
+ };
539
+ }>;
540
+ updateBudgetSettings(settings: {
541
+ monthlyTokenLimit?: number | null;
542
+ monthlyCostLimit?: number | null;
543
+ alertThreshold?: number;
544
+ pauseOnLimit?: boolean;
545
+ }): Promise<{
546
+ message: string;
547
+ settings: any;
548
+ }>;
549
+ getContentCalendar(options?: {
550
+ projectId?: string;
551
+ startDate?: string;
552
+ endDate?: string;
553
+ limit?: number;
554
+ }): Promise<{
555
+ events: CalendarEvent[];
556
+ stats: CalendarStats;
557
+ }>;
558
+ listStrategies(options?: {
559
+ projectId?: string;
560
+ status?: string;
561
+ limit?: number;
562
+ page?: number;
563
+ }): Promise<{
564
+ strategies: Strategy[];
565
+ pagination: {
566
+ page: number;
567
+ limit: number;
568
+ total: number;
569
+ totalPages: number;
570
+ };
571
+ }>;
572
+ getStrategyDetails(strategyId: string): Promise<{
573
+ strategy: any;
574
+ }>;
575
+ createStrategy(data: {
576
+ name: string;
577
+ description?: string;
578
+ projectId?: string;
579
+ businessContext: {
580
+ companyName: string;
581
+ industry: string;
582
+ productService: string;
583
+ targetMarket: string;
584
+ currentChallenges?: string;
585
+ competitors?: string[];
586
+ uniqueValueProposition?: string;
587
+ };
588
+ }): Promise<{
589
+ strategy: Strategy;
590
+ }>;
591
+ getStrategyContentItems(strategyId: string, options?: {
592
+ status?: string;
593
+ weekNumber?: number;
594
+ platform?: string;
595
+ }): Promise<{
596
+ items: StrategyContentItem[];
597
+ stats: Record<string, number>;
598
+ count: number;
599
+ }>;
600
+ updateStrategyContentItem(strategyId: string, itemId: string, updates: {
601
+ status?: string;
602
+ notes?: string;
603
+ topic?: string;
604
+ platform?: string;
605
+ plannedDate?: string;
606
+ }): Promise<{
607
+ item: StrategyContentItem;
608
+ }>;
609
+ generateContent(data: {
610
+ contentType?: string;
611
+ keyword: string;
612
+ topic: string;
613
+ additionalContext?: string;
614
+ contentLength?: 'short' | 'medium' | 'long' | 'comprehensive';
615
+ tone?: string;
616
+ customTone?: string;
617
+ useProjectTone?: boolean;
618
+ projectId?: string;
619
+ language?: string;
620
+ useSemanticVariants?: boolean;
621
+ useWebSearch?: boolean;
622
+ }): Promise<{
623
+ content: GeneratedContent;
624
+ }>;
625
+ getContentHistory(options?: {
626
+ projectId?: string;
627
+ contentType?: string;
628
+ limit?: number;
629
+ skip?: number;
630
+ }): Promise<{
631
+ history: GeneratedContent[];
632
+ pagination: {
633
+ total: number;
634
+ limit: number;
635
+ skip: number;
636
+ hasMore: boolean;
637
+ };
638
+ }>;
639
+ getContentDetails(contentId: string): Promise<{
640
+ content: GeneratedContent;
641
+ }>;
642
+ getCitationSources(projectId: string, options?: {
643
+ type?: string;
644
+ limit?: number;
645
+ }): Promise<{
646
+ sources: CitationSource[];
647
+ stats: {
648
+ totalSources: number;
649
+ brandSources: number;
650
+ thirdPartySources: number;
651
+ totalCitations: number;
652
+ modelBreakdown: Record<string, number>;
653
+ };
654
+ }>;
655
+ extractAuthorInfo(url: string): Promise<{
656
+ found: boolean;
657
+ author?: AuthorInfo;
658
+ message?: string;
659
+ }>;
660
+ listOutreachOpportunities(projectId: string, options?: {
661
+ status?: string;
662
+ limit?: number;
663
+ page?: number;
664
+ }): Promise<{
665
+ opportunities: OutreachOpportunity[];
666
+ pagination: {
667
+ page: number;
668
+ limit: number;
669
+ total: number;
670
+ totalPages: number;
671
+ };
672
+ statusCounts: Record<string, number>;
673
+ }>;
674
+ createOutreachOpportunity(data: {
675
+ projectId: string;
676
+ articleUrl: string;
677
+ articleTitle: string;
678
+ authorName?: string;
679
+ authorEmail?: string;
680
+ authorBio?: string;
681
+ authorSocialLinks?: Record<string, string>;
682
+ notes?: string;
683
+ tags?: string[];
684
+ }): Promise<{
685
+ opportunity: OutreachOpportunity;
686
+ }>;
687
+ listIndexingConnections(options?: {
688
+ projectId?: string;
689
+ activeOnly?: boolean;
690
+ }): Promise<{
691
+ connections: IndexingConnection[];
692
+ count: number;
693
+ }>;
694
+ createIndexingConnection(data: {
695
+ siteUrl: string;
696
+ siteName: string;
697
+ sitemapUrl?: string;
698
+ projectId?: string;
699
+ indexNowEnabled?: boolean;
700
+ }): Promise<{
701
+ connection: IndexingConnection;
702
+ message: string;
703
+ }>;
704
+ syncIndexingConnection(connectionId: string): Promise<{
705
+ message: string;
706
+ connection: {
707
+ id: string;
708
+ siteUrl: string;
709
+ sitemapUrl: string;
710
+ stats: any;
711
+ lastSyncAt?: string;
712
+ };
713
+ }>;
714
+ listSocialConnections(): Promise<{
715
+ connections: SocialConnection[];
716
+ count: number;
717
+ }>;
718
+ listSocialPosts(options?: {
719
+ projectId?: string;
720
+ platform?: string;
721
+ status?: string;
722
+ limit?: number;
723
+ skip?: number;
724
+ }): Promise<{
725
+ posts: SocialPost[];
726
+ pagination: {
727
+ total: number;
728
+ limit: number;
729
+ skip: number;
730
+ hasMore: boolean;
731
+ };
732
+ }>;
733
+ generateSocialPosts(data: {
734
+ contentId: string;
735
+ platforms: string[];
736
+ tone?: string;
737
+ includeHashtags?: boolean;
738
+ includeLink?: boolean;
739
+ }): Promise<{
740
+ success: boolean;
741
+ posts?: Array<{
742
+ _id: string;
743
+ platform: string;
744
+ text: string;
745
+ hashtags?: string[];
746
+ status: string;
747
+ }>;
748
+ error?: string;
749
+ }>;
750
+ publishSocialPost(postId: string): Promise<{
751
+ success: boolean;
752
+ platform?: string;
753
+ platformUrl?: string;
754
+ error?: string;
755
+ }>;
756
+ scheduleSocialPost(postId: string, scheduledFor: string): Promise<{
757
+ success: boolean;
758
+ platform?: string;
759
+ error?: string;
760
+ }>;
761
+ listWordPressConnections(): Promise<{
762
+ connections: Array<{
763
+ id: string;
764
+ siteName: string;
765
+ siteUrl: string;
766
+ isVerified: boolean;
767
+ totalPublished: number;
768
+ totalDrafts: number;
769
+ lastPublishedAt?: string;
770
+ }>;
771
+ }>;
772
+ publishToWordPress(data: {
773
+ contentId: string;
774
+ connectionId: string;
775
+ status?: 'draft' | 'publish';
776
+ categories?: string[];
777
+ tags?: string[];
778
+ }): Promise<{
779
+ success: boolean;
780
+ post?: {
781
+ id: string;
782
+ wordpressPostId: number;
783
+ wordpressUrl: string;
784
+ title: string;
785
+ status: string;
786
+ publishedAt?: string;
787
+ };
788
+ error?: string;
789
+ }>;
790
+ listReactConnections(): Promise<{
791
+ connections: Array<{
792
+ id: string;
793
+ siteName: string;
794
+ siteUrl: string;
795
+ isActive: boolean;
796
+ webhookUrl?: string;
797
+ contentSections?: Array<{
798
+ id: string;
799
+ name: string;
800
+ route: string;
801
+ }>;
802
+ }>;
803
+ }>;
804
+ publishToReact(data: {
805
+ contentId: string;
806
+ connectionId: string;
807
+ section?: string;
808
+ }): Promise<{
809
+ success: boolean;
810
+ contentId?: string;
811
+ slug?: string;
812
+ section?: string;
813
+ webhookSent?: boolean;
814
+ error?: string;
815
+ }>;
816
+ generateLlmsTxt(projectId: string): Promise<{
817
+ success: boolean;
818
+ content?: string;
819
+ metadata?: {
820
+ generatedAt: string;
821
+ model: string;
822
+ hasKnowledgeBase: boolean;
823
+ };
824
+ error?: string;
825
+ }>;
826
+ translateContent(contentId: string, targetLanguage: string): Promise<{
827
+ success: boolean;
828
+ originalLanguage?: string;
829
+ content?: {
830
+ id: string;
831
+ title: string;
832
+ metaTitle: string;
833
+ metaDescription: string;
834
+ excerpt: string;
835
+ slug: string;
836
+ wordCount: number;
837
+ };
838
+ error?: string;
839
+ }>;
840
+ listPromptTopics(projectId: string): Promise<{
841
+ topics: Array<{
842
+ id: string;
843
+ name: string;
844
+ description?: string;
845
+ promptCount: number;
846
+ prompts: Array<{
847
+ _id: string;
848
+ text: string;
849
+ trackedToday?: boolean;
850
+ }>;
851
+ language?: string;
852
+ region?: string;
853
+ schedule?: string;
854
+ enabled: boolean;
855
+ lastExecutedAt?: string;
856
+ }>;
857
+ }>;
858
+ createPromptTopic(data: {
859
+ projectId: string;
860
+ name: string;
861
+ description?: string;
862
+ prompts: string[];
863
+ language?: string;
864
+ region?: string;
865
+ }): Promise<{
866
+ success: boolean;
867
+ topic?: {
868
+ id: string;
869
+ name: string;
870
+ promptCount: number;
871
+ };
872
+ error?: string;
873
+ }>;
874
+ addPromptsToTopic(topicId: string, prompts: string[]): Promise<{
875
+ success: boolean;
876
+ totalPrompts?: number;
877
+ error?: string;
878
+ }>;
879
+ trackPrompt(data: {
880
+ projectId: string;
881
+ promptText: string;
882
+ promptId?: string;
883
+ engines?: string[];
884
+ }): Promise<{
885
+ success: boolean;
886
+ queryId?: string;
887
+ status?: string;
888
+ estimatedTimeSeconds?: number;
889
+ error?: string;
890
+ }>;
891
+ getPromptAnalytics(projectId: string, days?: number): Promise<{
892
+ success: boolean;
893
+ summary?: {
894
+ totalPrompts: number;
895
+ totalQueries: number;
896
+ brandMentions: number;
897
+ avgSentiment: number;
898
+ visibilityRate: number;
899
+ };
900
+ platformBreakdown?: Array<{
901
+ platform: string;
902
+ mentions: number;
903
+ sentiment: number;
904
+ }>;
905
+ topPrompts?: Array<{
906
+ text: string;
907
+ mentions: number;
908
+ sentiment: number;
909
+ }>;
910
+ recentQueries?: Array<{
911
+ query: string;
912
+ status: string;
913
+ brandMentioned?: boolean;
914
+ }>;
915
+ error?: string;
916
+ }>;
917
+ generatePromptSuggestions(data: {
918
+ projectId: string;
919
+ topic?: string;
920
+ count?: number;
921
+ }): Promise<{
922
+ success: boolean;
923
+ suggestions?: Array<{
924
+ text: string;
925
+ searchIntent?: string;
926
+ }>;
927
+ error?: string;
928
+ }>;
929
+ queryAnalytics(params: {
930
+ projectId: string;
931
+ metrics: string[];
932
+ dimensions?: string[];
933
+ timeGrain?: string;
934
+ days?: number;
935
+ filters?: Record<string, any>;
936
+ limit?: number;
937
+ }): Promise<any>;
938
+ listReports(projectId?: string, pinned?: boolean, limit?: number): Promise<any>;
939
+ createReport(data: {
940
+ projectId: string;
941
+ name: string;
942
+ description?: string;
943
+ query: any;
944
+ visualization?: any;
945
+ schedule?: string;
946
+ tags?: string[];
947
+ pinned?: boolean;
948
+ }): Promise<any>;
949
+ getReport(id: string): Promise<any>;
950
+ updateReport(id: string, data: Record<string, any>): Promise<any>;
951
+ deleteReport(id: string): Promise<any>;
952
+ listActionGrids(projectId?: string, limit?: number): Promise<any>;
953
+ createActionGrid(data: {
954
+ projectId: string;
955
+ name: string;
956
+ description?: string;
957
+ items?: any[];
958
+ categories?: string[];
959
+ source?: string;
960
+ tags?: string[];
961
+ }): Promise<any>;
962
+ getActionGrid(id: string): Promise<any>;
963
+ updateActionGrid(id: string, data: Record<string, any>): Promise<any>;
964
+ deleteActionGrid(id: string): Promise<any>;
965
+ addActionGridItems(gridId: string, items: any[]): Promise<any>;
966
+ updateActionGridItem(gridId: string, itemId: string, data: Record<string, any>): Promise<any>;
967
+ isAuthenticated(): boolean;
968
+ logout(): Promise<void>;
969
+ }
970
+ //# sourceMappingURL=api-client.d.ts.map