Skip to content

Commit 1ce9104

Browse files
committed
Merge branch 'develop' of https://github.com/elizaos/eliza into feat/sol-agent-kit
2 parents 25b484a + 865ba30 commit 1ce9104

File tree

1,243 files changed

+61146
-37702
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,243 files changed

+61146
-37702
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

+69-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should joi
99

1010
# AI Model API Keys
1111
OPENAI_API_KEY= # OpenAI API key, starting with sk-
12+
OPENAI_API_URL= # OpenAI API Endpoint (optional), Default: https://api.openai.com/v1
1213
SMALL_OPENAI_MODEL= # Default: gpt-4o-mini
1314
MEDIUM_OPENAI_MODEL= # Default: gpt-4o
1415
LARGE_OPENAI_MODEL= # Default: gpt-4o
@@ -19,8 +20,9 @@ IMAGE_OPENAI_MODEL= # Default: dall-e-3
1920
ETERNALAI_URL=
2021
ETERNALAI_MODEL= # Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16"
2122
ETERNALAI_API_KEY=
23+
ETERNAL_AI_LOG_REQUEST=false #Default: false
2224

23-
GROK_API_KEY= # GROK API Key
25+
GROK_API_KEY= # GROK/xAI API Key
2426
GROQ_API_KEY= # Starts with gsk_
2527
OPENROUTER_API_KEY=
2628
GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
@@ -35,9 +37,28 @@ SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct
3537
MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct
3638
LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct
3739

40+
41+
# Infera Configuration
42+
43+
INFERA_API_KEY= # visit api.infera.org/docs to obtain an API key under /signup_user
44+
INFERA_MODEL= # Default: llama3.2:latest
45+
INFERA_SERVER_URL= # Default: https://api.infera.org/
46+
47+
SMALL_INFERA_MODEL= #Recommended: llama3.2:latest
48+
MEDIUM_INFERA_MODEL= #Recommended: mistral-nemo:latest
49+
LARGE_INFERA_MODEL= #Recommended: mistral-small:latest
50+
51+
52+
# Livepeer configuration
53+
LIVEPEER_GATEWAY_URL= # Free inference gateways and docs: https://livepeer-eliza.com/
54+
LIVEPEER_IMAGE_MODEL= # Default: ByteDance/SDXL-Lightning
55+
3856
# Speech Synthesis
3957
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
4058

59+
# Transcription Provider
60+
TRANSCRIPTION_PROVIDER= # Default: local (possible values: openai, deepgram, local)
61+
4162
# Direct Client Setting
4263
EXPRESS_MAX_PAYLOAD= # Default: 100kb
4364

@@ -62,8 +83,8 @@ TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check fo
6283
TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned
6384
TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with
6485
TWITTER_RETRY_LIMIT= # Maximum retry attempts for Twitter login
86+
TWITTER_SPACES_ENABLE=false # Enable or disable Twitter Spaces logic
6587

66-
X_SERVER_URL=
6788
XAI_API_KEY=
6889
XAI_MODEL=
6990

@@ -73,8 +94,10 @@ POST_INTERVAL_MAX= # Default: 180
7394
POST_IMMEDIATELY=
7495

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

79102
# Feature Flags
80103
IMAGE_GEN= # Set to TRUE to enable image generation
@@ -157,10 +180,22 @@ LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1
157180
GAIANET_EMBEDDING_MODEL=
158181
USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local
159182

183+
# Volcengine Configuration
184+
VOLENGINE_API_URL= # Volcengine API Endpoint, Default: https://open.volcengineapi.com/api/v3/
185+
VOLENGINE_MODEL=
186+
SMALL_VOLENGINE_MODEL= # Default: doubao-lite-128k
187+
MEDIUM_VOLENGINE_MODEL= # Default: doubao-pro-128k
188+
LARGE_VOLENGINE_MODEL= # Default: doubao-pro-256k
189+
VOLENGINE_EMBEDDING_MODEL= # Default: doubao-embedding
190+
160191
# EVM
161192
EVM_PRIVATE_KEY=
162193
EVM_PROVIDER_URL=
163194

195+
# Avalanche
196+
AVALANCHE_PRIVATE_KEY=
197+
AVALANCHE_PUBLIC_KEY=
198+
164199
# Solana
165200
SOLANA_PRIVATE_KEY=
166201
SOLANA_PUBLIC_KEY=
@@ -317,6 +352,16 @@ NEAR_NETWORK=testnet # or mainnet
317352
ZKSYNC_ADDRESS=
318353
ZKSYNC_PRIVATE_KEY=
319354

