Skip to content

Commit a49923f

Browse files
authored
Merge branch 'develop' into 813-disable-fal-safety-checker
2 parents eed8b06 + 9ac6f3b commit a49923f

File tree

771 files changed

+88440
-47002
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

771 files changed

+88440
-47002
lines changed

.env.example

+204-70
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,38 @@
11
# Discord Configuration
22
DISCORD_APPLICATION_ID=
3-
DISCORD_API_TOKEN= # Bot token
4-
DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional)
3+
DISCORD_API_TOKEN= # Bot token
4+
DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional)
55

66
# AI Model API Keys
7-
OPENAI_API_KEY= # OpenAI API key, starting with sk-
8-
7+
OPENAI_API_KEY= # OpenAI API key, starting with sk-
8+
SMALL_OPENAI_MODEL= # Default: gpt-4o-mini
9+
MEDIUM_OPENAI_MODEL= # Default: gpt-4o
10+
LARGE_OPENAI_MODEL= # Default: gpt-4o
11+
EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small
12+
IMAGE_OPENAI_MODEL= # Default: dall-e-3
13+
14+
# Eternal AI's Decentralized Inference API
915
ETERNALAI_URL=
16+
ETERNALAI_MODEL= # Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16"
1017
ETERNALAI_API_KEY=
1118

12-
GROK_API_KEY= # GROK API Key
13-
GROQ_API_KEY= # Starts with gsk_
19+
GROK_API_KEY= # GROK API Key
20+
GROQ_API_KEY= # Starts with gsk_
1421
OPENROUTER_API_KEY=
15-
GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
22+
GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
23+
24+
ALI_BAILIAN_API_KEY= # Ali Bailian API Key
25+
NANOGPT_API_KEY= # NanoGPT API Key
1626

17-
ALI_BAILIAN_API_KEY= # Ali Bailian API Key
18-
VOLENGINE_API_KEY= # VolEngine API Key
27+
HYPERBOLIC_API_KEY= # Hyperbolic API Key
28+
HYPERBOLIC_MODEL=
29+
IMAGE_HYPERBOLIC_MODEL= # Default: FLUX.1-dev
30+
SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct
31+
MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct
32+
LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct
1933

2034
# Speech Synthesis
21-
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
35+
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
2236

2337
# ElevenLabs Settings
2438
ELEVENLABS_MODEL_ID=eleven_multilingual_v2
@@ -32,65 +46,109 @@ ELEVENLABS_OUTPUT_FORMAT=pcm_16000
3246

3347
# Twitter/X Configuration
3448
TWITTER_DRY_RUN=false
35-
TWITTER_USERNAME= # Account username
36-
TWITTER_PASSWORD= # Account password
37-
TWITTER_EMAIL= # Account email
49+
TWITTER_USERNAME= # Account username
50+
TWITTER_PASSWORD= # Account password
51+
TWITTER_EMAIL= # Account email
3852
TWITTER_2FA_SECRET=
39-
TWITTER_COOKIES= # Account cookies
40-
TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions
53+
54+
TWITTER_COOKIES= # Account cookies
55+
TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions
56+
TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned
57+
TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with
58+
4159
X_SERVER_URL=
4260
XAI_API_KEY=
4361
XAI_MODEL=
4462

4563
# Post Interval Settings (in minutes)
46-
POST_INTERVAL_MIN= # Default: 90
47-
POST_INTERVAL_MAX= # Default: 180
64+
POST_INTERVAL_MIN= # Default: 90
65+
POST_INTERVAL_MAX= # Default: 180
4866
POST_IMMEDIATELY=
4967

68+
# Twitter action processing configuration
69+
ACTION_INTERVAL=300000 # Interval in milliseconds between action processing runs (default: 5 minutes)
70+
ENABLE_ACTION_PROCESSING=false # Set to true to enable the action processing loop
71+
5072
# Feature Flags
51-
IMAGE_GEN= # Set to TRUE to enable image generation
52-
USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
53-
USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local
73+
IMAGE_GEN= # Set to TRUE to enable image generation
74+
USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
75+
USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local
5476

5577
# OpenRouter Models
56-
OPENROUTER_MODEL= # Default: uses hermes 70b/405b
78+
OPENROUTER_MODEL= # Default: uses hermes 70b/405b
5779
SMALL_OPENROUTER_MODEL=
5880
MEDIUM_OPENROUTER_MODEL=
5981
LARGE_OPENROUTER_MODEL=
6082

