diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..e5deb93b1d --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,24 @@ +ARG NODE_VER=23.5.0 +ARG BASE_IMAGE=node:${NODE_VER} +FROM $BASE_IMAGE + +ENV DEBIAN_FRONTEND=noninteractive + +# Install pnpm globally and install necessary build tools +RUN apt-get update \ + && apt-get install -y \ + git \ + python3 \ + make \ + g++ \ + nano \ + vim \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +ARG PNPM_VER=9.15.2 +RUN npm install -g pnpm@${PNPM_VER} + +# Set Python 3 as the default python +RUN ln -s /usr/bin/python3 /usr/bin/python +ENV DEBIAN_FRONTEND=dialog diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..23aca531b4 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,38 @@ +// See https://aka.ms/vscode-remote/devcontainer.json for format details. +{ + "name": "elizaos-dev", + "dockerFile": "Dockerfile", + "build": { + "args": { + "NODE_VER": "23.5.0", + "PNPM_VER": "9.15.2" + } + }, + "privileged": true, + "runArgs": [ + "-p=3000:3000", // Add port for server api + "-p=5173:5173", // Add port for client + //"--volume=/usr/lib/wsl:/usr/lib/wsl", // uncomment for WSL + //"--volume=/mnt/wslg:/mnt/wslg", // uncomment for WSL + "--gpus=all", // ! uncomment for vGPU + //"--device=/dev/dxg", // uncomment this for vGPU under WSL + "--device=/dev/dri" + ], + "containerEnv": { + //"MESA_D3D12_DEFAULT_ADAPTER_NAME": "NVIDIA", // uncomment for WSL + //"LD_LIBRARY_PATH": "/usr/lib/wsl/lib" // uncomment for WSL + }, + "customizations": { + "vscode": { + "extensions": [ + "vscode.json-language-features", + "vscode.css-language-features", + // "foxundermoon.shell-format", + // "dbaeumer.vscode-eslint", + // "esbenp.prettier-vscode" + "ms-python.python" + ] + } + }, + "features": {} +} \ No newline at end of file diff --git a/.env.example b/.env.example index b1f05998b7..a9364c2427 100644 --- a/.env.example +++ b/.env.example @@ -1,33 +1,97 @@ +#################################### +#### Server & DB Configurations #### +#################################### + # Cache Configs CACHE_STORE=database # Defaults to database. Other available cache store: redis and filesystem -REDIS_URL= # Redis URL - could be a local redis instance or cloud hosted redis. Also support rediss:// urls +REDIS_URL= # Redis URL - could be a local redis instance or cloud hosted redis. Also support rediss:// URLs +PGLITE_DATA_DIR= #../pgLite/ if selecting a directory --- or memory:// if selecting in memory + +# Eliza Port Config +SERVER_PORT=3000 + +# Supabase Configuration +SUPABASE_URL= +SUPABASE_ANON_KEY= + +############################### +#### Client Configurations #### +############################### # Discord Configuration DISCORD_APPLICATION_ID= DISCORD_API_TOKEN= # Bot token DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional) -# AI Model API Keys +# Farcaster Neynar Configuration +FARCASTER_FID= # The FID associated with the account your are sending casts from +FARCASTER_NEYNAR_API_KEY= # Neynar API key: https://neynar.com/ +FARCASTER_NEYNAR_SIGNER_UUID= # Signer for the account you are sending casts from. Create a signer here: https://dev.neynar.com/app +FARCASTER_DRY_RUN=false # Set to true if you want to run the bot without actually publishing casts +FARCASTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for farcaster interactions (replies and mentions) + +# Telegram Configuration +TELEGRAM_BOT_TOKEN= + +# Twitter/X Configuration +TWITTER_DRY_RUN=false +TWITTER_USERNAME= # Account username +TWITTER_PASSWORD= # Account password +TWITTER_EMAIL= # Account email +TWITTER_2FA_SECRET= +TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions +TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned +TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with +TWITTER_RETRY_LIMIT= # Maximum retry attempts for Twitter login +TWITTER_SPACES_ENABLE=false # Enable or disable Twitter Spaces logic +# Post Interval Settings (in minutes) +POST_INTERVAL_MIN= # Default: 90 +POST_INTERVAL_MAX= # Default: 180 +POST_IMMEDIATELY= # Default: false +# Twitter action processing configuration +ACTION_INTERVAL= # Interval in minutes between action processing runs (default: 5 minutes) +ENABLE_ACTION_PROCESSING=false # Set to true to enable the action processing loop +MAX_ACTIONS_PROCESSING=1 # Maximum number of actions (e.g., retweets, likes) to process in a single cycle. Helps prevent excessive or uncontrolled actions. +ACTION_TIMELINE_TYPE=foryou # Type of timeline to interact with. Options: "foryou" or "following". Default: "foryou" +# CONFIGURATION FOR APPROVING TWEETS BEFORE IT GETS POSTED +TWITTER_APPROVAL_DISCORD_CHANNEL_ID= # Channel ID for the Discord bot to listen and send approval messages +TWITTER_APPROVAL_DISCORD_BOT_TOKEN= # Discord bot token (this could be a different bot token from DISCORD_API_TOKEN) +TWITTER_APPROVAL_ENABLED= # Enable or disable Twitter approval logic #Default is false +TWITTER_APPROVAL_CHECK_INTERVAL=60000 # Default: 60 seconds + +# WhatsApp Cloud API Configuration +WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console +WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API +WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager +WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification +WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0) + + +# Direct Client Setting +EXPRESS_MAX_PAYLOAD= # Default: 100kb + +####################################### +#### Model Provider Configurations #### +####################################### + +# OpenAI Configuration OPENAI_API_KEY= # OpenAI API key, starting with sk- +OPENAI_API_URL= # OpenAI API Endpoint (optional), Default: https://api.openai.com/v1 SMALL_OPENAI_MODEL= # Default: gpt-4o-mini MEDIUM_OPENAI_MODEL= # Default: gpt-4o LARGE_OPENAI_MODEL= # Default: gpt-4o EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small IMAGE_OPENAI_MODEL= # Default: dall-e-3 +USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local # Eternal AI's Decentralized Inference API ETERNALAI_URL= ETERNALAI_MODEL= # Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16" +ETERNALAI_CHAIN_ID=45762 #Default: "45762" ETERNALAI_API_KEY= +ETERNALAI_LOG=false #Default: false -GROK_API_KEY= # GROK API Key -GROQ_API_KEY= # Starts with gsk_ -OPENROUTER_API_KEY= -GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key - -ALI_BAILIAN_API_KEY= # Ali Bailian API Key -NANOGPT_API_KEY= # NanoGPT API Key - +# Hyperbolic Configuration HYPERBOLIC_API_KEY= # Hyperbolic API Key HYPERBOLIC_MODEL= IMAGE_HYPERBOLIC_MODEL= # Default: FLUX.1-dev @@ -35,11 +99,43 @@ SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct +# Infera Configuration + INFERA_API_KEY= # visit api.infera.org/docs to obtain an API key under /signup_user + INFERA_MODEL= # Default: llama3.2:latest + INFERA_SERVER_URL= # Default: https://api.infera.org/ + SMALL_INFERA_MODEL= #Recommended: llama3.2:latest + MEDIUM_INFERA_MODEL= #Recommended: mistral-nemo:latest + LARGE_INFERA_MODEL= #Recommended: mistral-small:latest + + # Venice Configuration + VENICE_API_KEY= # generate from venice settings + SMALL_VENICE_MODEL= # Default: llama-3.3-70b + MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b + LARGE_VENICE_MODEL= # Default: llama-3.1-405b + IMAGE_VENICE_MODEL= # Default: fluently-xl + + # Nineteen.ai Configuration + NINETEEN_AI_API_KEY= # Get a free api key from https://nineteen.ai/app/api + SMALL_NINETEEN_AI_MODEL= # Default: unsloth/Llama-3.2-3B-Instruct + MEDIUM_NINETEEN_AI_MODEL= # Default: unsloth/Meta-Llama-3.1-8B-Instruct + LARGE_NINETEEN_AI_MODEL= # Default: hugging-quants/Meta-Llama-3.1-70B-Instruct-AWQ-INT4 + IMAGE_NINETEEN_AI_MODE= # Default: dataautogpt3/ProteusV0.4-Lightning + + # Akash Chat API Configuration docs: https://chatapi.akash.network/documentation + AKASH_CHAT_API_KEY= # Get from https://chatapi.akash.network/ + SMALL_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-2-3B-Instruct + MEDIUM_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-3-70B-Instruct + LARGE_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-1-405B-Instruct-FP8 + +# Livepeer configuration +LIVEPEER_GATEWAY_URL= # Free inference gateways and docs: https://livepeer-eliza.com/ +LIVEPEER_IMAGE_MODEL= # Default: ByteDance/SDXL-Lightning + # Speech Synthesis ELEVENLABS_XI_API_KEY= # API key from elevenlabs -# Direct Client Setting -EXPRESS_MAX_PAYLOAD= # Default: 100kb +# Transcription Provider +TRANSCRIPTION_PROVIDER= # Default: local (possible values: openai, deepgram, local) # ElevenLabs Settings ELEVENLABS_MODEL_ID=eleven_multilingual_v2 @@ -51,44 +147,14 @@ ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4 ELEVENLABS_OUTPUT_FORMAT=pcm_16000 -# Twitter/X Configuration -TWITTER_DRY_RUN=false -TWITTER_USERNAME= # Account username -TWITTER_PASSWORD= # Account password -TWITTER_EMAIL= # Account email -TWITTER_2FA_SECRET= - -TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions -TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned -TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with -TWITTER_RETRY_LIMIT= # Maximum retry attempts for Twitter login - -X_SERVER_URL= -XAI_API_KEY= -XAI_MODEL= - -# Post Interval Settings (in minutes) -POST_INTERVAL_MIN= # Default: 90 -POST_INTERVAL_MAX= # Default: 180 -POST_IMMEDIATELY= - -# Twitter action processing configuration -ACTION_INTERVAL=300000 # Interval in milliseconds between action processing runs (default: 5 minutes) -ENABLE_ACTION_PROCESSING=false # Set to true to enable the action processing loop - -# Feature Flags -IMAGE_GEN= # Set to TRUE to enable image generation -USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local -USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local - -# OpenRouter Models +# OpenRouter Configuration +OPENROUTER_API_KEY= # OpenRouter API Key OPENROUTER_MODEL= # Default: uses hermes 70b/405b SMALL_OPENROUTER_MODEL= MEDIUM_OPENROUTER_MODEL= LARGE_OPENROUTER_MODEL= -# REDPILL Configuration -# https://docs.red-pill.ai/get-started/supported-models +# REDPILL Configuration (https://docs.red-pill.ai/get-started/supported-models) REDPILL_API_KEY= # REDPILL API Key REDPILL_MODEL= SMALL_REDPILL_MODEL= # Default: gpt-4o-mini @@ -96,6 +162,7 @@ MEDIUM_REDPILL_MODEL= # Default: gpt-4o LARGE_REDPILL_MODEL= # Default: gpt-4o # Grok Configuration +GROK_API_KEY= # GROK/xAI API Key SMALL_GROK_MODEL= # Default: grok-2-1212 MEDIUM_GROK_MODEL= # Default: grok-2-1212 LARGE_GROK_MODEL= # Default: grok-2-1212 @@ -104,6 +171,7 @@ EMBEDDING_GROK_MODEL= # Default: grok-2-1212 # Ollama Configuration OLLAMA_SERVER_URL= # Default: localhost:11434 OLLAMA_MODEL= +USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large SMALL_OLLAMA_MODEL= # Default: llama3.2 MEDIUM_OLLAMA_MODEL= # Default: hermes3 @@ -116,7 +184,14 @@ MEDIUM_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest LARGE_GOOGLE_MODEL= # Default: gemini-1.5-pro-latest EMBEDDING_GOOGLE_MODEL= # Default: text-embedding-004 +# Mistral Configuration +MISTRAL_MODEL= +SMALL_MISTRAL_MODEL= # Default: mistral-small-latest +MEDIUM_MISTRAL_MODEL= # Default: mistral-large-latest +LARGE_MISTRAL_MODEL= # Default: mistral-large-latest + # Groq Configuration +GROQ_API_KEY= # Starts with gsk_ SMALL_GROQ_MODEL= # Default: llama-3.1-8b-instant MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview @@ -146,21 +221,73 @@ HEURIST_IMAGE_MODEL= # Default: PepeXL # Gaianet Configuration GAIANET_MODEL= GAIANET_SERVER_URL= - SMALL_GAIANET_MODEL= # Default: llama3b SMALL_GAIANET_SERVER_URL= # Default: https://llama3b.gaia.domains/v1 MEDIUM_GAIANET_MODEL= # Default: llama MEDIUM_GAIANET_SERVER_URL= # Default: https://llama8b.gaia.domains/v1 LARGE_GAIANET_MODEL= # Default: qwen72b LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1 - GAIANET_EMBEDDING_MODEL= USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local +# Volcengine Configuration +VOLENGINE_API_URL= # Volcengine API Endpoint, Default: https://open.volcengineapi.com/api/v3/ +VOLENGINE_MODEL= +SMALL_VOLENGINE_MODEL= # Default: doubao-lite-128k +MEDIUM_VOLENGINE_MODEL= # Default: doubao-pro-128k +LARGE_VOLENGINE_MODEL= # Default: doubao-pro-256k +VOLENGINE_EMBEDDING_MODEL= # Default: doubao-embedding + +# DeepSeek Configuration +DEEPSEEK_API_URL= # Default: https://api.deepseek.com +SMALL_DEEPSEEK_MODEL= # Default: deepseek-chat +MEDIUM_DEEPSEEK_MODEL= # Default: deepseek-chat +LARGE_DEEPSEEK_MODEL= # Default: deepseek-chat + + +# fal.ai Configuration +FAL_API_KEY= +FAL_AI_LORA_PATH= + +# LetzAI Configuration +LETZAI_API_KEY= # LetzAI API Key +LETZAI_MODELS= # list of Letzai models to add to each prompt, e.g.: "@modelname1, @modelname2" + +# Galadriel Configuration +GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/ +SMALL_GALADRIEL_MODEL= # Default: gpt-4o-mini +MEDIUM_GALADRIEL_MODEL= # Default: gpt-4o +LARGE_GALADRIEL_MODEL= # Default: gpt-4o +GALADRIEL_FINE_TUNE_API_KEY= # Use an OpenAI key to use a fine-tuned model with the verified inference endpoint + +# Remaining Provider Configurations +GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key +ALI_BAILIAN_API_KEY= # Ali Bailian API Key +NANOGPT_API_KEY= # NanoGPT API Key +TOGETHER_API_KEY= # Together API Key + +###################################### +#### Crypto Plugin Configurations #### +###################################### + +# CoinMarketCap / CMC +COINMARKETCAP_API_KEY= + +# CoinGecko +COINGECKO_API_KEY= +COINGECKO_PRO_API_KEY= + # EVM EVM_PRIVATE_KEY= EVM_PROVIDER_URL= +# Avalanche +AVALANCHE_PRIVATE_KEY= +AVALANCHE_PUBLIC_KEY= + +# Arthera +ARTHERA_PRIVATE_KEY= + # Solana SOLANA_PRIVATE_KEY= SOLANA_PUBLIC_KEY= @@ -179,32 +306,22 @@ BIRDEYE_API_KEY= SOL_ADDRESS=So11111111111111111111111111111111111111112 SLIPPAGE=1 BASE_MINT=So11111111111111111111111111111111111111112 -RPC_URL=https://api.mainnet-beta.solana.com +SOLANA_RPC_URL=https://api.mainnet-beta.solana.com HELIUS_API_KEY= -# Telegram Configuration -TELEGRAM_BOT_TOKEN= - -# Together Configuration -TOGETHER_API_KEY= - -# Server Configuration -SERVER_PORT=3000 +# Abstract Configuration +ABSTRACT_ADDRESS= +ABSTRACT_PRIVATE_KEY= +ABSTRACT_RPC_URL=https://api.testnet.abs.xyz # Starknet Configuration STARKNET_ADDRESS= STARKNET_PRIVATE_KEY= STARKNET_RPC_URL= -# Intiface Configuration -INTIFACE_WEBSOCKET_URL=ws://localhost:12345 - -# Farcaster Neynar Configuration -FARCASTER_FID= # The FID associated with the account your are sending casts from -FARCASTER_NEYNAR_API_KEY= # Neynar API key: https://neynar.com/ -FARCASTER_NEYNAR_SIGNER_UUID= # Signer for the account you are sending casts from. Create a signer here: https://dev.neynar.com/app -FARCASTER_DRY_RUN=false # Set to true if you want to run the bot without actually publishing casts -FARCASTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for farcaster interactions (replies and mentions) +# Lens Network Configuration +LENS_ADDRESS= +LENS_PRIVATE_KEY= # Coinbase COINBASE_COMMERCE_KEY= # From Coinbase developer portal @@ -222,6 +339,9 @@ CHARITY_ADDRESS_ETH=0x750EF1D7a0b4Ab1c97B7A623D7917CcEb5ea779C CHARITY_ADDRESS_ARB=0x1234567890123456789012345678901234567890 CHARITY_ADDRESS_POL=0x1234567890123456789012345678901234567890 +# thirdweb +THIRDWEB_SECRET_KEY= # Create key on thirdweb developer dashboard: https://thirdweb.com/ + # Conflux Configuration CONFLUX_CORE_PRIVATE_KEY= CONFLUX_CORE_SPACE_RPC_URL= @@ -244,35 +364,7 @@ ZEROG_FLOW_ADDRESS= TEE_MODE=OFF # LOCAL | DOCKER | PRODUCTION WALLET_SECRET_SALT= # ONLY define if you want to use TEE Plugin, otherwise it will throw errors -# Galadriel Configuration -GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/ - -# Venice Configuration -VENICE_API_KEY= # generate from venice settings -SMALL_VENICE_MODEL= # Default: llama-3.3-70b -MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b -LARGE_VENICE_MODEL= # Default: llama-3.1-405b -IMAGE_VENICE_MODEL= # Default: fluently-xl - -# Akash Chat API Configuration docs: https://chatapi.akash.network/documentation -AKASH_CHAT_API_KEY= # Get from https://chatapi.akash.network/ -SMALL_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-2-3B-Instruct -MEDIUM_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-3-70B-Instruct -LARGE_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-1-405B-Instruct-FP8 - -# fal.ai Configuration -FAL_API_KEY= -FAL_AI_LORA_PATH= - -# Web search API Configuration -TAVILY_API_KEY= - -# WhatsApp Cloud API Configuration -WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console -WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API -WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager -WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification -WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0) +ENABLE_TEE_LOG=false # Set to true to enable TEE logging, only available when running eliza in TEE # Flow Blockchain Configuration FLOW_ADDRESS= @@ -284,37 +376,112 @@ FLOW_ENDPOINT_URL= # Default: https://mainnet.onflow.org INTERNET_COMPUTER_PRIVATE_KEY= INTERNET_COMPUTER_ADDRESS= + +#Cloudflare AI Gateway +CLOUDFLARE_GW_ENABLED= # Set to true to enable Cloudflare AI Gateway +CLOUDFLARE_AI_ACCOUNT_ID= # Cloudflare AI Account ID - found in the Cloudflare Dashboard under AI Gateway +CLOUDFLARE_AI_GATEWAY_ID= # Cloudflare AI Gateway ID - found in the Cloudflare Dashboard under AI Gateway + # Aptos APTOS_PRIVATE_KEY= # Aptos private key APTOS_NETWORK= # Must be one of mainnet, testnet -# EchoChambers Configuration -ECHOCHAMBERS_API_URL=http://127.0.0.1:3333 -ECHOCHAMBERS_API_KEY=testingkey0011 -ECHOCHAMBERS_USERNAME=eliza -ECHOCHAMBERS_DEFAULT_ROOM=general -ECHOCHAMBERS_POLL_INTERVAL=60 -ECHOCHAMBERS_MAX_MESSAGES=10 - # MultiversX -MVX_PRIVATE_KEY= # Multiversx private key -MVX_NETWORK= # must be one of mainnet, devnet, testnet +MVX_PRIVATE_KEY= # Multiversx private key +MVX_NETWORK= # must be one of mainnet, devnet, testnet # NEAR -NEAR_WALLET_SECRET_KEY= -NEAR_WALLET_PUBLIC_KEY= +NEAR_WALLET_SECRET_KEY= # NEAR Wallet Secret Key +NEAR_WALLET_PUBLIC_KEY= # NEAR Wallet Public Key NEAR_ADDRESS= -SLIPPAGE=1 -RPC_URL=https://rpc.testnet.near.org +NEAR_SLIPPAGE=1 +NEAR_RPC_URL=https://rpc.testnet.near.org NEAR_NETWORK=testnet # or mainnet # ZKsync Era Configuration ZKSYNC_ADDRESS= ZKSYNC_PRIVATE_KEY= +# Avail DA Configuration +AVAIL_ADDRESS= +AVAIL_SEED= +AVAIL_APP_ID=0 +AVAIL_RPC_URL=wss://avail-turing.public.blastapi.io/ # (Default) Testnet: wss://avail-turing.public.blastapi.io/ | Mainnet: wss://avail-mainnet.public.blastapi.io/ + +# Marlin +TEE_MARLIN= # Set "yes" to enable the plugin +TEE_MARLIN_ATTESTATION_ENDPOINT= # Optional, default "http://127.0.0.1:1350" + # Ton -TON_PRIVATE_KEY= # Ton Mnemonic Seed Phrase Join With Empty String -TON_RPC_URL= # ton rpc +TON_PRIVATE_KEY= # Ton Mnemonic Seed Phrase Join With Empty String +TON_RPC_URL= # ton rpc + +# Sui +SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`) , Also support `suiprivatekeyxxxx` (sui keytool export --key-identity 0x63) +SUI_NETWORK= # must be one of mainnet, testnet, devnet, localnet + +# Story +STORY_PRIVATE_KEY= # Story private key +STORY_API_BASE_URL= # Story API base URL +STORY_API_KEY= # Story API key +PINATA_JWT= # Pinata JWT for uploading files to IPFS + +# Cosmos +COSMOS_RECOVERY_PHRASE= # 12 words recovery phrase (need to be in quotes, because of spaces) +COSMOS_AVAILABLE_CHAINS= # mantrachaintestnet2,cosmos # Array of chains +# Cronos zkEVM +CRONOSZKEVM_ADDRESS= +CRONOSZKEVM_PRIVATE_KEY= + +# Fuel Ecosystem (FuelVM) +FUEL_WALLET_PRIVATE_KEY= + +# Tokenizer Settings +TOKENIZER_MODEL= # Specify the tokenizer model to be used. +TOKENIZER_TYPE= # Options: tiktoken (for OpenAI models) or auto (AutoTokenizer from Hugging Face for non-OpenAI models). Default: tiktoken. + +# Spheron +SPHERON_PRIVATE_KEY= +SPHERON_PROVIDER_PROXY_URL= +SPHERON_WALLET_ADDRESS= + +# Stargaze NFT marketplace from Cosmos (You can use https://graphql.mainnet.stargaze-apis.com/graphql) +STARGAZE_ENDPOINT= + +# GenLayer +GENLAYER_PRIVATE_KEY= # Private key of the GenLayer account to use for the agent in this format (0x0000000000000000000000000000000000000000000000000000000000000000) + +#################################### +#### Misc Plugin Configurations #### +#################################### + +# Intiface Configuration +INTIFACE_WEBSOCKET_URL=ws://localhost:12345 + +# API key for giphy from https://developers.giphy.com/dashboard/ +GIPHY_API_KEY= + +# OpenWeather +OPEN_WEATHER_API_KEY= # OpenWeather API key + + + +# EchoChambers Configuration +ECHOCHAMBERS_API_URL=http://127.0.0.1:3333 +ECHOCHAMBERS_API_KEY=testingkey0011 +ECHOCHAMBERS_USERNAME=eliza +ECHOCHAMBERS_DEFAULT_ROOM=general +ECHOCHAMBERS_POLL_INTERVAL=60 +ECHOCHAMBERS_MAX_MESSAGES=10 + +# Allora +ALLORA_API_KEY= # Allora API key, format: UP-f8db7d6558ab432ca0d92716 +ALLORA_CHAIN_SLUG= # must be one of mainnet, testnet. If not specified, it will use testnet by default + +# Opacity zkTLS +OPACITY_TEAM_ID=f309ac8ae8a9a14a7e62cd1a521b1c5f +OPACITY_CLOUDFLARE_NAME=eigen-test +OPACITY_PROVER_URL=https://opacity-ai-zktls-demo.vercel.app # AWS S3 Configuration Settings for File Upload AWS_ACCESS_KEY_ID= @@ -326,12 +493,63 @@ AWS_S3_UPLOAD_PATH= # Deepgram DEEPGRAM_API_KEY= -# Sui -SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`) -SUI_NETWORK= # must be one of mainnet, testnet, devnet, localnet +# Web search API Configuration +TAVILY_API_KEY= -# Story -STORY_PRIVATE_KEY= # Story private key -STORY_API_BASE_URL= # Story API base URL -STORY_API_KEY= # Story API key -PINATA_JWT= # Pinata JWT for uploading files to IPFS +# Verifiable Inference Configuration +VERIFIABLE_INFERENCE_ENABLED=false # Set to false to disable verifiable inference +VERIFIABLE_INFERENCE_PROVIDER=opacity # Options: opacity + + +# Autonome Configuration +AUTONOME_JWT_TOKEN= +AUTONOME_RPC=https://wizard-bff-rpc.alt.technology/v1/bff/aaa/apps + +#################################### +#### Akash Network Configuration #### +#################################### +AKASH_ENV=mainnet +AKASH_NET=https://raw.githubusercontent.com/ovrclk/net/master/mainnet +RPC_ENDPOINT=https://rpc.akashnet.net:443 +AKASH_GAS_PRICES=0.025uakt +AKASH_GAS_ADJUSTMENT=1.5 +AKASH_KEYRING_BACKEND=os +AKASH_FROM=default +AKASH_FEES=20000uakt +AKASH_DEPOSIT=500000uakt +AKASH_MNEMONIC= +AKASH_WALLET_ADDRESS= +# Akash Pricing API +AKASH_PRICING_API_URL=https://console-api.akash.network/v1/pricing +# Default values # 1 CPU = 1000 1GB = 1000000000 1GB = 1000000000 +AKASH_DEFAULT_CPU=1000 +AKASH_DEFAULT_MEMORY=1000000000 +AKASH_DEFAULT_STORAGE=1000000000 +AKASH_SDL=example.sdl.yml +# Close deployment +# Close all deployments = closeAll +# Close a single deployment = dseq and add the value in AKASH_CLOSE_DSEQ +AKASH_CLOSE_DEP=closeAll +AKASH_CLOSE_DSEQ=19729929 +# Provider Info we added one to check you will have to pass this into the action +AKASH_PROVIDER_INFO=akash1ccktptfkvdc67msasmesuy5m7gpc76z75kukpz +# Deployment Status +# AKASH_DEP_STATUS = dseq or param_passed when you are building you wil pass the dseq dinamically to test you +# you can pass the dseq using AKASH_DEP_DSEQ 19729929 is an example of a dseq we test while build. +AKASH_DEP_STATUS=dseq +AKASH_DEP_DSEQ=19729929 +# Gas Estimation Options: close, create, or update +# qseq is required when operation is "close" 19729929 is an example of a dseq we test while build. +AKASH_GAS_OPERATION=close +AKASH_GAS_DSEQ=19729929 +# Manifest +# Values: "auto" | "manual" | "validate_only" Default: "auto" +AKASH_MANIFEST_MODE=auto +# Default: Will use the SDL directory +AKASH_MANIFEST_PATH= +# Values: "strict" | "lenient" | "none" - Default: "strict" +AKASH_MANIFEST_VALIDATION_LEVEL=strict + +# Quai Network Ecosystem +QUAI_PRIVATE_KEY= +QUAI_RPC_URL=https://rpc.quai.network diff --git a/.eslintrc.json b/.eslintrc.json index e795935eb7..33527e7c35 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,47 +1,36 @@ { - "plugins": [ - "@stylistic" - ], - "extends": [ - "next/core-web-vitals", - "plugin:@stylistic/recommended-extends" - ], - "rules": { - "@stylistic/indent": [ - "error", - 4, - { - "SwitchCase": 1 - } + "plugins": ["@stylistic"], + "extends": [ + "next/core-web-vitals", + "plugin:@stylistic/recommended-extends" ], - "@stylistic/no-tabs": "error", - "@stylistic/member-delimiter-style": [ - "error", - { - "multiline": { - "delimiter": "semi", - "requireLast": true - }, - "singleline": { - "delimiter": "semi", - "requireLast": false - } - } - ], - "@stylistic/eol-last": [ - "error", - "always" - ], - "@stylistic/multiline-ternary": "off", - "@stylistic/semi": [ - "error", - "always" - ], - "@stylistic/quotes": "off", - "@stylistic/comma-dangle": "off", - "@stylistic/brace-style": [ - "error", - "1tbs" - ] - } -} \ No newline at end of file + "rules": { + "@stylistic/indent": [ + "error", + 4, + { + "SwitchCase": 1 + } + ], + "@stylistic/no-tabs": "error", + "@stylistic/member-delimiter-style": [ + "error", + { + "multiline": { + "delimiter": "semi", + "requireLast": true + }, + "singleline": { + "delimiter": "semi", + "requireLast": false + } + } + ], + "@stylistic/eol-last": ["error", "always"], + "@stylistic/multiline-ternary": "off", + "@stylistic/semi": ["error", "always"], + "@stylistic/quotes": "off", + "@stylistic/comma-dangle": "off", + "@stylistic/brace-style": ["error", "1tbs"] + } +} diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0dcc810f5f..7170123996 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,15 +1,15 @@ - + -# Relates to: +# Relates to - + # Risks # Background @@ -25,7 +25,7 @@ Features (non-breaking change which adds functionality) Updates (new versions of included code) --> - + @@ -35,10 +35,10 @@ Updates (new versions of included code) - + # Testing @@ -47,7 +47,7 @@ If a docs change is needed: I have updated the documentation accordingly. ## Detailed testing steps - + - + - + - +