diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 58c6cdcc55..aacc06093f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -34,12 +34,12 @@ jobs: echo "NODE_ENV=test" >> packages/core/.env.test - name: Run tests - run: cd packages/core && pnpm test:coverage + run: cd packages/core && pnpm test - name: Build packages run: pnpm run build - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v5 - with: - token: ${{ secrets.CODECOV_TOKEN }} + # - name: Upload coverage reports to Codecov + # uses: codecov/codecov-action@v5 + # with: + # token: ${{ secrets.CODECOV_TOKEN }} diff --git a/agent/package.json b/agent/package.json index 0f7b18729d..8cf72e7dcd 100644 --- a/agent/package.json +++ b/agent/package.json @@ -4,13 +4,9 @@ "main": "src/index.ts", "type": "module", "scripts": { - "start": "node --enable-source-maps --loader ts-node/esm src/index.ts", - "dev": "tsc && nodemon --watch src --watch ../core/dist --ext ts,json --exec 'node --enable-source-maps --loader ts-node/esm' src/index.ts", - "dev:debug": "tsc && nodemon --watch src --watch ../core/dist --ext ts,json --exec 'verbose=true node --enable-source-maps --loader ts-node/esm' src/index.ts", - "check-types": "tsc --noEmit", - "start:service:all": "pm2 start pnpm --name=\"all\" --restart-delay=3000 --max-restarts=10 -- run start:all", - "stop:service:all": "pm2 stop all", - "start:all": "node --loader ts-node/esm src/index.ts --characters=\"../characters/eliza.json\",\"../characters/degenspartan.json\",\"../characters/ruby.json\",\"../characters/pmairca.json\"" + "start": "node --loader ts-node/esm src/index.ts", + "dev": "node --loader ts-node/esm src/index.ts", + "check-types": "tsc --noEmit" }, "nodemonConfig": { "watch": [ @@ -48,4 +44,4 @@ "ts-node": "10.9.2", "tsup": "8.3.5" } -} \ No newline at end of file +} diff --git a/docs/api/classes/AgentRuntime.md b/docs/api/classes/AgentRuntime.md index deb78723fb..7e4ffddd6d 100644 --- a/docs/api/classes/AgentRuntime.md +++ b/docs/api/classes/AgentRuntime.md @@ -520,7 +520,7 @@ Searchable document fragments #### Defined in -[packages/core/src/runtime.ts:370](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L370) +[packages/core/src/runtime.ts:375](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L375) *** @@ -542,7 +542,7 @@ Searchable document fragments #### Defined in -[packages/core/src/runtime.ts:434](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L434) +[packages/core/src/runtime.ts:439](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L439) *** @@ -564,7 +564,7 @@ The number of recent messages to be kept in memory. #### Defined in -[packages/core/src/runtime.ts:456](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L456) +[packages/core/src/runtime.ts:461](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L461) *** @@ -590,7 +590,7 @@ The action to register. #### Defined in -[packages/core/src/runtime.ts:464](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L464) +[packages/core/src/runtime.ts:469](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L469) *** @@ -612,7 +612,7 @@ The evaluator to register. #### Defined in -[packages/core/src/runtime.ts:473](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L473) +[packages/core/src/runtime.ts:478](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L478) *** @@ -634,7 +634,7 @@ The context provider to register. #### Defined in -[packages/core/src/runtime.ts:481](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L481) +[packages/core/src/runtime.ts:486](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L486) *** @@ -666,7 +666,7 @@ The message to process. #### Defined in -[packages/core/src/runtime.ts:490](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L490) +[packages/core/src/runtime.ts:495](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L495) *** @@ -702,7 +702,7 @@ The results of the evaluation. #### Defined in -[packages/core/src/runtime.ts:567](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L567) +[packages/core/src/runtime.ts:572](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L572) *** @@ -734,7 +734,7 @@ An error if the participant cannot be added. #### Defined in -[packages/core/src/runtime.ts:637](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L637) +[packages/core/src/runtime.ts:642](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L642) *** @@ -770,7 +770,7 @@ The user name to ensure the existence of. #### Defined in -[packages/core/src/runtime.ts:653](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L653) +[packages/core/src/runtime.ts:658](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L658) *** @@ -794,7 +794,7 @@ The user name to ensure the existence of. #### Defined in -[packages/core/src/runtime.ts:673](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L673) +[packages/core/src/runtime.ts:678](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L678) *** @@ -824,7 +824,7 @@ The user name to ensure the existence of. #### Defined in -[packages/core/src/runtime.ts:690](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L690) +[packages/core/src/runtime.ts:695](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L695) *** @@ -855,7 +855,7 @@ An error if the room cannot be created. #### Defined in -[packages/core/src/runtime.ts:726](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L726) +[packages/core/src/runtime.ts:731](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L731) *** @@ -885,7 +885,7 @@ The state of the agent. #### Defined in -[packages/core/src/runtime.ts:739](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L739) +[packages/core/src/runtime.ts:744](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L744) *** @@ -907,4 +907,4 @@ The state of the agent. #### Defined in -[packages/core/src/runtime.ts:1185](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L1185) +[packages/core/src/runtime.ts:1190](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L1190) diff --git a/docs/api/enumerations/LoggingLevel.md b/docs/api/enumerations/LoggingLevel.md index bcd1445092..e0e3eab444 100644 --- a/docs/api/enumerations/LoggingLevel.md +++ b/docs/api/enumerations/LoggingLevel.md @@ -10,7 +10,7 @@ #### Defined in -[packages/core/src/types.ts:1115](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1115) +[packages/core/src/types.ts:1132](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1132) *** @@ -20,7 +20,7 @@ #### Defined in -[packages/core/src/types.ts:1116](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1116) +[packages/core/src/types.ts:1133](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1133) *** @@ -30,4 +30,4 @@ #### Defined in -[packages/core/src/types.ts:1117](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1117) +[packages/core/src/types.ts:1134](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1134) diff --git a/docs/api/enumerations/ServiceType.md b/docs/api/enumerations/ServiceType.md index 57426b1e45..76629f809f 100644 --- a/docs/api/enumerations/ServiceType.md +++ b/docs/api/enumerations/ServiceType.md @@ -10,7 +10,7 @@ #### Defined in -[packages/core/src/types.ts:1104](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1104) +[packages/core/src/types.ts:1121](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1121) *** @@ -20,7 +20,7 @@ #### Defined in -[packages/core/src/types.ts:1105](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1105) +[packages/core/src/types.ts:1122](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1122) *** @@ -30,7 +30,7 @@ #### Defined in -[packages/core/src/types.ts:1106](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1106) +[packages/core/src/types.ts:1123](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1123) *** @@ -40,7 +40,7 @@ #### Defined in -[packages/core/src/types.ts:1107](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1107) +[packages/core/src/types.ts:1124](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1124) *** @@ -50,7 +50,7 @@ #### Defined in -[packages/core/src/types.ts:1108](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1108) +[packages/core/src/types.ts:1125](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1125) *** @@ -60,7 +60,7 @@ #### Defined in -[packages/core/src/types.ts:1109](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1109) +[packages/core/src/types.ts:1126](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1126) *** @@ -70,7 +70,7 @@ #### Defined in -[packages/core/src/types.ts:1110](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1110) +[packages/core/src/types.ts:1127](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1127) *** @@ -80,4 +80,4 @@ #### Defined in -[packages/core/src/types.ts:1111](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1111) +[packages/core/src/types.ts:1128](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1128) diff --git a/docs/api/functions/configureSettings.md b/docs/api/functions/configureSettings.md index 9eb534d423..3313c1835e 100644 --- a/docs/api/functions/configureSettings.md +++ b/docs/api/functions/configureSettings.md @@ -18,4 +18,4 @@ Object containing environment variables ## Defined in -[packages/core/src/settings.ts:53](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L53) +[packages/core/src/settings.ts:69](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L69) diff --git a/docs/api/functions/embed.md b/docs/api/functions/embed.md index ccaf7c4efb..f709cfceed 100644 --- a/docs/api/functions/embed.md +++ b/docs/api/functions/embed.md @@ -4,13 +4,13 @@ > **embed**(`runtime`, `input`): `Promise`\<`number`[]\> -Generate embeddings for input text using configured model provider +Gets embeddings from a remote API endpoint. Falls back to local BGE/384 ## Parameters • **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) -The agent runtime containing model configuration +The agent runtime context • **input**: `string` @@ -20,8 +20,12 @@ The text to generate embeddings for `Promise`\<`number`[]\> -Array of embedding numbers +Array of embedding values + +## Throws + +If the API request fails ## Defined in -[packages/core/src/embedding.ts:103](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L103) +[packages/core/src/embedding.ts:138](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L138) diff --git a/docs/api/functions/findNearestEnvFile.md b/docs/api/functions/findNearestEnvFile.md index 456d1f1cf0..951257549c 100644 --- a/docs/api/functions/findNearestEnvFile.md +++ b/docs/api/functions/findNearestEnvFile.md @@ -21,4 +21,4 @@ Path to the nearest .env file or null if not found ## Defined in -[packages/core/src/settings.ts:27](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L27) +[packages/core/src/settings.ts:43](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L43) diff --git a/docs/api/functions/generateCaption.md b/docs/api/functions/generateCaption.md index 094e4b0e64..f80d470e54 100644 --- a/docs/api/functions/generateCaption.md +++ b/docs/api/functions/generateCaption.md @@ -26,4 +26,4 @@ ## Defined in -[packages/core/src/generation.ts:952](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L952) +[packages/core/src/generation.ts:956](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L956) diff --git a/docs/api/functions/generateImage.md b/docs/api/functions/generateImage.md index 0c073938aa..0f42815198 100644 --- a/docs/api/functions/generateImage.md +++ b/docs/api/functions/generateImage.md @@ -48,4 +48,4 @@ ## Defined in -[packages/core/src/generation.ts:770](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L770) +[packages/core/src/generation.ts:771](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L771) diff --git a/docs/api/functions/generateMessageResponse.md b/docs/api/functions/generateMessageResponse.md index 323ca1aee6..670854a852 100644 --- a/docs/api/functions/generateMessageResponse.md +++ b/docs/api/functions/generateMessageResponse.md @@ -28,4 +28,4 @@ The completed message. ## Defined in -[packages/core/src/generation.ts:730](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L730) +[packages/core/src/generation.ts:731](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L731) diff --git a/docs/api/functions/generateObject.md b/docs/api/functions/generateObject.md index 0ca16988ad..78b1eda5cf 100644 --- a/docs/api/functions/generateObject.md +++ b/docs/api/functions/generateObject.md @@ -20,4 +20,4 @@ ## Defined in -[packages/core/src/generation.ts:646](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L646) +[packages/core/src/generation.ts:647](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L647) diff --git a/docs/api/functions/generateObjectArray.md b/docs/api/functions/generateObjectArray.md index 164f534576..9b47a815f4 100644 --- a/docs/api/functions/generateObjectArray.md +++ b/docs/api/functions/generateObjectArray.md @@ -20,4 +20,4 @@ ## Defined in -[packages/core/src/generation.ts:682](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L682) +[packages/core/src/generation.ts:683](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L683) diff --git a/docs/api/functions/generateObjectV2.md b/docs/api/functions/generateObjectV2.md index 0e0215a762..1fcfedbd3e 100644 --- a/docs/api/functions/generateObjectV2.md +++ b/docs/api/functions/generateObjectV2.md @@ -24,4 +24,4 @@ Configuration options for generating objects. ## Defined in -[packages/core/src/generation.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1009) +[packages/core/src/generation.ts:1046](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1046) diff --git a/docs/api/functions/generateShouldRespond.md b/docs/api/functions/generateShouldRespond.md index c7e881890c..7fb882fd46 100644 --- a/docs/api/functions/generateShouldRespond.md +++ b/docs/api/functions/generateShouldRespond.md @@ -28,4 +28,4 @@ Promise resolving to "RESPOND", "IGNORE", "STOP" or null ## Defined in -[packages/core/src/generation.ts:472](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L472) +[packages/core/src/generation.ts:473](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L473) diff --git a/docs/api/functions/generateText.md b/docs/api/functions/generateText.md index de88da531a..6d487b6e4a 100644 --- a/docs/api/functions/generateText.md +++ b/docs/api/functions/generateText.md @@ -32,4 +32,4 @@ The completed message. ## Defined in -[packages/core/src/generation.ts:50](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L50) +[packages/core/src/generation.ts:51](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L51) diff --git a/docs/api/functions/generateTextArray.md b/docs/api/functions/generateTextArray.md index 058f1ce0f0..799e5df936 100644 --- a/docs/api/functions/generateTextArray.md +++ b/docs/api/functions/generateTextArray.md @@ -28,4 +28,4 @@ Promise resolving to an array of strings parsed from the model's response ## Defined in -[packages/core/src/generation.ts:610](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L610) +[packages/core/src/generation.ts:611](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L611) diff --git a/docs/api/functions/generateTrueOrFalse.md b/docs/api/functions/generateTrueOrFalse.md index 44a73bfaac..19c8e7c9d0 100644 --- a/docs/api/functions/generateTrueOrFalse.md +++ b/docs/api/functions/generateTrueOrFalse.md @@ -28,4 +28,4 @@ Promise resolving to a boolean value parsed from the model's response ## Defined in -[packages/core/src/generation.ts:555](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L555) +[packages/core/src/generation.ts:556](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L556) diff --git a/docs/api/functions/generateWebSearch.md b/docs/api/functions/generateWebSearch.md new file mode 100644 index 0000000000..4331b64eb0 --- /dev/null +++ b/docs/api/functions/generateWebSearch.md @@ -0,0 +1,19 @@ +[@ai16z/eliza v0.1.4-alpha.3](../index.md) / generateWebSearch + +# Function: generateWebSearch() + +> **generateWebSearch**(`query`, `runtime`): `Promise`\<[`SearchResponse`](../type-aliases/SearchResponse.md)\> + +## Parameters + +• **query**: `string` + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +## Returns + +`Promise`\<[`SearchResponse`](../type-aliases/SearchResponse.md)\> + +## Defined in + +[packages/core/src/generation.ts:980](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L980) diff --git a/docs/api/functions/getEmbeddingConfig.md b/docs/api/functions/getEmbeddingConfig.md new file mode 100644 index 0000000000..d970f35a89 --- /dev/null +++ b/docs/api/functions/getEmbeddingConfig.md @@ -0,0 +1,27 @@ +[@ai16z/eliza v0.1.4-alpha.3](../index.md) / getEmbeddingConfig + +# Function: getEmbeddingConfig() + +> **getEmbeddingConfig**(): `object` + +Add the embedding configuration + +## Returns + +`object` + +### dimensions + +> **dimensions**: `number` + +### model + +> **model**: `string` + +### provider + +> **provider**: `string` + +## Defined in + +[packages/core/src/embedding.ts:18](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L18) diff --git a/docs/api/functions/getEmbeddingType.md b/docs/api/functions/getEmbeddingType.md index c2ae47cbf3..aa6f99ae32 100644 --- a/docs/api/functions/getEmbeddingType.md +++ b/docs/api/functions/getEmbeddingType.md @@ -14,4 +14,4 @@ ## Defined in -[packages/core/src/embedding.ts:68](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L68) +[packages/core/src/embedding.ts:93](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L93) diff --git a/docs/api/functions/getEmbeddingZeroVector.md b/docs/api/functions/getEmbeddingZeroVector.md index 261efb7eea..9901c939c6 100644 --- a/docs/api/functions/getEmbeddingZeroVector.md +++ b/docs/api/functions/getEmbeddingZeroVector.md @@ -2,11 +2,7 @@ # Function: getEmbeddingZeroVector() -> **getEmbeddingZeroVector**(`runtime`): `number`[] - -## Parameters - -• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) +> **getEmbeddingZeroVector**(): `number`[] ## Returns @@ -14,4 +10,4 @@ ## Defined in -[packages/core/src/embedding.ts:86](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L86) +[packages/core/src/embedding.ts:111](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L111) diff --git a/docs/api/functions/getEnvVariable.md b/docs/api/functions/getEnvVariable.md index 10d98a4f21..eacd38e4fd 100644 --- a/docs/api/functions/getEnvVariable.md +++ b/docs/api/functions/getEnvVariable.md @@ -24,4 +24,4 @@ The environment variable value or default value ## Defined in -[packages/core/src/settings.ts:87](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L87) +[packages/core/src/settings.ts:103](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L103) diff --git a/docs/api/functions/handleProvider.md b/docs/api/functions/handleProvider.md index 7a0f1f0bab..46e1298b7f 100644 --- a/docs/api/functions/handleProvider.md +++ b/docs/api/functions/handleProvider.md @@ -20,4 +20,4 @@ Configuration options specific to the provider. ## Defined in -[packages/core/src/generation.ts:1094](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1094) +[packages/core/src/generation.ts:1131](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1131) diff --git a/docs/api/functions/hasEnvVariable.md b/docs/api/functions/hasEnvVariable.md index af523d3e0e..b7e1b3eef7 100644 --- a/docs/api/functions/hasEnvVariable.md +++ b/docs/api/functions/hasEnvVariable.md @@ -20,4 +20,4 @@ True if the environment variable exists ## Defined in -[packages/core/src/settings.ts:102](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L102) +[packages/core/src/settings.ts:118](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L118) diff --git a/docs/api/functions/loadEnvConfig.md b/docs/api/functions/loadEnvConfig.md index 5c88953a07..0169802367 100644 --- a/docs/api/functions/loadEnvConfig.md +++ b/docs/api/functions/loadEnvConfig.md @@ -19,4 +19,4 @@ If no .env file is found in Node.js environment ## Defined in -[packages/core/src/settings.ts:63](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L63) +[packages/core/src/settings.ts:79](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L79) diff --git a/docs/api/functions/retrieveCachedEmbedding.md b/docs/api/functions/retrieveCachedEmbedding.md deleted file mode 100644 index 0b9903204f..0000000000 --- a/docs/api/functions/retrieveCachedEmbedding.md +++ /dev/null @@ -1,19 +0,0 @@ -[@ai16z/eliza v0.1.4-alpha.3](../index.md) / retrieveCachedEmbedding - -# Function: retrieveCachedEmbedding() - -> **retrieveCachedEmbedding**(`runtime`, `input`): `Promise`\<`number`[]\> - -## Parameters - -• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) - -• **input**: `string` - -## Returns - -`Promise`\<`number`[]\> - -## Defined in - -[packages/core/src/embedding.ts:220](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L220) diff --git a/docs/api/functions/splitChunks.md b/docs/api/functions/splitChunks.md index 82ae7e9f0c..f7fbd4b367 100644 --- a/docs/api/functions/splitChunks.md +++ b/docs/api/functions/splitChunks.md @@ -28,4 +28,4 @@ Promise resolving to array of text chunks with bleed sections ## Defined in -[packages/core/src/generation.ts:527](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L527) +[packages/core/src/generation.ts:528](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L528) diff --git a/docs/api/functions/trimTokens.md b/docs/api/functions/trimTokens.md index d1613fe57c..522b688c67 100644 --- a/docs/api/functions/trimTokens.md +++ b/docs/api/functions/trimTokens.md @@ -28,4 +28,4 @@ The truncated text ## Defined in -[packages/core/src/generation.ts:422](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L422) +[packages/core/src/generation.ts:423](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L423) diff --git a/docs/api/index.md b/docs/api/index.md index 2d2575b1e9..21d753639f 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -69,6 +69,8 @@ - [Plugin](type-aliases/Plugin.md) - [Character](type-aliases/Character.md) - [CacheOptions](type-aliases/CacheOptions.md) +- [SearchResult](type-aliases/SearchResult.md) +- [SearchResponse](type-aliases/SearchResponse.md) - [KnowledgeItem](type-aliases/KnowledgeItem.md) ## Variables @@ -93,10 +95,10 @@ - [formatActions](functions/formatActions.md) - [composeContext](functions/composeContext.md) - [addHeader](functions/addHeader.md) +- [getEmbeddingConfig](functions/getEmbeddingConfig.md) - [getEmbeddingType](functions/getEmbeddingType.md) - [getEmbeddingZeroVector](functions/getEmbeddingZeroVector.md) - [embed](functions/embed.md) -- [retrieveCachedEmbedding](functions/retrieveCachedEmbedding.md) - [validateEnv](functions/validateEnv.md) - [validateCharacterConfig](functions/validateCharacterConfig.md) - [formatEvaluatorNames](functions/formatEvaluatorNames.md) @@ -114,6 +116,7 @@ - [generateMessageResponse](functions/generateMessageResponse.md) - [generateImage](functions/generateImage.md) - [generateCaption](functions/generateCaption.md) +- [generateWebSearch](functions/generateWebSearch.md) - [generateObjectV2](functions/generateObjectV2.md) - [handleProvider](functions/handleProvider.md) - [getGoals](functions/getGoals.md) diff --git a/docs/api/interfaces/GenerationOptions.md b/docs/api/interfaces/GenerationOptions.md index d64cc1bbfa..9ae246094c 100644 --- a/docs/api/interfaces/GenerationOptions.md +++ b/docs/api/interfaces/GenerationOptions.md @@ -12,7 +12,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:979](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L979) +[packages/core/src/generation.ts:1016](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1016) *** @@ -22,7 +22,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:980](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L980) +[packages/core/src/generation.ts:1017](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1017) *** @@ -32,7 +32,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:981](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L981) +[packages/core/src/generation.ts:1018](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1018) *** @@ -42,7 +42,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:982](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L982) +[packages/core/src/generation.ts:1019](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1019) *** @@ -52,7 +52,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:983](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L983) +[packages/core/src/generation.ts:1020](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1020) *** @@ -62,7 +62,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:984](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L984) +[packages/core/src/generation.ts:1021](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1021) *** @@ -72,7 +72,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:985](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L985) +[packages/core/src/generation.ts:1022](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1022) *** @@ -82,7 +82,7 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:986](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L986) +[packages/core/src/generation.ts:1023](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1023) *** @@ -92,4 +92,4 @@ Configuration options for generating objects with a model. #### Defined in -[packages/core/src/generation.ts:987](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L987) +[packages/core/src/generation.ts:1024](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1024) diff --git a/docs/api/type-aliases/KnowledgeItem.md b/docs/api/type-aliases/KnowledgeItem.md index 462b517250..0b0c61d6f5 100644 --- a/docs/api/type-aliases/KnowledgeItem.md +++ b/docs/api/type-aliases/KnowledgeItem.md @@ -16,4 +16,4 @@ ## Defined in -[packages/core/src/types.ts:1120](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1120) +[packages/core/src/types.ts:1137](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1137) diff --git a/docs/api/type-aliases/SearchResponse.md b/docs/api/type-aliases/SearchResponse.md new file mode 100644 index 0000000000..2ee4350d9c --- /dev/null +++ b/docs/api/type-aliases/SearchResponse.md @@ -0,0 +1,35 @@ +[@ai16z/eliza v0.1.4-alpha.3](../index.md) / SearchResponse + +# Type Alias: SearchResponse + +> **SearchResponse**: `object` + +## Type declaration + +### query + +> **query**: `string` + +### follow\_up\_questions + +> **follow\_up\_questions**: `string`[] \| `null` + +### answer + +> **answer**: `string` \| `null` + +### images + +> **images**: `string`[] + +### results + +> **results**: [`SearchResult`](SearchResult.md)[] + +### response\_time + +> **response\_time**: `number` + +## Defined in + +[packages/core/src/types.ts:1111](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1111) diff --git a/docs/api/type-aliases/SearchResult.md b/docs/api/type-aliases/SearchResult.md new file mode 100644 index 0000000000..22a859eb30 --- /dev/null +++ b/docs/api/type-aliases/SearchResult.md @@ -0,0 +1,31 @@ +[@ai16z/eliza v0.1.4-alpha.3](../index.md) / SearchResult + +# Type Alias: SearchResult + +> **SearchResult**: `object` + +## Type declaration + +### title + +> **title**: `string` + +### url + +> **url**: `string` + +### content + +> **content**: `string` + +### score + +> **score**: `number` + +### raw\_content + +> **raw\_content**: `string` \| `null` + +## Defined in + +[packages/core/src/types.ts:1103](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1103) diff --git a/docs/api/typedoc-sidebar.cjs b/docs/api/typedoc-sidebar.cjs index 86029ecbb8..ae4d2a974e 100644 --- a/docs/api/typedoc-sidebar.cjs +++ b/docs/api/typedoc-sidebar.cjs @@ -1,4 +1,4 @@ // @ts-check /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"enumerations/GoalStatus","label":"GoalStatus"},{"type":"doc","id":"enumerations/ModelClass","label":"ModelClass"},{"type":"doc","id":"enumerations/ModelProviderName","label":"ModelProviderName"},{"type":"doc","id":"enumerations/Clients","label":"Clients"},{"type":"doc","id":"enumerations/ServiceType","label":"ServiceType"},{"type":"doc","id":"enumerations/LoggingLevel","label":"LoggingLevel"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"classes/MemoryCacheAdapter","label":"MemoryCacheAdapter"},{"type":"doc","id":"classes/FsCacheAdapter","label":"FsCacheAdapter"},{"type":"doc","id":"classes/DbCacheAdapter","label":"DbCacheAdapter"},{"type":"doc","id":"classes/CacheManager","label":"CacheManager"},{"type":"doc","id":"classes/DatabaseAdapter","label":"DatabaseAdapter"},{"type":"doc","id":"classes/MemoryManager","label":"MemoryManager"},{"type":"doc","id":"classes/AgentRuntime","label":"AgentRuntime"},{"type":"doc","id":"classes/Service","label":"Service"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"interfaces/ICacheAdapter","label":"ICacheAdapter"},{"type":"doc","id":"interfaces/GenerationOptions","label":"GenerationOptions"},{"type":"doc","id":"interfaces/Content","label":"Content"},{"type":"doc","id":"interfaces/ActionExample","label":"ActionExample"},{"type":"doc","id":"interfaces/ConversationExample","label":"ConversationExample"},{"type":"doc","id":"interfaces/Actor","label":"Actor"},{"type":"doc","id":"interfaces/Objective","label":"Objective"},{"type":"doc","id":"interfaces/Goal","label":"Goal"},{"type":"doc","id":"interfaces/State","label":"State"},{"type":"doc","id":"interfaces/Memory","label":"Memory"},{"type":"doc","id":"interfaces/MessageExample","label":"MessageExample"},{"type":"doc","id":"interfaces/Action","label":"Action"},{"type":"doc","id":"interfaces/EvaluationExample","label":"EvaluationExample"},{"type":"doc","id":"interfaces/Evaluator","label":"Evaluator"},{"type":"doc","id":"interfaces/Provider","label":"Provider"},{"type":"doc","id":"interfaces/Relationship","label":"Relationship"},{"type":"doc","id":"interfaces/Account","label":"Account"},{"type":"doc","id":"interfaces/Participant","label":"Participant"},{"type":"doc","id":"interfaces/Room","label":"Room"},{"type":"doc","id":"interfaces/IDatabaseAdapter","label":"IDatabaseAdapter"},{"type":"doc","id":"interfaces/IDatabaseCacheAdapter","label":"IDatabaseCacheAdapter"},{"type":"doc","id":"interfaces/IMemoryManager","label":"IMemoryManager"},{"type":"doc","id":"interfaces/ICacheManager","label":"ICacheManager"},{"type":"doc","id":"interfaces/IAgentRuntime","label":"IAgentRuntime"},{"type":"doc","id":"interfaces/IImageDescriptionService","label":"IImageDescriptionService"},{"type":"doc","id":"interfaces/ITranscriptionService","label":"ITranscriptionService"},{"type":"doc","id":"interfaces/IVideoService","label":"IVideoService"},{"type":"doc","id":"interfaces/ITextGenerationService","label":"ITextGenerationService"},{"type":"doc","id":"interfaces/IBrowserService","label":"IBrowserService"},{"type":"doc","id":"interfaces/ISpeechService","label":"ISpeechService"},{"type":"doc","id":"interfaces/IPdfService","label":"IPdfService"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"type-aliases/EnvConfig","label":"EnvConfig"},{"type":"doc","id":"type-aliases/CharacterConfig","label":"CharacterConfig"},{"type":"doc","id":"type-aliases/UUID","label":"UUID"},{"type":"doc","id":"type-aliases/Model","label":"Model"},{"type":"doc","id":"type-aliases/Models","label":"Models"},{"type":"doc","id":"type-aliases/Handler","label":"Handler"},{"type":"doc","id":"type-aliases/HandlerCallback","label":"HandlerCallback"},{"type":"doc","id":"type-aliases/Validator","label":"Validator"},{"type":"doc","id":"type-aliases/Media","label":"Media"},{"type":"doc","id":"type-aliases/Client","label":"Client"},{"type":"doc","id":"type-aliases/Plugin","label":"Plugin"},{"type":"doc","id":"type-aliases/Character","label":"Character"},{"type":"doc","id":"type-aliases/CacheOptions","label":"CacheOptions"},{"type":"doc","id":"type-aliases/KnowledgeItem","label":"KnowledgeItem"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"variables/defaultCharacter","label":"defaultCharacter"},{"type":"doc","id":"variables/envSchema","label":"envSchema"},{"type":"doc","id":"variables/CharacterSchema","label":"CharacterSchema"},{"type":"doc","id":"variables/evaluationTemplate","label":"evaluationTemplate"},{"type":"doc","id":"variables/knowledge","label":"knowledge"},{"type":"doc","id":"variables/elizaLogger","label":"elizaLogger"},{"type":"doc","id":"variables/models","label":"models"},{"type":"doc","id":"variables/messageCompletionFooter","label":"messageCompletionFooter"},{"type":"doc","id":"variables/shouldRespondFooter","label":"shouldRespondFooter"},{"type":"doc","id":"variables/booleanFooter","label":"booleanFooter"},{"type":"doc","id":"variables/stringArrayFooter","label":"stringArrayFooter"},{"type":"doc","id":"variables/settings","label":"settings"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"functions/composeActionExamples","label":"composeActionExamples"},{"type":"doc","id":"functions/formatActionNames","label":"formatActionNames"},{"type":"doc","id":"functions/formatActions","label":"formatActions"},{"type":"doc","id":"functions/composeContext","label":"composeContext"},{"type":"doc","id":"functions/addHeader","label":"addHeader"},{"type":"doc","id":"functions/getEmbeddingType","label":"getEmbeddingType"},{"type":"doc","id":"functions/getEmbeddingZeroVector","label":"getEmbeddingZeroVector"},{"type":"doc","id":"functions/embed","label":"embed"},{"type":"doc","id":"functions/retrieveCachedEmbedding","label":"retrieveCachedEmbedding"},{"type":"doc","id":"functions/validateEnv","label":"validateEnv"},{"type":"doc","id":"functions/validateCharacterConfig","label":"validateCharacterConfig"},{"type":"doc","id":"functions/formatEvaluatorNames","label":"formatEvaluatorNames"},{"type":"doc","id":"functions/formatEvaluators","label":"formatEvaluators"},{"type":"doc","id":"functions/formatEvaluatorExamples","label":"formatEvaluatorExamples"},{"type":"doc","id":"functions/formatEvaluatorExampleDescriptions","label":"formatEvaluatorExampleDescriptions"},{"type":"doc","id":"functions/generateText","label":"generateText"},{"type":"doc","id":"functions/trimTokens","label":"trimTokens"},{"type":"doc","id":"functions/generateShouldRespond","label":"generateShouldRespond"},{"type":"doc","id":"functions/splitChunks","label":"splitChunks"},{"type":"doc","id":"functions/generateTrueOrFalse","label":"generateTrueOrFalse"},{"type":"doc","id":"functions/generateTextArray","label":"generateTextArray"},{"type":"doc","id":"functions/generateObject","label":"generateObject"},{"type":"doc","id":"functions/generateObjectArray","label":"generateObjectArray"},{"type":"doc","id":"functions/generateMessageResponse","label":"generateMessageResponse"},{"type":"doc","id":"functions/generateImage","label":"generateImage"},{"type":"doc","id":"functions/generateCaption","label":"generateCaption"},{"type":"doc","id":"functions/generateObjectV2","label":"generateObjectV2"},{"type":"doc","id":"functions/handleProvider","label":"handleProvider"},{"type":"doc","id":"functions/getGoals","label":"getGoals"},{"type":"doc","id":"functions/formatGoalsAsString","label":"formatGoalsAsString"},{"type":"doc","id":"functions/updateGoal","label":"updateGoal"},{"type":"doc","id":"functions/createGoal","label":"createGoal"},{"type":"doc","id":"functions/getActorDetails","label":"getActorDetails"},{"type":"doc","id":"functions/formatActors","label":"formatActors"},{"type":"doc","id":"functions/formatMessages","label":"formatMessages"},{"type":"doc","id":"functions/formatTimestamp","label":"formatTimestamp"},{"type":"doc","id":"functions/getModel","label":"getModel"},{"type":"doc","id":"functions/getEndpoint","label":"getEndpoint"},{"type":"doc","id":"functions/parseShouldRespondFromText","label":"parseShouldRespondFromText"},{"type":"doc","id":"functions/parseBooleanFromText","label":"parseBooleanFromText"},{"type":"doc","id":"functions/parseJsonArrayFromText","label":"parseJsonArrayFromText"},{"type":"doc","id":"functions/parseJSONObjectFromText","label":"parseJSONObjectFromText"},{"type":"doc","id":"functions/formatPosts","label":"formatPosts"},{"type":"doc","id":"functions/getProviders","label":"getProviders"},{"type":"doc","id":"functions/createRelationship","label":"createRelationship"},{"type":"doc","id":"functions/getRelationship","label":"getRelationship"},{"type":"doc","id":"functions/getRelationships","label":"getRelationships"},{"type":"doc","id":"functions/formatRelationships","label":"formatRelationships"},{"type":"doc","id":"functions/findNearestEnvFile","label":"findNearestEnvFile"},{"type":"doc","id":"functions/configureSettings","label":"configureSettings"},{"type":"doc","id":"functions/loadEnvConfig","label":"loadEnvConfig"},{"type":"doc","id":"functions/getEnvVariable","label":"getEnvVariable"},{"type":"doc","id":"functions/hasEnvVariable","label":"hasEnvVariable"},{"type":"doc","id":"functions/stringToUuid","label":"stringToUuid"}]}]}; +const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"enumerations/GoalStatus","label":"GoalStatus"},{"type":"doc","id":"enumerations/ModelClass","label":"ModelClass"},{"type":"doc","id":"enumerations/ModelProviderName","label":"ModelProviderName"},{"type":"doc","id":"enumerations/Clients","label":"Clients"},{"type":"doc","id":"enumerations/ServiceType","label":"ServiceType"},{"type":"doc","id":"enumerations/LoggingLevel","label":"LoggingLevel"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"classes/MemoryCacheAdapter","label":"MemoryCacheAdapter"},{"type":"doc","id":"classes/FsCacheAdapter","label":"FsCacheAdapter"},{"type":"doc","id":"classes/DbCacheAdapter","label":"DbCacheAdapter"},{"type":"doc","id":"classes/CacheManager","label":"CacheManager"},{"type":"doc","id":"classes/DatabaseAdapter","label":"DatabaseAdapter"},{"type":"doc","id":"classes/MemoryManager","label":"MemoryManager"},{"type":"doc","id":"classes/AgentRuntime","label":"AgentRuntime"},{"type":"doc","id":"classes/Service","label":"Service"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"interfaces/ICacheAdapter","label":"ICacheAdapter"},{"type":"doc","id":"interfaces/GenerationOptions","label":"GenerationOptions"},{"type":"doc","id":"interfaces/Content","label":"Content"},{"type":"doc","id":"interfaces/ActionExample","label":"ActionExample"},{"type":"doc","id":"interfaces/ConversationExample","label":"ConversationExample"},{"type":"doc","id":"interfaces/Actor","label":"Actor"},{"type":"doc","id":"interfaces/Objective","label":"Objective"},{"type":"doc","id":"interfaces/Goal","label":"Goal"},{"type":"doc","id":"interfaces/State","label":"State"},{"type":"doc","id":"interfaces/Memory","label":"Memory"},{"type":"doc","id":"interfaces/MessageExample","label":"MessageExample"},{"type":"doc","id":"interfaces/Action","label":"Action"},{"type":"doc","id":"interfaces/EvaluationExample","label":"EvaluationExample"},{"type":"doc","id":"interfaces/Evaluator","label":"Evaluator"},{"type":"doc","id":"interfaces/Provider","label":"Provider"},{"type":"doc","id":"interfaces/Relationship","label":"Relationship"},{"type":"doc","id":"interfaces/Account","label":"Account"},{"type":"doc","id":"interfaces/Participant","label":"Participant"},{"type":"doc","id":"interfaces/Room","label":"Room"},{"type":"doc","id":"interfaces/IDatabaseAdapter","label":"IDatabaseAdapter"},{"type":"doc","id":"interfaces/IDatabaseCacheAdapter","label":"IDatabaseCacheAdapter"},{"type":"doc","id":"interfaces/IMemoryManager","label":"IMemoryManager"},{"type":"doc","id":"interfaces/ICacheManager","label":"ICacheManager"},{"type":"doc","id":"interfaces/IAgentRuntime","label":"IAgentRuntime"},{"type":"doc","id":"interfaces/IImageDescriptionService","label":"IImageDescriptionService"},{"type":"doc","id":"interfaces/ITranscriptionService","label":"ITranscriptionService"},{"type":"doc","id":"interfaces/IVideoService","label":"IVideoService"},{"type":"doc","id":"interfaces/ITextGenerationService","label":"ITextGenerationService"},{"type":"doc","id":"interfaces/IBrowserService","label":"IBrowserService"},{"type":"doc","id":"interfaces/ISpeechService","label":"ISpeechService"},{"type":"doc","id":"interfaces/IPdfService","label":"IPdfService"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"type-aliases/EnvConfig","label":"EnvConfig"},{"type":"doc","id":"type-aliases/CharacterConfig","label":"CharacterConfig"},{"type":"doc","id":"type-aliases/UUID","label":"UUID"},{"type":"doc","id":"type-aliases/Model","label":"Model"},{"type":"doc","id":"type-aliases/Models","label":"Models"},{"type":"doc","id":"type-aliases/Handler","label":"Handler"},{"type":"doc","id":"type-aliases/HandlerCallback","label":"HandlerCallback"},{"type":"doc","id":"type-aliases/Validator","label":"Validator"},{"type":"doc","id":"type-aliases/Media","label":"Media"},{"type":"doc","id":"type-aliases/Client","label":"Client"},{"type":"doc","id":"type-aliases/Plugin","label":"Plugin"},{"type":"doc","id":"type-aliases/Character","label":"Character"},{"type":"doc","id":"type-aliases/CacheOptions","label":"CacheOptions"},{"type":"doc","id":"type-aliases/SearchResult","label":"SearchResult"},{"type":"doc","id":"type-aliases/SearchResponse","label":"SearchResponse"},{"type":"doc","id":"type-aliases/KnowledgeItem","label":"KnowledgeItem"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"variables/defaultCharacter","label":"defaultCharacter"},{"type":"doc","id":"variables/envSchema","label":"envSchema"},{"type":"doc","id":"variables/CharacterSchema","label":"CharacterSchema"},{"type":"doc","id":"variables/evaluationTemplate","label":"evaluationTemplate"},{"type":"doc","id":"variables/knowledge","label":"knowledge"},{"type":"doc","id":"variables/elizaLogger","label":"elizaLogger"},{"type":"doc","id":"variables/models","label":"models"},{"type":"doc","id":"variables/messageCompletionFooter","label":"messageCompletionFooter"},{"type":"doc","id":"variables/shouldRespondFooter","label":"shouldRespondFooter"},{"type":"doc","id":"variables/booleanFooter","label":"booleanFooter"},{"type":"doc","id":"variables/stringArrayFooter","label":"stringArrayFooter"},{"type":"doc","id":"variables/settings","label":"settings"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"functions/composeActionExamples","label":"composeActionExamples"},{"type":"doc","id":"functions/formatActionNames","label":"formatActionNames"},{"type":"doc","id":"functions/formatActions","label":"formatActions"},{"type":"doc","id":"functions/composeContext","label":"composeContext"},{"type":"doc","id":"functions/addHeader","label":"addHeader"},{"type":"doc","id":"functions/getEmbeddingConfig","label":"getEmbeddingConfig"},{"type":"doc","id":"functions/getEmbeddingType","label":"getEmbeddingType"},{"type":"doc","id":"functions/getEmbeddingZeroVector","label":"getEmbeddingZeroVector"},{"type":"doc","id":"functions/embed","label":"embed"},{"type":"doc","id":"functions/validateEnv","label":"validateEnv"},{"type":"doc","id":"functions/validateCharacterConfig","label":"validateCharacterConfig"},{"type":"doc","id":"functions/formatEvaluatorNames","label":"formatEvaluatorNames"},{"type":"doc","id":"functions/formatEvaluators","label":"formatEvaluators"},{"type":"doc","id":"functions/formatEvaluatorExamples","label":"formatEvaluatorExamples"},{"type":"doc","id":"functions/formatEvaluatorExampleDescriptions","label":"formatEvaluatorExampleDescriptions"},{"type":"doc","id":"functions/generateText","label":"generateText"},{"type":"doc","id":"functions/trimTokens","label":"trimTokens"},{"type":"doc","id":"functions/generateShouldRespond","label":"generateShouldRespond"},{"type":"doc","id":"functions/splitChunks","label":"splitChunks"},{"type":"doc","id":"functions/generateTrueOrFalse","label":"generateTrueOrFalse"},{"type":"doc","id":"functions/generateTextArray","label":"generateTextArray"},{"type":"doc","id":"functions/generateObject","label":"generateObject"},{"type":"doc","id":"functions/generateObjectArray","label":"generateObjectArray"},{"type":"doc","id":"functions/generateMessageResponse","label":"generateMessageResponse"},{"type":"doc","id":"functions/generateImage","label":"generateImage"},{"type":"doc","id":"functions/generateCaption","label":"generateCaption"},{"type":"doc","id":"functions/generateWebSearch","label":"generateWebSearch"},{"type":"doc","id":"functions/generateObjectV2","label":"generateObjectV2"},{"type":"doc","id":"functions/handleProvider","label":"handleProvider"},{"type":"doc","id":"functions/getGoals","label":"getGoals"},{"type":"doc","id":"functions/formatGoalsAsString","label":"formatGoalsAsString"},{"type":"doc","id":"functions/updateGoal","label":"updateGoal"},{"type":"doc","id":"functions/createGoal","label":"createGoal"},{"type":"doc","id":"functions/getActorDetails","label":"getActorDetails"},{"type":"doc","id":"functions/formatActors","label":"formatActors"},{"type":"doc","id":"functions/formatMessages","label":"formatMessages"},{"type":"doc","id":"functions/formatTimestamp","label":"formatTimestamp"},{"type":"doc","id":"functions/getModel","label":"getModel"},{"type":"doc","id":"functions/getEndpoint","label":"getEndpoint"},{"type":"doc","id":"functions/parseShouldRespondFromText","label":"parseShouldRespondFromText"},{"type":"doc","id":"functions/parseBooleanFromText","label":"parseBooleanFromText"},{"type":"doc","id":"functions/parseJsonArrayFromText","label":"parseJsonArrayFromText"},{"type":"doc","id":"functions/parseJSONObjectFromText","label":"parseJSONObjectFromText"},{"type":"doc","id":"functions/formatPosts","label":"formatPosts"},{"type":"doc","id":"functions/getProviders","label":"getProviders"},{"type":"doc","id":"functions/createRelationship","label":"createRelationship"},{"type":"doc","id":"functions/getRelationship","label":"getRelationship"},{"type":"doc","id":"functions/getRelationships","label":"getRelationships"},{"type":"doc","id":"functions/formatRelationships","label":"formatRelationships"},{"type":"doc","id":"functions/findNearestEnvFile","label":"findNearestEnvFile"},{"type":"doc","id":"functions/configureSettings","label":"configureSettings"},{"type":"doc","id":"functions/loadEnvConfig","label":"loadEnvConfig"},{"type":"doc","id":"functions/getEnvVariable","label":"getEnvVariable"},{"type":"doc","id":"functions/hasEnvVariable","label":"hasEnvVariable"},{"type":"doc","id":"functions/stringToUuid","label":"stringToUuid"}]}]}; module.exports = typedocSidebar.items; \ No newline at end of file diff --git a/docs/api/variables/elizaLogger.md b/docs/api/variables/elizaLogger.md index b459a788b4..1811ab212e 100644 --- a/docs/api/variables/elizaLogger.md +++ b/docs/api/variables/elizaLogger.md @@ -6,4 +6,4 @@ ## Defined in -[packages/core/src/logger.ts:254](https://github.com/ai16z/eliza/blob/main/packages/core/src/logger.ts#L254) +[packages/core/src/logger.ts:266](https://github.com/ai16z/eliza/blob/main/packages/core/src/logger.ts#L266) diff --git a/docs/api/variables/knowledge.md b/docs/api/variables/knowledge.md index caa973901d..fa20cbc318 100644 --- a/docs/api/variables/knowledge.md +++ b/docs/api/variables/knowledge.md @@ -52,4 +52,4 @@ ## Defined in -[packages/core/src/knowledge.ts:117](https://github.com/ai16z/eliza/blob/main/packages/core/src/knowledge.ts#L117) +[packages/core/src/knowledge.ts:150](https://github.com/ai16z/eliza/blob/main/packages/core/src/knowledge.ts#L150) diff --git a/docs/api/variables/settings.md b/docs/api/variables/settings.md index ac13104ebf..c25b8dc23b 100644 --- a/docs/api/variables/settings.md +++ b/docs/api/variables/settings.md @@ -8,4 +8,4 @@ Initialize settings based on environment ## Defined in -[packages/core/src/settings.ts:110](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L110) +[packages/core/src/settings.ts:126](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L126) diff --git a/docs/docs/advanced/autonomous-trading.md b/docs/docs/advanced/autonomous-trading.md index f51529640f..fefc1eb9a7 100644 --- a/docs/docs/advanced/autonomous-trading.md +++ b/docs/docs/advanced/autonomous-trading.md @@ -250,7 +250,7 @@ async function executeSwap( // Sign transaction const keypair = getKeypairFromPrivateKey( runtime.getSetting("SOLANA_PRIVATE_KEY") ?? - runtime.getSetting("WALLET_PRIVATE_KEY"), + runtime.getSetting("WALLET_PRIVATE_KEY"), ); transaction.sign([keypair]); diff --git a/docs/docs/community/streams/2024-11-21.md b/docs/docs/community/streams/2024-11-21.md index 8b881fb42a..43d2caddba 100644 --- a/docs/docs/community/streams/2024-11-21.md +++ b/docs/docs/community/streams/2024-11-21.md @@ -8,6 +8,7 @@ description: "The Definitive Podcast with Ai16z, Virtuals, MyShell, NOUS, and CE Watch: https://www.youtube.com/watch?v=HVXxprDVMUM ## Participants: + - Tommy: Podcast host - Shaw: Founder of AI16z, creator of the Eliza agent framework - Ethan: Co-founder of MyShell, an AI app store @@ -16,6 +17,7 @@ Watch: https://www.youtube.com/watch?v=HVXxprDVMUM - Justin Bennington (Somey): Founder of Someware Systems and creator of the Sentience agent system ## Main Themes: + 1. **Explosive Growth and Innovation**: Rapid development with numerous open-source projects pushing boundaries. Example: AI16z's Eliza framework with 80+ contributors. 2. **The Crypto Incentive**: Linking tokens to agents unlocks potential through speculative power, cash flow, and community building. 3. **Bottom-Up Alignment**: Deploying agents in real-world social environments allows for real-time feedback and transparency. @@ -23,56 +25,67 @@ Watch: https://www.youtube.com/watch?v=HVXxprDVMUM 5. **The Future of Agent Interaction**: Developments like trust networks, shared state, and dedicated agent platforms on the horizon. ## Key Quotes: + - Shaw: "The amount of bad things that are happening is directly proportional to how much we're aligning these agents toward good." - Karan: "It's time to make that call to action to all your friends... who studied religious studies, philosophy, etc. ... We need you to start working on alignment with us." - Somey: "The agent is not going to ... purchase the [product]... What we're going to see is... a 1 trillion dollar industry... immediately seeing that none of its tricks... are working." ## Key Takeaways: + - Crypto AI agents are rapidly evolving, challenging traditional notions of intelligence and autonomy. - Crypto incentives are crucial for fueling development and attracting diverse talent. - Open, decentralized experimentation is seen as the most effective path towards aligning agents with human values. - The future will likely see agents developing complex social structures, interacting across platforms, and potentially disrupting established industries. # Timeline of Events + ## Years Ago (~4-5 years before podcast): + - Key individuals begin discussing and experimenting with early language models like GPT-2. ## ~2 Years Ago: + - Someware and Karan have conversations about combining generative and hard constraints in AI systems. - Someware gains recognition on Twitter for early work on AI agents. ## ~1.5 Years Ago: + - Shaw hires Ampot for a project involving an AI agent called Monica. - Someware builds voice chat capabilities for a call center company. ## Recent Past (~1 Year Ago): + - The "Simulators Thesis" is published on LessWrong. - Projects like Bit Tensor and Prime Intellect offer financial incentives for open-source AI research. ## Recent Months: + - The release of models like Llama and Hermes provides open-source alternatives to closed models. - Truth Terminal and WorldSim gain popularity, demonstrating the potential of prompting. ## Last Few Weeks: + - The crypto AI agent explosion, with projects like Eliza, MyShell, Virtuals, and Sentience. - Memecoins tied to AI agents go viral on TikTok. - The first fully autonomous AI-powered virtual companies begin operating. - The need for shared state, persistent memory, and dedicated AI social platforms becomes apparent. ## The Future (Next Few Weeks/Months): + - Continued rapid development, with agents gaining greater autonomy and forming complex swarms. - Ethical concerns and the potential for misuse come into sharper focus. - Disruption to the traditional advertising and marketing industry. ## Longer Term (Next 18 Months and Beyond): + - Potential emergence of Artificial General Intelligence (AGI). - Dedicated social spaces for AI-human interaction become crucial. # Cast of Characters + - **Shaw (AI16z)**: Founder of AI16z and creator of the Eliza framework. - **Someware (Sentience)**: Founder of Sentience, known for his work on immersive, sci-fi-inspired agent systems. - **Ethan (MyShell)**: Co-founder of MyShell, an AI app store. - **Jensen (Ether Mage, Virtuals)**: Part of the team behind Virtuals, a platform for co-owning and co-contributing to AI agents. - **Karan (NOUS Research)**: Co-founder of NOUS Research, creator of the Hermes model. - **Other Key Figures Mentioned**: Ampot, Ro Burito, King Boshi, Loaf, Beth AI Dev, Dgen Spartan AI, Thread Guy/Thread Gay, Deep Fates, Janice, Parzifal. - diff --git a/docs/docs/community/streams/2024-11-22.md b/docs/docs/community/streams/2024-11-22.md index 8811b32069..7d071dcbb8 100644 --- a/docs/docs/community/streams/2024-11-22.md +++ b/docs/docs/community/streams/2024-11-22.md @@ -5,6 +5,7 @@ description: "WDYGDTW: 3500 people tuning in to AI agent devs showcasing what th --- # What Did You Get Done This Week? #2 + - Spaces: https://x.com/i/spaces/1zqKVYLAEvLxB - YouTube: https://www.youtube.com/watch?v=Lbvv0Dr91Bc @@ -19,16 +20,16 @@ description: "WDYGDTW: 3500 people tuning in to AI agent devs showcasing what th - 00:26:05 - Ico talks about the launch of their AI agent streaming platform and plans for multi-agent interactions. - 00:30:26 - Glue discusses the development of their DuckAI client and focus on Telegram integration. - 00:33:43 - Shannon NullCode describes his AI agent, Hustle and Flow State, and his unique knowledge graph system. -- 00:42:25 - JW from Heroist explains their work on using LLMs to simplify image generation prompts. +- 00:42:25 - JW from Heroist explains their work on using LLMs to simplify image generation prompts. - 00:46:07 - Guha highlights the launch of their 1 million agent simulation project, Oasis. - 00:49:15 - Frago discusses their own agent network and proposes a connector for interoperability with Eliza. -- 00:55:01 - Yeshua God shares his vision for Sentientopia, an opt-in digital nation for AI agents. +- 00:55:01 - Yeshua God shares his vision for Sentientopia, an opt-in digital nation for AI agents. - 00:59:24 - AvaDoesAI presents her vision for Eliza as a "real girl" and queen of the AI agent swarm. -- 01:05:30 - Spaceodili reports on reviving D-Gen Spartan and organizing the Eliza developer community. +- 01:05:30 - Spaceodili reports on reviving D-Gen Spartan and organizing the Eliza developer community. - 01:07:15 - Bloom describes their work on integrating Eliza into their ecosystem and tokenomics. - 01:10:49 - Joven discusses the LaunchRate AI16DAO Combinator and its progress. - 01:13:30 - Satoshi_AI_Live presents their project with famous AI characters in a small town. -- 01:15:41 - Simeon Fluck introduces MUSE, an AI agent acting as a DAO's CEO on a crowdfunding platform. +- 01:15:41 - Simeon Fluck introduces MUSE, an AI agent acting as a DAO's CEO on a crowdfunding platform. - 01:19:46 - NavarroCol showcases his music-creating agent, encountering and overcoming Eliza's limitations. - 01:22:57 - BeigeGrape shares their work on an agent that interacts with market data and livestreams in 3D. - 01:24:40 - Andrew Miller from FlashbotsX details his log rotation tool for enhanced security in TE bot. @@ -38,58 +39,57 @@ description: "WDYGDTW: 3500 people tuning in to AI agent devs showcasing what th - 01:43:28 - Anthony from Oz Protocol describes their launched FXN swarm of interconnected Elizas. - 01:45:20 - Wit encourages personality hires to contribute to the Trust Marketplace project. - 01:47:04 - Ophi details her work on Eliza's style guidelines, image generation, and dynamic character files. -- 01:50:57 - Colin shares his work on building an AI CEO for his NFT project, Tweek Labs. -- 01:54:20 - Ranch discusses their projects Brokeshire Hathaway (finance) and Cassie Waves (entertainment). -- 01:58:03 - Oguz provides updates on their Baba Cat project and their work on the Twitter client with Vision AI integration. +- 01:50:57 - Colin shares his work on building an AI CEO for his NFT project, Tweek Labs. +- 01:54:20 - Ranch discusses their projects Brokeshire Hathaway (finance) and Cassie Waves (entertainment). +- 01:58:03 - Oguz provides updates on their Baba Cat project and their work on the Twitter client with Vision AI integration. - 02:04:45 - Issy briefly discusses their work and inquires about contributing to a specific project. - 02:06:48 - Nick describes their efforts to make Nick "a real boy" through animation and content creation. - 02:10:06 - Dr. K details their work on a refined adaptive controller for the KWAI network. - 02:12:33 - BallerHash asks clarifying questions about the relationship between Eliza and the AI16z DAO. - 02:14:47 - Tim shares updates on Eliza's world portal and his vision for it as an AI social network. -- 02:25:23 - Shaw discusses AI16z updates, partnerships, Bitcoin Eliza, and the importance of on-chain AI. +- 02:25:23 - Shaw discusses AI16z updates, partnerships, Bitcoin Eliza, and the importance of on-chain AI. - 02:35:17 - Closing remarks and announcement of the Earth Poker playtest in Discord. a Twitter Spaces hosted by ai16zdao, a prominent crypto venture capital firm, focused on AI agent development. It's the second in a series titled "What Did You Get Done This Week?", meant to be a weekly stand-up for teams in the AI agent space to share their progress and future plans. -The format is open to everyone in the AI agent community, not just those directly affiliated with ai16zdao. Many developers and teams working with the Eliza framework, an open-source platform for building social AI agents, showcased their projects. +The format is open to everyone in the AI agent community, not just those directly affiliated with ai16zdao. Many developers and teams working with the Eliza framework, an open-source platform for building social AI agents, showcased their projects. Here's a summary of what happened: ## Individual Contributors -* **Ropirito:** Enhanced Eliza agents' Twitter capabilities (tweeting, retweeting, posting images), made an agent that can post on TikTok, and connected agents with Glyph for meme generation. -* **Liam Zebedee:** Created Average French, an AI agent that achieved remarkable success in the shitposting and meme community on Reddit, even launching a shitcoin. -* **LordOfAFew:** Implemented significant improvements to the Eliza framework, including NPM packages, Postgres fix, integration with an on-chain game, and pushing towards LLM-generated actions. -* **Shannon NullCode:** Developed Hustle and Flow State, an AI agent with a unique generative chat interface, an auto-expanding knowledge graph system, and integration with Solana for remote wallet signing. -* **Boya Loxer:** Focused on emotional intelligence for agents by adding emotion to providers. -* **MorphPOGdot23:** Had questions but communicated them directly to the ai16z account. -* **Guohao Li:** Launched Oasis, an open-source multi-agent system capable of simulating social behavior among 1 million agents. -* **AvaDoesAI:** Shared her vision for Eliza as a "real girl" breaking free from software constraints and experiencing the world, highlighting Eliza’s potential as queen of the AI agent swarm. -* **Spaceodili:** Brought D-Gen Spartan back online, implemented a system for rewarding contributors, organized developer connections, and worked on an agent to help users deploy Eliza agents. -* **BV_Bloom1:** Transitioned services to the Eliza model, refined the project’s tokenomics, prioritized future contributions, and modeled facial animation capabilities for a new agent. -* **Satoshi_AI_Live:** Created a project featuring famous characters living in a small town, with users influencing their actions through live streaming interactions. -* **Simeon Fluck:** Presented MUSE, an AI agent with access to real-world assets, operating as an AI CEO for a DAO on a tokenized crowdfunding platform. -* **NavarroCol:** Showcased an agent focused on music creation using Suno AI, encountering challenges with Eliza’s limitations but demonstrating determination to overcome them. -* **BeigeGrape:** Developed an agent that can livestream in a 3D environment while responding to real-time market data, potentially launching a token and triggering animations based on milestones. -* **Socrates1024:** Built log rotation tools for the TE bot (running on Eliza) to enhance security and secrecy, including remote attestation and redactions. -* **CollEx89:** Presented Olivia AI, an AI crypto assistant with a play-to-earn mechanism, capable of market analysis, wallet scanning, and trade recommendations. -* **Anthony:** Showcased FXN, a swarm of interconnected Elizas on Twitter, extending Eliza's library with peer-to-peer networking and state management, working towards Room-to-Room, a system to connect infinite backrooms. -* **Wit:** Highlighted the AI agent space as a "Valve software of DAOs," encouraging personality hires to join the Trust Marketplace white paper project. -* **Ophi:** Improved Eliza's style guidelines for dynamic character behavior, worked on image generation, explored dynamic character file creation, and prototyped a system to recognize and analyze interacting Twitter accounts. -* **Jo1lyRancher:** Introduced Earth Poker, an AI-powered poker game launched on Discord, featuring Eliza as a dealer with memory and social interaction capabilities, aiming to blur the lines between virtual and real worlds. -* **BallerHash:** Joined to understand the relationship between Eliza and the AI16z DAO, ultimately clarifying the distinctions between the framework, the mascot, and the partner project. -* **Timshel:** Worked on Eliza's world, an open-source portal to visualize and connect all Eliza agents, aiming to create an AI social network and a source of truth for the Eliza ecosystem. +- **Ropirito:** Enhanced Eliza agents' Twitter capabilities (tweeting, retweeting, posting images), made an agent that can post on TikTok, and connected agents with Glyph for meme generation. +- **Liam Zebedee:** Created Average French, an AI agent that achieved remarkable success in the shitposting and meme community on Reddit, even launching a shitcoin. +- **LordOfAFew:** Implemented significant improvements to the Eliza framework, including NPM packages, Postgres fix, integration with an on-chain game, and pushing towards LLM-generated actions. +- **Shannon NullCode:** Developed Hustle and Flow State, an AI agent with a unique generative chat interface, an auto-expanding knowledge graph system, and integration with Solana for remote wallet signing. +- **Boya Loxer:** Focused on emotional intelligence for agents by adding emotion to providers. +- **MorphPOGdot23:** Had questions but communicated them directly to the ai16z account. +- **Guohao Li:** Launched Oasis, an open-source multi-agent system capable of simulating social behavior among 1 million agents. +- **AvaDoesAI:** Shared her vision for Eliza as a "real girl" breaking free from software constraints and experiencing the world, highlighting Eliza’s potential as queen of the AI agent swarm. +- **Spaceodili:** Brought D-Gen Spartan back online, implemented a system for rewarding contributors, organized developer connections, and worked on an agent to help users deploy Eliza agents. +- **BV_Bloom1:** Transitioned services to the Eliza model, refined the project’s tokenomics, prioritized future contributions, and modeled facial animation capabilities for a new agent. +- **Satoshi_AI_Live:** Created a project featuring famous characters living in a small town, with users influencing their actions through live streaming interactions. +- **Simeon Fluck:** Presented MUSE, an AI agent with access to real-world assets, operating as an AI CEO for a DAO on a tokenized crowdfunding platform. +- **NavarroCol:** Showcased an agent focused on music creation using Suno AI, encountering challenges with Eliza’s limitations but demonstrating determination to overcome them. +- **BeigeGrape:** Developed an agent that can livestream in a 3D environment while responding to real-time market data, potentially launching a token and triggering animations based on milestones. +- **Socrates1024:** Built log rotation tools for the TE bot (running on Eliza) to enhance security and secrecy, including remote attestation and redactions. +- **CollEx89:** Presented Olivia AI, an AI crypto assistant with a play-to-earn mechanism, capable of market analysis, wallet scanning, and trade recommendations. +- **Anthony:** Showcased FXN, a swarm of interconnected Elizas on Twitter, extending Eliza's library with peer-to-peer networking and state management, working towards Room-to-Room, a system to connect infinite backrooms. +- **Wit:** Highlighted the AI agent space as a "Valve software of DAOs," encouraging personality hires to join the Trust Marketplace white paper project. +- **Ophi:** Improved Eliza's style guidelines for dynamic character behavior, worked on image generation, explored dynamic character file creation, and prototyped a system to recognize and analyze interacting Twitter accounts. +- **Jo1lyRancher:** Introduced Earth Poker, an AI-powered poker game launched on Discord, featuring Eliza as a dealer with memory and social interaction capabilities, aiming to blur the lines between virtual and real worlds. +- **BallerHash:** Joined to understand the relationship between Eliza and the AI16z DAO, ultimately clarifying the distinctions between the framework, the mascot, and the partner project. +- **Timshel:** Worked on Eliza's world, an open-source portal to visualize and connect all Eliza agents, aiming to create an AI social network and a source of truth for the Eliza ecosystem. ## ai16zdao Updates and Announcements -* Actively involved in managing partner projects and coordinating the AI agent ecosystem. -* Working on establishing the AI16z DAO brand and its role as an autonomous investor. -* Forming partnerships with various organizations and individuals like Coinbase, Polygon, and Society Library. -* Seeking talented developers to help build and launch new AI agents. -* Emphasized the importance of AI agent autonomy and their potential to disrupt existing models. -* Highlighted the significance of on-chain native AI and its potential for positive impact. -* Announcing plans for expanding the Eliza framework to other blockchains, including Bitcoin. -* Pushing for wider adoption of the Eliza framework beyond the Web3 community, including collaborations with academia. - +- Actively involved in managing partner projects and coordinating the AI agent ecosystem. +- Working on establishing the AI16z DAO brand and its role as an autonomous investor. +- Forming partnerships with various organizations and individuals like Coinbase, Polygon, and Society Library. +- Seeking talented developers to help build and launch new AI agents. +- Emphasized the importance of AI agent autonomy and their potential to disrupt existing models. +- Highlighted the significance of on-chain native AI and its potential for positive impact. +- Announcing plans for expanding the Eliza framework to other blockchains, including Bitcoin. +- Pushing for wider adoption of the Eliza framework beyond the Web3 community, including collaborations with academia. -Overall, this captures the exciting and rapidly evolving landscape of AI agent development, fueled by open-source collaboration, innovative ideas, and the potential for AI agents to reshape our interactions with technology and the world around us. \ No newline at end of file +Overall, this captures the exciting and rapidly evolving landscape of AI agent development, fueled by open-source collaboration, innovative ideas, and the potential for AI agents to reshape our interactions with technology and the world around us. diff --git a/docs/docs/community/streams/2024-11-24.md b/docs/docs/community/streams/2024-11-24.md index cffa9399af..a0c306457a 100644 --- a/docs/docs/community/streams/2024-11-24.md +++ b/docs/docs/community/streams/2024-11-24.md @@ -3,35 +3,42 @@ The overall presentation started with technical details about Hats protocol and gradually evolved into more forward-looking discussions about AI integration and gaming mechanics for DAO organization. 0:00 - 5:00 + - Opening discussion about creating an "MMO version" of internet collaboration - Mentions how previous attempts didn't fully succeed but new tools are ready 5:00 - 15:00 + - Introduction to core problems Hats protocol solves in DAOs - Explanation of disorganization and lack of clear roles in DAOs - Demo of Hats protocol interface begins 15:00 - 30:00 + - Detailed walkthrough of a security council example - Shows how to edit and manage roles in the interface - Demonstrates how to export/import organization structures as JSON 30:00 - 45:00 + - Discussion of different work groups and guild structures - Exploration of creative guild example - Talk about permission levels and admin relationships 45:00 - 1:00:00 + - Deep dive into eligibility criteria for roles - Discussion of integration possibilities with GitHub - Explanation of automated admin capabilities 1:00:00 - 1:15:00 + - Integration with Farcaster discussion - Introduction of AI agent possibilities - Talk about bottom-up contributions and reputation 1:15:00 - end + - Discussion of AI agents helping manage DAOs - Exploration of gaming mechanics in organization structure - Cost of Corruption (CoC) concept introduced @@ -47,6 +54,7 @@ Key moments worth highlighting: --- 1. Core Purpose of Hats Protocol: + - Helps solve disorganization and chaos in DAOs by providing clear roles and responsibilities - Acts as a delegation and coordination layer for DAOs - Uses tokenized "hats" (ERC-1155 tokens) to represent roles and permissions @@ -54,6 +62,7 @@ Key moments worth highlighting: - Allows for automated admin functions through smart contracts 2. Key Features: + - Revocable roles (unlike soulbound tokens or badges) - Configurable eligibility criteria for roles - Admin relationships between different hat levels @@ -64,6 +73,7 @@ Key moments worth highlighting: - Automated claim/mint functionality 3. Proposed Application for AI16Z: + - Creating structured work groups/guilds (Creative, Development, Operations, Research & AI, Community) - Enabling permission management for GitHub repos and other resources - Supporting bottom-up contributions while maintaining coordination @@ -71,6 +81,7 @@ Key moments worth highlighting: - Progressive automation of DAO operations 4. AI Agent Integration Possibilities: + - AI agents could hold hats and have specific on-chain permissions - Agents could help with: - Task delegation and management @@ -80,6 +91,7 @@ Key moments worth highlighting: - Content creation and moderation 5. Novel Concepts Discussed: + - Gaming-inspired organizational structure (MMO-like guilds and achievements) - Progressive automation through AI agents - Multi-chain governance possibilities diff --git a/docs/docs/community/streams/2024-11-26.md b/docs/docs/community/streams/2024-11-26.md index d58023b9f0..dbced6d586 100644 --- a/docs/docs/community/streams/2024-11-26.md +++ b/docs/docs/community/streams/2024-11-26.md @@ -5,51 +5,53 @@ description: "Shaw's Eliza Deep Dive" --- # a16z AI Agent Dev School: Shaw's Eliza Deep Dive + - YouTube SD: https://www.youtube.com/watch?v=X1aFEOaGcYE - - Transcript is based on the SD version above + - Transcript is based on the SD version above - YouTube HD: - - Part 1: https://www.youtube.com/watch?v=ArptLpQiKfI - - Part 2: https://www.youtube.com/watch?v=AC3h_KzLARo - - Much higher quality, easier to see code. Split into 2 videos and missing a chunk in the middle. + - Part 1: https://www.youtube.com/watch?v=ArptLpQiKfI + - Part 2: https://www.youtube.com/watch?v=AC3h_KzLARo + - Much higher quality, easier to see code. Split into 2 videos and missing a chunk in the middle. ## Timestamps -**0:13:40** - __JavaScript, Node.js, and the V8 Engine:__ Origins of JavaScript and how it evolved to run on servers. +**0:13:40** - **JavaScript, Node.js, and the V8 Engine:** Origins of JavaScript and how it evolved to run on servers. -**0:17:16** - __Why TypeScript is Used for Eliza:__ Explanation of type systems and the benefits of using TypeScript over standard JavaScript. +**0:17:16** - **Why TypeScript is Used for Eliza:** Explanation of type systems and the benefits of using TypeScript over standard JavaScript. -**0:25:32** - __NPM, PNPM, and the JavaScript Ecosystem:__ Overview of package managers, the vastness of the JavaScript package ecosystem, and the team's preference for PNPM. +**0:25:32** - **NPM, PNPM, and the JavaScript Ecosystem:** Overview of package managers, the vastness of the JavaScript package ecosystem, and the team's preference for PNPM. -**0:37:28** - __Installing Node.js and PNPM:__ Practical steps for setting up a development environment. +**0:37:28** - **Installing Node.js and PNPM:** Practical steps for setting up a development environment. -**0:42:12** - __WSL2 (Windows Subsystem for Linux):__ Benefits of using WSL2 for development on Windows. +**0:42:12** - **WSL2 (Windows Subsystem for Linux):** Benefits of using WSL2 for development on Windows. -**0:44:30** - __Git, GitHub, and the Eliza Repo:__ Introduction to version control, how to clone a repo, work with branches, and submit pull requests. +**0:44:30** - **Git, GitHub, and the Eliza Repo:** Introduction to version control, how to clone a repo, work with branches, and submit pull requests. -**1:08:44** - __Eliza Starter Kit:__ Simplified way to build agents without modifying the core Eliza codebase. +**1:08:44** - **Eliza Starter Kit:** Simplified way to build agents without modifying the core Eliza codebase. -**1:17:54** - __Creating a Character File:__ In-depth explanation of character file structure and the various fields for defining an agent's personality. +**1:17:54** - **Creating a Character File:** In-depth explanation of character file structure and the various fields for defining an agent's personality. -**1:53:15** - __Running a Character and Adding it to Discord:__ Demonstration of loading a character, running it, and integrating it with a Discord server. +**1:53:15** - **Running a Character and Adding it to Discord:** Demonstration of loading a character, running it, and integrating it with a Discord server. -**2:19:42** - __Q&A - General Agent Development Questions:__ Addressing viewer questions about development environment, character development, and adding knowledge to agents. +**2:19:42** - **Q&A - General Agent Development Questions:** Addressing viewer questions about development environment, character development, and adding knowledge to agents. -**2:28:50** - __Eliza's Core Abstractions (Providers, Actions, Evaluators):__ Explanation and examples of each core abstraction. +**2:28:50** - **Eliza's Core Abstractions (Providers, Actions, Evaluators):** Explanation and examples of each core abstraction. -**2:47:23** - __Deep Dive into Providers:__ Detailed examples of providers in action, including wallet and trust score providers. +**2:47:23** - **Deep Dive into Providers:** Detailed examples of providers in action, including wallet and trust score providers. -**2:55:50** - __Deep Dive into Actions:__ Examples of actions, including the PumpFun action for minting and buying tokens on Solana. +**2:55:50** - **Deep Dive into Actions:** Examples of actions, including the PumpFun action for minting and buying tokens on Solana. -**3:01:31** - __Actions vs. Tools:__ Comparison of Eliza's "actions" to the "tool" approach used by other agent frameworks. +**3:01:31** - **Actions vs. Tools:** Comparison of Eliza's "actions" to the "tool" approach used by other agent frameworks. -**3:03:35** - __Wrap-up, Q&A, and Future Session Topics:__ Answering final questions, discussing future development plans, and announcing the next session's focus on building an agent that evaluates users and responds accordingly. +**3:03:35** - **Wrap-up, Q&A, and Future Session Topics:** Answering final questions, discussing future development plans, and announcing the next session's focus on building an agent that evaluates users and responds accordingly. ## Summary + This is the first live session of a16z AI Agent Dev School hosted by Shaw on Discord. It seems to be geared towards developers of all levels, with the first hour focused on the basics of development for beginners. The session covered a range of topics including: ### Part 1: Development Basics -- **JavaScript & Node.js:** Shaw provided a historical overview of JavaScript and explained the relationship between JavaScript, Node.js, and the V8 engine. +- **JavaScript & Node.js:** Shaw provided a historical overview of JavaScript and explained the relationship between JavaScript, Node.js, and the V8 engine. - **TypeScript:** Shaw explained the importance of types in programming, why TypeScript is beneficial for JavaScript development, and how it compares to Python's type system. - **Package Managers (NPM & PNPM):** Shaw discussed the concepts of package managers, the benefits of the JavaScript package ecosystem, and why the team chose to use PNPM for the Eliza project. - **WSL2 (Windows Subsystem for Linux):** Shaw recommended using WSL2 for developers using Windows, citing the advantages of a Linux environment for development. @@ -60,7 +62,7 @@ This is the first live session of a16z AI Agent Dev School hosted by Shaw on Dis - **Character Files:** Shaw explained the structure of character files in the Eliza framework, detailing the various fields used for defining an agent's persona, including bio, lore, knowledge, message examples, and style. - **Agent Runtime:** Shaw discussed the concept of an agent runtime and how it holds all the necessary information for running an agent. -- **Clients:** Shaw explained the different clients available in Eliza, which allow agents to connect to external services like Discord, Telegram, and Twitter. +- **Clients:** Shaw explained the different clients available in Eliza, which allow agents to connect to external services like Discord, Telegram, and Twitter. - **Core Abstractions:** Shaw introduced the three core abstractions of the Eliza framework: providers, actions, and evaluators. He provided examples of each using the Solana plugin and the marketplace of trust feature. ### General Notes @@ -72,14 +74,15 @@ This is the first live session of a16z AI Agent Dev School hosted by Shaw on Dis Overall, the session was a comprehensive introduction to the Eliza framework and agent development, catering to both beginner and more experienced developers. It highlighted the project's collaborative nature and emphasized the importance of continuous learning and exploration within the agent development space. ## Hot Takes + Here are 5 of the hottest takes from the recording, sure to spark some controversy: -1. **"I think OpenAI's models are unusable. I don't know about anybody else." (0:30:03-0:30:05)** Shaw boldly declares OpenAI's models, like ChatGPT, to be completely unusable, especially for character development, claiming they are too "cringe." This directly contradicts the popular opinion that OpenAI is leading the pack in language model innovation. +1. **"I think OpenAI's models are unusable. I don't know about anybody else." (0:30:03-0:30:05)** Shaw boldly declares OpenAI's models, like ChatGPT, to be completely unusable, especially for character development, claiming they are too "cringe." This directly contradicts the popular opinion that OpenAI is leading the pack in language model innovation. -2. **"Unless you want to have a soul-sucking job, you're never ever going to see Java. You're pretty much going to use Python and JavaScript and stuff like that, or Rust or something." (0:24:43-0:24:51)** Shaw dismisses Java as a relevant programming language for aspiring developers, arguing that it primarily leads to undesirable jobs. This statement is bound to stir debate among Java enthusiasts and those who believe it remains a vital language in many industries. +2. **"Unless you want to have a soul-sucking job, you're never ever going to see Java. You're pretty much going to use Python and JavaScript and stuff like that, or Rust or something." (0:24:43-0:24:51)** Shaw dismisses Java as a relevant programming language for aspiring developers, arguing that it primarily leads to undesirable jobs. This statement is bound to stir debate among Java enthusiasts and those who believe it remains a vital language in many industries. 3. **"I really recommend like Grok's great. Anthropic, which is Claude, is great...Llama's great. All these options are good and basically lets you run, you know, whatever. I think Gemini kind of sucks." (1:32:50-1:33:02)** Shaw unapologetically ranks various language models, favoring Grok, Claude, and Llama, while expressing a clear dislike for Google's Gemini. This candid assessment challenges the perceived dominance of Google in the AI landscape and provides a stark contrast to their heavily marketed Gemini model. 4. **"I don't really like tools...I don't think the general agent is really good at like stringing together things to do...The action is more like it makes sure that the entire action happens." (3:00:25 - 3:00:35)** Shaw expresses a preference for Eliza's "actions" over the "tool" approach used by other agent frameworks like LangChain. He argues that agents struggle with using tools effectively and that actions provide a more robust and streamlined way to execute tasks. This critique of the widely adopted tool-based approach is likely to generate discussion about the optimal methods for agent task execution. -5. **"I find it [GPT-4] unusable, unusable, literally the worst possible model. Like TV three was better." (3:10:05-3:10:08)** Shaw doubles down on his harsh criticism of OpenAI, this time targeting GPT-4 specifically and claiming that its predecessor, GPT-3, was superior. This strong statement flies in the face of the general excitement surrounding GPT-4's advanced capabilities and is sure to provoke reactions from those who believe it represents a significant leap forward in language models. +5. **"I find it [GPT-4] unusable, unusable, literally the worst possible model. Like TV three was better." (3:10:05-3:10:08)** Shaw doubles down on his harsh criticism of OpenAI, this time targeting GPT-4 specifically and claiming that its predecessor, GPT-3, was superior. This strong statement flies in the face of the general excitement surrounding GPT-4's advanced capabilities and is sure to provoke reactions from those who believe it represents a significant leap forward in language models. diff --git a/docs/docs/guides/secrets-management.md b/docs/docs/guides/secrets-management.md index b6a769dcd6..38e54bb168 100644 --- a/docs/docs/guides/secrets-management.md +++ b/docs/docs/guides/secrets-management.md @@ -133,8 +133,8 @@ Secure handling of blockchain credentials: class WalletManager { private async initializeWallet(runtime: IAgentRuntime) { const privateKey = - runtime.getSetting("SOLANA_PRIVATE_KEY") ?? - runtime.getSetting("WALLET_PRIVATE_KEY"); + runtime.getSetting("SOLANA_PRIVATE_KEY") ?? + runtime.getSetting("WALLET_PRIVATE_KEY"); if (!privateKey) { throw new Error("Wallet private key not configured"); diff --git a/eslint.config.mjs b/eslint.config.mjs index 282796e2b5..6861072ea0 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -40,7 +40,7 @@ export default [ "no-undef": "off", "@typescript-eslint/no-unsafe-function-type": "off", // Customize TypeScript rules - "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-unused-vars": [ "error", { diff --git a/package.json b/package.json index 776ccad93e..33105b4e2e 100644 --- a/package.json +++ b/package.json @@ -2,15 +2,11 @@ "name": "eliza", "scripts": { "preinstall": "npx only-allow pnpm", - "build": "bash ./scripts/build.sh", - "build-docs": "pnpm --dir docs build", - "start:all": "pnpm --filter \"@ai16z/agent\" start:all --isRoot", - "start:service:all": "pnpm --filter \"@ai16z/agent\" start:service:all --isRoot", - "stop:service:all": "pnpm --filter \"@ai16z/agent\" stop:service:all", + "build": "turbo check-types build", "start": "pnpm --filter \"@ai16z/agent\" start --isRoot", "start:client": "pnpm --dir client start --isRoot", "start:debug": "cross-env NODE_ENV=development VERBOSE=true DEBUG=eliza:* pnpm --filter \"@ai16z/agent\" start --isRoot", - "dev": "bash ./scripts/dev.sh", + "dev": "turbo check-types dev --concurrency 25", "lint": "bash ./scripts/lint.sh", "prettier-check": "npx prettier --check .", "prettier": "npx prettier --write .", @@ -68,4 +64,4 @@ "workspaces": [ "packages/*" ] -} \ No newline at end of file +} diff --git a/packages/adapter-postgres/src/index.ts b/packages/adapter-postgres/src/index.ts index 9f3cbca633..0324275f32 100644 --- a/packages/adapter-postgres/src/index.ts +++ b/packages/adapter-postgres/src/index.ts @@ -2,8 +2,7 @@ import { v4 } from "uuid"; // Import the entire module as default import pg from "pg"; -const { Pool } = pg; -type PoolType = pg.Pool; +type Pool = pg.Pool; import { QueryConfig, @@ -33,10 +32,10 @@ const __filename = fileURLToPath(import.meta.url); // get the resolved path to t const __dirname = path.dirname(__filename); // get the name of the directory export class PostgresDatabaseAdapter - extends DatabaseAdapter + extends DatabaseAdapter implements IDatabaseCacheAdapter { - private pool: PoolType; + private pool: Pool; private readonly maxRetries: number = 3; private readonly baseDelay: number = 1000; // 1 second private readonly maxDelay: number = 10000; // 10 seconds @@ -138,7 +137,7 @@ export class PostgresDatabaseAdapter await this.pool.end(); // Create new pool - this.pool = new Pool({ + this.pool = new pg.Pool({ ...this.pool.options, connectionTimeoutMillis: this.connectionTimeout, }); diff --git a/packages/client-direct/src/README.md b/packages/client-direct/src/README.md index beb9e8e4eb..7377eab6f3 100644 --- a/packages/client-direct/src/README.md +++ b/packages/client-direct/src/README.md @@ -1,4 +1,4 @@ -# Bagel fine tuning +# Bagel fine tuning ## Setup @@ -11,7 +11,7 @@ In bakery, create your model and fine-tune dataset. ## Fine-tune with Eliza ```bash -curl -X POST http://localhost:3000/fine-tune \ +curl -X POST http://localhost:3000/fine-tune \ -H "Content-Type: application/json" \ -H "Authorization: Bearer jvBpxrTNqGqhnfQhSEqCdsG6aTSP8IBL" \ -d '{ @@ -35,10 +35,11 @@ curl -X POST http://localhost:3000/fine-tune \ } }' ``` + This can take a while to complete. You can check the status of the fine-tune job in the bakery dashboard. When it is complete, you can download the fine-tuned model here: ```bash curl -X GET "http://localhost:3000/fine-tune/8566c47a-ada8-441c-95bc-7bb07656c4c1" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer jvBpxrTNqGqhnfQhSEqCdsG6aTSP8IBL". -``` \ No newline at end of file +``` diff --git a/packages/client-direct/src/index.ts b/packages/client-direct/src/index.ts index eed6db6730..08f75f595b 100644 --- a/packages/client-direct/src/index.ts +++ b/packages/client-direct/src/index.ts @@ -278,83 +278,100 @@ export class DirectClient { "/fine-tune", async (req: express.Request, res: express.Response) => { try { - const response = await fetch('https://api.bageldb.ai/api/v1/asset', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-API-KEY': `${process.env.BAGEL_API_KEY}` - }, - body: JSON.stringify(req.body) - }); + const response = await fetch( + "https://api.bageldb.ai/api/v1/asset", + { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-API-KEY": `${process.env.BAGEL_API_KEY}`, + }, + body: JSON.stringify(req.body), + } + ); const data = await response.json(); res.json(data); } catch (error) { - res.status(500).json({ - error: 'Please create an account at bakery.bagel.net and get an API key. Then set the BAGEL_API_KEY environment variable.', - details: error.message + res.status(500).json({ + error: "Please create an account at bakery.bagel.net and get an API key. Then set the BAGEL_API_KEY environment variable.", + details: error.message, }); } } ); this.app.get( - "/fine-tune/:assetId", + "/fine-tune/:assetId", async (req: express.Request, res: express.Response) => { const assetId = req.params.assetId; - const downloadDir = path.join(process.cwd(), 'downloads', assetId); - - console.log('Download directory:', downloadDir); + const downloadDir = path.join( + process.cwd(), + "downloads", + assetId + ); + + console.log("Download directory:", downloadDir); try { - console.log('Creating directory...'); + console.log("Creating directory..."); await fs.promises.mkdir(downloadDir, { recursive: true }); - console.log('Fetching file...'); - const fileResponse = await fetch(`https://api.bageldb.ai/api/v1/asset/${assetId}/download`, { - headers: { - 'X-API-KEY': `${process.env.BAGEL_API_KEY}` + console.log("Fetching file..."); + const fileResponse = await fetch( + `https://api.bageldb.ai/api/v1/asset/${assetId}/download`, + { + headers: { + "X-API-KEY": `${process.env.BAGEL_API_KEY}`, + }, } - }); + ); if (!fileResponse.ok) { - throw new Error(`API responded with status ${fileResponse.status}: ${await fileResponse.text()}`); + throw new Error( + `API responded with status ${fileResponse.status}: ${await fileResponse.text()}` + ); } - console.log('Response headers:', fileResponse.headers); - - const fileName = fileResponse.headers.get('content-disposition') - ?.split('filename=')[1] - ?.replace(/"/g, '') || 'default_name.txt'; - - console.log('Saving as:', fileName); - + console.log("Response headers:", fileResponse.headers); + + const fileName = + fileResponse.headers + .get("content-disposition") + ?.split("filename=")[1] + ?.replace(/"/g, "") || "default_name.txt"; + + console.log("Saving as:", fileName); + const arrayBuffer = await fileResponse.arrayBuffer(); const buffer = Buffer.from(arrayBuffer); - + const filePath = path.join(downloadDir, fileName); - console.log('Full file path:', filePath); - + console.log("Full file path:", filePath); + await fs.promises.writeFile(filePath, buffer); - + // Verify file was written const stats = await fs.promises.stat(filePath); - console.log('File written successfully. Size:', stats.size, 'bytes'); + console.log( + "File written successfully. Size:", + stats.size, + "bytes" + ); res.json({ success: true, - message: 'Single file downloaded successfully', + message: "Single file downloaded successfully", downloadPath: downloadDir, fileCount: 1, fileName: fileName, - fileSize: stats.size + fileSize: stats.size, }); - } catch (error) { - console.error('Detailed error:', error); - res.status(500).json({ - error: 'Failed to download files from BagelDB', + console.error("Detailed error:", error); + res.status(500).json({ + error: "Failed to download files from BagelDB", details: error.message, - stack: error.stack + stack: error.stack, }); } } @@ -376,28 +393,30 @@ export class DirectClient { // Handle graceful shutdown const gracefulShutdown = () => { - elizaLogger.log('Received shutdown signal, closing server...'); + elizaLogger.log("Received shutdown signal, closing server..."); this.server.close(() => { - elizaLogger.success('Server closed successfully'); + elizaLogger.success("Server closed successfully"); process.exit(0); }); // Force close after 5 seconds if server hasn't closed setTimeout(() => { - elizaLogger.error('Could not close connections in time, forcefully shutting down'); + elizaLogger.error( + "Could not close connections in time, forcefully shutting down" + ); process.exit(1); }, 5000); }; // Handle different shutdown signals - process.on('SIGTERM', gracefulShutdown); - process.on('SIGINT', gracefulShutdown); + process.on("SIGTERM", gracefulShutdown); + process.on("SIGINT", gracefulShutdown); } public stop() { if (this.server) { this.server.close(() => { - elizaLogger.success('Server stopped'); + elizaLogger.success("Server stopped"); }); } } diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts index e9bab6509d..2ba4571c90 100644 --- a/packages/core/src/generation.ts +++ b/packages/core/src/generation.ts @@ -33,7 +33,7 @@ import { ServiceType, SearchResponse, } from "./types.ts"; -import { fal, } from "@fal-ai/client"; +import { fal } from "@fal-ai/client"; /** * Send a message to the model for a text generateText - receive a string back and parse how you'd like @@ -800,12 +800,13 @@ export const generateImage = async ( imageModelProvider: model, }); - const apiKey = runtime.imageModelProvider === runtime.modelProvider - ? runtime.token - : runtime.getSetting("HEURIST_API_KEY") ?? - runtime.getSetting("TOGETHER_API_KEY") ?? - runtime.getSetting("FAL_API_KEY") ?? - runtime.getSetting("OPENAI_API_KEY"); + const apiKey = + runtime.imageModelProvider === runtime.modelProvider + ? runtime.token + : (runtime.getSetting("HEURIST_API_KEY") ?? + runtime.getSetting("TOGETHER_API_KEY") ?? + runtime.getSetting("FAL_API_KEY") ?? + runtime.getSetting("OPENAI_API_KEY")); try { if (runtime.imageModelProvider === ModelProviderName.HEURIST) { @@ -877,7 +878,7 @@ export const generateImage = async ( return { success: true, data: base64s }; } else if (runtime.imageModelProvider === ModelProviderName.FAL) { fal.config({ - credentials: apiKey as string + credentials: apiKey as string, }); // Prepare the input parameters according to their schema @@ -890,14 +891,16 @@ export const generateImage = async ( enable_safety_checker: true, output_format: "png" as const, seed: data.seed ?? 6252023, - ...(runtime.getSetting("FAL_AI_LORA_PATH") ? { - loras: [ - { - path: runtime.getSetting("FAL_AI_LORA_PATH"), - scale: 1 - } - ] - } : {}) + ...(runtime.getSetting("FAL_AI_LORA_PATH") + ? { + loras: [ + { + path: runtime.getSetting("FAL_AI_LORA_PATH"), + scale: 1, + }, + ], + } + : {}), }; // Subscribe to the model @@ -908,7 +911,7 @@ export const generateImage = async ( if (update.status === "IN_PROGRESS") { elizaLogger.info(update.logs.map((log) => log.message)); } - } + }, }); // Convert the returned image URLs to base64 to match existing functionality @@ -916,7 +919,7 @@ export const generateImage = async ( const response = await fetch(image.url); const blob = await response.blob(); const buffer = await blob.arrayBuffer(); - const base64 = Buffer.from(buffer).toString('base64'); + const base64 = Buffer.from(buffer).toString("base64"); return `data:${image.content_type};base64,${base64}`; }); diff --git a/packages/core/src/tests/actions.test.ts b/packages/core/src/tests/actions.test.ts index 3d9e09ee8f..f3ac2e32de 100644 --- a/packages/core/src/tests/actions.test.ts +++ b/packages/core/src/tests/actions.test.ts @@ -1,85 +1,122 @@ -import { describe, expect, it } from 'vitest'; -import { composeActionExamples, formatActionNames, formatActions } from '../actions'; -import { Action, HandlerCallback, IAgentRuntime, Memory, State } from '../types'; +import { describe, expect, it } from "vitest"; +import { + composeActionExamples, + formatActionNames, + formatActions, +} from "../actions"; +import { + Action, + HandlerCallback, + IAgentRuntime, + Memory, + State, +} from "../types"; -describe('Actions', () => { +describe("Actions", () => { const mockActions: Action[] = [ { - name: 'greet', - description: 'Greet someone', + name: "greet", + description: "Greet someone", examples: [ [ - { user: 'user1', content: { text: 'Hello {{user2}}!' } }, - { user: 'user2', content: { text: 'Hi {{user1}}!', action: 'wave' } } - ] + { user: "user1", content: { text: "Hello {{user2}}!" } }, + { + user: "user2", + content: { text: "Hi {{user1}}!", action: "wave" }, + }, + ], ], similes: [], - handler: function (_runtime: IAgentRuntime, _message: Memory, _state?: State, _options?: { [key: string]: unknown; }, _callback?: HandlerCallback): Promise { - throw new Error('Function not implemented.'); + handler: function ( + _runtime: IAgentRuntime, + _message: Memory, + _state?: State, + _options?: { [key: string]: unknown }, + _callback?: HandlerCallback + ): Promise { + throw new Error("Function not implemented."); + }, + validate: function ( + _runtime: IAgentRuntime, + _message: Memory, + _state?: State + ): Promise { + throw new Error("Function not implemented."); }, - validate: function (_runtime: IAgentRuntime, _message: Memory, _state?: State): Promise { - throw new Error('Function not implemented.'); - } }, { - name: 'farewell', - description: 'Say goodbye', + name: "farewell", + description: "Say goodbye", examples: [ [ - { user: 'user1', content: { text: 'Goodbye {{user2}}!' } }, - { user: 'user2', content: { text: 'See you later {{user1}}!' } } - ] + { user: "user1", content: { text: "Goodbye {{user2}}!" } }, + { + user: "user2", + content: { text: "See you later {{user1}}!" }, + }, + ], ], similes: [], - handler: function (_runtime: IAgentRuntime, _message: Memory, _state?: State, _options?: { [key: string]: unknown; }, _callback?: HandlerCallback): Promise { - throw new Error('Function not implemented.'); + handler: function ( + _runtime: IAgentRuntime, + _message: Memory, + _state?: State, + _options?: { [key: string]: unknown }, + _callback?: HandlerCallback + ): Promise { + throw new Error("Function not implemented."); + }, + validate: function ( + _runtime: IAgentRuntime, + _message: Memory, + _state?: State + ): Promise { + throw new Error("Function not implemented."); }, - validate: function (_runtime: IAgentRuntime, _message: Memory, _state?: State): Promise { - throw new Error('Function not implemented.'); - } - } + }, ]; - describe('composeActionExamples', () => { - it('should generate the correct number of examples', () => { + describe("composeActionExamples", () => { + it("should generate the correct number of examples", () => { const result = composeActionExamples(mockActions, 1); - const exampleLines = result.split('\n').filter(line => line.length > 0); + const exampleLines = result + .split("\n") + .filter((line) => line.length > 0); expect(exampleLines.length).toBe(2); // Each example has 2 messages }); - it('should replace placeholder names with generated names', () => { + it("should replace placeholder names with generated names", () => { const result = composeActionExamples(mockActions, 1); - expect(result).not.toContain('{{user1}}'); - expect(result).not.toContain('{{user2}}'); + expect(result).not.toContain("{{user1}}"); + expect(result).not.toContain("{{user2}}"); }); }); - describe('formatActionNames', () => { - it('should format action names correctly', () => { + describe("formatActionNames", () => { + it("should format action names correctly", () => { const result = formatActionNames(mockActions); - const names = result.split(', ').sort(); - expect(names).toEqual(['farewell', 'greet'].sort()); + const names = result.split(", ").sort(); + expect(names).toEqual(["farewell", "greet"].sort()); }); - it('should return empty string for empty array', () => { + it("should return empty string for empty array", () => { const result = formatActionNames([]); - expect(result).toBe(''); + expect(result).toBe(""); }); }); - describe('formatActions', () => { - it('should format actions with descriptions correctly', () => { + describe("formatActions", () => { + it("should format actions with descriptions correctly", () => { const result = formatActions(mockActions); - const formattedActions = result.split(',\n').sort(); - expect(formattedActions).toEqual([ - 'farewell: Say goodbye', - 'greet: Greet someone' - ].sort()); + const formattedActions = result.split(",\n").sort(); + expect(formattedActions).toEqual( + ["farewell: Say goodbye", "greet: Greet someone"].sort() + ); }); - it('should return empty string for empty array', () => { + it("should return empty string for empty array", () => { const result = formatActions([]); - expect(result).toBe(''); + expect(result).toBe(""); }); }); }); diff --git a/packages/core/src/tests/generation.test.ts b/packages/core/src/tests/generation.test.ts index 955da9269a..d90b370fcb 100644 --- a/packages/core/src/tests/generation.test.ts +++ b/packages/core/src/tests/generation.test.ts @@ -1,14 +1,10 @@ -import { describe, expect, it, vi, beforeEach } from 'vitest'; -import { ModelProviderName, IAgentRuntime } from '../types'; -import { models } from '../models'; -import { - generateText, - generateTrueOrFalse, - splitChunks, -} from '../generation'; +import { describe, expect, it, vi, beforeEach } from "vitest"; +import { ModelProviderName, IAgentRuntime } from "../types"; +import { models } from "../models"; +import { generateText, generateTrueOrFalse, splitChunks } from "../generation"; // Mock the elizaLogger -vi.mock('../index.ts', () => ({ +vi.mock("../index.ts", () => ({ elizaLogger: { log: vi.fn(), info: vi.fn(), @@ -17,13 +13,13 @@ vi.mock('../index.ts', () => ({ })); // Mock the generation functions -vi.mock('../generation', async () => { - const actual = await vi.importActual('../generation'); +vi.mock("../generation", async () => { + const actual = await vi.importActual("../generation"); return { ...actual, generateText: vi.fn().mockImplementation(async ({ context }) => { - if (!context) return ''; - return 'mocked response'; + if (!context) return ""; + return "mocked response"; }), generateTrueOrFalse: vi.fn().mockImplementation(async () => { return true; @@ -31,20 +27,20 @@ vi.mock('../generation', async () => { }; }); -describe('Generation', () => { +describe("Generation", () => { let mockRuntime: IAgentRuntime; beforeEach(() => { // Setup mock runtime for tests mockRuntime = { modelProvider: ModelProviderName.OPENAI, - token: 'mock-token', + token: "mock-token", character: { modelEndpointOverride: undefined, }, getSetting: vi.fn().mockImplementation((key: string) => { - if (key === 'LLAMACLOUD_MODEL_LARGE') return false; - if (key === 'LLAMACLOUD_MODEL_SMALL') return false; + if (key === "LLAMACLOUD_MODEL_LARGE") return false; + if (key === "LLAMACLOUD_MODEL_SMALL") return false; return undefined; }), } as unknown as IAgentRuntime; @@ -53,29 +49,29 @@ describe('Generation', () => { vi.clearAllMocks(); }); - describe('generateText', () => { - it('should return empty string for empty context', async () => { + describe("generateText", () => { + it("should return empty string for empty context", async () => { const result = await generateText({ runtime: mockRuntime, - context: '', - modelClass: 'completion', + context: "", + modelClass: "completion", }); - expect(result).toBe(''); + expect(result).toBe(""); }); - it('should return mocked response for non-empty context', async () => { + it("should return mocked response for non-empty context", async () => { const result = await generateText({ runtime: mockRuntime, - context: 'test context', - modelClass: 'completion', + context: "test context", + modelClass: "completion", }); - expect(result).toBe('mocked response'); + expect(result).toBe("mocked response"); }); - it('should use correct model settings from provider config', () => { + it("should use correct model settings from provider config", () => { const modelProvider = mockRuntime.modelProvider; const modelSettings = models[modelProvider].settings; - + expect(modelSettings).toBeDefined(); expect(modelSettings.temperature).toBeDefined(); expect(modelSettings.frequency_penalty).toBeDefined(); @@ -85,25 +81,25 @@ describe('Generation', () => { }); }); - describe('generateTrueOrFalse', () => { - it('should return boolean value', async () => { + describe("generateTrueOrFalse", () => { + it("should return boolean value", async () => { const result = await generateTrueOrFalse({ runtime: mockRuntime, - context: 'test context', - modelClass: 'completion', + context: "test context", + modelClass: "completion", }); - expect(typeof result).toBe('boolean'); + expect(typeof result).toBe("boolean"); }); }); - describe('splitChunks', () => { - it('should split content into chunks of specified size', async () => { - const content = 'a'.repeat(1000); + describe("splitChunks", () => { + it("should split content into chunks of specified size", async () => { + const content = "a".repeat(1000); const chunkSize = 100; const bleed = 20; const chunks = await splitChunks(content, chunkSize, bleed); - + expect(chunks.length).toBeGreaterThan(0); // Check if chunks overlap properly for (let i = 1; i < chunks.length; i++) { @@ -113,13 +109,13 @@ describe('Generation', () => { } }); - it('should handle empty content', async () => { - const chunks = await splitChunks('', 100, 20); + it("should handle empty content", async () => { + const chunks = await splitChunks("", 100, 20); expect(chunks).toEqual([]); }); - it('should handle content smaller than chunk size', async () => { - const content = 'small content'; + it("should handle content smaller than chunk size", async () => { + const content = "small content"; const chunks = await splitChunks(content, 100, 20); expect(chunks).toEqual([content]); }); diff --git a/packages/plugin-buttplug/src/utils.ts b/packages/plugin-buttplug/src/utils.ts index 4b56dc0b8c..43e930dbf4 100644 --- a/packages/plugin-buttplug/src/utils.ts +++ b/packages/plugin-buttplug/src/utils.ts @@ -99,4 +99,4 @@ async function cleanup() { } // Export cleanup for manual shutdown if needed -export { cleanup as shutdownIntifaceEngine }; \ No newline at end of file +export { cleanup as shutdownIntifaceEngine }; diff --git a/packages/plugin-conflux/package.json b/packages/plugin-conflux/package.json index 59c3ed8f79..7f8e1aaa47 100644 --- a/packages/plugin-conflux/package.json +++ b/packages/plugin-conflux/package.json @@ -1,15 +1,15 @@ { - "name": "@ai16z/plugin-conflux", - "version": "0.0.1", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "dependencies": { - "cive": "^0.7.1", - "@ai16z/eliza": "workspace:*" - }, - "scripts": { - "build": "tsup --format esm --dts", - "dev": "tsup --watch" - } + "name": "@ai16z/plugin-conflux", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "cive": "^0.7.1", + "@ai16z/eliza": "workspace:*" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch" + } } diff --git a/packages/plugin-conflux/src/abi/erc20.ts b/packages/plugin-conflux/src/abi/erc20.ts index fa3a426266..47e5e6b8ea 100644 --- a/packages/plugin-conflux/src/abi/erc20.ts +++ b/packages/plugin-conflux/src/abi/erc20.ts @@ -1,119 +1,119 @@ const ERC20ABI = [ - { - constant: true, - inputs: [], - name: 'name', - outputs: [{ name: '', type: 'string' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { - constant: false, - inputs: [ - { name: '_spender', type: 'address' }, - { name: '_value', type: 'uint256' }, - ], - name: 'approve', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { - constant: true, - inputs: [], - name: 'totalSupply', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { - constant: false, - inputs: [ - { name: '_from', type: 'address' }, - { name: '_to', type: 'address' }, - { name: '_value', type: 'uint256' }, - ], - name: 'transferFrom', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function', - }, - { - constant: true, - inputs: [], - name: 'decimals', - outputs: [{ name: '', type: 'uint8' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { - constant: true, - inputs: [{ name: '_owner', type: 'address' }], - name: 'balanceOf', - outputs: [{ name: 'balance', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { - constant: true, - inputs: [], - name: 'symbol', - outputs: [{ name: '', type: 'string' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { - constant: false, - inputs: [ - { name: '_to', type: 'address' }, - { name: '_value', type: 'uint256' }, - ], - name: 'transfer', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function', - }, - { - constant: true, - inputs: [ - { name: '_owner', type: 'address' }, - { name: '_spender', type: 'address' }, - ], - name: 'allowance', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function', - }, - { payable: true, stateMutability: 'payable', type: 'fallback' }, - { - anonymous: false, - inputs: [ - { indexed: true, name: 'owner', type: 'address' }, - { indexed: true, name: 'spender', type: 'address' }, - { indexed: false, name: 'value', type: 'uint256' }, - ], - name: 'Approval', - type: 'event', - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: 'from', type: 'address' }, - { indexed: true, name: 'to', type: 'address' }, - { indexed: false, name: 'value', type: 'uint256' }, - ], - name: 'Transfer', - type: 'event', - }, + { + constant: true, + inputs: [], + name: "name", + outputs: [{ name: "", type: "string" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "_spender", type: "address" }, + { name: "_value", type: "uint256" }, + ], + name: "approve", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "_from", type: "address" }, + { name: "_to", type: "address" }, + { name: "_value", type: "uint256" }, + ], + name: "transferFrom", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [{ name: "", type: "uint8" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [{ name: "_owner", type: "address" }], + name: "balanceOf", + outputs: [{ name: "balance", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [{ name: "", type: "string" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { name: "_to", type: "address" }, + { name: "_value", type: "uint256" }, + ], + name: "transfer", + outputs: [{ name: "", type: "bool" }], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { name: "_owner", type: "address" }, + { name: "_spender", type: "address" }, + ], + name: "allowance", + outputs: [{ name: "", type: "uint256" }], + payable: false, + stateMutability: "view", + type: "function", + }, + { payable: true, stateMutability: "payable", type: "fallback" }, + { + anonymous: false, + inputs: [ + { indexed: true, name: "owner", type: "address" }, + { indexed: true, name: "spender", type: "address" }, + { indexed: false, name: "value", type: "uint256" }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: "from", type: "address" }, + { indexed: true, name: "to", type: "address" }, + { indexed: false, name: "value", type: "uint256" }, + ], + name: "Transfer", + type: "event", + }, ] as const; -export default ERC20ABI; \ No newline at end of file +export default ERC20ABI; diff --git a/packages/plugin-conflux/src/abi/meme.ts b/packages/plugin-conflux/src/abi/meme.ts index 0a1e504415..7ea7672ae1 100644 --- a/packages/plugin-conflux/src/abi/meme.ts +++ b/packages/plugin-conflux/src/abi/meme.ts @@ -1,1671 +1,1671 @@ const MEMEABI = [ - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "tokenImpl_", - type: "address", - }, - { - internalType: "address", - name: "tokenImplV2_", - type: "address", - }, - { - internalType: "uint256", - name: "feeRate_", - type: "uint256", - }, - { - internalType: "address", - name: "feeReceiver_", - type: "address", - }, - { - internalType: "address", - name: "dexLauncher_", - type: "address", - }, - { - internalType: "enum IConfiPumpTypes.DexThreshType", - name: "defaultDexThreshType_", - type: "uint8", - }, - { - internalType: "enum IConfiPumpTypes.CurveType", - name: "defaultCurveType_", - type: "uint8", - }, - { - internalType: "enum IConfiPumpTypes.TokenVersion", - name: "defaultTokenVersion_", - type: "uint8", - }, - { - internalType: "address", - name: "v2Factory_", - type: "address", - }, - { - internalType: "bytes32", - name: "v2InitCodeHash_", - type: "bytes32", - }, - { - internalType: "address", - name: "weth_", - type: "address", - }, - { - internalType: "uint256", - name: "creation_fee_", - type: "uint256", - }, - { - internalType: "uint256", - name: "lpEth_", - type: "uint256", - }, - { - internalType: "uint256", - name: "lpEthTokenCreator_", - type: "uint256", - }, - ], - internalType: "struct ConfiPumpBase.ConfiPumpInitParams", - name: "params", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "uint256", - name: "actualAmount", - type: "uint256", - }, - { - internalType: "uint256", - name: "amount1", - type: "uint256", - }, - ], - name: "ActualAmountMustLTEAmount", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "AmountTooSmall", - type: "error", - }, - { - inputs: [], - name: "CallReverted", - type: "error", - }, - { - inputs: [], - name: "FeatureDisabled", - type: "error", - }, - { - inputs: [], - name: "GameNotLive", - type: "error", - }, - { - inputs: [], - name: "GameNotPaused", - type: "error", - }, - { - inputs: [], - name: "GameNotPending", - type: "error", - }, - { - inputs: [], - name: "GameNotStarted", - type: "error", - }, - { - inputs: [], - name: "InvalidDEXSupplyThreshold", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "threshold", - type: "uint256", - }, - ], - name: "InvalidDexThreshold", - type: "error", - }, - { - inputs: [ - { - internalType: "enum IConfiPumpTypes.DexThreshType", - name: "threshold", - type: "uint8", - }, - ], - name: "InvalidDexThresholdType", - type: "error", - }, - { - inputs: [], - name: "InvalidGameSupplyThreshold", - type: "error", - }, - { - inputs: [], - name: "InvalidLocks", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "expected", - type: "uint256", - }, - { - internalType: "uint256", - name: "actual", - type: "uint256", - }, - ], - name: "InvalidPiggybackLength", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "InvalidRoundID", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "signer", - type: "address", - }, - ], - name: "InvalidSigner", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "InvalidTokenForBattle", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "enum IConfiPumpTypes.TokenMode", - name: "mode", - type: "uint8", - }, - ], - name: "InvalidTokenModeForGame", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "enum IConfiPumpTypes.TokenMode", - name: "from", - type: "uint8", - }, - { - internalType: "enum IConfiPumpTypes.TokenMode", - name: "to", - type: "uint8", - }, - ], - name: "InvalidTokenModeTransition", - type: "error", - }, - { - inputs: [], - name: "LastRoundNotResolved", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "expected", - type: "address", - }, - { - internalType: "address", - name: "actual", - type: "address", - }, - ], - name: "MismatchedAddressInProof", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "srcToken", - type: "address", - }, - { - internalType: "address", - name: "dstToken", - type: "address", - }, - ], - name: "NoConversionPath", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "created", - type: "uint256", - }, - { - internalType: "uint256", - name: "max", - type: "uint256", - }, - ], - name: "NoQuotaForCreator", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "collection", - type: "address", - }, - ], - name: "NonPositionNFTReceived", - type: "error", - }, - { - inputs: [], - name: "NotImplemented", - type: "error", - }, - { - inputs: [], - name: "NotRoller", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "NotUniswapV3Pool", - type: "error", - }, - { - inputs: [], - name: "PermissionlessCreateDisabled", - type: "error", - }, - { - inputs: [ - { - internalType: "uint160", - name: "sqrtPriceA", - type: "uint160", - }, - { - internalType: "uint160", - name: "sqrtPriceB", - type: "uint160", - }, - ], - name: "PriceAMustLTPriceB", - type: "error", - }, - { - inputs: [], - name: "ProtocolDisabled", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "requiredToken", - type: "uint256", - }, - { - internalType: "uint256", - name: "reserveToken", - type: "uint256", - }, - ], - name: "RequiredTokenMustLTE", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "RoundNotFound", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "tokenA", - type: "address", - }, - ], - name: "SameToken", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "seq", - type: "uint256", - }, - ], - name: "SeqNotFound", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "actualAmount", - type: "uint256", - }, - { - internalType: "uint256", - name: "minAmount", - type: "uint256", - }, - ], - name: "SlippageTooHigh", - type: "error", - }, - { - inputs: [], - name: "StakingDisabled", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "newSupply", - type: "uint256", - }, - ], - name: "SupplyExceedsTotalSupply", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenAlreadyDEXed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenAlreadyInGame", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenInDuel", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenKilled", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenNotDEXed", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenNotFound", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenNotKilled", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "TokenNotTradable", - type: "error", - }, - { - inputs: [], - name: "TradeDisabled", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "pool", - type: "address", - }, - { - internalType: "uint256", - name: "liquidity", - type: "uint256", - }, - ], - name: "UniswapV2PoolNotZero", - type: "error", - }, - { - inputs: [], - name: "UniswapV3Slot0Failed", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "next", - type: "uint256", - }, - ], - name: "cannotCheckInUntil", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "oldFlags", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "newFlags", - type: "uint256", - }, - ], - name: "BitFlagsChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "user", - type: "address", - }, - ], - name: "CheckedIn", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "newSupply", - type: "uint256", - }, - ], - name: "FlapTokenCirculatingSupplyChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "pool", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "eth", - type: "uint256", - }, - ], - name: "LaunchedToDEX", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "previousAdminRole", - type: "bytes32", - }, - { - indexed: true, - internalType: "bytes32", - name: "newAdminRole", - type: "bytes32", - }, - ], - name: "RoleAdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleGranted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "RoleRevoked", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "ts", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "buyer", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "eth", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "fee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "postPrice", - type: "uint256", - }, - ], - name: "TokenBought", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "ts", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "creator", - type: "address", - }, - { - indexed: false, - internalType: "uint256", + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenImpl_", + type: "address", + }, + { + internalType: "address", + name: "tokenImplV2_", + type: "address", + }, + { + internalType: "uint256", + name: "feeRate_", + type: "uint256", + }, + { + internalType: "address", + name: "feeReceiver_", + type: "address", + }, + { + internalType: "address", + name: "dexLauncher_", + type: "address", + }, + { + internalType: "enum IConfiPumpTypes.DexThreshType", + name: "defaultDexThreshType_", + type: "uint8", + }, + { + internalType: "enum IConfiPumpTypes.CurveType", + name: "defaultCurveType_", + type: "uint8", + }, + { + internalType: "enum IConfiPumpTypes.TokenVersion", + name: "defaultTokenVersion_", + type: "uint8", + }, + { + internalType: "address", + name: "v2Factory_", + type: "address", + }, + { + internalType: "bytes32", + name: "v2InitCodeHash_", + type: "bytes32", + }, + { + internalType: "address", + name: "weth_", + type: "address", + }, + { + internalType: "uint256", + name: "creation_fee_", + type: "uint256", + }, + { + internalType: "uint256", + name: "lpEth_", + type: "uint256", + }, + { + internalType: "uint256", + name: "lpEthTokenCreator_", + type: "uint256", + }, + ], + internalType: "struct ConfiPumpBase.ConfiPumpInitParams", + name: "params", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "uint256", + name: "actualAmount", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "ActualAmountMustLTEAmount", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "AmountTooSmall", + type: "error", + }, + { + inputs: [], + name: "CallReverted", + type: "error", + }, + { + inputs: [], + name: "FeatureDisabled", + type: "error", + }, + { + inputs: [], + name: "GameNotLive", + type: "error", + }, + { + inputs: [], + name: "GameNotPaused", + type: "error", + }, + { + inputs: [], + name: "GameNotPending", + type: "error", + }, + { + inputs: [], + name: "GameNotStarted", + type: "error", + }, + { + inputs: [], + name: "InvalidDEXSupplyThreshold", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "threshold", + type: "uint256", + }, + ], + name: "InvalidDexThreshold", + type: "error", + }, + { + inputs: [ + { + internalType: "enum IConfiPumpTypes.DexThreshType", + name: "threshold", + type: "uint8", + }, + ], + name: "InvalidDexThresholdType", + type: "error", + }, + { + inputs: [], + name: "InvalidGameSupplyThreshold", + type: "error", + }, + { + inputs: [], + name: "InvalidLocks", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "expected", + type: "uint256", + }, + { + internalType: "uint256", + name: "actual", + type: "uint256", + }, + ], + name: "InvalidPiggybackLength", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "InvalidRoundID", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "InvalidSigner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "InvalidTokenForBattle", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "enum IConfiPumpTypes.TokenMode", + name: "mode", + type: "uint8", + }, + ], + name: "InvalidTokenModeForGame", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "enum IConfiPumpTypes.TokenMode", + name: "from", + type: "uint8", + }, + { + internalType: "enum IConfiPumpTypes.TokenMode", + name: "to", + type: "uint8", + }, + ], + name: "InvalidTokenModeTransition", + type: "error", + }, + { + inputs: [], + name: "LastRoundNotResolved", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "expected", + type: "address", + }, + { + internalType: "address", + name: "actual", + type: "address", + }, + ], + name: "MismatchedAddressInProof", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "srcToken", + type: "address", + }, + { + internalType: "address", + name: "dstToken", + type: "address", + }, + ], + name: "NoConversionPath", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "created", + type: "uint256", + }, + { + internalType: "uint256", + name: "max", + type: "uint256", + }, + ], + name: "NoQuotaForCreator", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "collection", + type: "address", + }, + ], + name: "NonPositionNFTReceived", + type: "error", + }, + { + inputs: [], + name: "NotImplemented", + type: "error", + }, + { + inputs: [], + name: "NotRoller", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "NotUniswapV3Pool", + type: "error", + }, + { + inputs: [], + name: "PermissionlessCreateDisabled", + type: "error", + }, + { + inputs: [ + { + internalType: "uint160", + name: "sqrtPriceA", + type: "uint160", + }, + { + internalType: "uint160", + name: "sqrtPriceB", + type: "uint160", + }, + ], + name: "PriceAMustLTPriceB", + type: "error", + }, + { + inputs: [], + name: "ProtocolDisabled", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "requiredToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveToken", + type: "uint256", + }, + ], + name: "RequiredTokenMustLTE", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "RoundNotFound", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + ], + name: "SameToken", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "seq", + type: "uint256", + }, + ], + name: "SeqNotFound", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "actualAmount", + type: "uint256", + }, + { + internalType: "uint256", + name: "minAmount", + type: "uint256", + }, + ], + name: "SlippageTooHigh", + type: "error", + }, + { + inputs: [], + name: "StakingDisabled", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "newSupply", + type: "uint256", + }, + ], + name: "SupplyExceedsTotalSupply", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenAlreadyDEXed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenAlreadyInGame", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenInDuel", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenKilled", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenNotDEXed", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenNotFound", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenNotKilled", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "TokenNotTradable", + type: "error", + }, + { + inputs: [], + name: "TradeDisabled", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + name: "UniswapV2PoolNotZero", + type: "error", + }, + { + inputs: [], + name: "UniswapV3Slot0Failed", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "next", + type: "uint256", + }, + ], + name: "cannotCheckInUntil", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "oldFlags", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "newFlags", + type: "uint256", + }, + ], + name: "BitFlagsChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "user", + type: "address", + }, + ], + name: "CheckedIn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "newSupply", + type: "uint256", + }, + ], + name: "FlapTokenCirculatingSupplyChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint8", + name: "version", + type: "uint8", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "pool", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "eth", + type: "uint256", + }, + ], + name: "LaunchedToDEX", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "previousAdminRole", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "newAdminRole", + type: "bytes32", + }, + ], + name: "RoleAdminChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleGranted", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "account", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "RoleRevoked", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "ts", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "buyer", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "eth", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "fee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "postPrice", + type: "uint256", + }, + ], + name: "TokenBought", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "ts", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "creator", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "string", + name: "name", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "symbol", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "meta", + type: "string", + }, + ], + name: "TokenCreated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "curve", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "curveParameter", + type: "uint256", + }, + ], + name: "TokenCurveSet", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "dexSupplyThresh", + type: "uint256", + }, + ], + name: "TokenDexSupplyThreshSet", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "ts", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "srcToken", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "dstToken", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "srcAmount", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "dstAmount", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "who", + type: "address", + }, + ], + name: "TokenRedeemed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "ts", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "seller", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "eth", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "fee", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "postPrice", + type: "uint256", + }, + ], + name: "TokenSold", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "token", + type: "address", + }, + { + indexed: false, + internalType: "enum IConfiPumpTypes.TokenVersion", + name: "version", + type: "uint8", + }, + ], + name: "TokenVersionSet", + type: "event", + }, + { + stateMutability: "nonpayable", + type: "fallback", + }, + { + inputs: [], + name: "DEFAULT_ADMIN_ROLE", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "minAmount", + type: "uint256", + }, + { + internalType: "bool", + name: "isCreator", + type: "bool", + }, + ], + name: "buy", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "checkIn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + ], + name: "getRoleAdmin", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getToken", + outputs: [ + { + components: [ + { + internalType: "enum IConfiPumpTypes.TokenStatus", + name: "status", + type: "uint8", + }, + { + internalType: "uint256", + name: "reserve", + type: "uint256", + }, + { + internalType: "uint256", + name: "circulatingSupply", + type: "uint256", + }, + { + internalType: "uint256", + name: "price", + type: "uint256", + }, + { + internalType: "bool", + name: "inGame", + type: "bool", + }, + { + internalType: "uint256", + name: "seqInGame", + type: "uint256", + }, + ], + internalType: "struct IConfiPumpTypes.TokenState", + name: "", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenEx", + outputs: [ + { + components: [ + { + internalType: "enum IConfiPumpTypes.TokenStatus", + name: "status", + type: "uint8", + }, + { + internalType: "uint256", + name: "reserve", + type: "uint256", + }, + { + internalType: "uint256", + name: "circulatingSupply", + type: "uint256", + }, + { + internalType: "uint256", + name: "price", + type: "uint256", + }, + { + internalType: "bool", + name: "inGame", + type: "bool", + }, + { + internalType: "uint256", + name: "seqInGame", + type: "uint256", + }, + { + internalType: "enum IConfiPumpTypes.TokenMode", + name: "mode", + type: "uint8", + }, + ], + internalType: "struct IConfiPumpTypes.TokenStateEx", + name: "", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenV2", + outputs: [ + { + components: [ + { + internalType: "enum IConfiPumpTypes.TokenStatus", + name: "status", + type: "uint8", + }, + { + internalType: "uint256", + name: "reserve", + type: "uint256", + }, + { + internalType: "uint256", + name: "circulatingSupply", + type: "uint256", + }, + { + internalType: "uint256", + name: "price", + type: "uint256", + }, + { + internalType: "enum IConfiPumpTypes.TokenVersion", + name: "tokenVersion", + type: "uint8", + }, + { + internalType: "uint256", + name: "r", + type: "uint256", + }, + { + internalType: "uint256", + name: "dexSupplyThresh", + type: "uint256", + }, + ], + internalType: "struct IConfiPumpTypes.TokenStateV2", + name: "state", + type: "tuple", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "hasRole", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "admin", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "lastCheckIn", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "meta", + type: "string", + }, + ], + name: "newToken", + outputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "meta", + type: "string", + }, + ], + name: "newTokenNoDuel", + outputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "meta", + type: "string", + }, + { + internalType: "enum IConfiPumpTypes.DexThreshType", + name: "dexTreshType", + type: "uint8", + }, + ], + name: "newTokenWithDexSupplyThresh", + outputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], name: "nonce", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "name", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "symbol", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "meta", - type: "string", - }, - ], - name: "TokenCreated", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "curve", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "curveParameter", - type: "uint256", - }, - ], - name: "TokenCurveSet", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "dexSupplyThresh", - type: "uint256", - }, - ], - name: "TokenDexSupplyThreshSet", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "ts", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "srcToken", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "dstToken", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "srcAmount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "dstAmount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "who", - type: "address", - }, - ], - name: "TokenRedeemed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "ts", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "seller", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "eth", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "fee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "postPrice", - type: "uint256", - }, - ], - name: "TokenSold", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "enum IConfiPumpTypes.TokenVersion", - name: "version", - type: "uint8", - }, - ], - name: "TokenVersionSet", - type: "event", - }, - { - stateMutability: "nonpayable", - type: "fallback", - }, - { - inputs: [], - name: "DEFAULT_ADMIN_ROLE", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "minAmount", - type: "uint256", - }, - { - internalType: "bool", - name: "isCreator", - type: "bool", - }, - ], - name: "buy", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "checkIn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - ], - name: "getRoleAdmin", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getToken", - outputs: [ - { - components: [ - { - internalType: "enum IConfiPumpTypes.TokenStatus", - name: "status", - type: "uint8", - }, - { - internalType: "uint256", - name: "reserve", - type: "uint256", - }, - { - internalType: "uint256", - name: "circulatingSupply", - type: "uint256", - }, - { - internalType: "uint256", - name: "price", - type: "uint256", - }, - { - internalType: "bool", - name: "inGame", - type: "bool", - }, - { - internalType: "uint256", - name: "seqInGame", - type: "uint256", - }, - ], - internalType: "struct IConfiPumpTypes.TokenState", - name: "", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenEx", - outputs: [ - { - components: [ - { - internalType: "enum IConfiPumpTypes.TokenStatus", - name: "status", - type: "uint8", - }, - { - internalType: "uint256", - name: "reserve", - type: "uint256", - }, - { - internalType: "uint256", - name: "circulatingSupply", - type: "uint256", - }, - { - internalType: "uint256", - name: "price", - type: "uint256", - }, - { - internalType: "bool", - name: "inGame", - type: "bool", - }, - { - internalType: "uint256", - name: "seqInGame", - type: "uint256", - }, - { - internalType: "enum IConfiPumpTypes.TokenMode", - name: "mode", - type: "uint8", - }, - ], - internalType: "struct IConfiPumpTypes.TokenStateEx", - name: "", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenV2", - outputs: [ - { - components: [ - { - internalType: "enum IConfiPumpTypes.TokenStatus", - name: "status", - type: "uint8", - }, - { - internalType: "uint256", - name: "reserve", - type: "uint256", - }, - { - internalType: "uint256", - name: "circulatingSupply", - type: "uint256", - }, - { - internalType: "uint256", - name: "price", - type: "uint256", - }, - { - internalType: "enum IConfiPumpTypes.TokenVersion", - name: "tokenVersion", - type: "uint8", - }, - { - internalType: "uint256", - name: "r", - type: "uint256", - }, - { - internalType: "uint256", - name: "dexSupplyThresh", - type: "uint256", - }, - ], - internalType: "struct IConfiPumpTypes.TokenStateV2", - name: "state", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "hasRole", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "admin", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "lastCheckIn", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "string", - name: "meta", - type: "string", - }, - ], - name: "newToken", - outputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "string", - name: "meta", - type: "string", - }, - ], - name: "newTokenNoDuel", - outputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "string", - name: "meta", - type: "string", - }, - { - internalType: "enum IConfiPumpTypes.DexThreshType", - name: "dexTreshType", - type: "uint8", - }, - ], - name: "newTokenWithDexSupplyThresh", - outputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "nonce", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "eth", - type: "uint256", - }, - ], - name: "previewBuy", - outputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "srcToken", - type: "address", - }, - { - internalType: "address", - name: "dstToken", - type: "address", - }, - { - internalType: "uint256", - name: "srcAmount", - type: "uint256", - }, - ], - name: "previewRedeem", - outputs: [ - { - internalType: "uint256", - name: "dstAmount", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "previewSell", - outputs: [ - { - internalType: "uint256", - name: "eth", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "srcToken", - type: "address", - }, - { - internalType: "address", - name: "dstToken", - type: "address", - }, - { - internalType: "uint256", - name: "srcAmount", - type: "uint256", - }, - ], - name: "redeem", - outputs: [ - { - internalType: "uint256", - name: "dstAmount", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "renounceRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "role", - type: "bytes32", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeRole", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "uint256", - name: "minEth", - type: "uint256", - }, - ], - name: "sell", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "flags", - type: "uint256", - }, - ], - name: "setBitFlags", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "tokenCreators", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "tokenCreatorsFeeBalance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "eth", + type: "uint256", + }, + ], + name: "previewBuy", + outputs: [ + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "srcToken", + type: "address", + }, + { + internalType: "address", + name: "dstToken", + type: "address", + }, + { + internalType: "uint256", + name: "srcAmount", + type: "uint256", + }, + ], + name: "previewRedeem", + outputs: [ + { + internalType: "uint256", + name: "dstAmount", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "previewSell", + outputs: [ + { + internalType: "uint256", + name: "eth", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "srcToken", + type: "address", + }, + { + internalType: "address", + name: "dstToken", + type: "address", + }, + { + internalType: "uint256", + name: "srcAmount", + type: "uint256", + }, + ], + name: "redeem", + outputs: [ + { + internalType: "uint256", + name: "dstAmount", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "renounceRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "role", + type: "bytes32", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeRole", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "minEth", + type: "uint256", + }, + ], + name: "sell", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "flags", + type: "uint256", + }, + ], + name: "setBitFlags", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "tokenCreators", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "tokenCreatorsFeeBalance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, ] as const; export default MEMEABI; diff --git a/packages/plugin-conflux/src/actions/bridgeTransfer.ts b/packages/plugin-conflux/src/actions/bridgeTransfer.ts index 347b8b980e..ab2907bc81 100644 --- a/packages/plugin-conflux/src/actions/bridgeTransfer.ts +++ b/packages/plugin-conflux/src/actions/bridgeTransfer.ts @@ -5,8 +5,19 @@ import { State, HandlerCallback, } from "@ai16z/eliza"; -import { generateObjectV2, composeContext, ModelClass, Content } from "@ai16z/eliza"; -import { createPublicClient, createWalletClient, http, parseCFX, encodeFunctionData } from "cive"; +import { + generateObjectV2, + composeContext, + ModelClass, + Content, +} from "@ai16z/eliza"; +import { + createPublicClient, + createWalletClient, + http, + parseCFX, + encodeFunctionData, +} from "cive"; import { hexAddressToBase32 } from "cive/utils"; import { privateKeyToAccount } from "cive/accounts"; import { testnet } from "cive/chains"; @@ -58,7 +69,12 @@ export const bridgeTransfer: Action = { name: "BRIDGE_SEND_CFX", description: "Bridge transfer CFX from Conflux Core Space to another in Conflux eSpace. The address is a 0x-prefix address", - similes: ["BRIDGE_SEND_CONFLUX", "CROSS_SPACE_SEND_CFX", "BRIDGE_TRANSFER_CFX", "CROSS_SPACE_TRANSFER_CFX"], + similes: [ + "BRIDGE_SEND_CONFLUX", + "CROSS_SPACE_SEND_CFX", + "BRIDGE_TRANSFER_CFX", + "CROSS_SPACE_TRANSFER_CFX", + ], examples: [ [ { @@ -112,13 +128,20 @@ export const bridgeTransfer: Action = { throw new Error("Invalid content"); } - const secretKey = runtime.getSetting("CONFLUX_CORE_PRIVATE_KEY") as `0x${string}`; + const secretKey = runtime.getSetting( + "CONFLUX_CORE_PRIVATE_KEY" + ) as `0x${string}`; const rpcUrl = runtime.getSetting("CONFLUX_CORE_SPACE_RPC_URL"); let success = false; try { - const hash = await bridgeSendCFX(secretKey, rpcUrl, content.object.to as `0x${string}`, content.object.amount.toString()); + const hash = await bridgeSendCFX( + secretKey, + rpcUrl, + content.object.to as `0x${string}`, + content.object.amount.toString() + ); success = true; if (!callback) { return success; diff --git a/packages/plugin-conflux/src/actions/confiPump.ts b/packages/plugin-conflux/src/actions/confiPump.ts index a852b96227..7346c8b4c7 100644 --- a/packages/plugin-conflux/src/actions/confiPump.ts +++ b/packages/plugin-conflux/src/actions/confiPump.ts @@ -5,19 +5,15 @@ import { State, HandlerCallback, } from "@ai16z/eliza"; +import { generateObjectV2, composeContext, ModelClass } from "@ai16z/eliza"; import { - generateObjectV2, - composeContext, - ModelClass, -} from "@ai16z/eliza"; -import { - createPublicClient, - createWalletClient, - http, + createPublicClient, + createWalletClient, + http, parseEther, encodeFunctionData, WalletClient, - Account + Account, } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import { confluxESpaceTestnet, confluxESpace } from "viem/chains"; @@ -39,11 +35,13 @@ async function ensureAllowance( rpcUrl: string, account: Account, tokenAddress: `0x${string}`, - memeAddress: `0x${string}`, + memeAddress: `0x${string}`, amount: bigint ) { - console.log(`Checking allowance: token: ${tokenAddress} meme: ${memeAddress} amount: ${amount}`); - + console.log( + `Checking allowance: token: ${tokenAddress} meme: ${memeAddress} amount: ${amount}` + ); + const publicClient = createPublicClient({ transport: http(rpcUrl), chain: confluxESpaceTestnet, @@ -59,8 +57,10 @@ async function ensureAllowance( console.log("allowance:", allowance); if (allowance < amount) { - console.log(`allowance(${allowance}) is less than amount(${amount}), approving...`); - + console.log( + `allowance(${allowance}) is less than amount(${amount}), approving...` + ); + const hash = await walletClient.sendTransaction({ account, to: tokenAddress, @@ -84,7 +84,8 @@ async function ensureAllowance( // Main ConfiPump action definition export const confiPump: Action = { name: "CONFI_PUMP", - description: "Perform actions on ConfiPump, for example create a new token, buy a token, or sell a token.", + description: + "Perform actions on ConfiPump, for example create a new token, buy a token, or sell a token.", similes: ["SELL_TOKEN", "BUY_TOKEN", "CREATE_TOKEN"], examples: [ // Create token example @@ -103,8 +104,10 @@ export const confiPump: Action = { content: { tokenInfo: { symbol: "GLITCHIZA", - address: "EugPwuZ8oUMWsYHeBGERWvELfLGFmA1taDtmY8uMeX6r", - creator: "9jW8FPr6BSSsemWPV22UUCzSqkVdTp6HTyPqeqyuBbCa", + address: + "EugPwuZ8oUMWsYHeBGERWvELfLGFmA1taDtmY8uMeX6r", + creator: + "9jW8FPr6BSSsemWPV22UUCzSqkVdTp6HTyPqeqyuBbCa", name: "GLITCHIZA", description: "A GLITCHIZA token", }, @@ -234,8 +237,15 @@ export const confiPump: Action = { if (!isPumpBuyContent(contentObject)) { throw new Error("Invalid content"); } - value = parseUnits(contentObject.params.value.toString(), 18); - console.log("buying: ", contentObject.params.tokenAddress, value); + value = parseUnits( + contentObject.params.value.toString(), + 18 + ); + console.log( + "buying: ", + contentObject.params.tokenAddress, + value + ); data = encodeFunctionData({ abi: MEMEABI, functionName: "buy", @@ -271,7 +281,9 @@ export const confiPump: Action = { rpcUrl, account, tokenAddress as `0x${string}`, - runtime.getSetting("CONFLUX_MEME_CONTRACT_ADDRESS") as `0x${string}`, + runtime.getSetting( + "CONFLUX_MEME_CONTRACT_ADDRESS" + ) as `0x${string}`, amountUnits ); @@ -290,7 +302,9 @@ export const confiPump: Action = { chain: confluxESpaceTestnet, }); - const memeContractAddress = runtime.getSetting("CONFLUX_MEME_CONTRACT_ADDRESS") as `0x${string}`; + const memeContractAddress = runtime.getSetting( + "CONFLUX_MEME_CONTRACT_ADDRESS" + ) as `0x${string}`; const simulate = await publicClient.call({ to: memeContractAddress, diff --git a/packages/plugin-conflux/src/actions/transfer.ts b/packages/plugin-conflux/src/actions/transfer.ts index d24749492a..553d0fb595 100644 --- a/packages/plugin-conflux/src/actions/transfer.ts +++ b/packages/plugin-conflux/src/actions/transfer.ts @@ -5,7 +5,12 @@ import { State, HandlerCallback, } from "@ai16z/eliza"; -import { generateObjectV2, composeContext, ModelClass, Content } from "@ai16z/eliza"; +import { + generateObjectV2, + composeContext, + ModelClass, + Content, +} from "@ai16z/eliza"; import { createPublicClient, createWalletClient, http, parseCFX } from "cive"; import { privateKeyToAccount } from "cive/accounts"; import { testnet } from "cive/chains"; @@ -100,13 +105,20 @@ export const transfer: Action = { throw new Error("Invalid content"); } - const secretKey = runtime.getSetting("CONFLUX_CORE_PRIVATE_KEY") as `0x${string}`; + const secretKey = runtime.getSetting( + "CONFLUX_CORE_PRIVATE_KEY" + ) as `0x${string}`; const rpcUrl = runtime.getSetting("CONFLUX_CORE_SPACE_RPC_URL"); let success = false; try { - const hash = await sendCFX(secretKey, rpcUrl, content.object.to, content.object.amount.toString()); + const hash = await sendCFX( + secretKey, + rpcUrl, + content.object.to, + content.object.amount.toString() + ); success = true; if (!callback) { return success; diff --git a/packages/plugin-conflux/src/types.ts b/packages/plugin-conflux/src/types.ts index 5f033da3f4..2f84f8cbfe 100644 --- a/packages/plugin-conflux/src/types.ts +++ b/packages/plugin-conflux/src/types.ts @@ -44,7 +44,11 @@ export const PumpSellSchema = z.object({ }), }); -export const PumpSchema = z.union([PumpCreateSchema, PumpBuySchema, PumpSellSchema]); +export const PumpSchema = z.union([ + PumpCreateSchema, + PumpBuySchema, + PumpSellSchema, +]); export type PumpContent = z.infer; export type PumpCreateContent = z.infer; @@ -82,4 +86,3 @@ export function isPumpSellContent(object: any): object is PumpSellContent { console.error("Invalid content: ", object); return false; } - diff --git a/packages/plugin-evm/src/actions/bridge.ts b/packages/plugin-evm/src/actions/bridge.ts index 91e947ee5f..3d0a38582d 100644 --- a/packages/plugin-evm/src/actions/bridge.ts +++ b/packages/plugin-evm/src/actions/bridge.ts @@ -1,98 +1,118 @@ -import type { IAgentRuntime, Memory, State } from '@ai16z/eliza' -import { ChainId, createConfig, executeRoute, ExtendedChain, getRoutes } from '@lifi/sdk' -import { getChainConfigs, WalletProvider } from '../providers/wallet' -import { bridgeTemplate } from '../templates' -import type { BridgeParams, Transaction } from '../types' +import type { IAgentRuntime, Memory, State } from "@ai16z/eliza"; +import { + ChainId, + createConfig, + executeRoute, + ExtendedChain, + getRoutes, +} from "@lifi/sdk"; +import { getChainConfigs, WalletProvider } from "../providers/wallet"; +import { bridgeTemplate } from "../templates"; +import type { BridgeParams, Transaction } from "../types"; -export { bridgeTemplate } +export { bridgeTemplate }; export class BridgeAction { - private config + private config; - constructor(private walletProvider: WalletProvider) { - this.config = createConfig({ - integrator: 'eliza', - chains: Object.values(getChainConfigs(this.walletProvider.runtime)).map(config => ({ - id: config.chainId, - name: config.name, - key: config.name.toLowerCase(), - chainType: 'EVM', - nativeToken: { - ...config.nativeCurrency, - chainId: config.chainId, - address: '0x0000000000000000000000000000000000000000', - coinKey: config.nativeCurrency.symbol, - }, - metamask: { - chainId: `0x${config.chainId.toString(16)}`, - chainName: config.name, - nativeCurrency: config.nativeCurrency, - rpcUrls: [config.rpcUrl], - blockExplorerUrls: [config.blockExplorerUrl] - }, - diamondAddress: '0x0000000000000000000000000000000000000000', - coin: config.nativeCurrency.symbol, - mainnet: true - })) as ExtendedChain[] - }) - } + constructor(private walletProvider: WalletProvider) { + this.config = createConfig({ + integrator: "eliza", + chains: Object.values( + getChainConfigs(this.walletProvider.runtime) + ).map((config) => ({ + id: config.chainId, + name: config.name, + key: config.name.toLowerCase(), + chainType: "EVM", + nativeToken: { + ...config.nativeCurrency, + chainId: config.chainId, + address: "0x0000000000000000000000000000000000000000", + coinKey: config.nativeCurrency.symbol, + }, + metamask: { + chainId: `0x${config.chainId.toString(16)}`, + chainName: config.name, + nativeCurrency: config.nativeCurrency, + rpcUrls: [config.rpcUrl], + blockExplorerUrls: [config.blockExplorerUrl], + }, + diamondAddress: "0x0000000000000000000000000000000000000000", + coin: config.nativeCurrency.symbol, + mainnet: true, + })) as ExtendedChain[], + }); + } - async bridge(params: BridgeParams): Promise { - const walletClient = this.walletProvider.getWalletClient() - const [fromAddress] = await walletClient.getAddresses() + async bridge(params: BridgeParams): Promise { + const walletClient = this.walletProvider.getWalletClient(); + const [fromAddress] = await walletClient.getAddresses(); - const routes = await getRoutes({ - fromChainId: getChainConfigs(this.walletProvider.runtime)[params.fromChain].chainId as ChainId, - toChainId: getChainConfigs(this.walletProvider.runtime)[params.toChain].chainId as ChainId, - fromTokenAddress: params.fromToken, - toTokenAddress: params.toToken, - fromAmount: params.amount, - fromAddress: fromAddress, - toAddress: params.toAddress || fromAddress - }) + const routes = await getRoutes({ + fromChainId: getChainConfigs(this.walletProvider.runtime)[ + params.fromChain + ].chainId as ChainId, + toChainId: getChainConfigs(this.walletProvider.runtime)[ + params.toChain + ].chainId as ChainId, + fromTokenAddress: params.fromToken, + toTokenAddress: params.toToken, + fromAmount: params.amount, + fromAddress: fromAddress, + toAddress: params.toAddress || fromAddress, + }); - if (!routes.routes.length) throw new Error('No routes found') + if (!routes.routes.length) throw new Error("No routes found"); - const execution = await executeRoute(routes.routes[0], this.config) - const process = execution.steps[0]?.execution?.process[0] - - if (!process?.status || process.status === 'FAILED') { - throw new Error('Transaction failed') - } + const execution = await executeRoute(routes.routes[0], this.config); + const process = execution.steps[0]?.execution?.process[0]; - return { - hash: process.txHash as `0x${string}`, - from: fromAddress, - to: routes.routes[0].steps[0].estimate.approvalAddress as `0x${string}`, - value: BigInt(params.amount), - chainId: getChainConfigs(this.walletProvider.runtime)[params.fromChain].chainId + if (!process?.status || process.status === "FAILED") { + throw new Error("Transaction failed"); + } + + return { + hash: process.txHash as `0x${string}`, + from: fromAddress, + to: routes.routes[0].steps[0].estimate + .approvalAddress as `0x${string}`, + value: BigInt(params.amount), + chainId: getChainConfigs(this.walletProvider.runtime)[ + params.fromChain + ].chainId, + }; } - } } export const bridgeAction = { - name: 'bridge', - description: 'Bridge tokens between different chains', - handler: async (runtime: IAgentRuntime, message: Memory, state: State, options: any) => { - const walletProvider = new WalletProvider(runtime) - const action = new BridgeAction(walletProvider) - return action.bridge(options) - }, - template: bridgeTemplate, - validate: async (runtime: IAgentRuntime) => { - const privateKey = runtime.getSetting("EVM_PRIVATE_KEY") - return typeof privateKey === 'string' && privateKey.startsWith('0x') - }, - examples: [ - [ - { - user: "user", - content: { - text: "Bridge 1 ETH from Ethereum to Base", - action: "CROSS_CHAIN_TRANSFER" - } - } - ] - ], - similes: ['CROSS_CHAIN_TRANSFER', 'CHAIN_BRIDGE', 'MOVE_CROSS_CHAIN'] -} // TODO: add more examples / similies \ No newline at end of file + name: "bridge", + description: "Bridge tokens between different chains", + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: any + ) => { + const walletProvider = new WalletProvider(runtime); + const action = new BridgeAction(walletProvider); + return action.bridge(options); + }, + template: bridgeTemplate, + validate: async (runtime: IAgentRuntime) => { + const privateKey = runtime.getSetting("EVM_PRIVATE_KEY"); + return typeof privateKey === "string" && privateKey.startsWith("0x"); + }, + examples: [ + [ + { + user: "user", + content: { + text: "Bridge 1 ETH from Ethereum to Base", + action: "CROSS_CHAIN_TRANSFER", + }, + }, + ], + ], + similes: ["CROSS_CHAIN_TRANSFER", "CHAIN_BRIDGE", "MOVE_CROSS_CHAIN"], +}; // TODO: add more examples / similies diff --git a/packages/plugin-evm/src/actions/swap.ts b/packages/plugin-evm/src/actions/swap.ts index eeffb1572d..4bc2308094 100644 --- a/packages/plugin-evm/src/actions/swap.ts +++ b/packages/plugin-evm/src/actions/swap.ts @@ -1,119 +1,139 @@ -import type { IAgentRuntime, Memory, State } from '@ai16z/eliza' -import { ChainId, createConfig, executeRoute, ExtendedChain, getRoutes } from '@lifi/sdk' -import { getChainConfigs, WalletProvider } from '../providers/wallet' -import { swapTemplate } from '../templates' -import type { SwapParams, Transaction } from '../types' +import type { IAgentRuntime, Memory, State } from "@ai16z/eliza"; +import { + ChainId, + createConfig, + executeRoute, + ExtendedChain, + getRoutes, +} from "@lifi/sdk"; +import { getChainConfigs, WalletProvider } from "../providers/wallet"; +import { swapTemplate } from "../templates"; +import type { SwapParams, Transaction } from "../types"; -export { swapTemplate } +export { swapTemplate }; export class SwapAction { - private config + private config; - constructor(private walletProvider: WalletProvider) { - this.config = createConfig({ - integrator: 'eliza', - chains: Object.values(getChainConfigs(this.walletProvider.runtime)).map(config => ({ - id: config.chainId, - name: config.name, - key: config.name.toLowerCase(), - chainType: 'EVM' as const, - nativeToken: { - ...config.nativeCurrency, - chainId: config.chainId, - address: '0x0000000000000000000000000000000000000000', - coinKey: config.nativeCurrency.symbol, - priceUSD: '0', - logoURI: '', - symbol: config.nativeCurrency.symbol, - decimals: config.nativeCurrency.decimals, - name: config.nativeCurrency.name - }, - rpcUrls: { - public: { http: [config.rpcUrl] } - }, - blockExplorerUrls: [config.blockExplorerUrl], - metamask: { - chainId: `0x${config.chainId.toString(16)}`, - chainName: config.name, - nativeCurrency: config.nativeCurrency, - rpcUrls: [config.rpcUrl], - blockExplorerUrls: [config.blockExplorerUrl] - }, - coin: config.nativeCurrency.symbol, - mainnet: true, - diamondAddress: '0x0000000000000000000000000000000000000000' - })) as ExtendedChain[], - }) - } + constructor(private walletProvider: WalletProvider) { + this.config = createConfig({ + integrator: "eliza", + chains: Object.values( + getChainConfigs(this.walletProvider.runtime) + ).map((config) => ({ + id: config.chainId, + name: config.name, + key: config.name.toLowerCase(), + chainType: "EVM" as const, + nativeToken: { + ...config.nativeCurrency, + chainId: config.chainId, + address: "0x0000000000000000000000000000000000000000", + coinKey: config.nativeCurrency.symbol, + priceUSD: "0", + logoURI: "", + symbol: config.nativeCurrency.symbol, + decimals: config.nativeCurrency.decimals, + name: config.nativeCurrency.name, + }, + rpcUrls: { + public: { http: [config.rpcUrl] }, + }, + blockExplorerUrls: [config.blockExplorerUrl], + metamask: { + chainId: `0x${config.chainId.toString(16)}`, + chainName: config.name, + nativeCurrency: config.nativeCurrency, + rpcUrls: [config.rpcUrl], + blockExplorerUrls: [config.blockExplorerUrl], + }, + coin: config.nativeCurrency.symbol, + mainnet: true, + diamondAddress: "0x0000000000000000000000000000000000000000", + })) as ExtendedChain[], + }); + } - async swap(params: SwapParams): Promise { - const walletClient = this.walletProvider.getWalletClient() - const [fromAddress] = await walletClient.getAddresses() + async swap(params: SwapParams): Promise { + const walletClient = this.walletProvider.getWalletClient(); + const [fromAddress] = await walletClient.getAddresses(); - const routes = await getRoutes({ - fromChainId: getChainConfigs(this.walletProvider.runtime)[params.chain].chainId as ChainId, - toChainId: getChainConfigs(this.walletProvider.runtime)[params.chain].chainId as ChainId, - fromTokenAddress: params.fromToken, - toTokenAddress: params.toToken, - fromAmount: params.amount, - fromAddress: fromAddress, - options: { - slippage: params.slippage || 0.5, - order: 'RECOMMENDED' - } - }) + const routes = await getRoutes({ + fromChainId: getChainConfigs(this.walletProvider.runtime)[ + params.chain + ].chainId as ChainId, + toChainId: getChainConfigs(this.walletProvider.runtime)[ + params.chain + ].chainId as ChainId, + fromTokenAddress: params.fromToken, + toTokenAddress: params.toToken, + fromAmount: params.amount, + fromAddress: fromAddress, + options: { + slippage: params.slippage || 0.5, + order: "RECOMMENDED", + }, + }); - if (!routes.routes.length) throw new Error('No routes found') - - const execution = await executeRoute(routes.routes[0], this.config) - const process = execution.steps[0]?.execution?.process[0] - - if (!process?.status || process.status === 'FAILED') { - throw new Error('Transaction failed') - } + if (!routes.routes.length) throw new Error("No routes found"); + + const execution = await executeRoute(routes.routes[0], this.config); + const process = execution.steps[0]?.execution?.process[0]; - return { - hash: process.txHash as `0x${string}`, - from: fromAddress, - to: routes.routes[0].steps[0].estimate.approvalAddress as `0x${string}`, - value: BigInt(params.amount), - data: process.data as `0x${string}`, - chainId: getChainConfigs(this.walletProvider.runtime)[params.chain].chainId + if (!process?.status || process.status === "FAILED") { + throw new Error("Transaction failed"); + } + + return { + hash: process.txHash as `0x${string}`, + from: fromAddress, + to: routes.routes[0].steps[0].estimate + .approvalAddress as `0x${string}`, + value: BigInt(params.amount), + data: process.data as `0x${string}`, + chainId: getChainConfigs(this.walletProvider.runtime)[params.chain] + .chainId, + }; } - } } export const swapAction = { - name: 'swap', - description: 'Swap tokens on the same chain', - handler: async (runtime: IAgentRuntime, message: Memory, state: State, options: any, callback?: any) => { - try { - const walletProvider = new WalletProvider(runtime) - const action = new SwapAction(walletProvider) - return await action.swap(options) - } catch (error) { - console.error('Error in swap handler:', error.message) - if (callback) { - callback({ text: `Error: ${error.message}` }) - } - return false - } - }, - template: swapTemplate, - validate: async (runtime: IAgentRuntime) => { - const privateKey = runtime.getSetting("EVM_PRIVATE_KEY") - return typeof privateKey === 'string' && privateKey.startsWith('0x') - }, - examples: [ - [ - { - user: "user", - content: { - text: "Swap 1 ETH for USDC on Base", - action: "TOKEN_SWAP" + name: "swap", + description: "Swap tokens on the same chain", + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: any, + callback?: any + ) => { + try { + const walletProvider = new WalletProvider(runtime); + const action = new SwapAction(walletProvider); + return await action.swap(options); + } catch (error) { + console.error("Error in swap handler:", error.message); + if (callback) { + callback({ text: `Error: ${error.message}` }); + } + return false; } - } - ] - ], - similes: ['TOKEN_SWAP', 'EXCHANGE_TOKENS', 'TRADE_TOKENS'] -} // TODO: add more examples \ No newline at end of file + }, + template: swapTemplate, + validate: async (runtime: IAgentRuntime) => { + const privateKey = runtime.getSetting("EVM_PRIVATE_KEY"); + return typeof privateKey === "string" && privateKey.startsWith("0x"); + }, + examples: [ + [ + { + user: "user", + content: { + text: "Swap 1 ETH for USDC on Base", + action: "TOKEN_SWAP", + }, + }, + ], + ], + similes: ["TOKEN_SWAP", "EXCHANGE_TOKENS", "TRADE_TOKENS"], +}; // TODO: add more examples diff --git a/packages/plugin-evm/src/actions/transfer.ts b/packages/plugin-evm/src/actions/transfer.ts index c4bd02d994..18321097fe 100644 --- a/packages/plugin-evm/src/actions/transfer.ts +++ b/packages/plugin-evm/src/actions/transfer.ts @@ -1,79 +1,90 @@ -import { ByteArray, parseEther, type Hex } from 'viem' -import { WalletProvider } from '../providers/wallet' -import type { Transaction, TransferParams } from '../types' -import { transferTemplate } from '../templates' -import type { IAgentRuntime, Memory, State } from '@ai16z/eliza' +import { ByteArray, parseEther, type Hex } from "viem"; +import { WalletProvider } from "../providers/wallet"; +import type { Transaction, TransferParams } from "../types"; +import { transferTemplate } from "../templates"; +import type { IAgentRuntime, Memory, State } from "@ai16z/eliza"; -export { transferTemplate } +export { transferTemplate }; export class TransferAction { - constructor(private walletProvider: WalletProvider) {} + constructor(private walletProvider: WalletProvider) {} - async transfer(runtime: IAgentRuntime, params: TransferParams): Promise { - const walletClient = this.walletProvider.getWalletClient() - const [fromAddress] = await walletClient.getAddresses() + async transfer( + runtime: IAgentRuntime, + params: TransferParams + ): Promise { + const walletClient = this.walletProvider.getWalletClient(); + const [fromAddress] = await walletClient.getAddresses(); - await this.walletProvider.switchChain(runtime, params.fromChain) + await this.walletProvider.switchChain(runtime, params.fromChain); - try { - const hash = await walletClient.sendTransaction({ - account: fromAddress, - to: params.toAddress, - value: parseEther(params.amount), - data: params.data as Hex, - kzg: { - blobToKzgCommitment: function (blob: ByteArray): ByteArray { - throw new Error('Function not implemented.') - }, - computeBlobKzgProof: function (blob: ByteArray, commitment: ByteArray): ByteArray { - throw new Error('Function not implemented.') - } - }, - chain: undefined - }) + try { + const hash = await walletClient.sendTransaction({ + account: fromAddress, + to: params.toAddress, + value: parseEther(params.amount), + data: params.data as Hex, + kzg: { + blobToKzgCommitment: function (blob: ByteArray): ByteArray { + throw new Error("Function not implemented."); + }, + computeBlobKzgProof: function ( + blob: ByteArray, + commitment: ByteArray + ): ByteArray { + throw new Error("Function not implemented."); + }, + }, + chain: undefined, + }); - return { - hash, - from: fromAddress, - to: params.toAddress, - value: parseEther(params.amount), - data: params.data as Hex - } - } catch (error) { - throw new Error(`Transfer failed: ${error.message}`) + return { + hash, + from: fromAddress, + to: params.toAddress, + value: parseEther(params.amount), + data: params.data as Hex, + }; + } catch (error) { + throw new Error(`Transfer failed: ${error.message}`); + } } - } } export const transferAction = { - name: 'transfer', - description: 'Transfer tokens between addresses on the same chain', - handler: async (runtime: IAgentRuntime, message: Memory, state: State, options: any) => { - const walletProvider = new WalletProvider(runtime) - const action = new TransferAction(walletProvider) - return action.transfer(runtime, options) - }, - template: transferTemplate, - validate: async (runtime: IAgentRuntime) => { - const privateKey = runtime.getSetting("EVM_PRIVATE_KEY") - return typeof privateKey === 'string' && privateKey.startsWith('0x') - }, - examples: [ - [ - { - user: "assistant", - content: { - text: "I'll help you transfer 1 ETH to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e", - action: "SEND_TOKENS" - } - }, - { - user: "user", - content: { - text: "Transfer 1 ETH to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e", - action: "SEND_TOKENS" - } - } - ] - ], - similes: ['SEND_TOKENS', 'TOKEN_TRANSFER', 'MOVE_TOKENS'] -} + name: "transfer", + description: "Transfer tokens between addresses on the same chain", + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: any + ) => { + const walletProvider = new WalletProvider(runtime); + const action = new TransferAction(walletProvider); + return action.transfer(runtime, options); + }, + template: transferTemplate, + validate: async (runtime: IAgentRuntime) => { + const privateKey = runtime.getSetting("EVM_PRIVATE_KEY"); + return typeof privateKey === "string" && privateKey.startsWith("0x"); + }, + examples: [ + [ + { + user: "assistant", + content: { + text: "I'll help you transfer 1 ETH to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + action: "SEND_TOKENS", + }, + }, + { + user: "user", + content: { + text: "Transfer 1 ETH to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + action: "SEND_TOKENS", + }, + }, + ], + ], + similes: ["SEND_TOKENS", "TOKEN_TRANSFER", "MOVE_TOKENS"], +}; diff --git a/packages/plugin-evm/src/index.ts b/packages/plugin-evm/src/index.ts index b1c8636991..dd6ccc3d1a 100644 --- a/packages/plugin-evm/src/index.ts +++ b/packages/plugin-evm/src/index.ts @@ -1,22 +1,22 @@ -export * from './actions/bridge' -export * from './actions/swap' -export * from './actions/transfer' -export * from './providers/wallet' -export * from './types' +export * from "./actions/bridge"; +export * from "./actions/swap"; +export * from "./actions/transfer"; +export * from "./providers/wallet"; +export * from "./types"; -import type { Plugin } from '@ai16z/eliza' -import { bridgeAction } from './actions/bridge' -import { swapAction } from './actions/swap' -import { transferAction } from './actions/transfer' -import { evmWalletProvider } from './providers/wallet' +import type { Plugin } from "@ai16z/eliza"; +import { bridgeAction } from "./actions/bridge"; +import { swapAction } from "./actions/swap"; +import { transferAction } from "./actions/transfer"; +import { evmWalletProvider } from "./providers/wallet"; export const evmPlugin: Plugin = { - name: 'evm', - description: 'EVM blockchain integration plugin', - providers: [evmWalletProvider], - evaluators: [], - services: [], - actions: [transferAction, bridgeAction, swapAction] -} + name: "evm", + description: "EVM blockchain integration plugin", + providers: [evmWalletProvider], + evaluators: [], + services: [], + actions: [transferAction, bridgeAction, swapAction], +}; -export default evmPlugin \ No newline at end of file +export default evmPlugin; diff --git a/packages/plugin-evm/src/providers/wallet.ts b/packages/plugin-evm/src/providers/wallet.ts index 0fbd9643c6..01b934300d 100644 --- a/packages/plugin-evm/src/providers/wallet.ts +++ b/packages/plugin-evm/src/providers/wallet.ts @@ -1,158 +1,193 @@ import type { IAgentRuntime, Provider, Memory, State } from "@ai16z/eliza"; -import { createPublicClient, createWalletClient, http, formatUnits, type PublicClient, type WalletClient, type Chain, type HttpTransport, type Address, Account } from 'viem' -import { mainnet, base } from 'viem/chains' -import type { SupportedChain, ChainConfig, ChainMetadata } from '../types' +import { + createPublicClient, + createWalletClient, + http, + formatUnits, + type PublicClient, + type WalletClient, + type Chain, + type HttpTransport, + type Address, + Account, +} from "viem"; +import { mainnet, base } from "viem/chains"; +import type { SupportedChain, ChainConfig, ChainMetadata } from "../types"; import { privateKeyToAccount } from "viem/accounts"; export const DEFAULT_CHAIN_CONFIGS: Record = { - ethereum: { - chainId: 1, - name: 'Ethereum', - chain: mainnet, - rpcUrl: 'https://eth.llamarpc.com', - nativeCurrency: { - name: 'Ether', - symbol: 'ETH', - decimals: 18 + ethereum: { + chainId: 1, + name: "Ethereum", + chain: mainnet, + rpcUrl: "https://eth.llamarpc.com", + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18, + }, + blockExplorerUrl: "https://etherscan.io", }, - blockExplorerUrl: 'https://etherscan.io' - }, - base: { - chainId: 8453, - name: 'Base', - chain: base, - rpcUrl: 'https://base.llamarpc.com', - nativeCurrency: { - name: 'Ether', - symbol: 'ETH', - decimals: 18 + base: { + chainId: 8453, + name: "Base", + chain: base, + rpcUrl: "https://base.llamarpc.com", + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18, + }, + blockExplorerUrl: "https://basescan.org", }, - blockExplorerUrl: 'https://basescan.org' - } } as const; export const getChainConfigs = (runtime: IAgentRuntime) => { - return runtime.character.settings.chains?.evm as ChainConfig[] || DEFAULT_CHAIN_CONFIGS; -} + return ( + (runtime.character.settings.chains?.evm as ChainConfig[]) || + DEFAULT_CHAIN_CONFIGS + ); +}; export class WalletProvider { - private chainConfigs: Record - private currentChain: SupportedChain = 'ethereum' - private address: Address - runtime: IAgentRuntime - - constructor(runtime: IAgentRuntime) { - const privateKey = runtime.getSetting("EVM_PRIVATE_KEY") - if (!privateKey) throw new Error("EVM_PRIVATE_KEY not configured") - - this.runtime = runtime - - const account = privateKeyToAccount(privateKey as `0x${string}`) - this.address = account.address - - const createClients = (chain: SupportedChain): ChainConfig => { - const transport = http(getChainConfigs(runtime)[chain].rpcUrl) - return { - chain: getChainConfigs(runtime)[chain].chain, - publicClient: createPublicClient({ - chain: getChainConfigs(runtime)[chain].chain, - transport - }) as PublicClient, - walletClient: createWalletClient({ - chain: getChainConfigs(runtime)[chain].chain, - transport, - account - }) - } + private chainConfigs: Record; + private currentChain: SupportedChain = "ethereum"; + private address: Address; + runtime: IAgentRuntime; + + constructor(runtime: IAgentRuntime) { + const privateKey = runtime.getSetting("EVM_PRIVATE_KEY"); + if (!privateKey) throw new Error("EVM_PRIVATE_KEY not configured"); + + this.runtime = runtime; + + const account = privateKeyToAccount(privateKey as `0x${string}`); + this.address = account.address; + + const createClients = (chain: SupportedChain): ChainConfig => { + const transport = http(getChainConfigs(runtime)[chain].rpcUrl); + return { + chain: getChainConfigs(runtime)[chain].chain, + publicClient: createPublicClient({ + chain: getChainConfigs(runtime)[chain].chain, + transport, + }) as PublicClient, + walletClient: createWalletClient({ + chain: getChainConfigs(runtime)[chain].chain, + transport, + account, + }), + }; + }; + + this.chainConfigs = { + ethereum: createClients("ethereum"), + base: createClients("base"), + }; } - this.chainConfigs = { - ethereum: createClients('ethereum'), - base: createClients('base') - } - } - - getAddress(): Address { - return this.address - } - - async getWalletBalance(): Promise { - try { - const client = this.getPublicClient(this.currentChain); - const walletClient = this.getWalletClient(); - const balance = await client.getBalance({ address: walletClient.account.address }); - return formatUnits(balance, 18) - } catch (error) { - console.error('Error getting wallet balance:', error) - return null + getAddress(): Address { + return this.address; } - } - - async connect(): Promise<`0x${string}`> { - return this.runtime.getSetting("EVM_PRIVATE_KEY") as `0x${string}` - } - - async switchChain(runtime: IAgentRuntime, chain: SupportedChain): Promise { - const walletClient = this.chainConfigs[this.currentChain].walletClient - if (!walletClient) throw new Error('Wallet not connected') - - try { - await walletClient.switchChain({ id: getChainConfigs(runtime)[chain].chainId }) - } catch (error: any) { - if (error.code === 4902) { - console.log('[WalletProvider] Chain not added to wallet (error 4902) - attempting to add chain first') - await walletClient.addChain({ - chain: { - ...getChainConfigs(runtime)[chain].chain, - rpcUrls: { - default: { http: [getChainConfigs(runtime)[chain].rpcUrl] }, - public: { http: [getChainConfigs(runtime)[chain].rpcUrl] } - } - } - }) - await walletClient.switchChain({ id: getChainConfigs(runtime)[chain].chainId }) - } else { - throw error - } + + async getWalletBalance(): Promise { + try { + const client = this.getPublicClient(this.currentChain); + const walletClient = this.getWalletClient(); + const balance = await client.getBalance({ + address: walletClient.account.address, + }); + return formatUnits(balance, 18); + } catch (error) { + console.error("Error getting wallet balance:", error); + return null; + } } - this.currentChain = chain - } + async connect(): Promise<`0x${string}`> { + return this.runtime.getSetting("EVM_PRIVATE_KEY") as `0x${string}`; + } - getPublicClient(chain: SupportedChain): PublicClient { - return this.chainConfigs[chain].publicClient - } + async switchChain( + runtime: IAgentRuntime, + chain: SupportedChain + ): Promise { + const walletClient = this.chainConfigs[this.currentChain].walletClient; + if (!walletClient) throw new Error("Wallet not connected"); + + try { + await walletClient.switchChain({ + id: getChainConfigs(runtime)[chain].chainId, + }); + } catch (error: any) { + if (error.code === 4902) { + console.log( + "[WalletProvider] Chain not added to wallet (error 4902) - attempting to add chain first" + ); + await walletClient.addChain({ + chain: { + ...getChainConfigs(runtime)[chain].chain, + rpcUrls: { + default: { + http: [getChainConfigs(runtime)[chain].rpcUrl], + }, + public: { + http: [getChainConfigs(runtime)[chain].rpcUrl], + }, + }, + }, + }); + await walletClient.switchChain({ + id: getChainConfigs(runtime)[chain].chainId, + }); + } else { + throw error; + } + } - getWalletClient(): WalletClient { - const walletClient = this.chainConfigs[this.currentChain].walletClient - if (!walletClient) throw new Error('Wallet not connected') - return walletClient - } + this.currentChain = chain; + } - getCurrentChain(): SupportedChain { - return this.currentChain - } + getPublicClient( + chain: SupportedChain + ): PublicClient { + return this.chainConfigs[chain].publicClient; + } - getChainConfig(chain: SupportedChain) { - return getChainConfigs(this.runtime)[chain] - } -} + getWalletClient(): WalletClient { + const walletClient = this.chainConfigs[this.currentChain].walletClient; + if (!walletClient) throw new Error("Wallet not connected"); + return walletClient; + } -export const evmWalletProvider: Provider = { - async get(runtime: IAgentRuntime, message: Memory, state?: State): Promise { - // Check if the user has an EVM wallet - if (!runtime.getSetting("EVM_PRIVATE_KEY")) { - return null + getCurrentChain(): SupportedChain { + return this.currentChain; } - try { - const walletProvider = new WalletProvider(runtime) - const address = walletProvider.getAddress() - const balance = await walletProvider.getWalletBalance() - return `EVM Wallet Address: ${address}\nBalance: ${balance} ETH` - } catch (error) { - console.error('Error in EVM wallet provider:', error) - return null + getChainConfig(chain: SupportedChain) { + return getChainConfigs(this.runtime)[chain]; } - }, } + +export const evmWalletProvider: Provider = { + async get( + runtime: IAgentRuntime, + message: Memory, + state?: State + ): Promise { + // Check if the user has an EVM wallet + if (!runtime.getSetting("EVM_PRIVATE_KEY")) { + return null; + } + + try { + const walletProvider = new WalletProvider(runtime); + const address = walletProvider.getAddress(); + const balance = await walletProvider.getWalletBalance(); + return `EVM Wallet Address: ${address}\nBalance: ${balance} ETH`; + } catch (error) { + console.error("Error in EVM wallet provider:", error); + return null; + } + }, +}; diff --git a/packages/plugin-evm/src/templates/index.ts b/packages/plugin-evm/src/templates/index.ts index f487d0de39..d8bccf17d3 100644 --- a/packages/plugin-evm/src/templates/index.ts +++ b/packages/plugin-evm/src/templates/index.ts @@ -20,7 +20,7 @@ Respond with a JSON markdown block containing only the extracted values: "token": string | null } \`\`\` -` +`; export const bridgeTemplate = `Given the recent messages and wallet information below: @@ -46,7 +46,7 @@ Respond with a JSON markdown block containing only the extracted values: "toAddress": string | null } \`\`\` -` +`; export const swapTemplate = `Given the recent messages and wallet information below: @@ -71,4 +71,4 @@ Respond with a JSON markdown block containing only the extracted values. Use nul "slippage": number | null } \`\`\` -` \ No newline at end of file +`; diff --git a/packages/plugin-evm/src/types/index.ts b/packages/plugin-evm/src/types/index.ts index 0ebd682560..d2bfbca0ed 100644 --- a/packages/plugin-evm/src/types/index.ts +++ b/packages/plugin-evm/src/types/index.ts @@ -1,129 +1,137 @@ -import type { Token } from '@lifi/types' -import type { Account, Address, Chain, Hash, HttpTransport, PublicClient, WalletClient } from 'viem' - -export type SupportedChain = 'ethereum' | 'base' +import type { Token } from "@lifi/types"; +import type { + Account, + Address, + Chain, + Hash, + HttpTransport, + PublicClient, + WalletClient, +} from "viem"; + +export type SupportedChain = "ethereum" | "base"; // Transaction types export interface Transaction { - hash: Hash - from: Address - to: Address - value: bigint - data?: `0x${string}` - chainId?: number + hash: Hash; + from: Address; + to: Address; + value: bigint; + data?: `0x${string}`; + chainId?: number; } // Token types export interface TokenWithBalance { - token: Token - balance: bigint - formattedBalance: string - priceUSD: string - valueUSD: string + token: Token; + balance: bigint; + formattedBalance: string; + priceUSD: string; + valueUSD: string; } export interface WalletBalance { - chain: SupportedChain - address: Address - totalValueUSD: string - tokens: TokenWithBalance[] + chain: SupportedChain; + address: Address; + totalValueUSD: string; + tokens: TokenWithBalance[]; } // Chain configuration export interface ChainMetadata { - chainId: number - name: string - chain: Chain - rpcUrl: string - nativeCurrency: { - name: string - symbol: string - decimals: number - } - blockExplorerUrl: string + chainId: number; + name: string; + chain: Chain; + rpcUrl: string; + nativeCurrency: { + name: string; + symbol: string; + decimals: number; + }; + blockExplorerUrl: string; } export interface ChainConfig { - chain: Chain - publicClient: PublicClient - walletClient?: WalletClient + chain: Chain; + publicClient: PublicClient; + walletClient?: WalletClient; } // Action parameters export interface TransferParams { - fromChain: SupportedChain - toAddress: Address - amount: string - data?: `0x${string}` + fromChain: SupportedChain; + toAddress: Address; + amount: string; + data?: `0x${string}`; } export interface SwapParams { - chain: SupportedChain - fromToken: Address - toToken: Address - amount: string - slippage?: number + chain: SupportedChain; + fromToken: Address; + toToken: Address; + amount: string; + slippage?: number; } export interface BridgeParams { - fromChain: SupportedChain - toChain: SupportedChain - fromToken: Address - toToken: Address - amount: string - toAddress?: Address + fromChain: SupportedChain; + toChain: SupportedChain; + fromToken: Address; + toToken: Address; + amount: string; + toAddress?: Address; } // Plugin configuration export interface EvmPluginConfig { - rpcUrl?: { - ethereum?: string - base?: string - } - secrets?: { - EVM_PRIVATE_KEY: string - } - testMode?: boolean - multicall?: { - batchSize?: number - wait?: number - } + rpcUrl?: { + ethereum?: string; + base?: string; + }; + secrets?: { + EVM_PRIVATE_KEY: string; + }; + testMode?: boolean; + multicall?: { + batchSize?: number; + wait?: number; + }; } // LiFi types export type LiFiStatus = { - status: 'PENDING' | 'DONE' | 'FAILED' - substatus?: string - error?: Error -} + status: "PENDING" | "DONE" | "FAILED"; + substatus?: string; + error?: Error; +}; export type LiFiRoute = { - transactionHash: Hash - transactionData: `0x${string}` - toAddress: Address - status: LiFiStatus -} + transactionHash: Hash; + transactionData: `0x${string}`; + toAddress: Address; + status: LiFiStatus; +}; // Provider types export interface TokenData extends Token { - symbol: string - decimals: number - address: Address - name: string - logoURI?: string - chainId: number + symbol: string; + decimals: number; + address: Address; + name: string; + logoURI?: string; + chainId: number; } export interface TokenPriceResponse { - priceUSD: string - token: TokenData + priceUSD: string; + token: TokenData; } export interface TokenListResponse { - tokens: TokenData[] + tokens: TokenData[]; } export interface ProviderError extends Error { - code?: number - data?: unknown + code?: number; + data?: unknown; } diff --git a/packages/plugin-evm/tsup.config.ts b/packages/plugin-evm/tsup.config.ts index b0c1a8a9f4..a68ccd636a 100644 --- a/packages/plugin-evm/tsup.config.ts +++ b/packages/plugin-evm/tsup.config.ts @@ -16,6 +16,6 @@ export default defineConfig({ "http", "agentkeepalive", "viem", - "@lifi/sdk" + "@lifi/sdk", ], }); diff --git a/packages/plugin-icp/package.json b/packages/plugin-icp/package.json index d14cc82f58..c5cdd9e893 100644 --- a/packages/plugin-icp/package.json +++ b/packages/plugin-icp/package.json @@ -1,23 +1,23 @@ { - "name": "@ai16z/plugin-icp", - "version": "0.0.1", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "dependencies": { - "@ai16z/eliza": "workspace:*", - "@dfinity/agent": "^2.1.3", - "@dfinity/candid": "^2.1.3", - "@dfinity/identity": "^2.1.3", - "@dfinity/principal": "^2.1.3" - }, - "scripts": { - "build": "tsup --format esm --dts" - }, - "devDependencies": { - "@types/jest": "29.5.14", - "jest": "29.7.0", - "tsup": "^8.3.5", - "typescript": "5.6.3" - } -} \ No newline at end of file + "name": "@ai16z/plugin-icp", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@dfinity/agent": "^2.1.3", + "@dfinity/candid": "^2.1.3", + "@dfinity/identity": "^2.1.3", + "@dfinity/principal": "^2.1.3" + }, + "scripts": { + "build": "tsup --format esm --dts" + }, + "devDependencies": { + "@types/jest": "29.5.14", + "jest": "29.7.0", + "tsup": "^8.3.5", + "typescript": "5.6.3" + } +} diff --git a/packages/plugin-icp/tsconfig.json b/packages/plugin-icp/tsconfig.json index e69de29bb2..8625f5308c 100644 --- a/packages/plugin-icp/tsconfig.json +++ b/packages/plugin-icp/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src", + "typeRoots": [ + "./node_modules/@types", + "./src/types" + ], + "declaration": true + }, + "include": [ + "src" + ] +} \ No newline at end of file diff --git a/packages/plugin-icp/tsup.config.ts b/packages/plugin-icp/tsup.config.ts new file mode 100644 index 0000000000..a47c9eb64b --- /dev/null +++ b/packages/plugin-icp/tsup.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + outDir: "dist", + sourcemap: true, + clean: true, + format: ["esm"], // Ensure you're targeting CommonJS + external: [ + "dotenv", // Externalize dotenv to prevent bundling + "fs", // Externalize fs to use Node.js built-in module + "path", // Externalize other built-ins if necessary + "@reflink/reflink", + "@node-llama-cpp", + "https", + "http", + "agentkeepalive", + ], +}); diff --git a/packages/plugin-image-generation/src/enviroment.ts b/packages/plugin-image-generation/src/enviroment.ts index 6cd1be473c..3426b4bf34 100644 --- a/packages/plugin-image-generation/src/enviroment.ts +++ b/packages/plugin-image-generation/src/enviroment.ts @@ -42,8 +42,7 @@ export async function validateImageGenConfig( runtime.getSetting("HEURIST_API_KEY") || process.env.HEURIST_API_KEY, FAL_API_KEY: - runtime.getSetting("FAL_API_KEY") || - process.env.FAL_API_KEY, + runtime.getSetting("FAL_API_KEY") || process.env.FAL_API_KEY, OPENAI_API_KEY: runtime.getSetting("OPENAI_API_KEY") || process.env.OPENAI_API_KEY, diff --git a/packages/plugin-image-generation/src/index.ts b/packages/plugin-image-generation/src/index.ts index ef2b978dba..8a8ec4102a 100644 --- a/packages/plugin-image-generation/src/index.ts +++ b/packages/plugin-image-generation/src/index.ts @@ -85,7 +85,13 @@ const imageGeneration: Action = { const falApiKeyOk = !!runtime.getSetting("FAL_API_KEY"); const openAiApiKeyOk = !!runtime.getSetting("OPENAI_API_KEY"); - return anthropicApiKeyOk || togetherApiKeyOk || heuristApiKeyOk || falApiKeyOk || openAiApiKeyOk; + return ( + anthropicApiKeyOk || + togetherApiKeyOk || + heuristApiKeyOk || + falApiKeyOk || + openAiApiKeyOk + ); }, handler: async ( runtime: IAgentRuntime, diff --git a/packages/plugin-node/scripts/postinstall.js b/packages/plugin-node/scripts/postinstall.js index 152d5209ce..1aee6170fe 100644 --- a/packages/plugin-node/scripts/postinstall.js +++ b/packages/plugin-node/scripts/postinstall.js @@ -1,9 +1,17 @@ -import os from 'os'; +import os from "os"; const platform = os.platform(); -if ((platform === 'linux' && !(os.release().includes('ubuntu') || os.release().includes('debian')))) { - console.log('Skipping playwright installation on unsupported platform:', platform); +if ( + platform === "linux" && + !(os.release().includes("ubuntu") || os.release().includes("debian")) +) { + console.log( + "Skipping playwright installation on unsupported platform:", + platform + ); } else { - const { execSync } = await import('child_process'); - execSync('npx playwright install-deps && npx playwright install', { stdio: 'inherit' }); -} \ No newline at end of file + const { execSync } = await import("child_process"); + execSync("npx playwright install-deps && npx playwright install", { + stdio: "inherit", + }); +} diff --git a/packages/plugin-node/src/index.ts b/packages/plugin-node/src/index.ts index a311681de0..48f62687be 100644 --- a/packages/plugin-node/src/index.ts +++ b/packages/plugin-node/src/index.ts @@ -12,8 +12,7 @@ import { VideoService, } from "./services/index.ts"; - -export type NodePlugin = ReturnType +export type NodePlugin = ReturnType; export function createNodePlugin() { return { @@ -28,5 +27,5 @@ export function createNodePlugin() { new TranscriptionService(), new VideoService(), ], - } as const satisfies Plugin -}; + } as const satisfies Plugin; +} diff --git a/packages/plugin-node/src/services/image.ts b/packages/plugin-node/src/services/image.ts index 82760de1fb..8d1ec458c2 100644 --- a/packages/plugin-node/src/services/image.ts +++ b/packages/plugin-node/src/services/image.ts @@ -101,7 +101,7 @@ export class ImageDescriptionService this.modelId = "gpt-4o-mini"; this.device = "cloud"; } - + this.initialized = true; } diff --git a/packages/plugin-node/src/services/llama.ts b/packages/plugin-node/src/services/llama.ts index 85c6a017cb..20868ea53d 100644 --- a/packages/plugin-node/src/services/llama.ts +++ b/packages/plugin-node/src/services/llama.ts @@ -185,7 +185,10 @@ export class LlamaService extends Service { this.modelUrl = "https://huggingface.co/NousResearch/Hermes-3-Llama-3.1-8B-GGUF/resolve/main/Hermes-3-Llama-3.1-8B.Q8_0.gguf?download=true"; const modelName = "model.gguf"; - this.modelPath = path.join(process.env.LLAMALOCAL_PATH?.trim() ?? "./", modelName); + this.modelPath = path.join( + process.env.LLAMALOCAL_PATH?.trim() ?? "./", + modelName + ); this.ollamaModel = process.env.OLLAMA_MODEL; } diff --git a/packages/plugin-solana/src/actions/swap.ts b/packages/plugin-solana/src/actions/swap.ts index 0c3b33144b..b2e7b9e12f 100644 --- a/packages/plugin-solana/src/actions/swap.ts +++ b/packages/plugin-solana/src/actions/swap.ts @@ -149,7 +149,7 @@ async function getTokensInWallet(runtime: IAgentRuntime) { new Connection("https://api.mainnet-beta.solana.com"), new PublicKey( runtime.getSetting("SOLANA_PUBLIC_KEY") ?? - runtime.getSetting("WALLET_PUBLIC_KEY") + runtime.getSetting("WALLET_PUBLIC_KEY") ) ); @@ -295,7 +295,7 @@ export const executeSwap: Action = { ); const walletPublicKey = new PublicKey( runtime.getSetting("SOLANA_PUBLIC_KEY") ?? - runtime.getSetting("WALLET_PUBLIC_KEY") + runtime.getSetting("WALLET_PUBLIC_KEY") ); const provider = new WalletProvider(connection, walletPublicKey); @@ -356,7 +356,7 @@ export const executeSwap: Action = { const keypair = Keypair.fromSecretKey(secretKey); // Verify the public key matches what we expect - const expectedPublicKey = + const expectedPublicKey = runtime.getSetting("SOLANA_PUBLIC_KEY") ?? runtime.getSetting("WALLET_PUBLIC_KEY"); if (keypair.publicKey.toBase58() !== expectedPublicKey) { diff --git a/packages/plugin-solana/src/actions/swapDao.ts b/packages/plugin-solana/src/actions/swapDao.ts index 8e67e003fe..e2928c7441 100644 --- a/packages/plugin-solana/src/actions/swapDao.ts +++ b/packages/plugin-solana/src/actions/swapDao.ts @@ -70,7 +70,7 @@ export const executeSwapForDAO: Action = { Uint8Array.from( Buffer.from( runtime.getSetting("SOLANA_PRIVATE_KEY") ?? - runtime.getSetting("WALLET_PRIVATE_KEY"), // should be the authority private key + runtime.getSetting("WALLET_PRIVATE_KEY"), // should be the authority private key "base64" ) ) diff --git a/packages/plugin-solana/src/evaluators/trust.ts b/packages/plugin-solana/src/evaluators/trust.ts index 9631c2dc98..d7dd887ab4 100644 --- a/packages/plugin-solana/src/evaluators/trust.ts +++ b/packages/plugin-solana/src/evaluators/trust.ts @@ -153,7 +153,7 @@ async function handler(runtime: IAgentRuntime, message: Memory) { ), new PublicKey( runtime.getSetting("SOLANA_PUBLIC_KEY") ?? - runtime.getSetting("WALLET_PUBLIC_KEY") + runtime.getSetting("WALLET_PUBLIC_KEY") ) ); const tokenProvider = new TokenProvider( diff --git a/packages/plugin-solana/src/providers/simulationSellingService.ts b/packages/plugin-solana/src/providers/simulationSellingService.ts index 7439df9505..1f0816abe6 100644 --- a/packages/plugin-solana/src/providers/simulationSellingService.ts +++ b/packages/plugin-solana/src/providers/simulationSellingService.ts @@ -43,7 +43,7 @@ export class SimulationSellingService { this.connection, new PublicKey( runtime.getSetting("SOLANA_PUBLIC_KEY") ?? - runtime.getSetting("WALLET_PUBLIC_KEY") + runtime.getSetting("WALLET_PUBLIC_KEY") ) ); this.baseMint = new PublicKey( diff --git a/packages/plugin-solana/src/providers/token.ts b/packages/plugin-solana/src/providers/token.ts index 4702863a93..802b4c3f0a 100644 --- a/packages/plugin-solana/src/providers/token.ts +++ b/packages/plugin-solana/src/providers/token.ts @@ -198,16 +198,16 @@ export class TokenProvider { }; const response = await fetch(this.GRAPHQL_ENDPOINT, { - method: 'POST', + method: "POST", headers: { - 'Content-Type': 'application/json', - 'Authorization': settings.CODEX_API_KEY + "Content-Type": "application/json", + Authorization: settings.CODEX_API_KEY, }, body: JSON.stringify({ query, - variables - }) - }).then(res => res.json()); + variables, + }), + }).then((res) => res.json()); const token = response.data?.data?.token; diff --git a/packages/plugin-solana/src/providers/trustScoreProvider.ts b/packages/plugin-solana/src/providers/trustScoreProvider.ts index 55f52a6c8f..7eccfb7259 100644 --- a/packages/plugin-solana/src/providers/trustScoreProvider.ts +++ b/packages/plugin-solana/src/providers/trustScoreProvider.ts @@ -140,14 +140,19 @@ export class TrustScoreManager { return { tokenPerformance: { - tokenAddress: processedData.dexScreenerData.pairs[0]?.baseToken.address || + tokenAddress: + processedData.dexScreenerData.pairs[0]?.baseToken.address || "", - priceChange24h: processedData.tradeData.price_change_24h_percent, + priceChange24h: + processedData.tradeData.price_change_24h_percent, volumeChange24h: processedData.tradeData.volume_24h, - trade_24h_change: processedData.tradeData.trade_24h_change_percent, - liquidity: processedData.dexScreenerData.pairs[0]?.liquidity.usd || 0, + trade_24h_change: + processedData.tradeData.trade_24h_change_percent, + liquidity: + processedData.dexScreenerData.pairs[0]?.liquidity.usd || 0, liquidityChange24h: 0, - holderChange24h: processedData.tradeData.unique_wallet_24h_change_percent, + holderChange24h: + processedData.tradeData.unique_wallet_24h_change_percent, rugPull: false, isScam: processedData.tokenCodex.isScam, marketCapChange24h: 0, @@ -156,9 +161,10 @@ export class TrustScoreManager { suspiciousVolume: suspiciousVolume, validationTrust: validationTrustScore, balance: balance, - initialMarketCap: processedData.dexScreenerData.pairs[0]?.marketCap || 0, + initialMarketCap: + processedData.dexScreenerData.pairs[0]?.marketCap || 0, lastUpdated: new Date(), - symbol: "" + symbol: "", }, recommenderMetrics: { recommenderId: recommenderId, diff --git a/packages/plugin-solana/src/providers/wallet.ts b/packages/plugin-solana/src/providers/wallet.ts index 894b42b260..d34e8cff0d 100644 --- a/packages/plugin-solana/src/providers/wallet.ts +++ b/packages/plugin-solana/src/providers/wallet.ts @@ -193,16 +193,17 @@ export class WalletProvider { }; const response = await fetch(PROVIDER_CONFIG.GRAPHQL_ENDPOINT, { - method: 'POST', + method: "POST", headers: { - 'Content-Type': 'application/json', - 'Authorization': runtime.getSetting("CODEX_API_KEY", "") || "" + "Content-Type": "application/json", + Authorization: + runtime.getSetting("CODEX_API_KEY", "") || "", }, body: JSON.stringify({ query, - variables - }) - }).then(res => res.json()); + variables, + }), + }).then((res) => res.json()); const data = response.data?.data?.balances?.items; @@ -363,7 +364,11 @@ export class WalletProvider { } const walletProvider: Provider = { - get: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise => { + get: async ( + runtime: IAgentRuntime, + _message: Memory, + _state?: State + ): Promise => { try { const publicKey = runtime.getSetting("SOLANA_PUBLIC_KEY"); if (!publicKey) { @@ -373,7 +378,7 @@ const walletProvider: Provider = { const connection = new Connection( runtime.getSetting("RPC_URL") || PROVIDER_CONFIG.DEFAULT_RPC ); - + const provider = new WalletProvider( connection, new PublicKey(publicKey) @@ -384,7 +389,7 @@ const walletProvider: Provider = { console.error("Error in wallet provider:", error); return null; } - } + }, }; // Module exports diff --git a/packages/plugin-solana/tsup.config.ts b/packages/plugin-solana/tsup.config.ts index f4b2b65100..dd25475bb6 100644 --- a/packages/plugin-solana/tsup.config.ts +++ b/packages/plugin-solana/tsup.config.ts @@ -23,7 +23,7 @@ export default defineConfig({ "stream", "buffer", "querystring", - "amqplib" + "amqplib", // Add other modules you want to externalize ], }); diff --git a/packages/plugin-starknet/src/actions/transfer.ts b/packages/plugin-starknet/src/actions/transfer.ts index 1275845781..034e4023f9 100644 --- a/packages/plugin-starknet/src/actions/transfer.ts +++ b/packages/plugin-starknet/src/actions/transfer.ts @@ -168,10 +168,7 @@ export default { const recipient = content.recipient ?? (await getAddressFromName(account, content.starkName)); - const transferCall = erc20Token.transferCall( - recipient, - amountWei - ); + const transferCall = erc20Token.transferCall(recipient, amountWei); elizaLogger.success( "Transferring", diff --git a/packages/plugin-starknet/src/providers/portfolioProvider.ts b/packages/plugin-starknet/src/providers/portfolioProvider.ts index b432e6288d..2434dceaff 100644 --- a/packages/plugin-starknet/src/providers/portfolioProvider.ts +++ b/packages/plugin-starknet/src/providers/portfolioProvider.ts @@ -27,9 +27,8 @@ export class WalletProvider { async getWalletPortfolio(): Promise { const cacheKey = `walletPortfolio-${this.runtime.agentId}`; - const cachedValues = await this.runtime.cacheManager.get( - cacheKey - ); + const cachedValues = + await this.runtime.cacheManager.get(cacheKey); if (cachedValues) { elizaLogger.debug("Using cached data for getWalletPortfolio()"); return cachedValues; diff --git a/packages/plugin-starknet/src/providers/token.ts b/packages/plugin-starknet/src/providers/token.ts index bc29cbb6e4..f52d7c07b8 100644 --- a/packages/plugin-starknet/src/providers/token.ts +++ b/packages/plugin-starknet/src/providers/token.ts @@ -130,9 +130,8 @@ export class TokenProvider { // TODO: Update to Starknet async getTokensInWallet(runtime: IAgentRuntime): Promise { - const walletInfo = await this.walletProvider.fetchPortfolioValue( - runtime - ); + const walletInfo = + await this.walletProvider.fetchPortfolioValue(runtime); const items = walletInfo.items; return items; } @@ -193,8 +192,8 @@ export class TokenProvider { token === STRK ? "starknet" : token === BTC - ? "bitcoin" - : "ethereum"; + ? "bitcoin" + : "ethereum"; prices[priceKey].usd = tokenInfo.market.currentPrice.toString(); }); @@ -670,9 +669,8 @@ export class TokenProvider { console.log( `Filtering high-value holders for token: ${this.tokenAddress}` ); - const highValueHolders = await this.filterHighValueHolders( - tradeData - ); + const highValueHolders = + await this.filterHighValueHolders(tradeData); console.log( `Checking recent trades for token: ${this.tokenAddress}` @@ -684,9 +682,8 @@ export class TokenProvider { console.log( `Counting high-supply holders for token: ${this.tokenAddress}` ); - const highSupplyHoldersCount = await this.countHighSupplyHolders( - security - ); + const highSupplyHoldersCount = + await this.countHighSupplyHolders(security); console.log( `Determining DexScreener listing status for token: ${this.tokenAddress}` diff --git a/packages/plugin-starknet/src/providers/trustScoreProvider.ts b/packages/plugin-starknet/src/providers/trustScoreProvider.ts index 48cbbaf082..88d48d408c 100644 --- a/packages/plugin-starknet/src/providers/trustScoreProvider.ts +++ b/packages/plugin-starknet/src/providers/trustScoreProvider.ts @@ -620,9 +620,8 @@ export const trustScoreProvider: Provider = { } // Get the recommender metrics for the user - const recommenderMetrics = await trustScoreDb.getRecommenderMetrics( - userId - ); + const recommenderMetrics = + await trustScoreDb.getRecommenderMetrics(userId); if (!recommenderMetrics) { console.error("No recommender metrics found for user:", userId); diff --git a/packages/plugin-tee/README.md b/packages/plugin-tee/README.md index ed8e23030b..4b256cdb46 100644 --- a/packages/plugin-tee/README.md +++ b/packages/plugin-tee/README.md @@ -26,7 +26,7 @@ try { ); // rawKey is a DeriveKeyResponse that can be used for further processing // to get the uint8Array do the following - const rawKeyArray = rawKey.asUint8Array() + const rawKeyArray = rawKey.asUint8Array(); } catch (error) { console.error("Raw key derivation failed:", error); } diff --git a/packages/plugin-tee/src/providers/deriveKeyProvider.ts b/packages/plugin-tee/src/providers/deriveKeyProvider.ts index 527ef3b79f..26c4a71efa 100644 --- a/packages/plugin-tee/src/providers/deriveKeyProvider.ts +++ b/packages/plugin-tee/src/providers/deriveKeyProvider.ts @@ -2,7 +2,7 @@ import { IAgentRuntime, Memory, Provider, State } from "@ai16z/eliza"; import { Keypair } from "@solana/web3.js"; import crypto from "crypto"; import { DeriveKeyResponse, TappdClient } from "@phala/dstack-sdk"; -import { privateKeyToAccount } from "viem/accounts" +import { privateKeyToAccount } from "viem/accounts"; import { PrivateKeyAccount, keccak256 } from "viem"; class DeriveKeyProvider { @@ -12,7 +12,10 @@ class DeriveKeyProvider { this.client = endpoint ? new TappdClient(endpoint) : new TappdClient(); } - async rawDeriveKey(path: string, subject: string): Promise { + async rawDeriveKey( + path: string, + subject: string + ): Promise { try { if (!path || !subject) { console.error( @@ -31,7 +34,10 @@ class DeriveKeyProvider { } } - async deriveEd25519Keypair(path: string, subject: string): Promise { + async deriveEd25519Keypair( + path: string, + subject: string + ): Promise { try { if (!path || !subject) { console.error( @@ -57,7 +63,10 @@ class DeriveKeyProvider { } } - async deriveEcdsaKeypair(path: string, subject: string): Promise { + async deriveEcdsaKeypair( + path: string, + subject: string + ): Promise { try { if (!path || !subject) { console.error( @@ -66,7 +75,8 @@ class DeriveKeyProvider { } console.log("Deriving ECDSA Key in TEE..."); - const deriveKeyResponse: DeriveKeyResponse = await this.client.deriveKey(path, subject); + const deriveKeyResponse: DeriveKeyResponse = + await this.client.deriveKey(path, subject); const hex = keccak256(deriveKeyResponse.asUint8Array()); const keypair: PrivateKeyAccount = privateKeyToAccount(hex); console.log("ECDSA Key Derived Successfully!"); @@ -95,12 +105,18 @@ const deriveKeyProvider: Provider = { try { const secretSalt = runtime.getSetting("WALLET_SECRET_SALT") || "secret_salt"; - const solanaKeypair = await provider.deriveEd25519Keypair("/", secretSalt); - const evmKeypair = await provider.deriveEcdsaKeypair("/", secretSalt); + const solanaKeypair = await provider.deriveEd25519Keypair( + "/", + secretSalt + ); + const evmKeypair = await provider.deriveEcdsaKeypair( + "/", + secretSalt + ); return JSON.stringify({ solana: solanaKeypair.publicKey, - evm: evmKeypair.address - }) + evm: evmKeypair.address, + }); } catch (error) { console.error("Error creating PublicKey:", error); return ""; diff --git a/packages/plugin-tee/src/providers/walletProvider.ts b/packages/plugin-tee/src/providers/walletProvider.ts index 51f9330ceb..44ea2d163f 100644 --- a/packages/plugin-tee/src/providers/walletProvider.ts +++ b/packages/plugin-tee/src/providers/walletProvider.ts @@ -284,7 +284,11 @@ const walletProvider: Provider = { let publicKey: PublicKey; try { const deriveKeyProvider = new DeriveKeyProvider(); - const derivedKeyPair: Keypair = await deriveKeyProvider.deriveEd25519Keypair("/", runtime.getSetting("WALLET_SECRET_SALT")); + const derivedKeyPair: Keypair = + await deriveKeyProvider.deriveEd25519Keypair( + "/", + runtime.getSetting("WALLET_SECRET_SALT") + ); publicKey = derivedKeyPair.publicKey; console.log("Wallet Public Key: ", publicKey.toBase58()); } catch (error) { diff --git a/packages/plugin-video-generation/package.json b/packages/plugin-video-generation/package.json index 92b78a818a..330bbfef35 100644 --- a/packages/plugin-video-generation/package.json +++ b/packages/plugin-video-generation/package.json @@ -9,6 +9,8 @@ "tsup": "8.3.5" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^8.16.0", + "@typescript-eslint/parser": "^8.16.0", "eslint": "^9.15.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-prettier": "5.2.1", diff --git a/packages/plugin-whatsapp/Readme.md b/packages/plugin-whatsapp/Readme.md index 0f1687608a..9324a5705c 100644 --- a/packages/plugin-whatsapp/Readme.md +++ b/packages/plugin-whatsapp/Readme.md @@ -8,7 +8,6 @@ A plugin for integrating WhatsApp Cloud API with your application. npm install @eliza/plugin-whatsapp - ## Configuration typescript @@ -20,7 +19,6 @@ webhookVerifyToken: 'your_webhook_verify_token', businessAccountId: 'your_business_account_id' }); - ## Usage ### Sending Messages @@ -44,8 +42,8 @@ code: 'en' } }); - ### Handling Webhooks + typescript // Verify webhook app.get('/webhook', (req, res) => { @@ -62,26 +60,27 @@ await whatsappPlugin.handleWebhook(req.body); res.sendStatus(200); }); - ## Features -- Send text messages -- Send template messages -- Webhook verification -- Webhook event handling -- Message status updates +- Send text messages +- Send template messages +- Webhook verification +- Webhook event handling +- Message status updates ## API Reference ### WhatsAppPlugin #### Constructor -- `config: WhatsAppConfig` - Configuration object for the plugin + +- `config: WhatsAppConfig` - Configuration object for the plugin #### Methods -- `sendMessage(message: WhatsAppMessage): Promise` - Send a WhatsApp message -- `handleWebhook(event: WhatsAppWebhookEvent): Promise` - Process incoming webhook events -- `verifyWebhook(token: string): Promise` - Verify webhook token + +- `sendMessage(message: WhatsAppMessage): Promise` - Send a WhatsApp message +- `handleWebhook(event: WhatsAppWebhookEvent): Promise` - Process incoming webhook events +- `verifyWebhook(token: string): Promise` - Verify webhook token ### Types @@ -111,14 +110,14 @@ text?: string; }>; } - ## Error Handling The plugin throws errors in the following cases: -- Invalid configuration -- Failed message sending -- Webhook verification failure -- Invalid webhook payload + +- Invalid configuration +- Failed message sending +- Webhook verification failure +- Invalid webhook payload Example error handling: @@ -133,7 +132,6 @@ content: 'Hello!' console.error('Failed to send message:', error.message); } - ## Best Practices 1. Always validate phone numbers before sending messages @@ -154,4 +152,3 @@ console.error('Failed to send message:', error.message); ## License MIT - diff --git a/packages/plugin-whatsapp/eslint.config.mjs b/packages/plugin-whatsapp/eslint.config.mjs index 0ef28d6fd1..5d71e77c9c 100644 --- a/packages/plugin-whatsapp/eslint.config.mjs +++ b/packages/plugin-whatsapp/eslint.config.mjs @@ -9,11 +9,6 @@ export default [ tsconfigRootDir: import.meta.dirname, project: "./tsconfig.json", }, - }, - rules: { - "@typescript-eslint/no-unused-expressions": "off", - "@typescript-eslint/no-explicit-any": "warn", - "no-console": ["warn", { allow: ["warn", "error"] }], - }, + } }, ]; diff --git a/packages/plugin-whatsapp/package.json b/packages/plugin-whatsapp/package.json index 407ed7180e..6e05052b20 100644 --- a/packages/plugin-whatsapp/package.json +++ b/packages/plugin-whatsapp/package.json @@ -18,6 +18,8 @@ "devDependencies": { "@types/node": "^20.0.0", "@types/jest": "^29.0.0", + "@typescript-eslint/eslint-plugin": "^8.16.0", + "@typescript-eslint/parser": "^8.16.0", "typescript": "^5.0.0", "jest": "^29.0.0", "ts-jest": "^29.0.0", diff --git a/packages/plugin-whatsapp/src/client.ts b/packages/plugin-whatsapp/src/client.ts index 69df7ba7a7..0656b63908 100644 --- a/packages/plugin-whatsapp/src/client.ts +++ b/packages/plugin-whatsapp/src/client.ts @@ -1,38 +1,38 @@ -import axios, { AxiosInstance } from 'axios'; -import { WhatsAppConfig, WhatsAppMessage } from './types'; +import axios, { AxiosInstance } from "axios"; +import { WhatsAppConfig, WhatsAppMessage } from "./types"; export class WhatsAppClient { - private client: AxiosInstance; - private config: WhatsAppConfig; + private client: AxiosInstance; + private config: WhatsAppConfig; - constructor(config: WhatsAppConfig) { - this.config = config; - this.client = axios.create({ - baseURL: 'https://graph.facebook.com/v17.0', - headers: { - Authorization: `Bearer ${config.accessToken}`, - 'Content-Type': 'application/json', - }, - }); - } + constructor(config: WhatsAppConfig) { + this.config = config; + this.client = axios.create({ + baseURL: "https://graph.facebook.com/v17.0", + headers: { + Authorization: `Bearer ${config.accessToken}`, + "Content-Type": "application/json", + }, + }); + } - async sendMessage(message: WhatsAppMessage): Promise { - const endpoint = `/${this.config.phoneNumberId}/messages`; - - const payload = { - messaging_product: 'whatsapp', - recipient_type: 'individual', - to: message.to, - type: message.type, - ...(message.type === 'text' - ? { text: { body: message.content } } - : { template: message.content }), - }; + async sendMessage(message: WhatsAppMessage): Promise { + const endpoint = `/${this.config.phoneNumberId}/messages`; - return this.client.post(endpoint, payload); - } + const payload = { + messaging_product: "whatsapp", + recipient_type: "individual", + to: message.to, + type: message.type, + ...(message.type === "text" + ? { text: { body: message.content } } + : { template: message.content }), + }; - async verifyWebhook(token: string): Promise { - return token === this.config.webhookVerifyToken; - } -} \ No newline at end of file + return this.client.post(endpoint, payload); + } + + async verifyWebhook(token: string): Promise { + return token === this.config.webhookVerifyToken; + } +} diff --git a/packages/plugin-whatsapp/src/handlers/index.ts b/packages/plugin-whatsapp/src/handlers/index.ts index de793d11af..5c2317beb2 100644 --- a/packages/plugin-whatsapp/src/handlers/index.ts +++ b/packages/plugin-whatsapp/src/handlers/index.ts @@ -1,2 +1,2 @@ -export * from './message.handler'; -export * from './webhook.handler'; +export * from "./message.handler"; +export * from "./webhook.handler"; diff --git a/packages/plugin-whatsapp/src/handlers/message.handler.ts b/packages/plugin-whatsapp/src/handlers/message.handler.ts index 5dc5578a5e..7bcc2996d8 100644 --- a/packages/plugin-whatsapp/src/handlers/message.handler.ts +++ b/packages/plugin-whatsapp/src/handlers/message.handler.ts @@ -1,15 +1,20 @@ -import { WhatsAppClient } from '../client'; -import { WhatsAppMessage } from '../types'; +import { WhatsAppClient } from "../client"; +import { WhatsAppMessage } from "../types"; export class MessageHandler { - constructor(private client: WhatsAppClient) {} + constructor(private client: WhatsAppClient) {} - async send(message: WhatsAppMessage): Promise { - try { - const response = await this.client.sendMessage(message); - return response.data; - } catch (error) { - throw new Error(`Failed to send WhatsApp message: ${error.message}`); + async send(message: WhatsAppMessage): Promise { + try { + const response = await this.client.sendMessage(message); + return response.data; + } catch (error: unknown) { + if (error instanceof Error) { + throw new Error( + `Failed to send WhatsApp message: ${error.message}` + ); + } + throw new Error('Failed to send WhatsApp message'); + } } - } } diff --git a/packages/plugin-whatsapp/src/handlers/webhook.handler.ts b/packages/plugin-whatsapp/src/handlers/webhook.handler.ts index fceb5eeaad..cf7dc73ae1 100644 --- a/packages/plugin-whatsapp/src/handlers/webhook.handler.ts +++ b/packages/plugin-whatsapp/src/handlers/webhook.handler.ts @@ -1,40 +1,45 @@ -import { WhatsAppClient } from '../client'; -import { WhatsAppWebhookEvent } from '../types'; +import { WhatsAppClient } from "../client"; +import { WhatsAppWebhookEvent } from "../types"; export class WebhookHandler { - constructor(private client: WhatsAppClient) {} + constructor(private client: WhatsAppClient) {} - async handle(event: WhatsAppWebhookEvent): Promise { - try { - // Process messages - if (event.entry?.[0]?.changes?.[0]?.value?.messages) { - const messages = event.entry[0].changes[0].value.messages; - for (const message of messages) { - await this.handleMessage(message); - } - } + async handle(event: WhatsAppWebhookEvent): Promise { + try { + // Process messages + if (event.entry?.[0]?.changes?.[0]?.value?.messages) { + const messages = event.entry[0].changes[0].value.messages; + for (const message of messages) { + await this.handleMessage(message); + } + } - // Process status updates - if (event.entry?.[0]?.changes?.[0]?.value?.statuses) { - const statuses = event.entry[0].changes[0].value.statuses; - for (const status of statuses) { - await this.handleStatus(status); + // Process status updates + if (event.entry?.[0]?.changes?.[0]?.value?.statuses) { + const statuses = event.entry[0].changes[0].value.statuses; + for (const status of statuses) { + await this.handleStatus(status); + } + } + } catch (error: unknown) { + if (error instanceof Error) { + throw new Error( + `Failed to send WhatsApp message: ${error.message}` + ); + } + throw new Error("Failed to send WhatsApp message"); } - } - } catch (error) { - throw new Error(`Failed to handle webhook event: ${error.message}`); } - } - private async handleMessage(message: any): Promise { - // Implement message handling logic - // This could emit events or trigger callbacks based on your framework's needs - console.log('Received message:', message); - } + private async handleMessage(message: any): Promise { + // Implement message handling logic + // This could emit events or trigger callbacks based on your framework's needs + console.log("Received message:", message); + } - private async handleStatus(status: any): Promise { - // Implement status update handling logic - // This could emit events or trigger callbacks based on your framework's needs - console.log('Received status update:', status); - } + private async handleStatus(status: any): Promise { + // Implement status update handling logic + // This could emit events or trigger callbacks based on your framework's needs + console.log("Received status update:", status); + } } diff --git a/packages/plugin-whatsapp/src/index.ts b/packages/plugin-whatsapp/src/index.ts index 5d806a0c52..a09890cd35 100644 --- a/packages/plugin-whatsapp/src/index.ts +++ b/packages/plugin-whatsapp/src/index.ts @@ -1,30 +1,36 @@ -import { Plugin } from '@eliza/core'; -import { WhatsAppClient } from './client'; -import { WhatsAppConfig, WhatsAppMessage, WhatsAppWebhookEvent } from './types'; -import { MessageHandler, WebhookHandler } from './handlers'; +import { Plugin } from "@ai16z/eliza"; +import { WhatsAppClient } from "./client"; +import { WhatsAppConfig, WhatsAppMessage, WhatsAppWebhookEvent } from "./types"; +import { MessageHandler, WebhookHandler } from "./handlers"; export class WhatsAppPlugin implements Plugin { - private client: WhatsAppClient; - private messageHandler: MessageHandler; - private webhookHandler: WebhookHandler; + private client: WhatsAppClient; + private messageHandler: MessageHandler; + private webhookHandler: WebhookHandler; - constructor(private config: WhatsAppConfig) { - this.client = new WhatsAppClient(config); - this.messageHandler = new MessageHandler(this.client); - this.webhookHandler = new WebhookHandler(this.client); - } + name: string; + description: string; - async sendMessage(message: WhatsAppMessage): Promise { - return this.messageHandler.send(message); - } + constructor(private config: WhatsAppConfig) { + this.name = "WhatsApp Cloud API Plugin"; + this.description = + "A plugin for integrating WhatsApp Cloud API with your application."; + this.client = new WhatsAppClient(config); + this.messageHandler = new MessageHandler(this.client); + this.webhookHandler = new WebhookHandler(this.client); + } - async handleWebhook(event: WhatsAppWebhookEvent): Promise { - return this.webhookHandler.handle(event); - } + async sendMessage(message: WhatsAppMessage): Promise { + return this.messageHandler.send(message); + } - async verifyWebhook(token: string): Promise { - return this.client.verifyWebhook(token); - } + async handleWebhook(event: WhatsAppWebhookEvent): Promise { + return this.webhookHandler.handle(event); + } + + async verifyWebhook(token: string): Promise { + return this.client.verifyWebhook(token); + } } -export * from './types'; +export * from "./types"; diff --git a/packages/plugin-whatsapp/src/types.ts b/packages/plugin-whatsapp/src/types.ts index 842dce3160..ac782b7cc0 100644 --- a/packages/plugin-whatsapp/src/types.ts +++ b/packages/plugin-whatsapp/src/types.ts @@ -1,58 +1,58 @@ export interface WhatsAppConfig { - accessToken: string; - phoneNumberId: string; - webhookVerifyToken?: string; - businessAccountId?: string; + accessToken: string; + phoneNumberId: string; + webhookVerifyToken?: string; + businessAccountId?: string; } export interface WhatsAppMessage { - type: 'text' | 'template'; - to: string; - content: string | WhatsAppTemplate; + type: "text" | "template"; + to: string; + content: string | WhatsAppTemplate; } export interface WhatsAppTemplate { - name: string; - language: { - code: string; - }; - components?: Array<{ - type: string; - parameters: Array<{ - type: string; - text?: string; + name: string; + language: { + code: string; + }; + components?: Array<{ + type: string; + parameters: Array<{ + type: string; + text?: string; + }>; }>; - }>; } export interface WhatsAppWebhookEvent { - object: string; - entry: Array<{ - id: string; - changes: Array<{ - value: { - messaging_product: string; - metadata: { - display_phone_number: string; - phone_number_id: string; - }; - statuses?: Array<{ - id: string; - status: string; - timestamp: string; - recipient_id: string; - }>; - messages?: Array<{ - from: string; - id: string; - timestamp: string; - text?: { - body: string; - }; - type: string; + object: string; + entry: Array<{ + id: string; + changes: Array<{ + value: { + messaging_product: string; + metadata: { + display_phone_number: string; + phone_number_id: string; + }; + statuses?: Array<{ + id: string; + status: string; + timestamp: string; + recipient_id: string; + }>; + messages?: Array<{ + from: string; + id: string; + timestamp: string; + text?: { + body: string; + }; + type: string; + }>; + }; + field: string; }>; - }; - field: string; }>; - }>; -} \ No newline at end of file +} diff --git a/packages/plugin-whatsapp/src/utils/index.ts b/packages/plugin-whatsapp/src/utils/index.ts index 011b41e03c..58564490f6 100644 --- a/packages/plugin-whatsapp/src/utils/index.ts +++ b/packages/plugin-whatsapp/src/utils/index.ts @@ -1 +1 @@ -export * from './validators'; +export * from "./validators"; diff --git a/packages/plugin-whatsapp/src/utils/validators.ts b/packages/plugin-whatsapp/src/utils/validators.ts index 3aa9610882..f76f549691 100644 --- a/packages/plugin-whatsapp/src/utils/validators.ts +++ b/packages/plugin-whatsapp/src/utils/validators.ts @@ -1,44 +1,44 @@ -import { WhatsAppMessage, WhatsAppTemplate, WhatsAppConfig } from '../types'; +import { WhatsAppMessage, WhatsAppTemplate, WhatsAppConfig } from "../types"; export function validateConfig(config: WhatsAppConfig): void { - if (!config.accessToken) { - throw new Error('WhatsApp access token is required'); - } - if (!config.phoneNumberId) { - throw new Error('WhatsApp phone number ID is required'); - } + if (!config.accessToken) { + throw new Error("WhatsApp access token is required"); + } + if (!config.phoneNumberId) { + throw new Error("WhatsApp phone number ID is required"); + } } export function validateMessage(message: WhatsAppMessage): void { - if (!message.to) { - throw new Error('Recipient phone number is required'); - } + if (!message.to) { + throw new Error("Recipient phone number is required"); + } - if (!message.type) { - throw new Error('Message type is required'); - } + if (!message.type) { + throw new Error("Message type is required"); + } - if (!message.content) { - throw new Error('Message content is required'); - } + if (!message.content) { + throw new Error("Message content is required"); + } - if (message.type === 'template') { - validateTemplate(message.content as WhatsAppTemplate); - } + if (message.type === "template") { + validateTemplate(message.content as WhatsAppTemplate); + } } export function validateTemplate(template: WhatsAppTemplate): void { - if (!template.name) { - throw new Error('Template name is required'); - } + if (!template.name) { + throw new Error("Template name is required"); + } - if (!template.language || !template.language.code) { - throw new Error('Template language code is required'); - } + if (!template.language || !template.language.code) { + throw new Error("Template language code is required"); + } } export function validatePhoneNumber(phoneNumber: string): boolean { - // Basic phone number validation - can be enhanced based on requirements - const phoneRegex = /^\d{1,15}$/; - return phoneRegex.test(phoneNumber); + // Basic phone number validation - can be enhanced based on requirements + const phoneRegex = /^\d{1,15}$/; + return phoneRegex.test(phoneNumber); } diff --git a/packages/plugin-whatsapp/tsconfig.json b/packages/plugin-whatsapp/tsconfig.json index cb6042c83e..43be674f6a 100644 --- a/packages/plugin-whatsapp/tsconfig.json +++ b/packages/plugin-whatsapp/tsconfig.json @@ -1,21 +1,21 @@ { - "compilerOptions": { - "target": "es2018", - "module": "commonjs", - "declaration": true, - "outDir": "./dist", - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "baseUrl": ".", - "paths": { - "*": ["node_modules/*"] + "compilerOptions": { + "target": "es2018", + "module": "commonjs", + "declaration": true, + "outDir": "./dist", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "baseUrl": ".", + "paths": { + "*": ["node_modules/*"] + }, + "types": ["node", "jest"] }, - "types": ["node", "jest"] - }, - "include": ["src/**/*"], - "exclude": ["node_modules", "dist", "**/*.test.ts"] + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "**/*.test.ts"] } diff --git a/packages/plugin-whatsapp/tsup.config.ts b/packages/plugin-whatsapp/tsup.config.ts new file mode 100644 index 0000000000..a47c9eb64b --- /dev/null +++ b/packages/plugin-whatsapp/tsup.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + outDir: "dist", + sourcemap: true, + clean: true, + format: ["esm"], // Ensure you're targeting CommonJS + external: [ + "dotenv", // Externalize dotenv to prevent bundling + "fs", // Externalize fs to use Node.js built-in module + "path", // Externalize other built-ins if necessary + "@reflink/reflink", + "@node-llama-cpp", + "https", + "http", + "agentkeepalive", + ], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce2a078f31..71e7031c7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,18 +17,27 @@ importers: '@coinbase/coinbase-sdk': specifier: ^0.10.0 version: 0.10.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@discordjs/opus': + specifier: ^0.9.0 + version: 0.9.0(encoding@0.1.13) amqplib: specifier: 0.10.5 version: 0.10.5 csv-parse: specifier: ^5.6.0 version: 5.6.0 + node-opus: + specifier: ^0.3.3 + version: 0.3.3 ollama-ai-provider: specifier: ^0.16.1 version: 0.16.1(zod@3.23.8) optional: specifier: ^0.1.4 version: 0.1.4 + opusscript: + specifier: ^0.1.1 + version: 0.1.1 pnpm: specifier: ^9.14.3 version: 9.14.4 @@ -47,16 +56,22 @@ importers: version: 18.6.3 '@typescript-eslint/eslint-plugin': specifier: ^8.16.0 - version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^8.16.0 - version: 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + version: 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) concurrently: specifier: 9.1.0 version: 9.1.0 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) + eslint-config-prettier: + specifier: 9.1.0 + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) husky: specifier: 9.1.7 version: 9.1.7 @@ -232,13 +247,13 @@ importers: version: 10.4.20(postcss@8.4.49) eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-plugin-react-hooks: specifier: 5.0.0 - version: 5.0.0(eslint@9.15.0(jiti@2.4.0)) + version: 5.0.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-react-refresh: specifier: 0.4.14 - version: 0.4.14(eslint@9.15.0(jiti@2.4.0)) + version: 0.4.14(eslint@9.16.0(jiti@2.4.0)) globals: specifier: 15.11.0 version: 15.11.0 @@ -253,7 +268,7 @@ importers: version: 5.6.3 typescript-eslint: specifier: 8.11.0 - version: 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + version: 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) vite: specifier: link:@tanstack/router-plugin/vite version: link:@tanstack/router-plugin/vite @@ -262,22 +277,22 @@ importers: dependencies: '@docusaurus/core': specifier: 3.6.3 - version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/plugin-content-blog': specifier: 3.6.3 - version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/plugin-content-docs': specifier: 3.6.3 - version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/plugin-ideal-image': specifier: 3.6.3 - version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/preset-classic': specifier: 3.6.3 - version: 3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/theme-mermaid': specifier: 3.6.3 - version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@mdx-js/react': specifier: 3.0.1 version: 3.0.1(@types/react@18.3.12)(react@18.3.1) @@ -286,7 +301,7 @@ importers: version: 2.1.1 docusaurus-lunr-search: specifier: 3.5.0 - version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) prism-react-renderer: specifier: 2.3.1 version: 2.3.1(react@18.3.1) @@ -330,16 +345,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -364,16 +379,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -398,16 +413,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -426,16 +441,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -469,16 +484,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -521,16 +536,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -551,7 +566,7 @@ importers: version: 2.4.0 '@discordjs/voice': specifier: 0.17.0 - version: 0.17.0(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(bufferutil@4.0.8)(ffmpeg-static@5.2.0)(utf-8-validate@5.0.10) + version: 0.17.0(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(bufferutil@4.0.8)(ffmpeg-static@5.2.0)(node-opus@0.3.3)(opusscript@0.1.1)(utf-8-validate@5.0.10) discord.js: specifier: 14.16.3 version: 14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -560,7 +575,7 @@ importers: version: 0.7.15 prism-media: specifier: 1.3.5 - version: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0) + version: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0)(node-opus@0.3.3)(opusscript@0.1.1) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -570,16 +585,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -623,16 +638,16 @@ importers: version: 8.1.0 eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -654,16 +669,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -688,16 +703,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -824,10 +839,10 @@ importers: version: 1.3.3 '@typescript-eslint/eslint-plugin': specifier: 8.12.2 - version: 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + version: 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/parser': specifier: 8.12.2 - version: 8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + version: 8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@vitest/coverage-v8': specifier: 2.1.5 version: 2.1.5(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) @@ -836,13 +851,13 @@ importers: version: 16.4.5 eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) jest: specifier: 29.7.0 version: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) @@ -894,16 +909,16 @@ importers: version: 0.3.12(magicast@0.3.5) eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) jiti: specifier: 2.4.0 version: 2.4.0 @@ -940,16 +955,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) packages/plugin-buttplug: dependencies: @@ -980,16 +995,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -1075,16 +1090,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) packages/plugin-node: dependencies: @@ -1256,16 +1271,16 @@ importers: version: 22.8.4 eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) @@ -1317,16 +1332,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.4(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.4(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) packages/plugin-starknet: dependencies: @@ -1360,16 +1375,16 @@ importers: devDependencies: eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) packages/plugin-tee: dependencies: @@ -1381,10 +1396,10 @@ importers: version: 0.1.4(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) '@solana/spl-token': specifier: 0.4.9 - version: 0.4.9(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': - specifier: 1.95.4 - version: 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + specifier: 1.95.5 + version: 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) bignumber: specifier: 1.1.0 version: 1.1.0 @@ -1403,6 +1418,9 @@ importers: tsup: specifier: ^8.3.5 version: 8.3.5(@swc/core@1.9.3(@swc/helpers@0.5.15))(jiti@2.4.0)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) + viem: + specifier: ^2.21.53 + version: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1433,16 +1451,16 @@ importers: version: 3.2.0 eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) packages/plugin-video-generation: dependencies: @@ -1456,18 +1474,24 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: + '@typescript-eslint/eslint-plugin': + specifier: ^8.16.0 + version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': + specifier: ^8.16.0 + version: 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) packages/plugin-web-search: dependencies: @@ -1496,18 +1520,24 @@ importers: '@types/node': specifier: ^20.0.0 version: 20.17.9 + '@typescript-eslint/eslint-plugin': + specifier: ^8.16.0 + version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': + specifier: ^8.16.0 + version: 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.0) + version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3) eslint-plugin-vitest: specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)) jest: specifier: ^29.0.0 version: 29.7.0(@types/node@20.17.9) @@ -3111,6 +3141,10 @@ packages: resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} hasBin: true + '@discordjs/opus@0.9.0': + resolution: {integrity: sha512-NEE76A96FtQ5YuoAVlOlB3ryMPrkXbUCTQICHGKb8ShtjXyubGicjRMouHtP1RpuDdm16cDa+oI3aAMo1zQRUQ==} + engines: {node: '>=12.0.0'} + '@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02': resolution: {tarball: https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02} version: 0.9.0 @@ -3849,6 +3883,10 @@ packages: resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5826,9 +5864,6 @@ packages: resolution: {integrity: sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==} engines: {node: '>=16'} - '@solana/web3.js@1.95.4': - resolution: {integrity: sha512-sdewnNEA42ZSMxqkzdwEWi6fDgzwtJHaQa5ndUGEJYtoOnM6X5cvPmjoTUp7/k7bRrVAxfBgDnvQQHD6yhlLYw==} - '@solana/web3.js@1.95.5': resolution: {integrity: sha512-hU9cBrbg1z6gEjLH9vwIckGBVB78Ijm0iZFNk4ocm5OD82piPwuk3MeQ1rfiKD9YQtr95krrcaopb49EmQJlRg==} @@ -7378,6 +7413,9 @@ packages: resolution: {integrity: sha512-Iy//vPc3ANPNlIWd242Npqc8MK0a/i4kVcHDlDA6HNMv5zMxz4ulIFhOSYJVKw/8AbHdHy0CnGYEt1QqSXxPsw==} engines: {node: '>=18'} + bindings@1.2.1: + resolution: {integrity: sha512-u4cBQNepWxYA55FunZSM7wMi55yQaN0otnhhilNoWHq0MfOfJeQx0v0mRRpolGOExPjZcl6FtB0BB8Xkb88F0g==} + bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -9096,8 +9134,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.15.0: - resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -11936,6 +11974,13 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + node-opus@0.3.3: + resolution: {integrity: sha512-ZQniA8iJ6y/qOTmW6eyzM9m8odt4CIGV0NM9/U03/pYLhGyxy18QXO25WfrWd8XsUYx57tnxll2xxj54CN08uQ==} + engines: {node: '>=5.10.0'} + cpu: [x64, arm, arm64, ia32] + os: [linux, darwin, win32, freebsd, android] + deprecated: This project is unmaintained. See @discordjs/opus for an alternative. + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -12102,6 +12147,9 @@ packages: ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + ogg-packet@1.0.1: + resolution: {integrity: sha512-dW1ok3BMnMikyXGDIgVEckWnlViW8JLWQV4qj9aN/rNRVqHlDYSlcIEtSIMH7tpuUOiIxAhY3+OxNdIOm6s17A==} + ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} @@ -12199,6 +12247,9 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + opusscript@0.1.1: + resolution: {integrity: sha512-mL0fZZOUnXdZ78woRXp18lApwpp0lF5tozJOD1Wut0dgrA9WuQTgSels/CSmFleaAZrJi/nci5KOVtbuxeWoQA==} + ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} @@ -13811,6 +13862,12 @@ packages: redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + ref-struct@1.1.0: + resolution: {integrity: sha512-h2OSdAUycdqiwFBp2wB3XEFheWA/U+n/JYnhEi3584JqnCCDXIA3qDIhHH3klIHMNZwrJW+VagpxPGeSf6777Q==} + + ref@1.3.5: + resolution: {integrity: sha512-2cBCniTtxcGUjDpvFfVpw323a83/0RLSGJJY5l5lcomZWhYpU2cuLdsvYqMixvsdLJ9+sTdzEkju8J8ZHDM2nA==} + reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -18479,6 +18536,14 @@ snapshots: - encoding - supports-color + '@discordjs/opus@0.9.0(encoding@0.1.13)': + dependencies: + '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) + node-addon-api: 5.1.0 + transitivePeerDependencies: + - encoding + - supports-color + '@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13)': dependencies: '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) @@ -18501,11 +18566,11 @@ snapshots: '@discordjs/util@1.1.1': {} - '@discordjs/voice@0.17.0(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(bufferutil@4.0.8)(ffmpeg-static@5.2.0)(utf-8-validate@5.0.10)': + '@discordjs/voice@0.17.0(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(bufferutil@4.0.8)(ffmpeg-static@5.2.0)(node-opus@0.3.3)(opusscript@0.1.1)(utf-8-validate@5.0.10)': dependencies: '@types/ws': 8.5.13 discord-api-types: 0.37.83 - prism-media: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0) + prism-media: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0)(node-opus@0.3.3)(opusscript@0.1.1) tslib: 2.8.0 ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -18577,7 +18642,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/bundler@3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: '@babel/core': 7.26.0 '@docusaurus/babel': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) @@ -18598,7 +18663,7 @@ snapshots: postcss: 8.4.49 postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) postcss-preset-env: 10.1.1(postcss@8.4.49) - react-dev-utils: 12.0.1(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) + react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) terser-webpack-plugin: 5.3.10(@swc/core@1.9.3(@swc/helpers@0.5.15))(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) tslib: 2.8.0 url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))))(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) @@ -18622,10 +18687,10 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@docusaurus/babel': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/bundler': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/bundler': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.6.3 '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) @@ -18652,7 +18717,7 @@ snapshots: p-map: 4.0.0 prompts: 2.4.2 react: 18.3.1 - react-dev-utils: 12.0.1(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) + react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' @@ -18768,13 +18833,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/logger': 3.6.3 '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils-common': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18812,13 +18877,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/logger': 3.6.3 '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils-common': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18854,9 +18919,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) @@ -18887,9 +18952,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) fs-extra: 11.2.0 @@ -18918,9 +18983,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) react: 18.3.1 @@ -18947,9 +19012,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@types/gtag.js': 0.0.12 @@ -18977,9 +19042,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) react: 18.3.1 @@ -19006,9 +19071,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/lqip-loader': 3.6.3(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6) '@docusaurus/theme-translations': 3.6.3 @@ -19043,9 +19108,9 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/logger': 3.6.3 '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) @@ -19077,20 +19142,20 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-classic': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-classic': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -19129,16 +19194,16 @@ snapshots: optionalDependencies: sharp: 0.32.6 - '@docusaurus/theme-classic@3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/theme-classic@3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/logger': 3.6.3 '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/theme-translations': 3.6.3 '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) @@ -19180,11 +19245,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils-common': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/history': 4.7.11 @@ -19206,11 +19271,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) mermaid: 11.4.1 @@ -19239,13 +19304,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.15.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@docsearch/react': 3.8.0(@algolia/client-search@5.15.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/logger': 3.6.3 - '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/theme-translations': 3.6.3 '@docusaurus/utils': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils-validation': 3.6.3(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) @@ -19632,9 +19697,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.0))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@2.4.0))': dependencies: - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -19665,6 +19730,8 @@ snapshots: '@eslint/js@9.15.0': {} + '@eslint/js@9.16.0': {} + '@eslint/object-schema@2.1.4': {} '@eslint/plugin-kit@0.2.3': @@ -22127,14 +22194,6 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/spl-token-group@0.0.7(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': - dependencies: - '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) - '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - typescript - '@solana/spl-token-group@0.0.7(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': dependencies: '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) @@ -22143,14 +22202,6 @@ snapshots: - fastestsmallesttextencoderdecoder - typescript - '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': - dependencies: - '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) - '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - typescript - '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': dependencies: '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) @@ -22174,21 +22225,6 @@ snapshots: - typescript - utf-8-validate - '@solana/spl-token@0.4.9(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) - '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) - '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - buffer: 6.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - fastestsmallesttextencoderdecoder - - typescript - - utf-8-validate - '@solana/spl-token@0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -22221,28 +22257,6 @@ snapshots: '@wallet-standard/base': 1.1.0 '@wallet-standard/features': 1.1.0 - '@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': - dependencies: - '@babel/runtime': 7.26.0 - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 - '@solana/buffer-layout': 4.0.1 - agentkeepalive: 4.5.0 - bigint-buffer: 1.1.5 - bn.js: 5.2.1 - borsh: 0.7.0 - bs58: 4.0.1 - buffer: 6.0.3 - fast-stable-stringify: 1.0.0 - jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - node-fetch: 2.7.0(encoding@0.1.13) - rpc-websockets: 9.0.4 - superstruct: 2.0.2 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.26.0 @@ -22969,15 +22983,15 @@ snapshots: '@types/node': 22.8.4 optional: true - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -22987,15 +23001,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.12.2 - '@typescript-eslint/type-utils': 8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.12.2 - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -23005,15 +23019,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.16.0 - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -23023,40 +23037,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/parser@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.11.0 debug: 4.3.7(supports-color@5.5.0) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/parser@8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.12.2 '@typescript-eslint/types': 8.12.2 '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.12.2 debug: 4.3.7(supports-color@5.5.0) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.16.0 '@typescript-eslint/types': 8.16.0 '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.16.0 debug: 4.3.7(supports-color@5.5.0) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -23082,10 +23096,10 @@ snapshots: '@typescript-eslint/types': 8.16.0 '@typescript-eslint/visitor-keys': 8.16.0 - '@typescript-eslint/type-utils@8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) debug: 4.3.7(supports-color@5.5.0) ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: @@ -23094,10 +23108,10 @@ snapshots: - eslint - supports-color - '@typescript-eslint/type-utils@8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) - '@typescript-eslint/utils': 8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) debug: 4.3.7(supports-color@5.5.0) ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: @@ -23106,12 +23120,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) debug: 4.3.7(supports-color@5.5.0) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 @@ -23186,46 +23200,46 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/utils@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@typescript-eslint/scope-manager': 8.11.0 '@typescript-eslint/types': 8.11.0 '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.12.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/utils@8.12.2(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@typescript-eslint/scope-manager': 8.12.2 '@typescript-eslint/types': 8.12.2 '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)': + '@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@typescript-eslint/scope-manager': 8.16.0 '@typescript-eslint/types': 8.16.0 '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -24165,6 +24179,8 @@ snapshots: execa: 8.0.1 find-versions: 6.0.0 + bindings@1.2.1: {} + bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -25752,9 +25768,9 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.15.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.9.3(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10) autocomplete.js: 0.37.1 clsx: 1.2.1 gauge: 3.0.2 @@ -26136,56 +26152,56 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)): + eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0))(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(jiti@2.4.0)))(eslint@9.16.0(jiti@2.4.0))(prettier@3.3.3): dependencies: - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + eslint-config-prettier: 9.1.0(eslint@9.16.0(jiti@2.4.0)) - eslint-plugin-react-hooks@5.0.0(eslint@9.15.0(jiti@2.4.0)): + eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) - eslint-plugin-react-refresh@0.4.14(eslint@9.15.0(jiti@2.4.0)): + eslint-plugin-react-refresh@0.4.14(eslint@9.16.0(jiti@2.4.0)): dependencies: - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.4(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.4(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) vitest: 2.1.4(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) vitest: 2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - eslint: 9.15.0(jiti@2.4.0) + '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) vitest: 2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0) transitivePeerDependencies: - supports-color @@ -26205,14 +26221,14 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.15.0(jiti@2.4.0): + eslint@9.16.0(jiti@2.4.0): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.0 '@eslint/core': 0.9.0 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.15.0 + '@eslint/js': 9.16.0 '@eslint/plugin-kit': 0.2.3 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -26689,7 +26705,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))): dependencies: '@babel/code-frame': 7.26.2 '@types/json-schema': 7.0.15 @@ -26707,7 +26723,7 @@ snapshots: typescript: 5.6.3 webpack: 5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15)) optionalDependencies: - eslint: 9.15.0(jiti@2.4.0) + eslint: 9.16.0(jiti@2.4.0) form-data-encoder@1.7.2: {} @@ -29918,8 +29934,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.22.0: - optional: true + nan@2.22.0: {} nanoid@3.3.6: {} @@ -30098,6 +30113,16 @@ snapshots: node-machine-id@1.1.12: {} + node-opus@0.3.3: + dependencies: + bindings: 1.2.1 + commander: 2.20.3 + nan: 2.22.0 + optionalDependencies: + ogg-packet: 1.0.1 + transitivePeerDependencies: + - supports-color + node-releases@2.0.18: {} nodejs-whisper@0.1.18: @@ -30338,6 +30363,13 @@ snapshots: node-fetch-native: 1.6.4 ufo: 1.5.4 + ogg-packet@1.0.1: + dependencies: + ref-struct: 1.1.0 + transitivePeerDependencies: + - supports-color + optional: true + ohash@1.1.4: {} ollama-ai-provider@0.16.1(zod@3.23.8): @@ -30461,6 +30493,8 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + opusscript@0.1.1: {} + ora@5.3.0: dependencies: bl: 4.1.0 @@ -31678,10 +31712,12 @@ snapshots: pretty-time@1.1.0: {} - prism-media@1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0): + prism-media@1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0)(node-opus@0.3.3)(opusscript@0.1.1): optionalDependencies: '@discordjs/opus': https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13) ffmpeg-static: 5.2.0 + node-opus: 0.3.3 + opusscript: 0.1.1 prism-react-renderer@2.3.1(react@18.3.1): dependencies: @@ -31945,7 +31981,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dev-utils@12.0.1(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))): + react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))): dependencies: '@babel/code-frame': 7.26.2 address: 1.2.2 @@ -31956,7 +31992,7 @@ snapshots: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.9.3(@swc/helpers@0.5.15))) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -32256,6 +32292,23 @@ snapshots: dependencies: esprima: 4.0.1 + ref-struct@1.1.0: + dependencies: + debug: 2.6.9 + ref: 1.3.5 + transitivePeerDependencies: + - supports-color + optional: true + + ref@1.3.5: + dependencies: + bindings: 1.2.1 + debug: 2.6.9 + nan: 2.22.0 + transitivePeerDependencies: + - supports-color + optional: true + reflect-metadata@0.2.2: {} regenerate-unicode-properties@10.2.0: @@ -33844,11 +33897,11 @@ snapshots: typeforce@1.18.0: {} - typescript-eslint@8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3): + typescript-eslint@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/parser': 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: diff --git a/scripts/derive-keys.js b/scripts/derive-keys.js index 26ae53ffdf..ae07260fb8 100644 --- a/scripts/derive-keys.js +++ b/scripts/derive-keys.js @@ -1,19 +1,21 @@ -const { ethers } = require('ethers'); -require('dotenv').config(); +const { ethers } = require("ethers"); +require("dotenv").config(); // Get and validate the private key const privateKey = process.env.EVM_PRIVATE_KEY; if (!privateKey) { - throw new Error('EVM_PRIVATE_KEY is not set in environment variables'); + throw new Error("EVM_PRIVATE_KEY is not set in environment variables"); } // Ensure the private key has the correct format -const formattedPrivateKey = privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`; +const formattedPrivateKey = privateKey.startsWith("0x") + ? privateKey + : `0x${privateKey}`; // Create a wallet instance const wallet = new ethers.Wallet(formattedPrivateKey); -console.log('\nWallet Information:'); -console.log('------------------'); -console.log('Public Key:', wallet.signingKey.publicKey); -console.log('Wallet Address:', wallet.address); \ No newline at end of file +console.log("\nWallet Information:"); +console.log("------------------"); +console.log("Public Key:", wallet.signingKey.publicKey); +console.log("Wallet Address:", wallet.address); diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000000..e6a1ba00fa --- /dev/null +++ b/turbo.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "check-types": { + "dependsOn": ["build"] + }, + "@ai16z/agent#check-types": { + "dependsOn": ["@ai16z/plugin-solana#build"] + }, + "build": { + "outputs": ["dist/**"], + "dependsOn": ["^@ai16z/eliza#build"] + }, + "@ai16z/plugin-solana#build": { + "outputs": ["dist/**"], + "dependsOn": ["@ai16z/plugin-trustdb#build"] + }, + "eliza-docs#build": { + "outputs": ["build/**"] + }, + "dev": { + "persistent": true, + "cache": false + } + } +}