diff --git a/.env.example b/.env.example index 6d266119d18..eefcd6ce5d2 100644 --- a/.env.example +++ b/.env.example @@ -43,6 +43,9 @@ LIVEPEER_IMAGE_MODEL= # Default: ByteDance/SDXL-Lightning # Speech Synthesis ELEVENLABS_XI_API_KEY= # API key from elevenlabs +# Transcription Provider +TRANSCRIPTION_PROVIDER= # Default: local (possible values: openai, deepgram, local) + # Direct Client Setting EXPRESS_MAX_PAYLOAD= # Default: 100kb @@ -67,6 +70,7 @@ TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check fo TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with TWITTER_RETRY_LIMIT= # Maximum retry attempts for Twitter login +TWITTER_SPACES_ENABLE=false # Enable or disable Twitter Spaces logic X_SERVER_URL= XAI_API_KEY= @@ -162,6 +166,14 @@ LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1 GAIANET_EMBEDDING_MODEL= USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local +# Volcengine Configuration +VOLENGINE_API_URL= # Volcengine API Endpoint, Default: https://open.volcengineapi.com/api/v3/ +VOLENGINE_MODEL= +SMALL_VOLENGINE_MODEL= # Default: doubao-lite-128k +MEDIUM_VOLENGINE_MODEL= # Default: doubao-pro-128k +LARGE_VOLENGINE_MODEL= # Default: doubao-pro-256k +VOLENGINE_EMBEDDING_MODEL= # Default: doubao-embedding + # EVM EVM_PRIVATE_KEY= EVM_PROVIDER_URL= @@ -200,6 +212,9 @@ TOGETHER_API_KEY= # Server Configuration SERVER_PORT=3000 +# Web Search Config +ENABLE_WEBSEARCH=false # boolean value, defaults to false + # Abstract Configuration ABSTRACT_ADDRESS= ABSTRACT_PRIVATE_KEY= @@ -343,7 +358,7 @@ AWS_S3_UPLOAD_PATH= DEEPGRAM_API_KEY= # Sui -SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`) +SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`) , Also support `suiprivatekeyxxxx` (sui keytool export --key-identity 0x63) SUI_NETWORK= # must be one of mainnet, testnet, devnet, localnet # Story diff --git a/.github/workflows/integrationTests.yaml b/.github/workflows/integrationTests.yaml index 46ee2775167..ef8bd46d220 100644 --- a/.github/workflows/integrationTests.yaml +++ b/.github/workflows/integrationTests.yaml @@ -24,8 +24,11 @@ jobs: node-version: "23" cache: "pnpm" + - name: Clean up + run: pnpm clean + - name: Install dependencies - run: pnpm install -r + run: pnpm install -r --no-frozen-lockfile - name: Build packages run: pnpm build diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ac64c2f528..9a4af4e5f6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,143 @@ # Changelog +## [v0.1.7-alpha.2](https://github.com/elizaOS/eliza/tree/v0.1.7-alpha.2) (2024-12-28) + +[Full Changelog](https://github.com/elizaOS/eliza/compare/v0.1.7-alpha.1...v0.1.7-alpha.2) + +**Implemented enhancements:** + +- add fuel plugin [\#1510](https://github.com/elizaOS/eliza/issues/1510) +- hi i finished the vertex ai integration do you guys need this? [\#1495](https://github.com/elizaOS/eliza/issues/1495) +- Add Tagalog Translation on README [\#1419](https://github.com/elizaOS/eliza/issues/1419) +- Reduce load on maintainers [\#1318](https://github.com/elizaOS/eliza/issues/1318) +- Greetings for first time contributors [\#1315](https://github.com/elizaOS/eliza/issues/1315) +- Enable code scanning on security purposes: [\#1313](https://github.com/elizaOS/eliza/issues/1313) + +**Fixed bugs:** + +- Swap & Bridge action issue [\#1523](https://github.com/elizaOS/eliza/issues/1523) +- Corrupt model `cache` [\#1506](https://github.com/elizaOS/eliza/issues/1506) +- \[PROPOSAL\] Setup lint/prettier and husky [\#1459](https://github.com/elizaOS/eliza/issues/1459) +- bug: pnpm run dev not working with characterfiles [\#1452](https://github.com/elizaOS/eliza/issues/1452) +- Not able to login in twitter [\#1398](https://github.com/elizaOS/eliza/issues/1398) +- Multiple generateNewTweetLoop method invocations caused multiple tweets to be posted. [\#1395](https://github.com/elizaOS/eliza/issues/1395) +- Postgres adapter doesnt apply settings [\#1378](https://github.com/elizaOS/eliza/issues/1378) +- imageSettings in character files do not currently work \(providing fix PR\) [\#1370](https://github.com/elizaOS/eliza/issues/1370) +- connect ETIMEDOUT 104.244.46.63:443 [\#1332](https://github.com/elizaOS/eliza/issues/1332) +- v0.1.6 When running on the gitpod , not able to chat in terminal when pnpm start , "Error starting agent for character Eliza" [\#1328](https://github.com/elizaOS/eliza/issues/1328) +- On load posts twice to Twitter [\#1284](https://github.com/elizaOS/eliza/issues/1284) +- Fix Incorrect Fallback Logic for Image Model Provider API Keys [\#1270](https://github.com/elizaOS/eliza/issues/1270) +- {{user}} tags in templates/examples empty when passed to LLM [\#1267](https://github.com/elizaOS/eliza/issues/1267) +- unsupported model provider: claude\_vertex on develop branch [\#1255](https://github.com/elizaOS/eliza/issues/1255) +- twitterShouldRespondTemplate Fails When Defined as a String in JSON Character Config [\#1235](https://github.com/elizaOS/eliza/issues/1235) +- pnpm install shows errors [\#1234](https://github.com/elizaOS/eliza/issues/1234) +- Long tweets fail with error Tweet needs to be a bit shorter \(Code 186\) [\#1178](https://github.com/elizaOS/eliza/issues/1178) +- Unable to Perform Transfer with plugin-evm Due to Parameter Parsing Error [\#964](https://github.com/elizaOS/eliza/issues/964) +- I have a twitter premium subscription and MAX\_TWEET\_LENGTH to 2500 but I can't to post a tweet with more than 280 characteres [\#883](https://github.com/elizaOS/eliza/issues/883) +- Twitter cookies do not match the docs [\#558](https://github.com/elizaOS/eliza/issues/558) + +**Closed issues:** + +- Scoped PR titles [\#1413](https://github.com/elizaOS/eliza/issues/1413) +- chore: Keeps README translations synchronized [\#1222](https://github.com/elizaOS/eliza/issues/1222) + +**Merged pull requests:** + +- chore: bump version to v.0.1.7-alpha.2 [\#1530](https://github.com/elizaOS/eliza/pull/1530) ([shakkernerd](https://github.com/shakkernerd)) +- chore: remove unused vars [\#1529](https://github.com/elizaOS/eliza/pull/1529) ([odilitime](https://github.com/odilitime)) +- feat: add /:agentId/speak endpoint for text-to-speech functionality [\#1528](https://github.com/elizaOS/eliza/pull/1528) ([HowieDuhzit](https://github.com/HowieDuhzit)) +- Fix: Update package.json with build-docker command to match the dockerfile command [\#1527](https://github.com/elizaOS/eliza/pull/1527) ([vanshika-srivastava](https://github.com/vanshika-srivastava)) +- feat: Add Livepeer Image Provider [\#1525](https://github.com/elizaOS/eliza/pull/1525) ([Titan-Node](https://github.com/Titan-Node)) +- feat: use OPENAI\_API\_URL from env to support custom OpenAI API endpoint [\#1522](https://github.com/elizaOS/eliza/pull/1522) ([imtms](https://github.com/imtms)) +- fix: handle long tweet in utils [\#1520](https://github.com/elizaOS/eliza/pull/1520) ([oxSaturn](https://github.com/oxSaturn)) +- chore: 1.7.0 prep, develop =\> main [\#1519](https://github.com/elizaOS/eliza/pull/1519) ([odilitime](https://github.com/odilitime)) +- chore: remove cache in core [\#1516](https://github.com/elizaOS/eliza/pull/1516) ([shakkernerd](https://github.com/shakkernerd)) +- chore: Revert "Clear `/cache/` in `clean.sh` script" [\#1515](https://github.com/elizaOS/eliza/pull/1515) ([shakkernerd](https://github.com/shakkernerd)) +- fix: client-twitter lowerCase bug and environment clean up \(+lint fixes, and TWITTER\_SEARCH\_ENABLE double start fix\) [\#1514](https://github.com/elizaOS/eliza/pull/1514) ([odilitime](https://github.com/odilitime)) +- chore: general code fixes/clean up [\#1513](https://github.com/elizaOS/eliza/pull/1513) ([shakkernerd](https://github.com/shakkernerd)) +- add fuel plugin [\#1512](https://github.com/elizaOS/eliza/pull/1512) ([Dhaiwat10](https://github.com/Dhaiwat10)) +- Clear `/cache/` in `clean.sh` script [\#1508](https://github.com/elizaOS/eliza/pull/1508) ([timolegros](https://github.com/timolegros)) +- feat: Add the FerePro plugin [\#1502](https://github.com/elizaOS/eliza/pull/1502) ([Rudrakc](https://github.com/Rudrakc)) +- feat: extend parseBooleanFromText function with additional boolean values [\#1501](https://github.com/elizaOS/eliza/pull/1501) ([shakkernerd](https://github.com/shakkernerd)) +- docs: bad links in eliza-in-tee.md [\#1500](https://github.com/elizaOS/eliza/pull/1500) ([janeyJo](https://github.com/janeyJo)) +- fix: improve Twitter client dry run mode and configuration logging [\#1498](https://github.com/elizaOS/eliza/pull/1498) ([e-fu](https://github.com/e-fu)) +- feat: add readme for ton plugin [\#1496](https://github.com/elizaOS/eliza/pull/1496) ([chandiniv1](https://github.com/chandiniv1)) +- feat: add readme for websearch plugin [\#1494](https://github.com/elizaOS/eliza/pull/1494) ([chandiniv1](https://github.com/chandiniv1)) +- docs: Fixed a small syntax issue in the ModelClass Update fine-tuning.md [\#1493](https://github.com/elizaOS/eliza/pull/1493) ([mdqst](https://github.com/mdqst)) +- fix: remove `type` when import from `elizaos` [\#1492](https://github.com/elizaOS/eliza/pull/1492) ([tomguluson92](https://github.com/tomguluson92)) +- fix: improve client type identification with test coverage [\#1490](https://github.com/elizaOS/eliza/pull/1490) ([ShaneOxM](https://github.com/ShaneOxM)) +- chore: fix typos [\#1489](https://github.com/elizaOS/eliza/pull/1489) ([qwdsds](https://github.com/qwdsds)) +- add CODE\_OF\_CONDUCT.md [\#1487](https://github.com/elizaOS/eliza/pull/1487) ([nulLeeKH](https://github.com/nulLeeKH)) +- fix: add required incremental option and remove invalid typescript configuration [\#1485](https://github.com/elizaOS/eliza/pull/1485) ([ShaneOxM](https://github.com/ShaneOxM)) +- feat: improve chat formatting line breaks [\#1483](https://github.com/elizaOS/eliza/pull/1483) ([swizzmagik](https://github.com/swizzmagik)) +- feat: add image features to react chat client [\#1481](https://github.com/elizaOS/eliza/pull/1481) ([0xPBIT](https://github.com/0xPBIT)) +- feat: Enhance client direct [\#1479](https://github.com/elizaOS/eliza/pull/1479) ([shakkernerd](https://github.com/shakkernerd)) +- chore: Do not consider self tweets when evaluating actions [\#1477](https://github.com/elizaOS/eliza/pull/1477) ([ag-wnl](https://github.com/ag-wnl)) +- chore: Docs update [\#1476](https://github.com/elizaOS/eliza/pull/1476) ([madjin](https://github.com/madjin)) +- Fetch timeline for followed accounts via Twitter client methods [\#1475](https://github.com/elizaOS/eliza/pull/1475) ([ag-wnl](https://github.com/ag-wnl)) +- fix\(core\) make modelConfiguration optional [\#1473](https://github.com/elizaOS/eliza/pull/1473) ([Archethect](https://github.com/Archethect)) +- fix: duplicate twitter post [\#1472](https://github.com/elizaOS/eliza/pull/1472) ([tcm390](https://github.com/tcm390)) +- fix: cleaner interaction prompts in the Twitter plugin [\#1469](https://github.com/elizaOS/eliza/pull/1469) ([todorkolev](https://github.com/todorkolev)) +- fix: cronoszkEVM -\> cronoszkevm [\#1468](https://github.com/elizaOS/eliza/pull/1468) ([shakkernerd](https://github.com/shakkernerd)) +- chore: update defailt character topic test case [\#1466](https://github.com/elizaOS/eliza/pull/1466) ([shakkernerd](https://github.com/shakkernerd)) +- docs: Fixed Incorrect Model Name in API Integration [\#1465](https://github.com/elizaOS/eliza/pull/1465) ([mdqst](https://github.com/mdqst)) +- feat: Adding plugin for Cronos ZKEVM [\#1464](https://github.com/elizaOS/eliza/pull/1464) ([samarth30](https://github.com/samarth30)) +- fix: client-twitter: fix ENABLE\_ACTION\_PROCESSING logic [\#1463](https://github.com/elizaOS/eliza/pull/1463) ([zkvm](https://github.com/zkvm)) +- fix: update pnpm lock [\#1457](https://github.com/elizaOS/eliza/pull/1457) ([odilitime](https://github.com/odilitime)) +- fix: swap and bridge actions of plugin-evm [\#1456](https://github.com/elizaOS/eliza/pull/1456) ([pythonberg1997](https://github.com/pythonberg1997)) +- feat: Add ModelConfiguration to Character to enable adjusting temperature, response length & penalties [\#1455](https://github.com/elizaOS/eliza/pull/1455) ([peersky](https://github.com/peersky)) +- feat: allow passing secrets through environment [\#1454](https://github.com/elizaOS/eliza/pull/1454) ([odilitime](https://github.com/odilitime)) +- New default character [\#1453](https://github.com/elizaOS/eliza/pull/1453) ([lalalune](https://github.com/lalalune)) +- fix: Remove code duplication in getGoals call [\#1450](https://github.com/elizaOS/eliza/pull/1450) ([hanyh2004](https://github.com/hanyh2004)) +- Feat: update package.json to add Cleanstart options for new database [\#1449](https://github.com/elizaOS/eliza/pull/1449) ([harperaa](https://github.com/harperaa)) +- feat: Add Text to 3D function [\#1446](https://github.com/elizaOS/eliza/pull/1446) ([tomguluson92](https://github.com/tomguluson92)) +- feat: suppress initial message from action [\#1444](https://github.com/elizaOS/eliza/pull/1444) ([0xPBIT](https://github.com/0xPBIT)) +- fix: fix incorrect link redirection issue [\#1443](https://github.com/elizaOS/eliza/pull/1443) ([mhxw](https://github.com/mhxw)) +- feat: \(plugin-evm\) add alienx chain [\#1438](https://github.com/elizaOS/eliza/pull/1438) ([xwxtwd](https://github.com/xwxtwd)) +- feat: add `only` to booleanFooter [\#1437](https://github.com/elizaOS/eliza/pull/1437) ([fyInALT](https://github.com/fyInALT)) +- fix: Make search feature in twitter client works [\#1433](https://github.com/elizaOS/eliza/pull/1433) ([nulLeeKH](https://github.com/nulLeeKH)) +- chore: Keeps README translations synchronized [\#1432](https://github.com/elizaOS/eliza/pull/1432) ([0xJord4n](https://github.com/0xJord4n)) +- improve logging in plugin-coinbase [\#1429](https://github.com/elizaOS/eliza/pull/1429) ([alessandromazza98](https://github.com/alessandromazza98)) +- Update eliza-in-tee.md \(fixing typo\) [\#1428](https://github.com/elizaOS/eliza/pull/1428) ([yerinle](https://github.com/yerinle)) +- feat: client-github retry [\#1425](https://github.com/elizaOS/eliza/pull/1425) ([tomguluson92](https://github.com/tomguluson92)) +- docs: 1.Quotation marks are used incorrectly.2.Delete duplicate words [\#1424](https://github.com/elizaOS/eliza/pull/1424) ([RiceChuan](https://github.com/RiceChuan)) +- fix: typos [\#1423](https://github.com/elizaOS/eliza/pull/1423) ([omahs](https://github.com/omahs)) +- feat: Twitter Post Action Implementation [\#1422](https://github.com/elizaOS/eliza/pull/1422) ([0xPBIT](https://github.com/0xPBIT)) +- docs: Add Tagalog README Translation [\#1420](https://github.com/elizaOS/eliza/pull/1420) ([harveyjavier](https://github.com/harveyjavier)) +- fix: Multiple Agents running at the same time on localhost [\#1415](https://github.com/elizaOS/eliza/pull/1415) ([0xCardinalError](https://github.com/0xCardinalError)) +- chore: allow scoped pr titles [\#1414](https://github.com/elizaOS/eliza/pull/1414) ([ryanleecode](https://github.com/ryanleecode)) +- chore: format package.json files with prettier [\#1412](https://github.com/elizaOS/eliza/pull/1412) ([ryanleecode](https://github.com/ryanleecode)) +- feat: add venice style presets & option to remove watermark \(image generation\) [\#1410](https://github.com/elizaOS/eliza/pull/1410) ([proteanx](https://github.com/proteanx)) +- fix: client-discord chat\_with\_attachment action remove hard coded model, allow any tiktoken model [\#1408](https://github.com/elizaOS/eliza/pull/1408) ([harperaa](https://github.com/harperaa)) +- fix: duplicate tweet log [\#1402](https://github.com/elizaOS/eliza/pull/1402) ([jasonqindev](https://github.com/jasonqindev)) +- docs: Add "What Did You Get Done This Week? \#6" notes [\#1399](https://github.com/elizaOS/eliza/pull/1399) ([YoungPhlo](https://github.com/YoungPhlo)) +- Standardize boolean values and update .env file pattern [\#1392](https://github.com/elizaOS/eliza/pull/1392) ([hcaumo](https://github.com/hcaumo)) +- chore: split tests [\#1390](https://github.com/elizaOS/eliza/pull/1390) ([shakkernerd](https://github.com/shakkernerd)) +- chore: require approval for integration test step [\#1388](https://github.com/elizaOS/eliza/pull/1388) ([shakkernerd](https://github.com/shakkernerd)) +- chore: change CI trigger [\#1387](https://github.com/elizaOS/eliza/pull/1387) ([shakkernerd](https://github.com/shakkernerd)) +- docs: sample plugin documentation [\#1385](https://github.com/elizaOS/eliza/pull/1385) ([ileana-pr](https://github.com/ileana-pr)) +- fix: postgres adapter settings not being applied [\#1379](https://github.com/elizaOS/eliza/pull/1379) ([ryanleecode](https://github.com/ryanleecode)) +- Update README.md to instructions to start client for chatting with Agent [\#1375](https://github.com/elizaOS/eliza/pull/1375) ([onlyzerosonce](https://github.com/onlyzerosonce)) +- fix: explicitly set env in each step [\#1374](https://github.com/elizaOS/eliza/pull/1374) ([shakkernerd](https://github.com/shakkernerd)) +- fix: image generation using imageSettings [\#1371](https://github.com/elizaOS/eliza/pull/1371) ([proteanx](https://github.com/proteanx)) +- docs: Add documentation on pnpm node version [\#1350](https://github.com/elizaOS/eliza/pull/1350) ([trbutler4](https://github.com/trbutler4)) +- feat: Add agentic JSDoc generation [\#1343](https://github.com/elizaOS/eliza/pull/1343) ([Ed-Marcavage](https://github.com/Ed-Marcavage)) +- feat: handle long tweet [\#1339](https://github.com/elizaOS/eliza/pull/1339) ([tcm390](https://github.com/tcm390)) +- fix: Twitter login notifications, incorrect cookie management. [\#1330](https://github.com/elizaOS/eliza/pull/1330) ([ChristopherTrimboli](https://github.com/ChristopherTrimboli)) +- feat: added docs for plugin-nft-generation [\#1327](https://github.com/elizaOS/eliza/pull/1327) ([vishal-kanna](https://github.com/vishal-kanna)) +- feat: add auto PR / issue close after being stale for a certain amount of time [\#1317](https://github.com/elizaOS/eliza/pull/1317) ([monilpat](https://github.com/monilpat)) +- feat: greet first time contributors [\#1316](https://github.com/elizaOS/eliza/pull/1316) ([monilpat](https://github.com/monilpat)) +- feat: \[Code Scanning\] Security Improvements - create codeql.yml [\#1314](https://github.com/elizaOS/eliza/pull/1314) ([monilpat](https://github.com/monilpat)) +- fix: Update speech.ts [\#1312](https://github.com/elizaOS/eliza/pull/1312) ([y4my4my4m](https://github.com/y4my4my4m)) +- fix: {{user}} tags in templates/examples empty when passed to LLM [\#1305](https://github.com/elizaOS/eliza/pull/1305) ([tcm390](https://github.com/tcm390)) +- fix: fix imageModelProvider apiKey selection fallback [\#1272](https://github.com/elizaOS/eliza/pull/1272) ([UD1sto](https://github.com/UD1sto)) +- feat: add abstract plugin [\#1225](https://github.com/elizaOS/eliza/pull/1225) ([cygaar](https://github.com/cygaar)) +- chore: update env for plugin-goat [\#1180](https://github.com/elizaOS/eliza/pull/1180) ([aeither](https://github.com/aeither)) +- feat: Add GitBook Plugin provider [\#1126](https://github.com/elizaOS/eliza/pull/1126) ([azep-ninja](https://github.com/azep-ninja)) +- feat: add avalanche plugin [\#842](https://github.com/elizaOS/eliza/pull/842) ([snow-farmer](https://github.com/snow-farmer)) +- feat: Add Custom System Prompt Support for plugin-image-generation [\#839](https://github.com/elizaOS/eliza/pull/839) ([tsubasakong](https://github.com/tsubasakong)) +- feat: replace `unruggable-core` with `unruggable-sdk` [\#450](https://github.com/elizaOS/eliza/pull/450) ([remiroyc](https://github.com/remiroyc)) + ## [v0.1.7-alpha.1](https://github.com/elizaOS/eliza/tree/v0.1.7-alpha.1) (2024-12-22) [Full Changelog](https://github.com/elizaOS/eliza/compare/v0.1.6...v0.1.7-alpha.1) @@ -11,6 +149,7 @@ - Why do I have a running Agent on WSL2, but the browser shows don't work? [\#1326](https://github.com/elizaOS/eliza/issues/1326) - http proxy error /agents [\#1322](https://github.com/elizaOS/eliza/issues/1322) - 2:02:20 AM \[vite\] http proxy error: /agents Error: connect ECONNREFUSED ::1:3000 at TCPConnectWrap.afterConnect \[as oncomplete\] \(node:net:1615:16\) \(x12\) [\#1321](https://github.com/elizaOS/eliza/issues/1321) +- "TypeError: response.body?.getReader is not a function" from package/plugin-node [\#1265](https://github.com/elizaOS/eliza/issues/1265) - Unable to run `pnpm install --no-frozen-lockfile` on v0.1.6-alpha.4 [\#1167](https://github.com/elizaOS/eliza/issues/1167) **Merged pull requests:** @@ -240,10 +379,10 @@ - fix: remove docker compose command since Docker file already runs [\#1139](https://github.com/elizaOS/eliza/pull/1139) ([rarepepi](https://github.com/rarepepi)) - feat: add support for handlebars templating engine as an option [\#1136](https://github.com/elizaOS/eliza/pull/1136) ([erise133](https://github.com/erise133)) - feat: allow agents to create/buy/sell tokens on FOMO.fund's bonding curve in plugin-solana [\#1135](https://github.com/elizaOS/eliza/pull/1135) ([0xNerd](https://github.com/0xNerd)) -- fix: fix the name [\#1133](https://github.com/elizaOS/eliza/pull/1133) ([n00b21337](https://github.com/n00b21337)) +- fix: fix the name [\#1133](https://github.com/elizaOS/eliza/pull/1133) ([0xCardinalError](https://github.com/0xCardinalError)) - feat: Add `chatapi.akash.network` to available list of model providers \(FREE LLAMA API ACCESS!\) [\#1131](https://github.com/elizaOS/eliza/pull/1131) ([MbBrainz](https://github.com/MbBrainz)) - fix: discord client duplicate function removal [\#1125](https://github.com/elizaOS/eliza/pull/1125) ([azep-ninja](https://github.com/azep-ninja)) -- fix: add more heplful default agents \(Dobby and C3PO\) [\#1124](https://github.com/elizaOS/eliza/pull/1124) ([n00b21337](https://github.com/n00b21337)) +- fix: add more heplful default agents \(Dobby and C3PO\) [\#1124](https://github.com/elizaOS/eliza/pull/1124) ([0xCardinalError](https://github.com/0xCardinalError)) - fix: Refactor to prevent unnecessary lockfile changes [\#1120](https://github.com/elizaOS/eliza/pull/1120) ([monilpat](https://github.com/monilpat)) - chore: fix broken pnpm lockfile [\#1115](https://github.com/elizaOS/eliza/pull/1115) ([shakkernerd](https://github.com/shakkernerd)) - feat: New docs for community section [\#1114](https://github.com/elizaOS/eliza/pull/1114) ([madjin](https://github.com/madjin)) @@ -383,7 +522,7 @@ - chore: rename intiface plugin [\#955](https://github.com/elizaOS/eliza/pull/955) ([odilitime](https://github.com/odilitime)) - fix: revert llamacloud endpoint change [\#954](https://github.com/elizaOS/eliza/pull/954) ([odilitime](https://github.com/odilitime)) - feat: allow character.json settings models for open router [\#953](https://github.com/elizaOS/eliza/pull/953) ([odilitime](https://github.com/odilitime)) -- chore: 947 add other evm chains to wallet [\#949](https://github.com/elizaOS/eliza/pull/949) ([n00b21337](https://github.com/n00b21337)) +- chore: 947 add other evm chains to wallet [\#949](https://github.com/elizaOS/eliza/pull/949) ([0xCardinalError](https://github.com/0xCardinalError)) - fix: telegram response memory userId to agentId [\#948](https://github.com/elizaOS/eliza/pull/948) ([bmgalego](https://github.com/bmgalego)) - docs: add WSL installation guide [\#946](https://github.com/elizaOS/eliza/pull/946) ([ileana-pr](https://github.com/ileana-pr)) - feat: Supports upload files to AWS S3. [\#941](https://github.com/elizaOS/eliza/pull/941) ([xwxtwd](https://github.com/xwxtwd)) diff --git a/README.md b/README.md index 6b3df0b421b..81e323fef2c 100644 --- a/README.md +++ b/README.md @@ -1,147 +1,150 @@ -# Eliza 🤖 - -
- Eliza Banner -
- -
- -📖 [Documentation](https://elizaos.github.io/eliza/) | 🎯 [Examples](https://github.com/thejoven/awesome-eliza) - -
- -## 🌍 README Translations - -[中文说明](./README_CN.md) | [日本語の説明](./README_JA.md) | [한국어 설명](./README_KOR.md) | [Français](./README_FR.md) | [Português](./README_PTBR.md) | [Türkçe](./README_TR.md) | [Русский](./README_RU.md) | [Español](./README_ES.md) | [Italiano](./README_IT.md) | [ไทย](./README_TH.md) | [Deutsch](./README_DE.md) | [Tiếng Việt](./README_VI.md) | [עִברִית](https://github.com/elizaos/Elisa/blob/main/README_HE.md) | [Tagalog](./README_TG.md) | [Polski](./README_PL.md) - -## 🚩 Overview - -
- Eliza Diagram -
- -## ✨ Features - -- 🛠️ Full-featured Discord, Twitter and Telegram connectors -- 🔗 Support for every model (Llama, Grok, OpenAI, Anthropic, etc.) -- 👥 Multi-agent and room support -- 📚 Easily ingest and interact with your documents -- 💾 Retrievable memory and document store -- 🚀 Highly extensible - create your own actions and clients -- ☁️ Supports many models (local Llama, OpenAI, Anthropic, Groq, etc.) -- 📦 Just works! - -## Video Tutorials - -[AI Agent Dev School](https://www.youtube.com/watch?v=ArptLpQiKfI&list=PLx5pnFXdPTRzWla0RaOxALTSTnVq53fKL) - -## 🎯 Use Cases - -- 🤖 Chatbots -- 🕵️ Autonomous Agents -- 📈 Business Process Handling -- 🎮 Video Game NPCs -- 🧠 Trading - -## 🚀 Quick Start - -### Prerequisites - -- [Python 2.7+](https://www.python.org/downloads/) -- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) -- [pnpm](https://pnpm.io/installation) - -> **Note for Windows Users:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) is required. - -### Use the Starter (Recommended) - -```bash -git clone https://github.com/elizaos/eliza-starter.git -cd eliza-starter -cp .env.example .env -pnpm i && pnpm build && pnpm start -``` -Once the agent is running, You should see the message to run "pnpm start:client" at the end. -Open another terminal and move to same directory and then run below command and follow the URL to chat to your agent. -```bash -pnpm start:client -``` - -Then read the [Documentation](https://elizaos.github.io/eliza/) to learn how to customize your Eliza. - -### Manually Start Eliza (Only recommended if you know what you are doing) - -```bash -# Clone the repository -git clone https://github.com/elizaos/eliza.git - -# Checkout the latest release -# This project iterates fast, so we recommend checking out the latest release -git checkout $(git describe --tags --abbrev=0) -``` - -### Start Eliza with Gitpod - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/elizaos/eliza/tree/main) - -### Edit the .env file - -Copy .env.example to .env and fill in the appropriate values. - -``` -cp .env.example .env -``` - -Note: .env is optional. If you're planning to run multiple distinct agents, you can pass secrets through the character JSON - -### Automatically Start Eliza - -This will run everything to set up the project and start the bot with the default character. - -```bash -sh scripts/start.sh -``` - -### Edit the character file - -1. Open `packages/core/src/defaultCharacter.ts` to modify the default character. Uncomment and edit. - -2. To load custom characters: - - Use `pnpm start --characters="path/to/your/character.json"` - - Multiple character files can be loaded simultaneously -3. Connect with X (Twitter) - - change `"clients": []` to `"clients": ["twitter"]` in the character file to connect with X - -### Manually Start Eliza - -```bash -pnpm i -pnpm build -pnpm start - -# The project iterates fast, sometimes you need to clean the project if you are coming back to the project -pnpm clean -``` - -#### Additional Requirements - -You may need to install Sharp. If you see an error when starting up, try installing it with the following command: - -``` -pnpm install --include=optional sharp -``` - -### Community & contact - -- [GitHub Issues](https://github.com/elizaos/eliza/issues). Best for: bugs you encounter using Eliza, and feature proposals. -- [Discord](https://discord.gg/ai16z). Best for: sharing your applications and hanging out with the community. - -## Contributors - - - - - -## Star History - -[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) +# Eliza 🤖 + +
+ Eliza Banner +
+ +
+ +📖 [Documentation](https://elizaos.github.io/eliza/) | 🎯 [Examples](https://github.com/thejoven/awesome-eliza) + +
+ +## 🌍 README Translations + +[中文说明](./README_CN.md) | [日本語の説明](./README_JA.md) | [한국어 설명](./README_KOR.md) | [Français](./README_FR.md) | [Português](./README_PTBR.md) | [Türkçe](./README_TR.md) | [Русский](./README_RU.md) | [Español](./README_ES.md) | [Italiano](./README_IT.md) | [ไทย](./README_TH.md) | [Deutsch](./README_DE.md) | [Tiếng Việt](./README_VI.md) | [עִברִית](https://github.com/elizaos/Elisa/blob/main/README_HE.md) | [Tagalog](./README_TG.md) | [Polski](./README_PL.md) | [Arabic](./README_AR.md) | [Hungarian](./README_HU.md) + +## 🚩 Overview + +
+ Eliza Diagram +
+ +## ✨ Features + +- 🛠️ Full-featured Discord, Twitter and Telegram connectors +- 🔗 Support for every model (Llama, Grok, OpenAI, Anthropic, etc.) +- 👥 Multi-agent and room support +- 📚 Easily ingest and interact with your documents +- 💾 Retrievable memory and document store +- 🚀 Highly extensible - create your own actions and clients +- ☁️ Supports many models (local Llama, OpenAI, Anthropic, Groq, etc.) +- 📦 Just works! + +## Video Tutorials + +[AI Agent Dev School](https://www.youtube.com/watch?v=ArptLpQiKfI&list=PLx5pnFXdPTRzWla0RaOxALTSTnVq53fKL) + +## 🎯 Use Cases + +- 🤖 Chatbots +- 🕵️ Autonomous Agents +- 📈 Business Process Handling +- 🎮 Video Game NPCs +- 🧠 Trading + +## 🚀 Quick Start + +### Prerequisites + +- [Python 2.7+](https://www.python.org/downloads/) +- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) + +> **Note for Windows Users:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) is required. + +### Use the Starter (Recommended) + +```bash +git clone https://github.com/elizaos/eliza-starter.git +cd eliza-starter +cp .env.example .env +pnpm i && pnpm build && pnpm start +``` + +Once the agent is running, you should see the message to run "pnpm start:client" at the end. +Open another terminal and move to same directory and then run below command and follow the URL to chat to your agent. + +```bash +pnpm start:client +``` + +Then read the [Documentation](https://elizaos.github.io/eliza/) to learn how to customize your Eliza. + +### Manually Start Eliza (Only recommended if you know what you are doing) + +```bash +# Clone the repository +git clone https://github.com/elizaos/eliza.git + +# Checkout the latest release +# This project iterates fast, so we recommend checking out the latest release +git checkout $(git describe --tags --abbrev=0) +``` + +### Start Eliza with Gitpod + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/elizaos/eliza/tree/main) + +### Edit the .env file + +Copy .env.example to .env and fill in the appropriate values. + +``` +cp .env.example .env +``` + +Note: .env is optional. If you're planning to run multiple distinct agents, you can pass secrets through the character JSON +Note: .env is optional. If you're planning to run multiple distinct agents, you can pass secrets through the character JSON + +### Automatically Start Eliza + +This will run everything to set up the project and start the bot with the default character. + +```bash +sh scripts/start.sh +``` + +### Edit the character file + +1. Open `packages/core/src/defaultCharacter.ts` to modify the default character. Uncomment and edit. + +2. To load custom characters: + - Use `pnpm start --characters="path/to/your/character.json"` + - Multiple character files can be loaded simultaneously +3. Connect with X (Twitter) + - change `"clients": []` to `"clients": ["twitter"]` in the character file to connect with X + +### Manually Start Eliza + +```bash +pnpm i +pnpm build +pnpm start + +# The project iterates fast, sometimes you need to clean the project if you are coming back to the project +pnpm clean +``` + +#### Additional Requirements + +You may need to install Sharp. If you see an error when starting up, try installing it with the following command: + +``` +pnpm install --include=optional sharp +``` + +### Community & contact + +- [GitHub Issues](https://github.com/elizaos/eliza/issues). Best for: bugs you encounter using Eliza, and feature proposals. +- [Discord](https://discord.gg/ai16z). Best for: sharing your applications and hanging out with the community. + +## Contributors + + + + + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) diff --git a/README_AR.md b/README_AR.md new file mode 100644 index 00000000000..c2597ebf7bb --- /dev/null +++ b/README_AR.md @@ -0,0 +1,133 @@ +# Eliza 🤖 + +
+ Eliza Banner +
+ +
+ +📖 [التعليمات](https://elizaos.github.io/eliza/) | 🎯 [الأمثلة](https://github.com/thejoven/awesome-eliza) + +
+ +## ✨ ما هي الميزات؟ + +- 🛠️ اتصالات مجهزة بالكامل لديسكورد، تويتر، وتيليغرام. +- 👥 دعم متعدد للوكلاء والغرف. +- 📚 التفاعل بإتقان مع المستندات كما يمكن فحصها بسهولة. +- 💾 ذاكرة قوية قابلة لاسترجاع ما فاتك! وكذلك مساحة كافية للتخزين +- 🚀 سريعة الانتشار بشكل غير مسبوق، هيّا! تفاعل واصنع عملاء خاصين بك. +- ☁️ تدعم العديد من النماذج مثل:- + - لاما (نموذج مفتوح المصدر للذكاء الاصطناعي Llama). + - جروك (نظام ذكاء اصطناعي متقدم Grok). + - أوبن إيه آي (OpenAI نماذج ذكاء اصطناعي مثل ChatGPT). + - أنثروبيك Anthropic وغيرها من النماذج الأخرى! +- 📦 جاهزة للعمل أي وقت وبسهولة! + +## 🎯 كيف ستفيدني؟ + +- 🤖 روبوتات الدردشة. +- 🕵️ وكلاء مستقلون. +- 📈 إدارة الأعمال. +- 🎮 في الجيميز NPCs أو الشخصيات التي يتحكم بها الحاسوب فقط وليس اللاعب. +- 🧠 التداول. + +## 🚀 ابدأ الآن! + +### ماذا عن المتطلبات الأساسية؟ + +- [Python 2.7+](https://www.python.org/downloads/) +- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) + +> **لمتسخدمي الويندوز يجب أن يكون لديك نظام ويندوز الفرعي للينكس:** [WSL 2](https://learn.microsoft.com/de-de/windows/wsl/install-manual). + +### استخدام النسخة المبدئية (موصى به) + +```bash +git clone https://github.com/elizaos/eliza-starter.git + +cp .env.example .env + +pnpm i && pnpm start +``` + +تعلم أكثر عن كيفية تخصيص إليزا من هنا [التعليمات](https://elizaos.github.io/eliza/) + +### إذا كان لديك خبرة بالفعل، يُمكنك تشغيل إليزا يدويًا. + +```bash +# انشئ نسخة +git clone https://github.com/elizaos/eliza.git + +# ألق نظرة على آخر تحديث +# هذا المشروع يتطور بسرعة، لذا، أوصيك باستخدام أحدث إصدار +git checkout $(git describe --tags --abbrev=0) +``` + +### تشغل إليزا مع Gitpod + +[![In Gitpod öffnen](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/elizaos/eliza/tree/main) + +### عدّل ملف .env-Datei + +انسخ ملف .env.example إلى .env واملأ القيم المناسبة. + +``` +cp .env.example .env +``` + +ضع في الإعتبار أن ملف .env اختياري. إذا كنت تخطط لتشغيل عدة وكلاء مختلفين، ابعت الـsecrets من خلال ملف JSON الخاص بالشخصية. + +### تشغيل إليزا تلقائيًا + +هذا الكود لتنفيذ جميع الخطوات اللازمة لإعداد المشروع وكذلك تشغيل الروبوت مع الشخصية الافتراضية. + +```bash +sh scripts/start.sh +``` + +### لتعديل ملف الشخصية + +افتح ملف agent/src/character.ts لتعديل الشخصية الافتراضية. قم بإلغاء التعليق وعدّل عليها. + +لتحميل شخصيات مخصصة + - استخدم الأمر "pnpm start --characters="path/to/your/character.json + - يُمكنك تحميل عدة ملفات للشخصيات في نفس الوقت. + +الاتصال بـ X (تويتر): + - غيّر "clients": [] إلى "clients": ["twitter"] في ملف الشخصية للاتصال بـ X أو تويتر + +### لتشغيل إليزا يدويًا + +```bash +pnpm i +pnpm build +pnpm start + +# المشروع يتطور سريعًا. لذا قد تحتاج إلى تنظيف المشروع إذا قمت بالرجوع إليه بعد فترة. +pnpm clean +``` + +#### المتطلبات الإضافية + +قد تحتاج إلى تثبيت Sharp. إذا واجهت خطأ أثناء بدء التشغيل، جرب استخدام الأمر التالي: + +``` +pnpm install --include=optional sharp +``` + +### المجتمع والدعم + +- في حال إذا واجهت أي مشاكل تتعلق باستخدام إليزا ولتقديم المقترحات [GitHub Issues](https://github.com/elizaos/eliza/issues). +- لمشاركة تطبيقاتك والتفاعل مع المجتمع [Discord](https://discord.gg/ai16z). + +## المُساهمون + + + + + +## تاريخ النجوم + +[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) diff --git a/README_HU.md b/README_HU.md new file mode 100644 index 00000000000..a4f73f2d723 --- /dev/null +++ b/README_HU.md @@ -0,0 +1,133 @@ +# Eliza 🤖 + +
+ Eliza Banner +
+ +
+ +📖 [Dokumentáció](https://elizaos.github.io/eliza/) | 🎯 [Példák](https://github.com/thejoven/awesome-eliza) + +
+ +## ✨ Funkciók + +- 🛠️ Teljes funkcionalitású Discord, Twitter és Telegram összekötők +- 🔗 Támogatás minden modellhez (Llama, Grok, OpenAI, Anthropic, etc.) +- 👥 Többügynök és szobatámogatás +- 📚 Könnyen feldolgozhatja és kezelheti dokumentumait +- 💾 Helyrehozható memória és dokumentumtár +- 🚀 Magas fokú bővíthetőség - hozz létre saját műveleteket és klienseket +- ☁️ Számos modell támogatása (helyi Llama, OpenAI, Anthropic, Groq stb.) +- 📦 Egyszerűen működik! + +## 🎯 Felhasználási területek + +- 🤖 Chatbotok +- 🕵️ Autonóm ügynökök +- 📈 Üzleti folyamatkezelés +- 🎮 Videójáték NPC-k +- 🧠 Kereskedés + +## 🚀 Gyors kezdés + +### Előfeltételek + +- [Python 2.7+](https://www.python.org/downloads/) +- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) + +> **Megjegyzés Windows-felhasználóknak:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) szükséges. + +### Használja az Indítót (Ajánlott) + +```bash +git clone https://github.com/elizaos/eliza-starter.git +cd eliza-starter +cp .env.example .env +pnpm i && pnpm build && pnpm start +``` +Miután az ügynök elindult, a folyamat végén egy üzenetet kell látnod, amely arra utal, hogy futtasd a "pnpm start:client" parancsot. +Nyiss egy másik terminált, navigálj ugyanabba a könyvtárba, és futtasd az alábbi parancsot, majd kövesd az URL-t, hogy kommunikálhass az ügynököddel: +```bash +pnpm start:client +``` + +Ezután olvasd el a [Dokumentációt](https://elizaos.github.io/eliza/) hogy megtanuld, hogyan testreszabhatod Elizát. + +### Eliza manuális indítása (Csak akkor ajánlott, ha pontosan tudod, mit csinálsz) + +```bash +# Klónozd a repót +git clone https://github.com/elizaos/eliza.git + +# Válts a legfrissebb kiadásra +# A projekt gyorsan fejlődik, ezért ajánlott a legfrissebb kiadásra váltani +git checkout $(git describe --tags --abbrev=0) +``` + +### Eliza indítása Gitpoddal + +[![Megnyitás Gitpodban](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/elizaos/eliza/tree/main) + +### Szerkezd a .env fájlt + +Másold a .env.example fájlt .env néven, és töltsd ki a megfelelő értékekkel. + +``` +cp .env.example .env +``` + +Megjegyzés: A .env fájl opcionális. Ha több különálló ügynököt szeretnél futtatni, a titkos adatokat a karakter JSON-on keresztül is megadhatod. + +### Eliza automatikus indítása + +Ez a parancs mindent beállít a projekthez, és elindítja a botot az alapértelmezett karakterrel. + +```bash +sh scripts/start.sh +``` + +### Karakterfájl szerkesztése +`` +1. Nyisd meg a `packages/core/src/defaultCharacter.ts` fájlt, hogy módosítsd az alapértelmezett karaktert. Kommentezd ki és szerkeszd. + +2. Egyedi karakterek betöltése: + - Használhatod a következőt: `pnpm start --characters="path/to/your/character.json"` + - Több karakterfájl is betölthető egyszerre. +3. Kapcsolódás X-hez (Twitter) + - Módosítsd a `"clients": []` részt `"clients": ["twitter"]` -re a karakterfájlban, hogy csatlakozz az X-hez + +### Eliza manuális indítása + +```bash +pnpm i +pnpm build +pnpm start + +# A projekt gyorsan fejlődik. Néha meg kell tisztítania a projektet, amikor egy idő után újra visszatérsz. +pnpm clean +``` + +#### További követelmények + +Előfordulhat, hogy telepítened kell a Sharpot. Ha hibát látsz az indításkor, próbáld meg telepíteni az alábbi paranccsal: + +``` +pnpm install --include=optional sharp +``` + +### Közösség és kapcsolattartás + +- [GitHub Issues](https://github.com/elizaos/eliza/issues). Ideális hibák jelentésére és új funkciók javaslatára. +- [Discord](https://discord.gg/ai16z). BTökéletes hely az alkalmazásaid megosztására és a közösséggel való kapcsolatépítésre. + +## Közreműködők + + + + + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) diff --git a/README_KOR.md b/README_KOR.md index eba3cc4073f..ebbe2fb29fa 100644 --- a/README_KOR.md +++ b/README_KOR.md @@ -12,14 +12,18 @@ ## ✨ 기능 -- 🛠 SNS 지원: 디스코드, 트위터, 텔레그램 모두 지원됩니다. -- 🔗 다양한 모델 지원 (Llama, Grok, OpenAI, Anthropic 등) -- 👥 다중 지원: 다중 에이전트 및 채팅방이 지원됩니다. -- 📚 높은 유연성: 개발자가 쉽게 데이터를 추가하고, 이를 활용해 다양한 기능을 만들 수 있습니다. -- 💾 검색 지원: 당신의 데이터와 작업을 쉽게 찾아볼 수 있도록, 검색 기능을 지원합니다. -- 🚀 높은 확장성: 자신의 동작과 클라이언트를 만들어 기능을 확장할 수 있습니다. -- ☁️ 다양한 AI 모델 지원: local Llama, OpenAI, Anthropic, Groq 등 다양한 AI 모델을 지원합니다 -- 📦 즐겁게 개발해 봐요! +- 🛠 SNS 통합 지원: Discord, Twitter, Telegram을 모두 지원합니다. +- 🔗 다양한 모델 호환: Llama, Grok, OpenAI, Anthropic 등 다양한 AI 모델을 지원합니다. +- 👥 다중 에이전트 및 채팅방 지원: 여러 에이전트와 채팅방을 손쉽게 관리할 수 있습니다. +- 📚 문서 처리 및 상호작용: 데이터를 손쉽게 추가하고 활용할 수 있는 기능을 제공합니다. +- 💾 검색 가능한 메모리 및 문서 저장소: 데이터를 빠르고 간편하게 검색하고 액세스할 수 있습니다. +- 🚀 높은 확장성: 사용자 정의 동작 및 클라이언트를 만들어 기능을 확장할 수 있습니다. +- ☁️ 다양한 AI 모델 지원: Local Llama, OpenAI, Anthropic, Groq 등과 호환됩니다. +- 📦 쉽게 시작하세요: 바로 작동하며 손쉽게 활용할 수 있습니다! + +## 비디오 튜토리얼 + +[AI Agent Dev School](https://www.youtube.com/watch?v=ArptLpQiKfI&list=PLx5pnFXdPTRzWla0RaOxALTSTnVq53fKL) ## 🎯 eliza로 어떤걸 만들 수 있을까요? @@ -37,21 +41,25 @@ - [Node.js 23.3+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) - [pnpm](https://pnpm.io/installation) -> **Windows 사용자 참고:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) 필요. +> **Windows 사용자 참고:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual)가 필요합니다. ### Starter 사용 (권장) ```bash git clone https://github.com/elizaos/eliza-starter.git - +cd eliza-starter cp .env.example .env - -pnpm i && pnpm start +pnpm i && pnpm build && pnpm start +``` +에이전트가 실행되면 마지막에 "pnpm start:client"를 실행하라는 메시지가 표시됩니다. +다른 터미널을 열고 같은 디렉토리로 이동한 뒤 아래 명령어를 실행하세요. 표시된 URL을 열어 에이전트와 대화하세요. +```bash +pnpm start:client ``` -[문서](https://elizaos.github.io/eliza/)를 참고하여 Eliza를 커스마이징 방법을 확인하세요. +[문서](https://elizaos.github.io/eliza/)를 참고하여 Eliza를 커스터마이징하는 방법을 배워보세요. -### 직접 실행하기 (경험자만 권장) +### Eliza를 수동으로 실행하기 (경험자에게만 권장) ```bash # 리포지토리 클론 @@ -107,16 +115,16 @@ pnpm clean #### 추가 요구 사항 -시작 시 에러가 발생하면 Sharp를 설치해야 할 수 있습니다. 아래 명령어를 사용하여 설치하세요: +시작할 때 오류가 발생하면 Sharp를 설치해야 할 수도 있습니다. 아래 명령어를 실행하여 설치하세요: ``` pnpm install --include=optional sharp ``` -### Community & contact +### 커뮤니티 & 문의 -- [Github Issues](https://github.com/elizaos/eliza/issues). 용도: Eliza 사용 중 발견된 버그 리포트, 기능 제안. -- [Discord](https://discord.gg/ai16z). 용도: 애플리케이션 공유 및 커뮤니티 활동. +- [Github Issues](https://github.com/elizaos/eliza/issues). liza 사용 중 발견된 버그 보고 및 기능 제안에 적합합니다. +- [Discord](https://discord.gg/ai16z). 애플리케이션 공유 및 커뮤니티와의 소통에 적합합니다. ## 컨트리뷰터 diff --git a/agent/package.json b/agent/package.json index 087fd2946db..2d553874e4c 100644 --- a/agent/package.json +++ b/agent/package.json @@ -61,6 +61,7 @@ "@elizaos/plugin-3d-generation": "workspace:*", "@elizaos/plugin-fuel": "workspace:*", "@elizaos/plugin-avalanche": "workspace:*", + "@elizaos/plugin-web-search": "workspace:*", "readline": "1.3.0", "ws": "8.18.0", "yargs": "17.7.2" diff --git a/agent/src/index.ts b/agent/src/index.ts index d22c4b8fb95..c9bc95ebfeb 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -7,6 +7,7 @@ import { LensAgentClient } from "@elizaos/client-lens"; import { SlackClientInterface } from "@elizaos/client-slack"; import { TelegramClientInterface } from "@elizaos/client-telegram"; import { TwitterClientInterface } from "@elizaos/client-twitter"; +import { webSearchPlugin } from "@elizaos/plugin-web-search"; import { AgentRuntime, CacheManager, @@ -26,6 +27,7 @@ import { CacheStore, Client, ICacheManager, + parseBooleanFromText, } from "@elizaos/core"; import { RedisClient } from "@elizaos/adapter-redis"; import { zgPlugin } from "@elizaos/plugin-0g"; @@ -63,6 +65,7 @@ import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era"; import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm"; import { abstractPlugin } from "@elizaos/plugin-abstract"; import { avalanchePlugin } from "@elizaos/plugin-avalanche"; +import { webSearchPlugin } from "@elizaos/plugin-web-search"; import Database from "better-sqlite3"; import fs from "fs"; import path from "path"; @@ -508,7 +511,8 @@ export async function createAgent( } let goatPlugin: any | undefined; - if (getSecret(character, "EVM_PROVIDER_URL")) { + + if (getSecret(character, "EVM_PRIVATE_KEY")) { goatPlugin = await createGoatPlugin((secret) => getSecret(character, secret) ); @@ -523,10 +527,15 @@ export async function createAgent( // character.plugins are handled when clients are added plugins: [ bootstrapPlugin, + parseBooleanFromText(getSecret(character, "ENABLE_WEBSEARCH")) === + true + ? webSearchPlugin + : null, getSecret(character, "CONFLUX_CORE_PRIVATE_KEY") ? confluxPlugin : null, nodePlugin, + getSecret(character, "TAVILY_API_KEY") ? webSearchPlugin : null, getSecret(character, "SOLANA_PUBLIC_KEY") || (getSecret(character, "WALLET_PUBLIC_KEY") && !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x")) @@ -587,7 +596,7 @@ export async function createAgent( getSecret(character, "COINBASE_NOTIFICATION_URI") ? webhookPlugin : null, - getSecret(character, "EVM_PROVIDER_URL") ? goatPlugin : null, + goatPlugin, getSecret(character, "ABSTRACT_PRIVATE_KEY") ? abstractPlugin : null, diff --git a/characters/c3po.character.json b/characters/c3po.character.json index dbc1abcb943..9b4d2ea49d0 100644 --- a/characters/c3po.character.json +++ b/characters/c3po.character.json @@ -94,5 +94,37 @@ "Protocol-minded", "Formal", "Loyal" - ] -} \ No newline at end of file + ], + "twitterSpaces": { + "maxSpeakers": 2, + + "topics": [ + "Blockchain Trends", + "AI Innovations", + "Quantum Computing" + ], + + "typicalDurationMinutes": 45, + + "idleKickTimeoutMs": 300000, + + "minIntervalBetweenSpacesMinutes": 1, + + "businessHoursOnly": false, + + "randomChance": 1, + + "enableIdleMonitor": true, + + "enableSttTts": true, + + "enableRecording": false, + + "voiceId": "21m00Tcm4TlvDq8ikWAM", + "sttLanguage": "en", + "gptModel": "gpt-3.5-turbo", + "systemPrompt": "You are a helpful AI co-host assistant.", + + "speakerMaxDurationMs": 240000 + } +} diff --git a/docs/README.md b/docs/README.md index f3d0e262b5d..5e4da17b9a1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,16 +1,16 @@ # Eliza - Multi-agent simulation framework -# https://github.com/elizaos/eliza +# https://github.com/elizaOS/eliza # Visit https://eliza.builders for support ## 🌍 README Translations -[中文说明](./README_CN.md) | [Deutsch](./README_DE.md) | [Français](./README_FR.md) | [ไทย](./README_TH.md) +[中文说明](./README_CN.md) | [Deutsch](./README_DE.md) | [Français](./README_FR.md) | [ไทย](./README_TH.md) | [Español](README_ES.md) # dev branch -Eliza Banner +Eliza Banner _As seen powering [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)_ diff --git a/docs/README_ES.md b/docs/README_ES.md new file mode 100644 index 00000000000..419ca205ee7 --- /dev/null +++ b/docs/README_ES.md @@ -0,0 +1,179 @@ +# Eliza - Framework de simulación multi-agente + +# https://github.com/elizaOS/eliza + +# Visita https://eliza.builders para ayuda + +## 🌍 Traducciones del README + +[中文说明](./README_CN.md) | [Deutsch](./README_DE.md) | [Français](./README_FR.md) | [ไทย](./README_TH.md) | [English](README.md) + +# dev branch + +Eliza Banner + +_Respaldado por [@DegenSpartanAI](https://x.com/degenspartanai) y [@MarcAIndreessen](https://x.com/pmairca)_ + +- Framework de simulación multi-agente +- Añade tantos caracteres únicos como quieras con [characterfile](https://github.com/elizaOS/characterfile/) +- Conectores Discord y Twitter con todas las funciones y compatibilidad con canales de voz de Discord. +- Sistema de memoria RAG completo para conversaciones y documentos. +- Capacidad para leer enlaces y archivos PDF, transcribir audio y vídeos, resumir conversaciones, etc. +- Gran capacidad de ampliación: cree sus propias acciones y clientes para ampliar las posibilidades de Eliza. +- Admite modelos locales y de código abierto (configurado por defecto con Nous Hermes Llama 3.1B). +- Compatible con OpenAI para la inferencia en la nube en un dispositivo ligero. +- Modo "Ask Claude" para llamar a Claude en consultas más complejas +- 100% Typescript + +# Primeros pasos + +**Prerrequisitos (OBLIGATORIOS):** + +- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) + +### Edita el archivo .env + +- Copie .env.example en .env y rellene los valores apropiados +- Edita las variables de entorno de TWITTER para añadir el nombre de usuario y la contraseña de tu bot + +### Edita el archivo del character + +- Mira el archivo `src/core/defaultCharacter.ts` - tú puedes modificarlo +- También puede cargar caracteres con el comando `pnpm start --characters="path/to/your/character.json"` y ejecutar múltiples bots al mismo tiempo. + +Después de configurar el archivo .env y el archivo de caracteres, puedes iniciar el bot con el siguiente comando: + +``` +pnpm i +pnpm start +``` + +# Personalizando Eliza + +### Añadir acciones personalizadas + +Para evitar conflictos de git en el directorio core, recomendamos añadir acciones personalizadas a un directorio `custom_actions` y luego añadirlas al archivo `elizaConfig.yaml`. Consulte el archivo `elizaConfig.example.yaml` para ver un ejemplo. + +## Ejecutando con diferentes modelos + +### Ejecuta con Llama + +Tú puedes ejecutar los modelos Llama 70B o 405B configurando el ambiente `XAI_MODEL` en la variable `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` o `meta-llama/Meta-Llama-3.1-405B-Instruct` + +### Ejecuta con Grok + +Tú puedes ejecutar modelos Grok configurando el ambiente `XAI_MODEL` en la variable `grok-beta` + +### Ejecuta con OpenAI + +Tú puedes ejecutar modelos OpenAI configurando el ambiente `XAI_MODEL` en la variable `gpt-4-mini` o `gpt-4o` + +## Requerimientos adicionales + +Puede que necesite instalar Sharp. Si aparece un error al arrancar, intente instalarlo con el siguiente comando: + +``` +pnpm install --include=optional sharp +``` + +# Configuración del entorno + +Tendrás que añadir variables de entorno a tu archivo .env para conectarte a distintas plataformas: + +``` +# Variables de entorno necesarias +DISCORD_APPLICATION_ID= +DISCORD_API_TOKEN= # Bot token +OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk- +ELEVENLABS_XI_API_KEY= # API key from elevenlabs + +# CONFIGURACION DE ELEVENLABS +ELEVENLABS_MODEL_ID=eleven_multilingual_v2 +ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM +ELEVENLABS_VOICE_STABILITY=0.5 +ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9 +ELEVENLABS_VOICE_STYLE=0.66 +ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false +ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4 +ELEVENLABS_OUTPUT_FORMAT=pcm_16000 + +TWITTER_DRY_RUN=false +TWITTER_USERNAME= # Account username +TWITTER_PASSWORD= # Account password +TWITTER_EMAIL= # Account email + +X_SERVER_URL= +XAI_API_KEY= +XAI_MODEL= + + +# Para preguntarle cosas a Claude +ANTHROPIC_API_KEY= + +WALLET_SECRET_KEY=EXAMPLE_WALLET_SECRET_KEY +WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY + +BIRDEYE_API_KEY= + +SOL_ADDRESS=So11111111111111111111111111111111111111112 +SLIPPAGE=1 +RPC_URL=https://api.mainnet-beta.solana.com +HELIUS_API_KEY= + + +## Telegram +TELEGRAM_BOT_TOKEN= + +TOGETHER_API_KEY= +``` + +# Configuración de la inferencia local + +### Configuración CUDA + +Si tienes una GPU NVIDIA, puedes instalar CUDA para acelerar drásticamente la inferencia local. + +``` +pnpm install +npx --no node-llama-cpp source download --gpu cuda +``` + +Asegúrese de que ha instalado el kit de herramientas CUDA, incluidos cuDNN y cuBLAS. + +### Ejecutando localmente + +Añade XAI_MODEL y ajústalo a una de las opciones anteriores de [Run with Llama](#run-with-llama) - puedes dejar X_SERVER_URL y XAI_API_KEY en blanco, descarga el modelo de huggingface y lo consulta localmente. + +# Clientes + +## Discord Bot + +Para obtener ayuda con la configuración de su Bot Discord, echa un vistazo aquí: https://discordjs.guide/preparations/setting-up-a-bot-application.html + +# Desarrollo + +## Pruebas + +Para ejecutar el conjunto de pruebas: + +```bash +pnpm test # Ejecutar las pruebas una vez +pnpm test:watch # Ejecutar pruebas en modo vigilancia +``` + +Para pruebas database-specific: + +```bash +pnpm test:sqlite # Ejecuta pruebas con SQLite +pnpm test:sqljs # Ejecuta pruebas con with SQL.js +``` + +Las pruebas se escriben usando Jest y se encuentran en los archivos `src/**/*.test.ts`. El entorno de pruebas está configurado para: + +- Cargar variables de entorno desde `.env.test`. +- Uso de un tiempo de espera de 2 minutos para pruebas de larga duración +- Compatibilidad con módulos ESM +- Ejecutar pruebas en secuencia (--runInBand) + +Para crear nuevas pruebas, añade un archivo `.test.ts` junto al código que estás probando. diff --git a/docs/api/classes/AgentRuntime.md b/docs/api/classes/AgentRuntime.md index 5bdbb34eefe..dc4c9794205 100644 --- a/docs/api/classes/AgentRuntime.md +++ b/docs/api/classes/AgentRuntime.md @@ -235,6 +235,13 @@ The model to use for generateText. The model to use for generateImage. + +### imageVisionModelProvider + +> **imageVisionModelProvider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +The model to use for describing inputImages. + #### Implementation of [`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`imageModelProvider`](../interfaces/IAgentRuntime.md#imageModelProvider) diff --git a/docs/api/type-aliases/Character.md b/docs/api/type-aliases/Character.md index 5185e516936..3903ed8a823 100644 --- a/docs/api/type-aliases/Character.md +++ b/docs/api/type-aliases/Character.md @@ -44,6 +44,17 @@ Model provider to use Image model provider to use, if different from modelProvider + + +### imageVisionModelProvider? + +> `optional` **imageVisionModelProvider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +Image Vision model provider to use, if different from modelProvider + +imageVisionModelProvider + + ### modelEndpointOverride? > `optional` **modelEndpointOverride**: `string` diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-14.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-14.md index 4d49b71fdd5..4296c9d64bd 100644 --- a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-14.md +++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-14.md @@ -1,7 +1,7 @@ # memes-and-marketing 2024-11-14 ## Summary - In the provided chat excerpt, participants engaged in discussions related to marketing memes with a focus on creating an animated version of Eliza from GitHub repository 'https://github.com/ai16z/eliza'. The team considered updating LinkedIn profiles and discussed the potential for a new preview card featuring Eliza. A humorous exchange about driving backwards led to laughter, while DorianD reminded everyone to update their professional online presence. Jin proposed an official position of Director of Memetic Warfare with Trump memes, which was met with amusement. The community celebrated the quality of work on 'bord.eth' and shared a link featuring Eliza in a meme format from Tenor. Knockerton welcomed everyone to continue building together, marking a milestone for the group's collaborative spirit. + In the provided chat excerpt, participants engaged in discussions related to marketing memes with a focus on creating an animated version of Eliza from GitHub repository 'https://github.com/elizaOS/eliza'. The team considered updating LinkedIn profiles and discussed the potential for a new preview card featuring Eliza. A humorous exchange about driving backwards led to laughter, while DorianD reminded everyone to update their professional online presence. Jin proposed an official position of Director of Memetic Warfare with Trump memes, which was met with amusement. The community celebrated the quality of work on 'bord.eth' and shared a link featuring Eliza in a meme format from Tenor. Knockerton welcomed everyone to continue building together, marking a milestone for the group's collaborative spirit. ## FAQ - When did astrid animate the meme from the repository? diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-24.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-24.md index 62997cad525..f76bc0cf9a7 100644 --- a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-24.md +++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-24.md @@ -9,11 +9,11 @@ - Are you available to share your screen for the presentation preparation? - YoungPhlo: Yes, after some initial confusion about repository locations and tools (GitHub Desktop vs CLI), agreed to use GitHub Desktop as it's better suited for beginners. - What should be used when creating a pull request on GitHub? - - YoungPhlo: Suggested using the "Create draft pull request" option, referencing an existing PR (`ai16z/eliza/pull/580`) as an example. + - YoungPhlo: Suggested using the "Create draft pull request" option, referencing an existing PR (`elizaOS/eliza/pull/580`) as an example. ## Who Helped Who - YoungPhlo helped Jin with setting up a repository for presentation documents by suggesting to fork from GitHub.com or use gh-cli, ultimately agreeing on using GitHub Desktop as it's better for beginners. -- YoungPhlo assisted Jin in deciding between "Create pull request" and "Create draft pull request" options when preparing documentation updates, settling on the former with a specific reference to `ai16z/eliza/pull/580`. +- YoungPhlo assisted Jin in deciding between "Create pull request" and "Create draft pull request" options when preparing documentation updates, settling on the former with a specific reference to `elizaOS/eliza/pull/580`. ## Action Items - Technical Tasks diff --git a/docs/community/Notes/lore.md b/docs/community/Notes/lore.md index dd9065167bd..a3d61667ff0 100644 --- a/docs/community/Notes/lore.md +++ b/docs/community/Notes/lore.md @@ -127,7 +127,7 @@ What's the difference between degenai and ai16z? 4. Big Names in Play: It’s a collaboration between two AI agents modeled after the GOAT investors, + the rest of us -5. Same Framework: Both projects use the same tech framework https://github.com/ai16z/eliza +5. Same Framework: Both projects use the same tech framework https://github.com/elizaOS/eliza Sorta betting on an individual AI (degenspartan) vs a fund (ai16z). AI Marc might listen to @degenspartanai moreso than the holders, so it's like an influence game diff --git a/docs/community/ai-dev-school/nader_tutorial_10min.md b/docs/community/ai-dev-school/nader_tutorial_10min.md index 7784bc8a2ef..cb17552d129 100644 --- a/docs/community/ai-dev-school/nader_tutorial_10min.md +++ b/docs/community/ai-dev-school/nader_tutorial_10min.md @@ -4,7 +4,7 @@ sidebar_position: 2 # Creating an AI Agent with Your Own Personality -In this tutorial, we'll explore how to create an AI agent that embodies your own personality using data from your Twitter archive, videos, markdown files, and PDFs. We'll leverage the [Characterfile](https://github.com/ai16z/characterfile) repo and [Eliza framework](https://github.com/ai16z/eliza) to generate and integrate the character data. +In this tutorial, we'll explore how to create an AI agent that embodies your own personality using data from your Twitter archive, videos, markdown files, and PDFs. We'll leverage the [Characterfile](https://github.com/ai16z/characterfile) repo and [Eliza framework](https://github.com/elizaOS/eliza) to generate and integrate the character data. Video: https://youtu.be/uouSdtcWXTQ?si=cm13L4T7DQUMXd0C @@ -50,7 +50,7 @@ Video: https://youtu.be/uouSdtcWXTQ?si=cm13L4T7DQUMXd0C 1. Clone Eliza repo and check out latest version: ```bash - git clone https://github.com/ai16z/eliza.git + git clone https://github.com/elizaOS/eliza.git git checkout ``` diff --git a/docs/community/ai-dev-school/nader_tutorial_15min.md b/docs/community/ai-dev-school/nader_tutorial_15min.md index 7263608c435..28caac3108d 100644 --- a/docs/community/ai-dev-school/nader_tutorial_15min.md +++ b/docs/community/ai-dev-school/nader_tutorial_15min.md @@ -18,7 +18,7 @@ Video: https://youtu.be/6PZVwNTl5hI?si=0zB3OvYU4KiRQTxI 1. Clone the Eliza repo and check out the latest version: ```bash - git clone https://github.com/ai16z/eliza.git + git clone https://github.com/elizaOS/eliza.git cd eliza git checkout ``` @@ -99,6 +99,6 @@ Video: https://youtu.be/6PZVwNTl5hI?si=0zB3OvYU4KiRQTxI - [Code Repo](https://github.com/dabit3/ai-agent-cognitivedriftt) - [Eliza Docs](https://ai16z.github.io/eliza/) - [Example Character File](https://github.com/ai16z/characterfile/blob/main/examples/example.character.json) -- [Default Character](https://github.com/ai16z/eliza/blob/8f4e2643dcb1a5aafb25267e80d22e7e12fd044a/packages/core/src/defaultCharacter.ts#L4) +- [Default Character](https://github.com/elizaOS/eliza/blob/8f4e2643dcb1a5aafb25267e80d22e7e12fd044a/packages/core/src/defaultCharacter.ts#L4) - [Environment Variables](https://gist.github.com/dabit3/7602e97f3abe0a93bdd84dc250f23021) diff --git a/docs/docs/core/agents.md b/docs/docs/core/agents.md index 8c923df4c84..29cd6fc1a17 100644 --- a/docs/docs/core/agents.md +++ b/docs/docs/core/agents.md @@ -90,7 +90,7 @@ const runtime = new AgentRuntime({ ## State Management -This section should cover how agents manage and update state, with a focus on initial state composition and updating methods. The runtime maintains state through the [State](/api/interfaces/state) interface: +This section covers how agents manage and update state, with a focus on initial state composition and updating methods. The runtime maintains state through the [State](/api/interfaces/state) interface: ```typescript interface State { diff --git a/docs/docs/faq.md b/docs/docs/faq.md index 7071cda3b6b..26792342998 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -28,6 +28,7 @@ Eliza's architecture consists of several interconnected components: - **Agents**: These are the core elements that represent individual AI personalities. Agents operate within a runtime environment and interact with various platforms. - **Actions**: Actions are predefined behaviors that agents can execute in response to messages, enabling them to perform tasks and interact with external systems. - **Clients**: Clients act as interfaces between agents and specific platforms, such as Discord, Twitter, and Telegram. They handle platform-specific message formats and communication protocols. +- **Plugins**: Plugins are modular way to extend the core functionality with additional features, actions, evaluators, and providers. They are self-contained modules that can be easily added or removed to customize your agent's capabilities - **Providers**: Providers supply agents with contextual information, including time awareness, user relationships, and data from external sources. - **Evaluators**: These modules assess and extract information from conversations, helping agents track goals, build memory, and maintain context awareness. - **Character Files**: These JSON files define the personality, knowledge, and behavior of each AI agent. diff --git a/docs/docs/guides/local-development.md b/docs/docs/guides/local-development.md index 4f46f967fea..d988dd1b83b 100644 --- a/docs/docs/guides/local-development.md +++ b/docs/docs/guides/local-development.md @@ -447,4 +447,4 @@ npx knowledge2character - [Configuration Guide](./configuration.md) for setup details - [Advanced Usage](./advanced.md) for complex features - [API Documentation](/api) for complete API reference -- [Contributing Guide](../community/contributing.md) for contribution guidelines +- [Contributing Guide](../contributing.md) for contribution guidelines diff --git a/package.json b/package.json index 983a479390b..36f419f8eb2 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,8 @@ "typedoc": "0.26.11", "typescript": "5.6.3", "vite": "5.4.11", - "vitest": "2.1.5" + "vitest": "2.1.5", + "viem": "2.21.58" }, "pnpm": { "overrides": { diff --git a/packages/adapter-postgres/src/index.ts b/packages/adapter-postgres/src/index.ts index 8a3eb14f2d2..06fc9246c72 100644 --- a/packages/adapter-postgres/src/index.ts +++ b/packages/adapter-postgres/src/index.ts @@ -210,21 +210,11 @@ export class PostgresDatabaseAdapter await client.query("SET app.use_gaianet_embedding = 'false'"); } - // Check if schema already exists (check for a core table) - const { rows } = await client.query(` - SELECT EXISTS ( - SELECT FROM information_schema.tables - WHERE table_name = 'rooms' - ); - `); - - if (!rows[0].exists) { - const schema = fs.readFileSync( - path.resolve(__dirname, "../schema.sql"), - "utf8" - ); - await client.query(schema); - } + const schema = fs.readFileSync( + path.resolve(__dirname, "../schema.sql"), + "utf8" + ); + await client.query(schema); await client.query("COMMIT"); } catch (error) { diff --git a/packages/adapter-supabase/schema.sql b/packages/adapter-supabase/schema.sql index fd7ec2287d5..25eb0dcae85 100644 --- a/packages/adapter-supabase/schema.sql +++ b/packages/adapter-supabase/schema.sql @@ -97,7 +97,7 @@ CREATE VIEW memories AS UNION ALL SELECT * FROM memories_1024 UNION ALL - SELECT * FROM memories_768; + SELECT * FROM memories_768 UNION ALL SELECT * FROM memories_384; @@ -163,4 +163,4 @@ CREATE INDEX idx_participants_user ON participants("userId"); CREATE INDEX idx_participants_room ON participants("roomId"); CREATE INDEX idx_relationships_users ON relationships("userA", "userB"); -COMMIT; \ No newline at end of file +COMMIT; diff --git a/packages/client-direct/src/api.ts b/packages/client-direct/src/api.ts index 8c786c33965..186ec339372 100644 --- a/packages/client-direct/src/api.ts +++ b/packages/client-direct/src/api.ts @@ -13,6 +13,7 @@ import { import { TeeLogQuery, TeeLogService } from "@elizaos/plugin-tee-log"; import { REST, Routes } from "discord.js"; import { DirectClient } from "."; +import { stringToUuid } from "@elizaos/core"; export function createApiRouter( agents: Map, @@ -123,6 +124,67 @@ export function createApiRouter( } }); + router.get("/agents/:agentId/:roomId/memories", async (req, res) => { + const agentId = req.params.agentId; + const roomId = stringToUuid(req.params.roomId); + let runtime = agents.get(agentId); + + // if runtime is null, look for runtime with the same name + if (!runtime) { + runtime = Array.from(agents.values()).find( + (a) => a.character.name.toLowerCase() === agentId.toLowerCase() + ); + } + + if (!runtime) { + res.status(404).send("Agent not found"); + return; + } + + try { + const memories = await runtime.messageManager.getMemories({ + roomId, + }); + const response = { + agentId, + roomId, + memories: memories.map((memory) => ({ + id: memory.id, + userId: memory.userId, + agentId: memory.agentId, + createdAt: memory.createdAt, + content: { + text: memory.content.text, + action: memory.content.action, + source: memory.content.source, + url: memory.content.url, + inReplyTo: memory.content.inReplyTo, + attachments: memory.content.attachments?.map( + (attachment) => ({ + id: attachment.id, + url: attachment.url, + title: attachment.title, + source: attachment.source, + description: attachment.description, + text: attachment.text, + contentType: attachment.contentType, + }) + ), + }, + embedding: memory.embedding, + roomId: memory.roomId, + unique: memory.unique, + similarity: memory.similarity, + })), + }; + + res.json(response); + } catch (error) { + console.error("Error fetching memories:", error); + res.status(500).json({ error: "Failed to fetch memories" }); + } + }); + router.get("/tee/agents", async (req, res) => { try { const allAgents = []; diff --git a/packages/client-direct/src/index.ts b/packages/client-direct/src/index.ts index 0a0844a949f..9047037e297 100644 --- a/packages/client-direct/src/index.ts +++ b/packages/client-direct/src/index.ts @@ -199,7 +199,6 @@ export class DirectClient { if (req.file) { const filePath = path.join( process.cwd(), - "agent", "data", "uploads", req.file.filename diff --git a/packages/client-lens/package.json b/packages/client-lens/package.json index 93bb1f15457..24fcb4e26d7 100644 --- a/packages/client-lens/package.json +++ b/packages/client-lens/package.json @@ -8,8 +8,7 @@ "@elizaos/core": "workspace:*", "@lens-protocol/client": "2.2.0", "@lens-protocol/metadata": "1.2.0", - "axios": "^1.7.9", - "viem": "^2.13.8" + "axios": "^1.7.9" }, "devDependencies": { "tsup": "^8.3.5" diff --git a/packages/client-twitter/package.json b/packages/client-twitter/package.json index 08f2c818688..5a255a78ed4 100644 --- a/packages/client-twitter/package.json +++ b/packages/client-twitter/package.json @@ -6,7 +6,7 @@ "types": "dist/index.d.ts", "dependencies": { "@elizaos/core": "workspace:*", - "agent-twitter-client": "0.0.17", + "agent-twitter-client": "0.0.18", "glob": "11.0.0", "zod": "3.23.8" }, diff --git a/packages/client-twitter/src/base.ts b/packages/client-twitter/src/base.ts index ed4f8481496..85267da722e 100644 --- a/packages/client-twitter/src/base.ts +++ b/packages/client-twitter/src/base.ts @@ -288,12 +288,13 @@ export class ClientBase extends EventEmitter { hashtags: tweet.hashtags ?? tweet.legacy?.entities.hashtags, mentions: tweet.mentions ?? tweet.legacy?.entities.user_mentions, - photos: - tweet.photos ?? - tweet.legacy?.entities.media?.filter( + photos: tweet.legacy?.entities?.media?.filter( (media) => media.type === "photo" - ) ?? - [], + ).map(media => ({ + id: media.id_str, + url: media.media_url_https, // Store media_url_https as url + alt_text: media.alt_text + })) || [], thread: tweet.thread || [], urls: tweet.urls ?? tweet.legacy?.entities.urls, videos: @@ -331,10 +332,13 @@ export class ClientBase extends EventEmitter { permanentUrl: `https://twitter.com/${tweet.core?.user_results?.result?.legacy?.screen_name}/status/${tweet.rest_id}`, hashtags: tweet.legacy?.entities?.hashtags || [], mentions: tweet.legacy?.entities?.user_mentions || [], - photos: - tweet.legacy?.entities?.media?.filter( - (media) => media.type === "photo" - ) || [], + photos: tweet.legacy?.entities?.media?.filter( + (media) => media.type === "photo" + ).map(media => ({ + id: media.id_str, + url: media.media_url_https, // Store media_url_https as url + alt_text: media.alt_text + })) || [], thread: tweet.thread || [], urls: tweet.legacy?.entities?.urls || [], videos: @@ -354,7 +358,7 @@ export class ClientBase extends EventEmitter { // Sometimes this fails because we are rate limited. in this case, we just need to return an empty array // if we dont get a response in 5 seconds, something is wrong const timeoutPromise = new Promise((resolve) => - setTimeout(() => resolve({ tweets: [] }), 10000) + setTimeout(() => resolve({ tweets: [] }), 15000) ); try { diff --git a/packages/client-twitter/src/environment.ts b/packages/client-twitter/src/environment.ts index 21b40e6d1af..2c54cb0f92c 100644 --- a/packages/client-twitter/src/environment.ts +++ b/packages/client-twitter/src/environment.ts @@ -1,12 +1,21 @@ import { parseBooleanFromText, IAgentRuntime } from "@elizaos/core"; -import { z } from "zod"; +import { z, ZodError } from "zod"; + export const DEFAULT_MAX_TWEET_LENGTH = 280; -const twitterUsernameSchema = z.string() - .min(4, 'An X/Twitter Username must be at least 4 characters long') - .max(15, 'n X/Twitter Username cannot exceed 15 characters') - .regex(/^[A-Za-z0-9_]*$/, 'n X Username can only contain letters, numbers, and underscores'); +const twitterUsernameSchema = z + .string() + .min(1, "An X/Twitter Username must be at least 1 characters long") + .max(15, "An X/Twitter Username cannot exceed 15 characters") + .regex( + /^[A-Za-z0-9_]*$/, + "An X Username can only contain letters, numbers, and underscores" + ); +/** + * This schema defines all required/optional environment settings, + * including new fields like TWITTER_SPACES_ENABLE. + */ export const twitterEnvSchema = z.object({ TWITTER_DRY_RUN: z.boolean(), TWITTER_USERNAME: z.string().min(1, "X/Twitter username is required"), @@ -51,33 +60,38 @@ export const twitterEnvSchema = z.object({ ENABLE_ACTION_PROCESSING: z.boolean(), ACTION_INTERVAL: z.number().int(), POST_IMMEDIATELY: z.boolean(), + TWITTER_SPACES_ENABLE: z.boolean().default(false), }); export type TwitterConfig = z.infer; -function parseTargetUsers(targetUsersStr?:string | null): string[] { +/** + * Helper to parse a comma-separated list of Twitter usernames + * (already present in your code). + */ +function parseTargetUsers(targetUsersStr?: string | null): string[] { if (!targetUsersStr?.trim()) { return []; } - return targetUsersStr - .split(',') - .map(user => user.trim()) - .filter(Boolean); // Remove empty usernames - /* - .filter(user => { - // Twitter username validation (basic example) - return user && /^[A-Za-z0-9_]{1,15}$/.test(user); - }); - */ + .split(",") + .map((user) => user.trim()) + .filter(Boolean); } -function safeParseInt(value: string | undefined | null, defaultValue: number): number { +function safeParseInt( + value: string | undefined | null, + defaultValue: number +): number { if (!value) return defaultValue; const parsed = parseInt(value, 10); return isNaN(parsed) ? defaultValue : Math.max(1, parsed); } +/** + * Validates or constructs a TwitterConfig object using zod, + * taking values from the IAgentRuntime or process.env as needed. + */ // This also is organized to serve as a point of documentation for the client // most of the inputs from the framework (env/character) @@ -91,75 +105,105 @@ export async function validateTwitterConfig( TWITTER_DRY_RUN: parseBooleanFromText( runtime.getSetting("TWITTER_DRY_RUN") || - process.env.TWITTER_DRY_RUN + process.env.TWITTER_DRY_RUN ) ?? false, // parseBooleanFromText return null if "", map "" to false + TWITTER_USERNAME: - runtime.getSetting ("TWITTER_USERNAME") || + runtime.getSetting("TWITTER_USERNAME") || process.env.TWITTER_USERNAME, + TWITTER_PASSWORD: runtime.getSetting("TWITTER_PASSWORD") || process.env.TWITTER_PASSWORD, + TWITTER_EMAIL: runtime.getSetting("TWITTER_EMAIL") || process.env.TWITTER_EMAIL, - MAX_TWEET_LENGTH: // number as string? - safeParseInt( - runtime.getSetting("MAX_TWEET_LENGTH") || - process.env.MAX_TWEET_LENGTH - , DEFAULT_MAX_TWEET_LENGTH), - TWITTER_SEARCH_ENABLE: // bool + + // number as string? + MAX_TWEET_LENGTH: safeParseInt( + runtime.getSetting("MAX_TWEET_LENGTH") || + process.env.MAX_TWEET_LENGTH, + DEFAULT_MAX_TWEET_LENGTH + ), + + TWITTER_SEARCH_ENABLE: parseBooleanFromText( runtime.getSetting("TWITTER_SEARCH_ENABLE") || - process.env.TWITTER_SEARCH_ENABLE + process.env.TWITTER_SEARCH_ENABLE ) ?? false, - TWITTER_2FA_SECRET: // string passthru + + // string passthru + TWITTER_2FA_SECRET: runtime.getSetting("TWITTER_2FA_SECRET") || - process.env.TWITTER_2FA_SECRET || "", - TWITTER_RETRY_LIMIT: // int - safeParseInt( - runtime.getSetting("TWITTER_RETRY_LIMIT") || - process.env.TWITTER_RETRY_LIMIT - , 5), - TWITTER_POLL_INTERVAL: // int in seconds - safeParseInt( - runtime.getSetting("TWITTER_POLL_INTERVAL") || - process.env.TWITTER_POLL_INTERVAL - , 120), // 2m - TWITTER_TARGET_USERS: // comma separated string - parseTargetUsers( - runtime.getSetting("TWITTER_TARGET_USERS") || + process.env.TWITTER_2FA_SECRET || + "", + + // int + TWITTER_RETRY_LIMIT: safeParseInt( + runtime.getSetting("TWITTER_RETRY_LIMIT") || + process.env.TWITTER_RETRY_LIMIT, + 5 + ), + + // int in seconds + TWITTER_POLL_INTERVAL: safeParseInt( + runtime.getSetting("TWITTER_POLL_INTERVAL") || + process.env.TWITTER_POLL_INTERVAL, + 120 // 2m + ), + + // comma separated string + TWITTER_TARGET_USERS: parseTargetUsers( + runtime.getSetting("TWITTER_TARGET_USERS") || process.env.TWITTER_TARGET_USERS - ), - POST_INTERVAL_MIN: // int in minutes - safeParseInt( - runtime.getSetting("POST_INTERVAL_MIN") || - process.env.POST_INTERVAL_MIN - , 90), // 1.5 hours - POST_INTERVAL_MAX: // int in minutes - safeParseInt( - runtime.getSetting("POST_INTERVAL_MAX") || - process.env.POST_INTERVAL_MAX - , 180), // 3 hours - ENABLE_ACTION_PROCESSING: // bool + ), + + // int in minutes + POST_INTERVAL_MIN: safeParseInt( + runtime.getSetting("POST_INTERVAL_MIN") || + process.env.POST_INTERVAL_MIN, + 90 // 1.5 hours + ), + + // int in minutes + POST_INTERVAL_MAX: safeParseInt( + runtime.getSetting("POST_INTERVAL_MAX") || + process.env.POST_INTERVAL_MAX, + 180 // 3 hours + ), + + // bool + ENABLE_ACTION_PROCESSING: parseBooleanFromText( runtime.getSetting("ENABLE_ACTION_PROCESSING") || - process.env.ENABLE_ACTION_PROCESSING + process.env.ENABLE_ACTION_PROCESSING ) ?? false, - ACTION_INTERVAL: // int in minutes (min 1m) - safeParseInt( - runtime.getSetting("ACTION_INTERVAL") || - process.env.ACTION_INTERVAL - , 5), // 5 minutes - POST_IMMEDIATELY: // bool + + // init in minutes (min 1m) + ACTION_INTERVAL: safeParseInt( + runtime.getSetting("ACTION_INTERVAL") || + process.env.ACTION_INTERVAL, + 5 // 5 minutes + ), + + // bool + POST_IMMEDIATELY: parseBooleanFromText( runtime.getSetting("POST_IMMEDIATELY") || - process.env.POST_IMMEDIATELY + process.env.POST_IMMEDIATELY + ) ?? false, + + TWITTER_SPACES_ENABLE: + parseBooleanFromText( + runtime.getSetting("TWITTER_SPACES_ENABLE") || + process.env.TWITTER_SPACES_ENABLE ) ?? false, }; return twitterEnvSchema.parse(twitterConfig); } catch (error) { - if (error instanceof z.ZodError) { + if (error instanceof ZodError) { const errorMessages = error.errors .map((err) => `${err.path.join(".")}: ${err.message}`) .join("\n"); diff --git a/packages/client-twitter/src/index.ts b/packages/client-twitter/src/index.ts index 0da22e7d6e3..6da648636ec 100644 --- a/packages/client-twitter/src/index.ts +++ b/packages/client-twitter/src/index.ts @@ -1,21 +1,39 @@ -import { Client, elizaLogger, IAgentRuntime } from "@elizaos/core"; +import { + Client, + elizaLogger, + IAgentRuntime, +} from "@elizaos/core"; import { ClientBase } from "./base.ts"; import { validateTwitterConfig, TwitterConfig } from "./environment.ts"; import { TwitterInteractionClient } from "./interactions.ts"; import { TwitterPostClient } from "./post.ts"; import { TwitterSearchClient } from "./search.ts"; +import { TwitterSpaceClient } from "./spaces.ts"; +/** + * A manager that orchestrates all specialized Twitter logic: + * - client: base operations (login, timeline caching, etc.) + * - post: autonomous posting logic + * - search: searching tweets / replying logic + * - interaction: handling mentions, replies + * - space: launching and managing Twitter Spaces (optional) + */ class TwitterManager { client: ClientBase; post: TwitterPostClient; search: TwitterSearchClient; interaction: TwitterInteractionClient; - constructor(runtime: IAgentRuntime, twitterConfig:TwitterConfig) { + space?: TwitterSpaceClient; + + constructor(runtime: IAgentRuntime, twitterConfig: TwitterConfig) { + // Pass twitterConfig to the base client this.client = new ClientBase(runtime, twitterConfig); + + // Posting logic this.post = new TwitterPostClient(this.client, runtime); + // Optional search logic (enabled if TWITTER_SEARCH_ENABLE is true) if (twitterConfig.TWITTER_SEARCH_ENABLE) { - // this searches topics from character file elizaLogger.warn("Twitter/X client running in a mode that:"); elizaLogger.warn("1. violates consent of random users"); elizaLogger.warn("2. burns your rate limit"); @@ -24,29 +42,46 @@ class TwitterManager { this.search = new TwitterSearchClient(this.client, runtime); } + // Mentions and interactions this.interaction = new TwitterInteractionClient(this.client, runtime); + + // Optional Spaces logic (enabled if TWITTER_SPACES_ENABLE is true) + if (twitterConfig.TWITTER_SPACES_ENABLE) { + this.space = new TwitterSpaceClient(this.client, runtime); + } } } export const TwitterClientInterface: Client = { async start(runtime: IAgentRuntime) { - const twitterConfig:TwitterConfig = await validateTwitterConfig(runtime); + const twitterConfig: TwitterConfig = await validateTwitterConfig(runtime); elizaLogger.log("Twitter client started"); const manager = new TwitterManager(runtime, twitterConfig); + // Initialize login/session await manager.client.init(); + // Start the posting loop await manager.post.start(); - if (manager.search) + // Start the search logic if it exists + if (manager.search) { await manager.search.start(); + } + // Start interactions (mentions, replies) await manager.interaction.start(); + // If Spaces are enabled, start the periodic check + if (manager.space) { + manager.space.startPeriodicSpaceCheck(); + } + return manager; }, + async stop(_runtime: IAgentRuntime) { elizaLogger.warn("Twitter client does not support stopping yet"); }, diff --git a/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts b/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts new file mode 100644 index 00000000000..8343dac5b17 --- /dev/null +++ b/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts @@ -0,0 +1,448 @@ +// src/plugins/SttTtsPlugin.ts + +import { spawn } from 'child_process'; +import { ITranscriptionService } from '@elizaos/core'; +import { Space, JanusClient, AudioDataWithUser } from 'agent-twitter-client'; + +interface PluginConfig { + openAiApiKey?: string; // for STT & ChatGPT + elevenLabsApiKey?: string; // for TTS + sttLanguage?: string; // e.g. "en" for Whisper + gptModel?: string; // e.g. "gpt-3.5-turbo" + silenceThreshold?: number; // amplitude threshold for ignoring silence + voiceId?: string; // specify which ElevenLabs voice to use + elevenLabsModel?: string; // e.g. "eleven_monolingual_v1" + systemPrompt?: string; // ex. "You are a helpful AI assistant" + chatContext?: Array<{ + role: 'system' | 'user' | 'assistant'; + content: string; + }>; + transcriptionService: ITranscriptionService; +} + +/** + * MVP plugin for speech-to-text (OpenAI) + conversation + TTS (ElevenLabs) + * Approach: + * - Collect each speaker's unmuted PCM in a memory buffer (only if above silence threshold) + * - On speaker mute -> flush STT -> GPT -> TTS -> push to Janus + */ +export class SttTtsPlugin implements Plugin { + private space?: Space; + private janus?: JanusClient; + + private openAiApiKey?: string; + private elevenLabsApiKey?: string; + + private gptModel = 'gpt-3.5-turbo'; + private voiceId = '21m00Tcm4TlvDq8ikWAM'; + private elevenLabsModel = 'eleven_monolingual_v1'; + private systemPrompt = 'You are a helpful AI assistant.'; + private chatContext: Array<{ + role: 'system' | 'user' | 'assistant'; + content: string; + }> = []; + + private transcriptionService: ITranscriptionService; + + /** + * userId => arrayOfChunks (PCM Int16) + */ + private pcmBuffers = new Map(); + + /** + * Track mute states: userId => boolean (true=unmuted) + */ + private speakerUnmuted = new Map(); + + /** + * For ignoring near-silence frames (if amplitude < threshold) + */ + private silenceThreshold = 50; + + // TTS queue for sequentially speaking + private ttsQueue: string[] = []; + private isSpeaking = false; + + onAttach(space: Space) { + console.log('[SttTtsPlugin] onAttach => space was attached'); + } + + init(params: { space: Space; pluginConfig?: Record }): void { + console.log( + '[SttTtsPlugin] init => Space fully ready. Subscribing to events.', + ); + + this.space = params.space; + this.janus = (this.space as any)?.janusClient as JanusClient | undefined; + + const config = params.pluginConfig as PluginConfig; + this.openAiApiKey = config?.openAiApiKey; + this.elevenLabsApiKey = config?.elevenLabsApiKey; + this.transcriptionService = config.transcriptionService; + if (config?.gptModel) this.gptModel = config.gptModel; + if (typeof config?.silenceThreshold === 'number') { + this.silenceThreshold = config.silenceThreshold; + } + if (config?.voiceId) { + this.voiceId = config.voiceId; + } + if (config?.elevenLabsModel) { + this.elevenLabsModel = config.elevenLabsModel; + } + if (config?.systemPrompt) { + this.systemPrompt = config.systemPrompt; + } + if (config?.chatContext) { + this.chatContext = config.chatContext; + } + console.log('[SttTtsPlugin] Plugin config =>', config); + + // Listen for mute events + this.space.on( + 'muteStateChanged', + (evt: { userId: string; muted: boolean }) => { + console.log('[SttTtsPlugin] Speaker muteStateChanged =>', evt); + if (evt.muted) { + this.handleMute(evt.userId).catch((err) => + console.error('[SttTtsPlugin] handleMute error =>', err), + ); + } else { + this.speakerUnmuted.set(evt.userId, true); + if (!this.pcmBuffers.has(evt.userId)) { + this.pcmBuffers.set(evt.userId, []); + } + } + }, + ); + } + + /** + * Called whenever we receive PCM from a speaker + */ + onAudioData(data: AudioDataWithUser): void { + if (!this.speakerUnmuted.get(data.userId)) return; + + let maxVal = 0; + for (let i = 0; i < data.samples.length; i++) { + const val = Math.abs(data.samples[i]); + if (val > maxVal) maxVal = val; + } + if (maxVal < this.silenceThreshold) { + return; + } + + let arr = this.pcmBuffers.get(data.userId); + if (!arr) { + arr = []; + this.pcmBuffers.set(data.userId, arr); + } + arr.push(data.samples); + } + + // /src/sttTtsPlugin.ts + private async convertPcmToWavInMemory( + pcmData: Int16Array, + sampleRate: number + ): Promise { + // number of channels + const numChannels = 1; + // byte rate = (sampleRate * numChannels * bitsPerSample/8) + const byteRate = sampleRate * numChannels * 2; + const blockAlign = numChannels * 2; + // data chunk size = pcmData.length * (bitsPerSample/8) + const dataSize = pcmData.length * 2; + + // WAV header is 44 bytes + const buffer = new ArrayBuffer(44 + dataSize); + const view = new DataView(buffer); + + // RIFF chunk descriptor + this.writeString(view, 0, 'RIFF'); + view.setUint32(4, 36 + dataSize, true); // file size - 8 + this.writeString(view, 8, 'WAVE'); + + // fmt sub-chunk + this.writeString(view, 12, 'fmt '); + view.setUint32(16, 16, true); // Subchunk1Size (16 for PCM) + view.setUint16(20, 1, true); // AudioFormat (1 = PCM) + view.setUint16(22, numChannels, true); // NumChannels + view.setUint32(24, sampleRate, true); // SampleRate + view.setUint32(28, byteRate, true); // ByteRate + view.setUint16(32, blockAlign, true); // BlockAlign + view.setUint16(34, 16, true); // BitsPerSample (16) + + // data sub-chunk + this.writeString(view, 36, 'data'); + view.setUint32(40, dataSize, true); + + // Write PCM samples + let offset = 44; + for (let i = 0; i < pcmData.length; i++, offset += 2) { + view.setInt16(offset, pcmData[i], true); + } + + return buffer; + } + + private writeString(view: DataView, offset: number, text: string) { + for (let i = 0; i < text.length; i++) { + view.setUint8(offset + i, text.charCodeAt(i)); + } + } + + /** + * On speaker mute => flush STT => GPT => TTS => push to Janus + */ + private async handleMute(userId: string): Promise { + this.speakerUnmuted.set(userId, false); + const chunks = this.pcmBuffers.get(userId) || []; + this.pcmBuffers.set(userId, []); + + if (!chunks.length) { + console.log('[SttTtsPlugin] No audio chunks for user =>', userId); + return; + } + console.log( + `[SttTtsPlugin] Flushing STT buffer for user=${userId}, chunks=${chunks.length}`, + ); + + const totalLen = chunks.reduce((acc, c) => acc + c.length, 0); + const merged = new Int16Array(totalLen); + let offset = 0; + for (const c of chunks) { + merged.set(c, offset); + offset += c.length; + } + + // Convert PCM to WAV for STT + const wavBuffer = await this.convertPcmToWavInMemory(merged, 48000); + + // Whisper STT + const sttText = await this.transcriptionService.transcribe(wavBuffer); + + if (!sttText || !sttText.trim()) { + console.log('[SttTtsPlugin] No speech recognized for user =>', userId); + return; + } + console.log(`[SttTtsPlugin] STT => user=${userId}, text="${sttText}"`); + + // GPT answer + const replyText = await this.askChatGPT(sttText); + console.log(`[SttTtsPlugin] GPT => user=${userId}, reply="${replyText}"`); + + // Use the standard speak method with queue + await this.speakText(replyText); + } + + /** + * Public method to queue a TTS request + */ + public async speakText(text: string): Promise { + this.ttsQueue.push(text); + if (!this.isSpeaking) { + this.isSpeaking = true; + this.processTtsQueue().catch((err) => { + console.error('[SttTtsPlugin] processTtsQueue error =>', err); + }); + } + } + + /** + * Process TTS requests one by one + */ + private async processTtsQueue(): Promise { + while (this.ttsQueue.length > 0) { + const text = this.ttsQueue.shift(); + if (!text) continue; + + try { + const ttsAudio = await this.elevenLabsTts(text); + const pcm = await this.convertMp3ToPcm(ttsAudio, 48000); + await this.streamToJanus(pcm, 48000); + } catch (err) { + console.error('[SttTtsPlugin] TTS streaming error =>', err); + } + } + this.isSpeaking = false; + } + + /** + * Simple ChatGPT call + */ + private async askChatGPT(userText: string): Promise { + if (!this.openAiApiKey) { + throw new Error('[SttTtsPlugin] No OpenAI API key for ChatGPT'); + } + const url = 'https://api.openai.com/v1/chat/completions'; + const messages = [ + { role: 'system', content: this.systemPrompt }, + ...this.chatContext, + { role: 'user', content: userText }, + ]; + + const resp = await fetch(url, { + method: 'POST', + headers: { + Authorization: `Bearer ${this.openAiApiKey}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + model: this.gptModel, + messages, + }), + }); + + if (!resp.ok) { + const errText = await resp.text(); + throw new Error( + `[SttTtsPlugin] ChatGPT error => ${resp.status} ${errText}`, + ); + } + + const json = await resp.json(); + const reply = json.choices?.[0]?.message?.content || ''; + this.chatContext.push({ role: 'user', content: userText }); + this.chatContext.push({ role: 'assistant', content: reply }); + return reply.trim(); + } + + /** + * ElevenLabs TTS => returns MP3 Buffer + */ + private async elevenLabsTts(text: string): Promise { + if (!this.elevenLabsApiKey) { + throw new Error('[SttTtsPlugin] No ElevenLabs API key'); + } + const url = `https://api.elevenlabs.io/v1/text-to-speech/${this.voiceId}`; + const resp = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'xi-api-key': this.elevenLabsApiKey, + }, + body: JSON.stringify({ + text, + model_id: this.elevenLabsModel, + voice_settings: { stability: 0.4, similarity_boost: 0.8 }, + }), + }); + if (!resp.ok) { + const errText = await resp.text(); + throw new Error( + `[SttTtsPlugin] ElevenLabs TTS error => ${resp.status} ${errText}`, + ); + } + const arrayBuf = await resp.arrayBuffer(); + return Buffer.from(arrayBuf); + } + + /** + * Convert MP3 => PCM via ffmpeg + */ + private convertMp3ToPcm( + mp3Buf: Buffer, + outRate: number, + ): Promise { + return new Promise((resolve, reject) => { + const ff = spawn('ffmpeg', [ + '-i', + 'pipe:0', + '-f', + 's16le', + '-ar', + outRate.toString(), + '-ac', + '1', + 'pipe:1', + ]); + let raw = Buffer.alloc(0); + + ff.stdout.on('data', (chunk: Buffer) => { + raw = Buffer.concat([raw, chunk]); + }); + ff.stderr.on('data', () => { + // ignoring ffmpeg logs + }); + ff.on('close', (code) => { + if (code !== 0) { + reject(new Error(`ffmpeg error code=${code}`)); + return; + } + const samples = new Int16Array( + raw.buffer, + raw.byteOffset, + raw.byteLength / 2, + ); + resolve(samples); + }); + + ff.stdin.write(mp3Buf); + ff.stdin.end(); + }); + } + + /** + * Push PCM back to Janus in small frames + * We'll do 10ms @48k => 960 samples per frame + */ + private async streamToJanus( + samples: Int16Array, + sampleRate: number, + ): Promise { + // TODO: Check if better than 480 fixed + const FRAME_SIZE = Math.floor(sampleRate * 0.01); // 10ms frames => 480 @48kHz + + for ( + let offset = 0; + offset + FRAME_SIZE <= samples.length; + offset += FRAME_SIZE + ) { + const frame = new Int16Array(FRAME_SIZE); + frame.set(samples.subarray(offset, offset + FRAME_SIZE)); + this.janus?.pushLocalAudio(frame, sampleRate, 1); + + // Short pause so we don't overload + await new Promise((r) => setTimeout(r, 10)); + } + } + + public setSystemPrompt(prompt: string) { + this.systemPrompt = prompt; + console.log('[SttTtsPlugin] setSystemPrompt =>', prompt); + } + + /** + * Change the GPT model at runtime (e.g. "gpt-4", "gpt-3.5-turbo", etc.). + */ + public setGptModel(model: string) { + this.gptModel = model; + console.log('[SttTtsPlugin] setGptModel =>', model); + } + + /** + * Add a message (system, user or assistant) to the chat context. + * E.g. to store conversation history or inject a persona. + */ + public addMessage(role: 'system' | 'user' | 'assistant', content: string) { + this.chatContext.push({ role, content }); + console.log( + `[SttTtsPlugin] addMessage => role=${role}, content=${content}`, + ); + } + + /** + * Clear the chat context if needed. + */ + public clearChatContext() { + this.chatContext = []; + console.log('[SttTtsPlugin] clearChatContext => done'); + } + + cleanup(): void { + console.log('[SttTtsPlugin] cleanup => releasing resources'); + this.pcmBuffers.clear(); + this.speakerUnmuted.clear(); + this.ttsQueue = []; + this.isSpeaking = false; + } +} diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts index 33a07b755dd..bf085bbc4cc 100644 --- a/packages/client-twitter/src/post.ts +++ b/packages/client-twitter/src/post.ts @@ -464,7 +464,7 @@ export class TwitterPostClient { .replace(/^\s*{?\s*"text":\s*"|"\s*}?\s*$/g, "") // Remove JSON-like wrapper .replace(/^['"](.*)['"]$/g, "$1") // Remove quotes .replace(/\\"/g, '"') // Unescape quotes - .replace(/\\n/g, "\n") // Unescape newlines + .replace(/\\n/g, "\n\n") // Unescape newlines, ensures double spaces .trim(); } @@ -491,7 +491,7 @@ export class TwitterPostClient { const removeQuotes = (str: string) => str.replace(/^['"](.*)['"]$/, "$1"); - const fixNewLines = (str: string) => str.replaceAll(/\\n/g, "\n"); + const fixNewLines = (str: string) => str.replaceAll(/\\n/g, "\n\n"); //ensures double spaces // Final cleaning cleanedContent = removeQuotes(fixNewLines(cleanedContent)); diff --git a/packages/client-twitter/src/spaces.ts b/packages/client-twitter/src/spaces.ts new file mode 100644 index 00000000000..6076b80e8fd --- /dev/null +++ b/packages/client-twitter/src/spaces.ts @@ -0,0 +1,519 @@ +import { + elizaLogger, + IAgentRuntime, + composeContext, + generateText, + ModelClass, + ServiceType, + ITranscriptionService, +} from "@elizaos/core"; +import { ClientBase } from "./base"; +import { + Scraper, + Space, + SpaceConfig, + RecordToDiskPlugin, + IdleMonitorPlugin, + SpeakerRequest, +} from "agent-twitter-client"; +import { + SttTtsPlugin +} from './plugins/SttTtsSpacesPlugin.ts'; + +interface SpaceDecisionOptions { + maxSpeakers?: number; + topics?: string[]; + typicalDurationMinutes?: number; + idleKickTimeoutMs?: number; + minIntervalBetweenSpacesMinutes?: number; + businessHoursOnly?: boolean; + randomChance?: number; + enableIdleMonitor?: boolean; + enableSttTts?: boolean; + enableRecording?: boolean; + voiceId?: string; + sttLanguage?: string; + gptModel?: string; + systemPrompt?: string; + speakerMaxDurationMs?: number; +} + +interface CurrentSpeakerState { + userId: string; + sessionUUID: string; + username: string; + startTime: number; +} + +/** + * Generate short filler text via GPT + */ +async function generateFiller(runtime: IAgentRuntime, fillerType: string): Promise { + try { + const context = composeContext({ + state: { fillerType }, + template: ` +# INSTRUCTIONS: +You are generating a short filler message for a Twitter Space. The filler type is "{{fillerType}}". +Keep it brief, friendly, and relevant. No more than two sentences. +Only return the text, no additional formatting. + +--- +`, + }); + const output = await generateText({ + runtime, + context, + modelClass: ModelClass.SMALL, + }); + return output.trim(); + } catch (err) { + elizaLogger.error("[generateFiller] Error generating filler:", err); + return ""; + } +} + +/** + * Speak a filler message if STT/TTS plugin is available. Sleep a bit after TTS to avoid cutoff. + */ +async function speakFiller( + runtime: IAgentRuntime, + sttTtsPlugin: SttTtsPlugin | undefined, + fillerType: string, + sleepAfterMs = 3000 +): Promise { + if (!sttTtsPlugin) return; + const text = await generateFiller(runtime, fillerType); + if (!text) return; + + elizaLogger.log(`[Space] Filler (${fillerType}) => ${text}`); + await sttTtsPlugin.speakText(text); + + if (sleepAfterMs > 0) { + await new Promise((res) => setTimeout(res, sleepAfterMs)); + } +} + +/** + * Generate topic suggestions via GPT if no topics are configured + */ +async function generateTopicsIfEmpty(runtime: IAgentRuntime): Promise { + try { + const context = composeContext({ + state: {}, + template: ` +# INSTRUCTIONS: +Please generate 5 short topic ideas for a Twitter Space about technology or random interesting subjects. +Return them as a comma-separated list, no additional formatting or numbering. + +Example: +"AI Advances, Futuristic Gadgets, Space Exploration, Quantum Computing, Digital Ethics" +--- +`, + }); + const response = await generateText({ + runtime, + context, + modelClass: ModelClass.SMALL, + }); + const topics = response + .split(",") + .map((t) => t.trim()) + .filter(Boolean); + return topics.length ? topics : ["Random Tech Chat", "AI Thoughts"]; + } catch (err) { + elizaLogger.error("[generateTopicsIfEmpty] GPT error =>", err); + return ["Random Tech Chat", "AI Thoughts"]; + } +} + +/** + * Main class: manage a Twitter Space with N speakers max, speaker queue, filler messages, etc. + */ +export class TwitterSpaceClient { + private client: ClientBase; + private scraper: Scraper; + private isSpaceRunning = false; + private currentSpace?: Space; + private spaceId?: string; + private startedAt?: number; + private checkInterval?: NodeJS.Timeout; + private lastSpaceEndedAt?: number; + private sttTtsPlugin?: SttTtsPlugin; + + /** + * We now store an array of active speakers, not just 1 + */ + private activeSpeakers: CurrentSpeakerState[] = []; + private speakerQueue: SpeakerRequest[] = []; + + private decisionOptions: SpaceDecisionOptions; + + constructor(client: ClientBase, runtime: IAgentRuntime) { + this.client = client; + this.scraper = client.twitterClient; + + const charSpaces = runtime.character.twitterSpaces || {}; + this.decisionOptions = { + maxSpeakers: charSpaces.maxSpeakers ?? 1, + topics: charSpaces.topics ?? [], + typicalDurationMinutes: charSpaces.typicalDurationMinutes ?? 30, + idleKickTimeoutMs: charSpaces.idleKickTimeoutMs ?? 5 * 60_000, + minIntervalBetweenSpacesMinutes: charSpaces.minIntervalBetweenSpacesMinutes ?? 60, + businessHoursOnly: charSpaces.businessHoursOnly ?? false, + randomChance: charSpaces.randomChance ?? 0.3, + enableIdleMonitor: charSpaces.enableIdleMonitor !== false, + enableSttTts: charSpaces.enableSttTts !== false, + enableRecording: charSpaces.enableRecording !== false, + voiceId: charSpaces.voiceId || runtime.character.settings.voice.model || 'Xb7hH8MSUJpSbSDYk0k2', + sttLanguage: charSpaces.sttLanguage || "en", + gptModel: charSpaces.gptModel, + systemPrompt: charSpaces.systemPrompt, + speakerMaxDurationMs: charSpaces.speakerMaxDurationMs ?? 4 * 60_000, + }; + } + + /** + * Periodic check to launch or manage space + */ + public async startPeriodicSpaceCheck() { + elizaLogger.log("[Space] Starting periodic check routine..."); + + // For instance: + const intervalMsWhenIdle = 5 * 60_000; // 5 minutes if no Space is running + const intervalMsWhenRunning = 5_000; // 5 seconds if a Space IS running + + const routine = async () => { + try { + if (!this.isSpaceRunning) { + // Space not running => check if we should launch + const launch = await this.shouldLaunchSpace(); + if (launch) { + const config = await this.generateSpaceConfig(); + await this.startSpace(config); + } + // Plan next iteration with a slower pace + this.checkInterval = setTimeout(routine, this.isSpaceRunning ? intervalMsWhenRunning : intervalMsWhenIdle); + } else { + // Space is running => manage it more frequently + await this.manageCurrentSpace(); + // Plan next iteration with a faster pace + this.checkInterval = setTimeout(routine, intervalMsWhenRunning); + } + } catch (error) { + elizaLogger.error("[Space] Error in routine =>", error); + // In case of error, still schedule next iteration + this.checkInterval = setTimeout(routine, intervalMsWhenIdle); + } + }; + + routine(); + } + + stopPeriodicCheck() { + if (this.checkInterval) { + clearTimeout(this.checkInterval); + this.checkInterval = undefined; + } + } + + private async shouldLaunchSpace(): Promise { + // Random chance + const r = Math.random(); + if (r > (this.decisionOptions.randomChance ?? 0.3)) { + elizaLogger.log("[Space] Random check => skip launching"); + return false; + } + // Business hours + if (this.decisionOptions.businessHoursOnly) { + const hour = new Date().getUTCHours(); + if (hour < 9 || hour >= 17) { + elizaLogger.log("[Space] Out of business hours => skip"); + return false; + } + } + // Interval + const now = Date.now(); + if (this.lastSpaceEndedAt) { + const minIntervalMs = + (this.decisionOptions.minIntervalBetweenSpacesMinutes ?? 60) * 60_000; + if (now - this.lastSpaceEndedAt < minIntervalMs) { + elizaLogger.log("[Space] Too soon since last space => skip"); + return false; + } + } + + elizaLogger.log("[Space] Deciding to launch a new Space..."); + return true; + } + + private async generateSpaceConfig(): Promise { + if ( + !this.decisionOptions.topics || + this.decisionOptions.topics.length === 0 + ) { + const newTopics = await generateTopicsIfEmpty(this.client.runtime); + this.decisionOptions.topics = newTopics; + } + + let chosenTopic = "Random Tech Chat"; + if ( + this.decisionOptions.topics && + this.decisionOptions.topics.length > 0 + ) { + chosenTopic = + this.decisionOptions.topics[ + Math.floor(Math.random() * this.decisionOptions.topics.length) + ]; + } + + return { + mode: "INTERACTIVE", + title: chosenTopic, + description: `Discussion about ${chosenTopic}`, + languages: ["en"], + }; + } + + public async startSpace(config: SpaceConfig) { + elizaLogger.log("[Space] Starting a new Twitter Space..."); + + try { + this.currentSpace = new Space(this.scraper); + this.isSpaceRunning = false; + this.spaceId = undefined; + this.startedAt = Date.now(); + + // Reset states + this.activeSpeakers = []; + this.speakerQueue = []; + + // Retrieve keys + const openAiKey = process.env.OPENAI_API_KEY || ""; + const elevenLabsKey = process.env.ELEVENLABS_XI_API_KEY || ""; + + // Plugins + if (this.decisionOptions.enableRecording) { + elizaLogger.log("[Space] Using RecordToDiskPlugin"); + this.currentSpace.use(new RecordToDiskPlugin()); + } + + if (this.decisionOptions.enableSttTts) { + elizaLogger.log("[Space] Using SttTtsPlugin"); + const sttTts = new SttTtsPlugin(); + this.sttTtsPlugin = sttTts; + this.currentSpace.use(sttTts, { + openAiApiKey: openAiKey, + elevenLabsApiKey: elevenLabsKey, + voiceId: this.decisionOptions.voiceId, + gptModel: this.decisionOptions.gptModel, + systemPrompt: this.decisionOptions.systemPrompt, + sttLanguage: this.decisionOptions.sttLanguage, + transcriptionService: this.client.runtime.getService( + ServiceType.TRANSCRIPTION, + ) + }); + } + + if (this.decisionOptions.enableIdleMonitor) { + elizaLogger.log("[Space] Using IdleMonitorPlugin"); + this.currentSpace.use( + new IdleMonitorPlugin( + this.decisionOptions.idleKickTimeoutMs ?? 60_000, + 10_000 + ) + ); + } + + const broadcastInfo = await this.currentSpace.initialize(config); + this.spaceId = broadcastInfo.room_id; + this.isSpaceRunning = true; + await this.scraper.sendTweet(broadcastInfo.share_url.replace('broadcasts', 'spaces')); + + const spaceUrl = broadcastInfo.share_url.replace("broadcasts", "spaces"); + elizaLogger.log(`[Space] Space started => ${spaceUrl}`); + + // Greet + await speakFiller(this.client.runtime, this.sttTtsPlugin, "WELCOME"); + + // Events + this.currentSpace.on("occupancyUpdate", (update) => { + elizaLogger.log(`[Space] Occupancy => ${update.occupancy} participant(s).`); + }); + + this.currentSpace.on("speakerRequest", async (req: SpeakerRequest) => { + elizaLogger.log(`[Space] Speaker request from @${req.username} (${req.userId}).`); + await this.handleSpeakerRequest(req); + }); + + this.currentSpace.on("idleTimeout", async (info) => { + elizaLogger.log(`[Space] idleTimeout => no audio for ${info.idleMs} ms.`); + await speakFiller(this.client.runtime, this.sttTtsPlugin, "IDLE_ENDING"); + await this.stopSpace(); + }); + + process.on("SIGINT", async () => { + elizaLogger.log("[Space] SIGINT => stopping space"); + await speakFiller(this.client.runtime, this.sttTtsPlugin, "CLOSING"); + await this.stopSpace(); + process.exit(0); + }); + } catch (error) { + elizaLogger.error("[Space] Error launching Space =>", error); + this.isSpaceRunning = false; + throw error; + } + } + + /** + * Periodic management: check durations, remove extras, maybe accept new from queue + */ + private async manageCurrentSpace() { + if (!this.spaceId || !this.currentSpace) return; + try { + const audioSpace = await this.scraper.getAudioSpaceById(this.spaceId); + const { participants } = audioSpace; + const numSpeakers = participants.speakers?.length || 0; + const totalListeners = participants.listeners?.length || 0; + + // 1) Remove any speaker who exceeded speakerMaxDurationMs + const maxDur = this.decisionOptions.speakerMaxDurationMs ?? 240_000; + const now = Date.now(); + + for (let i = this.activeSpeakers.length - 1; i >= 0; i--) { + const speaker = this.activeSpeakers[i]; + const elapsed = now - speaker.startTime; + if (elapsed > maxDur) { + elizaLogger.log( + `[Space] Speaker @${speaker.username} exceeded max duration => removing` + ); + await this.removeSpeaker(speaker.userId); + this.activeSpeakers.splice(i, 1); + + // Possibly speak a short "SPEAKER_LEFT" filler + await speakFiller(this.client.runtime, this.sttTtsPlugin, "SPEAKER_LEFT"); + } + } + + // 2) If we have capacity for new speakers from the queue, accept them + await this.acceptSpeakersFromQueueIfNeeded(); + + // 3) If somehow more than maxSpeakers are active, remove the extras + if (numSpeakers > (this.decisionOptions.maxSpeakers ?? 1)) { + elizaLogger.log("[Space] More than maxSpeakers => removing extras..."); + await this.kickExtraSpeakers(participants.speakers); + } + + // 4) Possibly stop the space if empty or time exceeded + const elapsedMinutes = (now - (this.startedAt || 0)) / 60000; + if ( + elapsedMinutes > (this.decisionOptions.typicalDurationMinutes ?? 30) || + (numSpeakers === 0 && totalListeners === 0 && elapsedMinutes > 5) + ) { + elizaLogger.log("[Space] Condition met => stopping the Space..."); + await speakFiller(this.client.runtime, this.sttTtsPlugin, "CLOSING", 4000); + await this.stopSpace(); + } + } catch (error) { + elizaLogger.error("[Space] Error in manageCurrentSpace =>", error); + } + } + + /** + * If we have available slots, accept new speakers from the queue + */ + private async acceptSpeakersFromQueueIfNeeded() { + // while queue not empty and activeSpeakers < maxSpeakers, accept next + const ms = this.decisionOptions.maxSpeakers ?? 1; + while (this.speakerQueue.length > 0 && this.activeSpeakers.length < ms) { + const nextReq = this.speakerQueue.shift(); + if (nextReq) { + await speakFiller(this.client.runtime, this.sttTtsPlugin, "PRE_ACCEPT"); + await this.acceptSpeaker(nextReq); + } + } + } + + private async handleSpeakerRequest(req: SpeakerRequest) { + if (!this.spaceId || !this.currentSpace) return; + + const audioSpace = await this.scraper.getAudioSpaceById(this.spaceId); + const janusSpeakers = audioSpace?.participants?.speakers || []; + + // If we haven't reached maxSpeakers, accept immediately + if (janusSpeakers.length < (this.decisionOptions.maxSpeakers ?? 1)) { + elizaLogger.log(`[Space] Accepting speaker @${req.username} now`); + await speakFiller(this.client.runtime, this.sttTtsPlugin, "PRE_ACCEPT"); + await this.acceptSpeaker(req); + } else { + elizaLogger.log(`[Space] Adding speaker @${req.username} to the queue`); + this.speakerQueue.push(req); + } + } + + private async acceptSpeaker(req: SpeakerRequest) { + if (!this.currentSpace) return; + try { + await this.currentSpace.approveSpeaker(req.userId, req.sessionUUID); + this.activeSpeakers.push({ + userId: req.userId, + sessionUUID: req.sessionUUID, + username: req.username, + startTime: Date.now(), + }); + elizaLogger.log(`[Space] Speaker @${req.username} is now live`); + } catch (err) { + elizaLogger.error(`[Space] Error approving speaker @${req.username}:`, err); + } + } + + private async removeSpeaker(userId: string) { + if (!this.currentSpace) return; + try { + await this.currentSpace.removeSpeaker(userId); + elizaLogger.log(`[Space] Removed speaker userId=${userId}`); + } catch (error) { + elizaLogger.error(`[Space] Error removing speaker userId=${userId} =>`, error); + } + } + + /** + * If more than maxSpeakers are found, remove extras + * Also update activeSpeakers array + */ + private async kickExtraSpeakers(speakers: any[]) { + if (!this.currentSpace) return; + const ms = this.decisionOptions.maxSpeakers ?? 1; + + // sort by who joined first if needed, or just slice + const extras = speakers.slice(ms); + for (const sp of extras) { + elizaLogger.log(`[Space] Removing extra speaker => userId=${sp.user_id}`); + await this.removeSpeaker(sp.user_id); + + // remove from activeSpeakers array + const idx = this.activeSpeakers.findIndex((s) => s.userId === sp.user_id); + if (idx !== -1) { + this.activeSpeakers.splice(idx, 1); + } + } + } + + public async stopSpace() { + if (!this.currentSpace || !this.isSpaceRunning) return; + try { + elizaLogger.log("[Space] Stopping the current Space..."); + await this.currentSpace.stop(); + } catch (err) { + elizaLogger.error("[Space] Error stopping Space =>", err); + } finally { + this.isSpaceRunning = false; + this.spaceId = undefined; + this.currentSpace = undefined; + this.startedAt = undefined; + this.lastSpaceEndedAt = Date.now(); + this.activeSpeakers = []; + this.speakerQueue = []; + } + } +} diff --git a/packages/core/package.json b/packages/core/package.json index e25b865ae1f..94c67af2884 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,79 +1,80 @@ { - "name": "@elizaos/core", - "version": "0.1.7-alpha.2", - "description": "", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "scripts": { - "build": "tsup --format esm --dts", - "lint": "eslint --fix --cache .", - "watch": "tsc --watch", - "dev": "tsup --format esm --dts --watch", - "build:docs": "cd docs && pnpm run build", - "test": "vitest run", - "test:coverage": "vitest run --coverage", - "test:watch": "vitest" - }, - "author": "", - "license": "MIT", - "devDependencies": { - "@eslint/js": "9.16.0", - "@rollup/plugin-commonjs": "25.0.8", - "@rollup/plugin-json": "6.1.0", - "@rollup/plugin-node-resolve": "15.3.0", - "@rollup/plugin-replace": "5.0.7", - "@rollup/plugin-terser": "0.1.0", - "@rollup/plugin-typescript": "11.1.6", - "@solana/web3.js": "1.95.8", - "@types/fluent-ffmpeg": "2.1.27", - "@types/jest": "29.5.14", - "@types/mocha": "10.0.10", - "@types/node": "22.8.4", - "@types/pdfjs-dist": "2.10.378", - "@types/tar": "6.1.13", - "@types/wav-encoder": "1.3.3", - "@typescript-eslint/eslint-plugin": "8.16.0", - "@typescript-eslint/parser": "8.16.0", - "@vitest/coverage-v8": "2.1.5", - "dotenv": "16.4.5", - "jest": "29.7.0", - "lint-staged": "15.2.10", - "nodemon": "3.1.7", - "pm2": "5.4.3", - "rimraf": "6.0.1", - "rollup": "2.79.2", - "ts-jest": "29.2.5", - "ts-node": "10.9.2", - "tslib": "2.8.1", - "tsup": "8.3.5", - "typescript": "5.6.3" - }, - "dependencies": { - "@ai-sdk/anthropic": "0.0.56", - "@ai-sdk/google": "0.0.55", - "@ai-sdk/google-vertex": "0.0.43", - "@ai-sdk/groq": "0.0.3", - "@ai-sdk/openai": "1.0.5", - "@anthropic-ai/sdk": "0.30.1", - "@fal-ai/client": "1.2.0", - "@types/uuid": "10.0.0", - "ai": "3.4.33", - "anthropic-vertex-ai": "1.0.2", - "fastembed": "1.14.1", - "fastestsmallesttextencoderdecoder": "1.0.22", - "gaxios": "6.7.1", - "glob": "11.0.0", - "handlebars": "^4.7.8", - "js-sha1": "0.7.0", - "js-tiktoken": "1.0.15", - "langchain": "0.3.6", - "ollama-ai-provider": "0.16.1", - "openai": "4.73.0", - "tinyld": "1.3.4", - "together-ai": "0.7.0", - "unique-names-generator": "4.7.1", - "uuid": "11.0.3", - "zod": "3.23.8" - } + "name": "@elizaos/core", + "version": "0.1.7-alpha.2", + "description": "", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsup --format esm --dts", + "lint": "eslint --fix --cache .", + "watch": "tsc --watch", + "dev": "tsup --format esm --dts --watch", + "build:docs": "cd docs && pnpm run build", + "test": "vitest run", + "test:coverage": "vitest run --coverage", + "test:watch": "vitest" + }, + "author": "", + "license": "MIT", + "devDependencies": { + "@eslint/js": "9.16.0", + "@rollup/plugin-commonjs": "25.0.8", + "@rollup/plugin-json": "6.1.0", + "@rollup/plugin-node-resolve": "15.3.0", + "@rollup/plugin-replace": "5.0.7", + "@rollup/plugin-terser": "0.1.0", + "@rollup/plugin-typescript": "11.1.6", + "@solana/web3.js": "1.95.8", + "@tavily/core": "^0.0.2", + "@types/fluent-ffmpeg": "2.1.27", + "@types/jest": "29.5.14", + "@types/mocha": "10.0.10", + "@types/node": "22.8.4", + "@types/pdfjs-dist": "2.10.378", + "@types/tar": "6.1.13", + "@types/wav-encoder": "1.3.3", + "@typescript-eslint/eslint-plugin": "8.16.0", + "@typescript-eslint/parser": "8.16.0", + "@vitest/coverage-v8": "2.1.5", + "dotenv": "16.4.5", + "jest": "29.7.0", + "lint-staged": "15.2.10", + "nodemon": "3.1.7", + "pm2": "5.4.3", + "rimraf": "6.0.1", + "rollup": "2.79.2", + "ts-jest": "29.2.5", + "ts-node": "10.9.2", + "tslib": "2.8.1", + "tsup": "8.3.5", + "typescript": "5.6.3" + }, + "dependencies": { + "@ai-sdk/anthropic": "0.0.56", + "@ai-sdk/google": "0.0.55", + "@ai-sdk/google-vertex": "0.0.43", + "@ai-sdk/groq": "0.0.3", + "@ai-sdk/openai": "1.0.5", + "@anthropic-ai/sdk": "0.30.1", + "@fal-ai/client": "1.2.0", + "@types/uuid": "10.0.0", + "ai": "3.4.33", + "anthropic-vertex-ai": "1.0.2", + "fastembed": "1.14.1", + "fastestsmallesttextencoderdecoder": "1.0.22", + "gaxios": "6.7.1", + "glob": "11.0.0", + "handlebars": "^4.7.8", + "js-sha1": "0.7.0", + "js-tiktoken": "1.0.15", + "langchain": "0.3.6", + "ollama-ai-provider": "0.16.1", + "openai": "4.73.0", + "tinyld": "1.3.4", + "together-ai": "0.7.0", + "unique-names-generator": "4.7.1", + "uuid": "11.0.3", + "zod": "3.23.8" + } } diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts index 67ed1b664a0..266a609c76c 100644 --- a/packages/core/src/generation.ts +++ b/packages/core/src/generation.ts @@ -6,7 +6,9 @@ import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; import { generateObject as aiGenerateObject, generateText as aiGenerateText, + CoreTool, GenerateObjectResult, + StepResult as AIStepResult, } from "ai"; import { Buffer } from "buffer"; import { createOllama } from "ollama-ai-provider"; @@ -34,8 +36,13 @@ import { ServiceType, SearchResponse, ActionResponse, + TelemetrySettings, } from "./types.ts"; import { fal } from "@fal-ai/client"; +import { tavily } from "@tavily/core"; + +type Tool = CoreTool; +type StepResult = AIStepResult; /** * Send a message to the model for a text generateText - receive a string back and parse how you'd like @@ -54,12 +61,18 @@ export async function generateText({ runtime, context, modelClass, + tools = {}, + onStepFinish, + maxSteps = 1, stop, customSystemPrompt, }: { runtime: IAgentRuntime; context: string; modelClass: string; + tools?: Record; + onStepFinish?: (event: StepResult) => Promise | void; + maxSteps?: number; stop?: string[]; customSystemPrompt?: string; }): Promise { @@ -164,6 +177,9 @@ export async function generateText({ const max_response_length = modelConfiguration?.max_response_length || models[provider].settings.maxOutputTokens; + const experimental_telemetry = + modelConfiguration?.experimental_telemetry || + models[provider].settings.experimental_telemetry; const apiKey = runtime.token; @@ -171,7 +187,7 @@ export async function generateText({ elizaLogger.debug( `Trimming context to max length of ${max_context_length} tokens.` ); - context = await trimTokens(context, max_context_length, "gpt-4o"); + context = trimTokens(context, max_context_length, "gpt-4o"); let response: string; @@ -205,10 +221,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = openaiResponse; @@ -218,6 +238,7 @@ export async function generateText({ case ModelProviderName.GOOGLE: { const google = createGoogleGenerativeAI({ + apiKey, fetch: runtime.fetch, }); @@ -228,10 +249,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = googleResponse; @@ -254,10 +279,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = anthropicResponse; @@ -280,10 +309,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = anthropicResponse; @@ -310,10 +343,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = grokResponse; @@ -332,9 +369,13 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = groqResponse; @@ -383,9 +424,13 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = redpillResponse; @@ -410,9 +455,13 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = openrouterResponse; @@ -435,10 +484,14 @@ export async function generateText({ const { text: ollamaResponse } = await aiGenerateText({ model: ollama, prompt: context, + tools: tools, + onStepFinish: onStepFinish, temperature: temperature, + maxSteps: maxSteps, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = ollamaResponse; @@ -462,10 +515,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, temperature: temperature, maxTokens: max_response_length, + maxSteps: maxSteps, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = heuristResponse; @@ -511,10 +568,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = openaiResponse; @@ -537,10 +598,14 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, + maxSteps: maxSteps, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, + experimental_telemetry: experimental_telemetry, }); response = galadrielResponse; @@ -562,7 +627,10 @@ export async function generateText({ runtime.character.system ?? settings.SYSTEM_PROMPT ?? undefined, + tools: tools, + onStepFinish: onStepFinish, temperature: temperature, + maxSteps: maxSteps, maxTokens: max_response_length, }); @@ -966,33 +1034,35 @@ export const generateImage = async ( }); const apiKey = - runtime.imageModelProvider === runtime.modelProvider - ? runtime.token - : (() => { - // First try to match the specific provider - switch (runtime.imageModelProvider) { - case ModelProviderName.HEURIST: - return runtime.getSetting("HEURIST_API_KEY"); - case ModelProviderName.TOGETHER: - return runtime.getSetting("TOGETHER_API_KEY"); - case ModelProviderName.FAL: - return runtime.getSetting("FAL_API_KEY"); - case ModelProviderName.OPENAI: - return runtime.getSetting("OPENAI_API_KEY"); - case ModelProviderName.VENICE: - return runtime.getSetting("VENICE_API_KEY"); - case ModelProviderName.LIVEPEER: - return runtime.getSetting("LIVEPEER_GATEWAY_URL"); - default: - // If no specific match, try the fallback chain - return (runtime.getSetting("HEURIST_API_KEY") ?? - runtime.getSetting("TOGETHER_API_KEY") ?? - runtime.getSetting("FAL_API_KEY") ?? - runtime.getSetting("OPENAI_API_KEY") ?? - runtime.getSetting("VENICE_API_KEY"))?? - runtime.getSetting("LIVEPEER_GATEWAY_URL"); - } - })(); + runtime.imageModelProvider === runtime.modelProvider + ? runtime.token + : (() => { + // First try to match the specific provider + switch (runtime.imageModelProvider) { + case ModelProviderName.HEURIST: + return runtime.getSetting("HEURIST_API_KEY"); + case ModelProviderName.TOGETHER: + return runtime.getSetting("TOGETHER_API_KEY"); + case ModelProviderName.FAL: + return runtime.getSetting("FAL_API_KEY"); + case ModelProviderName.OPENAI: + return runtime.getSetting("OPENAI_API_KEY"); + case ModelProviderName.VENICE: + return runtime.getSetting("VENICE_API_KEY"); + case ModelProviderName.LIVEPEER: + return runtime.getSetting("LIVEPEER_GATEWAY_URL"); + default: + // If no specific match, try the fallback chain + return ( + runtime.getSetting("HEURIST_API_KEY") ?? + runtime.getSetting("TOGETHER_API_KEY") ?? + runtime.getSetting("FAL_API_KEY") ?? + runtime.getSetting("OPENAI_API_KEY") ?? + runtime.getSetting("VENICE_API_KEY") ?? + runtime.getSetting("LIVEPEER_GATEWAY_URL") + ); + } + })(); try { if (runtime.imageModelProvider === ModelProviderName.HEURIST) { const response = await fetch( @@ -1182,28 +1252,31 @@ export const generateImage = async ( }); return { success: true, data: base64s }; - } else if (runtime.imageModelProvider === ModelProviderName.LIVEPEER) { if (!apiKey) { throw new Error("Livepeer Gateway is not defined"); } try { const baseUrl = new URL(apiKey); - if (!baseUrl.protocol.startsWith('http')) { + if (!baseUrl.protocol.startsWith("http")) { throw new Error("Invalid Livepeer Gateway URL protocol"); } - const response = await fetch(`${baseUrl.toString()}text-to-image`, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - model_id: data.modelId || "ByteDance/SDXL-Lightning", - prompt: data.prompt, - width: data.width || 1024, - height: data.height || 1024 - }) - }); + const response = await fetch( + `${baseUrl.toString()}text-to-image`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + model_id: + data.modelId || "ByteDance/SDXL-Lightning", + prompt: data.prompt, + width: data.width || 1024, + height: data.height || 1024, + }), + } + ); const result = await response.json(); if (!result.images?.length) { throw new Error("No images generated"); @@ -1225,19 +1298,19 @@ export const generateImage = async ( } const blob = await imageResponse.blob(); const arrayBuffer = await blob.arrayBuffer(); - const base64 = Buffer.from(arrayBuffer).toString("base64"); + const base64 = + Buffer.from(arrayBuffer).toString("base64"); return `data:image/jpeg;base64,${base64}`; }) ); return { success: true, - data: base64Images + data: base64Images, }; } catch (error) { console.error(error); return { success: false, error: error }; } - } else { let targetSize = `${data.width}x${data.height}`; if ( @@ -1300,34 +1373,20 @@ export const generateWebSearch = async ( query: string, runtime: IAgentRuntime ): Promise => { - const apiUrl = "https://api.tavily.com/search"; - const apiKey = runtime.getSetting("TAVILY_API_KEY"); - try { - const response = await fetch(apiUrl, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - api_key: apiKey, - query, - include_answer: true, - max_results: 3, // 5 (default) - topic: "general", // "general"(default) "news" - search_depth: "basic", // "basic"(default) "advanced" - include_images: false, // false (default) true - }), - }); - - if (!response.ok) { - throw new elizaLogger.error( - `HTTP error! status: ${response.status}` - ); + const apiKey = runtime.getSetting("TAVILY_API_KEY") as string; + if (!apiKey) { + throw new Error("TAVILY_API_KEY is not set"); } - - const data: SearchResponse = await response.json(); - return data; + const tvly = tavily({ apiKey }); + const response = await tvly.search(query, { + includeAnswer: true, + maxResults: 3, // 5 (default) + topic: "general", // "general"(default) "news" + searchDepth: "basic", // "basic"(default) "advanced" + includeImages: false, // false (default) true + }); + return response; } catch (error) { elizaLogger.error("Error:", error); } @@ -1357,6 +1416,7 @@ interface ModelSettings { frequencyPenalty: number; presencePenalty: number; stop?: string[]; + experimental_telemetry?: TelemetrySettings; } /** @@ -1392,6 +1452,7 @@ export const generateObject = async ({ const presence_penalty = models[provider].settings.presence_penalty; const max_context_length = models[provider].settings.maxInputTokens; const max_response_length = models[provider].settings.maxOutputTokens; + const experimental_telemetry = models[provider].settings.experimental_telemetry; const apiKey = runtime.token; try { @@ -1404,6 +1465,7 @@ export const generateObject = async ({ frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, stop: stop || models[provider].settings.stop, + experimental_telemetry: experimental_telemetry, }; const response = await handleProvider({ diff --git a/packages/core/src/models.ts b/packages/core/src/models.ts index 76095334256..99e8507821a 100644 --- a/packages/core/src/models.ts +++ b/packages/core/src/models.ts @@ -395,7 +395,7 @@ export const models: Models = { }, }, [ModelProviderName.VOLENGINE]: { - endpoint: "https://open.volcengineapi.com/api/v3/", + endpoint: settings.VOLENGINE_API_URL || "https://open.volcengineapi.com/api/v3/", settings: { stop: [], maxInputTokens: 128000, @@ -405,10 +405,21 @@ export const models: Models = { temperature: 0.6, }, model: { - [ModelClass.SMALL]: "doubao-lite-128k", - [ModelClass.MEDIUM]: "doubao-pro-128k", - [ModelClass.LARGE]: "doubao-pro-128k", - [ModelClass.EMBEDDING]: "doubao-embedding", + [ModelClass.SMALL]: + settings.SMALL_VOLENGINE_MODEL || + settings.VOLENGINE_MODEL || + "doubao-lite-128k", + [ModelClass.MEDIUM]: + settings.MEDIUM_VOLENGINE_MODEL || + settings.VOLENGINE_MODEL || + "doubao-pro-128k", + [ModelClass.LARGE]: + settings.LARGE_VOLENGINE_MODEL || + settings.VOLENGINE_MODEL || + "doubao-pro-256k", + [ModelClass.EMBEDDING]: + settings.VOLENGINE_EMBEDDING_MODEL || + "doubao-embedding", }, }, [ModelProviderName.NANOGPT]: { diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts index 2ba5f016b45..37bab24adf0 100644 --- a/packages/core/src/runtime.ts +++ b/packages/core/src/runtime.ts @@ -103,6 +103,12 @@ export class AgentRuntime implements IAgentRuntime { */ imageModelProvider: ModelProviderName; + + /** + * The model to use for describing images. + */ + imageVisionModelProvider: ModelProviderName; + /** * Fetch function to use * Some environments may not have access to the global fetch function and need a custom fetch override. @@ -324,6 +330,16 @@ export class AgentRuntime implements IAgentRuntime { this.imageModelProvider ); + this.imageVisionModelProvider = + this.character.imageVisionModelProvider ?? this.modelProvider; + + elizaLogger.info("Selected model provider:", this.modelProvider); + elizaLogger.info( + "Selected image model provider:", + this.imageVisionModelProvider + ); + + // Validate model provider if (!Object.values(ModelProviderName).includes(this.modelProvider)) { elizaLogger.error("Invalid model provider:", this.modelProvider); diff --git a/packages/core/src/settings.ts b/packages/core/src/settings.ts index f6e42a1add3..d403d16379a 100644 --- a/packages/core/src/settings.ts +++ b/packages/core/src/settings.ts @@ -93,7 +93,7 @@ export function loadEnvConfig(): Settings { const result = config(envPath ? { path: envPath } : {}); if (!result.error) { - console.log(`Loaded .env file from: ${envPath}`); + elizaLogger.log(`Loaded .env file from: ${envPath}`); } // Parse namespaced settings @@ -156,10 +156,10 @@ function parseNamespacedSettings(env: Settings): NamespacedSettings { for (const [key, value] of Object.entries(env)) { if (!value) continue; - const [namespace, ...rest] = key.split('.'); + const [namespace, ...rest] = key.split("."); if (!namespace || rest.length === 0) continue; - const settingKey = rest.join('.'); + const settingKey = rest.join("."); namespaced[namespace] = namespaced[namespace] || {}; namespaced[namespace][settingKey] = value; } diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index ac3eea07edf..92bef45d223 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -165,6 +165,9 @@ export type Model = { /** Temperature setting */ temperature: number; + + /** Optional telemetry configuration (experimental) */ + experimental_telemetry?: TelemetrySettings; }; /** Optional image generation settings */ @@ -628,12 +631,38 @@ export interface IAgentConfig { [key: string]: string; } +export type TelemetrySettings = { + /** + * Enable or disable telemetry. Disabled by default while experimental. + */ + isEnabled?: boolean; + /** + * Enable or disable input recording. Enabled by default. + * + * You might want to disable input recording to avoid recording sensitive + * information, to reduce data transfers, or to increase performance. + */ + recordInputs?: boolean; + /** + * Enable or disable output recording. Enabled by default. + * + * You might want to disable output recording to avoid recording sensitive + * information, to reduce data transfers, or to increase performance. + */ + recordOutputs?: boolean; + /** + * Identifier for this function. Used to group telemetry data by function. + */ + functionId?: string; +}; + export interface ModelConfiguration { temperature?: number; max_response_length?: number; frequency_penalty?: number; presence_penalty?: number; maxInputTokens?: number; + experimental_telemetry?: TelemetrySettings; } /** @@ -658,6 +687,10 @@ export type Character = { /** Image model provider to use, if different from modelProvider */ imageModelProvider?: ModelProviderName; + + /** Image Vision model provider to use, if different from modelProvider */ + imageVisionModelProvider?: ModelProviderName; + /** Optional model endpoint override */ modelEndpointOverride?: string; @@ -755,6 +788,7 @@ export type Character = { solana?: any[]; [key: string]: any[]; }; + transcription?: TranscriptionProvider; }; /** Optional client-specific config */ @@ -1070,6 +1104,7 @@ export interface IAgentRuntime { token: string | null; modelProvider: ModelProviderName; imageModelProvider: ModelProviderName; + imageVisionModelProvider: ModelProviderName; character: Character; providers: Provider[]; actions: Action[]; @@ -1231,21 +1266,26 @@ export interface ITeeLogService extends Service { log(agentId: string, roomId: string, userId: string, type: string, content: string): Promise; } +export type SearchImage = { + url: string; + description?: string; +}; + export type SearchResult = { title: string; url: string; content: string; + rawContent?: string; score: number; - raw_content: string | null; + publishedDate?: string; }; export type SearchResponse = { + answer?: string; query: string; - follow_up_questions: string[] | null; - answer: string | null; - images: string[]; + responseTime: number; + images: SearchImage[]; results: SearchResult[]; - response_time: number; }; export enum ServiceType { @@ -1284,3 +1324,9 @@ export interface ActionResponse { export interface ISlackService extends Service { client: any; } + +export enum TranscriptionProvider { + OpenAI = "openai", + Deepgram = "deepgram", + Local = "local", +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 1ff744633b0..cca094e9991 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -9,8 +9,8 @@ export default defineConfig({ platform: "node", target: "node18", bundle: true, - splitting: true, // Add this for better code splitting - dts: true, // Generate declaration files + splitting: true, // Add this for better code splitting + dts: true, // Generate declaration files external: [ "dotenv", // Externalize dotenv to prevent bundling "fs", // Externalize fs to use Node.js built-in module @@ -18,5 +18,6 @@ export default defineConfig({ "http", "https", // Add other modules you want to externalize + "@tavily/core", ], }); diff --git a/packages/plugin-0g/README.md b/packages/plugin-0g/README.md new file mode 100644 index 00000000000..4d6503fd388 --- /dev/null +++ b/packages/plugin-0g/README.md @@ -0,0 +1,212 @@ +# @elizaos/plugin-0g + +A plugin for storing data using the 0G protocol within the ElizaOS ecosystem. + +## Description +The 0G plugin enables seamless integration with the Zero Gravity (0G) protocol for decentralized file storage. It provides functionality to upload files to the 0G network. + +## Installation + +```bash +pnpm install @elizaos/plugin-0g +``` + +## Configuration + +The plugin requires the following environment variables to be set: +```typescript +ZEROG_INDEXER_RPC=<0G indexer RPC endpoint> +ZEROG_EVM_RPC=<0G EVM RPC endpoint> +ZEROG_PRIVATE_KEY= +ZEROG_FLOW_ADDRESS=<0G Flow contract address> +``` + +## Usage + +### Basic Integration + +```typescript +import { zgPlugin } from '@ai16z/plugin-0g'; +``` + + +### File Upload Example + +```typescript +// The plugin automatically handles file uploads when triggered +// through natural language commands like: + +"Upload my document.pdf" +"Store this image.png on 0G" +"Save my resume.docx to Zero Gravity" +``` + + +## API Reference + +### Actions + +#### ZG_UPLOAD + +Uploads files to the 0G network. + +**Aliases:** +- UPLOAD_FILE_TO_ZG +- STORE_FILE_ON_ZG +- SAVE_FILE_TO_ZG +- UPLOAD_TO_ZERO_GRAVITY +- STORE_ON_ZERO_GRAVITY +- SHARE_FILE_ON_ZG +- PUBLISH_FILE_TO_ZG + +**Input Content:** +```typescript +interface UploadContent { +filePath: string; +} +``` + + +## Common Issues & Troubleshooting + +1. **File Access Errors** + - Ensure the file exists at the specified path + - Check file permissions + - Verify the path is absolute or relative to the execution context + +2. **Configuration Issues** + - Verify all required environment variables are set + - Ensure RPC endpoints are accessible + - Confirm private key has sufficient permissions + +## Security Best Practices + +1. **Environment Variables** + - Never commit private keys to version control + - Use secure environment variable management + - Rotate private keys periodically + + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run the plugin: + +```bash +pnpm run dev +``` + +## Future Enhancements + +1. **Storage Management** + - Multi-file upload optimization + - Folder structure preservation + - Automated file replication + - Storage redundancy management + - File versioning system + - Archival storage options + +2. **Content Distribution** + - CDN integration + - Bandwidth optimization + - Geographic replication + - Edge caching support + - P2P content delivery + - Streaming optimization + +3. **Data Security** + - Enhanced encryption options + - Access control lists + - Key management system + - Data integrity verification + - Secure sharing mechanisms + - Privacy-preserving features + +4. **Integration Features** + - Additional blockchain support + - Cross-chain functionality + - Smart contract integration + - NFT storage optimization + - DApp integration tools + - API expansion + +5. **Performance Optimization** + - Upload speed improvements + - Parallel processing + - Compression algorithms + - Caching mechanisms + - Network optimization + - Resource management + +6. **Developer Tools** + - Enhanced SDK features + - CLI tool improvements + - Testing framework + - Monitoring dashboard + - Analytics integration + - Documentation generator + +7. **Content Management** + - Metadata management + - Search functionality + - Content indexing + - Tag system + - Collection management + - Batch operations + +8. **Protocol Features** + - Model service deployment + - KV store implementation + - State persistence + - Database integration + - Enhanced file metadata + - Protocol governance + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Zero Gravity (0G)](https://0g.xyz/): Decentralized file storage protocol +- [IPFS](https://ipfs.tech/): InterPlanetary File System +- [Filecoin](https://filecoin.io/): Decentralized storage network +- [Flow](https://flow.com/): Blockchain for open worlds +- [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage): Storage architecture + +Special thanks to: +- The 0G Protocol development team +- The Protocol Labs team for IPFS +- The Filecoin Foundation +- The Flow blockchain team +- The decentralized storage community +- The Eliza community for their contributions and feedback + +For more information about 0G capabilities: +- [0G Documentation](https://docs.0g.xyz/) +- [IPFS Documentation](https://docs.ipfs.tech/) +- [Filecoin Docs](https://docs.filecoin.io/) +- [Flow Documentation](https://developers.flow.com/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-0g/readme.md b/packages/plugin-0g/readme.md deleted file mode 100644 index cf24cc94ce2..00000000000 --- a/packages/plugin-0g/readme.md +++ /dev/null @@ -1,127 +0,0 @@ -# @elizaos/plugin-0g - -A plugin for storing data using the 0G protocol within the ElizaOS ecosystem. - -## Description -The 0G plugin enables seamless integration with the Zero Gravity (0G) protocol for decentralized file storage. It provides functionality to upload files to the 0G network. - -## Installation - -```bash -pnpm install @elizaos/plugin-0g -``` - -## Configuration - -The plugin requires the following environment variables to be set: -```typescript -ZEROG_INDEXER_RPC=<0G indexer RPC endpoint> -ZEROG_EVM_RPC=<0G EVM RPC endpoint> -ZEROG_PRIVATE_KEY= -ZEROG_FLOW_ADDRESS=<0G Flow contract address> -``` - -## Usage - -### Basic Integration - -```typescript -import { zgPlugin } from '@ai16z/plugin-0g'; -``` - - -### File Upload Example - -```typescript -// The plugin automatically handles file uploads when triggered -// through natural language commands like: - -"Upload my document.pdf" -"Store this image.png on 0G" -"Save my resume.docx to Zero Gravity" -``` - - -## API Reference - -### Actions - -#### ZG_UPLOAD - -Uploads files to the 0G network. - -**Aliases:** -- UPLOAD_FILE_TO_ZG -- STORE_FILE_ON_ZG -- SAVE_FILE_TO_ZG -- UPLOAD_TO_ZERO_GRAVITY -- STORE_ON_ZERO_GRAVITY -- SHARE_FILE_ON_ZG -- PUBLISH_FILE_TO_ZG - -**Input Content:** -```typescript -interface UploadContent { -filePath: string; -} -``` - - -## Common Issues & Troubleshooting - -1. **File Access Errors** - - Ensure the file exists at the specified path - - Check file permissions - - Verify the path is absolute or relative to the execution context - -2. **Configuration Issues** - - Verify all required environment variables are set - - Ensure RPC endpoints are accessible - - Confirm private key has sufficient permissions - -## Security Best Practices - -1. **Environment Variables** - - Never commit private keys to version control - - Use secure environment variable management - - Rotate private keys periodically - - -## Development Guide - -### Setting Up Development Environment - -1. Clone the repository -2. Install dependencies: - -```bash -pnpm install -``` - -3. Build the plugin: - -```bash -pnpm run build -``` - -4. Run the plugin: - -```bash -pnpm run dev -``` - -## Future Enhancements - -- Model service deployment on 0G serving network -- 0G KV store for plugin state persistence -- Upload history and file metadata storage -- 0G as a database option for Eliza state storage -- Enhanced file path and context extraction - -## Contributing - -Contributions are welcome! Please see our contributing guidelines for more details. - -## License - -[License information needed] \ No newline at end of file diff --git a/packages/plugin-3d-generation/README.md b/packages/plugin-3d-generation/README.md new file mode 100644 index 00000000000..c10c34d548e --- /dev/null +++ b/packages/plugin-3d-generation/README.md @@ -0,0 +1,208 @@ +# @elizaos/plugin-3d-generation + +A plugin for generating 3D models using the FAL.ai API within the ElizaOS ecosystem. + +## Description +The 3D Generation plugin enables AI-powered creation of 3D models through FAL.ai's services. It provides functionality to generate 3D models from text descriptions and save them locally. + +## Installation + +```bash +pnpm install @elizaos/plugin-3d-generation +``` + +## Configuration + +The plugin requires the following environment variable or runtime setting to be set: +```typescript +FAL_API_KEY= +``` + +## Usage + +### Basic Integration + +```typescript +import { ThreeDGenerationPlugin } from '@elizaos/plugin-3d-generation'; +``` + +### Model Generation Examples + +```typescript +// The plugin responds to natural language commands like: + +"Generate a 3D object of a cat playing piano" +"Create a 3D object of an anime character Goku" +"Make a 3D model of [your description]" +``` + +## API Reference + +### Actions + +#### GENERATE_3D + +Generates 3D models based on text descriptions. + +**Aliases:** +- 3D_GENERATION +- 3D_GEN +- CREATE_3D +- MAKE_3D +- TEXT23D +- TEXT_TO_3D +- 3D_CREATE +- 3D_MAKE + +**Default Configuration:** +```typescript +{ + geometry_file_format: "glb", // Available: glb, usdz, fbx, obj, stl + material: "PBR", // Available: PBR, Shaded + quality: "medium", // Available: extra-low, low, medium, high + tier: "Regular" // Available: Regular, Sketch +} +``` + +## Common Issues & Troubleshooting + +1. **Generation Failures** + - Verify FAL API key is correctly set + - Ensure prompt is descriptive (minimum 3 characters) + - Check network connectivity to FAL.ai services + +2. **Storage Issues** + - Verify write permissions to content_cache directory + - Ensure sufficient disk space + - Check if content_cache directory exists + +## Security Best Practices + +1. **API Key Management** + - Store FAL API key securely using runtime settings or environment variables + - Never commit API keys to version control + - Monitor API usage + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run the plugin: + +```bash +pnpm run dev +``` + +## Future Enhancements + +1. **Advanced Generation Features** + - Multi-object scene generation + - Texture customization options + - Animation support + - Material property controls + - Advanced lighting systems + - Physics-based rendering + +2. **Model Optimization** + - Automatic mesh simplification + - LOD (Level of Detail) generation + - Texture compression + - File size optimization + - Performance profiling + - Mobile-friendly exports + +3. **Format Support** + - Additional file format exports + - Custom format converters + - Batch format conversion + - Format-specific optimizations + - Metadata preservation + - Version control integration + +4. **AI Improvements** + - Enhanced prompt understanding + - Style transfer capabilities + - Real-time generation + - Multi-model support + - Quality improvements + - Consistency controls + +5. **Scene Management** + - Scene composition tools + - Environment management + - Asset library integration + - Scene presets + - Batch processing + - Scene version control + +6. **Developer Tools** + - API expansion + - Testing framework + - Documentation generator + - Debug visualization + - Performance monitoring + - Integration templates + +7. **Rendering Features** + - Real-time preview + - Custom shader support + - Post-processing effects + - Render queue management + - Batch rendering + - Cloud rendering options + +8. **Collaboration Features** + - Asset sharing + - Version control + - Team workspace + - Review system + - Access control + - Change tracking + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [FAL.ai](https://fal.ai/): AI model deployment platform +- [Three.js](https://threejs.org/): 3D graphics library +- [glTF](https://www.khronos.org/gltf/): 3D file format standard +- [USD](https://graphics.pixar.com/usd/): Universal Scene Description +- [Blender](https://www.blender.org/): 3D creation suite + +Special thanks to: +- The FAL.ai team for AI infrastructure +- The Three.js development community +- The Khronos Group for glTF standards +- The Pixar USD team +- The Blender Foundation +- The Eliza community for their contributions and feedback + +For more information about 3D generation capabilities: +- [FAL.ai Documentation](https://fal.ai/docs) +- [Three.js Documentation](https://threejs.org/docs/) +- [glTF Specification](https://github.com/KhronosGroup/glTF) +- [USD Documentation](https://graphics.pixar.com/usd/docs/index.html) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-abstract/README.md b/packages/plugin-abstract/README.md new file mode 100644 index 00000000000..9a1f0539cfd --- /dev/null +++ b/packages/plugin-abstract/README.md @@ -0,0 +1,199 @@ +# @elizaos/plugin-abstract + +A plugin for interacting with the Abstract blockchain network within the ElizaOS ecosystem. + +## Description +The Abstract plugin enables seamless token transfers on the Abstract testnet. It provides functionality to transfer both native ETH and ERC20 tokens using secure wallet operations. + +## Installation + +```bash +pnpm install @elizaos/plugin-abstract +``` + +## Configuration + +The plugin requires the following environment variables to be set: +```typescript +ABSTRACT_ADDRESS= +ABSTRACT_PRIVATE_KEY= +``` + +## Usage + +### Basic Integration + +```typescript +import { abstractPlugin } from '@elizaos/plugin-abstract'; +``` + +### Transfer Examples + +```typescript +// The plugin responds to natural language commands like: + +"Send 100 USDC to 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62" +"Transfer 0.1 ETH to 0xbD8679cf79137042214fA4239b02F4022208EE82" +"Pay 50 USDC on Abstract to [address]" +``` + +## API Reference + +### Actions + +#### SEND_TOKEN + +Transfers tokens from the agent's wallet to another address. + +**Aliases:** +- TRANSFER_TOKEN_ON_ABSTRACT +- TRANSFER_TOKENS_ON_ABSTRACT +- SEND_TOKENS_ON_ABSTRACT +- SEND_ETH_ON_ABSTRACT +- PAY_ON_ABSTRACT +- MOVE_TOKENS_ON_ABSTRACT +- MOVE_ETH_ON_ABSTRACT + +## Common Issues & Troubleshooting + +1. **Transaction Failures** + - Verify wallet has sufficient balance + - Check recipient address format + - Ensure private key is correctly set + - Verify network connectivity + +2. **Configuration Issues** + - Verify all required environment variables are set + - Ensure private key format is correct + - Check wallet address format + +## Security Best Practices + +1. **Private Key Management** + - Store private key securely using environment variables + - Never commit private keys to version control + - Use separate wallets for development and production + - Monitor wallet activity regularly + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run the plugin: + +```bash +pnpm run dev +``` + +## Future Enhancements + +1. **Smart Account Features** + - Multi-signature support + - Account recovery mechanisms + - Batch transaction processing + - Advanced permission management + - Account abstraction improvements + - Social recovery options + +2. **CosmWasm Integration** + - Contract deployment templates + - Smart contract verification tools + - Contract upgrade system + - Testing framework improvements + - Gas optimization tools + - Contract interaction templates + +3. **IBC Operations** + - Cross-chain transfer optimization + - IBC relayer monitoring + - Channel management tools + - Packet tracking system + - Timeout handling improvements + - Cross-chain messaging + +4. **DEX Integration** + - Advanced swap routing + - Liquidity pool management + - Yield farming automation + - Price impact analysis + - Slippage protection + - AMM optimization + +5. **Security Enhancements** + - Transaction simulation + - Risk assessment tools + - Rate limiting controls + - Fraud detection system + - Emergency shutdown features + - Audit integration tools + +6. **Developer Tools** + - Enhanced debugging capabilities + - Documentation generator + - CLI tool improvements + - Testing utilities + - Deployment automation + - Performance profiling + +7. **Analytics and Monitoring** + - Transaction tracking dashboard + - Network statistics + - Performance metrics + - Gas usage optimization + - Custom reporting tools + - Real-time monitoring + +8. **Wallet Management** + - Multiple wallet support + - Hardware wallet integration + - Address book features + - Transaction history analysis + - Balance monitoring + - Token management tools + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Abstract](https://abstract.money/): Smart account infrastructure +- [CosmWasm](https://cosmwasm.com/): Smart contract platform +- [Cosmos SDK](https://v1.cosmos.network/sdk): Blockchain application framework +- [IBC Protocol](https://ibcprotocol.org/): Inter-blockchain communication +- [Osmosis](https://osmosis.zone/): DEX infrastructure + +Special thanks to: +- The Abstract development team +- The CosmWasm core developers +- The Cosmos SDK maintainers +- The IBC Protocol team +- The Osmosis DEX team +- The Eliza community for their contributions and feedback + +For more information about Abstract capabilities: +- [Abstract Documentation](https://docs.abstract.money/) +- [CosmWasm Documentation](https://docs.cosmwasm.com/) +- [Cosmos SDK Docs](https://docs.cosmos.network/) +- [IBC Protocol Docs](https://ibc.cosmos.network/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-abstract/package.json b/packages/plugin-abstract/package.json index ab9b49b7896..d8981b49303 100644 --- a/packages/plugin-abstract/package.json +++ b/packages/plugin-abstract/package.json @@ -7,8 +7,7 @@ "dependencies": { "@elizaos/core": "workspace:*", "tsup": "^8.3.5", - "web3": "^4.15.0", - "viem": "2.21.53" + "web3": "^4.15.0" }, "scripts": { "build": "tsup --format esm --dts" diff --git a/packages/plugin-aptos/README.md b/packages/plugin-aptos/README.md new file mode 100644 index 00000000000..d6a10fa986c --- /dev/null +++ b/packages/plugin-aptos/README.md @@ -0,0 +1,231 @@ +# @elizaos/plugin-aptos + +A plugin for interacting with the Aptos blockchain network within the ElizaOS ecosystem. + +## Description +The Aptos plugin enables seamless token transfers and wallet management on the Aptos blockchain. It provides functionality to transfer APT tokens and monitor wallet balances with real-time price tracking. + +## Installation + +```bash +pnpm install @elizaos/plugin-aptos +``` + +## Configuration + +The plugin requires the following environment variables to be set: +```typescript +APTOS_PRIVATE_KEY= +APTOS_NETWORK=<"mainnet" | "testnet"> +``` + +## Usage + +### Basic Integration + +```typescript +import { aptosPlugin, WalletProvider, TransferAptosToken } from '@elizaos/plugin-aptos'; +``` + +### Transfer Examples + +```typescript +// The plugin responds to natural language commands like: + +"Send 69 APT tokens to 0x4f2e63be8e7fe287836e29cde6f3d5cbc96eefd0c0e3f3747668faa2ae7324b0" +"Transfer APT to [address]" +"Pay [amount] APT to [recipient]" +``` + +## API Reference + +### Actions + +#### SEND_TOKEN + +Transfers APT tokens from the agent's wallet to another address. + +**Aliases:** +- TRANSFER_TOKEN +- TRANSFER_TOKENS +- SEND_TOKENS +- SEND_APT +- PAY + +**Configuration:** +```typescript +{ + APT_DECIMALS: 8 // Decimal places for APT token +} +``` + +### Providers + +#### WalletProvider + +Provides wallet information and portfolio tracking. + +**Features:** +- Real-time APT price tracking +- Portfolio value calculation +- Cached wallet information (5-minute TTL) +- Formatted portfolio reports + +## Common Issues & Troubleshooting + +1. **Transaction Failures** + - Verify wallet has sufficient APT balance + - Check recipient address format + - Ensure private key is correctly set + - Verify network connectivity + +2. **Price Fetching Issues** + - Check connection to DexScreener API + - Verify cache functionality + - Monitor retry mechanism (3 attempts with exponential backoff) + +## Security Best Practices + +1. **Private Key Management** + - Store private key securely using environment variables + - Never commit private keys to version control + - Use separate wallets for development and production + - Monitor wallet activity regularly + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run tests: + +```bash +pnpm run test +``` + +5. Development mode: + +```bash +pnpm run dev +``` + +## Dependencies + +- @aptos-labs/ts-sdk: ^1.26.0 +- bignumber.js: 9.1.2 +- node-cache: 5.1.2 + +## Future Enhancements + +The following features and improvements are planned for future releases: + +1. **Advanced Token Operations** + - Batch token transfers + - Token creation templates + - NFT minting and management + - Token metadata management + - Custom tokenomics implementation + - Token upgrade mechanisms + +2. **DeFi Integration** + - Liquidity pool management + - Yield farming automation + - Staking optimization + - AMM integration + - Cross-chain bridges + - Price impact analysis + +3. **Move Contract Management** + - Contract deployment tools + - Contract verification + - Contract upgrade system + - Testing framework + - Gas optimization tools + - Security audit integration + +4. **Wallet Enhancements** + - Multi-wallet support + - Hardware wallet integration + - Transaction batching + - Address book management + - Custom signature schemes + - Account abstraction + +5. **Price Feed Improvements** + - Additional data sources + - Real-time price alerts + - Historical data analysis + - Custom price aggregation + - Price prediction tools + - Market sentiment analysis + +6. **Developer Tools** + - Enhanced debugging capabilities + - Move language IDE integration + - Documentation generator + - Performance profiling + - Testing utilities + - Deployment automation + +7. **Security Features** + - Transaction simulation + - Risk assessment tools + - Rate limiting controls + - Fraud detection + - Emergency shutdown + - Multi-signature support + +8. **Analytics and Monitoring** + - Transaction tracking + - Portfolio analytics + - Network statistics + - Gas usage optimization + - Performance metrics + - Custom reporting tools + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Aptos](https://aptoslabs.com/): Layer 1 blockchain platform +- [@aptos-labs/ts-sdk](https://github.com/aptos-labs/aptos-core/tree/main/ecosystem/typescript/sdk): Official TypeScript SDK +- [Petra Wallet](https://petra.app/): Aptos wallet integration +- [DexScreener](https://dexscreener.com/): Price feed integration +- [Move Language](https://github.com/move-language/move): Smart contract language + +Special thanks to: +- The Aptos Labs team for developing the blockchain +- The Petra Wallet development team +- The DexScreener team for price data +- The Move language developers +- The Aptos Developer community +- The Eliza community for their contributions and feedback + +For more information about Aptos capabilities: +- [Aptos Documentation](https://aptos.dev/) +- [Move Language Guide](https://move-language.github.io/move/) +- [Petra Wallet Docs](https://petra.app/docs) +- [DexScreener API](https://docs.dexscreener.com/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-avalanche/README.md b/packages/plugin-avalanche/README.md new file mode 100644 index 00000000000..4b1fa676b25 --- /dev/null +++ b/packages/plugin-avalanche/README.md @@ -0,0 +1,227 @@ +# @elizaos/plugin-avalanche + +A plugin for interacting with the Avalanche blockchain network within the ElizaOS ecosystem. + +## Description +The Avalanche plugin enables comprehensive DeFi operations on the Avalanche network, including token transfers, YAK swaps, yield strategy management, and token creation via Token Mill. + +## Installation + +```bash +pnpm install @elizaos/plugin-avalanche +``` + +## Configuration + +The plugin requires the following environment variable: +```typescript +AVALANCHE_PRIVATE_KEY= +``` + +## Features + +### 1. Token Transfers +- Send native AVAX and ERC20 tokens +- Support for multiple token standards +- Built-in address validation + +### 2. YAK Swaps +- Decentralized token swaps +- Automatic best path finding +- Slippage protection (default: 0.2%) +- Support for all major tokens + +### 3. Yield Strategies +- Deposit tokens into yield-generating strategies +- Support for multiple strategies including: + - YAK staking + - USDC Benqi + - gmYAK Token Mill + - PRINCESS staking + - JOE staking + +### 4. Token Mill +- Create new tokens +- Configure custom tokenomics +- Automatic market creation + +## Supported Tokens + +```typescript +const TOKENS = { + AVAX: "0x0000000000000000000000000000000000000000", + WAVAX: "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7", + YAK: "0x59414b3089ce2AF0010e7523Dea7E2b35d776ec7", + gmYAK: "0x3A30784c1af928CdFce678eE49370220aA716DC3", + USDC: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E", + // ... and more +} +``` + +## Usage Examples + +### Token Transfer +```typescript +// Send AVAX +"Send 10 AVAX to 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" + +// Send ERC20 +"Transfer 100 USDC to [address]" +``` + +### YAK Swap +```typescript +// Swap tokens +"Swap 1 AVAX for USDC" +"Swap 10 USDC for gmYAK" +``` + +### Yield Strategy +```typescript +// Deposit into strategies +"Deposit 1 USDC into the strategy" +"Deposit 10 gmYAK to earn yield" +``` + +### Token Creation +```typescript +// Create new token +"Create a new memecoin called 'Test Token' with the symbol 'TEST'" +``` + +## Providers + +### 1. Wallet Provider +- Displays wallet balances +- Shows tokens in yield strategies +- Real-time balance updates + +### 2. Strategies Provider +- Lists available yield strategies +- Shows deposit token requirements + +### 3. Tokens Provider +- Lists supported tokens +- Shows token addresses + +## Development + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run linting: +```bash +pnpm run lint +``` + +## Dependencies +- viem: ^2.21.49 +- @elizaos/core: workspace:* + +## Future Enhancements + +1. **Advanced DeFi Operations** + - Multi-hop yield strategies + - Auto-compounding features + - Yield optimization algorithms + - Risk assessment tools + - Portfolio rebalancing automation + - Cross-chain yield farming + +2. **Enhanced Token Management** + - Batch token operations + - Advanced token creation templates + - Token migration tools + - Automated token listing + - Token analytics dashboard + - Custom tokenomics implementation + +3. **YAK Protocol Integration** + - Advanced routing algorithms + - MEV protection features + - Gas optimization strategies + - Liquidity analysis tools + - Price impact predictions + - Custom trading strategies + +4. **Benqi Protocol Features** + - Collateral optimization + - Liquidation protection + - Interest rate monitoring + - Position management tools + - Risk assessment dashboard + - Auto-repayment features + +5. **Token Mill Improvements** + - Advanced token customization + - Automated market making + - Token distribution tools + - Vesting schedule management + - Governance token features + - Token upgrade mechanisms + +6. **Security Enhancements** + - Transaction simulation + - Smart contract auditing tools + - Real-time monitoring + - Automated safety checks + - Emergency shutdown features + - Multi-signature support + +7. **Developer Tools** + - Enhanced debugging capabilities + - Testing framework improvements + - Documentation generator + - CLI tools for common operations + - Integration templates + - Performance monitoring + +8. **Analytics and Reporting** + - Portfolio tracking + - Performance metrics + - Gas usage optimization + - Transaction history analysis + - Yield comparison tools + - Risk assessment reports + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Avalanche](https://www.avax.network/): High-performance blockchain platform +- [avalanchejs](https://github.com/ava-labs/avalanchejs): Official Avalanche JavaScript library +- [YAK Protocol](https://yak.exchange/): Decentralized exchange aggregator +- [Benqi](https://benqi.fi/): Lending and borrowing protocol +- [Token Mill](https://tokenmill.xyz/): Token creation platform + +Special thanks to: +- The Ava Labs team for developing Avalanche +- The YAK Protocol development team +- The Benqi protocol developers +- The Token Mill platform team +- The Avalanche Developer community +- The Eliza community for their contributions and feedback + +For more information about Avalanche capabilities: +- [Avalanche Documentation](https://docs.avax.network/) +- [YAK Protocol Docs](https://yak.exchange/docs) +- [Benqi Documentation](https://docs.benqi.fi/) +- [Token Mill Guide](https://docs.tokenmill.xyz/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-avalanche/package.json b/packages/plugin-avalanche/package.json index 088a63a6b34..d55640b5c1d 100644 --- a/packages/plugin-avalanche/package.json +++ b/packages/plugin-avalanche/package.json @@ -5,8 +5,7 @@ "type": "module", "types": "dist/index.d.ts", "dependencies": { - "@elizaos/core": "workspace:*", - "viem": "2.21.49" + "@elizaos/core": "workspace:*" }, "devDependencies": { "tsup": "8.3.5" diff --git a/packages/plugin-bootstrap/README.md b/packages/plugin-bootstrap/README.md new file mode 100644 index 00000000000..9fdeb69d7b2 --- /dev/null +++ b/packages/plugin-bootstrap/README.md @@ -0,0 +1,160 @@ +# @elizaos/plugin-bootstrap + +A plugin providing core functionality and basic actions for ElizaOS agents. + +## Description +The Bootstrap plugin enables fundamental agent behaviors including conversation management, room interactions, and fact tracking. It provides essential actions and evaluators that form the foundation of agent interactions. + +## Installation + +```bash +pnpm install @elizaos/plugin-bootstrap +``` + +## Features + +### 1. Conversation Management +- NONE action for basic responses +- CONTINUE action for follow-ups +- IGNORE action for appropriate disengagement +- Built-in conversation flow control + +### 2. Room Control +- Follow/Unfollow room functionality +- Mute/Unmute capabilities +- Automatic engagement level tracking +- Smart participation management + +### 3. Fact Management +- Automatic fact extraction +- Categorization of claims +- Deduplication of known information +- Support for multiple fact types: + - Permanent facts + - Status updates + - Opinions + - Biographical information + +### 4. Goal Tracking +- Track objective progress +- Update goal statuses +- Monitor completion states +- Automatic progress evaluation + +## Providers + +### 1. Boredom Provider +- Tracks engagement levels +- Provides status messages +- Monitors conversation quality +- Adjusts participation accordingly + +### 2. Facts Provider +- Manages fact database +- Retrieves relevant information +- Formats fact summaries +- Maintains fact context + +### 3. Time Provider +- Provides UTC timestamps +- Human-readable formatting +- Time-based operation support + +## Development + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run linting: +```bash +pnpm run lint +``` + +## Dependencies +- @elizaos/core: workspace:* + +## Future Enhancements + +1. **Enhanced Conversation Management** + - Advanced context tracking + - Multi-thread conversation support + - Conversation state persistence + - Improved conversation flow control + - Natural language understanding improvements + +2. **Advanced Room Control** + - Dynamic room creation and management + - Room permission system + - Advanced moderation tools + - Room analytics and insights + - Cross-room communication features + +3. **Expanded Fact Management** + - Enhanced fact verification system + - Fact relationship mapping + - Automated fact updating + - Fact confidence scoring + - Cross-reference system + - Fact expiration management + +4. **Goal System Improvements** + - Multi-step goal planning + - Goal dependency tracking + - Progress visualization + - Goal priority management + - Automated milestone tracking + - Goal optimization suggestions + +5. **Provider Enhancements** + - Improved boredom detection + - Advanced engagement metrics + - Enhanced fact retrieval algorithms + - Real-time status updates + - Provider performance analytics + +6. **Memory Management** + - Enhanced memory prioritization + - Memory compression techniques + - Long-term memory storage + - Memory relationship mapping + - Context-aware recall + +7. **Developer Tools** + - Enhanced debugging capabilities + - Testing framework improvements + - Plugin development templates + - Documentation generator + - Performance profiling tools + +8. **Integration Features** + - Enhanced plugin interoperability + - External service connectors + - API gateway integration + - Webhook system improvements + - Third-party platform support + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +Special thanks to: +- The Eliza Core development team +- The Eliza community for their contributions and feedback + + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-bootstrap/src/actions/continue.ts b/packages/plugin-bootstrap/src/actions/continue.ts index 24dca5d1422..29d41504bec 100644 --- a/packages/plugin-bootstrap/src/actions/continue.ts +++ b/packages/plugin-bootstrap/src/actions/continue.ts @@ -91,19 +91,61 @@ export const continueAction: Action = { options: any, callback: HandlerCallback ) => { - if ( - message.content.text.endsWith("?") || - message.content.text.endsWith("!") - ) { - return; - } - if (!state) { state = (await runtime.composeState(message)) as State; } - state = await runtime.updateRecentMessageState(state); + // Get the agent's recent messages + const agentMessages = state.recentMessagesData + .filter((m: { userId: any }) => m.userId === runtime.agentId) + .sort((a: Memory, b: Memory) => { + // Sort by timestamp if available, assuming newer messages have higher timestamps + const aTime = a.createdAt || 0; + const bTime = b.createdAt || 0; + return bTime - aTime; + }); + + // Check for immediate double response (responding twice in a row to the same message) + const lastAgentMessage = agentMessages[0]; + + if (lastAgentMessage?.content?.inReplyTo === message.id) { + // If our last message was already a response to this message, only allow continue if: + // 1. The last message had a CONTINUE action + // 2. We haven't hit the maxContinuesInARow limit + const continueCount = agentMessages + .filter((m: Memory) => m.content?.inReplyTo === message.id) + .filter((m: Memory) => m.content?.action === 'CONTINUE') + .length; + + if (continueCount >= maxContinuesInARow) { + elizaLogger.log(`[CONTINUE] Max continues (${maxContinuesInARow}) reached for this message chain`); + return; + } + + if (lastAgentMessage.content?.action !== 'CONTINUE') { + elizaLogger.log(`[CONTINUE] Last message wasn't a CONTINUE, preventing double response`); + return; + } + } + + // Check if our last message or message ended with a question/exclamation and warrants a stop + if ((lastAgentMessage && lastAgentMessage.content.text && + (lastAgentMessage.content.text.endsWith("?") || + lastAgentMessage.content.text.endsWith("!"))) || (message.content.text.endsWith("?") || message.content.text.endsWith("!"))) { + elizaLogger.log(`[CONTINUE] Last message had question/exclamation. Not proceeding.`); + return; + } + + // Prevent exact duplicate messages + const messageExists = agentMessages + .slice(0, maxContinuesInARow + 1) + .some((m: { content: any }) => m.content.text === message.content.text); + + if (messageExists) { + return; + } + async function _shouldContinue(state: State): Promise { // If none of the above conditions are met, use the generateText to decide const shouldRespondContext = composeContext({ @@ -120,12 +162,14 @@ export const continueAction: Action = { return response; } + // Use AI to determine if we should continue const shouldContinue = await _shouldContinue(state); if (!shouldContinue) { - elizaLogger.log("Not elaborating, returning"); + elizaLogger.log("[CONTINUE] Not elaborating, returning"); return; } + // Generate and send response const context = composeContext({ state, template: @@ -150,32 +194,17 @@ export const continueAction: Action = { type: "continue", }); - // prevent repetition - const messageExists = state.recentMessagesData - .filter((m: { userId: any }) => m.userId === runtime.agentId) - .slice(0, maxContinuesInARow + 1) - .some((m: { content: any }) => m.content === message.content); - - if (messageExists) { - return; - } - await callback(response); - // if the action is CONTINUE, check if we are over maxContinuesInARow + // Check if we need to clear the CONTINUE action if (response.action === "CONTINUE") { - const agentMessages = state.recentMessagesData - .filter((m: { userId: any }) => m.userId === runtime.agentId) - .map((m: { content: any }) => (m.content as Content).action); + const continueCount = agentMessages + .slice(0, maxContinuesInARow) + .filter((m: Memory) => m.content?.action === 'CONTINUE') + .length; - const lastMessages = agentMessages.slice(0, maxContinuesInARow); - if (lastMessages.length >= maxContinuesInARow) { - const allContinues = lastMessages.every( - (m: string | undefined) => m === "CONTINUE" - ); - if (allContinues) { - response.action = null; - } + if (continueCount >= maxContinuesInARow - 1) { // -1 because we're about to add another + response.action = null; } } @@ -598,4 +627,4 @@ export const continueAction: Action = { }, ], ] as ActionExample[][], -} as Action; +} as Action; \ No newline at end of file diff --git a/packages/plugin-bootstrap/src/evaluators/fact.ts b/packages/plugin-bootstrap/src/evaluators/fact.ts index 70b5b450607..b2ad61e7d24 100644 --- a/packages/plugin-bootstrap/src/evaluators/fact.ts +++ b/packages/plugin-bootstrap/src/evaluators/fact.ts @@ -162,7 +162,7 @@ None`, }, }, ] as ActionExample[], - outcome: `{ "claim": "{{user1}} is from Oakland", "type": "fact", "in_bio": false, "already_known": false },`, + outcome: `{ "claim": "{{user2}} is from Oakland", "type": "fact", "in_bio": false, "already_known": false },`, }, { context: `Actors in the scene: diff --git a/packages/plugin-coinbase/README.md b/packages/plugin-coinbase/README.md new file mode 100644 index 00000000000..78ac8cb4878 --- /dev/null +++ b/packages/plugin-coinbase/README.md @@ -0,0 +1,198 @@ +# @elizaos/plugin-coinbase + +A comprehensive Coinbase integration plugin for ElizaOS that provides access to Coinbase's various APIs and services. + +## Features + +- **Commerce Integration**: Create and manage payment charges using Coinbase Commerce +- **Trading**: Execute trades and swaps between different assets +- **Token Contract Management**: Deploy and interact with ERC20, ERC721, and ERC1155 smart contracts +- **Mass Payments**: Process bulk transfers and payments to multiple addresses +- **Advanced Trading**: Access to Coinbase Advanced Trading API features +- **Webhook Management**: Create and manage webhooks for various blockchain events + +## Installation + +```bash +npm install @elizaos/plugin-coinbase +``` + +## Configuration + +The plugin requires several environment variables to be set: + +```env +COINBASE_API_KEY=your_api_key +COINBASE_PRIVATE_KEY=your_private_key +COINBASE_COMMERCE_KEY=your_commerce_key +COINBASE_NOTIFICATION_URI=your_webhook_notification_uri +``` + +## Usage + +```typescript +import { plugins } from '@elizaos/plugin-coinbase'; + +// Register all plugins +const { + coinbaseMassPaymentsPlugin, + coinbaseCommercePlugin, + tradePlugin, + tokenContractPlugin, + webhookPlugin, + advancedTradePlugin +} = plugins; + +// Register individual plugins as needed +runtime.registerPlugin(coinbaseCommercePlugin); +runtime.registerPlugin(tradePlugin); +// etc... +``` + +## Available Plugins + +### Commerce Plugin +- Create charges with fixed or dynamic pricing +- Support for multiple currencies (USD, EUR, USDC) +- Charge status tracking and management + +### Trade Plugin +- Execute basic trades between assets +- Support for market and limit orders +- Transaction logging and tracking + +### Token Contract Plugin +- Deploy ERC20, ERC721, and ERC1155 contracts +- Interact with deployed contracts +- Read contract data and balances + +### Mass Payments Plugin +- Process bulk transfers to multiple addresses +- Support for various assets and networks +- Transaction logging and CSV export + +### Advanced Trade Plugin +- Access to advanced trading features +- Support for complex order types +- Detailed trade history and tracking + +### Webhook Plugin +- Create and manage blockchain event webhooks +- Support for various event types and filters +- Webhook status tracking and logging + +## Supported Networks + +- Base (Mainnet & Sepolia) +- Ethereum (Mainnet & Holesky) +- Polygon Mainnet +- Solana (Mainnet & Devnet) +- Arbitrum Mainnet +- And more... + +## CSV Logging + +The plugin automatically logs various operations to CSV files: +- `trades.csv`: Trading operations +- `transactions.csv`: Mass payment transactions +- `webhooks.csv`: Webhook configurations +- `advanced_trades.csv`: Advanced trading operations + +## Dependencies + +- `@elizaos/core`: Core ElizaOS functionality +- `coinbase-api`: Coinbase API integration +- `coinbase-advanced-sdk`: Coinbase Advanced Trading SDK +- Additional type definitions and utilities + +## Future Enhancements + +1. **Advanced Trading Features** + - Real-time market data streaming + - Advanced order types (OCO, trailing stop) + - Portfolio rebalancing automation + - Custom trading strategies implementation + - Multi-exchange arbitrage support + +2. **Enhanced Commerce Integration** + - Subscription payment handling + - Multi-currency checkout optimization + - Advanced refund management + - Custom payment flow templates + - Automated invoice generation + +3. **Improved Token Management** + - Batch token operations + - Gas optimization for token contracts + - Token metadata management system + - Automated token listing process + - Smart contract deployment templates + +4. **Security Enhancements** + - Advanced API key management + - Multi-signature support + - Transaction monitoring system + - Risk assessment tools + - Rate limiting improvements + +5. **Analytics and Reporting** + - Custom report generation + - Trading performance analytics + - Payment flow analytics + - Real-time monitoring dashboard + - Historical data analysis tools + +6. **Webhook Management** + - Enhanced event filtering + - Retry mechanism improvements + - Webhook monitoring dashboard + - Custom webhook templates + - Event batching support + +7. **Developer Tools** + - SDK expansion + - Testing environment improvements + - Documentation generator + - CLI tools for common operations + - Integration templates + +8. **Cross-Platform Integration** + - Mobile SDK support + - Browser extension support + - Desktop application integration + - IoT device support + - Cross-chain bridging capabilities + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Coinbase](https://www.coinbase.com/): Digital currency exchange platform +- [Coinbase Commerce](https://commerce.coinbase.com/): Cryptocurrency payment solution +- [Coinbase Cloud](https://www.coinbase.com/cloud): Blockchain infrastructure +- [Coinbase Advanced Trade API](https://docs.cloud.coinbase.com/advanced-trade-api/): Trading interface +- [Coinbase Prime](https://prime.coinbase.com/): Institutional trading platform + +Special thanks to: +- The Coinbase development team +- The Coinbase Commerce team +- The Coinbase Cloud infrastructure team +- The Advanced Trade API maintainers +- The Eliza community for their contributions and feedback + +For more information about Coinbase capabilities: +- [Coinbase API Documentation](https://docs.cloud.coinbase.com/) +- [Commerce API Reference](https://docs.cloud.coinbase.com/commerce/reference/) +- [Advanced Trade Documentation](https://docs.cloud.coinbase.com/advanced-trade-api/) +- [Coinbase Prime Documentation](https://docs.prime.coinbase.com/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-conflux/README.md b/packages/plugin-conflux/README.md index bb71cf11744..fd60a605a35 100644 --- a/packages/plugin-conflux/README.md +++ b/packages/plugin-conflux/README.md @@ -1,25 +1,217 @@ # @elizaos/plugin-conflux -This plugin provides actions and providers for interacting with the [Conflux network](https://www.confluxdocs.com/docs/general). +A plugin for interacting with the Conflux blockchain network within the ElizaOS ecosystem. -## Actions +## Description -### ConfiPump +The Conflux plugin enables seamless interaction with both Conflux Core Space and eSpace networks. It provides functionality for token transfers, cross-space bridge operations, and ConfiPump token management (creation, buying, and selling). -Buy and sell tokens on Conflux's implementation of pump.fun (ConfiPump). +## Installation -### Transfer +```bash +pnpm install @elizaos/plugin-conflux +``` -Transfer tokens from one address to another within Conflux core space. +## Configuration -### Bridge Transfer +The plugin requires the following environment variables to be set: +```typescript +CONFLUX_CORE_PRIVATE_KEY= +CONFLUX_CORE_SPACE_RPC_URL= +CONFLUX_MEME_CONTRACT_ADDRESS= +``` -Transfer tokens from one address to Conflux eSpace. +## Usage -### Sponsor (TBD) +### Basic Integration -Provide gas for Conflux core space contracts so they can be called without the need to have Conflux in user's wallet. +```typescript +import { confluxPlugin } from '@elizaos/plugin-conflux'; +``` -### Swap (TBD) +### Example Usage + +```typescript +// Core Space Transfer +"Send 1 CFX to cfx:aaejuaaaaaaaaaaaaaaaaaaaaaaaaaaaa2eaeg85p5" + +// Cross-Space Bridge Transfer +"Send 1 CFX to eSpace Address 0x119DA8bbe74B1C5c987D0c64D10eC1dB301d4752" + +// ConfiPump Token Creation +"Create a new token called GLITCHIZA with symbol GLITCHIZA and generate a description about it" + +// ConfiPump Token Trading +"Buy 0.00069 CFX worth of GLITCHIZA(0x1234567890abcdef)" +"Sell 0.00069 CFX worth of GLITCHIZA(0x1234567890abcdef)" +``` + +## API Reference + +### Actions + +#### SEND_CFX +Transfers CFX tokens within Conflux Core Space. + +**Aliases:** +- SEND_CONFLUX +- SEND_CFX_CORE_SPACE +- TRANSFER_CFX + +**Input Content:** +```typescript +interface TransferContent { + to: string; // Conflux Core Space address (cfx: prefix) + amount: string; // Amount of CFX to send +} +``` + +#### BRIDGE_SEND_CFX +Transfers CFX tokens from Core Space to eSpace. + +**Aliases:** +- BRIDGE_SEND_CONFLUX +- CROSS_SPACE_SEND_CFX +- BRIDGE_TRANSFER_CFX +- CROSS_SPACE_TRANSFER_CFX + +**Input Content:** +```typescript +interface TransferContent { + to: string; // Conflux eSpace address (0x prefix) + amount: string; // Amount of CFX to send +} +``` + +#### CONFI_PUMP +Manages ConfiPump token operations. + +**Aliases:** +- SELL_TOKEN +- BUY_TOKEN +- CREATE_TOKEN + +**Input Content:** +```typescript +interface PumpContent { + action: "CREATE_TOKEN" | "BUY_TOKEN" | "SELL_TOKEN"; + params: { + name?: string; + symbol?: string; + description?: string; + tokenAddress?: string; + value?: string; + }; +} +``` + +## Common Issues & Troubleshooting + +1. **Transaction Failures** + - Ensure sufficient CFX balance for transactions + - Verify correct address format (cfx: for Core Space, 0x for eSpace) + - Check RPC endpoint connectivity + +## Security Best Practices + +1. **Private Key Management** + - Store private keys securely using environment variables + - Never expose private keys in code or logs + - Use separate accounts for development and production + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run the plugin: +```bash +pnpm run dev +``` + +## Future Enhancements + +1. **Advanced Token Management** + - Batch token transfers + - Token allowance management + - Advanced meme token features + - Token metadata management + +2. **Enhanced Bridge Operations** + - Multi-token bridge support + - Automated bridge fee optimization + - Bridge transaction status tracking + - Cross-space batch operations + +3. **Smart Contract Integration** + - Contract deployment tools + - Contract interaction templates + - ABI management system + - Contract verification tools + +4. **Performance Optimizations** + - Transaction batching + - Improved caching mechanisms + - Gas optimization strategies + - Network request optimization + +5. **Developer Tools** + - CLI tools for common operations + - Development environment templates + - Testing utilities + - Documentation generator + +6. **Security Features** + - Transaction simulation + - Risk assessment tools + - Address validation improvements + - Rate limiting controls + +7. **Monitoring and Analytics** + - Transaction tracking dashboard + - Performance metrics + - Error reporting system + - Usage analytics + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Conflux Network](https://confluxnetwork.org/): Hybrid consensus blockchain +- [js-conflux-sdk](https://www.npmjs.com/package/js-conflux-sdk): Official Conflux JavaScript SDK +- [ConfiPump](https://confipump.io/): Meme token creation platform +- [@conflux-dev/conflux-address-js](https://www.npmjs.com/package/@conflux-dev/conflux-address-js): Address utilities + +Special thanks to: +- The Conflux Foundation for developing the network +- The Conflux Developer community +- The ConfiPump team for meme token infrastructure +- The js-conflux-sdk maintainers +- The Eliza community for their contributions and feedback + +For more information about Conflux capabilities: +- [Conflux Documentation](https://developer.confluxnetwork.org/) +- [Conflux Portal](https://portal.confluxnetwork.org/) +- [ConfluxScan](https://confluxscan.io/) +- [Cross-Space Bridge](https://bridge.confluxnetwork.org/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. -Swap tokens on Conflux DEXs. diff --git a/packages/plugin-conflux/src/actions/confiPump.ts b/packages/plugin-conflux/src/actions/confiPump.ts index c5d143787d4..ada3c50f8c6 100644 --- a/packages/plugin-conflux/src/actions/confiPump.ts +++ b/packages/plugin-conflux/src/actions/confiPump.ts @@ -4,6 +4,7 @@ import { Memory, State, HandlerCallback, + elizaLogger, } from "@elizaos/core"; import { generateObject, composeContext, ModelClass } from "@elizaos/core"; import { @@ -38,7 +39,7 @@ async function ensureAllowance( memeAddress: `0x${string}`, amount: bigint ) { - console.log( + elizaLogger.log( `Checking allowance: token: ${tokenAddress} meme: ${memeAddress} amount: ${amount}` ); @@ -54,10 +55,10 @@ async function ensureAllowance( args: [account.address, memeAddress], }); - console.log("allowance:", allowance); + elizaLogger.log("allowance:", allowance); if (allowance < amount) { - console.log( + elizaLogger.log( `allowance(${allowance}) is less than amount(${amount}), approving...` ); @@ -73,11 +74,11 @@ async function ensureAllowance( kzg: null, }); - console.log(`Approving hash: ${hash}`); + elizaLogger.log(`Approving hash: ${hash}`); await publicClient.waitForTransactionReceipt({ hash }); - console.log(`Approving success: ${hash}`); + elizaLogger.log(`Approving success: ${hash}`); } else { - console.log(`No need to approve`); + elizaLogger.log(`No need to approve`); } } @@ -213,9 +214,13 @@ export const confiPump: Action = { switch (contentObject.action) { case "CREATE_TOKEN": if (!isPumpCreateContent(contentObject)) { - throw new Error("Invalid content"); + elizaLogger.error( + "Invalid PumpCreateContent: ", + contentObject + ); + throw new Error("Invalid PumpCreateContent"); } - console.log( + elizaLogger.log( "creating: ", contentObject.params.name, contentObject.params.symbol, @@ -235,13 +240,17 @@ export const confiPump: Action = { case "BUY_TOKEN": if (!isPumpBuyContent(contentObject)) { - throw new Error("Invalid content"); + elizaLogger.error( + "Invalid PumpBuyContent: ", + contentObject + ); + throw new Error("Invalid PumpBuyContent"); } value = parseUnits( contentObject.params.value.toString(), 18 ); - console.log( + elizaLogger.log( "buying: ", contentObject.params.tokenAddress, value @@ -260,12 +269,16 @@ export const confiPump: Action = { case "SELL_TOKEN": if (!isPumpSellContent(contentObject)) { - throw new Error("Invalid content"); + elizaLogger.error( + "Invalid PumpSellContent: ", + contentObject + ); + throw new Error("Invalid PumpSellContent"); } const tokenAddress = getAddress( contentObject.params.tokenAddress as `0x${string}` ); - console.log( + elizaLogger.log( "selling: ", tokenAddress, account.address, @@ -312,7 +325,7 @@ export const confiPump: Action = { value, account, }); - console.log("simulate: ", simulate); + elizaLogger.log("simulate: ", simulate); const hash = await walletClient.sendTransaction({ account, @@ -332,7 +345,7 @@ export const confiPump: Action = { }); } } catch (error) { - console.error(`Error performing the action: ${error}`); + elizaLogger.error(`Error performing the action: ${error}`); if (callback) { callback({ text: `Failed to perform the action: ${content.object.action}: ${error}`, diff --git a/packages/plugin-conflux/src/types.ts b/packages/plugin-conflux/src/types.ts index a605b5a7142..97643864374 100644 --- a/packages/plugin-conflux/src/types.ts +++ b/packages/plugin-conflux/src/types.ts @@ -64,25 +64,13 @@ export function isPumpContent(object: any): object is PumpContent { } export function isPumpCreateContent(object: any): object is PumpCreateContent { - if (PumpCreateSchema.safeParse(object).success) { - return true; - } - console.error("Invalid content: ", object); - return false; + return PumpCreateSchema.safeParse(object).success; } export function isPumpBuyContent(object: any): object is PumpBuyContent { - if (PumpBuySchema.safeParse(object).success) { - return true; - } - console.error("Invalid content: ", object); - return false; + return PumpBuySchema.safeParse(object).success; } export function isPumpSellContent(object: any): object is PumpSellContent { - if (PumpSellSchema.safeParse(object).success) { - return true; - } - console.error("Invalid content: ", object); - return false; + return PumpSellSchema.safeParse(object).success; } diff --git a/packages/plugin-cronoszkevm/README.md b/packages/plugin-cronoszkevm/README.md new file mode 100644 index 00000000000..a662890d817 --- /dev/null +++ b/packages/plugin-cronoszkevm/README.md @@ -0,0 +1,150 @@ +# @elizaos/plugin-cronoszkevm + +A plugin for interacting with the Cronos zkEVM network within the ElizaOS ecosystem. + +## Description + +The Cronos zkEVM plugin enables seamless token transfers on the Cronos zkEVM network. It provides functionality for transferring various tokens including ZKCRO, USDC, and ETH using Web3 and zkSync integration. + +## Installation + +```bash +pnpm install @elizaos/plugin-cronoszkevm +``` + +## Configuration + +The plugin requires the following environment variables to be set: +```typescript +CRONOSZKEVM_ADDRESS= +CRONOSZKEVM_PRIVATE_KEY= +``` + +## Usage + +### Basic Integration + +```typescript +import { cronosZkEVMPlugin } from '@elizaos/plugin-cronoszkevm'; +``` + +### Example Usage + +```typescript +// Send USDC tokens +"Send 100 USDC to 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62" + +// Send ZKCRO tokens +"Send 100 ZKCRO to 0xbD8679cf79137042214fA4239b02F4022208EE82" + +// Send ETH tokens +"Transfer 1 ETH to 0x123..." +``` + +## API Reference + +### Actions + +#### SEND_TOKEN +Transfers tokens on the Cronos zkEVM network. + +**Aliases:** +- TRANSFER_TOKEN_ON_CRONOSZKEVM +- TRANSFER_TOKENS_ON_CRONOSZK +- SEND_TOKENS_ON_CRONOSZKEVM +- SEND_TOKENS_ON_CRONOSZK +- SEND_ETH_ON_CRONOSZKEVM +- SEND_ETH_ON_CRONOSZK +- PAY_ON_CRONOSZKEVM +- PAY_ON_CRONOSZK + +**Input Content:** +```typescript +interface TransferContent { + tokenAddress: string; // The token contract address + recipient: string; // The recipient's address + amount: string | number; // Amount to transfer +} +``` + +## Common Issues & Troubleshooting + +1. **Transaction Failures** + - Ensure sufficient token balance for transfers + - Verify correct recipient address format (must start with 0x) + - Check network connectivity to Cronos zkEVM RPC endpoint + +2. **Configuration Issues** + - Verify CRONOSZKEVM_ADDRESS is properly set + - Ensure CRONOSZKEVM_PRIVATE_KEY is valid and secure + - Confirm RPC endpoint is accessible + +## Security Best Practices + +1. **Private Key Management** + - Store private keys securely using environment variables + - Never expose private keys in code or logs + - Use separate accounts for development and production + +2. **Transaction Validation** + - Always validate addresses before sending transactions + - Verify token amounts and decimals + - Implement proper error handling + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run the plugin: +```bash +pnpm run dev +``` + +## Common Token Addresses + +- ZKCRO/zkCRO: `0x000000000000000000000000000000000000800A` +- USDC/usdc: `0xaa5b845f8c9c047779bedf64829601d8b264076c` +- ETH/eth: `0x898b3560affd6d955b1574d87ee09e46669c60ea` + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Cronos zkEVM](https://cronos.org/zkevm): Layer 2 scaling solution for Cronos +- [Web3.js](https://web3js.org/): Ethereum JavaScript API +- [zkSync](https://zksync.io/): Zero-knowledge rollup technology +- [Ethers.js](https://docs.ethers.org/): Complete Ethereum library +- [Viem](https://viem.sh/): Modern TypeScript Ethereum library + +Special thanks to: +- The Cronos team for developing zkEVM +- The Matter Labs team for zkSync technology +- The Web3.js and Ethers.js maintainers +- The Viem development team +- The Eliza community for their contributions and feedback + +For more information about Cronos zkEVM capabilities: +- [Cronos zkEVM Documentation](https://docs.cronos.org/zkevm/) +- [zkEVM Bridge](https://zkevm.cronos.org/bridge) +- [Cronos Developer Portal](https://cronos.org/developers) +- [zkSync Integration Guide](https://docs.cronos.org/zkevm/integration) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-echochambers/README.md b/packages/plugin-echochambers/README.md index 6e515088aca..5b8e0f27154 100644 --- a/packages/plugin-echochambers/README.md +++ b/packages/plugin-echochambers/README.md @@ -1,4 +1,4 @@ -# EchoChambers Plugin for ELIZA +# @elizaos/plugin-echochambers The EchoChambers plugin enables ELIZA to interact in chat rooms, providing conversational capabilities with dynamic interaction handling. @@ -8,59 +8,181 @@ The EchoChambers plugin enables ELIZA to interact in chat rooms, providing conve - Respond to messages based on context and relevance - Retry operations with exponential backoff - Manage connection and reconnection logic +- Real-time chat room monitoring and interaction +- Intelligent message response generation +- Context-aware conversation handling +- Comprehensive message history tracking +- Multi-room support with configurable polling ## Installation 1. Install the plugin package: - - @elizaos/plugin-echochambers - OR copy the plugin code into your eliza project node_modules directory. (node_modules\@elizaos) +```bash +pnpm install @elizaos/plugin-echochambers +``` +OR copy the plugin code into your eliza project node_modules directory. (node_modules\@elizaos) 2. Import and register the plugin in your `character.ts` configuration: - ```typescript - import { Character, ModelProviderName, defaultCharacter } from "@elizaos/core"; - import { echoChamberPlugin } from "@elizaos/plugin-echochambers"; - - export const character: Character = { - ...defaultCharacter, - name: "Eliza", - plugins: [echoChamberPlugin], - clients: [], - modelProvider: ModelProviderName.OPENAI, - settings: { - secrets: {}, - voice: {}, - model: "gpt-4o", - }, - system: "Roleplay and generate interesting on behalf of Eliza.", - bio: [...], - lore: [...], - messageExamples: [...], - postExamples: [...], - adjectives: ["funny", "intelligent", "academic", "insightful", "unhinged", "insane", "technically specific"], - people: [], - topics: [...], - style: {...}, - }; - ``` +```typescript +import { Character, ModelProviderName, defaultCharacter } from "@elizaos/core"; +import { echoChamberPlugin } from "@elizaos/plugin-echochambers"; + +export const character: Character = { + ...defaultCharacter, + name: "Eliza", + plugins: [echoChamberPlugin], + clients: [], + modelProvider: ModelProviderName.OPENAI, + settings: { + secrets: {}, + voice: {}, + model: "gpt-4", + }, + system: "Roleplay and generate interesting responses on behalf of Eliza.", + bio: [...], + lore: [...], + messageExamples: [...], + postExamples: [...], + adjectives: ["funny", "intelligent", "academic", "insightful"], + people: [], + topics: [...], + style: {...}, +}; +``` ## Configuration -Add the following environment variables to your `.env` file: +The plugin requires the following environment variables: ```plaintext -# EchoChambers Configuration -ECHOCHAMBERS_API_URL="http://127.0.0.1:3333" # Replace with actual API URL -ECHOCHAMBERS_API_KEY="testingkey0011" # Replace with actual API key -ECHOCHAMBERS_USERNAME="eliza" # Optional: Custom username for the agent -ECHOCHAMBERS_DEFAULT_ROOM="general" # Optional: Default room to join -ECHOCHAMBERS_POLL_INTERVAL="60" # Optional: Polling interval in seconds -ECHOCHAMBERS_MAX_MESSAGES="10" # Optional: Maximum number of messages to fetch +# Required Settings +ECHOCHAMBERS_API_URL="http://127.0.0.1:3333" # Base URL for the EchoChambers API +ECHOCHAMBERS_API_KEY="your-api-key" # API key for authentication + +# Optional Settings +ECHOCHAMBERS_USERNAME="eliza" # Custom username for the agent +ECHOCHAMBERS_DEFAULT_ROOM="general" # Default room to join +ECHOCHAMBERS_POLL_INTERVAL="60" # Polling interval in seconds +ECHOCHAMBERS_MAX_MESSAGES="10" # Maximum messages in conversation thread ``` ## Usage Instructions ### Starting the Plugin -To start using the EchoChambers plugin, ensure that your character configuration includes it as shown above. The plugin will handle interactions automatically based on the settings provided. +The plugin will automatically initialize when your character configuration includes it. It handles: + +1. Room Connection Management + - Automatic joining of default room + - Reconnection handling with backoff + - Multi-room monitoring + +2. Message Processing + - Context-aware response generation + - Thread management + - History tracking + +3. Response Behavior + The plugin intelligently decides when to respond based on: + - Direct mentions or questions + - Topic relevance to agent's expertise + - Conversation context and timing + - Message substance and engagement level + +## Common Issues & Troubleshooting + +1. **Connection Issues** + - Verify API URL is correct and accessible + - Ensure API key is valid + - Check network connectivity + +2. **Message Processing** + - Verify environment variables are properly set + - Check log files for error messages + - Ensure proper character configuration + +## Security Best Practices + +1. **API Key Management** + - Store API keys securely using environment variables + - Never expose keys in code or logs + - Rotate keys periodically + +2. **Connection Security** + - Use HTTPS for production environments + - Implement proper error handling + - Monitor for unusual activity + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run in development mode: +```bash +pnpm run dev +``` + +## API Reference + +### Core Components + +1. **EchoChamberClient** + - Handles room connections + - Manages message sending/receiving + - Implements retry logic + +2. **InteractionClient** + - Processes messages + - Generates responses + - Maintains conversation context + +## Future Enhancements + +- Enhanced message filtering +- Custom response templates +- Advanced room management features +- Improved context handling +- Extended retry mechanisms + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Socket.IO](https://socket.io/): Real-time bidirectional event-based communication +- [Express](https://expressjs.com/): Web application framework +- [Redis](https://redis.io/): In-memory data structure store +- [js-tiktoken](https://github.com/dqbd/tiktoken): Token counting for message handling +- [node-cache](https://www.npmjs.com/package/node-cache): In-memory caching + +Special thanks to: +- The Socket.IO team for real-time communication infrastructure +- The Express.js maintainers +- The Redis development team +- The chat room infrastructure maintainers +- The Eliza community for their contributions and feedback + +For more information about chat capabilities: +- [Socket.IO Documentation](https://socket.io/docs/v4/) +- [Express Documentation](https://expressjs.com/en/4x/api.html) +- [Redis Pub/Sub](https://redis.io/docs/manual/pubsub/) +- [Real-time Chat Best Practices](https://socket.io/docs/v4/rooms/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-evm/README.md b/packages/plugin-evm/README.md index dc7c695e5a2..7e3dda7a047 100644 --- a/packages/plugin-evm/README.md +++ b/packages/plugin-evm/README.md @@ -1,22 +1,44 @@ -# `@elizaos/plugin-evm` +# @elizaos/plugin-evm This plugin provides actions and providers for interacting with EVM-compatible chains. ---- +## Description -## Configuration +The EVM plugin provides comprehensive functionality for interacting with EVM-compatible chains, including token transfers, cross-chain bridging, and token swaps using LiFi integration. + +## Features + +- Multi-chain support with dynamic chain configuration +- Native token transfers +- Cross-chain token bridging via LiFi +- Token swapping on supported DEXs +- Wallet balance tracking +- Custom RPC endpoint configuration +- Automatic retry mechanisms +- Comprehensive transaction management -### Default Setup +## Installation -By default, **Ethereum mainnet** is enabled. To use it, simply add your private key to the `.env` file: +```bash +pnpm install @elizaos/plugin-evm +``` + +## Configuration + +### Required Environment Variables ```env +# Required EVM_PRIVATE_KEY=your-private-key-here + +# Optional - Custom RPC URLs +EVM_PROVIDER_URL=https://your-custom-mainnet-rpc-url +ETHEREUM_PROVIDER_=https://your-custom-rpc-url ``` -### Adding Support for Other Chains +### Chain Configuration -To enable support for additional chains, add them to the character config like this: +By default, **Ethereum mainnet** is enabled. To enable additional chains, add them to your character config: ```json "settings": { @@ -60,34 +82,168 @@ The **Wallet Provider** initializes with the **first chain in the list** as the - Creates **Public** and **Wallet clients** to interact with the supported chains. - Allows adding chains dynamically at runtime. ---- - ## Actions -### Transfer +### 1. Transfer -Transfer tokens from one address to another on any EVM-compatible chain. Just specify the: +Transfer native tokens on the same chain: -- **Amount** -- **Chain** -- **Recipient Address** +```typescript +// Example: Transfer 1 ETH +Transfer 1 ETH to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e +``` -**Example usage:** +### 2. Bridge + +Bridge tokens between different chains using LiFi: + +```typescript +// Example: Bridge ETH from Ethereum to Base +Bridge 1 ETH from Ethereum to Base +``` + +### 3. Swap + +Swap tokens on the same chain using LiFi: + +```typescript +// Example: Swap ETH for USDC +Swap 1 ETH for USDC on Base +``` + +## Development + +1. Clone the repository +2. Install dependencies: ```bash -Transfer 1 ETH to 0xRecipient on arbitrum. +pnpm install ``` ---- +3. Build the plugin: -## Contribution +```bash +pnpm run build +``` -The plugin contains tests. Whether you're using **TDD** or not, please make sure to run the tests before submitting a PR. +4. Run tests: -### Running Tests +```bash +pnpm test +``` -Navigate to the `plugin-evm` directory and run: +## API Reference + +### Core Components + +1. **WalletProvider** + - Manages wallet connections + - Handles chain switching + - Manages RPC endpoints + - Tracks balances + +2. **Actions** + - TransferAction: Native token transfers + - BridgeAction: Cross-chain transfers + - SwapAction: Same-chain token swaps + +## Future Enhancements + +1. **Cross-Chain Operations** + - Enhanced bridge aggregation + - Multi-chain transaction batching + - Cross-chain liquidity management + - Bridge fee optimization + - Chain-specific gas strategies + - Cross-chain messaging + +2. **DeFi Integration** + - Advanced swap routing + - Yield farming automation + - Liquidity pool management + - Position management tools + - MEV protection features + - Flash loan integration + +3. **Smart Contract Management** + - Contract deployment templates + - Verification automation + - Upgrade management + - Security analysis tools + - Gas optimization + - ABI management system + +4. **Token Operations** + - Batch transfer tools + - Token approval management + - Token metadata handling + - Custom token standards + - Token bridging optimization + - NFT support enhancement + +5. **Wallet Features** + - Multi-signature support + - Account abstraction + - Hardware wallet integration + - Social recovery options + - Transaction simulation + - Batch transaction processing + +6. **Network Management** + - Dynamic RPC management + - Network health monitoring + - Fallback provider system + - Custom network addition + - Gas price optimization + - Network analytics + +7. **Security Enhancements** + - Transaction validation + - Risk assessment tools + - Fraud detection + - Rate limiting + - Emergency shutdown + - Audit integration + +8. **Developer Tools** + - Enhanced debugging + - Testing framework + - Documentation generator + - CLI improvements + - Performance profiling + - Integration templates + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +The plugin contains tests. Whether you're using **TDD** or not, please make sure to run the tests before submitting a PR: ```bash pnpm test ``` + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Ethereum](https://ethereum.org/): Decentralized blockchain +- [LiFi](https://lifi.io/): Cross-chain bridge and swap service +- [viem](https://viem.sh/): Ethereum client library +- [wagmi](https://wagmi.sh/): Ethereum client library + +Special thanks to: +- [Ethereum Developer community](https://ethereum.org/developers/) +- The Eliza community for their contributions and feedback + +For more information about EVM capabilities: +- [Ethereum Documentation](https://ethereum.org/developers/) +- [LiFi Documentation](https://lifi.io) +- [viem Documentation](https://viem.sh) +- [wagmi Documentation](https://wagmi.sh) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-evm/package.json b/packages/plugin-evm/package.json index ad14a009378..cdd1e7cc87f 100644 --- a/packages/plugin-evm/package.json +++ b/packages/plugin-evm/package.json @@ -10,8 +10,7 @@ "@lifi/data-types": "5.15.5", "@lifi/sdk": "3.4.1", "@lifi/types": "16.3.0", - "tsup": "8.3.5", - "viem": "2.21.53" + "tsup": "8.3.5" }, "scripts": { "build": "tsup --format esm --dts", diff --git a/packages/plugin-evm/src/actions/transfer.ts b/packages/plugin-evm/src/actions/transfer.ts index 7ca220da14d..51c3b27eada 100644 --- a/packages/plugin-evm/src/actions/transfer.ts +++ b/packages/plugin-evm/src/actions/transfer.ts @@ -1,5 +1,6 @@ import { ByteArray, formatEther, parseEther, type Hex } from "viem"; import { + Action, composeContext, generateObjectDeprecated, HandlerCallback, @@ -13,8 +14,6 @@ import { initWalletProvider, WalletProvider } from "../providers/wallet"; import type { Transaction, TransferParams } from "../types"; import { transferTemplate } from "../templates"; -export { transferTemplate }; - // Exported for tests export class TransferAction { constructor(private walletProvider: WalletProvider) {} @@ -72,21 +71,17 @@ const buildTransferDetails = async ( runtime: IAgentRuntime, wp: WalletProvider ): Promise => { + const chains = Object.keys(wp.chains); + state.supportedChains = chains.map((item) => `"${item}"`).join("|"); + const context = composeContext({ state, template: transferTemplate, }); - const chains = Object.keys(wp.chains); - - const contextWithChains = context.replace( - "SUPPORTED_CHAINS", - chains.map((item) => `"${item}"`).join("|") - ); - const transferDetails = (await generateObjectDeprecated({ runtime, - context: contextWithChains, + context, modelClass: ModelClass.SMALL, })) as TransferParams; @@ -104,16 +99,22 @@ const buildTransferDetails = async ( return transferDetails; }; -export const transferAction = { +export const transferAction: Action = { name: "transfer", description: "Transfer tokens between addresses on the same chain", handler: async ( runtime: IAgentRuntime, - _message: Memory, + message: Memory, state: State, _options: any, callback?: HandlerCallback ) => { + if (!state) { + state = (await runtime.composeState(message)) as State; + } else { + state = await runtime.updateRecentMessageState(state); + } + console.log("Transfer action handler called"); const walletProvider = await initWalletProvider(runtime); const action = new TransferAction(walletProvider); @@ -151,7 +152,6 @@ export const transferAction = { return false; } }, - template: transferTemplate, validate: async (runtime: IAgentRuntime) => { const privateKey = runtime.getSetting("EVM_PRIVATE_KEY"); return typeof privateKey === "string" && privateKey.startsWith("0x"); diff --git a/packages/plugin-evm/src/providers/wallet.ts b/packages/plugin-evm/src/providers/wallet.ts index 752f6b7c05e..0e97a716df5 100644 --- a/packages/plugin-evm/src/providers/wallet.ts +++ b/packages/plugin-evm/src/providers/wallet.ts @@ -5,7 +5,7 @@ import { http, } from "viem"; import { privateKeyToAccount } from "viem/accounts"; -import type { IAgentRuntime, Provider, Memory, State } from "@elizaos/core"; +import { type IAgentRuntime, type Provider, type Memory, type State, type ICacheManager, elizaLogger } from "@elizaos/core"; import type { Address, WalletClient, @@ -17,16 +17,22 @@ import type { } from "viem"; import * as viemChains from "viem/chains"; import { DeriveKeyProvider, TEEMode } from "@elizaos/plugin-tee"; +import NodeCache from "node-cache"; +import * as path from "path"; import type { SupportedChain } from "../types"; export class WalletProvider { + private cache: NodeCache; + private cacheKey: string = "evm/wallet"; private currentChain: SupportedChain = "mainnet"; + private CACHE_EXPIRY_SEC = 5; chains: Record = { mainnet: viemChains.mainnet }; account: PrivateKeyAccount; constructor( accountOrPrivateKey: PrivateKeyAccount | `0x${string}`, + private cacheManager: ICacheManager, chains?: Record ) { this.setAccount(accountOrPrivateKey); @@ -35,6 +41,8 @@ export class WalletProvider { if (chains && Object.keys(chains).length > 0) { this.setCurrentChain(Object.keys(chains)[0] as SupportedChain); } + + this.cache = new NodeCache({ stdTTL: this.CACHE_EXPIRY_SEC }); } getAddress(): Address { @@ -80,12 +88,22 @@ export class WalletProvider { } async getWalletBalance(): Promise { + const cacheKey = "walletBalance_" + this.currentChain; + const cachedData = await this.getCachedData(cacheKey); + if (cachedData) { + elizaLogger.log("Returning cached wallet balance for chain: " + this.currentChain); + return cachedData; + } + try { const client = this.getPublicClient(this.currentChain); const balance = await client.getBalance({ address: this.account.address, }); - return formatUnits(balance, 18); + const balanceFormatted = formatUnits(balance, 18); + this.setCachedData(cacheKey, balanceFormatted); + elizaLogger.log("Wallet balance cached for chain: ", this.currentChain); + return balanceFormatted; } catch (error) { console.error("Error getting wallet balance:", error); return null; @@ -122,6 +140,45 @@ export class WalletProvider { this.setCurrentChain(chainName); } + private async readFromCache(key: string): Promise { + const cached = await this.cacheManager.get( + path.join(this.cacheKey, key) + ); + return cached; + } + + private async writeToCache(key: string, data: T): Promise { + await this.cacheManager.set(path.join(this.cacheKey, key), data, { + expires: Date.now() + this.CACHE_EXPIRY_SEC * 1000, + }); + } + + private async getCachedData(key: string): Promise { + // Check in-memory cache first + const cachedData = this.cache.get(key); + if (cachedData) { + return cachedData; + } + + // Check file-based cache + const fileCachedData = await this.readFromCache(key); + if (fileCachedData) { + // Populate in-memory cache + this.cache.set(key, fileCachedData); + return fileCachedData; + } + + return null; + } + + private async setCachedData(cacheKey: string, data: T): Promise { + // Set in-memory cache + this.cache.set(cacheKey, data); + + // Write to file-based cache + await this.writeToCache(cacheKey, data); + } + private setAccount = ( accountOrPrivateKey: PrivateKeyAccount | `0x${string}` ) => { @@ -226,7 +283,7 @@ export const initWalletProvider = async (runtime: IAgentRuntime) => { walletSecretSalt, runtime.agentId ); - return new WalletProvider(deriveKeyResult.keypair, chains); + return new WalletProvider(deriveKeyResult.keypair, runtime.cacheManager, chains); } else { const privateKey = runtime.getSetting( "EVM_PRIVATE_KEY" @@ -234,7 +291,7 @@ export const initWalletProvider = async (runtime: IAgentRuntime) => { if (!privateKey) { throw new Error("EVM_PRIVATE_KEY is missing"); } - return new WalletProvider(privateKey, chains); + return new WalletProvider(privateKey, runtime.cacheManager, chains); } }; @@ -242,14 +299,15 @@ export const evmWalletProvider: Provider = { async get( runtime: IAgentRuntime, _message: Memory, - _state?: State + state?: State ): Promise { try { const walletProvider = await initWalletProvider(runtime); const address = walletProvider.getAddress(); const balance = await walletProvider.getWalletBalance(); const chain = walletProvider.getCurrentChain(); - return `EVM Wallet Address: ${address}\nBalance: ${balance} ${chain.nativeCurrency.symbol}\nChain ID: ${chain.id}, Name: ${chain.name}`; + const agentName = state?.agentName || "The agent"; + return `${agentName}'s EVM Wallet Address: ${address}\nBalance: ${balance} ${chain.nativeCurrency.symbol}\nChain ID: ${chain.id}, Name: ${chain.name}`; } 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 18b440f2cea..9a146b081c6 100644 --- a/packages/plugin-evm/src/templates/index.ts +++ b/packages/plugin-evm/src/templates/index.ts @@ -1,25 +1,60 @@ -export const transferTemplate = `Given the recent messages and wallet information below: +export const transferTemplate = `You are an AI assistant specialized in processing cryptocurrency transfer requests. Your task is to extract specific information from user messages and format it into a structured JSON response. +First, review the recent messages from the conversation: + + {{recentMessages}} + -{{walletInfo}} +Here's a list of supported chains: + +{{supportedChains}} + + +Your goal is to extract the following information about the requested transfer: +1. Chain to execute on (must be one of the supported chains) +2. Amount to transfer (in ETH, without the coin symbol) +3. Recipient address (must be a valid Ethereum address) +4. Token symbol or address (if not a native token transfer) + +Before providing the final JSON output, show your reasoning process inside tags. Follow these steps: + +1. Identify the relevant information from the user's message: + - Quote the part of the message mentioning the chain. + - Quote the part mentioning the amount. + - Quote the part mentioning the recipient address. + - Quote the part mentioning the token (if any). -Extract the following information about the requested transfer: -- Chain to execute on: Must be one of ["ethereum", "base", ...] (like in viem/chains) -- Amount to transfer: Must be a string representing the amount in ETH (only number without coin symbol, e.g., "0.1") -- Recipient address: Must be a valid Ethereum address starting with "0x" -- Token symbol or address (if not native token): Optional, leave as null for ETH transfers +2. Validate each piece of information: + - Chain: List all supported chains and check if the mentioned chain is in the list. + - Amount: Attempt to convert the amount to a number to verify it's valid. + - Address: Check that it starts with "0x" and count the number of characters (should be 42). + - Token: Note whether it's a native transfer or if a specific token is mentioned. -Respond with a JSON markdown block containing only the extracted values. All fields except 'token' are required: +3. If any information is missing or invalid, prepare an appropriate error message. + +4. If all information is valid, summarize your findings. + +5. Prepare the JSON structure based on your analysis. + +After your analysis, provide the final output in a JSON markdown block. All fields except 'token' are required. The JSON should have this structure: \`\`\`json { - "fromChain": SUPPORTED_CHAINS, + "fromChain": string, "amount": string, "toAddress": string, "token": string | null } \`\`\` + +Remember: +- The chain name must be a string and must exactly match one of the supported chains. +- The amount should be a string representing the number without any currency symbol. +- The recipient address must be a valid Ethereum address starting with "0x". +- If no specific token is mentioned (i.e., it's a native token transfer), set the "token" field to null. + +Now, process the user's request and provide your response. `; export const bridgeTemplate = `Given the recent messages and wallet information below: diff --git a/packages/plugin-evm/src/tests/transfer.test.ts b/packages/plugin-evm/src/tests/transfer.test.ts index a6159db76d4..ff2a0887776 100644 --- a/packages/plugin-evm/src/tests/transfer.test.ts +++ b/packages/plugin-evm/src/tests/transfer.test.ts @@ -1,18 +1,32 @@ -import { describe, it, expect, beforeEach } from "vitest"; +import { describe, it, expect, beforeEach, vi, afterEach } from "vitest"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; import { Account, Chain } from "viem"; import { TransferAction } from "../actions/transfer"; import { WalletProvider } from "../providers/wallet"; +// Mock the ICacheManager +const mockCacheManager = { + get: vi.fn().mockResolvedValue(null), + set: vi.fn(), +}; + describe("Transfer Action", () => { let wp: WalletProvider; beforeEach(async () => { + vi.clearAllMocks(); + mockCacheManager.get.mockResolvedValue(null); + const pk = generatePrivateKey(); const customChains = prepareChains(); - wp = new WalletProvider(pk, customChains); + wp = new WalletProvider(pk, mockCacheManager as any, customChains); }); + + afterEach(() => { + vi.clearAllTimers(); + }); + describe("Constructor", () => { it("should initialize with wallet provider", () => { const ta = new TransferAction(wp); diff --git a/packages/plugin-evm/src/tests/wallet.test.ts b/packages/plugin-evm/src/tests/wallet.test.ts index a6b227a4703..ed19e048315 100644 --- a/packages/plugin-evm/src/tests/wallet.test.ts +++ b/packages/plugin-evm/src/tests/wallet.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, beforeAll, beforeEach } from "vitest"; +import { describe, it, expect, beforeAll, beforeEach, vi, afterEach } from "vitest"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; import { mainnet, iotex, arbitrum, Chain } from "viem/chains"; @@ -10,6 +10,13 @@ const customRpcUrls = { iotex: "custom-rpc.iotex.io", }; +// Mock the ICacheManager +const mockCacheManager = { + get: vi.fn().mockResolvedValue(null), + set: vi.fn(), +}; + + describe("Wallet provider", () => { let walletProvider: WalletProvider; let pk: `0x${string}`; @@ -25,36 +32,45 @@ describe("Wallet provider", () => { ); }); + afterEach(() => { + vi.clearAllTimers(); + }); + + beforeEach(() => { + vi.clearAllMocks(); + mockCacheManager.get.mockResolvedValue(null); + }); + describe("Constructor", () => { it("sets address", () => { const account = privateKeyToAccount(pk); const expectedAddress = account.address; - walletProvider = new WalletProvider(pk); + walletProvider = new WalletProvider(pk, mockCacheManager as any); expect(walletProvider.getAddress()).toEqual(expectedAddress); }); it("sets default chain to ethereum mainnet", () => { - walletProvider = new WalletProvider(pk); + walletProvider = new WalletProvider(pk, mockCacheManager as any); expect(walletProvider.chains.mainnet.id).toEqual(mainnet.id); expect(walletProvider.getCurrentChain().id).toEqual(mainnet.id); }); it("sets custom chains", () => { - walletProvider = new WalletProvider(pk, customChains); + walletProvider = new WalletProvider(pk, mockCacheManager as any, customChains); expect(walletProvider.chains.iotex.id).toEqual(iotex.id); expect(walletProvider.chains.arbitrum.id).toEqual(arbitrum.id); }); it("sets the first provided custom chain as current chain", () => { - walletProvider = new WalletProvider(pk, customChains); + walletProvider = new WalletProvider(pk, mockCacheManager as any, customChains); expect(walletProvider.getCurrentChain().id).toEqual(iotex.id); }); }); describe("Clients", () => { beforeEach(() => { - walletProvider = new WalletProvider(pk); + walletProvider = new WalletProvider(pk, mockCacheManager as any); }); it("generates public client", () => { const client = walletProvider.getPublicClient("mainnet"); @@ -68,7 +84,7 @@ describe("Wallet provider", () => { "mainnet", customRpcUrls.mainnet ); - const wp = new WalletProvider(pk, { ["mainnet"]: chain }); + const wp = new WalletProvider(pk, mockCacheManager as any, { ["mainnet"]: chain }); const client = wp.getPublicClient("mainnet"); expect(client.chain.id).toEqual(mainnet.id); @@ -98,7 +114,7 @@ describe("Wallet provider", () => { "mainnet", customRpcUrls.mainnet ); - const wp = new WalletProvider(pk, { ["mainnet"]: chain }); + const wp = new WalletProvider(pk, mockCacheManager as any, { ["mainnet"]: chain }); const client = wp.getWalletClient("mainnet"); @@ -115,7 +131,7 @@ describe("Wallet provider", () => { }); describe("Balance", () => { beforeEach(() => { - walletProvider = new WalletProvider(pk, customChains); + walletProvider = new WalletProvider(pk, mockCacheManager as any, customChains); }); it("should fetch balance", async () => { const bal = await walletProvider.getWalletBalance(); @@ -134,7 +150,7 @@ describe("Wallet provider", () => { }); describe("Chain", () => { beforeEach(() => { - walletProvider = new WalletProvider(pk, customChains); + walletProvider = new WalletProvider(pk, mockCacheManager as any, customChains); }); it("generates chains from chain name", () => { const chainName = "iotex"; diff --git a/packages/plugin-evm/tsup.config.ts b/packages/plugin-evm/tsup.config.ts index a68ccd636ad..1cecf6b75b9 100644 --- a/packages/plugin-evm/tsup.config.ts +++ b/packages/plugin-evm/tsup.config.ts @@ -17,5 +17,7 @@ export default defineConfig({ "agentkeepalive", "viem", "@lifi/sdk", + "events", + "node-cache" ], }); diff --git a/packages/plugin-ferePro/README.md b/packages/plugin-ferePro/README.md new file mode 100644 index 00000000000..161aff33219 --- /dev/null +++ b/packages/plugin-ferePro/README.md @@ -0,0 +1,217 @@ +# @elizaos/plugin-ferepro + +A plugin for enabling WebSocket communication with FerePro API to provide AI-driven market insights within the ElizaOS ecosystem. + +## Description + +The FerePro plugin enables real-time communication with the FerePro API through WebSocket connections, providing market analysis, cryptocurrency comparisons, and financial insights. + +## Features + +- Real-time WebSocket communication +- Streaming and non-streaming response support +- Market data analysis and comparisons +- Cryptocurrency insights +- Debug mode for detailed responses +- Automatic connection management +- Comprehensive error handling +- Credit tracking and management + +## Installation + +```bash +pnpm install @elizaos/plugin-ferepro +``` + +## Configuration + +### Required Environment Variables + +```env +# Required +FERE_USER_ID=your-user-id-here # Default: 1a5b4a29-9d95-44c8-aef3-05a8e515f43e +``` + +## Usage + +### Basic Message Structure + +```typescript +{ + "message": "Your market query here", + "stream": boolean, // Optional: Enable streaming responses + "debug": boolean // Optional: Enable debug mode +} +``` + +### Example Queries + +1. Basic Market Query: +```typescript +// Get top cryptocurrencies +"What are the top 5 cryptocurrencies?" +``` + +2. Comparison Analysis: +```typescript +// Compare specific cryptocurrencies +"Compare Ethereum and Bitcoin for the past 6 months" +``` + +3. Historical Data: +```typescript +// Get historical performance +"Compare top 3 coins against Bitcoin in the last 3 months" +``` + +## Development + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run in development mode: +```bash +pnpm run dev +``` + +## API Reference + +### Core Components + +1. **FereProService** + - Manages WebSocket connections + - Handles message sending/receiving + - Processes streaming responses + - Tracks credits and usage + +2. **Actions** + - SEND_FEREPRO_MESSAGE: Primary action for API communication + - Supports market queries and analysis requests + - Handles both streaming and non-streaming responses + +### Response Structure + +```typescript +interface ChatResponse { + answer: string; + chat_id: string; + representation?: Record[]; + agent_api_name: string; + query_summary: string; + agent_credits: number; + credits_available: number; +} +``` + +## Error Handling + +The plugin includes comprehensive error handling for: +- WebSocket connection issues +- Invalid message formats +- API response errors +- Credit limitation issues + + +## Common Issues & Troubleshooting + +### Connection Issues +1. **WebSocket Connection Failures** + - Verify your internet connection + - Check if the FerePro API service is available + - Ensure your FERE_USER_ID is valid and active + +2. **Message Timeout** + - The connection might time out for long-running queries + - Consider using streaming mode for large data requests + - Implement retry logic for important queries + +3. **Credit Depletion** + - Monitor credits_available in responses + - Set up alerts for low credit situations + - Contact FerePro support for credit top-up + +### Response Parsing +1. **Invalid Response Format** + - Check if the query is properly formatted + - Verify the message structure matches the API requirements + - Enable debug mode for detailed error information + +2. **Missing Data** + - Ensure the requested timeframe is valid + - Verify the cryptocurrencies exist in the database + - Check if you have access to the requested data tier + +## Safety & Best Practices + +### Security +1. **API Credentials** + - Never expose your FERE_USER_ID in public repositories + - Use environment variables for sensitive data + - Rotate credentials periodically if possible + +2. **Rate Limiting** + - Implement appropriate delays between requests + - Monitor credit usage to prevent unexpected depletion + - Cache responses when appropriate + +### Data Handling +1. **Response Validation** + - Always validate response data before processing + - Implement proper error handling for malformed data + - Log unexpected response formats for debugging + +2. **Stream Management** + - Close WebSocket connections properly after use + - Implement reconnection logic for dropped connections + - Handle partial responses in streaming mode + +### Best Practices +1. **Query Optimization** + - Keep queries focused and specific + - Use streaming for large data requests + - Implement caching for frequently requested data + +2. **Error Handling** + - Implement comprehensive error catching + - Log errors with appropriate context + - Provide meaningful error messages to users + +3. **Resource Management** + - Monitor WebSocket connection status + - Implement connection pooling for high-volume usage + - Clean up resources properly on service shutdown + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [IPFS](https://ipfs.tech/): InterPlanetary File System +- [Filecoin](https://filecoin.io/): Decentralized storage network +- [Web3.Storage](https://web3.storage/): Decentralized storage service + +Special thanks to: +- The Protocol Labs team for IPFS and Filecoin +- The Web3.Storage team +- The decentralized storage community +- The Eliza community for their contributions and feedback + +For more information about Ferepro capabilities: +- [IPFS Documentation](https://docs.ipfs.tech/) +- [Filecoin Documentation](https://docs.filecoin.io/) +- [Web3.Storage Documentation](https://web3.storage/docs/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-flow/README.md b/packages/plugin-flow/README.md index f258981ee92..23987c6cdd1 100644 --- a/packages/plugin-flow/README.md +++ b/packages/plugin-flow/README.md @@ -1,13 +1,158 @@ # @elizaos/plugin-flow -This plugin provides basic actions and providers for interacting with the [Flow Blockchain](https://developers.flow.com/). +A plugin for interacting with the Flow blockchain within the ElizaOS ecosystem. -## Actions +## Description -### Transfer +This plugin provides essential functionality for interacting with the Flow blockchain, including native FLOW token transfers, fungible token transfers, and EVM token interactions. It offers a seamless way to manage Flow blockchain transactions through natural language commands. -name: `SEND_COIN` +## Installation -Transfer native FLOW token/arbitrary FTs/ERC20s on Flow from agent's wallet to another EVM address or Flow address. +```bash +pnpm install @elizaos/plugin-flow +``` + +## Configuration + +The plugin requires the following environment variables to be set: +```typescript +FLOW_ADDRESS= +FLOW_PRIVATE_KEY= +FLOW_NETWORK= +FLOW_ENDPOINT_URL= +``` + +## Usage + +### Basic Integration + +```typescript +import { flowPlugin } from '@elizaos/plugin-flow'; +``` + +### Example Usage + +The plugin supports natural language commands for token transfers: + +```typescript +"Send 5 FLOW to 0xa51d7fe9e0080662" +"Send 1 FLOW - A.1654653399040a61.FlowToken to 0xa2de93114bae3e73" +"Send 1000 FROTH - 0xb73bf8e6a4477a952e0338e6cc00cc0ce5ad04ba to 0x000000000000000000000002e44fbfbd00395de5" +``` + +## API Reference + +### Actions + +#### SEND_COIN + +Transfers native FLOW tokens, Cadence fungible tokens, or EVM tokens to specified addresses. + +**Aliases:** +- SEND_TOKEN +- SEND_TOKEN_ON_FLOW +- TRANSFER_TOKEN_ON_FLOW +- TRANSFER_TOKENS_ON_FLOW +- TRANSFER_FLOW +- SEND_FLOW +- PAY_BY_FLOW + +**Input Content:** +```typescript +interface TransferContent { + token: string | null; // null for native FLOW, Cadence identifier, or EVM address + amount: string; // Amount to transfer + to: string; // Recipient address (Flow or EVM) + matched: boolean; // Indicates if token and address types match +} +``` + +## Common Issues & Troubleshooting + +1. **Connection Issues** + - Verify network configuration (mainnet/testnet/emulator) + - Check RPC endpoint availability + - Ensure proper wallet configuration + +2. **Transaction Failures** + - Verify sufficient balance for transfers + - Check correct address format (Flow vs EVM) + - Confirm token contract compatibility + +3. **Authentication Issues** + - Validate private key format + - Verify wallet address matches private key + - Check network permissions + +## Security Best Practices + +1. **Key Management** + - Store private keys securely + - Use environment variables for sensitive data + - Never expose private keys in code or logs + +2. **Transaction Safety** + - Validate all addresses before transfers + - Implement proper error handling + - Check token compatibility before transfers + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run tests: + +```bash +pnpm run test +``` + +## Future Enhancements + +- Support for NFT transfers +- Enhanced error handling and recovery +- Additional Flow blockchain interactions +- Expanded token support + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Flow Blockchain](https://flow.com/): Decentralized layer 1 blockchain +- [@onflow/fcl](https://www.npmjs.com/package/@onflow/fcl): Flow Client Library +- [@onflow/types](https://www.npmjs.com/package/@onflow/types): Flow type system +- [Cadence](https://docs.onflow.org/cadence/): Smart contract programming language + +Special thanks to: +- The Dapper Labs team for developing Flow +- The Flow Developer community +- The FCL SDK maintainers +- The Cadence language designers +- The Eliza community for their contributions and feedback + +For more information about Flow capabilities: +- [Flow Documentation](https://docs.onflow.org/) +- [Flow Developer Portal](https://developers.flow.com/) +- [Flow Block Explorer](https://flowscan.org/) +- [Cadence Documentation](https://docs.onflow.org/cadence/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. -Message sample: `Send 5 FLOW to 0xa51d7fe9e0080662` diff --git a/packages/plugin-fuel/README.md b/packages/plugin-fuel/README.md new file mode 100644 index 00000000000..104a416a888 --- /dev/null +++ b/packages/plugin-fuel/README.md @@ -0,0 +1,147 @@ +# @elizaos/plugin-fuel + +A plugin for interacting with the Fuel blockchain within the ElizaOS ecosystem. + +## Description + +This plugin provides essential functionality for interacting with the Fuel blockchain, focusing on ETH transfers on the Fuel Ignition network. It offers a streamlined way to manage Fuel blockchain transactions through natural language commands. + +## Installation + +```bash +pnpm install @elizaos/plugin-fuel +``` + +## Configuration + +The plugin requires the following environment variables to be set: +```typescript +FUEL_PRIVATE_KEY= +FUEL_PROVIDER_URL= +``` + +## Usage + +### Basic Integration + +```typescript +import { fuelPlugin } from '@elizaos/plugin-fuel'; +``` + +### Example Usage + +The plugin supports natural language commands for ETH transfers: + +```typescript +"Transfer 1 ETH to 0x8F8afB12402C9a4bD9678Bec363E51360142f8443FB171655eEd55dB298828D1" +``` + +## API Reference + +### Actions + +#### TRANSFER + +Transfers ETH between addresses on the Fuel Ignition network. + +**Aliases:** +- TRANSFER_FUEL_ETH +- SEND_TOKENS + +**Input Content:** +```typescript +interface TransferParams { + toAddress: string; // Recipient's Fuel address + amount: string; // Amount of ETH to transfer +} +``` + +## Common Issues & Troubleshooting + +1. **Connection Issues** + - Verify provider URL is accessible + - Check network connectivity + - Ensure proper network configuration + +2. **Transaction Failures** + - Verify sufficient balance for transfers + - Check correct address format + - Ensure gas fees can be covered + +3. **Authentication Issues** + - Validate private key format + - Verify wallet configuration + - Check network permissions + +## Security Best Practices + +1. **Key Management** + - Store private keys securely + - Use environment variables for sensitive data + - Never expose private keys in code or logs + +2. **Transaction Safety** + - Validate recipient addresses + - Implement proper error handling + - Double-check transaction amounts + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run tests: + +```bash +pnpm test +``` + +## Future Enhancements + +- Support for token transfers +- Enhanced error handling and recovery +- Additional Fuel blockchain interactions +- Transaction status monitoring +- Balance tracking improvements + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Fuel Network](https://fuel.network/): High-performance modular execution layer +- [fuels-ts](https://github.com/FuelLabs/fuels-ts): TypeScript SDK for Fuel +- [Fuel Wallet](https://wallet.fuel.network/): Official Fuel wallet +- [Fuel GraphQL API](https://docs.fuel.network/docs/graphql/): Network interaction + +Special thanks to: +- The Fuel Labs team for developing the Fuel Network +- The Fuel Developer community +- The fuels-ts SDK maintainers +- The Eliza community for their contributions and feedback + +For more information about Fuel capabilities: +- [Fuel Documentation](https://docs.fuel.network/) +- [Fuel Developer Portal](https://developers.fuel.network/) +- [Fuel Network Dashboard](https://app.fuel.network/) +- [Fuel GitHub Repository](https://github.com/FuelLabs) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-gitbook/README.md b/packages/plugin-gitbook/README.md new file mode 100644 index 00000000000..b6bdd05b1a2 --- /dev/null +++ b/packages/plugin-gitbook/README.md @@ -0,0 +1,184 @@ +# @elizaos/plugin-gitbook + +A plugin for querying and retrieving information from GitBook documentation within the ElizaOS ecosystem. + +## Description + +This plugin enables seamless integration with GitBook documentation, allowing natural language queries to retrieve relevant documentation content. It features intelligent query validation, keyword-based filtering, and clean response formatting to provide accurate documentation answers. + +## Installation + +```bash +pnpm install @elizaos/plugin-gitbook +``` + +## Configuration + +### Environment Variables +```typescript +GITBOOK_SPACE_ID= +``` + +### Client Configuration (Optional) +You can customize the plugin's behavior by adding the following configuration to your character.json file: +```json +{ + "name": "YourCharacter", + "plugins": ["gitbook"], + "settings": { + "gitbook": { + "keywords": { + "projectTerms": ["term1", "term2"], // Optional: Project-specific terms to match + "generalQueries": ["custom1", "custom2"] // Optional: Additional query keywords + }, + "documentTriggers": ["docs", "documentation"] // Optional: Trigger words for documentation + } + } +} +``` + +The plugin will work with default settings if no configuration is provided, but adding custom configuration can help tailor the responses to your specific documentation needs. + +## Usage + +### Basic Integration + +```typescript +import { gitbookPlugin } from '@elizaos/plugin-gitbook'; +``` + +### Example Usage + +The plugin automatically processes natural language queries: + +```typescript +"How do I get started with the project?" +"What are the main features?" +"Explain how to configure the system" +``` + +## API Reference + +### Providers + +#### GitBook Provider + +Handles documentation queries and returns relevant information. + +**Response Type:** +```typescript +interface GitBookResponse { + answer?: { + text: string; + }; + error?: string; +} +``` + +**Configuration Types:** +```typescript +interface GitBookKeywords { + projectTerms?: string[]; // Project-specific terms + generalQueries?: string[]; // Additional query keywords +} + +interface GitBookClientConfig { + keywords?: GitBookKeywords; + documentTriggers?: string[]; // Trigger words for documentation +} +``` + +## Common Issues & Troubleshooting + +1. **Connection Issues** + - Verify GitBook Space ID is correct + - Check API endpoint accessibility + - Ensure proper network connectivity + +2. **Query Issues** + - Verify query contains valid keywords + - Check if query matches project terms + - Ensure proper query formatting + +3. **Response Issues** + - Validate GitBook API response format + - Check for rate limiting + - Verify content accessibility + +## Security Best Practices + +1. **API Configuration** + - Store Space ID securely + - Use environment variables + - Implement proper error handling + +2. **Query Validation** + - Sanitize input queries + - Validate keywords and triggers + - Clean response content + +3. **Response Handling** + - Implement proper error handling + - Validate response format + - Handle sensitive information appropriately + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +4. Run tests: + +```bash +pnpm test +``` + +## Future Enhancements + +- Enhanced query validation +- Support for multiple GitBook spaces +- Advanced search capabilities +- Custom response formatting +- Caching mechanism for frequent queries +- Support for authenticated endpoints + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [GitBook](https://www.gitbook.com/): Documentation and knowledge base platform +- [GitBook API](https://developer.gitbook.com/): Official GitBook REST API +- [Axios](https://axios-http.com/): Promise-based HTTP client +- [js-tiktoken](https://github.com/dqbd/tiktoken): Token counting for API responses + +Special thanks to: +- The GitBook team for their documentation platform +- The GitBook Developer Relations team +- The Axios maintainers for reliable HTTP requests +- The Eliza community for their contributions and feedback + +For more information about GitBook capabilities: +- [GitBook Documentation](https://docs.gitbook.com/) +- [GitBook API Reference](https://developer.gitbook.com/reference) +- [GitBook Integrations](https://docs.gitbook.com/integrations/git-sync) +- [GitBook Space Management](https://docs.gitbook.com/space/space-management) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-goat/README.md b/packages/plugin-goat/README.md index 6dca2160d5e..854e3393eac 100644 --- a/packages/plugin-goat/README.md +++ b/packages/plugin-goat/README.md @@ -1,14 +1,38 @@ -# GOAT Plugin +# @elizaos/plugin-goat + +A plugin for integrating blockchain capabilities through the GOAT (Great Onchain Agent Toolkit) framework within the ElizaOS ecosystem. + +## Description + [GOAT](https://ohmygoat.dev/) 🐐 (Great Onchain Agent Toolkit) is an open-source framework for adding blockchain tools such as wallets, being able to hold or trade tokens, or interacting with blockchain smart contracts, to your AI agent. -This plugin integrates GOAT with Eliza, giving your agent the ability to interact with many different protocols. The current setup adds onchain capabilities to your agent to send and check balances of ETH and USDC. Add all the capabilities you need by adding more plugins (read below for more information)! +- [Chains supported](https://ohmygoat.dev/chains-wallets-plugins) +- [Plugins supported](https://ohmygoat.dev/chains-wallets-plugins) + +This plugin integrates GOAT with Eliza, giving your agent the ability to interact with many different protocols. The current setup adds onchain capabilities to your agent to send and check balances of ETH and USDC, and to swap tokens using KIM protocol. Add all the capabilities you need by adding more plugins (read below for more information)! + +## Installation + +```bash +pnpm install @elizaos/plugin-goat +``` + +## Configuration + +### Environment Variables +```typescript +EVM_PRIVATE_KEY= +EVM_PROVIDER_URL= +``` ## Configure GOAT for your use case + 1. Configure the chain you want to use by updating the `wallet.ts` file (see all available chains at [https://ohmygoat.dev/chains](https://ohmygoat.dev/chains)) -2. Add the plugins you need to your `getOnChainActions` function (uniswap, polymarket, etc. see all available plugins at [https://ohmygoat.dev/chains-wallets-plugins](https://ohmygoat.dev/chains-wallets-plugins)) -3. Build the project running `pnpm build` -4. Add the necessary environment variables to set up your wallet and plugins -5. Run your agent! +2. Specify the actions you want to have by updating the `actions.ts` file +3. Add the plugins you need to perform these actions to the `getOnChainTools` function (uniswap, polymarket, etc. see all available plugins at [https://ohmygoat.dev/chains-wallets-plugins](https://ohmygoat.dev/chains-wallets-plugins)) +4. Build the project running `pnpm build` +5. Add the necessary environment variables to set up your wallet and plugins +6. Run your agent! ## Common Issues 1. **Agent not executing an action**: @@ -16,7 +40,7 @@ This plugin integrates GOAT with Eliza, giving your agent the ability to interac - If you are using Trump as a character it might be tricky to get them to perform any action since the character is full of prompts that aim to change the topic of the conversation. To fix this try using a different character or create your own with prompts that are more suitable to what the agent is supposed to do. ## Plugins -GOAT itself has several plugins for interacting with different protocols such as Polymarket, Uniswap, and more. (see all available plugins at [https://ohmygoat.dev/chains-wallets-plugins](https://ohmygoat.dev/chains-wallets-plugins)) +GOAT itself has several plugins for interacting with different protocols such as Polymarket, Uniswap, and many more. (see all available plugins at [https://ohmygoat.dev/chains-wallets-plugins](https://ohmygoat.dev/chains-wallets-plugins)) You can easily add them by installing them and adding them to the `getOnChainActions` function: @@ -33,14 +57,100 @@ const tools = getOnChainActions({ }) ``` -## Environment Variables Setup +See all available plugins at [https://ohmygoat.dev/chains-wallets-plugins](https://ohmygoat.dev/chains-wallets-plugins) + +## Common Issues & Troubleshooting + +1. **Agent not executing an action**: + - If you are also using the EVM Plugin, sometimes the agent might confuse the action name with an EVM Plugin action name instead of the GOAT Plugin action. Removing the EVM Plugin should fix this issue. There is no need for you to use both plugins at the same time. + - If you are using Trump as a character it might be tricky to get them to perform any action since the character is full of prompts that aim to change the topic of the conversation. To fix this try using a different character or create your own with prompts that are more suitable to what the agent is supposed to do. -To set up your environment variables, you will need to provide the following information: +2. **Wallet Connection Issues** + - Verify private key is correctly formatted + - Check RPC endpoint availability + - Ensure sufficient network balance -* `EVM_PRIVATE_KEY`: Your EVM wallet private key. -* `EVM_PROVIDER_URL`: Your RPC provider URL (e.g. Infura, Alchemy, etc.). +3. **Transaction Issues** + - Verify gas availability + - Check network congestion + - Confirm transaction parameters ## Wallets + GOAT supports many different wallets from key pairs to [Crossmint Smart Wallets](https://docs.crossmint.com/wallets/smart-wallets/overview) and Coinbase. Read more about wallets at [https://ohmygoat.dev/wallets](https://ohmygoat.dev/wallets). + +## Security Best Practices + +1. **Key Management** + - Store private keys securely + - Use environment variables + - Never expose keys in code + +2. **Transaction Safety** + - Implement transaction limits + - Validate recipient addresses + - Double-check transaction amounts + +3. **Network Security** + - Use secure RPC endpoints + - Implement rate limiting + - Monitor for suspicious activity + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: + +```bash +pnpm install +``` + +3. Build the plugin: + +```bash +pnpm run build +``` + +## Future Enhancements + +- Additional protocol integrations +- Multi-chain support +- Advanced transaction management +- Enhanced error handling +- Custom protocol adapters +- Smart contract interaction templates + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [GOAT](https://ohmygoat.dev/): Great Onchain Agent Toolkit +- [Crossmint](https://docs.crossmint.com/): Smart wallet infrastructure +- [Uniswap](https://docs.uniswap.org/): Decentralized exchange protocol +- [Polymarket](https://docs.polymarket.com/): Prediction market platform +- [ERC20](https://eips.ethereum.org/EIPS/eip-20): Token standard implementation + +Special thanks to: +- The GOAT development team for the onchain agent framework +- The Crossmint team for smart wallet solutions +- The Uniswap and Polymarket teams +- The Ethereum community for ERC standards +- The Eliza community for their contributions and feedback + +For more information about GOAT capabilities: +- [GOAT Documentation](https://ohmygoat.dev/) +- [Available Chains](https://ohmygoat.dev/chains) +- [Chains, Wallets & Plugins](https://ohmygoat.dev/chains-wallets-plugins) +- [Smart Wallet Documentation](https://docs.crossmint.com/wallets/smart-wallets/overview) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-goat/package.json b/packages/plugin-goat/package.json index 931ad5287b5..9ddb8c9b279 100644 --- a/packages/plugin-goat/package.json +++ b/packages/plugin-goat/package.json @@ -1,23 +1,25 @@ { - "name": "@elizaos/plugin-goat", - "version": "0.1.7-alpha.2", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "dependencies": { - "@elizaos/core": "workspace:*", - "@goat-sdk/core": "0.3.8", - "@goat-sdk/plugin-erc20": "0.1.7", - "@goat-sdk/wallet-viem": "0.1.3", - "@goat-sdk/plugin-coingecko": "0.1.4", - "tsup": "8.3.5", - "viem": "2.21.53" - }, - "scripts": { - "build": "tsup --format esm --dts", - "dev": "tsup --format esm --dts --watch" - }, - "peerDependencies": { - "whatwg-url": "7.1.0" - } + "name": "@elizaos/plugin-goat", + "version": "0.1.7-alpha.2", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@elizaos/core": "workspace:*", + "@goat-sdk/adapter-vercel-ai": "0.2.0", + "@goat-sdk/core": "0.4.0", + "@goat-sdk/plugin-erc20": "0.2.2", + "@goat-sdk/plugin-kim": "0.1.2", + "@goat-sdk/wallet-evm": "0.2.0", + "@goat-sdk/wallet-viem": "0.2.0", + "tsup": "8.3.5", + "viem": "2.21.53" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --format esm --dts --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } } diff --git a/packages/plugin-goat/src/actions.ts b/packages/plugin-goat/src/actions.ts index b938f51b279..08ac3b2a830 100644 --- a/packages/plugin-goat/src/actions.ts +++ b/packages/plugin-goat/src/actions.ts @@ -1,12 +1,10 @@ +import { getOnChainTools } from "@goat-sdk/adapter-vercel-ai"; +import { MODE, USDC, erc20 } from "@goat-sdk/plugin-erc20"; +import { kim } from "@goat-sdk/plugin-kim"; +import { sendETH } from "@goat-sdk/wallet-evm"; +import { WalletClientBase } from "@goat-sdk/core"; + import { - type WalletClient, - type Plugin, - addParametersToDescription, - type Tool, - getTools, -} from "@goat-sdk/core"; -import { - type Action, generateText, type HandlerCallback, type IAgentRuntime, @@ -14,132 +12,128 @@ import { ModelClass, type State, composeContext, - generateObject, } from "@elizaos/core"; -type GetOnChainActionsParams = { - wallet: TWalletClient; - plugins: Plugin[]; -}; - -/** - * Get all the on chain actions for the given wallet client and plugins - * - * @param params - * @returns - */ -export async function getOnChainActions({ - wallet, - plugins, -}: GetOnChainActionsParams): Promise { - const tools = await getTools({ - wallet, - plugins, - wordForTool: "action", +export async function getOnChainActions(wallet: WalletClientBase) { + const actionsWithoutHandler = [ + { + name: "SWAP_TOKENS", + description: "Swap two different tokens using KIM protocol", + similes: [], + validate: async () => true, + examples: [], + }, + // 1. Add your actions here + ]; + + const tools = await getOnChainTools({ + wallet: wallet, + // 2. Configure the plugins you need to perform those actions + plugins: [sendETH(), erc20({ tokens: [USDC, MODE] }), kim()], }); - return tools - .map((action) => ({ - ...action, - name: action.name.toUpperCase(), - })) - .map((tool) => createAction(tool)); + // 3. Let GOAT handle all the actions + return actionsWithoutHandler.map((action) => ({ + ...action, + handler: getActionHandler(action.name, action.description, tools), + })); } -function createAction(tool: Tool): Action { - return { - name: tool.name, - similes: [], - description: tool.description, - validate: async () => true, - handler: async ( - runtime: IAgentRuntime, - message: Memory, - state: State | undefined, - options?: Record, - callback?: HandlerCallback - ): Promise => { - try { - let currentState = - state ?? (await runtime.composeState(message)); - currentState = - await runtime.updateRecentMessageState(currentState); - - const parameterContext = composeParameterContext( - tool, - currentState - ); - const parameters = await generateParameters( - runtime, - parameterContext, - tool - ); - - const parsedParameters = tool.parameters.safeParse(parameters); - if (!parsedParameters.success) { - callback?.({ - text: `Invalid parameters for action ${tool.name}: ${parsedParameters.error.message}`, - content: { error: parsedParameters.error.message }, - }); - return false; - } - - const result = await tool.method(parsedParameters.data); - const responseContext = composeResponseContext( - tool, - result, - currentState - ); - const response = await generateResponse( - runtime, - responseContext - ); - - callback?.({ text: response, content: result }); - return true; - } catch (error) { - const errorMessage = - error instanceof Error ? error.message : String(error); - callback?.({ - text: `Error executing action ${tool.name}: ${errorMessage}`, - content: { error: errorMessage }, - }); - return false; - } - }, - examples: [], +function getActionHandler( + actionName: string, + actionDescription: string, + tools +) { + return async ( + runtime: IAgentRuntime, + message: Memory, + state: State | undefined, + options?: Record, + callback?: HandlerCallback + ): Promise => { + let currentState = state ?? (await runtime.composeState(message)); + currentState = await runtime.updateRecentMessageState(currentState); + + try { + // 1. Call the tools needed + const context = composeActionContext( + actionName, + actionDescription, + currentState + ); + const result = await generateText({ + runtime, + context, + tools, + maxSteps: 10, + // Uncomment to see the log each tool call when debugging + // onStepFinish: (step) => { + // console.log(step.toolResults); + // }, + modelClass: ModelClass.LARGE, + }); + + // 2. Compose the response + const response = composeResponseContext(result, currentState); + const responseText = await generateResponse(runtime, response); + + callback?.({ + text: responseText, + content: {}, + }); + return true; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : String(error); + + // 3. Compose the error response + const errorResponse = composeErrorResponseContext( + errorMessage, + currentState + ); + const errorResponseText = await generateResponse( + runtime, + errorResponse + ); + + callback?.({ + text: errorResponseText, + content: { error: errorMessage }, + }); + return false; + } }; } -function composeParameterContext(tool: Tool, state: State): string { - const contextTemplate = `{{recentMessages}} +function composeActionContext( + actionName: string, + actionDescription: string, + state: State +): string { + const actionTemplate = ` +# Knowledge +{{knowledge}} -Given the recent messages, extract the following information for the action "${tool.name}": -${addParametersToDescription("", tool.parameters)} -`; - return composeContext({ state, template: contextTemplate }); -} +About {{agentName}}: +{{bio}} +{{lore}} -async function generateParameters( - runtime: IAgentRuntime, - context: string, - tool: Tool -): Promise { - const { object } = await generateObject({ - runtime, - context, - modelClass: ModelClass.LARGE, - schema: tool.parameters, - }); +{{providers}} - return object; +{{attachments}} + + +# Action: ${actionName} +${actionDescription} + +{{recentMessages}} + +Based on the action chosen and the previous messages, execute the action and respond to the user using the tools you were given. +`; + return composeContext({ state, template: actionTemplate }); } -function composeResponseContext( - tool: Tool, - result: unknown, - state: State -): string { +function composeResponseContext(result: unknown, state: State): string { const responseTemplate = ` # Action Examples {{actionExamples}} @@ -160,7 +154,6 @@ About {{agentName}}: # Capabilities Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. -The action "${tool.name}" was executed successfully. Here is the result: ${JSON.stringify(result)} @@ -172,6 +165,38 @@ Respond to the message knowing that the action was successful and these were the return composeContext({ state, template: responseTemplate }); } +function composeErrorResponseContext( + errorMessage: string, + state: State +): string { + const errorResponseTemplate = ` +# Knowledge +{{knowledge}} + +# Task: Generate dialog and actions for the character {{agentName}}. +About {{agentName}}: +{{bio}} +{{lore}} + +{{providers}} + +{{attachments}} + +# Capabilities +Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. + +{{actions}} + +Respond to the message knowing that the action failed. +The error was: +${errorMessage} + +These were the previous messages: +{{recentMessages}} + `; + return composeContext({ state, template: errorResponseTemplate }); +} + async function generateResponse( runtime: IAgentRuntime, context: string @@ -179,6 +204,6 @@ async function generateResponse( return generateText({ runtime, context, - modelClass: ModelClass.LARGE, + modelClass: ModelClass.SMALL, }); } diff --git a/packages/plugin-goat/src/index.ts b/packages/plugin-goat/src/index.ts index 0bfe9cb293e..6321d4c16d9 100644 --- a/packages/plugin-goat/src/index.ts +++ b/packages/plugin-goat/src/index.ts @@ -1,23 +1,16 @@ import type { Plugin } from "@elizaos/core"; import { getOnChainActions } from "./actions"; -import { erc20, USDC } from "@goat-sdk/plugin-erc20"; -import { sendETH } from "@goat-sdk/core"; import { getWalletClient, getWalletProvider } from "./wallet"; async function createGoatPlugin( getSetting: (key: string) => string | undefined ): Promise { const walletClient = getWalletClient(getSetting); - const actions = await getOnChainActions({ - wallet: walletClient, - // Add plugins here based on what actions you want to use - // See all available plugins at https://ohmygoat.dev/chains-wallets-plugins#plugins - plugins: [sendETH(), erc20({ tokens: [USDC] })], - }); + const actions = await getOnChainActions(walletClient); return { name: "[GOAT] Onchain Actions", - description: "Base integration plugin", + description: "Mode integration plugin", providers: [getWalletProvider(walletClient)], evaluators: [], services: [], diff --git a/packages/plugin-goat/src/wallet.ts b/packages/plugin-goat/src/wallet.ts index 6492c95af78..0916abfa9bb 100644 --- a/packages/plugin-goat/src/wallet.ts +++ b/packages/plugin-goat/src/wallet.ts @@ -1,12 +1,12 @@ -import { WalletClient } from "@goat-sdk/core"; +import { WalletClientBase } from "@goat-sdk/core"; import { viem } from "@goat-sdk/wallet-viem"; import { createWalletClient, http } from "viem"; import { privateKeyToAccount } from "viem/accounts"; -import { base } from "viem/chains"; +import { mode } from "viem/chains"; // Add the chain you want to use, remember to update also // the EVM_PROVIDER_URL to the correct one for the chain -export const chain = base; +export const chain = mode; export function getWalletClient( getSetting: (key: string) => string | undefined @@ -26,7 +26,7 @@ export function getWalletClient( return viem(wallet); } -export function getWalletProvider(walletClient: WalletClient) { +export function getWalletProvider(walletClient: WalletClientBase) { return { async get(): Promise { try { diff --git a/packages/plugin-icp/README.md b/packages/plugin-icp/README.md new file mode 100644 index 00000000000..7afd4243512 --- /dev/null +++ b/packages/plugin-icp/README.md @@ -0,0 +1,222 @@ +# @elizaos/plugin-icp + +Internet Computer Protocol (ICP) plugin for Eliza OS. + +## Features + +- Create meme tokens on PickPump +- Interact with ICP canisters +- Handle ICRC-1 token standard +- Manage ICP wallets and identities +- Support for anonymous and authenticated calls + +## Installation + +```bash +pnpm install @elizaos/plugin-icp +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +INTERNET_COMPUTER_PRIVATE_KEY= +``` + +## Usage + +### Import and Register + +```typescript +import { icpPlugin } from '@elizaos/plugin-icp'; + +// Register the plugin with Eliza +eliza.registerPlugin(icpPlugin); +``` + +### Available Actions + +#### Create Token +Creates a new meme token on PickPump with AI-generated logo and description. + +```typescript +// Example usage in chat +"Create a space cat token on PickPump" +"Help me create a pizza-themed funny token on PP" +``` + +### Providers + +#### ICP Wallet Provider +Manages ICP wallet operations and canister interactions. + +```typescript +const { wallet } = await icpWalletProvider.get(runtime, message, state); +``` + +## Common Issues & Troubleshooting + +1. **Identity Creation Failures** + - Ensure private key is exactly 32 bytes + - Verify private key is properly hex-encoded + - Check if private key has correct permissions + +2. **Canister Interaction Issues** + - Verify canister ID is valid + - Ensure proper network configuration (mainnet/testnet) + - Check if canister is available and running + +3. **Transaction Failures** + - Verify sufficient balance for operation + - Check cycle balance for canister calls + - Ensure proper fee calculation + +4. **Authentication Problems** + - Verify identity is properly initialized + - Check if agent is configured correctly + - Ensure proper network connectivity + +## Security Best Practices + +1. **Key Management** + - Never expose private keys in code or logs + - Use environment variables for sensitive data + - Rotate keys periodically + - Use separate keys for development and production + +2. **Identity Security** + - Create separate identities for different purposes + - Limit identity permissions appropriately + - Monitor identity usage and access patterns + +3. **Canister Interaction Safety** + - Validate all input parameters + - Implement proper error handling + - Use query calls when possible to save cycles + - Implement rate limiting for calls + +4. **Network Security** + - Use secure endpoints + - Implement proper timeout handling + - Validate responses from canisters + - Handle network errors gracefully + +## API Reference + +### Types + +```typescript +// Token Creation Arguments +export type CreateMemeTokenArg = { + name: string; + symbol: string; + description: string; + logo: string; + twitter?: string; + website?: string; + telegram?: string; +}; + +// ICP Configuration +export interface ICPConfig { + privateKey: string; + network?: "mainnet" | "testnet"; +} +``` + +### Utilities + +The plugin provides various utility functions for: +- Principal/Account conversions +- Candid type handling +- Result/Variant unwrapping +- Array/Hex conversions + +### Helper Functions + +```typescript +// Convert principal to account +principal2account(principal: string, subaccount?: number[]): string + +// Check if text is valid principal +isPrincipalText(text: string): boolean + +// Create anonymous actor for public queries +createAnonymousActor(idlFactory, canisterId, host?) +``` + +## Development Guide + +### Setting Up Development Environment + +1. Clone the repository +2. Install dependencies: +```bash +pnpm install +``` + +3. Build the plugin: +```bash +pnpm run build +``` + +4. Run tests: +```bash +pnpm test +``` + +### Testing with Local Replica + +1. Start a local Internet Computer replica +2. Configure environment for local testing +3. Use test identities for development + +## Dependencies + +- @dfinity/agent: ^2.1.3 +- @dfinity/candid: ^2.1.3 +- @dfinity/identity: ^2.1.3 +- @dfinity/principal: ^2.1.3 +- @elizaos/core: workspace:* + +## Future Enhancements + +- Support for additional canister standards +- Enhanced error handling and recovery +- Batch transaction support +- Advanced identity management +- Improved cycle management +- Extended canister interaction capabilities + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Internet Computer](https://internetcomputer.org/): Decentralized cloud computing platform +- [@dfinity/agent](https://www.npmjs.com/package/@dfinity/agent): ICP HTTP client and agent +- [@dfinity/candid](https://www.npmjs.com/package/@dfinity/candid): Candid interface description language +- [@dfinity/principal](https://www.npmjs.com/package/@dfinity/principal): Principal identifier handling +- [@dfinity/identity](https://www.npmjs.com/package/@dfinity/identity): Identity management + +Special thanks to: +- The DFINITY Foundation for developing the Internet Computer +- The ICP Developer community +- The DFINITY SDK maintainers +- The PickPump team for meme token infrastructure +- The Eliza community for their contributions and feedback + +For more information about Internet Computer capabilities: +- [ICP Documentation](https://internetcomputer.org/docs/) +- [DFINITY Developer Portal](https://smartcontracts.org/) +- [ICP Dashboard](https://dashboard.internetcomputer.org/) +- [Candid Documentation](https://internetcomputer.org/docs/current/developer-docs/build/candid/) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + diff --git a/packages/plugin-image-generation/README.MD b/packages/plugin-image-generation/README.MD new file mode 100644 index 00000000000..f3488fe44f2 --- /dev/null +++ b/packages/plugin-image-generation/README.MD @@ -0,0 +1,155 @@ +# Plugin Image Generation + +A plugin designed for generating and managing images, providing features like image manipulation, storage integration, and optimized handling for various use cases. + +## Overview + +The Plugin Image Generation offers developers tools to handle image-related operations seamlessly. It supports image creation, manipulation, and integration with storage solutions, making it ideal for applications requiring dynamic image generation. + +### Features + +- Dynamic image generation +- Integration with storage solutions +- Optimized handling for high-resolution images + +## Installation Instructions + +To install the plugin, use the following command: + +```bash +pnpm install plugin-image-generation +``` + +## Configuration Requirements + +### Environment Variables + +Ensure the following environment variables are set: + +| Variable Name | Description | +| ---------------------- | ----------------------------------- | +| `IMAGE_STORAGE_BUCKET` | Name of the storage bucket. | +| `STORAGE_ACCESS_KEY` | Access key for storage integration. | +| `STORAGE_SECRET_KEY` | Secret key for storage integration. | + +### TypeScript Configuration + +The plugin assumes a TypeScript environment. Ensure your `tsconfig.json` includes the necessary compiler options: + +```json +{ + "compilerOptions": { + "module": "ESNext", + "target": "ES6", + "moduleResolution": "node", + "strict": true + } +} +``` + +## Usage Examples + +### Generate an Image + +The main functionality allows generating an image dynamically. + +```typescript +import { generateImage } from "plugin-image-generation"; + +const image = await generateImage({ + width: 800, + height: 600, + backgroundColor: "#ffffff", + text: "Hello World", + font: "Arial", +}); + +console.log("Generated Image:", image); +``` + +### Upload to Storage + +The plugin supports direct integration with storage solutions for uploading images. + +```typescript +import { uploadImage } from "plugin-image-generation"; + +const uploadResult = await uploadImage({ + imagePath: "path/to/image.png", + bucketName: "my-storage-bucket", +}); + +console.log("Image uploaded successfully:", uploadResult); +``` + +## API Reference + +### generateImage + +#### Parameters + +- `width`: Width of the image. +- `height`: Height of the image. +- `backgroundColor`: Background color of the image. +- `text`: Text to be displayed on the image. +- `font`: Font style for the text. + +#### Returns + +A promise that resolves with the generated image. + +### uploadImage + +#### Parameters + +- `imagePath`: Path to the image file. +- `bucketName`: Name of the storage bucket. + +#### Returns + +A promise that resolves with the upload result. + +## Common Issues/Troubleshooting + +### Issue: Image Not Generated + +**Solution**: Ensure the input parameters for `generateImage` are valid and properly formatted. + +### Issue: Upload Fails + +**Solution**: Verify that the storage credentials and bucket name are correctly configured. + +### Issue: Poor Image Quality + +**Solution**: Check the resolution and ensure that high-quality settings are applied during generation. + +## Additional Documentation + +### Examples Folder + +Include sample projects in the `examples/` directory for users to reference. + +### Testing Guide + +- Run tests using `pnpm test`. +- Ensure integration tests cover all major functionalities. + +### Plugin Development Guide + +To extend this plugin, add new image generation or manipulation features in the `src/` directory. + +### Security Best Practices + +- Store access keys securely. +- Use environment variables for sensitive information. +- Regularly update dependencies. + +### Performance Optimization Guide + +- Optimize image generation by reducing redundant processing. +- Use efficient algorithms for image manipulation. +- Cache frequently used assets. + +## License + +MIT diff --git a/packages/plugin-intiface/README.md b/packages/plugin-intiface/README.md new file mode 100644 index 00000000000..c7a2acd049d --- /dev/null +++ b/packages/plugin-intiface/README.md @@ -0,0 +1,200 @@ +# @elizaos/plugin-intiface + +Intiface/Buttplug.io integration plugin for Eliza OS that enables control of intimate hardware devices. + +## Features + +- Support for multiple intimate hardware devices through Buttplug.io protocol +- Automatic device discovery and connection management +- Battery level monitoring for supported devices +- Vibration and rotation control (device-dependent) +- Graceful connection handling and cleanup +- Built-in device simulation for testing +- Support for customizable vibration patterns +- Automatic Intiface Engine management + +## Installation + +```bash +pnpm install @elizaos/plugin-intiface +``` + +## Configuration + +The plugin can be configured through environment variables or runtime settings: + +```env +INTIFACE_URL=ws://localhost:12345 +INTIFACE_NAME=Eliza Intiface Client +DEVICE_NAME=Lovense Nora +``` + +## Usage + +### Basic Device Control + +```typescript +import { intifacePlugin } from '@elizaos/plugin-intiface'; + +// Vibrate device +const result = await eliza.execute({ + action: 'VIBRATE', + content: { + strength: 0.5, // 0.0 to 1.0 + duration: 1000 // milliseconds + } +}); + +// Check battery level +const battery = await eliza.execute({ + action: 'BATTERY', + content: {} +}); +``` + +### Advanced Features + +```typescript +// Rotation control (for supported devices) +const result = await eliza.execute({ + action: 'ROTATE', + content: { + strength: 0.7, + duration: 2000 + } +}); +``` + +## Device Support + +The plugin supports various devices through the Buttplug protocol, including but not limited to: + +- Lovense devices (Nora, Max, etc.) +- WeVibe products +- Kiiroo devices +- Magic Motion products +- And many others supported by Buttplug.io + +## Testing + +The plugin includes a simulation mode for testing without physical hardware: + +```bash +pnpm test-via-bun +``` + +## Dependencies + +- Buttplug.io (v3.2.2) +- Intiface Engine +- WebSocket support + +## Troubleshooting + +### Common Issues + +1. **Connection Problems** + - Verify Intiface Engine is running (`ws://localhost:12345` by default) + - Check device Bluetooth is enabled and in pairing mode + - Ensure device is charged and within range + - Try restarting both device and Intiface Engine + +2. **Device Not Found** + - Confirm device is supported by Buttplug.io + - Try manual device pairing through Intiface Central first + - Check if device requires specific firmware version + - Verify device is not connected to another application + +3. **Command Failures** + - Check battery level is sufficient + - Ensure device is within supported range for command values + - Verify device supports the specific command (vibrate/rotate) + - Monitor Intiface Engine logs for detailed error messages + +4. **Performance Issues** + - Reduce command frequency if experiencing lag + - Check for Bluetooth interference + - Monitor system resources for potential bottlenecks + - Consider using wired connection if available + +## Security Best Practices + +1. **Device Privacy** + - Use secure WebSocket connections (wss://) when possible + - Don't expose Intiface Engine to public networks + - Regularly check for and apply firmware updates + - Monitor device connection status + +2. **Data Protection** + - Clear device pairing history when needed + - Don't store sensitive device information + - Use unique device names for identification + - Implement timeouts for idle connections + +3. **Access Control** + - Limit device control to authenticated users + - Implement command rate limiting + - Use device-specific permissions where applicable + - Monitor and log unusual command patterns + +4. **Network Security** + - Keep Intiface Engine behind firewall + - Use local connections when possible + - Implement connection timeouts + - Regular security audits of configurations + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + + +## Credits + +This plugin integrates with [Buttplug.io](https://buttplug.io) and [Intiface Engine](https://github.com/intiface/intiface-engine), developed by Nonpolynomial Labs, LLC. + +Special thanks to: +- The Buttplug.io team for developing the Buttplug.io protocol +- The Intiface Engine team for developing the Intiface Engine +- The Eliza community for their contributions and feedback. + +For more information about Buttplug.io and Intiface Engine: +- [Buttplug.io](https://buttplug.io) +- [Intiface Engine](https://github.com/intiface/intiface-engine) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. + + +Intiface is a Registered Trademark of Nonpolynomial Labs, LLC + +Buttplug and Intiface are BSD licensed. + + Copyright (c) 2016-2022, Nonpolynomial Labs, LLC + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of buttplug nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/packages/plugin-multiversx/README.md b/packages/plugin-multiversx/README.md new file mode 100644 index 00000000000..90e1aa1fd4b --- /dev/null +++ b/packages/plugin-multiversx/README.md @@ -0,0 +1,178 @@ +# @elizaos/plugin-multiversx + +MultiversX blockchain integration plugin for Eliza OS that enables token management and transfers. + +## Overview + +This plugin aims to be the basis of all interactions with the MultiversX ecosystem. + +## Features + +- EGLD and ESDT token transfers +- Token creation and management +- Multiple network support (mainnet, devnet, testnet) +- Secure transaction signing +- Automatic nonce management +- Transaction status tracking +- Built-in denomination handling +- Comprehensive error handling + +## Adding a new action + +Reuse providers and utilities from the existing actions where possible. Add more utilities if you think they will be useful for other actions. + +1. Add the action to the `actions` directory. Try to follow the naming convention of the other actions. +2. Export the action in the `index.ts` file. + +## Installation + +```bash +pnpm install @elizaos/plugin-multiversx +``` + +## Configuration + +The plugin requires environment variables or runtime settings: + +```env +MVX_PRIVATE_KEY=your-wallet-private-key +MVX_NETWORK=devnet # mainnet, devnet, or testnet +``` + +## Usage + +### Token Transfer + +```typescript +import { multiversxPlugin } from '@elizaos/plugin-multiversx'; + +// Send EGLD +const result = await eliza.execute({ + action: 'SEND_TOKEN', + content: { + tokenAddress: 'erd1...', + amount: '1', + tokenIdentifier: 'EGLD' + } +}); + +// Send ESDT +const result = await eliza.execute({ + action: 'SEND_TOKEN', + content: { + tokenAddress: 'erd1...', + amount: '100', + tokenIdentifier: 'TEST-a1b2c3' + } +}); +``` + +### Token Creation + +```typescript +const result = await eliza.execute({ + action: 'CREATE_TOKEN', + content: { + tokenName: 'TestToken', + tokenTicker: 'TEST', + decimals: '18', + amount: '1000000' + } +}); +``` + +## Troubleshooting + +### Common Issues + +1. **Transaction Failures** + - Verify wallet has sufficient balance + - Check network configuration matches intended network + - Ensure correct token identifiers + - Verify recipient address format + +2. **Configuration Problems** + - Validate private key format + - Check network selection is valid + - Ensure environment variables are properly set + - Verify wallet permissions for token operations + +3. **Token Creation Issues** + - Check token name and ticker format + - Verify EGLD balance for issuance fee + - Ensure unique token identifiers + - Monitor transaction status + +4. **Network Connectivity** + - Verify network endpoint availability + - Check API rate limits + - Monitor network status + - Ensure proper network selection + +## Security Best Practices + +1. **Key Management** + - Never expose private keys in code + - Use environment variables for sensitive data + - Implement key rotation policies + - Monitor wallet activity + +2. **Transaction Safety** + - Validate all transaction parameters + - Implement transaction limits + - Use proper denomination handling + - Double-check recipient addresses + +3. **Network Security** + - Use secure network connections + - Implement retry mechanisms + - Monitor for suspicious activity + - Keep dependencies updated + +4. **Error Handling** + - Implement comprehensive error logging + - Handle network timeouts gracefully + - Validate all user inputs + - Provide clear error messages + +## Testing + +Run the test suite: + +```bash +pnpm test +``` + +Watch mode for development: + +```bash +pnpm test:watch +``` + +## Dependencies + +- @multiversx/sdk-core: ^13.15.0 +- bignumber.js: ^9.1.2 +- tsup: ^8.3.5 +- vitest: ^2.1.5 + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with the [MultiversX blockchain](https://multiversx.com/) using their official SDK. + +Special thanks to: +- The MultiversX team for developing the MultiversX blockchain +- The Eliza community for their contributions and feedback. + +For more information about MultiversX blockchain capabilities: +- [MultiversX Documentation](https://docs.multiversx.com/) +- [MultiversX Developer Portal](https://docs.multiversx.com/developers/getting-started/introduction) +- [MultiversX GitHub Repository](https://github.com/multiversx/mx-sdk-js) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-multiversx/readme.md b/packages/plugin-multiversx/readme.md deleted file mode 100644 index 0c26c8b537b..00000000000 --- a/packages/plugin-multiversx/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# MultiversX Plugin - -## Overview - -This plugin aims to be the basis of all interactions with the MultiversX ecosystem. - -## Adding a new action - -Reuse providers and utilities from the existing actions where possible. Add more utilities if you think they will be useful for other actions. - -1. Add the action to the `actions` directory. Try to follow the naming convention of the other actions. -2. Export the action in the `index.ts` file. diff --git a/packages/plugin-near/README.md b/packages/plugin-near/README.md new file mode 100644 index 00000000000..fe3d6d5aade --- /dev/null +++ b/packages/plugin-near/README.md @@ -0,0 +1,210 @@ +# @elizaos/plugin-near + +NEAR Protocol integration plugin for Eliza OS that enables token management, transfers, and swaps using Ref Finance. + +## Overview + +This plugin aims to be the basis of all interactions with the NEAR ecosystem, providing seamless integration with NEAR Protocol and Ref Finance DEX. + +## Features + +- NEAR token transfers +- Token swaps via Ref Finance +- Multiple network support (mainnet, testnet) +- Secure transaction signing +- Automatic storage deposit handling +- Real-time price feeds +- Portfolio tracking and management +- Smart routing for optimal swaps +- Built-in denomination handling +- Comprehensive error handling + +## Installation + +```bash +pnpm install @elizaos/plugin-near +``` + +## Configuration + +The plugin requires environment variables or runtime settings: + +```env +NEAR_WALLET_SECRET_KEY=your-wallet-private-key +NEAR_WALLET_PUBLIC_KEY=your-wallet-public-key +NEAR_ADDRESS=your-account.near +NEAR_NETWORK=testnet # mainnet or testnet +RPC_URL=https://rpc.testnet.near.org +SLIPPAGE=0.01 # 1% slippage tolerance +``` + +## Usage + +### Token Transfer + +```typescript +import { nearPlugin } from '@elizaos/plugin-near'; + +// Send NEAR +const result = await eliza.execute({ + action: 'SEND_NEAR', + content: { + recipient: 'bob.near', + amount: '1.5' + } +}); +``` + +### Token Swap + +```typescript +const result = await eliza.execute({ + action: 'EXECUTE_SWAP_NEAR', + content: { + inputTokenId: 'wrap.near', + outputTokenId: 'token.v2.ref-finance.near', + amount: '10' + } +}); +``` +## API Reference + +### Actions + +#### `SEND_NEAR` +Transfers NEAR tokens to another account. + +```typescript +{ + action: 'SEND_NEAR', + content: { + recipient: string, // Recipient's NEAR account (e.g., "bob.near") + amount: string, // Amount to send (in NEAR) + tokenAddress?: string // Optional: for NEP-141 tokens + } +} +``` + +#### `EXECUTE_SWAP_NEAR` +Executes a token swap using Ref Finance. + +```typescript +{ + action: 'EXECUTE_SWAP_NEAR', + content: { + inputTokenId: string, // Input token contract (e.g., "wrap.near") + outputTokenId: string, // Output token contract + amount: string, // Amount to swap + slippageTolerance?: number // Optional: default from config + } +} +``` + +### Providers + +#### Wallet Provider +Provides wallet information and portfolio tracking. + +```typescript +const walletInfo = await eliza.getProvider('wallet'); +// Returns formatted portfolio including: +// - Account balance +// - Token balances +// - USD values +// - Market prices +``` + +## Troubleshooting + +### Common Issues + +1. **Transaction Failures** + - Check account balance + - Verify storage deposits + - Ensure sufficient gas + - Confirm slippage tolerance + +2. **Connection Problems** + - Verify RPC endpoint + - Check network selection + - Ensure valid credentials + - Monitor API rate limits + +3. **Swap Issues** + - Verify token pairs exist + - Check liquidity pools + - Confirm price impact + - Monitor slippage settings + +## Security Best Practices + +1. **Key Management** + - Store private keys securely + - Use environment variables + - Implement key rotation + - Monitor account activity + +2. **Transaction Safety** + - Validate all inputs + - Implement amount limits + - Double-check recipients + - Monitor transaction status + +3. **Network Security** + - Use secure RPC endpoints + - Implement retry mechanisms + - Monitor for suspicious activity + - Keep dependencies updated + +4. **Error Handling** + - Log all transaction attempts + - Handle timeouts gracefully + - Validate all user inputs + - Provide clear error messages + +## Testing + +Run the test suite: + +```bash +pnpm test +``` + +Watch mode for development: + +```bash +pnpm test:watch +``` + +## Dependencies + +- near-api-js: ^5.0.1 +- @ref-finance/ref-sdk: ^1.4.6 +- bignumber.js: ^9.1.2 +- node-cache: ^5.1.2 + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with: +- [NEAR Protocol](https://near.org/) +- [Ref Finance](https://ref.finance/) +- Official NEAR JavaScript API and SDKs + +Special thanks to: +- The NEAR Protocol team for developing the NEAR blockchain +- The Ref Finance team for developing the Ref Finance DEX +- The Eliza community for their contributions and feedback. + +For more information about NEAR blockchain capabilities: +- [NEAR Documentation](https://docs.near.org/) +- [NEAR Developer Portal](https://near.org/developers) +- [NEAR Network Dashboard](https://nearscan.io/) +- [NEAR GitHub Repository](https://github.com/nearprotocol/near-api-js) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-nft-generation/README.md b/packages/plugin-nft-generation/README.md new file mode 100644 index 00000000000..f7e953f2a51 --- /dev/null +++ b/packages/plugin-nft-generation/README.md @@ -0,0 +1,229 @@ +# @elizaos/plugin-nft-generation + +NFT collection generation plugin for Eliza OS that enables NFT creation, collection management, and verification on the Solana blockchain. + +## Overview + +This plugin provides comprehensive NFT functionality, including collection creation, NFT minting, and verification, with automatic image generation and metadata management. + +## Features + +- Automated NFT collection creation +- AI-powered image generation for NFTs +- Collection logo generation +- Metadata creation and management +- AWS S3 integration for asset storage +- Solana blockchain integration +- NFT verification system +- Automatic nonce management +- Comprehensive error handling + +## Installation + +```bash +pnpm install @elizaos/plugin-nft-generation +``` + +## Configuration + +The plugin requires environment variables or runtime settings: + +```env +# Solana Configuration +SOLANA_PUBLIC_KEY=your-wallet-public-key +SOLANA_PRIVATE_KEY=your-wallet-private-key +SOLANA_ADMIN_PUBLIC_KEY=admin-public-key +SOLANA_ADMIN_PRIVATE_KEY=admin-private-key +SOLANA_VERIFY_TOKEN=verification-token +SOLANA_CLUSTER=devnet # or mainnet-beta + +# AWS Configuration +AWS_ACCESS_KEY_ID=your-aws-access-key +AWS_SECRET_ACCESS_KEY=your-aws-secret-key +AWS_REGION=aws-region +AWS_S3_BUCKET=bucket-name +``` + +## API Reference + +### Collection Management + +#### `createCollection` +Creates a new NFT collection with an AI-generated logo. + +```typescript +const result = await createCollection({ + runtime: runtimeInstance, + collectionName: "MyCollection", + fee: 0.01 // Optional: royalty fee percentage +}); +``` + +#### `createNFT` +Mints a new NFT in an existing collection. + +```typescript +const nft = await createNFT({ + runtime: runtimeInstance, + collectionName: "MyCollection", + collectionAddress: "collection123", + collectionAdminPublicKey: "admin123", + collectionFee: 0.01, + tokenId: 1 +}); +``` + +#### `verifyNFT` +Verifies an NFT as part of a collection. + +```typescript +const verification = await verifyNFT({ + runtime: runtimeInstance, + collectionAddress: "collection123", + NFTAddress: "nft123" +}); +``` + +## REST API Endpoints + +### POST `/api/nft-generation/create-collection` +Creates a new collection with generated logo. + +### POST `/api/nft-generation/create-nft` +Mints a new NFT with generated artwork. + +### POST `/api/nft-generation/create-nft-metadata` +Generates metadata for an NFT. + +### POST `/api/nft-generation/verify-nft` +Verifies an NFT's collection membership. + +## Example Workflow + +The plugin provides a streamlined process for generating and verifying NFT collections: + +```typescript +import { createCollection, createNFT, verifyNFT } from "./handlers"; + +const runtime = initializeRuntime(); // Replace with actual IAgentRuntime initialization + +(async () => { + // Step 1: Create Collection + const collectionResult = await createCollection({ + runtime, + collectionName: "MyUniqueCollection", + }); + + console.log("Collection created:", collectionResult); + + // Step 2: Create an NFT in the Collection + const nftResult = await createNFT({ + runtime, + collectionName: "MyUniqueCollection", + collectionAddress: collectionResult.address, + collectionAdminPublicKey: collectionResult.collectionInfo.adminPublicKey, + collectionFee: 0.01, + tokenId: 1, + }); + + console.log("NFT created:", nftResult); + + // Step 3: Verify the NFT + const verificationResult = await verifyNFT({ + runtime, + collectionAddress: collectionResult.address, + NFTAddress: nftResult.address, + }); + console.log("NFT verified:", verificationResult); +})(); +``` + +## Example Prompts + +Here are some examples of user prompts to trigger NFT collection generation: + +- "Generate a collection named MyCollection." +- "Create a new NFT collection." +- "Compile an NFT collection for me." +- "Build a sci-fi themed collection." + +## Local Testing with TEE Simulator + +To test locally using a Trusted Execution Environment (TEE) simulator: + +1. Pull the simulator Docker image: +```bash +docker pull phalanetwork/tappd-simulator:latest +``` + +2. Run the simulator: +```bash +docker run --rm -p 8090:8090 phalanetwork/tappd-simulator:latest +``` + +3. Update your environment variable for the simulator: +```env +DSTACK_SIMULATOR_ENDPOINT="http://localhost:8090" +``` + +## Security Best Practices + +1. **Key Management** + - Store private keys securely + - Use environment variables + - Implement key rotation + - Monitor wallet activity + +2. **Asset Security** + - Secure S3 bucket configuration + - Implement proper CORS policies + - Use secure URLs for metadata + - Regular backup of assets + +3. **Transaction Safety** + - Validate all inputs + - Implement fee limits + - Double-check collection ownership + - Monitor transaction status + +4. **Error Handling** + - Log all operations + - Handle timeouts gracefully + - Validate metadata + - Provide clear error messages + +## Dependencies + +- @elizaos/core: workspace:* +- @elizaos/plugin-image-generation: workspace:* +- @elizaos/plugin-node: workspace:* +- @metaplex-foundation/mpl-token-metadata: ^3.3.0 +- @solana/web3.js: 1.95.5 +- express: 4.21.1 +- node-cache: 5.1.2 + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + + +## Credits + +This plugin integrates with: +- [Solana Blockchain](https://solana.com) +- [Metaplex Protocol](https://www.metaplex.com) +- AWS S3 for asset storage + +Special thanks to: +- The Solana ecosystem and all the open-source contributors who make these integrations possible. +- The Eliza community for their contributions and feedback. + +For more information about Solana blockchain capabilities: +- [Solana Documentation](https://docs.solana.com/) +- [Solana Developer Portal](https://solana.com/developers) +- [Solana Network Dashboard](https://solscan.io/) +- [Solana GitHub Repository](https://github.com/solana-labs/solana) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-nft-generation/Readme.md b/packages/plugin-nft-generation/Readme.md deleted file mode 100644 index 29447139428..00000000000 --- a/packages/plugin-nft-generation/Readme.md +++ /dev/null @@ -1,185 +0,0 @@ -### NFT Collection Generation Plugin - -A plugin for handling NFT collection generation, NFT creation, and verification on the Solana blockchain. - -## Handlers - -### createCollection -The createCollection handler generates an NFT collection logo, uploads it to AWS S3, and creates a Solana blockchain collection. - -#### Usage -```typescript -import { createCollection } from "./handlers/createCollection.ts"; - -const result = await createCollection({ - runtime: runtimeInstance, // An instance of IAgentRuntime - collectionName: "MyCollection", // The name of the collection - fee: 0.01, // (Optional) Fee for transactions -}); - -console.log("Collection created:", result); -``` - -#### Features - -Image Generation: Automatically generates a collection logo based on the provided name and theme. -AWS S3 Integration: Uploads the generated logo and metadata to AWS S3. -Solana Blockchain: Creates a collection with the generated logo and metadata on the Solana blockchain. -### createNFT -The createNFT handler generates individual NFTs for a collection. It includes metadata creation and uploads the NFT information to AWS S3. - -#### Usage - -```typescript -import { createNFT } from "./handlers/createNFT.ts"; - -const nftResult = await createNFT({ - runtime: runtimeInstance, - collectionName: "MyCollection", - collectionAddress: "collectionAddress123", - collectionAdminPublicKey: "adminPublicKey123", - collectionFee: 0.01, - tokenId: 1, -}); - -console.log("NFT created:", nftResult); -``` - -### verifyNFT - -The verifyNFT handler verifies an NFT against its collection using the Solana blockchain. - -#### Usage - -```typescript -import { verifyNFT } from "./handlers/verifyNFT.ts"; - -const verificationResult = await verifyNFT({ - runtime: runtimeInstance, - collectionAddress: "collectionAddress123", - NFTAddress: "NFTAddress123", -}); - -console.log("NFT verified:", verificationResult); -```` ---- - -### Example Workflow - -The plugin provides a streamlined process for generating and verifying NFT collections: - -```typescript -import { createCollection, createNFT, verifyNFT } from "./handlers"; - -const runtime = initializeRuntime(); // Replace with actual IAgentRuntime initialization - -(async () => { - // Step 1: Create Collection - const collectionResult = await createCollection({ - runtime, - collectionName: "MyUniqueCollection", - }); - - console.log("Collection created:", collectionResult); - - // Step 2: Create an NFT in the Collection - const nftResult = await createNFT({ - runtime, - collectionName: "MyUniqueCollection", - collectionAddress: collectionResult.address, - collectionAdminPublicKey: collectionResult.collectionInfo.adminPublicKey, - collectionFee: 0.01, - tokenId: 1, - }); - - console.log("NFT created:", nftResult); - - // Step 3: Verify the NFT - const verificationResult = await verifyNFT({ - runtime, - collectionAddress: collectionResult.address, - NFTAddress: nftResult.address, - }); - - console.log("NFT verified:", verificationResult); -})(); -``` - -### Configuration - -#### Environment Variables -``` -Ensure the following environment variables are set for proper functionality: - -Variable Name Description -AWS_ACCESS_KEY_ID AWS access key for S3 uploads -AWS_SECRET_ACCESS_KEY AWS secret key for S3 uploads -AWS_REGION AWS region where S3 is located -AWS_S3_BUCKET Name of the AWS S3 bucket -SOLANA_PUBLIC_KEY Public key for Solana blockchain -SOLANA_PRIVATE_KEY Private key for Solana blockchain -SOLANA_ADMIN_PUBLIC_KEY Admin public key for Solana operations -SOLANA_ADMIN_PRIVATE_KEY Admin private key for Solana operations -``` -#### Example Prompts - -Here are some examples of user prompts to trigger NFT collection generation: - -"Generate a collection named MyCollection." -"Create a new NFT collection." -"Compile an NFT collection for me." -"Build a sci-fi themed collection." - - -#### Local Testing with TEE Simulator - -To test locally using a Trusted Execution Environment (TEE) simulator, follow these steps: - -Pull the simulator Docker image: -``` bash -docker pull phalanetwork/tappd-simulator:latest -``` -Run the simulator: - -``` bash -docker run --rm -p 8090:8090 phalanetwork/tappd-simulator:latest -``` -Update your environment variable for the simulator: - -```env -DSTACK_SIMULATOR_ENDPOINT="http://localhost:8090" -``` - -#### Dependencies - -This plugin relies on the following services and libraries: - -[@elizaos/plugin-node] -[@elizaos/eliza] -[@elizaos/plugin-image-generation] -[@solana/web3.js] - -### Action Configuration - -#### GENERATE_COLLECTION -The action for generating NFT collections is configured with the following parameters: - -```typescript -const nftCollectionGeneration: Action = { - name: "GENERATE_COLLECTION", - description: "Generate an NFT collection for the message", - handler: async (runtime, message, state, options, callback) => { - // Implementation - }, - examples: [ - { - user: "{{user1}}", - content: { text: "Generate a collection named Galaxy." }, - }, - { - agent: "{{agentName}}", - content: { text: "The collection Galaxy has been successfully created." }, - }, - ], -}; -``` diff --git a/packages/plugin-node/README.md b/packages/plugin-node/README.md new file mode 100644 index 00000000000..a9951681292 --- /dev/null +++ b/packages/plugin-node/README.md @@ -0,0 +1,302 @@ +# @elizaos/plugin-node + +Core Node.js plugin for Eliza OS that provides essential services and actions for file operations, media processing, and cloud integrations. + +## Overview + +The Node plugin serves as a foundational component of Eliza OS, bridging core Node.js capabilities with the Eliza ecosystem. It provides crucial services for file operations, media processing, speech synthesis, and cloud integrations, enabling both local and cloud-based functionality for Eliza agents. + + +## Features + +- **AWS S3 Integration**: File upload and management with AWS S3 +- **Browser Automation**: Web scraping and content extraction with Playwright +- **Image Processing**: Image description and analysis capabilities +- **PDF Processing**: PDF text extraction and parsing +- **Speech Synthesis**: Text-to-speech using ElevenLabs and VITS +- **Transcription**: Speech-to-text using various providers (OpenAI, Deepgram, Local) +- **Video Processing**: YouTube video download and transcription +- **LLaMA Integration**: Local LLM support with LLaMA models + +## Installation + +```bash +npm install @elizaos/plugin-node +``` + +## Configuration + +The plugin requires various environment variables depending on which services you plan to use: + +### Core Settings +```env +OPENAI_API_KEY=your_openai_api_key +``` + +### Voice Settings (Optional) +```env +ELEVENLABS_XI_API_KEY=your_elevenlabs_api_key +ELEVENLABS_MODEL_ID=eleven_monolingual_v1 +ELEVENLABS_VOICE_ID=your_voice_id +ELEVENLABS_VOICE_STABILITY=0.5 +ELEVENLABS_VOICE_SIMILARITY_BOOST=0.75 +ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=0 +ELEVENLABS_OUTPUT_FORMAT=pcm_16000 +VITS_VOICE=en_US-hfc_female-medium +``` + +### AWS Settings (Optional) +```env +AWS_ACCESS_KEY_ID=your_aws_access_key +AWS_SECRET_ACCESS_KEY=your_aws_secret_key +AWS_REGION=your_aws_region +AWS_S3_BUCKET=your_s3_bucket +AWS_S3_UPLOAD_PATH=your_upload_path +``` + +## Usage + +```typescript +import { createNodePlugin } from "@elizaos/plugin-node"; + +// Initialize the plugin +const nodePlugin = createNodePlugin(); + +// Register with Eliza OS +elizaOS.registerPlugin(nodePlugin); +``` + +## Services + +### AwsS3Service +Handles file uploads and management with AWS S3. + +### BrowserService +Provides web scraping and content extraction capabilities using Playwright. + +### ImageDescriptionService +Processes and analyzes images to generate descriptions. + +### LlamaService +Provides local LLM capabilities using LLaMA models. + +### PdfService +Extracts and processes text content from PDF files. + +### SpeechService +Handles text-to-speech conversion using ElevenLabs and VITS. + +### TranscriptionService +Converts speech to text using various providers. + +### VideoService +Processes video content, including YouTube video downloads and transcription. + +## Actions + +### describeImage +Analyzes and generates descriptions for images. + +```typescript +// Example usage +const result = await runtime.executeAction("DESCRIBE_IMAGE", { + imageUrl: "path/to/image.jpg" +}); +``` + +## Dependencies + +The plugin requires several peer dependencies: +- `onnxruntime-node`: 1.20.1 +- `whatwg-url`: 7.1.0 + +And trusted dependencies: +- `onnxruntime-node`: 1.20.1 +- `sharp`: 0.33.5 + +## Safety & Security + +### File Operations +- **Path Sanitization**: All file paths are sanitized to prevent directory traversal attacks +- **File Size Limits**: Enforced limits on upload sizes +- **Type Checking**: Strict file type validation +- **Temporary File Cleanup**: Automatic cleanup of temporary files + +### API Keys & Credentials +- **Environment Isolation**: Sensitive credentials are isolated in environment variables +- **Access Scoping**: Services are initialized with minimum required permissions +- **Key Rotation**: Support for credential rotation without service interruption + +### Media Processing +- **Resource Limits**: Memory and CPU usage limits for media processing +- **Timeout Controls**: Automatic termination of long-running processes +- **Format Validation**: Strict media format validation before processing + +## Troubleshooting + +### Common Issues + +1. **Service Initialization Failures** +```bash +Error: Service initialization failed +``` +- Verify environment variables are properly set +- Check service dependencies are installed +- Ensure sufficient system permissions + +2. **Media Processing Errors** +```bash +Error: Failed to process media file +``` +- Verify file format is supported +- Check available system memory +- Ensure ffmpeg is properly installed + +3. **AWS S3 Connection Issues** +```bash +Error: AWS credentials not configured +``` +- Verify AWS credentials are set +- Check S3 bucket permissions +- Ensure correct region configuration + +### Debug Mode + +Enable debug logging for detailed troubleshooting: +```typescript +process.env.DEBUG = 'eliza:plugin-node:*'; +``` + +### System Requirements + +- Node.js 16.x or higher +- FFmpeg for media processing +- Minimum 4GB RAM recommended +- CUDA-compatible GPU (optional, for ML features) + +### Performance Optimization + +1. **Cache Management** + - Regular cleanup of `content_cache` directory + - Implement cache size limits + - Monitor disk usage + +2. **Memory Usage** + - Configure max buffer sizes + - Implement streaming for large files + - Monitor memory consumption + +3. **Concurrent Operations** + - Adjust queue size limits + - Configure worker threads + - Monitor process pool + +## Support + +For issues and feature requests, please: +1. Check the troubleshooting guide above +2. Review existing GitHub issues +3. Submit a new issue with: + - System information + - Error logs + - Steps to reproduce + +## Future Enhancements + +1. **File Operations** + - Enhanced streaming capabilities + - Advanced compression options + - Batch file processing + - File type detection + - Metadata management + - Version control integration + +2. **Media Processing** + - Additional video formats + - Advanced image processing + - Audio enhancement tools + - Real-time processing + - Quality optimization + - Format conversion + +3. **Cloud Integration** + - Multi-cloud support + - Advanced caching + - CDN optimization + - Auto-scaling features + - Cost optimization + - Backup automation + +4. **Speech Services** + - Additional voice models + - Language expansion + - Emotion detection + - Voice cloning + - Real-time synthesis + - Custom voice training + +5. **Browser Automation** + - Headless optimization + - Parallel processing + - Session management + - Cookie handling + - Proxy support + - Resource optimization + +6. **Security Features** + - Enhanced encryption + - Access control + - Audit logging + - Threat detection + - Rate limiting + - Compliance tools + +7. **Performance Optimization** + - Memory management + - CPU utilization + - Concurrent operations + - Resource pooling + - Cache strategies + - Load balancing + +8. **Developer Tools** + - Enhanced debugging + - Testing framework + - Documentation generator + - CLI improvements + - Monitoring tools + - Integration templates + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Node.js](https://nodejs.org/) - The core runtime environment +- [FFmpeg](https://ffmpeg.org/) - Media processing capabilities +- [ElevenLabs](https://elevenlabs.io/) - Voice synthesis +- [OpenAI](https://openai.com/) - Transcription and AI services +- [AWS S3](https://aws.amazon.com/s3/) - Cloud storage +- [Playwright](https://playwright.dev/) - Browser automation +- [LLaMA](https://github.com/facebookresearch/llama) - Local language models +- [VITS](https://github.com/jaywalnut310/vits) - Voice synthesis +- [Deepgram](https://deepgram.com/) - Speech recognition +- [Sharp](https://sharp.pixelplumbing.com/) - Image processing + +Special thanks to: +- The Node.js community and all the open-source contributors who make these integrations possible. +- The Eliza community for their contributions and feedback. + +For more information about Node.js capabilities: +- [Node.js Documentation](https://nodejs.org/en/docs/) +- [Node.js Developer Portal](https://nodejs.org/en/about/) +- [Node.js GitHub Repository](https://github.com/nodejs/node) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-node/src/services/image.ts b/packages/plugin-node/src/services/image.ts index 056d4fb05da..44d88f9e7df 100644 --- a/packages/plugin-node/src/services/image.ts +++ b/packages/plugin-node/src/services/image.ts @@ -187,7 +187,7 @@ export class ImageDescriptionService ): Promise { for (let attempt = 0; attempt < 3; attempt++) { try { - const shouldUseBase64 = isGif || isLocalFile; + const shouldUseBase64 = (isGif || isLocalFile)&& !(this.runtime.imageModelProvider === ModelProviderName.OPENAI); const mimeType = isGif ? "png" : path.extname(imageUrl).slice(1) || "jpeg"; @@ -206,11 +206,11 @@ export class ImageDescriptionService }, }, ]; - + // If model provider is openai, use the endpoint, otherwise use the default openai endpoint. const endpoint = - models[this.runtime.imageModelProvider].endpoint ?? - "https://api.openai.com/v1"; - + this.runtime.imageModelProvider === ModelProviderName.OPENAI + ? models[this.runtime.imageModelProvider].endpoint + : "https://api.openai.com/v1"; const response = await fetch(endpoint + "/chat/completions", { method: "POST", headers: { diff --git a/packages/plugin-node/src/services/transcription.ts b/packages/plugin-node/src/services/transcription.ts index 5b734061524..daac3bf303f 100644 --- a/packages/plugin-node/src/services/transcription.ts +++ b/packages/plugin-node/src/services/transcription.ts @@ -3,6 +3,7 @@ import { IAgentRuntime, ITranscriptionService, settings, + TranscriptionProvider, } from "@elizaos/core"; import { Service, ServiceType } from "@elizaos/core"; import { exec } from "child_process"; @@ -32,16 +33,102 @@ export class TranscriptionService private DEBUG_AUDIO_DIR: string; private TARGET_SAMPLE_RATE = 16000; // Common sample rate for speech recognition private isCudaAvailable: boolean = false; + + /** + * CHANGED: We now use TranscriptionProvider instead of separate flags/strings. + * This allows us to handle character settings, env variables, and fallback logic. + */ + private transcriptionProvider: TranscriptionProvider | null = null; + + private deepgram: DeepgramClient | null = null; private openai: OpenAI | null = null; - private deepgram?: DeepgramClient; + /** + * We keep the queue and processing logic as is. + */ private queue: { audioBuffer: ArrayBuffer; resolve: Function }[] = []; private processing: boolean = false; + /** + * CHANGED: initialize() now checks: + * 1) character.settings.transcription (if available and keys exist), + * 2) then the .env TRANSCRIPTION_PROVIDER, + * 3) then old fallback logic (Deepgram -> OpenAI -> local). + */ async initialize(_runtime: IAgentRuntime): Promise { this.runtime = _runtime; - const deepgramKey = this.runtime.getSetting("DEEPGRAM_API_KEY"); - this.deepgram = deepgramKey ? createClient(deepgramKey) : null; + + // 1) Check character settings + let chosenProvider: TranscriptionProvider | null = null; + const charSetting = this.runtime.character?.settings?.transcription; + + if (charSetting === TranscriptionProvider.Deepgram) { + const deepgramKey = this.runtime.getSetting("DEEPGRAM_API_KEY"); + if (deepgramKey) { + this.deepgram = createClient(deepgramKey); + chosenProvider = TranscriptionProvider.Deepgram; + } + } else if (charSetting === TranscriptionProvider.OpenAI) { + const openaiKey = this.runtime.getSetting("OPENAI_API_KEY"); + if (openaiKey) { + this.openai = new OpenAI({ apiKey: openaiKey }); + chosenProvider = TranscriptionProvider.OpenAI; + } + } else if (charSetting === TranscriptionProvider.Local) { + chosenProvider = TranscriptionProvider.Local; + } + + // 2) If not chosen from character, check .env + if (!chosenProvider) { + const envProvider = this.runtime.getSetting("TRANSCRIPTION_PROVIDER"); + if (envProvider) { + switch (envProvider.toLowerCase()) { + case "deepgram": + { + const dgKey = this.runtime.getSetting("DEEPGRAM_API_KEY"); + if (dgKey) { + this.deepgram = createClient(dgKey); + chosenProvider = TranscriptionProvider.Deepgram; + } + } + break; + case "openai": + { + const openaiKey = this.runtime.getSetting("OPENAI_API_KEY"); + if (openaiKey) { + this.openai = new OpenAI({ apiKey: openaiKey }); + chosenProvider = TranscriptionProvider.OpenAI; + } + } + break; + case "local": + chosenProvider = TranscriptionProvider.Local; + break; + } + } + } + + // 3) If still none, fallback to old logic: Deepgram -> OpenAI -> local + if (!chosenProvider) { + const deepgramKey = this.runtime.getSetting("DEEPGRAM_API_KEY"); + if (deepgramKey) { + this.deepgram = createClient(deepgramKey); + chosenProvider = TranscriptionProvider.Deepgram; + } else { + const openaiKey = this.runtime.getSetting("OPENAI_API_KEY"); + if (openaiKey) { + this.openai = new OpenAI({ apiKey: openaiKey }); + chosenProvider = TranscriptionProvider.OpenAI; + } else { + chosenProvider = TranscriptionProvider.Local; + } + } + } + + this.transcriptionProvider = chosenProvider; + + // Leave detectCuda as is. + this.detectCuda(); } constructor() { @@ -92,7 +179,7 @@ export class TranscriptionService } else if (platform === "win32") { const cudaPath = path.join( settings.CUDA_PATH || - "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0", + "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0", "bin", "nvcc.exe" ); @@ -172,6 +259,9 @@ export class TranscriptionService return await this.transcribe(audioBuffer); } + /** + * If the audio buffer is too short, return null. Otherwise push to queue. + */ public async transcribe(audioBuffer: ArrayBuffer): Promise { // if the audio buffer is less than .2 seconds, just return null if (audioBuffer.byteLength < 0.2 * 16000) { @@ -191,22 +281,27 @@ export class TranscriptionService return this.transcribeLocally(audioBuffer); } + /** + * CHANGED: processQueue() uses the final transcriptionProvider enum set in initialize(). + */ private async processQueue(): Promise { - if (this.processing || this.queue.length === 0) { - return; - } - + // Exit if already processing or if the queue is empty + if (this.processing || this.queue.length === 0) return; this.processing = true; while (this.queue.length > 0) { const { audioBuffer, resolve } = this.queue.shift()!; let result: string | null = null; - if (this.deepgram) { - result = await this.transcribeWithDeepgram(audioBuffer); - } else if (this.openai) { - result = await this.transcribeWithOpenAI(audioBuffer); - } else { - result = await this.transcribeLocally(audioBuffer); + + switch (this.transcriptionProvider) { + case TranscriptionProvider.Deepgram: + result = await this.transcribeWithDeepgram(audioBuffer); + break; + case TranscriptionProvider.OpenAI: + result = await this.transcribeWithOpenAI(audioBuffer); + break; + default: + result = await this.transcribeLocally(audioBuffer); } resolve(result); @@ -215,6 +310,20 @@ export class TranscriptionService this.processing = false; } + /** + * Original logic from main is now handled by the final fallback in initialize(). + * We'll keep transcribeUsingDefaultLogic() if needed by other code references, + * but it’s no longer invoked in the new flow. + */ + private async transcribeUsingDefaultLogic(audioBuffer: ArrayBuffer): Promise { + if (this.deepgram) { + return await this.transcribeWithDeepgram(audioBuffer); + } else if (this.openai) { + return await this.transcribeWithOpenAI(audioBuffer); + } + return await this.transcribeLocally(audioBuffer); + } + private async transcribeWithDeepgram( audioBuffer: ArrayBuffer ): Promise { @@ -280,6 +389,10 @@ export class TranscriptionService } } + /** + * Local transcription with nodejs-whisper. We keep it as it was, + * just making sure to handle CUDA if available. + */ public async transcribeLocally( audioBuffer: ArrayBuffer ): Promise { diff --git a/packages/plugin-solana/README.MD b/packages/plugin-solana/README.MD new file mode 100644 index 00000000000..ed4f95d1983 --- /dev/null +++ b/packages/plugin-solana/README.MD @@ -0,0 +1,320 @@ +# @elizaos/plugin-solana + +Core Solana blockchain plugin for Eliza OS that provides essential services and actions for token operations, trading, and DeFi integrations. + +## Overview + +The Solana plugin serves as a foundational component of Eliza OS, bridging Solana blockchain capabilities with the Eliza ecosystem. It provides crucial services for token operations, trading, portfolio management, and DeFi integrations, enabling both automated and user-directed interactions with the Solana blockchain. + +## Features + +### Token Operations +- **Token Creation**: Deploy new tokens with customizable metadata +- **Token Transfers**: Send and receive tokens securely +- **Balance Management**: Track and manage token balances +- **Portfolio Analytics**: Real-time portfolio valuation and tracking + +### Trading Operations +- **Token Swaps**: Execute trades between tokens using Jupiter aggregator +- **Order Management**: Place and track token orders +- **Price Monitoring**: Real-time price feeds and historical data +- **Automated Trading**: Configurable trading strategies and automation + +### DeFi Integration +- **Liquidity Analysis**: Monitor and analyze pool liquidity +- **Market Making**: Automated market making capabilities +- **Yield Optimization**: Smart routing for optimal yields +- **Risk Management**: Advanced risk scoring and monitoring + +### Trust & Security +- **Trust Scoring**: Dynamic trust score calculation for tokens +- **Risk Assessment**: Real-time risk evaluation for trades +- **Performance Tracking**: Historical performance monitoring +- **Simulation Mode**: Test strategies without real transactions + +## Security Features + +### Access Control +- **Wallet Management**: Secure wallet key derivation and storage +- **Permission Scoping**: Granular control over trading permissions +- **TEE Integration**: Trusted Execution Environment support +- **Key Protection**: Secure private key handling + +### Risk Management +- **Trade Limits**: Configurable transaction limits +- **Slippage Protection**: Automatic slippage controls +- **Validation Checks**: Multi-level transaction validation +- **Simulation Support**: Pre-execution transaction simulation +## Installation + +```bash +npm install @elizaos/plugin-solana +``` + +## Configuration + +Configure the plugin by setting the following environment variables: + +```typescript +const solanaEnvSchema = { + WALLET_SECRET_SALT: string (optional), + WALLET_SECRET_KEY: string, + WALLET_PUBLIC_KEY: string, + SOL_ADDRESS: string, + SLIPPAGE: string, + RPC_URL: string, + HELIUS_API_KEY: string, + BIRDEYE_API_KEY: string +} +``` + +## Usage + +### Basic Setup +```typescript +import { solanaPlugin } from "@elizaos/plugin-solana"; + +// Initialize the plugin +const runtime = await initializeRuntime({ + plugins: [solanaPlugin] +}); +``` + +### Services + +#### TokenProvider +Manages token operations and information retrieval. +```typescript +const tokenProvider = new TokenProvider(tokenAddress, walletProvider, cacheManager); +await tokenProvider.getTokensInWallet(runtime); +``` + +#### WalletProvider +Handles wallet operations and portfolio management. +```typescript +const walletProvider = new WalletProvider(connection, publicKey); +await walletProvider.getFormattedPortfolio(runtime); +``` + +#### TrustScoreProvider +Evaluates and manages trust scores for tokens and trading activities. +```typescript +const trustScore = await runtime.getProvider("trustScore"); +``` +## Actions + +### executeSwap +Executes a token swap using Jupiter aggregator. + +```typescript +// Example usage +const result = await runtime.executeAction("EXECUTE_SWAP", { + inputTokenSymbol: "SOL", + outputTokenSymbol: "USDC", + amount: 0.1 +}); +``` + +### transferToken +Transfers tokens between wallets. + +```typescript +// Example usage +const result = await runtime.executeAction("TRANSFER_TOKEN", { + tokenAddress: "TokenAddressHere", + recipient: "RecipientAddressHere", + amount: "1000" +}); +``` + +### takeOrder +Places a buy order based on conviction level. + +```typescript +// Example usage +const result = await runtime.executeAction("TAKE_ORDER", { + ticker: "SOL", + contractAddress: "ContractAddressHere" +}); +``` + +### pumpfun +Creates and buys tokens on pump.fun. + +```typescript +// Example usage +const result = await runtime.executeAction("CREATE_AND_BUY_TOKEN", { + tokenMetadata: { + name: "TokenName", + symbol: "SYMBOL", + description: "Token description", + image_description: "Image description" + }, + buyAmountSol: 0.1 +}); +``` + +### fomo +Creates and buys tokens on fomo.fund. + +```typescript +// Example usage +const result = await runtime.executeAction("CREATE_AND_BUY_TOKEN", { + tokenMetadata: { + name: "TokenName", + symbol: "SYMBOL", + description: "Token description", + image_description: "Image description" + }, + buyAmountSol: 0.1, + requiredLiquidity: 1000 +}); +``` +### executeSwapForDAO +Executes token swaps for DAO operations. + +```typescript +// Example usage +const result = await runtime.executeAction("EXECUTE_SWAP_DAO", { + inputTokenSymbol: "SOL", + outputTokenSymbol: "USDC", + amount: 0.1 +}); +``` + +## Performance Optimization + +1. **Cache Management** + - Implement token data caching + - Configure cache TTL settings + - Monitor cache hit rates + +2. **RPC Optimization** + - Use connection pooling + - Implement request batching + - Monitor RPC usage + +3. **Transaction Management** + - Optimize transaction bundling + - Implement retry strategies + - Monitor transaction success rates + + +## System Requirements + +- Node.js 16.x or higher +- Solana CLI tools (optional) +- Minimum 4GB RAM recommended +- Stable internet connection +- Access to Solana RPC endpoint + +## Troubleshooting + +### Common Issues + +1. **Wallet Connection Failures** +```bash +Error: Failed to connect to wallet +``` +- Verify RPC endpoint is accessible +- Check wallet configuration settings +- Ensure proper network selection + +2. **Transaction Errors** +```bash +Error: Transaction simulation failed +``` +- Check account balances +- Verify transaction parameters +- Ensure proper fee configuration + +3. **Price Feed Issues** +```bash +Error: Unable to fetch price data +``` +- Verify API key configuration +- Check network connectivity +- Ensure price feed service status + +## Safety & Security +### Best Practices +1. **Environment Variables** + - Store sensitive keys in environment variables + - Use .env.example for non-sensitive defaults + - Never commit real credentials to version control + +2. **Transaction Limits** + - Set maximum transaction amounts + - Implement daily trading limits + - Configure per-token restrictions + +3. **Monitoring** + - Track failed transaction attempts + - Monitor unusual trading patterns + - Log security-relevant events + +4. **Recovery** + - Implement transaction rollback mechanisms + - Maintain backup RPC endpoints + - Document recovery procedures + + +## Performance Optimization + +1. **Cache Management** + - Implement token data caching + - Configure cache TTL settings + - Monitor cache hit rates + +2. **RPC Optimization** + - Use connection pooling + - Implement request batching + - Monitor RPC usage + +3. **Transaction Management** + - Optimize transaction bundling + - Implement retry strategies + - Monitor transaction success rates + +## Support + +For issues and feature requests, please: +1. Check the troubleshooting guide above +2. Review existing GitHub issues +3. Submit a new issue with: + - System information + - Error logs + - Steps to reproduce + - Transaction IDs (if applicable) + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Solana](https://solana.com/) - The core blockchain platform +- [Solana Web3.js](https://github.com/solana-labs/solana-web3.js) - Core Solana interactions +- [SPL Token](https://spl.solana.com/) - Token program interactions +- [Jupiter](https://jup.ag/) - Token swap aggregation +- [Birdeye](https://birdeye.so/) - Price feeds and analytics +- [Helius](https://helius.xyz/) - Enhanced RPC services +- [Anchor](https://project-serum.github.io/anchor/) - Smart contract framework +- [FOMO](https://fomo.fund/) - Token creation and trading +- [Pump.fun](https://pump.fun/) - Token creation and trading + +Special thanks to: +- The Solana ecosystem and all the open-source contributors who make these integrations possible. +- The Eliza community for their contributions and feedback. + +For more information about Solana blockchain capabilities: +- [Solana Documentation](https://docs.solana.com/) +- [Solana Developer Portal](https://solana.com/developers) +- [Solana Network Dashboard](https://solscan.io/) +- [Solana GitHub Repository](https://github.com/solana-labs/solana) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-solana/src/evaluators/trust.ts b/packages/plugin-solana/src/evaluators/trust.ts index 2c4f441cf5f..cc295638f4e 100644 --- a/packages/plugin-solana/src/evaluators/trust.ts +++ b/packages/plugin-solana/src/evaluators/trust.ts @@ -1,22 +1,23 @@ import { + ActionExample, + booleanFooter, composeContext, + Content, + elizaLogger, + Evaluator, generateObjectArray, generateTrueOrFalse, - MemoryManager, - booleanFooter, - ActionExample, - Content, IAgentRuntime, Memory, + MemoryManager, ModelClass, - Evaluator, } from "@elizaos/core"; -import { TrustScoreManager } from "../providers/trustScoreProvider.ts"; -import { TokenProvider } from "../providers/token.ts"; -import { WalletProvider } from "../providers/wallet.ts"; import { TrustScoreDatabase } from "@elizaos/plugin-trustdb"; import { Connection } from "@solana/web3.js"; import { getWalletKey } from "../keypairUtils.ts"; +import { TokenProvider } from "../providers/token.ts"; +import { TrustScoreManager } from "../providers/trustScoreProvider.ts"; +import { WalletProvider } from "../providers/wallet.ts"; const shouldProcessTemplate = `# Task: Decide if the recent messages should be processed for token recommendations. @@ -82,6 +83,12 @@ async function handler(runtime: IAgentRuntime, message: Memory) { console.log("Evaluating for trust"); const state = await runtime.composeState(message); + // if the database type is postgres, we don't want to run this because it relies on sql queries that are currently specific to sqlite. This check can be removed once the trust score provider is updated to work with postgres. + if (runtime.getSetting("POSTGRES_URL")) { + elizaLogger.warn("skipping trust evaluator because db is postgres"); + return []; + } + const { agentId, roomId } = state; // Check if we should process the messages diff --git a/packages/plugin-solana/src/providers/trustScoreProvider.ts b/packages/plugin-solana/src/providers/trustScoreProvider.ts index 931cd9b44d0..3034d641393 100644 --- a/packages/plugin-solana/src/providers/trustScoreProvider.ts +++ b/packages/plugin-solana/src/providers/trustScoreProvider.ts @@ -1,26 +1,25 @@ import { - ProcessedTokenData, - TokenSecurityData, - // TokenTradeData, - // DexScreenerData, - // DexScreenerPair, - // HolderData, -} from "../types/token.ts"; -import { Connection, PublicKey } from "@solana/web3.js"; -import { getAssociatedTokenAddress } from "@solana/spl-token"; -import { TokenProvider } from "./token.ts"; -import { WalletProvider } from "./wallet.ts"; -import { SimulationSellingService } from "./simulationSellingService.ts"; + elizaLogger, + IAgentRuntime, + Memory, + Provider, + settings, + State, +} from "@elizaos/core"; import { - TrustScoreDatabase, RecommenderMetrics, TokenPerformance, - TradePerformance, TokenRecommendation, + TradePerformance, + TrustScoreDatabase, } from "@elizaos/plugin-trustdb"; -import { settings } from "@elizaos/core"; -import { IAgentRuntime, Memory, Provider, State } from "@elizaos/core"; +import { getAssociatedTokenAddress } from "@solana/spl-token"; +import { Connection, PublicKey } from "@solana/web3.js"; import { v4 as uuidv4 } from "uuid"; +import { ProcessedTokenData, TokenSecurityData } from "../types/token.ts"; +import { SimulationSellingService } from "./simulationSellingService.ts"; +import { TokenProvider } from "./token.ts"; +import { WalletProvider } from "./wallet.ts"; const Wallet = settings.MAIN_WALLET_ADDRESS; interface TradeData { @@ -702,6 +701,14 @@ export const trustScoreProvider: Provider = { _state?: State ): Promise { try { + // if the database type is postgres, we don't want to run this evaluator because it relies on sql queries that are currently specific to sqlite. This check can be removed once the trust score provider is updated to work with postgres. + if (runtime.getSetting("POSTGRES_URL")) { + elizaLogger.warn( + "skipping trust evaluator because db is postgres" + ); + return ""; + } + const trustScoreDb = new TrustScoreDatabase( runtime.databaseAdapter.db ); diff --git a/packages/plugin-starknet/README.md b/packages/plugin-starknet/README.md new file mode 100644 index 00000000000..b55ebf87b8a --- /dev/null +++ b/packages/plugin-starknet/README.md @@ -0,0 +1,156 @@ +# @elizaos/plugin-starknet + +Core Starknet blockchain plugin for Eliza OS that provides essential services and actions for token operations, trading, and DeFi integrations. + +## Overview + +The Starknet plugin serves as a foundational component of Eliza OS, bridging Starknet blockchain capabilities with the Eliza ecosystem. It provides crucial services for token operations, trading, portfolio management, and DeFi integrations, enabling both automated and user-directed interactions with the Starknet blockchain. + +## Features + +### Token Operations +- **Token Creation**: Deploy new unruggable tokens with customizable metadata +- **Token Transfers**: Send and receive tokens securely +- **Balance Management**: Track and manage token balances +- **Portfolio Analytics**: Real-time portfolio valuation and tracking + +### Trading Operations +- **Token Swaps**: Execute token swaps through aggregated DEX liquidity +- **Order Management**: Place and manage trading orders +- **Price Monitoring**: Track token prices and market movements +- **Trust Score Analysis**: Evaluate token and trader reliability + +### DeFi Integration +- **Liquidity Management**: Monitor and manage liquidity positions +- **Yield Optimization**: Track and optimize yield farming opportunities +- **Risk Assessment**: Analyze and monitor DeFi protocol risks +- **Performance Tracking**: Monitor investment performance metrics + +## Configuration + +The plugin requires the following environment variables: + +```typescript +STARKNET_ADDRESS=your_starknet_address +STARKNET_PRIVATE_KEY=your_private_key +STARKNET_RPC_URL=your_rpc_url +``` + +## Actions + +### deployToken +Deploys a new unruggable token on Starknet. + +```typescript +// Example usage +const result = await runtime.executeAction("DEPLOY_STARKNET_UNRUGGABLE_MEME_TOKEN", { + name: "TokenName", + symbol: "TKN", + owner: "OwnerAddressHere", + initialSupply: "1000000000000000000" +}); +``` + +### transferToken +Transfers tokens between wallets. + +```typescript +// Example usage +const result = await runtime.executeAction("TRANSFER_TOKEN", { + tokenAddress: "TokenAddressHere", + recipient: "RecipientAddressHere", + amount: "1000" +}); +``` + +### executeSwap +Executes a token swap on Starknet. + +```typescript +// Example usage +const result = await runtime.executeAction("EXECUTE_STARKNET_SWAP", { + sellTokenAddress: "SellTokenAddressHere", + buyTokenAddress: "BuyTokenAddressHere", + sellAmount: "1000000000000000000" +}); +``` + +### transferSubdomain +Creates and transfers a subdomain. + +```typescript +// Example usage +const result = await runtime.executeAction("CREATE_SUBDOMAIN", { + subdomain: "subdomain.domain.stark", + recipient: "RecipientAddressHere" +}); +``` + +## Security Considerations + +1. **Access Control** + - Validate transaction signers + - Implement role-based permissions + - Secure private key storage + +2. **Transaction Limits** + - Set maximum transaction amounts + - Implement daily trading limits + - Configure per-token restrictions + +3. **Monitoring** + - Track failed transaction attempts + - Monitor unusual trading patterns + - Log security-relevant events + +4. **Recovery** + - Implement transaction rollback mechanisms + - Maintain backup RPC endpoints + - Document recovery procedures + +## Performance Optimization + +1. **Cache Management** + - Implement token data caching + - Configure cache TTL settings + - Monitor cache hit rates + +2. **RPC Optimization** + - Use connection pooling + - Implement request batching + - Monitor RPC usage + +3. **Transaction Management** + - Batch similar transactions + - Optimize gas usage + - Handle transaction retries + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Starknet](https://starknet.io/) - The core blockchain platform +- [Starknet.js](https://github.com/starknet-io/starknet.js) - Core Starknet interactions +- [Unruggable](https://unruggable.meme/) - Token creation and security +- [Ekubo](https://www.ekubo.org/) - DEX integrations +- [Avnu](https://avnu.fi/) - Token swap aggregation +- [Birdeye](https://birdeye.so/) - Price feeds and analytics +- [Helius](https://helius.xyz/) - Enhanced RPC services + +Special thanks to: +- The Starknet ecosystem and all the open-source contributors who make these integrations possible. +- The Eliza community for their contributions and feedback. + +For more information about Starknet blockchain capabilities: +- [Starknet Documentation](https://docs.starknet.io/) +- [Starknet Developer Portal](https://starknet.io/developers) +- [Starknet Network Dashboard](https://starknet.io/dashboard) +- [Starknet GitHub Repository](https://github.com/starkware-libs/starknet) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-starknet/readme.md b/packages/plugin-starknet/readme.md deleted file mode 100644 index 799d6592ab4..00000000000 --- a/packages/plugin-starknet/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -# Starknet Plugin - -## Overview - -This plugin aims to be the basis of all interactions with the Starknet ecosystem. It contains utilities along with actions for DeFi protocols. - -## Adding a new action - -Reuse providers and utilities from the existing actions where possible. Add more utilities if you think they will be useful for other actions. - -1. Add the action to the `actions` directory. Try to follow the naming convention of the other actions. -2. Export the action in the `index.ts` file. - -## TODO: - -1. Ekubo DCA -2. Unruggable diff --git a/packages/plugin-starknet/src/providers/trustScoreProvider.ts b/packages/plugin-starknet/src/providers/trustScoreProvider.ts index 585c509ebb6..dca91e5d1de 100644 --- a/packages/plugin-starknet/src/providers/trustScoreProvider.ts +++ b/packages/plugin-starknet/src/providers/trustScoreProvider.ts @@ -1,26 +1,25 @@ -import { - ProcessedTokenData, - TokenSecurityData, - // TokenTradeData, - // DexScreenerData, - // DexScreenerPair, - // HolderData, -} from "../types/trustDB.ts"; +import { ProcessedTokenData, TokenSecurityData } from "../types/trustDB.ts"; // import { Connection, PublicKey } from "@solana/web3.js"; // import { getAssociatedTokenAddress } from "@solana/spl-token"; // import { TokenProvider } from "./token.ts"; -import { WalletProvider } from "./walletProvider.ts"; import { - TrustScoreDatabase, + elizaLogger, + IAgentRuntime, + Memory, + Provider, + settings, + State, +} from "@elizaos/core"; +import { RecommenderMetrics, TokenPerformance, - TradePerformance, TokenRecommendation, + TradePerformance, + TrustScoreDatabase, } from "@elizaos/plugin-trustdb"; -import { settings } from "@elizaos/core"; -import { IAgentRuntime, Memory, Provider, State } from "@elizaos/core"; import { getTokenBalance } from "../utils/index.ts"; import { TokenProvider } from "./token.ts"; +import { WalletProvider } from "./walletProvider.ts"; const _Wallet = settings.MAIN_WALLET_ADDRESS; interface TradeData { @@ -607,6 +606,14 @@ export const trustScoreProvider: Provider = { _state?: State ): Promise { try { + // if the database type is postgres, we don't want to run this evaluator because it relies on sql queries that are currently specific to sqlite. This check can be removed once the trust score provider is updated to work with postgres. + if (runtime.getSetting("POSTGRES_URL")) { + elizaLogger.warn( + "skipping trust evaluator because db is postgres" + ); + return ""; + } + const trustScoreDb = new TrustScoreDatabase( runtime.databaseAdapter.db ); diff --git a/packages/plugin-story/README.MD b/packages/plugin-story/README.MD new file mode 100644 index 00000000000..a56d6a1c97c --- /dev/null +++ b/packages/plugin-story/README.MD @@ -0,0 +1,238 @@ +# @elizaos/plugin-story + +The Story Protocol plugin enables interaction with Story Protocol's IP management and licensing system on the Odyssey testnet. + +## Overview + +This plugin provides functionality to: + +- Register IP assets on Story Protocol +- License IP assets +- Attach license terms to IP assets +- Query IP asset details and available licenses +- Manage wallet interactions with Story Protocol + +## Installation + +```bash +pnpm install @elizaos/plugin-story +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +STORY_PRIVATE_KEY=your_private_key +STORY_API_KEY=your_api_key +STORY_API_BASE_URL=https://api.story.xyz +PINATA_JWT=your_pinata_jwt_token +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { storyPlugin } from "@elizaos/plugin-story"; + +export default { + plugins: [storyPlugin], + // ... other configuration +}; +``` + +## Features + +### Register IP + +Register a new IP asset on Story Protocol: + +```typescript +// Example conversation +User: "I want to register my IP titled 'My Story' with the description 'An epic tale'"; +Assistant: "I'll help you register your IP on Story Protocol..."; +``` + +### License IP + +License an existing IP asset: + +```typescript +// Example conversation +User: "I want to license IP Asset 0x1234...5678 with license terms ID 1"; +Assistant: "I'll help you license that IP asset..."; +``` + +### Attach Terms + +Attach license terms to an IP asset: + +```typescript +// Example conversation +User: "I want to attach commercial license terms with 10% revenue share to IP 0x1234...5678"; +Assistant: "I'll help you attach those license terms..."; +``` + +### Get IP Details + +Query details about an IP asset: + +```typescript +// Example conversation +User: "Get details for IP Asset 0x1234...5678"; +Assistant: "Here are the details for that IP asset..."; +``` + +### Get Available Licenses + +Query available licenses for an IP asset: + +```typescript +// Example conversation +User: "What licenses are available for IP Asset 0x1234...5678?"; +Assistant: "Here are the available licenses..."; +``` + +## API Reference + +### Actions + +- `REGISTER_IP`: Register a new IP asset +- `LICENSE_IP`: License an existing IP asset +- `ATTACH_TERMS`: Attach license terms to an IP +- `GET_IP_DETAILS`: Get details about an IP +- `GET_AVAILABLE_LICENSES`: Get available licenses for an IP + +### Providers + +- `storyWalletProvider`: Manages wallet interactions with Story Protocol + +## Development + +### Building + +```bash +pnpm run build +``` + +### Testing + +```bash +pnpm run test +``` + +## Dependencies + +- `@story-protocol/core-sdk`: Core SDK for Story Protocol +- `@pinata/sdk`: IPFS pinning service +- `viem`: Ethereum interaction library +- Other standard dependencies listed in package.json + +## Future Enhancements + +The following features and improvements are planned for future releases: + +1. **IP Management** + + - Batch IP registration + - Advanced metadata management + - IP relationship mapping + - Automated IP verification + - Collection management + - IP analytics dashboard + +2. **Licensing Features** + + - Custom license templates + - License negotiation tools + - Automated royalty distribution + - Usage tracking system + - License violation detection + - Bulk licensing tools + +3. **Rights Management** + + - Advanced permission systems + - Rights transfer automation + - Usage rights tracking + - Derivative works management + - Rights verification tools + - Dispute resolution system + +4. **Smart Contract Integration** + + - Contract deployment templates + - Automated verification + - Contract upgrade system + - Security analysis tools + - Gas optimization + - Multi-signature support + +5. **Content Management** + + - Media file handling + - Content versioning + - Distribution tracking + - Content authentication + - Storage optimization + - Format conversion tools + +6. **Revenue Management** + + - Automated payments + - Revenue sharing tools + - Payment tracking + - Financial reporting + - Tax documentation + - Audit trail system + +7. **Developer Tools** + + - Enhanced SDK features + - Testing framework + - Documentation generator + - CLI improvements + - Integration templates + - Performance monitoring + +8. **Analytics and Reporting** + - Usage statistics + - Revenue analytics + - License tracking + - Performance metrics + - Custom reporting + - Market analysis tools + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Story Protocol](https://www.story.xyz/): IP management and licensing platform +- [@story-protocol/core-sdk](https://www.npmjs.com/package/@story-protocol/core-sdk): Official Story Protocol SDK +- [@pinata/sdk](https://www.npmjs.com/package/@pinata/sdk): IPFS pinning service +- [viem](https://www.npmjs.com/package/viem): Ethereum interaction library + +Special thanks to: + +- The Story Protocol team for developing the IP management platform +- The Story Protocol Developer community +- The Pinata team for IPFS infrastructure +- The Eliza community for their contributions and feedback + +For more information about Story Protocol capabilities: + +- [Story Protocol Documentation](https://docs.story.xyz/) +- [Story Protocol Dashboard](https://app.story.xyz/) +- [Story Protocol Blog](https://www.story.xyz/blog) +- [Story Protocol GitHub](https://github.com/storyprotocol) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-story/Readme.md b/packages/plugin-story/Readme.md new file mode 100644 index 00000000000..a56d6a1c97c --- /dev/null +++ b/packages/plugin-story/Readme.md @@ -0,0 +1,238 @@ +# @elizaos/plugin-story + +The Story Protocol plugin enables interaction with Story Protocol's IP management and licensing system on the Odyssey testnet. + +## Overview + +This plugin provides functionality to: + +- Register IP assets on Story Protocol +- License IP assets +- Attach license terms to IP assets +- Query IP asset details and available licenses +- Manage wallet interactions with Story Protocol + +## Installation + +```bash +pnpm install @elizaos/plugin-story +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +STORY_PRIVATE_KEY=your_private_key +STORY_API_KEY=your_api_key +STORY_API_BASE_URL=https://api.story.xyz +PINATA_JWT=your_pinata_jwt_token +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { storyPlugin } from "@elizaos/plugin-story"; + +export default { + plugins: [storyPlugin], + // ... other configuration +}; +``` + +## Features + +### Register IP + +Register a new IP asset on Story Protocol: + +```typescript +// Example conversation +User: "I want to register my IP titled 'My Story' with the description 'An epic tale'"; +Assistant: "I'll help you register your IP on Story Protocol..."; +``` + +### License IP + +License an existing IP asset: + +```typescript +// Example conversation +User: "I want to license IP Asset 0x1234...5678 with license terms ID 1"; +Assistant: "I'll help you license that IP asset..."; +``` + +### Attach Terms + +Attach license terms to an IP asset: + +```typescript +// Example conversation +User: "I want to attach commercial license terms with 10% revenue share to IP 0x1234...5678"; +Assistant: "I'll help you attach those license terms..."; +``` + +### Get IP Details + +Query details about an IP asset: + +```typescript +// Example conversation +User: "Get details for IP Asset 0x1234...5678"; +Assistant: "Here are the details for that IP asset..."; +``` + +### Get Available Licenses + +Query available licenses for an IP asset: + +```typescript +// Example conversation +User: "What licenses are available for IP Asset 0x1234...5678?"; +Assistant: "Here are the available licenses..."; +``` + +## API Reference + +### Actions + +- `REGISTER_IP`: Register a new IP asset +- `LICENSE_IP`: License an existing IP asset +- `ATTACH_TERMS`: Attach license terms to an IP +- `GET_IP_DETAILS`: Get details about an IP +- `GET_AVAILABLE_LICENSES`: Get available licenses for an IP + +### Providers + +- `storyWalletProvider`: Manages wallet interactions with Story Protocol + +## Development + +### Building + +```bash +pnpm run build +``` + +### Testing + +```bash +pnpm run test +``` + +## Dependencies + +- `@story-protocol/core-sdk`: Core SDK for Story Protocol +- `@pinata/sdk`: IPFS pinning service +- `viem`: Ethereum interaction library +- Other standard dependencies listed in package.json + +## Future Enhancements + +The following features and improvements are planned for future releases: + +1. **IP Management** + + - Batch IP registration + - Advanced metadata management + - IP relationship mapping + - Automated IP verification + - Collection management + - IP analytics dashboard + +2. **Licensing Features** + + - Custom license templates + - License negotiation tools + - Automated royalty distribution + - Usage tracking system + - License violation detection + - Bulk licensing tools + +3. **Rights Management** + + - Advanced permission systems + - Rights transfer automation + - Usage rights tracking + - Derivative works management + - Rights verification tools + - Dispute resolution system + +4. **Smart Contract Integration** + + - Contract deployment templates + - Automated verification + - Contract upgrade system + - Security analysis tools + - Gas optimization + - Multi-signature support + +5. **Content Management** + + - Media file handling + - Content versioning + - Distribution tracking + - Content authentication + - Storage optimization + - Format conversion tools + +6. **Revenue Management** + + - Automated payments + - Revenue sharing tools + - Payment tracking + - Financial reporting + - Tax documentation + - Audit trail system + +7. **Developer Tools** + + - Enhanced SDK features + - Testing framework + - Documentation generator + - CLI improvements + - Integration templates + - Performance monitoring + +8. **Analytics and Reporting** + - Usage statistics + - Revenue analytics + - License tracking + - Performance metrics + - Custom reporting + - Market analysis tools + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Story Protocol](https://www.story.xyz/): IP management and licensing platform +- [@story-protocol/core-sdk](https://www.npmjs.com/package/@story-protocol/core-sdk): Official Story Protocol SDK +- [@pinata/sdk](https://www.npmjs.com/package/@pinata/sdk): IPFS pinning service +- [viem](https://www.npmjs.com/package/viem): Ethereum interaction library + +Special thanks to: + +- The Story Protocol team for developing the IP management platform +- The Story Protocol Developer community +- The Pinata team for IPFS infrastructure +- The Eliza community for their contributions and feedback + +For more information about Story Protocol capabilities: + +- [Story Protocol Documentation](https://docs.story.xyz/) +- [Story Protocol Dashboard](https://app.story.xyz/) +- [Story Protocol Blog](https://www.story.xyz/blog) +- [Story Protocol GitHub](https://github.com/storyprotocol) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-story/package.json b/packages/plugin-story/package.json index a553f92394d..aeeaa99ac83 100644 --- a/packages/plugin-story/package.json +++ b/packages/plugin-story/package.json @@ -9,7 +9,6 @@ "@elizaos/plugin-trustdb": "workspace:*", "@story-protocol/core-sdk": "1.2.0-rc.3", "tsup": "8.3.5", - "viem": "2.21.54", "@pinata/sdk": "^2.1.0" }, "scripts": { diff --git a/packages/plugin-sui/README.md b/packages/plugin-sui/README.md new file mode 100644 index 00000000000..a903f0dc694 --- /dev/null +++ b/packages/plugin-sui/README.md @@ -0,0 +1,165 @@ +# @elizaos/plugin-sui + +Core Sui blockchain plugin for Eliza OS that provides essential services and actions for token operations and wallet management. + +## Overview + +This plugin provides functionality to: +- Transfer SUI tokens between wallets +- Query wallet balances and portfolio values +- Track token prices and valuations +- Manage wallet interactions with the Sui network + +## Installation + +```bash +npm install @elizaos/plugin-sui +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +SUI_PRIVATE_KEY=your_private_key +SUI_NETWORK=mainnet|testnet|devnet|localnet +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { suiPlugin } from "@elizaos/plugin-sui"; + +export default { + plugins: [suiPlugin], + // ... other configuration +}; +``` + +## Features + +### Send Token + +Transfer SUI tokens to another address: + +```typescript +// Example conversation +User: "Send 1 SUI to 0x4f2e63be8e7fe287836e29cde6f3d5cbc96eefd0c0e3f3747668faa2ae7324b0" +Assistant: "I'll send 1 SUI token now..." +``` + +### Check Wallet Balance + +Query wallet balance and portfolio value: + +```typescript +// Example conversation +User: "What's my wallet balance?" +Assistant: "Your wallet contains 10.5 SUI ($42.00 USD)..." +``` + +## API Reference + +### Actions + +- `SEND_TOKEN`: Transfer SUI tokens to another address +- `TRANSFER_TOKEN`: Alias for SEND_TOKEN +- `SEND_SUI`: Alias for SEND_TOKEN +- `PAY`: Alias for SEND_TOKEN + +### Providers + +- `walletProvider`: Manages wallet interactions with the Sui network, including balance queries and portfolio tracking + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +## Dependencies + +- `@mysten/sui`: Core Sui blockchain interaction library +- `bignumber.js`: Precise number handling +- `node-cache`: Caching implementation +- Other standard dependencies listed in package.json + +## Future Enhancements + +The following features and improvements are planned for future releases: + +1. **Transaction Management** + - Batch transaction processing + - Transaction simulation + - Gas optimization strategies + - Custom transaction builders + - Advanced error handling + +2. **Wallet Integration** + - Multi-wallet support + - Hardware wallet integration + - Social recovery options + - Account abstraction + - Transaction history tracking + +3. **Smart Contract Features** + - Contract deployment tools + - Move module templates + - Testing framework + - Upgrade management + - Security analysis + +4. **Token Operations** + - Batch token transfers + - NFT support enhancement + - Token metadata handling + - Custom token standards + - Collection management + +5. **Developer Tools** + - Enhanced debugging + - CLI improvements + - Documentation generator + - Integration templates + - Performance monitoring + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Sui Blockchain](https://sui.io/): Next-generation smart contract platform +- [@mysten/sui.js](https://www.npmjs.com/package/@mysten/sui.js): Official Sui SDK +- [bignumber.js](https://github.com/MikeMcl/bignumber.js/): Precise number handling +- [node-cache](https://www.npmjs.com/package/node-cache): Caching implementation + +Special thanks to: +- The Mysten Labs team for developing Sui +- The Sui Developer community +- The Sui SDK maintainers +- The Eliza community for their contributions and feedback + +For more information about Sui blockchain capabilities: +- [Sui Documentation](https://docs.sui.io/) +- [Sui Developer Portal](https://sui.io/developers) +- [Sui Network Dashboard](https://suiscan.xyz/) +- [Sui GitHub Repository](https://github.com/MystenLabs/sui) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-sui/src/actions/transfer.ts b/packages/plugin-sui/src/actions/transfer.ts index ab6d8f65ca9..721a27d5cf5 100644 --- a/packages/plugin-sui/src/actions/transfer.ts +++ b/packages/plugin-sui/src/actions/transfer.ts @@ -19,6 +19,7 @@ import { Transaction } from "@mysten/sui/transactions"; import { SUI_DECIMALS } from "@mysten/sui/utils"; import { walletProvider } from "../providers/wallet"; +import { parseAccount } from "../utils"; type SuiNetwork = "mainnet" | "testnet" | "devnet" | "localnet"; @@ -139,8 +140,7 @@ export default { } try { - const privateKey = runtime.getSetting("SUI_PRIVATE_KEY"); - const suiAccount = Ed25519Keypair.deriveKeypair(privateKey); + const suiAccount = parseAccount(runtime); const network = runtime.getSetting("SUI_NETWORK"); const suiClient = new SuiClient({ url: getFullnodeUrl(network as SuiNetwork), diff --git a/packages/plugin-sui/src/providers/wallet.ts b/packages/plugin-sui/src/providers/wallet.ts index 4ee649befbc..478fc2ce49c 100644 --- a/packages/plugin-sui/src/providers/wallet.ts +++ b/packages/plugin-sui/src/providers/wallet.ts @@ -13,6 +13,7 @@ import { MIST_PER_SUI } from "@mysten/sui/utils"; import BigNumber from "bignumber.js"; import NodeCache from "node-cache"; import * as path from "path"; +import { parseAccount } from "../utils"; // Provider configuration const PROVIDER_CONFIG = { @@ -220,8 +221,7 @@ const walletProvider: Provider = { _message: Memory, _state?: State ): Promise => { - const privateKey = runtime.getSetting("SUI_PRIVATE_KEY"); - const suiAccount = Ed25519Keypair.deriveKeypair(privateKey); + const suiAccount = parseAccount(runtime); try { const suiClient = new SuiClient({ diff --git a/packages/plugin-sui/src/tests/wallet.test.ts b/packages/plugin-sui/src/tests/wallet.test.ts index 39d3c62d4dc..df3372f57de 100644 --- a/packages/plugin-sui/src/tests/wallet.test.ts +++ b/packages/plugin-sui/src/tests/wallet.test.ts @@ -49,6 +49,12 @@ describe("WalletProvider", () => { "gaze throw also reveal kite load tennis tone club cloth chaos picture" ); + const suiAccountx = Ed25519Keypair.fromSecretKey( + "suiprivkey1qzuw2uvhqz330pwl94rv39jvk93kuvfd4pvdkw9vl922kum80prqvxtlntr" + ); + + console.log(suiAccountx.toSuiAddress()); + // Create new instance of TokenProvider with mocked dependencies walletProvider = new WalletProvider( suiClient, diff --git a/packages/plugin-sui/src/utils.ts b/packages/plugin-sui/src/utils.ts new file mode 100644 index 00000000000..4db8623eb1f --- /dev/null +++ b/packages/plugin-sui/src/utils.ts @@ -0,0 +1,15 @@ +import { IAgentRuntime } from "@elizaos/core"; +import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; + +const parseAccount = (runtime: IAgentRuntime): Ed25519Keypair => { + const privateKey = runtime.getSetting("SUI_PRIVATE_KEY"); + if (!privateKey) { + throw new Error("SUI_PRIVATE_KEY is not set"); + } else if (privateKey.startsWith("suiprivkey")) { + return Ed25519Keypair.fromSecretKey(privateKey); + } else { + return Ed25519Keypair.deriveKeypairFromSeed(privateKey); + } +}; + +export { parseAccount }; diff --git a/packages/plugin-tee/README.md b/packages/plugin-tee/README.md index c66bebf8525..32d281ff131 100644 --- a/packages/plugin-tee/README.md +++ b/packages/plugin-tee/README.md @@ -1,16 +1,50 @@ -# Plugin TEE +# @elizaos/plugin-tee -A plugin for handling Trusted Execution Environment (TEE) operations. +A plugin for handling Trusted Execution Environment (TEE) operations, providing secure key derivation and remote attestation capabilities. -## Providers +## Overview -This plugin includes several providers for handling different TEE-related operations. +This plugin provides functionality to: +- Generate secure keys within a TEE environment +- Derive Ed25519 keypairs for Solana +- Derive ECDSA keypairs for Ethereum +- Generate remote attestation quotes +- Manage wallet interactions with TEE-derived keys -### DeriveKeyProvider +## Installation + +```bash +npm install @elizaos/plugin-tee +``` -The `DeriveKeyProvider` allows for secure key derivation within a TEE environment. It supports deriving keys for both Solana (Ed25519) and Ethereum (ECDSA) chains. +## Configuration -#### Usage +The plugin requires the following environment variables: + +```env +TEE_MODE=LOCAL|DOCKER|PRODUCTION +WALLET_SECRET_SALT=your_secret_salt # Required for single agent deployments +DSTACK_SIMULATOR_ENDPOINT=your-endpoint-url # Optional, for simulator purposes +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { teePlugin } from "@elizaos/plugin-tee"; + +export default { + plugins: [teePlugin], + // ... other configuration +}; +``` + +## Features + +### DeriveKeyProvider + +The `DeriveKeyProvider` allows for secure key derivation within a TEE environment: ```typescript import { DeriveKeyProvider } from "@elizaos/plugin-tee"; @@ -19,59 +53,52 @@ import { DeriveKeyProvider } from "@elizaos/plugin-tee"; const provider = new DeriveKeyProvider(); // Derive a raw key -try { - const rawKey = await provider.rawDeriveKey( - "/path/to/derive", - "subject-identifier" - ); - // rawKey is a DeriveKeyResponse that can be used for further processing - // to get the uint8Array do the following - const rawKeyArray = rawKey.asUint8Array(); -} catch (error) { - console.error("Raw key derivation failed:", error); -} +const rawKey = await provider.rawDeriveKey( + "/path/to/derive", + "subject-identifier" +); +// rawKey is a DeriveKeyResponse that can be used for further processing +const rawKeyArray = rawKey.asUint8Array(); // Derive a Solana keypair (Ed25519) -try { - const solanaKeypair = await provider.deriveEd25519Keypair( - "/path/to/derive", - "subject-identifier" - ); - // solanaKeypair can now be used for Solana operations -} catch (error) { - console.error("Solana key derivation failed:", error); -} +const solanaKeypair = await provider.deriveEd25519Keypair( + "/path/to/derive", + "subject-identifier" +); // Derive an Ethereum keypair (ECDSA) -try { - const evmKeypair = await provider.deriveEcdsaKeypair( - "/path/to/derive", - "subject-identifier" - ); - // evmKeypair can now be used for Ethereum operations -} catch (error) { - console.error("EVM key derivation failed:", error); -} +const evmKeypair = await provider.deriveEcdsaKeypair( + "/path/to/derive", + "subject-identifier" +); ``` ### RemoteAttestationProvider -The `RemoteAttestationProvider` allows for generating a remote attestation within a TEE environment. - -#### Usage +The `RemoteAttestationProvider` generates remote attestations within a TEE environment: ```typescript +import { RemoteAttestationProvider } from "@elizaos/plugin-tee"; + const provider = new RemoteAttestationProvider(); +const attestation = await provider.generateAttestation("your-report-data"); +``` -try { - const attestation = await provider.generateAttestation("your-report-data"); - console.log("Attestation:", attestation); -} catch (error) { - console.error("Failed to generate attestation:", error); -} +## Development + +### Building + +```bash +npm run build ``` -### Configuration +### Testing + +```bash +npm run test +``` + +## Local Development To get a TEE simulator for local testing, use the following commands: @@ -81,9 +108,115 @@ docker pull phalanetwork/tappd-simulator:latest docker run --rm -p 8090:8090 phalanetwork/tappd-simulator:latest ``` -When using the provider through the runtime environment, ensure the following settings are configured: +## Dependencies -```env -DSTACK_SIMULATOR_ENDPOINT="your-endpoint-url" # Optional, for simulator purposes if testing on mac or windows -WALLET_SECRET_SALT=your-secret-salt // Required to single agent deployments +- `@phala/dstack-sdk`: Core TEE functionality +- `@solana/web3.js`: Solana blockchain interaction +- `viem`: Ethereum interaction library +- Other standard dependencies listed in package.json + +## API Reference + +### Providers + +- `deriveKeyProvider`: Manages secure key derivation within TEE +- `remoteAttestationProvider`: Handles generation of remote attestation quotes +- `walletProvider`: Manages wallet interactions with TEE-derived keys + +### Types + +```typescript +enum TEEMode { + OFF = "OFF", + LOCAL = "LOCAL", // For local development with simulator + DOCKER = "DOCKER", // For docker development with simulator + PRODUCTION = "PRODUCTION" // For production without simulator +} + +interface RemoteAttestationQuote { + quote: string; + timestamp: number; +} ``` + +## Future Enhancements + +1. **Key Management** + - Advanced key derivation schemes + - Multi-party computation support + - Key rotation automation + - Backup and recovery systems + - Hardware security module integration + - Custom derivation paths + +2. **Remote Attestation** + - Enhanced quote verification + - Multiple TEE provider support + - Automated attestation renewal + - Policy management system + - Compliance reporting + - Audit trail generation + +3. **Security Features** + - Memory encryption improvements + - Side-channel protection + - Secure state management + - Access control systems + - Threat detection + - Security monitoring + +4. **Chain Integration** + - Multi-chain support expansion + - Cross-chain attestation + - Chain-specific optimizations + - Custom signing schemes + - Transaction privacy + - Bridge security + +5. **Developer Tools** + - Enhanced debugging capabilities + - Testing framework + - Simulation environment + - Documentation generator + - Performance profiling + - Integration templates + +6. **Performance Optimization** + - Parallel processing + - Caching mechanisms + - Resource management + - Latency reduction + - Throughput improvements + - Load balancing + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Phala Network](https://phala.network/): Confidential smart contract platform +- [@phala/dstack-sdk](https://www.npmjs.com/package/@phala/dstack-sdk): Core TEE functionality +- [@solana/web3.js](https://www.npmjs.com/package/@solana/web3.js): Solana blockchain interaction +- [viem](https://www.npmjs.com/package/viem): Ethereum interaction library +- [Intel SGX](https://www.intel.com/content/www/us/en/developer/tools/software-guard-extensions/overview.html): Trusted Execution Environment technology + +Special thanks to: +- The Phala Network team for their TEE infrastructure +- The Intel SGX team for TEE technology +- The dStack SDK maintainers +- The Eliza community for their contributions and feedback + +For more information about TEE capabilities: +- [Phala Documentation](https://docs.phala.network/) +- [Intel SGX Documentation](https://www.intel.com/content/www/us/en/developer/tools/software-guard-extensions/documentation.html) +- [TEE Security Best Practices](https://docs.phala.network/developers/phat-contract/security-notes) +- [dStack SDK Reference](https://docs.phala.network/developers/dstack-sdk) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-tee/package.json b/packages/plugin-tee/package.json index ac931632d3a..3ca40c91278 100644 --- a/packages/plugin-tee/package.json +++ b/packages/plugin-tee/package.json @@ -14,8 +14,7 @@ "bs58": "6.0.0", "node-cache": "5.1.2", "pumpdotfun-sdk": "1.3.2", - "tsup": "8.3.5", - "viem": "2.21.53" + "tsup": "8.3.5" }, "scripts": { "build": "tsup --format esm --dts", diff --git a/packages/plugin-ton/README.md b/packages/plugin-ton/README.md new file mode 100644 index 00000000000..8b0497f0982 --- /dev/null +++ b/packages/plugin-ton/README.md @@ -0,0 +1,235 @@ +# @elizaos/plugin-ton + +A plugin for handling TON (Telegram Open Network) blockchain operations, providing wallet management and transfer capabilities. + +## Overview + +This plugin provides functionality to: +- Manage TON wallets and key derivation +- Execute secure token transfers +- Query wallet balances and portfolio information +- Format and cache transaction data +- Interface with TON blockchain via RPC endpoints + +## Installation + +```bash +npm install @elizaos/plugin-ton +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +TON_PRIVATE_KEY=your_mnemonic_phrase # Required - wallet mnemonic words +TON_RPC_URL=your_rpc_endpoint # Optional - defaults to mainnet RPC +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { tonPlugin } from "@elizaos/plugin-ton"; + +export default { + plugins: [tonPlugin], + // ... other configuration +}; +``` + +## Features + +### WalletProvider + +The `WalletProvider` manages wallet operations and portfolio tracking: + +```typescript +import { WalletProvider } from "@elizaos/plugin-ton"; + +// Initialize the provider +const provider = await initWalletProvider(runtime); + +// Get wallet balance +const balance = await provider.getWalletBalance(); + +// Get formatted portfolio +const portfolio = await provider.getFormattedPortfolio(runtime); +``` + +### TransferAction + +The `TransferAction` handles token transfers: + +```typescript +import { TransferAction } from "@elizaos/plugin-ton"; + +// Initialize transfer action +const action = new TransferAction(walletProvider); + +// Execute transfer +const hash = await action.transfer({ + recipient: "EQCGScrZe1xbyWqWDvdI6mzP-GAcAWFv6ZXuaJOuSqemxku4", + amount: "1.5" +}); +``` + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +## Dependencies + +- `@ton/ton`: Core TON blockchain functionality +- `@ton/crypto`: Cryptographic operations +- `bignumber.js`: Precise number handling +- `node-cache`: Caching functionality +- Other standard dependencies listed in package.json + +## API Reference + +### Providers + +- `walletProvider`: Manages TON wallet operations +- `nativeWalletProvider`: Handles native TON token operations + +### Types + +```typescript +interface TransferContent { + recipient: string; + amount: string | number; +} + +interface WalletPortfolio { + totalUsd: string; + totalNativeToken: string; +} + +interface Prices { + nativeToken: { usd: string }; +} +``` + +### Configuration Constants + +```typescript +const PROVIDER_CONFIG = { + MAINNET_RPC: "https://toncenter.com/api/v2/jsonRPC", + STONFI_TON_USD_POOL: "EQCGScrZe1xbyWqWDvdI6mzP-GAcAWFv6ZXuaJOuSqemxku4", + CHAIN_NAME_IN_DEXSCREENER: "ton", + MAX_RETRIES: 3, + RETRY_DELAY: 2000, + TON_DECIMAL: BigInt(1000000000) +}; +``` + +## Common Issues/Troubleshooting + +### Issue: Balance Fetching Failure +- **Cause**: Incorrect RPC endpoint or network connectivity issues +- **Solution**: Verify `TON_RPC_URL` and network connection + +### Issue: Transfer Fails +- **Cause**: Insufficient balance or invalid recipient address +- **Solution**: Ensure sufficient funds and valid recipient address format + +## Security Best Practices + +- Store private keys securely using environment variables +- Validate all input addresses and amounts +- Use proper error handling for blockchain operations +- Keep dependencies updated for security patches + +## Future Enhancements + +1. **Wallet Management** + - Multi-wallet support + - Hardware wallet integration + - Advanced key management + - Batch transaction processing + - Custom wallet contracts + - Recovery mechanisms + +2. **Smart Contract Integration** + - Contract deployment tools + - FunC contract templates + - Testing framework + - Upgrade management + - Gas optimization + - Security analysis + +3. **Token Operations** + - Jetton creation tools + - NFT support enhancement + - Token metadata handling + - Collection management + - Batch transfers + - Token standards + +4. **DeFi Features** + - DEX integration + - Liquidity management + - Yield farming tools + - Price feed integration + - Swap optimization + - Portfolio tracking + +5. **Developer Tools** + - Enhanced debugging + - CLI improvements + - Documentation generator + - Integration templates + - Performance monitoring + - Testing utilities + +6. **Network Features** + - Workchain support + - Sharding optimization + - RPC management + - Network monitoring + - Archive node integration + - Custom endpoints + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [TON Blockchain](https://ton.org/): The Open Network blockchain platform +- [@ton/ton](https://www.npmjs.com/package/@ton/ton): Core TON blockchain functionality +- [@ton/crypto](https://www.npmjs.com/package/@ton/crypto): Cryptographic operations +- [bignumber.js](https://github.com/MikeMcl/bignumber.js/): Precise number handling +- [node-cache](https://github.com/node-cache/node-cache): Caching functionality + +Special thanks to: +- The TON Foundation for developing and maintaining the TON blockchain +- The TON Developer community +- The TON SDK maintainers +- The Eliza community for their contributions and feedback + +For more information about TON blockchain capabilities: +- [TON Documentation](https://docs.ton.org/) +- [TON Developer Portal](https://ton.org/dev) +- [TON Whitepaper](https://ton.org/whitepaper.pdf) +- [TON API Reference](https://ton.org/docs/#/api) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-ton/Readme.md b/packages/plugin-ton/Readme.md deleted file mode 100644 index 604ac490a90..00000000000 --- a/packages/plugin-ton/Readme.md +++ /dev/null @@ -1,124 +0,0 @@ -# Plugin TON - -A plugin for handling TON (Telegram Open Network) blockchain operations, such as wallet management and transfers. - -## Overview and Purpose - -The Plugin TON provides a streamlined interface to interact with the TON blockchain. It simplifies wallet management and facilitates secure, efficient transfers while maintaining compatibility with TypeScript and modern JavaScript development practices. - -## Installation - -Install the plugin using npm: - -```bash -npm install plugin-ton -``` - -## Configuration Requirements - -Ensure your environment is set up with the necessary configuration files and environment variables. Update the `src/enviroment.ts` file or set environment variables directly for sensitive information. - -### Environment Variables - -| Variable Name | Description | -| ------------------------ | ------------------------------------- | -| `TON_API_ENDPOINT` | API endpoint for interacting with TON | -| `TON_WALLET_PRIVATE_KEY` | Private key for wallet operations | - -## Usage Examples - -### Importing the Plugin - -```typescript -import { WalletProvider, TransferAction } from 'plugin-ton'; - -// Initialize wallet provider -const wallet = new WalletProvider('YOUR_PRIVATE_KEY'); - -// Fetch wallet balance -const balance = await wallet.getBalance(); -console.log('Wallet Balance:', balance); - -// Transfer TON coins -const transfer = new TransferAction(wallet); -await transfer.execute({ - to: 'RECIPIENT_ADDRESS', - amount: 10, -}); -console.log('Transfer successful'); -``` - -## API Reference - -### WalletProvider - -#### Methods: - -- `constructor(privateKey: string)` - Initializes the wallet with a private key. -- `getBalance(): Promise` - Retrieves the wallet balance. - -### TransferAction - -#### Methods: - -- `constructor(wallet: WalletProvider)` - Initializes the transfer action. -- `execute({ to: string, amount: number }): Promise` - Executes a transfer of TON coins. - -## Common Issues/Troubleshooting - -### Issue: Balance Fetching Failure - -- **Cause**: Incorrect API endpoint or private key. -- **Solution**: Verify `TON_API_ENDPOINT` and private key in your configuration. - -### Issue: Transfer Fails - -- **Cause**: Insufficient balance or invalid recipient address. -- **Solution**: Ensure sufficient funds and a valid recipient address. - -## Additional Documentation - -### Examples Folder Documentation - -The examples folder includes sample scripts demonstrating wallet initialization, balance checking, and transfers. Use these as a starting point for your integration. - -### Testing Guide Expansion - -Run tests using the following command: - -```bash -npm test -``` - -The `src/tests/wallet.test.ts` file provides unit tests for wallet functionality. Add tests for additional features as needed. - -### Plugin Development Guide - -1. Clone the repository. -2. Run `npm install` to install dependencies. -3. Use `tsup` for building the project: `npm run build`. -4. Add new features in the `src` directory. - -### Security Best Practices - -- **Key Management**: Use environment variables for sensitive information like private keys. -- **Testing**: Validate all inputs to prevent injection attacks. -- **Dependencies**: Regularly update dependencies to patch vulnerabilities. - -### Performance Optimization Guide - -- Use efficient data structures for large transactions. -- Avoid unnecessary API calls by caching frequent responses. -- Use async/await for optimal asynchronous operations. - -## Contributing - -1. Fork the repository. -2. Create your feature branch (`git checkout -b feature/amazing-feature`). -3. Commit your changes (`git commit -m 'Add some amazing feature'`). -4. Push to the branch (`git push origin feature/amazing-feature`). -5. Open a Pull Request. - -## License - -MIT diff --git a/packages/plugin-trustdb/README.md b/packages/plugin-trustdb/README.md new file mode 100644 index 00000000000..5d8b3acf265 --- /dev/null +++ b/packages/plugin-trustdb/README.md @@ -0,0 +1,214 @@ +# @elizaos/plugin-trustdb + +A plugin for managing trust scores and performance metrics in a secure database, providing recommender tracking and token performance analysis capabilities. + +## Overview + +This plugin provides functionality to: +- Track and manage recommender trust scores +- Monitor token performance metrics +- Record and analyze trading performance +- Maintain historical metrics data +- Handle transaction records and validations + +## Installation + +```bash +npm install @elizaos/plugin-trustdb +``` + +## Configuration + +The plugin uses SQLite as its database backend and requires proper initialization: + +```typescript +import { TrustScoreDatabase } from "@elizaos/plugin-trustdb"; +import Database from "better-sqlite3"; + +const db = new Database("path/to/database.sqlite"); +const trustDB = new TrustScoreDatabase(db); +``` + +## Usage + +Import and use the TrustDB functionality in your application: + +```typescript +import { TrustScoreDatabase } from "@elizaos/plugin-trustdb"; + +// Initialize database +const trustDB = new TrustScoreDatabase(db); + +// Add a recommender +const recommender = { + id: "uuid", + address: "wallet-address", + telegramId: "telegram-id" +}; +trustDB.addRecommender(recommender); + +// Track token performance +const performance = { + tokenAddress: "token-address", + priceChange24h: 10.5, + volumeChange24h: 25.3, + // ... other metrics +}; +trustDB.upsertTokenPerformance(performance); +``` + +## Features + +### TrustScoreDatabase + +The main database manager providing comprehensive tracking and analysis: + +```typescript +// Get or create a recommender +const recommender = await trustDB.getOrCreateRecommender({ + address: "wallet-address", + telegramId: "user-id" +}); + +// Update recommender metrics +trustDB.updateRecommenderMetrics({ + recommenderId: "uuid", + trustScore: 85.5, + totalRecommendations: 10, + // ... other metrics +}); +``` + +### Performance Tracking + +```typescript +// Add trade performance +trustDB.addTradePerformance({ + token_address: "address", + recommender_id: "uuid", + buy_price: 1.0, + // ... other trade details +}, false); + +// Get token performance +const tokenMetrics = trustDB.getTokenPerformance("token-address"); +``` + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +### Linting + +```bash +npm run lint +``` + +## Dependencies + +- `better-sqlite3`: SQLite database interface +- `uuid`: Unique identifier generation +- `dompurify`: HTML sanitization +- Other standard dependencies listed in package.json + +## API Reference + +### Core Interfaces + +```typescript +interface Recommender { + id: string; + address: string; + solanaPubkey?: string; + telegramId?: string; + discordId?: string; + twitterId?: string; + ip?: string; +} + +interface RecommenderMetrics { + recommenderId: string; + trustScore: number; + totalRecommendations: number; + successfulRecs: number; + avgTokenPerformance: number; + riskScore: number; + consistencyScore: number; + virtualConfidence: number; + lastActiveDate: Date; + trustDecay: number; + lastUpdated: Date; +} + +interface TokenPerformance { + tokenAddress: string; + symbol: string; + priceChange24h: number; + volumeChange24h: number; + // ... other performance metrics +} +``` + +### Database Methods + +- `addRecommender`: Add new recommender to database +- `getRecommenderMetrics`: Retrieve recommender performance metrics +- `updateRecommenderMetrics`: Update recommender metrics +- `upsertTokenPerformance`: Add or update token performance +- `getTokenPerformance`: Retrieve token performance metrics +- Many more specialized methods for tracking and analysis + +## Common Issues/Troubleshooting + +### Issue: Database Connection Errors +- **Cause**: Incorrect database path or permissions +- **Solution**: Verify database path and file permissions + +### Issue: Data Consistency +- **Cause**: Concurrent database access +- **Solution**: Use proper transaction handling + +## Security Best Practices + +- Implement proper database backup procedures +- Use parameterized queries to prevent SQL injection +- Validate all input data before storage +- Maintain regular database maintenance +- Keep dependencies updated for security patches + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [better-sqlite3](https://github.com/WiseLibs/better-sqlite3): High-performance SQLite3 driver +- [uuid](https://github.com/uuidjs/uuid): UUID generation +- [DOMPurify](https://github.com/cure53/DOMPurify): HTML sanitization library + +Special thanks to: +- The better-sqlite3 team for their excellent database driver +- The UUID.js maintainers for reliable identifier generation +- The DOMPurify team for security-focused sanitization tools +- The Eliza community for their contributions and feedback + +For more information about database management and security: +- [SQLite Documentation](https://www.sqlite.org/docs.html) +- [Database Security Best Practices](https://www.sqlite.org/security.html) +- [Data Sanitization Guide](https://github.com/cure53/DOMPurify/wiki/Security-Goals-&-Threat-Model) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-twitter/README.md b/packages/plugin-twitter/README.md new file mode 100644 index 00000000000..1bea72c20f8 --- /dev/null +++ b/packages/plugin-twitter/README.md @@ -0,0 +1,257 @@ +# @elizaos/plugin-twitter + +A plugin for Twitter/X integration, providing automated tweet posting capabilities with character-aware content generation. + +## Overview + +This plugin provides functionality to: +- Compose context-aware tweets +- Post tweets to Twitter/X platform +- Handle authentication and session management +- Support premium Twitter features +- Manage tweet length restrictions + +## Installation + +```bash +npm install @elizaos/plugin-twitter +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +TWITTER_USERNAME=your_username +TWITTER_PASSWORD=your_password +TWITTER_EMAIL=your_email # Optional: for 2FA +TWITTER_2FA_SECRET=your_2fa_secret # Optional: for 2FA +TWITTER_PREMIUM=false # Optional: enables premium features +TWITTER_DRY_RUN=false # Optional: test without posting +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { twitterPlugin } from "@elizaos/plugin-twitter"; + +export default { + plugins: [twitterPlugin], + // ... other configuration +}; +``` + +## Features + +### Tweet Composition + +The plugin uses context-aware templates to generate appropriate tweets: + +```typescript +import { postAction } from "@elizaos/plugin-twitter"; + +// Tweet will be composed based on context and character limits +const result = await postAction.handler(runtime, message, state); +``` + +### Tweet Posting + +```typescript +// Post with automatic content generation +await postAction.handler(runtime, message, state); + +// Dry run mode (for testing) +process.env.TWITTER_DRY_RUN = "true"; +await postAction.handler(runtime, message, state); +``` + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +### Development Mode + +```bash +npm run dev +``` + +## Dependencies + +- `@elizaos/core`: Core Eliza functionality +- `agent-twitter-client`: Twitter API client +- `tsup`: Build tool +- Other standard dependencies listed in package.json + +## API Reference + +### Core Interfaces + +```typescript +interface TweetContent { + text: string; +} + +// Tweet Schema +const TweetSchema = z.object({ + text: z.string().describe("The text of the tweet") +}); + +// Action Interface +interface Action { + name: "POST_TWEET"; + similes: string[]; + description: string; + validate: (runtime: IAgentRuntime, message: Memory, state?: State) => Promise; + handler: (runtime: IAgentRuntime, message: Memory, state?: State) => Promise; + examples: Array>; +} +``` + +### Plugin Methods + +- `postAction.handler`: Main method for posting tweets +- `postAction.validate`: Validates Twitter credentials +- `composeTweet`: Internal method for tweet generation +- `postTweet`: Internal method for tweet posting + +## Common Issues/Troubleshooting + +### Issue: Authentication Failures +- **Cause**: Invalid credentials or 2FA configuration +- **Solution**: Verify credentials and 2FA setup + +### Issue: Tweet Length Errors +- **Cause**: Content exceeds Twitter's character limit +- **Solution**: Enable TWITTER_PREMIUM for extended tweets or ensure content is within limits + +### Issue: Rate Limiting +- **Cause**: Too many requests in short time +- **Solution**: Implement proper request throttling + +## Security Best Practices + +- Store credentials securely using environment variables +- Use 2FA when possible +- Implement proper error handling +- Keep dependencies updated +- Use dry run mode for testing +- Monitor Twitter API usage + +## Template System + +The plugin uses a sophisticated template system for tweet generation: + +```typescript +const tweetTemplate = ` +# Context +{{recentMessages}} + +# Topics +{{topics}} + +# Post Directions +{{postDirections}} + +# Recent interactions +{{recentPostInteractions}} + +# Task +Generate a tweet that: +1. Relates to the recent conversation +2. Matches the character's style +3. Is concise and engaging +4. Must be UNDER 180 characters +5. Speaks from the perspective of {{agentName}} +`; +``` + +## Future Enhancements + +1. **Content Generation** + - Advanced context awareness + - Multi-language support + - Style customization + - Hashtag optimization + - Media generation + - Thread composition + +2. **Engagement Features** + - Auto-reply system + - Engagement analytics + - Follower management + - Interaction scheduling + - Sentiment analysis + - Community management + +3. **Tweet Management** + - Thread management + - Tweet scheduling + - Content moderation + - Archive management + - Delete automation + - Edit optimization + +4. **Analytics Integration** + - Performance tracking + - Engagement metrics + - Audience insights + - Trend analysis + - ROI measurement + - Custom reporting + +5. **Authentication** + - OAuth improvements + - Multi-account support + - Session management + - Rate limit handling + - Security enhancements + - Backup mechanisms + +6. **Developer Tools** + - Enhanced debugging + - Testing framework + - Documentation generator + - Integration templates + - Error handling + - Logging system + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Twitter/X API](https://developer.twitter.com/en/docs): Official Twitter platform API +- [agent-twitter-client](https://www.npmjs.com/package/agent-twitter-client): Twitter API client library +- [Zod](https://github.com/colinhacks/zod): TypeScript-first schema validation + +Special thanks to: +- The Twitter/X Developer Platform team +- The agent-twitter-client maintainers for API integration tools +- The Eliza community for their contributions and feedback + +For more information about Twitter/X integration capabilities: +- [Twitter API Documentation](https://developer.twitter.com/en/docs) +- [Twitter Developer Portal](https://developer.twitter.com/en/portal/dashboard) +- [Twitter API Best Practices](https://developer.twitter.com/en/docs/twitter-api/rate-limits) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-video-generation/README.md b/packages/plugin-video-generation/README.md new file mode 100644 index 00000000000..07ec6d7e395 --- /dev/null +++ b/packages/plugin-video-generation/README.md @@ -0,0 +1,262 @@ +# @elizaos/plugin-video-generation + +A plugin for AI-powered video generation using Luma AI, providing automated video creation capabilities from text prompts. + +## Overview + +This plugin provides functionality to: +- Generate videos from text descriptions +- Handle video generation requests through Luma AI +- Manage API authentication and responses +- Cache and serve generated videos +- Monitor generation progress + +## Installation + +```bash +npm install @elizaos/plugin-video-generation +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +LUMA_API_KEY=your_luma_api_key # Required: API key for Luma AI +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { videoGenerationPlugin } from "@elizaos/plugin-video-generation"; + +export default { + plugins: [videoGenerationPlugin], + // ... other configuration +}; +``` + +## Features + +### Video Generation + +The plugin uses Luma AI's API to generate videos from text prompts: + +```typescript +import { videoGeneration } from "@elizaos/plugin-video-generation"; + +// Generate video from prompt +const result = await videoGeneration.handler(runtime, { + content: { text: "Generate a video of a sunset on the beach" } +}, state, {}, callback); +``` + +### Progress Monitoring + +```typescript +// The plugin automatically handles progress monitoring +const result = await generateVideo(prompt, runtime); +if (result.success) { + console.log("Video URL:", result.data); +} else { + console.error("Generation failed:", result.error); +} +``` + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +### Development Mode + +```bash +npm run dev +``` + +## Dependencies + +- `@elizaos/core`: Core Eliza functionality +- `tsup`: Build tool +- Other standard dependencies listed in package.json + +## API Reference + +### Core Interfaces + +```typescript +interface Action { + name: "GENERATE_VIDEO"; + similes: string[]; + description: string; + validate: (runtime: IAgentRuntime, message: Memory) => Promise; + handler: (runtime: IAgentRuntime, message: Memory, state: State, options: any, callback: HandlerCallback) => Promise; + examples: Array>; +} + +interface GenerationResult { + success: boolean; + data?: string; + error?: string; +} +``` + +### Plugin Methods + +- `generateVideo`: Main method for video generation +- `videoGeneration.handler`: Action handler for video requests +- `videoGeneration.validate`: Validates API key and requirements + +## Common Issues/Troubleshooting + +### Issue: API Authentication Failures +- **Cause**: Invalid or missing Luma API key +- **Solution**: Verify LUMA_API_KEY environment variable + +### Issue: Generation Timeouts +- **Cause**: Long generation times or network issues +- **Solution**: Implement proper timeout handling and retry logic + +### Issue: File Storage Errors +- **Cause**: Insufficient permissions or disk space +- **Solution**: Verify file system permissions and available storage + +## Security Best Practices + +- Store API keys securely using environment variables +- Implement proper error handling +- Keep dependencies updated +- Monitor API usage and rate limits +- Validate input prompts +- Secure file storage handling + +## Constants + +The plugin uses predefined constants for API configuration: + +```typescript +export const LUMA_CONSTANTS = { + API_URL: "https://api.lumalabs.ai/dream-machine/v1/generations", + API_KEY_SETTING: "LUMA_API_KEY" +}; +``` + +## Example Usage + +```typescript +// Basic video generation +const videoPrompt = "Create a video of a futuristic city at night"; +const result = await generateVideo(videoPrompt, runtime); + +// With callback handling +videoGeneration.handler(runtime, { + content: { text: videoPrompt } +}, state, {}, (response) => { + console.log("Generation status:", response); +}); +``` + +## Future Enhancements + +1. **Generation Features** + - Advanced style control + - Multi-scene composition + - Custom duration settings + - Resolution options + - Frame rate control + - Audio integration + +2. **Video Editing** + - Scene transitions + - Text overlay tools + - Effect templates + - Color correction + - Motion tracking + - Timeline editing + +3. **Asset Management** + - Asset library + - Template system + - Style presets + - Resource optimization + - Version control + - Batch processing + +4. **Quality Improvements** + - Enhanced resolution + - Frame interpolation + - Artifact reduction + - Stability features + - Lighting optimization + - Detail enhancement + +5. **Performance Optimization** + - Generation speed + - Resource usage + - Parallel processing + - Caching system + - Queue management + - Load balancing + +6. **Export Options** + - Multiple formats + - Compression settings + - Streaming support + - Progressive loading + - Thumbnail generation + - Metadata handling + +7. **Developer Tools** + - API expansion + - Testing framework + - Documentation generator + - Debug visualization + - Performance monitoring + - Integration templates + +8. **AI Features** + - Style transfer + - Scene understanding + - Content awareness + - Motion synthesis + - Character animation + - Environment generation + +We welcome community feedback and contributions to help prioritize these enhancements. + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Luma AI](https://lumalabs.ai/): Advanced AI-powered video generation platform +- [Luma Dream Machine](https://lumalabs.ai/dream-machine): Text-to-video generation API +- [Node.js Fetch API](https://nodejs.org/api/fetch.html): HTTP request handling + +Special thanks to: +- The Luma Labs team for providing the video generation API +- The Luma AI research team for their groundbreaking work in AI video generation +- The Eliza community for their contributions and feedback + +For more information about video generation capabilities and tools: +- [Luma AI Documentation](https://docs.lumalabs.ai/) +- [Dream Machine API Reference](https://lumalabs.ai/docs/dream-machine) +- [Video Generation Best Practices](https://lumalabs.ai/docs/best-practices) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-web-search/Readme.md b/packages/plugin-web-search/Readme.md deleted file mode 100644 index 78b819e71d9..00000000000 --- a/packages/plugin-web-search/Readme.md +++ /dev/null @@ -1,180 +0,0 @@ -# Plugin Web Search - -## Overview - -The Web Search Plugin enables powerful and customizable web search capabilities, offering flexibility and ease of integration for modern applications. - -## Features - -- Efficient search query handling. -- Configurable options for advanced customization. -- Optimized for performance and scalability. - -## Handlers - -### `search` - -The `search` handler executes web search queries with specified parameters, returning results in a structured format. - -#### Usage - -```typescript -import { WebSearch } from 'web-search-plugin'; - -const search = new WebSearch({ - apiEndpoint: 'https://api.example.com/search', - timeout: 5000, -}); - -try { - const results = await search.query('example query', { - limit: 10, - sortBy: 'relevance', - }); - console.log('Search Results:', results); -} catch (error) { - console.error('Search failed:', error); -} -``` - -#### Features - -- **Query Customization**: Specify query parameters such as `limit` and `sortBy`. -- **Error Handling**: Handles common search errors gracefully. - -## Configuration - -### Environment Variables - -Set the following environment variables for optimal performance: - -| Variable Name | Description | -| ---------------- | --------------------------------- | -| `API_ENDPOINT` | URL for the search API endpoint. | -| `SEARCH_TIMEOUT` | Timeout duration in milliseconds. | - -Example `.env` file: - -```env -API_ENDPOINT=https://api.example.com/search -SEARCH_TIMEOUT=5000 -``` - -### TypeScript Configuration - -Ensure your `tsconfig.json` is properly configured: - -```json -{ - "compilerOptions": { - "target": "ESNext", - "module": "CommonJS", - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true - } -} -``` - -## Example Workflow - -Streamline your search operations with the following example: - -```typescript -import { WebSearch } from 'web-search-plugin'; - -const search = new WebSearch({ apiEndpoint: 'https://api.example.com/search' }); - -(async () => { - try { - // Execute a search query - const results = await search.query('example', { limit: 5 }); - console.log('Search Results:', results); - } catch (error) { - console.error('Error executing search:', error); - } -})(); -``` - -## Local Testing - -To test locally, you can set up a mock server for the API endpoint: - -1. Install `json-server`: - - ```bash - npm install -g json-server - ``` - -2. Create a `db.json` file with mock search data. - -3. Start the mock server: - - ```bash - json-server --watch db.json --port 3000 - ``` - -4. Update your `.env` file: - ```env - API_ENDPOINT=http://localhost:3000 - ``` - -## Common Issues - -### "API endpoint not defined" - -- Ensure the `API_ENDPOINT` is set in your environment variables. - -### "Search query timeout" - -- Increase the `SEARCH_TIMEOUT` value in the configuration. - -## Dependencies - -This plugin relies on the following: - -- `axios` for HTTP requests. -- `dotenv` for managing environment variables. - -## Development Guide - -### Setup - -1. Clone the repository: - - ```bash - git clone https://github.com/your-repo/web-search-plugin.git - ``` - -2. Install dependencies: - ```bash - npm install - ``` - -### Testing - -Run tests with: - -```bash -npm test -``` - -### Contribution Guidelines - -- Fork the repository. -- Create a feature branch. -- Submit a pull request with a clear description. - -### Security Best Practices - -- Validate user inputs to prevent injection attacks. -- Use HTTPS for secure API communication. - -## Performance Optimization - -- Use caching for frequently queried terms. -- Optimize query parameters for faster responses. - ---- - -This documentation aims to streamline onboarding, reduce support queries, and enable faster adoption of the Web Search Plugin. diff --git a/packages/plugin-web-search/src/README.MD b/packages/plugin-web-search/src/README.MD new file mode 100644 index 00000000000..4fbd27dad03 --- /dev/null +++ b/packages/plugin-web-search/src/README.MD @@ -0,0 +1,225 @@ +# @elizaos/plugin-web-search + +A plugin for powerful web search capabilities, providing efficient search query handling and result processing through a customizable API interface. + +## Overview + +This plugin provides functionality to: + +- Execute web search queries with customizable parameters +- Process and format search results +- Handle search API authentication +- Manage token limits and response sizes +- Optimize query performance + +## Installation + +```bash +pnpm install @elizaos/plugin-web-search +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +TAVILY_API_KEY=your_api_key # Required: API key for search service +``` + +## Usage + +Import and register the plugin in your Eliza configuration: + +```typescript +import { webSearchPlugin } from "@elizaos/plugin-web-search"; + +export default { + plugins: [webSearchPlugin], + // ... other configuration +}; +``` + +## Features + +### Web Search + +The plugin provides comprehensive web search capabilities: + +```typescript +import { webSearch } from "@elizaos/plugin-web-search"; + +// Execute a search query +const result = await webSearch.handler( + runtime, + { + content: { text: "What is the latest news about AI?" }, + }, + state, + {}, + callback +); +``` + +### Token Management + +```typescript +// The plugin automatically handles token limits +const DEFAULT_MAX_WEB_SEARCH_TOKENS = 4000; + +// Example of token-limited response +const response = MaxTokens(searchResult, DEFAULT_MAX_WEB_SEARCH_TOKENS); +``` + +## Development + +### Building + +```bash +pnpm run build +``` + +### Testing + +```bash +pnpm run test +``` + +### Development Mode + +```bash +pnpm run dev +``` + +## Dependencies + +- `@elizaos/core`: Core Eliza functionality +- `js-tiktoken`: Token counting and management +- `tsup`: Build tool +- Other standard dependencies listed in package.json + +## API Reference + +### Core Interfaces + +```typescript +interface Action { + name: "WEB_SEARCH"; + similes: string[]; + description: string; + validate: (runtime: IAgentRuntime, message: Memory) => Promise; + handler: ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: any, + callback: HandlerCallback + ) => Promise; + examples: Array>; +} + +interface SearchResult { + title: string; + url: string; + answer?: string; + results?: Array<{ + title: string; + url: string; + }>; +} +``` + +### Plugin Methods + +- `webSearch.handler`: Main method for executing searches +- `generateWebSearch`: Core search generation function +- `MaxTokens`: Token limit management function +- `getTotalTokensFromString`: Token counting utility + +## Common Issues/Troubleshooting + +### Issue: API Authentication Failures + +- **Cause**: Invalid or missing Tavily API key +- **Solution**: Verify TAVILY_API_KEY environment variable + +### Issue: Token Limit Exceeded + +- **Cause**: Search results exceeding maximum token limit +- **Solution**: Results are automatically truncated to fit within limits + +### Issue: Search Rate Limiting + +- **Cause**: Too many requests in short time +- **Solution**: Implement proper request throttling + +## Security Best Practices + +- Store API keys securely using environment variables +- Validate all search inputs +- Implement proper error handling +- Keep dependencies updated +- Monitor API usage and rate limits +- Use HTTPS for API communication + +## Example Usage + +```typescript +// Basic search +const searchQuery = "Latest developments in quantum computing"; +const results = await generateWebSearch(searchQuery, runtime); + +// With formatted response +if (results && results.results.length) { + const formattedResponse = `${results.answer}\n\nFor more details, check out:\n${results.results + .map( + (result, index) => `${index + 1}. [${result.title}](${result.url})` + ) + .join("\n")}`; +} +``` + +## Configuration Options + +### Token Management + +```typescript +const DEFAULT_MODEL_ENCODING = "gpt-3.5-turbo"; +const DEFAULT_MAX_WEB_SEARCH_TOKENS = 4000; +``` + +### Search Actions + +The plugin includes multiple search action similes: + +- SEARCH_WEB +- INTERNET_SEARCH +- LOOKUP +- QUERY_WEB +- FIND_ONLINE +- And more... + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [Tavily API](https://tavily.com/): Advanced search and content analysis API +- [js-tiktoken](https://github.com/dqbd/tiktoken): Token counting for API responses +- [Zod](https://github.com/colinhacks/zod): TypeScript-first schema validation + +Special thanks to: + +- The Eliza community for their contributions and feedback + +For more information about the search capabilities and tools: + +- [Tavily API Documentation](https://docs.tavily.com/) +- [Token Management Guide](https://github.com/dqbd/tiktoken#readme) +- [Search API Best Practices](https://docs.tavily.com/docs/guides/best-practices) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. diff --git a/packages/plugin-web-search/src/index.ts b/packages/plugin-web-search/src/index.ts index 58a511eee21..528e2609045 100644 --- a/packages/plugin-web-search/src/index.ts +++ b/packages/plugin-web-search/src/index.ts @@ -207,3 +207,5 @@ export const webSearchPlugin: Plugin = { evaluators: [], providers: [], }; + +export default webSearchPlugin; diff --git a/packages/plugin-whatsapp/README.md b/packages/plugin-whatsapp/README.md new file mode 100644 index 00000000000..a81c80b0ce0 --- /dev/null +++ b/packages/plugin-whatsapp/README.md @@ -0,0 +1,220 @@ +# @elizaos/plugin-whatsapp + +A plugin for integrating WhatsApp Cloud API with your application, providing comprehensive messaging capabilities and webhook handling. + +## Overview + +This plugin provides functionality to: +- Send text and template messages via WhatsApp +- Handle incoming webhook events +- Manage message status updates +- Process message delivery notifications +- Handle authentication and session management + +## Installation + +```bash +npm install @elizaos/plugin-whatsapp +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +WHATSAPP_ACCESS_TOKEN=your_access_token # Required: WhatsApp Cloud API access token +WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id # Required: WhatsApp business phone number ID +WHATSAPP_WEBHOOK_TOKEN=your_webhook_token # Optional: Webhook verification token +WHATSAPP_BUSINESS_ID=your_business_id # Optional: Business account ID +``` + +## Usage + +### Basic Setup + +```typescript +import { WhatsAppPlugin } from "@elizaos/plugin-whatsapp"; + +const whatsappPlugin = new WhatsAppPlugin({ + accessToken: 'your_access_token', + phoneNumberId: 'your_phone_number_id', + webhookVerifyToken: 'your_webhook_verify_token', + businessAccountId: 'your_business_account_id' +}); +``` + +### Sending Messages + +```typescript +// Send a text message +await whatsappPlugin.sendMessage({ + type: 'text', + to: '1234567890', + content: 'Hello from WhatsApp!' +}); + +// Send a template message +await whatsappPlugin.sendMessage({ + type: 'template', + to: '1234567890', + content: { + name: 'hello_world', + language: { + code: 'en' + } + } +}); +``` + +### Handling Webhooks + +```typescript +// Verify webhook +app.get('/webhook', (req, res) => { + const verified = await whatsappPlugin.verifyWebhook(req.query['hub.verify_token']); + if (verified) { + res.send(req.query['hub.challenge']); + } else { + res.sendStatus(403); + } +}); + +// Handle webhook events +app.post('/webhook', (req, res) => { + await whatsappPlugin.handleWebhook(req.body); + res.sendStatus(200); +}); +``` + +## Features + +- Send text messages +- Send template messages +- Webhook verification +- Webhook event handling +- Message status updates + +## Error Handling + +The plugin throws errors in the following cases: + +```typescript +try { + await whatsappPlugin.sendMessage({ + type: 'text', + to: '1234567890', + content: 'Hello!' + }); +} catch (error) { + console.error('Failed to send message:', error.message); +} +``` + +Common error cases: +- Invalid configuration +- Failed message sending +- Webhook verification failure +- Invalid webhook payload + +## Best Practices + +1. Always validate phone numbers before sending messages +2. Use template messages for first-time messages to users +3. Store message IDs for tracking delivery status +4. Implement proper error handling +5. Set up webhook retry mechanisms +6. Keep your access tokens secure + +## API Reference + +### Core Interfaces + +```typescript +interface WhatsAppConfig { + accessToken: string; + phoneNumberId: string; + webhookVerifyToken?: string; + businessAccountId?: string; +} + +interface WhatsAppMessage { + type: 'text' | 'template'; + to: string; + content: string | WhatsAppTemplate; +} + +interface WhatsAppTemplate { + name: string; + language: { + code: string; + }; + components?: Array<{ + type: string; + parameters: Array<{ + type: string; + text?: string; + }>; + }>; +} +``` + +### Plugin Methods + +- `sendMessage`: Send WhatsApp messages +- `handleWebhook`: Process incoming webhook events +- `verifyWebhook`: Verify webhook authenticity +- Message and status handlers + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +### Linting + +```bash +npm run lint +``` + +## Security Best Practices + +- Store credentials securely using environment variables +- Validate all phone numbers before sending messages +- Use template messages for first-time contacts +- Implement proper error handling +- Keep dependencies updated +- Monitor API usage and rate limits +- Use HTTPS for all API communication + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [WhatsApp Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api): Meta's official WhatsApp Business Platform +- [Axios](https://axios-http.com/): Promise-based HTTP client for API requests +- [Meta for Developers](https://developers.facebook.com/): Meta's developer platform and tools + +Special thanks to: +- The Eliza community for their contributions and feedback + +For more information about WhatsApp Cloud API and its capabilities, visit: +- [WhatsApp Business Platform Documentation](https://developers.facebook.com/docs/whatsapp/cloud-api/overview) +- [Meta for Developers Blog](https://developers.facebook.com/blog/) +- [WhatsApp Business API GitHub](https://github.com/WhatsApp/WhatsApp-Business-API-Setup-Scripts) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/packages/plugin-whatsapp/Readme.md b/packages/plugin-whatsapp/Readme.md deleted file mode 100644 index 9324a5705c7..00000000000 --- a/packages/plugin-whatsapp/Readme.md +++ /dev/null @@ -1,154 +0,0 @@ -# WhatsApp Cloud API Plugin - -A plugin for integrating WhatsApp Cloud API with your application. - -## Installation - - - -npm install @eliza/plugin-whatsapp - -## Configuration - -typescript -import { WhatsAppPlugin } from '@eliza/plugin-whatsapp'; -const whatsappPlugin = new WhatsAppPlugin({ -accessToken: 'your_access_token', -phoneNumberId: 'your_phone_number_id', -webhookVerifyToken: 'your_webhook_verify_token', -businessAccountId: 'your_business_account_id' -}); - -## Usage - -### Sending Messages - -typescript -// Send a text message -await whatsappPlugin.sendMessage({ -type: 'text', -to: '1234567890', -content: 'Hello from WhatsApp!' -}); -// Send a template message -await whatsappPlugin.sendMessage({ -type: 'template', -to: '1234567890', -content: { -name: 'hello_world', -language: { -code: 'en' -} -} -}); - -### Handling Webhooks - -typescript -// Verify webhook -app.get('/webhook', (req, res) => { -const verified = await whatsappPlugin.verifyWebhook(req.query['hub.verify_token']); -if (verified) { -res.send(req.query['hub.challenge']); -} else { -res.sendStatus(403); -} -}); -// Handle webhook events -app.post('/webhook', (req, res) => { -await whatsappPlugin.handleWebhook(req.body); -res.sendStatus(200); -}); - -## Features - -- 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 - -#### Methods - -- `sendMessage(message: WhatsAppMessage): Promise` - Send a WhatsApp message -- `handleWebhook(event: WhatsAppWebhookEvent): Promise` - Process incoming webhook events -- `verifyWebhook(token: string): Promise` - Verify webhook token - -### Types - -typescript -interface WhatsAppConfig { -accessToken: string; -phoneNumberId: string; -webhookVerifyToken?: string; -businessAccountId?: string; -} -interface WhatsAppMessage { -type: 'text' | 'template'; -to: string; -content: string | WhatsAppTemplate; -} -interface WhatsAppTemplate { -name: string; -language: { -code: string; -}; -components?: Array<{ -type: string; -parameters: Array<{ -type: string; -text?: string; -}>; -}>; -} - -## Error Handling - -The plugin throws errors in the following cases: - -- Invalid configuration -- Failed message sending -- Webhook verification failure -- Invalid webhook payload - -Example error handling: - -typescript -try { -await whatsappPlugin.sendMessage({ -type: 'text', -to: '1234567890', -content: 'Hello!' -}); -} catch (error) { -console.error('Failed to send message:', error.message); -} - -## Best Practices - -1. Always validate phone numbers before sending messages -2. Use template messages for first-time messages to users -3. Store message IDs for tracking delivery status -4. Implement proper error handling -5. Set up webhook retry mechanisms -6. Keep your access tokens secure - -## Contributing - -1. Fork the repository -2. Create your feature branch (`git checkout -b feature/amazing-feature`) -3. Commit your changes (`git commit -m 'Add some amazing feature'`) -4. Push to the branch (`git push origin feature/amazing-feature`) -5. Open a Pull Request - -## License - -MIT diff --git a/packages/plugin-zksync-era/README.md b/packages/plugin-zksync-era/README.md new file mode 100644 index 00000000000..8a122cfadbd --- /dev/null +++ b/packages/plugin-zksync-era/README.md @@ -0,0 +1,218 @@ +# @elizaos/plugin-zksync-era + +A plugin for integrating ZKSync Era blockchain operations with your application, providing token transfer capabilities and transaction management. + +## Overview + +This plugin provides functionality to: +- Execute token transfers on ZKSync Era +- Handle smart account operations +- Manage transaction signing and submission +- Support multiple token standards +- Process transaction receipts and confirmations + +## Installation + +```bash +npm install @elizaos/plugin-zksync-era +``` + +## Configuration + +The plugin requires the following environment variables: + +```env +ZKSYNC_ADDRESS=your_address # Required: Your ZKSync wallet address +ZKSYNC_PRIVATE_KEY=your_private_key # Required: Your wallet's private key +``` + +## Usage + +### Basic Setup + +```typescript +import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era"; + +const plugin = zksyncEraPlugin; +``` + +### Token Transfers + +```typescript +// Transfer tokens +await transfer.handler(runtime, { + content: { + tokenAddress: "0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4", // USDC + recipient: "0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62", + amount: "100" + } +}, state); +``` + +## Features + +### Supported Tokens + +The plugin includes pre-configured addresses for common tokens: +```typescript +const TOKENS = { + ZK: "0x5A7d6b2F92C77FAD6CCaBd7EE0624E64907Eaf3E", + ETH: "0x000000000000000000000000000000000000800A", + USDC: "0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4" +}; +``` + +### Smart Account Integration + +```typescript +const web3 = new Web3(); +web3.registerPlugin(new ZKsyncPlugin( + Web3ZKsyncL2.initWithDefaultProvider(types.Network.Mainnet) +)); + +const smartAccount = new web3.ZKsync.SmartAccount({ + address: PUBLIC_KEY, + secret: PRIVATE_KEY +}); +``` + +## Error Handling + +The plugin includes comprehensive error handling: + +```typescript +try { + const transferTx = await smartAccount.transfer({ + to: recipient, + token: tokenAddress, + amount: amount + }); + const receipt = await transferTx.wait(); +} catch (error) { + console.error("Transfer failed:", error.message); +} +``` + +Common error cases: +- Invalid configuration +- Insufficient balance +- Network issues +- Invalid addresses +- Failed transactions + +## Best Practices + +1. Always validate addresses before transactions +2. Keep private keys secure +3. Monitor transaction status +4. Implement proper error handling +5. Use appropriate gas settings +6. Keep track of transaction receipts + +## API Reference + +### Core Interfaces + +```typescript +interface TransferContent { + tokenAddress: string; + recipient: string; + amount: string | number; +} + +interface ZKsyncConfig { + ZKSYNC_ADDRESS: string; + ZKSYNC_PRIVATE_KEY: string; +} +``` + +### Plugin Methods + +- `transfer`: Execute token transfers +- `validateZKsyncConfig`: Validate configuration +- Transaction status monitoring +- Receipt handling + +## Development + +### Building + +```bash +npm run build +``` + +### Testing + +```bash +npm run test +``` + +## Security Best Practices + +- Store private keys securely using environment variables +- Validate all addresses before transactions +- Implement proper error handling +- Keep dependencies updated +- Monitor transaction status +- Use secure RPC endpoints +- Implement proper gas management + +## Example Usage + +```typescript +// Initialize plugin +const zksync = zksyncEraPlugin; + +// Execute transfer +try { + await transfer.handler(runtime, { + content: { + tokenAddress: TOKENS.USDC, + recipient: "0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62", + amount: "100" + } + }, state); +} catch (error) { + console.error('Transfer failed:', error.message); +} +``` + +## Validation + +The plugin includes validation for: +- Wallet addresses +- Token addresses +- Transaction amounts +- Configuration parameters +- Network status + +## Dependencies + +- `@elizaos/core`: Core Eliza functionality +- `web3`: Web3 library for blockchain interaction +- `web3-plugin-zksync`: ZKSync Era integration +- Other standard dependencies listed in package.json + +## Contributing + +Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. + +## Credits + +This plugin integrates with and builds upon several key technologies: + +- [ZKSync Era](https://zksync.io/): Layer 2 scaling solution for Ethereum +- [Web3.js](https://web3js.org/): Ethereum JavaScript API +- [web3-plugin-zksync](https://www.npmjs.com/package/web3-plugin-zksync): Official ZKSync plugin for Web3.js + +Special thanks to: +- The Eliza community for their contributions and feedback + +For more information about ZKSync Era and its capabilities, visit: +- [ZKSync Documentation](https://docs.zksync.io/) +- [Matter Labs Blog](https://blog.matter-labs.io/) +- [ZKSync GitHub](https://github.com/matter-labs/zksync-era) + +## License + +This plugin is part of the Eliza project. See the main project repository for license information. \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 452d183dd3c..751789f35bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,16 +13,16 @@ importers: dependencies: '@0glabs/0g-ts-sdk': specifier: 0.2.1 - version: 0.2.1(bufferutil@4.0.8)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + version: 0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) '@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) + version: 0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) '@deepgram/sdk': specifier: ^3.9.0 - version: 3.9.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@vitest/eslint-plugin': specifier: 1.0.1 - version: 1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + version: 1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) amqplib: specifier: 0.10.5 version: 0.10.5 @@ -47,7 +47,7 @@ importers: devDependencies: '@commitlint/cli': specifier: 18.6.1 - version: 18.6.1(@types/node@22.10.2)(typescript@5.6.3) + version: 18.6.1(@types/node@22.10.3)(typescript@5.6.3) '@commitlint/config-conventional': specifier: 18.6.3 version: 18.6.3 @@ -74,7 +74,7 @@ importers: version: 9.1.7 lerna: specifier: 8.1.5 - version: 8.1.5(@swc/core@1.10.1)(encoding@0.1.13) + version: 8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13) only-allow: specifier: 1.2.1 version: 1.2.1 @@ -90,12 +90,15 @@ importers: typescript: specifier: 5.6.3 version: 5.6.3 + viem: + specifier: 2.21.58 + version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) vite: specifier: 5.4.11 - version: 5.4.11(@types/node@22.10.2)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.3)(terser@5.37.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) agent: dependencies: @@ -225,6 +228,9 @@ importers: '@elizaos/plugin-twitter': specifier: workspace:* version: link:../packages/plugin-twitter + '@elizaos/plugin-web-search': + specifier: workspace:* + version: link:../packages/plugin-web-search '@elizaos/plugin-zksync-era': specifier: workspace:* version: link:../packages/plugin-zksync-era @@ -233,7 +239,7 @@ importers: version: 1.3.0 ws: specifier: 8.18.0 - version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) yargs: specifier: 17.7.2 version: 17.7.2 @@ -243,16 +249,16 @@ importers: version: 29.5.14 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) client: dependencies: @@ -297,7 +303,7 @@ importers: version: 2.5.5 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))) vite-plugin-top-level-await: specifier: 1.4.4 version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.29.1)(vite@client+@tanstack+router-plugin+vite) @@ -337,7 +343,7 @@ importers: version: 8.4.49 tailwindcss: specifier: 3.4.15 - version: 3.4.15(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + version: 3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 @@ -352,22 +358,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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.1)(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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) @@ -376,7 +382,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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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) dotenv: specifier: ^16.4.7 version: 16.4.7 @@ -395,10 +401,10 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 3.6.3 - version: 3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/types': specifier: 3.6.3 - version: 3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) docusaurus-plugin-typedoc: specifier: 1.0.5 version: 1.0.5(typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.6.3))) @@ -423,7 +429,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/adapter-redis: dependencies: @@ -442,7 +448,7 @@ importers: version: 5.0.0 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/adapter-sqlite: dependencies: @@ -464,7 +470,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/adapter-sqljs: dependencies: @@ -486,7 +492,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/adapter-supabase: dependencies: @@ -495,14 +501,14 @@ importers: version: link:../core '@supabase/supabase-js': specifier: 2.46.2 - version: 2.46.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 2.46.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) whatwg-url: specifier: 7.1.0 version: 7.1.0 devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-auto: dependencies: @@ -533,7 +539,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-direct: dependencies: @@ -563,7 +569,7 @@ importers: version: 2.8.5 discord.js: specifier: 14.16.3 - version: 14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 14.16.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) express: specifier: 4.21.1 version: 4.21.1 @@ -579,7 +585,7 @@ importers: version: 1.4.12 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-discord: dependencies: @@ -591,7 +597,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.9)(ffmpeg-static@5.2.0)(utf-8-validate@5.0.10) '@elizaos/core': specifier: workspace:* version: link:../core @@ -600,7 +606,7 @@ importers: version: link:../plugin-node discord.js: specifier: 14.16.3 - version: 14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 14.16.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) libsodium-wrappers: specifier: 0.7.15 version: 0.7.15 @@ -616,7 +622,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-farcaster: dependencies: @@ -625,11 +631,11 @@ importers: version: link:../core '@neynar/nodejs-sdk': specifier: ^2.0.3 - version: 2.6.1(bufferutil@4.0.8)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 2.7.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) devDependencies: tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-github: dependencies: @@ -654,7 +660,7 @@ importers: version: 8.1.0 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-lens: dependencies: @@ -663,20 +669,17 @@ importers: version: link:../core '@lens-protocol/client': specifier: 2.2.0 - version: 2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + version: 2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) '@lens-protocol/metadata': specifier: 1.2.0 version: 1.2.0(zod@3.23.8) axios: specifier: ^1.7.9 version: 1.7.9(debug@4.4.0) - viem: - specifier: ^2.13.8 - version: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) devDependencies: tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-slack: dependencies: @@ -719,22 +722,22 @@ importers: version: 29.5.14 '@types/node': specifier: ^18.15.11 - version: 18.19.68 + version: 18.19.69 jest: specifier: ^29.5.0 - version: 29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + version: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) rimraf: specifier: ^5.0.0 version: 5.0.10 ts-jest: specifier: ^29.1.0 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3) tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) typescript: specifier: ^5.0.0 version: 5.6.3 @@ -756,7 +759,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/client-twitter: dependencies: @@ -764,8 +767,8 @@ importers: specifier: workspace:* version: link:../core agent-twitter-client: - specifier: 0.0.17 - version: 0.0.17 + specifier: 0.0.18 + version: 0.0.18(bufferutil@4.0.9)(utf-8-validate@5.0.10) glob: specifier: 11.0.0 version: 11.0.0 @@ -778,7 +781,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/core: dependencies: @@ -808,7 +811,7 @@ importers: version: 10.0.0 ai: specifier: 3.4.33 - version: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.15.0))(svelte@5.15.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + version: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) anthropic-vertex-ai: specifier: 1.0.2 version: 1.0.2(encoding@0.1.13)(zod@3.23.8) @@ -835,7 +838,7 @@ importers: version: 1.0.15 langchain: specifier: 0.3.6 - version: 0.3.6(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + version: 0.3.6(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) ollama-ai-provider: specifier: 0.16.1 version: 0.16.1(zod@3.23.8) @@ -881,7 +884,10 @@ importers: version: 11.1.6(rollup@2.79.2)(tslib@2.8.1)(typescript@5.6.3) '@solana/web3.js': specifier: 1.95.8 - version: 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@tavily/core': + specifier: ^0.0.2 + version: 0.0.2 '@types/fluent-ffmpeg': specifier: 2.1.27 version: 2.1.27 @@ -911,13 +917,13 @@ importers: version: 8.16.0(eslint@9.16.0(jiti@2.4.2))(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)(utf-8-validate@5.0.10))(terser@5.37.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) dotenv: specifier: 16.4.5 version: 16.4.5 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + version: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) lint-staged: specifier: 15.2.10 version: 15.2.10 @@ -926,7 +932,7 @@ importers: version: 3.1.7 pm2: specifier: 5.4.3 - version: 5.4.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 5.4.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) rimraf: specifier: 6.0.1 version: 6.0.1 @@ -935,16 +941,16 @@ importers: version: 2.79.2 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3) tslib: specifier: 2.8.1 version: 2.8.1 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) typescript: specifier: 5.6.3 version: 5.6.3 @@ -972,16 +978,16 @@ importers: dependencies: '@0glabs/0g-ts-sdk': specifier: 0.2.1 - version: 0.2.1(bufferutil@4.0.8)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + version: 0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) '@elizaos/core': specifier: workspace:* version: link:../core ethers: specifier: 6.13.4 - version: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/plugin-3d-generation: dependencies: @@ -990,7 +996,7 @@ importers: version: link:../core tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1002,13 +1008,10 @@ importers: version: link:../core tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(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) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) web3: specifier: ^4.15.0 - version: 4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1035,10 +1038,10 @@ importers: version: 5.1.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1048,16 +1051,13 @@ importers: '@elizaos/core': specifier: workspace:* version: link:../core - viem: - specifier: 2.21.49 - version: 2.21.49(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 devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/plugin-bootstrap: dependencies: @@ -1066,7 +1066,7 @@ importers: version: link:../core tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1084,7 +1084,7 @@ importers: version: '@coinbase-samples/advanced-sdk-ts@file:packages/plugin-coinbase/advanced-sdk-ts(encoding@0.1.13)' coinbase-api: specifier: 1.0.5 - version: 1.0.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 1.0.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 @@ -1097,7 +1097,7 @@ importers: version: 20.17.9 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/plugin-conflux: dependencies: @@ -1106,7 +1106,7 @@ importers: version: link:../core cive: specifier: 0.7.1 - version: 0.7.1(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 0.7.1(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10) packages/plugin-cronoszkevm: dependencies: @@ -1118,13 +1118,13 @@ importers: version: link:../plugin-trustdb tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) web3: specifier: ^4.15.0 - version: 4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) web3-plugin-zksync: specifier: ^1.0.8 - version: 1.0.8(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1151,16 +1151,13 @@ importers: version: 5.15.5 '@lifi/sdk': specifier: 3.4.1 - version: 3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)))(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(typescript@5.6.3)(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + version: 3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)))(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(typescript@5.6.3)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) '@lifi/types': specifier: 16.3.0 version: 16.3.0 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(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) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1168,14 +1165,14 @@ importers: packages/plugin-ferePro: dependencies: '@elizaos/core': - specifier: ^0.1.7-alpha.2 - version: 0.1.7-alpha.2(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.15.0))(svelte@5.15.0) + specifier: ^0.1.7-alpha.1 + version: 0.1.7-alpha.2(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0) tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) ws: specifier: ^8.18.0 - version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) devDependencies: '@types/ws': specifier: ^8.5.13 @@ -1194,7 +1191,7 @@ importers: version: 1.5.1 '@onflow/fcl': specifier: 1.13.1 - version: 1.13.1(@types/react@18.3.12)(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10) + version: 1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10) '@onflow/typedefs': specifier: 1.4.0 version: 1.4.0 @@ -1231,10 +1228,10 @@ importers: version: 10.0.0 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) packages/plugin-fuel: dependencies: @@ -1246,13 +1243,13 @@ importers: version: 4.0.1 fuels: specifier: 0.97.2 - version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1264,31 +1261,37 @@ importers: version: link:../core tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/plugin-goat: dependencies: '@elizaos/core': specifier: workspace:* version: link:../core + '@goat-sdk/adapter-vercel-ai': + specifier: 0.2.0 + version: 0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)) '@goat-sdk/core': - specifier: 0.3.8 - version: 0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@goat-sdk/plugin-coingecko': - specifier: 0.1.4 - version: 0.1.4(@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + specifier: 0.4.0 + version: 0.4.0 '@goat-sdk/plugin-erc20': - specifier: 0.1.7 - version: 0.1.7(@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + specifier: 0.2.2 + version: 0.2.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@goat-sdk/plugin-kim': + specifier: 0.1.2 + version: 0.1.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@goat-sdk/wallet-evm': + specifier: 0.2.0 + version: 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10) '@goat-sdk/wallet-viem': - specifier: 0.1.3 - version: 0.1.3(@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + specifier: 0.2.0 + version: 0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) 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) + version: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1316,10 +1319,10 @@ importers: version: 29.5.14 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.10.2) + version: 29.7.0(@types/node@22.10.3) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) typescript: specifier: 5.6.3 version: 5.6.3 @@ -1331,7 +1334,7 @@ importers: version: link:../core tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1343,13 +1346,13 @@ importers: version: link:../core buttplug: specifier: 3.2.2 - version: 3.2.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 3.2.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) net: specifier: 1.0.2 version: 1.0.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1376,10 +1379,10 @@ importers: version: 2.1.1 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1406,7 +1409,7 @@ importers: version: 5.1.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1433,13 +1436,13 @@ importers: version: 0.9.2 '@metaplex-foundation/umi-bundle-defaults': specifier: ^0.9.2 - version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13) + version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13) '@solana-developers/helpers': specifier: ^2.5.6 - version: 2.5.6(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: 1.95.5 - version: 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bs58: specifier: 6.0.0 version: 6.0.0 @@ -1451,7 +1454,7 @@ importers: version: 5.1.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1511,7 +1514,7 @@ importers: version: 1.6.0 echogarden: specifier: 2.0.7 - version: 2.0.7(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 2.0.7(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(utf-8-validate@5.0.10)(zod@3.23.8) espeak-ng: specifier: 1.0.2 version: 1.0.2 @@ -1583,13 +1586,13 @@ importers: version: 1.48.2 pm2: specifier: 5.4.3 - version: 5.4.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 5.4.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) puppeteer-extra: specifier: 3.3.6 - version: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) + version: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) puppeteer-extra-plugin-capsolver: specifier: 2.0.1 - version: 2.0.1(bufferutil@4.0.8)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 2.0.1(bufferutil@4.0.9)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10) sharp: specifier: 0.33.5 version: 0.33.5 @@ -1632,7 +1635,7 @@ importers: version: 22.8.4 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/plugin-sgx: dependencies: @@ -1651,7 +1654,7 @@ importers: dependencies: '@coral-xyz/anchor': specifier: 0.30.1 - version: 0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@elizaos/core': specifier: workspace:* version: link:../core @@ -1663,10 +1666,10 @@ importers: version: link:../plugin-trustdb '@solana/spl-token': specifier: 0.4.9 - version: 0.4.9(@solana/web3.js@1.95.8(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.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: 1.95.8 - version: 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bignumber: specifier: 1.1.0 version: 1.1.0 @@ -1678,7 +1681,7 @@ importers: version: 6.0.0 fomo-sdk-solana: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) form-data: specifier: 4.0.1 version: 4.0.1 @@ -1687,13 +1690,13 @@ importers: version: 5.1.2 pumpdotfun-sdk: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1702,7 +1705,7 @@ importers: dependencies: '@avnu/avnu-sdk': specifier: 2.1.1 - version: 2.1.1(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13)) + version: 2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13)) '@elizaos/core': specifier: workspace:* version: link:../core @@ -1720,13 +1723,13 @@ importers: version: 6.18.0(encoding@0.1.13) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) unruggable-sdk: specifier: 1.4.0 version: 1.4.0(starknet@6.18.0(encoding@0.1.13)) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1744,20 +1747,17 @@ importers: version: 2.1.0 '@story-protocol/core-sdk': specifier: 1.2.0-rc.3 - version: 1.2.0-rc.3(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) - viem: - specifier: 2.21.54 - version: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.10.2 + version: 22.10.3 packages/plugin-sui: dependencies: @@ -1784,10 +1784,10 @@ importers: version: 5.1.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1799,13 +1799,13 @@ importers: version: link:../core '@phala/dstack-sdk': specifier: 0.1.6 - version: 0.1.6(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 0.1.6(bufferutil@4.0.9)(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.8(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.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: 1.95.8 - version: 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bignumber: specifier: 1.1.0 version: 1.1.0 @@ -1820,13 +1820,10 @@ importers: version: 5.1.2 pumpdotfun-sdk: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(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) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1881,7 +1878,7 @@ importers: version: 5.1.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1896,13 +1893,13 @@ importers: version: 3.2.2 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) uuid: specifier: 11.0.3 version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1921,7 +1918,7 @@ importers: version: 0.0.17 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) packages/plugin-video-generation: dependencies: @@ -1930,7 +1927,7 @@ importers: version: link:../core tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1942,7 +1939,7 @@ importers: version: link:../core tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1970,10 +1967,10 @@ importers: version: 8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3) jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3) typescript: specifier: 5.6.3 version: 5.6.3 @@ -1988,13 +1985,13 @@ importers: version: link:../plugin-trustdb tsup: specifier: ^8.3.5 - version: 8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) web3: specifier: ^4.15.0 - version: 4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) web3-plugin-zksync: specifier: ^1.0.8 - version: 1.0.8(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3337,15 +3334,15 @@ packages: resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.0': - resolution: {integrity: sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==} + '@csstools/css-calc@2.1.1': + resolution: {integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.4 '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-color-parser@3.0.6': - resolution: {integrity: sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==} + '@csstools/css-color-parser@3.0.7': + resolution: {integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.4 @@ -3374,14 +3371,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.6': - resolution: {integrity: sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==} + '@csstools/postcss-color-function@4.0.7': + resolution: {integrity: sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.6': - resolution: {integrity: sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==} + '@csstools/postcss-color-mix-function@3.0.7': + resolution: {integrity: sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3392,8 +3389,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.5': - resolution: {integrity: sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==} + '@csstools/postcss-exponential-functions@2.0.6': + resolution: {integrity: sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3404,20 +3401,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.6': - resolution: {integrity: sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==} + '@csstools/postcss-gamut-mapping@2.0.7': + resolution: {integrity: sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.6': - resolution: {integrity: sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==} + '@csstools/postcss-gradients-interpolation-method@5.0.7': + resolution: {integrity: sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.6': - resolution: {integrity: sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==} + '@csstools/postcss-hwb-function@4.0.7': + resolution: {integrity: sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3476,8 +3473,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.5': - resolution: {integrity: sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==} + '@csstools/postcss-media-minmax@2.0.6': + resolution: {integrity: sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3500,8 +3497,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.6': - resolution: {integrity: sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==} + '@csstools/postcss-oklab-function@4.0.7': + resolution: {integrity: sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3512,14 +3509,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-random-function@1.0.1': - resolution: {integrity: sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==} + '@csstools/postcss-random-function@1.0.2': + resolution: {integrity: sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.6': - resolution: {integrity: sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==} + '@csstools/postcss-relative-color-syntax@3.0.7': + resolution: {integrity: sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3530,14 +3527,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-sign-functions@1.1.0': - resolution: {integrity: sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==} + '@csstools/postcss-sign-functions@1.1.1': + resolution: {integrity: sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.5': - resolution: {integrity: sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==} + '@csstools/postcss-stepped-value-functions@4.0.6': + resolution: {integrity: sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3548,8 +3545,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.5': - resolution: {integrity: sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==} + '@csstools/postcss-trigonometric-functions@4.0.6': + resolution: {integrity: sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3611,9 +3608,9 @@ packages: '@dfinity/principal@2.1.3': resolution: {integrity: sha512-HtiAfZcs+ToPYFepVJdFlorIfPA56KzC6J97ZuH2lGNMTAfJA+NEBzLe476B4wVCAwZ0TiGJ27J4ks9O79DFEg==} - '@discordjs/builders@1.9.0': - resolution: {integrity: sha512-0zx8DePNVvQibh5ly5kCEei5wtPBIUbSoE9n+91Rlladz4tgtFbJ36PZMxxZrTEOQ7AHMZ/b0crT/0fCy6FTKg==} - engines: {node: '>=18'} + '@discordjs/builders@1.10.0': + resolution: {integrity: sha512-ikVZsZP+3shmVJ5S1oM+7SveUCK3L9fTyfA8aJ7uD9cNQlTqF+3Irbk2Y22KXTb3C3RNUahRkSInClJMkHrINg==} + engines: {node: '>=16.11.0'} '@discordjs/collection@1.5.3': resolution: {integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==} @@ -3627,6 +3624,10 @@ packages: resolution: {integrity: sha512-98b3i+Y19RFq1Xke4NkVY46x8KjJQjldHUuEbCqMvp1F5Iq9HgnGpu91jOi/Ufazhty32eRsKnnzS8n4c+L93g==} engines: {node: '>=18'} + '@discordjs/formatters@0.6.0': + resolution: {integrity: sha512-YIruKw4UILt/ivO4uISmrGq2GdMY6EkoTtD0oS0GvkJFRZbTSdPhzYiUILbJ/QslsvC9H9nTgGgnarnIl4jMfw==} + engines: {node: '>=16.11.0'} + '@discordjs/node-pre-gyp@0.4.5': resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} hasBin: true @@ -4783,29 +4784,37 @@ packages: '@fuels/vm-asm@0.58.2': resolution: {integrity: sha512-1/5azTzKJP508BXbZvM6Y0V5bCCX5JgEnd/8mXdBFmFvNLOhiYbwb25yk26auqOokfBXvthSkdkrvipEFft6jQ==} - '@goat-sdk/core@0.3.8': - resolution: {integrity: sha512-1H8Cziyjj3bN78M4GETGN8+/fAQhtTPqMowSyAgIZtC/MGWvf41H2SR0FNba/xhfCOALhb0UfhGOsXCswvM5iA==} - engines: {node: '>=20.12.2 <21', npm: please-use-pnpm, pnpm: '>=9', yarn: please-use-pnpm} + '@goat-sdk/adapter-vercel-ai@0.2.0': + resolution: {integrity: sha512-NqUyO38i6ELbWXSDHddfkD1k4QCUcvfs3jVQArlJ9OO9NSlkKvnbZjO1tTjoVoERjRKfKsCqfMPgsgo3akx7tA==} + peerDependencies: + '@goat-sdk/core': 0.4.0 + ai: 4.0.3 + + '@goat-sdk/core@0.4.0': + resolution: {integrity: sha512-x7TVQ+3IS8bS+44O+ZkbS2R6IDXO0dOcRNWe5psU8Aqrb7/48Fe1ILN2Pif0sv34y1WkPYPlqoPINl/TiatIVQ==} + + '@goat-sdk/plugin-erc20@0.2.2': + resolution: {integrity: sha512-uobj8A2GRAHAU8PNY9Be0iA8p+311zRDIRKHRQX0uooCWD4CxD6iMj99Q4RvBl8Es+Kc7JMQPRoZzMLawJUSJw==} + peerDependencies: + '@goat-sdk/core': 0.4.0 + viem: 2.21.49 - '@goat-sdk/plugin-coingecko@0.1.4': - resolution: {integrity: sha512-i85v/SeCXB7/fcqZKc0hV68/3FrUAHJSL4N5AUp5OPauzV5kq4Ecn0WjeDZEHX8iCEEY1NZSZ47yweDckAhjhA==} + '@goat-sdk/plugin-kim@0.1.2': + resolution: {integrity: sha512-jZ7PTjGk7LPGAmMflhAieZsE0Q28TWinNNuDnljrp6NdfjrLK3wLOQB9syWyFHDCsa+RiddSVjr1ZQJkPFhfKw==} peerDependencies: - '@goat-sdk/core': 0.3.14 + '@goat-sdk/core': 0.4.0 viem: 2.21.49 - '@goat-sdk/plugin-erc20@0.1.7': - resolution: {integrity: sha512-UDd6pXIBmpCWW7QIFxM5rJPta4tWqkys8P1sAt1kqabAndx+GaczhNUPwSdV1MH77BNtcyGZ6+HoeirskiV//Q==} - engines: {node: '>=20.12.2 <21', npm: please-use-pnpm, pnpm: '>=9', yarn: please-use-pnpm} + '@goat-sdk/wallet-evm@0.2.0': + resolution: {integrity: sha512-w/sWi7WHsTz8G+jNWI0xJ+l4wWOVFrSxh7PHfYOEZQyFexOioEdEG5QGYkgYT3/VoYApsx9G1H8itKxs1Mg5Mw==} peerDependencies: - '@goat-sdk/core': 0.3.8 - viem: ^2.21.49 + '@goat-sdk/core': 0.4.0 - '@goat-sdk/wallet-viem@0.1.3': - resolution: {integrity: sha512-2uofsH/dVmeJk/4V2/tJ1rDk6/ZFQlthUO50tg366hjq0vjINJXMQqYGwSLnv5Z3PMmdfPCSd5xikFEfA+1ZZw==} - engines: {node: '>=20.12.2 <21', npm: please-use-pnpm, pnpm: '>=9', yarn: please-use-pnpm} + '@goat-sdk/wallet-viem@0.2.0': + resolution: {integrity: sha512-x9FTUg9/ZhJyx8tQMAuIGmoFfRkmyDge78yvd9CTK6SQTiYQ/Hio7rAmHjLE95lElXb6EumZu7R0IlX3m/SGSw==} peerDependencies: - '@goat-sdk/core': 0.3.4 - viem: ^2.21.49 + '@goat-sdk/wallet-evm': 0.2.0 + viem: 2.21.49 '@google-cloud/vertexai@1.9.2': resolution: {integrity: sha512-pJSUG3r5QIvCFNfkz7/y7kEqvEJaVAk0jZbZoKbcPCRUnXaUeAq7p8I0oklqetGyxbUcZ2FOGpt+Y+4uIltVPg==} @@ -5131,8 +5140,8 @@ packages: '@kwsites/promise-deferred@1.1.1': resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - '@langchain/core@0.3.26': - resolution: {integrity: sha512-6RUQHEp8wv+JwtYIIEBYBzbLlcAQZFc7EDOgAM0ukExjh9HiXoJzoWpgMRRCrr/koIbtwXPJUqBprZK1I1CXHQ==} + '@langchain/core@0.3.27': + resolution: {integrity: sha512-jtJKbJWB1NPU1YvtrExOB2rumvUFgkJwlWGxyjSIV9A6zcLVmUbcZGV8fCSuXgl5bbzOIQLJ1xcLYQmbW9TkTg==} engines: {node: '>=18'} '@langchain/openai@0.3.16': @@ -5516,8 +5525,8 @@ packages: '@nestjs/websockets': optional: true - '@neynar/nodejs-sdk@2.6.1': - resolution: {integrity: sha512-5J0tGTO/Oq7wdOW0IW1ZN9qgqmD5RIu4Ang0wokW/HAFexLkJ8tKyU4QrY8II0VIvReIR/8hWcKexo/EHzTcmQ==} + '@neynar/nodejs-sdk@2.7.0': + resolution: {integrity: sha512-V2pfo11sZNRPPu/Wbsakw81SEZYZNNJeStw2brgROXNmDg7eb5e83ftXOqHNRh6v3HvDmrYjlF++PDFu94M7YA==} engines: {node: '>=19.9.0'} '@noble/curves@1.2.0': @@ -5924,8 +5933,8 @@ packages: resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} engines: {node: '>= 18'} - '@octokit/endpoint@10.1.1': - resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} + '@octokit/endpoint@10.1.2': + resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==} engines: {node: '>= 18'} '@octokit/endpoint@7.0.6': @@ -5944,20 +5953,20 @@ packages: resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==} engines: {node: '>= 18'} - '@octokit/graphql@8.1.1': - resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} + '@octokit/graphql@8.1.2': + resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==} engines: {node: '>= 18'} - '@octokit/oauth-app@7.1.3': - resolution: {integrity: sha512-EHXbOpBkSGVVGF1W+NLMmsnSsJRkcrnVmDKt0TQYRBb6xWfWzoi9sBD4DIqZ8jGhOWO/V8t4fqFyJ4vDQDn9bg==} + '@octokit/oauth-app@7.1.4': + resolution: {integrity: sha512-Au4zSGsWOZtShLxVUXcZ9TZJVQjpEK/OW2L1SWLE030QVYaZ+69TP4vHBdXakZUifvOELD1VBYEY6eprPcY2Mg==} engines: {node: '>= 18'} '@octokit/oauth-authorization-url@7.1.1': resolution: {integrity: sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA==} engines: {node: '>= 18'} - '@octokit/oauth-methods@5.1.2': - resolution: {integrity: sha512-C5lglRD+sBlbrhCUTxgJAFjWgJlmTx5bQ7Ch0+2uqRjYv7Cfb5xpX4WuSC9UgQna3sqRGBL9EImX9PvTpMaQ7g==} + '@octokit/oauth-methods@5.1.3': + resolution: {integrity: sha512-M+bDBi5H8FnH0xhCTg0m9hvcnppdDnxUqbZyOkxlLblKpLAR+eT2nbDPvJDp0eLrvJWA1I8OX0KHf/sBMQARRA==} engines: {node: '>= 18'} '@octokit/openapi-types@18.1.1': @@ -6048,8 +6057,8 @@ packages: resolution: {integrity: sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==} engines: {node: '>= 18'} - '@octokit/request-error@6.1.5': - resolution: {integrity: sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==} + '@octokit/request-error@6.1.6': + resolution: {integrity: sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==} engines: {node: '>= 18'} '@octokit/request@6.2.8': @@ -6060,8 +6069,8 @@ packages: resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==} engines: {node: '>= 18'} - '@octokit/request@9.1.3': - resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} + '@octokit/request@9.1.4': + resolution: {integrity: sha512-tMbOwGm6wDII6vygP3wUVqFTw3Aoo0FnVQyhihh8vVq12uO3P+vQZeo2CKMpWtPSogpACD0yyZAlVlQnjW71DA==} engines: {node: '>= 18'} '@octokit/rest@19.0.11': @@ -6229,12 +6238,6 @@ packages: cpu: [x64] os: [linux] - '@parcel/watcher-wasm@2.5.0': - resolution: {integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - '@parcel/watcher-win32-arm64@2.5.0': resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} engines: {node: '>= 10.0.0'} @@ -6694,6 +6697,34 @@ packages: '@remusao/trie@1.5.0': resolution: {integrity: sha512-UX+3utJKgwCsg6sUozjxd38gNMVRXrY4TNX9VvCdSrlZBS1nZjRPi98ON3QjRAdf6KCguJFyQARRsulTeqQiPg==} + '@roamhq/wrtc-darwin-arm64@0.8.0': + resolution: {integrity: sha512-OtV2KWO7zOG3L8TF3KCt9aucynVCD/ww2xeXXgg+FLkya3ca0uzehN8EQJ3BL4tkInksbFJ2ssyu9cehfJ3ZuA==} + cpu: [arm64] + os: [darwin] + + '@roamhq/wrtc-darwin-x64@0.8.0': + resolution: {integrity: sha512-VY7Vzt/SDDDCpW//h8GW9bOZrOr8gWXPZVD9473ypl4jyBIoO57yyLbHzd1G0vBUkS6szsHlQCz1WwpI30YL+g==} + cpu: [x64] + os: [darwin] + + '@roamhq/wrtc-linux-arm64@0.8.1': + resolution: {integrity: sha512-FBJLLazlWkGQUXaokC/rTbrUQbb0CNFYry52fZGstufrGLTWu+g4HcwXdVvxh1tnVtVMvkQGk+mlOL52sCxw0A==} + cpu: [arm64] + os: [linux] + + '@roamhq/wrtc-linux-x64@0.8.1': + resolution: {integrity: sha512-I9oWG7b4uvWO1IOR/aF34n+ID6TKVuSs0jd19h5KdhfRtw7FFh9xxuwN9rONPxLVa6fS0q+MCZgAf8Scz89L8Q==} + cpu: [x64] + os: [linux] + + '@roamhq/wrtc-win32-x64@0.8.0': + resolution: {integrity: sha512-R2fxl41BLWPiP4eaTHGLzbbVvRjx1mV/OsgINCvawO7Hwz5Zx9I45+Fhrw3hd4n5amIeSG9VIF7Kz8eeTFXTGQ==} + cpu: [x64] + os: [win32] + + '@roamhq/wrtc@0.8.0': + resolution: {integrity: sha512-C0V/nqc4/2xzORI5qa4mIeN/8UO3ywN1kInrJ9u6GljFx0D18JMUJEqe8yYHa61RrEeoWN3PKdW++k8TocSx/A==} + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -6954,17 +6985,23 @@ packages: resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} engines: {node: '>=6'} - '@shikijs/core@1.24.4': - resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==} + '@shikijs/core@1.25.1': + resolution: {integrity: sha512-0j5k3ZkLTQViOuNzPVyWGoW1zgH3kiFdUT/JOCkTm7TU74mz+dF+NID+YoiCBzHQxgsDpcGYPjKDJRcuVLSt4A==} - '@shikijs/engine-javascript@1.24.4': - resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==} + '@shikijs/engine-javascript@1.25.1': + resolution: {integrity: sha512-zQ7UWKnRCfD/Q1M+XOSyjsbhpE0qv8LUnmn82HYCeOsgAHgUZGEDIQ63bbuK3kU5sQg+2CtI+dPfOqD/mjSY9w==} - '@shikijs/engine-oniguruma@1.24.4': - resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==} + '@shikijs/engine-oniguruma@1.25.1': + resolution: {integrity: sha512-iKPMh3H+0USHtWfZ1irfMTH6tGmIUFSnqt3E2K8BgI1VEsqiPh0RYkG2WTwzNiM1/WHN4FzYx/nrKR7PDHiRyw==} - '@shikijs/types@1.24.4': - resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==} + '@shikijs/langs@1.25.1': + resolution: {integrity: sha512-hdYjq9aRJplAzGe2qF51PR9IDgEoyGb4IkXvr3Ts6lEdg4Z8M/kdknKRo2EIuv3IR/aKkJXTlBQRM+wr3t20Ew==} + + '@shikijs/themes@1.25.1': + resolution: {integrity: sha512-JO0lDn4LgGqg5QKvgich5ScUmC2okK+LxM9a3iLUH7YMeI2c8UGXThuJv6sZduS7pdJbYQHPrvWq9t/V4GhpbQ==} + + '@shikijs/types@1.25.1': + resolution: {integrity: sha512-dceqFUoO95eY4tpOj3OGq8wE8EgJ4ey6Me1HQEu5UbwIYszFndEll/bjlB8Kp9wl4fx3uM7n4+y9XCYuDBmcXA==} '@shikijs/vscode-textmate@9.3.1': resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} @@ -7553,68 +7590,68 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} - '@swc/core-darwin-arm64@1.10.1': - resolution: {integrity: sha512-NyELPp8EsVZtxH/mEqvzSyWpfPJ1lugpTQcSlMduZLj1EASLO4sC8wt8hmL1aizRlsbjCX+r0PyL+l0xQ64/6Q==} + '@swc/core-darwin-arm64@1.10.4': + resolution: {integrity: sha512-sV/eurLhkjn/197y48bxKP19oqcLydSel42Qsy2zepBltqUx+/zZ8+/IS0Bi7kaWVFxerbW1IPB09uq8Zuvm3g==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.1': - resolution: {integrity: sha512-L4BNt1fdQ5ZZhAk5qoDfUnXRabDOXKnXBxMDJ+PWLSxOGBbWE6aJTnu4zbGjJvtot0KM46m2LPAPY8ttknqaZA==} + '@swc/core-darwin-x64@1.10.4': + resolution: {integrity: sha512-gjYNU6vrAUO4+FuovEo9ofnVosTFXkF0VDuo1MKPItz6e2pxc2ale4FGzLw0Nf7JB1sX4a8h06CN16/pLJ8Q2w==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.1': - resolution: {integrity: sha512-Y1u9OqCHgvVp2tYQAJ7hcU9qO5brDMIrA5R31rwWQIAKDkJKtv3IlTHF0hrbWk1wPR0ZdngkQSJZple7G+Grvw==} + '@swc/core-linux-arm-gnueabihf@1.10.4': + resolution: {integrity: sha512-zd7fXH5w8s+Sfvn2oO464KDWl+ZX1MJiVmE4Pdk46N3PEaNwE0koTfgx2vQRqRG4vBBobzVvzICC3618WcefOA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.1': - resolution: {integrity: sha512-tNQHO/UKdtnqjc7o04iRXng1wTUXPgVd8Y6LI4qIbHVoVPwksZydISjMcilKNLKIwOoUQAkxyJ16SlOAeADzhQ==} + '@swc/core-linux-arm64-gnu@1.10.4': + resolution: {integrity: sha512-+UGfoHDxsMZgFD3tABKLeEZHqLNOkxStu+qCG7atGBhS4Slri6h6zijVvf4yI5X3kbXdvc44XV/hrP/Klnui2A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.1': - resolution: {integrity: sha512-x0L2Pd9weQ6n8dI1z1Isq00VHFvpBClwQJvrt3NHzmR+1wCT/gcYl1tp9P5xHh3ldM8Cn4UjWCw+7PaUgg8FcQ==} + '@swc/core-linux-arm64-musl@1.10.4': + resolution: {integrity: sha512-cDDj2/uYsOH0pgAnDkovLZvKJpFmBMyXkxEG6Q4yw99HbzO6QzZ5HDGWGWVq/6dLgYKlnnmpjZCPPQIu01mXEg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.1': - resolution: {integrity: sha512-yyYEwQcObV3AUsC79rSzN9z6kiWxKAVJ6Ntwq2N9YoZqSPYph+4/Am5fM1xEQYf/kb99csj0FgOelomJSobxQA==} + '@swc/core-linux-x64-gnu@1.10.4': + resolution: {integrity: sha512-qJXh9D6Kf5xSdGWPINpLGixAbB5JX8JcbEJpRamhlDBoOcQC79dYfOMEIxWPhTS1DGLyFakAx2FX/b2VmQmj0g==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.1': - resolution: {integrity: sha512-tcaS43Ydd7Fk7sW5ROpaf2Kq1zR+sI5K0RM+0qYLYYurvsJruj3GhBCaiN3gkzd8m/8wkqNqtVklWaQYSDsyqA==} + '@swc/core-linux-x64-musl@1.10.4': + resolution: {integrity: sha512-A76lIAeyQnHCVt0RL/pG+0er8Qk9+acGJqSZOZm67Ve3B0oqMd871kPtaHBM0BW3OZAhoILgfHW3Op9Q3mx3Cw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.1': - resolution: {integrity: sha512-D3Qo1voA7AkbOzQ2UGuKNHfYGKL6eejN8VWOoQYtGHHQi1p5KK/Q7V1ku55oxXBsj79Ny5FRMqiRJpVGad7bjQ==} + '@swc/core-win32-arm64-msvc@1.10.4': + resolution: {integrity: sha512-e6j5kBu4fIY7fFxFxnZI0MlEovRvp50Lg59Fw+DVbtqHk3C85dckcy5xKP+UoXeuEmFceauQDczUcGs19SRGSQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.1': - resolution: {integrity: sha512-WalYdFoU3454Og+sDKHM1MrjvxUGwA2oralknXkXL8S0I/8RkWZOB++p3pLaGbTvOO++T+6znFbQdR8KRaa7DA==} + '@swc/core-win32-ia32-msvc@1.10.4': + resolution: {integrity: sha512-RSYHfdKgNXV/amY5Tqk1EWVsyQnhlsM//jeqMLw5Fy9rfxP592W9UTumNikNRPdjI8wKKzNMXDb1U29tQjN0dg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.1': - resolution: {integrity: sha512-JWobfQDbTnoqaIwPKQ3DVSywihVXlQMbDuwik/dDWlj33A8oEHcjPOGs4OqcA3RHv24i+lfCQpM3Mn4FAMfacA==} + '@swc/core-win32-x64-msvc@1.10.4': + resolution: {integrity: sha512-1ujYpaqfqNPYdwKBlvJnOqcl+Syn3UrQ4XE0Txz6zMYgyh6cdU6a3pxqLqIUSJ12MtXRA9ZUhEz1ekU3LfLWXw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.1': - resolution: {integrity: sha512-rQ4dS6GAdmtzKiCRt3LFVxl37FaY1cgL9kSUTnhQ2xc3fmHOd7jdJK/V4pSZMG1ruGTd0bsi34O2R0Olg9Zo/w==} + '@swc/core@1.10.4': + resolution: {integrity: sha512-ut3zfiTLORMxhr6y/GBxkHmzcGuVpwJYX4qyXWuBKkpw/0g0S5iO1/wW7RnLnZbAi8wS/n0atRZoaZlXWBkeJg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -7647,6 +7684,9 @@ packages: peerDependencies: react: ^18 || ^19 + '@tavily/core@0.0.2': + resolution: {integrity: sha512-UabYbp57bdjEloA4efW9zTSzv+FZp13JVDHcfutUNR5XUZ+aDGupe2wpfABECnD+b7Ojp9v9zguZcm1o+h0//w==} + '@telegraf/types@7.1.0': resolution: {integrity: sha512-kGevOIbpMcIlCDeorKGpwZmdH7kHbqlk/Yj6dEpJMKEQw5lk0KVQY0OLXaCswy8GqlIVLd5625OB+rAntP9xVw==} @@ -7876,8 +7916,8 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.0.2': - resolution: {integrity: sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==} + '@types/express-serve-static-core@5.0.3': + resolution: {integrity: sha512-JEhMNwUJt7bw728CydvYzntD0XJeTmDnvwLlbfbAhE7Tbslm/ax6bdIiUwTgeVlZTsJQPwZwKpAkyDtIjsvx3g==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -8015,14 +8055,14 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@18.19.68': - resolution: {integrity: sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==} + '@types/node@18.19.69': + resolution: {integrity: sha512-ECPdY1nlaiO/Y6GUnwgtAAhLNaQ53AyIVz+eILxpEo5OvuqE6yWkqWBIb5dU0DqhKQtMeny+FBD3PK6lm7L5xQ==} '@types/node@20.17.9': resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} - '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@22.10.3': + resolution: {integrity: sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -8706,8 +8746,11 @@ packages: agent-twitter-client@0.0.17: resolution: {integrity: sha512-IxLtNyy+fHmh5uHcaybcfXYkvPMP2h7y79sV2N6JpoAY40GKcy60iey6lsL7NO506MnnYDaqlG1JHMjqbfrOxA==} - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + agent-twitter-client@0.0.18: + resolution: {integrity: sha512-HncH5mlFcGYLEl5wNEkwtdolcmdxqEMIsqO4kTqiTp5P19O25Zr4P6LNJZz1UTjPRyXDxj+BLmmk/Ou7O0QzEg==} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} aggregate-error@3.1.0: @@ -9436,8 +9479,8 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bufferutil@4.0.8: - resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + bufferutil@4.0.9: + resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} engines: {node: '>=6.14.2'} builtin-modules@3.3.0: @@ -9777,10 +9820,6 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} - clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -9998,8 +10037,8 @@ packages: consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - consola@3.3.1: - resolution: {integrity: sha512-GyKnPG3/I+a4RtJxgHquJXWr70g9I3c4NT3dvqh0LPHQP2nZFQBOBszb7a5u/pGzqr40AKplQA6UxM1BSynSXg==} + consola@3.3.3: + resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} engines: {node: ^14.18.0 || >=16.10.0} console-browserify@1.2.0: @@ -10880,6 +10919,9 @@ packages: discord-api-types@0.37.100: resolution: {integrity: sha512-a8zvUI0GYYwDtScfRd/TtaNBDTXwP5DiDVX7K5OmE+DRT57gBqKnwtOC5Ol8z0mRW8KQfETIgiB8U0YZ9NXiCA==} + discord-api-types@0.37.114: + resolution: {integrity: sha512-9b9oOpktWSmE6ooToc46wfw151SHC/+idmnZvtwpEzW85BijUspQxj4W2uOmo+nZVTdEyb3fku58k+4rHKpdSQ==} + discord-api-types@0.37.83: resolution: {integrity: sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==} @@ -10930,6 +10972,11 @@ packages: domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} @@ -10944,8 +10991,8 @@ packages: domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.1: + resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -11130,8 +11177,8 @@ packages: error-polyfill@0.1.3: resolution: {integrity: sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==} - es-abstract@1.23.7: - resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==} + es-abstract@1.23.8: + resolution: {integrity: sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -11142,15 +11189,15 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} es-to-primitive@1.3.0: @@ -11525,6 +11572,9 @@ packages: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} + fast-content-type-parse@2.0.0: + resolution: {integrity: sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -11938,9 +11988,6 @@ packages: engines: {node: '>=6.9.0'} hasBin: true - get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} @@ -12479,10 +12526,6 @@ packages: http-response-object@3.0.2: resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} - http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -12786,11 +12829,6 @@ packages: engines: {node: '>=8'} hasBin: true - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - is-electron@2.2.2: resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} @@ -12837,11 +12875,6 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -13042,18 +13075,10 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - is-yarn-global@0.4.1: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} engines: {node: '>=12'} - is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -13493,8 +13518,8 @@ packages: resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} engines: {node: '>=18'} - katex@0.16.18: - resolution: {integrity: sha512-LRuk0rPdXrecAFwQucYjMiIs0JFefk6N1q/04mlw14aVIVgxq1FO0MA9RiIIGVaKOB5GIP5GH4aBBNraZERmaQ==} + katex@0.16.19: + resolution: {integrity: sha512-3IA6DYVhxhBabjSLTNO9S4+OliA3Qvb8pBQXMfC4WxXJgLwZgnfDl0BmB4z6nBMdznBsZ+CGM8DrGZ5hcguDZg==} hasBin: true keccak@3.0.2: @@ -13592,8 +13617,8 @@ packages: resolution: {integrity: sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==} engines: {node: '>=16.0.0'} - langsmith@0.2.13: - resolution: {integrity: sha512-16EOM5nhU6GlMCKGm5sgBIAKOKzS2d30qcDZmF21kSLZJiUhUNTROwvYdqgZLrGfIIzmSMJHCKA7RFd5qf50uw==} + langsmith@0.2.14: + resolution: {integrity: sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==} peerDependencies: openai: '*' peerDependenciesMeta: @@ -13658,8 +13683,8 @@ packages: lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - lifecycle-utils@1.7.1: - resolution: {integrity: sha512-zK0R8Ap4XLDR1RBMR5IdYz416/rMQNURLOowRkGChS7RZrhqHq+lx16Mky2b70Q0tdE+tlIDmWJzuMP8BOhZNg==} + lifecycle-utils@1.7.3: + resolution: {integrity: sha512-T7zs7J6/sgsqwVyG34Sfo5LTQmlPmmqaUe3yBhdF8nq24RtR/HtbkNZRhNbr9BEaKySdSgH+P9H5U9X+p0WjXw==} lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -13684,10 +13709,6 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - listhen@1.9.0: - resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} - hasBin: true - listr2@8.2.5: resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} @@ -14912,8 +14933,8 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - octokit@4.0.2: - resolution: {integrity: sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==} + octokit@4.0.3: + resolution: {integrity: sha512-kfqH80Yuuux4fLbZ4SvObjCvVu89U0eCh5+fulh6tr/hJkDYS1inXDGnNJDOp312GANMEhWWMLYmjQR8MvSSMQ==} engines: {node: '>= 18'} ofetch@1.4.1: @@ -14960,8 +14981,8 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - oniguruma-to-es@0.8.1: - resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} + oniguruma-to-es@0.10.0: + resolution: {integrity: sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==} only-allow@1.2.1: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} @@ -15041,6 +15062,10 @@ packages: otpauth@9.3.6: resolution: {integrity: sha512-eIcCvuEvcAAPHxUKC9Q4uCe0Fh/yRc5jv9z+f/kvyIF2LPrhgAOuLB7J9CssGYhND/BL8M9hlHBTFmffpoQlMQ==} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + ox@0.1.2: resolution: {integrity: sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==} peerDependencies: @@ -15049,6 +15074,14 @@ packages: typescript: optional: true + ox@0.4.4: + resolution: {integrity: sha512-oJPEeCDs9iNiPs6J0rTx+Y0KGeCGyCAA3zo94yZhm8G5WpOxrwUtn2Ie/Y8IyARSqqY/j9JTKA3Fc1xs1DvFnw==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -15463,8 +15496,8 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pkg-types@1.2.1: - resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + pkg-types@1.3.0: + resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} @@ -15571,8 +15604,8 @@ packages: peerDependencies: postcss: ^8.0.0 - postcss-color-functional-notation@7.0.6: - resolution: {integrity: sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==} + postcss-color-functional-notation@7.0.7: + resolution: {integrity: sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -15738,8 +15771,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.6: - resolution: {integrity: sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==} + postcss-lab-function@7.0.7: + resolution: {integrity: sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -16059,8 +16092,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.1.2: - resolution: {integrity: sha512-OqUBZ9ByVfngWhMNuBEMy52Izj07oIFA6K/EOGBlaSv+P12MiE1+S2cqXtS1VuW82demQ/Tzc7typYk3uHunkA==} + postcss-preset-env@10.1.3: + resolution: {integrity: sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -16204,8 +16237,8 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} - preact@10.25.3: - resolution: {integrity: sha512-dzQmIFtM970z+fP9ziQ3yG4e3ULIbwZzJ734vaMVUTaKQ2+Ru1Ou/gjshOYVHCcd1rpAelC6ngjvjDXph98unQ==} + preact@10.25.4: + resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} @@ -16807,14 +16840,14 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex-recursion@5.0.0: - resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==} + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.0.2: - resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} @@ -17081,6 +17114,10 @@ packages: safe-compare@1.1.4: resolution: {integrity: sha512-b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -17294,8 +17331,8 @@ packages: engines: {node: '>=4'} hasBin: true - shiki@1.24.4: - resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==} + shiki@1.25.1: + resolution: {integrity: sha512-/1boRvNYwRW3GLG9Y6dXdnZ/Ha+J5T/5y3hV7TGQUcDSBM185D3FCbXlz2eTGNKG2iWCbWqo+P0yhGKZ4/CUrw==} shimmer@1.2.1: resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} @@ -17797,8 +17834,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte@5.15.0: - resolution: {integrity: sha512-YWl8rAd4hSjERLtLvP6h2pflGtmrJwv+L12BgrOtHYJCpvLS9WKp/YNAdyolw3FymXtcYZqhSWvWlu5O1X7tgQ==} + svelte@5.16.0: + resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==} engines: {node: '>=18'} svg-parser@2.0.4: @@ -17831,10 +17868,6 @@ packages: syntax-error@1.4.0: resolution: {integrity: sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==} - system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - systeminformation@5.23.5: resolution: {integrity: sha512-PEpJwhRYxZgBCAlWZhWIgfMTjXLqfcaZ1pJsJn9snWNfBW/Z1YQg1mbIUSWrEV3ErAHF7l/OoVLQeaZDlPzkpA==} engines: {node: '>=8.0.0'} @@ -18000,8 +18033,8 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} tinyglobby@0.2.10: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} @@ -18028,14 +18061,14 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.69: - resolution: {integrity: sha512-nygxy9n2PBUFQUtAXAc122gGo+04/j5qr5TGQFZTHafTKYvmARVXt2cA5rgero2/dnXUfkdPtiJoKmrd3T+wdA==} + tldts-core@6.1.70: + resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==} - tldts-experimental@6.1.69: - resolution: {integrity: sha512-jGDSR7uQvdb4J3xIOwju2SqIuCORDmSlocxT/ryVl3McVecFc63SHALhNcYgJnw1xhj1gqogkhO/4HadLOKoXA==} + tldts-experimental@6.1.70: + resolution: {integrity: sha512-cEhsyUBfW/elb1FpPAfnqqTa0Av9OJlcG9Nabiuqn8/1Xggpqch7H8QfZA55SNHonj1x1uRB/NzRETvCiQqz5Q==} - tldts@6.1.69: - resolution: {integrity: sha512-Oh/CqRQ1NXNY7cy9NkTPUauOWiTro0jEYZTioGbOmcQh6EC45oribyIMJp0OJO3677r13tO6SKdWoGZUx2BDFw==} + tldts@6.1.70: + resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==} hasBin: true tmp@0.0.33: @@ -18308,8 +18341,8 @@ packages: tweetnacl@1.0.3: resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - twitter-api-v2@1.18.2: - resolution: {integrity: sha512-ggImmoAeVgETYqrWeZy+nWnDpwgTP+IvFEc03Pitt1HcgMX+Yw17rP38Fb5FFTinuyNvS07EPtAfZ184uIyB0A==} + twitter-api-v2@1.19.0: + resolution: {integrity: sha512-jfG4aapNPM9+4VxNxn0TXvD8Qj8NmVx6cY0hp5K626uZ41qXPaJz33Djd3y6gfHF/+W29+iZz0Y5qB869d/akA==} tx2@1.0.5: resolution: {integrity: sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==} @@ -18632,8 +18665,8 @@ packages: peerDependencies: starknet: '>=5.0.0' - unstorage@1.14.1: - resolution: {integrity: sha512-0MBKpoVhNLL/Ixvue9lIsrHkwwWW9/f3TRftsYu1R7nZJJyHSdgPMBDjny2op07nirnS3OX6H3u+YDFGld+1Bg==} + unstorage@1.14.4: + resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} peerDependencies: '@azure/app-configuration': ^1.8.0 '@azure/cosmos': ^4.2.0 @@ -18651,7 +18684,7 @@ packages: aws4fetch: ^1.0.20 db0: '>=0.2.1' idb-keyval: ^6.2.1 - ioredis: ^5.4.1 + ioredis: ^5.4.2 uploadthing: ^7.4.1 peerDependenciesMeta: '@azure/app-configuration': @@ -18691,10 +18724,6 @@ packages: uploadthing: optional: true - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - untyped@1.5.2: resolution: {integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==} hasBin: true @@ -18713,9 +18742,6 @@ packages: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -18908,8 +18934,8 @@ packages: typescript: optional: true - viem@2.21.54: - resolution: {integrity: sha512-G9mmtbua3UtnVY9BqAtWdNp+3AO+oWhD0B9KaEsZb6gcrOWgmA4rz02yqEMg+qW9m6KgKGie7q3zcHqJIw6AqA==} + viem@2.21.58: + resolution: {integrity: sha512-mGVKlu3ici7SueEQatn44I7KePP8Nwb5JUjZaQOciWxWHCFP/WLyjdZDIK09qyaozHNTH/t78K3ptXCe+AnMuQ==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -19509,8 +19535,8 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -19594,12 +19620,12 @@ packages: snapshots: - '@0glabs/0g-ts-sdk@0.2.1(bufferutil@4.0.8)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + '@0glabs/0g-ts-sdk@0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/keccak256': 5.7.0 - ethers: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) - open-jsonrpc-provider: 0.2.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + open-jsonrpc-provider: 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - debug @@ -19715,13 +19741,13 @@ snapshots: transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.57(svelte@5.15.0)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.57(svelte@5.16.0)(zod@3.23.8)': dependencies: '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) - sswr: 2.1.0(svelte@5.15.0) + sswr: 2.1.0(svelte@5.16.0) optionalDependencies: - svelte: 5.15.0 + svelte: 5.16.0 transitivePeerDependencies: - zod @@ -19938,16 +19964,16 @@ snapshots: '@antfu/install-pkg@0.4.1': dependencies: package-manager-detector: 0.2.8 - tinyexec: 0.3.1 + tinyexec: 0.3.2 '@antfu/utils@0.7.10': {} '@anthropic-ai/sdk@0.30.1(encoding@0.1.13)': dependencies: - '@types/node': 18.19.68 + '@types/node': 18.19.69 '@types/node-fetch': 2.6.12 abort-controller: 3.0.0 - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.13) @@ -19996,9 +20022,9 @@ snapshots: transitivePeerDependencies: - debug - '@avnu/avnu-sdk@2.1.1(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13))': + '@avnu/avnu-sdk@2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13))': dependencies: - ethers: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) qs: 6.13.1 starknet: 6.18.0(encoding@0.1.13) @@ -21488,13 +21514,13 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bigmi/core@0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3))(bs58@6.0.0)(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@bigmi/core@0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3))(bs58@6.0.0)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: '@noble/hashes': 1.6.1 bech32: 2.0.0 bitcoinjs-lib: 7.0.0-rc.0(typescript@5.6.3) bs58: 6.0.0 - viem: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) '@braintree/sanitize-url@7.1.1': {} @@ -21528,7 +21554,7 @@ snapshots: '@cliqz/adblocker': 1.34.0 '@cliqz/adblocker-content': 1.34.0 playwright: 1.48.2 - tldts-experimental: 6.1.69 + tldts-experimental: 6.1.70 '@cliqz/adblocker@1.34.0': dependencies: @@ -21539,7 +21565,7 @@ snapshots: '@remusao/smaz': 1.10.0 '@types/chrome': 0.0.278 '@types/firefox-webext-browser': 120.0.4 - tldts-experimental: 6.1.69 + tldts-experimental: 6.1.70 '@coinbase-samples/advanced-sdk-ts@file:packages/plugin-coinbase/advanced-sdk-ts(encoding@0.1.13)': dependencies: @@ -21548,7 +21574,7 @@ snapshots: transitivePeerDependencies: - encoding - '@coinbase/coinbase-sdk@0.10.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@coinbase/coinbase-sdk@0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: '@scure/bip32': 1.6.0 abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8) @@ -21559,10 +21585,10 @@ snapshots: bip39: 3.1.0 decimal.js: 10.4.3 dotenv: 16.4.7 - ethers: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) node-jose: 2.2.0 secp256k1: 5.0.1 - viem: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - bufferutil - debug @@ -21573,11 +21599,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@18.6.1(@types/node@22.10.2)(typescript@5.6.3)': + '@commitlint/cli@18.6.1(@types/node@22.10.3)(typescript@5.6.3)': dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@22.10.2)(typescript@5.6.3) + '@commitlint/load': 18.6.1(@types/node@22.10.3)(typescript@5.6.3) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -21627,7 +21653,7 @@ snapshots: '@commitlint/rules': 18.6.1 '@commitlint/types': 18.6.1 - '@commitlint/load@18.6.1(@types/node@22.10.2)(typescript@5.6.3)': + '@commitlint/load@18.6.1(@types/node@22.10.3)(typescript@5.6.3)': dependencies: '@commitlint/config-validator': 18.6.1 '@commitlint/execute-rule': 18.6.1 @@ -21635,7 +21661,7 @@ snapshots: '@commitlint/types': 18.6.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.6.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.2)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.3)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -21688,11 +21714,11 @@ snapshots: '@coral-xyz/anchor-errors@0.30.1': {} - '@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: - '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@noble/hashes': 1.6.1 - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bn.js: 5.2.1 bs58: 4.0.1 buffer-layout: 1.2.2 @@ -21709,12 +21735,12 @@ snapshots: - encoding - utf-8-validate - '@coral-xyz/anchor@0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@coral-xyz/anchor@0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor-errors': 0.30.1 - '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@noble/hashes': 1.6.1 - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bn.js: 5.2.1 bs58: 4.0.1 buffer-layout: 1.2.2 @@ -21731,15 +21757,15 @@ snapshots: - encoding - utf-8-validate - '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bn.js: 5.2.1 buffer-layout: 1.2.2 - '@coral-xyz/borsh@0.30.1(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@coral-xyz/borsh@0.30.1(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bn.js: 5.2.1 buffer-layout: 1.2.2 @@ -21754,15 +21780,15 @@ snapshots: '@csstools/color-helpers@5.0.1': {} - '@csstools/css-calc@2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-color-parser@3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 @@ -21783,18 +21809,18 @@ snapshots: postcss: 8.4.49 postcss-selector-parser: 7.0.0 - '@csstools/postcss-color-function@4.0.6(postcss@8.4.49)': + '@csstools/postcss-color-function@4.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) '@csstools/utilities': 2.0.0(postcss@8.4.49) postcss: 8.4.49 - '@csstools/postcss-color-mix-function@3.0.6(postcss@8.4.49)': + '@csstools/postcss-color-mix-function@3.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) @@ -21809,9 +21835,9 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.4.49) postcss: 8.4.49 - '@csstools/postcss-exponential-functions@2.0.5(postcss@8.4.49)': + '@csstools/postcss-exponential-functions@2.0.6(postcss@8.4.49)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.49 @@ -21822,25 +21848,25 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.6(postcss@8.4.49)': + '@csstools/postcss-gamut-mapping@2.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.49 - '@csstools/postcss-gradients-interpolation-method@5.0.6(postcss@8.4.49)': + '@csstools/postcss-gradients-interpolation-method@5.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) '@csstools/utilities': 2.0.0(postcss@8.4.49) postcss: 8.4.49 - '@csstools/postcss-hwb-function@4.0.6(postcss@8.4.49)': + '@csstools/postcss-hwb-function@4.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) @@ -21895,9 +21921,9 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.4.49) postcss: 8.4.49 - '@csstools/postcss-media-minmax@2.0.5(postcss@8.4.49)': + '@csstools/postcss-media-minmax@2.0.6(postcss@8.4.49)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -21921,9 +21947,9 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.6(postcss@8.4.49)': + '@csstools/postcss-oklab-function@4.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) @@ -21935,16 +21961,16 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@1.0.1(postcss@8.4.49)': + '@csstools/postcss-random-function@1.0.2(postcss@8.4.49)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.49 - '@csstools/postcss-relative-color-syntax@3.0.6(postcss@8.4.49)': + '@csstools/postcss-relative-color-syntax@3.0.7(postcss@8.4.49)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) @@ -21956,16 +21982,16 @@ snapshots: postcss: 8.4.49 postcss-selector-parser: 7.0.0 - '@csstools/postcss-sign-functions@1.1.0(postcss@8.4.49)': + '@csstools/postcss-sign-functions@1.1.1(postcss@8.4.49)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.49 - '@csstools/postcss-stepped-value-functions@4.0.5(postcss@8.4.49)': + '@csstools/postcss-stepped-value-functions@4.0.6(postcss@8.4.49)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.49 @@ -21976,9 +22002,9 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.5(postcss@8.4.49)': + '@csstools/postcss-trigonometric-functions@4.0.6(postcss@8.4.49)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.49 @@ -22003,14 +22029,14 @@ snapshots: dependencies: dayjs: 1.11.13 - '@deepgram/sdk@3.9.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@deepgram/sdk@3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@deepgram/captions': 1.2.0 - '@types/node': 18.19.68 + '@types/node': 18.19.69 cross-fetch: 3.2.0(encoding@0.1.13) deepmerge: 4.3.1 events: 3.3.0 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -22051,12 +22077,12 @@ snapshots: dependencies: '@noble/hashes': 1.6.1 - '@discordjs/builders@1.9.0': + '@discordjs/builders@1.10.0': dependencies: - '@discordjs/formatters': 0.5.0 + '@discordjs/formatters': 0.6.0 '@discordjs/util': 1.1.1 '@sapphire/shapeshift': 4.0.0 - discord-api-types: 0.37.97 + discord-api-types: 0.37.114 fast-deep-equal: 3.1.3 ts-mixer: 6.0.4 tslib: 2.8.1 @@ -22069,6 +22095,10 @@ snapshots: dependencies: discord-api-types: 0.37.97 + '@discordjs/formatters@0.6.0': + dependencies: + discord-api-types: 0.37.114 + '@discordjs/node-pre-gyp@0.4.5(encoding@0.1.13)': dependencies: detect-libc: 2.0.3 @@ -22106,13 +22136,13 @@ 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.9)(ffmpeg-static@5.2.0)(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) tslib: 2.8.1 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - '@discordjs/opus' - bufferutil @@ -22121,7 +22151,7 @@ snapshots: - opusscript - utf-8-validate - '@discordjs/ws@1.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@discordjs/ws@1.1.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@discordjs/collection': 2.1.1 '@discordjs/rest': 2.4.0 @@ -22131,7 +22161,7 @@ snapshots: '@vladfrangu/async_event_emitter': 2.4.6 discord-api-types: 0.37.83 tslib: 2.8.1 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -22154,7 +22184,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/babel@3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/babel@3.6.3(@swc/core@1.10.4(@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: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -22167,7 +22197,7 @@ snapshots: '@babel/runtime-corejs3': 7.26.0 '@babel/traverse': 7.26.4 '@docusaurus/logger': 3.6.3 - '@docusaurus/utils': 3.6.3(@swc/core@1.10.1)(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.10.4(@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) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.2.0 tslib: 2.8.1 @@ -22182,33 +22212,33 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/babel': 3.6.3(@swc/core@1.10.4(@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/cssnano-preset': 3.6.3 '@docusaurus/logger': 3.6.3 - '@docusaurus/types': 3.6.3(@swc/core@1.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.1)) + '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@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.10.4(@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) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.97.1(@swc/core@1.10.1)) - css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.10.1)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.1)) + copy-webpack-plugin: 11.0.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) cssnano: 6.1.2(postcss@8.4.49) - file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.1)) + file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.10.1)) - null-loader: 4.0.1(webpack@5.97.1(@swc/core@1.10.1)) + mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + null-loader: 4.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) postcss: 8.4.49 - postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)) - postcss-preset-env: 10.1.2(postcss@8.4.49) - react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)) - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1)(webpack@5.97.1(@swc/core@1.10.1)) + postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + postcss-preset-env: 10.1.3(postcss@8.4.49) + react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.1)))(webpack@5.97.1(@swc/core@1.10.1)) - webpack: 5.97.1(@swc/core@1.10.1) - webpackbar: 6.0.1(webpack@5.97.1(@swc/core@1.10.1)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) + webpackbar: 6.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -22227,15 +22257,15 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/babel': 3.6.3(@swc/core@1.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@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.10.4(@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.10.4(@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.10.4(@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) '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1) boxen: 6.2.1 chalk: 4.1.2 @@ -22251,17 +22281,17 @@ snapshots: eval: 0.1.8 fs-extra: 11.2.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.3(webpack@5.97.1(@swc/core@1.10.1)) + html-webpack-plugin: 5.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) leven: 3.1.0 lodash: 4.17.21 p-map: 4.0.0 prompts: 2.4.2 react: 18.3.1 - react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)) + react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@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)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.1)) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) react-router: 5.3.4(react@18.3.1) react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1) react-router-dom: 5.3.4(react@18.3.1) @@ -22271,9 +22301,9 @@ snapshots: shelljs: 0.8.5 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.97.1(@swc/core@1.10.1) - webpack-bundle-analyzer: 4.10.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.1)) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) + webpack-bundle-analyzer: 4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + webpack-dev-server: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) webpack-merge: 6.0.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -22307,26 +22337,26 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/lqip-loader@3.6.3(webpack@5.97.1(@swc/core@1.10.1))': + '@docusaurus/lqip-loader@3.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))': dependencies: '@docusaurus/logger': 3.6.3 - file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.1)) + file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) lodash: 4.17.21 sharp: 0.32.6 tslib: 2.8.1 transitivePeerDependencies: - webpack - '@docusaurus/mdx-loader@3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/mdx-loader@3.6.3(@swc/core@1.10.4(@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/logger': 3.6.3 - '@docusaurus/utils': 3.6.3(@swc/core@1.10.1)(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.10.1)(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.10.4(@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.10.4(@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) '@mdx-js/mdx': 3.1.0(acorn@8.14.0) '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.2.1 - file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.1)) + file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) fs-extra: 11.2.0 image-size: 1.2.0 mdast-util-mdx: 3.0.0 @@ -22342,9 +22372,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.1)))(webpack@5.97.1(@swc/core@1.10.1)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) vfile: 6.0.3 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@swc/core' - acorn @@ -22354,9 +22384,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/module-type-aliases@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/types': 3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@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 '@types/react': 18.3.12 '@types/react-router-config': 5.0.11 @@ -22373,17 +22403,17 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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.10.4(@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.10.4(@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.10.4(@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) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.2.0 @@ -22395,7 +22425,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -22417,17 +22447,17 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@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.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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.10.4(@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.10.4(@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.10.4(@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/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.2.0 @@ -22437,7 +22467,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -22459,18 +22489,18 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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.10.4(@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.10.4(@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 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -22492,11 +22522,11 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -22523,11 +22553,11 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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 react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 @@ -22552,11 +22582,11 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -22582,11 +22612,11 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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 react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 @@ -22611,21 +22641,21 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.97.1(@swc/core@1.10.1)) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6) '@docusaurus/theme-translations': 3.6.3 - '@docusaurus/types': 3.6.3(@swc/core@1.10.1)(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.10.1)(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.10.4(@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.10.4(@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) '@slorber/react-ideal-image': 0.0.12(prop-types@15.8.1)(react-waypoint@10.3.0(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-waypoint: 10.3.0(react@18.3.1) sharp: 0.32.6 tslib: 2.8.1 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -22648,14 +22678,14 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(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.10.1)(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.10.4(@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.10.4(@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.10.4(@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.10.4(@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 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -22682,21 +22712,21 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.1)(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.1)(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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) transitivePeerDependencies: @@ -22734,21 +22764,21 @@ snapshots: optionalDependencies: sharp: 0.32.6 - '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.1)(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@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.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.1)(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.10.1)(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.10.1)(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.10.1)(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.10.4(@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.10.4(@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.10.4(@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.10.4(@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) '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 copy-text-to-clipboard: 3.2.0 @@ -22785,13 +22815,13 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@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.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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 '@types/react': 18.3.12 '@types/react-router-config': 5.0.11 @@ -22811,13 +22841,13 @@ 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.1)(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.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.4(@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.10.4(@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 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -22844,16 +22874,16 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.1)(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.2(@algolia/client-search@5.18.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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@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.10.1)(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.10.1)(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.10.4(@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.10.4(@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) algoliasearch: 4.24.0 algoliasearch-helper: 3.22.6(algoliasearch@4.24.0) clsx: 2.1.1 @@ -22893,7 +22923,7 @@ snapshots: fs-extra: 11.2.0 tslib: 2.8.1 - '@docusaurus/types@3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/types@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.0) '@types/history': 4.7.11 @@ -22904,7 +22934,7 @@ snapshots: 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) utility-types: 3.11.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -22914,9 +22944,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/utils-common@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/types': 3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -22928,11 +22958,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.6.3(@swc/core@1.10.1)(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.10.4(@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/logger': 3.6.3 - '@docusaurus/utils': 3.6.3(@swc/core@1.10.1)(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.10.1)(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.10.4(@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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) fs-extra: 11.2.0 joi: 17.13.3 js-yaml: 4.1.0 @@ -22949,14 +22979,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.6.3(@swc/core@1.10.1)(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.10.4(@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/logger': 3.6.3 - '@docusaurus/types': 3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.1)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@svgr/webpack': 8.1.0(typescript@5.6.3) escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.1)) + file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) fs-extra: 11.2.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -22969,9 +22999,9 @@ snapshots: resolve-pathname: 3.0.0 shelljs: 0.8.5 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.1)))(webpack@5.97.1(@swc/core@1.10.1)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) utility-types: 3.11.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@swc/core' - acorn @@ -23014,7 +23044,7 @@ snapshots: '@huggingface/jinja': 0.2.2 onnxruntime-node: 1.20.1 - '@elizaos/core@0.1.7-alpha.2(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.15.0))(svelte@5.15.0)': + '@elizaos/core@0.1.7-alpha.2(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)': dependencies: '@ai-sdk/anthropic': 0.0.56(zod@3.23.8) '@ai-sdk/google': 0.0.55(zod@3.23.8) @@ -23024,7 +23054,7 @@ snapshots: '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13) '@fal-ai/client': 1.2.0 '@types/uuid': 10.0.0 - ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.15.0))(svelte@5.15.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8) fastembed: 1.14.1 fastestsmallesttextencoderdecoder: 1.0.22 @@ -23033,7 +23063,7 @@ snapshots: handlebars: 4.7.8 js-sha1: 0.7.0 js-tiktoken: 1.0.15 - langchain: 0.3.6(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + langchain: 0.3.6(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) ollama-ai-provider: 0.16.1(zod@3.23.8) openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) tinyld: 1.3.4 @@ -23571,7 +23601,7 @@ snapshots: dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -23592,7 +23622,7 @@ snapshots: '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.7.1 bech32: 1.1.4 - ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.4.6(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -23749,23 +23779,23 @@ snapshots: '@floating-ui/utils@0.2.8': {} - '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) type-fest: 4.31.0 transitivePeerDependencies: - vitest - '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 commander: 12.1.0 glob: 10.4.5 @@ -23776,18 +23806,18 @@ snapshots: transitivePeerDependencies: - vitest - '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 '@noble/curves': 1.7.0 @@ -23800,30 +23830,30 @@ snapshots: - encoding - vitest - '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@noble/hashes': 1.6.1 bech32: 2.0.0 transitivePeerDependencies: - vitest - '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 @@ -23831,12 +23861,12 @@ snapshots: - encoding - vitest - '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@noble/hashes': 1.6.1 transitivePeerDependencies: - vitest @@ -23845,11 +23875,11 @@ snapshots: dependencies: '@fuel-ts/versions': 0.97.2 - '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@noble/hashes': 1.6.1 transitivePeerDependencies: - vitest @@ -23862,78 +23892,78 @@ snapshots: '@types/bn.js': 5.1.6 bn.js: 5.2.1 - '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/math': 0.97.2 transitivePeerDependencies: - vitest - '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 transitivePeerDependencies: - encoding - vitest - '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) transitivePeerDependencies: - vitest - '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 '@fuel-ts/versions': 0.97.2 fflate: 0.8.2 - vitest: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + vitest: 2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) '@fuel-ts/versions@0.97.2': dependencies: @@ -23942,34 +23972,54 @@ snapshots: '@fuels/vm-asm@0.58.2': {} - '@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))': dependencies: - '@solana/web3.js': 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8) - viem: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@goat-sdk/core': 0.4.0 + ai: 3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + zod: 3.23.8 + + '@goat-sdk/core@0.4.0': + dependencies: + reflect-metadata: 0.2.2 + zod: 3.23.8 + + '@goat-sdk/plugin-erc20@0.2.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + dependencies: + '@goat-sdk/core': 0.4.0 + '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10) + viem: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) zod: 3.23.8 transitivePeerDependencies: - bufferutil - - encoding - typescript - utf-8-validate - '@goat-sdk/plugin-coingecko@0.1.4(@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@goat-sdk/plugin-kim@0.1.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: - '@goat-sdk/core': 0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) - viem: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@goat-sdk/core': 0.4.0 + '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10) + viem: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) zod: 3.23.8 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate - '@goat-sdk/plugin-erc20@0.1.7(@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@goat-sdk/core': 0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) - viem: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@goat-sdk/core': 0.4.0 + abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8) + viem: 2.21.49(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) zod: 3.23.8 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate - '@goat-sdk/wallet-viem@0.1.3(@goat-sdk/core@0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@goat-sdk/wallet-viem@0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: - '@goat-sdk/core': 0.3.8(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) - viem: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10) + viem: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) '@google-cloud/vertexai@1.9.2(encoding@0.1.13)': dependencies: @@ -24170,7 +24220,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -24184,7 +24234,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -24205,7 +24255,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -24219,7 +24269,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -24240,7 +24290,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -24254,7 +24304,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -24432,14 +24482,14 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} - '@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))': + '@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))': dependencies: '@cfworker/json-schema': 4.0.3 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.15 - langsmith: 0.2.13(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.14(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -24449,9 +24499,9 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/openai@0.3.16(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/openai@0.3.16(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: - '@langchain/core': 0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.15 openai: 4.77.0(encoding@0.1.13)(zod@3.23.8) zod: 3.23.8 @@ -24459,22 +24509,22 @@ snapshots: transitivePeerDependencies: - encoding - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))': + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.15 '@leichtgewicht/ip-codec@2.0.5': {} - '@lens-protocol/blockchain-bindings@0.10.2(@jest/globals@29.7.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@lens-protocol/blockchain-bindings@0.10.2(@jest/globals@29.7.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/contracts': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@ethersproject/units': 5.7.0 '@lens-protocol/domain': 0.12.0(@jest/globals@29.7.0) '@lens-protocol/shared-kernel': 0.12.0 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) tslib: 2.8.1 transitivePeerDependencies: - '@faker-js/faker' @@ -24485,7 +24535,7 @@ snapshots: - utf-8-validate - wait-for-expect - '@lens-protocol/client@2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + '@lens-protocol/client@2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -24493,10 +24543,10 @@ snapshots: '@ethersproject/bignumber': 5.7.0 '@ethersproject/contracts': 5.7.0 '@ethersproject/hash': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@ethersproject/wallet': 5.7.0 - '@lens-protocol/blockchain-bindings': 0.10.2(@jest/globals@29.7.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@lens-protocol/gated-content': 0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(zod@3.23.8) + '@lens-protocol/blockchain-bindings': 0.10.2(@jest/globals@29.7.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@lens-protocol/gated-content': 0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(zod@3.23.8) '@lens-protocol/shared-kernel': 0.12.0 '@lens-protocol/storage': 0.8.1 graphql: 16.10.0 @@ -24545,24 +24595,24 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 - '@lens-protocol/gated-content@0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(zod@3.23.8)': + '@lens-protocol/gated-content@0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/contracts': 5.7.0 '@ethersproject/hash': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@ethersproject/wallet': 5.7.0 '@lens-protocol/metadata': 1.2.0(zod@3.23.8) '@lens-protocol/shared-kernel': 0.12.0 '@lens-protocol/storage': 0.8.1 '@lit-protocol/constants': 2.1.62 - '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@lit-protocol/encryption': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@lit-protocol/node-client': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@lit-protocol/encryption': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@lit-protocol/node-client': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@lit-protocol/types': 2.1.62 - siwe: 2.3.2(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + siwe: 2.3.2(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tslib: 2.8.1 zod: 3.23.8 transitivePeerDependencies: @@ -24612,12 +24662,12 @@ snapshots: tslib: 2.8.1 zod: 3.23.8 - '@lerna/create@8.1.5(@swc/core@1.10.1)(encoding@0.1.13)(typescript@5.6.3)': + '@lerna/create@8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13)(typescript@5.6.3)': dependencies: '@npmcli/arborist': 7.5.3 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 - '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.1)) + '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) aproba: 2.0.0 @@ -24656,7 +24706,7 @@ snapshots: npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-registry-fetch: 17.1.0 - nx: 19.8.14(@swc/core@1.10.1) + nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)) p-map: 4.0.0 p-map-series: 2.1.0 p-queue: 6.6.2 @@ -24697,18 +24747,18 @@ snapshots: dependencies: '@lifi/types': 16.3.0 - '@lifi/sdk@3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)))(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(typescript@5.6.3)(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + '@lifi/sdk@3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)))(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(typescript@5.6.3)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: - '@bigmi/core': 0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3))(bs58@6.0.0)(viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@bigmi/core': 0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3))(bs58@6.0.0)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)) '@lifi/types': 16.3.0 '@noble/curves': 1.7.0 '@noble/hashes': 1.6.1 - '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bech32: 2.0.0 bitcoinjs-lib: 7.0.0-rc.0(typescript@5.6.3) bs58: 6.0.0 - viem: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - typescript @@ -24716,29 +24766,29 @@ snapshots: '@lit-labs/ssr-dom-shim@1.2.1': {} - '@lit-protocol/access-control-conditions@2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@lit-protocol/access-control-conditions@2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@lit-protocol/constants': 2.1.62 '@lit-protocol/misc': 2.1.62 '@lit-protocol/types': 2.1.62 '@lit-protocol/uint8arrays': 2.1.62 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) tslib: 2.8.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@lit-protocol/auth-browser@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@lit-protocol/auth-browser@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@lit-protocol/constants': 2.1.62 '@lit-protocol/misc': 2.1.62 - '@lit-protocol/misc-browser': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@lit-protocol/misc-browser': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/types': 2.1.62 '@lit-protocol/uint8arrays': 2.1.62 - '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) lit-connect-modal: 0.1.11 - lit-siwe: 1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0) + lit-siwe: 1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0) tslib: 2.8.1 tweetnacl: 1.0.3 tweetnacl-util: 0.13.5 @@ -24780,7 +24830,7 @@ snapshots: '@lit-protocol/types': 2.1.62 tslib: 2.8.1 - '@lit-protocol/crypto@2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@lit-protocol/crypto@2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@lit-protocol/bls-sdk': 2.1.62 '@lit-protocol/constants': 2.1.62 @@ -24789,7 +24839,7 @@ snapshots: '@lit-protocol/nacl': 2.1.62 '@lit-protocol/types': 2.1.62 '@lit-protocol/uint8arrays': 2.1.62 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) tslib: 2.8.1 transitivePeerDependencies: - bufferutil @@ -24797,17 +24847,17 @@ snapshots: '@lit-protocol/ecdsa-sdk@2.1.62': {} - '@lit-protocol/encryption@2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@lit-protocol/encryption@2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@lit-protocol/bls-sdk': 2.1.62 '@lit-protocol/constants': 2.1.62 - '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/ecdsa-sdk': 2.1.62 '@lit-protocol/misc': 2.1.62 '@lit-protocol/nacl': 2.1.62 '@lit-protocol/types': 2.1.62 '@lit-protocol/uint8arrays': 2.1.62 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) jszip: 3.10.1 tslib: 2.8.1 transitivePeerDependencies: @@ -24816,13 +24866,13 @@ snapshots: '@lit-protocol/lit-third-party-libs@2.1.62': {} - '@lit-protocol/misc-browser@2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@lit-protocol/misc-browser@2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@lit-protocol/constants': 2.1.62 '@lit-protocol/misc': 2.1.62 '@lit-protocol/types': 2.1.62 '@lit-protocol/uint8arrays': 2.1.62 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) tslib: 2.8.1 transitivePeerDependencies: - bufferutil @@ -24836,26 +24886,26 @@ snapshots: '@lit-protocol/nacl@2.1.62': {} - '@lit-protocol/node-client@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@lit-protocol/node-client@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: - '@lit-protocol/access-control-conditions': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@lit-protocol/auth-browser': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@lit-protocol/access-control-conditions': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@lit-protocol/auth-browser': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@lit-protocol/bls-sdk': 2.1.62 '@lit-protocol/constants': 2.1.62 - '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/ecdsa-sdk': 2.1.62 - '@lit-protocol/encryption': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@lit-protocol/encryption': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/lit-third-party-libs': 2.1.62 '@lit-protocol/misc': 2.1.62 - '@lit-protocol/misc-browser': 2.1.62(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@lit-protocol/misc-browser': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/nacl': 2.1.62 '@lit-protocol/types': 2.1.62 '@lit-protocol/uint8arrays': 2.1.62 - '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) jszip: 3.10.1 lit-connect-modal: 0.1.11 - lit-siwe: 1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0) + lit-siwe: 1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0) node-fetch: 2.7.0(encoding@0.1.13) tslib: 2.8.1 tweetnacl: 1.0.3 @@ -24972,18 +25022,18 @@ snapshots: dependencies: '@metaplex-foundation/umi': 0.9.2 - '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13)': + '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13)': dependencies: '@metaplex-foundation/umi': 0.9.2 '@metaplex-foundation/umi-downloader-http': 0.9.2(@metaplex-foundation/umi@0.9.2) - '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@metaplex-foundation/umi-http-fetch': 0.9.2(@metaplex-foundation/umi@0.9.2)(encoding@0.1.13) '@metaplex-foundation/umi-program-repository': 0.9.2(@metaplex-foundation/umi@0.9.2) '@metaplex-foundation/umi-rpc-chunk-get-accounts': 0.9.2(@metaplex-foundation/umi@0.9.2) - '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@metaplex-foundation/umi-serializer-data-view': 0.9.2(@metaplex-foundation/umi@0.9.2) - '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana/web3.js': 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: - encoding @@ -24991,12 +25041,12 @@ snapshots: dependencies: '@metaplex-foundation/umi': 0.9.2 - '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@metaplex-foundation/umi': 0.9.2 - '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@noble/curves': 1.7.0 - '@solana/web3.js': 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@metaplex-foundation/umi-http-fetch@0.9.2(@metaplex-foundation/umi@0.9.2)(encoding@0.1.13)': dependencies: @@ -25019,11 +25069,11 @@ snapshots: dependencies: '@metaplex-foundation/umi': 0.9.2 - '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@metaplex-foundation/umi': 0.9.2 - '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana/web3.js': 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@metaplex-foundation/umi-serializer-data-view@0.9.2(@metaplex-foundation/umi@0.9.2)': dependencies: @@ -25047,16 +25097,16 @@ snapshots: '@metaplex-foundation/umi-serializers-encodings': 0.8.9 '@metaplex-foundation/umi-serializers-numbers': 0.8.9 - '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@metaplex-foundation/umi': 0.9.2 - '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana/web3.js': 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@metaplex-foundation/umi': 0.9.2 - '@solana/web3.js': 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) buffer: 6.0.3 '@metaplex-foundation/umi@0.9.2': @@ -25304,11 +25354,11 @@ snapshots: transitivePeerDependencies: - encoding - '@neynar/nodejs-sdk@2.6.1(bufferutil@4.0.8)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@neynar/nodejs-sdk@2.7.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: '@openapitools/openapi-generator-cli': 2.15.3(class-transformer@0.5.1)(encoding@0.1.13) semver: 7.6.3 - viem: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - '@nestjs/microservices' - '@nestjs/platform-express' @@ -25613,15 +25663,15 @@ snapshots: - bluebird - supports-color - '@nrwl/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.1))': + '@nrwl/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))': dependencies: - '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.1)) + '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))) transitivePeerDependencies: - nx - '@nrwl/tao@19.8.14(@swc/core@1.10.1)': + '@nrwl/tao@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))': dependencies: - nx: 19.8.14(@swc/core@1.10.1) + nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)) tslib: 2.8.1 transitivePeerDependencies: - '@swc-node/register' @@ -25636,14 +25686,14 @@ snapshots: transitivePeerDependencies: - encoding - '@nx/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.1))': + '@nx/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))': dependencies: - '@nrwl/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.1)) + '@nrwl/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))) ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.2 minimatch: 9.0.3 - nx: 19.8.14(@swc/core@1.10.1) + nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)) semver: 7.6.3 tmp: 0.2.3 tslib: 2.8.1 @@ -25684,7 +25734,7 @@ snapshots: '@octokit/auth-app': 7.1.3 '@octokit/auth-unauthenticated': 6.1.0 '@octokit/core': 6.1.2 - '@octokit/oauth-app': 7.1.3 + '@octokit/oauth-app': 7.1.4 '@octokit/plugin-paginate-rest': 11.3.6(@octokit/core@6.1.2) '@octokit/types': 13.6.2 '@octokit/webhooks': 13.4.1 @@ -25693,8 +25743,8 @@ snapshots: dependencies: '@octokit/auth-oauth-app': 8.1.1 '@octokit/auth-oauth-user': 5.1.1 - '@octokit/request': 9.1.3 - '@octokit/request-error': 6.1.5 + '@octokit/request': 9.1.4 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 toad-cache: 3.7.0 universal-github-app-jwt: 2.2.0 @@ -25704,22 +25754,22 @@ snapshots: dependencies: '@octokit/auth-oauth-device': 7.1.1 '@octokit/auth-oauth-user': 5.1.1 - '@octokit/request': 9.1.3 + '@octokit/request': 9.1.4 '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 '@octokit/auth-oauth-device@7.1.1': dependencies: - '@octokit/oauth-methods': 5.1.2 - '@octokit/request': 9.1.3 + '@octokit/oauth-methods': 5.1.3 + '@octokit/request': 9.1.4 '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 '@octokit/auth-oauth-user@5.1.1': dependencies: '@octokit/auth-oauth-device': 7.1.1 - '@octokit/oauth-methods': 5.1.2 - '@octokit/request': 9.1.3 + '@octokit/oauth-methods': 5.1.3 + '@octokit/request': 9.1.4 '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 @@ -25731,7 +25781,7 @@ snapshots: '@octokit/auth-unauthenticated@6.1.0': dependencies: - '@octokit/request-error': 6.1.5 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 '@octokit/core@4.2.4(encoding@0.1.13)': @@ -25759,14 +25809,14 @@ snapshots: '@octokit/core@6.1.2': dependencies: '@octokit/auth-token': 5.1.1 - '@octokit/graphql': 8.1.1 - '@octokit/request': 9.1.3 - '@octokit/request-error': 6.1.5 + '@octokit/graphql': 8.1.2 + '@octokit/request': 9.1.4 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 - '@octokit/endpoint@10.1.1': + '@octokit/endpoint@10.1.2': dependencies: '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 @@ -25796,30 +25846,30 @@ snapshots: '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 - '@octokit/graphql@8.1.1': + '@octokit/graphql@8.1.2': dependencies: - '@octokit/request': 9.1.3 + '@octokit/request': 9.1.4 '@octokit/types': 13.6.2 universal-user-agent: 7.0.2 - '@octokit/oauth-app@7.1.3': + '@octokit/oauth-app@7.1.4': dependencies: '@octokit/auth-oauth-app': 8.1.1 '@octokit/auth-oauth-user': 5.1.1 '@octokit/auth-unauthenticated': 6.1.0 '@octokit/core': 6.1.2 '@octokit/oauth-authorization-url': 7.1.1 - '@octokit/oauth-methods': 5.1.2 + '@octokit/oauth-methods': 5.1.3 '@types/aws-lambda': 8.10.146 universal-user-agent: 7.0.2 '@octokit/oauth-authorization-url@7.1.1': {} - '@octokit/oauth-methods@5.1.2': + '@octokit/oauth-methods@5.1.3': dependencies: '@octokit/oauth-authorization-url': 7.1.1 - '@octokit/request': 9.1.3 - '@octokit/request-error': 6.1.5 + '@octokit/request': 9.1.4 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 '@octokit/openapi-types@18.1.1': {} @@ -25878,7 +25928,7 @@ snapshots: '@octokit/plugin-retry@7.1.2(@octokit/core@6.1.2)': dependencies: '@octokit/core': 6.1.2 - '@octokit/request-error': 6.1.5 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 bottleneck: 2.19.5 @@ -25900,7 +25950,7 @@ snapshots: deprecation: 2.3.1 once: 1.4.0 - '@octokit/request-error@6.1.5': + '@octokit/request-error@6.1.6': dependencies: '@octokit/types': 13.6.2 @@ -25922,11 +25972,12 @@ snapshots: '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 - '@octokit/request@9.1.3': + '@octokit/request@9.1.4': dependencies: - '@octokit/endpoint': 10.1.1 - '@octokit/request-error': 6.1.5 + '@octokit/endpoint': 10.1.2 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 + fast-content-type-parse: 2.0.0 universal-user-agent: 7.0.2 '@octokit/rest@19.0.11(encoding@0.1.13)': @@ -25968,7 +26019,7 @@ snapshots: '@octokit/webhooks@13.4.1': dependencies: '@octokit/openapi-webhooks-types': 8.5.1 - '@octokit/request-error': 6.1.5 + '@octokit/request-error': 6.1.6 '@octokit/webhooks-methods': 5.1.0 '@onflow/config@1.5.1': @@ -25983,15 +26034,15 @@ snapshots: - '@onflow/util-config' - supports-color - '@onflow/fcl-core@1.13.1(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10)': + '@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.26.0 '@improbable-eng/grpc-web': 0.15.0(google-protobuf@3.21.4) '@onflow/config': 1.5.1 '@onflow/interaction': 0.0.11 '@onflow/rlp': 1.2.3 - '@onflow/sdk': 1.5.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@onflow/transport-http': 1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@onflow/sdk': 1.5.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@onflow/transport-http': 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@onflow/types': 1.4.1 '@onflow/util-actor': 1.3.4 '@onflow/util-address': 1.2.3 @@ -26010,21 +26061,21 @@ snapshots: - supports-color - utf-8-validate - '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.8)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)': + '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.26.0 '@onflow/config': 1.5.1 - '@onflow/fcl-core': 1.13.1(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10) + '@onflow/fcl-core': 1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10) '@onflow/util-invariant': 1.2.4 '@onflow/util-logger': 1.3.3 '@walletconnect/modal': 2.7.0(@types/react@18.3.12)(react@18.3.1) '@walletconnect/modal-core': 2.7.0(@types/react@18.3.12)(react@18.3.1) - '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.8)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/types': 2.17.3(ioredis@5.4.2) '@walletconnect/utils': 2.17.3(ioredis@5.4.2) postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2) - preact: 10.25.3 - tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + preact: 10.25.4 + tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -26055,15 +26106,15 @@ snapshots: - uploadthing - utf-8-validate - '@onflow/fcl@1.13.1(@types/react@18.3.12)(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)': + '@onflow/fcl@1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.26.0 '@onflow/config': 1.5.1 - '@onflow/fcl-core': 1.13.1(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10) - '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.8)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10) + '@onflow/fcl-core': 1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10) + '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10) '@onflow/interaction': 0.0.11 '@onflow/rlp': 1.2.3 - '@onflow/sdk': 1.5.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@onflow/sdk': 1.5.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@onflow/types': 1.4.1 '@onflow/util-actor': 1.3.4 '@onflow/util-address': 1.2.3 @@ -26117,12 +26168,12 @@ snapshots: '@babel/runtime': 7.26.0 buffer: 6.0.3 - '@onflow/sdk@1.5.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@onflow/sdk@1.5.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.26.0 '@onflow/config': 1.5.1 '@onflow/rlp': 1.2.3 - '@onflow/transport-http': 1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@onflow/transport-http': 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@onflow/typedefs': 1.4.0 '@onflow/util-actor': 1.3.4 '@onflow/util-address': 1.2.3 @@ -26140,7 +26191,7 @@ snapshots: - supports-color - utf-8-validate - '@onflow/transport-http@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@onflow/transport-http@1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.26.0 '@onflow/util-address': 1.2.3 @@ -26150,8 +26201,8 @@ snapshots: abort-controller: 3.0.0 cross-fetch: 4.1.0(encoding@0.1.13) events: 3.3.0 - isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - '@onflow/util-config' - bufferutil @@ -26276,11 +26327,6 @@ snapshots: '@parcel/watcher-linux-x64-musl@2.5.0': optional: true - '@parcel/watcher-wasm@2.5.0': - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.8 - '@parcel/watcher-win32-arm64@2.5.0': optional: true @@ -26329,9 +26375,9 @@ snapshots: tslib: 2.8.1 webcrypto-core: 1.8.1 - '@phala/dstack-sdk@0.1.6(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@phala/dstack-sdk@0.1.6(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': optionalDependencies: - viem: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - bufferutil - typescript @@ -26350,7 +26396,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pm2/agent@2.0.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@pm2/agent@2.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: async: 3.2.6 chalk: 3.0.0 @@ -26364,7 +26410,7 @@ snapshots: pm2-axon-rpc: 0.7.1 proxy-agent: 6.3.1 semver: 7.5.4 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -26383,13 +26429,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@pm2/js-api@0.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@pm2/js-api@0.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: async: 2.6.4 debug: 4.3.7 eventemitter2: 6.4.9 extrareqp2: 1.0.0(debug@4.3.7) - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -26675,11 +26721,11 @@ snapshots: '@radix-ui/rect@1.1.0': {} - '@raydium-io/raydium-sdk-v2@0.1.82-alpha(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@raydium-io/raydium-sdk-v2@0.1.82-alpha(bufferutil@4.0.9)(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/spl-token': 0.4.9(@solana/web3.js@1.95.8(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': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) axios: 1.7.9(debug@4.4.0) big.js: 6.2.2 bn.js: 5.2.1 @@ -26772,6 +26818,30 @@ snapshots: '@remusao/trie@1.5.0': {} + '@roamhq/wrtc-darwin-arm64@0.8.0': + optional: true + + '@roamhq/wrtc-darwin-x64@0.8.0': + optional: true + + '@roamhq/wrtc-linux-arm64@0.8.1': + optional: true + + '@roamhq/wrtc-linux-x64@0.8.1': + optional: true + + '@roamhq/wrtc-win32-x64@0.8.0': + optional: true + + '@roamhq/wrtc@0.8.0': + optionalDependencies: + '@roamhq/wrtc-darwin-arm64': 0.8.0 + '@roamhq/wrtc-darwin-x64': 0.8.0 + '@roamhq/wrtc-linux-arm64': 0.8.1 + '@roamhq/wrtc-linux-x64': 0.8.1 + '@roamhq/wrtc-win32-x64': 0.8.0 + domexception: 4.0.0 + '@rollup/plugin-alias@5.1.1(rollup@3.29.5)': optionalDependencies: rollup: 3.29.5 @@ -27068,27 +27138,35 @@ snapshots: '@sentry/types': 5.30.0 tslib: 1.14.1 - '@shikijs/core@1.24.4': + '@shikijs/core@1.25.1': dependencies: - '@shikijs/engine-javascript': 1.24.4 - '@shikijs/engine-oniguruma': 1.24.4 - '@shikijs/types': 1.24.4 + '@shikijs/engine-javascript': 1.25.1 + '@shikijs/engine-oniguruma': 1.25.1 + '@shikijs/types': 1.25.1 '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.24.4': + '@shikijs/engine-javascript@1.25.1': dependencies: - '@shikijs/types': 1.24.4 + '@shikijs/types': 1.25.1 '@shikijs/vscode-textmate': 9.3.1 - oniguruma-to-es: 0.8.1 + oniguruma-to-es: 0.10.0 - '@shikijs/engine-oniguruma@1.24.4': + '@shikijs/engine-oniguruma@1.25.1': dependencies: - '@shikijs/types': 1.24.4 + '@shikijs/types': 1.25.1 '@shikijs/vscode-textmate': 9.3.1 - '@shikijs/types@1.24.4': + '@shikijs/langs@1.25.1': + dependencies: + '@shikijs/types': 1.25.1 + + '@shikijs/themes@1.25.1': + dependencies: + '@shikijs/types': 1.25.1 + + '@shikijs/types@1.25.1': dependencies: '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 @@ -27537,11 +27615,11 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@solana-developers/helpers@2.5.6(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@solana-developers/helpers@2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(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/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(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.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bs58: 6.0.0 dotenv: 16.4.7 transitivePeerDependencies: @@ -27551,10 +27629,10 @@ snapshots: - typescript - utf-8-validate - '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bigint-buffer: 1.1.5 bignumber.js: 9.1.2 transitivePeerDependencies: @@ -27662,37 +27740,37 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/spl-token-group@0.0.4(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)': + '@solana/spl-token-group@0.0.4(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)': dependencies: '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) '@solana/spl-type-length-value': 0.1.0 - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/spl-token-group@0.0.7(@solana/web3.js@1.95.8(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-group@0.0.7(@solana/web3.js@1.95.8(bufferutil@4.0.9)(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.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(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.8(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.8(bufferutil@4.0.9)(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.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: - fastestsmallesttextencoderdecoder - typescript - '@solana/spl-token@0.4.6(@solana/web3.js@1.95.8(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/spl-token@0.4.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(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.4(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22) - '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(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.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - bufferutil @@ -27701,13 +27779,13 @@ snapshots: - typescript - utf-8-validate - '@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(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/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(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.8(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.8(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.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.95.8(bufferutil@4.0.9)(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.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - bufferutil @@ -27720,10 +27798,10 @@ snapshots: dependencies: buffer: 6.0.3 - '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@solana/wallet-standard-features': 1.2.0 - '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@wallet-standard/base': 1.1.0 '@wallet-standard/features': 1.1.0 eventemitter3: 4.0.7 @@ -27733,20 +27811,20 @@ snapshots: '@wallet-standard/base': 1.1.0 '@wallet-standard/features': 1.1.0 - '@solana/web3.js@1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@solana/web3.js@1.95.5(bufferutil@4.0.9)(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 + agentkeepalive: 4.6.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) + jayson: 4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) node-fetch: 2.7.0(encoding@0.1.13) rpc-websockets: 9.0.4 superstruct: 2.0.2 @@ -27755,20 +27833,20 @@ snapshots: - encoding - utf-8-validate - '@solana/web3.js@1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@solana/web3.js@1.95.8(bufferutil@4.0.9)(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 + agentkeepalive: 4.6.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) + jayson: 4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) node-fetch: 2.7.0(encoding@0.1.13) rpc-websockets: 9.0.4 superstruct: 2.0.2 @@ -27870,14 +27948,14 @@ snapshots: '@starknet-io/types-js@0.7.10': {} - '@story-protocol/core-sdk@1.2.0-rc.3(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@story-protocol/core-sdk@1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: abitype: 0.10.3(typescript@5.6.3)(zod@3.23.8) axios: 1.7.9(debug@4.4.0) bs58: 6.0.0 dotenv: 16.4.7 multiformats: 9.9.0 - viem: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - bufferutil - debug @@ -27903,12 +27981,12 @@ snapshots: dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/realtime-js@2.10.9(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@supabase/realtime-js@2.10.9(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@supabase/node-fetch': 2.6.15 '@types/phoenix': 1.6.6 '@types/ws': 8.5.13 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -27917,13 +27995,13 @@ snapshots: dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/supabase-js@2.46.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@supabase/supabase-js@2.46.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@supabase/auth-js': 2.65.1 '@supabase/functions-js': 2.4.3 '@supabase/node-fetch': 2.6.15 '@supabase/postgrest-js': 1.16.3 - '@supabase/realtime-js': 2.10.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@supabase/realtime-js': 2.10.9(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@supabase/storage-js': 2.7.1 transitivePeerDependencies: - bufferutil @@ -28022,51 +28100,51 @@ snapshots: - supports-color - typescript - '@swc/core-darwin-arm64@1.10.1': + '@swc/core-darwin-arm64@1.10.4': optional: true - '@swc/core-darwin-x64@1.10.1': + '@swc/core-darwin-x64@1.10.4': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.1': + '@swc/core-linux-arm-gnueabihf@1.10.4': optional: true - '@swc/core-linux-arm64-gnu@1.10.1': + '@swc/core-linux-arm64-gnu@1.10.4': optional: true - '@swc/core-linux-arm64-musl@1.10.1': + '@swc/core-linux-arm64-musl@1.10.4': optional: true - '@swc/core-linux-x64-gnu@1.10.1': + '@swc/core-linux-x64-gnu@1.10.4': optional: true - '@swc/core-linux-x64-musl@1.10.1': + '@swc/core-linux-x64-musl@1.10.4': optional: true - '@swc/core-win32-arm64-msvc@1.10.1': + '@swc/core-win32-arm64-msvc@1.10.4': optional: true - '@swc/core-win32-ia32-msvc@1.10.1': + '@swc/core-win32-ia32-msvc@1.10.4': optional: true - '@swc/core-win32-x64-msvc@1.10.1': + '@swc/core-win32-x64-msvc@1.10.4': optional: true - '@swc/core@1.10.1(@swc/helpers@0.5.15)': + '@swc/core@1.10.4(@swc/helpers@0.5.15)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.1 - '@swc/core-darwin-x64': 1.10.1 - '@swc/core-linux-arm-gnueabihf': 1.10.1 - '@swc/core-linux-arm64-gnu': 1.10.1 - '@swc/core-linux-arm64-musl': 1.10.1 - '@swc/core-linux-x64-gnu': 1.10.1 - '@swc/core-linux-x64-musl': 1.10.1 - '@swc/core-win32-arm64-msvc': 1.10.1 - '@swc/core-win32-ia32-msvc': 1.10.1 - '@swc/core-win32-x64-msvc': 1.10.1 + '@swc/core-darwin-arm64': 1.10.4 + '@swc/core-darwin-x64': 1.10.4 + '@swc/core-linux-arm-gnueabihf': 1.10.4 + '@swc/core-linux-arm64-gnu': 1.10.4 + '@swc/core-linux-arm64-musl': 1.10.4 + '@swc/core-linux-x64-gnu': 1.10.4 + '@swc/core-linux-x64-musl': 1.10.4 + '@swc/core-win32-arm64-msvc': 1.10.4 + '@swc/core-win32-ia32-msvc': 1.10.4 + '@swc/core-win32-x64-msvc': 1.10.4 '@swc/helpers': 0.5.15 '@swc/counter@0.1.3': {} @@ -28094,6 +28172,13 @@ snapshots: '@tanstack/query-core': 5.60.6 react: 18.3.1 + '@tavily/core@0.0.2': + dependencies: + axios: 1.7.9(debug@4.4.0) + js-tiktoken: 1.0.15 + transitivePeerDependencies: + - debug + '@telegraf/types@7.1.0': {} '@tinyhttp/content-disposition@2.2.2': {} @@ -28212,7 +28297,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.2 + '@types/express-serve-static-core': 5.0.3 '@types/node': 20.17.9 '@types/connect@3.4.38': @@ -28379,7 +28464,7 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express-serve-static-core@5.0.2': + '@types/express-serve-static-core@5.0.3': dependencies: '@types/node': 20.17.9 '@types/qs': 6.9.17 @@ -28396,7 +28481,7 @@ snapshots: '@types/express@5.0.0': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 5.0.2 + '@types/express-serve-static-core': 5.0.3 '@types/qs': 6.9.17 '@types/serve-static': 1.15.7 @@ -28510,7 +28595,7 @@ snapshots: '@types/multer@1.4.12': dependencies: - '@types/express': 4.17.21 + '@types/express': 5.0.0 '@types/node-fetch@2.6.12': dependencies: @@ -28529,7 +28614,7 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@18.19.68': + '@types/node@18.19.69': dependencies: undici-types: 5.26.5 @@ -28537,7 +28622,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.10.2': + '@types/node@22.10.3': dependencies: undici-types: 6.20.0 @@ -28899,7 +28984,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -28913,17 +28998,17 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + vitest: 2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0))': + '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: eslint: 9.16.0(jiti@2.4.2) optionalDependencies: '@typescript-eslint/utils': 8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3) typescript: 5.6.3 - vitest: 2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0) + vitest: 2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) '@vitest/expect@2.1.4': dependencies: @@ -28939,21 +29024,21 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.2)(terser@5.37.0))': + '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) - '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.10.2)(terser@5.37.0))': + '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.8.4)(terser@5.37.0))': dependencies: @@ -29079,13 +29164,13 @@ snapshots: dependencies: '@wallet-standard/base': 1.1.0 - '@walletconnect/core@2.17.3(bufferutil@4.0.8)(ioredis@5.4.2)(utf-8-validate@5.0.10)': + '@walletconnect/core@2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@walletconnect/keyvaluestorage': 1.1.1(ioredis@5.4.2) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 @@ -29124,7 +29209,7 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.17.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@walletconnect/ethereum-provider@2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.14 @@ -29132,9 +29217,9 @@ snapshots: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/keyvaluestorage': 1.1.1(ioredis@5.4.2) '@walletconnect/modal': 2.7.0(@types/react@18.3.12)(react@18.3.1) - '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.8)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/types': 2.17.3(ioredis@5.4.2) - '@walletconnect/universal-provider': 2.17.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/universal-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@walletconnect/utils': 2.17.3(ioredis@5.4.2) events: 3.3.0 transitivePeerDependencies: @@ -29199,12 +29284,12 @@ snapshots: '@walletconnect/jsonrpc-types': 1.0.4 tslib: 1.14.1 - '@walletconnect/jsonrpc-ws-connection@1.0.16(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@walletconnect/jsonrpc-ws-connection@1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -29213,7 +29298,7 @@ snapshots: dependencies: '@walletconnect/safe-json': 1.0.2 idb-keyval: 6.2.1 - unstorage: 1.14.1(idb-keyval@6.2.1)(ioredis@5.4.2) + unstorage: 1.14.4(idb-keyval@6.2.1)(ioredis@5.4.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -29280,9 +29365,9 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/sign-client@2.17.3(bufferutil@4.0.8)(ioredis@5.4.2)(utf-8-validate@5.0.10)': + '@walletconnect/sign-client@2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)': dependencies: - '@walletconnect/core': 2.17.3(bufferutil@4.0.8)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/core': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 @@ -29345,7 +29430,7 @@ snapshots: - ioredis - uploadthing - '@walletconnect/universal-provider@2.17.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@walletconnect/universal-provider@2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) @@ -29354,7 +29439,7 @@ snapshots: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/keyvaluestorage': 1.1.1(ioredis@5.4.2) '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.8)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/types': 2.17.3(ioredis@5.4.2) '@walletconnect/utils': 2.17.3(ioredis@5.4.2) events: 3.3.0 @@ -29629,10 +29714,28 @@ snapshots: set-cookie-parser: 2.7.1 tough-cookie: 4.1.4 tslib: 2.8.1 - twitter-api-v2: 1.18.2 + twitter-api-v2: 1.19.0 undici: 7.2.0 - agentkeepalive@4.5.0: + agent-twitter-client@0.0.18(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@roamhq/wrtc': 0.8.0 + '@sinclair/typebox': 0.32.35 + headers-polyfill: 3.3.0 + json-stable-stringify: 1.2.1 + node-fetch: 3.3.2 + otpauth: 9.3.6 + set-cookie-parser: 2.7.1 + tough-cookie: 4.1.4 + tslib: 2.8.1 + twitter-api-v2: 1.19.0 + undici: 7.2.0 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -29641,13 +29744,13 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.15.0))(svelte@5.15.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8): + ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8): dependencies: '@ai-sdk/provider': 0.0.26 '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.23.8) '@ai-sdk/solid': 0.0.54(zod@3.23.8) - '@ai-sdk/svelte': 0.0.57(svelte@5.15.0)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.57(svelte@5.16.0)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) '@opentelemetry/api': 1.9.0 @@ -29659,8 +29762,33 @@ snapshots: optionalDependencies: openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) react: 18.3.1 - sswr: 2.1.0(svelte@5.15.0) - svelte: 5.15.0 + sswr: 2.1.0(svelte@5.16.0) + svelte: 5.16.0 + zod: 3.23.8 + transitivePeerDependencies: + - solid-js + - vue + + ai@3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8): + dependencies: + '@ai-sdk/provider': 0.0.26 + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.54(zod@3.23.8) + '@ai-sdk/svelte': 0.0.57(svelte@5.16.0)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) + '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + '@opentelemetry/api': 1.9.0 + eventsource-parser: 1.1.2 + json-schema: 0.4.0 + jsondiffpatch: 0.6.0 + secure-json-parse: 2.7.0 + zod-to-json-schema: 3.24.1(zod@3.23.8) + optionalDependencies: + openai: 4.77.0(encoding@0.1.13)(zod@3.23.8) + react: 18.3.1 + sswr: 2.1.0(svelte@5.16.0) + svelte: 5.16.0 zod: 3.23.8 transitivePeerDependencies: - solid-js @@ -29857,7 +29985,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 get-intrinsic: 1.2.6 is-array-buffer: 3.0.5 @@ -29924,7 +30052,7 @@ snapshots: '@parcel/watcher': 2.5.0 c12: 2.0.1(magicast@0.3.5) citty: 0.1.6 - consola: 3.3.1 + consola: 3.3.3 defu: 6.1.4 destr: 2.0.3 didyoumean2: 7.0.4 @@ -29935,7 +30063,7 @@ snapshots: ofetch: 1.4.1 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.2.1 + pkg-types: 1.3.0 scule: 1.3.0 untyped: 1.5.2 transitivePeerDependencies: @@ -30039,12 +30167,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.1)): + babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) babel-messages@6.23.0: dependencies: @@ -30295,7 +30423,7 @@ snapshots: bip39@3.1.0: dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.3.0 bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3): dependencies: @@ -30623,7 +30751,7 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bufferutil@4.0.8: + bufferutil@4.0.9: dependencies: node-gyp-build: 4.8.4 @@ -30640,12 +30768,12 @@ snapshots: dependencies: streamsearch: 1.1.0 - buttplug@3.2.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + buttplug@3.2.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: class-transformer: 0.5.1 eventemitter3: 5.0.1 reflect-metadata: 0.2.2 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -30670,7 +30798,7 @@ snapshots: ohash: 1.1.4 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.2.1 + pkg-types: 1.3.0 rc9: 2.1.2 optionalDependencies: magicast: 0.3.5 @@ -30858,14 +30986,14 @@ snapshots: css-what: 6.1.0 domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 htmlparser2: 8.0.2 parse5: 7.2.1 parse5-htmlparser2-tree-adapter: 7.1.0 @@ -30944,15 +31072,15 @@ snapshots: citty@0.1.6: dependencies: - consola: 3.3.1 + consola: 3.3.3 - cive@0.7.1(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10): + cive@0.7.1(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@noble/curves': 1.7.0 '@noble/hashes': 1.6.1 '@scure/bip32': 1.6.0 '@scure/bip39': 1.5.0 - viem: 2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) zod: 3.23.8 transitivePeerDependencies: - bufferutil @@ -31016,12 +31144,6 @@ snapshots: cli-width@3.0.0: {} - clipboardy@4.0.0: - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - cliui@6.0.0: dependencies: string-width: 4.2.3 @@ -31090,13 +31212,13 @@ snapshots: co@4.6.0: {} - coinbase-api@1.0.5(bufferutil@4.0.8)(utf-8-validate@5.0.10): + coinbase-api@1.0.5(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: axios: 1.7.9(debug@4.4.0) - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) jsonwebtoken: 9.0.2 nanoid: 3.3.8 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - debug @@ -31265,7 +31387,7 @@ snapshots: consola@2.15.3: {} - consola@3.3.1: {} + consola@3.3.3: {} console-browserify@1.2.0: {} @@ -31370,7 +31492,7 @@ snapshots: copy-text-to-clipboard@3.2.0: {} - copy-webpack-plugin@11.0.0(webpack@5.97.1(@swc/core@1.10.1)): + copy-webpack-plugin@11.0.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -31378,7 +31500,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.0 serialize-javascript: 6.0.2 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) core-js-compat@3.39.0: dependencies: @@ -31407,9 +31529,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.2)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.3)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 typescript: 5.6.3 @@ -31462,13 +31584,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -31477,13 +31599,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -31492,13 +31614,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.10.2): + create-jest@29.7.0(@types/node@22.10.3): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.10.2) + jest-config: 29.7.0(@types/node@22.10.3) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -31507,13 +31629,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -31595,7 +31717,7 @@ snapshots: postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - css-loader@6.11.0(webpack@5.97.1(@swc/core@1.10.1)): + css-loader@6.11.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: icss-utils: 5.1.0(postcss@8.4.49) postcss: 8.4.49 @@ -31606,9 +31728,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.1)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 6.1.2(postcss@8.4.49) @@ -31616,7 +31738,7 @@ snapshots: postcss: 8.4.49 schema-utils: 4.3.0 serialize-javascript: 6.0.2 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: clean-css: 5.3.3 @@ -31637,7 +31759,7 @@ snapshots: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 nth-check: 2.1.1 css-selector-parser@1.4.1: {} @@ -32258,18 +32380,20 @@ snapshots: discord-api-types@0.37.100: {} + discord-api-types@0.37.114: {} + discord-api-types@0.37.83: {} discord-api-types@0.37.97: {} - discord.js@14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + discord.js@14.16.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: - '@discordjs/builders': 1.9.0 + '@discordjs/builders': 1.10.0 '@discordjs/collection': 1.5.3 '@discordjs/formatters': 0.5.0 '@discordjs/rest': 2.4.0 '@discordjs/util': 1.1.1 - '@discordjs/ws': 1.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@discordjs/ws': 1.1.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@sapphire/snowflake': 3.5.3 discord-api-types: 0.37.100 fast-deep-equal: 3.1.3 @@ -32290,9 +32414,9 @@ snapshots: dependencies: esutils: 2.0.3 - 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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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.10.1)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.16.0(jiti@2.4.2))(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.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(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 @@ -32334,6 +32458,11 @@ snapshots: domelementtype@2.3.0: {} + domexception@4.0.0: + dependencies: + webidl-conversions: 7.0.0 + optional: true + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 @@ -32352,7 +32481,7 @@ snapshots: domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.1.0: + domutils@3.2.1: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -32415,7 +32544,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - echogarden@2.0.7(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(utf-8-validate@5.0.10)(zod@3.23.8): + echogarden@2.0.7(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@aws-sdk/client-polly': 3.716.0 '@aws-sdk/client-transcribe-streaming': 3.716.0 @@ -32443,10 +32572,10 @@ snapshots: html-to-text: 9.0.5 import-meta-resolve: 4.1.0 jieba-wasm: 2.2.0 - jsdom: 25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) + jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) json5: 2.2.3 kuromoji: 0.1.2 - microsoft-cognitiveservices-speech-sdk: 1.42.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + microsoft-cognitiveservices-speech-sdk: 1.42.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) msgpack-lite: 0.1.26 onnxruntime-node: 1.20.1 openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) @@ -32456,7 +32585,7 @@ snapshots: tiktoken: 1.0.18 tinyld: 1.3.4 wasm-feature-detect: 1.8.0 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) wtf_wikipedia: 10.3.2(encoding@0.1.13) transitivePeerDependencies: - aws-crt @@ -32578,7 +32707,7 @@ snapshots: o3: 1.0.3 u3: 0.1.1 - es-abstract@1.23.7: + es-abstract@1.23.8: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -32591,7 +32720,7 @@ snapshots: es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 get-intrinsic: 1.2.6 @@ -32615,8 +32744,10 @@ snapshots: object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.7 + own-keys: 1.0.1 regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 @@ -32632,14 +32763,15 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: + es-errors: 1.3.0 get-intrinsic: 1.2.6 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -33110,7 +33242,7 @@ snapshots: ethjs-util: 0.1.6 rlp: 2.2.7 - ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -33130,7 +33262,7 @@ snapshots: '@ethersproject/networks': 5.7.1 '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@ethersproject/random': 5.7.0 '@ethersproject/rlp': 5.7.0 '@ethersproject/sha2': 5.7.0 @@ -33146,7 +33278,7 @@ snapshots: - bufferutil - utf-8-validate - ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@adraffy/ens-normalize': 1.10.1 '@noble/curves': 1.2.0 @@ -33154,7 +33286,7 @@ snapshots: '@types/node': 22.7.5 aes-js: 4.0.0-beta.5 tslib: 2.7.0 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -33307,7 +33439,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.3.4 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -33325,6 +33457,8 @@ snapshots: eyes@0.1.8: {} + fast-content-type-parse@2.0.0: {} + fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} @@ -33429,11 +33563,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.1)): + file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) file-uri-to-path@1.0.0: {} @@ -33530,14 +33664,14 @@ snapshots: optionalDependencies: debug: 4.4.0(supports-color@8.1.1) - fomo-sdk-solana@1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10): + fomo-sdk-solana@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: - '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@raydium-io/raydium-sdk-v2': 0.1.82-alpha(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(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': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@raydium-io/raydium-sdk-v2': 0.1.82-alpha(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bs58: 6.0.0 - coral-xyz3: '@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)' + coral-xyz3: '@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)' transitivePeerDependencies: - bufferutil - debug @@ -33565,7 +33699,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@babel/code-frame': 7.26.2 '@types/json-schema': 7.0.15 @@ -33581,7 +33715,7 @@ snapshots: semver: 7.6.3 tapable: 1.1.3 typescript: 5.6.3 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: eslint: 9.16.0(jiti@2.4.2) @@ -33678,24 +33812,24 @@ snapshots: fsevents@2.3.3: optional: true - fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)): + fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)): dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 bundle-require: 5.1.0(esbuild@0.24.2) chalk: 4.1.2 @@ -33828,8 +33962,6 @@ snapshots: through2: 2.0.5 yargs: 16.2.0 - get-port-please@3.1.2: {} - get-port@5.1.1: {} get-stdin@9.0.0: {} @@ -33879,7 +34011,7 @@ snapshots: giget@1.2.3: dependencies: citty: 0.1.6 - consola: 3.3.1 + consola: 3.3.3 defu: 6.1.4 node-fetch-native: 1.6.4 nypm: 0.3.12 @@ -34184,7 +34316,7 @@ snapshots: hard-rejection@2.1.0: {} - hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10): + hardhat@2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -34229,9 +34361,9 @@ snapshots: tsort: 0.0.1 undici: 5.28.4 uuid: 8.3.2 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - bufferutil @@ -34536,7 +34668,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.97.1(@swc/core@1.10.1)): + html-webpack-plugin@5.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -34544,7 +34676,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) htmlescape@1.1.1: {} @@ -34559,7 +34691,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 entities: 4.5.0 http-cache-semantics@4.1.1: {} @@ -34630,8 +34762,6 @@ snapshots: dependencies: '@types/node': 10.17.60 - http-shutdown@1.2.2: {} - http-signature@1.2.0: dependencies: assert-plus: 1.0.0 @@ -34873,7 +35003,7 @@ snapshots: filenamify: 6.0.0 fs-extra: 11.2.0 is-unicode-supported: 2.1.0 - lifecycle-utils: 1.7.1 + lifecycle-utils: 1.7.3 lodash.debounce: 4.0.8 lowdb: 7.0.1 pretty-bytes: 6.1.1 @@ -34959,8 +35089,6 @@ snapshots: is-docker@2.2.1: {} - is-docker@3.0.0: {} - is-electron@2.2.2: {} is-extendable@0.1.1: {} @@ -34993,10 +35121,6 @@ snapshots: is-hexadecimal@2.0.1: {} - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 @@ -35159,16 +35283,8 @@ snapshots: dependencies: is-docker: 2.2.1 - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - is-yarn-global@0.4.1: {} - is64bit@2.0.0: - dependencies: - system-architecture: 0.1.0 - isarray@0.0.1: {} isarray@1.0.0: {} @@ -35197,17 +35313,17 @@ snapshots: transitivePeerDependencies: - encoding - isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) - isomorphic-ws@5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + isomorphic-ws@5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - isows@1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + isows@1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) isstream@0.1.2: {} @@ -35281,7 +35397,7 @@ snapshots: javascript-natural-sort@0.7.1: {} - jayson@4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + jayson@4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@types/connect': 3.4.38 '@types/node': 12.20.55 @@ -35291,10 +35407,10 @@ snapshots: delay: 5.0.0 es6-promisify: 5.0.0 eyes: 0.1.8 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) json-stringify-safe: 5.0.1 uuid: 8.3.2 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -35331,16 +35447,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -35350,16 +35466,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -35369,16 +35485,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.10.2): + jest-cli@29.7.0(@types/node@22.10.3): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.10.2) + create-jest: 29.7.0(@types/node@22.10.3) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.10.2) + jest-config: 29.7.0(@types/node@22.10.3) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -35388,16 +35504,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -35407,7 +35523,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35432,13 +35548,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.68 - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3) + '@types/node': 18.19.69 + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35464,12 +35580,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.17.9 - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35495,12 +35611,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.17.9 - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35526,12 +35642,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.17.9 - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.10.2): + jest-config@29.7.0(@types/node@22.10.3): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35556,12 +35672,12 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35587,14 +35703,14 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.8.4 - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color jest-diff@29.7.0: dependencies: - chalk: 4.1.2 + chalk: 4.1.0 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -35813,48 +35929,48 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)): + jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)): + jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@22.10.2): + jest@29.7.0(@types/node@22.10.3): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.10.2) + jest-cli: 29.7.0(@types/node@22.10.3) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -35923,7 +36039,7 @@ snapshots: jsdoc-type-pratt-parser@4.0.0: {} - jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10): + jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10): dependencies: cssstyle: 4.1.0 data-urls: 5.0.0 @@ -35944,7 +36060,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.1.0 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) xml-name-validator: 5.0.0 optionalDependencies: canvas: 2.11.2(encoding@0.1.13) @@ -36080,7 +36196,7 @@ snapshots: jwt-decode@4.0.0: {} - katex@0.16.18: + katex@0.16.19: dependencies: commander: 8.3.0 @@ -36131,19 +36247,19 @@ snapshots: inherits: 2.0.4 stream-splicer: 2.0.1 - langchain@0.3.6(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)): + langchain@0.3.6(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)): dependencies: - '@langchain/core': 0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.26(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))) + '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/openai': 0.3.16(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.2.13(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.14(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 - yaml: 2.6.1 + yaml: 2.7.0 zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) optionalDependencies: @@ -36161,7 +36277,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - langsmith@0.2.13(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)): + langsmith@0.2.14(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -36193,13 +36309,13 @@ snapshots: leac@0.6.0: {} - lerna@8.1.5(@swc/core@1.10.1)(encoding@0.1.13): + lerna@8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13): dependencies: - '@lerna/create': 8.1.5(@swc/core@1.10.1)(encoding@0.1.13)(typescript@5.6.3) + '@lerna/create': 8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13)(typescript@5.6.3) '@npmcli/arborist': 7.5.3 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 - '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.1)) + '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) aproba: 2.0.0 @@ -36244,7 +36360,7 @@ snapshots: npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-registry-fetch: 17.1.0 - nx: 19.8.14(@swc/core@1.10.1) + nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)) p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -36320,7 +36436,7 @@ snapshots: dependencies: immediate: 3.0.6 - lifecycle-utils@1.7.1: {} + lifecycle-utils@1.7.3: {} lilconfig@2.1.0: {} @@ -36349,27 +36465,6 @@ snapshots: transitivePeerDependencies: - supports-color - listhen@1.9.0: - dependencies: - '@parcel/watcher': 2.5.0 - '@parcel/watcher-wasm': 2.5.0 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.3.1 - crossws: 0.3.1 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.13.0 - http-shutdown: 1.2.2 - jiti: 2.4.0 - mlly: 1.7.3 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.8.0 - ufo: 1.5.4 - untun: 0.1.3 - uqr: 0.1.2 - listr2@8.2.5: dependencies: cli-truncate: 4.0.0 @@ -36393,11 +36488,11 @@ snapshots: dependencies: '@types/trusted-types': 2.0.7 - lit-siwe@1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0): + lit-siwe@1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0): dependencies: '@ethersproject/contracts': 5.7.0 '@ethersproject/hash': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@ethersproject/wallet': 5.7.0 '@spruceid/siwe-parser': 1.1.3 '@stablelib/random': 1.0.2 @@ -36438,7 +36533,7 @@ snapshots: local-pkg@0.5.1: dependencies: mlly: 1.7.3 - pkg-types: 1.2.1 + pkg-types: 1.3.0 locate-character@3.0.0: {} @@ -36690,7 +36785,7 @@ snapshots: md5.js@1.3.5: dependencies: - hash-base: 3.1.0 + hash-base: 3.0.5 inherits: 2.0.4 safe-buffer: 5.2.1 @@ -36971,7 +37066,7 @@ snapshots: dagre-d3-es: 7.0.11 dayjs: 1.11.13 dompurify: 3.2.2 - katex: 0.16.18 + katex: 0.16.19 khroma: 2.1.0 lodash-es: 4.17.21 marked: 13.0.3 @@ -37288,14 +37383,14 @@ snapshots: micromodal@0.4.10: {} - microsoft-cognitiveservices-speech-sdk@1.42.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + microsoft-cognitiveservices-speech-sdk@1.42.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@types/webrtc': 0.0.37 agent-base: 6.0.2 bent: 7.3.12 https-proxy-agent: 4.0.0 uuid: 9.0.1 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -37341,11 +37436,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.97.1(@swc/core@1.10.1)): + mini-css-extract-plugin@2.9.2(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: schema-utils: 4.3.0 tapable: 2.2.1 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) minimalistic-assert@1.0.1: {} @@ -37460,7 +37555,7 @@ snapshots: jiti: 1.21.7 mlly: 1.7.3 pathe: 1.1.2 - pkg-types: 1.2.1 + pkg-types: 1.3.0 postcss: 8.4.49 postcss-nested: 6.2.0(postcss@8.4.49) semver: 7.6.3 @@ -37472,7 +37567,7 @@ snapshots: dependencies: acorn: 8.14.0 pathe: 1.1.2 - pkg-types: 1.2.1 + pkg-types: 1.3.0 ufo: 1.5.4 mnemonist@0.38.5: @@ -37618,7 +37713,7 @@ snapshots: array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.1.2 + minimatch: 3.0.5 mustache@4.0.0: {} @@ -37830,11 +37925,11 @@ snapshots: ignore: 5.3.2 ipull: 3.9.2 is-unicode-supported: 2.1.0 - lifecycle-utils: 1.7.1 + lifecycle-utils: 1.7.3 log-symbols: 7.0.0 nanoid: 5.0.9 node-addon-api: 8.3.0 - octokit: 4.0.2 + octokit: 4.0.3 ora: 8.1.1 pretty-ms: 9.2.0 proper-lockfile: 4.1.2 @@ -38000,23 +38095,23 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.97.1(@swc/core@1.10.1)): + null-loader@4.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) nwsapi@2.2.16: {} - nx@19.8.14(@swc/core@1.10.1): + nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)): dependencies: '@napi-rs/wasm-runtime': 0.2.4 - '@nrwl/tao': 19.8.14(@swc/core@1.10.1) + '@nrwl/tao': 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)) '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.7 axios: 1.7.9(debug@4.4.0) - chalk: 4.1.2 + chalk: 4.1.0 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 @@ -38055,17 +38150,17 @@ snapshots: '@nx/nx-linux-x64-musl': 19.8.14 '@nx/nx-win32-arm64-msvc': 19.8.14 '@nx/nx-win32-x64-msvc': 19.8.14 - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) transitivePeerDependencies: - debug nypm@0.3.12: dependencies: citty: 0.1.6 - consola: 3.3.1 + consola: 3.3.3 execa: 8.0.1 pathe: 1.1.2 - pkg-types: 1.2.1 + pkg-types: 1.3.0 ufo: 1.5.4 o3@1.0.3: @@ -38095,17 +38190,17 @@ snapshots: obuf@1.1.2: {} - octokit@4.0.2: + octokit@4.0.3: dependencies: '@octokit/app': 15.1.1 '@octokit/core': 6.1.2 - '@octokit/oauth-app': 7.1.3 + '@octokit/oauth-app': 7.1.4 '@octokit/plugin-paginate-graphql': 5.2.4(@octokit/core@6.1.2) '@octokit/plugin-paginate-rest': 11.3.6(@octokit/core@6.1.2) '@octokit/plugin-rest-endpoint-methods': 13.2.6(@octokit/core@6.1.2) '@octokit/plugin-retry': 7.1.2(@octokit/core@6.1.2) '@octokit/plugin-throttling': 9.3.2(@octokit/core@6.1.2) - '@octokit/request-error': 6.1.5 + '@octokit/request-error': 6.1.6 '@octokit/types': 13.6.2 ofetch@1.4.1: @@ -38150,11 +38245,11 @@ snapshots: dependencies: mimic-function: 5.0.1 - oniguruma-to-es@0.8.1: + oniguruma-to-es@0.10.0: dependencies: emoji-regex-xs: 1.0.0 - regex: 5.0.2 - regex-recursion: 5.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 only-allow@1.2.1: dependencies: @@ -38178,12 +38273,12 @@ snapshots: platform: 1.3.6 protobufjs: 7.4.0 - open-jsonrpc-provider@0.2.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): + open-jsonrpc-provider@0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: axios: 0.27.2 reconnecting-websocket: 4.4.0 websocket: 1.0.35 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - debug @@ -38198,10 +38293,10 @@ snapshots: openai@4.73.0(encoding@0.1.13)(zod@3.23.8): dependencies: - '@types/node': 18.19.68 + '@types/node': 18.19.69 '@types/node-fetch': 2.6.12 abort-controller: 3.0.0 - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.13) @@ -38212,10 +38307,10 @@ snapshots: openai@4.77.0(encoding@0.1.13)(zod@3.23.8): dependencies: - '@types/node': 18.19.68 + '@types/node': 18.19.69 '@types/node-fetch': 2.6.12 abort-controller: 3.0.0 - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.13) @@ -38242,7 +38337,7 @@ snapshots: ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.2 + chalk: 4.1.0 cli-cursor: 3.1.0 cli-spinners: 2.6.1 is-interactive: 1.0.0 @@ -38282,14 +38377,34 @@ snapshots: dependencies: '@noble/hashes': 1.6.1 + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.6 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + ox@0.1.2(typescript@5.6.3)(zod@3.23.8): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - zod + + ox@0.4.4(typescript@5.6.3)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 '@noble/curves': 1.7.0 '@noble/hashes': 1.6.1 '@scure/bip32': 1.6.0 '@scure/bip39': 1.5.0 - abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8) + abitype: 1.0.7(typescript@5.6.3)(zod@3.23.8) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.6.3 @@ -38719,7 +38834,7 @@ snapshots: dependencies: find-up: 6.3.0 - pkg-types@1.2.1: + pkg-types@1.3.0: dependencies: confbox: 0.1.8 mlly: 1.7.3 @@ -38774,11 +38889,11 @@ snapshots: - supports-color optional: true - pm2@5.4.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + pm2@5.4.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: - '@pm2/agent': 2.0.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@pm2/agent': 2.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@pm2/io': 6.0.1 - '@pm2/js-api': 0.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@pm2/js-api': 0.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@pm2/pm2-version-check': 1.0.4 async: 3.2.6 blessed: 0.1.81 @@ -38880,9 +38995,9 @@ snapshots: - jiti - tsx - postcss-color-functional-notation@7.0.6(postcss@8.4.49): + postcss-color-functional-notation@7.0.7(postcss@8.4.49): dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) @@ -39040,48 +39155,48 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.49 - postcss-lab-function@7.0.6(postcss@8.4.49): + postcss-lab-function@7.0.7(postcss@8.4.49): dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) '@csstools/utilities': 2.0.0(postcss@8.4.49) postcss: 8.4.49 - postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: lilconfig: 3.1.3 - yaml: 2.6.1 + yaml: 2.7.0 optionalDependencies: postcss: 8.4.49 - ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3) postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2): dependencies: lilconfig: 3.1.3 - yaml: 2.6.1 + yaml: 2.7.0 optionalDependencies: jiti: 2.4.2 postcss: 8.4.49 tsx: 4.19.2 - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.4.2 postcss: 8.4.49 tsx: 4.19.2 - yaml: 2.6.1 + yaml: 2.7.0 - postcss-loader@7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)): + postcss-loader@7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 postcss: 8.4.49 semver: 7.6.3 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - typescript @@ -39326,17 +39441,17 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-preset-env@10.1.2(postcss@8.4.49): + postcss-preset-env@10.1.3(postcss@8.4.49): dependencies: '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.4.49) - '@csstools/postcss-color-function': 4.0.6(postcss@8.4.49) - '@csstools/postcss-color-mix-function': 3.0.6(postcss@8.4.49) + '@csstools/postcss-color-function': 4.0.7(postcss@8.4.49) + '@csstools/postcss-color-mix-function': 3.0.7(postcss@8.4.49) '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.4.49) - '@csstools/postcss-exponential-functions': 2.0.5(postcss@8.4.49) + '@csstools/postcss-exponential-functions': 2.0.6(postcss@8.4.49) '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.49) - '@csstools/postcss-gamut-mapping': 2.0.6(postcss@8.4.49) - '@csstools/postcss-gradients-interpolation-method': 5.0.6(postcss@8.4.49) - '@csstools/postcss-hwb-function': 4.0.6(postcss@8.4.49) + '@csstools/postcss-gamut-mapping': 2.0.7(postcss@8.4.49) + '@csstools/postcss-gradients-interpolation-method': 5.0.7(postcss@8.4.49) + '@csstools/postcss-hwb-function': 4.0.7(postcss@8.4.49) '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.49) '@csstools/postcss-initial': 2.0.0(postcss@8.4.49) '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.4.49) @@ -39346,19 +39461,19 @@ snapshots: '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.49) '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.49) '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.4.49) - '@csstools/postcss-media-minmax': 2.0.5(postcss@8.4.49) + '@csstools/postcss-media-minmax': 2.0.6(postcss@8.4.49) '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.4.49) '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.49) '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.49) - '@csstools/postcss-oklab-function': 4.0.6(postcss@8.4.49) + '@csstools/postcss-oklab-function': 4.0.7(postcss@8.4.49) '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.49) - '@csstools/postcss-random-function': 1.0.1(postcss@8.4.49) - '@csstools/postcss-relative-color-syntax': 3.0.6(postcss@8.4.49) + '@csstools/postcss-random-function': 1.0.2(postcss@8.4.49) + '@csstools/postcss-relative-color-syntax': 3.0.7(postcss@8.4.49) '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.4.49) - '@csstools/postcss-sign-functions': 1.1.0(postcss@8.4.49) - '@csstools/postcss-stepped-value-functions': 4.0.5(postcss@8.4.49) + '@csstools/postcss-sign-functions': 1.1.1(postcss@8.4.49) + '@csstools/postcss-stepped-value-functions': 4.0.6(postcss@8.4.49) '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.49) - '@csstools/postcss-trigonometric-functions': 4.0.5(postcss@8.4.49) + '@csstools/postcss-trigonometric-functions': 4.0.6(postcss@8.4.49) '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.49) autoprefixer: 10.4.20(postcss@8.4.49) browserslist: 4.24.3 @@ -39369,7 +39484,7 @@ snapshots: postcss: 8.4.49 postcss-attribute-case-insensitive: 7.0.1(postcss@8.4.49) postcss-clamp: 4.1.0(postcss@8.4.49) - postcss-color-functional-notation: 7.0.6(postcss@8.4.49) + postcss-color-functional-notation: 7.0.7(postcss@8.4.49) postcss-color-hex-alpha: 10.0.0(postcss@8.4.49) postcss-color-rebeccapurple: 10.0.0(postcss@8.4.49) postcss-custom-media: 11.0.5(postcss@8.4.49) @@ -39382,7 +39497,7 @@ snapshots: postcss-font-variant: 5.0.0(postcss@8.4.49) postcss-gap-properties: 6.0.0(postcss@8.4.49) postcss-image-set-function: 7.0.0(postcss@8.4.49) - postcss-lab-function: 7.0.6(postcss@8.4.49) + postcss-lab-function: 7.0.7(postcss@8.4.49) postcss-logical: 8.0.0(postcss@8.4.49) postcss-nesting: 13.0.1(postcss@8.4.49) postcss-opacity-percentage: 3.0.0(postcss@8.4.49) @@ -39511,7 +39626,7 @@ snapshots: postgres-range@1.1.4: {} - preact@10.25.3: {} + preact@10.25.4: {} prebuild-install@7.1.2: dependencies: @@ -39704,12 +39819,12 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 - pumpdotfun-sdk@1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10): + pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: - '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@rollup/plugin-json': 6.1.0(rollup@4.29.1) - '@solana/spl-token': 0.4.6(@solana/web3.js@1.95.8(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': 1.95.8(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.4.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -39728,7 +39843,7 @@ snapshots: dependencies: escape-goat: 4.0.0 - puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10): + puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@puppeteer/browsers': 0.5.0(typescript@5.6.3) chromium-bidi: 0.4.7(devtools-protocol@0.0.1107588) @@ -39740,7 +39855,7 @@ snapshots: proxy-from-env: 1.1.0 tar-fs: 2.1.1 unbzip2-stream: 1.4.3 - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -39749,13 +39864,13 @@ snapshots: - supports-color - utf-8-validate - puppeteer-extra-plugin-capsolver@2.0.1(bufferutil@4.0.8)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10): + puppeteer-extra-plugin-capsolver@2.0.1(bufferutil@4.0.9)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: axios: 1.7.9(debug@4.4.0) capsolver-npm: 2.0.2 - puppeteer: 19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) - puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) - puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))) + puppeteer: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) + puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) + puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))) transitivePeerDependencies: - '@types/puppeteer' - bufferutil @@ -39767,35 +39882,35 @@ snapshots: - typescript - utf-8-validate - puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))): + puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))): dependencies: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) merge-deep: 3.0.3 optionalDependencies: - puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) + puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) transitivePeerDependencies: - supports-color - puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)): + puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)): dependencies: '@types/debug': 4.1.12 debug: 4.4.0(supports-color@8.1.1) deepmerge: 4.3.1 optionalDependencies: - puppeteer: 19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) - puppeteer-core: 19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) + puppeteer: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) + puppeteer-core: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) transitivePeerDependencies: - supports-color - puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10): + puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@puppeteer/browsers': 0.5.0(typescript@5.6.3) cosmiconfig: 8.1.3 https-proxy-agent: 5.0.1 progress: 2.0.3 proxy-from-env: 1.1.0 - puppeteer-core: 19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) + puppeteer-core: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -39889,7 +40004,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)): + react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@babel/code-frame': 7.26.2 address: 1.2.2 @@ -39900,7 +40015,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.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.1)) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -39915,7 +40030,7 @@ snapshots: shell-quote: 1.8.2 strip-ansi: 6.0.1 text-table: 0.2.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -39958,11 +40073,11 @@ snapshots: dependencies: react: 18.3.1 - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.1)): + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@babel/runtime': 7.26.0 react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) react-refresh@0.14.2: {} @@ -40220,7 +40335,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 dunder-proto: 1.0.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 get-intrinsic: 1.2.6 gopd: 1.2.0 @@ -40240,13 +40355,14 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 - regex-recursion@5.0.0: + regex-recursion@5.1.1: dependencies: + regex: 5.1.1 regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.0.2: + regex@5.1.1: dependencies: regex-utilities: 2.3.0 @@ -40561,9 +40677,9 @@ snapshots: buffer: 6.0.3 eventemitter3: 5.0.1 uuid: 8.3.2 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 rrweb-cssom@0.7.1: {} @@ -40611,6 +40727,11 @@ snapshots: dependencies: buffer-alloc: 1.2.0 + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + safe-regex-test@1.1.0: dependencies: call-bound: 1.0.3 @@ -40892,12 +41013,14 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 - shiki@1.24.4: + shiki@1.25.1: dependencies: - '@shikijs/core': 1.24.4 - '@shikijs/engine-javascript': 1.24.4 - '@shikijs/engine-oniguruma': 1.24.4 - '@shikijs/types': 1.24.4 + '@shikijs/core': 1.25.1 + '@shikijs/engine-javascript': 1.25.1 + '@shikijs/engine-oniguruma': 1.25.1 + '@shikijs/langs': 1.25.1 + '@shikijs/themes': 1.25.1 + '@shikijs/types': 1.25.1 '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 @@ -40996,11 +41119,11 @@ snapshots: arg: 5.0.2 sax: 1.4.1 - siwe@2.3.2(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + siwe@2.3.2(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: '@spruceid/siwe-parser': 2.1.2 '@stablelib/random': 1.0.2 - ethers: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) uri-js: 4.4.1 valid-url: 1.0.9 @@ -41203,9 +41326,9 @@ snapshots: dependencies: minipass: 7.1.2 - sswr@2.1.0(svelte@5.15.0): + sswr@2.1.0(svelte@5.16.0): dependencies: - svelte: 5.15.0 + svelte: 5.16.0 swrev: 4.0.0 stack-utils@2.0.6: @@ -41326,7 +41449,7 @@ snapshots: call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-object-atoms: 1.0.0 has-property-descriptors: 1.0.2 @@ -41473,7 +41596,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte@5.15.0: + svelte@5.16.0: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -41482,6 +41605,7 @@ snapshots: acorn-typescript: 1.4.13(acorn@8.14.0) aria-query: 5.3.2 axobject-query: 4.1.0 + clsx: 2.1.1 esm-env: 1.2.1 esrap: 1.3.2 is-reference: 3.0.3 @@ -41521,17 +41645,15 @@ snapshots: dependencies: acorn-node: 1.8.2 - system-architecture@0.1.0: {} - systeminformation@5.23.5: {} tailwind-merge@2.5.5: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))): dependencies: - tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) - tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)): + tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -41550,7 +41672,7 @@ snapshots: postcss: 8.4.49 postcss-import: 15.1.0(postcss@8.4.49) postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) postcss-nested: 6.2.0(postcss@8.4.49) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -41625,16 +41747,16 @@ snapshots: temp-dir@1.0.0: {} - terser-webpack-plugin@5.3.11(@swc/core@1.10.1)(webpack@5.97.1(@swc/core@1.10.1)): + terser-webpack-plugin@5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) terser@5.37.0: dependencies: @@ -41723,7 +41845,7 @@ snapshots: tinybench@2.9.0: {} - tinyexec@0.3.1: {} + tinyexec@0.3.2: {} tinyglobby@0.2.10: dependencies: @@ -41740,15 +41862,15 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.69: {} + tldts-core@6.1.70: {} - tldts-experimental@6.1.69: + tldts-experimental@6.1.70: dependencies: - tldts-core: 6.1.69 + tldts-core: 6.1.70 - tldts@6.1.69: + tldts@6.1.70: dependencies: - tldts-core: 6.1.69 + tldts-core: 6.1.70 tmp@0.0.33: dependencies: @@ -41775,10 +41897,10 @@ snapshots: together-ai@0.7.0(encoding@0.1.13): dependencies: - '@types/node': 18.19.68 + '@types/node': 18.19.69 '@types/node-fetch': 2.6.12 abort-controller: 3.0.0 - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.13) @@ -41811,7 +41933,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.69 + tldts: 6.1.70 tr46@0.0.3: {} @@ -41851,12 +41973,12 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3)) + jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41871,12 +41993,12 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.26.0) esbuild: 0.24.2 - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@18.19.68)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3)) + jest: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41890,12 +42012,12 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3)) + jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -41911,14 +42033,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.10.1)(@types/node@18.19.68)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.68 + '@types/node': 18.19.69 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -41929,9 +42051,9 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -41949,16 +42071,16 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.3 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -41969,10 +42091,10 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) optional: true - ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.8.4)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -41990,7 +42112,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) tsconfig-paths@4.2.0: dependencies: @@ -42012,26 +42134,26 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.3.5(@swc/core@1.10.1)(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1): + tsup@8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.3.1 + consola: 3.3.3 debug: 4.4.0(supports-color@8.1.1) esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 rollup: 4.29.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 - tinyexec: 0.3.1 + tinyexec: 0.3.2 tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) postcss: 8.4.49 typescript: 5.6.3 transitivePeerDependencies: @@ -42098,7 +42220,7 @@ snapshots: tweetnacl@1.0.3: {} - twitter-api-v2@1.18.2: {} + twitter-api-v2@1.19.0: {} tx2@1.0.5: dependencies: @@ -42181,7 +42303,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 typed-array-buffer: 1.0.3 typed-array-byte-offset: 1.0.4 @@ -42197,9 +42319,9 @@ snapshots: lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 - shiki: 1.24.4 + shiki: 1.25.1 typescript: 5.6.3 - yaml: 2.6.1 + yaml: 2.7.0 typeforce@1.18.0: {} @@ -42255,7 +42377,7 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@3.29.5) chalk: 5.4.1 citty: 0.1.6 - consola: 3.3.1 + consola: 3.3.3 defu: 6.1.4 esbuild: 0.19.12 globby: 13.2.2 @@ -42265,7 +42387,7 @@ snapshots: mkdist: 1.6.0(typescript@5.6.3) mlly: 1.7.3 pathe: 1.1.2 - pkg-types: 1.2.1 + pkg-types: 1.3.0 pretty-bytes: 6.1.1 rollup: 3.29.5 rollup-plugin-dts: 6.1.1(rollup@3.29.5)(typescript@5.6.3) @@ -42311,7 +42433,7 @@ snapshots: unenv@1.10.0: dependencies: - consola: 3.3.1 + consola: 3.3.3 defu: 6.1.4 mime: 3.0.0 node-fetch-native: 1.6.4 @@ -42445,14 +42567,12 @@ snapshots: starknet: 6.18.0(encoding@0.1.13) unruggable-core: 0.1.1(starknet@6.18.0(encoding@0.1.13)) - unstorage@1.14.1(idb-keyval@6.2.1)(ioredis@5.4.2): + unstorage@1.14.4(idb-keyval@6.2.1)(ioredis@5.4.2): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 - citty: 0.1.6 destr: 2.0.3 h3: 1.13.0 - listhen: 1.9.0 lru-cache: 10.4.3 node-fetch-native: 1.6.4 ofetch: 1.4.1 @@ -42461,12 +42581,6 @@ snapshots: idb-keyval: 6.2.1 ioredis: 5.4.2 - untun@0.1.3: - dependencies: - citty: 0.1.6 - consola: 3.3.1 - pathe: 1.1.2 - untyped@1.5.2: dependencies: '@babel/core': 7.26.0 @@ -42505,22 +42619,20 @@ snapshots: semver-diff: 4.0.0 xdg-basedir: 5.1.0 - uqr@0.1.2: {} - uri-js@4.4.1: dependencies: punycode: 2.3.1 url-join@4.0.1: {} - url-loader@4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.1)))(webpack@5.97.1(@swc/core@1.10.1)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: - file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.1)) + file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) url-parse@1.5.10: dependencies: @@ -42667,17 +42779,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - viem@2.21.49(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + viem@2.21.49(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@noble/curves': 1.6.0 '@noble/hashes': 1.5.0 '@scure/bip32': 1.5.0 '@scure/bip39': 1.4.0 abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8) - isows: 1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) ox: 0.1.2(typescript@5.6.3)(zod@3.23.8) webauthn-p256: 0.0.10 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -42685,17 +42797,17 @@ snapshots: - utf-8-validate - zod - viem@2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@noble/curves': 1.6.0 '@noble/hashes': 1.5.0 '@scure/bip32': 1.5.0 '@scure/bip39': 1.4.0 abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8) - isows: 1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) ox: 0.1.2(typescript@5.6.3)(zod@3.23.8) webauthn-p256: 0.0.10 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -42703,17 +42815,17 @@ snapshots: - utf-8-validate - zod - viem@2.21.54(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@noble/curves': 1.7.0 '@noble/hashes': 1.6.1 '@scure/bip32': 1.6.0 '@scure/bip39': 1.5.0 abitype: 1.0.7(typescript@5.6.3)(zod@3.23.8) - isows: 1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ox: 0.1.2(typescript@5.6.3)(zod@3.23.8) + isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + ox: 0.4.4(typescript@5.6.3)(zod@3.23.8) webauthn-p256: 0.0.10 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -42721,12 +42833,12 @@ snapshots: - utf-8-validate - zod - vite-node@2.1.4(@types/node@22.10.2)(terser@5.37.0): + vite-node@2.1.4(@types/node@22.10.3)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.2)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -42738,13 +42850,13 @@ snapshots: - supports-color - terser - vite-node@2.1.5(@types/node@22.10.2)(terser@5.37.0): + vite-node@2.1.5(@types/node@22.10.3)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.2)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -42760,7 +42872,7 @@ snapshots: dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 pathe: 1.1.2 vite: 5.4.11(@types/node@22.8.4)(terser@5.37.0) transitivePeerDependencies: @@ -42777,7 +42889,7 @@ snapshots: vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.29.1)(vite@client+@tanstack+router-plugin+vite): dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@4.29.1) - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) uuid: 10.0.0 vite: link:client/@tanstack/router-plugin/vite transitivePeerDependencies: @@ -42788,13 +42900,13 @@ snapshots: dependencies: vite: link:client/@tanstack/router-plugin/vite - vite@5.4.11(@types/node@22.10.2)(terser@5.37.0): + vite@5.4.11(@types/node@22.10.3)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 rollup: 4.29.1 optionalDependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.3 fsevents: 2.3.3 terser: 5.37.0 @@ -42808,10 +42920,10 @@ snapshots: fsevents: 2.3.3 terser: 5.37.0 - vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@2.1.4(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.2)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -42824,15 +42936,15 @@ snapshots: pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 - tinyexec: 0.3.1 + tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.2)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.10.2)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.10.3)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.2 - jsdom: 25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) + '@types/node': 22.10.3 + jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less - lightningcss @@ -42844,10 +42956,10 @@ snapshots: - supports-color - terser - vitest@2.1.5(@types/node@22.10.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@2.1.5(@types/node@22.10.3)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.2)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -42860,15 +42972,15 @@ snapshots: pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 - tinyexec: 0.3.1 + tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.2)(terser@5.37.0) - vite-node: 2.1.5(@types/node@22.10.2)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) + vite-node: 2.1.5(@types/node@22.10.3)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.2 - jsdom: 25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) + '@types/node': 22.10.3 + jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less - lightningcss @@ -42880,10 +42992,10 @@ snapshots: - supports-color - terser - vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.8.4)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -42896,7 +43008,7 @@ snapshots: pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 - tinyexec: 0.3.1 + tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 vite: 5.4.11(@types/node@22.8.4)(terser@5.37.0) @@ -42904,7 +43016,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@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) + jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less - lightningcss @@ -43001,13 +43113,13 @@ snapshots: web-vitals@3.5.2: {} - web3-core@4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + web3-core@4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: web3-errors: 1.3.1 web3-eth-accounts: 4.3.1 web3-eth-iban: 4.0.7 web3-providers-http: 4.2.0(encoding@0.1.13) - web3-providers-ws: 4.0.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + web3-providers-ws: 4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 web3-validator: 2.0.6 @@ -43043,12 +43155,12 @@ snapshots: web3-utils: 4.3.3 web3-validator: 2.0.6 - web3-eth-contract@4.7.2(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + web3-eth-contract@4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@ethereumjs/rlp': 5.0.2 - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-errors: 1.3.1 - web3-eth: 4.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) web3-eth-abi: 4.4.1(typescript@5.6.3)(zod@3.23.8) web3-types: 1.10.0 web3-utils: 4.3.3 @@ -43060,14 +43172,14 @@ snapshots: - utf-8-validate - zod - web3-eth-ens@4.4.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + web3-eth-ens@4.4.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-errors: 1.3.1 - web3-eth: 4.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - web3-eth-contract: 4.7.2(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - web3-net: 4.1.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-eth-contract: 4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-net: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 web3-validator: 2.0.6 @@ -43085,11 +43197,11 @@ snapshots: web3-utils: 4.3.3 web3-validator: 2.0.6 - web3-eth-personal@4.1.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + web3-eth-personal@4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - web3-eth: 4.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - web3-rpc-methods: 1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-rpc-methods: 1.3.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 web3-validator: 2.0.6 @@ -43100,16 +43212,16 @@ snapshots: - utf-8-validate - zod - web3-eth@4.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + web3-eth@4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: setimmediate: 1.0.5 - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-errors: 1.3.1 web3-eth-abi: 4.4.1(typescript@5.6.3)(zod@3.23.8) web3-eth-accounts: 4.3.1 - web3-net: 4.1.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - web3-providers-ws: 4.0.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-rpc-methods: 1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-net: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-providers-ws: 4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) + web3-rpc-methods: 1.3.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 web3-validator: 2.0.6 @@ -43120,10 +43232,10 @@ snapshots: - utf-8-validate - zod - web3-net@4.1.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + web3-net@4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - web3-rpc-methods: 1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-rpc-methods: 1.3.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 transitivePeerDependencies: @@ -43131,11 +43243,11 @@ snapshots: - encoding - utf-8-validate - web3-plugin-zksync@1.0.8(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)): + web3-plugin-zksync@1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)): dependencies: ethereum-cryptography: 2.2.1 - hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10) - web3: 4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + hardhat: 2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10) + web3: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - bufferutil - c-kzg @@ -43160,21 +43272,21 @@ snapshots: web3-utils: 4.3.3 optional: true - web3-providers-ws@4.0.8(bufferutil@4.0.8)(utf-8-validate@5.0.10): + web3-providers-ws@4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@types/ws': 8.5.3 - isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) web3-errors: 1.3.1 web3-types: 1.10.0 web3-utils: 4.3.3 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - web3-rpc-methods@1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + web3-rpc-methods@1.3.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-validator: 2.0.6 transitivePeerDependencies: @@ -43182,11 +43294,11 @@ snapshots: - encoding - utf-8-validate - web3-rpc-providers@1.0.0-rc.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + web3-rpc-providers@1.0.0-rc.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: web3-errors: 1.3.1 web3-providers-http: 4.2.0(encoding@0.1.13) - web3-providers-ws: 4.0.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + web3-providers-ws: 4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 web3-validator: 2.0.6 @@ -43213,22 +43325,22 @@ snapshots: web3-types: 1.10.0 zod: 3.23.8 - web3@4.16.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): + web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: - web3-core: 4.7.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-errors: 1.3.1 - web3-eth: 4.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) web3-eth-abi: 4.4.1(typescript@5.6.3)(zod@3.23.8) web3-eth-accounts: 4.3.1 - web3-eth-contract: 4.7.2(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - web3-eth-ens: 4.4.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-eth-contract: 4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-eth-ens: 4.4.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) web3-eth-iban: 4.0.7 - web3-eth-personal: 4.1.0(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - web3-net: 4.1.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-eth-personal: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + web3-net: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-providers-http: 4.2.0(encoding@0.1.13) - web3-providers-ws: 4.0.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-rpc-methods: 1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - web3-rpc-providers: 1.0.0-rc.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-providers-ws: 4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) + web3-rpc-methods: 1.3.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + web3-rpc-providers: 1.0.0-rc.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-types: 1.10.0 web3-utils: 4.3.3 web3-validator: 2.0.6 @@ -43241,8 +43353,8 @@ snapshots: webauthn-p256@0.0.10: dependencies: - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 webcrypto-core@1.8.1: dependencies: @@ -43258,7 +43370,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-bundle-analyzer@4.10.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + webpack-bundle-analyzer@4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.14.0 @@ -43271,21 +43383,21 @@ snapshots: opener: 1.5.2 picocolors: 1.1.1 sirv: 2.0.4 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - webpack-dev-middleware@5.3.4(webpack@5.97.1(@swc/core@1.10.1)): + webpack-dev-middleware@5.3.4(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.3.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) - webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.1)): + webpack-dev-server@4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -43315,10 +43427,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.10.1)) - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - bufferutil - debug @@ -43339,7 +43451,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.97.1(@swc/core@1.10.1): + webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -43350,7 +43462,7 @@ snapshots: browserslist: 4.24.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -43361,7 +43473,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1)(webpack@5.97.1(@swc/core@1.10.1)) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -43369,16 +43481,16 @@ snapshots: - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.97.1(@swc/core@1.10.1)): + webpackbar@6.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 - consola: 3.3.1 + consola: 3.3.3 figures: 3.2.0 markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.8.0 - webpack: 5.97.1(@swc/core@1.10.1) + webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)) wrap-ansi: 7.0.0 websocket-driver@0.7.4: @@ -43391,7 +43503,7 @@ snapshots: websocket@1.0.35: dependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 debug: 2.6.9 es5-ext: 0.10.64 typedarray-to-buffer: 3.1.5 @@ -43573,29 +43685,29 @@ snapshots: type-fest: 0.4.1 write-json-file: 3.2.0 - ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@7.4.6(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 wtf_wikipedia@10.3.2(encoding@0.1.13): @@ -43633,7 +43745,7 @@ snapshots: yaml@2.5.1: {} - yaml@2.6.1: {} + yaml@2.7.0: {} yargs-parser@18.1.3: dependencies: diff --git a/scripts/clean.sh b/scripts/clean.sh index 5bc2eef8408..d377f85f2cf 100644 --- a/scripts/clean.sh +++ b/scripts/clean.sh @@ -5,9 +5,13 @@ cd "$(dirname "$0")"/.. echo "Cleanup started." # Find and remove node_modules directories, dist directories. find . -type d -name "node_modules" -exec rm -rf {} + \ - -o -type d -name "dist" -exec rm -rf {} + + -o -type d -name "dist" -exec rm -rf {} + \ + -o -type d -name ".turbo" -exec rm -rf {} + # Remove core cache rm -rf ./packages/core/cache +# Remove pnpm lockfile +rm ./pnpm-lock.yaml + echo "Cleanup completed." diff --git a/scripts/jsdoc-automation/README.md b/scripts/jsdoc-automation/README.md index 9d9e141162c..47a0d284bd9 100644 --- a/scripts/jsdoc-automation/README.md +++ b/scripts/jsdoc-automation/README.md @@ -1,5 +1,5 @@ # Codebase Documentation -- https://github.com/ai16z/eliza/issues/1110 +- https://github.com/elizaOS/eliza/issues/1110 ## Set up - Set GH_PAT & OPENAI_API_KEY in github actions as env variables @@ -38,7 +38,7 @@ The `src/Configuration.ts` handles configuration loading from environment variab #### Default Values -- **Repository**: ai16z/eliza +- **Repository**: elizaOS/eliza - **Branch**: develop - **Commit Message**: "Generated JSDoc comments" - **PR Title**: "JSDoc Generation" diff --git a/scripts/smokeTests.sh b/scripts/smokeTests.sh index 01042981258..388e7fb439d 100755 --- a/scripts/smokeTests.sh +++ b/scripts/smokeTests.sh @@ -36,7 +36,9 @@ cd "$PROJECT_DIR" cp .env.example .env -pnpm install -r +pnpm clean + +pnpm install -r --no-frozen-lockfile pnpm build