Skip to content

Commit 8fe9cb5

Browse files
authored
Merge pull request #287 from ai16z/starknet-plugin
feat: Starknet plugin
2 parents 4d1e66c + 3d68fa9 commit 8fe9cb5

File tree

126 files changed

+27186
-5082
lines changed

Some content is hidden

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

126 files changed

+27186
-5082
lines changed

.env.example

+4
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,7 @@ TELEGRAM_BOT_TOKEN=
7575

7676
TOGETHER_API_KEY=
7777
SERVER_PORT=3000
78+
79+
# Starknet
80+
STARKNET_ADDRESS=
81+
STARKNET_PRIVATE_KEY=

.github/workflows/pr.yaml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: PR Title Check
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, synchronize]
6+
7+
jobs:
8+
check-pr-title:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Check out the repository
13+
uses: actions/checkout@v2
14+
15+
- name: Validate PR title
16+
id: validate
17+
run: |
18+
PR_TITLE=$(jq -r .pull_request.title "$GITHUB_EVENT_PATH")
19+
echo "PR Title: $PR_TITLE"
20+
if [[ ! "$PR_TITLE" =~ ^(feat|fix|docs|style|refactor|test|chore):\ .+ ]]; then
21+
echo "PR title does not match the required pattern."
22+
exit 1
23+
fi
24+
25+
- name: Set status
26+
if: failure()
27+
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')."

packages/adapter-postgres/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import {
99
type Relationship,
1010
type UUID,
1111
Participant,
12-
} from "@ai16z/eliza/src/types.ts";
13-
import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts";
12+
} from "@ai16z/eliza";
13+
import { DatabaseAdapter } from "@ai16z/eliza";
1414
const { Pool } = pg;
1515

1616
export class PostgresDatabaseAdapter extends DatabaseAdapter {

packages/adapter-sqljs/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ export * from "./sqliteTables.ts";
22
export * from "./types.ts";
33

44
import { v4 } from "uuid";
5-
import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts";
5+
import { DatabaseAdapter } from "@ai16z/eliza";
66
import {
77
Account,
88
Actor,
@@ -12,7 +12,7 @@ import {
1212
type Relationship,
1313
type UUID,
1414
Participant,
15-
} from "@ai16z/eliza/src/types.ts";
15+
} from "@ai16z/eliza";
1616
import { sqliteTables } from "./sqliteTables.ts";
1717
import { Database } from "./types.ts";
1818

packages/adapter-supabase/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"tsup": "^8.3.5"
1313
},
1414
"scripts": {
15-
"build": "echo 'No build step required'",
15+
"build": "tsup --format esm --dts",
1616
"dev": "tsup --watch"
1717
},
1818
"peerDependencies": {

packages/adapter-supabase/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import {
99
type UUID,
1010
Participant,
1111
Room,
12-
} from "@ai16z/eliza/src/types.ts";
13-
import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts";
12+
} from "@ai16z/eliza";
13+
import { DatabaseAdapter } from "@ai16z/eliza";
1414
import { v4 as uuid } from "uuid";
1515
export class SupabaseDatabaseAdapter extends DatabaseAdapter {
1616
async getRoom(roomId: UUID): Promise<UUID | null> {

packages/agent/src/index.ts

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
import { PostgresDatabaseAdapter } from "@ai16z/adapter-postgres/src/index.ts";
2-
import { SqliteDatabaseAdapter } from "@ai16z/adapter-sqlite/src/index.ts";
3-
import { DirectClientInterface } from "@ai16z/client-direct/src/index.ts";
4-
import { DiscordClientInterface } from "@ai16z/client-discord/src/index.ts";
5-
import { AutoClientInterface } from "@ai16z/client-auto/src/index.ts";
6-
import { TelegramClientInterface } from "@ai16z/client-telegram/src/index.ts";
7-
import { TwitterClientInterface } from "@ai16z/client-twitter/src/index.ts";
8-
import { defaultCharacter } from "@ai16z/eliza/src/defaultCharacter.ts";
9-
import { AgentRuntime } from "@ai16z/eliza/src/runtime.ts";
10-
import settings from "@ai16z/eliza/src/settings.ts";
1+
import { PostgresDatabaseAdapter } from "@ai16z/adapter-postgres";
2+
import { SqliteDatabaseAdapter } from "@ai16z/adapter-sqlite";
3+
import { DirectClientInterface } from "@ai16z/client-direct";
4+
import { DiscordClientInterface } from "@ai16z/client-discord";
5+
import { AutoClientInterface } from "@ai16z/client-auto";
6+
import { TelegramClientInterface } from "@ai16z/client-telegram";
7+
import { TwitterClientInterface } from "@ai16z/client-twitter";
8+
import { defaultCharacter } from "@ai16z/eliza";
9+
import { AgentRuntime } from "@ai16z/eliza";
10+
import { settings } from "@ai16z/eliza";
1111
import {
1212
Character,
1313
IAgentRuntime,
1414
IDatabaseAdapter,
1515
ModelProviderName,
16-
} from "@ai16z/eliza/src/types.ts";
17-
import { bootstrapPlugin } from "@ai16z/plugin-bootstrap/src/index.ts";
18-
import { solanaPlugin } from "@ai16z/plugin-solana/src/index.ts";
19-
import { nodePlugin } from "@ai16z/plugin-node/src/index.ts";
16+
} from "@ai16z/eliza";
17+
import { bootstrapPlugin } from "@ai16z/plugin-bootstrap";
18+
import { solanaPlugin } from "@ai16z/plugin-solana";
19+
import { nodePlugin } from "@ai16z/plugin-node";
2020
import Database from "better-sqlite3";
2121
import fs from "fs";
2222
import readline from "readline";

packages/client-auto/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Client, IAgentRuntime } from "@ai16z/eliza/src/types.ts";
1+
import { Client, IAgentRuntime } from "@ai16z/eliza";
22
import { TrustScoreManager } from "@ai16z/plugin-solana/src/providers/trustScoreProvider.ts";
33
import { TokenProvider } from "@ai16z/plugin-solana/src/providers/token.ts";
44
import { WalletProvider } from "@ai16z/plugin-solana/src/providers/wallet.ts";

