Skip to content

Commit c1190a3

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 2d1ad6f + 5eaa57d commit c1190a3

File tree

601 files changed

+64236
-34675
lines changed

Some content is hidden

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

601 files changed

+64236
-34675
lines changed

.editorconfig

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 4
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false

.env.example

+127-38
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
1-
# Required environment variables
1+
# Discord Configuration
22
DISCORD_APPLICATION_ID=
3-
DISCORD_API_TOKEN= # Bot token
4-
OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk-
5-
REDPILL_API_KEY= # REDPILL API Key
6-
GROQ_API_KEY=gsk_*
3+
DISCORD_API_TOKEN= # Bot token
4+
DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional)
5+
6+
# AI Model API Keys
7+
OPENAI_API_KEY= # OpenAI API key, starting with sk-
8+
9+
ETERNALAI_URL=
10+
ETERNALAI_API_KEY=
11+
12+
GROK_API_KEY= # GROK API Key
13+
GROQ_API_KEY= # Starts with gsk_
714
OPENROUTER_API_KEY=
815
GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
916

17+
# Speech Synthesis
1018
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
1119

12-
# ELEVENLABS SETTINGS
20+
# ElevenLabs Settings
1321
ELEVENLABS_MODEL_ID=eleven_multilingual_v2
1422
ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM
1523
ELEVENLABS_VOICE_STABILITY=0.5
@@ -19,70 +27,151 @@ ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false
1927
ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4
2028
ELEVENLABS_OUTPUT_FORMAT=pcm_16000
2129

30+
# Twitter/X Configuration
2231
TWITTER_DRY_RUN=false
2332
TWITTER_USERNAME= # Account username
2433
TWITTER_PASSWORD= # Account password
25-
TWITTER_EMAIL= # Account email
34+
TWITTER_EMAIL= # Account email
35+
TWITTER_2FA_SECRET=
2636
TWITTER_COOKIES= # Account cookies
27-
37+
TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions
2838
X_SERVER_URL=
2939
XAI_API_KEY=
3040
XAI_MODEL=
3141

32-
#USE IMAGE GEN
33-
IMAGE_GEN= #TRUE
34-
35-
#Leave blank to use local embeddings
36-
USE_OPENAI_EMBEDDING= #TRUE
37-
38-
#OpenRouter (Use one model for everything or set individual for small, medium, large tasks)
39-
#leave blank to use defaults hermes 70b for small tasks & 405b for medium/large tasks
40-
OPENROUTER_MODEL=
41-
SMALL_OPENROUTER_MODEL=
42-
MEDIUM_OLLAMA_MODEL=
43-
LARGE_OLLAMA_MODEL=
42+
# Post Interval Settings (in minutes)
43+
POST_INTERVAL_MIN= # Default: 90
44+
POST_INTERVAL_MAX= # Default: 180
45+
POST_IMMEDIATELY=
4446

47+
# Feature Flags
48+
IMAGE_GEN= # Set to TRUE to enable image generation
49+
USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
50+
USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local
4551

46-
#Set to Use for New OLLAMA provider
47-
OLLAMA_SERVER_URL= #Leave blank for default localhost:11434
48-
OLLAMA_MODEL=
49-
OLLAMA_EMBEDDING_MODEL= #default mxbai-embed-large
50-
#To use custom model types for different tasks set these
51-
SMALL_OLLAMA_MODEL= #default llama3.2
52-
MEDIUM_OLLAMA_MODEL= #default herems3
53-
LARGE_OLLAMA_MODEL= #default hermes3:70b
52+
# OpenRouter Models
53+
OPENROUTER_MODEL= # Default: uses hermes 70b/405b
54+
SMALL_OPENROUTER_MODEL=
55+
MEDIUM_OPENROUTER_MODEL=
56+
LARGE_OPENROUTER_MODEL=
5457

