Skip to content

Commit 7cb7ec1

Browse files
authored
Merge branch 'main' into tcm-contributor-page
2 parents 0d5ff61 + 1c9a5a1 commit 7cb7ec1

File tree

410 files changed

+22250
-7118
lines changed

Some content is hidden

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

410 files changed

+22250
-7118
lines changed

.env.example

+84-18
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@ DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (opt
55

66
# AI Model API Keys
77
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
813

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

1219
GROK_API_KEY= # GROK API Key
@@ -16,6 +23,14 @@ GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
1623

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

2035
# Speech Synthesis
2136
ELEVENLABS_XI_API_KEY= # API key from elevenlabs
@@ -74,23 +89,56 @@ SMALL_OLLAMA_MODEL= # Default: llama3.2
7489
MEDIUM_OLLAMA_MODEL= # Default: hermes3
7590
LARGE_OLLAMA_MODEL= # Default: hermes3:70b
7691

92+
# Google Configuration
93+
GOOGLE_MODEL=
94+
SMALL_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
95+
MEDIUM_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
96+
LARGE_GOOGLE_MODEL= # Default: gemini-1.5-pro-latest
97+
EMBEDDING_GOOGLE_MODEL= # Default: text-embedding-004
98+
99+
# Groq Configuration
100+
SMALL_GROQ_MODEL= # Default: llama-3.1-8b-instant
101+
MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile
102+
LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview
103+
EMBEDDING_GROQ_MODEL= # Default: llama-3.1-8b-instant
104+
105+
# NanoGPT Configuration
106+
SMALL_NANOGPT_MODEL= # Default: gpt-4o-mini
107+
MEDIUM_NANOGPT_MODEL= # Default: gpt-4o
108+
LARGE_NANOGPT_MODEL= # Default: gpt-4o
109+
77110
#LlamaLocal Configuration
78111
LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
79112

80113
# API Keys
81114
ANTHROPIC_API_KEY= # For Claude
115+
SMALL_ANTHROPIC_MODEL= # Default: claude-3-haiku-20240307
116+
MEDIUM_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
117+
LARGE_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
118+
82119
HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
83120

84121
# Heurist Models
85-
SMALL_HEURIST_LANGUAGE_MODEL=
86-
MEDIUM_HEURIST_LANGUAGE_MODEL=
87-
LARGE_HEURIST_LANGUAGE_MODEL=
88-
HEURIST_IMAGE_MODEL=
122+
SMALL_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
123+
MEDIUM_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
124+
LARGE_HEURIST_MODEL= # Default: meta-llama/llama-3.1-405b-instruct
125+
HEURIST_IMAGE_MODEL= # Default: PepeXL
89126

90127
# Gaianet Configuration
91128
GAIANET_MODEL=
92129
GAIANET_SERVER_URL=
130+
131+
SMALL_GAIANET_MODEL= # Default: llama3b
132+
SMALL_GAIANET_SERVER_URL= # Default: https://llama3b.gaia.domains/v1
133+
134+
MEDIUM_GAIANET_MODEL= # Default: llama
135+
MEDIUM_GAIANET_SERVER_URL= # Default: https://llama8b.gaia.domains/v1
136+
137+
LARGE_GAIANET_MODEL= # Default: qwen72b
138+
LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1
139+
93140
GAIANET_EMBEDDING_MODEL=
141+
USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local
94142

95143
# EVM
96144
EVM_PRIVATE_KEY=
@@ -130,10 +178,12 @@ STARKNET_RPC_URL=
130178
# Intiface Configuration
131179
INTIFACE_WEBSOCKET_URL=ws://localhost:12345
132180

133-
# Farcaster
134-
FARCASTER_HUB_URL=
135-
FARCASTER_FID=
136-
FARCASTER_PRIVATE_KEY=
181+
# Farcaster Neynar Configuration
182+
FARCASTER_FID= # the FID associated with the account your are sending casts from
183+
FARCASTER_NEYNAR_API_KEY= # Neynar API key: https://neynar.com/
184+
FARCASTER_NEYNAR_SIGNER_UUID= # signer for the account you are sending casts from. create a signer here: https://dev.neynar.com/app
185+
FARCASTER_DRY_RUN=false # Set to true if you want to run the bot without actually publishing casts
186+
FARCASTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for farcaster interactions (replies and mentions)
137187

138188
# Coinbase
139189
COINBASE_COMMERCE_KEY= # from coinbase developer portal
@@ -142,7 +192,8 @@ COINBASE_PRIVATE_KEY= # from coinbase developer portal
142192
# 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
143193
COINBASE_GENERATED_WALLET_ID= # not your address but the wallet id from generating a wallet through the plugin
144194
COINBASE_GENERATED_WALLET_HEX_SEED= # not your address but the wallet hex seed from generating a wallet through the plugin and calling export
145-
195+
# for webhook plugin the uri you want to send the webhook to for dummy ones use https://webhook.site
196+
COINBASE_NOTIFICATION_URI=
146197
# Conflux Configuration
147198
CONFLUX_CORE_PRIVATE_KEY=
148199
CONFLUX_CORE_SPACE_RPC_URL=
@@ -156,16 +207,13 @@ ZEROG_EVM_RPC=
156207
ZEROG_PRIVATE_KEY=
157208
ZEROG_FLOW_ADDRESS=
158209

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-
167210
# TEE Configuration
168-
DSTACK_SIMULATOR_ENDPOINT=
211+
# TEE_MODE options:
212+
# - LOCAL: Uses simulator at localhost:8090 (for local development)
213+
# - DOCKER: Uses simulator at host.docker.internal:8090 (for docker development)
214+
# - PRODUCTION: No simulator, uses production endpoints
215+
# Defaults to OFF if not specified
216+
TEE_MODE=OFF #LOCAL|DOCKER|PRODUCTION
169217
WALLET_SECRET_SALT= # ONLY DEFINE IF YOU WANT TO USE TEE Plugin, otherwise it will throw errors
170218

171219
# Galadriel Configuration
@@ -182,6 +230,24 @@ WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Mana
182230
WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification
183231
WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0)
184232

