diff --git a/.env.example b/.env.example
index aa9256ffd3e..2c0bdbe3bd5 100644
--- a/.env.example
+++ b/.env.example
@@ -83,7 +83,7 @@ POST_INTERVAL_MAX= # Default: 180
POST_IMMEDIATELY=
# Twitter action processing configuration
-ACTION_INTERVAL=300000 # Interval in milliseconds between action processing runs (default: 5 minutes)
+ACTION_INTERVAL= # Interval in minutes between action processing runs (default: 5 minutes)
ENABLE_ACTION_PROCESSING=false # Set to true to enable the action processing loop
# Feature Flags
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 09649bafaea..45a4b4b3673 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -20,7 +20,7 @@ jobs:
cache: "pnpm"
- name: Install dependencies
- run: pnpm install
+ run: pnpm install -r --no-frozen-lockfile
- name: Run Prettier
run: pnpm run prettier --check .
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 086bfe3c77e..d640179b54c 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -35,7 +35,7 @@ jobs:
run: sudo apt-get install -y protobuf-compiler
- name: Install dependencies
- run: pnpm install
+ run: pnpm install -r --no-frozen-lockfile
- name: Build packages
run: pnpm run build
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a4af4e5f6c..4646b5f74ab 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,160 @@
# Changelog
+## [v0.1.7](https://github.com/elizaOS/eliza/tree/v0.1.7) (2025-01-04)
+
+[Full Changelog](https://github.com/elizaOS/eliza/compare/v0.1.7-alpha.2...v0.1.7)
+
+**Implemented enhancements:**
+
+- Implement Caching for API Responses [\#1794](https://github.com/elizaOS/eliza/issues/1794)
+- Implement Caching for API Responses [\#1792](https://github.com/elizaOS/eliza/issues/1792)
+- Implement Caching for API Responses [\#1791](https://github.com/elizaOS/eliza/issues/1791)
+- Implement Caching for API Responses [\#1789](https://github.com/elizaOS/eliza/issues/1789)
+- Feature Request: Implement Enhanced Error Logging for API Calls [\#1736](https://github.com/elizaOS/eliza/issues/1736)
+- Implement feature for issue \#1725 on repository elizaOS/eliza branch develop [\#1734](https://github.com/elizaOS/eliza/issues/1734)
+- Enhance API Documentation [\#1732](https://github.com/elizaOS/eliza/issues/1732)
+- Implement feature for issue \#1725 [\#1731](https://github.com/elizaOS/eliza/issues/1731)
+- Implement feature for issue \#1725 [\#1730](https://github.com/elizaOS/eliza/issues/1730)
+- Enhance API Documentation [\#1729](https://github.com/elizaOS/eliza/issues/1729)
+- Implement a Caching Mechanism for API Responses [\#1726](https://github.com/elizaOS/eliza/issues/1726)
+- Implement a Structured Logging Framework [\#1724](https://github.com/elizaOS/eliza/issues/1724)
+- Add support for Coinbase Commerce integration [\#1723](https://github.com/elizaOS/eliza/issues/1723)
+- Serve docusaurus docs from a docker container for quick docs verification [\#1720](https://github.com/elizaOS/eliza/issues/1720)
+- Use Caret \(^\) for Dependency Versions in package.json [\#1662](https://github.com/elizaOS/eliza/issues/1662)
+- Deduplicate dependencies across plugins and move shared dependencies to the root package.json [\#1658](https://github.com/elizaOS/eliza/issues/1658)
+- Deduplicate Dependencies Across Plugins [\#1656](https://github.com/elizaOS/eliza/issues/1656)
+- Deduplicate Dependencies Across Plugins [\#1652](https://github.com/elizaOS/eliza/issues/1652)
+- Deduplicate Dependencies Across Plugins [\#1650](https://github.com/elizaOS/eliza/issues/1650)
+- Viem version too old to include Arthera EVM chain [\#1635](https://github.com/elizaOS/eliza/issues/1635)
+- Add Spanish Translation for Documentation README \(docs/README\_es.md\) [\#1592](https://github.com/elizaOS/eliza/issues/1592)
+- Expand Support for Non-OpenAI Models in Token Trimming [\#1565](https://github.com/elizaOS/eliza/issues/1565)
+- spades [\#1563](https://github.com/elizaOS/eliza/issues/1563)
+- Support better in-monorepo navigation with custom conditions [\#1363](https://github.com/elizaOS/eliza/issues/1363)
+- Add Livepeer as an Image Generation Provider [\#1271](https://github.com/elizaOS/eliza/issues/1271)
+- Arbitrum Integration [\#851](https://github.com/elizaOS/eliza/issues/851)
+- Twitter Spaces Voice Client [\#301](https://github.com/elizaOS/eliza/issues/301)
+- 🐛 fix plugins.md formatting for docs with dockerized docs validation [\#1722](https://github.com/elizaOS/eliza/pull/1722) ([marcellodesales](https://github.com/marcellodesales))
+
+**Fixed bugs:**
+
+- Fix: Standardize ACTION\_INTERVAL unit to minutes in Twitter client [\#1788](https://github.com/elizaOS/eliza/issues/1788)
+- pdf js crashes the agent [\#1751](https://github.com/elizaOS/eliza/issues/1751)
+- Failed to run on Macbook M1 [\#1742](https://github.com/elizaOS/eliza/issues/1742)
+- Issue Created: http proxy error: /e0e10e6f-ff2b-0d4c-8011-1fc1eee7cb32/message [\#1733](https://github.com/elizaOS/eliza/issues/1733)
+- can't build framework - followed quick start - pnpm build error [\#1714](https://github.com/elizaOS/eliza/issues/1714)
+- Google Model Not Working [\#1709](https://github.com/elizaOS/eliza/issues/1709)
+- failed: @elizaos/plugin-echochambers\#build [\#1691](https://github.com/elizaOS/eliza/issues/1691)
+- initial setup not working. help needed please. [\#1666](https://github.com/elizaOS/eliza/issues/1666)
+- ImageDescriptionService [\#1643](https://github.com/elizaOS/eliza/issues/1643)
+- Dockerfile errors when building image [\#1623](https://github.com/elizaOS/eliza/issues/1623)
+- Initial setup based on docs not working [\#1622](https://github.com/elizaOS/eliza/issues/1622)
+- Running Eliza with LLAMALOCAL fails after first query [\#1575](https://github.com/elizaOS/eliza/issues/1575)
+- Quick start guide bug - pnpm start [\#1552](https://github.com/elizaOS/eliza/issues/1552)
+- callback throws - \["⛔ TypeError: callback is not a function"\] - when action is called from the Twitter Client [\#1544](https://github.com/elizaOS/eliza/issues/1544)
+- Bug: generateText is ignoring dynamic parameters due to a hard-coded model class [\#1439](https://github.com/elizaOS/eliza/issues/1439)
+- fix: Slack client Media type implementation missing required properties in message attachments [\#1384](https://github.com/elizaOS/eliza/issues/1384)
+- Error when trying deploy using dockerfile [\#1168](https://github.com/elizaOS/eliza/issues/1168)
+
+**Closed issues:**
+
+- Pull Request Created: Simulate discord typing while generating a response [\#1786](https://github.com/elizaOS/eliza/issues/1786)
+- Fix Public Solana Wallet Not Found! [\#1781](https://github.com/elizaOS/eliza/issues/1781)
+- \ [\#1692](https://github.com/elizaOS/eliza/issues/1692)
+
+**Merged pull requests:**
+
+- chore: bump version to v.0.1.7 [\#1804](https://github.com/elizaOS/eliza/pull/1804) ([shakkernerd](https://github.com/shakkernerd))
+- fix: generation tests for trimTokens [\#1803](https://github.com/elizaOS/eliza/pull/1803) ([shakkernerd](https://github.com/shakkernerd))
+- chore: install with no frozen-lockfile flag [\#1802](https://github.com/elizaOS/eliza/pull/1802) ([shakkernerd](https://github.com/shakkernerd))
+- Revert "fix\(postgres\): Handle vector extension creation properly \(\#1561\)" [\#1799](https://github.com/elizaOS/eliza/pull/1799) ([shakkernerd](https://github.com/shakkernerd))
+- chore: remove unused import and var [\#1797](https://github.com/elizaOS/eliza/pull/1797) ([shakkernerd](https://github.com/shakkernerd))
+- bug : Removed FerePro plugin [\#1795](https://github.com/elizaOS/eliza/pull/1795) ([Rudrakc](https://github.com/Rudrakc))
+- fix: line break handling in chat [\#1784](https://github.com/elizaOS/eliza/pull/1784) ([swizzmagik](https://github.com/swizzmagik))
+- fix\(client\): improve Windows compatibility for Vite dev server [\#1760](https://github.com/elizaOS/eliza/pull/1760) ([gmh5225](https://github.com/gmh5225))
+- fix: build lint errors [\#1759](https://github.com/elizaOS/eliza/pull/1759) ([shakkernerd](https://github.com/shakkernerd))
+- docs: add Serbian README translation [\#1757](https://github.com/elizaOS/eliza/pull/1757) ([marsic3](https://github.com/marsic3))
+- docs: update faq.md [\#1746](https://github.com/elizaOS/eliza/pull/1746) ([TresFlames](https://github.com/TresFlames))
+- feat\(plugin-near\): replace console.log to eliza logger [\#1745](https://github.com/elizaOS/eliza/pull/1745) ([sinecose](https://github.com/sinecose))
+- fix\(postgres\): Handle vector extension creation properly \(\#1561\) [\#1743](https://github.com/elizaOS/eliza/pull/1743) ([AIFlowML](https://github.com/AIFlowML))
+- fix\(client-slack\): implement Media type properties in message attachments \#1384 [\#1741](https://github.com/elizaOS/eliza/pull/1741) ([AIFlowML](https://github.com/AIFlowML))
+- feat: support for eternalai provider can write request/response log info [\#1740](https://github.com/elizaOS/eliza/pull/1740) ([genesis-0000](https://github.com/genesis-0000))
+- docs: update README\_KOR.md [\#1739](https://github.com/elizaOS/eliza/pull/1739) ([osrm](https://github.com/osrm))
+- fix: standardize ACTION\_INTERVAL unit to minutes in twitter client [\#1738](https://github.com/elizaOS/eliza/pull/1738) ([sin-bufan](https://github.com/sin-bufan))
+- fix: add echochambers to agent [\#1719](https://github.com/elizaOS/eliza/pull/1719) ([odilitime](https://github.com/odilitime))
+- fix: multiple web search import in agent [\#1718](https://github.com/elizaOS/eliza/pull/1718) ([shakkernerd](https://github.com/shakkernerd))
+- chore: Develop =\> main for 1.7.0 release [\#1717](https://github.com/elizaOS/eliza/pull/1717) ([odilitime](https://github.com/odilitime))
+- chore\(zksync-era\): rm not used imports [\#1716](https://github.com/elizaOS/eliza/pull/1716) ([9547](https://github.com/9547))
+- refactor: client api [\#1713](https://github.com/elizaOS/eliza/pull/1713) ([aalimsahin](https://github.com/aalimsahin))
+- feat: Simulate discord typing while generating a response [\#1712](https://github.com/elizaOS/eliza/pull/1712) ([dxlliv](https://github.com/dxlliv))
+- EVM plugin wallet provider and transfer action improvements [\#1701](https://github.com/elizaOS/eliza/pull/1701) ([nicky-ru](https://github.com/nicky-ru))
+- chore: twitter username validation message [\#1698](https://github.com/elizaOS/eliza/pull/1698) ([daizhengxue](https://github.com/daizhengxue))
+- fix: Url fix in imagedescriptionservice [\#1696](https://github.com/elizaOS/eliza/pull/1696) ([denizekiz](https://github.com/denizekiz))
+- fix: smoke tests [\#1695](https://github.com/elizaOS/eliza/pull/1695) ([shakkernerd](https://github.com/shakkernerd))
+- feat: Plugin sui support for suiprivatekey0x account [\#1693](https://github.com/elizaOS/eliza/pull/1693) ([v1xingyue](https://github.com/v1xingyue))
+- docs: update README.md spelling [\#1690](https://github.com/elizaOS/eliza/pull/1690) ([SK1989sL](https://github.com/SK1989sL))
+- chore: update web search plugin export [\#1688](https://github.com/elizaOS/eliza/pull/1688) ([affaan-m](https://github.com/affaan-m))
+- fix\(core\): trimTokens no need to await [\#1686](https://github.com/elizaOS/eliza/pull/1686) ([9547](https://github.com/9547))
+- Update README\_KOR.md: Added missing sections and improved Korean translations for clarity [\#1683](https://github.com/elizaOS/eliza/pull/1683) ([gnujoow](https://github.com/gnujoow))
+- chore\(docs\): rename ai16z/eliza to elizaOS/eliza [\#1679](https://github.com/elizaOS/eliza/pull/1679) ([9547](https://github.com/9547))
+- fix: add web search to agent [\#1676](https://github.com/elizaOS/eliza/pull/1676) ([odilitime](https://github.com/odilitime))
+- Agentic Eliza Plugin Documenter - Multilingual \(e.g., English, Spanish, French\) [\#1675](https://github.com/elizaOS/eliza/pull/1675) ([Ed-Marcavage](https://github.com/Ed-Marcavage))
+- feat: add docs for story plugin [\#1672](https://github.com/elizaOS/eliza/pull/1672) ([chandiniv1](https://github.com/chandiniv1))
+- fix: 1668 fix twitter image link [\#1671](https://github.com/elizaOS/eliza/pull/1671) ([nusk0](https://github.com/nusk0))
+- fix: 1634 fix image description service [\#1667](https://github.com/elizaOS/eliza/pull/1667) ([nusk0](https://github.com/nusk0))
+- fix: Seperated imageModelProvider and imageVisionModelProvider for ImageDescriptioServices [\#1664](https://github.com/elizaOS/eliza/pull/1664) ([denizekiz](https://github.com/denizekiz))
+- fix: Update Supabase schema.sql [\#1660](https://github.com/elizaOS/eliza/pull/1660) ([0xRider](https://github.com/0xRider))
+- fix: Fix bug in plugin-bootstrap/src/evaluators/facts.ts [\#1648](https://github.com/elizaOS/eliza/pull/1648) ([metakai1](https://github.com/metakai1))
+- Added Hungarian README [\#1645](https://github.com/elizaOS/eliza/pull/1645) ([mdominikd](https://github.com/mdominikd))
+- fix: lockfile wasn't updated after dependency + bring viem to root level package.json [\#1642](https://github.com/elizaOS/eliza/pull/1642) ([monilpat](https://github.com/monilpat))
+- chore: update viem dependency version in plugin-evm and plugin-goat [\#1637](https://github.com/elizaOS/eliza/pull/1637) ([bertux](https://github.com/bertux))
+- Add README\_AR.md [\#1634](https://github.com/elizaOS/eliza/pull/1634) ([xMariem](https://github.com/xMariem))
+- fix: corrected path for image upload [\#1632](https://github.com/elizaOS/eliza/pull/1632) ([ShreyGanatra](https://github.com/ShreyGanatra))
+- fix: turbo deps for plugin-evm [\#1627](https://github.com/elizaOS/eliza/pull/1627) ([odilitime](https://github.com/odilitime))
+- Fix double spaced tweets in Post.ts [\#1626](https://github.com/elizaOS/eliza/pull/1626) ([suicidalgoofy](https://github.com/suicidalgoofy))
+- feat: Select a transcription provider based on the character settings. [\#1625](https://github.com/elizaOS/eliza/pull/1625) ([tcm390](https://github.com/tcm390))
+- fix: bugfix. the port 80 is not listening use 3000 [\#1616](https://github.com/elizaOS/eliza/pull/1616) ([jmikedupont2](https://github.com/jmikedupont2))
+- add plugins to the key components section of the faq [\#1614](https://github.com/elizaOS/eliza/pull/1614) ([cole-gillespie](https://github.com/cole-gillespie))
+- fix: update plugin-solana workspace dependencies [\#1609](https://github.com/elizaOS/eliza/pull/1609) ([shakkernerd](https://github.com/shakkernerd))
+- fix: Google API Key not passing from character file [\#1607](https://github.com/elizaOS/eliza/pull/1607) ([azep-ninja](https://github.com/azep-ninja))
+- fix: Double Responses from Continue Action [\#1606](https://github.com/elizaOS/eliza/pull/1606) ([azep-ninja](https://github.com/azep-ninja))
+- fix: Support for Non-OpenAI Models in Token Trimming [\#1605](https://github.com/elizaOS/eliza/pull/1605) ([tcm390](https://github.com/tcm390))
+- fix: tweak transfer template of plugin-evm [\#1604](https://github.com/elizaOS/eliza/pull/1604) ([zkvm](https://github.com/zkvm))
+- feat: add experimental telemetry model option [\#1603](https://github.com/elizaOS/eliza/pull/1603) ([zhourunlai](https://github.com/zhourunlai))
+- refactor\(plugin-conflux\): output detailed invalid content [\#1602](https://github.com/elizaOS/eliza/pull/1602) ([bendanzhentan](https://github.com/bendanzhentan))
+- docs: README.md files for plugins [\#1601](https://github.com/elizaOS/eliza/pull/1601) ([ileana-pr](https://github.com/ileana-pr))
+- feat: use tavily sdk [\#1599](https://github.com/elizaOS/eliza/pull/1599) ([zhourunlai](https://github.com/zhourunlai))
+- docs: add readme spanish version in docs [\#1594](https://github.com/elizaOS/eliza/pull/1594) ([salazarsebas](https://github.com/salazarsebas))
+- feat: add docs for image generation plugin [\#1591](https://github.com/elizaOS/eliza/pull/1591) ([chandiniv1](https://github.com/chandiniv1))
+- docs: fix Contributing Guide [\#1589](https://github.com/elizaOS/eliza/pull/1589) ([0xFloyd](https://github.com/0xFloyd))
+- feat: update volcengine model [\#1586](https://github.com/elizaOS/eliza/pull/1586) ([zhourunlai](https://github.com/zhourunlai))
+- add an client-direct endpoint to get memories by agentid and roomid [\#1581](https://github.com/elizaOS/eliza/pull/1581) ([treppers](https://github.com/treppers))
+- Update agents.md - minor update [\#1579](https://github.com/elizaOS/eliza/pull/1579) ([yorkerhodes3](https://github.com/yorkerhodes3))
+- fix: activate web-search plugin in agents/ [\#1577](https://github.com/elizaOS/eliza/pull/1577) ([cmadaanaya](https://github.com/cmadaanaya))
+- docs: overview and preview of technical report [\#1574](https://github.com/elizaOS/eliza/pull/1574) ([tomguluson92](https://github.com/tomguluson92))
+- feat: parse files through prettier [\#1573](https://github.com/elizaOS/eliza/pull/1573) ([shakkernerd](https://github.com/shakkernerd))
+- fix: init 768 dimension in database for gaianet [\#1572](https://github.com/elizaOS/eliza/pull/1572) ([L-jasmine](https://github.com/L-jasmine))
+- feat: add TEE support for plugin-env [\#1571](https://github.com/elizaOS/eliza/pull/1571) ([samuveth](https://github.com/samuveth))
+- docs: Add "What Did You Get Done This Week? \#7" notes [\#1559](https://github.com/elizaOS/eliza/pull/1559) ([YoungPhlo](https://github.com/YoungPhlo))
+- feat: add theme toggle functionality with dark and light mode support [\#1555](https://github.com/elizaOS/eliza/pull/1555) ([zkfriendly](https://github.com/zkfriendly))
+- feat: \(example\) script to show how to add system prompt and templates to eliza with character file [\#1554](https://github.com/elizaOS/eliza/pull/1554) ([HashWarlock](https://github.com/HashWarlock))
+- feat: Twitter Spaces Integration [\#1550](https://github.com/elizaOS/eliza/pull/1550) ([slkzgm](https://github.com/slkzgm))
+- docs: Add JSDoc documentation [\#1549](https://github.com/elizaOS/eliza/pull/1549) ([madjin](https://github.com/madjin))
+- docs: Add JSDoc documentation [\#1548](https://github.com/elizaOS/eliza/pull/1548) ([madjin](https://github.com/madjin))
+- Fix jsdoc automation build issue & parametrize PR branch target [\#1547](https://github.com/elizaOS/eliza/pull/1547) ([Ed-Marcavage](https://github.com/Ed-Marcavage))
+- fix: Telegram Bad Request: can't parse entities [\#1546](https://github.com/elizaOS/eliza/pull/1546) ([azep-ninja](https://github.com/azep-ninja))
+- Chore: Refactor Imports. Improve PR Template [\#1545](https://github.com/elizaOS/eliza/pull/1545) ([mgunnin](https://github.com/mgunnin))
+- fix: twitter usernames can start with numbers [\#1541](https://github.com/elizaOS/eliza/pull/1541) ([odilitime](https://github.com/odilitime))
+- feat: improve stale pr/issue messages [\#1540](https://github.com/elizaOS/eliza/pull/1540) ([monilpat](https://github.com/monilpat))
+- feat: add autoscroll chat client [\#1538](https://github.com/elizaOS/eliza/pull/1538) ([swizzmagik](https://github.com/swizzmagik))
+- docs: Polish readme [\#1537](https://github.com/elizaOS/eliza/pull/1537) ([yanushevitz](https://github.com/yanushevitz))
+- fix: disable trust provider for PostGres db [\#1536](https://github.com/elizaOS/eliza/pull/1536) ([swizzmagik](https://github.com/swizzmagik))
+- Update README\_CN - Model Configuration [\#1535](https://github.com/elizaOS/eliza/pull/1535) ([RedHorse823](https://github.com/RedHorse823))
+- docs: fix grammar/typos in README [\#1534](https://github.com/elizaOS/eliza/pull/1534) ([SK1989sL](https://github.com/SK1989sL))
+- Fix: make twitter engagement criteria in prompt more focused on relevance to topics/interests/character [\#1533](https://github.com/elizaOS/eliza/pull/1533) ([e-fu](https://github.com/e-fu))
+- feat: improve GOAT integration by allowing tool calling when using generateText [\#1403](https://github.com/elizaOS/eliza/pull/1403) ([0xaguspunk](https://github.com/0xaguspunk))
+- fix: postgres-adapter - remove nonsensical schema check [\#1377](https://github.com/elizaOS/eliza/pull/1377) ([ryanleecode](https://github.com/ryanleecode))
+- feat: use custom conditions for live monorepo types [\#1365](https://github.com/elizaOS/eliza/pull/1365) ([ryanleecode](https://github.com/ryanleecode))
+
## [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)
@@ -1363,4 +1518,4 @@
-\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
\ No newline at end of file
+\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/README.md b/README.md
index 58750861101..11066daffe4 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,17 @@
- 🎮 Video Game NPCs
- 🧠 Trading
+## 💰 If you plan to launch a token
+
+This framework is the number one open source project on github, we are enabling the next generation of human-machine interface but we still need your help to ensure the code is of the utmost quality with response rapid to critical issues that will affect our builder community at large.
+
+To ensure sustainable development and continued innovation, we ask contributions of 5-10% of initial token distributions from successful launches.
+
+All contributions are publicly tracked on-chain and used exclusively for ecosystem development.
+
+### ⚠️ Don't forget to tip the big guy 10%: ⚠️
+[AM84n1iLdxgVTAyENBcLdjXoyvjentTbu5Q6EpKV1PeG](https://solscan.io/account/AM84n1iLdxgVTAyENBcLdjXoyvjentTbu5Q6EpKV1PeG)
+
## 🚀 Quick Start
### Prerequisites
@@ -138,6 +149,7 @@ pnpm install --include=optional sharp
- [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.
+- [Developer Discord](https://discord.gg/3f67SH4rXT). Best for: getting help and plugin development.
## Contributors
diff --git a/agent/package.json b/agent/package.json
index 48b3f4270ab..f4fa0f33e03 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -1,75 +1,75 @@
{
- "name": "@elizaos/agent",
- "version": "0.1.7-alpha.2",
- "main": "src/index.ts",
- "type": "module",
- "scripts": {
- "start": "node --loader ts-node/esm src/index.ts",
- "dev": "node --loader ts-node/esm src/index.ts",
- "check-types": "tsc --noEmit",
- "test": "jest"
- },
- "nodemonConfig": {
- "watch": [
- "src",
- "../core/dist"
- ],
- "ext": "ts,json",
- "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts"
- },
- "dependencies": {
- "@elizaos/adapter-postgres": "workspace:*",
- "@elizaos/adapter-redis": "workspace:*",
- "@elizaos/adapter-sqlite": "workspace:*",
- "@elizaos/client-auto": "workspace:*",
- "@elizaos/client-direct": "workspace:*",
- "@elizaos/client-discord": "workspace:*",
- "@elizaos/client-farcaster": "workspace:*",
- "@elizaos/client-lens": "workspace:*",
- "@elizaos/client-telegram": "workspace:*",
- "@elizaos/client-twitter": "workspace:*",
- "@elizaos/client-slack": "workspace:*",
- "@elizaos/core": "workspace:*",
- "@elizaos/plugin-0g": "workspace:*",
- "@elizaos/plugin-abstract": "workspace:*",
- "@elizaos/plugin-aptos": "workspace:*",
- "@elizaos/plugin-bootstrap": "workspace:*",
- "@elizaos/plugin-intiface": "workspace:*",
- "@elizaos/plugin-coinbase": "workspace:*",
- "@elizaos/plugin-conflux": "workspace:*",
- "@elizaos/plugin-evm": "workspace:*",
- "@elizaos/plugin-echochambers": "workspace:*",
- "@elizaos/plugin-flow": "workspace:*",
- "@elizaos/plugin-gitbook": "workspace:*",
- "@elizaos/plugin-story": "workspace:*",
- "@elizaos/plugin-goat": "workspace:*",
- "@elizaos/plugin-icp": "workspace:*",
- "@elizaos/plugin-image-generation": "workspace:*",
- "@elizaos/plugin-nft-generation": "workspace:*",
- "@elizaos/plugin-node": "workspace:*",
- "@elizaos/plugin-solana": "workspace:*",
- "@elizaos/plugin-starknet": "workspace:*",
- "@elizaos/plugin-ton": "workspace:*",
- "@elizaos/plugin-sui": "workspace:*",
- "@elizaos/plugin-tee": "workspace:*",
- "@elizaos/plugin-multiversx": "workspace:*",
- "@elizaos/plugin-near": "workspace:*",
- "@elizaos/plugin-zksync-era": "workspace:*",
- "@elizaos/plugin-twitter": "workspace:*",
- "@elizaos/plugin-cronoszkevm": "workspace:*",
- "@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"
- },
- "devDependencies": {
- "@types/jest": "^29.5.14",
- "jest": "^29.7.0",
- "ts-jest": "^29.2.5",
- "ts-node": "10.9.2",
- "tsup": "8.3.5"
- }
+ "name": "@elizaos/agent",
+ "version": "0.1.7",
+ "main": "src/index.ts",
+ "type": "module",
+ "scripts": {
+ "start": "node --loader ts-node/esm src/index.ts",
+ "dev": "node --loader ts-node/esm src/index.ts",
+ "check-types": "tsc --noEmit",
+ "test": "jest"
+ },
+ "nodemonConfig": {
+ "watch": [
+ "src",
+ "../core/dist"
+ ],
+ "ext": "ts,json",
+ "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts"
+ },
+ "dependencies": {
+ "@elizaos/adapter-postgres": "workspace:*",
+ "@elizaos/adapter-redis": "workspace:*",
+ "@elizaos/adapter-sqlite": "workspace:*",
+ "@elizaos/client-auto": "workspace:*",
+ "@elizaos/client-direct": "workspace:*",
+ "@elizaos/client-discord": "workspace:*",
+ "@elizaos/client-farcaster": "workspace:*",
+ "@elizaos/client-lens": "workspace:*",
+ "@elizaos/client-telegram": "workspace:*",
+ "@elizaos/client-twitter": "workspace:*",
+ "@elizaos/client-slack": "workspace:*",
+ "@elizaos/core": "workspace:*",
+ "@elizaos/plugin-0g": "workspace:*",
+ "@elizaos/plugin-abstract": "workspace:*",
+ "@elizaos/plugin-aptos": "workspace:*",
+ "@elizaos/plugin-bootstrap": "workspace:*",
+ "@elizaos/plugin-intiface": "workspace:*",
+ "@elizaos/plugin-coinbase": "workspace:*",
+ "@elizaos/plugin-conflux": "workspace:*",
+ "@elizaos/plugin-evm": "workspace:*",
+ "@elizaos/plugin-echochambers": "workspace:*",
+ "@elizaos/plugin-flow": "workspace:*",
+ "@elizaos/plugin-gitbook": "workspace:*",
+ "@elizaos/plugin-story": "workspace:*",
+ "@elizaos/plugin-goat": "workspace:*",
+ "@elizaos/plugin-icp": "workspace:*",
+ "@elizaos/plugin-image-generation": "workspace:*",
+ "@elizaos/plugin-nft-generation": "workspace:*",
+ "@elizaos/plugin-node": "workspace:*",
+ "@elizaos/plugin-solana": "workspace:*",
+ "@elizaos/plugin-starknet": "workspace:*",
+ "@elizaos/plugin-ton": "workspace:*",
+ "@elizaos/plugin-sui": "workspace:*",
+ "@elizaos/plugin-tee": "workspace:*",
+ "@elizaos/plugin-multiversx": "workspace:*",
+ "@elizaos/plugin-near": "workspace:*",
+ "@elizaos/plugin-zksync-era": "workspace:*",
+ "@elizaos/plugin-twitter": "workspace:*",
+ "@elizaos/plugin-cronoszkevm": "workspace:*",
+ "@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"
+ },
+ "devDependencies": {
+ "@types/jest": "^29.5.14",
+ "jest": "^29.7.0",
+ "ts-jest": "^29.2.5",
+ "ts-node": "10.9.2",
+ "tsup": "8.3.5"
+ }
}
diff --git a/client/package.json b/client/package.json
index cd40443b66c..ba963ec4e47 100644
--- a/client/package.json
+++ b/client/package.json
@@ -1,47 +1,47 @@
{
- "name": "eliza-client",
- "private": true,
- "version": "0.1.7-alpha.2",
- "type": "module",
- "scripts": {
- "dev": "vite",
- "build": "vite build",
- "check-types": "tsc --noEmit",
- "lint": "eslint .",
- "preview": "vite preview"
- },
- "dependencies": {
- "@elizaos/core": "workspace:*",
- "@radix-ui/react-dialog": "1.1.2",
- "@radix-ui/react-separator": "1.1.0",
- "@radix-ui/react-slot": "1.1.0",
- "@radix-ui/react-tooltip": "1.1.4",
- "@tanstack/react-query": "5.61.0",
- "class-variance-authority": "0.7.1",
- "clsx": "2.1.1",
- "lucide-react": "0.460.0",
- "react": "18.3.1",
- "react-dom": "18.3.1",
- "react-router-dom": "6.22.1",
- "tailwind-merge": "2.5.5",
- "tailwindcss-animate": "1.0.7",
- "vite-plugin-top-level-await": "1.4.4",
- "vite-plugin-wasm": "3.3.0"
- },
- "devDependencies": {
- "@eslint/js": "9.16.0",
- "@types/node": "22.8.4",
- "@types/react": "18.3.12",
- "@types/react-dom": "18.3.1",
- "@vitejs/plugin-react": "4.3.3",
- "autoprefixer": "10.4.20",
- "eslint-plugin-react-hooks": "5.0.0",
- "eslint-plugin-react-refresh": "0.4.14",
- "globals": "15.11.0",
- "postcss": "8.4.49",
- "tailwindcss": "3.4.15",
- "typescript": "5.6.3",
- "typescript-eslint": "8.11.0",
- "vite": "link:@tanstack/router-plugin/vite"
- }
+ "name": "eliza-client",
+ "private": true,
+ "version": "0.1.7",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "check-types": "tsc --noEmit",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@elizaos/core": "workspace:*",
+ "@radix-ui/react-dialog": "1.1.2",
+ "@radix-ui/react-separator": "1.1.0",
+ "@radix-ui/react-slot": "1.1.0",
+ "@radix-ui/react-tooltip": "1.1.4",
+ "@tanstack/react-query": "5.61.0",
+ "class-variance-authority": "0.7.1",
+ "clsx": "2.1.1",
+ "lucide-react": "0.460.0",
+ "react": "18.3.1",
+ "react-dom": "18.3.1",
+ "react-router-dom": "6.22.1",
+ "tailwind-merge": "2.5.5",
+ "tailwindcss-animate": "1.0.7",
+ "vite-plugin-top-level-await": "1.4.4",
+ "vite-plugin-wasm": "3.3.0"
+ },
+ "devDependencies": {
+ "@eslint/js": "9.16.0",
+ "@types/node": "22.8.4",
+ "@types/react": "18.3.12",
+ "@types/react-dom": "18.3.1",
+ "@vitejs/plugin-react": "4.3.3",
+ "autoprefixer": "10.4.20",
+ "eslint-plugin-react-hooks": "5.0.0",
+ "eslint-plugin-react-refresh": "0.4.14",
+ "globals": "15.11.0",
+ "postcss": "8.4.49",
+ "tailwindcss": "3.4.15",
+ "typescript": "5.6.3",
+ "typescript-eslint": "8.11.0",
+ "vite": "link:@tanstack/router-plugin/vite"
+ }
}
diff --git a/client/src/Agents.tsx b/client/src/Agents.tsx
index 06e2c56b495..90de2fca667 100644
--- a/client/src/Agents.tsx
+++ b/client/src/Agents.tsx
@@ -1,23 +1,11 @@
-import { useQuery } from "@tanstack/react-query";
import { Button } from "@/components/ui/button";
import { useNavigate } from "react-router-dom";
+import { useGetAgentsQuery } from "@/api";
import "./App.css";
-type Agent = {
- id: string;
- name: string;
-};
-
function Agents() {
const navigate = useNavigate();
- const { data: agents, isLoading } = useQuery({
- queryKey: ["agents"],
- queryFn: async () => {
- const res = await fetch("/api/agents");
- const data = await res.json();
- return data.agents as Agent[];
- },
- });
+ const { data: agents, isLoading } = useGetAgentsQuery()
return (
diff --git a/client/src/Chat.tsx b/client/src/Chat.tsx
index c699692ddc6..b9959f6a40f 100644
--- a/client/src/Chat.tsx
+++ b/client/src/Chat.tsx
@@ -1,17 +1,12 @@
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
-import { useMutation } from "@tanstack/react-query";
+import type { TextResponse } from "@/api";
+import { useSendMessageMutation } from "@/api";
import { ImageIcon } from "lucide-react";
import { useEffect, useRef, useState } from "react";
import { useParams } from "react-router-dom";
import "./App.css";
-type TextResponse = {
- text: string;
- user: string;
- attachments?: { url: string; contentType: string; title: string }[];
-};
-
export default function Chat() {
const { agentId } = useParams();
const [input, setInput] = useState("");
@@ -19,6 +14,7 @@ export default function Chat() {
const [selectedFile, setSelectedFile] = useState
(null);
const fileInputRef = useRef(null);
const messagesEndRef = useRef(null);
+ const { mutate: sendMessage, isPending } = useSendMessageMutation({ setMessages, setSelectedFile });
const scrollToBottom = () => {
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
@@ -28,32 +24,9 @@ export default function Chat() {
scrollToBottom();
}, [messages]);
- const mutation = useMutation({
- mutationFn: async (text: string) => {
- const formData = new FormData();
- formData.append("text", text);
- formData.append("userId", "user");
- formData.append("roomId", `default-room-${agentId}`);
-
- if (selectedFile) {
- formData.append("file", selectedFile);
- }
-
- const res = await fetch(`/api/${agentId}/message`, {
- method: "POST",
- body: formData,
- });
- return res.json() as Promise;
- },
- onSuccess: (data) => {
- setMessages((prev) => [...prev, ...data]);
- setSelectedFile(null);
- },
- });
-
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
- if (!input.trim() && !selectedFile) return;
+ if ((!input.trim() && !selectedFile) || !agentId) return;
// Add user message immediately to state
const userMessage: TextResponse = {
@@ -63,7 +36,7 @@ export default function Chat() {
};
setMessages((prev) => [...prev, userMessage]);
- mutation.mutate(input);
+ sendMessage({ text: input, agentId, selectedFile });
setInput("");
};
@@ -142,19 +115,19 @@ export default function Chat() {
onChange={(e) => setInput(e.target.value)}
placeholder="Type a message..."
className="flex-1"
- disabled={mutation.isPending}
+ disabled={isPending}
/>
-