From 8156dffb745f2d18cba827eae7b63ba45c5c966e Mon Sep 17 00:00:00 2001 From: Arda Oz Date: Mon, 24 Aug 2026 13:04:17 +0300 Subject: [PATCH] fix!: rebuild eve extension against eve 0.44 so it loads on current eve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The published extension was built with eve 0.32.0, stamping hook contract v9 in dist/extension/_manifest.json — a contract eve 0.33.0 dropped, so the extension failed eve build on every eve released after 0.32.0. - bump eve to ^0.44.3 across packages/eve, packages/eve-extension and both eve demos; the rebuilt manifest stamps formatVersion 2 with tool 17 / dynamicTool 18 / hook 14 / instructions 2 (loads on eve >= 0.43.0) - tighten the extension's eve peer from "*" to ">=0.43.0" so an incompatible eve fails at install time with an actionable message instead of at eve build - correct packages/eve's eve peer from >=0.24.0 to >=0.32.0 (the Box sandbox backend implements the stop() handle contract eve requires since 0.32) No source changes were needed; ai stays exact-pinned at 7.0.58 (eve 0.44's peer is still ^7.0.58). Fixes #22 --- .changeset/eve-044-upgrade.md | 23 +++++++++++++ CLAUDE.md | 42 +++++++++++++++++++----- examples/eve-demo/package.json | 2 +- examples/eve-extension-demo/package.json | 2 +- packages/eve-extension/README.md | 2 +- packages/eve-extension/package.json | 4 +-- packages/eve/package.json | 4 +-- pnpm-lock.yaml | 32 +++++++++--------- 8 files changed, 80 insertions(+), 31 deletions(-) create mode 100644 .changeset/eve-044-upgrade.md diff --git a/.changeset/eve-044-upgrade.md b/.changeset/eve-044-upgrade.md new file mode 100644 index 0000000..ced3fe6 --- /dev/null +++ b/.changeset/eve-044-upgrade.md @@ -0,0 +1,23 @@ +--- +"@upstash/agentkit-eve-extension": minor +"@upstash/agentkit-eve": minor +--- + +feat!: rebuild against eve 0.44 so the extension loads on current eve (fixes #22) + +`@upstash/agentkit-eve-extension@0.6.0` was built with eve 0.32.0, stamping hook +contract v9 in its `dist/extension/_manifest.json` — a contract eve 0.33.0 +dropped, so the extension failed `eve build` on every eve released after 0.32.0. + +- The extension is now built with **eve 0.44.3** (manifest: formatVersion 2, + tool 17 / dynamicTool 18 / hook 14 / instructions 2) and loads on + **eve ≥ 0.43.0**. +- The extension's `eve` peer dependency is tightened from `"*"` to + `">=0.43.0"`, so an incompatible eve now fails at install time with an + actionable message instead of at `eve build`. +- `@upstash/agentkit-eve`'s `eve` peer is corrected from `>=0.24.0` to + `>=0.32.0` — the Upstash Box sandbox backend implements the `stop()` handle + contract eve requires since 0.32. + +No runtime behavior changed; all sources compile and pass unmodified against +eve 0.44.3. diff --git a/CLAUDE.md b/CLAUDE.md index 3e6ba08..12211a6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -97,8 +97,8 @@ and `eve-extension-demo` (a minimal eve scaffold that mounts the extension). - Built with `eve extension build` (not tsup), on eve ≥0.25's **dist packaging format**: `package.json` has `"eve": { "extension": { "source": "./extension", "dist": "./dist/extension" } }`, `files` ships **`dist/` only** (compiled `.mjs` + `.d.ts` per contribution, plus `_manifest.json` with - `builtWithEve`; eve validates compatibility from the manifest), and `eve` is a **wildcard peer** - (`"*"`, per the 0.25 scaffold — the manifest, not the range, is the compatibility tie). The old 0.24 + `builtWithEve`; eve validates compatibility from the manifest), and `eve` is a **floored peer** + (`">=0.43.0"` — was the scaffold's `"*"` until issue #22; see **Consumer eve version** below). The old 0.24 format (`"eve": { "extension": "./extension" }`, ships source the consumer recompiles) is rejected by eve ≥0.25 with "must declare `eve.extension.dist`" — don't regress to it. **No `prepare` script** (an install-time build broke CI: sdk isn't built yet at install; `pnpm build` handles topological order). @@ -111,8 +111,15 @@ and `eve-extension-demo` (a minimal eve scaffold that mounts the extension). npm/yarn hoisted layouts — was fixed upstream in eve 0.25.3; no workaround needed on ≥0.25.3.) **Consumer eve version:** `eve extension build` stamps the manifest's `requires` with the building eve's *current* contribution-format versions, and a consumer rejects any version not in its own - supported list — so a dist built with eve 0.32 (tool 11 / dynamicTool 12 / hook 9) needs consumers - on **eve ≥0.32**. The wildcard peer stays `"*"`; the manifest is the real compatibility tie. + supported list — a dist built with eve 0.44.3 (formatVersion 2; tool 17 / dynamicTool 18 / hook 14 / + instructions 2) needs consumers on **eve ≥0.43** (tool 17 is the binding contract; hook 14 landed in + 0.40). The `eve` peer is **`">=0.43.0"`, not `"*"`** — issue #22 proved the wildcard is a trap: eve + 0.33 dropped hook contracts ≤9 *nine hours* after 0.32 shipped, so a wildcard install succeeds and + then fails at `eve build` with a manifest error. The manifest is still the real compatibility tie; + the peer floor is the install-time guard. **On every eve devDep bump: rebuild, read the new + `dist/extension/_manifest.json` stamps, find the oldest eve whose `EXTENSION_CAPABILITY_CONTRACTS` + (in eve's `dist/src/compiler/extension-compatibility.js`) supports them all, and move the peer floor + to match.** - `extension/extension.ts` = `defineExtension({ config: zod })`; the default export is the mount factory. Config knobs: `userId` (string or `(ctx: SessionContext) => string` — eve's public base of tool+hook ctx, imported from `eve/tools`), `redis` (defaults `Redis.fromEnv()`), `memory{topK,minScore}`, @@ -215,7 +222,7 @@ and `eve-extension-demo` (a minimal eve scaffold that mounts the extension). `new Ratelimit()`. ## AI SDK version strategy — IMPORTANT -- **AI SDK v7 stable everywhere.** Every package + demo pins `ai` to exactly **`7.0.58`**. `eve` (0.32) +- **AI SDK v7 stable everywhere.** Every package + demo pins `ai` to exactly **`7.0.58`**. `eve` (0.44) declares `ai` as a **peer** (`^7.0.58`), so the apps/packages provide the single copy. Providers: `@ai-sdk/openai` `^4.0.37`, `@ai-sdk/provider` `^4.0.7`, `@ai-sdk/react` `^4.0.62` (all stable ranges; bump them with `pnpm -r update "@ai-sdk/*"` when eve moves — a stale `@ai-sdk/react` range can pin a @@ -265,8 +272,9 @@ and `eve-extension-demo` (a minimal eve scaffold that mounts the extension). `$count`, `$histogram`, `$percentiles`, `$cardinality`. ## Eve framework facts -- The repo is on **`eve@0.32.0`** (peer `>=0.24.0` in `packages/eve`; wildcard peer in the extension, - but the built dist needs consumers on ≥0.32 — see the eve-extension section). Subpath exports: +- The repo is on **`eve@0.44.3`** (peer `>=0.32.0` in `packages/eve` — 0.32 is where the sandbox + `stop()` contract our backend implements landed; peer `>=0.43.0` in the extension, matching the + built dist's manifest — see the eve-extension section). Subpath exports: `eve/tools`, `eve/hooks`, `eve/extension`, `eve/context`, `eve/instructions`, `eve/sandbox`, `eve/sandbox/vercel`, `eve/channels/*`, `eve/next`, `eve/react`, … - **Breaking changes absorbed on the 0.25 → 0.32 jump:** (a) 0.31 replaced continuation-token session @@ -280,6 +288,23 @@ and `eve-extension-demo` (a minimal eve scaffold that mounts the extension). values differ in local dev; our sanitizing `resolveUserId` is unaffected); (e) eve 0.32's `ai` peer is `^7.0.58` (drove the repo-wide exact-pin bump). Durable sessions now **complete after 30 days** by default (0.28) — strengthens Redis `ChatHistory` as the long-term transcript store. +- **The 0.32 → 0.44.3 jump (issue #22) needed no source changes** — everything compiled and passed + as-is. Why each headline break missed us: hook contract v10 (0.33, "model identity moved from + `session.started` runtime metadata to `step.started` call attribution") — our `chat_history` hook + only reads `message.received`/`message.completed`, whose shapes (incl. `data.finishReason`) are + unchanged; 0.33's `defineDynamic` narrowing ("accepts only `events`") — our dynamic tools already + used the events-only form; 0.38 renamed frontend binding `stop()` → `cancel()` — eve-demo never + called it (`agent.send(message)` positional survives); 0.44.1 reruns session-scoped dynamic + resolvers on resume ("keep them idempotent") — ours are pure factories. The real fix was + rebuild + re-stamp the manifest + tighten the peers. `ai` stayed exact-pinned at `7.0.58` + (eve 0.44's peer is still `^7.0.58`). **One live-dev gotcha:** a demo's `.eve/` dir holding local + workflow state written by ≤0.37 fails to replay on ≥0.38 ("Event id is not slot-numbered" retry + loops that wedge new turns — 0.38.2 moved the dev world to slot-numbered event ids). `.eve/` is + gitignored dev scratch: after an eve bump, `rm -rf examples/*/.eve` before `eve dev`/`next dev`. + Both demos were verified with live turns on 0.44.3 (memory save + fresh-session recall, search + count matching seed data, cached weather tool, and the extension's dynamic search + chat-history + hook/tools writing and reading real `agentkit:chat:demo-user:*` docs); `gpt-5.4-mini` does exist + and responds — the "may 404" caveat in Known issues didn't materialize. - **Extension packaging changed 0.24 → 0.25**: 0.24 shipped source the consumer recompiles; 0.25 ships prebuilt `dist/extension` + `_manifest.json` (see the eve-extension section). 0.25 rejects 0.24-format packages at discovery. @@ -398,5 +423,6 @@ pnpm -r --filter "./examples/*" build # build both demo apps paused and runs until deleted). **Path bridge:** Eve roots its tools at `/workspace` but Box sessions live in `/workspace/home`, so the backend remaps both `resolvePath` (file ops) and raw commands (`find /workspace …` → `/workspace/home`, URL-safe via lookbehind) through the exported `toBoxPath`/`rewriteWorkspacePaths`. -- `gpt-5.4-mini` (demo model) may not exist → demos build fine but can 404 at runtime. Swap if needed. +- ~~`gpt-5.4-mini` (demo model) may not exist~~ — verified live (2026-08): it exists and responds in + both demos. No swap needed. - The `19.2.17` `@types/react` may linger as an unpruned orphan in `.pnpm`; harmless (nothing links it). diff --git a/examples/eve-demo/package.json b/examples/eve-demo/package.json index 1ede552..2ed37bd 100644 --- a/examples/eve-demo/package.json +++ b/examples/eve-demo/package.json @@ -32,7 +32,7 @@ "class-variance-authority": "0.7.1", "clsx": "2.1.1", "cmdk": "1.1.1", - "eve": "^0.32.0", + "eve": "^0.44.3", "lucide-react": "1.16.0", "motion": "12.40.0", "nanoid": "5.1.11", diff --git a/examples/eve-extension-demo/package.json b/examples/eve-extension-demo/package.json index 85aceed..ad83518 100644 --- a/examples/eve-extension-demo/package.json +++ b/examples/eve-extension-demo/package.json @@ -19,7 +19,7 @@ "@upstash/redis": "^1.38.0", "@vercel/connect": "0.2.2", "ai": "7.0.58", - "eve": "^0.32.0", + "eve": "^0.44.3", "zod": "4.4.3" }, "devDependencies": { diff --git a/packages/eve-extension/README.md b/packages/eve-extension/README.md index 0f99bc6..cd6c3eb 100644 --- a/packages/eve-extension/README.md +++ b/packages/eve-extension/README.md @@ -15,7 +15,7 @@ no repeated schemas; upgrades come through the package manager. `` is the mount file's basename — the examples below use `agentkit`. -Start from an eve project (eve ≥ 0.32 — the prebuilt extension's compatibility manifest requires 0.32's contribution formats), then: +Start from an eve project (eve ≥ 0.43 — the prebuilt extension's compatibility manifest requires 0.43's contribution formats; the package declares this as its `eve` peer range), then: ```bash pnpm add @upstash/agentkit-eve-extension diff --git a/packages/eve-extension/package.json b/packages/eve-extension/package.json index 534b065..cc55f43 100644 --- a/packages/eve-extension/package.json +++ b/packages/eve-extension/package.json @@ -56,10 +56,10 @@ }, "devDependencies": { "@types/node": "24.x", - "eve": "^0.32.0", + "eve": "^0.44.3", "typescript": "7.0.2" }, "peerDependencies": { - "eve": "*" + "eve": ">=0.43.0" } } diff --git a/packages/eve/package.json b/packages/eve/package.json index 2f9e8c9..a0f9302 100644 --- a/packages/eve/package.json +++ b/packages/eve/package.json @@ -58,12 +58,12 @@ "@upstash/redis": "^1.38.0", "ai": "7.0.58", "dotenv": "^16.4.5", - "eve": "^0.32.0" + "eve": "^0.44.3" }, "peerDependencies": { "@upstash/box": ">=0.5.0", "@upstash/redis": ">=1.38.0", - "eve": ">=0.24.0" + "eve": ">=0.32.0" }, "peerDependenciesMeta": { "@upstash/box": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0447fa..8f5dd27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,7 +134,7 @@ importers: version: 1.38.0 '@vercel/connect': specifier: 0.2.2 - version: 0.2.2(@ai-sdk/mcp@2.0.30(zod@4.4.3))(ai@7.0.58(zod@4.4.3))(eve@0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0))) + version: 0.2.2(@ai-sdk/mcp@2.0.30(zod@4.4.3))(ai@7.0.58(zod@4.4.3))(eve@0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0))) ai: specifier: 7.0.58 version: 7.0.58(zod@4.4.3) @@ -148,8 +148,8 @@ importers: specifier: 1.1.1 version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) eve: - specifier: ^0.32.0 - version: 0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + specifier: ^0.44.3 + version: 0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) lucide-react: specifier: 1.16.0 version: 1.16.0(react@19.2.6) @@ -216,13 +216,13 @@ importers: version: 1.38.0 '@vercel/connect': specifier: 0.2.2 - version: 0.2.2(@ai-sdk/mcp@2.0.30(zod@4.4.3))(ai@7.0.58(zod@4.4.3))(eve@0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0))) + version: 0.2.2(@ai-sdk/mcp@2.0.30(zod@4.4.3))(ai@7.0.58(zod@4.4.3))(eve@0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0))) ai: specifier: 7.0.58 version: 7.0.58(zod@4.4.3) eve: - specifier: ^0.32.0 - version: 0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + specifier: ^0.44.3 + version: 0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) zod: specifier: 4.4.3 version: 4.4.3 @@ -284,8 +284,8 @@ importers: specifier: ^16.4.5 version: 16.6.1 eve: - specifier: ^0.32.0 - version: 0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + specifier: ^0.44.3 + version: 0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) packages/eve-extension: dependencies: @@ -303,8 +303,8 @@ importers: specifier: 24.x version: 24.13.2 eve: - specifier: ^0.32.0 - version: 0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.59(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + specifier: ^0.44.3 + version: 0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.59(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) typescript: specifier: 7.0.2 version: 7.0.2 @@ -3393,8 +3393,8 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - eve@0.32.0: - resolution: {integrity: sha512-b1+JLZIAucpW6eVxdyLKlKp0sJ20F737TEe+wj6vYzhq5JPz5n9bdoTCvh5Z1Q7TFGLO0GSIub/q9b8UGVb28Q==} + eve@0.44.3: + resolution: {integrity: sha512-YepBrHWm2Ecf7kmlPwzNeljTkI+LesZ8vC1q8SKCjgog9tKaZxgyIms7S/R3a8vRoQ8gnAtZuZdxXZgD6eKZbA==} engines: {node: '>=24'} hasBin: true peerDependencies: @@ -7358,13 +7358,13 @@ snapshots: dependencies: execa: 5.1.1 - '@vercel/connect@0.2.2(@ai-sdk/mcp@2.0.30(zod@4.4.3))(ai@7.0.58(zod@4.4.3))(eve@0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)))': + '@vercel/connect@0.2.2(@ai-sdk/mcp@2.0.30(zod@4.4.3))(ai@7.0.58(zod@4.4.3))(eve@0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)))': dependencies: '@vercel/oidc': 3.6.1 optionalDependencies: '@ai-sdk/mcp': 2.0.30(zod@4.4.3) ai: 7.0.58(zod@4.4.3) - eve: 0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) + eve: 0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) '@vercel/oidc@3.2.0': {} @@ -7984,7 +7984,7 @@ snapshots: esutils@2.0.3: {} - eve@0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)): + eve@0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.58(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)): dependencies: ai: 7.0.58(zod@4.4.3) nitro: 3.0.260610-beta(@upstash/redis@1.38.0)(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)) @@ -8031,7 +8031,7 @@ snapshots: - xml2js - zephyr-agent - eve@0.32.0(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.59(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)): + eve@0.44.3(@opentelemetry/api@1.9.1)(@upstash/redis@1.38.0)(ai@7.0.59(zod@4.4.3))(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0)): dependencies: ai: 7.0.59(zod@4.4.3) nitro: 3.0.260610-beta(@upstash/redis@1.38.0)(chokidar@4.0.3)(dotenv@16.6.1)(jiti@2.7.0)(rollup@4.62.0)(vite@5.4.21(@types/node@20.19.43)(lightningcss@1.32.0))