Skip to content

Commit c5e509f

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into feat/tee
2 parents be2f730 + 4cefcba commit c5e509f

File tree

1,489 files changed

+86530
-44169
lines changed

Some content is hidden

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

1,489 files changed

+86530
-44169
lines changed

.devcontainer/Dockerfile

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ARG NODE_VER=23.5.0
2+
ARG BASE_IMAGE=node:${NODE_VER}
3+
FROM $BASE_IMAGE
4+
5+
ENV DEBIAN_FRONTEND=noninteractive
6+
7+
# Install pnpm globally and install necessary build tools
8+
RUN apt-get update \
9+
&& apt-get install -y \
10+
git \
11+
python3 \
12+
make \
13+
g++ \
14+
nano \
15+
vim \
16+
&& apt-get clean \
17+
&& rm -rf /var/lib/apt/lists/*
18+
19+
ARG PNPM_VER=9.15.2
20+
RUN npm install -g pnpm@${PNPM_VER}
21+
22+
# Set Python 3 as the default python
23+
RUN ln -s /usr/bin/python3 /usr/bin/python
24+
ENV DEBIAN_FRONTEND=dialog

.devcontainer/devcontainer.json

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// See https://aka.ms/vscode-remote/devcontainer.json for format details.
2+
{
3+
"name": "elizaos-dev",
4+
"dockerFile": "Dockerfile",
5+
"build": {
6+
"args": {
7+
"NODE_VER": "23.5.0",
8+
"PNPM_VER": "9.15.2"
9+
}
10+
},
11+
"privileged": true,
12+
"runArgs": [
13+
"-p=3000:3000", // Add port for server api
14+
"-p=5173:5173", // Add port for client
15+
//"--volume=/usr/lib/wsl:/usr/lib/wsl", // uncomment for WSL
16+
//"--volume=/mnt/wslg:/mnt/wslg", // uncomment for WSL
17+
"--gpus=all", // ! uncomment for vGPU
18+
//"--device=/dev/dxg", // uncomment this for vGPU under WSL
19+
"--device=/dev/dri"
20+
],
21+
"containerEnv": {
22+
//"MESA_D3D12_DEFAULT_ADAPTER_NAME": "NVIDIA", // uncomment for WSL
23+
//"LD_LIBRARY_PATH": "/usr/lib/wsl/lib" // uncomment for WSL
24+
},
25+
"customizations": {
26+
"vscode": {
27+
"extensions": [
28+
"vscode.json-language-features",
29+
"vscode.css-language-features",
30+
// "foxundermoon.shell-format",
31+
// "dbaeumer.vscode-eslint",
32+
// "esbenp.prettier-vscode"
33+
"ms-python.python"
34+
]
35+
}
36+
},
37+
"features": {}
38+
}

.env.example

+100-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Cache Configs
22
CACHE_STORE=database # Defaults to database. Other available cache store: redis and filesystem
3-
REDIS_URL= # Redis URL - could be a local redis instance or cloud hosted redis. Also support rediss:// urls
3+
REDIS_URL= # Redis URL - could be a local redis instance or cloud hosted redis. Also support rediss:// URLs
4+
5+
# Supabase Configuration
6+
SUPABASE_URL=
7+
SUPABASE_ANON_KEY=
8+
9+
PGLITE_DATA_DIR= #../pgLite/ if selecting a directory --- or memory:// if selecting in memory
410

511
# Discord Configuration
612
DISCORD_APPLICATION_ID=
@@ -19,9 +25,11 @@ IMAGE_OPENAI_MODEL= # Default: dall-e-3
1925
# Eternal AI's Decentralized Inference API
2026
ETERNALAI_URL=
2127
ETERNALAI_MODEL= # Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16"
28+
ETERNALAI_CHAIN_ID=45762 #Default: "45762"
2229
ETERNALAI_API_KEY=
30+
ETERNALAI_LOG=false #Default: false
2331

24-
GROK_API_KEY= # GROK API Key
32+
GROK_API_KEY= # GROK/xAI API Key
2533
GROQ_API_KEY= # Starts with gsk_
2634
OPENROUTER_API_KEY=
2735
GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
@@ -36,6 +44,18 @@ SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct
3644
MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct
3745
LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct
3846

47+
48+
# Infera Configuration
49+
50+
INFERA_API_KEY= # visit api.infera.org/docs to obtain an API key under /signup_user
51+
INFERA_MODEL= # Default: llama3.2:latest
52+
INFERA_SERVER_URL= # Default: https://api.infera.org/
53+
54+
SMALL_INFERA_MODEL= #Recommended: llama3.2:latest
55+
MEDIUM_INFERA_MODEL= #Recommended: mistral-nemo:latest
56+
LARGE_INFERA_MODEL= #Recommended: mistral-small:latest
57+
58+
3959
# Livepeer configuration
4060
LIVEPEER_GATEWAY_URL= # Free inference gateways and docs: https://livepeer-eliza.com/
4161
LIVEPEER_IMAGE_MODEL= # Default: ByteDance/SDXL-Lightning
@@ -72,21 +92,24 @@ TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to
7292
TWITTER_RETRY_LIMIT= # Maximum retry attempts for Twitter login
7393
TWITTER_SPACES_ENABLE=false # Enable or disable Twitter Spaces logic
7494

75-
X_SERVER_URL=
76-
XAI_API_KEY=
77-
XAI_MODEL=
95+
# CONFIGURATION FOR APPROVING TWEETS BEFORE IT GETS POSTED
96+
TWITTER_APPROVAL_DISCORD_CHANNEL_ID= # Channel ID for the Discord bot to listen and send approval messages
97+
TWITTER_APPROVAL_DISCORD_BOT_TOKEN= # Discord bot token (this could be a different bot token from DISCORD_API_TOKEN)
98+
TWITTER_APPROVAL_ENABLED= # Enable or disable Twitter approval logic #Default is false
99+
TWITTER_APPROVAL_CHECK_INTERVAL=60000 # Default: 60 seconds
78100

79101
# Post Interval Settings (in minutes)
80102
POST_INTERVAL_MIN= # Default: 90
81103
POST_INTERVAL_MAX= # Default: 180
82104
POST_IMMEDIATELY=
83105

84106
# Twitter action processing configuration
85-
ACTION_INTERVAL=300000 # Interval in milliseconds between action processing runs (default: 5 minutes)
107+
ACTION_INTERVAL= # Interval in minutes between action processing runs (default: 5 minutes)
86108
ENABLE_ACTION_PROCESSING=false # Set to true to enable the action processing loop
109+
MAX_ACTIONS_PROCESSING=1 # Maximum number of actions (e.g., retweets, likes) to process in a single cycle. Helps prevent excessive or uncontrolled actions.
110+
ACTION_TIMELINE_TYPE=foryou # Type of timeline to interact with. Options: "foryou" or "following". Default: "foryou"
87111

88112
# Feature Flags
89-
IMAGE_GEN= # Set to TRUE to enable image generation
90113
USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
91114
USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local
92115

@@ -182,6 +205,9 @@ EVM_PROVIDER_URL=
182205
AVALANCHE_PRIVATE_KEY=
183206
AVALANCHE_PUBLIC_KEY=
184207

208+
# Arthera
209+
ARTHERA_PRIVATE_KEY=
210+
185211
# Solana
186212
SOLANA_PRIVATE_KEY=
187213
SOLANA_PUBLIC_KEY=
@@ -200,11 +226,12 @@ BIRDEYE_API_KEY=
200226
SOL_ADDRESS=So11111111111111111111111111111111111111112
201227
SLIPPAGE=1
202228
BASE_MINT=So11111111111111111111111111111111111111112
203-
RPC_URL=https://api.mainnet-beta.solana.com
229+
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
204230
HELIUS_API_KEY=
205231

206232
# Telegram Configuration
207233
TELEGRAM_BOT_TOKEN=
234+
TELEGRAM_API_ROOT=
208235

209236
# Together Configuration
210237
TOGETHER_API_KEY=
@@ -248,6 +275,9 @@ CHARITY_ADDRESS_ETH=0x750EF1D7a0b4Ab1c97B7A623D7917CcEb5ea779C
248275
CHARITY_ADDRESS_ARB=0x1234567890123456789012345678901234567890
249276
CHARITY_ADDRESS_POL=0x1234567890123456789012345678901234567890
250277

278+
# thirdweb
279+
THIRDWEB_SECRET_KEY= # Create key on thirdweb developer dashboard: https://thirdweb.com/
280+
251281
# Conflux Configuration
252282
CONFLUX_CORE_PRIVATE_KEY=
253283
CONFLUX_CORE_SPACE_RPC_URL=
@@ -274,6 +304,10 @@ ENABLE_TEE_LOG=false # Set to true to enable TEE logging, only availa
274304

275305
# Galadriel Configuration
276306
GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
307+
SMALL_GALADRIEL_MODEL= # Default: gpt-4o-mini
308+
MEDIUM_GALADRIEL_MODEL= # Default: gpt-4o
309+
LARGE_GALADRIEL_MODEL= # Default: gpt-4o
310+
GALADRIEL_FINE_TUNE_API_KEY= # Use an OpenAI key to use a fine-tuned model with the verified inference endpoint
277311

278312
# Venice Configuration
279313
VENICE_API_KEY= # generate from venice settings
@@ -282,6 +316,10 @@ MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b
282316
LARGE_VENICE_MODEL= # Default: llama-3.1-405b
283317
IMAGE_VENICE_MODEL= # Default: fluently-xl
284318

319+
# Coin Price Configuration
320+
COINMARKETCAP_API_KEY=
321+
COINGECKO_API_KEY=
322+
285323
# Akash Chat API Configuration docs: https://chatapi.akash.network/documentation
286324
AKASH_CHAT_API_KEY= # Get from https://chatapi.akash.network/
287325
SMALL_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-2-3B-Instruct
@@ -332,14 +370,24 @@ MVX_NETWORK= # must be one of mainnet, devnet, testnet
332370
NEAR_WALLET_SECRET_KEY=
333371
NEAR_WALLET_PUBLIC_KEY=
334372
NEAR_ADDRESS=
335-
SLIPPAGE=1
336-
RPC_URL=https://rpc.testnet.near.org
373+
NEAR_SLIPPAGE=1
374+
NEAR_RPC_URL=https://rpc.testnet.near.org
337375
NEAR_NETWORK=testnet # or mainnet
338376

339377
# ZKsync Era Configuration
340378
ZKSYNC_ADDRESS=
341379
ZKSYNC_PRIVATE_KEY=
342380

381+
# Avail DA Configuration
382+
AVAIL_ADDRESS=
383+
AVAIL_SEED=
384+
AVAIL_APP_ID=0
385+
AVAIL_RPC_URL=wss://avail-turing.public.blastapi.io/ # (Default) Testnet: wss://avail-turing.public.blastapi.io/ | Mainnet: wss://avail-mainnet.public.blastapi.io/
386+
387+
# Marlin
388+
TEE_MARLIN= # Set "yes" to enable the plugin
389+
TEE_MARLIN_ATTESTATION_ENDPOINT= # Optional, default "http://127.0.0.1:1350"
390+
343391
# Ton
344392
TON_PRIVATE_KEY= # Ton Mnemonic Seed Phrase Join With Empty String
345393
TON_RPC_URL= # ton rpc
@@ -364,9 +412,51 @@ STORY_API_BASE_URL= # Story API base URL
364412
STORY_API_KEY= # Story API key
365413
PINATA_JWT= # Pinata JWT for uploading files to IPFS
366414

415+
# Cosmos
416+
COSMOS_RECOVERY_PHRASE= # 12 words recovery phrase (need to be in quotes, because of spaces)
417+
COSMOS_AVAILABLE_CHAINS= # mantrachaintestnet2,cosmos # Array of chains
367418
# Cronos zkEVM
368419
CRONOSZKEVM_ADDRESS=
369420
CRONOSZKEVM_PRIVATE_KEY=
370421

371422
# Fuel Ecosystem (FuelVM)
372423
FUEL_WALLET_PRIVATE_KEY=
424+
425+
# Tokenizer Settings
426+
TOKENIZER_MODEL= # Specify the tokenizer model to be used.
427+
TOKENIZER_TYPE= # Options: tiktoken (for OpenAI models) or auto (AutoTokenizer from Hugging Face for non-OpenAI models). Default: tiktoken.
428+
429+
#LetzAI
430+
LETZAI_API_KEY= # LetzAI API Key
431+
LETZAI_MODELS= # list of Letzai models to add to each prompt, e.g.: "@modelname1, @modelname2"
432+
433+
434+
# Spheron
435+
SPHERON_PRIVATE_KEY=
436+
SPHERON_PROVIDER_PROXY_URL=
437+
SPHERON_WALLET_ADDRESS=
438+
439+
# Stargaze NFT marketplace from Cosmos (You can use https://graphql.mainnet.stargaze-apis.com/graphql)
440+
STARGAZE_ENDPOINT=
441+
442+
# API key for giphy from https://developers.giphy.com/dashboard/
443+
GIPHY_API_KEY=
444+
445+
# GenLayer
446+
GENLAYER_PRIVATE_KEY= # Private key of the GenLayer account to use for the agent in this format (0x0000000000000000000000000000000000000000000000000000000000000000)
447+
448+
# OpenWeather
449+
OPEN_WEATHER_API_KEY= # OpenWeather API key
450+
451+
# Allora
452+
ALLORA_API_KEY= # Allora API key, format: UP-f8db7d6558ab432ca0d92716
453+
ALLORA_CHAIN_SLUG= # must be one of mainnet, testnet. If not specified, it will use testnet by default
454+
455+
# Opacity zkTLS
456+
OPACITY_TEAM_ID=f309ac8ae8a9a14a7e62cd1a521b1c5f
457+
OPACITY_CLOUDFLARE_NAME=eigen-test
458+
OPACITY_PROVER_URL=https://opacity-ai-zktls-demo.vercel.app
459+
460+
# Verifiable Inference Configuration
461+
VERIFIABLE_INFERENCE_ENABLED=false # Set to false to disable verifiable inference
462+
VERIFIABLE_INFERENCE_PROVIDER=opacity # Options: opacity

.eslintrc.json

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

.github/workflows/ci.yaml

+1-1
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
23+
run: pnpm install -r --no-frozen-lockfile
2424

2525
- name: Run Prettier
2626
run: pnpm run prettier --check .

0 commit comments

Comments
 (0)