55-
# For asking Claude stuff
56-
ANTHROPIC_API_KEY=
57-
58-
# Heurist API (Get API Key at https://heurist.ai/dev-access)
59-
HEURIST_API_KEY=
58+
# REDPILL Configuration
59+
# https://docs.red-pill.ai/get-started/supported-models
60+
REDPILL_API_KEY= # REDPILL API Key
61+
REDPILL_MODEL=
62+
SMALL_REDPILL_MODEL= # Default: gpt-4o-mini
63+
MEDIUM_REDPILL_MODEL= # Default: gpt-4o
64+
LARGE_REDPILL_MODEL= # Default: gpt-4o
65+
66+
# Ollama Configuration
67+
OLLAMA_SERVER_URL= # Default: localhost:11434
68+
OLLAMA_MODEL=
69+
OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large
70+
SMALL_OLLAMA_MODEL= # Default: llama3.2
71+
MEDIUM_OLLAMA_MODEL= # Default: hermes3
72+
LARGE_OLLAMA_MODEL= # Default: hermes3:70b
73+
74+
#LlamaLocal Configuration
75+
LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
76+
77+
# API Keys
78+
ANTHROPIC_API_KEY= # For Claude
79+
HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
80+
81+
# Heurist Models
6082
SMALL_HEURIST_LANGUAGE_MODEL=
6183
MEDIUM_HEURIST_LANGUAGE_MODEL=
6284
LARGE_HEURIST_LANGUAGE_MODEL=
6385
HEURIST_IMAGE_MODEL=
6486

65-
WALLET_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY
66-
WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY
87+
# EVM
88+
EVM_PRIVATE_KEY=
89+
90+
# Solana
91+
SOLANA_PRIVATE_KEY=
92+
SOLANA_PUBLIC_KEY=
93+
94+
# Fallback Wallet Configuration (deprecated)
95+
WALLET_PRIVATE_KEY=
96+
WALLET_PUBLIC_KEY=
6797

6898
BIRDEYE_API_KEY=
6999

100+
# Solana Configuration
70101
SOL_ADDRESS=So11111111111111111111111111111111111111112
71102
SLIPPAGE=1
72103
BASE_MINT=So11111111111111111111111111111111111111112
73104
RPC_URL=https://api.mainnet-beta.solana.com
74105
HELIUS_API_KEY=
75106

76-
77-
## Telegram
107+
# Telegram Configuration
78108
TELEGRAM_BOT_TOKEN=
79109

110+
# Together Configuration
80111
TOGETHER_API_KEY=
112+
113+
# Server Configuration
81114
SERVER_PORT=3000
82115

83-
# Starknet
116+
# Starknet Configuration
84117
STARKNET_ADDRESS=
85118
STARKNET_PRIVATE_KEY=
119+
STARKNET_RPC_URL=
120+
121+
# Intiface Configuration
122+
INTIFACE_WEBSOCKET_URL=ws://localhost:12345
123+
124+
# Farcaster
125+
FARCASTER_HUB_URL=
126+
FARCASTER_FID=
127+
FARCASTER_PRIVATE_KEY=
128+
129+
# Coinbase
130+
COINBASE_COMMERCE_KEY= # from coinbase developer portal
131+
COINBASE_API_KEY= # from coinbase developer portal
132+
COINBASE_PRIVATE_KEY= # from coinbase developer portal
133+
# 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
134+
COINBASE_GENERATED_WALLET_ID= # not your address but the wallet id from generating a wallet through the plugin
135+
COINBASE_GENERATED_WALLET_HEX_SEED= # not your address but the wallet hex seed from generating a wallet through the plugin and calling export
136+
137+
# Conflux Configuration
138+
CONFLUX_CORE_PRIVATE_KEY=
139+
CONFLUX_CORE_SPACE_RPC_URL=
140+
CONFLUX_ESPACE_PRIVATE_KEY=
141+
CONFLUX_ESPACE_RPC_URL=
142+
CONFLUX_MEME_CONTRACT_ADDRESS=
143+
144+
#ZeroG
145+
ZEROG_INDEXER_RPC=
146+
ZEROG_EVM_RPC=
147+
ZEROG_PRIVATE_KEY=
148+
ZEROG_FLOW_ADDRESS=
149+
150+
# Coinbase
151+
COINBASE_COMMERCE_KEY=
152+
COINBASE_API_KEY=
153+
COINBASE_PRIVATE_KEY=
154+
155+
COINBASE_GENERATED_WALLET_ID=
156+
COINBASE_GENERATED_WALLET_HEX_SEED=
157+
158+
# TEE Configuration
159+
DSTACK_SIMULATOR_ENDPOINT=
160+
WALLET_SECRET_SALT= # ONLY DEFINE IF YOU WANT TO USE TEE Plugin, otherwise it will throw errors
161+
162+
# Galadriel Configuration
163+
GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
164+
165+
# fal.ai Configuration
166+
FAL_API_KEY=
167+
FAL_AI_LORA_PATH=
168+
169+
# WhatsApp Cloud API Configuration
170+
WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console
171+
WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API
172+
WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager
173+
WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification
174+
WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0)
86175