355+
# Avail DA Configuration
356+
AVAIL_ADDRESS=
357+
AVAIL_SEED=
358+
AVAIL_APP_ID=0
359+
AVAIL_RPC_URL=wss://avail-turing.public.blastapi.io/ # (Default) Testnet: wss://avail-turing.public.blastapi.io/ | Mainnet: wss://avail-mainnet.public.blastapi.io/
360+
361+
# Marlin
362+
TEE_MARLIN= # Set "yes" to enable the plugin
363+
TEE_MARLIN_ATTESTATION_ENDPOINT= # Optional, default "http://127.0.0.1:1350"
364+
320365
# Ton
321366
TON_PRIVATE_KEY= # Ton Mnemonic Seed Phrase Join With Empty String
322367
TON_RPC_URL= # ton rpc
@@ -332,11 +377,31 @@ AWS_S3_UPLOAD_PATH=
332377
DEEPGRAM_API_KEY=
333378

334379
# Sui
335-
SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`)
380+
SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`) , Also support `suiprivatekeyxxxx` (sui keytool export --key-identity 0x63)
336381
SUI_NETWORK= # must be one of mainnet, testnet, devnet, localnet
337382

338383
# Story
339384
STORY_PRIVATE_KEY= # Story private key
340385
STORY_API_BASE_URL= # Story API base URL
341386
STORY_API_KEY= # Story API key
342387
PINATA_JWT= # Pinata JWT for uploading files to IPFS
388+
389+
# Cronos zkEVM
390+
CRONOSZKEVM_ADDRESS=
391+
CRONOSZKEVM_PRIVATE_KEY=
392+
393+
# Fuel Ecosystem (FuelVM)
394+
FUEL_WALLET_PRIVATE_KEY=
395+
396+
# Tokenizer Settings
397+
TOKENIZER_MODEL= # Specify the tokenizer model to be used.
398+
TOKENIZER_TYPE= # Options: tiktoken (for OpenAI models) or auto (AutoTokenizer from Hugging Face for non-OpenAI models). Default: tiktoken.
399+
400+
# Stargaze NFT marketplace from Cosmos (You can use https://graphql.mainnet.stargaze-apis.com/graphql)
401+
STARGAZE_ENDPOINT=
402+
403+
# GenLayer
404+
GENLAYER_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000000 # Private key of the GenLayer account to use for the agent
405+
406+
# OpenWeather
407+
OPEN_WEATHER_API_KEY= # OpenWeather API key

.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/pull_request_template.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
<!-- Use this template by filling in information and copy and pasting relevant items out of the html comments. -->
1+
<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->
22

3-
# Relates to:
3+
# Relates to
44

55
<!-- LINK TO ISSUE OR TICKET -->
66

7-
<!-- This risks section is to be filled out before final review and merge. -->
7+
<!-- This risks section must be filled out before the final review and merge. -->
88

99
# Risks
1010

1111
<!--
12-
Low, medium, large. List what kind of risks, and what could be effected.
12+
Low, medium, large. List what kind of risks and what could be affected.
1313
-->
1414

1515
# Background
@@ -25,7 +25,7 @@ Features (non-breaking change which adds functionality)
2525
Updates (new versions of included code)
2626
-->
2727

28-
<!-- This "Why" section is most relevant if there is no linked issue explaining why. If there is a related issue it might make sense to skip this why section. -->
28+
<!-- This "Why" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->
2929
<!--
3030
## Why are we doing this? Any context or related work?
3131
-->
@@ -35,10 +35,10 @@ Updates (new versions of included code)
3535
<!--
3636
My changes do not require a change to the project documentation.
3737
My changes require a change to the project documentation.
38-
If a docs change is needed: I have updated the documentation accordingly.
38+
If documentation change is needed: I have updated the documentation accordingly.
3939
-->
4040

41-
<!-- Please show how you tested the PR. This will really help if the PR needs to be retested, and probably help the PR get merged quicker. -->
41+
<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->
4242

4343
# Testing
4444

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

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

5353
<!--
@@ -63,22 +63,22 @@ None, automated tests are fine.
6363
### After
6464
-->
6565

66-
<!-- If there is anything about the deploy, please make a note. -->
66+
<!-- If there is anything about the deployment, please make a note. -->
6767
<!--
6868
# Deploy Notes
6969
-->
7070

71-
<!--  Copy and paste commandline output. -->
71+
<!--  Copy and paste command line output. -->
7272
<!--
7373
## Database changes
7474
-->
7575

76-
<!--  If there is something more than the automated steps, please specifiy deploy instructions. -->
76+
<!--  Please specify deploy instructions if there is something more than the automated steps. -->
7777
<!--
7878
## Deployment instructions
7979
-->
8080

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 -->
81+
<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for the contributor role and join us in #development-feed -->
8282
<!--
8383
## Discord username
8484

.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)