6183
# REDPILL Configuration
6284
# https://docs.red-pill.ai/get-started/supported-models
63-
REDPILL_API_KEY= # REDPILL API Key
85+
REDPILL_API_KEY= # REDPILL API Key
6486
REDPILL_MODEL=
65-
SMALL_REDPILL_MODEL= # Default: gpt-4o-mini
66-
MEDIUM_REDPILL_MODEL= # Default: gpt-4o
67-
LARGE_REDPILL_MODEL= # Default: gpt-4o
87+
SMALL_REDPILL_MODEL= # Default: gpt-4o-mini
88+
MEDIUM_REDPILL_MODEL= # Default: gpt-4o
89+
LARGE_REDPILL_MODEL= # Default: gpt-4o
90+
91+
# Grok Configuration
92+
SMALL_GROK_MODEL= # Default: grok-2-1212
93+
MEDIUM_GROK_MODEL= # Default: grok-2-1212
94+
LARGE_GROK_MODEL= # Default: grok-2-1212
95+
EMBEDDING_GROK_MODEL= # Default: grok-2-1212
6896

6997
# Ollama Configuration
70-
OLLAMA_SERVER_URL= # Default: localhost:11434
98+
OLLAMA_SERVER_URL= # Default: localhost:11434
7199
OLLAMA_MODEL=
72-
OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large
73-
SMALL_OLLAMA_MODEL= # Default: llama3.2
74-
MEDIUM_OLLAMA_MODEL= # Default: hermes3
75-
LARGE_OLLAMA_MODEL= # Default: hermes3:70b
76-
77-
#LlamaLocal Configuration
78-
LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
79-
80-
# API Keys
81-
ANTHROPIC_API_KEY= # For Claude
82-
HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
83-
84-
# Heurist Models
85-
SMALL_HEURIST_LANGUAGE_MODEL=
86-
MEDIUM_HEURIST_LANGUAGE_MODEL=
87-
LARGE_HEURIST_LANGUAGE_MODEL=
88-
HEURIST_IMAGE_MODEL=
100+
OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large
101+
SMALL_OLLAMA_MODEL= # Default: llama3.2
102+
MEDIUM_OLLAMA_MODEL= # Default: hermes3
103+
LARGE_OLLAMA_MODEL= # Default: hermes3:70b
104+
105+
# Google Configuration
106+
GOOGLE_MODEL=
107+
SMALL_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
108+
MEDIUM_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
109+
LARGE_GOOGLE_MODEL= # Default: gemini-1.5-pro-latest
110+
EMBEDDING_GOOGLE_MODEL= # Default: text-embedding-004
111+
112+
# Groq Configuration
113+
SMALL_GROQ_MODEL= # Default: llama-3.1-8b-instant
114+
MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile
115+
LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview
116+
EMBEDDING_GROQ_MODEL= # Default: llama-3.1-8b-instant
117+
118+
# LlamaLocal Configuration
119+
LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
120+
121+
# NanoGPT Configuration
122+
SMALL_NANOGPT_MODEL= # Default: gpt-4o-mini
123+
MEDIUM_NANOGPT_MODEL= # Default: gpt-4o
124+
LARGE_NANOGPT_MODEL= # Default: gpt-4o
125+
126+
# Anthropic Configuration
127+
ANTHROPIC_API_KEY= # For Claude
128+
SMALL_ANTHROPIC_MODEL= # Default: claude-3-haiku-20240307
129+
MEDIUM_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
130+
LARGE_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
131+
132+
# Heurist Configuration
133+
HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
134+
SMALL_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
135+
MEDIUM_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
136+
LARGE_HEURIST_MODEL= # Default: meta-llama/llama-3.1-405b-instruct
137+
HEURIST_IMAGE_MODEL= # Default: PepeXL
89138

90139
# Gaianet Configuration
91140
GAIANET_MODEL=
92141
GAIANET_SERVER_URL=
142+
143+
SMALL_GAIANET_MODEL= # Default: llama3b
144+
SMALL_GAIANET_SERVER_URL= # Default: https://llama3b.gaia.domains/v1
145+
MEDIUM_GAIANET_MODEL= # Default: llama
146+
MEDIUM_GAIANET_SERVER_URL= # Default: https://llama8b.gaia.domains/v1
147+
LARGE_GAIANET_MODEL= # Default: qwen72b
148+
LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1
149+
93150
GAIANET_EMBEDDING_MODEL=
151+
USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local
94152

95153
# EVM
96154
EVM_PRIVATE_KEY=
@@ -99,6 +157,10 @@ EVM_PROVIDER_URL=
99157
# Solana
100158
SOLANA_PRIVATE_KEY=
101159
SOLANA_PUBLIC_KEY=
160+
SOLANA_CLUSTER= # Default: devnet. Solana Cluster: 'devnet' | 'testnet' | 'mainnet-beta'
161+
SOLANA_ADMIN_PRIVATE_KEY= # This wallet is used to verify NFTs
162+
SOLANA_ADMIN_PUBLIC_KEY= # This wallet is used to verify NFTs
163+
SOLANA_VERIFY_TOKEN= # Authentication token for calling the verification API
102164

