@framers/agentos 0.1.219 → 0.1.221
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.
- package/README.md +43 -7
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js +2 -0
- package/dist/api/agent.js.map +1 -1
- package/dist/api/generateText.d.ts.map +1 -1
- package/dist/api/generateText.js +6 -21
- package/dist/api/generateText.js.map +1 -1
- package/dist/api/runtime/capabilityContract.d.ts +83 -0
- package/dist/api/runtime/capabilityContract.d.ts.map +1 -0
- package/dist/api/runtime/capabilityContract.js +38 -0
- package/dist/api/runtime/capabilityContract.js.map +1 -0
- package/dist/api/runtime/dynamicToolCalling.d.ts +23 -0
- package/dist/api/runtime/dynamicToolCalling.d.ts.map +1 -0
- package/dist/api/runtime/dynamicToolCalling.js +21 -0
- package/dist/api/runtime/dynamicToolCalling.js.map +1 -0
- package/dist/api/runtime/externalToolRegistry.d.ts +12 -0
- package/dist/api/runtime/externalToolRegistry.d.ts.map +1 -1
- package/dist/api/runtime/externalToolRegistry.js +30 -0
- package/dist/api/runtime/externalToolRegistry.js.map +1 -1
- package/dist/api/runtime/lightweightAgentDiagnostics.d.ts +5 -0
- package/dist/api/runtime/lightweightAgentDiagnostics.d.ts.map +1 -0
- package/dist/api/runtime/lightweightAgentDiagnostics.js +35 -0
- package/dist/api/runtime/lightweightAgentDiagnostics.js.map +1 -0
- package/dist/api/runtime/processRequestWithRegisteredTools.d.ts.map +1 -1
- package/dist/api/runtime/processRequestWithRegisteredTools.js +9 -26
- package/dist/api/runtime/processRequestWithRegisteredTools.js.map +1 -1
- package/dist/api/runtime/resumeExternalToolRequestWithRegisteredTools.d.ts.map +1 -1
- package/dist/api/runtime/resumeExternalToolRequestWithRegisteredTools.js +6 -20
- package/dist/api/runtime/resumeExternalToolRequestWithRegisteredTools.js.map +1 -1
- package/dist/api/streamText.d.ts.map +1 -1
- package/dist/api/streamText.js +8 -17
- package/dist/api/streamText.js.map +1 -1
- package/dist/api/types.d.ts +6 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/config/extension-secrets.json +1098 -0
- package/dist/memory/mechanisms/CognitiveMechanismsEngine.d.ts +3 -2
- package/dist/memory/mechanisms/CognitiveMechanismsEngine.d.ts.map +1 -1
- package/dist/memory/mechanisms/CognitiveMechanismsEngine.js +4 -3
- package/dist/memory/mechanisms/CognitiveMechanismsEngine.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,1098 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "openai.apiKey",
|
|
4
|
+
"label": "OpenAI API Key",
|
|
5
|
+
"description": "Used for native OpenAI calls (GPT-4o family) and any extensions that call OpenAI directly.",
|
|
6
|
+
"envVar": "OPENAI_API_KEY",
|
|
7
|
+
"docsUrl": "https://platform.openai.com/account/api-keys",
|
|
8
|
+
"providers": ["openai"],
|
|
9
|
+
"optional": false
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "openrouter.apiKey",
|
|
13
|
+
"label": "OpenRouter API Key",
|
|
14
|
+
"description": "Required when routing traffic through OpenRouter (multi-provider fan-out).",
|
|
15
|
+
"envVar": "OPENROUTER_API_KEY",
|
|
16
|
+
"docsUrl": "https://openrouter.ai/keys",
|
|
17
|
+
"providers": ["openrouter"],
|
|
18
|
+
"optional": false
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "anthropic.apiKey",
|
|
22
|
+
"label": "Anthropic API Key",
|
|
23
|
+
"description": "Needed for Claude-based extensions or workflows.",
|
|
24
|
+
"envVar": "ANTHROPIC_API_KEY",
|
|
25
|
+
"docsUrl": "https://console.anthropic.com/settings/keys",
|
|
26
|
+
"providers": ["anthropic"],
|
|
27
|
+
"optional": true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "serper.apiKey",
|
|
31
|
+
"label": "Serper.dev API Key",
|
|
32
|
+
"description": "Used by search extensions relying on Serper.dev for Google-like results.",
|
|
33
|
+
"envVar": "SERPER_API_KEY",
|
|
34
|
+
"docsUrl": "https://serper.dev/api-key",
|
|
35
|
+
"providers": ["serper"],
|
|
36
|
+
"optional": true
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "serpapi.apiKey",
|
|
40
|
+
"label": "SerpAPI API Key",
|
|
41
|
+
"description": "Used by web-search extensions that integrate with SerpAPI for search results.",
|
|
42
|
+
"envVar": "SERPAPI_API_KEY",
|
|
43
|
+
"docsUrl": "https://serpapi.com/",
|
|
44
|
+
"providers": ["serpapi"],
|
|
45
|
+
"optional": true
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "brave.apiKey",
|
|
49
|
+
"label": "Brave Search API Key",
|
|
50
|
+
"description": "Used by web-search extensions that integrate with Brave Search API.",
|
|
51
|
+
"envVar": "BRAVE_API_KEY",
|
|
52
|
+
"docsUrl": "https://brave.com/search/api/",
|
|
53
|
+
"providers": ["brave"],
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "newsapi.apiKey",
|
|
58
|
+
"label": "NewsAPI Key",
|
|
59
|
+
"description": "Used by news-search extensions (NewsAPI).",
|
|
60
|
+
"envVar": "NEWSAPI_API_KEY",
|
|
61
|
+
"docsUrl": "https://newsapi.org/",
|
|
62
|
+
"providers": ["newsapi"],
|
|
63
|
+
"optional": true
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "giphy.apiKey",
|
|
67
|
+
"label": "Giphy API Key",
|
|
68
|
+
"description": "Used by media extensions to search for GIFs via Giphy.",
|
|
69
|
+
"envVar": "GIPHY_API_KEY",
|
|
70
|
+
"docsUrl": "https://developers.giphy.com/",
|
|
71
|
+
"providers": ["giphy"],
|
|
72
|
+
"optional": true
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "pexels.apiKey",
|
|
76
|
+
"label": "Pexels API Key",
|
|
77
|
+
"description": "Used by image-search extensions (Pexels).",
|
|
78
|
+
"envVar": "PEXELS_API_KEY",
|
|
79
|
+
"docsUrl": "https://www.pexels.com/api/",
|
|
80
|
+
"providers": ["pexels"],
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "unsplash.apiKey",
|
|
85
|
+
"label": "Unsplash Access Key",
|
|
86
|
+
"description": "Used by image-search extensions (Unsplash).",
|
|
87
|
+
"envVar": "UNSPLASH_ACCESS_KEY",
|
|
88
|
+
"docsUrl": "https://unsplash.com/developers",
|
|
89
|
+
"providers": ["unsplash"],
|
|
90
|
+
"optional": true
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "pixabay.apiKey",
|
|
94
|
+
"label": "Pixabay API Key",
|
|
95
|
+
"description": "Used by image-search extensions (Pixabay).",
|
|
96
|
+
"envVar": "PIXABAY_API_KEY",
|
|
97
|
+
"docsUrl": "https://pixabay.com/api/docs/",
|
|
98
|
+
"providers": ["pixabay"],
|
|
99
|
+
"optional": true
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "elevenlabs.apiKey",
|
|
103
|
+
"label": "ElevenLabs API Key",
|
|
104
|
+
"description": "Used by voice-synthesis extensions (ElevenLabs TTS).",
|
|
105
|
+
"envVar": "ELEVENLABS_API_KEY",
|
|
106
|
+
"docsUrl": "https://elevenlabs.io/docs/api-reference/authentication",
|
|
107
|
+
"providers": ["elevenlabs"],
|
|
108
|
+
"optional": true
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "telegram.botToken",
|
|
112
|
+
"label": "Telegram Bot Token",
|
|
113
|
+
"description": "Bot token from @BotFather for the Telegram messaging channel.",
|
|
114
|
+
"envVar": "TELEGRAM_BOT_TOKEN",
|
|
115
|
+
"docsUrl": "https://core.telegram.org/bots#botfather",
|
|
116
|
+
"providers": ["telegram"],
|
|
117
|
+
"optional": true
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "discord.botToken",
|
|
121
|
+
"label": "Discord Bot Token",
|
|
122
|
+
"description": "Bot token from the Discord Developer Portal for the Discord messaging channel.",
|
|
123
|
+
"envVar": "DISCORD_BOT_TOKEN",
|
|
124
|
+
"docsUrl": "https://discord.com/developers/docs/getting-started",
|
|
125
|
+
"providers": ["discord"],
|
|
126
|
+
"optional": true
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "slack.botToken",
|
|
130
|
+
"label": "Slack Bot Token",
|
|
131
|
+
"description": "Bot OAuth token (xoxb-*) for the Slack messaging channel.",
|
|
132
|
+
"envVar": "SLACK_BOT_TOKEN",
|
|
133
|
+
"docsUrl": "https://api.slack.com/authentication/token-types",
|
|
134
|
+
"providers": ["slack"],
|
|
135
|
+
"optional": true
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "slack.appToken",
|
|
139
|
+
"label": "Slack App-Level Token",
|
|
140
|
+
"description": "App-level token (xapp-*) for Slack Socket Mode connections.",
|
|
141
|
+
"envVar": "SLACK_APP_TOKEN",
|
|
142
|
+
"docsUrl": "https://api.slack.com/apis/connections/socket",
|
|
143
|
+
"providers": ["slack"],
|
|
144
|
+
"optional": true
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "slack.signingSecret",
|
|
148
|
+
"label": "Slack Signing Secret",
|
|
149
|
+
"description": "Signing secret for verifying Slack webhook requests.",
|
|
150
|
+
"envVar": "SLACK_SIGNING_SECRET",
|
|
151
|
+
"docsUrl": "https://api.slack.com/authentication/verifying-requests-from-slack",
|
|
152
|
+
"providers": ["slack"],
|
|
153
|
+
"optional": true
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "whatsapp.sessionData",
|
|
157
|
+
"label": "WhatsApp Session Data",
|
|
158
|
+
"description": "Serialized session credentials for WhatsApp Web/Baileys connection.",
|
|
159
|
+
"envVar": "WHATSAPP_SESSION_DATA",
|
|
160
|
+
"docsUrl": "https://github.com/WhiskeySockets/Baileys",
|
|
161
|
+
"providers": ["whatsapp"],
|
|
162
|
+
"optional": true
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "signal.phoneNumber",
|
|
166
|
+
"label": "Signal Phone Number",
|
|
167
|
+
"description": "Phone number registered with Signal for the signal-cli bridge.",
|
|
168
|
+
"envVar": "SIGNAL_PHONE_NUMBER",
|
|
169
|
+
"docsUrl": "https://github.com/AsamK/signal-cli",
|
|
170
|
+
"providers": ["signal"],
|
|
171
|
+
"optional": true
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "imessage.serverUrl",
|
|
175
|
+
"label": "BlueBubbles Server URL",
|
|
176
|
+
"description": "URL of the BlueBubbles server for iMessage integration.",
|
|
177
|
+
"envVar": "BLUEBUBBLES_SERVER_URL",
|
|
178
|
+
"docsUrl": "https://bluebubbles.app/",
|
|
179
|
+
"providers": ["imessage"],
|
|
180
|
+
"optional": true
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "imessage.password",
|
|
184
|
+
"label": "BlueBubbles Server Password",
|
|
185
|
+
"description": "Password for authenticating with the BlueBubbles server.",
|
|
186
|
+
"envVar": "BLUEBUBBLES_PASSWORD",
|
|
187
|
+
"docsUrl": "https://bluebubbles.app/",
|
|
188
|
+
"providers": ["imessage"],
|
|
189
|
+
"optional": true
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "googlechat.serviceAccount",
|
|
193
|
+
"label": "Google Chat Service Account JSON",
|
|
194
|
+
"description": "Service account credentials JSON for Google Chat API.",
|
|
195
|
+
"envVar": "GOOGLE_CHAT_SERVICE_ACCOUNT",
|
|
196
|
+
"docsUrl": "https://developers.google.com/workspace/chat/authenticate-authorize",
|
|
197
|
+
"providers": ["google-chat"],
|
|
198
|
+
"optional": true
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"id": "teams.appId",
|
|
202
|
+
"label": "Microsoft Teams App ID",
|
|
203
|
+
"description": "Application ID for the Microsoft Teams bot registration.",
|
|
204
|
+
"envVar": "TEAMS_APP_ID",
|
|
205
|
+
"docsUrl": "https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/authentication/",
|
|
206
|
+
"providers": ["teams"],
|
|
207
|
+
"optional": true
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"id": "teams.appPassword",
|
|
211
|
+
"label": "Microsoft Teams App Password",
|
|
212
|
+
"description": "Application password/secret for the Microsoft Teams bot.",
|
|
213
|
+
"envVar": "TEAMS_APP_PASSWORD",
|
|
214
|
+
"docsUrl": "https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/authentication/",
|
|
215
|
+
"providers": ["teams"],
|
|
216
|
+
"optional": true
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"id": "matrix.homeserverUrl",
|
|
220
|
+
"label": "Matrix Homeserver URL",
|
|
221
|
+
"description": "URL of the Matrix homeserver (e.g., https://matrix.org).",
|
|
222
|
+
"envVar": "MATRIX_HOMESERVER_URL",
|
|
223
|
+
"docsUrl": "https://spec.matrix.org/latest/",
|
|
224
|
+
"providers": ["matrix"],
|
|
225
|
+
"optional": true
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "matrix.accessToken",
|
|
229
|
+
"label": "Matrix Access Token",
|
|
230
|
+
"description": "Access token for authenticating with the Matrix homeserver.",
|
|
231
|
+
"envVar": "MATRIX_ACCESS_TOKEN",
|
|
232
|
+
"docsUrl": "https://spec.matrix.org/latest/client-server-api/#client-authentication",
|
|
233
|
+
"providers": ["matrix"],
|
|
234
|
+
"optional": true
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "twilio.accountSid",
|
|
238
|
+
"label": "Twilio Account SID",
|
|
239
|
+
"description": "Twilio account identifier for SMS/voice messaging.",
|
|
240
|
+
"envVar": "TWILIO_ACCOUNT_SID",
|
|
241
|
+
"docsUrl": "https://www.twilio.com/docs/usage/api",
|
|
242
|
+
"providers": ["sms", "twilio"],
|
|
243
|
+
"optional": true
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "twilio.authToken",
|
|
247
|
+
"label": "Twilio Auth Token",
|
|
248
|
+
"description": "Twilio authentication token for API access.",
|
|
249
|
+
"envVar": "TWILIO_AUTH_TOKEN",
|
|
250
|
+
"docsUrl": "https://www.twilio.com/docs/usage/api",
|
|
251
|
+
"providers": ["sms", "twilio"],
|
|
252
|
+
"optional": true
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "twilio.phoneNumber",
|
|
256
|
+
"label": "Twilio Phone Number",
|
|
257
|
+
"description": "Twilio phone number for sending SMS messages.",
|
|
258
|
+
"envVar": "TWILIO_PHONE_NUMBER",
|
|
259
|
+
"docsUrl": "https://www.twilio.com/docs/phone-numbers",
|
|
260
|
+
"providers": ["sms", "twilio"],
|
|
261
|
+
"optional": true
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"id": "telnyx.apiKey",
|
|
265
|
+
"label": "Telnyx API Key",
|
|
266
|
+
"description": "API key for Telnyx Call Control v2 and messaging.",
|
|
267
|
+
"envVar": "TELNYX_API_KEY",
|
|
268
|
+
"docsUrl": "https://developers.telnyx.com/docs/v2/development/authentication",
|
|
269
|
+
"providers": ["telnyx"],
|
|
270
|
+
"optional": true
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "telnyx.connectionId",
|
|
274
|
+
"label": "Telnyx Connection ID",
|
|
275
|
+
"description": "Connection ID (SIP/FQDN) for Telnyx voice calls.",
|
|
276
|
+
"envVar": "TELNYX_CONNECTION_ID",
|
|
277
|
+
"docsUrl": "https://developers.telnyx.com/docs/v2/call-control/quickstart",
|
|
278
|
+
"providers": ["telnyx"],
|
|
279
|
+
"optional": true
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "telnyx.publicKey",
|
|
283
|
+
"label": "Telnyx Public Key",
|
|
284
|
+
"description": "Ed25519 public key for verifying Telnyx webhook signatures.",
|
|
285
|
+
"envVar": "TELNYX_PUBLIC_KEY",
|
|
286
|
+
"docsUrl": "https://developers.telnyx.com/docs/v2/development/webhooks",
|
|
287
|
+
"providers": ["telnyx"],
|
|
288
|
+
"optional": true
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"id": "telnyx.phoneNumber",
|
|
292
|
+
"label": "Telnyx Phone Number",
|
|
293
|
+
"description": "Telnyx phone number for outbound calls and SMS.",
|
|
294
|
+
"envVar": "TELNYX_PHONE_NUMBER",
|
|
295
|
+
"docsUrl": "https://developers.telnyx.com/docs/v2/numbers",
|
|
296
|
+
"providers": ["telnyx"],
|
|
297
|
+
"optional": true
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"id": "plivo.authId",
|
|
301
|
+
"label": "Plivo Auth ID",
|
|
302
|
+
"description": "Plivo account auth ID for voice and messaging API.",
|
|
303
|
+
"envVar": "PLIVO_AUTH_ID",
|
|
304
|
+
"docsUrl": "https://www.plivo.com/docs/account/api/overview/",
|
|
305
|
+
"providers": ["plivo"],
|
|
306
|
+
"optional": true
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"id": "plivo.authToken",
|
|
310
|
+
"label": "Plivo Auth Token",
|
|
311
|
+
"description": "Plivo account auth token for API authentication.",
|
|
312
|
+
"envVar": "PLIVO_AUTH_TOKEN",
|
|
313
|
+
"docsUrl": "https://www.plivo.com/docs/account/api/overview/",
|
|
314
|
+
"providers": ["plivo"],
|
|
315
|
+
"optional": true
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "plivo.phoneNumber",
|
|
319
|
+
"label": "Plivo Phone Number",
|
|
320
|
+
"description": "Plivo phone number for outbound calls.",
|
|
321
|
+
"envVar": "PLIVO_PHONE_NUMBER",
|
|
322
|
+
"docsUrl": "https://www.plivo.com/docs/numbers/",
|
|
323
|
+
"providers": ["plivo"],
|
|
324
|
+
"optional": true
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"id": "google.clientId",
|
|
328
|
+
"label": "Google OAuth Client ID",
|
|
329
|
+
"description": "OAuth 2.0 client ID for Google Calendar and Gmail integrations.",
|
|
330
|
+
"envVar": "GOOGLE_CLIENT_ID",
|
|
331
|
+
"docsUrl": "https://console.cloud.google.com/apis/credentials",
|
|
332
|
+
"providers": ["google-calendar", "gmail"],
|
|
333
|
+
"optional": true
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"id": "google.clientSecret",
|
|
337
|
+
"label": "Google OAuth Client Secret",
|
|
338
|
+
"description": "OAuth 2.0 client secret for Google API authentication.",
|
|
339
|
+
"envVar": "GOOGLE_CLIENT_SECRET",
|
|
340
|
+
"docsUrl": "https://console.cloud.google.com/apis/credentials",
|
|
341
|
+
"providers": ["google-calendar", "gmail"],
|
|
342
|
+
"optional": true
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"id": "google.refreshToken",
|
|
346
|
+
"label": "Google Refresh Token",
|
|
347
|
+
"description": "OAuth 2.0 refresh token for maintaining long-lived Google API access.",
|
|
348
|
+
"envVar": "GOOGLE_REFRESH_TOKEN",
|
|
349
|
+
"docsUrl": "https://developers.google.com/identity/protocols/oauth2",
|
|
350
|
+
"providers": ["google-calendar", "gmail"],
|
|
351
|
+
"optional": true
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"id": "email.smtpHost",
|
|
355
|
+
"label": "SMTP Host",
|
|
356
|
+
"description": "SMTP server hostname for sending email messages.",
|
|
357
|
+
"envVar": "SMTP_HOST",
|
|
358
|
+
"docsUrl": "https://nodemailer.com/smtp/",
|
|
359
|
+
"providers": ["email"],
|
|
360
|
+
"optional": true
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"id": "email.smtpUser",
|
|
364
|
+
"label": "SMTP Username",
|
|
365
|
+
"description": "SMTP authentication username.",
|
|
366
|
+
"envVar": "SMTP_USER",
|
|
367
|
+
"docsUrl": "https://nodemailer.com/smtp/",
|
|
368
|
+
"providers": ["email"],
|
|
369
|
+
"optional": true
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"id": "email.smtpPassword",
|
|
373
|
+
"label": "SMTP Password",
|
|
374
|
+
"description": "SMTP authentication password.",
|
|
375
|
+
"envVar": "SMTP_PASSWORD",
|
|
376
|
+
"docsUrl": "https://nodemailer.com/smtp/",
|
|
377
|
+
"providers": ["email"],
|
|
378
|
+
"optional": true
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"id": "zalo.appId",
|
|
382
|
+
"label": "Zalo App ID",
|
|
383
|
+
"description": "Application ID for the Zalo Official Account API.",
|
|
384
|
+
"envVar": "ZALO_APP_ID",
|
|
385
|
+
"docsUrl": "https://developers.zalo.me/docs/",
|
|
386
|
+
"providers": ["zalo"],
|
|
387
|
+
"optional": true
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"id": "zalo.secretKey",
|
|
391
|
+
"label": "Zalo Secret Key",
|
|
392
|
+
"description": "Secret key for the Zalo Official Account API.",
|
|
393
|
+
"envVar": "ZALO_SECRET_KEY",
|
|
394
|
+
"docsUrl": "https://developers.zalo.me/docs/",
|
|
395
|
+
"providers": ["zalo"],
|
|
396
|
+
"optional": true
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"id": "zalo.botToken",
|
|
400
|
+
"label": "Zalo Bot Token",
|
|
401
|
+
"description": "Bot API token for the Zalo Bot Platform (used for messaging).",
|
|
402
|
+
"envVar": "ZALO_BOT_TOKEN",
|
|
403
|
+
"docsUrl": "https://developers.zalo.me/docs/",
|
|
404
|
+
"providers": ["zalo"],
|
|
405
|
+
"optional": true
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "zalo.webhookSecret",
|
|
409
|
+
"label": "Zalo Webhook Secret",
|
|
410
|
+
"description": "Optional secret token used to validate Zalo webhook requests (x-bot-api-secret-token header).",
|
|
411
|
+
"envVar": "ZALO_WEBHOOK_SECRET",
|
|
412
|
+
"docsUrl": "https://developers.zalo.me/docs/",
|
|
413
|
+
"providers": ["zalo"],
|
|
414
|
+
"optional": true
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"id": "nostr.privateKey",
|
|
418
|
+
"label": "Nostr Private Key",
|
|
419
|
+
"description": "Nostr private key (hex or nsec) used to sign events.",
|
|
420
|
+
"envVar": "NOSTR_PRIVATE_KEY",
|
|
421
|
+
"docsUrl": "https://github.com/nostr-protocol/nostr",
|
|
422
|
+
"providers": ["nostr"],
|
|
423
|
+
"optional": true
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"id": "nostr.relayUrls",
|
|
427
|
+
"label": "Nostr Relay URLs",
|
|
428
|
+
"description": "Comma-separated WebSocket relay URLs to connect to (e.g., wss://relay.damus.io,wss://nos.lol).",
|
|
429
|
+
"envVar": "NOSTR_RELAY_URLS",
|
|
430
|
+
"docsUrl": "https://github.com/nostr-protocol/nips",
|
|
431
|
+
"providers": ["nostr"],
|
|
432
|
+
"optional": true
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"id": "twitch.oauthToken",
|
|
436
|
+
"label": "Twitch OAuth Token",
|
|
437
|
+
"description": "OAuth token for connecting to Twitch IRC (chat).",
|
|
438
|
+
"envVar": "TWITCH_OAUTH_TOKEN",
|
|
439
|
+
"docsUrl": "https://dev.twitch.tv/docs/authentication",
|
|
440
|
+
"providers": ["twitch"],
|
|
441
|
+
"optional": true
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"id": "twitch.username",
|
|
445
|
+
"label": "Twitch Username",
|
|
446
|
+
"description": "Bot account username used for Twitch IRC (chat).",
|
|
447
|
+
"envVar": "TWITCH_USERNAME",
|
|
448
|
+
"docsUrl": "https://dev.twitch.tv/docs/irc/",
|
|
449
|
+
"providers": ["twitch"],
|
|
450
|
+
"optional": true
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"id": "twitch.channel",
|
|
454
|
+
"label": "Twitch Channel",
|
|
455
|
+
"description": "Twitch channel name to join (without #).",
|
|
456
|
+
"envVar": "TWITCH_CHANNEL",
|
|
457
|
+
"docsUrl": "https://dev.twitch.tv/docs/irc/",
|
|
458
|
+
"providers": ["twitch"],
|
|
459
|
+
"optional": true
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"id": "line.channelAccessToken",
|
|
463
|
+
"label": "LINE Channel Access Token",
|
|
464
|
+
"description": "Messaging API channel access token for LINE bot authentication.",
|
|
465
|
+
"envVar": "LINE_CHANNEL_ACCESS_TOKEN",
|
|
466
|
+
"docsUrl": "https://developers.line.biz/en/docs/messaging-api/channel-access-tokens/",
|
|
467
|
+
"providers": ["line"],
|
|
468
|
+
"optional": true
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"id": "line.channelSecret",
|
|
472
|
+
"label": "LINE Channel Secret",
|
|
473
|
+
"description": "Messaging API channel secret used to verify webhook signatures.",
|
|
474
|
+
"envVar": "LINE_CHANNEL_SECRET",
|
|
475
|
+
"docsUrl": "https://developers.line.biz/en/docs/messaging-api/building-bot/#prepare-channel-secret",
|
|
476
|
+
"providers": ["line"],
|
|
477
|
+
"optional": true
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"id": "feishu.appId",
|
|
481
|
+
"label": "Feishu / Lark App ID",
|
|
482
|
+
"description": "App ID for the Feishu (Lark) bot.",
|
|
483
|
+
"envVar": "FEISHU_APP_ID",
|
|
484
|
+
"docsUrl": "https://open.feishu.cn/document/home/index?lang=en-US",
|
|
485
|
+
"providers": ["feishu"],
|
|
486
|
+
"optional": true
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"id": "feishu.appSecret",
|
|
490
|
+
"label": "Feishu / Lark App Secret",
|
|
491
|
+
"description": "App secret for the Feishu (Lark) bot.",
|
|
492
|
+
"envVar": "FEISHU_APP_SECRET",
|
|
493
|
+
"docsUrl": "https://open.feishu.cn/document/home/index?lang=en-US",
|
|
494
|
+
"providers": ["feishu"],
|
|
495
|
+
"optional": true
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"id": "mattermost.url",
|
|
499
|
+
"label": "Mattermost Server URL",
|
|
500
|
+
"description": "Base URL for your Mattermost server (e.g., https://chat.example.com).",
|
|
501
|
+
"envVar": "MATTERMOST_URL",
|
|
502
|
+
"docsUrl": "https://api.mattermost.com/",
|
|
503
|
+
"providers": ["mattermost"],
|
|
504
|
+
"optional": true
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"id": "mattermost.token",
|
|
508
|
+
"label": "Mattermost Access Token",
|
|
509
|
+
"description": "Personal access token (PAT) or bot token for Mattermost API.",
|
|
510
|
+
"envVar": "MATTERMOST_TOKEN",
|
|
511
|
+
"docsUrl": "https://docs.mattermost.com/integrations/admin-guide/admin-bot-accounts.html",
|
|
512
|
+
"providers": ["mattermost"],
|
|
513
|
+
"optional": true
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"id": "nextcloud.url",
|
|
517
|
+
"label": "NextCloud URL",
|
|
518
|
+
"description": "Base URL for your NextCloud instance (Talk).",
|
|
519
|
+
"envVar": "NEXTCLOUD_URL",
|
|
520
|
+
"docsUrl": "https://nextcloud.com/talk/",
|
|
521
|
+
"providers": ["nextcloud-talk"],
|
|
522
|
+
"optional": true
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"id": "nextcloud.token",
|
|
526
|
+
"label": "NextCloud Token",
|
|
527
|
+
"description": "Access token for NextCloud Talk bot integration.",
|
|
528
|
+
"envVar": "NEXTCLOUD_TOKEN",
|
|
529
|
+
"docsUrl": "https://nextcloud.com/talk/",
|
|
530
|
+
"providers": ["nextcloud-talk"],
|
|
531
|
+
"optional": true
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"id": "tlon.shipUrl",
|
|
535
|
+
"label": "Tlon (Urbit) Ship URL",
|
|
536
|
+
"description": "HTTP URL for the Urbit ship (Tlon) you want to connect to.",
|
|
537
|
+
"envVar": "TLON_SHIP_URL",
|
|
538
|
+
"docsUrl": "https://urbit.org/",
|
|
539
|
+
"providers": ["tlon"],
|
|
540
|
+
"optional": true
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"id": "tlon.code",
|
|
544
|
+
"label": "Tlon (Urbit) Code",
|
|
545
|
+
"description": "Ship access code (or auth token) for the Urbit API.",
|
|
546
|
+
"envVar": "TLON_CODE",
|
|
547
|
+
"docsUrl": "https://urbit.org/",
|
|
548
|
+
"providers": ["tlon"],
|
|
549
|
+
"optional": true
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
"id": "reddit.clientId",
|
|
553
|
+
"label": "Reddit Client ID",
|
|
554
|
+
"description": "OAuth client ID for the Reddit API (snoowrap).",
|
|
555
|
+
"envVar": "REDDIT_CLIENT_ID",
|
|
556
|
+
"docsUrl": "https://www.reddit.com/prefs/apps",
|
|
557
|
+
"providers": ["reddit"],
|
|
558
|
+
"optional": true
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"id": "reddit.clientSecret",
|
|
562
|
+
"label": "Reddit Client Secret",
|
|
563
|
+
"description": "OAuth client secret for the Reddit API (snoowrap).",
|
|
564
|
+
"envVar": "REDDIT_CLIENT_SECRET",
|
|
565
|
+
"docsUrl": "https://www.reddit.com/prefs/apps",
|
|
566
|
+
"providers": ["reddit"],
|
|
567
|
+
"optional": true
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"id": "reddit.username",
|
|
571
|
+
"label": "Reddit Username",
|
|
572
|
+
"description": "Username for the Reddit account used by the bot.",
|
|
573
|
+
"envVar": "REDDIT_USERNAME",
|
|
574
|
+
"docsUrl": "https://www.reddit.com/",
|
|
575
|
+
"providers": ["reddit"],
|
|
576
|
+
"optional": true
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"id": "reddit.password",
|
|
580
|
+
"label": "Reddit Password",
|
|
581
|
+
"description": "Password for the Reddit account used by the bot.",
|
|
582
|
+
"envVar": "REDDIT_PASSWORD",
|
|
583
|
+
"docsUrl": "https://www.reddit.com/",
|
|
584
|
+
"providers": ["reddit"],
|
|
585
|
+
"optional": true
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"id": "twitter.bearerToken",
|
|
589
|
+
"label": "Twitter/X Bearer Token",
|
|
590
|
+
"description": "Bearer token for Twitter API v2 (app-only auth). Optional if OAuth credentials are provided.",
|
|
591
|
+
"envVar": "TWITTER_BEARER_TOKEN",
|
|
592
|
+
"aliases": ["X_BEARER_TOKEN"],
|
|
593
|
+
"docsUrl": "https://developer.x.com/en/docs/authentication/oauth-2-0/bearer-tokens",
|
|
594
|
+
"providers": ["twitter"],
|
|
595
|
+
"optional": true
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"id": "twitter.apiKey",
|
|
599
|
+
"label": "Twitter/X API Key (Consumer Key)",
|
|
600
|
+
"description": "API key / consumer key for Twitter/X (OAuth 1.0a).",
|
|
601
|
+
"envVar": "TWITTER_API_KEY",
|
|
602
|
+
"aliases": ["X_API_KEY", "X_CONSUMER_KEY", "TWITTER_CONSUMER_KEY"],
|
|
603
|
+
"docsUrl": "https://developer.x.com/",
|
|
604
|
+
"providers": ["twitter"],
|
|
605
|
+
"optional": true
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"id": "twitter.apiSecret",
|
|
609
|
+
"label": "Twitter/X API Secret (Consumer Secret)",
|
|
610
|
+
"description": "API secret / consumer secret for Twitter/X (OAuth 1.0a).",
|
|
611
|
+
"envVar": "TWITTER_API_SECRET",
|
|
612
|
+
"aliases": ["X_API_SECRET", "X_CONSUMER_SECRET", "X_CONSUMER_SECRET_KEY", "TWITTER_CONSUMER_SECRET"],
|
|
613
|
+
"docsUrl": "https://developer.x.com/",
|
|
614
|
+
"providers": ["twitter"],
|
|
615
|
+
"optional": true
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"id": "twitter.accessToken",
|
|
619
|
+
"label": "Twitter/X Access Token",
|
|
620
|
+
"description": "Access token for Twitter/X (user context, OAuth 1.0a).",
|
|
621
|
+
"envVar": "TWITTER_ACCESS_TOKEN",
|
|
622
|
+
"aliases": ["X_ACCESS_TOKEN"],
|
|
623
|
+
"docsUrl": "https://developer.x.com/",
|
|
624
|
+
"providers": ["twitter"],
|
|
625
|
+
"optional": true
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"id": "twitter.accessSecret",
|
|
629
|
+
"label": "Twitter/X Access Secret",
|
|
630
|
+
"description": "Access token secret for Twitter/X (user context, OAuth 1.0a).",
|
|
631
|
+
"envVar": "TWITTER_ACCESS_SECRET",
|
|
632
|
+
"aliases": ["X_ACCESS_SECRET", "X_ACCESS_TOKEN_SECRET", "TWITTER_ACCESS_TOKEN_SECRET"],
|
|
633
|
+
"docsUrl": "https://developer.x.com/",
|
|
634
|
+
"providers": ["twitter"],
|
|
635
|
+
"optional": true
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"id": "tiktok.accessToken",
|
|
639
|
+
"label": "TikTok Access Token",
|
|
640
|
+
"description": "Access token for the TikTok API (Business).",
|
|
641
|
+
"envVar": "TIKTOK_ACCESS_TOKEN",
|
|
642
|
+
"docsUrl": "https://developers.tiktok.com/",
|
|
643
|
+
"providers": ["tiktok"],
|
|
644
|
+
"optional": true
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"id": "tiktok.username",
|
|
648
|
+
"label": "TikTok Username",
|
|
649
|
+
"description": "Optional username for TikTok automation flows.",
|
|
650
|
+
"envVar": "TIKTOK_USERNAME",
|
|
651
|
+
"docsUrl": "https://www.tiktok.com/",
|
|
652
|
+
"providers": ["tiktok"],
|
|
653
|
+
"optional": true
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"id": "tiktok.password",
|
|
657
|
+
"label": "TikTok Password",
|
|
658
|
+
"description": "Optional password for TikTok automation flows.",
|
|
659
|
+
"envVar": "TIKTOK_PASSWORD",
|
|
660
|
+
"docsUrl": "https://www.tiktok.com/",
|
|
661
|
+
"providers": ["tiktok"],
|
|
662
|
+
"optional": true
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"id": "instagram.accessToken",
|
|
666
|
+
"label": "Instagram Access Token",
|
|
667
|
+
"description": "Access token for Instagram Graph API.",
|
|
668
|
+
"envVar": "INSTAGRAM_ACCESS_TOKEN",
|
|
669
|
+
"docsUrl": "https://developers.facebook.com/docs/instagram-api/",
|
|
670
|
+
"providers": ["instagram"],
|
|
671
|
+
"optional": true
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"id": "instagram.username",
|
|
675
|
+
"label": "Instagram Username",
|
|
676
|
+
"description": "Optional username for automation fallback flows.",
|
|
677
|
+
"envVar": "INSTAGRAM_USERNAME",
|
|
678
|
+
"docsUrl": "https://www.instagram.com/",
|
|
679
|
+
"providers": ["instagram"],
|
|
680
|
+
"optional": true
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"id": "instagram.password",
|
|
684
|
+
"label": "Instagram Password",
|
|
685
|
+
"description": "Optional password for automation fallback flows.",
|
|
686
|
+
"envVar": "INSTAGRAM_PASSWORD",
|
|
687
|
+
"docsUrl": "https://www.instagram.com/",
|
|
688
|
+
"providers": ["instagram"],
|
|
689
|
+
"optional": true
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"id": "youtube.apiKey",
|
|
693
|
+
"label": "YouTube API Key",
|
|
694
|
+
"description": "API key for YouTube Data API v3.",
|
|
695
|
+
"envVar": "YOUTUBE_API_KEY",
|
|
696
|
+
"docsUrl": "https://console.cloud.google.com/apis/credentials",
|
|
697
|
+
"providers": ["youtube"],
|
|
698
|
+
"optional": true
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"id": "youtube.oauth.clientId",
|
|
702
|
+
"label": "YouTube OAuth Client ID",
|
|
703
|
+
"description": "OAuth client ID for YouTube uploads and account-scoped actions.",
|
|
704
|
+
"envVar": "YOUTUBE_OAUTH_CLIENT_ID",
|
|
705
|
+
"docsUrl": "https://console.cloud.google.com/apis/credentials",
|
|
706
|
+
"providers": ["youtube"],
|
|
707
|
+
"optional": true
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
"id": "youtube.oauth.clientSecret",
|
|
711
|
+
"label": "YouTube OAuth Client Secret",
|
|
712
|
+
"description": "OAuth client secret for YouTube uploads and account-scoped actions.",
|
|
713
|
+
"envVar": "YOUTUBE_OAUTH_CLIENT_SECRET",
|
|
714
|
+
"docsUrl": "https://console.cloud.google.com/apis/credentials",
|
|
715
|
+
"providers": ["youtube"],
|
|
716
|
+
"optional": true
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"id": "youtube.oauth.refreshToken",
|
|
720
|
+
"label": "YouTube OAuth Refresh Token",
|
|
721
|
+
"description": "OAuth refresh token for long-lived YouTube API access.",
|
|
722
|
+
"envVar": "YOUTUBE_OAUTH_REFRESH_TOKEN",
|
|
723
|
+
"docsUrl": "https://developers.google.com/identity/protocols/oauth2",
|
|
724
|
+
"providers": ["youtube"],
|
|
725
|
+
"optional": true
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"id": "pinterest.accessToken",
|
|
729
|
+
"label": "Pinterest Access Token",
|
|
730
|
+
"description": "Access token for the Pinterest API.",
|
|
731
|
+
"envVar": "PINTEREST_ACCESS_TOKEN",
|
|
732
|
+
"docsUrl": "https://developers.pinterest.com/docs/getting-started/",
|
|
733
|
+
"providers": ["pinterest"],
|
|
734
|
+
"optional": true
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"id": "feishu.verificationToken",
|
|
738
|
+
"label": "Feishu Verification Token",
|
|
739
|
+
"description": "Verification token for validating Feishu/Lark webhook events.",
|
|
740
|
+
"envVar": "FEISHU_VERIFICATION_TOKEN",
|
|
741
|
+
"docsUrl": "https://open.feishu.cn/document/common-capabilities/event-subscription/event-subscription-security-settings",
|
|
742
|
+
"providers": ["feishu"],
|
|
743
|
+
"optional": true
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"id": "feishu.encryptKey",
|
|
747
|
+
"label": "Feishu Encrypt Key",
|
|
748
|
+
"description": "Encrypt key for decrypting Feishu/Lark webhook events (only if event encryption is enabled).",
|
|
749
|
+
"envVar": "FEISHU_ENCRYPT_KEY",
|
|
750
|
+
"docsUrl": "https://open.feishu.cn/document/common-capabilities/event-subscription/event-subscription-security-settings",
|
|
751
|
+
"providers": ["feishu"],
|
|
752
|
+
"optional": true
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"id": "irc.host",
|
|
756
|
+
"label": "IRC Host",
|
|
757
|
+
"description": "IRC server hostname (e.g., irc.libera.chat).",
|
|
758
|
+
"envVar": "IRC_HOST",
|
|
759
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
760
|
+
"providers": ["irc"],
|
|
761
|
+
"optional": true
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
"id": "irc.port",
|
|
765
|
+
"label": "IRC Port",
|
|
766
|
+
"description": "IRC server port (e.g., 6667 for plain TCP, 6697 for TLS).",
|
|
767
|
+
"envVar": "IRC_PORT",
|
|
768
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
769
|
+
"providers": ["irc"],
|
|
770
|
+
"optional": true
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
"id": "irc.tls",
|
|
774
|
+
"label": "IRC TLS",
|
|
775
|
+
"description": "Whether to connect using TLS (true/false).",
|
|
776
|
+
"envVar": "IRC_TLS",
|
|
777
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
778
|
+
"providers": ["irc"],
|
|
779
|
+
"optional": true
|
|
780
|
+
},
|
|
781
|
+
{
|
|
782
|
+
"id": "irc.nick",
|
|
783
|
+
"label": "IRC Nick",
|
|
784
|
+
"description": "Bot nick for IRC.",
|
|
785
|
+
"envVar": "IRC_NICK",
|
|
786
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
787
|
+
"providers": ["irc"],
|
|
788
|
+
"optional": true
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"id": "irc.username",
|
|
792
|
+
"label": "IRC Username",
|
|
793
|
+
"description": "IRC username for the USER command (defaults to nick).",
|
|
794
|
+
"envVar": "IRC_USERNAME",
|
|
795
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
796
|
+
"providers": ["irc"],
|
|
797
|
+
"optional": true
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"id": "irc.realname",
|
|
801
|
+
"label": "IRC Realname",
|
|
802
|
+
"description": "IRC realname for the USER command.",
|
|
803
|
+
"envVar": "IRC_REALNAME",
|
|
804
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
805
|
+
"providers": ["irc"],
|
|
806
|
+
"optional": true
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"id": "irc.password",
|
|
810
|
+
"label": "IRC Server Password",
|
|
811
|
+
"description": "Optional server password for PASS (if required by the network).",
|
|
812
|
+
"envVar": "IRC_PASSWORD",
|
|
813
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
814
|
+
"providers": ["irc"],
|
|
815
|
+
"optional": true
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"id": "irc.channels",
|
|
819
|
+
"label": "IRC Channels",
|
|
820
|
+
"description": "Comma-separated channels to join (e.g., \"#general,#support\").",
|
|
821
|
+
"envVar": "IRC_CHANNELS",
|
|
822
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
823
|
+
"providers": ["irc"],
|
|
824
|
+
"optional": true
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"id": "irc.nickservPassword",
|
|
828
|
+
"label": "IRC NickServ Password",
|
|
829
|
+
"description": "Optional NickServ password for identifying the bot nick (IDENTIFY).",
|
|
830
|
+
"envVar": "IRC_NICKSERV_PASSWORD",
|
|
831
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
832
|
+
"providers": ["irc"],
|
|
833
|
+
"optional": true
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"id": "irc.nickservService",
|
|
837
|
+
"label": "IRC NickServ Service",
|
|
838
|
+
"description": "NickServ service name (defaults to \"NickServ\").",
|
|
839
|
+
"envVar": "IRC_NICKSERV_SERVICE",
|
|
840
|
+
"docsUrl": "https://modern.ircdocs.horse/",
|
|
841
|
+
"providers": ["irc"],
|
|
842
|
+
"optional": true
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"id": "github.token",
|
|
846
|
+
"label": "GitHub Personal Access Token",
|
|
847
|
+
"description": "PAT for GitHub API access. Used by the GitHub extension for repo search, issues, PRs, and gists.",
|
|
848
|
+
"envVar": "GITHUB_TOKEN",
|
|
849
|
+
"docsUrl": "https://github.com/settings/tokens",
|
|
850
|
+
"providers": ["github"],
|
|
851
|
+
"optional": true
|
|
852
|
+
},
|
|
853
|
+
{
|
|
854
|
+
"id": "twitter.clientId",
|
|
855
|
+
"label": "Twitter/X OAuth 2.0 Client ID",
|
|
856
|
+
"description": "Client ID for Twitter OAuth 2.0 PKCE flow. Used by wunderland login --provider twitter.",
|
|
857
|
+
"envVar": "TWITTER_CLIENT_ID",
|
|
858
|
+
"docsUrl": "https://developer.x.com/en/portal/dashboard",
|
|
859
|
+
"providers": ["twitter"],
|
|
860
|
+
"optional": true
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
"id": "meta.appId",
|
|
864
|
+
"label": "Meta/Facebook App ID",
|
|
865
|
+
"description": "App ID for Instagram OAuth via Meta. Used by wunderland login --provider instagram.",
|
|
866
|
+
"envVar": "META_APP_ID",
|
|
867
|
+
"aliases": ["FACEBOOK_APP_ID"],
|
|
868
|
+
"docsUrl": "https://developers.facebook.com/apps/",
|
|
869
|
+
"providers": ["instagram"],
|
|
870
|
+
"optional": true
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"id": "meta.appSecret",
|
|
874
|
+
"label": "Meta/Facebook App Secret",
|
|
875
|
+
"description": "App secret for Instagram OAuth via Meta. Used by wunderland login --provider instagram.",
|
|
876
|
+
"envVar": "META_APP_SECRET",
|
|
877
|
+
"aliases": ["FACEBOOK_APP_SECRET"],
|
|
878
|
+
"docsUrl": "https://developers.facebook.com/apps/",
|
|
879
|
+
"providers": ["instagram"],
|
|
880
|
+
"optional": true
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"id": "linkedin.accessToken",
|
|
884
|
+
"label": "LinkedIn Access Token",
|
|
885
|
+
"description": "Access token for LinkedIn API calls (post, comment, analytics).",
|
|
886
|
+
"envVar": "LINKEDIN_ACCESS_TOKEN",
|
|
887
|
+
"docsUrl": "https://www.linkedin.com/developers/apps",
|
|
888
|
+
"providers": ["linkedin"],
|
|
889
|
+
"optional": true
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"id": "linkedin.clientId",
|
|
893
|
+
"label": "LinkedIn OAuth Client ID",
|
|
894
|
+
"description": "Client ID for LinkedIn OAuth login flow.",
|
|
895
|
+
"envVar": "LINKEDIN_CLIENT_ID",
|
|
896
|
+
"docsUrl": "https://www.linkedin.com/developers/apps",
|
|
897
|
+
"providers": ["linkedin"],
|
|
898
|
+
"optional": true
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"id": "linkedin.clientSecret",
|
|
902
|
+
"label": "LinkedIn OAuth Client Secret",
|
|
903
|
+
"description": "Client secret for LinkedIn OAuth login flow.",
|
|
904
|
+
"envVar": "LINKEDIN_CLIENT_SECRET",
|
|
905
|
+
"docsUrl": "https://www.linkedin.com/developers/apps",
|
|
906
|
+
"providers": ["linkedin"],
|
|
907
|
+
"optional": true
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"id": "facebook.accessToken",
|
|
911
|
+
"label": "Facebook Access Token",
|
|
912
|
+
"description": "Page/user access token for Facebook Graph API calls.",
|
|
913
|
+
"envVar": "FACEBOOK_ACCESS_TOKEN",
|
|
914
|
+
"docsUrl": "https://developers.facebook.com/tools/explorer/",
|
|
915
|
+
"providers": ["facebook"],
|
|
916
|
+
"optional": true
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"id": "threads.accessToken",
|
|
920
|
+
"label": "Threads Access Token",
|
|
921
|
+
"description": "Access token for Threads API (via Meta Graph).",
|
|
922
|
+
"envVar": "THREADS_ACCESS_TOKEN",
|
|
923
|
+
"docsUrl": "https://developers.facebook.com/docs/threads",
|
|
924
|
+
"providers": ["threads"],
|
|
925
|
+
"optional": true
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"id": "bluesky.handle",
|
|
929
|
+
"label": "Bluesky Handle",
|
|
930
|
+
"description": "AT Protocol handle (for example, yourname.bsky.social).",
|
|
931
|
+
"envVar": "BLUESKY_HANDLE",
|
|
932
|
+
"docsUrl": "https://bsky.app/settings/account",
|
|
933
|
+
"providers": ["bluesky"],
|
|
934
|
+
"optional": true
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"id": "bluesky.appPassword",
|
|
938
|
+
"label": "Bluesky App Password",
|
|
939
|
+
"description": "App-specific password for Bluesky API authentication.",
|
|
940
|
+
"envVar": "BLUESKY_APP_PASSWORD",
|
|
941
|
+
"docsUrl": "https://bsky.app/settings/app-passwords",
|
|
942
|
+
"providers": ["bluesky"],
|
|
943
|
+
"optional": true
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
"id": "mastodon.accessToken",
|
|
947
|
+
"label": "Mastodon Access Token",
|
|
948
|
+
"description": "Access token for Mastodon API calls.",
|
|
949
|
+
"envVar": "MASTODON_ACCESS_TOKEN",
|
|
950
|
+
"docsUrl": "https://docs.joinmastodon.org/client/token/",
|
|
951
|
+
"providers": ["mastodon"],
|
|
952
|
+
"optional": true
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"id": "mastodon.instanceUrl",
|
|
956
|
+
"label": "Mastodon Instance URL",
|
|
957
|
+
"description": "Mastodon instance URL (for example, https://mastodon.social).",
|
|
958
|
+
"envVar": "MASTODON_INSTANCE_URL",
|
|
959
|
+
"docsUrl": "https://docs.joinmastodon.org/",
|
|
960
|
+
"providers": ["mastodon"],
|
|
961
|
+
"optional": true
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"id": "farcaster.neynarApiKey",
|
|
965
|
+
"label": "Farcaster Neynar API Key",
|
|
966
|
+
"description": "API key for Neynar Farcaster API.",
|
|
967
|
+
"envVar": "FARCASTER_NEYNAR_API_KEY",
|
|
968
|
+
"docsUrl": "https://docs.neynar.com/docs/introduction",
|
|
969
|
+
"providers": ["farcaster"],
|
|
970
|
+
"optional": true
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"id": "farcaster.signerUuid",
|
|
974
|
+
"label": "Farcaster Signer UUID",
|
|
975
|
+
"description": "Signer UUID used for authenticated cast publishing via Neynar.",
|
|
976
|
+
"envVar": "FARCASTER_SIGNER_UUID",
|
|
977
|
+
"docsUrl": "https://docs.neynar.com/docs/post-a-cast",
|
|
978
|
+
"providers": ["farcaster"],
|
|
979
|
+
"optional": true
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"id": "farcaster.fid",
|
|
983
|
+
"label": "Farcaster FID",
|
|
984
|
+
"description": "Optional Farcaster user FID for account-scoped operations.",
|
|
985
|
+
"envVar": "FARCASTER_FID",
|
|
986
|
+
"docsUrl": "https://docs.neynar.com/docs/farcaster-user-profile",
|
|
987
|
+
"providers": ["farcaster"],
|
|
988
|
+
"optional": true
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"id": "lemmy.instanceUrl",
|
|
992
|
+
"label": "Lemmy Instance URL",
|
|
993
|
+
"description": "Base URL for the Lemmy instance.",
|
|
994
|
+
"envVar": "LEMMY_INSTANCE_URL",
|
|
995
|
+
"docsUrl": "https://join-lemmy.org/docs",
|
|
996
|
+
"providers": ["lemmy"],
|
|
997
|
+
"optional": true
|
|
998
|
+
},
|
|
999
|
+
{
|
|
1000
|
+
"id": "lemmy.username",
|
|
1001
|
+
"label": "Lemmy Username",
|
|
1002
|
+
"description": "Username for Lemmy account authentication.",
|
|
1003
|
+
"envVar": "LEMMY_USERNAME",
|
|
1004
|
+
"docsUrl": "https://join-lemmy.org/",
|
|
1005
|
+
"providers": ["lemmy"],
|
|
1006
|
+
"optional": true
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"id": "lemmy.password",
|
|
1010
|
+
"label": "Lemmy Password",
|
|
1011
|
+
"description": "Password for Lemmy account authentication.",
|
|
1012
|
+
"envVar": "LEMMY_PASSWORD",
|
|
1013
|
+
"docsUrl": "https://join-lemmy.org/",
|
|
1014
|
+
"providers": ["lemmy"],
|
|
1015
|
+
"optional": true
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
"id": "google.accessToken",
|
|
1019
|
+
"label": "Google OAuth Access Token",
|
|
1020
|
+
"description": "OAuth access token for Google Business Profile API calls.",
|
|
1021
|
+
"envVar": "GOOGLE_ACCESS_TOKEN",
|
|
1022
|
+
"docsUrl": "https://developers.google.com/my-business/content/prereqs",
|
|
1023
|
+
"providers": ["google-business"],
|
|
1024
|
+
"optional": true
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"id": "google.businessAccountId",
|
|
1028
|
+
"label": "Google Business Account ID",
|
|
1029
|
+
"description": "Optional account ID used to scope Google Business operations.",
|
|
1030
|
+
"envVar": "GOOGLE_BUSINESS_ACCOUNT_ID",
|
|
1031
|
+
"docsUrl": "https://developers.google.com/my-business/content/location-data",
|
|
1032
|
+
"providers": ["google-business"],
|
|
1033
|
+
"optional": true
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
"id": "google.businessLocationId",
|
|
1037
|
+
"label": "Google Business Location ID",
|
|
1038
|
+
"description": "Optional location ID used to scope Google Business operations.",
|
|
1039
|
+
"envVar": "GOOGLE_BUSINESS_LOCATION_ID",
|
|
1040
|
+
"docsUrl": "https://developers.google.com/my-business/content/location-data",
|
|
1041
|
+
"providers": ["google-business"],
|
|
1042
|
+
"optional": true
|
|
1043
|
+
},
|
|
1044
|
+
{
|
|
1045
|
+
"id": "devto.apiKey",
|
|
1046
|
+
"label": "Dev.to API Key",
|
|
1047
|
+
"description": "API key for Dev.to publishing via blog-publisher.",
|
|
1048
|
+
"envVar": "DEVTO_API_KEY",
|
|
1049
|
+
"docsUrl": "https://developers.forem.com/api",
|
|
1050
|
+
"providers": ["devto"],
|
|
1051
|
+
"optional": true
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"id": "hashnode.apiKey",
|
|
1055
|
+
"label": "Hashnode Personal Access Token",
|
|
1056
|
+
"description": "Personal access token for Hashnode publishing via blog-publisher.",
|
|
1057
|
+
"envVar": "HASHNODE_API_KEY",
|
|
1058
|
+
"docsUrl": "https://hashnode.com/settings/developer",
|
|
1059
|
+
"providers": ["devto"],
|
|
1060
|
+
"optional": true
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"id": "medium.accessToken",
|
|
1064
|
+
"label": "Medium Integration Token",
|
|
1065
|
+
"description": "Integration token for Medium publishing via blog-publisher.",
|
|
1066
|
+
"envVar": "MEDIUM_ACCESS_TOKEN",
|
|
1067
|
+
"docsUrl": "https://github.com/Medium/medium-api-docs",
|
|
1068
|
+
"providers": ["devto"],
|
|
1069
|
+
"optional": true
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"id": "wordpress.apiUrl",
|
|
1073
|
+
"label": "WordPress API URL",
|
|
1074
|
+
"description": "WordPress REST API base URL (for example, https://example.com/wp-json/wp/v2).",
|
|
1075
|
+
"envVar": "WORDPRESS_API_URL",
|
|
1076
|
+
"docsUrl": "https://developer.wordpress.org/rest-api/",
|
|
1077
|
+
"providers": ["devto"],
|
|
1078
|
+
"optional": true
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
"id": "wordpress.username",
|
|
1082
|
+
"label": "WordPress Username",
|
|
1083
|
+
"description": "Username used for WordPress application-password authentication.",
|
|
1084
|
+
"envVar": "WORDPRESS_USERNAME",
|
|
1085
|
+
"docsUrl": "https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/",
|
|
1086
|
+
"providers": ["devto"],
|
|
1087
|
+
"optional": true
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"id": "wordpress.appPassword",
|
|
1091
|
+
"label": "WordPress App Password",
|
|
1092
|
+
"description": "Application password for WordPress REST API authentication.",
|
|
1093
|
+
"envVar": "WORDPRESS_APP_PASSWORD",
|
|
1094
|
+
"docsUrl": "https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/",
|
|
1095
|
+
"providers": ["devto"],
|
|
1096
|
+
"optional": true
|
|
1097
|
+
}
|
|
1098
|
+
]
|