packages/client-auto/tsup.config.ts

+6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ export default defineConfig({
1515
"https",
1616
"http",
1717
"agentkeepalive",
18+
"safe-buffer",
19+
"base-x",
20+
"bs58",
21+
"borsh",
22+
"@solana/buffer-layout",
23+
"ws",
1824
// Add other modules you want to externalize
1925
],
2026
});

packages/client-direct/src/index.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@ import bodyParser from "body-parser";
22
import cors from "cors";
33
import express, { Request as ExpressRequest } from "express";
44
import multer, { File } from "multer";
5-
import { generateCaption, generateImage } from "@ai16z/eliza/src/generation.ts";
6-
import { composeContext } from "@ai16z/eliza/src/context.ts";
7-
import { generateMessageResponse } from "@ai16z/eliza/src/generation.ts";
8-
import { messageCompletionFooter } from "@ai16z/eliza/src/parsing.ts";
9-
import { AgentRuntime } from "@ai16z/eliza/src/runtime.ts";
5+
import { generateCaption, generateImage } from "@ai16z/eliza";
6+
import { composeContext } from "@ai16z/eliza";
7+
import { generateMessageResponse } from "@ai16z/eliza";
8+
import { messageCompletionFooter } from "@ai16z/eliza";
9+
import { AgentRuntime } from "@ai16z/eliza";
1010
import {
1111
Content,
1212
Memory,
1313
ModelClass,
1414
State,
1515
Client,
1616
IAgentRuntime,
17-
} from "@ai16z/eliza/src/types.ts";
18-
import { stringToUuid } from "@ai16z/eliza/src/uuid.ts";
19-
import settings from "@ai16z/eliza/src/settings.ts";
17+
} from "@ai16z/eliza";
18+
import { stringToUuid } from "@ai16z/eliza";
19+
import { settings } from "@ai16z/eliza";
2020
const upload = multer({ storage: multer.memoryStorage() });
2121