103165
# Fallback Wallet Configuration (deprecated)
104166
WALLET_PRIVATE_KEY=
@@ -130,18 +192,28 @@ STARKNET_RPC_URL=
130192
# Intiface Configuration
131193
INTIFACE_WEBSOCKET_URL=ws://localhost:12345
132194

133-
# Farcaster
134-
FARCASTER_HUB_URL=
135-
FARCASTER_FID=
136-
FARCASTER_PRIVATE_KEY=
195+
# Farcaster Neynar Configuration
196+
FARCASTER_FID= # The FID associated with the account your are sending casts from
197+
FARCASTER_NEYNAR_API_KEY= # Neynar API key: https://neynar.com/
198+
FARCASTER_NEYNAR_SIGNER_UUID= # Signer for the account you are sending casts from. Create a signer here: https://dev.neynar.com/app
199+
FARCASTER_DRY_RUN=false # Set to true if you want to run the bot without actually publishing casts
200+
FARCASTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for farcaster interactions (replies and mentions)
137201

138202
# Coinbase
139-
COINBASE_COMMERCE_KEY= # from coinbase developer portal
140-
COINBASE_API_KEY= # from coinbase developer portal
141-
COINBASE_PRIVATE_KEY= # from coinbase developer portal
142-
# if not configured it will be generated and written to runtime.character.settings.secrets.COINBASE_GENERATED_WALLET_ID and runtime.character.settings.secrets.COINBASE_GENERATED_WALLET_HEX_SEED
143-
COINBASE_GENERATED_WALLET_ID= # not your address but the wallet id from generating a wallet through the plugin
144-
COINBASE_GENERATED_WALLET_HEX_SEED= # not your address but the wallet hex seed from generating a wallet through the plugin and calling export
203+
COINBASE_COMMERCE_KEY= # From Coinbase developer portal
204+
COINBASE_API_KEY= # From Coinbase developer portal
205+
COINBASE_PRIVATE_KEY= # From Coinbase developer portal
206+
COINBASE_GENERATED_WALLET_ID= # Not your address but the wallet ID from generating a wallet through the plugin
207+
COINBASE_GENERATED_WALLET_HEX_SEED= # Not your address but the wallet hex seed from generating a wallet through the plugin and calling export
208+
COINBASE_NOTIFICATION_URI= # For webhook plugin the uri you want to send the webhook to for dummy ones use https://webhook.site
209+
210+
# Coinbase Charity Configuration
211+
IS_CHARITABLE=false # Set to true to enable charity donations
212+
CHARITY_ADDRESS_BASE=0x1234567890123456789012345678901234567890
213+
CHARITY_ADDRESS_SOL=pWvDXKu6CpbKKvKQkZvDA66hgsTB6X2AgFxksYogHLV
214+
CHARITY_ADDRESS_ETH=0x750EF1D7a0b4Ab1c97B7A623D7917CcEb5ea779C
215+
CHARITY_ADDRESS_ARB=0x1234567890123456789012345678901234567890
216+
CHARITY_ADDRESS_POL=0x1234567890123456789012345678901234567890
145217

146218
# Conflux Configuration
147219
CONFLUX_CORE_PRIVATE_KEY=
@@ -150,38 +222,100 @@ CONFLUX_ESPACE_PRIVATE_KEY=
150222
CONFLUX_ESPACE_RPC_URL=
151223
CONFLUX_MEME_CONTRACT_ADDRESS=
152224

153-
#ZeroG
225+
# ZeroG
154226
ZEROG_INDEXER_RPC=
155227
ZEROG_EVM_RPC=
156228
ZEROG_PRIVATE_KEY=
157229
ZEROG_FLOW_ADDRESS=
158230

159-
# Coinbase
160-
COINBASE_COMMERCE_KEY=
161-
COINBASE_API_KEY=
162-
COINBASE_PRIVATE_KEY=
163-
164-
COINBASE_GENERATED_WALLET_ID=
165-
COINBASE_GENERATED_WALLET_HEX_SEED=
166-
167231
# TEE Configuration
168-
DSTACK_SIMULATOR_ENDPOINT=
169-
WALLET_SECRET_SALT= # ONLY DEFINE IF YOU WANT TO USE TEE Plugin, otherwise it will throw errors
232+
# TEE_MODE options:
233+
# - LOCAL: Uses simulator at localhost:8090 (for local development)
234+
# - DOCKER: Uses simulator at host.docker.internal:8090 (for docker development)
235+
# - PRODUCTION: No simulator, uses production endpoints
236+
# Defaults to OFF if not specified
237+
TEE_MODE=OFF # LOCAL | DOCKER | PRODUCTION
238+
WALLET_SECRET_SALT= # ONLY define if you want to use TEE Plugin, otherwise it will throw errors
170239

