x-developer 2.4.13 → 2.5.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 (140) hide show
  1. package/.claude-plugin/marketplace.json +60 -0
  2. package/.claude-plugin/plugin.json +45 -0
  3. package/.codex-plugin/plugin.json +61 -0
  4. package/.mcp.json +11 -0
  5. package/README.md +148 -100
  6. package/assets/icon.svg +1 -0
  7. package/commands/post.md +15 -0
  8. package/commands/search.md +16 -0
  9. package/commands/trending.md +17 -0
  10. package/commands/user.md +19 -0
  11. package/context7.json +33 -0
  12. package/logo.png +0 -0
  13. package/openclaw.plugin.json +2 -2
  14. package/package.json +31 -8
  15. package/scripts/check-versions.mjs +381 -0
  16. package/scripts/release-guard/content-policy.mjs +337 -0
  17. package/scripts/release-guard/frontmatter.mjs +148 -0
  18. package/scripts/release-guard/policy.mjs +227 -0
  19. package/server.json +33 -0
  20. package/skills/x-twitter-scraper/SKILL.md +214 -44
  21. package/skills/x-twitter-scraper/metadata.json +30 -6
  22. package/skills/x-twitter-scraper/references/api-endpoints-api-keys.md +31 -0
  23. package/skills/x-twitter-scraper/references/api-endpoints-compose.md +33 -0
  24. package/skills/x-twitter-scraper/references/api-endpoints-credits.md +11 -0
  25. package/skills/x-twitter-scraper/references/api-endpoints-drafts.md +86 -0
  26. package/skills/x-twitter-scraper/references/api-endpoints-draws.md +75 -0
  27. package/skills/x-twitter-scraper/references/api-endpoints-error-codes.md +37 -0
  28. package/skills/x-twitter-scraper/references/api-endpoints-events.md +48 -0
  29. package/skills/x-twitter-scraper/references/api-endpoints-extractions.md +97 -0
  30. package/skills/x-twitter-scraper/references/api-endpoints-monitors.md +74 -0
  31. package/skills/x-twitter-scraper/references/api-endpoints-radar.md +49 -0
  32. package/skills/x-twitter-scraper/references/api-endpoints-support.md +47 -0
  33. package/skills/x-twitter-scraper/references/api-endpoints-trends.md +25 -0
  34. package/skills/x-twitter-scraper/references/api-endpoints-tweet-style-cache.md +155 -0
  35. package/skills/x-twitter-scraper/references/api-endpoints-webhooks.md +74 -0
  36. package/skills/x-twitter-scraper/references/api-endpoints-x-accounts.md +42 -0
  37. package/skills/x-twitter-scraper/references/api-endpoints-x-api.md +206 -0
  38. package/skills/x-twitter-scraper/references/api-endpoints-x-media.md +40 -0
  39. package/skills/x-twitter-scraper/references/api-endpoints-x-write.md +204 -0
  40. package/skills/x-twitter-scraper/references/api-endpoints.md +26 -1421
  41. package/skills/x-twitter-scraper/references/draws.md +2 -2
  42. package/skills/x-twitter-scraper/references/extractions.md +9 -1
  43. package/skills/x-twitter-scraper/references/mcp-setup.md +41 -24
  44. package/skills/x-twitter-scraper/references/mcp-tools.md +36 -27
  45. package/skills/x-twitter-scraper/references/python-examples.md +70 -38
  46. package/skills/x-twitter-scraper/references/security.md +47 -14
  47. package/skills/x-twitter-scraper/references/types-account-identity.md +9 -0
  48. package/skills/x-twitter-scraper/references/types-account.md +26 -0
  49. package/skills/x-twitter-scraper/references/types-api-keys.md +22 -0
  50. package/skills/x-twitter-scraper/references/types-bookmarks-and-timeline.md +46 -0
  51. package/skills/x-twitter-scraper/references/types-credits.md +11 -0
  52. package/skills/x-twitter-scraper/references/types-download-media.md +22 -0
  53. package/skills/x-twitter-scraper/references/types-draws.md +60 -0
  54. package/skills/x-twitter-scraper/references/types-error.md +10 -0
  55. package/skills/x-twitter-scraper/references/types-events.md +43 -0
  56. package/skills/x-twitter-scraper/references/types-extractions.md +106 -0
  57. package/skills/x-twitter-scraper/references/types-mcp-add-webhook.md +14 -0
  58. package/skills/x-twitter-scraper/references/types-mcp-check-follow.md +10 -0
  59. package/skills/x-twitter-scraper/references/types-mcp-compose-tweet.md +31 -0
  60. package/skills/x-twitter-scraper/references/types-mcp-estimate-extraction.md +15 -0
  61. package/skills/x-twitter-scraper/references/types-mcp-get-account.md +26 -0
  62. package/skills/x-twitter-scraper/references/types-mcp-get-draw.md +30 -0
  63. package/skills/x-twitter-scraper/references/types-mcp-get-events.md +19 -0
  64. package/skills/x-twitter-scraper/references/types-mcp-get-trends.md +16 -0
  65. package/skills/x-twitter-scraper/references/types-mcp-get-user-info.md +16 -0
  66. package/skills/x-twitter-scraper/references/types-mcp-list-monitors.md +15 -0
  67. package/skills/x-twitter-scraper/references/types-mcp-lookup-tweet.md +25 -0
  68. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +22 -0
  69. package/skills/x-twitter-scraper/references/types-mcp-refine-tweet.md +13 -0
  70. package/skills/x-twitter-scraper/references/types-mcp-run-draw.md +18 -0
  71. package/skills/x-twitter-scraper/references/types-mcp-run-extraction.md +12 -0
  72. package/skills/x-twitter-scraper/references/types-mcp-score-tweet.md +16 -0
  73. package/skills/x-twitter-scraper/references/types-mcp-search-tweets.md +17 -0
  74. package/skills/x-twitter-scraper/references/types-mcp-test-webhook.md +11 -0
  75. package/skills/x-twitter-scraper/references/types-monitors.md +20 -0
  76. package/skills/x-twitter-scraper/references/types-radar.md +40 -0
  77. package/skills/x-twitter-scraper/references/types-request-bodies.md +30 -0
  78. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +15 -0
  79. package/skills/x-twitter-scraper/references/types-support.md +25 -0
  80. package/skills/x-twitter-scraper/references/types-trends.md +18 -0
  81. package/skills/x-twitter-scraper/references/types-tweet-drafts.md +20 -0
  82. package/skills/x-twitter-scraper/references/types-tweet-style-cache.md +50 -0
  83. package/skills/x-twitter-scraper/references/types-user-activity.md +35 -0
  84. package/skills/x-twitter-scraper/references/types-webhooks.md +38 -0
  85. package/skills/x-twitter-scraper/references/types-x-accounts.md +16 -0
  86. package/skills/x-twitter-scraper/references/types-x-api.md +69 -0
  87. package/skills/x-twitter-scraper/references/types-x-articles.md +21 -0
  88. package/skills/x-twitter-scraper/references/types-x-write.md +39 -0
  89. package/skills/x-twitter-scraper/references/types.md +46 -1038
  90. package/skills/x-twitter-scraper/references/usage.md +50 -0
  91. package/skills/x-twitter-scraper/references/webhooks.md +78 -48
  92. package/skills/x-twitter-scraper/references/workflows.md +50 -40
  93. package/skills/x-twitter-scraper/skill-card.md +76 -0
  94. package/skills/x-twitter-scraper/skillspector-report.md +17 -0
  95. package/skills/xquik-social-research/LICENSE +21 -0
  96. package/skills/xquik-social-research/SKILL.md +77 -0
  97. package/skills.sh.json +77 -0
  98. package/start.sh +2 -0
  99. package/stub-server.mjs +209 -0
  100. package/task-guides/check-mutuals.md +55 -0
  101. package/task-guides/clean-followers.md +71 -0
  102. package/task-guides/export-tweets-csv.md +70 -0
  103. package/task-guides/extract-followers.md +83 -0
  104. package/task-guides/find-bangers.md +61 -0
  105. package/task-guides/find-influencers.md +72 -0
  106. package/task-guides/find-viral-tweets.md +80 -0
  107. package/task-guides/follow-unfollow.md +83 -0
  108. package/task-guides/for-you-feed.md +63 -0
  109. package/task-guides/going-viral.md +68 -0
  110. package/task-guides/grow-followers.md +66 -0
  111. package/task-guides/monitor-accounts.md +81 -0
  112. package/task-guides/optimize-tweets.md +80 -0
  113. package/task-guides/post-tweets.md +108 -0
  114. package/task-guides/run-giveaway.md +90 -0
  115. package/task-guides/search-tweets.md +122 -0
  116. package/task-guides/send-dms.md +92 -0
  117. package/task-guides/top-replies.md +71 -0
  118. package/task-guides/track-competitors.md +73 -0
  119. package/task-guides/track-hashtags.md +86 -0
  120. package/task-guides/track-mentions.md +88 -0
  121. package/task-guides/trending-news.md +68 -0
  122. package/task-guides/tweet-analytics.md +129 -0
  123. package/task-guides/tweet-ideas.md +65 -0
  124. package/task-guides/tweet-replies.md +82 -0
  125. package/task-guides/tweet-style.md +72 -0
  126. package/task-guides/tweet-webhooks.md +84 -0
  127. package/task-guides/update-x-profile.md +75 -0
  128. package/task-guides/user-tweets.md +148 -0
  129. package/task-guides/who-liked.md +68 -0
  130. package/task-guides/who-quoted.md +68 -0
  131. package/task-guides/who-retweeted.md +67 -0
  132. package/task-guides/write-threads.md +72 -0
  133. package/task-guides/write-tweets.md +84 -0
  134. package/task-guides/x-articles.md +84 -0
  135. package/task-guides/x-bookmarks.md +63 -0
  136. package/task-guides/x-communities.md +71 -0
  137. package/task-guides/x-lists.md +70 -0
  138. package/task-guides/x-spaces.md +67 -0
  139. package/task-guides/x-trends.md +74 -0
  140. package/skills/x-twitter-scraper/references/pricing.md +0 -145