233+
# Flow Blockchain Configuration
234+
FLOW_ADDRESS=
235+
FLOW_PRIVATE_KEY= # Private key for SHA3-256 + P256 ECDSA
236+
FLOW_NETWORK= # Default: mainnet
237+
FLOW_ENDPOINT_URL= # Default: https://mainnet.onflow.org
238+
185239
# ICP
186240
INTERNET_COMPUTER_PRIVATE_KEY=
187241
INTERNET_COMPUTER_ADDRESS=
242+
243+
# Aptos
244+
APTOS_PRIVATE_KEY= # Aptos private key
245+
APTOS_NETWORK= # must be one of mainnet, testnet
246+
247+
248+
# AWS S3 Configuration Settings for File Upload
249+
AWS_ACCESS_KEY_ID=
250+
AWS_SECRET_ACCESS_KEY=
251+
AWS_REGION=
252+
AWS_S3_BUCKET=
253+
AWS_S3_UPLOAD_PATH=

.github/workflows/ci.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
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 }}

.github/workflows/image.yaml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#
2+
name: Create and publish a Docker image
3+
4+
# Configures this workflow to run every time a change is pushed to the branch called `release`.
5+
on:
6+
release:
7+
types: [created]
8+
workflow_dispatch:
9+
10+
# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
11+
env:
12+
REGISTRY: ghcr.io
13+
IMAGE_NAME: ${{ github.repository }}
14+
15+
# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu.
16+
jobs:
17+
build-and-push-image:
18+
runs-on: ubuntu-latest
19+
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
20+
permissions:
21+
contents: read
22+
packages: write
23+
attestations: write
24+
id-token: write
25+
#
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
# Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here.
30+
- name: Log in to the Container registry
31+
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
32+
with:
33+
registry: ${{ env.REGISTRY }}
34+
username: ${{ github.actor }}
35+
password: ${{ secrets.GITHUB_TOKEN }}
36+
# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels.
37+
- name: Extract metadata (tags, labels) for Docker
38+
id: meta
39+
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
40+
with:
41+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
42+
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
43+
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
44+
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
45+
- name: Build and push Docker image
46+
id: push
47+
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
48+
with:
49+
context: .
50+
push: true
51+
tags: ${{ steps.meta.outputs.tags }}
52+
labels: ${{ steps.meta.outputs.labels }}
53+
54+
# This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see "[AUTOTITLE](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)."
55+
- name: Generate artifact attestation
56+
uses: actions/attest-build-provenance@v1
57+
with:
58+
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
59+
subject-digest: ${{ steps.push.outputs.digest }}
60+
push-to-registry: true
61+

