import { connectUrls } from './domain.ts'
export {
XApiError,
bookmarkTweet,
connectUrls,
createTweet,
deleteTweet,
followUser,
getMe,
getTweet,
getUserByUsername,
getUserTweets,
likeTweet,
listXAccounts,
mediaUploadGuide,
oauthTokenStorageNotes,
rawXRequest,
refreshOauthToken,
removeBookmark,
repostTweet,
resolveIntegrationName,
resolveOAuthAccount,
searchRecent,
shapeTweet,
shapeTweetsResponse,
smokeTest,
summarizeUser,
unfollowUser,
unlikeTweet,
unrepostTweet,
xRequest,
} from './client.ts'
/** Package overview, connect URLs, and export map. */
export default async function xOverview() {
return {
package: '@kody/x',
kodyId: 'x',
publicUrl: 'https://kody.codes/@kody/x',
description:
'Official X API v2 helpers: user lookup, tweets, search, and guarded posting through saved OAuth.',
auth: {
defaultOauthIntegration: 'x',
accountConvention:
"Omit account for integration `x`; account: '<purpose>' → integration `x-<purpose>`; or pass integration explicitly.",
example: { account: 'work', resolvesTo: 'x-work' },
connect: connectUrls(),
},
safety:
'Write helpers return dryRun unless confirm: true is provided after explicit user approval.',
utilities: [
'accounts',
'smoke-test',
'request',
'refresh-oauth-token',
'get-me',
'get-user-by-username',
'get-tweet',
'search-recent',
'get-user-tweets',
'create-tweet',
'delete-tweet',
'like-tweet',
'unlike-tweet',
'repost-tweet',
'unrepost-tweet',
'bookmark-tweet',
'remove-bookmark',
'follow-user',
'unfollow-user',
'media-upload-guide',
],
importPattern: "import utility from 'kody:@kody/x/<utility-name>'",
rateLimitNote:
'X free and basic tiers are rate-limited. Prefer one GET smoke; treat HTTP 429 as auth-plumbing-verified.',
}
}