@elizaos/plugin-twitter 1.0.7 → 1.0.9

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 (1) hide show
  1. package/package.json +126 -156
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-twitter",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -63,235 +63,205 @@
63
63
  "agentConfig": {
64
64
  "pluginType": "elizaos:plugin:1.0.0",
65
65
  "pluginParameters": {
66
+ "TWITTER_SPACES_ENABLE": {
67
+ "type": "boolean",
68
+ "description": "Flag indicating whether the agent is allowed to join Twitter Spaces.",
69
+ "required": false,
70
+ "sensitive": false
71
+ },
72
+ "MAX_RETRIES": {
73
+ "type": "number",
74
+ "description": "Maximum number of times the system will attempt to log in to Twitter before giving up",
75
+ "required": false,
76
+ "default": 3,
77
+ "sensitive": false
78
+ },
66
79
  "TWITTER_USERNAME": {
67
80
  "type": "string",
68
- "description": "Twitter/X account username used for login",
69
- "required": true
81
+ "description": "Twitter account username used for authentication",
82
+ "required": true,
83
+ "sensitive": false
70
84
  },
71
85
  "TWITTER_PASSWORD": {
72
86
  "type": "string",
73
- "description": "Password for the Twitter/X account",
74
- "required": true
87
+ "description": "Twitter account password used for authentication",
88
+ "required": true,
89
+ "sensitive": true
75
90
  },
76
91
  "TWITTER_EMAIL": {
77
92
  "type": "string",
78
- "description": "Email associated with the Twitter/X account (used during login and verification)",
79
- "required": true
93
+ "description": "Email address associated with the Twitter account; used during login/verification",
94
+ "required": true,
95
+ "sensitive": false
80
96
  },
81
97
  "TWITTER_2FA_SECRET": {
82
98
  "type": "string",
83
- "description": "Two-factor authentication secret for login",
84
- "required": false
85
- },
86
- "TWITTER_DRY_RUN": {
87
- "type": "boolean",
88
- "description": "If true, enables testing mode where tweets are not actually posted",
99
+ "description": "Time-based one-time password (2FA) secret used for two-factor authentication during login",
89
100
  "required": false,
90
- "default": "false"
101
+ "sensitive": true
91
102
  },
92
- "MAX_TWEET_LENGTH": {
93
- "type": "number",
94
- "description": "Maximum character length allowed for generated tweets",
103
+ "TWITTER_COOKIES_AUTH_TOKEN": {
104
+ "type": "string",
105
+ "description": "Pre-existing Twitter auth_token cookie value used to bypass manual login",
95
106
  "required": false,
96
- "default": "280"
107
+ "sensitive": true
97
108
  },
98
- "TWITTER_SEARCH_ENABLE": {
99
- "type": "boolean",
100
- "description": "Toggle to enable or disable the search functionality",
109
+ "TWITTER_COOKIES_CT0": {
110
+ "type": "string",
111
+ "description": "Pre-existing Twitter ct0 (CSRF) cookie value used to bypass manual login",
101
112
  "required": false,
102
- "default": "false"
113
+ "sensitive": true
103
114
  },
104
- "TWITTER_RETRY_LIMIT": {
105
- "type": "number",
106
- "description": "Number of login retry attempts before giving up",
115
+ "TWITTER_COOKIES_GUEST_ID": {
116
+ "type": "string",
117
+ "description": "Pre-existing Twitter guest_id cookie value used to bypass manual login",
107
118
  "required": false,
108
- "default": "5"
119
+ "sensitive": true
109
120
  },
110
- "TWITTER_POLL_INTERVAL": {
111
- "type": "number",
112
- "description": "Interval (in seconds) between polling cycles for new interactions or tasks",
121
+ "TWITTER_API_KEY": {
122
+ "type": "string",
123
+ "description": "Twitter API key used to authenticate with the Twitter API during tests.",
113
124
  "required": false,
114
- "default": "120"
125
+ "sensitive": true
115
126
  },
116
- "TWITTER_TARGET_USERS": {
127
+ "TWITTER_API_SECRET_KEY": {
117
128
  "type": "string",
118
- "description": "Comma-separated list of Twitter/X usernames to target for interactions",
119
- "required": false
120
- },
121
- "TWITTER_ENABLE_POST_GENERATION": {
122
- "type": "boolean",
123
- "description": "Master switch to enable or disable automatic tweet generation",
129
+ "description": "Twitter API secret key paired with the API key for authentication.",
124
130
  "required": false,
125
- "default": "true"
131
+ "sensitive": true
126
132
  },
127
- "TWITTER_POST_INTERVAL_MIN": {
128
- "type": "number",
129
- "description": "Minimum interval (in minutes) between automatically generated posts",
133
+ "TWITTER_ACCESS_TOKEN": {
134
+ "type": "string",
135
+ "description": "OAuth access token used for Twitter API requests in the tests.",
130
136
  "required": false,
131
- "default": "90"
137
+ "sensitive": true
132
138
  },
133
- "TWITTER_POST_POST_INTERVAL_MAX": {
134
- "type": "number",
135
- "description": "Maximum interval (in minutes) between automatically generated posts",
139
+ "TWITTER_ACCESS_TOKEN_SECRET": {
140
+ "type": "string",
141
+ "description": "OAuth access token secret used with the access token for authentication.",
136
142
  "required": false,
137
- "default": "180"
143
+ "sensitive": true
138
144
  },
139
- "TWITTER_POST_IMMEDIATELY": {
140
- "type": "boolean",
141
- "description": "If true, generated tweets bypass the approval workflow and are posted immediately",
145
+ "OPENAI_API_KEY": {
146
+ "type": "string",
147
+ "description": "OpenAI API key supplied to the SttTtsPlugin for GPT/STT/TTS functionality.",
148
+ "required": true,
149
+ "sensitive": true
150
+ },
151
+ "ELEVENLABS_API_KEY": {
152
+ "type": "string",
153
+ "description": "ElevenLabs API key for TTS provided to the SttTtsPlugin. Used if ELEVENLABS_XI_API_KEY is not set.",
142
154
  "required": false,
143
- "default": "false"
155
+ "sensitive": true
144
156
  },
145
- "ENABLE_ACTION_PROCESSING": {
146
- "type": "boolean",
147
- "description": "Enables processing of queued actions such as mentions or DMs",
157
+ "ELEVENLABS_XI_API_KEY": {
158
+ "type": "string",
159
+ "description": "Alternative ElevenLabs (Xi) API key for TTS; used as a fallback if ELEVENLABS_API_KEY is not provided.",
148
160
  "required": false,
149
- "default": "false"
161
+ "sensitive": true
150
162
  },
151
- "ACTION_INTERVAL": {
152
- "type": "number",
153
- "description": "Interval (in minutes) between action-processing checks",
163
+ "PROXY_URL": {
164
+ "type": "string",
165
+ "description": "URL of the proxy server (may include credentials) through which HTTP requests are routed.",
154
166
  "required": false,
155
- "default": "5"
167
+ "sensitive": true
156
168
  },
157
- "MAX_ACTIONS_PROCESSING": {
158
- "type": "number",
159
- "description": "Maximum number of actions that can be processed concurrently",
169
+ "TWITTER_COOKIES": {
170
+ "type": "string",
171
+ "description": "Serialized Twitter session cookies; referenced for cookie-based authentication.",
160
172
  "required": false,
161
- "default": "1"
173
+ "sensitive": true
162
174
  },
163
- "TWITTER_SPACES_ENABLE": {
175
+ "TWITTER_DRY_RUN": {
164
176
  "type": "boolean",
165
- "description": "Enables Twitter Spaces creation and management features",
177
+ "description": "When true, all Twitter actions are simulated and nothing is actually posted.",
166
178
  "required": false,
167
- "default": "false"
179
+ "sensitive": false
168
180
  },
169
- "ELEVENLABS_XI_API_KEY": {
170
- "type": "string",
171
- "description": "API key for ElevenLabs, required when using Text-to-Speech in Twitter Spaces",
172
- "required": false
173
- },
174
- "TWITTER_APPROVAL_DISCORD_BOT_TOKEN": {
175
- "type": "string",
176
- "description": "Discord bot token used for the tweet approval workflow",
177
- "required": false
178
- },
179
- "TWITTER_APPROVAL_DISCORD_CHANNEL_ID": {
180
- "type": "string",
181
- "description": "Discord channel ID where generated tweets are sent for approval",
182
- "required": false
183
- },
184
- "TWITTER_APPROVAL_CHECK_INTERVAL": {
181
+ "TWITTER_RETRY_LIMIT": {
185
182
  "type": "number",
186
- "description": "Interval (in milliseconds) between checks for approval reactions in Discord",
183
+ "description": "Maximum number of retry attempts when a Twitter action fails.",
187
184
  "required": false,
188
- "default": "300000"
189
- },
190
- "DEBUG": {
191
- "type": "string",
192
- "description": "Namespace(s) for enabling debug logs (e.g., \"eliza:*\")",
193
- "required": false
194
- },
195
- "TWITTER_COOKIES_AUTH_TOKEN": {
196
- "type": "string",
197
- "description": "Existing Twitter auth_token cookie value used to skip the login flow if provided.",
198
- "required": false
199
- },
200
- "TWITTER_COOKIES_CT0": {
201
- "type": "string",
202
- "description": "Existing Twitter ct0 cookie value used to skip the login flow if provided.",
203
- "required": false
185
+ "default": 5,
186
+ "sensitive": false
204
187
  },
205
- "TWITTER_COOKIES_GUEST_ID": {
206
- "type": "string",
207
- "description": "Existing Twitter guest_id cookie value used to skip the login flow if provided.",
208
- "required": false
209
- },
210
- "MAX_RETRIES": {
188
+ "TWITTER_POLL_INTERVAL": {
211
189
  "type": "number",
212
- "description": "Maximum number of retries allowed for the Twitter login process before failing.",
190
+ "description": "Polling interval in seconds between checks for new Twitter events.",
213
191
  "required": false,
214
- "default": 3
192
+ "default": 120,
193
+ "sensitive": false
215
194
  },
216
- "PROXY_URL": {
217
- "type": "string",
218
- "description": "HTTP(s) proxy URL to route requests through (necessary when running the client in certain browser environments).",
219
- "required": false
220
- },
221
- "TWITTER_API_KEY": {
222
- "type": "string",
223
- "description": "Twitter API v2 key used for enhanced functionality such as creating polls via the official API.",
224
- "required": false
225
- },
226
- "TWITTER_API_SECRET_KEY": {
227
- "type": "string",
228
- "description": "Twitter API v2 secret corresponding to TWITTER_API_KEY.",
229
- "required": false
230
- },
231
- "TWITTER_ACCESS_TOKEN": {
232
- "type": "string",
233
- "description": "Twitter API v2 access token used to authorize requests for tweet and poll functionality.",
234
- "required": false
235
- },
236
- "TWITTER_ACCESS_TOKEN_SECRET": {
237
- "type": "string",
238
- "description": "Secret associated with TWITTER_ACCESS_TOKEN for authenticating Twitter API v2 requests.",
239
- "required": false
240
- },
241
- "OPENAI_API_KEY": {
195
+ "TWITTER_TARGET_USERS": {
242
196
  "type": "string",
243
- "description": "OpenAI API key supplied to SttTtsPlugin for GPT-based interactions.",
244
- "required": true
197
+ "description": "Comma-separated list of Twitter usernames the bot should interact with. Supports '*' wildcard.",
198
+ "required": false,
199
+ "sensitive": false
245
200
  },
246
- "ELEVENLABS_API_KEY": {
247
- "type": "string",
248
- "description": "Primary ElevenLabs TTS API key supplied to SttTtsPlugin; if absent, ELEVENLABS_XI_API_KEY is used instead.",
201
+ "TWITTER_ENABLE_POST_GENERATION": {
202
+ "type": "boolean",
203
+ "description": "Toggle to enable or disable automatic tweet/post generation.",
249
204
  "required": false,
250
- "default": "Falls back to ELEVENLABS_XI_API_KEY when not provided"
205
+ "default": true,
206
+ "sensitive": false
251
207
  },
252
- "TWITTER_COOKIES": {
253
- "type": "string",
254
- "description": "Serialized cookie string used for cookie-based session authentication; if undefined and cookie file is missing, the code falls back to password auth.",
255
- "required": false
208
+ "TWITTER_POST_INTERVAL_MIN": {
209
+ "type": "number",
210
+ "description": "Minimum interval in minutes between automatically generated posts.",
211
+ "required": false,
212
+ "default": 90,
213
+ "sensitive": false
256
214
  },
257
215
  "TWITTER_POST_INTERVAL_MAX": {
258
216
  "type": "number",
259
- "description": "Maximum delay, in minutes, between automatically generated posts.",
217
+ "description": "Maximum interval in minutes between automatically generated posts.",
260
218
  "required": false,
261
- "default": 180
219
+ "default": 180,
220
+ "sensitive": false
221
+ },
222
+ "TWITTER_POST_IMMEDIATELY": {
223
+ "type": "boolean",
224
+ "description": "If true, posts are published immediately after generation, bypassing interval checks.",
225
+ "required": false,
226
+ "sensitive": false
262
227
  },
263
228
  "TWITTER_INTERACTION_ENABLE": {
264
229
  "type": "boolean",
265
- "description": "Determines whether mentions and interaction handling are enabled; only disabled when explicitly set to false.",
230
+ "description": "Controls whether mention and interaction handling is enabled. Defaults to true when not explicitly set to false.",
266
231
  "required": false,
267
- "default": true
232
+ "default": true,
233
+ "sensitive": false
268
234
  },
269
235
  "TWITTER_TIMELINE_ENABLE": {
270
236
  "type": "boolean",
271
- "description": "Enables timeline caching and handling logic for the Twitter client.",
272
- "required": false
237
+ "description": "Enables fetching and caching of the Twitter timeline.",
238
+ "required": false,
239
+ "sensitive": false
273
240
  },
274
241
  "TWITTER_API_SECRET": {
275
242
  "type": "string",
276
- "description": "Twitter API secret key for alternative API-based authentication.",
277
- "required": false
243
+ "description": "Twitter API secret credential (referenced in comments for future API-based auth).",
244
+ "required": false,
245
+ "sensitive": true
278
246
  },
279
247
  "TWITTER_ENABLE_ACTION_PROCESSING": {
280
248
  "type": "boolean",
281
- "description": "Enable or disable processing of queued Twitter actions.",
249
+ "description": "Flag to enable or disable processing of Twitter actions",
282
250
  "required": false,
283
- "default": "true"
251
+ "sensitive": false
284
252
  },
285
253
  "TWITTER_TIMELINE_MODE": {
286
254
  "type": "string",
287
- "description": "Determines which Twitter timeline the client should fetch (e.g., 'following' or 'foryou').",
288
- "required": false
255
+ "description": "Specifies which Twitter timeline to monitor: 'foryou' (home) or 'following'.",
256
+ "required": false,
257
+ "sensitive": false
289
258
  },
290
259
  "TWITTER_TIMELINE_POLL_INTERVAL": {
291
260
  "type": "number",
292
- "description": "Interval in seconds between polls of the Twitter timeline.",
261
+ "description": "Polling interval (in seconds) between timeline checks.",
293
262
  "required": false,
294
- "default": 120
263
+ "default": 120,
264
+ "sensitive": false
295
265
  }
296
266
  }
297
267
  }