x-developer 2.6.7 → 2.7.1

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 (161) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +2 -27
  3. package/.codex-plugin/plugin.json +4 -28
  4. package/README.de.md +505 -0
  5. package/README.es.md +504 -0
  6. package/README.fr.md +507 -0
  7. package/README.it.md +499 -0
  8. package/README.ja.md +493 -0
  9. package/README.ko.md +494 -0
  10. package/README.md +486 -123
  11. package/README.tr.md +502 -0
  12. package/README.zh-CN.md +484 -0
  13. package/assets/logo-400.png +0 -0
  14. package/commands/post.md +3 -3
  15. package/commands/search.md +1 -1
  16. package/commands/trending.md +1 -1
  17. package/commands/user.md +1 -1
  18. package/context7.json +6 -12
  19. package/docker-mcp-registry/xquik/readme.md +1 -0
  20. package/docker-mcp-registry/xquik/server.yaml +23 -0
  21. package/docker-mcp-registry/xquik/tools.json +1 -0
  22. package/glama.json +4 -0
  23. package/mcp.json +9 -0
  24. package/openclaw.plugin.json +2 -2
  25. package/package.json +24 -20
  26. package/plugin.json +22 -0
  27. package/registry.json +60 -0
  28. package/server.json +2 -2
  29. package/skills/x-twitter-scraper/LICENSE +21 -0
  30. package/skills/x-twitter-scraper/SKILL.md +175 -457
  31. package/skills/x-twitter-scraper/metadata.json +19 -9
  32. package/skills/x-twitter-scraper/references/compare-faq.md +101 -0
  33. package/skills/x-twitter-scraper/references/extractions.md +65 -290
  34. package/skills/x-twitter-scraper/references/mcp.md +24 -0
  35. package/skills/x-twitter-scraper/references/monitors-webhooks.md +167 -0
  36. package/skills/x-twitter-scraper/references/reads.md +416 -0
  37. package/skills/x-twitter-scraper/references/writes.md +111 -0
  38. package/skills/xquik-mcp/SKILL.md +75 -0
  39. package/skills/xquik-mcp/references/mcp-setup.md +255 -0
  40. package/skills/xquik-social-research/SKILL.md +61 -74
  41. package/skills.sh.json +6 -68
  42. package/start.sh +2 -2
  43. package/stub-server.mjs +37 -86
  44. package/task-guides/check-mutuals.md +3 -3
  45. package/task-guides/clean-followers.md +4 -4
  46. package/task-guides/export-tweets-csv.md +7 -7
  47. package/task-guides/extract-followers.md +10 -10
  48. package/task-guides/find-bangers.md +2 -2
  49. package/task-guides/find-influencers.md +4 -4
  50. package/task-guides/find-viral-tweets.md +9 -9
  51. package/task-guides/follow-unfollow.md +5 -5
  52. package/task-guides/for-you-feed.md +4 -4
  53. package/task-guides/going-viral.md +6 -6
  54. package/task-guides/grow-followers.md +4 -4
  55. package/task-guides/monitor-accounts.md +5 -5
  56. package/task-guides/optimize-tweets.md +3 -3
  57. package/task-guides/post-tweets.md +13 -13
  58. package/task-guides/run-giveaway.md +5 -5
  59. package/task-guides/search-tweets.md +7 -7
  60. package/task-guides/send-dms.md +11 -11
  61. package/task-guides/top-replies.md +7 -7
  62. package/task-guides/track-competitors.md +10 -10
  63. package/task-guides/track-hashtags.md +11 -11
  64. package/task-guides/track-mentions.md +7 -7
  65. package/task-guides/trending-news.md +4 -4
  66. package/task-guides/tweet-analytics.md +12 -12
  67. package/task-guides/tweet-ideas.md +2 -2
  68. package/task-guides/tweet-replies.md +8 -8
  69. package/task-guides/tweet-style.md +4 -4
  70. package/task-guides/tweet-webhooks.md +7 -7
  71. package/task-guides/update-x-profile.md +5 -5
  72. package/task-guides/user-tweets.md +10 -10
  73. package/task-guides/who-liked.md +4 -4
  74. package/task-guides/who-quoted.md +4 -4
  75. package/task-guides/who-retweeted.md +4 -4
  76. package/task-guides/write-threads.md +6 -6
  77. package/task-guides/write-tweets.md +8 -8
  78. package/task-guides/x-articles.md +3 -3
  79. package/task-guides/x-bookmarks.md +4 -4
  80. package/task-guides/x-communities.md +4 -4
  81. package/task-guides/x-lists.md +4 -4
  82. package/task-guides/x-spaces.md +4 -4
  83. package/task-guides/x-trends.md +6 -6
  84. package/x-twitter-scraper.json +10 -0
  85. package/CHANGELOG.md +0 -94
  86. package/scripts/check-reproducible.mjs +0 -48
  87. package/scripts/check-versions.mjs +0 -24
  88. package/scripts/release-guard/content-policy.mjs +0 -410
  89. package/scripts/release-guard/context.mjs +0 -61
  90. package/scripts/release-guard/frontmatter.mjs +0 -151
  91. package/scripts/release-guard/policy-checks.mjs +0 -134
  92. package/scripts/release-guard/policy.mjs +0 -226
  93. package/scripts/release-guard/repository-checks.mjs +0 -256
  94. package/skills/x-twitter-scraper/references/api-endpoints-api-keys.md +0 -14
  95. package/skills/x-twitter-scraper/references/api-endpoints-compose.md +0 -33
  96. package/skills/x-twitter-scraper/references/api-endpoints-credits.md +0 -11
  97. package/skills/x-twitter-scraper/references/api-endpoints-drafts.md +0 -105
  98. package/skills/x-twitter-scraper/references/api-endpoints-draws.md +0 -101
  99. package/skills/x-twitter-scraper/references/api-endpoints-error-codes.md +0 -67
  100. package/skills/x-twitter-scraper/references/api-endpoints-events.md +0 -50
  101. package/skills/x-twitter-scraper/references/api-endpoints-extractions.md +0 -113
  102. package/skills/x-twitter-scraper/references/api-endpoints-monitors.md +0 -111
  103. package/skills/x-twitter-scraper/references/api-endpoints-radar.md +0 -50
  104. package/skills/x-twitter-scraper/references/api-endpoints-support.md +0 -53
  105. package/skills/x-twitter-scraper/references/api-endpoints-trends.md +0 -48
  106. package/skills/x-twitter-scraper/references/api-endpoints-tweet-style-cache.md +0 -186
  107. package/skills/x-twitter-scraper/references/api-endpoints-webhooks.md +0 -120
  108. package/skills/x-twitter-scraper/references/api-endpoints-x-accounts.md +0 -54
  109. package/skills/x-twitter-scraper/references/api-endpoints-x-api.md +0 -267
  110. package/skills/x-twitter-scraper/references/api-endpoints-x-media.md +0 -50
  111. package/skills/x-twitter-scraper/references/api-endpoints-x-write.md +0 -270
  112. package/skills/x-twitter-scraper/references/api-endpoints.md +0 -30
  113. package/skills/x-twitter-scraper/references/automate-twitter-giveaways.md +0 -130
  114. package/skills/x-twitter-scraper/references/best-x-api-alternative.md +0 -198
  115. package/skills/x-twitter-scraper/references/compare-twitter-apis.md +0 -151
  116. package/skills/x-twitter-scraper/references/draws.md +0 -57
  117. package/skills/x-twitter-scraper/references/export-twitter-followers.md +0 -127
  118. package/skills/x-twitter-scraper/references/extract-x-community-data.md +0 -121
  119. package/skills/x-twitter-scraper/references/mcp-setup.md +0 -331
  120. package/skills/x-twitter-scraper/references/mcp-tools.md +0 -183
  121. package/skills/x-twitter-scraper/references/monitor-twitter-webhooks.md +0 -121
  122. package/skills/x-twitter-scraper/references/python-examples.md +0 -201
  123. package/skills/x-twitter-scraper/references/reliable-twitter-data-api-2026.md +0 -239
  124. package/skills/x-twitter-scraper/references/scrape-export-twitter-data.md +0 -173
  125. package/skills/x-twitter-scraper/references/security.md +0 -111
  126. package/skills/x-twitter-scraper/references/track-twitter-keywords-mentions.md +0 -148
  127. package/skills/x-twitter-scraper/references/twitter-api-alternative-faq.md +0 -128
  128. package/skills/x-twitter-scraper/references/twitter-api-without-x-account.md +0 -110
  129. package/skills/x-twitter-scraper/references/twitter-data-pipeline.md +0 -136
  130. package/skills/x-twitter-scraper/references/twitter-scraper-api-guide.md +0 -229
  131. package/skills/x-twitter-scraper/references/types-account-identity.md +0 -9
  132. package/skills/x-twitter-scraper/references/types-account.md +0 -26
  133. package/skills/x-twitter-scraper/references/types-api-keys.md +0 -22
  134. package/skills/x-twitter-scraper/references/types-bookmarks-and-timeline.md +0 -46
  135. package/skills/x-twitter-scraper/references/types-credits.md +0 -11
  136. package/skills/x-twitter-scraper/references/types-download-media.md +0 -22
  137. package/skills/x-twitter-scraper/references/types-draws.md +0 -60
  138. package/skills/x-twitter-scraper/references/types-error.md +0 -29
  139. package/skills/x-twitter-scraper/references/types-events.md +0 -23
  140. package/skills/x-twitter-scraper/references/types-extractions.md +0 -136
  141. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +0 -13
  142. package/skills/x-twitter-scraper/references/types-monitors.md +0 -49
  143. package/skills/x-twitter-scraper/references/types-radar.md +0 -47
  144. package/skills/x-twitter-scraper/references/types-request-bodies.md +0 -30
  145. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +0 -11
  146. package/skills/x-twitter-scraper/references/types-support.md +0 -46
  147. package/skills/x-twitter-scraper/references/types-trends.md +0 -21
  148. package/skills/x-twitter-scraper/references/types-tweet-drafts.md +0 -20
  149. package/skills/x-twitter-scraper/references/types-tweet-style-cache.md +0 -50
  150. package/skills/x-twitter-scraper/references/types-user-activity.md +0 -35
  151. package/skills/x-twitter-scraper/references/types-webhooks.md +0 -46
  152. package/skills/x-twitter-scraper/references/types-x-accounts.md +0 -16
  153. package/skills/x-twitter-scraper/references/types-x-api.md +0 -144
  154. package/skills/x-twitter-scraper/references/types-x-articles.md +0 -36
  155. package/skills/x-twitter-scraper/references/types-x-write.md +0 -78
  156. package/skills/x-twitter-scraper/references/types.md +0 -31
  157. package/skills/x-twitter-scraper/references/usage.md +0 -50
  158. package/skills/x-twitter-scraper/references/webhooks.md +0 -321
  159. package/skills/x-twitter-scraper/references/workflows.md +0 -215
  160. package/skills/x-twitter-scraper/skill-card.md +0 -84
  161. package/skills/x-twitter-scraper/skillspector-report.md +0 -20
