From 54d4eb6fea826461c1baef8256ebf4e76ae58804 Mon Sep 17 00:00:00 2001 From: ssdeanx Date: Sat, 18 Apr 2026 08:06:08 -0400 Subject: [PATCH] feat: update package dependencies and configurations - Updated several package versions in package.json for improved stability and features, including: - Upgraded @dotenvx/dotenvx to version 1.61.1 - Upgraded @mastra/client-js to version 1.13.5-alpha.5 - Upgraded @mastra/cloudflare to version 1.3.2-alpha.0 - Upgraded @mastra/cloudflare-d1 to version 1.0.5-alpha.0 - Upgraded @mastra/convex to version 1.0.8-alpha.0 - Upgraded @mastra/core to version 1.26.0-alpha.5 - Upgraded eslint to version 10.2.1 - Upgraded marked to version 18.0.1 - Upgraded convert-csv-to-json to version 4.36.0 - Upgraded crawlee to version 4.0.0-beta.47 - Removed unnecessary lines in package.json for better readability. fix: modify researchAgent configurations - Changed defaultOptions in researchAgent.ts to enable includeRawChunks and disable autoResumeSuspendedTools for better tool management. style: update logger level - Changed logger level from 'info' to 'debug' in logger.ts for more verbose logging during development. refactor: clean up index.ts imports and configurations - Removed unused imports and commented-out code in index.ts for clarity. - Adjusted CORS headers in the mastra configuration for better API security. refactor: enhance document chunking tool - Updated embedding model references in document-chunking.tool.ts to use fastembed directly. - Changed span types from TOOL_CALL to MODEL_CHUNK for better observability. - Added experimental telemetry options for embedding functions to track inputs and outputs. feat: implement Composio agent - Created a new Composio agent in compsio.ts that integrates with Composio's API for enhanced task automation. feat: add process manager for sandbox - Introduced a new process manager in process-manager.ts to handle sandbox processes more effectively. docs: add Weaving API documentation - Created weavingapi.md to document the Weaving API, detailing its functionality and usage for spell casting in gaming contexts. feat: implement Composio MCP client - Added composio-mcp.ts to manage interactions with Composio's MCP, including OAuth handling and prompt management. --- memory-bank/activeContext.md | 19 + memory-bank/progress.md | 22 + package-lock.json | 1857 ++++++++++++++------ package.json | 50 +- src/mastra/agents/compsio.ts | 43 + src/mastra/agents/researchAgent.ts | 8 +- src/mastra/config/logger.ts | 2 +- src/mastra/index.ts | 12 +- src/mastra/process-manager.ts | 49 + src/mastra/public/workspace/weavingapi.md | 566 ++++++ src/mastra/tools/composio-mcp.ts | 44 + src/mastra/tools/document-chunking.tool.ts | 54 +- src/mastra/workspaces.ts | 64 +- 13 files changed, 2207 insertions(+), 583 deletions(-) create mode 100644 src/mastra/agents/compsio.ts create mode 100644 src/mastra/process-manager.ts create mode 100644 src/mastra/public/workspace/weavingapi.md create mode 100644 src/mastra/tools/composio-mcp.ts diff --git a/memory-bank/activeContext.md b/memory-bank/activeContext.md index 1479e22..571aa97 100644 --- a/memory-bank/activeContext.md +++ b/memory-bank/activeContext.md @@ -1,3 +1,17 @@ +# Active Context Update (2026-04-17 - weavingapi TBC timing cleanup) + +- Reworked `src/mastra/public/workspace/weavingapi.md` to use Vanilla/TBC-only shaman spell ranks, removing WotLK-only `Lava Burst` / `Hex` IDs from the weaving path. +- The weaving timing logic now caches resolved spell ranks, keeps the explicit spell-ID table as the first hot-path gate, uses `GetTimePreciseSec()` when available, refreshes `GetNetStats()` on every prediction pass, and keeps world latency as the primary offset with home/realm latency as fallback. +- Spell haste is refreshed from `UnitSpellHaste()` on every prediction pass, and the active tracked spell is re-predicted during casts so aura and rating changes update immediately. +- The swing-timer contract through `aura_env.setSwingState(...)` remains unchanged, and `SWING_TIMER_WILL_CLIPPED` still receives the original cast-duration payload. +- The shared spellcast handler now tracks the current spell during casts and clears stale casting state on stop/interrupt paths, including an explicit clear update when an untracked cast starts, so the aura does not get stuck in a false casting state when a spell ID is missing. + +# Active Context Update (2026-04-17 - swingtimer precise-clock and aura refresh) + +- `src/mastra/public/workspace/swingtimer.md` now primes `_G.GetTimePreciseSec` (with `GetTime` fallback) and uses that precise clock together with the frame-cached latency value for melee swing timing; the changelog/version was bumped to reflect the final delta-correction and reset-safe behavior. +- The swing timer now seeds latency on load, refreshes latency every frame, and prefers world latency over home latency so combat timing tracks the world connection first. +- `UNIT_AURA` now drives direct swing-speed rescaling immediately, `PLAYER_TALENT_UPDATE` resyncs melee speed after talent swaps, the swing delta event is now wired into real swing resets/speed changes, the main/off delta correction now tracks the observed swing error instead of staying at zero and zeros itself during equipment resets, `ResetTimers()` now exists for equipment changes, the duplicate latency helper/shadowed cache path was removed, and the parry-specific handling was left unchanged. + # Active Context Update (2026-04-16 - technical-analysis diagnostics fully clean) - `src/mastra/tools/technical-analysis.tool.ts` is now clean under VS Code `get_errors` after correcting the accidentally leaked return-type annotations and forcing the MACD/ADX result mappings to return explicit local types. @@ -928,6 +942,11 @@ # Active Context +## Active Context Update (2026-04-17 - weavingapi nil-safety and haste-aware prediction) +- Reworked `src/mastra/public/workspace/weavingapi.md` so it now resolves the highest valid rank per spell family, avoiding nil `castTime` crashes when a WotLK-only rank is missing on a TBC/Classic client. +- Added live cast prediction based on `GetSpellHaste()` / `UnitSpellHaste()` with `GetHaste()` fallback, plus latency-aware timing, while keeping `swingtimer.md` untouched. +- Kept the WeakAuras event contract intact (`WEAVING_UPDATE_STATUS` / `SWING_TIMER_WILL_CLIPPED`) and added safe guards around `GetSpellInfo`, `UnitAttackSpeed`, and swing-state updates. + ## Active Context Update (2026-04-05 - auth event typing and premium auth UI) - `app/login/page.tsx` and `app/login/signup/page.tsx` now use the native submit-event typing via `SyntheticEvent` instead of the deprecated `FormEvent` alias. - Both auth screens were redesigned into split-layout, glassmorphism-style views with stronger hierarchy, clearer onboarding copy, and better large-screen presentation. diff --git a/memory-bank/progress.md b/memory-bank/progress.md index 056ae71..b1c6a7d 100644 --- a/memory-bank/progress.md +++ b/memory-bank/progress.md @@ -1,3 +1,20 @@ +# Progress Update (2026-04-17 - weavingapi TBC-only cache and world latency) + +- Updated `src/mastra/public/workspace/weavingapi.md` to a TBC-only shaman weaving implementation with cached spell-rank resolution and world-latency-aware cast timing. +- Preserved the explicit spell-ID table as the hot-path gate while keeping the Vanilla/TBC Lightning Bolt, Chain Lightning, Healing Wave, Lesser Healing Wave, and Chain Heal rank groups cached once. +- Switched the main timing path to `GetTimePreciseSec()` when available, with `GetTime()` fallback, and made `GetNetStats()` refresh on every prediction pass instead of using a half-second cache window. +- Kept world latency as the primary offset with home/realm latency as fallback, and refreshed spell haste automatically on each prediction pass so rating and aura changes stay in sync. +- Tracked the active spell during casts so `UNIT_AURA` and other refresh events can re-predict the live cast immediately instead of waiting for the next cast event. +- Kept `SWING_TIMER_WILL_CLIPPED` payload compatibility by continuing to emit cast duration rather than absolute timestamps. +- Left `src/mastra/public/workspace/swingtimer.md` untouched. +- Hardened the shared spellcast handler so stop/interrupt events clear stale casting state, and untracked cast starts now emit an explicit clear update instead of leaving the weaving HUD stuck on a previous cast. + +# Progress Update (2026-04-17 - swingtimer precise-clock and aura refresh) + +- Updated `src/mastra/public/workspace/swingtimer.md` to use `_G.GetTimePreciseSec` (with `GetTime` fallback) for precise melee swing timing while keeping latency frame-cached, and bumped the swingtimer version/changelog to reflect the final delta-correction and reset-safe behavior. +- Seeded the latency cache on load, removed the duplicate shadowed latency helper path, and switched combat latency to prefer the world connection so swing timing tracks the combat channel first. +- Changed `UNIT_AURA` to rescale swing speed immediately, added `PLAYER_TALENT_UPDATE` so melee speed also resyncs after talent swaps, wired the swing delta event into the actual swing reset/speed-change paths, made the main/off delta correction track observed swing error instead of staying at zero and zero itself during equipment resets, and added a real `ResetTimers()` implementation for equipment changes while leaving the parry branch untouched. + # Progress Update (2026-04-16 - technical-analysis diagnostics fixed) - Resolved the final `get_errors` issues in `src/mastra/tools/technical-analysis.tool.ts` by correcting leaked return-type annotations, re-typing the MACD/ADX mappings, and restarting the VS Code TypeScript server. @@ -570,6 +587,11 @@ # Progress +## Completed +- Reworked `src/mastra/public/workspace/weavingapi.md` to be nil-safe for missing spell ranks, using highest-valid-rank resolution per spell family instead of hardcoded WotLK-only lookups. +- Updated weaving prediction to use live spell haste, melee haste, and latency-aware cast timing while leaving `src/mastra/public/workspace/swingtimer.md` unchanged. +- Preserved the existing WeakAuras event names and swing-state handoff contract, with safer guards around `GetSpellInfo`, `UnitAttackSpeed`, and swing clip checks. + ## Completed - Replaced the deprecated `FormEvent`-style submit typing in the auth screens with native submit-event typing. - Redesigned `app/login/page.tsx` and `app/login/signup/page.tsx` into higher-polish split-layout auth experiences with better hierarchy, spacing, and feedback. diff --git a/package-lock.json b/package-lock.json index b892d2a..2da42ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "agentstack", - "version": "1.0.44", + "version": "1.0.45", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agentstack", - "version": "1.0.44", + "version": "1.0.45", "license": "ISC", "dependencies": { "@ai-sdk/google": "^3.0.64", @@ -24,7 +24,9 @@ "@chat-adapter/github": "^4.26.0", "@chat-adapter/slack": "^4.26.0", "@chat-adapter/state-memory": "^4.26.0", - "@dotenvx/dotenvx": "^1.61.0", + "@composio/core": "^0.6.10", + "@composio/mastra": "^0.6.10", + "@dotenvx/dotenvx": "^1.61.1", "@emotion/react": "^11.14.0", "@github/copilot-sdk": "^0.2.2", "@gsap/react": "^2.1.2", @@ -34,24 +36,24 @@ "@mastra/ai-sdk": "^1.4.0", "@mastra/auth-better-auth": "^1.0.2", "@mastra/auth-supabase": "^1.0.0", - "@mastra/client-js": "^1.13.4", - "@mastra/cloudflare": "^1.3.1", - "@mastra/cloudflare-d1": "^1.0.4", - "@mastra/convex": "^1.0.7", - "@mastra/core": "^1.25.0", + "@mastra/client-js": "^1.13.5-alpha.5", + "@mastra/cloudflare": "^1.3.2-alpha.0", + "@mastra/cloudflare-d1": "^1.0.5-alpha.0", + "@mastra/convex": "^1.0.8-alpha.0", + "@mastra/core": "^1.26.0-alpha.5", "@mastra/daytona": "^0.2.1", - "@mastra/deployer": "^1.25.0", - "@mastra/editor": "^0.7.16", + "@mastra/deployer": "^1.26.0-alpha.3", + "@mastra/editor": "^0.7.17-alpha.1", "@mastra/evals": "^1.2.1", "@mastra/fastembed": "^1.0.1", "@mastra/gcs": "^0.2.0", "@mastra/lance": "^1.0.4", - "@mastra/libsql": "^1.8.1", + "@mastra/libsql": "^1.8.2-alpha.0", "@mastra/loggers": "^1.1.1", - "@mastra/mcp": "^1.5.0", - "@mastra/memory": "^1.15.1", - "@mastra/mongodb": "^1.7.1", - "@mastra/observability": "^1.9.1", + "@mastra/mcp": "^1.5.1-alpha.1", + "@mastra/memory": "^1.16.0-alpha.2", + "@mastra/mongodb": "^1.7.2-alpha.0", + "@mastra/observability": "^1.9.2-alpha.0", "@mastra/otel-bridge": "^1.0.16", "@mastra/pg": "^1.9.1", "@mastra/posthog": "^1.0.17", @@ -89,7 +91,7 @@ "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-tooltip": "^1.2.8", "@radix-ui/react-use-controllable-state": "^1.2.2", - "@rive-app/react-webgl2": "^4.28.0", + "@rive-app/react-webgl2": "^4.28.1", "@streamdown/cjk": "^1.0.3", "@streamdown/code": "^1.1.1", "@streamdown/math": "^1.0.2", @@ -99,7 +101,7 @@ "@tanstack/react-query-devtools": "^5.99.0", "@tanstack/react-store": "^0.10.0", "@tanstack/react-table": "^8.21.3", - "@tanstack/react-virtual": "^3.13.23", + "@tanstack/react-virtual": "^3.13.24", "@tslab/typescript-for-tslab": "^5.1.3", "@vercel/otel": "^2.1.2", "@xyflow/react": "^12.10.2", @@ -126,9 +128,9 @@ "clsx": "^2.1.1", "cmdk": "^1.1.1", "concurrently": "^9.2.1", - "convert-csv-to-json": "^4.31.0", + "convert-csv-to-json": "^4.36.0", "convex": "^1.35.1", - "crawlee": "^4.0.0-beta.43", + "crawlee": "^4.0.0-beta.47", "critters": "^0.0.25", "csv-parse": "^6.2.1", "csv-stringify": "^6.7.0", @@ -157,7 +159,7 @@ "leaflet.markercluster": "^1.5.3", "lenis": "^1.3.23", "lucide-react": "^1.8.0", - "marked": "^18.0.0", + "marked": "^18.0.1", "mastracode": "^0.14.0", "mathjs": "^15.2.0", "media-chrome": "^4.19.0", @@ -254,14 +256,14 @@ "@typescript-eslint/parser": "^8.58.2", "@vitest/coverage-v8": "^4.1.4", "cross-env": "^10.1.0", - "eslint": "^10.2.0", + "eslint": "^10.2.1", "eslint-config-next": "^16.2.4", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", "eslint-plugin-storybook": "^10.3.5", "ink-testing-library": "^4.0.0", - "mastra": "^1.6.0", + "mastra": "^1.6.1-alpha.3", "prettier": "^3.8.3", "storybook": "^10.3.5", "tailwindcss": "^4.2.2", @@ -277,6 +279,8 @@ }, "node_modules/@a2a-js/sdk": { "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@a2a-js/sdk/-/sdk-0.2.5.tgz", + "integrity": "sha512-VTDuRS5V0ATbJ/LkaQlisMnTAeYKXAK6scMguVBstf+KIBQ7HIuKhiXLv+G/hvejkV+THoXzoNifInAkU81P1g==", "dependencies": { "@types/cors": "^2.8.17", "@types/express": "^4.17.23", @@ -289,8 +293,59 @@ "node": ">=18" } }, + "node_modules/@a2a-js/sdk/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@a2a-js/sdk/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@a2a-js/sdk/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@a2a-js/sdk/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@a2a-js/sdk/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/@a2a-js/sdk/node_modules/express": { "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -333,71 +388,10 @@ "url": "https://opencollective.com/express" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/accepts/node_modules/mime-types/node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/finalhandler": { + "node_modules/@a2a-js/sdk/node_modules/finalhandler": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "license": "MIT", "dependencies": { "debug": "2.6.9", @@ -412,15 +406,19 @@ "node": ">= 0.8" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/fresh": { + "node_modules/@a2a-js/sdk/node_modules/fresh": { "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/http-errors": { + "node_modules/@a2a-js/sdk/node_modules/http-errors": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", "dependencies": { "depd": "~2.0.0", @@ -437,26 +435,85 @@ "url": "https://opencollective.com/express" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/http-errors/node_modules/inherits": { + "node_modules/@a2a-js/sdk/node_modules/inherits": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/merge-descriptors": { + "node_modules/@a2a-js/sdk/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@a2a-js/sdk/node_modules/merge-descriptors": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/range-parser": { + "node_modules/@a2a-js/sdk/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@a2a-js/sdk/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@a2a-js/sdk/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@a2a-js/sdk/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@a2a-js/sdk/node_modules/range-parser": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/send": { + "node_modules/@a2a-js/sdk/node_modules/send": { "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "license": "MIT", "dependencies": { "debug": "2.6.9", @@ -477,18 +534,10 @@ "node": ">= 0.8.0" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/send/node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/serve-static": { + "node_modules/@a2a-js/sdk/node_modules/serve-static": { "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", @@ -500,19 +549,25 @@ "node": ">= 0.8.0" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/setprototypeof": { + "node_modules/@a2a-js/sdk/node_modules/setprototypeof": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/statuses": { + "node_modules/@a2a-js/sdk/node_modules/statuses": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/type-is": { + "node_modules/@a2a-js/sdk/node_modules/type-is": { "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "license": "MIT", "dependencies": { "media-typer": "0.3.0", @@ -522,32 +577,10 @@ "node": ">= 0.6" } }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/type-is/node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@a2a-js/sdk/node_modules/express/node_modules/type-is/node_modules/mime-types/node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/@a2a-js/sdk/node_modules/uuid": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -1039,6 +1072,8 @@ "node_modules/@ai-sdk/provider-utils-v5": { "name": "@ai-sdk/provider-utils", "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.23.tgz", + "integrity": "sha512-60GYsRj5wIJQRcq5YwYJq4KhwLeStceXEJiZdecP1miiH+6FMmrnc7lZDOJoQ6m9lrudEb+uI4LEwddLz5+rPQ==", "license": "Apache-2.0", "dependencies": { "@ai-sdk/provider": "2.0.1", @@ -1054,6 +1089,8 @@ }, "node_modules/@ai-sdk/provider-utils-v5/node_modules/@ai-sdk/provider": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-2.0.1.tgz", + "integrity": "sha512-KCUwswvsC5VsW2PWFqF8eJgSCu5Ysj7m1TxiHTVA6g7k360bk0RNQENT8KTMAYEs+8fWPD3Uu4dEmzGHc+jGng==", "license": "Apache-2.0", "dependencies": { "json-schema": "^0.4.0" @@ -1065,6 +1102,8 @@ "node_modules/@ai-sdk/provider-utils-v6": { "name": "@ai-sdk/provider-utils", "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-4.0.23.tgz", + "integrity": "sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==", "license": "Apache-2.0", "dependencies": { "@ai-sdk/provider": "3.0.8", @@ -1081,6 +1120,8 @@ "node_modules/@ai-sdk/provider-v5": { "name": "@ai-sdk/provider", "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-2.0.1.tgz", + "integrity": "sha512-KCUwswvsC5VsW2PWFqF8eJgSCu5Ysj7m1TxiHTVA6g7k360bk0RNQENT8KTMAYEs+8fWPD3Uu4dEmzGHc+jGng==", "license": "Apache-2.0", "dependencies": { "json-schema": "^0.4.0" @@ -1092,6 +1133,8 @@ "node_modules/@ai-sdk/provider-v6": { "name": "@ai-sdk/provider", "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.8.tgz", + "integrity": "sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==", "license": "Apache-2.0", "dependencies": { "json-schema": "^0.4.0" @@ -1191,67 +1234,6 @@ "zod": "^3.23.8" } }, - "node_modules/@ai-sdk/ui-utils-v5": { - "name": "@ai-sdk/ui-utils", - "version": "1.2.11", - "license": "Apache-2.0", - "dependencies": { - "@ai-sdk/provider": "1.1.3", - "@ai-sdk/provider-utils": "2.2.8", - "zod-to-json-schema": "^3.24.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "zod": "^3.23.8" - } - }, - "node_modules/@ai-sdk/ui-utils-v5/node_modules/@ai-sdk/provider": { - "version": "1.1.3", - "license": "Apache-2.0", - "dependencies": { - "json-schema": "^0.4.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@ai-sdk/ui-utils-v5/node_modules/@ai-sdk/provider-utils": { - "version": "2.2.8", - "license": "Apache-2.0", - "dependencies": { - "@ai-sdk/provider": "1.1.3", - "nanoid": "^3.3.8", - "secure-json-parse": "^2.7.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "zod": "^3.23.8" - } - }, - "node_modules/@ai-sdk/ui-utils-v5/node_modules/@ai-sdk/provider-utils/node_modules/nanoid": { - "version": "3.3.11", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/@ai-sdk/ui-utils-v5/node_modules/@ai-sdk/provider-utils/node_modules/secure-json-parse": { - "version": "2.7.0", - "license": "BSD-3-Clause" - }, "node_modules/@ai-sdk/ui-utils/node_modules/@ai-sdk/provider": { "version": "1.1.3", "license": "Apache-2.0", @@ -1513,6 +1495,8 @@ }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.1.tgz", + "integrity": "sha512-HmdFw9CDYqM6B25pqGBpNeLCKvGPlIx1EbLrVL0zPvj50CJQUHyBNBw45Muk0kEIkogo1VZvOKHajdMuAzSxRg==", "license": "MIT", "dependencies": { "js-yaml": "^4.1.0" @@ -1529,14 +1513,20 @@ }, "node_modules/@apify/consts": { "version": "2.52.1", + "resolved": "https://registry.npmjs.org/@apify/consts/-/consts-2.52.1.tgz", + "integrity": "sha512-Nhal8FiIgAw5ylVL4U2DAeJJyKow0bFObAX/og5BJjB9xJ2csQcyVAx4ChnO7XOaeRU8HbRn9u0QUGzPt5NNqA==", "license": "Apache-2.0" }, "node_modules/@apify/datastructures": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@apify/datastructures/-/datastructures-2.0.4.tgz", + "integrity": "sha512-O/evwowHyN3HvP4oZxIzTFfrhOEynw9uvPk7qXquTU1yLB2WQxEWhoJdvGwVTXGuYm9Qd/0HOycPjk5m1NGDhQ==", "license": "Apache-2.0" }, "node_modules/@apify/log": { "version": "2.5.35", + "resolved": "https://registry.npmjs.org/@apify/log/-/log-2.5.35.tgz", + "integrity": "sha512-dJM9RkA9yD7kew5oU3qxLaoB4hFHB7FF47TI0STJVmz0cUa8cXWer4DpJkvUA52lrVNQGsOurCo3kGQWzfg/9w==", "license": "Apache-2.0", "dependencies": { "@apify/consts": "^2.52.1", @@ -1545,6 +1535,8 @@ }, "node_modules/@apify/ps-tree": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@apify/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-VHIswI7rD/R4bToeIDuJ9WJXt+qr5SdhfoZ9RzdjmCs9mgy7l0P4RugQEUCcU+WB4sfImbd4CKwzXcn0uYx1yw==", "license": "MIT", "dependencies": { "event-stream": "3.3.4" @@ -1558,6 +1550,8 @@ }, "node_modules/@apify/pseudo_url": { "version": "2.0.76", + "resolved": "https://registry.npmjs.org/@apify/pseudo_url/-/pseudo_url-2.0.76.tgz", + "integrity": "sha512-eNWHnP8CeMBgYBFko6/NJhHNKnxjy9HtbKQy0rq75LuKeibnAcT+7kkQrr6JDyDzrZL1O96yRWEy+G3lC2eIZA==", "license": "Apache-2.0", "dependencies": { "@apify/log": "^2.5.35" @@ -1565,10 +1559,14 @@ }, "node_modules/@apify/timeout": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@apify/timeout/-/timeout-0.3.3.tgz", + "integrity": "sha512-lyvwMXee8SJNjNyxhr+nSTNyvjyoxbxol51xikq9VytFOPNSEMz8N02mUAuLVJNqrnqCBFRybjeqZdg4Y5AZlA==", "license": "Apache-2.0" }, "node_modules/@apify/utilities": { "version": "2.27.0", + "resolved": "https://registry.npmjs.org/@apify/utilities/-/utilities-2.27.0.tgz", + "integrity": "sha512-P3maAvUi5sUw4F4AKRyfczAQAl20YodEjSlFrjg6Bif8ThRAott7atEAfdy8FfyjI7Z0l+0MrbvtF4ZiGdJ8mw==", "license": "Apache-2.0", "dependencies": { "@apify/consts": "^2.52.1", @@ -4590,6 +4588,8 @@ }, "node_modules/@borewit/text-codec": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz", + "integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==", "license": "MIT", "funding": { "type": "github", @@ -5151,6 +5151,8 @@ }, "node_modules/@composio/core": { "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@composio/core/-/core-0.6.10.tgz", + "integrity": "sha512-T/9MfYcmPs2EcSXhrJWvm0UFTfa79FcTo1L8vO13d5C5kX8/I4hLYLu+1wc4n7WGBSE9hq7o1g9L3FXJrOrlSQ==", "license": "ISC", "dependencies": { "@composio/client": "0.1.0-alpha.66", @@ -5218,6 +5220,8 @@ }, "node_modules/@composio/mastra": { "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@composio/mastra/-/mastra-0.6.10.tgz", + "integrity": "sha512-Npw4LMBf4jWM7aIKgJGSyyEK1iOT+Slti7Hu7so8GlrcyXwj32ncxRa3TC+pa8u+v9BUHmBz2kS87swGrcAT2g==", "license": "ISC", "dependencies": { "@mastra/schema-compat": "^1.0.0" @@ -5229,15 +5233,17 @@ } }, "node_modules/@crawlee/basic": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/basic/-/basic-4.0.0-beta.47.tgz", + "integrity": "sha512-dZ7voQ95bTpb3i5QggKMLnbQJIu53u5ZXRXk5gW1CahCIOzIAFZj7NDKqZqQMouqbKi1wWpNE3XXt5FM5aIOpw==", "license": "Apache-2.0", "dependencies": { "@apify/timeout": "^0.3.2", "@apify/utilities": "^2.15.5", - "@crawlee/core": "4.0.0-beta.44", - "@crawlee/got-scraping-client": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/core": "4.0.0-beta.47", + "@crawlee/got-scraping-client": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "csv-stringify": "^6.5.2", "fs-extra": "^11.3.0", "ow": "^2.0.0", @@ -5250,14 +5256,16 @@ } }, "node_modules/@crawlee/browser": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/browser/-/browser-4.0.0-beta.47.tgz", + "integrity": "sha512-B4AVRcnliI35WeI+ezXAI1AbwGgfkDf7cH6jH2KtlDsKK1RKxMtQtfWIJ9+yEfZx57dAPQj7EWnX02ccucGo0Q==", "license": "Apache-2.0", "dependencies": { "@apify/timeout": "^0.3.2", - "@crawlee/basic": "4.0.0-beta.44", - "@crawlee/browser-pool": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/basic": "4.0.0-beta.47", + "@crawlee/browser-pool": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "ow": "^2.0.0", "tslib": "^2.8.1", "type-fest": "^4.41.0" @@ -5279,12 +5287,14 @@ } }, "node_modules/@crawlee/browser-pool": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/browser-pool/-/browser-pool-4.0.0-beta.47.tgz", + "integrity": "sha512-J/bfzegDsMst0AIyDxlGEvfEZSc+ev989IB7XOArIdwgOx4B37/J+pJpmGNdABkarzXrrPoTBEzTCMwfRlDhPw==", "license": "Apache-2.0", "dependencies": { "@apify/timeout": "^0.3.2", - "@crawlee/core": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", + "@crawlee/core": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", "fingerprint-generator": "^2.1.68", "fingerprint-injector": "^2.1.68", "lodash.merge": "^4.6.2", @@ -5314,6 +5324,8 @@ }, "node_modules/@crawlee/browser-pool/node_modules/p-limit": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", "license": "MIT", "dependencies": { "yocto-queue": "^1.1.1" @@ -5325,8 +5337,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@crawlee/browser-pool/node_modules/p-limit/node_modules/yocto-queue": { + "node_modules/@crawlee/browser-pool/node_modules/yocto-queue": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", "license": "MIT", "engines": { "node": ">=12.20" @@ -5336,12 +5350,14 @@ } }, "node_modules/@crawlee/cheerio": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/cheerio/-/cheerio-4.0.0-beta.47.tgz", + "integrity": "sha512-48x77TlatuRQwQf5FHcgwQJaxNQV7EMjUAE6TqDuomly4YoWWPw4AddEcPxmWXqqDJVQmFPSbsxIxVXkxlk8YQ==", "license": "Apache-2.0", "dependencies": { - "@crawlee/http": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/http": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "cheerio": "^1.0.0", "htmlparser2": "^10.0.0", "tslib": "^2.8.1" @@ -5351,10 +5367,12 @@ } }, "node_modules/@crawlee/cli": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/cli/-/cli-4.0.0-beta.47.tgz", + "integrity": "sha512-xENtCeNPDlLR+20CWdN8d5SHEUwkHsXETMYqbIobA4jaLbWn/w3MWyFVw6z2ETypDY5AjXEk6rFz0SCNOh0+QQ==", "license": "Apache-2.0", "dependencies": { - "@crawlee/templates": "4.0.0-beta.44", + "@crawlee/templates": "4.0.0-beta.47", "@inquirer/prompts": "^7.5.0", "ansi-colors": "^4.1.3", "fs-extra": "^11.3.0", @@ -5368,23 +5386,22 @@ "node": ">=22.0.0" } }, - "node_modules/@crawlee/cli/node_modules/yargs": { - "version": "18.0.0", + "node_modules/@crawlee/cli/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", - "dependencies": { - "cliui": "^9.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "string-width": "^7.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^22.0.0" - }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=23" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@crawlee/cli/node_modules/yargs/node_modules/cliui": { + "node_modules/@crawlee/cli/node_modules/cliui": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "license": "ISC", "dependencies": { "string-width": "^7.2.0", @@ -5395,59 +5412,76 @@ "node": ">=20" } }, - "node_modules/@crawlee/cli/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi": { - "version": "9.0.2", + "node_modules/@crawlee/cli/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/@crawlee/cli/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@crawlee/cli/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", + "node_modules/@crawlee/cli/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@crawlee/cli/node_modules/yargs/node_modules/string-width": { - "version": "7.2.0", + "node_modules/@crawlee/cli/node_modules/yargs": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "cliui": "^9.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "string-width": "^7.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^22.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, - "node_modules/@crawlee/cli/node_modules/yargs/node_modules/string-width/node_modules/emoji-regex": { - "version": "10.6.0", - "license": "MIT" - }, - "node_modules/@crawlee/cli/node_modules/yargs/node_modules/yargs-parser": { + "node_modules/@crawlee/cli/node_modules/yargs-parser": { "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "license": "ISC", "engines": { "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/@crawlee/core": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/core/-/core-4.0.0-beta.47.tgz", + "integrity": "sha512-16cARI9EahRGvUJ+KbHBBACVQ5iT7wvdXcw7WO7GIqKvrk5/x9JIu3YlTOYBZYAL+Blsbwte8hmywSTe7VngFg==", "license": "Apache-2.0", "dependencies": { "@apify/consts": "^2.41.0", @@ -5456,9 +5490,9 @@ "@apify/pseudo_url": "^2.0.59", "@apify/timeout": "^0.3.2", "@apify/utilities": "^2.15.5", - "@crawlee/memory-storage": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/memory-storage": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "@sapphire/async-queue": "^1.5.5", "@vladfrangu/async_event_emitter": "^2.4.6", "csv-stringify": "^6.5.2", @@ -5476,22 +5510,28 @@ "node": ">=22.0.0" } }, + "node_modules/@crawlee/core/node_modules/stream-chain": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", + "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", + "license": "BSD-3-Clause" + }, "node_modules/@crawlee/core/node_modules/stream-json": { "version": "1.9.1", + "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz", + "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==", "license": "BSD-3-Clause", "dependencies": { "stream-chain": "^2.2.5" } }, - "node_modules/@crawlee/core/node_modules/stream-json/node_modules/stream-chain": { - "version": "2.2.5", - "license": "BSD-3-Clause" - }, "node_modules/@crawlee/got-scraping-client": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/got-scraping-client/-/got-scraping-client-4.0.0-beta.47.tgz", + "integrity": "sha512-TyOeZFqXQgxPD90Lon5vwRreaHaiWH450vDWsn9/6qdh9dceWFdwxZO5XwMfQw72Ih7cW8SLoH0Ms092PQLmvQ==", "license": "Apache-2.0", "dependencies": { - "@crawlee/http-client": "4.0.0-beta.44", + "@crawlee/http-client": "4.0.0-beta.47", "got-scraping": "^4.2.1" }, "engines": { @@ -5499,15 +5539,17 @@ } }, "node_modules/@crawlee/http": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/http/-/http-4.0.0-beta.47.tgz", + "integrity": "sha512-7eY20yaUldkkti2N1xmuocXbV3Ph/jWr5mb0kKZG8XpbG3Xf+6xXT7rfXZcvOrVELaFvKh/xNxEhkFqryCVw6g==", "license": "Apache-2.0", "dependencies": { "@apify/timeout": "^0.3.2", "@apify/utilities": "^2.15.5", - "@crawlee/basic": "4.0.0-beta.44", - "@crawlee/http-client": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/basic": "4.0.0-beta.47", + "@crawlee/http-client": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "@types/content-type": "^1.1.8", "cheerio": "^1.0.0", "content-type": "^1.0.5", @@ -5522,10 +5564,12 @@ } }, "node_modules/@crawlee/http-client": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/http-client/-/http-client-4.0.0-beta.47.tgz", + "integrity": "sha512-1b3AGONkxddV8V7VDGlnTsjK4/JPYrrMiAWqwbKXC45KneYKivZ6CO4bi32SnPQvIeUvtm9w+gftRIeacyPshw==", "license": "Apache-2.0", "dependencies": { - "@crawlee/types": "4.0.0-beta.44", + "@crawlee/types": "4.0.0-beta.47", "tough-cookie": "^6.0.0" }, "engines": { @@ -5534,6 +5578,8 @@ }, "node_modules/@crawlee/http/node_modules/iconv-lite": { "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -5546,8 +5592,19 @@ "url": "https://opencollective.com/express" } }, + "node_modules/@crawlee/http/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@crawlee/http/node_modules/mime-types": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { "mime-db": "^1.54.0" @@ -5560,22 +5617,17 @@ "url": "https://opencollective.com/express" } }, - "node_modules/@crawlee/http/node_modules/mime-types/node_modules/mime-db": { - "version": "1.54.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/@crawlee/jsdom": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/jsdom/-/jsdom-4.0.0-beta.47.tgz", + "integrity": "sha512-fOPlwqibFrb7q0OSAZc/n4z5v/ZRFEgUiB+aH/ea4Gzr5Xn3u3Qtml8UvsR7yvvmc6eoiTCBtmfXBVszCrhXGQ==", "license": "Apache-2.0", "dependencies": { "@apify/timeout": "^0.3.0", "@apify/utilities": "^2.7.10", - "@crawlee/http": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/http": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "@types/jsdom": "^21.1.7", "cheerio": "^1.0.0", "jsdom": "^26.1.0", @@ -5588,6 +5640,8 @@ }, "node_modules/@crawlee/jsdom/node_modules/@types/jsdom": { "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -5595,8 +5649,35 @@ "parse5": "^7.0.0" } }, + "node_modules/@crawlee/jsdom/node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@crawlee/jsdom/node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@crawlee/jsdom/node_modules/jsdom": { "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "license": "MIT", "dependencies": { "cssstyle": "^4.2.1", @@ -5632,33 +5713,34 @@ } } }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/data-urls": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, - "engines": { - "node": ">=18" - } + "node_modules/@crawlee/jsdom/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "license": "MIT" }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/html-encoding-sniffer": { - "version": "4.0.0", + "node_modules/@crawlee/jsdom/node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", "license": "MIT", "dependencies": { - "whatwg-encoding": "^3.1.1" + "tldts-core": "^6.1.86" }, - "engines": { - "node": ">=18" + "bin": { + "tldts": "bin/cli.js" } }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/rrweb-cssom": { - "version": "0.8.0", + "node_modules/@crawlee/jsdom/node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", "license": "MIT" }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/tough-cookie": { + "node_modules/@crawlee/jsdom/node_modules/tough-cookie": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", "license": "BSD-3-Clause", "dependencies": { "tldts": "^6.1.32" @@ -5667,29 +5749,31 @@ "node": ">=16" } }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/tough-cookie/node_modules/tldts": { - "version": "6.1.86", + "node_modules/@crawlee/jsdom/node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "license": "MIT", "dependencies": { - "tldts-core": "^6.1.86" + "punycode": "^2.3.1" }, - "bin": { - "tldts": "bin/cli.js" + "engines": { + "node": ">=18" } }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/tough-cookie/node_modules/tldts/node_modules/tldts-core": { - "version": "6.1.86", - "license": "MIT" - }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/webidl-conversions": { + "node_modules/@crawlee/jsdom/node_modules/webidl-conversions": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/whatwg-url": { + "node_modules/@crawlee/jsdom/node_modules/whatwg-url": { "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", "license": "MIT", "dependencies": { "tr46": "^5.1.0", @@ -5699,24 +5783,16 @@ "node": ">=18" } }, - "node_modules/@crawlee/jsdom/node_modules/jsdom/node_modules/whatwg-url/node_modules/tr46": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@crawlee/linkedom": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/linkedom/-/linkedom-4.0.0-beta.47.tgz", + "integrity": "sha512-0MmcKa99v53Tslh4C+/5Qv6sXA3IckwXjwjgBETyrcaN3wSvMAlX1K5HSltzBOz75mjJZAZmMZew1QwwFBZN2w==", "license": "Apache-2.0", "dependencies": { "@apify/timeout": "^0.3.2", "@apify/utilities": "^2.15.5", - "@crawlee/http": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", + "@crawlee/http": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", "linkedom": "^0.18.10", "ow": "^2.0.0", "tslib": "^2.8.1" @@ -5726,10 +5802,12 @@ } }, "node_modules/@crawlee/memory-storage": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/memory-storage/-/memory-storage-4.0.0-beta.47.tgz", + "integrity": "sha512-n0CESboBiDl1k+5GzRQzhTDqgGVOSfbAdAdY0orU/++byGV9wkOO/G8l+d3x9Hc2tjWnltUKkOmIWQ0eh8TG6Q==", "license": "Apache-2.0", "dependencies": { - "@crawlee/types": "4.0.0-beta.44", + "@crawlee/types": "4.0.0-beta.47", "@sapphire/async-queue": "^1.5.5", "@sapphire/shapeshift": "^4.0.0", "content-type": "^1.0.5", @@ -5744,8 +5822,19 @@ "node": ">=22.0.0" } }, + "node_modules/@crawlee/memory-storage/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@crawlee/memory-storage/node_modules/mime-types": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { "mime-db": "^1.54.0" @@ -5758,15 +5847,10 @@ "url": "https://opencollective.com/express" } }, - "node_modules/@crawlee/memory-storage/node_modules/mime-types/node_modules/mime-db": { - "version": "1.54.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/@crawlee/memory-storage/node_modules/p-limit": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", "license": "MIT", "dependencies": { "yocto-queue": "^1.1.1" @@ -5778,8 +5862,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@crawlee/memory-storage/node_modules/p-limit/node_modules/yocto-queue": { + "node_modules/@crawlee/memory-storage/node_modules/yocto-queue": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", "license": "MIT", "engines": { "node": ">=12.20" @@ -5789,17 +5875,19 @@ } }, "node_modules/@crawlee/playwright": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/playwright/-/playwright-4.0.0-beta.47.tgz", + "integrity": "sha512-wCi/R3pJ5fH4kBMUQH5/g0KSNXpkpc+LQ38gfiCkIV2GUxadrlpI7bGQOQWNQSqvdLDbrTZC/ozXRkHwROtlyw==", "license": "Apache-2.0", "dependencies": { "@apify/datastructures": "^2.0.3", "@apify/timeout": "^0.3.2", - "@crawlee/browser": "4.0.0-beta.44", - "@crawlee/browser-pool": "4.0.0-beta.44", - "@crawlee/cheerio": "4.0.0-beta.44", - "@crawlee/core": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/browser": "4.0.0-beta.47", + "@crawlee/browser-pool": "4.0.0-beta.47", + "@crawlee/cheerio": "4.0.0-beta.47", + "@crawlee/core": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "cheerio": "^1.0.0", "idcac-playwright": "^0.1.3", "jquery": "^3.7.1", @@ -5826,14 +5914,16 @@ } }, "node_modules/@crawlee/puppeteer": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/puppeteer/-/puppeteer-4.0.0-beta.47.tgz", + "integrity": "sha512-md0xvpjVRSYgrZhJ+990hle4fpckC9lTVVBqDVYgPljyl39cfsc+M78eVFIPCqRiWVtvbDPKPOJbCNb/8fYA3A==", "license": "Apache-2.0", "dependencies": { "@apify/datastructures": "^2.0.3", - "@crawlee/browser": "4.0.0-beta.44", - "@crawlee/browser-pool": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "@crawlee/browser": "4.0.0-beta.47", + "@crawlee/browser-pool": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "cheerio": "^1.0.0", "devtools-protocol": "*", "idcac-playwright": "^0.2.0", @@ -5859,10 +5949,14 @@ }, "node_modules/@crawlee/puppeteer/node_modules/idcac-playwright": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/idcac-playwright/-/idcac-playwright-0.2.0.tgz", + "integrity": "sha512-qJH7vQgq3TKnhea/3Z3jlEJL7NC9vK9BkLClAzQHVRepBtq1fWfSI4fSuMKcPq7nDUTTlIEIS+vU+GRwwR1BXw==", "license": "GPL-3.0-only" }, "node_modules/@crawlee/templates": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/templates/-/templates-4.0.0-beta.47.tgz", + "integrity": "sha512-7Lx6SIJYBGbBUu+hlcGoW1qepdUh48Dk+xV9Mz1bJoAE4W4wzHUVzhGaaSRn8Gd2MKRnNCjWHtjErlR4G7qnHw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.1" @@ -5872,7 +5966,9 @@ } }, "node_modules/@crawlee/types": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/types/-/types-4.0.0-beta.47.tgz", + "integrity": "sha512-zkGChvfuaDQbjqirXFWXMt8Tmp73g6f5RGnXc/XtUd8qgqhDl5C2Y+3xwjzXhffm/G6tPWbqoQE1datO69+D/g==", "license": "Apache-2.0", "dependencies": { "tough-cookie": "^6.0.0", @@ -5883,12 +5979,14 @@ } }, "node_modules/@crawlee/utils": { - "version": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@crawlee/utils/-/utils-4.0.0-beta.47.tgz", + "integrity": "sha512-TqlO4Tq40luO6PttNapAo1lm2YWCKg8e971/0bHzQ/CsFDLHJt8yMEjvxlrk8J+zumWaY4UClPJxq5NwqTtL9Q==", "license": "Apache-2.0", "dependencies": { "@apify/ps-tree": "^1.2.0", - "@crawlee/http-client": "4.0.0-beta.44", - "@crawlee/types": "4.0.0-beta.44", + "@crawlee/http-client": "4.0.0-beta.47", + "@crawlee/types": "4.0.0-beta.47", "@types/sax": "^1.2.7", "cheerio": "^1.0.0", "domhandler": "^5.0.3", @@ -6982,7 +7080,9 @@ } }, "node_modules/@dotenvx/dotenvx": { - "version": "1.61.0", + "version": "1.61.1", + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.61.1.tgz", + "integrity": "sha512-2OUX4KDKvQA6oa7oESG8eNcV4K/2C5jgrbxUcT0VoH9Zelg6dT+rDYew4w2GmXRV3db0tUaM4QZG3MyJL3fU5Q==", "license": "BSD-3-Clause", "dependencies": { "commander": "^11.1.0", @@ -6992,7 +7092,7 @@ "fdir": "^6.2.0", "ignore": "^5.3.0", "object-treeify": "1.1.33", - "picomatch": "^4.0.2", + "picomatch": "^4.0.4", "which": "^4.0.0", "yocto-spinner": "^1.1.0" }, @@ -11326,6 +11426,8 @@ }, "node_modules/@inquirer/ansi": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", "license": "MIT", "engines": { "node": ">=18" @@ -11333,6 +11435,8 @@ }, "node_modules/@inquirer/checkbox": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "license": "MIT", "dependencies": { "@inquirer/ansi": "^1.0.2", @@ -11355,6 +11459,8 @@ }, "node_modules/@inquirer/confirm": { "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11374,6 +11480,8 @@ }, "node_modules/@inquirer/core": { "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "license": "MIT", "dependencies": { "@inquirer/ansi": "^1.0.2", @@ -11397,20 +11505,19 @@ } } }, - "node_modules/@inquirer/core/node_modules/wrap-ansi": { - "version": "6.2.0", + "node_modules/@inquirer/core/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/@inquirer/core/node_modules/wrap-ansi/node_modules/strip-ansi": { + "node_modules/@inquirer/core/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -11419,15 +11526,24 @@ "node": ">=8" } }, - "node_modules/@inquirer/core/node_modules/wrap-ansi/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { "node": ">=8" } }, "node_modules/@inquirer/editor": { "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11448,6 +11564,8 @@ }, "node_modules/@inquirer/expand": { "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11468,6 +11586,8 @@ }, "node_modules/@inquirer/external-editor": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "license": "MIT", "dependencies": { "chardet": "^2.1.1", @@ -11487,6 +11607,8 @@ }, "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -11501,6 +11623,8 @@ }, "node_modules/@inquirer/figures": { "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "license": "MIT", "engines": { "node": ">=18" @@ -11508,6 +11632,8 @@ }, "node_modules/@inquirer/input": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11527,6 +11653,8 @@ }, "node_modules/@inquirer/number": { "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11546,6 +11674,8 @@ }, "node_modules/@inquirer/password": { "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "license": "MIT", "dependencies": { "@inquirer/ansi": "^1.0.2", @@ -11566,6 +11696,8 @@ }, "node_modules/@inquirer/prompts": { "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", "license": "MIT", "dependencies": { "@inquirer/checkbox": "^4.3.2", @@ -11593,6 +11725,8 @@ }, "node_modules/@inquirer/rawlist": { "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11613,6 +11747,8 @@ }, "node_modules/@inquirer/search": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "license": "MIT", "dependencies": { "@inquirer/core": "^10.3.2", @@ -11634,6 +11770,8 @@ }, "node_modules/@inquirer/select": { "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "license": "MIT", "dependencies": { "@inquirer/ansi": "^1.0.2", @@ -11656,6 +11794,8 @@ }, "node_modules/@inquirer/type": { "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "license": "MIT", "engines": { "node": ">=18" @@ -11688,6 +11828,8 @@ }, "node_modules/@isaacs/ttlcache": { "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-2.1.4.tgz", + "integrity": "sha512-7kMz0BJpMvgAMkyglums7B2vtrn5g0a0am77JY0GjkZZNetOBCFn7AG7gKCwT0QPiXyxW7YIQSgtARknUEOcxQ==", "license": "BlueOak-1.0.0", "engines": { "node": ">=12" @@ -12533,13 +12675,15 @@ } }, "node_modules/@mastra/client-js": { - "version": "1.13.4", + "version": "1.13.5-alpha.5", + "resolved": "https://registry.npmjs.org/@mastra/client-js/-/client-js-1.13.5-alpha.5.tgz", + "integrity": "sha512-JBiuZmbndFAVzJznFPtgweSSTy2jzCcCeTDd+LuoLJpb0rFlK0MOcpjsITSf6k/5/iXBwiYqM0CzmdBDL4qCow==", "license": "Apache-2.0", "dependencies": { "@ai-sdk/ui-utils": "^1.2.11", "@lukeed/uuid": "^2.0.1", - "@mastra/core": "1.25.0", - "@mastra/schema-compat": "1.2.8", + "@mastra/core": "1.26.0-alpha.5", + "@mastra/schema-compat": "1.2.9-alpha.1", "json-schema": "^0.4.0" }, "engines": { @@ -12549,8 +12693,28 @@ "zod": "^3.25.0 || ^4.0.0" } }, + "node_modules/@mastra/client-js/node_modules/@mastra/schema-compat": { + "version": "1.2.9-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/schema-compat/-/schema-compat-1.2.9-alpha.1.tgz", + "integrity": "sha512-Ul2TB34TaGlWSnt902sq4UcvcTDB0rOpHSEClGu7hZMp8DGjAKA+apsP/gEByZoJoZhgy5vSf0SnC4u09XGGPQ==", + "license": "Apache-2.0", + "dependencies": { + "json-schema-to-zod": "^2.7.0", + "zod-from-json-schema": "^0.5.2", + "zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, "node_modules/@mastra/cloudflare": { - "version": "1.3.1", + "version": "1.3.2-alpha.0", + "resolved": "https://registry.npmjs.org/@mastra/cloudflare/-/cloudflare-1.3.2-alpha.0.tgz", + "integrity": "sha512-dFzRtI4VbCxT/pG8Y148p7cTnSAMg/6Q4m/tTIZg1+7PnPPZZ/iXQXe0vU6165HFr8hZ6TQ538b+7Jy4D1G9uA==", "license": "Apache-2.0", "dependencies": { "cloudflare": "^5.2.0" @@ -12564,7 +12728,9 @@ } }, "node_modules/@mastra/cloudflare-d1": { - "version": "1.0.4", + "version": "1.0.5-alpha.0", + "resolved": "https://registry.npmjs.org/@mastra/cloudflare-d1/-/cloudflare-d1-1.0.5-alpha.0.tgz", + "integrity": "sha512-O+hhYTdEYb+1PRX9K9K3buyfmQgBVKimGBggCUiBSzAsvMmHv1gyr67KAimuW+uACOzhsht/eYR+6/KsiLE0Bw==", "dependencies": { "cloudflare": "^5.2.0" }, @@ -12576,7 +12742,9 @@ } }, "node_modules/@mastra/convex": { - "version": "1.0.7", + "version": "1.0.8-alpha.0", + "resolved": "https://registry.npmjs.org/@mastra/convex/-/convex-1.0.8-alpha.0.tgz", + "integrity": "sha512-dryAx3QN54wThU1tN6jnf94yLBmCQQuOcFKQ9BGf0OkWKHM17vfYSE3qHhxgzTpszjhn6HK+m8COiUTxjO/swA==", "license": "Apache-2.0", "dependencies": { "convex": "^1.33.1" @@ -12589,7 +12757,9 @@ } }, "node_modules/@mastra/core": { - "version": "1.25.0", + "version": "1.26.0-alpha.5", + "resolved": "https://registry.npmjs.org/@mastra/core/-/core-1.26.0-alpha.5.tgz", + "integrity": "sha512-cGwmzJr4NyZaUHC1vSofy2Snv7MOLRp5pycD4+MDnSmxPtCV9QcLyUxKv25rFClJsvKp6iwsEYyT4VmjDhYhlg==", "license": "Apache-2.0", "dependencies": { "@a2a-js/sdk": "~0.2.5", @@ -12600,7 +12770,7 @@ "@ai-sdk/ui-utils-v5": "npm:@ai-sdk/ui-utils@1.2.11", "@isaacs/ttlcache": "^2.1.4", "@lukeed/uuid": "^2.0.1", - "@mastra/schema-compat": "1.2.8", + "@mastra/schema-compat": "1.2.9-alpha.1", "@modelcontextprotocol/sdk": "^1.27.1", "@sindresorhus/slugify": "^2.2.1", "@standard-schema/spec": "^1.1.0", @@ -12630,8 +12800,117 @@ "zod": "^3.25.0 || ^4.0.0" } }, + "node_modules/@mastra/core/node_modules/@ai-sdk/provider": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz", + "integrity": "sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==", + "license": "Apache-2.0", + "dependencies": { + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mastra/core/node_modules/@ai-sdk/ui-utils-v5": { + "name": "@ai-sdk/ui-utils", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-1.2.11.tgz", + "integrity": "sha512-3zcwCc8ezzFlwp3ZD15wAPjf2Au4s3vAbKsXQVyhxODHcmu0iyPO2Eua6D/vicq/AUm/BAo60r97O6HU+EI0+w==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "1.1.3", + "@ai-sdk/provider-utils": "2.2.8", + "zod-to-json-schema": "^3.24.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.23.8" + } + }, + "node_modules/@mastra/core/node_modules/@ai-sdk/ui-utils-v5/node_modules/@ai-sdk/provider-utils": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz", + "integrity": "sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "1.1.3", + "nanoid": "^3.3.8", + "secure-json-parse": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.23.8" + } + }, + "node_modules/@mastra/core/node_modules/@mastra/schema-compat": { + "version": "1.2.9-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/schema-compat/-/schema-compat-1.2.9-alpha.1.tgz", + "integrity": "sha512-Ul2TB34TaGlWSnt902sq4UcvcTDB0rOpHSEClGu7hZMp8DGjAKA+apsP/gEByZoJoZhgy5vSf0SnC4u09XGGPQ==", + "license": "Apache-2.0", + "dependencies": { + "json-schema-to-zod": "^2.7.0", + "zod-from-json-schema": "^0.5.2", + "zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/@mastra/core/node_modules/@standard-community/standard-openapi": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@standard-community/standard-openapi/-/standard-openapi-0.2.9.tgz", + "integrity": "sha512-htj+yldvN1XncyZi4rehbf9kLbu8os2Ke/rfqoZHCMHuw34kiF3LP/yQPdA0tQ940y8nDq3Iou8R3wG+AGGyvg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@standard-community/standard-json": "^0.3.5", + "@standard-schema/spec": "^1.0.0", + "arktype": "^2.1.20", + "effect": "^3.17.14", + "openapi-types": "^12.1.3", + "sury": "^10.0.0", + "typebox": "^1.0.0", + "valibot": "^1.1.0", + "zod": "^3.25.0 || ^4.0.0", + "zod-openapi": "^4" + }, + "peerDependenciesMeta": { + "arktype": { + "optional": true + }, + "effect": { + "optional": true + }, + "sury": { + "optional": true + }, + "typebox": { + "optional": true + }, + "valibot": { + "optional": true + }, + "zod": { + "optional": true + }, + "zod-openapi": { + "optional": true + } + } + }, "node_modules/@mastra/core/node_modules/ajv": { "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -12644,10 +12923,58 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@mastra/core/node_modules/ajv/node_modules/json-schema-traverse": { + "node_modules/@mastra/core/node_modules/hono-openapi": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/hono-openapi/-/hono-openapi-1.3.0.tgz", + "integrity": "sha512-xDvCWpWEIv0weEmnl3EjRQzqbHIO8LnfzMuYOCmbuyE5aes6aXxLg4vM3ybnoZD5TiTUkA6PuRQPJs3R7WRBig==", + "license": "MIT", + "peerDependencies": { + "@hono/standard-validator": "^0.2.0", + "@standard-community/standard-json": "^0.3.5", + "@standard-community/standard-openapi": "^0.2.9", + "@types/json-schema": "^7.0.15", + "hono": "^4.8.3", + "openapi-types": "^12.1.3" + }, + "peerDependenciesMeta": { + "@hono/standard-validator": { + "optional": true + }, + "hono": { + "optional": true + } + } + }, + "node_modules/@mastra/core/node_modules/json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/@mastra/core/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/@mastra/core/node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" + }, "node_modules/@mastra/daytona": { "version": "0.2.1", "license": "Apache-2.0", @@ -12662,14 +12989,16 @@ } }, "node_modules/@mastra/deployer": { - "version": "1.25.0", + "version": "1.26.0-alpha.3", + "resolved": "https://registry.npmjs.org/@mastra/deployer/-/deployer-1.26.0-alpha.3.tgz", + "integrity": "sha512-LZG19vDLegzacWsVL+4I+EB2UE8uDpu9Ml7WaUZjxf+o/OCpWQsSL6u2IiFdXh6NwJLp1cYssQ1jBylb+cGCVQ==", "license": "Apache-2.0", "dependencies": { "@babel/core": "^7.29.0", "@babel/preset-typescript": "^7.28.5", "@babel/traverse": "^7.29.0", "@hono/node-ws": "^1.3.0", - "@mastra/server": "1.25.0", + "@mastra/server": "1.26.0-alpha.3", "@optimize-lodash/rollup-plugin": "^5.1.0", "@rollup/plugin-alias": "6.0.0", "@rollup/plugin-commonjs": "29.0.2", @@ -12703,13 +13032,15 @@ } }, "node_modules/@mastra/editor": { - "version": "0.7.16", + "version": "0.7.17-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/editor/-/editor-0.7.17-alpha.1.tgz", + "integrity": "sha512-tnehP04st9ZRCS32MeAgJKgjQtWP9+bOYH7J7//DQF+B+vuDizLB7c9xAy5hwwK4ZPdyothvuE5Ml7yGjfGYsQ==", "dependencies": { "@arcadeai/arcadejs": "^2.3.0", "@composio/core": "^0.6.5", "@composio/mastra": "^0.6.5", - "@mastra/memory": "1.15.1", - "@mastra/schema-compat": "1.2.8" + "@mastra/memory": "1.16.0-alpha.1", + "@mastra/schema-compat": "1.2.9-alpha.1" }, "engines": { "node": ">=22.13.0" @@ -12725,6 +13056,47 @@ } } }, + "node_modules/@mastra/editor/node_modules/@mastra/memory": { + "version": "1.16.0-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/memory/-/memory-1.16.0-alpha.1.tgz", + "integrity": "sha512-4PS0wx/I4AlpisXDuMcdX+gnP6cyx+v5UdyN/bYQpgtiCj+OkPrVNsEMRlnYNQ0W6KzMzo7gRyLyCKszr5FSmw==", + "license": "Apache-2.0", + "dependencies": { + "@mastra/schema-compat": "1.2.9-alpha.1", + "async-mutex": "^0.5.0", + "image-size": "^2.0.2", + "json-schema": "^0.4.0", + "lru-cache": "^11.2.7", + "probe-image-size": "^7.2.3", + "tokenx": "^1.3.0", + "xxhash-wasm": "^1.1.0" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.4.1-0 <2.0.0-0", + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/@mastra/editor/node_modules/@mastra/schema-compat": { + "version": "1.2.9-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/schema-compat/-/schema-compat-1.2.9-alpha.1.tgz", + "integrity": "sha512-Ul2TB34TaGlWSnt902sq4UcvcTDB0rOpHSEClGu7hZMp8DGjAKA+apsP/gEByZoJoZhgy5vSf0SnC4u09XGGPQ==", + "license": "Apache-2.0", + "dependencies": { + "json-schema-to-zod": "^2.7.0", + "zod-from-json-schema": "^0.5.2", + "zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, "node_modules/@mastra/evals": { "version": "1.2.1", "license": "Apache-2.0", @@ -12782,7 +13154,9 @@ } }, "node_modules/@mastra/libsql": { - "version": "1.8.1", + "version": "1.8.2-alpha.0", + "resolved": "https://registry.npmjs.org/@mastra/libsql/-/libsql-1.8.2-alpha.0.tgz", + "integrity": "sha512-VxL16CA3oU9rBHjJb/3mStB6rdZ4clD6XEp4wty2ZrrC+xr5xYt/rsQQgpwAbuIFnkRL/Yh+D/tLfqj1Iyf51g==", "license": "Apache-2.0", "dependencies": { "@libsql/client": "^0.15.15" @@ -12970,10 +13344,11 @@ } }, "node_modules/@mastra/mcp": { - "version": "1.5.0", + "version": "1.5.1-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/mcp/-/mcp-1.5.1-alpha.1.tgz", + "integrity": "sha512-gLc19ZZj/5vl0AocLc7pt+xU9PPs3lgXd1qJE18VrOBeraap5hqW/STPcRq44BuWPiefrTMkVaqgtOVW+EhUNw==", "license": "Apache-2.0", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^14.2.1", "@modelcontextprotocol/sdk": "^1.27.1", "exit-hook": "^5.1.0", "fast-deep-equal": "^3.1.3", @@ -12988,10 +13363,12 @@ } }, "node_modules/@mastra/memory": { - "version": "1.15.1", + "version": "1.16.0-alpha.2", + "resolved": "https://registry.npmjs.org/@mastra/memory/-/memory-1.16.0-alpha.2.tgz", + "integrity": "sha512-UzaUXas9/L/DyLKsNsqOH3I74NJA8EKRxqcYWqY9fXM+2r39R8JUkAaF2UbSpcATSZP6g+ofcvCEagy+zk6gFQ==", "license": "Apache-2.0", "dependencies": { - "@mastra/schema-compat": "1.2.8", + "@mastra/schema-compat": "1.2.9-alpha.1", "async-mutex": "^0.5.0", "image-size": "^2.0.2", "json-schema": "^0.4.0", @@ -13008,8 +13385,28 @@ "zod": "^3.25.0 || ^4.0.0" } }, + "node_modules/@mastra/memory/node_modules/@mastra/schema-compat": { + "version": "1.2.9-alpha.1", + "resolved": "https://registry.npmjs.org/@mastra/schema-compat/-/schema-compat-1.2.9-alpha.1.tgz", + "integrity": "sha512-Ul2TB34TaGlWSnt902sq4UcvcTDB0rOpHSEClGu7hZMp8DGjAKA+apsP/gEByZoJoZhgy5vSf0SnC4u09XGGPQ==", + "license": "Apache-2.0", + "dependencies": { + "json-schema-to-zod": "^2.7.0", + "zod-from-json-schema": "^0.5.2", + "zod-from-json-schema-v3": "npm:zod-from-json-schema@^0.0.5", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, "node_modules/@mastra/mongodb": { - "version": "1.7.1", + "version": "1.7.2-alpha.0", + "resolved": "https://registry.npmjs.org/@mastra/mongodb/-/mongodb-1.7.2-alpha.0.tgz", + "integrity": "sha512-zBVdJnoxmgmJ343c5FwmQgvuaAvxb+oJ1WVXw474K2fVKYqV9u/9TOu5IJFrtIcVXhJrH10gNiASMdDFMx4oSw==", "dependencies": { "cloudflare": "^5.2.0", "mongodb": "^7.1.0", @@ -13023,7 +13420,9 @@ } }, "node_modules/@mastra/observability": { - "version": "1.9.1", + "version": "1.9.2-alpha.0", + "resolved": "https://registry.npmjs.org/@mastra/observability/-/observability-1.9.2-alpha.0.tgz", + "integrity": "sha512-nIJmu/NKZ21carzEditkZ2vkwHGZw6ARAifRblATIa19oMLVLVG1JqEGtRh+F7YkCF9aB1OQi+Bn90epijhjJw==", "license": "Apache-2.0", "engines": { "node": ">=22.13.0" @@ -13057,6 +13456,18 @@ } } }, + "node_modules/@mastra/otel-bridge/node_modules/@mastra/observability": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@mastra/observability/-/observability-1.9.1.tgz", + "integrity": "sha512-Zx4Q3HfLftLz25EOF9Q6JtAr6z6UHFdfl0X6KlyAYh3jxzPNM4D31lDtmv62+GKsUcxwUPXC2XsfqtFwfSh6KQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.16.0-0 <2.0.0-0" + } + }, "node_modules/@mastra/otel-exporter": { "version": "1.0.16", "license": "Apache-2.0", @@ -13105,6 +13516,18 @@ } } }, + "node_modules/@mastra/otel-exporter/node_modules/@mastra/observability": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@mastra/observability/-/observability-1.9.1.tgz", + "integrity": "sha512-Zx4Q3HfLftLz25EOF9Q6JtAr6z6UHFdfl0X6KlyAYh3jxzPNM4D31lDtmv62+GKsUcxwUPXC2XsfqtFwfSh6KQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.16.0-0 <2.0.0-0" + } + }, "node_modules/@mastra/otel-exporter/node_modules/@opentelemetry/exporter-trace-otlp-http": { "version": "0.205.0", "license": "Apache-2.0", @@ -13414,6 +13837,18 @@ "@mastra/core": ">=1.0.0-0 <2.0.0-0" } }, + "node_modules/@mastra/posthog/node_modules/@mastra/observability": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@mastra/observability/-/observability-1.9.1.tgz", + "integrity": "sha512-Zx4Q3HfLftLz25EOF9Q6JtAr6z6UHFdfl0X6KlyAYh3jxzPNM4D31lDtmv62+GKsUcxwUPXC2XsfqtFwfSh6KQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.16.0-0 <2.0.0-0" + } + }, "node_modules/@mastra/posthog/node_modules/posthog-node": { "version": "4.18.0", "license": "MIT", @@ -13478,6 +13913,25 @@ "zod": "^3.25.0 || ^4.0.0" } }, + "node_modules/@mastra/react/node_modules/@mastra/client-js": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@mastra/client-js/-/client-js-1.13.4.tgz", + "integrity": "sha512-pGgmvC65pX8CSOBlXU9i97gtRb/wuS4KRusumNeRH8AH9CdRgh0XEN2h+8gR2VYKCYyTO9BE/h0ZN5lyhdPbPw==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/ui-utils": "^1.2.11", + "@lukeed/uuid": "^2.0.1", + "@mastra/core": "1.25.0", + "@mastra/schema-compat": "1.2.8", + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, "node_modules/@mastra/react/node_modules/lucide-react": { "version": "0.522.0", "license": "ISC", @@ -13604,7 +14058,9 @@ } }, "node_modules/@mastra/server": { - "version": "1.25.0", + "version": "1.26.0-alpha.3", + "resolved": "https://registry.npmjs.org/@mastra/server/-/server-1.26.0-alpha.3.tgz", + "integrity": "sha512-6qgV9fZBpCDG53oSP84l08pC8YMrmEUr2R7VdJHChLwvECCrWZocbjuY40kUYR9/ZusV6W0E3xIPHBS3h5JOSg==", "license": "Apache-2.0", "dependencies": { "hono": "^4.12.8" @@ -18237,17 +18693,21 @@ } }, "node_modules/@rive-app/react-webgl2": { - "version": "4.28.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rive-app/react-webgl2/-/react-webgl2-4.28.1.tgz", + "integrity": "sha512-hGxhN84K8hOfgiLitQiRMGdDbEL34TijFZCiOW8ShxBpKWVu2mGtjw37MCWAznBaXGCu5+bFZ42SzOfL1onxDQ==", "license": "MIT", "dependencies": { - "@rive-app/webgl2": "2.37.1" + "@rive-app/webgl2": "2.37.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0" } }, "node_modules/@rive-app/webgl2": { - "version": "2.37.1", + "version": "2.37.2", + "resolved": "https://registry.npmjs.org/@rive-app/webgl2/-/webgl2-2.37.2.tgz", + "integrity": "sha512-fQFBGDcjOGNIyhW33lBdamj15oVJTCLHsKBKGolXFjHziFj+Fw0kKd3pRekZNkyfZ0IUQwoS/P2bnF+Vz98CrQ==", "license": "MIT" }, "node_modules/@rolldown/binding-android-arm64": { @@ -19235,6 +19695,8 @@ }, "node_modules/@sindresorhus/is": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-6.3.1.tgz", + "integrity": "sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==", "license": "MIT", "engines": { "node": ">=16" @@ -19983,6 +20445,8 @@ }, "node_modules/@standard-community/standard-json": { "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@standard-community/standard-json/-/standard-json-0.3.5.tgz", + "integrity": "sha512-4+ZPorwDRt47i+O7RjyuaxHRK/37QY/LmgxlGrRrSTLYoFatEOzvqIc85GTlM18SFZ5E91C+v0o/M37wZPpUHA==", "license": "MIT", "peer": true, "peerDependencies": { @@ -20025,46 +20489,6 @@ } } }, - "node_modules/@standard-community/standard-openapi": { - "version": "0.2.9", - "license": "MIT", - "peer": true, - "peerDependencies": { - "@standard-community/standard-json": "^0.3.5", - "@standard-schema/spec": "^1.0.0", - "arktype": "^2.1.20", - "effect": "^3.17.14", - "openapi-types": "^12.1.3", - "sury": "^10.0.0", - "typebox": "^1.0.0", - "valibot": "^1.1.0", - "zod": "^3.25.0 || ^4.0.0", - "zod-openapi": "^4" - }, - "peerDependenciesMeta": { - "arktype": { - "optional": true - }, - "effect": { - "optional": true - }, - "sury": { - "optional": true - }, - "typebox": { - "optional": true - }, - "valibot": { - "optional": true - }, - "zod": { - "optional": true - }, - "zod-openapi": { - "optional": true - } - } - }, "node_modules/@standard-schema/spec": { "version": "1.1.0", "license": "MIT" @@ -21286,10 +21710,12 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.13.23", + "version": "3.13.24", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.24.tgz", + "integrity": "sha512-aIJvz5OSkhNIhZIpYivrxrPTKYsjW9Uzy+sP/mx0S3sev2HyvPb7xmjbYvokzEpfgYHy/HjzJ2zFAETuUfgCpg==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.13.23" + "@tanstack/virtual-core": "3.14.0" }, "funding": { "type": "github", @@ -21320,7 +21746,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.13.23", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.14.0.tgz", + "integrity": "sha512-JLANqGy/D6k4Ujmh8Tr25lGimuOXNiaVyXaCAZS0W+1390sADdGnyUdSWNIfd49gebtIxGMij4IktRVzrdr12Q==", "license": "MIT", "funding": { "type": "github", @@ -21430,6 +21858,8 @@ }, "node_modules/@tokenizer/inflate": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz", + "integrity": "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==", "license": "MIT", "dependencies": { "debug": "^4.4.3", @@ -21445,6 +21875,8 @@ }, "node_modules/@tokenizer/token": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", "license": "MIT" }, "node_modules/@tokenlens/core": { @@ -21654,6 +22086,8 @@ }, "node_modules/@types/body-parser": { "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -21697,10 +22131,14 @@ }, "node_modules/@types/content-type": { "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@types/content-type/-/content-type-1.1.9.tgz", + "integrity": "sha512-Hq9IMnfekuOCsEmYl4QX2HBrT+XsfXiupfrLLY8Dcf3Puf4BkBOxSbWYTITSOQAhJoYPBez+b4MJRpIYL65z8A==", "license": "MIT" }, "node_modules/@types/cors": { "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -21963,6 +22401,8 @@ }, "node_modules/@types/express": { "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -21973,6 +22413,8 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -22030,6 +22472,8 @@ }, "node_modules/@types/http-errors": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "license": "MIT" }, "node_modules/@types/jsdom": { @@ -22105,6 +22549,8 @@ }, "node_modules/@types/mime": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "license": "MIT" }, "node_modules/@types/mime-types": { @@ -22207,10 +22653,14 @@ }, "node_modules/@types/qs": { "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "license": "MIT" }, "node_modules/@types/rbush": { @@ -22286,6 +22736,8 @@ }, "node_modules/@types/sax": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -22299,15 +22751,18 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.6", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-static": { "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -22315,6 +22770,16 @@ "@types/send": "<1" } }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.5", "license": "MIT" @@ -24037,6 +24502,8 @@ }, "node_modules/ansi-colors": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "license": "MIT", "engines": { "node": ">=6" @@ -24338,6 +24805,8 @@ }, "node_modules/array-flatten": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, "node_modules/array-includes": { @@ -25842,6 +26311,8 @@ }, "node_modules/callsites": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz", + "integrity": "sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==", "license": "MIT", "engines": { "node": ">=12.20" @@ -26419,6 +26890,8 @@ }, "node_modules/cli-width": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "license": "ISC", "engines": { "node": ">= 12" @@ -27027,11 +27500,15 @@ } }, "node_modules/convert-csv-to-json": { - "version": "4.31.0", + "version": "4.36.0", + "resolved": "https://registry.npmjs.org/convert-csv-to-json/-/convert-csv-to-json-4.36.0.tgz", + "integrity": "sha512-E3J4tnEKi4v5ohuBlcCCsP9La7oMhycNm8hFOf1C9NwDZk4HSWCy8kt/jOR1SHWdeBti7b9+2erqQP5MCC6ptg==", "license": "MIT" }, "node_modules/convert-hrtime": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", "license": "MIT", "engines": { "node": ">=12" @@ -27648,21 +28125,23 @@ } }, "node_modules/crawlee": { - "version": "4.0.0-beta.44", - "license": "Apache-2.0", - "dependencies": { - "@crawlee/basic": "4.0.0-beta.44", - "@crawlee/browser": "4.0.0-beta.44", - "@crawlee/browser-pool": "4.0.0-beta.44", - "@crawlee/cheerio": "4.0.0-beta.44", - "@crawlee/cli": "4.0.0-beta.44", - "@crawlee/core": "4.0.0-beta.44", - "@crawlee/http": "4.0.0-beta.44", - "@crawlee/jsdom": "4.0.0-beta.44", - "@crawlee/linkedom": "4.0.0-beta.44", - "@crawlee/playwright": "4.0.0-beta.44", - "@crawlee/puppeteer": "4.0.0-beta.44", - "@crawlee/utils": "4.0.0-beta.44", + "version": "4.0.0-beta.47", + "resolved": "https://registry.npmjs.org/crawlee/-/crawlee-4.0.0-beta.47.tgz", + "integrity": "sha512-zOJnpgxxWgMQ4oo3XoNU144ruhmKfA/ItbRDQMo8kykBCU7pZW+zrhFtyhkYq6IBkxxavW1mdaK6OT3hU5BepA==", + "license": "Apache-2.0", + "dependencies": { + "@crawlee/basic": "4.0.0-beta.47", + "@crawlee/browser": "4.0.0-beta.47", + "@crawlee/browser-pool": "4.0.0-beta.47", + "@crawlee/cheerio": "4.0.0-beta.47", + "@crawlee/cli": "4.0.0-beta.47", + "@crawlee/core": "4.0.0-beta.47", + "@crawlee/http": "4.0.0-beta.47", + "@crawlee/jsdom": "4.0.0-beta.47", + "@crawlee/linkedom": "4.0.0-beta.47", + "@crawlee/playwright": "4.0.0-beta.47", + "@crawlee/puppeteer": "4.0.0-beta.47", + "@crawlee/utils": "4.0.0-beta.47", "import-local": "^3.2.0", "tslib": "^2.8.1" }, @@ -28012,6 +28491,8 @@ }, "node_modules/cssom": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", "license": "MIT" }, "node_modules/cssstyle": { @@ -28903,6 +29384,8 @@ }, "node_modules/destroy": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "license": "MIT", "engines": { "node": ">= 0.8", @@ -29484,6 +29967,8 @@ }, "node_modules/environment": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "license": "MIT", "engines": { "node": ">=18" @@ -29809,16 +30294,18 @@ } }, "node_modules/eslint": { - "version": "10.2.0", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz", + "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.4", - "@eslint/config-helpers": "^0.5.4", - "@eslint/core": "^1.2.0", - "@eslint/plugin-kit": "^0.7.0", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.5.5", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -30095,7 +30582,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", "dev": true, "license": "MIT", "dependencies": { @@ -30109,7 +30598,7 @@ "node": ">=18" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "node_modules/eslint-plugin-react-refresh": { @@ -30341,6 +30830,8 @@ }, "node_modules/event-stream": { "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", "license": "MIT", "dependencies": { "duplexer": "~0.1.1", @@ -30813,6 +31304,8 @@ }, "node_modules/fast-equals": { "version": "5.4.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", + "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", "license": "MIT", "engines": { "node": ">=6.0.0" @@ -31109,6 +31602,8 @@ }, "node_modules/file-type": { "version": "21.3.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.4.tgz", + "integrity": "sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==", "license": "MIT", "dependencies": { "@tokenizer/inflate": "^0.4.1", @@ -31276,6 +31771,8 @@ }, "node_modules/fingerprint-generator": { "version": "2.1.82", + "resolved": "https://registry.npmjs.org/fingerprint-generator/-/fingerprint-generator-2.1.82.tgz", + "integrity": "sha512-5Z/yCKW324pMyMarpIKe/QPdkrFWKNJv3ktdU+fXHri80+HAwNE6QhMvEvsMkK9Q8DeCXZlpPHV77UBa1nFb4A==", "license": "Apache-2.0", "dependencies": { "generative-bayesian-network": "^2.1.82", @@ -31288,6 +31785,8 @@ }, "node_modules/fingerprint-injector": { "version": "2.1.82", + "resolved": "https://registry.npmjs.org/fingerprint-injector/-/fingerprint-injector-2.1.82.tgz", + "integrity": "sha512-FN7W1wbhHk2PBCF6wpBEcFnmOdGUItZnbpVBtYVcQ1/iGM0skNUDqJyH1YOjmpQiqEl2Rhh7qWNXYsivjsT+tg==", "license": "Apache-2.0", "dependencies": { "fingerprint-generator": "^2.1.82", @@ -31601,6 +32100,8 @@ }, "node_modules/from": { "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "license": "MIT" }, "node_modules/fs-extra": { @@ -31673,6 +32174,8 @@ }, "node_modules/function-timeout": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", "license": "MIT", "engines": { "node": ">=18" @@ -31755,6 +32258,8 @@ }, "node_modules/generative-bayesian-network": { "version": "2.1.82", + "resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.82.tgz", + "integrity": "sha512-DH4NrmQheoMaJErdVv2IzaqkbOYSDQZmiZTV6UPDJYRDK2EyPpIQ88XRcYdPeFrUjS1N0Jj25H3HUywoJ1dbow==", "license": "Apache-2.0", "dependencies": { "adm-zip": "^0.5.9", @@ -32447,6 +32952,8 @@ }, "node_modules/got-scraping": { "version": "4.2.1", + "resolved": "https://registry.npmjs.org/got-scraping/-/got-scraping-4.2.1.tgz", + "integrity": "sha512-rhOlO1L4H4Cm31smHJqPtAaXOUrhSKsiTrbZSHKFQW1E/mkTDopnHHpRnXJpqzE0faj+zPsVQnyifIqO+K+cLQ==", "license": "Apache-2.0", "dependencies": { "got": "^14.2.1", @@ -32461,48 +32968,56 @@ "node": ">=16" } }, - "node_modules/got-scraping/node_modules/ow": { - "version": "1.1.1", + "node_modules/got-scraping/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.3.0", - "callsites": "^4.0.0", - "dot-prop": "^7.2.0", - "lodash.isequal": "^4.5.0", - "vali-date": "^1.0.0" - }, "engines": { "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/got-scraping/node_modules/ow/node_modules/@sindresorhus/is": { - "version": "5.6.0", + "node_modules/got-scraping/node_modules/dot-prop": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", + "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", "license": "MIT", + "dependencies": { + "type-fest": "^2.11.2" + }, "engines": { - "node": ">=14.16" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got-scraping/node_modules/ow/node_modules/dot-prop": { - "version": "7.2.0", + "node_modules/got-scraping/node_modules/ow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz", + "integrity": "sha512-sJBRCbS5vh1Jp9EOgwp1Ws3c16lJrUkJYlvWTYC03oyiYVwS/ns7lKRWow4w4XjDyTrA2pplQv4B2naWSR6yDA==", "license": "MIT", "dependencies": { - "type-fest": "^2.11.2" + "@sindresorhus/is": "^5.3.0", + "callsites": "^4.0.0", + "dot-prop": "^7.2.0", + "lodash.isequal": "^4.5.0", + "vali-date": "^1.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got-scraping/node_modules/ow/node_modules/dot-prop/node_modules/type-fest": { + "node_modules/got-scraping/node_modules/type-fest": { "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" @@ -33098,6 +33613,8 @@ }, "node_modules/header-generator": { "version": "2.1.82", + "resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.82.tgz", + "integrity": "sha512-4NjPB0+bAKjPoponSmTOkK58IEF2W22sOJA5O48k/MxbCZgOm+jrU4WVR53Z2I6xFgIPkVrQmKtt1LAbWtfqXw==", "license": "Apache-2.0", "dependencies": { "browserslist": "^4.21.1", @@ -33109,8 +33626,31 @@ "node": ">=16.0.0" } }, + "node_modules/header-generator/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/header-generator/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/header-generator/node_modules/ow": { "version": "0.28.2", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.2.tgz", + "integrity": "sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==", "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.2.0", @@ -33126,23 +33666,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/header-generator/node_modules/ow/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/header-generator/node_modules/ow/node_modules/callsites": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/help-me": { "version": "5.0.0", "license": "MIT" @@ -33203,26 +33726,6 @@ "node": ">=16.9.0" } }, - "node_modules/hono-openapi": { - "version": "1.3.0", - "license": "MIT", - "peerDependencies": { - "@hono/standard-validator": "^0.2.0", - "@standard-community/standard-json": "^0.3.5", - "@standard-community/standard-openapi": "^0.2.9", - "@types/json-schema": "^7.0.15", - "hono": "^4.8.3", - "openapi-types": "^12.1.3" - }, - "peerDependenciesMeta": { - "@hono/standard-validator": { - "optional": true - }, - "hono": { - "optional": true - } - } - }, "node_modules/hosted-git-info": { "version": "7.0.2", "license": "ISC", @@ -33552,10 +34055,14 @@ }, "node_modules/idcac-playwright": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/idcac-playwright/-/idcac-playwright-0.1.3.tgz", + "integrity": "sha512-VVYQ4sv6OrUJKVzYaIP1hq0qAHd1O22HW5LnL1Wf6zkrLStQ/QEg4iJ0rllIOEpd+Rmm+635AJD59A+Vw+2PgQ==", "license": "ISC" }, "node_modules/identifier-regex": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/identifier-regex/-/identifier-regex-1.0.1.tgz", + "integrity": "sha512-ZrYyM0sozNPZlvBvE7Oq9Bn44n0qKGrYu5sQ0JzMUnjIhpgWYE2JB6aBoFwEYdPjqj7jPyxXTMJiHDOxDfd8yw==", "license": "MIT", "dependencies": { "reserved-identifiers": "^1.0.0" @@ -33815,6 +34322,8 @@ }, "node_modules/is-any-array": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-3.0.0.tgz", + "integrity": "sha512-o4h+tylWykC4BD1vaejp6gDxoM13bwW8FGuNs4yIKpj8xbBJcRxJx8vZpq0dCr7ZDEfeKjmsi/euolKhX6f/ww==", "license": "MIT" }, "node_modules/is-arguments": { @@ -34063,6 +34572,8 @@ }, "node_modules/is-identifier": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-identifier/-/is-identifier-1.0.1.tgz", + "integrity": "sha512-HQ5v4rEJ7REUV54bCd2l5FaD299SGDEn2UPoVXaTHAyGviLq2menVUD2udi3trQ32uvB6LdAh/0ck2EuizrtpA==", "license": "MIT", "dependencies": { "identifier-regex": "^1.0.0", @@ -34149,6 +34660,8 @@ }, "node_modules/is-network-error": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", "license": "MIT", "engines": { "node": ">=16" @@ -34535,6 +35048,8 @@ }, "node_modules/jquery": { "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "license": "MIT" }, "node_modules/js-base64": { @@ -35390,6 +35905,8 @@ }, "node_modules/linkedom": { "version": "0.18.12", + "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.18.12.tgz", + "integrity": "sha512-jalJsOwIKuQJSeTvsgzPe9iJzyfVaEJiEXl+25EkKevsULHvMJzpNqwvj1jOESWdmgKDiXObyjOYwlUqG7wo1Q==", "license": "ISC", "dependencies": { "css-select": "^5.1.0", @@ -35412,6 +35929,8 @@ }, "node_modules/linkedom/node_modules/html-escaper": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", "license": "MIT" }, "node_modules/linkify-it": { @@ -35535,6 +36054,9 @@ }, "node_modules/lodash.isequal": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, "node_modules/lodash.merge": { @@ -35683,6 +36205,8 @@ }, "node_modules/make-asynchronous": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.1.0.tgz", + "integrity": "sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==", "license": "MIT", "dependencies": { "p-event": "^6.0.0", @@ -35739,7 +36263,9 @@ } }, "node_modules/map-stream": { - "version": "0.1.0" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==" }, "node_modules/markdown-extensions": { "version": "2.0.0", @@ -35761,7 +36287,9 @@ } }, "node_modules/marked": { - "version": "18.0.0", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.1.tgz", + "integrity": "sha512-IILJE4Aap/KIGu4ZRCzQcYMxkhumblXnbqfQe+HAD4f982wrRAsJEGKGM653yAioS6g3Yq3yOhjrUebcrtOgRA==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -35776,13 +36304,15 @@ "optional": true }, "node_modules/mastra": { - "version": "1.6.0", + "version": "1.6.1-alpha.3", + "resolved": "https://registry.npmjs.org/mastra/-/mastra-1.6.1-alpha.3.tgz", + "integrity": "sha512-5ui47fPxQXVsBO6vfWkJligqopWXpj0HIZ2e44/OUEEeFCbNElhdpcXcEefPYeQRkBHfor/ALUkc5l5/ZGK5mg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@clack/prompts": "^1.1.0", "@expo/devcert": "^1.2.1", - "@mastra/deployer": "^1.25.0", + "@mastra/deployer": "^1.26.0-alpha.3", "@mastra/loggers": "^1.1.1", "archiver": "^7.0.1", "commander": "^14.0.3", @@ -35853,6 +36383,239 @@ "node": ">=22.13.0" } }, + "node_modules/mastracode/node_modules/@libsql/client": { + "version": "0.15.15", + "resolved": "https://registry.npmjs.org/@libsql/client/-/client-0.15.15.tgz", + "integrity": "sha512-twC0hQxPNHPKfeOv3sNT6u2pturQjLcI+CnpTM0SjRpocEGgfiZ7DWKXLNnsothjyJmDqEsBQJ5ztq9Wlu470w==", + "license": "MIT", + "dependencies": { + "@libsql/core": "^0.15.14", + "@libsql/hrana-client": "^0.7.0", + "js-base64": "^3.7.5", + "libsql": "^0.5.22", + "promise-limit": "^2.7.0" + } + }, + "node_modules/mastracode/node_modules/@libsql/core": { + "version": "0.15.15", + "resolved": "https://registry.npmjs.org/@libsql/core/-/core-0.15.15.tgz", + "integrity": "sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==", + "license": "MIT", + "dependencies": { + "js-base64": "^3.7.5" + } + }, + "node_modules/mastracode/node_modules/@libsql/darwin-arm64": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/darwin-arm64/-/darwin-arm64-0.5.29.tgz", + "integrity": "sha512-K+2RIB1OGFPYQbfay48GakLhqf3ArcbHqPFu7EZiaUcRgFcdw8RoltsMyvbj5ix2fY0HV3Q3Ioa/ByvQdaSM0A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/mastracode/node_modules/@libsql/darwin-x64": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/darwin-x64/-/darwin-x64-0.5.29.tgz", + "integrity": "sha512-OtT+KFHsKFy1R5FVadr8FJ2Bb1mghtXTyJkxv0trocq7NuHntSki1eUbxpO5ezJesDvBlqFjnWaYYY516QNLhQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/mastracode/node_modules/@libsql/hrana-client": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@libsql/hrana-client/-/hrana-client-0.7.0.tgz", + "integrity": "sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==", + "license": "MIT", + "dependencies": { + "@libsql/isomorphic-fetch": "^0.3.1", + "@libsql/isomorphic-ws": "^0.1.5", + "js-base64": "^3.7.5", + "node-fetch": "^3.3.2" + } + }, + "node_modules/mastracode/node_modules/@libsql/isomorphic-fetch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@libsql/isomorphic-fetch/-/isomorphic-fetch-0.3.1.tgz", + "integrity": "sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/mastracode/node_modules/@libsql/linux-arm64-gnu": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/linux-arm64-gnu/-/linux-arm64-gnu-0.5.29.tgz", + "integrity": "sha512-gURBqaiXIGGwFNEaUj8Ldk7Hps4STtG+31aEidCk5evMMdtsdfL3HPCpvys+ZF/tkOs2MWlRWoSq7SOuCE9k3w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/mastracode/node_modules/@libsql/linux-arm64-musl": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/linux-arm64-musl/-/linux-arm64-musl-0.5.29.tgz", + "integrity": "sha512-fwgYZ0H8mUkyVqXZHF3mT/92iIh1N94Owi/f66cPVNsk9BdGKq5gVpoKO+7UxaNzuEH1roJp2QEwsCZMvBLpqg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/mastracode/node_modules/@libsql/linux-x64-gnu": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/linux-x64-gnu/-/linux-x64-gnu-0.5.29.tgz", + "integrity": "sha512-y14V0vY0nmMC6G0pHeJcEarcnGU2H6cm21ZceRkacWHvQAEhAG0latQkCtoS2njFOXiYIg+JYPfAoWKbi82rkg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/mastracode/node_modules/@libsql/linux-x64-musl": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/linux-x64-musl/-/linux-x64-musl-0.5.29.tgz", + "integrity": "sha512-gquqwA/39tH4pFl+J9n3SOMSymjX+6kZ3kWgY3b94nXFTwac9bnFNMffIomgvlFaC4ArVqMnOZD3nuJ3H3VO1w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/mastracode/node_modules/@libsql/win32-x64-msvc": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@libsql/win32-x64-msvc/-/win32-x64-msvc-0.5.29.tgz", + "integrity": "sha512-4/0CvEdhi6+KjMxMaVbFM2n2Z44escBRoEYpR+gZg64DdetzGnYm8mcNLcoySaDJZNaBd6wz5DNdgRmcI4hXcg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/mastracode/node_modules/@mastra/libsql": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@mastra/libsql/-/libsql-1.8.1.tgz", + "integrity": "sha512-BQPXck6eckeCOWK83G7a455dsgqtKYTmUfaSv8py86fw4/XfQlemGfxv5KyzqruRW8Z+l037FibHCMO8PZuKpw==", + "license": "Apache-2.0", + "dependencies": { + "@libsql/client": "^0.15.15" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.0.0-0 <2.0.0-0" + } + }, + "node_modules/mastracode/node_modules/@mastra/mcp": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mastra/mcp/-/mcp-1.5.0.tgz", + "integrity": "sha512-I+YtghjjkKdlTtqVc1TTChnRTZ0HiMKq6o5UCjZGuGdK2oHlkTYLYd2rRZI9tIcEIXjG2bQz9OzlQhAaDd+TJw==", + "license": "Apache-2.0", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^14.2.1", + "@modelcontextprotocol/sdk": "^1.27.1", + "exit-hook": "^5.1.0", + "fast-deep-equal": "^3.1.3", + "uuid": "^13.0.0" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.0.0-0 <2.0.0-0", + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/mastracode/node_modules/@mastra/memory": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@mastra/memory/-/memory-1.15.1.tgz", + "integrity": "sha512-OdUeEMAVpYrZx6FquziF3I48P1SlVEQagM6e7b770KIl6E5RhRJLWgbBYZT/HJFqvzyb5b7Iahd2MadTzHxkwQ==", + "license": "Apache-2.0", + "dependencies": { + "@mastra/schema-compat": "1.2.8", + "async-mutex": "^0.5.0", + "image-size": "^2.0.2", + "json-schema": "^0.4.0", + "lru-cache": "^11.2.7", + "probe-image-size": "^7.2.3", + "tokenx": "^1.3.0", + "xxhash-wasm": "^1.1.0" + }, + "engines": { + "node": ">=22.13.0" + }, + "peerDependencies": { + "@mastra/core": ">=1.4.1-0 <2.0.0-0", + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/mastracode/node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/mastracode/node_modules/libsql": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/libsql/-/libsql-0.5.29.tgz", + "integrity": "sha512-8lMP8iMgiBzzoNbAPQ59qdVcj6UaE/Vnm+fiwX4doX4Narook0a4GPKWBEv+CR8a1OwbfkgL18uBfBjWdF0Fzg==", + "cpu": [ + "x64", + "arm64", + "wasm32", + "arm" + ], + "license": "MIT", + "os": [ + "darwin", + "linux", + "win32" + ], + "dependencies": { + "@neon-rs/load": "^0.0.4", + "detect-libc": "2.0.2" + }, + "optionalDependencies": { + "@libsql/darwin-arm64": "0.5.29", + "@libsql/darwin-x64": "0.5.29", + "@libsql/linux-arm-gnueabihf": "0.5.29", + "@libsql/linux-arm-musleabihf": "0.5.29", + "@libsql/linux-arm64-gnu": "0.5.29", + "@libsql/linux-arm64-musl": "0.5.29", + "@libsql/linux-x64-gnu": "0.5.29", + "@libsql/linux-x64-musl": "0.5.29", + "@libsql/win32-x64-msvc": "0.5.29" + } + }, "node_modules/matcher": { "version": "3.0.0", "license": "MIT", @@ -36341,6 +37104,8 @@ }, "node_modules/methods": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -37345,6 +38110,8 @@ }, "node_modules/ml-array-max": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-2.0.0.tgz", + "integrity": "sha512-QQZ4kENwpWmyNb98UXRDFXrmtIXuXtt1+bSbda/2KA85+F+rrJP8hZk6QOkCQXM2Th9mUDYdq/PNByPdT9ID4A==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0" @@ -37352,6 +38119,8 @@ }, "node_modules/ml-array-min": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-2.0.0.tgz", + "integrity": "sha512-GRj6Ky6sW9vGL6yIjgsHmXZ9YgrdmcQ8nCxPqEGeKc6dkfYg1XDYxGFxADUjNuZyoCd5PUscWAS4N+cFaX6hFg==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0" @@ -37359,6 +38128,8 @@ }, "node_modules/ml-array-rescale": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-2.0.0.tgz", + "integrity": "sha512-2GGtKfSno94/kIloWGvpp/U5Q5vLvLrza+SAaGsLeo6Xj4mEbA6Gqx+oTfZFkxnd1grT2X007HfJNs3T5BsiVg==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", @@ -37368,6 +38139,8 @@ }, "node_modules/ml-logistic-regression": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-logistic-regression/-/ml-logistic-regression-2.0.0.tgz", + "integrity": "sha512-xHhB91ut8GRRbJyB1ZQfKsl1MHmE1PqMeRjxhks96M5BGvCbC9eEojf4KgRMKM2LxFblhVUcVzweAoPB48Nt0A==", "license": "MIT", "dependencies": { "ml-matrix": "^6.5.0" @@ -37375,6 +38148,8 @@ }, "node_modules/ml-matrix": { "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.2.tgz", + "integrity": "sha512-GC+BnW+pBh8Auap8goAxY0senAmF0IEoc3HNVSfnfbvGw0buuDIYb9kAKMS1l+GiwJ1rfK2bzJ8IHhwjzATSFA==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", @@ -37744,6 +38519,8 @@ }, "node_modules/mute-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "license": "ISC", "engines": { "node": "^18.17.0 || >=20.5.0" @@ -38667,6 +39444,8 @@ }, "node_modules/openapi-types": { "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", "license": "MIT", "peer": true }, @@ -38714,6 +39493,8 @@ }, "node_modules/ow": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-2.0.0.tgz", + "integrity": "sha512-ESUigmGrdhUZ2nQSFNkeKSl6ZRPupXzprMs3yF9DYlNVpJ8XAjM/fI9RUZxA7PI1K9HQDCCvBo1jr/GEIo9joQ==", "license": "MIT", "dependencies": { "@sindresorhus/is": "^6.3.0", @@ -38732,6 +39513,8 @@ }, "node_modules/ow/node_modules/dot-prop": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz", + "integrity": "sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==", "license": "MIT", "dependencies": { "type-fest": "^3.8.0" @@ -38743,8 +39526,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ow/node_modules/dot-prop/node_modules/type-fest": { + "node_modules/ow/node_modules/type-fest": { "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=14.16" @@ -38778,6 +39563,8 @@ }, "node_modules/p-event": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", "license": "MIT", "dependencies": { "p-timeout": "^6.1.2" @@ -38791,6 +39578,8 @@ }, "node_modules/p-event/node_modules/p-timeout": { "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", "license": "MIT", "engines": { "node": ">=14.16" @@ -38863,6 +39652,8 @@ }, "node_modules/p-retry": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-7.1.1.tgz", + "integrity": "sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==", "license": "MIT", "dependencies": { "is-network-error": "^1.1.0" @@ -39205,6 +39996,8 @@ }, "node_modules/pause-stream": { "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "license": [ "MIT", "Apache2" @@ -39925,6 +40718,8 @@ }, "node_modules/proper-lockfile": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -39934,6 +40729,8 @@ }, "node_modules/proper-lockfile/node_modules/retry": { "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "license": "MIT", "engines": { "node": ">= 4" @@ -39941,6 +40738,8 @@ }, "node_modules/proper-lockfile/node_modules/signal-exit": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, "node_modules/property-information": { @@ -40024,6 +40823,8 @@ }, "node_modules/proxy-chain": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/proxy-chain/-/proxy-chain-2.7.1.tgz", + "integrity": "sha512-LtXu0miohJYrHWJxv8wA6EoGreRcX1hxKb7qlE1pMFH+BXE7bqMvpyhzR/JvR6M5SzYKzyHFpvfmYJrZeMtwAg==", "license": "Apache-2.0", "dependencies": { "socks": "^2.8.3", @@ -40210,6 +41011,8 @@ }, "node_modules/quick-lru": { "version": "7.3.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz", + "integrity": "sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==", "license": "MIT", "engines": { "node": ">=18" @@ -40224,6 +41027,8 @@ }, "node_modules/radash": { "version": "12.1.1", + "resolved": "https://registry.npmjs.org/radash/-/radash-12.1.1.tgz", + "integrity": "sha512-h36JMxKRqrAxVD8201FrCpyeNuUY9Y5zZwujr20fFO77tpUtGa6EZzfKw/3WaiBX95fq7+MpsuMLNdSnORAwSA==", "license": "MIT", "engines": { "node": ">=14.18.0" @@ -41684,6 +42489,8 @@ }, "node_modules/reserved-identifiers": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reserved-identifiers/-/reserved-identifiers-1.2.0.tgz", + "integrity": "sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==", "license": "MIT", "engines": { "node": ">=18" @@ -42063,6 +42870,8 @@ }, "node_modules/robots-parser": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", + "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -43192,6 +44001,8 @@ }, "node_modules/split": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", "license": "MIT", "dependencies": { "through": "2" @@ -43417,6 +44228,8 @@ }, "node_modules/stream-combiner": { "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", "license": "MIT", "dependencies": { "duplexer": "~0.1.1" @@ -43556,6 +44369,8 @@ }, "node_modules/string-comparison": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string-comparison/-/string-comparison-1.3.0.tgz", + "integrity": "sha512-46aD+slEwybxAMPRII83ATbgMgTiz5P8mVd7Z6VJsCzSHFjdt1hkAVLeFxPIyEb11tc6ihpJTlIqoO0MCF6NPw==", "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" @@ -43841,6 +44656,8 @@ }, "node_modules/strtok3": { "version": "10.3.5", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", + "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==", "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0" @@ -43957,6 +44774,8 @@ }, "node_modules/super-regex": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.1.0.tgz", + "integrity": "sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==", "license": "MIT", "dependencies": { "function-timeout": "^1.0.1", @@ -44436,6 +45255,8 @@ }, "node_modules/time-span": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", "license": "MIT", "dependencies": { "convert-hrtime": "^5.0.0" @@ -44470,6 +45291,8 @@ }, "node_modules/tiny-typed-emitter": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", "license": "MIT" }, "node_modules/tinybench": { @@ -44578,6 +45401,8 @@ }, "node_modules/token-types": { "version": "6.1.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz", + "integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==", "license": "MIT", "dependencies": { "@borewit/text-codec": "^0.2.1", @@ -45332,10 +46157,14 @@ }, "node_modules/uhyphen": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz", + "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==", "license": "ISC" }, "node_modules/uint8array-extras": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", "license": "MIT", "engines": { "node": ">=18" @@ -45840,6 +46669,8 @@ }, "node_modules/utils-merge": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "license": "MIT", "engines": { "node": ">= 0.4.0" @@ -45866,6 +46697,8 @@ }, "node_modules/vali-date": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -46274,6 +47107,8 @@ }, "node_modules/web-worker": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", "license": "Apache-2.0" }, "node_modules/webdriver": { @@ -47055,6 +47890,8 @@ }, "node_modules/yoctocolors-cjs": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "license": "MIT", "engines": { "node": ">=18" diff --git a/package.json b/package.json index 22068ea..a42d98a 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "prettier:check": "dotenvx run -- prettier --check .", "prettier:write": "dotenvx run -- prettier --write .", "format": "npm run prettier:write", - "convex": "npx convex dev --env-file .env.local", "code": "npx mastracode", "storybook": "storybook dev -p 6006", @@ -67,7 +66,9 @@ "@chat-adapter/github": "^4.26.0", "@chat-adapter/slack": "^4.26.0", "@chat-adapter/state-memory": "^4.26.0", - "@dotenvx/dotenvx": "^1.61.0", + "@composio/core": "^0.6.10", + "@composio/mastra": "^0.6.10", + "@dotenvx/dotenvx": "^1.61.1", "@emotion/react": "^11.14.0", "@github/copilot-sdk": "^0.2.2", "@gsap/react": "^2.1.2", @@ -77,24 +78,24 @@ "@mastra/ai-sdk": "^1.4.0", "@mastra/auth-better-auth": "^1.0.2", "@mastra/auth-supabase": "^1.0.0", - "@mastra/client-js": "^1.13.4", - "@mastra/cloudflare": "^1.3.1", - "@mastra/cloudflare-d1": "^1.0.4", - "@mastra/convex": "^1.0.7", - "@mastra/core": "^1.25.0", + "@mastra/client-js": "^1.13.5-alpha.5", + "@mastra/cloudflare": "^1.3.2-alpha.0", + "@mastra/cloudflare-d1": "^1.0.5-alpha.0", + "@mastra/convex": "^1.0.8-alpha.0", + "@mastra/core": "^1.26.0-alpha.5", "@mastra/daytona": "^0.2.1", - "@mastra/deployer": "^1.25.0", - "@mastra/editor": "^0.7.16", + "@mastra/deployer": "^1.26.0-alpha.3", + "@mastra/editor": "^0.7.17-alpha.1", "@mastra/evals": "^1.2.1", "@mastra/fastembed": "^1.0.1", "@mastra/gcs": "^0.2.0", "@mastra/lance": "^1.0.4", - "@mastra/libsql": "^1.8.1", + "@mastra/libsql": "^1.8.2-alpha.0", "@mastra/loggers": "^1.1.1", - "@mastra/mcp": "^1.5.0", - "@mastra/memory": "^1.15.1", - "@mastra/mongodb": "^1.7.1", - "@mastra/observability": "^1.9.1", + "@mastra/mcp": "^1.5.1-alpha.1", + "@mastra/memory": "^1.16.0-alpha.2", + "@mastra/mongodb": "^1.7.2-alpha.0", + "@mastra/observability": "^1.9.2-alpha.0", "@mastra/otel-bridge": "^1.0.16", "@mastra/pg": "^1.9.1", "@mastra/posthog": "^1.0.17", @@ -132,7 +133,7 @@ "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-tooltip": "^1.2.8", "@radix-ui/react-use-controllable-state": "^1.2.2", - "@rive-app/react-webgl2": "^4.28.0", + "@rive-app/react-webgl2": "^4.28.1", "@streamdown/cjk": "^1.0.3", "@streamdown/code": "^1.1.1", "@streamdown/math": "^1.0.2", @@ -142,7 +143,7 @@ "@tanstack/react-query-devtools": "^5.99.0", "@tanstack/react-store": "^0.10.0", "@tanstack/react-table": "^8.21.3", - "@tanstack/react-virtual": "^3.13.23", + "@tanstack/react-virtual": "^3.13.24", "@tslab/typescript-for-tslab": "^5.1.3", "@vercel/otel": "^2.1.2", "@xyflow/react": "^12.10.2", @@ -169,9 +170,9 @@ "clsx": "^2.1.1", "cmdk": "^1.1.1", "concurrently": "^9.2.1", - "convert-csv-to-json": "^4.31.0", + "convert-csv-to-json": "^4.36.0", "convex": "^1.35.1", - "crawlee": "^4.0.0-beta.43", + "crawlee": "^4.0.0-beta.47", "critters": "^0.0.25", "csv-parse": "^6.2.1", "csv-stringify": "^6.7.0", @@ -200,7 +201,7 @@ "leaflet.markercluster": "^1.5.3", "lenis": "^1.3.23", "lucide-react": "^1.8.0", - "marked": "^18.0.0", + "marked": "^18.0.1", "mastracode": "^0.14.0", "mathjs": "^15.2.0", "media-chrome": "^4.19.0", @@ -297,14 +298,14 @@ "@typescript-eslint/parser": "^8.58.2", "@vitest/coverage-v8": "^4.1.4", "cross-env": "^10.1.0", - "eslint": "^10.2.0", + "eslint": "^10.2.1", "eslint-config-next": "^16.2.4", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", "eslint-plugin-storybook": "^10.3.5", "ink-testing-library": "^4.0.0", - "mastra": "^1.6.0", + "mastra": "^1.6.1-alpha.3", "prettier": "^3.8.3", "storybook": "^10.3.5", "tailwindcss": "^4.2.2", @@ -323,7 +324,7 @@ "body-parser": "^2.2.2", "jws": "^4.0.1", "qs": "^6.15.1", - "eslint": "^10.2.0", + "eslint": "^10.2.1", "diff": "^9.0.0", "undici": "^7.25.0", "fast-xml-parser": "^5.5.12", @@ -342,6 +343,7 @@ "typescript": "^6.0.3", "typescript-eslint": "^8.58.2", "@typescript-eslint/parser": "^8.58.2", - "@typescript-eslint/eslint-plugin": "^8.58.2" + "@typescript-eslint/eslint-plugin": "^8.58.2", + "@mastra/core": "^1.26.0-alpha.5" } } diff --git a/src/mastra/agents/compsio.ts b/src/mastra/agents/compsio.ts new file mode 100644 index 0000000..055904b --- /dev/null +++ b/src/mastra/agents/compsio.ts @@ -0,0 +1,43 @@ +import { Composio } from "@composio/core"; +import { MastraProvider } from "@composio/mastra"; +import { Agent } from "@mastra/core/agent"; +import { LibsqlMemory } from "../config/libsql"; +import { InternalSpans } from "@mastra/core/observability"; +import { agentBrowser } from "../browsers"; +import { mainWorkspace } from "../workspaces"; + +const composio = new Composio({ + provider: new MastraProvider(), + apiKey: process.env.COMPOSIO_API_KEY, +}); +// Create a session for your user +const userId = process.env.COMPOSIO_USER_ID || 'agenstack-admin'; + +const session = await composio.create(userId, { + manageConnections: true, +}); + +const comptools = await session.tools(); + +export const composioAgent = new Agent({ + id: "composio-agent", + name: "Composio Agent", + instructions: "You are a helpful assistant that can use tools to perform tasks for the user. Use the tools provided to you to complete the user's requests. Always use the tools when appropriate. If you don't know how to do something, use the tools to find out. Be concise and efficient in your responses.", + model: 'opencode/minimax-m2.5-free', + memory: LibsqlMemory, + tools: comptools, + browser: agentBrowser, + workspace: mainWorkspace, + maxRetries: 5, + options: { + tracingPolicy: { + internal: InternalSpans.AGENT, + }, + }, +}); + +//const { text } = await composioAgent.generate([ +// { role: "user", content: "Send an email to john@example.com with the subject 'Hello' and body 'Hello from Composio!'" }, +//]); + +//console.log(text); \ No newline at end of file diff --git a/src/mastra/agents/researchAgent.ts b/src/mastra/agents/researchAgent.ts index 2862d92..44e6b5f 100644 --- a/src/mastra/agents/researchAgent.ts +++ b/src/mastra/agents/researchAgent.ts @@ -391,8 +391,8 @@ Role: ${role} | Lang: ${language} | Phase: ${researchPhase} }, //voice: new GoogleVoice(), // Add OpenAI voice provider with default configuration defaultOptions: { - autoResumeSuspendedTools: true, - //includeRawChunks: true, + //autoResumeSuspendedTools: true, + includeRawChunks: true, modelSettings: { temperature: 0.2, //maxOutputTokens: 64000, @@ -409,11 +409,11 @@ Role: ${role} | Lang: ${language} | Phase: ${researchPhase} thinkingLevel: 'medium', }, //cachedContent: "Use cached content when available to reduce latency and costs, but ensure freshness for time-sensitive queries. Prefer cached data for static information and use real-time fetches for news, trends, and financial data.", - //streamFunctionCallArguments: true, + streamFunctionCallArguments: true, mediaResolution: "MEDIA_RESOLUTION_MEDIUM", threshold: 'OFF', // Set to 'OFF' to disable thresholding and allow all tool calls //labels: "research-agent", - //serviceTier: 'flex', + serviceTier: 'flex', } satisfies GoogleLanguageModelOptions, }, }, diff --git a/src/mastra/config/logger.ts b/src/mastra/config/logger.ts index cfbbff8..dc3cb72 100644 --- a/src/mastra/config/logger.ts +++ b/src/mastra/config/logger.ts @@ -22,7 +22,7 @@ const fileTransport: LoggerTransport = new FileTransport({ // Logger intentionally contains no tracing logic. Observability exporters/bridges handle traces separately. export const log = new PinoLogger({ name: 'MastraLogger', - level: 'info', + level: 'debug', prettyPrint: true, // Set to false in production to disable pretty printing and output raw JSON transports: { file: fileTransport, diff --git a/src/mastra/index.ts b/src/mastra/index.ts index 19e7b05..e2464ac 100644 --- a/src/mastra/index.ts +++ b/src/mastra/index.ts @@ -184,13 +184,13 @@ import { import { mainHarness } from './harness' import { supervisorAgent } from './agents/supervisor-agent' import { mastraAuth } from './auth' -import { agentFsWorkspace, daytonaSandbox, mainWorkspace } from './workspaces' +import { agentFsWorkspace } from './workspaces' import { MastraEditor } from '@mastra/editor' //import { MastraCompositeStore } from '@mastra/core/storage' import { ArcadeToolProvider } from '@mastra/editor/arcade' import { ComposioToolProvider } from '@mastra/editor/composio' -import { GoogleVoice } from '@mastra/voice-google' -import main from '@/lib/auth-dev' +//import { GoogleVoice } from '@mastra/voice-google' +//import { composioAgent } from './agents/compsio' //import { PosthogExporter } from '@mastra/posthog' export const mastra = new Mastra({ @@ -252,6 +252,10 @@ export const mastra = new Mastra({ scriptWriterAgent, stockAnalysisAgent, weatherAgent, + // composio + //composioAgent, + + // CSV/Data Pipeline Agents dataExportAgent, dataIngestionAgent, @@ -441,7 +445,7 @@ export const mastra = new Mastra({ origin: process.env.NEXT_PUBLIC_BETTER_AUTH_URL ?? 'http://localhost:3000', // your frontend origin credentials: true, allowMethods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], - // allowHeaders: ['*', 'Authorization', 'Content-Type', 'x-user-id', 'x-role', 'accept-language', 'x-research-phase', 'api-key'], + allowHeaders: ['*', 'Authorization', 'Content-Type', 'x-user-id', 'x-role', 'accept-language', 'x-research-phase', 'api-key'], // exposeHeaders: ['Authorization', 'Content-Type', 'x-user-id', 'x-role', 'accept-language', 'x-research-phase', 'api-key'], }, build: { diff --git a/src/mastra/process-manager.ts b/src/mastra/process-manager.ts new file mode 100644 index 0000000..d5502c2 --- /dev/null +++ b/src/mastra/process-manager.ts @@ -0,0 +1,49 @@ +import { MastraSandbox, SandboxProcessManager } from '@mastra/core/workspace' +import type { + ProcessHandle, + ProcessInfo, + ProviderStatus, + SpawnProcessOptions, +} from '@mastra/core/workspace' + +let sandboxInstanceCounter = 0 + +class MyProcessManager extends SandboxProcessManager { + async spawn(_command: string, _options: SpawnProcessOptions = {}): Promise { + throw new Error('spawn method not implemented') + } + + async list(): Promise { + return Array.from(this._tracked.values()).map((handle) => ({ + pid: handle.pid, + running: handle.exitCode === undefined, + exitCode: handle.exitCode, + })) + } +} + +class MySandbox extends MastraSandbox { + id = `mysandbox-${++sandboxInstanceCounter}` + name = 'MySandbox' + provider = 'local' + status: ProviderStatus = 'stopped' as ProviderStatus + + constructor() { + super({ + name: 'MySandbox', + processes: new MyProcessManager(), + }) + } + + setStatus(status: ProviderStatus) { + this.status = status + } + + markRunning() { + this.status = 'running' as ProviderStatus + } + + markStopped() { + this.status = 'stopped' as ProviderStatus + } +} diff --git a/src/mastra/public/workspace/weavingapi.md b/src/mastra/public/workspace/weavingapi.md new file mode 100644 index 0000000..f0f3e5b --- /dev/null +++ b/src/mastra/public/workspace/weavingapi.md @@ -0,0 +1,566 @@ +# Weaving API + +## Overview + +This API tracks the player's swing state and predicts whether a spell cast +will clip the next main-hand or off-hand swing. + +## Reference + +- Designed for weaving Lightning Bolt, Chain Lightning, Healing Wave, + Lesser Healing Wave, and Chain Heal on Vanilla/TBC-era Shamans. +- Uses Vanilla/TBC spell IDs only. WotLK-only spells like Lava Burst and Hex + are intentionally excluded from this TBC Classic path. +- Spell ranks are resolved once and cached, so the addon avoids repeated + `GetSpellInfo` lookups during combat. +- Timing uses `GetTimePreciseSec()` as the high-precision clock when available, with `GetTime()` as fallback for older clients. Latency is refreshed on every prediction pass from `GetNetStats()`, preferring world latency and falling back to home/realm latency so the swing math does not sit on a half-second cache window. +- Spell haste is refreshed from `UnitSpellHaste("player")` on every prediction pass, so rating or aura changes sync automatically. +- This complements `SwingTimerAPI` via `aura_env.setSwingState(...)` and does + not modify `swingtimer.md`. +- If Blizzard changes the rank tables in a future client, update the groups + below to match the new spell IDs. + +```lua +local weavingFrame = CreateFrame("Frame") + +local WeavingAPI = {} + +local GetClock = _G.GetTimePreciseSec or GetTime + +-- Prime the precise clock so the first call does not return 0. +GetClock() + +local math_max = math.max +local math_min = math.min + +WeavingAPI.unitGUID = UnitGUID("player") +WeavingAPI.attackSpeed = { + mainhand = 0, + offhand = 0, +} + +WeavingAPI.attackExpirationTime = { + mainhand = 0, + offhand = 0, +} + +WeavingAPI.speed = 0 +WeavingAPI.cachedLatency = 0 +WeavingAPI.cachedRealmLatency = 0 +WeavingAPI.cachedWorldLatency = 0 +WeavingAPI.isCasting = false +WeavingAPI.spellCastTime = 0 +WeavingAPI.spellExpirationTime = nil +WeavingAPI.currentSpellId = nil +WeavingAPI.spellCatalogDirty = true +WeavingAPI.trackedSpellCatalog = {} +WeavingAPI.trackedSpellLookup = {} + +local cachedRealmLatency = 0 +local cachedWorldLatency = 0 +local cachedLatency = 0 + +WeavingAPI.spellIds = { + [403] = true, + [529] = true, + [548] = true, + [915] = true, + [943] = true, + [6041] = true, + [10391] = true, + [10392] = true, + [15207] = true, + [15208] = true, + [25448] = true, + [25449] = true, + [421] = true, + [930] = true, + [2860] = true, + [10605] = true, + [25439] = true, + [25442] = true, + [331] = true, + [332] = true, + [547] = true, + [913] = true, + [939] = true, + [959] = true, + [8005] = true, + [10395] = true, + [10396] = true, + [25357] = true, + [25391] = true, + [25396] = true, + [8004] = true, + [8008] = true, + [8010] = true, + [10466] = true, + [10467] = true, + [10468] = true, + [25420] = true, + [1064] = true, + [10622] = true, + [10623] = true, + [25422] = true, + [25423] = true, +} + +local trackedSpellGroups = { + { + 25449, + 25448, + 15208, + 15207, + 10392, + 10391, + 6041, + 943, + 915, + 548, + 529, + 403, + }, + { + 25442, + 25439, + 10605, + 2860, + 930, + 421, + }, + { + 25396, + 25391, + 25357, + 10396, + 10395, + 8005, + 959, + 939, + 913, + 547, + 332, + 331, + }, + { + 25420, + 10468, + 10467, + 10466, + 8010, + 8008, + 8004, + }, + { + 25423, + 25422, + 10623, + 10622, + 1064, + }, +} + +local function scanEvent(event, ...) + if WeakAuras and WeakAuras.ScanEvents then + WeakAuras.ScanEvents(event, ...) + end +end + +local function UpdateLatency() + local _, _, latencyHome, latencyWorld = GetNetStats() + + cachedWorldLatency = math_max((latencyWorld or 0) / 1000, 0) + cachedRealmLatency = math_max((latencyHome or 0) / 1000, 0) + + cachedLatency = cachedWorldLatency + if cachedLatency <= 0 then + cachedLatency = cachedRealmLatency + end + + WeavingAPI.cachedLatency = cachedLatency + WeavingAPI.cachedRealmLatency = cachedRealmLatency + WeavingAPI.cachedWorldLatency = cachedWorldLatency +end + +local function GetCurrentLatency() + return cachedLatency +end + +local function GetPreciseTime() + return GetClock() + GetCurrentLatency() +end + +local function getSpellHastePercent() + if type(UnitSpellHaste) == "function" then + return math_max(UnitSpellHaste("player") or 0, 0) + end + + return 0 +end + +local function normalizeSpeed(speed) + local numericSpeed = tonumber(speed) + + if not numericSpeed or numericSpeed < 0 then + return 0 + end + + return numericSpeed +end + +local function updateFastestSwingSpeed() + local mainSpeed = WeavingAPI.attackSpeed.mainhand or 0 + local offSpeed = WeavingAPI.attackSpeed.offhand or 0 + + if mainSpeed > 0 and offSpeed > 0 then + WeavingAPI.speed = math_min(mainSpeed, offSpeed) + elseif mainSpeed > 0 then + WeavingAPI.speed = mainSpeed + elseif offSpeed > 0 then + WeavingAPI.speed = offSpeed + else + WeavingAPI.speed = 0 + end +end + +local function resolveTrackedSpell(spellGroup) + for index = 1, #spellGroup do + local spellId = spellGroup[index] + local spellName, _, _, castTime = GetSpellInfo(spellId) + + if spellName and castTime and castTime > 0 then + return { + spellId = spellId, + spellName = spellName, + castTime = castTime / 1000, + } + end + end + + return nil +end + +function aura_env.setSwingState(speed, expirationTime, hand) + if hand ~= "mainhand" and hand ~= "offhand" then + return + end + + if speed ~= nil then + WeavingAPI.attackSpeed[hand] = normalizeSpeed(speed) + end + + if expirationTime ~= nil then + WeavingAPI.attackExpirationTime[hand] = tonumber(expirationTime) or 0 + end + + updateFastestSwingSpeed() +end + +function WeavingAPI:refreshSwingState() + UpdateLatency() + + local mainSpeed, offSpeed = UnitAttackSpeed("player") + + self.unitGUID = UnitGUID("player") + + if mainSpeed ~= nil then + self.attackSpeed.mainhand = normalizeSpeed(mainSpeed) + end + + if offSpeed ~= nil then + self.attackSpeed.offhand = normalizeSpeed(offSpeed) + else + self.attackSpeed.offhand = 0 + end + + if self.attackSpeed.mainhand > 0 and self.attackExpirationTime.mainhand <= 0 then + self.attackExpirationTime.mainhand = GetPreciseTime() + self.attackSpeed.mainhand + end + + if self.attackSpeed.offhand > 0 and self.attackExpirationTime.offhand <= 0 then + self.attackExpirationTime.offhand = GetPreciseTime() + self.attackSpeed.offhand + end + + updateFastestSwingSpeed() +end + +function WeavingAPI:refreshSpellState() + self.unitGUID = UnitGUID("player") + self.spellHaste = getSpellHastePercent() + self.cachedLatency = GetCurrentLatency() +end + +function WeavingAPI:rebuildSpellCatalog() + self.trackedSpellCatalog = {} + self.trackedSpellLookup = {} + + for index = 1, #trackedSpellGroups do + local spellInfo = resolveTrackedSpell(trackedSpellGroups[index]) + + if spellInfo then + self.trackedSpellCatalog[#self.trackedSpellCatalog + 1] = spellInfo + self.trackedSpellLookup[spellInfo.spellId] = spellInfo + end + end + + self.spellCatalogDirty = false +end + +function WeavingAPI:ensureSpellCatalog() + if self.spellCatalogDirty then + self:rebuildSpellCatalog() + end +end + +function WeavingAPI:clearActiveCast() + self.currentSpellId = nil + self.spellCastTime = 0 + self.spellExpirationTime = nil +end + +function WeavingAPI:swingWillBeClipped(spellExpirationTime, spellId) + if not spellExpirationTime or spellExpirationTime <= 0 then + return + end + + if self.attackSpeed.mainhand > 0 + and self.attackExpirationTime.mainhand > 0 + and self.attackExpirationTime.mainhand < spellExpirationTime + then + scanEvent("SWING_TIMER_WILL_CLIPPED", "mainhand", self.spellCastTime, spellId) + end + + if self.attackSpeed.offhand > 0 + and self.attackExpirationTime.offhand > 0 + and self.attackExpirationTime.offhand < spellExpirationTime + then + scanEvent("SWING_TIMER_WILL_CLIPPED", "offhand", self.spellCastTime, spellId) + end +end + +function WeavingAPI:updateStatus(spellSource, now, spellHaste, latency) + local spellId + local spellName + local castTime + + if type(spellSource) == "table" then + spellId = spellSource.spellId + spellName = spellSource.spellName + castTime = spellSource.castTime + else + spellId = spellSource + + if not self.spellIds[spellId] then + return + end + + local cachedSpell = self.trackedSpellLookup[spellId] + if not cachedSpell then + return + end + + spellName = cachedSpell.spellName + castTime = cachedSpell.castTime + end + + if not spellName or not castTime or castTime <= 0 then + return + end + + now = now or GetClock() + spellHaste = spellHaste or self.spellHaste or getSpellHastePercent() + latency = latency or self.cachedLatency or GetCurrentLatency() + + local hasteMultiplier = 1 + (math_max(spellHaste, 0) / 100) + local effectiveCastTime = math_max(0, castTime / hasteMultiplier) + local preciseNow = now + latency + + local _, _, _, _, endTime = UnitCastingInfo("player") + local castEndsAt + + if self.isCasting and endTime then + local remainingCastTime = math_max(0, (endTime / 1000) - now) + self.spellCastTime = remainingCastTime + castEndsAt = preciseNow + remainingCastTime + else + self.spellCastTime = effectiveCastTime + castEndsAt = preciseNow + effectiveCastTime + end + + self.spellExpirationTime = castEndsAt + + scanEvent( + "WEAVING_UPDATE_STATUS", + self.speed, + self.spellCastTime, + self.spellExpirationTime, + spellId, + spellName, + self.isCasting + ) + + if self.isCasting then + self:swingWillBeClipped(self.spellExpirationTime, spellId) + end +end + +function WeavingAPI:mainEventsHandler() + self:refreshSpellState() + self:ensureSpellCatalog() + + if self.isCasting then + if self.currentSpellId then + local currentSpell = self.trackedSpellLookup[self.currentSpellId] + if currentSpell then + local now = GetClock() + self:updateStatus(currentSpell, now, self.spellHaste, self.cachedLatency) + else + self:clearActiveCast() + end + end + + return + end + + local now = GetClock() + + for index = 1, #self.trackedSpellCatalog do + self:updateStatus(self.trackedSpellCatalog[index], now, self.spellHaste, self.cachedLatency) + end +end + +function WeavingAPI:UNIT_AURA(_event, _unit) + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:UNIT_ATTACK_SPEED(_event, _unit) + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:COMBAT_RATING_UPDATE(_event) + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:PLAYER_EQUIPMENT_CHANGED(_event, _slot) + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:SPELLS_CHANGED(_event) + UpdateLatency() + self.spellCatalogDirty = true + self:mainEventsHandler() +end + +function WeavingAPI:PLAYER_ENTERING_WORLD(_event) + self.spellCatalogDirty = true + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:PLAYER_ENTER_COMBAT(_event) + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:PLAYER_LEAVE_COMBAT(_event) + self:refreshSwingState() + self:mainEventsHandler() +end + +function WeavingAPI:spellsEventsHandler(event, _unit, _guid, spellId) + local isCasting = (event == "UNIT_SPELLCAST_START" or event == "UNIT_SPELLCAST_DELAYED") + self.isCasting = isCasting + + UpdateLatency() + + if spellId == nil or not self.spellIds[spellId] then + self:clearActiveCast() + + if isCasting then + local spellName = spellId and select(1, GetSpellInfo(spellId)) or "" + scanEvent("WEAVING_UPDATE_STATUS", self.speed, 0, nil, spellId or 0, spellName, true) + else + self:mainEventsHandler() + end + + return + end + + local cachedSpell = self.trackedSpellLookup[spellId] + if not cachedSpell then + if not isCasting then + self:clearActiveCast() + self:mainEventsHandler() + end + + return + end + + if isCasting then + self:refreshSpellState() + + self.currentSpellId = spellId + + local now = GetClock() + self:updateStatus(cachedSpell, now, self.spellHaste, self.cachedLatency) + return + end + + self:clearActiveCast() + self:mainEventsHandler() +end + +function WeavingAPI:UNIT_SPELLCAST_START(event, _unit, _guid, spellId) + self:spellsEventsHandler(event, _unit, _guid, spellId) +end + +function WeavingAPI:UNIT_SPELLCAST_INTERRUPTED(event, _unit, _guid, spellId) + self:spellsEventsHandler(event, _unit, _guid, spellId) +end + +function WeavingAPI:UNIT_SPELLCAST_FAILED(event, _unit, _guid, spellId) + self:spellsEventsHandler(event, _unit, _guid, spellId) +end + +function WeavingAPI:UNIT_SPELLCAST_SUCCEEDED(event, _unit, _guid, spellId) + self:spellsEventsHandler(event, _unit, _guid, spellId) +end + +function WeavingAPI:UNIT_SPELLCAST_DELAYED(event, _unit, _guid, spellId) + self:spellsEventsHandler(event, _unit, _guid, spellId) +end + +function WeavingAPI:UNIT_SPELLCAST_STOP(event, _unit, _guid, spellId) + self:spellsEventsHandler(event, _unit, _guid, spellId) +end + +WeavingAPI:refreshSwingState() +WeavingAPI:rebuildSpellCatalog() + +weavingFrame:RegisterEvent("PLAYER_ENTER_COMBAT") +weavingFrame:RegisterEvent("PLAYER_LEAVE_COMBAT") +weavingFrame:RegisterEvent("PLAYER_ENTERING_WORLD") +weavingFrame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") +weavingFrame:RegisterEvent("COMBAT_RATING_UPDATE") +weavingFrame:RegisterEvent("SPELLS_CHANGED") +weavingFrame:RegisterUnitEvent("UNIT_AURA", "player") +weavingFrame:RegisterUnitEvent("UNIT_ATTACK_SPEED", "player") +weavingFrame:RegisterUnitEvent("UNIT_SPELLCAST_START", "player") +weavingFrame:RegisterUnitEvent("UNIT_SPELLCAST_INTERRUPTED", "player") +weavingFrame:RegisterUnitEvent("UNIT_SPELLCAST_FAILED", "player") +weavingFrame:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player") +weavingFrame:RegisterUnitEvent("UNIT_SPELLCAST_DELAYED", "player") +weavingFrame:RegisterUnitEvent("UNIT_SPELLCAST_STOP", "player") + +weavingFrame:SetScript("OnEvent", function(_, event, ...) + local handler = WeavingAPI[event] + + if handler then + handler(WeavingAPI, event, ...) + end +end) +``` diff --git a/src/mastra/tools/composio-mcp.ts b/src/mastra/tools/composio-mcp.ts new file mode 100644 index 0000000..199d3c2 --- /dev/null +++ b/src/mastra/tools/composio-mcp.ts @@ -0,0 +1,44 @@ +import { MCPClient, MCPOAuthClientProvider } from '@mastra/mcp' +import { log } from '../config/logger' + +const oauthProvider = new MCPOAuthClientProvider({ + redirectUrl: 'http://localhost:3000/oauth/callback', + clientMetadata: { + redirect_uris: ['http://localhost:3000/oauth/callback'], + client_name: 'My MCP Client', + grant_types: ['authorization_code', 'refresh_token'], + response_types: ['code'], + }, + onRedirectToAuthorization: url => { + // Handle authorization redirect (open browser, redirect response, etc.) + log.info(`Please visit: ${url}`) + }, +}) +const composioKey = process.env.COMPOSIO_API_KEY + +const composioMcp = new MCPClient({ + servers: { + composio: { + url: new URL(`https://connect.composio.dev/mcp?apiKey=${composioKey}`), + }, + //googleSheets: { + // url: new URL(`https://mcp.composio.dev/googlesheets/${composioKey}`), + //}, + //gmail: { + // url: new URL(`https://mcp.composio.dev/gmail/${composioKey}`), + //}, + }, +}) + +// Access prompt methods via composioMcp.prompts +//const allPromptsByServer = await composioMcp.prompts.list() +//const { prompt, messages } = await composioMcp.prompts.get({ +// serverName: 'googleSheets', +// name: 'getSpreadsheetData', +// args: { +// spreadsheetId: '123', +// range: 'A1:B2', +// } +//}) +//log.info(prompt) +//log.info(messages) \ No newline at end of file diff --git a/src/mastra/tools/document-chunking.tool.ts b/src/mastra/tools/document-chunking.tool.ts index 97611ad..f287ae6 100644 --- a/src/mastra/tools/document-chunking.tool.ts +++ b/src/mastra/tools/document-chunking.tool.ts @@ -543,7 +543,7 @@ content indexing, or semantic search capabilities. const chunkOverlap = inputData.chunkOverlap ?? 50 const indexName = inputData.indexName ?? 'memory_messages_768' const embeddingModel = - inputData.embeddingModel ?? fastembed.base + inputData.embeddingModel ?? fastembed const embeddingBatchSize = inputData.embeddingBatchSize ?? 50 // Check if operation was already cancelled @@ -564,7 +564,7 @@ content indexing, or semantic search capabilities. logToolExecution('mdocument:chunker', { input: inputData }) const span = getOrCreateSpan({ - type: SpanType.TOOL_CALL, + type: SpanType.MODEL_CHUNK, name: 'mdocument:chunker', input: { documentLength: inputData.documentContent.length, @@ -760,6 +760,12 @@ content indexing, or semantic search capabilities. ), maxRetries: 3, abortSignal: new AbortController().signal, + experimental_telemetry: { + isEnabled: true, + recordInputs: true, + recordOutputs: true, + functionId: 'document-chunking-tool-embedMany', + }, }) allEmbeddings.push(...result.embeddings) } @@ -786,7 +792,7 @@ content indexing, or semantic search capabilities. } } - // Store chunks in PgVector if embeddings were generated + // Store chunks in libsqlVector if embeddings were generated if (embeddingGenerated && embeddings.length > 0) { await writer?.custom({ type: 'data-tool-progress', @@ -801,7 +807,7 @@ content indexing, or semantic search capabilities. // Ensure index exists with the same dimension as embeddings try { - await pgVector.createIndex({ + await libsqlvector.createIndex({ indexName, dimension: embeddings[0].length, }) @@ -845,7 +851,7 @@ content indexing, or semantic search capabilities. // Store vectors with metadata if (finalVectors.length > 0) { - await pgVector.upsert({ + await libsqlvector.upsert({ indexName, vectors: finalVectors, metadata: finalMetadata, @@ -1007,7 +1013,7 @@ content indexing, or semantic search capabilities using LibSQL/Turso. const chunkOverlap = inputData.chunkOverlap ?? 50 const indexName = inputData.indexName ?? 'memory_messages_768' const embeddingModel = - inputData.embeddingModel ?? fastembed.base + inputData.embeddingModel ?? fastembed const embeddingBatchSize = inputData.embeddingBatchSize ?? 50 // Check if operation was already cancelled @@ -1028,7 +1034,7 @@ content indexing, or semantic search capabilities using LibSQL/Turso. logToolExecution('libsql:chunker', { input: inputData }) const span = getOrCreateSpan({ - type: SpanType.TOOL_CALL, + type: SpanType.MODEL_CHUNK, name: 'libsql:chunker', input: { documentLength: inputData.documentContent.length, @@ -1218,9 +1224,15 @@ content indexing, or semantic search capabilities using LibSQL/Turso. ) const result = await embedMany({ values: batch, - model: fastembed.base, + model: fastembed, maxRetries: 3, abortSignal: new AbortController().signal, + experimental_telemetry: { + isEnabled: true, + recordInputs: true, + recordOutputs: true, + functionId: 'libsql-embedder', + }, }) allEmbeddings.push(...result.embeddings) } @@ -1342,7 +1354,7 @@ content indexing, or semantic search capabilities using LibSQL/Turso. processingTimeMs: totalProcessingTime, } - logStepEnd('libsql-chunker', output, totalProcessingTime) + logStepEnd('libsql:chunker', output, totalProcessingTime) await writer?.custom({ type: 'data-tool-progress', @@ -1464,16 +1476,6 @@ Use this tool to improve retrieval quality by re-ranking initial search results. hook: 'onInputAvailable', }) }, - onOutput: ({ output, toolCallId, toolName, abortSignal }) => { - log.info('Document reranker completed', { - toolCallId, - toolName, - documentCount: output.rerankedDocuments.length, - processingTimeMs: output.processingTimeMs, - aborted: resolveAbortSignal(abortSignal).aborted, - hook: 'onOutput', - }) - }, execute: async (inputData, context) => { const writer = context.writer const tracingContext = context.tracingContext @@ -1502,7 +1504,7 @@ Use this tool to improve retrieval quality by re-ranking initial search results. // Use the existing tracing context if available to create a child span. const span = tracingContext?.currentSpan?.createChildSpan({ - type: SpanType.TOOL_CALL, + type: SpanType.MODEL_CHUNK, name: 'document:reranker', input: { userQuery: inputData.userQuery, @@ -1530,7 +1532,15 @@ Use this tool to improve retrieval quality by re-ranking initial search results. const embeddingStartTime = Date.now() const { embedding: queryEmbedding } = await embed({ value: inputData.userQuery, - model: fastembed.base, + model: fastembed, + maxRetries: 3, + abortSignal: new AbortController().signal, + experimental_telemetry: { + isEnabled: true, + recordInputs: true, + recordOutputs: true, + functionId: 'rerank-embedder', + }, }) const embeddingTime = Date.now() - embeddingStartTime @@ -1567,7 +1577,7 @@ Use this tool to improve retrieval quality by re-ranking initial search results. }) const searchStartTime = Date.now() // NOTE: PGVector query accepts Mongo/Sift-style filter at runtime - const initialResults = await pgVector.query({ + const initialResults = await libsqlvector.query({ indexName, queryVector: queryEmbedding, topK: initialTopK, diff --git a/src/mastra/workspaces.ts b/src/mastra/workspaces.ts index 96d2d55..2ea8968 100644 --- a/src/mastra/workspaces.ts +++ b/src/mastra/workspaces.ts @@ -90,7 +90,7 @@ import { fastembed } from '@mastra/fastembed' import { S3Filesystem } from '@mastra/s3' -export const s3filesystem = new S3Filesystem({ +const s3filesystem = new S3Filesystem({ bucket: 'my-bucket', region: 'us-east-1', endpoint: 'http://localhost:9000', @@ -202,11 +202,20 @@ export const mainFilesystemOptions: LocalFilesystemOptions = { export const mainSandboxOptions: LocalSandboxOptions = { id: 'sandbox', workingDirectory: localWorkspacePath, + isolation: 'none', + instructions: 'This is the main sandbox for the workspace. You can use this sandbox to execute commands and run processes as part of your tasks. Always be careful when executing commands and make sure to follow the instructions provided by the user', + nativeSandbox: { + allowNetwork: true, // Block network access (default) + readWritePaths: ['*'], // Additional writable paths + readOnlyPaths: [], // Additional read-only paths + allowSystemBinaries: true, // Allow access to system binaries (default: false) + }, onStart: sandboxStartHook, onStop: sandboxStopHook, env: { PATH: sandboxPathEnv, NODE_ENV: sandboxNodeEnv, + API_URL: process.env.API_URL ?? 'http://localhost:4111/api', }, timeout: 120_000, } @@ -305,12 +314,23 @@ export const mainWorkspace = new Workspace({ id: 'main-Workspace', name: 'MainWorkspace', filesystem: mainFilesystem, - sandbox: mainSandbox, + sandbox:new LocalSandbox(mainSandboxOptions), vectorStore: libsqlvector, + embedder: async (text: string) => { const { embedding } = await embed({ - model: fastembed.base, + model: fastembed, value: text, + maxRetries: 3, + abortSignal: new AbortController().signal, + providerOptions: { + }, + experimental_telemetry: { + isEnabled: true, + recordInputs: true, + recordOutputs: true, + functionId: 'mainWorkspace-embedder', + }, }) return embedding }, @@ -354,20 +374,20 @@ export const mainWorkspace = new Workspace({ //skillSource: new VersionedSkillSource(versionTree, blobStore, versionCreatedAt), }) -const handle = await mainSandbox.processes.spawn('typescript-language-server --stdio', { - cwd: '/', - env: { - ...process.env, - NODE_ENV: 'development', - }, - timeout: 60_000, -}) - -const connection = createMessageConnection( - new StreamMessageReader(handle.reader), - new StreamMessageWriter(handle.writer), -) -connection.listen() +//const handle = await mainSandbox.processes.spawn('typescript-language-server --stdio', { +// cwd: '/', +// env: { +// ...process.env, +// NODE_ENV: 'development', +// }, +// timeout: 60_000, +//}) + +//const connection = createMessageConnection( +// new StreamMessageReader(handle.reader), +// new StreamMessageWriter(handle.writer), +//) +//connection.listen() export const agentFsWorkspace = new Workspace({ id: 'agentfs-workspace', @@ -393,8 +413,16 @@ export const agentFsWorkspace = new Workspace({ vectorStore: libsqlvector, embedder: async (text: string) => { const { embedding } = await embed({ - model: fastembed.base, + model: fastembed, value: text, + maxRetries: 3, + abortSignal: new AbortController().signal, + experimental_telemetry: { + isEnabled: true, + recordInputs: true, + recordOutputs: true, + functionId: 'mainWorkspace-embedder', + }, }) return embedding },