87176
# ICP
88177
INTERNET_COMPUTER_PRIVATE_KEY=

.eslintrc.json

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"plugins": [
3+
"@stylistic"
4+
],
5+
"extends": [
6+
"next/core-web-vitals",
7+
"plugin:@stylistic/recommended-extends"
8+
],
9+
"rules": {
10+
"@stylistic/indent": [
11+
"error",
12+
4,
13+
{
14+
"SwitchCase": 1
15+
}
16+
],
17+
"@stylistic/no-tabs": "error",
18+
"@stylistic/member-delimiter-style": [
19+
"error",
20+
{
21+
"multiline": {
22+
"delimiter": "semi",
23+
"requireLast": true
24+
},
25+
"singleline": {
26+
"delimiter": "semi",
27+
"requireLast": false
28+
}
29+
}
30+
],
31+
"@stylistic/eol-last": [
32+
"error",
33+
"always"
34+
],
35+
"@stylistic/multiline-ternary": "off",
36+
"@stylistic/semi": [
37+
"error",
38+
"always"
39+
],
40+
"@stylistic/quotes": "off",
41+
"@stylistic/comma-dangle": "off",
42+
"@stylistic/brace-style": [
43+
"error",
44+
"1tbs"
45+
]
46+
}
47+
}

.github/pull_request_template.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ If a docs change is needed: I have updated the documentation accordingly.
4747
## Detailed testing steps
4848

4949
<!--
50-
None, automtated tests are fine.
50+
None, automated tests are fine.
5151
-->
5252

5353
<!--
@@ -77,3 +77,9 @@ None, automtated tests are fine.
7777
<!--
7878
## Deployment instructions
7979
-->
80+
81+
<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for contribute role and join us in #development-feed -->
82+
<!--
83+
## Discord username
84+
85+
-->

.github/workflows/ci.yaml

+10-2
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,21 @@ jobs:
2525
- name: Run Prettier
2626
run: pnpm run prettier --check .
2727

28+
- name: Run Linter
29+
run: pnpm run lint
30+
2831
- name: Create test env file
2932
run: |
3033
echo "TEST_DATABASE_CLIENT=sqlite" > packages/core/.env.test
3134
echo "NODE_ENV=test" >> packages/core/.env.test
3235
33-
# - name: Run tests
34-
# run: cd packages/core && pnpm test // YOLO FOR NOW
36+
- name: Run tests
37+
run: cd packages/core && pnpm test
3538

3639
- name: Build packages
3740
run: pnpm run build
41+
42+
# - name: Upload coverage reports to Codecov
43+
# uses: codecov/codecov-action@v5
44+
# with:
45+
# token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/pr.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ jobs:
2525
- name: Set status
2626
if: failure()
2727
run: |
28-
gh pr comment ${{ github.event.pull_request.number }} --body "❌ PR title does not match the required pattern. Please use the format: 'type: description' (e.g., 'feat: add new feature')."
28+
gh pr comment ${{ github.event.pull_request.number }} --body "❌ PR title does not match the required pattern. Please use the format: 'type: description' (e.g., 'feat|fix|docs|style|refactor|test|chore: title')."

0 commit comments

Comments
 (0)