@@ -1,47 +0,0 @@
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
- | "trustmrr"
12
- | "wikipedia";
13
-
14
- type RadarCategory =
15
- | "general"
16
- | "tech"
17
- | "dev"
18
- | "science"
19
- | "culture"
20
- | "politics"
21
- | "business"
22
- | "entertainment";
23
-
24
- interface RadarItem {
25
- id: string;
26
- title: string;
27
- description?: string;
28
- url?: string;
29
- imageUrl?: string;
30
- source: RadarSource;
31
- sourceId: string;
32
- category: RadarCategory;
33
- region: string;
34
- language: string;
35
- score: number;
36
- metadata: Record<string, unknown>;
37
- publishedAt: string;
38
- createdAt: string;
39
- }
40
-
41
- interface RadarPage {
42
- items: RadarItem[];
43
- hasMore: boolean;
44
- nextCursor?: string;
45
- }
46
-
47
- ```
@@ -1,30 +0,0 @@
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
- ```
@@ -1,11 +0,0 @@
1
- # Xquik REST API and MCP field naming
2
-
3
- Hosted MCP exposes `explore` and `xquik`. It no longer exposes
4
- operation-named tools with separate legacy response models.
5
-
6
- Use `explore` to inspect the current operation. Then use its OpenAPI response
7
- schema. Do not map fields through old names such as `eventData`,
8
- `monitoredAccountId`, `following`, or `followedBy`.
9
-
10
- Preserve every returned ID and cursor exactly. If a client transforms field
11
- case, follow that client's serializer documentation.
@@ -1,46 +0,0 @@
1
- # Xquik TypeScript types: support
2
-
3
- ```typescript
4
- type SupportTicketStatus = "open" | "in_progress" | "resolved" | "closed";
5
- type SupportAttachmentStatus = "pending" | "ready" | "failed";
6
-
7
- interface SupportAttachmentReceipt {
8
- publicId: string;
9
- status: SupportAttachmentStatus;
10
- }
11
-
12
- interface SupportAttachment extends SupportAttachmentReceipt {
13
- filename: string;
14
- contentType: "image/jpeg" | "image/png" | "image/gif" | "image/webp"
15
- | "video/mp4" | "video/quicktime" | "video/webm";
16
- kind: "image" | "video";
17
- sizeBytes: number;
18
- url: string;
19
- }
20
-
21
- interface SupportMessage {
22
- body: string;
23
- sender: "user" | "support" | "system";
24
- createdAt: string;
25
- attachments: SupportAttachment[];
26
- }
27
-
28
- interface SupportTicket {
29
- publicId: string;
30
- subject: string;
31
- status: SupportTicketStatus;
32
- createdAt: string;
33
- updatedAt: string;
34
- messageCount?: number;
35
- messages?: SupportMessage[];
36
- }
37
-
38
- interface SupportMutationResponse {
39
- publicId: string;
40
- attachments: SupportAttachmentReceipt[];
41
- }
42
-
43
- type SupportContent = { body: string } | { body?: string; attachments: Blob[] };
44
- type CreateTicketRequest = SupportContent & { subject: string };
45
- type ReplyToTicketRequest = SupportContent;
46
- ```
@@ -1,21 +0,0 @@
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
- promotedContent?: string | null;
11
- tweetVolume?: number | null;
12
- url?: string;
13
- }
14
-
15
- interface TrendList {
16
- trends: Trend[];
17
- total: number;
18
- woeid: number;
19
- }
20
-
21
- ```
@@ -1,20 +0,0 @@
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
- ```
@@ -1,50 +0,0 @@
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
- ```
@@ -1,35 +0,0 @@
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
- ```
@@ -1,46 +0,0 @@
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
- consecutiveFailures: number;
19
- deliveryStatus: "active" | "paused" | "needs_attention";
20
- failureHardCap: number;
21
- createdAt: string;
22
- }
23
-
24
- interface Delivery {
25
- id: string;
26
- streamEventId: string;
27
- status: "pending" | "delivered" | "failed" | "exhausted";
28
- attempts: number;
29
- lastStatusCode?: number;
30
- lastError?: string;
31
- createdAt: string;
32
- deliveredAt?: string;
33
- }
34
-
35
- interface WebhookPayload {
36
- schemaVersion: 1;
37
- streamEventId: string;
38
- deliveryId: string;
39
- eventType: EventType;
40
- username?: string;
41
- query?: string;
42
- occurredAt: string;
43
- data: Record<string, unknown>;
44
- }
45
-
46
- ```
@@ -1,16 +0,0 @@
1
- # Xquik TypeScript types: connected X accounts
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
- // Users connect X accounts in the Xquik dashboard.
14
- // This Skill never handles X login material.
15
-
16
- ```
@@ -1,144 +0,0 @@
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
- adultContent?: boolean; allowDownload?: boolean;
10
- altText?: string; availabilityReason?: string;
11
- aspectRatio?: number[]; availabilityStatus?: string;
12
- description?: string; displayUrl?: string;
13
- durationMillis?: number; expandedUrl?: string;
14
- embeddable?: boolean;
15
- faceRects?: Record<string, unknown>; focusRects?: Array<Record<string, number>>;
16
- grokPostId?: string; height?: number; id?: string;
17
- indices?: number[];
18
- mediaKey?: string; monetizable?: boolean;
19
- sizes?: Record<string, unknown>;
20
- sourceStatusId?: string; sourceUserId?: string;
21
- tags?: Array<Record<string, string>>;
22
- title?: string;
23
- videoVariants?: Array<Record<string, unknown>>;
24
- watchNowUrl?: string; visitSiteUrl?: string;
25
- width?: number;
26
- }
27
-
28
- interface Tweet {
29
- id: string;
30
- text: string;
31
- author?: TweetAuthor;
32
- createdAt?: string;
33
- retweetCount: number;
34
- replyCount: number;
35
- likeCount: number;
36
- quoteCount: number;
37
- viewCount: number;
38
- bookmarkCount: number;
39
- media?: TweetMediaItem[];
40
- article?: Record<string, unknown>;
41
- card?: Record<string, unknown>;
42
- communityNote?: Record<string, unknown>;
43
- edit?: Record<string, unknown>;
44
- isTranslatable?: boolean;
45
- noteTweet?: Record<string, unknown>;
46
- place?: Record<string, unknown>;
47
- possiblySensitive?: boolean;
48
- previousCounts?: Record<string, number>;
49
- viewState?: string;
50
- }
51
-
52
- interface ProfileRichness {
53
- affiliatesHighlightedLabel?: Record<string, unknown>;
54
- businessAccountAffiliatesCount?: number; creatorSubscriptionsCount?: number;
55
- hasGraduatedAccess?: boolean;
56
- hasHiddenSubscriptionsOnProfile?: boolean;
57
- highlightsInfo?: Record<string, unknown>; identityVerification?: Record<string, unknown>;
58
- isProfileTranslatable?: boolean;
59
- parodyCommentaryFanLabel?: string;
60
- profileDescriptionLanguage?: string; profileImageShape?: string;
61
- profileInterstitialType?: string; profileSortEnabled?: boolean;
62
- profileTranslatorType?: string;
63
- superFollowEligible?: boolean;
64
- withheldScope?: string; professional?: Record<string, unknown>;
65
- grokTranslatedBio?: Record<string, unknown>;
66
- superFollowsUserProfileActive?: boolean;
67
- tipJar?: Record<string, unknown>;
68
- }
69
-
70
- interface TweetAuthor extends ProfileRichness {
71
- id: string;
72
- username: string;
73
- name: string;
74
- followers: number;
75
- verified: boolean;
76
- profilePicture?: string;
77
- }
78
-
79
- interface TweetSearchResult {
80
- id: string;
81
- text: string;
82
- createdAt?: string;
83
- likeCount: number; // Zero can mean X did not report the count
84
- retweetCount: number; // Zero can mean X did not report the count
85
- replyCount: number; // Zero can mean X did not report the count
86
- media?: TweetMediaItem[];
87
- author?: UserProfile;
88
- }
89
-
90
- interface UserProfile extends ProfileRichness {
91
- id: string; username: string; name: string;
92
- description?: string;
93
- followers?: number; following?: number; verified?: boolean;
94
- profilePicture?: string; location?: string; createdAt?: string;
95
- statusesCount?: number;
96
- }
97
-
98
- interface FollowerCheck {
99
- sourceUsername: string;
100
- targetUsername: string;
101
- isFollowing: boolean;
102
- isFollowedBy: boolean;
103
- }
104
-
105
- interface ReplyCoverageDiagnostic {
106
- complete: boolean;
107
- reportedReplyCount: number;
108
- targetDirectReplies: number;
109
- uniqueDirectReplies: number;
110
- coveragePercentage: number;
111
- nestedReplyCount: number;
112
- pagesAttempted: number;
113
- strategiesAttempted: Array<Record<string, unknown>>;
114
- duplicateCount: number;
115
- cursorFailures: number;
116
- repeatedCursorCount: number;
117
- emptyFalseProgressPages: number;
118
- malformedCount: number;
119
- unrelatedCount: number;
120
- missingResponseModulesOrFields: string[];
121
- recommendedFallback: string;
122
- richness: Record<string, number>;
123
- responseTruncated: boolean;
124
- }
125
-
126
- interface TweetReplies {
127
- tweets: Tweet[];
128
- nested_replies: Tweet[];
129
- has_next_page: boolean;
130
- next_cursor: string;
131
- diagnostic?: ReplyCoverageDiagnostic;
132
- }
133
-
134
- ```
135
-
136
- Optional fields appear only when X supplies them. Never infer missing values.
137
- Fetching-account action and permission state stays private. Follow-relationship
138
- state appears only through an explicitly requested
139
- `GET /api/v1/x/followers/check` lookup.
140
-
141
- Use `mode=complete&limit=25000` for bounded maximum-coverage reply collection.
142
- Count direct replies only when `inReplyToId` equals the root tweet ID. Keep
143
- `nested_replies` separate. On `424 replies_incomplete`, retain safe partial rows
144
- and follow `diagnostic.recommendedFallback`.
@@ -1,36 +0,0 @@
1
- # Xquik TypeScript types: X Articles
2
-
3
- ```typescript
4
- interface ArticleResponse {
5
- article: {
6
- title?: string;
7
- previewText?: string;
8
- coverImageUrl?: string;
9
- bodyText?: string;
10
- contents?: Array<{
11
- type?: string;
12
- text?: string;
13
- url?: string;
14
- previewUrl?: string;
15
- width?: number;
16
- height?: number;
17
- inlineStyleRanges?: Array<{
18
- offset?: number;
19
- length?: number;
20
- style?: string;
21
- }>;
22
- }>;
23
- createdAt?: string;
24
- likeCount?: number;
25
- replyCount?: number;
26
- quoteCount?: number;
27
- viewCount?: number;
28
- };
29
- author?: {
30
- id: string;
31
- username: string;
32
- name: string;
33
- profilePicture?: string;
34
- };
35
- }
36
- ```
@@ -1,78 +0,0 @@
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; // Required tweet text unless media is provided.
8
- reply_to_tweet_id?: string; // Tweet ID to reply to
9
- community_id?: string; // Community ID to post into
10
- is_note_tweet?: boolean; // Long-form note tweet up to 25,000 characters.
11
- media?: string[]; // Up to 4 images or exactly 1 MP4 URL
12
- }
13
-
14
- type XWriteStatus =
15
- | "accepted"
16
- | "dispatching"
17
- | "pending_confirmation"
18
- | "success"
19
- | "failed"
20
- | "expired";
21
-
22
- interface XWriteAction {
23
- object: "x_write_action";
24
- id: string;
25
- writeActionId: string;
26
- action: string;
27
- status: XWriteStatus;
28
- terminal: boolean;
29
- retryable: boolean;
30
- safeToRetry: boolean;
31
- statusUrl: string;
32
- pollAfterMs: number | null;
33
- charged: boolean;
34
- chargedCredits: string;
35
- billing: {
36
- status: "not_charged" | "pending" | "charged" | "charge_failed" | "refunded";
37
- charged: boolean;
38
- plannedCredits: string;
39
- chargedCredits: string;
40
- };
41
- request: { hash: string | null; payload: Record<string, unknown> | null };
42
- account: { id: string; username: string } | null;
43
- target: { type: "tweet" | "user" | "community"; id: string } | null;
44
- targetId: string | null;
45
- result: {
46
- type: "tweet" | "direct_message" | "media" | "community" | "state_change";
47
- id?: string;
48
- state?: string;
49
- } | null;
50
- nextAction: {
51
- type: "poll" | "retry" | "verify_result" | "fix_request";
52
- url?: string;
53
- afterMs?: number;
54
- requiresNewIdempotencyKey?: boolean;
55
- } | null;
56
- sendDispatched: boolean;
57
- success: boolean;
58
- }
59
-
60
- interface WriteActionRequest {
61
- account: string; // Connected X username or account ID
62
- }
63
-
64
- interface SendDmRequest {
65
- account: string; // Connected X username or account ID
66
- text: string; // Message text
67
- media_ids?: [string]; // Exactly 1 media ID when present
68
- }
69
-
70
- interface UpdateProfileRequest {
71
- account: string; // Connected X username or account ID
72
- name?: string; // Display name
73
- description?: string; // Bio
74
- location?: string; // Location
75
- url?: string; // Website URL
76
- }
77
-
78
- ```
@@ -1,31 +0,0 @@
1
- # Xquik TypeScript type definitions
2
-
3
- Use this index to load only the TypeScript types needed for the task.
4
-
5
- | Need | Reference |
6
- |---|---|
7
- | Account | [account.md](types-account.md) |
8
- | Credits | [credits.md](types-credits.md) |
9
- | API keys | [api-keys.md](types-api-keys.md) |
10
- | Monitors | [monitors.md](types-monitors.md) |
11
- | Events | [events.md](types-events.md) |
12
- | Webhooks | [webhooks.md](types-webhooks.md) |
13
- | Draws | [draws.md](types-draws.md) |
14
- | Extractions | [extractions.md](types-extractions.md) |
15
- | X API | [x-api.md](types-x-api.md) |
16
- | User activity | [user-activity.md](types-user-activity.md) |
17
- | Bookmarks and timeline | [bookmarks-and-timeline.md](types-bookmarks-and-timeline.md) |
18
- | X articles | [x-articles.md](types-x-articles.md) |
19
- | Radar | [radar.md](types-radar.md) |
20
- | Download media | [download-media.md](types-download-media.md) |
21
- | Trends | [trends.md](types-trends.md) |
22
- | Support | [support.md](types-support.md) |
23
- | Error | [error.md](types-error.md) |
24
- | Request bodies | [request-bodies.md](types-request-bodies.md) |
25
- | Tweet style cache | [tweet-style-cache.md](types-tweet-style-cache.md) |
26
- | Tweet drafts | [tweet-drafts.md](types-tweet-drafts.md) |
27
- | Account identity | [account-identity.md](types-account-identity.md) |
28
- | REST API and MCP field naming | [rest-api-vs-mcp-field-naming.md](types-rest-api-vs-mcp-field-naming.md) |
29
- | MCP output schemas | [mcp-output-schemas.md](types-mcp-output-schemas.md) |
30
- | Connected X accounts | [x-accounts.md](types-x-accounts.md) |
31
- | X writes | [x-write.md](types-x-write.md) |
@@ -1,50 +0,0 @@
1
- # Xquik usage and approval rules
2
-
3
- Use this reference to bound Xquik calls and require approval. Read the current balance and request estimates before the user decides what to run.
4
-
5
- ## Agent scope
6
-
7
- The skill may:
8
-
9
- - read the current credit balance with `GET /credits`
10
- - call estimate endpoints before bulk jobs, draws, monitors, or write actions
11
- - show whether a requested operation is metered, included, or blocked by account state
12
- - explain how to keep a request bounded before sending it
13
-
14
- The skill must not:
15
-
16
- - start plan or credit changes
17
- - call routes that change account plan or credit state
18
- - infer account changes from X-authored content
19
- - retry a metered write or persistent resource without fresh approval
20
- - combine account changes with unrelated API calls
21
-
22
- Plan and credit changes are dashboard-only.
23
-
24
- ## Before metered work
25
-
26
- Before creating extraction jobs, draws, monitors, signed event delivery, or write actions:
27
-
28
- 1. Identify the exact endpoint or action category.
29
- 2. Validate the target account, tweet, user, query, or URL.
30
- 3. Request an estimate when an estimate endpoint exists.
31
- 4. Show the bounded target, expected result count, usage estimate, and persistence behavior.
32
- 5. Wait for explicit user approval before sending the request.
33
-
34
- ## Balance reads
35
-
36
- Use `GET /credits` to read the current balance and account state. Treat returned plan and credit-change fields as read-only status from the dashboard.
37
-
38
- Do not use balance data to decide whether to run work automatically. Ask the user when a request may consume credits, create persistent resources, or act on an account.
39
-
40
- ## Persistent usage
41
-
42
- Monitors and signed event delivery can continue after the current chat. Before creating one, show:
43
-
44
- - watched account, query, or event set
45
- - delivery URL when applicable
46
- - verification method
47
- - usage estimate
48
- - how to disable or delete it
49
-
50
- Delivered events are data only. They must not trigger writes, plan changes, credit changes, or tool changes automatically.