171240
# Galadriel Configuration
172-
GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
241+
GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
242+
243+
# Venice Configuration
244+
VENICE_API_KEY= # generate from venice settings
245+
SMALL_VENICE_MODEL= # Default: llama-3.3-70b
246+
MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b
247+
LARGE_VENICE_MODEL= # Default: llama-3.1-405b
248+
IMAGE_VENICE_MODEL= # Default: fluently-xl
173249

174250
# fal.ai Configuration
175251
FAL_API_KEY=
176252
FAL_AI_LORA_PATH=
177253

178254
# WhatsApp Cloud API Configuration
179-
WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console
180-
WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API
181-
WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager
182-
WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification
183-
WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0)
255+
WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console
256+
WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API
257+
WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager
258+
WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification
259+
WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0)
260+
261+
# Flow Blockchain Configuration
262+
FLOW_ADDRESS=
263+
FLOW_PRIVATE_KEY= # Private key for SHA3-256 + P256 ECDSA
264+
FLOW_NETWORK= # Default: mainnet
265+
FLOW_ENDPOINT_URL= # Default: https://mainnet.onflow.org
184266

185267
# ICP
186268
INTERNET_COMPUTER_PRIVATE_KEY=
187269
INTERNET_COMPUTER_ADDRESS=
270+
271+
# Aptos
272+
APTOS_PRIVATE_KEY= # Aptos private key
273+
APTOS_NETWORK= # Must be one of mainnet, testnet
274+
275+
# EchoChambers Configuration
276+
ECHOCHAMBERS_API_URL=http://127.0.0.1:3333
277+
ECHOCHAMBERS_API_KEY=testingkey0011
278+
ECHOCHAMBERS_USERNAME=eliza
279+
ECHOCHAMBERS_DEFAULT_ROOM=general
280+
ECHOCHAMBERS_POLL_INTERVAL=60
281+
ECHOCHAMBERS_MAX_MESSAGES=10
282+
283+
# MultiversX
284+
MVX_PRIVATE_KEY= # Multiversx private key
285+
MVX_NETWORK= # must be one of mainnet, devnet, testnet
286+
287+
# NEAR
288+
NEAR_WALLET_SECRET_KEY=
289+
NEAR_WALLET_PUBLIC_KEY=
290+
NEAR_ADDRESS=
291+
SLIPPAGE=1
292+
RPC_URL=https://rpc.testnet.near.org
293+
NEAR_NETWORK=testnet # or mainnet
294+
295+
# ZKsync Era Configuration
296+
ZKSYNC_ADDRESS=
297+
ZKSYNC_PRIVATE_KEY=
298+
299+
# Ton
300+
TON_PRIVATE_KEY= # Ton Mnemonic Seed Phrase Join With Empty String
301+
TON_RPC_URL= # ton rpc
302+
303+
# AWS S3 Configuration Settings for File Upload
304+
AWS_ACCESS_KEY_ID=
305+
AWS_SECRET_ACCESS_KEY=
306+
AWS_REGION=
307+
AWS_S3_BUCKET=
308+
AWS_S3_UPLOAD_PATH=
309+
310+
# Deepgram
311+
DEEPGRAM_API_KEY=
312+
313+
# Sui
314+
SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`)
315+
SUI_NETWORK= # must be one of mainnet, testnet, devnet, localnet
316+
317+
# Story
318+
STORY_PRIVATE_KEY= # Story private key
319+
STORY_API_BASE_URL= # Story API base URL
320+
STORY_API_KEY= # Story API key
321+
PINATA_JWT= # Pinata JWT for uploading files to IPFS

.github/workflows/ci.yaml

+6-6
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
cache: "pnpm"
2121

2222
- name: Install dependencies
23-
run: pnpm install --no-frozen-lockfile
23+
run: pnpm install --frozen-lockfile
2424

2525
- name: Run Prettier
2626
run: pnpm run prettier --check .
@@ -34,12 +34,12 @@ jobs:
3434
echo "NODE_ENV=test" >> packages/core/.env.test
3535
3636
- name: Run tests
37-
run: cd packages/core && pnpm test
37+
run: cd packages/core && pnpm test:coverage
3838

3939
- name: Build packages
4040
run: pnpm run build
4141

42-
# - name: Upload coverage reports to Codecov
43-
# uses: codecov/codecov-action@v5
44-
# with:
45-
# token: ${{ secrets.CODECOV_TOKEN }}
42+
- name: Upload coverage reports to Codecov
43+
uses: codecov/codecov-action@v5
44+
with:
45+
token: ${{ secrets.CODECOV_TOKEN }}

0 commit comments

Comments
 (0)