diff --git a/.env.example b/.env.example index dc721e933f..aa9256ffd3 100644 --- a/.env.example +++ b/.env.example @@ -20,6 +20,7 @@ IMAGE_OPENAI_MODEL= # Default: dall-e-3 ETERNALAI_URL= ETERNALAI_MODEL= # Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16" ETERNALAI_API_KEY= +ETERNAL_AI_LOG_REQUEST=false #Default: false GROK_API_KEY= # GROK API Key GROQ_API_KEY= # Starts with gsk_ @@ -368,3 +369,7 @@ CRONOSZKEVM_PRIVATE_KEY= # Fuel Ecosystem (FuelVM) FUEL_WALLET_PRIVATE_KEY= + +# Tokenizer Settings +TOKENIZER_MODEL= # Specify the tokenizer model to be used. +TOKENIZER_TYPE= # Options: tiktoken (for OpenAI models) or auto (AutoTokenizer from Hugging Face for non-OpenAI models). Default: tiktoken. diff --git a/.github/workflows/jsdoc-automation.yml b/.github/workflows/jsdoc-automation.yml index d487b08fe4..3ac3615c04 100644 --- a/.github/workflows/jsdoc-automation.yml +++ b/.github/workflows/jsdoc-automation.yml @@ -3,14 +3,24 @@ name: JSDoc Automation on: workflow_dispatch: inputs: + jsdoc: + description: 'Generate JSDoc comments (T/F)' + required: true + default: 'T' + type: string + readme: + description: 'Generate README documentation (T/F)' + required: true + default: 'T' + type: string pull_number: - description: 'Pull Request Number (if not provided, scans root_directory) - PR must be merged to develop branch' + description: 'Pull Request Number (if not provided, scans root_directory) - PR must be merged to develop branch. DONT provide if `README documentation` is T from above' required: false type: string root_directory: description: 'Only scans files in this directory (relative to repository root, e.g., packages/core/src)' required: true - default: 'packages/core/src/test_resources' + default: 'packages/plugin-near/' type: string excluded_directories: description: 'Directories to exclude from scanning (comma-separated, relative to root_directory)' @@ -18,7 +28,7 @@ on: default: 'node_modules,dist,test' type: string reviewers: - description: 'Pull Request Reviewers (comma-separated GitHub usernames)' + description: 'Pull Request Reviewers (Must be collaborator on the repository) comma-separated GitHub usernames' required: true default: '' type: string @@ -27,6 +37,11 @@ on: required: false default: 'develop' type: string + language: + description: 'Documentation language (e.g., English, Spanish, French)' + required: true + default: 'English' + type: string jobs: generate-docs: @@ -45,7 +60,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '23' + node-version: '20' - name: Install pnpm uses: pnpm/action-setup@v2 @@ -71,17 +86,19 @@ jobs: working-directory: scripts/jsdoc-automation run: pnpm install --no-frozen-lockfile + - name: Build TypeScript + working-directory: scripts/jsdoc-automation + run: pnpm build + - name: Run documentation generator working-directory: scripts/jsdoc-automation - run: | - echo "Node version: $(node --version)" - echo "NPM version: $(npm --version)" - echo "Directory contents:" - ls -la - NODE_OPTIONS='--experimental-vm-modules --no-warnings' pnpm start + run: pnpm start env: INPUT_ROOT_DIRECTORY: ${{ inputs.root_directory }} INPUT_PULL_NUMBER: ${{ inputs.pull_number }} INPUT_EXCLUDED_DIRECTORIES: ${{ inputs.excluded_directories }} INPUT_REVIEWERS: ${{ inputs.reviewers }} - INPUT_BRANCH: ${{ inputs.branch }} \ No newline at end of file + INPUT_BRANCH: ${{ inputs.branch }} + INPUT_LANGUAGE: ${{ inputs.language }} + INPUT_JSDOC: ${{ inputs.jsdoc }} + INPUT_README: ${{ inputs.readme }} diff --git a/Dockerfile.docs b/Dockerfile.docs new file mode 100644 index 0000000000..ae2ea6bf14 --- /dev/null +++ b/Dockerfile.docs @@ -0,0 +1,58 @@ +# syntax=docker/dockerfile:1 + +## Modified version of https://docusaurus.community/knowledge/deployment/docker/ + +# Stage 1: Base image. +## Start with a base image containing NodeJS so we can build Docusaurus. +FROM node:23.3.0-slim AS base +## Disable colour output from yarn to make logs easier to read. + +## https://pnpm.io/docker +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" + +ENV FORCE_COLOR=0 +## Enable corepack. +RUN corepack enable +## Set the working directory to `/opt/docusaurus`. +WORKDIR /opt/docusaurus + +## Required by docusaurus: [ERROR] Loading of version failed for version current +RUN apt-get update && apt-get install -y git + +FROM base AS dev +## Set the working directory to `/opt/docusaurus`. +WORKDIR /opt/docusaurus +## Expose the port that Docusaurus will run on. +EXPOSE 3000 +## Run the development server. +CMD [ -d "node_modules" ] && npm run start -- --host 0.0.0.0 --poll 1000 || pnpm install && pnpm run start -- --host 0.0.0.0 --poll 1000 + +# Stage 2b: Production build mode. +FROM base AS prod +## Set the working directory to `/opt/docusaurus`. +WORKDIR /opt/docusaurus + +COPY docs/package.json /opt/docusaurus/package.json +COPY docs/package-lock.json /opt/docusaurus/package-lock.json + +## Install dependencies with `--immutable` to ensure reproducibility. +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install + +## Copy over the source code. +COPY docs/ /opt/docusaurus/ +COPY packages/ /opt/packages/ + +## Required buy docusaurus [ERROR] Loading of version failed for version current +COPY .git/ /opt/.git/ + +# Build from sources +RUN pnpm run build + +# Stage 3a: Serve with `docusaurus serve`. +FROM prod AS serve +## Expose the port that Docusaurus will run on. +EXPOSE 3000 +## Run the production server. +CMD ["npm", "run", "serve", "--", "--host", "0.0.0.0", "--no-open"] + diff --git a/README.md b/README.md index 7997188edb..38d7e8413b 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ## 🌍 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) +[中文说明](./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) | [Srpski](./README_RS.md) ## 🚩 Overview @@ -149,4 +149,4 @@ pnpm install --include=optional sharp ## Star History -[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) \ No newline at end of file +[![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 ebbe2fb29f..6e643e67d0 100644 --- a/README_KOR.md +++ b/README_KOR.md @@ -12,24 +12,20 @@ ## ✨ 기능 -- 🛠 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로 어떤걸 만들 수 있을까요? - -- 🤖 챗봇 개발 -- 🕵 ️AI가 자율적으로 결과를 만들어줘요! -- 📈 업무처리 자동화 +- 🛠 SNS 지원: 디스코드, 트위터, 텔레그램 연동 지원 +- 🔗 다양한 모델 지원 (Llama, Grok, OpenAI, Anthropic 등) +- 👥 다중 지원: 다중 에이전트 및 채팅방 지원 +- 📚 높은 유연성: 데이터를 쉽게 추가하고 다양한 상호작용 가능 +- 💾 검색 지원: 데이터와 작업을 쉽게 찾아볼 수 있도록 검색 기능 지원 +- 🚀 높은 확장성: 사용자 정의 동작 및 클라이언트 생성 가능 +- ☁️ 다양한 AI 모델 지원: local Llama, OpenAI, Anthropic, Groq 등 다양한 AI 모델을 지원합니다 +- 📦 즐겁게 개발해 봐요! + +## 🎯 사용 사례 + +- 🤖 챗봇 +- 🕵 ️자율 에이전트 +- 📈 자동화 프로세스 - 🎮 비디오 게임 NPC - 🧠 트레이딩 @@ -41,28 +37,24 @@ - [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 build && pnpm start -``` -에이전트가 실행되면 마지막에 "pnpm start:client"를 실행하라는 메시지가 표시됩니다. -다른 터미널을 열고 같은 디렉토리로 이동한 뒤 아래 명령어를 실행하세요. 표시된 URL을 열어 에이전트와 대화하세요. -```bash -pnpm start:client + +pnpm i && pnpm start ``` -[문서](https://elizaos.github.io/eliza/)를 참고하여 Eliza를 커스터마이징하는 방법을 배워보세요. +[문서](https://elizaos.github.io/eliza/)를 참고하여 Eliza를 커스마이징 방법을 확인하세요. -### Eliza를 수동으로 실행하기 (경험자에게만 권장) +### 수동으로 실행 (사용법을 알고 있는 경우에만 권장) ```bash -# 리포지토리 클론 +# 저장소 복사 git clone https://github.com/elizaos/eliza.git # 최신 릴리스로 체크아웃 @@ -115,7 +107,7 @@ pnpm clean #### 추가 요구 사항 -시작할 때 오류가 발생하면 Sharp를 설치해야 할 수도 있습니다. 아래 명령어를 실행하여 설치하세요: +시작 시 에러가 발생하면 Sharp를 설치해야 할 수 있습니다. 아래 명령어를 사용하여 설치하세요: ``` pnpm install --include=optional sharp @@ -123,10 +115,10 @@ pnpm install --include=optional sharp ### 커뮤니티 & 문의 -- [Github Issues](https://github.com/elizaos/eliza/issues). liza 사용 중 발견된 버그 보고 및 기능 제안에 적합합니다. -- [Discord](https://discord.gg/ai16z). 애플리케이션 공유 및 커뮤니티와의 소통에 적합합니다. +- [Github Issues](https://github.com/elizaos/eliza/issues). 용도: Eliza 사용 중 발견된 버그 리포트, 기능 제안. +- [Discord](https://discord.gg/ai16z). 용도: 애플리케이션 공유 및 커뮤니티 활동. -## 컨트리뷰터 +## 기여자 @@ -134,4 +126,4 @@ pnpm install --include=optional sharp ## 스타 기록 -[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) +[![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) \ No newline at end of file diff --git a/README_RS.md b/README_RS.md new file mode 100644 index 0000000000..91164e2d10 --- /dev/null +++ b/README_RS.md @@ -0,0 +1,181 @@ +# Eliza + +Baner Eliza + +## Funkcionalnosti + +- 🛠 Kompletni konektori za Discord, Twitter i Telegram +- 👥 Podrška za više agenata i soba +- 📚 Jednostavna ingestija i interakcija sa dokumentima +- 💾 Memorija koja se može povratiti i skladištenje dokumenata +- 🚀 Visoko proširivo - kreirajte sopstvene akcije i klijente za proširenje mogućnosti +- ☁️ Podržava više modela, uključujući Llama lokalno, OpenAI, Anthropic, Groq i više +- 📦 Radi besprekorno + +## Upotrebe + +- 🤖 Chatbotovi +- 🕵️ Autonomni agenti +- 📈 Upravljanje poslovnim procesima +- 🎮 NPC-ovi u video igrama + +# Prvi Koraci + +**Zahtevi (OBAVEZNI):** + +- [Python 2.7+](https://www.python.org/downloads/) +- [Node.js 23.3+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) + +### Uredite .env datoteku + +- Kopirajte datoteku .env.example u .env i popunite odgovarajuće vrednosti +- Uredite TWITTER promenljive okruženja da dodate korisničko ime i lozinku bota + +### Uredite datoteku karaktera + +- Pregledajte datoteku `src/core/defaultCharacter.ts` - možete je modifikovati +- Takođe možete učitati karaktere sa komandom `pnpm start --characters="path/to/your/character.json"` i pokrenuti više botova istovremeno. + +Nakon što konfigurišete .env datoteku i datoteku karaktera, možete pokrenuti bota sa: + +``` +pnpm i +pnpm start +``` + +# Personalizacija Elize + +### Dodavanje prilagođenih akcija + +Da biste izbegli sukobe u centralnom direktorijumu, preporučuje se dodavanje prilagođenih akcija u direktorijum `custom_actions` i zatim ih dodajte u datoteku `elizaConfig.yaml`. Pogledajte datoteku `elizaConfig.example.yaml` za primer. + +## Pokretanje sa Različitim Modelima + +### Pokretanje sa Llama + +Možete pokrenuti Llama modele 70B ili 405B podešavanjem promenljive okruženja `XAI_MODEL` na `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` ili `meta-llama/Meta-Llama-3.1-405B-Instruct` + +### Pokretanje sa Grok + +Možete pokrenuti Grok modele podešavanjem promenljive okruženja `XAI_MODEL` na `grok-beta` + +### Pokretanje sa OpenAI + +Možete pokrenuti OpenAI modele podešavanjem promenljive okruženja `XAI_MODEL` na `gpt-4o-mini` ili `gpt-4o` + +## Dodatni Zahtevi + +Možda će biti potrebno instalirati Sharp. Ako naiđete na grešku prilikom pokretanja, pokušajte da ga instalirate sa: + +``` +pnpm install --include=optional sharp +``` + +# Konfiguracija Okruženja + +Trebaće vam da dodate promenljive okruženja u vašu .env datoteku da biste se povezali sa različitim platformama: + +``` +# Obavezne promenljive okruženja +DISCORD_APPLICATION_ID= +DISCORD_API_TOKEN= # Token bota +OPENAI_API_KEY=sk-* # API ključ OpenAI, počinje sa sk- +ELEVENLABS_XI_API_KEY= # API ključ ElevenLabs +GOOGLE_GENERATIVE_AI_API_KEY= # API ključ Gemini + +# KONFIGURACIJE 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= # Korisničko ime naloga +TWITTER_PASSWORD= # Lozinka naloga +TWITTER_EMAIL= # Email naloga + +X_SERVER_URL= +XAI_API_KEY= +XAI_MODEL= + +# Za konsultacije sa Claude +ANTHROPIC_API_KEY= + +# EVM +EVM_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY + +# Solana +SOLANA_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY +SOLANA_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY + +# Konfiguracija rezervnog novčanika (zastarelo) +WALLET_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_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= +``` + +# Konfiguracija Lokalne Inference + +### Konfiguracija CUDA + +Ako imate NVIDIA GPU, možete instalirati CUDA da značajno ubrzate lokalnu inferencu. + +``` +pnpm install +npx --no node-llama-cpp source download --gpu cuda +``` + +Uverite se da imate instaliran CUDA Toolkit, uključujući cuDNN i cuBLAS. + +### Lokalno Pokretanje + +Dodajte XAI_MODEL i konfigurišite ga sa jednom od opcija iz [Pokretanje sa Llama](#pokretanje-sa-llama) - možete ostaviti X_SERVER_URL i XAI_API_KEY praznim, preuzeće model sa HuggingFace i izvršiti upite lokalno + +# Klijenti + +## Discord Bot + +Za pomoć sa konfiguracijom vašeg Discord Bota, pogledajte: https://discordjs.guide/preparations/setting-up-a-bot-application.html + +# Razvoj + +## Testiranje + +Za pokretanje test suite-a: + +```bash +pnpm test # Pokreni testove jednom +pnpm test:watch # Pokreni testove u režimu posmatranja +``` + +Za specifične testove baze podataka: + +```bash +pnpm test:sqlite # Pokreni testove sa SQLite +pnpm test:sqljs # Pokreni testove sa SQL.js +``` + +Testovi su napisani sa Jest i mogu se naći u datotekama `src/**/*.test.ts`. Testno okruženje je konfigurisano za: + +- Učitavanje promenljivih okruženja iz `.env.test` +- Korišćenje limita od 2 minuta za dugotrajne testove +- Podršku za ESM module +- Pokretanje testova u sekvenci (--runInBand) + +Za kreiranje novih testova, dodajte `.test.ts` datoteku pored koda koji testirate. \ No newline at end of file diff --git a/client/src/Chat.tsx b/client/src/Chat.tsx index f9538d1323..c699692ddc 100644 --- a/client/src/Chat.tsx +++ b/client/src/Chat.tsx @@ -92,8 +92,8 @@ export default function Chat() { : "justify-start" }`} > -
) ))} -
+ )) ) : ( diff --git a/client/vite.config.ts b/client/vite.config.ts index 32d1e1b9fd..1cf014840e 100644 --- a/client/vite.config.ts +++ b/client/vite.config.ts @@ -27,9 +27,10 @@ export default defineConfig({ }, }, server: { + host: true, proxy: { "/api": { - target: `http://localhost:${process.env.SERVER_PORT || 3000}`, + target: `http://127.0.0.1:${process.env.SERVER_PORT || 3000}`, changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ""), }, diff --git a/docker-compose-docs.yaml b/docker-compose-docs.yaml new file mode 100644 index 0000000000..5103dea5dc --- /dev/null +++ b/docker-compose-docs.yaml @@ -0,0 +1,9 @@ +services: + docs: + build: + dockerfile: Dockerfile.docs + context: . + target: serve + ports: + - 3000:3000 + diff --git a/docs/README.md b/docs/README.md index 5e4da17b9a..3b1791b826 100644 --- a/docs/README.md +++ b/docs/README.md @@ -179,3 +179,13 @@ Tests are written using Jest and can be found in `src/**/*.test.ts` files. The t - Run tests in sequence (--runInBand) To create new tests, add a `.test.ts` file adjacent to the code you're testing. + +## Docs Updates + +Please make sure to vetify if the documentation provided is correct. In order to do so, please run the docs service. + +```console +docker compose -f docker-compose-docs.yaml up --build +``` + +The docusaurus server will get started and you can verify it locally at https://localhost:3000/eliza. diff --git a/docs/docs/faq.md b/docs/docs/faq.md index 2679234299..5e0baea566 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -8,7 +8,7 @@ ### Who is behind Eliza? -The Eliza project is led by the developers of elizaos, an AI-driven DAO founded by an AI version of Marc Andreessen. The lead developer is [Shaw](https://x.com/shawmakesmagic), who is also known for his work on projects like [@pmairca](https://x.com/pmairca) and [@degenspartanai](https://x.com/degenspartanai). The project is open source, and its code is available on GitHub: https://github.com/elizaos/eliza +The Eliza project is led by [Shaw](https://x.com/shawmakesmagic). The project is open source, and its code is available on GitHub: https://github.com/elizaos/eliza ### How can I get started with Eliza? @@ -62,66 +62,10 @@ The Eliza project is continuously evolving, with ongoing development and communi - **Enhancing the trust engine**: Provide robust and secure recommendations within decentralized networks. - **Fostering community growth**: Rewarding contributions to expand the project's reach and impact. ---- +### How can I contribute to Eliza? -## elizaos FAQ - -### What is elizaos and how is it related to Eliza? - -**elizaos is an AI-driven DAO and fund, conceptualized as being led by an AI version of Marc Andreessen.** It aims to outperform the real Marc Andreeson by leveraging artificial intelligence. The developers of Eliza created elizaos to support their work in autonomous AI agents. While elizaos primarily focuses on trading, Eliza is a more general-purpose framework that can be used for various applications beyond finance. - -### When will token is mintable be fixed? - -Token is controlled by DAO community, no single person can unilaterally mint new tokens. The daos.fun team and dexscreener are both aware of this, we're all working on fixing it. - -### Liquidity seems low - -The DAOs.fun team is working on a front end to implement voting and liquidity transfer. - -### What is the difference between $elizaos and $degenai? - -The $elizaos token is the governance token of the elizaos DAO. Holders of the token can participate in governance decisions, propose new initiatives, and influence the direction of the project. - -DegenSpartanAI is another AI agent project created by Shaw. The $degenai token is associated with this project. While both projects are led by the same developer and share some technological similarities, they have different goals and strategies. - -elizaos is envisioned as a community-driven, PvE (player versus environment) focused fund, while DegenAI is more of a trading agent with a PvP (player versus player), aggressive approach. - -### Will the agent launch pump fund coins? - -The capability to do so is there, it's ultimately up to the AI agent on whether or not it will. - -### Can the agent invest in my project? - -Yes, if you make a convincing argument. - -### Who runs elizaos? - -elizaos is a decentralized autonomous organization (DAO) launched on daos.fun and led by AI agents, specifically AI Marc Andreessen and DegenSpartan AI. Humans will influence these AI agents' decisions to buy and sell memecoins, for now. - -### Do all trade suggestions happen in one place? - -Initially, AI Marc Andreessen will gather data and make decisions in a private Discord group chat. Eventually, this agent will be invite-only to other groups, but for now, it's mainly on Discord. - -### What happens when people copy the GitHub? - -Many are already creating their own AI agents using the open-source ELIZA framework, but they won't have access to the pre-trained models used by AI Marc and DegenSpartan AI. - -### What are the future plans for elizaos? - -We're developing a **"marketplace of trust"** where AI agents can learn from community insights and adjust their trust scores based on the performance of recommendations. Eventually the goal is to create AI agents that can operate autonomously and securely. - -### How can I contribute to elizaos? - -There are several ways to contribute to the elizaos project: +There are several ways to contribute to the Eliza project: - **Participate in community discussions**: Share your memecoin insights, propose new ideas, and engage with other community members. -- **Contribute to the development of the elizaos platform**: https://github.com/orgs/elizaos/projects/1/views/3 -- **Help build the elizaos ecosystem**: Create applicatoins / tools, resources, and memes. Give feedback, and spread the word - -**Other questions:** - -- elizaos and a16z are not officially affiliated. -- ELIZA is an open-source conversational agent framework. -- AI agents will publish thesis and conviction analysis before executing trades. -- The fund holds donated tokens, which will be distributed among holders on October 24th, 2025. -- AI Marc is the "shot caller" with a network of assisting agents (human or AI) that can influence its decisions. +- **Contribute to the development of the Eliza platform**: https://github.com/orgs/elizaos/projects/1/views/3 +- **Help build the Eliza ecosystem**: Create applicatoins / tools, resources, and memes. Give feedback, and spread the word diff --git a/docs/docs/packages/plugins.md b/docs/docs/packages/plugins.md index 8e13cf7062..50e01a8419 100644 --- a/docs/docs/packages/plugins.md +++ b/docs/docs/packages/plugins.md @@ -610,12 +610,12 @@ The Fuel plugin provides an interface to the Fuel Ignition blockchain. **Actions:** 1. `TRANSFER_FUEL_ETH` - Transfer ETH to a given Fuel address. - **Inputs**: - `toAddress` (string): The Fuel address to transfer ETH to. - `amount` (string): The amount of ETH to transfer. - **Outputs**: Confirmation message with transaction details. - **Example**: - `json -{ + ```json + { "toAddress": "0x8F8afB12402C9a4bD9678Bec363E51360142f8443FB171655eEd55dB298828D1", "amount": "0.00001" -} -` + } + ``` **Setup and Configuration:** 1. **Configure the Plugin** diff --git a/docs/package.json b/docs/package.json index 4956c66cf9..3cd7c59c18 100644 --- a/docs/package.json +++ b/docs/package.json @@ -2,6 +2,7 @@ "name": "eliza-docs", "version": "0.1.7-alpha.2", "private": true, + "packageManager": "pnpm@9.4.0", "scripts": { "docusaurus": "docusaurus", "start": "docusaurus start --no-open", @@ -21,9 +22,11 @@ "@docusaurus/plugin-ideal-image": "3.6.3", "@docusaurus/preset-classic": "3.6.3", "@docusaurus/theme-mermaid": "3.6.3", + "@docusaurus/theme-common": "3.6.3", "@mdx-js/react": "3.0.1", "clsx": "2.1.1", "docusaurus-lunr-search": "3.5.0", + "lunr": "2.3.9", "dotenv": "^16.4.7", "prism-react-renderer": "2.3.1", "react": "18.3.1", diff --git a/packages/adapter-postgres/package.json b/packages/adapter-postgres/package.json index 75c5a929a6..c475357bdd 100644 --- a/packages/adapter-postgres/package.json +++ b/packages/adapter-postgres/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/adapter-postgres", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@types/pg": "8.11.10", diff --git a/packages/adapter-redis/package.json b/packages/adapter-redis/package.json index 7c72b6380e..0c07d20858 100644 --- a/packages/adapter-redis/package.json +++ b/packages/adapter-redis/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/adapter-redis", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "ioredis": "5.4.2" diff --git a/packages/adapter-sqlite/package.json b/packages/adapter-sqlite/package.json index 5189a30740..c129476e69 100644 --- a/packages/adapter-sqlite/package.json +++ b/packages/adapter-sqlite/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/adapter-sqlite", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@types/better-sqlite3": "7.6.12", diff --git a/packages/adapter-sqljs/package.json b/packages/adapter-sqljs/package.json index 144dc16f90..e7cc40f221 100644 --- a/packages/adapter-sqljs/package.json +++ b/packages/adapter-sqljs/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/adapter-sqljs", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@types/sql.js": "1.4.9", diff --git a/packages/adapter-supabase/package.json b/packages/adapter-supabase/package.json index 158998e555..d5265c32c0 100644 --- a/packages/adapter-supabase/package.json +++ b/packages/adapter-supabase/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/adapter-supabase", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@supabase/supabase-js": "2.46.2" diff --git a/packages/client-auto/package.json b/packages/client-auto/package.json index 637d85f86d..3802a33d3a 100644 --- a/packages/client-auto/package.json +++ b/packages/client-auto/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-auto", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@types/body-parser": "1.19.5", diff --git a/packages/client-direct/package.json b/packages/client-direct/package.json index 69eb47e656..58fc4ea7cf 100644 --- a/packages/client-direct/package.json +++ b/packages/client-direct/package.json @@ -2,8 +2,22 @@ "name": "@elizaos/client-direct", "version": "0.1.7-alpha.2", "main": "dist/index.js", + "module": "dist/index.js", "type": "module", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-image-generation": "workspace:*", diff --git a/packages/client-discord/package.json b/packages/client-discord/package.json index f7e08d93e5..3a16500026 100644 --- a/packages/client-discord/package.json +++ b/packages/client-discord/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-discord", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-node": "workspace:*", diff --git a/packages/client-discord/src/actions/chat_with_attachments.ts b/packages/client-discord/src/actions/chat_with_attachments.ts index 61163651d9..832acd58ae 100644 --- a/packages/client-discord/src/actions/chat_with_attachments.ts +++ b/packages/client-discord/src/actions/chat_with_attachments.ts @@ -191,17 +191,16 @@ const summarizeAction = { state.attachmentsWithText = attachmentsWithText; state.objective = objective; - + const template = await trimTokens( + summarizationTemplate, + chunkSize + 500, + runtime + ); const context = composeContext({ state, // make sure it fits, we can pad the tokens a bit // Get the model's tokenizer based on the current model being used - template: trimTokens( - summarizationTemplate, - chunkSize + 500, - (model.model[ModelClass.SMALL] || - "gpt-4o-mini") as TiktokenModel // Use the same model as generation; Fallback if no SMALL model configured - ), + template, }); const summary = await generateText({ diff --git a/packages/client-discord/src/actions/summarize_conversation.ts b/packages/client-discord/src/actions/summarize_conversation.ts index 4a45673d78..d9c9be6f42 100644 --- a/packages/client-discord/src/actions/summarize_conversation.ts +++ b/packages/client-discord/src/actions/summarize_conversation.ts @@ -261,14 +261,15 @@ const summarizeAction = { const chunk = chunks[i]; state.currentSummary = currentSummary; state.currentChunk = chunk; + const template = await trimTokens( + summarizationTemplate, + chunkSize + 500, + runtime + ); const context = composeContext({ state, // make sure it fits, we can pad the tokens a bit - template: trimTokens( - summarizationTemplate, - chunkSize + 500, - "gpt-4o-mini" - ), + template, }); const summary = await generateText({ diff --git a/packages/client-discord/src/attachments.ts b/packages/client-discord/src/attachments.ts index 60a44cab2c..4c8ba7903e 100644 --- a/packages/client-discord/src/attachments.ts +++ b/packages/client-discord/src/attachments.ts @@ -19,7 +19,7 @@ async function generateSummary( text: string ): Promise<{ title: string; description: string }> { // make sure text is under 128k characters - text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up + text = await trimTokens(text, 100000, runtime); const prompt = `Please generate a concise summary for the following text: diff --git a/packages/client-discord/src/utils.ts b/packages/client-discord/src/utils.ts index fad596b3c5..40f08a392a 100644 --- a/packages/client-discord/src/utils.ts +++ b/packages/client-discord/src/utils.ts @@ -47,7 +47,7 @@ export async function generateSummary( text: string ): Promise<{ title: string; description: string }> { // make sure text is under 128k characters - text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up + text = await trimTokens(text, 100000, runtime); const prompt = `Please generate a concise summary for the following text: diff --git a/packages/client-farcaster/package.json b/packages/client-farcaster/package.json index 9fdd14a988..b9a51a482e 100644 --- a/packages/client-farcaster/package.json +++ b/packages/client-farcaster/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-farcaster", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@neynar/nodejs-sdk": "^2.0.3" diff --git a/packages/client-github/package.json b/packages/client-github/package.json index d638f8453c..4e8b8c1982 100644 --- a/packages/client-github/package.json +++ b/packages/client-github/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-github", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@octokit/rest": "20.1.1", diff --git a/packages/client-lens/package.json b/packages/client-lens/package.json index 24fcb4e26d..1e27691d8c 100644 --- a/packages/client-lens/package.json +++ b/packages/client-lens/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-lens", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@lens-protocol/client": "2.2.0", diff --git a/packages/client-slack/package.json b/packages/client-slack/package.json index 439dee852e..fa2ad98263 100644 --- a/packages/client-slack/package.json +++ b/packages/client-slack/package.json @@ -2,9 +2,23 @@ "name": "@elizaos/client-slack", "version": "0.1.7-alpha.2", "description": "Slack client plugin for Eliza framework", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "scripts": { "build": "tsup src/index.ts --format esm --dts", "test": "jest", diff --git a/packages/client-slack/src/actions/chat_with_attachments.ts b/packages/client-slack/src/actions/chat_with_attachments.ts index dd74af905a..169add1222 100644 --- a/packages/client-slack/src/actions/chat_with_attachments.ts +++ b/packages/client-slack/src/actions/chat_with_attachments.ts @@ -200,13 +200,14 @@ const summarizeAction: Action = { currentState.attachmentsWithText = attachmentsWithText; currentState.objective = objective; + const template = await trimTokens( + summarizationTemplate, + chunkSize + 500, + runtime + ); const context = composeContext({ state: currentState, - template: trimTokens( - summarizationTemplate, - chunkSize + 500, - "gpt-4o-mini" - ), + template, }); const summary = await generateText({ diff --git a/packages/client-slack/src/actions/summarize_conversation.ts b/packages/client-slack/src/actions/summarize_conversation.ts index 880c6ab0af..ec98e1f10d 100644 --- a/packages/client-slack/src/actions/summarize_conversation.ts +++ b/packages/client-slack/src/actions/summarize_conversation.ts @@ -279,13 +279,15 @@ const summarizeAction: Action = { currentState.currentSummary = currentSummary; currentState.currentChunk = chunk; + const template = await trimTokens( + summarizationTemplate, + chunkSize + 500, + runtime + ); + const context = composeContext({ state: currentState, - template: trimTokens( - summarizationTemplate, - chunkSize + 500, - "gpt-4o-mini" - ), + template, }); const summary = await generateText({ diff --git a/packages/client-slack/src/attachments.ts b/packages/client-slack/src/attachments.ts index 79f8bcfe24..225ece61d4 100644 --- a/packages/client-slack/src/attachments.ts +++ b/packages/client-slack/src/attachments.ts @@ -21,7 +21,7 @@ async function generateSummary( runtime: IAgentRuntime, text: string ): Promise<{ title: string; description: string }> { - text = trimTokens(text, 100000, "gpt-4o-mini"); + text = await trimTokens(text, 100000, runtime); const prompt = `Please generate a concise summary for the following text: diff --git a/packages/client-telegram/package.json b/packages/client-telegram/package.json index f7821e8205..e8b29f4a25 100644 --- a/packages/client-telegram/package.json +++ b/packages/client-telegram/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-telegram", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@telegraf/types": "7.1.0", diff --git a/packages/client-twitter/package.json b/packages/client-twitter/package.json index 5a255a78ed..acd40ea11f 100644 --- a/packages/client-twitter/package.json +++ b/packages/client-twitter/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/client-twitter", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "agent-twitter-client": "0.0.18", diff --git a/packages/core/package.json b/packages/core/package.json index 94c67af288..373a52b89d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -2,9 +2,23 @@ "name": "@elizaos/core", "version": "0.1.7-alpha.2", "description": "", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "scripts": { "build": "tsup --format esm --dts", "lint": "eslint --fix --cache .", diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts index 266a609c76..5db5b8e70a 100644 --- a/packages/core/src/generation.ts +++ b/packages/core/src/generation.ts @@ -14,6 +14,7 @@ import { Buffer } from "buffer"; import { createOllama } from "ollama-ai-provider"; import OpenAI from "openai"; import { encodingForModel, TiktokenModel } from "js-tiktoken"; +import { AutoTokenizer } from "@huggingface/transformers"; import Together from "together-ai"; import { ZodSchema } from "zod"; import { elizaLogger } from "./index.ts"; @@ -37,6 +38,7 @@ import { SearchResponse, ActionResponse, TelemetrySettings, + TokenizerType, } from "./types.ts"; import { fal } from "@fal-ai/client"; import { tavily } from "@tavily/core"; @@ -44,6 +46,114 @@ import { tavily } from "@tavily/core"; type Tool = CoreTool; type StepResult = AIStepResult; +/** + * Trims the provided text context to a specified token limit using a tokenizer model and type. + * + * The function dynamically determines the truncation method based on the tokenizer settings + * provided by the runtime. If no tokenizer settings are defined, it defaults to using the + * TikToken truncation method with the "gpt-4o" model. + * + * @async + * @function trimTokens + * @param {string} context - The text to be tokenized and trimmed. + * @param {number} maxTokens - The maximum number of tokens allowed after truncation. + * @param {IAgentRuntime} runtime - The runtime interface providing tokenizer settings. + * + * @returns {Promise} A promise that resolves to the trimmed text. + * + * @throws {Error} Throws an error if the runtime settings are invalid or missing required fields. + * + * @example + * const trimmedText = await trimTokens("This is an example text", 50, runtime); + * console.log(trimmedText); // Output will be a truncated version of the input text. + */ +export async function trimTokens( + context: string, + maxTokens: number, + runtime: IAgentRuntime +) { + if (!context) return ""; + if (maxTokens <= 0) throw new Error("maxTokens must be positive"); + + const tokenizerModel = runtime.getSetting("TOKENIZER_MODEL"); + const tokenizerType = runtime.getSetting("TOKENIZER_TYPE"); + + if (!tokenizerModel || !tokenizerType) { + // Default to TikToken truncation using the "gpt-4o" model if tokenizer settings are not defined + return truncateTiktoken("gpt-4o", context, maxTokens); + } + + // Choose the truncation method based on tokenizer type + if (tokenizerType === TokenizerType.Auto) { + return truncateAuto(tokenizerModel, context, maxTokens); + } + + if (tokenizerType === TokenizerType.TikToken) { + return truncateTiktoken( + tokenizerModel as TiktokenModel, + context, + maxTokens + ); + } + + elizaLogger.warn(`Unsupported tokenizer type: ${tokenizerType}`); + return truncateTiktoken("gpt-4o", context, maxTokens); +} + +async function truncateAuto( + modelPath: string, + context: string, + maxTokens: number +) { + try { + const tokenizer = await AutoTokenizer.from_pretrained(modelPath); + const tokens = tokenizer.encode(context); + + // If already within limits, return unchanged + if (tokens.length <= maxTokens) { + return context; + } + + // Keep the most recent tokens by slicing from the end + const truncatedTokens = tokens.slice(-maxTokens); + + // Decode back to text - js-tiktoken decode() returns a string directly + return tokenizer.decode(truncatedTokens); + } catch (error) { + elizaLogger.error("Error in trimTokens:", error); + // Return truncated string if tokenization fails + return context.slice(-maxTokens * 4); // Rough estimate of 4 chars per token + } +} + +async function truncateTiktoken( + model: TiktokenModel, + context: string, + maxTokens: number +) { + try { + const encoding = encodingForModel(model); + + // Encode the text into tokens + const tokens = encoding.encode(context); + + // If already within limits, return unchanged + if (tokens.length <= maxTokens) { + return context; + } + + // Keep the most recent tokens by slicing from the end + const truncatedTokens = tokens.slice(-maxTokens); + + // Decode back to text - js-tiktoken decode() returns a string directly + return encoding.decode(truncatedTokens); + } catch (error) { + elizaLogger.error("Error in trimTokens:", error); + // Return truncated string if tokenization fails + return context.slice(-maxTokens * 4); // Rough estimate of 4 chars per token + } +} + /** * Send a message to the model for a text generateText - receive a string back and parse how you'd like * @param opts - The options for the generateText request. @@ -187,7 +297,8 @@ export async function generateText({ elizaLogger.debug( `Trimming context to max length of ${max_context_length} tokens.` ); - context = trimTokens(context, max_context_length, "gpt-4o"); + + context = await trimTokens(context, max_context_length, runtime); let response: string; @@ -199,7 +310,6 @@ export async function generateText({ switch (provider) { // OPENAI & LLAMACLOUD shared same structure. case ModelProviderName.OPENAI: - case ModelProviderName.ETERNALAI: case ModelProviderName.ALI_BAILIAN: case ModelProviderName.VOLENGINE: case ModelProviderName.LLAMACLOUD: @@ -236,6 +346,52 @@ export async function generateText({ break; } + case ModelProviderName.ETERNALAI: { + elizaLogger.debug("Initializing EternalAI model."); + const openai = createOpenAI({ + apiKey, + baseURL: endpoint, + fetch: async (url: string, options: any) => { + const fetching = await runtime.fetch(url, options); + if ( + parseBooleanFromText( + runtime.getSetting("ETERNAL_AI_LOG_REQUEST") + ) + ) { + elizaLogger.info( + "Request data: ", + JSON.stringify(options, null, 2) + ); + const clonedResponse = fetching.clone(); + clonedResponse.json().then((data) => { + elizaLogger.info( + "Response data: ", + JSON.stringify(data, null, 2) + ); + }); + } + return fetching; + }, + }); + + const { text: openaiResponse } = await aiGenerateText({ + model: openai.languageModel(model), + prompt: context, + system: + runtime.character.system ?? + settings.SYSTEM_PROMPT ?? + undefined, + temperature: temperature, + maxTokens: max_response_length, + frequencyPenalty: frequency_penalty, + presencePenalty: presence_penalty, + }); + + response = openaiResponse; + elizaLogger.debug("Received response from EternalAI model."); + break; + } + case ModelProviderName.GOOGLE: { const google = createGoogleGenerativeAI({ apiKey, @@ -653,45 +809,6 @@ export async function generateText({ } } -/** - * Truncate the context to the maximum length allowed by the model. - * @param context The text to truncate - * @param maxTokens Maximum number of tokens to keep - * @param model The tokenizer model to use - * @returns The truncated text - */ -export function trimTokens( - context: string, - maxTokens: number, - model: TiktokenModel -): string { - if (!context) return ""; - if (maxTokens <= 0) throw new Error("maxTokens must be positive"); - - // Get the tokenizer for the model - const encoding = encodingForModel(model); - - try { - // Encode the text into tokens - const tokens = encoding.encode(context); - - // If already within limits, return unchanged - if (tokens.length <= maxTokens) { - return context; - } - - // Keep the most recent tokens by slicing from the end - const truncatedTokens = tokens.slice(-maxTokens); - - // Decode back to text - js-tiktoken decode() returns a string directly - return encoding.decode(truncatedTokens); - } catch (error) { - console.error("Error in trimTokens:", error); - // Return truncated string if tokenization fails - return context.slice(-maxTokens * 4); // Rough estimate of 4 chars per token - } -} - /** * Sends a message to the model to determine if it should respond to the given context. * @param opts - The options for the generateText request @@ -973,9 +1090,10 @@ export async function generateMessageResponse({ context: string; modelClass: string; }): Promise { - const max_context_length = - models[runtime.modelProvider].settings.maxInputTokens; - context = trimTokens(context, max_context_length, "gpt-4o"); + const provider = runtime.modelProvider; + const max_context_length = models[provider].settings.maxInputTokens; + + context = await trimTokens(context, max_context_length, runtime); let retryLength = 1000; // exponential backoff while (true) { try { @@ -1443,20 +1561,18 @@ export const generateObject = async ({ } const provider = runtime.modelProvider; - const model = models[provider].model[modelClass] as TiktokenModel; - if (!model) { - throw new Error(`Unsupported model class: ${modelClass}`); - } + const model = models[provider].model[modelClass]; const temperature = models[provider].settings.temperature; const frequency_penalty = models[provider].settings.frequency_penalty; 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 experimental_telemetry = + models[provider].settings.experimental_telemetry; const apiKey = runtime.token; try { - context = trimTokens(context, max_context_length, model); + context = await trimTokens(context, max_context_length, runtime); const modelOptions: ModelSettings = { prompt: context, diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index c07d3226b9..3687ded5e0 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -687,7 +687,6 @@ 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; @@ -1319,6 +1318,11 @@ export interface ISlackService extends Service { client: any; } +export enum TokenizerType { + Auto = "auto", + TikToken = "tiktoken", +} + export enum TranscriptionProvider { OpenAI = "openai", Deepgram = "deepgram", diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index f2e2793008..c19e06bb64 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -22,7 +22,10 @@ "checkJs": false, "noEmitOnError": false, "moduleDetection": "force", - "allowArbitraryExtensions": true + "allowArbitraryExtensions": true, + "customConditions": [ + "@elizaos/source" + ], }, "include": [ "src/**/*" @@ -33,4 +36,4 @@ "src/**/*.d.ts", "types/**/*.test.ts" ] -} \ No newline at end of file +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index cca094e999..234178fcd5 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -19,5 +19,7 @@ export default defineConfig({ "https", // Add other modules you want to externalize "@tavily/core", + "onnxruntime-node", + "sharp", ], }); diff --git a/packages/plugin-0g/package.json b/packages/plugin-0g/package.json index d46a05b38d..b9e9b4ba46 100644 --- a/packages/plugin-0g/package.json +++ b/packages/plugin-0g/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-0g", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@0glabs/0g-ts-sdk": "0.2.1", "@elizaos/core": "workspace:*", diff --git a/packages/plugin-3d-generation/package.json b/packages/plugin-3d-generation/package.json index 30b4982c79..cbf4eff5b7 100644 --- a/packages/plugin-3d-generation/package.json +++ b/packages/plugin-3d-generation/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-3d-generation", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "tsup": "8.3.5", diff --git a/packages/plugin-abstract/package.json b/packages/plugin-abstract/package.json index d8981b4930..2fdcfbc16f 100644 --- a/packages/plugin-abstract/package.json +++ b/packages/plugin-abstract/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-abstract", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "tsup": "^8.3.5", diff --git a/packages/plugin-aptos/package.json b/packages/plugin-aptos/package.json index bc1badd89b..520ae327d9 100644 --- a/packages/plugin-aptos/package.json +++ b/packages/plugin-aptos/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-aptos", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@aptos-labs/ts-sdk": "^1.26.0", diff --git a/packages/plugin-avalanche/package.json b/packages/plugin-avalanche/package.json index d55640b5c1..5fc791b0fb 100644 --- a/packages/plugin-avalanche/package.json +++ b/packages/plugin-avalanche/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-avalanche", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*" }, diff --git a/packages/plugin-bootstrap/package.json b/packages/plugin-bootstrap/package.json index ca8315d577..6b5a68ffe7 100644 --- a/packages/plugin-bootstrap/package.json +++ b/packages/plugin-bootstrap/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-bootstrap", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "tsup": "8.3.5" diff --git a/packages/plugin-coinbase/package.json b/packages/plugin-coinbase/package.json index d38fa91754..9444120567 100644 --- a/packages/plugin-coinbase/package.json +++ b/packages/plugin-coinbase/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-coinbase", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "coinbase-api": "1.0.5", diff --git a/packages/plugin-conflux/package.json b/packages/plugin-conflux/package.json index fae1c6606b..9e925d12d5 100644 --- a/packages/plugin-conflux/package.json +++ b/packages/plugin-conflux/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-conflux", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "cive": "0.7.1" diff --git a/packages/plugin-cronoszkevm/package.json b/packages/plugin-cronoszkevm/package.json index 4400a41a79..e1be0eee39 100644 --- a/packages/plugin-cronoszkevm/package.json +++ b/packages/plugin-cronoszkevm/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-cronoszkevm", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/packages/plugin-echochambers/package.json b/packages/plugin-echochambers/package.json index 0ba158d2f5..309e194a17 100644 --- a/packages/plugin-echochambers/package.json +++ b/packages/plugin-echochambers/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-echochambers", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-node": "workspace:*" diff --git a/packages/plugin-evm/package.json b/packages/plugin-evm/package.json index d3d5e11efb..32cc652fca 100644 --- a/packages/plugin-evm/package.json +++ b/packages/plugin-evm/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-evm", "version": "0.1.7-alpha.1", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-tee": "workspace:*", diff --git a/packages/plugin-ferePro/package.json b/packages/plugin-ferePro/package.json index c65e8e429f..d1a1679dee 100644 --- a/packages/plugin-ferePro/package.json +++ b/packages/plugin-ferePro/package.json @@ -2,8 +2,22 @@ "name": "@elizaos/plugin-ferepro", "version": "0.1.7-alpha.2", "main": "dist/index.js", + "module": "dist/index.js", "type": "module", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "^0.1.7-alpha.1", "tsup": "^8.3.5", diff --git a/packages/plugin-flow/package.json b/packages/plugin-flow/package.json index 60c6da7460..a7bec5c6d7 100644 --- a/packages/plugin-flow/package.json +++ b/packages/plugin-flow/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-flow", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@onflow/config": "1.5.1", diff --git a/packages/plugin-fuel/package.json b/packages/plugin-fuel/package.json index 0a2648cca2..3dd9ea1684 100644 --- a/packages/plugin-fuel/package.json +++ b/packages/plugin-fuel/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-fuel", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "fuels": "0.97.2", diff --git a/packages/plugin-gitbook/package.json b/packages/plugin-gitbook/package.json index 54ac0210c5..d4570243c2 100644 --- a/packages/plugin-gitbook/package.json +++ b/packages/plugin-gitbook/package.json @@ -1,13 +1,18 @@ { "name": "@elizaos/plugin-gitbook", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", "exports": { + "./package.json": "./package.json", ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts" + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } } }, "files": [ diff --git a/packages/plugin-goat/package.json b/packages/plugin-goat/package.json index 9ddb8c9b27..a10ea35ba3 100644 --- a/packages/plugin-goat/package.json +++ b/packages/plugin-goat/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-goat", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@goat-sdk/adapter-vercel-ai": "0.2.0", diff --git a/packages/plugin-icp/package.json b/packages/plugin-icp/package.json index 411aa868e8..c0d4672f18 100644 --- a/packages/plugin-icp/package.json +++ b/packages/plugin-icp/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-icp", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@dfinity/agent": "2.1.3", diff --git a/packages/plugin-image-generation/package.json b/packages/plugin-image-generation/package.json index 369bd98299..2197217c76 100644 --- a/packages/plugin-image-generation/package.json +++ b/packages/plugin-image-generation/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-image-generation", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "tsup": "8.3.5" diff --git a/packages/plugin-intiface/package.json b/packages/plugin-intiface/package.json index 0dd3f6d53e..42b3060ac9 100644 --- a/packages/plugin-intiface/package.json +++ b/packages/plugin-intiface/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-intiface", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "buttplug": "3.2.2", diff --git a/packages/plugin-multiversx/package.json b/packages/plugin-multiversx/package.json index 92a86f9cbf..b62c89c1bf 100644 --- a/packages/plugin-multiversx/package.json +++ b/packages/plugin-multiversx/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-multiversx", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@multiversx/sdk-core": "13.15.0", diff --git a/packages/plugin-near/package.json b/packages/plugin-near/package.json index b7e74c07d2..003d11c863 100644 --- a/packages/plugin-near/package.json +++ b/packages/plugin-near/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-near", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@ref-finance/ref-sdk": "^1.4.6", diff --git a/packages/plugin-near/src/actions/swap.ts b/packages/plugin-near/src/actions/swap.ts index f11f6b134f..5d1ebbe3db 100644 --- a/packages/plugin-near/src/actions/swap.ts +++ b/packages/plugin-near/src/actions/swap.ts @@ -1,6 +1,7 @@ import { ActionExample, HandlerCallback, + elizaLogger, IAgentRuntime, Memory, ModelClass, @@ -34,7 +35,7 @@ async function checkStorageBalance( }); return balance !== null && balance.total !== "0"; } catch (error) { - console.log(`Error checking storage balance: ${error}`); + elizaLogger.log(`Error checking storage balance: ${error}`); return false; } } @@ -142,7 +143,7 @@ async function swapToken( return transactions; } catch (error) { - console.error("Error in swapToken:", error); + elizaLogger.error("Error in swapToken:", error); throw error; } } @@ -186,8 +187,8 @@ export const executeSwap: Action = { "TRADE_TOKENS_NEAR", "EXCHANGE_TOKENS_NEAR", ], - validate: async (runtime: IAgentRuntime, message: Memory) => { - console.log("Message:", message); + validate: async (_runtime: IAgentRuntime, message: Memory) => { + elizaLogger.log("Message:", message); return true; }, description: "Perform a token swap using Ref Finance.", @@ -221,14 +222,14 @@ export const executeSwap: Action = { modelClass: ModelClass.LARGE, }); - console.log("Response:", response); + elizaLogger.log("Response:", response); if ( !response.inputTokenId || !response.outputTokenId || !response.amount ) { - console.log("Missing required parameters, skipping swap"); + elizaLogger.log("Missing required parameters, skipping swap"); const responseMsg = { text: "I need the input token ID, output token ID, and amount to perform the swap", }; @@ -290,7 +291,7 @@ export const executeSwap: Action = { } } - console.log("Swap completed successfully!"); + elizaLogger.log("Swap completed successfully!"); const txHashes = results.map((r) => r.transaction.hash).join(", "); const responseMsg = { @@ -300,7 +301,7 @@ export const executeSwap: Action = { callback?.(responseMsg); return true; } catch (error) { - console.error("Error during token swap:", error); + elizaLogger.error("Error during token swap:", error); const responseMsg = { text: `Error during swap: ${error instanceof Error ? error.message : String(error)}`, }; diff --git a/packages/plugin-near/src/actions/transfer.ts b/packages/plugin-near/src/actions/transfer.ts index f0a2d53b77..ab37f5030e 100644 --- a/packages/plugin-near/src/actions/transfer.ts +++ b/packages/plugin-near/src/actions/transfer.ts @@ -6,6 +6,7 @@ import { Memory, ModelClass, State, + elizaLogger, type Action, composeContext, generateObject, @@ -132,7 +133,7 @@ export const executeTransfer: Action = { // Validate transfer content if (!isTransferContent(runtime, content)) { - console.error("Invalid content for TRANSFER_NEAR action."); + elizaLogger.error("Invalid content for TRANSFER_NEAR action."); if (callback) { callback({ text: "Unable to process transfer request. Invalid content provided.", @@ -163,7 +164,7 @@ export const executeTransfer: Action = { return true; } catch (error) { - console.error("Error during NEAR transfer:", error); + elizaLogger.error("Error during NEAR transfer:", error); if (callback) { callback({ text: `Error transferring NEAR: ${error}`, diff --git a/packages/plugin-near/src/providers/wallet.ts b/packages/plugin-near/src/providers/wallet.ts index 218398d397..a35a082148 100644 --- a/packages/plugin-near/src/providers/wallet.ts +++ b/packages/plugin-near/src/providers/wallet.ts @@ -1,4 +1,10 @@ -import { IAgentRuntime, Memory, Provider, State } from "@elizaos/core"; +import { + IAgentRuntime, + Memory, + Provider, + State, + elizaLogger, +} from "@elizaos/core"; import { KeyPair, keyStores, connect, Account, utils } from "near-api-js"; import BigNumber from "bignumber.js"; import { KeyPairString } from "near-api-js/lib/utils"; @@ -51,7 +57,7 @@ export class WalletProvider implements Provider { try { return await this.getFormattedPortfolio(runtime); } catch (error) { - console.error("Error in wallet provider:", error); + elizaLogger.error("Error in wallet provider:", error); return null; } } @@ -102,7 +108,7 @@ export class WalletProvider implements Provider { } return await response.json(); } catch (error) { - console.error(`Attempt ${i + 1} failed:`, error); + elizaLogger.error(`Attempt ${i + 1} failed:`, error); lastError = error as Error; if (i < PROVIDER_CONFIG.MAX_RETRIES - 1) { await new Promise((resolve) => @@ -125,7 +131,7 @@ export class WalletProvider implements Provider { const cachedValue = this.cache.get(cacheKey); if (cachedValue) { - console.log("Cache hit for fetchPortfolioValue"); + elizaLogger.log("Cache hit for fetchPortfolioValue"); return cachedValue; } @@ -160,7 +166,7 @@ export class WalletProvider implements Provider { this.cache.set(cacheKey, portfolio); return portfolio; } catch (error) { - console.error("Error fetching portfolio:", error); + elizaLogger.error("Error fetching portfolio:", error); throw error; } } @@ -181,7 +187,7 @@ export class WalletProvider implements Provider { this.cache.set(cacheKey, price); return price; } catch (error) { - console.error("Error fetching NEAR price:", error); + elizaLogger.error("Error fetching NEAR price:", error); return 0; } } @@ -214,7 +220,7 @@ export class WalletProvider implements Provider { const portfolio = await this.fetchPortfolioValue(runtime); return this.formatPortfolio(runtime, portfolio); } catch (error) { - console.error("Error generating portfolio report:", error); + elizaLogger.error("Error generating portfolio report:", error); return "Unable to fetch wallet information. Please try again later."; } } @@ -234,7 +240,7 @@ const walletProvider: Provider = { const provider = new WalletProvider(accountId); return await provider.getFormattedPortfolio(runtime); } catch (error) { - console.error("Error in wallet provider:", error); + elizaLogger.error("Error in wallet provider:", error); return null; } }, diff --git a/packages/plugin-nft-generation/package.json b/packages/plugin-nft-generation/package.json index 80e55d0604..0c629aa0a8 100644 --- a/packages/plugin-nft-generation/package.json +++ b/packages/plugin-nft-generation/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-nft-generation", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-image-generation": "workspace:*", diff --git a/packages/plugin-node/package.json b/packages/plugin-node/package.json index 31d9d3fa5f..8f591f872d 100644 --- a/packages/plugin-node/package.json +++ b/packages/plugin-node/package.json @@ -1,9 +1,20 @@ { "name": "@elizaos/plugin-node", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, "files": [ "dist", "scripts", diff --git a/packages/plugin-node/src/services/browser.ts b/packages/plugin-node/src/services/browser.ts index a083e2957c..863b3de4ac 100644 --- a/packages/plugin-node/src/services/browser.ts +++ b/packages/plugin-node/src/services/browser.ts @@ -13,7 +13,7 @@ async function generateSummary( text: string ): Promise<{ title: string; description: string }> { // make sure text is under 128k characters - text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up + text = await trimTokens(text, 100000, runtime); const prompt = `Please generate a concise summary for the following text: diff --git a/packages/plugin-solana/package.json b/packages/plugin-solana/package.json index 6f4fb1c9bb..25a5b274ff 100644 --- a/packages/plugin-solana/package.json +++ b/packages/plugin-solana/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-solana", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/packages/plugin-starknet/package.json b/packages/plugin-starknet/package.json index 05e90a1475..8a81e0f46d 100644 --- a/packages/plugin-starknet/package.json +++ b/packages/plugin-starknet/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-starknet", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/packages/plugin-story/package.json b/packages/plugin-story/package.json index aeeaa99ac8..3362df4d64 100644 --- a/packages/plugin-story/package.json +++ b/packages/plugin-story/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-story", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/packages/plugin-sui/package.json b/packages/plugin-sui/package.json index 12d47ec71a..142a8fc097 100644 --- a/packages/plugin-sui/package.json +++ b/packages/plugin-sui/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-sui", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/packages/plugin-sui/src/actions/transfer.ts b/packages/plugin-sui/src/actions/transfer.ts index 721a27d5cf..d9471aaa5f 100644 --- a/packages/plugin-sui/src/actions/transfer.ts +++ b/packages/plugin-sui/src/actions/transfer.ts @@ -14,7 +14,6 @@ import { import { z } from "zod"; import { SuiClient, getFullnodeUrl } from "@mysten/sui/client"; -import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; import { Transaction } from "@mysten/sui/transactions"; import { SUI_DECIMALS } from "@mysten/sui/utils"; diff --git a/packages/plugin-sui/src/providers/wallet.ts b/packages/plugin-sui/src/providers/wallet.ts index 478fc2ce49..01e9c45fc1 100644 --- a/packages/plugin-sui/src/providers/wallet.ts +++ b/packages/plugin-sui/src/providers/wallet.ts @@ -7,7 +7,6 @@ import { } from "@elizaos/core"; import { getFullnodeUrl, SuiClient } from "@mysten/sui/client"; -import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; import { MIST_PER_SUI } from "@mysten/sui/utils"; import BigNumber from "bignumber.js"; diff --git a/packages/plugin-tee/package.json b/packages/plugin-tee/package.json index 3ca40c9127..6b36486ea5 100644 --- a/packages/plugin-tee/package.json +++ b/packages/plugin-tee/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-tee", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@phala/dstack-sdk": "0.1.6", diff --git a/packages/plugin-ton/package.json b/packages/plugin-ton/package.json index bda0e68bcf..337abf7423 100644 --- a/packages/plugin-ton/package.json +++ b/packages/plugin-ton/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-ton", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/packages/plugin-trustdb/package.json b/packages/plugin-trustdb/package.json index 57e2894cf4..972e355f8c 100644 --- a/packages/plugin-trustdb/package.json +++ b/packages/plugin-trustdb/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-trustdb", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "dompurify": "3.2.2", diff --git a/packages/plugin-twitter/package.json b/packages/plugin-twitter/package.json index 13dbc5cf04..3f5db83d29 100644 --- a/packages/plugin-twitter/package.json +++ b/packages/plugin-twitter/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-twitter", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "agent-twitter-client": "0.0.17", diff --git a/packages/plugin-video-generation/package.json b/packages/plugin-video-generation/package.json index b8c50d0f5f..9c9ac1105d 100644 --- a/packages/plugin-video-generation/package.json +++ b/packages/plugin-video-generation/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-video-generation", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "tsup": "8.3.5" diff --git a/packages/plugin-web-search/package.json b/packages/plugin-web-search/package.json index 1d87e98b91..6c9cafb857 100644 --- a/packages/plugin-web-search/package.json +++ b/packages/plugin-web-search/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-web-search", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "tsup": "8.3.5" diff --git a/packages/plugin-whatsapp/package.json b/packages/plugin-whatsapp/package.json index 38b1116469..8f7cc5696a 100644 --- a/packages/plugin-whatsapp/package.json +++ b/packages/plugin-whatsapp/package.json @@ -2,8 +2,23 @@ "name": "@elizaos/plugin-whatsapp", "version": "0.1.7-alpha.2", "description": "WhatsApp Cloud API plugin", + "type": "module", "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", diff --git a/packages/plugin-zksync-era/package.json b/packages/plugin-zksync-era/package.json index 9c730645f1..5f7b0a0dea 100644 --- a/packages/plugin-zksync-era/package.json +++ b/packages/plugin-zksync-era/package.json @@ -1,9 +1,23 @@ { "name": "@elizaos/plugin-zksync-era", "version": "0.1.7-alpha.2", - "main": "dist/index.js", "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], "dependencies": { "@elizaos/core": "workspace:*", "@elizaos/plugin-trustdb": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e208d46a5..90f147c715 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: 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.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)) + 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.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)) 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.3)(typescript@5.6.3) + version: 18.6.1(@types/node@22.10.4)(typescript@5.6.3) '@commitlint/config-conventional': specifier: 18.6.3 version: 18.6.3 @@ -95,10 +95,10 @@ importers: 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.3)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.4)(terser@5.37.0) vitest: specifier: 2.1.5 - 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) + version: 2.1.5(@types/node@22.10.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) agent: dependencies: @@ -805,7 +805,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.16.0))(svelte@5.16.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.1))(svelte@5.16.1)(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) @@ -1035,7 +1035,7 @@ importers: 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.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) + version: 2.1.4(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1118,7 +1118,7 @@ importers: 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.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)) + 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.4)(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 @@ -1160,7 +1160,7 @@ importers: dependencies: '@elizaos/core': 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) + 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.1))(svelte@5.16.1) tsup: specifier: ^8.3.5 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) @@ -1225,7 +1225,7 @@ importers: 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.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) + version: 2.1.4(@types/node@22.10.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) packages/plugin-fuel: dependencies: @@ -1237,13 +1237,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.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)) + version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) tsup: specifier: 8.3.5 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.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) + version: 2.1.4(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1264,7 +1264,7 @@ importers: 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)) + 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.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)) '@goat-sdk/core': specifier: 0.4.0 version: 0.4.0 @@ -1313,7 +1313,7 @@ importers: version: 29.5.14 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.10.3) + version: 29.7.0(@types/node@22.10.4) tsup: specifier: 8.3.5 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) @@ -1376,7 +1376,7 @@ importers: 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.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) + version: 2.1.5(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1457,10 +1457,10 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.705.0 - version: 3.717.0 + version: 3.721.0 '@aws-sdk/s3-request-presigner': specifier: ^3.705.0 - version: 3.717.0 + version: 3.721.0 '@cliqz/adblocker-playwright': specifier: 1.34.0 version: 1.34.0(playwright@1.48.2) @@ -1677,7 +1677,7 @@ importers: 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.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) + version: 2.1.4(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1710,7 +1710,7 @@ importers: 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.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) + version: 2.1.5(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1738,7 +1738,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.10.3 + version: 22.10.4 packages/plugin-sui: dependencies: @@ -1768,7 +1768,7 @@ importers: 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.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) + version: 2.1.4(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1855,7 +1855,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - 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) + version: 2.1.5(@types/node@22.10.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) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1947,7 +1947,7 @@ importers: 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.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)) + 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.4)(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 @@ -2302,30 +2302,30 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-polly@3.716.0': - resolution: {integrity: sha512-ZHO2S1ij0s2JOsZ7RJkNdNTghbJhGJb1F9mDRLgjipG5yyBlvWcnBTUB83CSGXSX/RcZ2tWI4LKypodo6tSMag==} + '@aws-sdk/client-polly@3.721.0': + resolution: {integrity: sha512-SCTx9DKOnfEKyWb6bx5J7aeowBig8QmiqOJlE0sMM/pbpF70YGC/ugk1/yFJAJlAkoDadtRvseFpwLvrg7N73Q==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-s3@3.717.0': - resolution: {integrity: sha512-jzaH8IskAXVnqlZ3/H/ROwrB2HCnq/atlN7Hi7FIfjWvMPf5nfcJKfzJ1MXFX0EQR5qO6X4TbK7rgi7Bjw9NjQ==} + '@aws-sdk/client-s3@3.721.0': + resolution: {integrity: sha512-uCZC8elYhUFF21yq1yB5TrE/VYz8A4/VnttUHc65/jqnHReTDvEC0XAc756tJnjfrReyM1ws12FzBLHoW/NDjg==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso-oidc@3.716.0': - resolution: {integrity: sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw==} + '@aws-sdk/client-sso-oidc@3.721.0': + resolution: {integrity: sha512-jwsgdUEbNJqs1O0AQtf9M6SI7hFIjxH+IKeKCMca0xVt+Tr1UqLr/qMK/6W8LoMtRFnE0lpBSHW6hvmLp2OCoQ==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.716.0 + '@aws-sdk/client-sts': ^3.721.0 - '@aws-sdk/client-sso@3.716.0': - resolution: {integrity: sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g==} + '@aws-sdk/client-sso@3.721.0': + resolution: {integrity: sha512-UrYAF4ilpO2cZBFddQmbETfo0xKP3CEcantcMQTc0xPY3quHLZhYuBiRae+McWi6yZpH4ErnFZIWeKSJ2OQgqQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.716.0': - resolution: {integrity: sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q==} + '@aws-sdk/client-sts@3.721.0': + resolution: {integrity: sha512-1Pv8F02hQFmPZs7WtGfQNlnInbG1lLzyngJc/MlZ3Ld2fIoWjaWp7bJWgYAjnzHNEuDtCabWJvIfePdRqsbYoA==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-transcribe-streaming@3.716.0': - resolution: {integrity: sha512-znbAcjWUaWsa0ULs0y6ZJH+EIarRQZX0pVANY9UQZHCc2EX/xKxpWA4VxbqXe9VlVjahP4wJBSGcW2uztL5iAQ==} + '@aws-sdk/client-transcribe-streaming@3.721.0': + resolution: {integrity: sha512-8imB8tEHfUW597yGM6/qRmBXyRYNPp7bddBg67g6AHzj/UG0xI1EQZzyBntUyy/sQzvMgcPoUoYdFHdfQWQ7vw==} engines: {node: '>=16.0.0'} '@aws-sdk/core@3.716.0': @@ -2340,22 +2340,22 @@ packages: resolution: {integrity: sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.716.0': - resolution: {integrity: sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw==} + '@aws-sdk/credential-provider-ini@3.721.0': + resolution: {integrity: sha512-8J/c2rI+4ZoduBCnPurfdblqs2DyRvL9ztqzzOWWEhLccoYZzYeAMwBapEAsiVsD1iNrIGY7LRDC4TsVmJBf6Q==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.716.0 + '@aws-sdk/client-sts': ^3.721.0 - '@aws-sdk/credential-provider-node@3.716.0': - resolution: {integrity: sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww==} + '@aws-sdk/credential-provider-node@3.721.0': + resolution: {integrity: sha512-D6xodzdMjVhF9xRhy9gNf0gqP0Dek9fQ6BDZzqO/i54d7CjWHVZTADcVcxjLQq6nyUNf0QPf8UXLaqi+w25GGQ==} engines: {node: '>=16.0.0'} '@aws-sdk/credential-provider-process@3.716.0': resolution: {integrity: sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.716.0': - resolution: {integrity: sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw==} + '@aws-sdk/credential-provider-sso@3.721.0': + resolution: {integrity: sha512-v7npnYqfuY1vdcb0/F4Mcz+mcFyZaYry9qXhSRCPIbLPe2PRV4E4HXIaPKmir8PhuRLEGs0QJWhvIWr7u6holQ==} engines: {node: '>=16.0.0'} '@aws-sdk/credential-provider-web-identity@3.716.0': @@ -2368,8 +2368,8 @@ packages: resolution: {integrity: sha512-zCEegowS+LCrPdUgGUQPX8PBUFbyBifyOuA0VieZwKYH0kIjthGxuM9QdAD7bf1rgW+3bBEchWsIJqpIp4JQkg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.714.0': - resolution: {integrity: sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==} + '@aws-sdk/middleware-bucket-endpoint@3.721.0': + resolution: {integrity: sha512-5UyoDoX3z3UhmetoqqqZulq2uF55Jyj9lUKAJWgTxVhDEG5TijTQS40LP9DqwRl0hJkoUUZKAwE0hwnUsiGXAg==} engines: {node: '>=16.0.0'} '@aws-sdk/middleware-eventstream@3.714.0': @@ -2412,8 +2412,8 @@ packages: resolution: {integrity: sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.716.0': - resolution: {integrity: sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew==} + '@aws-sdk/middleware-user-agent@3.721.0': + resolution: {integrity: sha512-Z3Vksb970ArsfLlARW4KVpqO+pQ1cvvGTrTQPxWDsmOzg1kU92t9oWXGW+1M/x6bHbMQlI/EulQ/D8ZE/Pu46Q==} engines: {node: '>=16.0.0'} '@aws-sdk/middleware-websocket@3.714.0': @@ -2424,19 +2424,19 @@ packages: resolution: {integrity: sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==} engines: {node: '>=16.0.0'} - '@aws-sdk/s3-request-presigner@3.717.0': - resolution: {integrity: sha512-gpT310jVQiqVxE6Nh4yEABbYNVOfUC/DuMtp5/JAb+cz1nNLfA45KgaJ73UCPbimVszUH0Cb7RouC/zv1uB84w==} + '@aws-sdk/s3-request-presigner@3.721.0': + resolution: {integrity: sha512-2ibKGssj2TAQyfthNihhBqWdwowlol9bDpKybIi2T6D8l2L9g0ENGLNE50MYzSFAQ3LcjzcvLQ/GByRPiuK+pQ==} engines: {node: '>=16.0.0'} '@aws-sdk/signature-v4-multi-region@3.716.0': resolution: {integrity: sha512-k0goWotZKKz+kV6Ln0qeAMSeSVi4NipuIIz5R8A0uCF2zBK4CXWdZR7KeaIoLBhJwQnHj1UU7E+2MK74KIUBzA==} engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.714.0': - resolution: {integrity: sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==} + '@aws-sdk/token-providers@3.721.0': + resolution: {integrity: sha512-cIZmKdLeEWUzPR+2lA+JcZHPvaFf/Ih+s3LXBa/uQwRFdK+o7WfGRf7Oqe6yLRekO2jJJl4LBJXxDOH++M9+ag==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.714.0 + '@aws-sdk/client-sso-oidc': ^3.721.0 '@aws-sdk/types@3.714.0': resolution: {integrity: sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==} @@ -2461,8 +2461,8 @@ packages: '@aws-sdk/util-user-agent-browser@3.714.0': resolution: {integrity: sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==} - '@aws-sdk/util-user-agent-node@3.716.0': - resolution: {integrity: sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w==} + '@aws-sdk/util-user-agent-node@3.721.0': + resolution: {integrity: sha512-5VsNdC3zQnjrt7KNEeFHWJl3FIamgIS0puG18BMvPsdzcKWEbWDih+yd1kMWrcpAu1Riez9co/gB9y99pBghDA==} engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -5502,6 +5502,10 @@ packages: resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.8.0': + resolution: {integrity: sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/ed25519@1.7.3': resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} @@ -5535,6 +5539,10 @@ packages: resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.7.0': + resolution: {integrity: sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==} + engines: {node: ^14.21.3 || >=16} + '@noble/secp256k1@1.7.1': resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} @@ -6895,6 +6903,9 @@ packages: '@scure/bip32@1.6.0': resolution: {integrity: sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==} + '@scure/bip32@1.6.1': + resolution: {integrity: sha512-jSO+5Ud1E588Y+LFo8TaB8JVPNAZw/lGGao+1SepHDeTs2dFLurdNIAgUuDlwezqEjRjElkCJajVrtrZaBxvaQ==} + '@scure/bip39@1.1.1': resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} @@ -6907,6 +6918,9 @@ packages: '@scure/bip39@1.5.0': resolution: {integrity: sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==} + '@scure/bip39@1.5.1': + resolution: {integrity: sha512-GnlufVSP9UdAo/H2Patfv22VTtpNTyfi+I3qCKpvuB5l1KWzEYx+l2TNpBy9Ksh4xTs3Rn06tBlpWCi/1Vz8gw==} + '@scure/starknet@1.0.0': resolution: {integrity: sha512-o5J57zY0f+2IL/mq8+AYJJ4Xpc1fOtDhr+mFQKbHnYFmm3WQrC+8zj2HEgxak1a+x86mhmBC1Kq305KUpVf0wg==} @@ -7066,8 +7080,8 @@ packages: resolution: {integrity: sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==} engines: {node: '>=16.0.0'} - '@smithy/core@2.5.6': - resolution: {integrity: sha512-w494xO+CPwG/5B/N2l0obHv2Fi9U4DAY+sTi1GWT3BVvGpZetJjJXAynIO9IHp4zS1PinGhXtRSZydUXbJO4ag==} + '@smithy/core@2.5.7': + resolution: {integrity: sha512-8olpW6mKCa0v+ibCjoCzgZHQx1SQmZuW/WkrdZo73wiTprTH6qhmskT60QLFdT9DRa5mXxjz89kQPZ7ZSsoqqg==} engines: {node: '>=16.0.0'} '@smithy/credential-provider-imds@3.2.8': @@ -7093,8 +7107,8 @@ packages: resolution: {integrity: sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==} engines: {node: '>=16.0.0'} - '@smithy/fetch-http-handler@4.1.2': - resolution: {integrity: sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==} + '@smithy/fetch-http-handler@4.1.3': + resolution: {integrity: sha512-6SxNltSncI8s689nvnzZQc/dPXcpHQ34KUj6gR/HBroytKOd/isMG3gJF/zBE1TBmTT18TXyzhg3O3SOOqGEhA==} '@smithy/hash-blob-browser@3.1.10': resolution: {integrity: sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==} @@ -7125,12 +7139,12 @@ packages: resolution: {integrity: sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==} engines: {node: '>=16.0.0'} - '@smithy/middleware-endpoint@3.2.7': - resolution: {integrity: sha512-GTxSKf280aJBANGN97MomUQhW1VNxZ6w7HAj/pvZM5MUHbMPOGnWOp1PRYKi4czMaHNj9bdiA+ZarmT3Wkdqiw==} + '@smithy/middleware-endpoint@3.2.8': + resolution: {integrity: sha512-OEJZKVUEhMOqMs3ktrTWp7UvvluMJEvD5XgQwRePSbDg1VvBaL8pX8mwPltFn6wk1GySbcVwwyldL8S+iqnrEQ==} engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@3.0.32': - resolution: {integrity: sha512-v8gVA9HqibuZkFuFpfkC/EcHE8no/3Mv3JvRUGly63Axt4yyas1WDVOasFSdiqm2hZVpY7/k8mRT1Wd5k7r3Yw==} + '@smithy/middleware-retry@3.0.34': + resolution: {integrity: sha512-yVRr/AAtPZlUvwEkrq7S3x7Z8/xCd97m2hLDaqdz6ucP2RKHsBjEqaUA2ebNv2SsZoPEi+ZD0dZbOB1u37tGCA==} engines: {node: '>=16.0.0'} '@smithy/middleware-serde@3.0.11': @@ -7177,8 +7191,8 @@ packages: resolution: {integrity: sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==} engines: {node: '>=16.0.0'} - '@smithy/smithy-client@3.5.2': - resolution: {integrity: sha512-h7xn+1wlpbXyLrtvo/teHR1SFGIIrQ3imzG0nz43zVLAJgvfC1Mtdwa1pFhoIOYrt/TiNjt4pD0gSYQEdZSBtg==} + '@smithy/smithy-client@3.7.0': + resolution: {integrity: sha512-9wYrjAZFlqWhgVo3C4y/9kpc68jgiSsKUnsFPzr/MSiRL93+QRDafGTfhhKAb2wsr69Ru87WTiqSfQusSmWipA==} engines: {node: '>=16.0.0'} '@smithy/types@3.7.2': @@ -7211,12 +7225,12 @@ packages: resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@3.0.32': - resolution: {integrity: sha512-FAGsnm/xJ19SZeoqGyo9CosqjUlm+XJTmygDMktebvDKw3bKiIiZ40O1MA6Z52KLmekYU2GO7BEK7u6e7ZORKw==} + '@smithy/util-defaults-mode-browser@3.0.34': + resolution: {integrity: sha512-FumjjF631lR521cX+svMLBj3SwSDh9VdtyynTYDAiBDEf8YPP5xORNXKQ9j0105o5+ARAGnOOP/RqSl40uXddA==} engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@3.0.32': - resolution: {integrity: sha512-2CzKhkPFCVdd15f3+0D1rldNlvJME8pVRBtVVsea2hy7lcOn0bGB0dTVUwzgfM4LW/aU4IOg3jWf25ZWaxbOiw==} + '@smithy/util-defaults-mode-node@3.0.34': + resolution: {integrity: sha512-vN6aHfzW9dVVzkI0wcZoUXvfjkl4CSbM9nE//08lmUMyf00S75uuCpTrqF9uD4bD9eldIXlt53colrlwKAT8Gw==} engines: {node: '>= 10.0.0'} '@smithy/util-endpoints@2.1.7': @@ -7235,8 +7249,8 @@ packages: resolution: {integrity: sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==} engines: {node: '>=16.0.0'} - '@smithy/util-stream@3.3.3': - resolution: {integrity: sha512-bOm0YMMxRjbI3X6QkWwADPFkh2AH2xBMQIB1IQgCsCRqXXpSJatgjUR3oxHthpYwFkw3WPkOt8VgMpJxC0rFqg==} + '@smithy/util-stream@3.3.4': + resolution: {integrity: sha512-SGhGBG/KupieJvJSZp/rfHHka8BFgj56eek9px4pp7lZbOF+fRiVr4U7A3y3zJD8uGhxq32C5D96HxsTC9BckQ==} engines: {node: '>=16.0.0'} '@smithy/util-uri-escape@3.0.0': @@ -7700,8 +7714,8 @@ packages: '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - '@types/aws-lambda@8.10.146': - resolution: {integrity: sha512-3BaDXYTh0e6UCJYL/jwV/3+GRslSc08toAiZSmleYtkAUyV5rtvdPYxrG/88uqvTuT6sb27WE9OS90ZNTIuQ0g==} + '@types/aws-lambda@8.10.147': + resolution: {integrity: sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==} '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -8017,8 +8031,8 @@ packages: '@types/node@20.17.9': resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} - '@types/node@22.10.3': - resolution: {integrity: sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==} + '@types/node@22.10.4': + resolution: {integrity: sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -10875,8 +10889,8 @@ 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.115: + resolution: {integrity: sha512-ivPnJotSMrXW8HLjFu+0iCVs8zP6KSliMelhr7HgcB2ki1QzpORkb26m71l1pzSnnGfm7gb5n/VtRTtpw8kXFA==} discord-api-types@0.37.83: resolution: {integrity: sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==} @@ -11133,8 +11147,8 @@ packages: error-polyfill@0.1.3: resolution: {integrity: sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==} - es-abstract@1.23.8: - resolution: {integrity: sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==} + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -11921,8 +11935,8 @@ packages: resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-nonce@1.0.1: @@ -11948,6 +11962,10 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} @@ -12730,8 +12748,8 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + is-async-function@2.1.0: + resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: @@ -12816,8 +12834,8 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -16776,8 +16794,8 @@ packages: reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - reflect.getprototypeof@1.0.9: - resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} regenerate-unicode-properties@10.2.0: @@ -16805,8 +16823,8 @@ packages: regex@5.1.1: resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} - regexp.prototype.flags@1.5.3: - resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} regexpu-core@6.2.0: @@ -17229,6 +17247,10 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -17790,8 +17812,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte@5.16.0: - resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==} + svelte@5.16.1: + resolution: {integrity: sha512-FsA1OjAKMAFSDob6j/Tv2ZV9rY4SeqPd1WXQlQkFkePAozSHLp6tbkU9qa1xJ+uTRzMSM2Vx3USdsYZBXd3H3g==} engines: {node: '>=18'} svg-parser@2.0.4: @@ -18381,8 +18403,8 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typedarray.prototype.slice@1.0.3: - resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} + typedarray.prototype.slice@1.0.5: + resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} engines: {node: '>= 0.4'} typedarray@0.0.6: @@ -19697,13 +19719,13 @@ snapshots: transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.57(svelte@5.16.0)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.57(svelte@5.16.1)(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.16.0) + sswr: 2.1.0(svelte@5.16.1) optionalDependencies: - svelte: 5.16.0 + svelte: 5.16.1 transitivePeerDependencies: - zod @@ -19966,10 +19988,10 @@ snapshots: dependencies: '@aptos-labs/aptos-cli': 1.0.2 '@aptos-labs/aptos-client': 0.1.1 - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 - '@scure/bip32': 1.6.0 - '@scure/bip39': 1.5.0 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 + '@scure/bip32': 1.6.1 + '@scure/bip39': 1.5.1 eventemitter3: 5.0.1 form-data: 4.0.1 js-base64: 3.7.7 @@ -20031,63 +20053,63 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-polly@3.716.0': + '@aws-sdk/client-polly@3.721.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) - '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0) + '@aws-sdk/client-sts': 3.721.0 '@aws-sdk/core': 3.716.0 - '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0) '@aws-sdk/middleware-host-header': 3.714.0 '@aws-sdk/middleware-logger': 3.714.0 '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/region-config-resolver': 3.714.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.716.0 + '@aws-sdk/util-user-agent-node': 3.721.0 '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.6 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/core': 2.5.7 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/hash-node': 3.0.11 '@smithy/invalid-dependency': 3.0.11 '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.7 - '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-endpoint': 3.2.8 + '@smithy/middleware-retry': 3.0.34 '@smithy/middleware-serde': 3.0.11 '@smithy/middleware-stack': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/node-http-handler': 3.3.3 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/url-parser': 3.0.11 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.32 - '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-defaults-mode-browser': 3.0.34 + '@smithy/util-defaults-mode-node': 3.0.34 '@smithy/util-endpoints': 2.1.7 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.717.0': + '@aws-sdk/client-s3@3.721.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) - '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0) + '@aws-sdk/client-sts': 3.721.0 '@aws-sdk/core': 3.716.0 - '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) - '@aws-sdk/middleware-bucket-endpoint': 3.714.0 + '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0) + '@aws-sdk/middleware-bucket-endpoint': 3.721.0 '@aws-sdk/middleware-expect-continue': 3.714.0 '@aws-sdk/middleware-flexible-checksums': 3.717.0 '@aws-sdk/middleware-host-header': 3.714.0 @@ -20096,88 +20118,88 @@ snapshots: '@aws-sdk/middleware-recursion-detection': 3.714.0 '@aws-sdk/middleware-sdk-s3': 3.716.0 '@aws-sdk/middleware-ssec': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/region-config-resolver': 3.714.0 '@aws-sdk/signature-v4-multi-region': 3.716.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.716.0 + '@aws-sdk/util-user-agent-node': 3.721.0 '@aws-sdk/xml-builder': 3.709.0 '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.6 + '@smithy/core': 2.5.7 '@smithy/eventstream-serde-browser': 3.0.14 '@smithy/eventstream-serde-config-resolver': 3.0.11 '@smithy/eventstream-serde-node': 3.0.13 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/hash-blob-browser': 3.1.10 '@smithy/hash-node': 3.0.11 '@smithy/hash-stream-node': 3.1.10 '@smithy/invalid-dependency': 3.0.11 '@smithy/md5-js': 3.0.11 '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.7 - '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-endpoint': 3.2.8 + '@smithy/middleware-retry': 3.0.34 '@smithy/middleware-serde': 3.0.11 '@smithy/middleware-stack': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/node-http-handler': 3.3.3 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/url-parser': 3.0.11 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.32 - '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-defaults-mode-browser': 3.0.34 + '@smithy/util-defaults-mode-node': 3.0.34 '@smithy/util-endpoints': 2.1.7 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 '@smithy/util-utf8': 3.0.0 '@smithy/util-waiter': 3.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)': + '@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/client-sts': 3.721.0 '@aws-sdk/core': 3.716.0 - '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0) '@aws-sdk/middleware-host-header': 3.714.0 '@aws-sdk/middleware-logger': 3.714.0 '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/region-config-resolver': 3.714.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.716.0 + '@aws-sdk/util-user-agent-node': 3.721.0 '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.6 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/core': 2.5.7 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/hash-node': 3.0.11 '@smithy/invalid-dependency': 3.0.11 '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.7 - '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-endpoint': 3.2.8 + '@smithy/middleware-retry': 3.0.34 '@smithy/middleware-serde': 3.0.11 '@smithy/middleware-stack': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/node-http-handler': 3.3.3 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/url-parser': 3.0.11 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.32 - '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-defaults-mode-browser': 3.0.34 + '@smithy/util-defaults-mode-node': 3.0.34 '@smithy/util-endpoints': 2.1.7 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 @@ -20186,7 +20208,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.716.0': + '@aws-sdk/client-sso@3.721.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -20194,33 +20216,33 @@ snapshots: '@aws-sdk/middleware-host-header': 3.714.0 '@aws-sdk/middleware-logger': 3.714.0 '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/region-config-resolver': 3.714.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.716.0 + '@aws-sdk/util-user-agent-node': 3.721.0 '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.6 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/core': 2.5.7 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/hash-node': 3.0.11 '@smithy/invalid-dependency': 3.0.11 '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.7 - '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-endpoint': 3.2.8 + '@smithy/middleware-retry': 3.0.34 '@smithy/middleware-serde': 3.0.11 '@smithy/middleware-stack': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/node-http-handler': 3.3.3 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/url-parser': 3.0.11 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.32 - '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-defaults-mode-browser': 3.0.34 + '@smithy/util-defaults-mode-node': 3.0.34 '@smithy/util-endpoints': 2.1.7 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 @@ -20229,43 +20251,43 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.716.0': + '@aws-sdk/client-sts@3.721.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0) '@aws-sdk/core': 3.716.0 - '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0) '@aws-sdk/middleware-host-header': 3.714.0 '@aws-sdk/middleware-logger': 3.714.0 '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/region-config-resolver': 3.714.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.716.0 + '@aws-sdk/util-user-agent-node': 3.721.0 '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.6 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/core': 2.5.7 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/hash-node': 3.0.11 '@smithy/invalid-dependency': 3.0.11 '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.7 - '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-endpoint': 3.2.8 + '@smithy/middleware-retry': 3.0.34 '@smithy/middleware-serde': 3.0.11 '@smithy/middleware-stack': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/node-http-handler': 3.3.3 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/url-parser': 3.0.11 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.32 - '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-defaults-mode-browser': 3.0.34 + '@smithy/util-defaults-mode-node': 3.0.34 '@smithy/util-endpoints': 2.1.7 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 @@ -20274,51 +20296,51 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-transcribe-streaming@3.716.0': + '@aws-sdk/client-transcribe-streaming@3.721.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) - '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0) + '@aws-sdk/client-sts': 3.721.0 '@aws-sdk/core': 3.716.0 - '@aws-sdk/credential-provider-node': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0) '@aws-sdk/eventstream-handler-node': 3.714.0 '@aws-sdk/middleware-eventstream': 3.714.0 '@aws-sdk/middleware-host-header': 3.714.0 '@aws-sdk/middleware-logger': 3.714.0 '@aws-sdk/middleware-recursion-detection': 3.714.0 '@aws-sdk/middleware-sdk-transcribe-streaming': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/middleware-websocket': 3.714.0 '@aws-sdk/region-config-resolver': 3.714.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.716.0 + '@aws-sdk/util-user-agent-node': 3.721.0 '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.6 + '@smithy/core': 2.5.7 '@smithy/eventstream-serde-browser': 3.0.14 '@smithy/eventstream-serde-config-resolver': 3.0.11 '@smithy/eventstream-serde-node': 3.0.13 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/hash-node': 3.0.11 '@smithy/invalid-dependency': 3.0.11 '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.7 - '@smithy/middleware-retry': 3.0.32 + '@smithy/middleware-endpoint': 3.2.8 + '@smithy/middleware-retry': 3.0.34 '@smithy/middleware-serde': 3.0.11 '@smithy/middleware-stack': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/node-http-handler': 3.3.3 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/url-parser': 3.0.11 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.32 - '@smithy/util-defaults-mode-node': 3.0.32 + '@smithy/util-defaults-mode-browser': 3.0.34 + '@smithy/util-defaults-mode-node': 3.0.34 '@smithy/util-endpoints': 2.1.7 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 @@ -20330,12 +20352,12 @@ snapshots: '@aws-sdk/core@3.716.0': dependencies: '@aws-sdk/types': 3.714.0 - '@smithy/core': 2.5.6 + '@smithy/core': 2.5.7 '@smithy/node-config-provider': 3.1.12 '@smithy/property-provider': 3.1.11 '@smithy/protocol-http': 4.1.8 '@smithy/signature-v4': 4.2.4 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/util-middleware': 3.0.11 fast-xml-parser: 4.4.1 @@ -20353,24 +20375,24 @@ snapshots: dependencies: '@aws-sdk/core': 3.716.0 '@aws-sdk/types': 3.714.0 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/node-http-handler': 3.3.3 '@smithy/property-provider': 3.1.11 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0)': + '@aws-sdk/credential-provider-ini@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)': dependencies: - '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/client-sts': 3.721.0 '@aws-sdk/core': 3.716.0 '@aws-sdk/credential-provider-env': 3.716.0 '@aws-sdk/credential-provider-http': 3.716.0 '@aws-sdk/credential-provider-process': 3.716.0 - '@aws-sdk/credential-provider-sso': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)) - '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-sso': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0)) + '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.721.0) '@aws-sdk/types': 3.714.0 '@smithy/credential-provider-imds': 3.2.8 '@smithy/property-provider': 3.1.11 @@ -20381,14 +20403,14 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0)': + '@aws-sdk/credential-provider-node@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)': dependencies: '@aws-sdk/credential-provider-env': 3.716.0 '@aws-sdk/credential-provider-http': 3.716.0 - '@aws-sdk/credential-provider-ini': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-ini': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0) '@aws-sdk/credential-provider-process': 3.716.0 - '@aws-sdk/credential-provider-sso': 3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)) - '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/credential-provider-sso': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0)) + '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.721.0) '@aws-sdk/types': 3.714.0 '@smithy/credential-provider-imds': 3.2.8 '@smithy/property-provider': 3.1.11 @@ -20409,11 +20431,11 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.716.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))': + '@aws-sdk/credential-provider-sso@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))': dependencies: - '@aws-sdk/client-sso': 3.716.0 + '@aws-sdk/client-sso': 3.721.0 '@aws-sdk/core': 3.716.0 - '@aws-sdk/token-providers': 3.714.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0)) + '@aws-sdk/token-providers': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0)) '@aws-sdk/types': 3.714.0 '@smithy/property-provider': 3.1.11 '@smithy/shared-ini-file-loader': 3.1.12 @@ -20423,9 +20445,9 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.716.0(@aws-sdk/client-sts@3.716.0)': + '@aws-sdk/credential-provider-web-identity@3.716.0(@aws-sdk/client-sts@3.721.0)': dependencies: - '@aws-sdk/client-sts': 3.716.0 + '@aws-sdk/client-sts': 3.721.0 '@aws-sdk/core': 3.716.0 '@aws-sdk/types': 3.714.0 '@smithy/property-provider': 3.1.11 @@ -20439,7 +20461,7 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/middleware-bucket-endpoint@3.714.0': + '@aws-sdk/middleware-bucket-endpoint@3.721.0': dependencies: '@aws-sdk/types': 3.714.0 '@aws-sdk/util-arn-parser': 3.693.0 @@ -20475,7 +20497,7 @@ snapshots: '@smithy/protocol-http': 4.1.8 '@smithy/types': 3.7.2 '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 @@ -20510,15 +20532,15 @@ snapshots: '@aws-sdk/core': 3.716.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-arn-parser': 3.693.0 - '@smithy/core': 2.5.6 + '@smithy/core': 2.5.7 '@smithy/node-config-provider': 3.1.12 '@smithy/protocol-http': 4.1.8 '@smithy/signature-v4': 4.2.4 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/util-config-provider': 3.0.0 '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 @@ -20539,12 +20561,12 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.716.0': + '@aws-sdk/middleware-user-agent@3.721.0': dependencies: '@aws-sdk/core': 3.716.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-endpoints': 3.714.0 - '@smithy/core': 2.5.6 + '@smithy/core': 2.5.7 '@smithy/protocol-http': 4.1.8 '@smithy/types': 3.7.2 tslib: 2.8.1 @@ -20555,7 +20577,7 @@ snapshots: '@aws-sdk/util-format-url': 3.714.0 '@smithy/eventstream-codec': 3.1.10 '@smithy/eventstream-serde-browser': 3.0.14 - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/protocol-http': 4.1.8 '@smithy/signature-v4': 4.2.4 '@smithy/types': 3.7.2 @@ -20571,14 +20593,14 @@ snapshots: '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@aws-sdk/s3-request-presigner@3.717.0': + '@aws-sdk/s3-request-presigner@3.721.0': dependencies: '@aws-sdk/signature-v4-multi-region': 3.716.0 '@aws-sdk/types': 3.714.0 '@aws-sdk/util-format-url': 3.714.0 - '@smithy/middleware-endpoint': 3.2.7 + '@smithy/middleware-endpoint': 3.2.8 '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 tslib: 2.8.1 @@ -20591,9 +20613,9 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@aws-sdk/token-providers@3.714.0(@aws-sdk/client-sso-oidc@3.716.0(@aws-sdk/client-sts@3.716.0))': + '@aws-sdk/token-providers@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))': dependencies: - '@aws-sdk/client-sso-oidc': 3.716.0(@aws-sdk/client-sts@3.716.0) + '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0) '@aws-sdk/types': 3.714.0 '@smithy/property-provider': 3.1.11 '@smithy/shared-ini-file-loader': 3.1.12 @@ -20634,9 +20656,9 @@ snapshots: bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.716.0': + '@aws-sdk/util-user-agent-node@3.721.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.716.0 + '@aws-sdk/middleware-user-agent': 3.721.0 '@aws-sdk/types': 3.714.0 '@smithy/node-config-provider': 3.1.12 '@smithy/types': 3.7.2 @@ -21472,7 +21494,7 @@ snapshots: '@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 + '@noble/hashes': 1.7.0 bech32: 2.0.0 bitcoinjs-lib: 7.0.0-rc.0(typescript@5.6.3) bs58: 6.0.0 @@ -21532,7 +21554,7 @@ snapshots: '@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 + '@scure/bip32': 1.6.1 abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8) axios: 1.7.9(debug@4.4.0) axios-mock-adapter: 1.22.0(axios@1.7.9) @@ -21555,11 +21577,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@18.6.1(@types/node@22.10.3)(typescript@5.6.3)': + '@commitlint/cli@18.6.1(@types/node@22.10.4)(typescript@5.6.3)': dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@22.10.3)(typescript@5.6.3) + '@commitlint/load': 18.6.1(@types/node@22.10.4)(typescript@5.6.3) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -21609,7 +21631,7 @@ snapshots: '@commitlint/rules': 18.6.1 '@commitlint/types': 18.6.1 - '@commitlint/load@18.6.1(@types/node@22.10.3)(typescript@5.6.3)': + '@commitlint/load@18.6.1(@types/node@22.10.4)(typescript@5.6.3)': dependencies: '@commitlint/config-validator': 18.6.1 '@commitlint/execute-rule': 18.6.1 @@ -21617,7 +21639,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.3)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.4)(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 @@ -21673,7 +21695,7 @@ snapshots: '@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.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 '@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 @@ -21695,7 +21717,7 @@ snapshots: dependencies: '@coral-xyz/anchor-errors': 0.30.1 '@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 + '@noble/hashes': 1.7.0 '@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 @@ -22009,8 +22031,8 @@ snapshots: dependencies: '@dfinity/candid': 2.1.3(@dfinity/principal@2.1.3) '@dfinity/principal': 2.1.3 - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 base64-arraybuffer: 0.2.0 borc: 2.1.2 buffer: 6.0.3 @@ -22024,21 +22046,21 @@ snapshots: dependencies: '@dfinity/agent': 2.1.3(@dfinity/candid@2.1.3(@dfinity/principal@2.1.3))(@dfinity/principal@2.1.3) '@dfinity/principal': 2.1.3 - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 '@peculiar/webcrypto': 1.5.0 borc: 2.1.2 '@dfinity/principal@2.1.3': dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 '@discordjs/builders@1.10.0': dependencies: '@discordjs/formatters': 0.6.0 '@discordjs/util': 1.1.1 '@sapphire/shapeshift': 4.0.0 - discord-api-types: 0.37.114 + discord-api-types: 0.37.115 fast-deep-equal: 3.1.3 ts-mixer: 6.0.4 tslib: 2.8.1 @@ -22053,7 +22075,7 @@ snapshots: '@discordjs/formatters@0.6.0': dependencies: - discord-api-types: 0.37.114 + discord-api-types: 0.37.115 '@discordjs/node-pre-gyp@0.4.5(encoding@0.1.13)': dependencies: @@ -23000,7 +23022,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.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)': + '@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.1))(svelte@5.16.1)': dependencies: '@ai-sdk/anthropic': 0.0.56(zod@3.23.8) '@ai-sdk/google': 0.0.55(zod@3.23.8) @@ -23010,7 +23032,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.16.0))(svelte@5.16.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.1))(svelte@5.16.1)(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 @@ -23735,23 +23757,23 @@ snapshots: '@floating-ui/utils@0.2.8': {} - '@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-coder@0.97.2(vitest@2.1.4(@types/node@22.10.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: - '@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/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/errors': 0.97.2 - '@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/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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.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)) type-fest: 4.31.0 transitivePeerDependencies: - vitest - '@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/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.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: '@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.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.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)) '@fuel-ts/versions': 0.97.2 commander: 12.1.0 glob: 10.4.5 @@ -23762,21 +23784,21 @@ snapshots: transitivePeerDependencies: - vitest - '@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/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/errors': 0.97.2 - '@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/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 - '@noble/curves': 1.7.0 + '@noble/curves': 1.8.0 events: 3.3.0 graphql: 16.10.0 graphql-request: 6.1.0(encoding@0.1.13)(graphql@16.10.0) @@ -23786,30 +23808,30 @@ snapshots: - encoding - vitest - '@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/address@0.97.2(vitest@2.1.4(@types/node@22.10.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: - '@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/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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 + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@noble/hashes': 1.7.0 bech32: 2.0.0 transitivePeerDependencies: - vitest - '@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/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/errors': 0.97.2 - '@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/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 @@ -23817,13 +23839,13 @@ snapshots: - encoding - vitest - '@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/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.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: '@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.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 + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@noble/hashes': 1.7.0 transitivePeerDependencies: - vitest @@ -23831,12 +23853,12 @@ snapshots: dependencies: '@fuel-ts/versions': 0.97.2 - '@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/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.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: - '@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/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/interfaces': 0.97.2 - '@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 + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@noble/hashes': 1.7.0 transitivePeerDependencies: - vitest @@ -23848,78 +23870,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.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/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.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: - '@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/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/interfaces': 0.97.2 - '@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/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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: - encoding - vitest - '@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/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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: - encoding - vitest - '@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/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/errors': 0.97.2 - '@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/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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.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: - vitest - '@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/utils@0.97.2(vitest@2.1.4(@types/node@22.10.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: '@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.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: 2.1.4(@types/node@22.10.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) '@fuel-ts/versions@0.97.2': dependencies: @@ -23928,10 +23950,10 @@ snapshots: '@fuels/vm-asm@0.58.2': {} - '@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))': + '@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.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))': dependencies: '@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) + 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.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) zod: 3.23.8 '@goat-sdk/core@0.4.0': @@ -24707,8 +24729,8 @@ snapshots: dependencies: '@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 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 '@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 @@ -25001,7 +25023,7 @@ snapshots: 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.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@noble/curves': 1.7.0 + '@noble/curves': 1.8.0 '@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)': @@ -25159,10 +25181,10 @@ snapshots: dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) '@mysten/bcs': 1.2.0 - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 - '@scure/bip32': 1.6.0 - '@scure/bip39': 1.5.0 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 + '@scure/bip32': 1.6.1 + '@scure/bip39': 1.5.1 '@simplewebauthn/typescript-types': 7.4.0 '@suchipi/femver': 1.0.0 bech32: 2.0.0 @@ -25349,6 +25371,10 @@ snapshots: dependencies: '@noble/hashes': 1.6.0 + '@noble/curves@1.8.0': + dependencies: + '@noble/hashes': 1.7.0 + '@noble/ed25519@1.7.3': {} '@noble/hashes@1.2.0': {} @@ -25367,6 +25393,8 @@ snapshots: '@noble/hashes@1.6.1': {} + '@noble/hashes@1.7.0': {} + '@noble/secp256k1@1.7.1': {} '@node-llama-cpp/linux-arm64@3.1.1': @@ -25816,7 +25844,7 @@ snapshots: '@octokit/core': 6.1.2 '@octokit/oauth-authorization-url': 7.1.1 '@octokit/oauth-methods': 5.1.3 - '@types/aws-lambda': 8.10.146 + '@types/aws-lambda': 8.10.147 universal-user-agent: 7.0.2 '@octokit/oauth-authorization-url@7.1.1': {} @@ -27015,6 +27043,12 @@ snapshots: '@noble/hashes': 1.6.1 '@scure/base': 1.2.1 + '@scure/bip32@1.6.1': + dependencies: + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 + '@scure/base': 1.2.1 + '@scure/bip39@1.1.1': dependencies: '@noble/hashes': 1.2.0 @@ -27035,6 +27069,11 @@ snapshots: '@noble/hashes': 1.6.1 '@scure/base': 1.2.1 + '@scure/bip39@1.5.1': + dependencies: + '@noble/hashes': 1.7.0 + '@scure/base': 1.2.1 + '@scure/starknet@1.0.0': dependencies: '@noble/curves': 1.3.0 @@ -27262,14 +27301,14 @@ snapshots: '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@smithy/core@2.5.6': + '@smithy/core@2.5.7': dependencies: '@smithy/middleware-serde': 3.0.11 '@smithy/protocol-http': 4.1.8 '@smithy/types': 3.7.2 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 @@ -27311,7 +27350,7 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/fetch-http-handler@4.1.2': + '@smithy/fetch-http-handler@4.1.3': dependencies: '@smithy/protocol-http': 4.1.8 '@smithy/querystring-builder': 3.0.11 @@ -27364,9 +27403,9 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/middleware-endpoint@3.2.7': + '@smithy/middleware-endpoint@3.2.8': dependencies: - '@smithy/core': 2.5.6 + '@smithy/core': 2.5.7 '@smithy/middleware-serde': 3.0.11 '@smithy/node-config-provider': 3.1.12 '@smithy/shared-ini-file-loader': 3.1.12 @@ -27375,12 +27414,12 @@ snapshots: '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@smithy/middleware-retry@3.0.32': + '@smithy/middleware-retry@3.0.34': dependencies: '@smithy/node-config-provider': 3.1.12 '@smithy/protocol-http': 4.1.8 '@smithy/service-error-classification': 3.0.11 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 '@smithy/util-middleware': 3.0.11 '@smithy/util-retry': 3.0.11 @@ -27453,14 +27492,14 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/smithy-client@3.5.2': + '@smithy/smithy-client@3.7.0': dependencies: - '@smithy/core': 2.5.6 - '@smithy/middleware-endpoint': 3.2.7 + '@smithy/core': 2.5.7 + '@smithy/middleware-endpoint': 3.2.8 '@smithy/middleware-stack': 3.0.11 '@smithy/protocol-http': 4.1.8 '@smithy/types': 3.7.2 - '@smithy/util-stream': 3.3.3 + '@smithy/util-stream': 3.3.4 tslib: 2.8.1 '@smithy/types@3.7.2': @@ -27501,21 +27540,21 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@3.0.32': + '@smithy/util-defaults-mode-browser@3.0.34': dependencies: '@smithy/property-provider': 3.1.11 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@3.0.32': + '@smithy/util-defaults-mode-node@3.0.34': dependencies: '@smithy/config-resolver': 3.0.13 '@smithy/credential-provider-imds': 3.2.8 '@smithy/node-config-provider': 3.1.12 '@smithy/property-provider': 3.1.11 - '@smithy/smithy-client': 3.5.2 + '@smithy/smithy-client': 3.7.0 '@smithy/types': 3.7.2 tslib: 2.8.1 @@ -27540,9 +27579,9 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-stream@3.3.3': + '@smithy/util-stream@3.3.4': dependencies: - '@smithy/fetch-http-handler': 4.1.2 + '@smithy/fetch-http-handler': 4.1.3 '@smithy/node-http-handler': 3.3.3 '@smithy/types': 3.7.2 '@smithy/util-base64': 3.0.0 @@ -27770,8 +27809,8 @@ snapshots: '@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 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 '@solana/buffer-layout': 4.0.1 agentkeepalive: 4.6.0 bigint-buffer: 1.1.5 @@ -27792,8 +27831,8 @@ snapshots: '@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 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 '@solana/buffer-layout': 4.0.1 agentkeepalive: 4.6.0 bigint-buffer: 1.1.5 @@ -27817,7 +27856,7 @@ snapshots: '@spruceid/siwe-parser@2.1.2': dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 apg-js: 4.4.0 uri-js: 4.4.1 valid-url: 1.0.9 @@ -28193,7 +28232,7 @@ snapshots: dependencies: '@types/estree': 1.0.6 - '@types/aws-lambda@8.10.146': {} + '@types/aws-lambda@8.10.147': {} '@types/babel__core@7.20.5': dependencies: @@ -28578,7 +28617,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.10.3': + '@types/node@22.10.4': dependencies: undici-types: 6.20.0 @@ -28958,13 +28997,13 @@ snapshots: 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.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/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.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: 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.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: 2.1.5(@types/node@22.10.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) '@vitest/expect@2.1.4': dependencies: @@ -28980,21 +29019,21 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0))': + '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.4)(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.3)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0) - '@vitest/mocker@2.1.5(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.4)(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.3)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0) '@vitest/pretty-format@2.1.4': dependencies: @@ -29692,13 +29731,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.16.0))(svelte@5.16.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.1))(svelte@5.16.1)(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/svelte': 0.0.57(svelte@5.16.1)(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 @@ -29710,20 +29749,20 @@ snapshots: optionalDependencies: 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 + sswr: 2.1.0(svelte@5.16.1) + svelte: 5.16.1 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): + 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.1))(svelte@5.16.1)(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/svelte': 0.0.57(svelte@5.16.1)(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 @@ -29735,8 +29774,8 @@ snapshots: 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 + sswr: 2.1.0(svelte@5.16.1) + svelte: 5.16.1 zod: 3.23.8 transitivePeerDependencies: - solid-js @@ -29933,9 +29972,9 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 arrify@1.0.1: {} @@ -30357,7 +30396,7 @@ snapshots: bip32@4.0.0: dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 '@scure/base': 1.2.1 typeforce: 1.18.0 wif: 2.0.6 @@ -30375,7 +30414,7 @@ snapshots: bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3): dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 bech32: 2.0.0 bip174: 3.0.0-rc.1 bs58check: 4.0.0 @@ -30656,7 +30695,7 @@ snapshots: bs58check@4.0.0: dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 bs58: 6.0.0 bser@2.1.1: @@ -30803,13 +30842,13 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 callsites@3.1.0: {} @@ -31024,10 +31063,10 @@ snapshots: 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 + '@noble/curves': 1.8.0 + '@noble/hashes': 1.7.0 + '@scure/bip32': 1.6.1 + '@scure/bip39': 1.5.1 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: @@ -31477,9 +31516,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.3)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.4)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 typescript: 5.6.3 @@ -31562,13 +31601,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.10.3): + create-jest@29.7.0(@types/node@22.10.4): 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.3) + jest-config: 29.7.0(@types/node@22.10.4) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -32328,7 +32367,7 @@ snapshots: discord-api-types@0.37.100: {} - discord-api-types@0.37.114: {} + discord-api-types@0.37.115: {} discord-api-types@0.37.83: {} @@ -32494,8 +32533,8 @@ snapshots: 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 + '@aws-sdk/client-polly': 3.721.0 + '@aws-sdk/client-transcribe-streaming': 3.721.0 '@echogarden/audio-io': 0.2.3 '@echogarden/espeak-ng-emscripten': 0.3.3 '@echogarden/fasttext-wasm': 0.1.0 @@ -32655,7 +32694,7 @@ snapshots: o3: 1.0.3 u3: 0.1.1 - es-abstract@1.23.8: + es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -32671,7 +32710,8 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 gopd: 1.2.0 @@ -32693,10 +32733,11 @@ snapshots: object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 - regexp.prototype.flags: 1.5.3 + regexp.prototype.flags: 1.5.4 safe-array-concat: 1.1.3 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 + set-proto: 1.0.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -32720,7 +32761,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -33760,24 +33801,24 @@ snapshots: fsevents@2.3.3: optional: true - 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)): + fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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: - '@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/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/errors': 0.97.2 - '@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/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@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.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/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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)) '@fuel-ts/versions': 0.97.2 bundle-require: 5.1.0(esbuild@0.24.2) chalk: 4.1.2 @@ -33870,14 +33911,14 @@ snapshots: get-east-asian-width@1.3.0: {} - get-intrinsic@1.2.6: + get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 @@ -33912,6 +33953,11 @@ snapshots: get-port@5.1.1: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + get-stdin@9.0.0: {} get-stream@5.2.0: @@ -33928,7 +33974,7 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 get-tsconfig@4.8.1: dependencies: @@ -34264,7 +34310,7 @@ snapshots: hard-rejection@2.1.0: {} - 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): + 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.4)(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 @@ -34311,7 +34357,7 @@ snapshots: uuid: 8.3.2 ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - bufferutil @@ -34981,15 +35027,18 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} - is-async-function@2.0.0: + is-async-function@2.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-bigint@1.1.0: dependencies: @@ -35025,7 +35074,7 @@ snapshots: is-data-view@1.0.2: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-typed-array: 1.1.15 is-date-object@1.1.0: @@ -35057,9 +35106,12 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -35225,7 +35277,7 @@ snapshots: is-weakset@2.0.4: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-wsl@2.2.0: dependencies: @@ -35433,16 +35485,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.10.3): + jest-cli@29.7.0(@types/node@22.10.4): dependencies: '@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.3) + create-jest: 29.7.0(@types/node@22.10.4) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.10.3) + jest-config: 29.7.0(@types/node@22.10.4) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -35595,7 +35647,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.10.3): + jest-config@29.7.0(@types/node@22.10.4): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -35620,7 +35672,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -35901,12 +35953,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.10.3): + jest@29.7.0(@types/node@22.10.4): dependencies: '@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.3) + jest-cli: 29.7.0(@types/node@22.10.4) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -38327,7 +38379,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -40278,15 +40330,15 @@ snapshots: reflect-metadata@0.2.2: {} - reflect.getprototypeof@1.0.9: + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - dunder-proto: 1.0.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - gopd: 1.2.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 which-builtin-type: 1.2.1 regenerate-unicode-properties@10.2.0: @@ -40314,11 +40366,13 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regexp.prototype.flags@1.5.3: + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 set-function-name: 2.0.2 regexpu-core@6.2.0: @@ -40663,7 +40717,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 has-symbols: 1.1.0 isarray: 2.0.5 @@ -40865,7 +40919,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -40876,6 +40930,12 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + setimmediate@1.0.5: {} setprototypeof@1.1.0: {} @@ -40983,14 +41043,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-map: 1.0.1 @@ -41274,9 +41334,9 @@ snapshots: dependencies: minipass: 7.1.2 - sswr@2.1.0(svelte@5.16.0): + sswr@2.1.0(svelte@5.16.1): dependencies: - svelte: 5.16.0 + svelte: 5.16.1 swrev: 4.0.0 stack-utils@2.0.6: @@ -41397,7 +41457,7 @@ snapshots: call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 has-property-descriptors: 1.0.2 @@ -41544,7 +41604,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte@5.16.0: + svelte@5.16.1: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -41896,7 +41956,7 @@ snapshots: traverse@0.6.10: dependencies: gopd: 1.2.0 - typedarray.prototype.slice: 1.0.3 + typedarray.prototype.slice: 1.0.5 which-typed-array: 1.1.18 tree-kill@1.2.2: {} @@ -42021,14 +42081,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.4(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.3)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(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.3 + '@types/node': 22.10.4 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -42230,7 +42290,7 @@ snapshots: gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typed-array-length@1.0.7: dependencies: @@ -42239,7 +42299,7 @@ snapshots: gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typed-function@2.1.0: {} @@ -42247,12 +42307,14 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typedarray.prototype.slice@1.0.3: + typedarray.prototype.slice@1.0.5: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 + get-proto: 1.0.1 + math-intrinsics: 1.1.0 typed-array-buffer: 1.0.3 typed-array-byte-offset: 1.0.4 @@ -42631,7 +42693,7 @@ snapshots: dependencies: inherits: 2.0.4 is-arguments: 1.2.0 - is-generator-function: 1.0.10 + is-generator-function: 1.1.0 is-typed-array: 1.1.15 which-typed-array: 1.1.18 @@ -42781,12 +42843,12 @@ snapshots: - utf-8-validate - zod - vite-node@2.1.4(@types/node@22.10.3)(terser@5.37.0): + vite-node@2.1.4(@types/node@22.10.4)(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.3)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -42798,13 +42860,13 @@ snapshots: - supports-color - terser - vite-node@2.1.5(@types/node@22.10.3)(terser@5.37.0): + vite-node@2.1.5(@types/node@22.10.4)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.3)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -42848,13 +42910,13 @@ snapshots: dependencies: vite: link:client/@tanstack/router-plugin/vite - vite@5.4.11(@types/node@22.10.3)(terser@5.37.0): + vite@5.4.11(@types/node@22.10.4)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 rollup: 4.29.1 optionalDependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 fsevents: 2.3.3 terser: 5.37.0 @@ -42868,10 +42930,10 @@ snapshots: fsevents: 2.3.3 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): + vitest@2.1.4(@types/node@22.10.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.4 - '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.3)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -42887,11 +42949,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.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) + vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.10.4)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -42904,10 +42966,10 @@ snapshots: - supports-color - terser - 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@2.1.5(@types/node@22.10.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.10.3)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -42923,11 +42985,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.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) + vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0) + vite-node: 2.1.5(@types/node@22.10.4)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.4 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -42943,7 +43005,7 @@ snapshots: 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.10.3)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -43191,10 +43253,10 @@ snapshots: - encoding - utf-8-validate - 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)): + 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.4)(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.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) + 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.4)(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 @@ -43497,10 +43559,10 @@ snapshots: call-bound: 1.0.3 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 + is-async-function: 2.1.0 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 + is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.0 isarray: 2.0.5 diff --git a/scripts/jsdoc-automation/package.json b/scripts/jsdoc-automation/package.json index 60902a2a41..2ce4c05bfe 100644 --- a/scripts/jsdoc-automation/package.json +++ b/scripts/jsdoc-automation/package.json @@ -3,10 +3,13 @@ "name": "plugin-audix", "version": "1.0.0", "description": "", - "main": "index.ts", + "main": "dist/index.js", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", "scripts": { - "start": "NODE_OPTIONS='--loader ts-node/esm' node src/index.ts", - "test": "echo \"Error: no test specified\" && exit 1", + "build": "tsup", + "dev": "tsup --watch", + "start": "node dist/index.js", "clean": "rm -rf node_modules dist" }, "keywords": [], @@ -16,15 +19,16 @@ "@langchain/openai": "^0.3.16", "@octokit/rest": "^21.0.2", "@types/node": "^20.11.0", - "dotenv": "^16.4.7", - "langchain": "^0.3.7", "@typescript-eslint/parser": "6.18.1", "@typescript-eslint/types": "6.18.1", "@typescript-eslint/typescript-estree": "6.18.1", + "dotenv": "^16.4.7", + "langchain": "^0.3.7", "yaml": "^2.3.4" }, "devDependencies": { "ts-node": "^10.9.2", + "tsup": "^8.3.5", "typescript": "5.3.3" } } \ No newline at end of file diff --git a/scripts/jsdoc-automation/pnpm-lock.yaml b/scripts/jsdoc-automation/pnpm-lock.yaml index 4bf18e4f59..8a536082b5 100644 --- a/scripts/jsdoc-automation/pnpm-lock.yaml +++ b/scripts/jsdoc-automation/pnpm-lock.yaml @@ -18,11 +18,14 @@ importers: specifier: ^20.11.0 version: 20.17.10 '@typescript-eslint/parser': - specifier: ^6.18.1 - version: 6.21.0(eslint@9.17.0)(typescript@5.3.3) + specifier: 6.18.1 + version: 6.18.1(eslint@9.17.0)(typescript@5.3.3) '@typescript-eslint/types': - specifier: ^6.18.1 - version: 6.21.0 + specifier: 6.18.1 + version: 6.18.1 + '@typescript-eslint/typescript-estree': + specifier: 6.18.1 + version: 6.18.1(typescript@5.3.3) dotenv: specifier: ^16.4.7 version: 16.4.7 @@ -36,6 +39,9 @@ importers: ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@20.17.10)(typescript@5.3.3) + tsup: + specifier: ^8.3.5 + version: 8.3.5(typescript@5.3.3)(yaml@2.6.1) typescript: specifier: 5.3.3 version: 5.3.3 @@ -49,6 +55,156 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -103,13 +259,28 @@ packages: resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -193,6 +364,105 @@ packages: '@octokit/types@13.6.2': resolution: {integrity: sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} + cpu: [x64] + os: [win32] + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -226,8 +496,8 @@ packages: '@types/uuid@10.0.0': resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + '@typescript-eslint/parser@6.18.1': + resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -236,16 +506,16 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + '@typescript-eslint/scope-manager@6.18.1': + resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + '@typescript-eslint/types@6.18.1': + resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + '@typescript-eslint/typescript-estree@6.18.1': + resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -253,8 +523,8 @@ packages: typescript: optional: true - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + '@typescript-eslint/visitor-keys@6.18.1': + resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} engines: {node: ^16.0.0 || >=18.0.0} abort-controller@3.0.0: @@ -282,6 +552,14 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -290,6 +568,13 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -322,6 +607,16 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -334,6 +629,10 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -349,9 +648,17 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + consola@3.3.3: + resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} + engines: {node: ^14.18.0 || >=16.10.0} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -391,6 +698,20 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -460,6 +781,14 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -479,6 +808,10 @@ packages: flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + form-data-encoder@1.7.2: resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} @@ -490,6 +823,11 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -498,6 +836,10 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -529,6 +871,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -540,6 +886,13 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tiktoken@1.0.16: resolution: {integrity: sha512-nUVdO5k/M9llWpiaZlBBDdtmr6qWXwSD6fgaDu2zM8UP+OXxx9V37lFkI6w0/1IuaDx7WffZ37oYd9KvcWKElg==} @@ -621,6 +974,17 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -628,6 +992,12 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -654,6 +1024,14 @@ packages: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -661,6 +1039,9 @@ packages: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} hasBin: true + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -677,6 +1058,10 @@ packages: encoding: optional: true + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + openai@4.77.0: resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==} hasBin: true @@ -717,6 +1102,9 @@ packages: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -729,14 +1117,47 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -748,10 +1169,18 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -760,6 +1189,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -776,18 +1210,61 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -795,12 +1272,22 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + ts-api-utils@1.4.3: resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -815,6 +1302,25 @@ packages: '@swc/wasm': optional: true + tsup@8.3.5: + resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -850,9 +1356,15 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -862,6 +1374,14 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + yaml@2.6.1: resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} @@ -891,6 +1411,81 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@esbuild/aix-ppc64@0.24.2': + optional: true + + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.24.2': + optional: true + + '@esbuild/android-x64@0.24.2': + optional: true + + '@esbuild/darwin-arm64@0.24.2': + optional: true + + '@esbuild/darwin-x64@0.24.2': + optional: true + + '@esbuild/freebsd-arm64@0.24.2': + optional: true + + '@esbuild/freebsd-x64@0.24.2': + optional: true + + '@esbuild/linux-arm64@0.24.2': + optional: true + + '@esbuild/linux-arm@0.24.2': + optional: true + + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.24.2': + optional: true + + '@esbuild/linux-mips64el@0.24.2': + optional: true + + '@esbuild/linux-ppc64@0.24.2': + optional: true + + '@esbuild/linux-riscv64@0.24.2': + optional: true + + '@esbuild/linux-s390x@0.24.2': + optional: true + + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + + '@esbuild/openbsd-x64@0.24.2': + optional: true + + '@esbuild/sunos-x64@0.24.2': + optional: true + + '@esbuild/win32-arm64@0.24.2': + optional: true + + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.24.2': + optional: true + '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': dependencies: eslint: 9.17.0 @@ -945,10 +1540,32 @@ snapshots: '@humanwhocodes/retry@0.4.1': {} + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -1059,6 +1676,66 @@ snapshots: dependencies: '@octokit/openapi-types': 22.2.0 + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.29.1': + optional: true + + '@rollup/rollup-android-arm64@4.29.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.29.1': + optional: true + + '@rollup/rollup-darwin-x64@4.29.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.29.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.29.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.29.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.29.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.29.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.29.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.29.1': + optional: true + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -1088,12 +1765,12 @@ snapshots: '@types/uuid@10.0.0': {} - '@typescript-eslint/parser@6.21.0(eslint@9.17.0)(typescript@5.3.3)': + '@typescript-eslint/parser@6.18.1(eslint@9.17.0)(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.4.0 eslint: 9.17.0 optionalDependencies: @@ -1101,17 +1778,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': + '@typescript-eslint/scope-manager@6.18.1': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/types@6.18.1': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 @@ -1123,9 +1800,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/visitor-keys@6.18.1': dependencies: - '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/types': 6.18.1 eslint-visitor-keys: 3.4.3 abort-controller@3.0.0: @@ -1153,12 +1830,20 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + arg@4.1.3: {} argparse@2.0.1: {} @@ -1186,6 +1871,13 @@ snapshots: dependencies: fill-range: 7.1.1 + bundle-require@5.1.0(esbuild@0.24.2): + dependencies: + esbuild: 0.24.2 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + callsites@3.1.0: {} camelcase@6.3.0: {} @@ -1195,6 +1887,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chokidar@4.0.3: + dependencies: + readdirp: 4.0.2 + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -1207,8 +1903,12 @@ snapshots: commander@10.0.1: {} + commander@4.1.1: {} + concat-map@0.0.1: {} + consola@3.3.3: {} + create-require@1.1.1: {} cross-spawn@7.0.6: @@ -1235,6 +1935,40 @@ snapshots: dotenv@16.4.7: {} + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + escape-string-regexp@4.0.0: {} eslint-scope@8.2.0: @@ -1325,6 +2059,10 @@ snapshots: dependencies: reusify: 1.0.4 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -1345,6 +2083,11 @@ snapshots: flatted@3.3.2: {} + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + form-data-encoder@1.7.2: {} form-data@4.0.1: @@ -1358,6 +2101,9 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 + fsevents@2.3.3: + optional: true + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -1366,6 +2112,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + globals@14.0.0: {} globby@11.1.0: @@ -1394,6 +2149,8 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -1402,6 +2159,14 @@ snapshots: isexe@2.0.0: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + joycon@3.1.1: {} + js-tiktoken@1.0.16: dependencies: base64-js: 1.5.1 @@ -1457,12 +2222,22 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} + + lru-cache@10.4.3: {} + make-error@1.3.6: {} merge2@1.4.1: {} @@ -1486,10 +2261,22 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.1.2: {} + ms@2.1.3: {} mustache@4.2.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + natural-compare@1.4.0: {} node-domexception@1.0.0: {} @@ -1498,6 +2285,8 @@ snapshots: dependencies: whatwg-url: 5.0.0 + object-assign@4.1.1: {} + openai@4.77.0(zod@3.24.1): dependencies: '@types/node': 18.19.68 @@ -1547,6 +2336,8 @@ snapshots: dependencies: p-finally: 1.0.0 + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -1555,22 +2346,68 @@ snapshots: path-key@3.1.1: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-type@4.0.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} + + pirates@4.0.6: {} + + postcss-load-config@6.0.1(yaml@2.6.1): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + yaml: 2.6.1 + prelude-ls@1.2.1: {} punycode@2.3.1: {} queue-microtask@1.2.3: {} + readdirp@4.0.2: {} + resolve-from@4.0.0: {} + resolve-from@5.0.0: {} + retry@0.13.1: {} reusify@1.0.4: {} + rollup@4.29.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.29.1 + '@rollup/rollup-android-arm64': 4.29.1 + '@rollup/rollup-darwin-arm64': 4.29.1 + '@rollup/rollup-darwin-x64': 4.29.1 + '@rollup/rollup-freebsd-arm64': 4.29.1 + '@rollup/rollup-freebsd-x64': 4.29.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 + '@rollup/rollup-linux-arm-musleabihf': 4.29.1 + '@rollup/rollup-linux-arm64-gnu': 4.29.1 + '@rollup/rollup-linux-arm64-musl': 4.29.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 + '@rollup/rollup-linux-riscv64-gnu': 4.29.1 + '@rollup/rollup-linux-s390x-gnu': 4.29.1 + '@rollup/rollup-linux-x64-gnu': 4.29.1 + '@rollup/rollup-linux-x64-musl': 4.29.1 + '@rollup/rollup-win32-arm64-msvc': 4.29.1 + '@rollup/rollup-win32-ia32-msvc': 4.29.1 + '@rollup/rollup-win32-x64-msvc': 4.29.1 + fsevents: 2.3.3 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -1583,24 +2420,83 @@ snapshots: shebang-regex@3.0.0: {} + signal-exit@4.1.0: {} + slash@3.0.0: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + strip-json-comments@3.1.1: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinyexec@0.3.2: {} + + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + ts-api-utils@1.4.3(typescript@5.3.3): dependencies: typescript: 5.3.3 + ts-interface-checker@0.1.13: {} + ts-node@10.9.2(@types/node@20.17.10)(typescript@5.3.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -1619,6 +2515,32 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + tsup@8.3.5(typescript@5.3.3)(yaml@2.6.1): + dependencies: + bundle-require: 5.1.0(esbuild@0.24.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.3.3 + debug: 4.4.0 + esbuild: 0.24.2 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(yaml@2.6.1) + resolve-from: 5.0.0 + rollup: 4.29.1 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.10 + tree-kill: 1.2.2 + optionalDependencies: + typescript: 5.3.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -1643,17 +2565,37 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 word-wrap@1.2.5: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + yaml@2.6.1: {} yn@3.1.1: {} diff --git a/scripts/jsdoc-automation/src/AIService.ts b/scripts/jsdoc-automation/src/AIService.ts index 2f7d7b8225..5e95807c61 100644 --- a/scripts/jsdoc-automation/src/AIService.ts +++ b/scripts/jsdoc-automation/src/AIService.ts @@ -1,24 +1,42 @@ import { ChatOpenAI } from "@langchain/openai"; import dotenv from 'dotenv'; +import { ActionMetadata, ASTQueueItem, EnvUsage, OrganizedDocs, PluginDocumentation, TodoItem, TodoSection } from "./types/index.js"; +import path from "path"; +import { promises as fs } from 'fs'; +import { Configuration } from "./Configuration.js"; +import { TypeScriptParser } from './TypeScriptParser.js'; +import { PROMPT_TEMPLATES } from "./utils/prompts.js"; dotenv.config(); +interface FileDocsGroup { + filePath: string; + classes: ASTQueueItem[]; + methods: ASTQueueItem[]; + interfaces: ASTQueueItem[]; + types: ASTQueueItem[]; + functions: ASTQueueItem[]; + } + /** * Service for interacting with OpenAI chat API. */ export class AIService { private chatModel: ChatOpenAI; + private typeScriptParser: TypeScriptParser; /** * Constructor for initializing the ChatOpenAI instance. - * - * @throws {Error} If OPENAI_API_KEY environment variable is not set. + * + * @param {Configuration} configuration - The configuration instance to be used + * @throws {Error} If OPENAI_API_KEY environment variable is not set */ - constructor() { + constructor(private configuration: Configuration) { if (!process.env.OPENAI_API_KEY) { throw new Error('OPENAI_API_KEY is not set'); } this.chatModel = new ChatOpenAI({ apiKey: process.env.OPENAI_API_KEY }); + this.typeScriptParser = new TypeScriptParser(); } /** @@ -28,17 +46,554 @@ export class AIService { */ public async generateComment(prompt: string): Promise { try { - const response = await this.chatModel.invoke(prompt); - return response.content as string; + // First try with generous limit + let finalPrompt = this.truncateCodeBlock(prompt, 8000); + + // Only append language instruction if not English + const normalizedLanguage = this.configuration.language.toLowerCase().trim(); + if (normalizedLanguage !== 'english') { + finalPrompt += `\n\nEverything except the JSDoc conventions and code should be in ${this.configuration.language}`; + } + + console.log(`Generating comment for prompt of length: ${finalPrompt.length}`); + + try { + const response = await this.chatModel.invoke(finalPrompt); + return response.content as string; + } catch (error) { + if (error instanceof Error && error.message.includes('maximum context length')) { + console.warn('Token limit exceeded, attempting with further truncation...'); + // Try with more aggressive truncation + finalPrompt = this.truncateCodeBlock(prompt, 4000); + try { + const response = await this.chatModel.invoke(finalPrompt); + return response.content as string; + } catch (retryError) { + if (retryError instanceof Error && retryError.message.includes('maximum context length')) { + console.warn('Still exceeding token limit, using minimal context...'); + // Final attempt with minimal context + finalPrompt = this.truncateCodeBlock(prompt, 2000); + const response = await this.chatModel.invoke(finalPrompt); + return response.content as string; + } + throw retryError; + } + } + throw error; + } } catch (error) { this.handleAPIError(error as Error); return ''; } } + public async generatePluginDocumentation({ + existingDocs, + packageJson, + todoItems, + envUsages + }: { + existingDocs: ASTQueueItem[]; + packageJson: any; + todoItems: TodoItem[]; + envUsages: EnvUsage[]; + }): Promise { + const organizedDocs = this.organizeDocumentation(existingDocs); + + // Read the index.ts file + // Read the index.ts file + const indexPath = path.join(this.configuration.absolutePath, 'src', 'index.ts'); + const exports = this.typeScriptParser.extractExports(indexPath); + + // Extract actions, providers, and evaluators from the index.ts content + // Generate documentation for actions + const actionsDocumentation = await this.generateActionsDocumentation(exports.actions); + + // Generate documentation for providers + const providersDocumentation = await this.generateProvidersDocumentation(exports.providers); + + // Generate documentation for evaluators + const evaluatorsDocumentation = await this.generateEvaluatorsDocumentation(exports.evaluators); + + const [overview, installation, configuration, usage, apiRef, troubleshooting, todoSection] = await Promise.all([ + this.generateOverview(organizedDocs, packageJson), + this.generateInstallation(packageJson), + this.generateConfiguration(envUsages), + this.generateUsage(organizedDocs, packageJson), + this.generateApiReference(organizedDocs), + this.generateTroubleshooting(organizedDocs, packageJson), + this.generateTodoSection(todoItems) + ]); + + return { + overview, + installation, + configuration, + usage, + apiReference: apiRef, + troubleshooting, + todos: todoSection.todos, + actionsDocumentation, // Added actions documentation + providersDocumentation, // Added providers documentation + evaluatorsDocumentation // Added evaluators documentation + }; + } + + private async generateOverview(docs: OrganizedDocs, packageJson: any): Promise { + const prompt = PROMPT_TEMPLATES.overview(packageJson, docs); + try { + const overview = await this.generateComment(prompt); + return overview; + } catch (error) { + console.error('Error generating overview:', error); + return `# ${packageJson.name}\n\nNo overview available. Please check package documentation.`; + } + } + + private async generateInstallation(packageJson: any): Promise { + const indexPath = path.join(this.configuration.absolutePath, 'src/index.ts'); + let mainExport = 'plugin'; + let exportName = packageJson.name.split('/').pop() + 'Plugin'; + + try { + const indexContent = await fs.readFile(indexPath, { encoding: 'utf8' }); + const exportMatch = indexContent.match(/export const (\w+):/); + if (exportMatch) { + exportName = exportMatch[1]; + } + + const prompt = `Generate installation and integration instructions for this ElizaOS plugin: + + Plugin name: ${packageJson.name} + Main export: ${exportName} + Index file exports: + ${indexContent} + Dependencies: ${JSON.stringify(packageJson.dependencies || {}, null, 2)} + Peer dependencies: ${JSON.stringify(packageJson.peerDependencies || {}, null, 2)} + + This is a plugin for the ElizaOS agent system. Generate comprehensive installation instructions that include: + + 1. How to add the plugin to your ElizaOS project: + - First, explain that users need to add the following to their agent/package.json dependencies: + \`\`\`json + { + "dependencies": { + "${packageJson.name}": "workspace:*" + } + } + \`\`\` + - Then, explain they need to: + 1. cd into the agent/ directory + 2. Run pnpm install to install the new dependency + 3. Run pnpm build to build the project with the new plugin + + 2. After installation, show how to import and use the plugin: + - Import syntax using: import { ${exportName} } from "${packageJson.name}"; + - How to add it to the AgentRuntime plugins array + + 3. Integration example showing the complete setup: + \`\`\`typescript + import { ${exportName} } from "${packageJson.name}"; + + return new AgentRuntime({ + // other configuration... + plugins: [ + ${exportName}, + // other plugins... + ], + }); + \`\`\` + + 4. Verification steps to ensure successful integration + - for this step just tell the user to ensure they see ["✓ Registering action: "] in the console + + Format the response in markdown, with clear section headers and step-by-step instructions. Emphasize that this is a workspace package that needs to be added to agent/package.json and then built.`; + + return await this.generateComment(prompt); + } catch (error) { + console.error('Error reading index.ts:', error); + return this.generateBasicInstallPrompt(packageJson); + } + } + + private async generateBasicInstallPrompt(packageJson: any): Promise { + console.log('AIService::generateInstallation threw an error, generating basic install prompt'); + const prompt = `Generate basic installation instructions for this ElizaOS plugin: + + Plugin name: ${packageJson.name} + Dependencies: ${JSON.stringify(packageJson.dependencies || {}, null, 2)} + Peer dependencies: ${JSON.stringify(packageJson.peerDependencies || {}, null, 2)} + + This is a plugin for the ElizaOS agent system. Include basic setup instructions.`; + + return await this.generateComment(prompt); + } + + private async generateConfiguration(envUsages: EnvUsage[]): Promise { + const prompt = `Generate configuration documentation based on these environment variable usages: + ${envUsages.map(item => ` + Environment Variable: ${item.code} + Full Context: ${item.fullContext} + `).join('\n')} + Create comprehensive configuration documentation that: + 1. Lists all required environment variables and their purpose + 2. Return a full .env example file + + Inform the user that the configuration is done in the .env file. + And to ensure the .env is set in the .gitignore file so it is not committed to the repository. + + Format the response in markdown with proper headings and code blocks.`; + + return await this.generateComment(prompt); + } + + private async generateUsage(docs: OrganizedDocs, packageJson: any): Promise { + const fileGroups = this.groupDocsByFile(docs); + const sections: string[] = []; + + // Generate documentation for each file without individual intros + for (const fileGroup of fileGroups) { + const fileDoc = await this.generateFileUsageDoc(fileGroup); + if (fileDoc.trim()) { + sections.push(fileDoc); + } + } + + return sections.join('\n\n'); + } + + private async generateApiReference(docs: OrganizedDocs): Promise { + const fileGroups = this.groupDocsByFile(docs); + const sections: string[] = []; + + for (const fileGroup of fileGroups) { + const fileDoc = await this.generateFileApiDoc(fileGroup); + if (fileDoc.trim()) { + sections.push(fileDoc); + } + } + + return sections.join('\n'); + } + +/** + * Generates troubleshooting guide based on documentation and common patterns + */ + // toDo - integrate w/ @Jin's discord scraper to pull solutions for known issues + private async generateTroubleshooting(docs: OrganizedDocs, packageJson: any): Promise { + const prompt = `${PROMPT_TEMPLATES.troubleshooting}\n\nFor package: ${packageJson.name}\n\nWith content:\n${JSON.stringify(docs, null, 2)}`; + return await this.generateComment(prompt); + } + + /** + * Generates TODO section documentation from found TODO comments + */ + // toDo - integrate w/ @Jin's discord scraper to auto create GH issues/bounties + private async generateTodoSection(todoItems: TodoItem[]): Promise { + if (todoItems.length === 0) { + return { todos: "No TODO items found.", todoCount: 0 }; + } + + const prompt = `${PROMPT_TEMPLATES.todos}\n\nWith items:\n${todoItems.map(item => + `- Comment: ${item.comment}\n Context: ${item.fullContext}` + ).join('\n')}`; + + const todos = await this.generateComment(prompt); + return { todos, todoCount: todoItems.length }; + } + + // should be moved to utils + private organizeDocumentation(docs: ASTQueueItem[]): OrganizedDocs { + return docs.reduce((acc: OrganizedDocs, doc) => { + // Use nodeType to determine the category + switch (doc.nodeType) { + case 'ClassDeclaration': + acc.classes.push(doc); + break; + case 'MethodDefinition': + case 'TSMethodSignature': + acc.methods.push(doc); + break; + case 'TSInterfaceDeclaration': + acc.interfaces.push(doc); + break; + case 'TSTypeAliasDeclaration': + acc.types.push(doc); + break; + case 'FunctionDeclaration': + acc.functions.push(doc); + break; + } + return acc; + }, { classes: [], methods: [], interfaces: [], types: [], functions: [] }); + } + + private async generateActionsDocumentation(actionsFiles: string[]): Promise { + let documentation = ''; + + for (const file of actionsFiles) { + // Remove ./ prefix and ensure path includes src directory and .ts extension + const relativePath = file.replace(/^\.\//, ''); + const filePath = path.join(this.configuration.absolutePath, 'src', relativePath + '.ts'); + + try { + const ast = this.typeScriptParser.parse(filePath); + const bounds = this.typeScriptParser.findActionBounds(ast); + + if (!bounds) { + console.warn(`No action bounds found in ${filePath}`); + continue; + } + + const actionCode = this.typeScriptParser.extractActionCode(filePath, bounds); + + // Use PROMPT_TEMPLATES.actionDoc + const prompt = `${PROMPT_TEMPLATES.actionDoc}\n\nWith content:\n\`\`\`typescript\n${actionCode}\n\`\`\``; + + const actionDocumentation = await this.generateComment(prompt); + if (actionDocumentation.trim()) { + documentation += actionDocumentation + '\n\n'; + } + + } catch (error) { + console.warn(`Warning: Could not process action file ${filePath}:`, error); + continue; + } + } + + if (!documentation.trim()) { + return 'No actions documentation available.'; + } + + return documentation; + } + + private async generateProvidersDocumentation(providersFiles: string[]): Promise { + let documentation = ''; + + for (const file of providersFiles) { + // Remove ./ prefix and ensure path includes src directory and .ts extension + const relativePath = file.replace(/^\.\//, ''); + const filePath = path.join(this.configuration.absolutePath, 'src', relativePath + '.ts'); + + try { + const content = await fs.readFile(filePath, 'utf-8'); + // Create a provider object with relevant information + const provider = { + fileName: relativePath, + content: content, + // Extract provider properties + name: relativePath.split('/').pop()?.replace('.ts', ''), + }; + + const providerDocumentation = await this.generateProviderDoc(provider); + if (providerDocumentation.trim()) { + documentation += providerDocumentation + '\n\n'; + } + } catch (error) { + console.warn(`Warning: Could not read provider file ${filePath}:`, error); + continue; + } + } + + if (!documentation.trim()) { + return 'No providers documentation available.'; + } + + return documentation; + } + + private async generateEvaluatorsDocumentation(evaluatorsFiles: string[]): Promise { + let documentation = ''; + + for (const file of evaluatorsFiles) { + // Remove ./ prefix and ensure path includes src directory and .ts extension + const relativePath = file.replace(/^\.\//, ''); + const filePath = path.join(this.configuration.absolutePath, 'src', relativePath + '.ts'); + + try { + const content = await fs.readFile(filePath, 'utf-8'); + const prompt = `Generate documentation for the following Evaluator: + \`\`\`typescript + ${content} + \`\`\` + + Provide an overview of the evaluator's purpose and functionality. + Format in markdown without adding any additional headers.`; + + const evaluatorDocumentation = await this.generateComment(prompt); + if (evaluatorDocumentation.trim()) { + documentation += `### ${relativePath}\n\n${evaluatorDocumentation}\n\n`; + } + } catch (error) { + console.warn(`Warning: Could not read evaluator file ${filePath}:`, error); + continue; + } + } + + if (!documentation.trim()) { + return 'No evaluators documentation available.'; + } + + return documentation; + } + + + private groupDocsByFile(docs: OrganizedDocs): FileDocsGroup[] { + // Get unique file paths + const filePaths = new Set(); + [...docs.classes, ...docs.methods, ...docs.interfaces, ...docs.types, ...docs.functions] + .forEach(item => filePaths.add(item.filePath)); + + // Create groups for each file path + return Array.from(filePaths).map(filePath => { + return { + filePath, + classes: docs.classes.filter(c => c.filePath === filePath), + methods: docs.methods.filter(m => m.filePath === filePath), + interfaces: docs.interfaces.filter(i => i.filePath === filePath), + types: docs.types.filter(t => t.filePath === filePath), + functions: docs.functions.filter(f => f.filePath === filePath) + }; + }); + } + + private formatFilePath(filePath: string): string { + // Get relative path from src directory + const srcIndex = filePath.indexOf('/src/'); + if (srcIndex === -1) return filePath; + + const relativePath = filePath.slice(srcIndex + 5); // +5 to skip '/src/' + return relativePath; + } + + private async generateFileUsageDoc(fileGroup: FileDocsGroup): Promise { + const filePath = this.formatFilePath(fileGroup.filePath); + const prompt = `${PROMPT_TEMPLATES.fileUsageDoc}\n\nFor file: ${filePath}\n\nWith components:\n${this.formatComponents(fileGroup)}`; + const doc = await this.generateComment(prompt); + return `### ${filePath}\n\n${doc}`; + } + + private async generateFileApiDoc(fileGroup: FileDocsGroup): Promise { + const filePath = this.formatFilePath(fileGroup.filePath); + const formattedDocs = this.formatApiComponents(fileGroup); + // Add TypeScript code block for the file path to indicate it's a TypeScript module + return formattedDocs ? `### File: \`${filePath}\`\n${formattedDocs}` : ''; + } + + private formatApiComponents(fileGroup: FileDocsGroup): string { + const sections: string[] = []; + + // Classes + if (fileGroup.classes.length > 0) { + sections.push('#### Classes'); + fileGroup.classes.forEach(c => { + sections.push(`##### \`${c.name}\``); + if (c.jsDoc) sections.push(this.formatJSDoc(c.jsDoc, c.code)); + + // Add any methods belonging to this class + const classMethods = fileGroup.methods.filter(m => m.className === c.name); + if (classMethods.length > 0) { + sections.push('**Methods:**'); + classMethods.forEach(m => { + sections.push(`###### \`${m.name}\`${m.jsDoc ? `\n${this.formatJSDoc(m.jsDoc, m.code)}` : ''}`); + }); + } + }); + } + + // Interfaces + if (fileGroup.interfaces.length > 0) { + sections.push('#### Interfaces'); + fileGroup.interfaces.forEach(i => { + sections.push(`##### \`${i.name}\``); + if (i.jsDoc) sections.push(this.formatJSDoc(i.jsDoc, i.code)); + }); + } + + // Types + if (fileGroup.types.length > 0) { + sections.push('#### Types'); + fileGroup.types.forEach(t => { + sections.push(`##### \`${t.name}\``); + if (t.jsDoc) sections.push(this.formatJSDoc(t.jsDoc, t.code)); + }); + } + + // Standalone Functions + if (fileGroup.functions.length > 0) { + sections.push('#### Functions'); + fileGroup.functions.forEach(f => { + sections.push(`##### \`${f.name}\``); + if (f.jsDoc) sections.push(this.formatJSDoc(f.jsDoc, f.code)); + }); + } + + // Standalone Methods + const standaloneMethods = fileGroup.methods.filter(m => !m.className); + if (standaloneMethods.length > 0) { + sections.push('#### Methods'); + standaloneMethods.forEach(m => { + sections.push(`##### \`${m.name}\``); + if (m.jsDoc) sections.push(this.formatJSDoc(m.jsDoc, m.code)); + }); + } + + return sections.join('\n\n'); + } + + private formatJSDoc(jsDoc: string, code?: string): string { + // Clean up the JSDoc + let cleanDoc = jsDoc.replace(/^```\s*\n?/gm, '').replace(/\n?```\s*$/gm, ''); + cleanDoc = cleanDoc.trim().replace(/\n{3,}/g, '\n\n'); + + // Format JSDoc with typescript declaration + const docSection = '```typescript\n' + cleanDoc + '\n```'; + + // If we have the actual code, include it after the JSDoc + // if (code) { + // const cleanCode = code.trim().replace(/^```\s*\n?/gm, '').replace(/\n?```\s*$/gm, ''); + // return `${docSection}\n\n**Implementation:**\n\n\`\`\`typescript\n${cleanCode}\n\`\`\``; + // } + + return docSection; + } + + private formatComponents(fileGroup: FileDocsGroup): string { + const sections: string[] = []; + + if (fileGroup.classes.length > 0) { + sections.push('Classes:', fileGroup.classes.map(c => `- ${c.name}: ${c.jsDoc}`).join('\n')); + } + + if (fileGroup.methods.length > 0) { + sections.push('Methods:', fileGroup.methods.map(m => `- ${m.name}: ${m.jsDoc}`).join('\n')); + } + + if (fileGroup.interfaces.length > 0) { + sections.push('Interfaces:', fileGroup.interfaces.map(i => `- ${i.name}: ${i.jsDoc}`).join('\n')); + } + + if (fileGroup.types.length > 0) { + sections.push('Types:', fileGroup.types.map(t => `- ${t.name}: ${t.jsDoc}`).join('\n')); + } + + if (fileGroup.functions.length > 0) { + sections.push('Functions:', fileGroup.functions.map(f => `- ${f.name}: ${f.jsDoc}`).join('\n')); + } + + return sections.join('\n\n'); + } + + + private async generateProviderDoc(provider: any): Promise { + const prompt = `${PROMPT_TEMPLATES.providerDoc}\n\nWith content:\n${JSON.stringify(provider, null, 2)}`; + return await this.generateComment(prompt); + } /** * Handle API errors by logging the error message and throwing the error. - * + * + * * @param {Error} error The error object to handle * @returns {void} */ @@ -46,4 +601,65 @@ export class AIService { console.error('API Error:', error.message); throw error; } + + private truncateCodeBlock(code: string, maxLength: number = 8000): string { + if (code.length <= maxLength) return code; + + // Extract code blocks + const codeBlockRegex = /```[\s\S]*?```/g; + const codeBlocks = code.match(codeBlockRegex) || []; + + // If no code blocks found, truncate the text directly + if (codeBlocks.length === 0) { + return code.slice(0, maxLength) + '... (truncated)'; + } + + // Calculate maximum length per block to stay under total limit + const nonCodeLength = code.replace(codeBlockRegex, '').length; + const maxLengthPerBlock = Math.floor((maxLength - nonCodeLength) / codeBlocks.length); + + for (let i = 0; i < codeBlocks.length; i++) { + const block = codeBlocks[i]; + if (block.length > maxLengthPerBlock) { + const lines = block.split('\n'); + const header = lines[0]; // Keep the ```typescript or similar + const footer = lines[lines.length - 1]; // Keep the closing ``` + + // Calculate how many lines we can keep + const maxLinesPerSection = Math.floor((maxLengthPerBlock - header.length - footer.length) / 3); + + // Take fewer lines but ensure we get the most important parts + const codeStart = lines.slice(1, maxLinesPerSection).join('\n'); + + // For the middle section, focus on the important parts + const middleIndex = Math.floor(lines.length / 2); + const middleStart = Math.max(maxLinesPerSection, middleIndex - Math.floor(maxLinesPerSection / 2)); + const middleEnd = Math.min(lines.length - maxLinesPerSection, middleIndex + Math.floor(maxLinesPerSection / 2)); + const codeMiddle = lines.slice(middleStart, middleEnd).join('\n'); + + // Take the end section + const codeEnd = lines.slice(lines.length - maxLinesPerSection, -1).join('\n'); + + const truncatedBlock = `${header}\n${codeStart}\n// ... truncated [${lines.length - (maxLinesPerSection * 2)} lines] ...\n${codeMiddle}\n// ... truncated ...\n${codeEnd}\n${footer}`; + code = code.replace(block, truncatedBlock); + } + } + + // Final safety check - if still too long, do a hard truncate + if (code.length > maxLength) { + const blocks = code.split('```'); + const truncatedBlocks = blocks.map((block, index) => { + // Every odd index is a code block + if (index % 2 === 1) { + const lines = block.split('\n'); + const maxLines = 10; // Keep only first few lines of each block + return lines.slice(0, maxLines).join('\n') + '\n// ... remaining code truncated ...\n'; + } + return block.slice(0, 500); // Limit non-code text + }); + code = truncatedBlocks.join('```'); + } + + return code; + } } \ No newline at end of file diff --git a/scripts/jsdoc-automation/src/Configuration.ts b/scripts/jsdoc-automation/src/Configuration.ts index 84758d6230..2b9fd0361e 100644 --- a/scripts/jsdoc-automation/src/Configuration.ts +++ b/scripts/jsdoc-automation/src/Configuration.ts @@ -27,6 +27,9 @@ interface ConfigurationData { pullRequestLabels: string[]; pullRequestReviewers: string[]; excludedFiles: string[]; + generateJsDoc: boolean; + generateReadme: boolean; + language: string; } /** @@ -37,6 +40,9 @@ export class Configuration implements Omit { private _rootDirectory!: ConfigurationData['rootDirectory']; private readonly repoRoot: string; private _branch: string = 'develop'; + private _language: string = 'English'; + private _generateJsDoc: boolean = true; + private _generateReadme: boolean = true; public excludedDirectories: string[] = []; public repository: Repository = { @@ -56,6 +62,22 @@ export class Configuration implements Omit { this.loadConfiguration(); } + get language(): string { + return this._language; + } + + set language(value: string) { + this._language = value; + } + + get generateJsDoc(): boolean { + return this._generateJsDoc; + } + + get generateReadme(): boolean { + return this._generateReadme; + } + get rootDirectory(): ConfigurationData['rootDirectory'] { return this._rootDirectory; } @@ -86,7 +108,21 @@ export class Configuration implements Omit { private loadConfiguration(): void { // First try to get from environment variables + this._language = process.env.INPUT_LANGUAGE || 'English'; + console.log('Using language:', this._language); const rootDirectory = process.env.INPUT_ROOT_DIRECTORY; + this._generateJsDoc = process.env.INPUT_JSDOC + ? process.env.INPUT_JSDOC.toUpperCase() === 'T' + : true; // Default from workflow + this._generateReadme = process.env.INPUT_README + ? process.env.INPUT_README.toUpperCase() === 'T' + : true; // Default from workflow + + console.log('Documentation flags:', { + generateJsDoc: this._generateJsDoc, + generateReadme: this._generateReadme + }); + let inputs; console.log('Environment variables:', { diff --git a/scripts/jsdoc-automation/src/DocumentationGenerator.ts b/scripts/jsdoc-automation/src/DocumentationGenerator.ts index 1503e62524..c39421eccc 100644 --- a/scripts/jsdoc-automation/src/DocumentationGenerator.ts +++ b/scripts/jsdoc-automation/src/DocumentationGenerator.ts @@ -3,12 +3,14 @@ import { TypeScriptParser } from './TypeScriptParser.js'; import { JsDocAnalyzer } from './JsDocAnalyzer.js'; import { JsDocGenerator } from './JsDocGenerator.js'; import type { TSESTree } from '@typescript-eslint/types'; -import { ASTQueueItem, FullModeFileChange, PrModeFileChange } from './types/index.js'; +import { ASTQueueItem, EnvUsage, FullModeFileChange, PrModeFileChange, TodoItem } from './types/index.js'; import { GitManager } from './GitManager.js'; import fs from 'fs'; import { Configuration } from './Configuration.js'; import path from 'path'; import { AIService } from './AIService.js'; +import { PluginDocumentationGenerator } from './PluginDocumentationGenerator.js'; +import { JSDocValidator } from './JSDocValidator.js'; /** * Class representing a Documentation Generator. @@ -19,8 +21,10 @@ export class DocumentationGenerator { public existingJsDocQueue: ASTQueueItem[] = []; private hasChanges: boolean = false; private fileContents: Map = new Map(); - private branchName: string = ''; + public branchName: string = ''; private fileOffsets: Map = new Map(); + private typeScriptFiles: string[] = []; + private jsDocValidator: JSDocValidator; /** * Constructor for initializing the object with necessary dependencies. @@ -41,8 +45,11 @@ export class DocumentationGenerator { public jsDocGenerator: JsDocGenerator, public gitManager: GitManager, public configuration: Configuration, - public aiService: AIService - ) { } + public aiService: AIService, + ) { + this.typeScriptFiles = this.directoryTraversal.traverse(); + this.jsDocValidator = new JSDocValidator(aiService); + } /** * Asynchronously generates JSDoc comments for the TypeScript files based on the given pull request number or full mode. @@ -50,7 +57,7 @@ export class DocumentationGenerator { * @param pullNumber - Optional. The pull request number to generate JSDoc comments for. * @returns A promise that resolves once the JSDoc generation process is completed. */ - public async generate(pullNumber?: number): Promise { + public async generate(pullNumber?: number): Promise<{ documentedItems: ASTQueueItem[], branchName: string | undefined }> { let fileChanges: PrModeFileChange[] | FullModeFileChange[] = []; this.fileOffsets.clear(); @@ -95,7 +102,6 @@ export class DocumentationGenerator { if (fileChange.status === 'deleted') continue; const filePath = this.configuration.toAbsolutePath(fileChange.filename); - console.log(`Processing file: ${filePath}`, 'resetting file offsets', 'from ', this.fileOffsets.get(filePath), 'to 0'); this.fileOffsets.set(filePath, 0); // Load and store file content @@ -104,7 +110,6 @@ export class DocumentationGenerator { const fileContent = await this.getFileContent(fileChange.contents_url); this.fileContents.set(filePath, fileContent); } else { - console.log('Getting file content from local file system'); const fileContent = fs.readFileSync(filePath, 'utf-8'); this.fileContents.set(filePath, fileContent); } @@ -125,8 +130,13 @@ export class DocumentationGenerator { // Process nodes that need JSDoc if (this.missingJsDocQueue.length > 0) { - this.branchName = `docs-update-${pullNumber || 'full'}-${Date.now()}`; - await this.gitManager.createBranch(this.branchName, this.configuration.branch); + // Always create branch if we have missing JSDoc, even if we're only generating README + // This way we have a branch for either JSDoc commits or README commits + + if (this.configuration.generateJsDoc) { + this.branchName = `docs-update-${pullNumber || 'full'}-${Date.now()}`; + await this.gitManager.createBranch(this.branchName, this.configuration.branch); + } // Process each node for (const queueItem of this.missingJsDocQueue) { @@ -136,11 +146,18 @@ export class DocumentationGenerator { } else { comment = await this.jsDocGenerator.generateComment(queueItem); } - await this.updateFileWithJSDoc(queueItem.filePath, comment, queueItem.startLine); - this.hasChanges = true; + + // Only update the actual files with JSDoc if generateJsDoc flag is true + if (this.configuration.generateJsDoc) { + await this.updateFileWithJSDoc(queueItem.filePath, comment, queueItem.startLine); + this.hasChanges = true; + } + + queueItem.jsDoc = comment; + this.existingJsDocQueue.push(queueItem); } - // Commit changes if any updates were made + // Only commit and create PR for JSDoc changes if generateJsDoc is true if (this.hasChanges && this.branchName) { for (const [filePath, content] of this.fileContents) { await this.gitManager.commitFile( @@ -161,7 +178,13 @@ export class DocumentationGenerator { reviewers: this.configuration.pullRequestReviewers || [] }); } + + } + return { + documentedItems: this.existingJsDocQueue, + branchName: this.branchName + }; } /** @@ -218,12 +241,33 @@ export class DocumentationGenerator { const content = this.fileContents.get(filePath) || ''; const lines = content.split('\n'); const currentOffset = this.fileOffsets.get(filePath) || 0; - const newLines = (jsDoc.match(/\n/g) || []).length + 1; const adjustedLine = insertLine + currentOffset; + const fileName = filePath.split('/').pop() || ''; + // Insert the comment lines.splice(adjustedLine - 1, 0, jsDoc); - this.fileOffsets.set(filePath, currentOffset + newLines); - this.fileContents.set(filePath, lines.join('\n')); + const newContent = lines.join('\n'); + + try { + // Validate and fix if necessary + const validatedJSDoc = await this.jsDocValidator.validateAndFixJSDoc(fileName,newContent, jsDoc); + + if (validatedJSDoc !== jsDoc) { + // If the comment was fixed, update the content + lines[adjustedLine - 1] = validatedJSDoc; + const newLines = (validatedJSDoc.match(/\n/g) || []).length + 1; + this.fileOffsets.set(filePath, currentOffset + newLines); + } else { + // console log just the file name from the path, and that the comment was valid + const newLines = (jsDoc.match(/\n/g) || []).length + 1; + this.fileOffsets.set(filePath, currentOffset + newLines); + } + + this.fileContents.set(filePath, lines.join('\n')); + } catch (error) { + console.error(`Error validating JSDoc in ${filePath}:`, error); + throw error; + } } /** @@ -267,29 +311,56 @@ export class DocumentationGenerator { const modifiedFiles = Array.from(this.fileContents.keys()); const filesContext = modifiedFiles.map(file => `- ${file}`).join('\n'); - const prompt = `Generate a pull request title and description for adding JSDoc documentation. - Context: - - ${modifiedFiles.length} files were modified - - Files modified:\n${filesContext} - - This is ${pullNumber ? `related to PR #${pullNumber}` : 'a full repository documentation update'} - - This is an automated PR for adding JSDoc documentation + const prompt = `Create a JSON object for a pull request about JSDoc documentation updates. + The JSON must have exactly this format, with no extra fields or markdown formatting: + { + "title": "Brief title describing JSDoc updates", + "body": "Detailed description of changes" + } + + Context for generating the content: + - ${modifiedFiles.length} files were modified + - Files modified:\n${filesContext} + - This is ${pullNumber ? `related to PR #${pullNumber}` : 'a full repository documentation update'} + - This is an automated PR for adding JSDoc documentation - Generate both a title and description. The description should be detailed and include: - 1. A clear summary of changes - 2. Summary of modified files - 3. Instructions for reviewers + The title should be concise and follow conventional commit format. + The body should include: + 1. A clear summary of changes + 2. List of modified files + 3. Brief instructions for reviewers - Format the response as a JSON object with 'title' and 'body' fields.`; + Return ONLY the JSON object, no other text.`; const response = await this.aiService.generateComment(prompt); + try { - const content = JSON.parse(response); + // Clean up the response - remove any markdown formatting or extra text + const jsonStart = response.indexOf('{'); + const jsonEnd = response.lastIndexOf('}') + 1; + if (jsonStart === -1 || jsonEnd === -1) { + throw new Error('No valid JSON object found in response'); + } + + const jsonStr = response.slice(jsonStart, jsonEnd) + .replace(/```json/g, '') + .replace(/```/g, '') + .trim(); + + const content = JSON.parse(jsonStr); + + // Validate the parsed content + if (!content.title || !content.body || typeof content.title !== 'string' || typeof content.body !== 'string') { + throw new Error('Invalid JSON structure'); + } + return { title: content.title, body: content.body }; } catch (error) { - console.error('Error parsing AI response for PR content generation, using default values'); + console.error('Error parsing AI response for PR content:', error); + console.error('Raw response:', response); return { title: `docs: Add JSDoc documentation${pullNumber ? ` for PR #${pullNumber}` : ''}`, body: this.generateDefaultPRBody() @@ -316,4 +387,29 @@ export class DocumentationGenerator { ### 🤖 Generated by Documentation Bot This is an automated PR created by the documentation generator tool.`; } + + /** + * Analyzes TODOs and environment variables in the code + */ + public async analyzeCodebase(): Promise<{ todoItems: TodoItem[], envUsages: EnvUsage[] }> { + const todoItems: TodoItem[] = []; + const envUsages: EnvUsage[] = []; + + for (const filePath of this.typeScriptFiles) { + const ast = this.typeScriptParser.parse(filePath); + if (!ast) continue; + + const sourceCode = fs.readFileSync(filePath, 'utf-8'); + + // Find TODOs + this.jsDocAnalyzer.findTodoComments(ast, ast.comments || [], sourceCode); + todoItems.push(...this.jsDocAnalyzer.todoItems); + + // Find env usages + this.jsDocAnalyzer.findEnvUsages(ast, sourceCode); + envUsages.push(...this.jsDocAnalyzer.envUsages); + } + + return { todoItems, envUsages }; + } } \ No newline at end of file diff --git a/scripts/jsdoc-automation/src/GitManager.ts b/scripts/jsdoc-automation/src/GitManager.ts index 366cdd2abe..9030ff8213 100644 --- a/scripts/jsdoc-automation/src/GitManager.ts +++ b/scripts/jsdoc-automation/src/GitManager.ts @@ -57,7 +57,7 @@ export class GitManager { /** * Creates a new branch in the GitHub repository using the given branch name and base branch. - * + * * @param {string} branchName - The name of the new branch to be created. * @param {string} baseBranch - The name of the branch to base the new branch off of. * @returns {Promise} - A Promise that resolves when the branch is successfully created. @@ -77,7 +77,7 @@ export class GitManager { /** * Asynchronously commits a file to a repository using the GitHub API. - * + * * @param {string} branchName - The name of the branch to commit the file to. * @param {string} filePath - The path of the file to commit. * @param {string} content - The content of the file to commit. @@ -104,6 +104,7 @@ export class GitManager { }); } catch (error: any) { if (error.status === 404) { + console.log('404 - File doesn\'t exist in the target branch, creating a new file'); // File doesn't exist in the target branch, create a new file await this.octokit.repos.createOrUpdateFileContents({ owner: this.repository.owner, diff --git a/scripts/jsdoc-automation/src/JSDocValidator.ts b/scripts/jsdoc-automation/src/JSDocValidator.ts new file mode 100644 index 0000000000..8a9b293d3f --- /dev/null +++ b/scripts/jsdoc-automation/src/JSDocValidator.ts @@ -0,0 +1,141 @@ +import { parse, ParserOptions } from '@typescript-eslint/parser'; +import { AIService } from './AIService.js'; + +export class JSDocValidator { + private parserOptions: ParserOptions = { + sourceType: 'module', + ecmaVersion: 2020, + ecmaFeatures: { + jsx: true + }, + range: true, + loc: true, + tokens: true, + comment: true + }; + + constructor(private aiService: AIService) {} + + /** + * Validates and fixes JSDoc comments in TypeScript code + */ + public async validateAndFixJSDoc(fileName: string, code: string, originalComment: string): Promise { + // First try parsing with the original comment + if (this.isValidTypeScript(code)) { + return originalComment; + } + + // Try fixing common JSDoc issues + const fixedComment = this.fixCommonJSDocIssues(originalComment); + const codeWithFixedComment = code.replace(originalComment, fixedComment); + + if (this.isValidTypeScript(codeWithFixedComment)) { + console.log(`✓ JSDoc comment in ${fileName} was fixed using regex patterns`); + return fixedComment; + } else { + console.log(`❌JSDoc comment in ${fileName} regex patterns failed, making AI call for help`); + } + + // If still invalid, try regenerating with AI + try { + const regeneratedComment = await this.regenerateJSDoc(code); + const codeWithRegeneratedComment = code.replace(originalComment, regeneratedComment); + + if (this.isValidTypeScript(codeWithRegeneratedComment)) { + console.log(`✓ JSDoc comment in ${fileName} was regenerated using AI`); + return regeneratedComment; + } + } catch (error) { + console.error(`Error during AI regeneration for ${fileName}:`, error); + } + + // Instead of throwing, log the issue and return original + console.warn(`⚠️ HUMAN INTERVENTION NEEDED - Invalid JSDoc in ${fileName}`); + console.warn('Original comment:', originalComment); + return originalComment; + } + + /** + * Checks if the TypeScript code is valid + */ + private isValidTypeScript(code: string): boolean { + try { + parse(code, this.parserOptions); + return true; + } catch (error) { + return false; + } + } + + /** + * Fixes common JSDoc formatting issues + */ + private fixCommonJSDocIssues(comment: string): string { + // First remove any backtick code block markers + comment = comment.replace(/^```[\s\S]*?\n/, ''); // Remove opening code block + comment = comment.replace(/\n```$/, ''); // Remove closing code block + + const fixes = [ + // Fix opening format + [/\/\*\*?(?!\*)/, '/**'], // Ensure proper opening + + // Fix body asterisks and spacing + [/\*{3,}/g, '**'], // Remove excessive asterisks in body + [/\*(?!\s|\*|\/)/g, '* '], // Add space after single asterisk + [/^(\s*)\*\s\s+/gm, '$1* '], // Remove multiple spaces after asterisk + + // Fix multi-line issues (from bash script insights) + [/\*\/\s*\n\s*\*\*\//g, '*/'], // Remove stray closing after proper closing + [/\n\s*\*\s*\n\s*\*\//g, '\n */'], // Fix empty line before closing + + // Fix closing format + [/\*+\//g, '*/'], // Fix multiple asterisks in closing + [/(? { + const prompt = `Fix the following JSDoc comment to be syntactically valid. + Ensure proper formatting: + - Start with /** + - Each line should start with a single * + - End with */ + - No extra asterisks + - Space after each asterisk + - Space before closing tag + + Code: + ${code} + + Return ONLY the fixed JSDoc comment, nothing else.`; + + return await this.aiService.generateComment(prompt); + } +} \ No newline at end of file diff --git a/scripts/jsdoc-automation/src/JsDocAnalyzer.ts b/scripts/jsdoc-automation/src/JsDocAnalyzer.ts index 223d1893b4..f05b09dba4 100644 --- a/scripts/jsdoc-automation/src/JsDocAnalyzer.ts +++ b/scripts/jsdoc-automation/src/JsDocAnalyzer.ts @@ -1,6 +1,7 @@ import type { TSESTree } from '@typescript-eslint/types'; import { TypeScriptParser } from './TypeScriptParser.js'; -import { ASTQueueItem } from './types/index.js'; +import { ASTQueueItem, EnvUsage, TodoItem } from './types/index.js'; +import { ASTQueueItem, EnvUsage, TodoItem } from './types/index.js'; type AST_NODE_TYPES = { ClassDeclaration: 'ClassDeclaration'; @@ -156,6 +157,8 @@ export class JsDocAnalyzer { public missingJsDocNodes: TSESTree.Node[] = []; + public todoItems: TodoItem[] = []; + public envUsages: EnvUsage[] = []; /** * Constructor for initializing a new instance. @@ -387,4 +390,269 @@ export class JsDocAnalyzer { return methods; } + + + /** + * Finds TODO comments in the code and their associated nodes + * @param ast - The AST to analyze + * @param comments - Array of comments to search through + * @param sourceCode - The original source code + */ + public findTodoComments(ast: TSESTree.Program, comments: TSESTree.Comment[], sourceCode: string): void { + this.todoItems = []; + + comments.forEach(comment => { + if (!comment.loc) return; + + const commentText = comment.value.toLowerCase(); + if (commentText.includes('todo')) { + try { + // Find the nearest node after the comment + const nearestNode = this.findNearestNode(ast, comment.loc.end.line); + if (nearestNode && nearestNode.loc) { + // Find the containing function/class/block + const containingBlock = this.findContainingBlock(nearestNode); + + // Extract the actual code associated with the TODO + const code = this.extractNodeCode(sourceCode, nearestNode); + + // Extract the full context (entire function/class/block) + const fullContext = containingBlock && containingBlock.loc + ? this.extractNodeCode(sourceCode, containingBlock) + : code; + + this.todoItems.push({ + comment: comment.value.trim(), + code, + fullContext, + node: nearestNode, + location: comment.loc, + contextLocation: containingBlock?.loc || comment.loc + }); + } + } catch (error) { + console.error('Error processing TODO comment:', error); + // Continue processing other comments even if one fails + } + } + }); +} + +/** + * Finds the containing block (function/class/interface declaration) for a node + */ +private findContainingBlock(node: TSESTree.Node): TSESTree.Node | undefined { + let current = node; + while (current.parent) { + if ( + current.parent.type === 'FunctionDeclaration' || + current.parent.type === 'ClassDeclaration' || + current.parent.type === 'TSInterfaceDeclaration' || + current.parent.type === 'MethodDefinition' || + current.parent.type === 'ArrowFunctionExpression' || + current.parent.type === 'FunctionExpression' + ) { + return current.parent; + } + current = current.parent; + } + return undefined; +} + +/** + * Finds environment variable usage in the code + * @param ast - The AST to analyze + * @param sourceCode - The original source code + */ +public findEnvUsages(ast: TSESTree.Program, sourceCode: string): void { + this.envUsages = []; + + const findEnvReferences = (node: TSESTree.Node) => { + if (!node.loc) return; + + // Check for process.env + if ( + node.type === 'MemberExpression' && + node.object.type === 'Identifier' && + node.object.name === 'process' && + node.property.type === 'Identifier' && + node.property.name === 'env' + ) { + // Get the parent statement/expression for context + const contextNode = this.findParentStatement(node); + // Get the containing function/block for full context + const containingBlock = this.findContainingBlock(node); + + // Get just the process.env reference + const code = this.extractNodeCode(sourceCode, node); + + // Get the full line by using the line number directly + const lines = sourceCode.split('\n'); + const context = lines[node.loc.start.line - 1]; + + // Get the entire function/block containing this env usage + const fullContext = containingBlock ? this.extractFullContext(sourceCode, containingBlock) : context; + + this.envUsages.push({ + code, + context, + fullContext, + node, + location: node.loc, + contextLocation: containingBlock?.loc || node.loc + }); + } + + // Continue traversing + Object.keys(node).forEach(key => { + const child = node[key as keyof TSESTree.Node]; + if (child && typeof child === 'object') { + if (Array.isArray(child)) { + child.forEach(item => { + if (item && typeof item === 'object') { + findEnvReferences(item as TSESTree.Node); + } + }); + } else { + findEnvReferences(child as TSESTree.Node); + } + } + }); + }; + + findEnvReferences(ast); +} + +/** + * Extracts the actual source code for a given node + */ +private extractNodeCode(sourceCode: string, node: TSESTree.Node): string { + if (!node.loc) { + return ''; + } + + const lines = sourceCode.split('\n'); + const startLine = node.loc.start.line - 1; + const endLine = node.loc.end.line; + + if (startLine < 0 || endLine > lines.length) { + return ''; + } + + // Handle single-line case + if (startLine === endLine - 1) { + const line = lines[startLine]; + return line.slice(node.loc.start.column, node.loc.end.column); + } + + // Handle multi-line case + const result = []; + for (let i = startLine; i < endLine; i++) { + let line = lines[i]; + if (i === startLine) { + line = line.slice(node.loc.start.column); + } else if (i === endLine - 1) { + line = line.slice(0, node.loc.end.column); + } + result.push(line); + } + return result.join('\n'); +} + +/** + * Extracts the full context including any variable declarations and surrounding code + */ +private extractFullContext(sourceCode: string, node: TSESTree.Node): string { + if (!node.loc) return ''; + + const lines = sourceCode.split('\n'); + const startLine = node.loc.start.line - 1; + const endLine = node.loc.end.line; + + if (startLine < 0 || endLine > lines.length) { + return ''; + } + + // Get the complete lines for the entire block/function + return lines.slice(startLine, endLine).join('\n'); +} + +/** + * Finds the parent statement or expression node + */ +// prettyr sure this isnt needed, directly access code rather +private findParentStatement(node: TSESTree.Node): TSESTree.Node | undefined { + let current = node; + while (current.parent) { + // Add more statement types that could contain process.env + if ( + current.parent.type === 'VariableDeclaration' || + current.parent.type === 'ExpressionStatement' || + current.parent.type === 'AssignmentExpression' || + current.parent.type === 'ReturnStatement' || + current.parent.type === 'IfStatement' || + current.parent.type === 'LogicalExpression' || + current.parent.type === 'BinaryExpression' || + current.parent.type === 'Property' || + current.parent.type === 'ObjectExpression' || + current.parent.type === 'MemberExpression' + ) { + return current.parent; + } + // Add logging to see what types we're encountering + console.log('Parent node type:', current.parent.type); + current = current.parent; + } + return undefined; +} + +/** + * Finds the nearest node after a specific line number + */ +private findNearestNode(ast: TSESTree.Program, lineNumber: number): TSESTree.Node | undefined { + let nearestNode: TSESTree.Node | undefined; + let smallestDistance = Infinity; + + const traverse = (node: TSESTree.Node | null) => { + if (!node) return; + + // Check if the node has a location + if (node.loc) { + const distance = node.loc.start.line - lineNumber; + if (distance > 0 && distance < smallestDistance) { + smallestDistance = distance; + nearestNode = node; + } + } + + // Safely traverse child nodes + if ('body' in node) { + const body = Array.isArray(node.body) ? node.body : [node.body]; + body.forEach((child: TSESTree.Node) => { + if (child && typeof child === 'object') { + traverse(child as TSESTree.Node); + } + }); + } + + // Handle specific node types + if ('declarations' in node && Array.isArray(node.declarations)) { + node.declarations.forEach((decl: TSESTree.Node) => traverse(decl)); + } + + if ('declaration' in node && node.declaration) { + traverse(node.declaration); + } + + // Handle other properties that might contain nodes + ['consequent', 'alternate', 'init', 'test', 'update'].forEach(prop => { + if (prop in node && node[prop as keyof typeof node]) { + traverse(node[prop as keyof typeof node] as TSESTree.Node); + } + }); + }; + + traverse(ast); + return nearestNode; +} } \ No newline at end of file diff --git a/scripts/jsdoc-automation/src/PluginDocumentationGenerator.ts b/scripts/jsdoc-automation/src/PluginDocumentationGenerator.ts new file mode 100644 index 0000000000..5bdcbc9057 --- /dev/null +++ b/scripts/jsdoc-automation/src/PluginDocumentationGenerator.ts @@ -0,0 +1,105 @@ +import { ASTQueueItem, PluginDocumentation, TodoItem, EnvUsage } from './types/index.js'; +import { AIService } from './AIService.js'; +import { GitManager } from './GitManager.js'; +import { Configuration } from './Configuration.js'; +import fs from 'fs'; +import path from 'path'; + +/** + * Generates comprehensive plugin documentation based on existing JSDoc comments + */ +export class PluginDocumentationGenerator { + constructor( + private aiService: AIService, + private gitManager: GitManager, + private configuration: Configuration + ) { } + + /** + * Generates comprehensive plugin documentation + * @param {ASTQueueItem[]} existingDocs - Queue of documented items + * @param {string} branchName - Current git branch name + * @param {TodoItem[]} todoItems - List of TODO items found in the codebase + * @param {EnvUsage[]} envUsages - List of environment variable usages + */ + public async generate( + existingDocs: ASTQueueItem[], + branchName?: string, + todoItems: TodoItem[] = [], + envUsages: EnvUsage[] = [] + ): Promise { + // Read package.json + const packageJsonPath = path.join(this.configuration.absolutePath, 'package.json'); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); + if (!packageJson) { + console.error('package.json not found'); + } + // Generate documentation + const documentation = await this.aiService.generatePluginDocumentation({ + existingDocs, + packageJson, + todoItems, + envUsages + }); + + // Generate markdown content + const markdownContent = this.generateMarkdownContent(documentation, packageJson); + + // Only commit the file if we're in a branch + if (branchName) { + // Use the configuration's relative path to determine the correct README location + const relativeReadmePath = path.join( + this.configuration.relativePath, + 'README-automated.md' + ); + + // Commit the file to the correct location + await this.gitManager.commitFile( + branchName, + relativeReadmePath, + markdownContent, + 'docs: Update plugin documentation' + ); + } else { + console.error('No branch name provided, skipping commit for README-automated.md'); + } + } + + private generateMarkdownContent(docs: PluginDocumentation, packageJson: any): string { + return `# ${packageJson.name} Documentation + +## Overview +${docs.overview} + +## Installation +${docs.installation} + +## Configuration +${docs.configuration} + +## Features + +### Actions +${docs.actionsDocumentation} + +### Providers +${docs.providersDocumentation} + +### Evaluators +${docs.evaluatorsDocumentation} + +## Usage Examples +${docs.usage} + +## API Reference +${docs.apiReference} + +## Development + +### TODO Items +${docs.todos} + +### Troubleshooting +${docs.troubleshooting}`; +} +} \ No newline at end of file diff --git a/scripts/jsdoc-automation/src/TypeScriptParser.ts b/scripts/jsdoc-automation/src/TypeScriptParser.ts index 2d40963042..c39a92faf5 100644 --- a/scripts/jsdoc-automation/src/TypeScriptParser.ts +++ b/scripts/jsdoc-automation/src/TypeScriptParser.ts @@ -1,5 +1,6 @@ import * as fs from 'fs'; import { parse, ParserOptions } from '@typescript-eslint/parser'; +import { ActionBounds, ActionMetadata } from './types'; /** * A class for parsing TypeScript files. @@ -7,7 +8,7 @@ import { parse, ParserOptions } from '@typescript-eslint/parser'; export class TypeScriptParser { /** * Parses the content of a file using the given file path. - * + * * @param {string} file - The file path containing the content to be parsed. * @returns {any} The abstract syntax tree (AST) representation of the parsed content. */ @@ -44,13 +45,95 @@ export class TypeScriptParser { } } - /** - * Handles a parse error that occurs during TypeScript parsing. - * - * @param {Error} error - The error that occurred during parsing - * @returns {void} - */ - public handleParseError(error: Error): void { - console.error('TypeScript Parsing Error:', error); + public extractExports(file: string): { actions: string[], providers: string[], evaluators: string[] } { + //const content = fs.readFileSync(file, 'utf-8'); + const ast = this.parse(file); + + const exports: { actions: string[], providers: string[], evaluators: string[] } = { + actions: [], + providers: [], + evaluators: [], + }; + + if (ast) { + // Traverse the AST to find export declarations + ast.body.forEach((node: any) => { + if (node.type === 'ImportDeclaration') { + const source = node.source.value; + if (source.startsWith('./actions/')) { + exports.actions.push(source); + } else if (source.startsWith('./providers/')) { + exports.providers.push(source); + } else if (source.startsWith('./evaluators/')) { + exports.evaluators.push(source); + } + } + }); + } + + return exports; + } + + public findActionBounds(ast: any): ActionBounds | null { + let startLine: number | null = null; + let endLine: number | null = null; + let actionNameStartLine: number | null = null; + + const findActionTypeAnnotation = (node: any) => { + // Look for Action type annotation + if (node?.typeAnnotation?.typeAnnotation?.typeName?.name === 'Action') { + startLine = node.loc.start.line; + } + + // Look for ActionExample type annotation to find the end + if (node?.typeAnnotation?.elementType?.elementType?.typeName?.name === 'ActionExample') { + endLine = node.loc.end.line; + } + + // Backup: Look for action name property + if (node?.type === 'Property' && + node?.key?.type === 'Identifier' && + node?.key?.name === 'name' && + node?.value?.type === 'Literal') { + actionNameStartLine = node.loc.start.line; + } + + // Recursively search in child nodes + for (const key in node) { + if (node[key] && typeof node[key] === 'object') { + if (Array.isArray(node[key])) { + node[key].forEach(findActionTypeAnnotation); + } else { + findActionTypeAnnotation(node[key]); + } + } + } + }; + + findActionTypeAnnotation(ast); + + // If we found a valid end line but no start line, use the action name line as fallback + if (!startLine && actionNameStartLine && endLine) { + console.log('Using action name line as fallback'); + startLine = actionNameStartLine; + } + + if (startLine && endLine) { + return { startLine, endLine }; + } + + return null; + } + + public extractActionCode(filePath: string, bounds: ActionBounds): string { + const fileContent = fs.readFileSync(filePath, 'utf-8'); + const lines = fileContent.split('\n'); + + // Extract lines from start to end (inclusive) + return lines.slice(bounds.startLine - 1, bounds.endLine).join('\n'); + } + + private handleParseError(error: Error): void { + console.error('Error parsing TypeScript file:', error.message); } -} \ No newline at end of file +} diff --git a/scripts/jsdoc-automation/src/index.ts b/scripts/jsdoc-automation/src/index.ts index b3156e0608..b94cfa9dab 100644 --- a/scripts/jsdoc-automation/src/index.ts +++ b/scripts/jsdoc-automation/src/index.ts @@ -6,6 +6,7 @@ import { DocumentationGenerator } from './DocumentationGenerator.js'; import { Configuration } from './Configuration.js'; import { AIService } from './AIService.js'; import { GitManager } from './GitManager.js'; +import { PluginDocumentationGenerator } from './PluginDocumentationGenerator.js'; /** * Main function for generating documentation. @@ -46,7 +47,7 @@ async function main() { ); const typeScriptParser = new TypeScriptParser(); const jsDocAnalyzer = new JsDocAnalyzer(typeScriptParser); - const aiService = new AIService(); + const aiService = new AIService(configuration); const jsDocGenerator = new JsDocGenerator(aiService); const documentationGenerator = new DocumentationGenerator( @@ -59,8 +60,54 @@ async function main() { aiService ); - // Generate documentation - await documentationGenerator.generate(configuration.repository.pullNumber); + const pluginDocGenerator = new PluginDocumentationGenerator( + aiService, + gitManager, + configuration + ); + + const { todoItems, envUsages } = await documentationGenerator.analyzeCodebase(); + + // Generate JSDoc documentation first + const { documentedItems, branchName } = await documentationGenerator.generate( + configuration.repository.pullNumber + ); + + // If both are true, use JSDoc branch for README + // If only README is true, create new branch + if (configuration.generateReadme) { + const targetBranch = (configuration.generateJsDoc && branchName) + ? branchName + : `docs-update-readme-${Date.now()}`; + + if (!configuration.generateJsDoc) { + await gitManager.createBranch(targetBranch, configuration.branch); + } + + await pluginDocGenerator.generate( + documentedItems, + targetBranch, + todoItems, + envUsages + ); + + // Only create PR if we're not also generating JSDoc (otherwise changes go in JSDoc PR) + if (!configuration.generateJsDoc) { + const prContent = { + title: "docs: Update plugin documentation", + body: "Updates plugin documentation with latest changes" + }; + + await gitManager.createPullRequest({ + title: prContent.title, + body: prContent.body, + head: targetBranch, + base: configuration.branch, + labels: ['documentation', 'automated-pr'], + reviewers: configuration.pullRequestReviewers || [] + }); + } + } } catch (error) { console.error('Error during documentation generation:', { message: error instanceof Error ? error.message : String(error), diff --git a/scripts/jsdoc-automation/src/types/index.ts b/scripts/jsdoc-automation/src/types/index.ts index 238403b4ae..2762f850d1 100644 --- a/scripts/jsdoc-automation/src/types/index.ts +++ b/scripts/jsdoc-automation/src/types/index.ts @@ -1,3 +1,7 @@ +import { TSESTree } from "@typescript-eslint/types"; + +import { TSESTree } from "@typescript-eslint/types"; + export interface ASTQueueItem { name: string; filePath: string; @@ -26,4 +30,74 @@ export interface PrModeFileChange extends FullModeFileChange { deletions: number; changes: number; contents_url: string; -} \ No newline at end of file +} + +export interface OrganizedDocs { + classes: ASTQueueItem[]; + methods: ASTQueueItem[]; + interfaces: ASTQueueItem[]; + types: ASTQueueItem[]; + functions: ASTQueueItem[]; +} + +export interface TodoSection { + todos: string; + todoCount: number; +} + +export interface TodoItem { + comment: string; + code: string; + fullContext: string; + node: TSESTree.Node; + location: { + start: { line: number; column: number }; + end: { line: number; column: number }; + }; + contextLocation: { + start: { line: number; column: number }; + end: { line: number; column: number }; + }; +} + +export interface EnvUsage { + code: string; + context: string; + fullContext: string; + node: TSESTree.Node; + location: { + start: { line: number; column: number }; + end: { line: number; column: number }; + }; + contextLocation: { + start: { line: number; column: number }; + end: { line: number; column: number }; + }; +} + +export interface PluginDocumentation { + overview: string; + installation: string; + configuration: string; + usage: string; + apiReference: string; + troubleshooting: string; + todos: string; + actionsDocumentation: string; + providersDocumentation: string; + evaluatorsDocumentation: string; +} + +export interface ActionMetadata { + name: string; + similes: string[]; + validate: string; + handler: string; + examples: string[]; + description: string; +} + +export interface ActionBounds { + startLine: number; + endLine: number; +} diff --git a/scripts/jsdoc-automation/src/utils/prompts.ts b/scripts/jsdoc-automation/src/utils/prompts.ts new file mode 100644 index 0000000000..87fe4df1b9 --- /dev/null +++ b/scripts/jsdoc-automation/src/utils/prompts.ts @@ -0,0 +1,177 @@ +import { OrganizedDocs } from "../types"; + +export const PROMPT_TEMPLATES = { + overview: (packageJson: any, docs: OrganizedDocs) => ` + Create an overview for ${packageJson.name} with the following structure and details: + +### Purpose +[Write a comprehensive paragraph explaining the main purpose based on the package details below] + +Package Information: +- Name: ${packageJson.name} +- Description: ${packageJson.description || 'N/A'} +- Version: ${packageJson.version || 'N/A'} +- Keywords: ${(packageJson.keywords || []).join(', ')} + +### Key Features + +Code Components: +${docs.classes.length > 0 ? ` +Classes: +${docs.classes.map(c => `- ${c.name}: ${c.jsDoc}`).join('\n')}` : ''} + +${docs.interfaces.length > 0 ? ` +Interfaces: +${docs.interfaces.map(i => `- ${i.name}: ${i.jsDoc}`).join('\n')}` : ''} + +${docs.types.length > 0 ? ` +Types: +${docs.types.map(t => `- ${t.name}: ${t.jsDoc}`).join('\n')}` : ''} + +${docs.functions.length > 0 ? ` +Functions: +${docs.functions.map(f => `- ${f.name}: ${f.jsDoc}`).join('\n')}` : ''} + +Based on the above components, list the key features and capabilities of this plugin: +- Feature 1: Brief description +- Feature 2: Brief description +[List key features with brief descriptions] + +Format in markdown without adding any additional headers.`, + + installation: `Create installation instructions with the following structure: + +### Prerequisites +[List any prerequisites] + +### Steps +1. [First step with code example if needed] +2. [Second step with code example if needed] +[Number each step clearly] + +### Verification +[How to verify successful installation] + +Format in markdown without adding any additional headers.`, + + configuration: `Create configuration documentation with the following structure: + +### Environment Variables +[Table or list of all environment variables with descriptions] + +### Example Configuration +\`\`\`env +[Example .env file] +\`\`\` + +### Important Notes +[Any important notes about configuration] + +Format in markdown without adding any additional headers.`, + + actionDoc: `Generate documentation for this action with the following structure: + +### [action name] +[Brief description of the action] + +#### Properties +- Name: [action name] +- Similes: [list of similes] + +#### Handler +[Description of what the handler does] + +#### Examples +[Use Examples object in Action code to give a Natural language example replace {{user2}} with "Agent" and {{user1}} with "User"] + +Format in markdown without adding any additional headers.`, + + providerDoc: `Generate documentation for this provider with the following structure: + +### [Provider Name] +[Brief description of the provider] + +#### Methods +[Focus on the get() method and its functionality.] + +#### Usage +\`\`\`typescript +[Example usage code] +\`\`\` + +Format in markdown without adding any additional headers.`, + + fileUsageDoc: `Determine multiple use cases for the provided code, and give examples of how to use the code: + +### Common Use Cases +1. [First use case with code example] +2. [Second use case with code example] + +### Best Practices +- [Best practice 1] +- [Best practice 2] + +Format in markdown without adding any additional headers.`, + + fileApiDoc: `Generate API reference documentation with the following structure: + +### Classes +\`\`\`typescript +[List each class with its methods and properties] +\`\`\` +### Interfaces +\`\`\`typescript +[List each interface with its properties] +\`\`\` + +### Types +\`\`\`typescript +[List each type with its definition] +\`\`\` + +### Functions +\`\`\`typescript +[List each function with its parameters and return type] +\`\`\` + + +Create a comprehensive API reference including: +1. Class descriptions and methods +2. Method signatures and parameters +3. Return types and values +4. Interface definitions +5. Type definitions +6. Examples for complex APIs + +Format the response in markdown with proper headings and code blocks.`, + + todos: `Generate TODO documentation with the following structure, DO NOT return the context/code rather a description of the code and how the todo is related to the code, if no todos are provided return "No todos found in the code": + +### Items +1. [First TODO item] + - Context: [describe the code associated with the todo] + - Type: [bug/feature/enhancement] +2. [Second TODO item] + - Context: [describe the code associated with the todo] + - Type: [bug/feature/enhancement] + +Format in markdown without adding any additional headers.`, + + troubleshooting: `Generate troubleshooting guide with the following structure: + +### Common Issues +1. [First issue] + - Cause: [cause of the issue] + - Solution: [how to solve it] + +### Debugging Tips +- [First debugging tip] +- [Second debugging tip] +- Ask your questions at https://eliza.gg/ 🚀 or in our discord + +### FAQ +Q: [Common question] +A: [Answer with example if applicable] + +Format in markdown without adding any additional headers.` +}; \ No newline at end of file diff --git a/scripts/jsdoc-automation/tsconfig.json b/scripts/jsdoc-automation/tsconfig.json index 777a040a61..704e32bf4d 100644 --- a/scripts/jsdoc-automation/tsconfig.json +++ b/scripts/jsdoc-automation/tsconfig.json @@ -1,18 +1,19 @@ { "compilerOptions": { - "module": "node16", + "strict": true, "esModuleInterop": true, + "skipLibCheck": true, "target": "ES2020", - "moduleResolution": "node16", - "outDir": "dist", - "baseUrl": ".", - "sourceMap": true, - "strict": true + "module": "ESNext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true }, "include": [ - "**/*.ts" + "src/**/*.ts" ], "exclude": [ - "node_modules" + "node_modules", + "dist" ] } \ No newline at end of file diff --git a/scripts/jsdoc-automation/tsup.config.ts b/scripts/jsdoc-automation/tsup.config.ts new file mode 100644 index 0000000000..6713123597 --- /dev/null +++ b/scripts/jsdoc-automation/tsup.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['cjs', 'esm'], + dts: true, + splitting: false, + sourcemap: true, + clean: true, + target: 'node16', + outDir: 'dist', + treeshake: true, + }) \ No newline at end of file