2222
export const messageHandlerTemplate =
@@ -187,9 +187,9 @@ export class DirectClient {
187187

188188
await runtime.messageManager.createMemory(memory);
189189

190-
const state = (await runtime.composeState(userMessage, {
190+
const state = await runtime.composeState(userMessage, {
191191
agentName: runtime.character.name,
192-
})) as State;
192+
});
193193

194194
const context = composeContext({
195195
state,

packages/client-direct/tsup.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default defineConfig({
1515
"https",
1616
"http",
1717
"agentkeepalive",
18+
"safe-buffer",
1819
// Add other modules you want to externalize
1920
],
2021
});

packages/client-discord/src/actions/chat_with_attachments.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import fs from "fs";
2-
import { composeContext } from "@ai16z/eliza/src/context.ts";
3-
import { generateText, trimTokens } from "@ai16z/eliza/src/generation.ts";
4-
import models from "@ai16z/eliza/src/models.ts";
5-
import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts";
2+
import { composeContext } from "@ai16z/eliza";
3+
import { generateText, trimTokens } from "@ai16z/eliza";
4+
import { models } from "@ai16z/eliza";
5+
import { parseJSONObjectFromText } from "@ai16z/eliza";
66
import {
77
Action,
88
ActionExample,
@@ -12,7 +12,7 @@ import {
1212
Memory,
1313
ModelClass,
1414
State,
15-
} from "@ai16z/eliza/src/types.ts";
15+
} from "@ai16z/eliza";
1616
export const summarizationTemplate = `# Summarized so far (we are adding to this)
1717
{{currentSummary}}
1818

packages/client-discord/src/actions/download_media.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import path from "path";
2-
import { composeContext } from "@ai16z/eliza/src/context.ts";
3-
import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts";
2+
import { composeContext } from "@ai16z/eliza";
3+
import { parseJSONObjectFromText } from "@ai16z/eliza";
44
import {
55
Action,
66
ActionExample,
@@ -13,9 +13,8 @@ import {
1313
Service,
1414
ServiceType,
1515
State,
16-
} from "@ai16z/eliza/src/types.ts";
17-
import { VideoService } from "@ai16z/plugin-node/src/services/video.ts";
18-
import { generateText } from "@ai16z/eliza/src/generation.ts";
16+
} from "@ai16z/eliza";
17+
import { generateText } from "@ai16z/eliza";
1918

2019
export const mediaUrlTemplate = `# Messages we are searching for a media URL
2120
{{recentMessages}}

packages/client-discord/src/actions/joinvoice.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ import {
99
Guild,
1010
GuildMember,
1111
} from "discord.js";
12-
import { composeContext } from "@ai16z/eliza/src/context.ts";
12+
import { composeContext } from "@ai16z/eliza";
1313
import {
1414
Action,
1515
ActionExample,
1616
IAgentRuntime,
1717
Memory,
1818
State,
19-
} from "@ai16z/eliza/src/types.ts";
19+
} from "@ai16z/eliza";
2020

2121
export default {
2222
name: "JOIN_VOICE",

packages/client-discord/src/actions/leavevoice.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
IAgentRuntime,
1313
Memory,
1414
State,
15-
} from "@ai16z/eliza/src/types.ts";
15+
} from "@ai16z/eliza";
1616