@@ -0,0 +1,40 @@
1
+ # Xquik TypeScript Types: Radar
2
+
3
+ ```typescript
4
+
5
+ type RadarSource =
6
+ | "github"
7
+ | "google_trends"
8
+ | "hacker_news"
9
+ | "polymarket"
10
+ | "reddit"
11
+ | "wikipedia";
12
+
13
+ type RadarCategory =
14
+ | "general"
15
+ | "tech"
16
+ | "dev"
17
+ | "science"
18
+ | "culture"
19
+ | "politics"
20
+ | "business"
21
+ | "entertainment";
22
+
23
+ interface RadarItem {
24
+ id: string;
25
+ title: string;
26
+ description?: string;
27
+ url?: string;
28
+ imageUrl?: string;
29
+ source: RadarSource;
30
+ sourceId: string;
31
+ category: RadarCategory;
32
+ region: string;
33
+ language: string;
34
+ score: number;
35
+ metadata: Record<string, unknown>;
36
+ publishedAt: string;
37
+ createdAt: string;
38
+ }
39
+
40
+ ```
@@ -0,0 +1,30 @@
1
+ # Xquik TypeScript Types: Request Bodies
2
+
3
+ ```typescript
4
+
5
+ interface CreateMonitorRequest {
6
+ username: string;
7
+ eventTypes: EventType[];
8
+ }
9
+
10
+ interface UpdateMonitorRequest {
11
+ eventTypes?: EventType[];
12
+ isActive?: boolean;
13
+ }
14
+
15
+ interface CreateWebhookRequest {
16
+ url: string;
17
+ eventTypes: EventType[];
18
+ }
19
+
20
+ interface UpdateWebhookRequest {
21
+ url?: string;
22
+ eventTypes?: EventType[];
23
+ isActive?: boolean;
24
+ }
25
+
26
+ interface CreateApiKeyRequest {
27
+ name?: string;
28
+ }
29
+
30
+ ```
@@ -0,0 +1,15 @@
1
+ # Xquik TypeScript Types: REST API vs MCP Field Naming
2
+
3
+ The REST API and MCP server use different field names for the same data. Map these when switching between interfaces:
4
+
5
+ | Type | REST API Field | MCP Field |
6
+ |------|---------------|-----------|
7
+ | **Monitor** | `username` | `xUsername` |
8
+ | **XquikEvent** | `type` | `eventType` |
9
+ | **XquikEvent** | `data` | `eventData` |
10
+ | **XquikEvent** | `monitorId` | `monitoredAccountId` |
11
+ | **UserProfile** | `followers` | `followersCount` |
12
+ | **UserProfile** | `following` | `followingCount` |
13
+ | **FollowerCheck** | `isFollowing` / `isFollowedBy` | `following` / `followedBy` |
14
+
15
+ **MCP `get-user-info` returns a subset** of the full `UserProfile` type. Fields not returned by MCP: `verified`, `location`, `createdAt`, `statusesCount`. Use the REST API `GET /x/users/{id}` for the complete profile.
@@ -0,0 +1,25 @@
1
+ # Xquik TypeScript Types: Support
2
+
3
+ ```typescript
4
+
5
+ interface SupportTicket {
6
+ id: string;
7
+ subject: string;
8
+ status: string;
9
+ createdAt: string;
10
+ updatedAt: string;
11
+ }
12
+
13
+ interface SupportMessage {
14
+ id: string;
15
+ body: string;
16
+ sender: string;
17
+ createdAt: string;
18
+ }
19
+
20
+ interface CreateTicketRequest {
21
+ subject: string;
22
+ body: string;
23
+ }
24
+
25
+ ```
@@ -0,0 +1,18 @@
1
+ # Xquik TypeScript Types: Trends
2
+
3
+ ```typescript
4
+
5
+ interface Trend {
6
+ name: string;
7
+ description?: string;
8
+ rank?: number;
9
+ query?: string;
10
+ }
11
+
12
+ interface TrendList {
13
+ trends: Trend[];
14
+ total: number;
15
+ woeid: number;
16
+ }
17
+
18
+ ```
@@ -0,0 +1,20 @@
1
+ # Xquik TypeScript Types: Tweet Drafts
2
+
3
+ ```typescript
4
+
5
+ interface TweetDraft {
6
+ id: string;
7
+ text: string;
8
+ topic?: string;
9
+ goal?: "engagement" | "followers" | "authority" | "conversation";
10
+ createdAt: string; // ISO 8601
11
+ updatedAt: string; // ISO 8601
12
+ }
13
+
14
+ interface TweetDraftList {
15
+ drafts: TweetDraft[];
16
+ afterCursor: string | null;
17
+ hasMore: boolean;
18
+ }
19
+
20
+ ```
@@ -0,0 +1,50 @@
1
+ # Xquik TypeScript Types: Tweet Style Cache
2
+
3
+ ```typescript
4
+
5
+ interface TweetStyleCache {
6
+ xUsername: string;
7
+ tweetCount: number;
8
+ isOwnAccount: boolean;
9
+ fetchedAt: string; // ISO 8601
10
+ tweets: CachedTweet[];
11
+ }
12
+
13
+ interface CachedTweet {
14
+ id: string;
15
+ text: string;
16
+ authorUsername: string;
17
+ createdAt: string; // ISO 8601
18
+ media?: TweetMediaItem[];
19
+ }
20
+
21
+ interface TweetStyleSummary {
22
+ xUsername: string;
23
+ tweetCount: number;
24
+ isOwnAccount: boolean;
25
+ fetchedAt: string;
26
+ }
27
+
28
+ interface StyleComparison {
29
+ style1: TweetStyleCache;
30
+ style2: TweetStyleCache;
31
+ }
32
+
33
+ interface StylePerformance {
34
+ xUsername: string;
35
+ tweetCount: number;
36
+ tweets: PerformanceTweet[];
37
+ }
38
+
39
+ interface PerformanceTweet {
40
+ id: string;
41
+ text: string;
42
+ likeCount: number;
43
+ retweetCount: number;
44
+ replyCount: number;
45
+ quoteCount: number;
46
+ viewCount: number;
47
+ bookmarkCount: number;
48
+ }
49
+
50
+ ```
@@ -0,0 +1,35 @@
1
+ # Xquik TypeScript Types: User Activity
2
+
3
+ ```typescript
4
+
5
+ interface UserTweetsResponse {
6
+ tweets: Tweet[];
7
+ has_next_page: boolean;
8
+ next_cursor?: string;
9
+ }
10
+
11
+ interface UserLikesResponse {
12
+ tweets: Tweet[];
13
+ has_next_page: boolean;
14
+ next_cursor?: string;
15
+ }
16
+
17
+ interface UserMediaResponse {
18
+ tweets: Tweet[];
19
+ has_next_page: boolean;
20
+ next_cursor?: string;
21
+ }
22
+
23
+ interface TweetFavoritersResponse {
24
+ users: UserProfile[];
25
+ has_next_page: boolean;
26
+ next_cursor?: string;
27
+ }
28
+
29
+ interface FollowersYouKnowResponse {
30
+ users: UserProfile[];
31
+ has_next_page: boolean;
32
+ next_cursor?: string;
33
+ }
34
+
35
+ ```
@@ -0,0 +1,38 @@
1
+ # Xquik TypeScript Types: Webhooks
2
+
3
+ ```typescript
4
+
5
+ interface WebhookCreated {
6
+ id: string;
7
+ url: string;
8
+ eventTypes: EventType[];
9
+ secret: string;
10
+ createdAt: string;
11
+ }
12
+
13
+ interface Webhook {
14
+ id: string;
15
+ url: string;
16
+ eventTypes: EventType[];
17
+ isActive: boolean;
18
+ createdAt: string;
19
+ }
20
+
21
+ interface Delivery {
22
+ id: string;
23
+ streamEventId: string;
24
+ status: "pending" | "delivered" | "failed" | "exhausted";
25
+ attempts: number;
26
+ lastStatusCode?: number;
27
+ lastError?: string;
28
+ createdAt: string;
29
+ deliveredAt?: string;
30
+ }
31
+
32
+ interface WebhookPayload {
33
+ eventType: EventType;
34
+ username: string;
35
+ data: EventData;
36
+ }
37
+
38
+ ```
@@ -0,0 +1,16 @@
1
+ # Xquik TypeScript Types: X Accounts (Connected)
2
+
3
+ ```typescript
4
+
5
+ interface ConnectedXAccount {
6
+ id: string; // Unique account ID
7
+ username: string; // X username
8
+ displayName?: string; // Display name on X
9
+ isActive: boolean; // Whether the connection is active
10
+ createdAt: string; // ISO 8601 timestamp
11
+ }
12
+
13
+ // Connecting an X account is done by the user in the Xquik dashboard,
14
+ // not through this skill. The skill never handles X login material.
15
+
16
+ ```
@@ -0,0 +1,69 @@
1
+ # Xquik TypeScript Types: X API
2
+
3
+ ```typescript
4
+
5
+ interface TweetMediaItem {
6
+ mediaUrl: string;
7
+ type: string; // "photo" | "video" | "animated_gif"
8
+ url: string;
9
+ }
10
+
11
+ interface Tweet {
12
+ id: string;
13
+ text: string;
14
+ createdAt?: string;
15
+ retweetCount: number;
16
+ replyCount: number;
17
+ likeCount: number;
18
+ quoteCount: number;
19
+ viewCount: number;
20
+ bookmarkCount: number;
21
+ media?: TweetMediaItem[];
22
+ }
23
+
24
+ interface TweetAuthor {
25
+ id: string;
26
+ username: string;
27
+ followers: number;
28
+ verified: boolean;
29
+ profilePicture?: string;
30
+ }
31
+
32
+ interface TweetSearchResult {
33
+ id: string;
34
+ text: string;
35
+ createdAt: string;
36
+ likeCount: number; // Omitted if unavailable
37
+ retweetCount: number; // Omitted if unavailable
38
+ replyCount: number; // Omitted if unavailable
39
+ media?: TweetMediaItem[];
40
+ author: {
41
+ id: string;
42
+ username: string;
43
+ name: string;
44
+ verified: boolean;
45
+ };
46
+ }
47
+
48
+ interface UserProfile {
49
+ id: string;
50
+ username: string;
51
+ name: string;
52
+ description?: string;
53
+ followers?: number;
54
+ following?: number;
55
+ verified?: boolean;
56
+ profilePicture?: string;
57
+ location?: string;
58
+ createdAt?: string;
59
+ statusesCount?: number;
60
+ }
61
+
62
+ interface FollowerCheck {
63
+ sourceUsername: string;
64
+ targetUsername: string;
65
+ isFollowing: boolean;
66
+ isFollowedBy: boolean;
67
+ }
68
+
69
+ ```
@@ -0,0 +1,21 @@
1
+ # Xquik TypeScript Types: X Articles
2
+
3
+ ```typescript
4
+
5
+ interface Article {
6
+ title: string;
7
+ coverImage?: string;
8
+ bodyHtml: string;
9
+ likeCount: number;
10
+ retweetCount: number;
11
+ replyCount: number;
12
+ viewCount: number;
13
+ bookmarkCount: number;
14
+ author: {
15
+ id: string;
16
+ username: string;
17
+ name: string;
18
+ };
19
+ }
20
+
21
+ ```
@@ -0,0 +1,39 @@
1
+ # Xquik TypeScript Types: X Write
2
+
3
+ ```typescript
4
+
5
+ interface CreateTweetRequest {
6
+ account: string; // Connected X username or account ID
7
+ text?: string; // Tweet text (required unless media is provided)
8
+ reply_to_tweet_id?: string; // Tweet ID to reply to
9
+ attachment_url?: string; // URL to attach as card
10
+ community_id?: string; // Community ID to post into
11
+ is_note_tweet?: boolean; // Long-form note tweet (up to 25,000 chars)
12
+ media?: string[]; // Public image URLs, such as mediaUrl from POST /x/media
13
+ }
14
+
15
+ interface CreateTweetResponse {
16
+ tweetId: string; // ID of the newly created tweet
17
+ success: boolean; // Always true on success
18
+ }
19
+
20
+ interface WriteActionRequest {
21
+ account: string; // Connected X username or account ID
22
+ }
23
+
24
+ interface SendDmRequest {
25
+ account: string; // Connected X username or account ID
26
+ text: string; // Message text
27
+ media_ids?: string[]; // Media IDs to attach
28
+ reply_to_message_id?: string; // Message ID to reply to
29
+ }
30
+
31
+ interface UpdateProfileRequest {
32
+ account: string; // Connected X username or account ID
33
+ name?: string; // Display name
34
+ description?: string; // Bio
35
+ location?: string; // Location
36
+ url?: string; // Website URL
37
+ }
38
+
39
+ ```