.github/workflows/release.yaml

+16-30
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
name: Release
22

33
on:
4+
release:
5+
types: [created]
46
workflow_dispatch:
5-
inputs:
6-
release_type:
7-
description: "Type of release (prerelease, prepatch, patch, minor, preminor, major)"
8-
required: true
9-
default: "patch"
107

118
jobs:
129
release:
@@ -43,33 +40,22 @@ jobs:
4340
- name: Build packages
4441
run: pnpm run build
4542

46-
- name: Tag and Publish Packages
47-
id: tag_publish
43+
- name: Publish Packages
44+
id: publish
4845
run: |
49-
npx lerna version ${{ github.event.inputs.release_type }} --conventional-commits --yes --no-private --force-publish
50-
npx lerna publish from-git --yes --dist-tag ${{ github.event.inputs.release_type == 'preminor' && 'next' || 'latest' }}
46+
# Get the latest release tag
47+
LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)
5148
52-
- name: Get Version Tag
53-
id: get_tag
54-
run: echo "TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
49+
# Force clean the working directory and reset any changes
50+
echo "Cleaning working directory and resetting any changes"
51+
git clean -fd
52+
git reset --hard HEAD
5553
56-
- name: Generate Release Body
57-
id: release_body
58-
run: |
59-
if [ -f CHANGELOG.md ]; then
60-
echo "body=$(cat CHANGELOG.md)" >> $GITHUB_OUTPUT
61-
else
62-
echo "body=No changelog provided for this release." >> $GITHUB_OUTPUT
63-
fi
54+
# Force checkout the latest tag
55+
echo "Checking out latest tag: $LATEST_TAG"
56+
git checkout -b temp-publish-branch $LATEST_TAG
6457
65-
- name: Create GitHub Release
66-
uses: actions/create-release@v1
58+
echo "Publishing version: $LATEST_TAG"
59+
npx lerna publish from-package --yes --dist-tag latest
6760
env:
68-
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
69-
PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin
70-
with:
71-
tag_name: ${{ steps.get_tag.outputs.TAG }}
72-
release_name: Release
73-
body_path: CHANGELOG.md
74-
draft: false
75-
prerelease: false
61+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/require-develop.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Check pull request source branch
2+
on:
3+
pull_request_target:
4+
types:
5+
- opened
6+
- reopened
7+
- synchronize
8+
- edited
9+
jobs:
10+
check-branches:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Check branches
14+
run: |
15+
if [ ${{ github.head_ref }} != "develop" ] && [ ${{ github.base_ref }} == "main" ]; then
16+
echo "Merge requests to main branch are only allowed from dev branch."
17+
exit 1
18+
fi

.vscode/settings.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"typescript.format.enable": false,
1313
"files.trimTrailingWhitespace": true,
1414
"editor.trimAutoWhitespace": true,
15+
"cadence.test.maxConcurrency": 5,
16+
"cadence.customConfigPath": "packages/plugin-flow/flow.json",
1517
"[properties]": {
1618
"editor.defaultFormatter": "foxundermoon.shell-format"
1719
},
@@ -42,4 +44,4 @@
4244
"[shellscript]": {
4345
"editor.defaultFormatter": "foxundermoon.shell-format"
4446
}
45-
}
47+
}

0 commit comments

Comments
 (0)