1717
export default {
1818
name: "LEAVE_VOICE",

packages/client-discord/src/actions/summarize_conversation.ts

+7-15
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
import fs from "fs";
2-
import { composeContext } from "@ai16z/eliza/src/context.ts";
3-
import {
4-
generateText,
5-
splitChunks,
6-
trimTokens,
7-
} from "@ai16z/eliza/src/generation.ts";
8-
import { getActorDetails } from "@ai16z/eliza/src/messages.ts";
9-
import models from "@ai16z/eliza/src/models.ts";
10-
import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts";
2+
import { composeContext } from "@ai16z/eliza";
3+
import { generateText, splitChunks, trimTokens } from "@ai16z/eliza";
4+
import { getActorDetails } from "@ai16z/eliza";
5+
import { models } from "@ai16z/eliza";
6+
import { parseJSONObjectFromText } from "@ai16z/eliza";
117
import {
128
Action,
139
ActionExample,
@@ -18,7 +14,7 @@ import {
1814
Memory,
1915
ModelClass,
2016
State,
21-
} from "@ai16z/eliza/src/types.ts";
17+
} from "@ai16z/eliza";
2218
export const summarizationTemplate = `# Summarized so far (we are adding to this)
2319
{{currentSummary}}
2420
@@ -256,11 +252,7 @@ const summarizeAction = {
256252
const model = models[runtime.character.settings.model];
257253
const chunkSize = model.settings.maxContextLength - 1000;
258254

259-
const chunks = await splitChunks(
260-
formattedMemories,
261-
chunkSize,
262-
0
263-
);
255+
const chunks = await splitChunks(formattedMemories, chunkSize, 0);
264256

265257
const datestr = new Date().toUTCString().replace(/:/g, "-");
266258

packages/client-discord/src/actions/transcribe_media.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import fs from "fs";
2-
import { composeContext } from "@ai16z/eliza/src/context.ts";
3-
import { generateText } from "@ai16z/eliza/src/generation.ts";
4-
import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts";
2+
import { composeContext } from "@ai16z/eliza";
3+
import { generateText } from "@ai16z/eliza";
4+
import { parseJSONObjectFromText } from "@ai16z/eliza";
55
import {
66
Action,
77
ActionExample,
@@ -11,7 +11,7 @@ import {
1111
Memory,
1212
ModelClass,
1313
State,
14-
} from "@ai16z/eliza/src/types.ts";
14+
} from "@ai16z/eliza";
1515
export const transcriptionTemplate = `# Transcription of media file
1616
{{mediaTranscript}}
1717

packages/client-discord/src/attachments.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { generateText, trimTokens } from "@ai16z/eliza/src/generation.ts";
2-
import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts";
1+
import { generateText, trimTokens } from "@ai16z/eliza";
2+
import { parseJSONObjectFromText } from "@ai16z/eliza";
33
import {
44
IAgentRuntime,
55
IImageDescriptionService,
@@ -10,7 +10,7 @@ import {
1010
ModelClass,
1111
Service,
1212
ServiceType,
13-
} from "@ai16z/eliza/src/types.ts";
13+
} from "@ai16z/eliza";
1414
import { Attachment, Collection } from "discord.js";
1515
import ffmpeg from "fluent-ffmpeg";
1616
import fs from "fs";
@@ -103,7 +103,8 @@ export class AttachmentManager {
103103
media = await this.processImageAttachment(attachment);
104104
} else if (
105105
attachment.contentType?.startsWith("video/") ||
106-
this.runtime.getService(ServiceType.VIDEO)
106+
this.runtime
107+
.getService(ServiceType.VIDEO)
107108
.getInstance<IVideoService>()
108109
.isVideoUrl(attachment.url)
109110
) {

packages/client-discord/src/index.ts

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
1-
import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts";
2-
import {
3-
Character,
4-
Client as ElizaClient,
5-
IAgentRuntime,
6-
} from "@ai16z/eliza/src/types.ts";
7-
import { stringToUuid } from "@ai16z/eliza/src/uuid.ts";
8-
import { elizaLogger } from "@ai16z/eliza/src/logger.ts";
1+
import { embeddingZeroVector } from "@ai16z/eliza";
2+
import { Character, Client as ElizaClient, IAgentRuntime } from "@ai16z/eliza";
3+
import { stringToUuid } from "@ai16z/eliza";
4+
import { elizaLogger } from "@ai16z/eliza";
95
import {
106
Client,
117
Events,
@@ -73,7 +69,6 @@ export class DiscordClient extends EventEmitter {
7369
this.runtime.registerAction(transcribe_media);
7470
this.runtime.registerAction(download_media);
7571

76-
7772
this.runtime.providers.push(channelStateProvider);
7873
this.runtime.providers.push(voiceStateProvider);
7974
}

0 commit comments

Comments
 (0)